| |
[Download PDF here!]
Authors: Alexander Egyed
Software
systems are characterized by unprecedented complexity. One effective
means of dealing with that complexity is to consider a system from a
particular perspective, or view (e.g., architecture or design
diagram). Views enable software developers to reduce the amount of
information they have to deal with at any given time. They enable
this by utilizing a divide-and-conquer strategy that allows
large-scale software development problems to be broken up into
smaller, more comprehensible pieces. Individual development issues
can then be evaluated without the need of access to the whole body
of knowledge about a given software system. The major drawback of
views is that development concerns cannot truly be investigated by
themselves, since concerns tend to affect one another. Successful
and precise product development supported via multiple views
requires that common assumptions and definitions are recognized and
maintained in a consistent fashion. In other words, having views
with inconsistent assumptions about a system’s expected
environment reduces their usefulness and possibly renders invalid
solutions based on them.
Developing software systems therefore requires
more than what general-purpose software development models can
provide today. Development is about modeling, solving, and
interpreting, and in doing so a major emphasis is placed on mismatch
identification and reconciliation within and among diagrammatic and
textual views. Our work introduces a view integration framework and
demonstrates how its activities enable view comparison in a more
scalable and reliable fashion. Our framework extends the comparison
activity with mapping and transformation to define the ‘what’
and the ‘how’ of view integration. We will demonstrate the use
of our framework on the Unified Modeling Language (UML), which has
become a de-facto standard for object-oriented software development.
In this context we will describe causes of model inconsistencies
among UML views, and show how integration techniques can be applied
to identify and resolve them in a more automated fashion. Our
framework is tool supported.
|
|