Consistency Checking of Models
The major drawback of models is that development concerns cannot truly be investigated by themselves, since concerns tend to affect one another. Successful and precise product development supported via models thus requires that common assumptions and definitions are recognized and maintained in a consistent fashion. In other words, having models with inconsistent assumptions about a system’s expected environment reduces their usefulness and possibly renders invalid all solutions based on them (such as analyses and simulations). To date, however, transitioning information between models is still not a straightforward task despite the massive attention this problem has received from the software engineering community. The problem manifests itself in the model’s inability to carry over information from their first definition (i.e., capture) to their subsequent usages. This phenomenon can be observed with large, comprehensive, general-purpose models (e.g., UML) all the way down to small, domain-specific, special-purpose models (e.g., architecture description languages). For instance, if two sets of models are used to (a) analyze a potential deadlock problem of a software system (e.g., via state chart diagrams) and to (b) decompose that same system into its sub-components (e.g., via class diagrams) then the separate nature of models also requires that information common to both has to be captured twice (and usually manually both times). Given that software development models (and addressed concerns) are rarely ever orthogonal to one another, it follows that working with multiple models causes time-consuming and irritating disruptions in the development flow in keeping them up to date with changes in other models (other concerns), the source code, or their general requirements. I am currently involved in the development of automated mechanisms for improved information flow between models. Model integration was the predominant focus of my PhD thesis ("Heterogeneous View Integration and its Automation")
Relevant Publications
- Consistent Adaptation and Evolution of Class Diagrams during Refinement
- A Formal Approach to Heterogeneous Software Modeling
- Automatically Detecting Mismatches during Component-Based Development
- Architectural Integration and Evolution in a Model World
- Extending Architectural Representation in UML with View Integration
- Heterogeneous View Integration and its Automation
- Transformation, Ambiguity, and Trivialization
- Consistent Architectural Refinement and Evolution using the Unified Modeling Language
- Validating Consistency between Architecture and Design Descriptions
- Scalable Consistency Checking between Diagrams - The ViewIntegra Approach
Related Research