As the complexity of software development for small systems continues to increase engineers, who previously were content with informal structured design techniques, are investigating the use of UML, the emerging standard in object-oriented design techniques. This article shows how Round-trip Engineering between UML and C can be employed to enable engineers to benefit from the productivity and quality improvements on offer, but without imposing significant development and runtime overheads. Firstly, we'll provide an introduction to OO, and then we'll discuss the three issues raised above. Data can either be statically defined against the class, or can be related to each instance.
Functions either operate at a class level, or on individual object data.
This will lead to smaller, more maintainable and higher quality systems. The ability to abstract out common functionality reduces code size by avoiding code duplication, thereby reducing the maintenance cost and simplifying the testing of the developed system. Reuse is achieved by 'inheriting' data and functions from one class into another. Component identification leads to a much higher level of reuse. Typically, a component would be a collection of related classes, which have been packaged together to provide some high level functionality that is likely to be reused across multiple projects.