Download - Software Architecture: views and viewpoints
Università degli Studi dell’Aquila
L07: Views and Viewpoints
Henry Muccini
DISIM Department, University of L’Aquila, Italy
The material in these slides may be freely reproduced
and distributed, partially or totally, as far as an explicit
reference or acknowledge to the material author is
preserved.
Henry Muccini
Intro to Software Testing
Structural Testing
Model-based Testing
Architecture-based Testing
Lab
Intro to SA
SA Case study
SA style
ADLs
Design Decisions
Views/Viewpoints
Non Functional S.E.
Performance modeling
Performance analysis
UML
UML Profiling
Lab
Views/Viewpoints
Software Architecture
The Software Architecture is the earliest model of the whole software system created along the software lifecycle
“Traditional” definition:
→A set of components and connectors communicating through →A set of components and connectors communicating through interfaces
“Recent/Future” understanding:
→A set of architecture design decisions taken to generate the architecture artifact
→Focus on set of Views and Viewpoints, looking at stakeholders and their concern
Architecture as a set of ViewpointsArchitecture as a set of Viewpoints
Structure
Behavior
Hw/Sw
Real-timeReal-time
…
Two important views
3
Structural Spec. Behavioral Spec.
0 12 4
5
-Formal ADLs
-UML notations
- Posets, pre-post conditions
- Process Algebras
- Labeled Transition Systems,
IO Automata, IOLTS
- Statechart, UML state machine
ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural
Description, 2011
Architecture Description:
�Architecture Description is the practice of expressing
architectures (ISO/IEC 42010)
�“The practices of recording software, system and
enterprise architectures so that architectures can be enterprise architectures so that architectures can be
understood, documented, analysed and realized.”
�“Architecture descriptions are created by architects
and used by architects and other stakeholders
throughout all stages of a system’s life cycle, from
development through operation and maintenance.”
1) Architecture Viewpoints:
define the contents of each architecture view;
2) Architecture Frameworks (AFs):
coordinated set of viewpoints for use within a
particular stakeholder community or domain of
coordinated set of viewpoints for use within a
particular stakeholder community or domain of
application (e.g., GERAM, TOGAF, MODAF);
3) Architecture Description Languages (ADLs): any
mode of expression used in an architecture
description.
ADL provides model kinds selected to frame one
or more concerns.
ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural
Description, 2011
[…] “a viewpoint is a way of looking at a system; a view is what you see”
“A viewpoint defines the conventions (such as notations, languages and
types of models) for constructing a certain kind of view”
[…]”viewpoint refers to the conventions for representing an architecture
relative to one set of concerns.”
“A view is the result of applying a viewpoint to a particular system of “A view is the result of applying a viewpoint to a particular system of
interest”
[…] “viewpoints as first-class entities of architecture descriptions.”
view : viewpoint :: program : programming language
From the ISO/IEC/IEEE 42010
Software Architect
Software Developer
Financial manager
Business manager
…
…
Logical View
End-user
Functionality
Implementation (Development) View
Programmers
Software management
Object Model
of Design
Static Organization
of the Software
RUP 4+1 views
Functionality Software management
Process View
Performance
Scalability
Throughput
System integrators
Deployment View
Conceptual Physical
Use Case View
Concurrency and
Synchronization
Software Mapping
To HwSystem engineering
System topology
Delivery, installation
Communication
Models
Use CaseModel
DesignModel
Depl.Model
Impl.Model
TestModel
AnalysisModel
Views
[Applied]
Still based on Architectural views…
→Conceptual
→Module
→Execution
[Applied] C. Hofmeister, R. Nord
and D. Soni. Applied Software
Architecture. Addison-Wesley.
1998.
Architectural views: Applied SA [Applied] & UML Process [UMLProcess]
→Execution
→Code
… but more Diagrams for each view
[UMLProcess][UMLProcess] I. Jacobson, G.
Booch and J. Rumbaugh.
The Unified Software Development
Process. Addison Wesley,
Object Technology Series, 1999.
Using multiple views has become standard practice in
industry
• IEEE Std 1471 (2000) -> … -> ISO/IEC/IEEE 42010 (2011)
Based on a survey we conducted with 48 practitioners• Based on a survey we conducted with 48 practitioners
[Survey2012], and about the usage of ALs in industry
� 85% uses multiple views
[Survey2012] “What Industry needs from Architectural Languages: A Survey”, I. Malavolta, P. Lago, H.
Muccini, P. Pelliccione, A. Tang (under review)
MEGAF is an MDE approach to create new architecture
To provide an infrastructure that enables to build reusable architecture frameworks
by treating views, viewpoints,
concerns as first-class entities.
MEGAF is an MDE approach to create new architecture
frameworks by means of mechanisms:
i. to storestore, retrieveretrieve, and combinecombine existing viewpoints, by properly
selecting and reusing models previously defined and resident in
MEGAF;
ii. to definedefine correspondencescorrespondences among views, viewpoints,
stakeholders, system concerns and their elements;
iii. to enforce consistencyenforce consistency and completeness checks completeness checks based on
defined architectural relationships and rules among elements.
ArchitecturalViewpoints
Stakeholders
Model KindsSystem Concerns Architectural Languages
Correspondences
Architectural
Assets
Repository
Architecture
Description
B
Architecture
Description
C
Architecture
Description
A
Architecture
Framework
c1c1
mkmksc
stk
Viewpoints
Stakeholders
Model KindsSystem Concerns Architectural Languages
CorrespondencesArchitecture
Framework
alal
afafc1c1Viewpoints
Architecture
Description
B
Architecture
Description
C
Architecture
Description
A
How to manage models that contains classes
and other models?
vp adad
Technological solution
A megamodelmegamodel is a kind of model in which elements could
represent and/or refer to models or metamodels [Bézivin et al.,
MEGAF is realized via megamodelingmegamodeling techniques
represent and/or refer to models or metamodels [Bézivin et al.,
OOPSLA/GPCE 2004]
A megamodel specifies properties and rules governing model
construction, including multiple models and metamodels
→Models and metamodels are first-class entities
→It offers also the possibility to specify relationships between
them and to navigate them.
MEGAF meta megamodel
GMM4SA meta megamodel
(describing howto build 42010–conformantmegamodels)
In MEGAF, a In MEGAF, a megamodelmegamodel isis aarepositoryrepository of AD of AD elementselements
�Megamodels in combination with weaving models for coordinating sets of models;
�The navigability and traceability extension.
[Jouault et. al, ACM SAC 2010]
c1c1
mkmksc
stk
Viewpoints
Stakeholders
Model KindsSystem Concerns Architectural Languages
Correspondences
c1c1Viewpoints
vp
CASE STUDY
Viewpoints: structural, behaviour, web services
ADLs: Diasuite, UML
Extensions: REST services metamodel, LTS
Stakeholders: sw architect, end-user, developer, sys eng.
42010 AF definition
Work Done…
Definition of the GMM4SA metamegamodel, fully compliant to the ISO/IEC/IEEE 42010
�Each megamodel conforming to it must satisfy those relationships in order to be valid:
� definition of conformance of an AF to the 42010
� definition of conformance of an AD to an AF
� definition AF correspondence rules� definition AF correspondence rules
Specification of the model weaving and composition mechanisms
Use of the AM3 megamodel management component (in the AMMA platform) to record all available resources, acting as an MDE repository.
CONCLUSIONS
Future Work
�Advanced searches
�Overlapping viewpoints management
�Usability and GUI
�Extension and customization of repository elements�Extension and customization of repository elements
�AF extensions can create problems to the
corresponding AD
�Application to industrial projects
Our vision
Reuse, compose, and extend ADLs and AFs insteadof creating new onesof creating new ones
Our solution
Darwin/FSP
ACME
AADL
SA UML profiles pivot
metamodel
(A0)
Extended/customized ADLgenerated in byADL
BPMN
FTVP
1
VP
1
VP
2
VP
2St1
MK1
Composed AFgenerated in MEGAF
AADL
xADLother ADLs
(A0)
MEGAF: a model-driven infrastructure for building reusable
and extensible architecture frameworks
MEGAF: a model-driven infrastructure for building reusable
and extensible architecture frameworks
DUALLy: an automated approach for ADLs interoperabilityDUALLy: an automated approach for ADLs interoperability
byADL: an approach to adapt and customize existing ADLsbyADL: an approach to adapt and customize existing ADLs
MEGAFDUALLy byADL
other
engines
MEGAF
EMF
AM3 AMW ATL
AMMA
megaf.di.univaq.it
• Preliminary prototype in Eclipse, usingmegamodeling techniques
dually.di.univaq.itdually.di.univaq.it
• Prototype in Eclipse, using model-drivenengineering techniques
byadl.di.univaq.it
• Prototype in Eclipse, using model-driven engineering techniques