Improving Quality in Object-Oriented Software. Systematic Refinement and Translation of Models to Code
object-oriented development | pattern | refinement | translation | Unified Modeling Language (UML)
The reliable attainment of quality requirements is still a major weakness of the object-oriented development paradigm, with a significant proportion of object-oriented systems either failing to work correctly, or failing to do so in a way that meets non-functional requirements. One of the main reasons for this problem is the discrepancy between the various object-oriented languages/notations typically used during the course of an object-oriented project and the lack of well-defined mappings between them. This paper describes a practical strategy for addressing this problem, known as SORT, which is based on two fundamental tenets: distinguishing and strictly separating refinement from translation, and the definition of a common, core set of object-oriented implementation concepts to minimize the gap between object-oriented models and programs. When used in a systematic way, SORT can not only improve the quality of an object-oriented system, but can also significantly increase confidence that the desired quality levels have been attained. The approach is applicable to most major modeling and programming languages although, in this paper, we concentrate on the UML and C++.