SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Round - Trip Software Engineering using UML: From Architecture to Design and Back
1
Aman Mishra K1204B41
TERM PAPER
Round - Trip Software Engineering using UML:
From Architecture to Design and Back
Course Title: OBJECT ORIENTED ANALYSIS AND DESIGN
Course Code: CSE 315
LOVELY PROFESSIONAL UNIVERSITY
SUBMITTED TO: Pooja Devi Ma’am
Section: K1204
SUBMITTED BY: Aman Mishra
REGISTRATION NUMBER: 11210617
Date of Allotment: 31-01-2015
Date of Submission: 13-04-2015
Round - Trip Software Engineering using UML: From Architecture to Design and Back
2
Aman Mishra K1204B41
Acknowledgement
Prima facie, I am grateful to the God for the good health and
wellbeing that were necessary to complete this book.
I wish to express my sincere thanks to Pooja Ma’am for
providing me with all the necessary facilities for the Term
Paper. I place on record, my sincere thanks to her, for the
continuous encouragement. I am extremely thankful and
indebted to her for sharing expertise, sincere, valuable guidance
and encouragement extended to me.
I take this opportunity to express gratitude to all of my friend’s
for their help and support. I also thank my parents for the
unceasing encouragement, support and attention. I am also
grateful to my roommates who supported me through this
venture.
I also place on record, my sense of gratitude to one and all, who
directly or indirectly, have let their hand in this venture.
Round - Trip Software Engineering using UML: From Architecture to Design and Back
3
Aman Mishra K1204B41
Contents
 Abstract
 What is RTE?
 Characteristics of RTE
 Introduction
 Using UML to Model Software
Architectures
 Reconciling Architectural View
Mismatches
 Observations
 Current Status and Future Work
 References
Round - Trip Software Engineering using UML: From Architecture to Design and Back
4
Aman Mishra K1204B41
Abstract
A key promise of software architecture research is that better software systems can
result from modeling their important aspects throughout development. Choosing
which system aspects to model and how to evaluate them are two decisions that
frame software architecture research. Part of the software architecture community,
primarily from academia, has focused on analytic evaluation of architectural
descriptions. Another part of the community, primarily from industry, has chosen
to model a wide range of issues that arise in software development, with a family
of models that span and relate the issues. One problem that neither community has
adequately addressed to date is round-trip software engineering: consistently
refining a high-level model of a software system into a lower-level model (forward
engineering) and abstracting a low-level model into a higher-level one (reverse
engineering). This paper investigates the possibility of using the Unified Modeling
Language (UML), an object-oriented design language, to that end.
The paper assesses UML’s suitability for modeling architectural concepts and
provides a framework for identifying and resolving mismatches within and across
different UML views, both at the same level of abstraction and across levels of
abstraction. Finally, the paper briefly discusses our current tool support for round-
trip software engineering.
What is RTE?
Round-trip engineering (RTE) is a functionality of software development
tools that synchronizes two or more related software artifacts, such as, source code,
models, configuration files, and other documents. The need for round-trip
engineering arises when the same information is present in multiple artifacts and
therefore an inconsistency may occur if not all artifacts are consistently updated to
reflect a given change. For example, some piece of information was added
to/changed in only one artifact and, as a result, it became missing in/inconsistent
with the other artifacts.
Round-trip engineering is closely related to traditional software engineering
disciplines: forward engineering (creating software from specifications), reverse
engineering (creating specifications from existing software), and reengineering
Round - Trip Software Engineering using UML: From Architecture to Design and Back
5
Aman Mishra K1204B41
(understanding existing software and modifying it). Round-trip engineering is
often wrongly defined as simply supporting both forward and reverse engineering.
Characteristics of RTE
The key characteristic of round-trip engineering that distinguishes it from forward
and reverse engineering is the ability to synchronize existing artifacts that
evolved concurrently by incrementally updating each artifact to reflect changes
made to the other artifacts. Furthermore, forward engineering can be seen as a
special instance of RTE in which only the specification is present and reverse
engineering can be seen as a special instance of RTE in which only the software is
present. Many reengineering activities can also be understood as RTE when the
software is updated to reflect changes made to the previously reverse engineered
specification.
Another characteristic of round-trip engineering is automatic update of the artifacts
in response to automatically detected inconsistencies. In that sense, it is different
from forward- and reverse engineering which can be both manual (traditionally)
and automatic (via automatic generation or analysis of the artifacts). The automatic
update can be either instantaneous or on-demand. In instantaneous RTE, all related
artifacts are immediately updated after each change made to one of them. In on-
demand RTE, authors of the artifacts may concurrently evolve the artifacts (even in
a distributed setting) and at some point choose to execute matching to identify
inconsistencies and choose to propagate some of them and reconcile potential
conflicts.
Round trip engineering supports an iterative development process. After you have
synchronized your model with revised code, you are still free to choose the best
way to work – make further modifications to the code or make changes to your
model. You can synchronize in either direction at any time and you can repeat the
cycle as many times as necessary.
Round-trip engineering is critical for maintaining consistency among multiple
models and between the models and the code in Object Management Group's
(OMG) Model-driven architecture. OMG proposed
the QVT (query/view/transformation) standard to handle model transformations
required for MDA. To date, a few implementations of the standard have been
created. (Need to present practical experiences with MDA in relation to RTE).
Round - Trip Software Engineering using UML: From Architecture to Design and Back
6
Aman Mishra K1204B41
Introduction
The basic promise of software architecture research is that better software systems
can result from modeling their important aspects during, and especially early in the
development. Choosing which aspects to model and how to evaluate them are two
decisions that frame software architecture research. Part of the software
architecture research community has focused on analytic evaluation of
architectural descriptions. A large number of Architecture Description Languages
(ADLs) has been proposed. Each ADL embodies a particular approach to the
specification and evolution of an architecture, with specialized modeling and
analysis techniques that address specific system aspects in depth. Another part of
the community has focused on modeling a wide range of issues that arise in
software development, with a family of models that span and relate the issues of
concern. However, by emphasizing breadth over depth, many problems and errors
can potentially go undetected. One key cause is the lack of clear understanding of
the relationship among the different models; two related problems are refining
high-level models into lower-level models (forward engineering) and abstracting
low-level models into higher-level ones (reverse engineering), depicted in Figure1.
Table1 summarizes the two predominant approaches to addressing software
architectures. Although the positions of the two communities are more complex
Round - Trip Software Engineering using UML: From Architecture to Design and Back
7
Aman Mishra K1204B41
than represented in the table, we believe that the table provides a useful, if
simplified, overview of their relationship.
This issue paper investigates the possibility of using the Unified Modeling
Language (UML), an object-oriented design language, to span the two
communities. UML is well suited for this because it provides a large, useful, and
extensible set of predefined constructs, it is semi-formally defined, it has the
potential for substantial tool support, and it is based on experience with
mainstream development methods. The paper is based on a set of issues we have
explored to date. The key aspects of our work have been:
 an assessment of UML’s suitability for modeling architectural concepts
provided by ADLs;
 a framework for identifying and resolving mismatches within and across
different UML models, both at the same level of abstraction and across
levels of abstraction; and
 tool support for integrating the above concepts into a round-trip engineering
environment.
In this paper, we briefly present three possible approaches to using UML
to model software architectures. We then discuss a view integration
framework used to support automated validation of a modeled software
system’s integrity. Finally, we make some general observations on using
UML to model software architectures, as well as ensuring consistent and
complete refinement of architectures into designs and reverse-
engineering of architectures from designs.
Round - Trip Software Engineering using UML: From Architecture to Design and Back
8
Aman Mishra K1204B41
Using UML to Model Software Architectures
The four-layer metamodeling architecture of UML suggests three possible
strategies for modeling software architectures in UML:
 use UML “as is,”
 constrain the UML meta model using UML’s built-in extension
mechanisms, and
 Augment the UML Meta model to directly support the needed architectural
concepts.
We use a diagram that conceptually depicts UML’s four-layer metamodeling
architecture, shown in Figure2, to illustrate the three approaches. Each approach
has certain potential advantages and disadvantages for forward and reverse
engineering, discussed below.
 Strategy 1: Using UML “As Is”
The simplest strategy is to use the existing UML model to represent software
architectures (Figure2a). A major advantage of the approach is that it results
in architectural models that are immediately understandable by any UML
user and manipulable by UML-compliant tools. However, the approach
would provide no means for explicitly representing the relationship between
existing UML constructs and architectural concepts for which there is no
direct UML counterpart (e.g., software connectors or architectural style
rules). Rather, this relationship would have to be maintained implicitly by the
software architect. This approach would thus also present a considerable
challenge in trying to reverse engineer a system’s architecture from its UML
model. None of the UML artifacts would contain any architectural
information or explicitly represent architect’s intentions. Instead, the
architecture would have to be inferred from the design elements and their
interactions. The repeatability of such a process is questionable: it is likely
that different people would deem different elements of the UML model
architecturally relevant, resulting in different (reverse engineered)
architectures.
Round - Trip Software Engineering using UML: From Architecture to Design and Back
9
Aman Mishra K1204B41
 Strategy 2: Constraining UML
The space of software design situations and concerns for which UML is intended
exceeds that of software architectures. Therefore, one possible approach to
modeling architectures in UML is to constrain UML via stereotypes to address new
concerns in software development.
Conceptually, this approach can be represented using UML’s metamodeling
architecture from Figure 2b: only the relevant portion of the UML model is made
available to the software architect. To date, we have applied this strategy to three
ADLs: C2, Wright, and Rapide.
The major advantage of this approach is that it explicitly represents and enforces
architectural constraints. Furthermore, an architecture specified in this manner
would still be manipulable by standard UML tools and would be understandable by
UML users (with some added effort in studying the stereotypes, partly expressed in
OCL). Finally, the task of reverse engineering the architecture from a UML model
with explicitly specified stereotypes would be greatly simplified.
A disadvantage of the approach is that it may be difficult to fully and correctly
specify the boundaries of the modeling space in Figure2b. Additionally, as a
practical concern, no tools that enforce OCL constraints in UML specifications
currently exist. Finally, our extensive study of relating UML and ADLs using this
strategy has shown that certain ADL features for modeling architectural semantics
Round - Trip Software Engineering using UML: From Architecture to Design and Back
10
Aman Mishra K1204B41
cannot be easily (or at all) represented in UML. An example is Rapide’s event
causality.
Another issue related to this strategy is the manner in which ADL-specific
stereotypes are actually used within UML (see Figure3). There are two
possibilities:
 UML is used as the primary development notation, from which excursions
are made to various ADLs (with the help of ADL-specific stereotypes) in
order to exploit the existing ADL tool support;
 UML is used as the only development notation and ADL-specific
stereotypes are accompanied by ADL-specific tools that have been modified
to operate on UML specifications.
There are difficulties associated with both options. Using UML as the primary
notation requires transformations both from a UML model to its ADL counterpart
and from a possibly modified ADL model back to UML. This is a difficult task. To
date, we have only shown how a UML model (extended via stereotypes) can be
mapped to an ADL, but not vice versa. Using UML as the sole notation, on the
other hand, requires modification, and perhaps reimplementation, of tool support
that already exists for specific ADLs.
 Strategy 3: Augmenting UML
One obvious, and therefore tempting, approach to using UML to support the
needs of software architectures is to extend UML’s meta model to directly
support architectural concepts, as shown in Figure2c. Extending the Meta
model helps to formally incorporate new modeling capabilities into UML.
The potential benefit of such an extension is that it could fully capture every
desired feature of every ADL. Furthermore, if features from the extended
version are used in modeling a system’s design, the task of reverse
engineering the system’s architecture from the design is greatly simplified.
Round - Trip Software Engineering using UML: From Architecture to Design and Back
11
Aman Mishra K1204B41
However, such an extension to UML would not come without a price. The
challenge of standardization is finding a language that is general enough to capture
needed concepts without adding too much complexity, while such a modification
would result in a notation that is overly complex. Moreover, unless the extensions
were made part of the UML standard, they would be nonconforming, incompatible
with UML-compliant tools, and potentially incomprehensible to architects.
Reconciling Architectural View Mismatches
A major emphasis in architecture-based software development is placed on
identifying and reconciling mismatches within and among different views of a
system (as enabled, e.g., by UML diagrams at different levels of abstraction). One
face of our work has been to investigate the ways of describing and identifying the
causes of architectural mismatches in UML views. To this end, we have devised
and applied a view integration framework, accompanied with a set of activities and
techniques for identifying mismatches in an automatable fashion, described below.
This approach exploits redundancy between views: for instance, if view A contains
information about view B, this information can be seen as a constraint on B. The
view integration framework is used to enforce such constraints and, thereby, the
consistency across the views. In addition to constraints and consistency rules, our
view integration framework also defines what information can be exchanged
across different views and how it can be exchanged. This is critical for automating
the process of identifying and resolving inconsistencies. The view integration
framework is depicted in Figure4. The System Model represents the (UML) model
of the designed software system. In the course of forward software engineering,
Round - Trip Software Engineering using UML: From Architecture to Design and Back
12
Aman Mishra K1204B41
new information is added to the system model and existing views are updated; in
the case of reverse engineering, information from existing views is abstracted to
create new, higher level views (View Synthesis). Whenever new information is
added or a new view created, it must be validated against the system model to
ensure its conceptual integrity (View Analysis). View Analysis involves the
following major activities:
 Mapping identifies related pieces of information and there by describes what
information is overlapping. Mapping is often done manually via naming
dictionaries or traceability matrices. A major part of our work has focused
on automating this task by using patterns, shared interfaces, and inter-view
dependency traces.
 Transformation of model elements in order to simplify, i.e., generalize, a
detailed view (abstraction) or exchange information between different types
of views (translation).
 Differentiation traverses the model to identify potential mismatches within
its elements. Potential mismatches can be automatically identified through
the use of rules and constraints. Mismatch identification rules can frequently
be complemented by mismatch resolution rules. Automated differentiation is
strongly dependent on transformation and mapping.
To date, we have applied our view integration framework on several UML views:
class and object diagrams, sequence diagrams, and state chart diagrams. We have
Round - Trip Software Engineering using UML: From Architecture to Design and Back
13
Aman Mishra K1204B41
also expanded the use of the framework beyond UML, to architectural styles (e.g.,
C2, pipe-and-filter, layered, etc.) And design patterns.
A strong benefit of this framework is that it can be applied to both forward and
reverse engineering. In forward engineering, the architect may start off by
describing the architecture, followed by the design (and, subsequently, the
implementation). Our view integration framework may then be applied to ensure
that the design is consistent internally as well as with higher-level abstractions
(including the architecture). Thus, the first step includes the creation of views at
various levels, whereas the second step validates the conceptual integrity of those
views.
In reverse engineering, the architect follows essentially the same procedure.
Obviously, a distinction is in step one where the architecture is now created from
the design; however, the validation process (step two) remains the same. When
ensuring the integrity of two models, it does not matter which one is created first:
interview consistency and completeness can be validated either way.
As outlined in our integration framework, consistency between views at various
levels of abstraction is enabled by transforming lower-level views into higher-level
ones. Thus, our framework has the potential to further support reverse engineering
by semi-automatically generating higher-level abstractions from lower-level
models. This is achieved by using the transformation techniques summarized
above. At that point, step two of our reverse engineering process is applied to
ensure that subsequent changes to the derived abstraction (e.g., the architecture)
remain consistent with the initial model (e.g., the design).
Observations
Our effort to date has furthered our understanding of UML’s suitability for
supporting architecture based, roundtrip software engineering. We have gained
valuable insights on which we intend to base our future work. These insights are
discussed below.
Round - Trip Software Engineering using UML: From Architecture to Design and Back
14
Aman Mishra K1204B41
 Software Modeling Philosophies Neither UML nor ADLs constrain the
choice of implementation language or require that any two components be
implemented in the same language or thread of control. ADLs or styles may
assume particular communication protocols and UML typically supports
such restrictions. The behavior of architectural constructs (components,
connectors, communication ports, and so forth) can usually be modeled with
UML’s sequence, collaboration, state chart, and activity diagrams. Existing
ADLs are usually able to support only a subset of these kinds of semantic
models.
 Assumptions Like any notation, UML embodies certain assumptions about
its intended usage. Software “architecting,” in the sense it is often used in
the architecture community (by employing conceptual components,
connectors, and their configurations, exploiting rules of specific architectural
styles, and modeling local and global architectural behavior and constraints),
was not an intended use of UML. A software architect may thus find that the
support for the desired architectural constructs found in UML only partially
satisfies his/her needs.
 Problem Domain Modeling UML provides extensive support for modeling
a problem domain. Architectural models described in ADLs, however, often
hide much of the information present in a domain model. Modeling all the
relevant information early in the development lifecycle is crucial to the
success of a software project. Therefore, a domain model should be
considered a separate and useful architectural perspective.
 Architectural Abstractions Some concepts of software architectures are
very different from those of UML. For example, connectors are first class
entities in many ADLs. We have demonstrated that the functionality of a
connector can typically be abstracted by a class or component. However,
connectors may have properties that are not directly supported by a UML
class. The under lying problem is even deeper. Although UML may provide
modeling power equivalent to or surpassing that of an ADL, the abstractions
it provides may not match an architect’s mental model of the system as
faithfully as the architect’s ADL of choice. If the primary purpose of a
Round - Trip Software Engineering using UML: From Architecture to Design and Back
15
Aman Mishra K1204B41
language is to provide a vehicle of expression that matches the intuitions and
practices of users, then that language should aspire to reflect those intentions
and practices. We believe this to be a key issue: a given language (e.g.,
UML) offers a set of abstractions that an architect uses as design tools; if
certain abstractions (e.g., components and connectors) are buried in others
(e.g., classes), the architect’s job is made more (and unnecessarily) difficult;
separating components from connectors, raising them both to visibility as
top level abstractions, and endowing them with certain features and
limitations also raises them in the consciousness of the designer.
 Architectural Styles Architecture is the appropriate level of abstraction at
which rules of a compositional style (i.e., an architectural style) can be
exploited and should be elaborated. Doing so results in a set of heuristics
that, if followed, will guarantee a resulting system certain desirable
properties. Standard UML provides no support for architectural styles; the
rules of different styles somehow have to be built into UML. We have done
so by using stereotypes. One potential problem with this approach, as
already discussed, is ensuring that style rules are correctly and completely
captured in UML.
 Architectural Views ADLs typically support modeling of a limited number
of architectural views, but ensure their full consistency and inter-
changeability. UML, on the other hand, allows designers to model a system
from many perspectives, but does not provide mechanisms for ensuring their
consistency. The presence of multiple, possibly inconsistent views in a UML
model is very likely to make the task of reverse engineering more
challenging. Both UML and ADLs can therefore benefit from techniques for
view mismatch identification and reconciliation.
Round - Trip Software Engineering using UML: From Architecture to Design and Back
16
Aman Mishra K1204B41
Current Status and Future Work
We intend to expand this work in several directions, including providing tool
support for using UML in architecture modeling, maintaining traceability and
consistency between architectural and design decisions, and combining the
existing implementation generation and reverse engineering capabilities for
ADLs and UML. We also intend to draw upon our experience to date to
suggest specific extensions needed in the UML Meta model to better support
software architectures.
We have already begun to address several of these issues. We have developed
an initial integration of DRADEL, an environment for C2 style architecture
based development, with Rational Rose, an environment for software design
and implementation with UML. The integration enables automated mapping
from an architecture described in C2’s ADL into UML using both Strategies
1 and 2. Currently, this mapping is Uni-directional and the UML model is
consistent with respect to the architecture only initially; any subsequent
refinements of the UML model may violate architectural decisions. Also, as
additional views are introduced into the design (e.g., activity and deployment
diagrams), their consistency with the existing views (e.g. state and class
diagrams) must be ensured. To this end, we are beginning to develop a set of
techniques and associated tool support to ensure full integration of views in
UML.
The resulting tool, UML/Analyzer, provides automated support for forward
and reverse engineering using UML class diagrams. In the future, this support
will be extended to other kinds of UML diagrams and to architectures
modeled in DRADEL.
Round - Trip Software Engineering using UML: From Architecture to Design and Back
17
Aman Mishra K1204B41
References
 M. Abi-Antoun and N. Medvidovic. Enabling the Refinement of a Software
Architecture into a Design. Submitted for publication, 1999.
 R. Allen and D. Garlan. A Formal Basis for Architectural Connection. ACM
Transactions on Software Engineering and Methodology, July 1997.
 A. Egyed. Automating Architectural View Integration in UML. Technical
Report USCCSE-99-511, Center for Software Engineering, University of
Southern California, Los Angeles, CA, 1999.
 A. Egyed and P. Kruchten. Rose/Architect: A Tool to Visualize
Architecture. Proceedings of the 32nd Hawaii International Conference on
System Sciences (HICSS-32), January 1999.
 D.C. Luckham and J. Vera. An Event-Based Architecture Definition
Language. IEEE Transactions on Software Engineering 21(9), September
1995.
 N. Medvidovic and D.S. Rosenblum. Assessing the Suitability of a Standard
Design Method for Modeling Software Architectures.
 N. Medvidovic, D.S. Rosenblum, J.E. Robbins, and D.F. Redmiles.
Modeling Software Architectures in the Unified Modeling Language.
Submitted for publication, 1999
 N. Medvidovic and R.N. Taylor. A Classification and Comparison
Framework for Software Architecture Description Languages.
 Object Management Group. OMG UML Specification Version 1.3 R9 Draft.
January 1999.Accessed at Web site http://uml.shl.com/.
 Rational Software Corporation. Rational Rose 98: Using Rational Rose.
 J.E. Robbins, N. Medvidovic, D.F. Red miles, and D.S. Rosenblum.
Integrating Architecture Description Languages with a Standard Design
Method.
 In Proceedings of the 20th International Conference on Software
Engineering (ICSE’98), Kyoto, Japan, April 1998.
 R.N. Taylor, N. Medvidovic, K.M. Anderson, E.J. Whitehead, Jr., J.E.
Robbins, K.A. Nies, P.Oreizy and D.L. Dubrow.

Weitere Àhnliche Inhalte

Was ist angesagt?

Function oriented design
Function oriented designFunction oriented design
Function oriented design
Vidhun T
 
Information Systems Analysis and Design Overview of OOAD, UML, and RUP
 Information Systems Analysis and Design Overview of OOAD, UML, and RUP Information Systems Analysis and Design Overview of OOAD, UML, and RUP
Information Systems Analysis and Design Overview of OOAD, UML, and RUP
Dang Tuan
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
Mahesh Bhalerao
 
01 ooad uml-01
01 ooad uml-0101 ooad uml-01
01 ooad uml-01
Niit Care
 

Was ist angesagt? (19)

SMD Unit ii
SMD Unit iiSMD Unit ii
SMD Unit ii
 
Object oriented analysis and design unit- i
Object oriented analysis and design unit- iObject oriented analysis and design unit- i
Object oriented analysis and design unit- i
 
OOAD - Systems and Object Orientation Concepts
OOAD - Systems and Object Orientation ConceptsOOAD - Systems and Object Orientation Concepts
OOAD - Systems and Object Orientation Concepts
 
Seng 123 8-ooad
Seng 123 8-ooadSeng 123 8-ooad
Seng 123 8-ooad
 
Unit 1- OOAD ppt
Unit 1- OOAD  pptUnit 1- OOAD  ppt
Unit 1- OOAD ppt
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
4+1
4+14+1
4+1
 
OO design slide
OO design slideOO design slide
OO design slide
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
System Analysis & Design AND Software Engineering Topics
System Analysis & Design AND Software Engineering TopicsSystem Analysis & Design AND Software Engineering Topics
System Analysis & Design AND Software Engineering Topics
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Ooad ch 2
Ooad ch 2Ooad ch 2
Ooad ch 2
 
Information Systems Analysis and Design Overview of OOAD, UML, and RUP
 Information Systems Analysis and Design Overview of OOAD, UML, and RUP Information Systems Analysis and Design Overview of OOAD, UML, and RUP
Information Systems Analysis and Design Overview of OOAD, UML, and RUP
 
Object oriented analysis and design unit- iii
Object oriented analysis and design unit- iiiObject oriented analysis and design unit- iii
Object oriented analysis and design unit- iii
 
Ooad
OoadOoad
Ooad
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software Development
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
01 ooad uml-01
01 ooad uml-0101 ooad uml-01
01 ooad uml-01
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
 

Andere mochten auch

Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
Slideshare
 
Software engineering presentation
Software engineering presentationSoftware engineering presentation
Software engineering presentation
MJ Ferdous
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
Joe Christensen
 
Software Engg. process models
Software Engg. process modelsSoftware Engg. process models
Software Engg. process models
Tauseef Ahmad
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
koolkampus
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Jesse Manalansan
 
USER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTUSER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPT
vicci4041
 

Andere mochten auch (20)

Social and cultural issues in requirements engineering
Social and cultural issues in requirements engineeringSocial and cultural issues in requirements engineering
Social and cultural issues in requirements engineering
 
Software System Engineering - Chapter 6
Software System Engineering - Chapter 6Software System Engineering - Chapter 6
Software System Engineering - Chapter 6
 
Software System Engineering - Chapter 5
Software System Engineering - Chapter 5Software System Engineering - Chapter 5
Software System Engineering - Chapter 5
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process Models
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design Decisions
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Software engineering presentation
Software engineering presentationSoftware engineering presentation
Software engineering presentation
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Software Engg. process models
Software Engg. process modelsSoftware Engg. process models
Software Engg. process models
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
USER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTUSER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPT
 
User Interface Design
User Interface DesignUser Interface Design
User Interface Design
 

Ähnlich wie Round - Trip Software Engineering using UML: From Architecture to Design and Back

Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System Analysis
Laura Torres
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
do_2013
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
do_2013
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdf
do_2013
 
The Application of Function Models In Software Design: A Survey Within the So...
The Application of Function Models In Software Design: A Survey Within the So...The Application of Function Models In Software Design: A Survey Within the So...
The Application of Function Models In Software Design: A Survey Within the So...
CSCJournals
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
Majong DevJfu
 

Ähnlich wie Round - Trip Software Engineering using UML: From Architecture to Design and Back (20)

Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System Analysis
 
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...
 
an analysis and new methodology for reverse engineering of uml behavioral
an analysis and new methodology for reverse engineering of uml behavioralan analysis and new methodology for reverse engineering of uml behavioral
an analysis and new methodology for reverse engineering of uml behavioral
 
Jar chapter 1
Jar chapter 1Jar chapter 1
Jar chapter 1
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdf
 
The Application of Function Models In Software Design: A Survey Within the So...
The Application of Function Models In Software Design: A Survey Within the So...The Application of Function Models In Software Design: A Survey Within the So...
The Application of Function Models In Software Design: A Survey Within the So...
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
A framework to performance analysis of software architectural styles
A framework to performance analysis of software architectural stylesA framework to performance analysis of software architectural styles
A framework to performance analysis of software architectural styles
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Software model
Software modelSoftware model
Software model
 
7 5-94-101
7 5-94-1017 5-94-101
7 5-94-101
 
Object Oriented Database
Object Oriented DatabaseObject Oriented Database
Object Oriented Database
 
Architecture Centric Development PPT Presentation
Architecture Centric Development PPT PresentationArchitecture Centric Development PPT Presentation
Architecture Centric Development PPT Presentation
 
Unit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfUnit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdf
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
Testing and verification of software model through formal semantics a systema...
Testing and verification of software model through formal semantics a systema...Testing and verification of software model through formal semantics a systema...
Testing and verification of software model through formal semantics a systema...
 
General Methodology for developing UML models from UI
General Methodology for developing UML models from UI General Methodology for developing UML models from UI
General Methodology for developing UML models from UI
 
General Methodology for developing UML models from UI
General Methodology for developing UML models from UIGeneral Methodology for developing UML models from UI
General Methodology for developing UML models from UI
 

KĂŒrzlich hochgeladen

UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
sivaprakash250
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
KreezheaRecto
 
Top Rated Call Girls In chittoor đŸ“± {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor đŸ“± {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor đŸ“± {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor đŸ“± {7001035870} VIP Escorts chittoor
dharasingh5698
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
SUHANI PANDEY
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 

KĂŒrzlich hochgeladen (20)

University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Top Rated Call Girls In chittoor đŸ“± {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor đŸ“± {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor đŸ“± {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor đŸ“± {7001035870} VIP Escorts chittoor
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 

Round - Trip Software Engineering using UML: From Architecture to Design and Back

  • 1. Round - Trip Software Engineering using UML: From Architecture to Design and Back 1 Aman Mishra K1204B41 TERM PAPER Round - Trip Software Engineering using UML: From Architecture to Design and Back Course Title: OBJECT ORIENTED ANALYSIS AND DESIGN Course Code: CSE 315 LOVELY PROFESSIONAL UNIVERSITY SUBMITTED TO: Pooja Devi Ma’am Section: K1204 SUBMITTED BY: Aman Mishra REGISTRATION NUMBER: 11210617 Date of Allotment: 31-01-2015 Date of Submission: 13-04-2015
  • 2. Round - Trip Software Engineering using UML: From Architecture to Design and Back 2 Aman Mishra K1204B41 Acknowledgement Prima facie, I am grateful to the God for the good health and wellbeing that were necessary to complete this book. I wish to express my sincere thanks to Pooja Ma’am for providing me with all the necessary facilities for the Term Paper. I place on record, my sincere thanks to her, for the continuous encouragement. I am extremely thankful and indebted to her for sharing expertise, sincere, valuable guidance and encouragement extended to me. I take this opportunity to express gratitude to all of my friend’s for their help and support. I also thank my parents for the unceasing encouragement, support and attention. I am also grateful to my roommates who supported me through this venture. I also place on record, my sense of gratitude to one and all, who directly or indirectly, have let their hand in this venture.
  • 3. Round - Trip Software Engineering using UML: From Architecture to Design and Back 3 Aman Mishra K1204B41 Contents  Abstract  What is RTE?  Characteristics of RTE  Introduction  Using UML to Model Software Architectures  Reconciling Architectural View Mismatches  Observations  Current Status and Future Work  References
  • 4. Round - Trip Software Engineering using UML: From Architecture to Design and Back 4 Aman Mishra K1204B41 Abstract A key promise of software architecture research is that better software systems can result from modeling their important aspects throughout development. Choosing which system aspects to model and how to evaluate them are two decisions that frame software architecture research. Part of the software architecture community, primarily from academia, has focused on analytic evaluation of architectural descriptions. Another part of the community, primarily from industry, has chosen to model a wide range of issues that arise in software development, with a family of models that span and relate the issues. One problem that neither community has adequately addressed to date is round-trip software engineering: consistently refining a high-level model of a software system into a lower-level model (forward engineering) and abstracting a low-level model into a higher-level one (reverse engineering). This paper investigates the possibility of using the Unified Modeling Language (UML), an object-oriented design language, to that end. The paper assesses UML’s suitability for modeling architectural concepts and provides a framework for identifying and resolving mismatches within and across different UML views, both at the same level of abstraction and across levels of abstraction. Finally, the paper briefly discusses our current tool support for round- trip software engineering. What is RTE? Round-trip engineering (RTE) is a functionality of software development tools that synchronizes two or more related software artifacts, such as, source code, models, configuration files, and other documents. The need for round-trip engineering arises when the same information is present in multiple artifacts and therefore an inconsistency may occur if not all artifacts are consistently updated to reflect a given change. For example, some piece of information was added to/changed in only one artifact and, as a result, it became missing in/inconsistent with the other artifacts. Round-trip engineering is closely related to traditional software engineering disciplines: forward engineering (creating software from specifications), reverse engineering (creating specifications from existing software), and reengineering
  • 5. Round - Trip Software Engineering using UML: From Architecture to Design and Back 5 Aman Mishra K1204B41 (understanding existing software and modifying it). Round-trip engineering is often wrongly defined as simply supporting both forward and reverse engineering. Characteristics of RTE The key characteristic of round-trip engineering that distinguishes it from forward and reverse engineering is the ability to synchronize existing artifacts that evolved concurrently by incrementally updating each artifact to reflect changes made to the other artifacts. Furthermore, forward engineering can be seen as a special instance of RTE in which only the specification is present and reverse engineering can be seen as a special instance of RTE in which only the software is present. Many reengineering activities can also be understood as RTE when the software is updated to reflect changes made to the previously reverse engineered specification. Another characteristic of round-trip engineering is automatic update of the artifacts in response to automatically detected inconsistencies. In that sense, it is different from forward- and reverse engineering which can be both manual (traditionally) and automatic (via automatic generation or analysis of the artifacts). The automatic update can be either instantaneous or on-demand. In instantaneous RTE, all related artifacts are immediately updated after each change made to one of them. In on- demand RTE, authors of the artifacts may concurrently evolve the artifacts (even in a distributed setting) and at some point choose to execute matching to identify inconsistencies and choose to propagate some of them and reconcile potential conflicts. Round trip engineering supports an iterative development process. After you have synchronized your model with revised code, you are still free to choose the best way to work – make further modifications to the code or make changes to your model. You can synchronize in either direction at any time and you can repeat the cycle as many times as necessary. Round-trip engineering is critical for maintaining consistency among multiple models and between the models and the code in Object Management Group's (OMG) Model-driven architecture. OMG proposed the QVT (query/view/transformation) standard to handle model transformations required for MDA. To date, a few implementations of the standard have been created. (Need to present practical experiences with MDA in relation to RTE).
  • 6. Round - Trip Software Engineering using UML: From Architecture to Design and Back 6 Aman Mishra K1204B41 Introduction The basic promise of software architecture research is that better software systems can result from modeling their important aspects during, and especially early in the development. Choosing which aspects to model and how to evaluate them are two decisions that frame software architecture research. Part of the software architecture research community has focused on analytic evaluation of architectural descriptions. A large number of Architecture Description Languages (ADLs) has been proposed. Each ADL embodies a particular approach to the specification and evolution of an architecture, with specialized modeling and analysis techniques that address specific system aspects in depth. Another part of the community has focused on modeling a wide range of issues that arise in software development, with a family of models that span and relate the issues of concern. However, by emphasizing breadth over depth, many problems and errors can potentially go undetected. One key cause is the lack of clear understanding of the relationship among the different models; two related problems are refining high-level models into lower-level models (forward engineering) and abstracting low-level models into higher-level ones (reverse engineering), depicted in Figure1. Table1 summarizes the two predominant approaches to addressing software architectures. Although the positions of the two communities are more complex
  • 7. Round - Trip Software Engineering using UML: From Architecture to Design and Back 7 Aman Mishra K1204B41 than represented in the table, we believe that the table provides a useful, if simplified, overview of their relationship. This issue paper investigates the possibility of using the Unified Modeling Language (UML), an object-oriented design language, to span the two communities. UML is well suited for this because it provides a large, useful, and extensible set of predefined constructs, it is semi-formally defined, it has the potential for substantial tool support, and it is based on experience with mainstream development methods. The paper is based on a set of issues we have explored to date. The key aspects of our work have been:  an assessment of UML’s suitability for modeling architectural concepts provided by ADLs;  a framework for identifying and resolving mismatches within and across different UML models, both at the same level of abstraction and across levels of abstraction; and  tool support for integrating the above concepts into a round-trip engineering environment. In this paper, we briefly present three possible approaches to using UML to model software architectures. We then discuss a view integration framework used to support automated validation of a modeled software system’s integrity. Finally, we make some general observations on using UML to model software architectures, as well as ensuring consistent and complete refinement of architectures into designs and reverse- engineering of architectures from designs.
  • 8. Round - Trip Software Engineering using UML: From Architecture to Design and Back 8 Aman Mishra K1204B41 Using UML to Model Software Architectures The four-layer metamodeling architecture of UML suggests three possible strategies for modeling software architectures in UML:  use UML “as is,”  constrain the UML meta model using UML’s built-in extension mechanisms, and  Augment the UML Meta model to directly support the needed architectural concepts. We use a diagram that conceptually depicts UML’s four-layer metamodeling architecture, shown in Figure2, to illustrate the three approaches. Each approach has certain potential advantages and disadvantages for forward and reverse engineering, discussed below.  Strategy 1: Using UML “As Is” The simplest strategy is to use the existing UML model to represent software architectures (Figure2a). A major advantage of the approach is that it results in architectural models that are immediately understandable by any UML user and manipulable by UML-compliant tools. However, the approach would provide no means for explicitly representing the relationship between existing UML constructs and architectural concepts for which there is no direct UML counterpart (e.g., software connectors or architectural style rules). Rather, this relationship would have to be maintained implicitly by the software architect. This approach would thus also present a considerable challenge in trying to reverse engineer a system’s architecture from its UML model. None of the UML artifacts would contain any architectural information or explicitly represent architect’s intentions. Instead, the architecture would have to be inferred from the design elements and their interactions. The repeatability of such a process is questionable: it is likely that different people would deem different elements of the UML model architecturally relevant, resulting in different (reverse engineered) architectures.
  • 9. Round - Trip Software Engineering using UML: From Architecture to Design and Back 9 Aman Mishra K1204B41  Strategy 2: Constraining UML The space of software design situations and concerns for which UML is intended exceeds that of software architectures. Therefore, one possible approach to modeling architectures in UML is to constrain UML via stereotypes to address new concerns in software development. Conceptually, this approach can be represented using UML’s metamodeling architecture from Figure 2b: only the relevant portion of the UML model is made available to the software architect. To date, we have applied this strategy to three ADLs: C2, Wright, and Rapide. The major advantage of this approach is that it explicitly represents and enforces architectural constraints. Furthermore, an architecture specified in this manner would still be manipulable by standard UML tools and would be understandable by UML users (with some added effort in studying the stereotypes, partly expressed in OCL). Finally, the task of reverse engineering the architecture from a UML model with explicitly specified stereotypes would be greatly simplified. A disadvantage of the approach is that it may be difficult to fully and correctly specify the boundaries of the modeling space in Figure2b. Additionally, as a practical concern, no tools that enforce OCL constraints in UML specifications currently exist. Finally, our extensive study of relating UML and ADLs using this strategy has shown that certain ADL features for modeling architectural semantics
  • 10. Round - Trip Software Engineering using UML: From Architecture to Design and Back 10 Aman Mishra K1204B41 cannot be easily (or at all) represented in UML. An example is Rapide’s event causality. Another issue related to this strategy is the manner in which ADL-specific stereotypes are actually used within UML (see Figure3). There are two possibilities:  UML is used as the primary development notation, from which excursions are made to various ADLs (with the help of ADL-specific stereotypes) in order to exploit the existing ADL tool support;  UML is used as the only development notation and ADL-specific stereotypes are accompanied by ADL-specific tools that have been modified to operate on UML specifications. There are difficulties associated with both options. Using UML as the primary notation requires transformations both from a UML model to its ADL counterpart and from a possibly modified ADL model back to UML. This is a difficult task. To date, we have only shown how a UML model (extended via stereotypes) can be mapped to an ADL, but not vice versa. Using UML as the sole notation, on the other hand, requires modification, and perhaps reimplementation, of tool support that already exists for specific ADLs.  Strategy 3: Augmenting UML One obvious, and therefore tempting, approach to using UML to support the needs of software architectures is to extend UML’s meta model to directly support architectural concepts, as shown in Figure2c. Extending the Meta model helps to formally incorporate new modeling capabilities into UML. The potential benefit of such an extension is that it could fully capture every desired feature of every ADL. Furthermore, if features from the extended version are used in modeling a system’s design, the task of reverse engineering the system’s architecture from the design is greatly simplified.
  • 11. Round - Trip Software Engineering using UML: From Architecture to Design and Back 11 Aman Mishra K1204B41 However, such an extension to UML would not come without a price. The challenge of standardization is finding a language that is general enough to capture needed concepts without adding too much complexity, while such a modification would result in a notation that is overly complex. Moreover, unless the extensions were made part of the UML standard, they would be nonconforming, incompatible with UML-compliant tools, and potentially incomprehensible to architects. Reconciling Architectural View Mismatches A major emphasis in architecture-based software development is placed on identifying and reconciling mismatches within and among different views of a system (as enabled, e.g., by UML diagrams at different levels of abstraction). One face of our work has been to investigate the ways of describing and identifying the causes of architectural mismatches in UML views. To this end, we have devised and applied a view integration framework, accompanied with a set of activities and techniques for identifying mismatches in an automatable fashion, described below. This approach exploits redundancy between views: for instance, if view A contains information about view B, this information can be seen as a constraint on B. The view integration framework is used to enforce such constraints and, thereby, the consistency across the views. In addition to constraints and consistency rules, our view integration framework also defines what information can be exchanged across different views and how it can be exchanged. This is critical for automating the process of identifying and resolving inconsistencies. The view integration framework is depicted in Figure4. The System Model represents the (UML) model of the designed software system. In the course of forward software engineering,
  • 12. Round - Trip Software Engineering using UML: From Architecture to Design and Back 12 Aman Mishra K1204B41 new information is added to the system model and existing views are updated; in the case of reverse engineering, information from existing views is abstracted to create new, higher level views (View Synthesis). Whenever new information is added or a new view created, it must be validated against the system model to ensure its conceptual integrity (View Analysis). View Analysis involves the following major activities:  Mapping identifies related pieces of information and there by describes what information is overlapping. Mapping is often done manually via naming dictionaries or traceability matrices. A major part of our work has focused on automating this task by using patterns, shared interfaces, and inter-view dependency traces.  Transformation of model elements in order to simplify, i.e., generalize, a detailed view (abstraction) or exchange information between different types of views (translation).  Differentiation traverses the model to identify potential mismatches within its elements. Potential mismatches can be automatically identified through the use of rules and constraints. Mismatch identification rules can frequently be complemented by mismatch resolution rules. Automated differentiation is strongly dependent on transformation and mapping. To date, we have applied our view integration framework on several UML views: class and object diagrams, sequence diagrams, and state chart diagrams. We have
  • 13. Round - Trip Software Engineering using UML: From Architecture to Design and Back 13 Aman Mishra K1204B41 also expanded the use of the framework beyond UML, to architectural styles (e.g., C2, pipe-and-filter, layered, etc.) And design patterns. A strong benefit of this framework is that it can be applied to both forward and reverse engineering. In forward engineering, the architect may start off by describing the architecture, followed by the design (and, subsequently, the implementation). Our view integration framework may then be applied to ensure that the design is consistent internally as well as with higher-level abstractions (including the architecture). Thus, the first step includes the creation of views at various levels, whereas the second step validates the conceptual integrity of those views. In reverse engineering, the architect follows essentially the same procedure. Obviously, a distinction is in step one where the architecture is now created from the design; however, the validation process (step two) remains the same. When ensuring the integrity of two models, it does not matter which one is created first: interview consistency and completeness can be validated either way. As outlined in our integration framework, consistency between views at various levels of abstraction is enabled by transforming lower-level views into higher-level ones. Thus, our framework has the potential to further support reverse engineering by semi-automatically generating higher-level abstractions from lower-level models. This is achieved by using the transformation techniques summarized above. At that point, step two of our reverse engineering process is applied to ensure that subsequent changes to the derived abstraction (e.g., the architecture) remain consistent with the initial model (e.g., the design). Observations Our effort to date has furthered our understanding of UML’s suitability for supporting architecture based, roundtrip software engineering. We have gained valuable insights on which we intend to base our future work. These insights are discussed below.
  • 14. Round - Trip Software Engineering using UML: From Architecture to Design and Back 14 Aman Mishra K1204B41  Software Modeling Philosophies Neither UML nor ADLs constrain the choice of implementation language or require that any two components be implemented in the same language or thread of control. ADLs or styles may assume particular communication protocols and UML typically supports such restrictions. The behavior of architectural constructs (components, connectors, communication ports, and so forth) can usually be modeled with UML’s sequence, collaboration, state chart, and activity diagrams. Existing ADLs are usually able to support only a subset of these kinds of semantic models.  Assumptions Like any notation, UML embodies certain assumptions about its intended usage. Software “architecting,” in the sense it is often used in the architecture community (by employing conceptual components, connectors, and their configurations, exploiting rules of specific architectural styles, and modeling local and global architectural behavior and constraints), was not an intended use of UML. A software architect may thus find that the support for the desired architectural constructs found in UML only partially satisfies his/her needs.  Problem Domain Modeling UML provides extensive support for modeling a problem domain. Architectural models described in ADLs, however, often hide much of the information present in a domain model. Modeling all the relevant information early in the development lifecycle is crucial to the success of a software project. Therefore, a domain model should be considered a separate and useful architectural perspective.  Architectural Abstractions Some concepts of software architectures are very different from those of UML. For example, connectors are first class entities in many ADLs. We have demonstrated that the functionality of a connector can typically be abstracted by a class or component. However, connectors may have properties that are not directly supported by a UML class. The under lying problem is even deeper. Although UML may provide modeling power equivalent to or surpassing that of an ADL, the abstractions it provides may not match an architect’s mental model of the system as faithfully as the architect’s ADL of choice. If the primary purpose of a
  • 15. Round - Trip Software Engineering using UML: From Architecture to Design and Back 15 Aman Mishra K1204B41 language is to provide a vehicle of expression that matches the intuitions and practices of users, then that language should aspire to reflect those intentions and practices. We believe this to be a key issue: a given language (e.g., UML) offers a set of abstractions that an architect uses as design tools; if certain abstractions (e.g., components and connectors) are buried in others (e.g., classes), the architect’s job is made more (and unnecessarily) difficult; separating components from connectors, raising them both to visibility as top level abstractions, and endowing them with certain features and limitations also raises them in the consciousness of the designer.  Architectural Styles Architecture is the appropriate level of abstraction at which rules of a compositional style (i.e., an architectural style) can be exploited and should be elaborated. Doing so results in a set of heuristics that, if followed, will guarantee a resulting system certain desirable properties. Standard UML provides no support for architectural styles; the rules of different styles somehow have to be built into UML. We have done so by using stereotypes. One potential problem with this approach, as already discussed, is ensuring that style rules are correctly and completely captured in UML.  Architectural Views ADLs typically support modeling of a limited number of architectural views, but ensure their full consistency and inter- changeability. UML, on the other hand, allows designers to model a system from many perspectives, but does not provide mechanisms for ensuring their consistency. The presence of multiple, possibly inconsistent views in a UML model is very likely to make the task of reverse engineering more challenging. Both UML and ADLs can therefore benefit from techniques for view mismatch identification and reconciliation.
  • 16. Round - Trip Software Engineering using UML: From Architecture to Design and Back 16 Aman Mishra K1204B41 Current Status and Future Work We intend to expand this work in several directions, including providing tool support for using UML in architecture modeling, maintaining traceability and consistency between architectural and design decisions, and combining the existing implementation generation and reverse engineering capabilities for ADLs and UML. We also intend to draw upon our experience to date to suggest specific extensions needed in the UML Meta model to better support software architectures. We have already begun to address several of these issues. We have developed an initial integration of DRADEL, an environment for C2 style architecture based development, with Rational Rose, an environment for software design and implementation with UML. The integration enables automated mapping from an architecture described in C2’s ADL into UML using both Strategies 1 and 2. Currently, this mapping is Uni-directional and the UML model is consistent with respect to the architecture only initially; any subsequent refinements of the UML model may violate architectural decisions. Also, as additional views are introduced into the design (e.g., activity and deployment diagrams), their consistency with the existing views (e.g. state and class diagrams) must be ensured. To this end, we are beginning to develop a set of techniques and associated tool support to ensure full integration of views in UML. The resulting tool, UML/Analyzer, provides automated support for forward and reverse engineering using UML class diagrams. In the future, this support will be extended to other kinds of UML diagrams and to architectures modeled in DRADEL.
  • 17. Round - Trip Software Engineering using UML: From Architecture to Design and Back 17 Aman Mishra K1204B41 References  M. Abi-Antoun and N. Medvidovic. Enabling the Refinement of a Software Architecture into a Design. Submitted for publication, 1999.  R. Allen and D. Garlan. A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, July 1997.  A. Egyed. Automating Architectural View Integration in UML. Technical Report USCCSE-99-511, Center for Software Engineering, University of Southern California, Los Angeles, CA, 1999.  A. Egyed and P. Kruchten. Rose/Architect: A Tool to Visualize Architecture. Proceedings of the 32nd Hawaii International Conference on System Sciences (HICSS-32), January 1999.  D.C. Luckham and J. Vera. An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering 21(9), September 1995.  N. Medvidovic and D.S. Rosenblum. Assessing the Suitability of a Standard Design Method for Modeling Software Architectures.  N. Medvidovic, D.S. Rosenblum, J.E. Robbins, and D.F. Redmiles. Modeling Software Architectures in the Unified Modeling Language. Submitted for publication, 1999  N. Medvidovic and R.N. Taylor. A Classification and Comparison Framework for Software Architecture Description Languages.  Object Management Group. OMG UML Specification Version 1.3 R9 Draft. January 1999.Accessed at Web site http://uml.shl.com/.  Rational Software Corporation. Rational Rose 98: Using Rational Rose.  J.E. Robbins, N. Medvidovic, D.F. Red miles, and D.S. Rosenblum. Integrating Architecture Description Languages with a Standard Design Method.  In Proceedings of the 20th International Conference on Software Engineering (ICSE’98), Kyoto, Japan, April 1998.  R.N. Taylor, N. Medvidovic, K.M. Anderson, E.J. Whitehead, Jr., J.E. Robbins, K.A. Nies, P.Oreizy and D.L. Dubrow.