Saturday, October 10, 2009

Component based programming (Object-oriented style and Finite-State-Machine Model)

Everyone wants his software project executes smoothly. In those project I experienced or heard of, it is almost guaranteed that there are complains like:

1. the developer will complain that the requirement is not concrete enough to make a design document when the project is about to start;

2. The developer and marketing guy complain that the development result and requirement does not match;

3. The engineering team complains that the code-base becomes so complex that nobody can have a clear full picture, a lot of behavior is unpredictable. therefore, the management team has to push the engineers work harder and harder to meet the project deadline.

4. The development team complains that the testing team is not testing what expected to be tested.

If you ask around the solution, there will be many solutions. For example, improve management communication channel, provide more training, find more competent people, and so on. I agree with these points, but I view the root cause has a technical solution as well. I think we need to find an effective way to map marketing requirement to design document, or in other words, to translate between engineering language and business language. And I think Component based programming, plus Object-oriented style (Please note: there is no requirement to use Object-oriented programming. ) and Finite-State-Machine Model, is the way to do it. I also this this is applicable to firmware on embedded system or regular application for PC platform.

This is a long topic, can be easily discussed for days or even months, so I better stop here. There are many books talking about this topic, and many white papers, company website (like telelogic). One of my favorite company in this domain is telelogic (now part of IBM).

No comments:

Post a Comment