13.1 Why Performance Engineering Is Important
13.1.1 Time as a Design Driver
Many software developers – probably the majority, in fact – place great emphasis on producing designs that are functionally correct. This is especially true of Object-Oriented (OO)-based projects because OO techniques tend to concentrate on abstract logical features such as:
- Structure (class and class relationships)
- Encapsulation and information hiding
- Object and class interfaces and dependencies
- Object behavior
However, effective real-time embedded models concentrate on factors that are important in the real world. And, unfortunately, there is a significant mismatch between these two models. Real-world software designs are primarily shaped by the following:
- The natural simultaneous (concurrent) behavior found in real systems
- The need to coordinate and/or synchronize operations
- The need to respond to many and varied timing requirements (especially...