The Search for Zero Defect Software |
These slides are derived from a presentation I gave to the St. Louis Extreme Programming Users Group in September, 2003.
The presentation talked about a project I have recently concluded that involved creating C++ software to communicate with
and control a packaging line conveyor belt. The project was a huge success, and I learned a lot from it. I talk about the project,
its intial requirements, some requirements changes that came down, causing me some interesting problems, my application architecture,
and finally I work through some examples of how I used the Active Object pattern to develop the system along event-driven bounds.
In the end, this software was delivered on time, with full functionality despite late requirements changes, and, to date, has exactly 0 defects!
I credit this remarkable achievement not to my superior skills as a programmer :) but to the Test Driven Development process
I religiously follow.
I plan on adding articles to this page over the next few weeks that describe other technical and process issues I faced.
These other articles will include topics on Using boost::threads To Implement the Active Object Pattern in C++,
Using Decorator To Add Logging To a Class, The Advantages of Not Gathering All Requirements Up Front,
and more.
|