The Unified Modeling Language (UML) (OMG 2001) provides a standardized collection of notations for describing artifacts in a software-intensive system. Each UML notation represents a particular viewpoint of a software (sub)system. For example, UML sequence diagrams describe system behavior in terms of the interaction scenarios between multiple objects. UML statecharts, on the other hand, describe the behavior of a single object. The UML constraint language, OCL, (Warmer & Kleppe 1999), describes model entities in a declarative fashion. Software developers typically use a variety of notations for behavioral modeling but currently have no way to maintain the consistency between viewpoints. Ultimately, if behavioral models are going to be used in simulation or implementation, the various notations must be merged together. (Whittle & Schumann 2000) presents an algorithm for synthesizing UML statecharts from a (possibly conflicting) set of scenarios (sequence diagrams) and propositional OCL constraints. This algorithm is a step towards the goal of semi-automated merging of model viewpoints.
展开▼