» Archive for the 'software engineering' Category

Testing the Tests via Mutation

Wednesday, October 29th, 2008 by Max

HELMAND PROVINCE, AFGHANISTAN - JULY 21: A KBR...

To set the ground for this post I first need to reiterate a message that has been heard from many other sources.  Code coverage can only tell you how bad your test suite is, not how good it is.  Meaning that if you have bad coverage you know something is wrong, but a high coverage number tells you virtually nothing.  This message seems obvious for many developers out there, but it’s not heard by a surprisingly large section of them.

I have been a teaching assistant for several undergraduate and graduate testing classes.  Every year when I grade their unit testing projects I always get several of them (about a quarter) that hand in tests with “good” coverage, but not a single assert statement to check the results of their tests.  This is even after I get up in front of the class and rant about the exact problem from previous years. Needless to say those students tend to do poorly.

So, if test coverage is not a good metric, how can developers measure the quality of their test suites?  I’m going to talk about one approach in this post, mutation testing.

Read the rest of this entry »

The Problems with Reuse and Abstractions

Tuesday, October 21st, 2008 by Max

When talking about software reuse and abstractions it is tempting to bring up one of two analogies. The first treats reusable components as tools, while the second thinks of them as larger, more purposeful Lego blocks. Neither is really correct. In both cases we get an impression that reuse in unequivocally a good thing. The more components or tools we use, the better is our final product. Unfortunately that is not exactly the case. In this post I want to talk about abstractions and reuse, why we like them, and what we have to watch out for.

Read the rest of this entry »

Software Engineering vs. Engineering

Friday, September 26th, 2008 by Max

Watt's steam engine in the vestibule of the Es...

This is something I’ve been meaning to write about a quite some time now.  It is one of the things that most irritates me about how Software Engineering (SE) is presented to people unfamiliar with the concepts.  It tends to be compared to other forms of engineering, especially architecture.  I have to admit that when first being taught SE, I fully bought into that whole analogy. But, when one moves beyond the basic concepts, it falls apart.  There are many problems with this comparison as well as many pitfalls one may fall into when making it.

Read the rest of this entry »

ASE Last Day and Overall Impressions

Monday, September 22nd, 2008 by Max

The third day was the least eventful.  There was a single session and a keynote.  Unfortunately we had to leave before the keynote so I only attended the session.  There was one great presentation and two that seemed like they were getting at something, but didn’t make much sense at the time.  Will read the papers and hopefully understand them better.

Read the rest of this entry »

Automated Software Engineering Day 2

Saturday, September 20th, 2008 by Max

Well, day 2 is done and I have to say it was a bit of a disappointment when compared to the first day.  Unfortunately I believe that was in part due to my choice of sessions.  The best paper was in the session I did not attend and upon talking with the authors it sounds rather interesting.  There was one shining beacon, the day’s keynote.  The component session was not bad, but not great, while the experience reports were pretty much a disaster and did not really provide anything interesting.  Ohh well I guess, lets jump in and go over the highlights.

Read the rest of this entry »

Automated Software Engineering Day 1

Friday, September 19th, 2008 by Max

The first day of the Automated Software Engineering (ASE) conference has passed.  I wanted to highlight a few things that I saw and thought were interesting.   Sorry for posting my impressions a bit late, but I guess it’s better late than never.  I’ll write a separate post for days two and three.

Read the rest of this entry »

Just how useful is design documentation?

Wednesday, August 27th, 2008 by Max

When one begins to learn software engineering, they are usually encouraged to do some form of design before jumping right into the code. I remember some of my first computer science (CS) classes. We had to submit a design document in addition to the source code for any particular project. I remember hating it, but attributing that displeasure more to the fact that the projects were so small and insignificant that they did not really need a design document. After studying software engineering and talking to many different practicing software engineers I realize that design is over rated. I don’t want to say that there is no need for design document, but that maybe too much emphasis is placed on them.

Read the rest of this entry »

A small introduction to Graph Theory.

Wednesday, August 20th, 2008 by Max

Simple Decision Graph

I’ve now seen a few comments from people using Graphsy trying to figure out exactly what a graph is.  By a graph I mean any kind of relational, or boxes and arrows, type of diagram. I guess the confusion shouldn’t really surprise me.  I remember being terribly confused when the notion of graphs was first introduced to me.  Not because the idea was complex, but because at that time when someone mentioned graphs my immediate response was “line or bar?”  But no, the kinds of graphs one can draw with Graphsy are the kinds of graphs one can make with Visio or OmniGraffle, diagrams with nodes and edges.  Wikipedia has a great entry on graph theory, check it out if you need an introduction.  The next question to answer is what are these things useful for?

Read the rest of this entry »

Is Microsoft now the “underdog”?

Saturday, August 16th, 2008 by Max

Am I the only one who is starting to feel bad for Microsoft?  I remember when Microsoft was this big evil empire and anything was better simply because it wasn’t them.  Now they seem more like a little child trying desperately not to get beaten up by the older kids.  They seem like an underdog in the industry they pushed forward.  I haven’t used Windows in about 3 years and it seems like I’ve become a Vista apologist.  How did they get this way?

Read the rest of this entry »

Is perpetual Alpha/Beta really an issue?

Wednesday, July 16th, 2008 by Max


I see this come up every so ofter, usually whenever someone remembers that Gmail is still in beta.  The real question is why does this label bother some people?  Gmail is a great product so does it really matter if the developers want to consider it beta and not version 1?  Aren’t version numbers really obsolete in today’s world of web applications?  What are they good for anyway?

Read the rest of this entry »