Requirements engineering?
The primary measure of success of a software system is the degree to which it meets the purpose for which it was intended.
(Nuseibeh&Easterbrook ‘00)
If you look the toon you notice that it is dramatically true. I think that this picture could be used as a metaphor for each course of software engineering, and it is a very good example of the first cause of software failure: the poor requirements.
In an hypothetical model, the process of software production goes over two distinct phases.
In the first one, called verification, we find an answer for the question “Are we doing the product right?” (is our software bug-free?). In the second one, called validation, we find an answer for the question “Are we doing the right product?” (is our software what the user asked for?).
The two phases are ideally distincts but they can merge and iterate several times, at every step, or at every release.
Finally, I think that languages for specification are a good tool to solve this problem, but they are so heavy to be used in common projects. As examples I suggest you to visit the “Petri Nets World” (link) portal and the “Alloy” website (link).
2 Comments »
The URI to TrackBack this entry is: http://www.marcocioffi.com/archives/2005/04/requirements-engineering/trackback/
RSS feed for comments on this post.
Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

very fun
Comment by test — 6/3/2005 @ 6:51 pm
Requirements Engineering (for Dilbert)
Getting the purpose of a software system right is an evergreen theme in software engineering, and one of the fuzziest issues in this beautiful discipline. My friend Marco some times ago posted a great toon on the subject, with a brief and sharp comme…
Trackback by ( ? , qUeStIoNMaRk ) — 2/3/2006 @ 12:52 pm