02.26.08

Learning a new Language: SPARK

Posted in Books, Programming, SAnToS, Technology at 1:37 pm by Todd

As mentioned before, I have been re-tasked to work on a plugin for Eclipse that supports the development of SPARK. Therefore, I should probably learn something about the language.

I started off by trying to read through slides prepared by Dr. Hatcliff and Dr. Robby.  The slides made sense but I wasn’t able to fully comprehend the language based solely on the slides.

I then tried reading “High Integrity Software: The SPARK Approach to Safety and Security”.  The first chapter also made sense but I still didn’t get it.

I then found a simple Ada tutorial that walked me through the basics of Ada in a step-by-step manner.  This allowed me to understand little bits of Ada through simple examples.  And I was able to compile and run them to validate my understanding.

Coming back to the slides made a lot more sense.  And re-reading the book chapters really made more sense.  I think I am finally understanding Ada and SPARK.  And I feel more confident that I can help development an IDE in Eclipse to support the development.  Now I just need to understand the technologies provided by the Sireum project that I will have to interface with before starting the IDE implementation process.

Notes:
  • “all SPARK programs are legal Ada programs.” from Introduction to SPARK
  • “had only one tenth of the residual anomalies as comparable full Ada and only one hundredth of those found in parts of the system written in C.” from A Technical Overview of SPARK. I wonder how they define “residual anomalies” and how they measured them.
  • “eliminate features like dynamic data creation” from Barnes Chapter 1 — Introduction.
  • “SPARK does not have its own compiler suite. Rather, it leverages the use of existing Ada compilers.” from Barnes Chapter 1 — Introduction.
  • .ads files contain the specification (or declaration) of a package while .adb files contain the body (or implementation).  From Barnes Chapter 2 — SPARK Language Principles.
  • “Ada is also case-insensitive” from Section 3.1 – Ada Lexical Elements of the Ada95 Lovelace Tutorial.
  • “To make long numbers easier to read, underscores are permitted inside a numeric literal. For example, “1_000_000″ is legal.” from Section 3.3 – Numeric Literals of the Ada95 Lovelace Tutorial.
  • “Ada programs usually use a starting index of 1 if there’s no particularly natural starting point; this reduces the probability of so-called “one-off” errors (people normally count from one, not zero, and can sometimes get confused when starting from zero).” from Section 6.5 – Arrays of the Ada95 Lovelace Tutorial.
Related Links:

02.25.08

Reasoning about Feature Models in Higher-Order Logic

Posted in Programming, SAnToS at 10:39 am by Todd

I just completed “Reasoning about Feature Models in Higher-Order Logic” by Mikolas Janota and Joseph Kiniry.  It was the next paper on my reading list as I try to understand software product lines and feature modeling.  I am glad I took the time to read it but it was certainly beyond my intellect.  But it feels like a well-reasoned paper … and from what little I know about Dr. Kiniry, I would say that with some certainty.  The paper helped to educate me by defining some terms and pointing me to new resources.

One of the best things about the paper, at least for me, was the references that they cited.  It gives me a good set of papers to read next:
Another great part of the paper was their use and definition of terms used in the SPL community.  Below you will find some questions I had while reading and my attempt at answering them.  Feel free to comment to help me clarify my understanding (it would be very much appreciated).  Some of the questions were answered in the paper – they just happened to be later in the paper.
  • What is domain engineering? As detailed here, domain enginnering is defining the scope of the problem, analyzing the domain that the problem is in, and specifying the structure that the solution should have (architecture).
  • What is application engineering?  I think the SEI page on domain engineering also provides a good description of application engineering.  Basically it takes the results of the domain engineering and produces the results (define requirements, create designs, code the software, and build the documentation).  Or maybe I am way off!
  • What is an alternative feature?  They say an alternative feature “is part of a group of alternative features under a certain parent, meaning that exactly one of these children has to be selected whenever the parent is selected.”
  • What is an optional feature?  They say an optional feature “may or may not be included into the configuration when its parent is selected.”
  • What is a mandatory feature? They say a mandatory feature “has to be selected whenever its parent is selected.”
  • What is feature cloning? The authors describe this as “Selecting multiple copies of the same feature into a configuration…”
And in a spirit of helping my fellow man, I wanted to point out some typos I found while reading.  Not that it is very important, just thought I would share.
  • In section 2, Feature Modeling, it says “An optional feature may or not may be included…”.  I assume it should be “may or may not”.
  • In section 2, Feature Modeling, it says “In another article describe a number of specializations…”.  I assume it should “article we describe”.
I would say that I got very little out of this paper.  Unfortunately, I cannot blame the authors for this, I just have a hard time understanding the material.  Papers that formalize ideas always escape me … I am probably not patient enough to work through the ideas and I know I am out of practice.

Goals for 2008

Posted in About Me at 10:20 am by Todd

Now that we are a month and a half into 2008, I figured it was time to set my goals for the year and post them online.  Hopefully this will make me more likely to accomplish them.  Anyway, here goes.

  • I want to publish on this blog regularly.  I am hoping that I can consistently post 3-5 items a week.  And not just any-ol-garbage; I want to post good, original content.
  • I want to create, update, and maintain the wallentine.com website.  This will include the subsites (todd, kari, and virg) and special portions of the site (reunion, anniversaries, etc.).
  • I want to make a real effort to build a personal brand.  This will include the wallentine.com website but it will also be reflected on my social networking sites (facebook, linkedin, etc.).
  • I want to develop my language skills.  To start with, I will learn Spanish.
  • I want to develop a sound financial plan and start executing it.  This will include both short-term and long-term plans and will likely involve insurance, investments, retirement, and personal savings.  It will also include the use of a tracking/planning tool like GnuCash.
  • I want to figure out a great career plan.  It has been a long time since I have truly thought about what I want to do in my career so it is time to think about it and start the planning.
  • I want to improve my overall health.  This will include regular exercise and eating right. I want to get to the point that these are habits and I actually feel something missing when I don’t exercise or feel gross when I eat wrong.  This will include tracking my “body metrics” (blood pressure, heart rate, bmi, body fat percentage, etc.).
And now, the nitty-gritty goals.

02.19.08

FitLink

Posted in About Me, Technology at 2:44 pm by Todd

I have been playing with several Web 2.0 and social networking sites over the last couple of months.  FitLink is one of them and one that I am using on a regular basis (not young enough to use Facebook regularly and not professional enough to use LinkedIn regularly).

I like FitLink since I can plan and track workouts. And if my workout buddy wanted to, we could share workout plans this way.

Things I would like to see added are the
  • ability to track my weight (graphing the results would be extra cool)
  • ability to track my body fat percentage
  • ability to track my blood pressure (graphing the results would be extra cool)
  • ability to track my caloric intake – just a rough number based upon what I ate
  • ability to re-publish my journal and workout results via RSS to my website
Overall, I really like the FitLink site. It has been very useful in keeping track of my progress as I take physical fitness more seriously.

The Hibachi Project

Posted in Programming, SAnToS, Technology at 2:42 pm by Todd

Last week I learned about a relatively new Eclipse project call Hibachi (aka ADT).  It is an effort to develop a complete Ada development environment as a set of Eclipse plugins.  Their goal is to be as good as JDT and CDT (language development environments for Java and C/C++ respectively).

I mention this because I have been tasked with writing a set of plugins for Eclipse to support the development of SPARK.  So this seems like a good project to investigate and potentially leverage.  Specifically, I might be able to use Hibachi as a base for our work and simply add extensions that interact to provide our envisioned features.  For example, this would mean I don’t have to write (and maintain) a source editor with syntax highlighting, an outline view, and content assist.  I could instead focus on writing a plugin to perform static analysis using the Sireum platform.

I have checked out the code, got it to compile (thanks Adam H. for the help), and did some limited experimentation.  Over the coming weeks I will need to start digging into the code more to see if we can plug our ideas into it without driving the Hibachi project in other directions.

Related Links:

02.14.08

My Winter Vacation

Posted in About Me, Books at 6:20 pm by Todd

This feels a little like the first day back in elementary school telling the class what I did over the break. Regardless, I wanted to brag … and if my 2 readers don’t like it, tough.

Over break I spent a lot of time watching TV, listening to music, browsing the web, watching movies, and most importantly, reading good books. Below is a quick list of the books and movies along with comments about each.

Books:
If anyone wants to borrow one of the books (or all of them), let me know. Or feel free to click through and purchase them at buy.com (not so subtle way to increase click-throughs to my affiliate program).

By Order of the President By Order of the President by WEB Griffin I really liked this book because of the characters and the pace. It was probably not as good as it could be since I had read the 2nd book in the series first (The Hostage). So I already knew some of the plot before it was revealed. But overall, great read. And I really like the main character, Major Carlos Castillo. My 3rd favorite book character (first is John Clark from Tom Clancy’s Without Remorse and Rainbow Six and second is John Patrick Ryan from Tom Clancy’s Ryanverse).

The Hades Factor The Hades Factor by Robert Ludlum and Gayle Lynds I liked this book because it had a good tempo to it and the characters were very likable. The downside to this book is they didn’t give it enough suspense. Ludlum’s other books really do a good job of hiding the bad characters but this one seemed watered-down to me. By mid-way in the book, I knew who the bad people were and what was going to happen. I prefer small twists in the end that really surprise me (for example, the way M. Night Shamalan creates suspense in Signs or The Sixth Sense). But it was entertaining enough for me to want to continue reading the books in this series.

Robert Ludlum's the Cassandra Compact The Cassandra Compact by Robert Ludlum and Philip Shelby I liked this book for the same reason as mentioned above (The Hades Factor). It is the next book in the series and follows a similar theme, plot, and style. Again, not my favorite but I am continuing to read the series.

The Paris Option The Paris Option By Robert Ludlum and Gayle Lunds Again, same type of book that makes up the previous three books in the series. It was an ok book that kept my attention. But basically the same characters, style, and theme as the others.

I also spent some time watching movies with my wonderful wife.
  • License to Wed with Robin Williams, John Krasinski, and Mandy Moore – Not funny at all. I suggest not seeing this movie.
  • I Now Pronounce You Chuck and Larry with Adam Sandler and Kevin James – Pretty funny … especially compared to other “comedies” that we have rented lately. I suggest renting this movie.
  • Eastern Promises with Viggo Mortensen and Naomi Watts – Very powerful movie. If you are into drama then you will likely enjoy this.
  • The Simpsons Movie – Very funny … especially if you like the Simpsons. Might have been better if they could have shortened it.
  • Superman Returns – Didn’t like this one much. I was hoping it would be like Batman Begins but it was just a re-hash of some old plot with new actors. I did like the casting choice for Lex Luther though.

So I had a rather relaxing winter break. I wish I could make more time in my normal schedule to read those types of books and see more movies. Unfortunately, I spend most of my free-time working (this blog, free-consulting, and free-manual labor take a good chunk of my non-working hours).

02.13.08

GForge Migration

Posted in Customer Service, KSU, Linux, SAnToS, Technology at 3:47 pm by Todd

One of my duties in my current position (Research Associate at K-State working for the SAnToS lab) is system administrator.  I help to manage laptops, workstations, and servers.  The only server I still manage is our project management server that runs GForge (named projects.cis.ksu.edu).  That server will soon be transitioned over to the responsibility of the CIS departments system administrators. Unfortunately, the transition has been a little painful. Let me explain.

Over the last couple of years we have had increasing downtime on the old hardware (a 7 year old dual processor workstation) and old software (the open-source version that we custom patched).  Because of this, we wanted to upgrade both the software and the hardware. And with the shortage of man-power in the lab, we decided to share the server with the rest of the department and then transfer responsibility of it to the department as a whole.

We selected some existing hardware that was in our Beocat cluster, upgraded the amount of storage space, and did a fresh install of Linux.  We then purchased a commercial license from the GForge group for their GForge AS.  We then started the process of upgrading and transitioning. This is when the real pain started.

Some of the pain is self-inflicted.  We wrote our own plugin for GForge which modified how the file release system worked.  In doing so, we deviated from the standard file locations.  This made it a non-trivial upgrade.

Some of the pain was organizational.  Because the CIS system admin staff would be taking over this responsibility, we wanted to let them do the migration. Which meant them learning about it as well as experimenting. Trouble was, they have turn-over (students graduating or leaving for better jobs).  So this task fell between the cracks quite often and meant a lot of re-learning by a new person. This made the transition drag on for quite a while.

Some of the pain was caused by the GForge Group. I am sure they try very hard but their customer service leaves a lot to be desired. It almost feels like dealing with Microsoft — our issues are too minor for them to take seriously.  So bugs we found were brushed under the rug despite them being true “show-stopper” bugs (we are not going to do the final switch-over until they are fixed).

  • The first issue is that mailing list archives that are marked as private are not protected. Meaning that any visitor to the site can see the “private” messages on our lists.  Not a good thing.
  • The second issue is that some of the data was lost during the transition. Specifically, the document manager in the old version provided a title and description to go along with each document. In the new version, there is no title. And during the transition, the consultant did not migrate the description over so we lost both the title and the description.  Not a big deal but it would cause several man-hours of work for us to fix.
  • The third issue is that files and releases that are marked as hidden are not actually hidden. We like to (or tend to) keep all of our releases on the server but hide the old ones so that our users (downloaders) are not confused. But when we do this, they are not actually hidden from the user in the new system (they were on the old system).  Again, not a big deal but certainly more burden on us to manage our releases.
  • The fourth issue is that the mailing list messages in the archives are not attributed to the correct author.  This is more of an annoyance than anything else but still an issue that we would like to have fixed.
I suppose this post is part venting (getting this frustration off my chest) and part warning.  When dealing with the GForge group, be aware of what you are getting into. It might be best to simply use the open-source version or purchase from a different vendor.

Update (01 July 2008): I just had a very productive phone call with Tim Perdue, the founder/CEO of the GForge Group. He was worried that this post might give people the wrong impression about his company. Because of that, I wanted to set the record straight.

First, I wanted to thank Tim for calling me to chat about this blog post. I was quite surprised since I didn’t think anybody read it. But with the magic of search engines, I suppose things get read at odd times.

Second, I think that the GForge Group has a very good product. GForge AS has a lot of really cool features that I am excited to use (integration with Eclipse, CruiseControl, and an integrated tracker and task manager).

Third, a lot of the issues that I was venting about have nothing to do with the GForge Group or GForge AS. I am guilty of screwing up this process as much as anyone when I implemented the custom download manager. And some of the issues had to do with our internal staff. All that to say there is plenty of issues in this “project” and enough blame to go around.

Last, I want to clarify this statement: “When dealing with the GForge group, be aware of what you are getting into”. I am just saying that any single bug might not be important to them. This is very normal for any small software company so it shouldn’t be taken as a dig on just them. I guess I just expect more out of customer support (which might be my problem and not theirs).

I should also update this post with the status of the migration. It looks like all but one of the issues has been resolved (we still haven’t fixed the document description issue). We are just performing some final testing to make sure there are not any more bugs before we do the final move. We hope that this will happen on Monday (July 7, 2008) (no promises though – unexpected issues always seem to arise).

02.12.08

Optimization of Variability in Software Product Lines

Posted in Programming, SAnToS at 9:38 am by Todd

I recently read “Optimization of Variability in Software Product Lines” by Felix Loesch and Erhard Ploedereder. I think their paper has some good ideas but it feels like they are over-selling their contribution. And I don’t mean to offend the authors by that statement but it feels like an obvious solution to a real problem.

Let me see if I can explain that better. They state the problem as follows: software product lines grow, especially in industrial contexts, and as they do it becomes harder to create products. This difficulty is due to complexity (or enormity) of the product line. This appears to be a real problem (I say appears since I have never worked with industrial partners on this but it seems logical to accept their statement). And their solution is to “trim” down the number of features in the product line to make it more manageable. To me, that seems straight-forward.

They also go on to define a process that uses tools to make this more reliable. I would say this is the real contribution of the paper: a reliable (maybe efficient) way to reduce the size of the product line.

Overall, it is a fine paper. I did run across some questions as I read that I will outline below as well as try to answer them.

What is a “variable feature”?
I am just getting used to the terminology used in this area but I haven’t heard this term before. My first thought is that they differentiate between a required feature (non-variable) and a feature that can be selected (variable). But maybe they just use that term the way I talk about a feature. In other words, I still don’t know what they mean by it.

What is IDEF0?
I had never heard about IDEF0 before so I had to look it up. It appears to be a high-level language for describing a system in a formal way. I would think of it like I think of UML, it is a graphical way to communicate with others about the design of a system. But take that with a grain of salt since I just read their website (I haven’t actually used it or talked to an expert about it).

What is Formal Concept Analysis (FCA)?
I tried to read about FCA and just got more and more confused (maybe I should have paid more attention in my theory courses). To me, FCA is a way to think about and communicate ideas in a formal, mathematical way. I don’t know how important it is to understand FCA when reading the paper other than to know they used this method and related tools in their process of “trimming” the product line.

What are “variability mechanisms”?
Based upon further reading of the paper I think examples of this are the configuration management system or the use of conditional compilation (e.g., ifdef statements in C). In other words, the process used to pick features.

I do wonder how real this problem is if you apply staging to your product line development. After reading “Staged Configuration Through Specialization and Multi-Level Configuration of Feature Models”, I feel that passing around the model and allowing experts to make decisions in a staged way could make it easier to handle large product lines. For example, say you are a company that develops cell phones. I assume you will have groups that are experts in the GUI, experts in the wireless capabilities, experts in the battery, and so on. Using a staged approach, you pass around the feature model (or whatever you are using to represent the SPL) and allow each expert group to make decisions. In this way, no one person or group must understand the whole product line.

Some miscellaneous comments:
  • They bring up a good point in their introduction that I have never considered. When does the product line get evaluated so that obsolete features get pruned. Their method would certainly find these and make it possible to remove them (if necessary).
  • In the introduction they try to describe how big a product line can get. When I read it, it felt more like a straw-man argument because it was so simplified. I am no expert, but it seems to me that you would not really have that many possible variants (65,536) simply because most of them would be invalid. Especially if you use some form of constraint system (e.g., if you select feature X you cannot select feature Y).
  • I started reading and applying the lessons from “Bugs in Writing” by lyn dupre a couple of years ago. And these authors use one mistake that is mentioned in the book – improper use of i.e. and e.g.. For some reason, this has turned into a pet-peeve of mine. It really isn’t a big issue, but it does distract me.
  • I got confused when I looked at Table 3 because the numbers didn’t match with the text. The talked about “10 of 12 features of class I” but list 16 in the table. It looks like they simply reversed the number of features with the percentage in the table (it should be 12 features of class I which amounts to 16%.

Overall, I liked the paper, found it enlightening, and think they have a real contribution (method of trimming a SPL).

Related Links:

02.07.08

Congrats to Larry Hollis

Posted in KSU, People at 9:35 am by Todd

I just wanted to congratulate Larry Hollis on his promotion to full professor at K-State.  He certainly deserves it.

Larry works in the Animal Sciences and Industry department here at K-State.  He has been team-teaching a class with my wife for a couple of years.  He has also taken over as her mentor in the department and done an outstanding job.


Powered by ScribeFire.

02.06.08

Jazz Ain’t Just Music

Posted in KSU, SAnToS, Technology at 10:09 am by Todd

I was recently re-assigned to a new task in the SAnToS Lab.  I am now working on a SparkADA plugin for Eclipse.  Because of this I need to learn more about a new development platform called Jazz.  At this point, I don’t really know much about Jazz other than the fact that it has an Eclipse plugin and it is the base platform for IBM Rational Team Concert.

As I learn more, I will try to blog about it.


Related Links:


Powered by ScribeFire.

« Previous entries Next Page » Next Page »