Although object-oriented languages can improve programming practices, their characteristics may introduce new problems for software engineers. One important problem is the presenc...
iary models in order to bridge the semantic gap between high-level, abstract user requirements and low-level, concrete programs and to support a stepwise refinement process. This d...