39
Università degli Studi dell’Aquila L07: Views and Viewpoints Henry Muccini DISIM Department, Universityof L’Aquila, Italy [email protected]

Software Architecture: views and viewpoints

Embed Size (px)

DESCRIPTION

This is an introductory lecture to Software Architecture Views and Viewpoints, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)

Citation preview

Page 1: Software Architecture: views and viewpoints

Università degli Studi dell’Aquila

L07: Views and Viewpoints

Henry Muccini

DISIM Department, University of L’Aquila, Italy

[email protected]

Page 2: Software Architecture: views and viewpoints

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

Page 3: Software Architecture: views and viewpoints

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

Page 4: Software Architecture: views and 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

Page 5: Software Architecture: views and viewpoints

Architecture as a set of ViewpointsArchitecture as a set of Viewpoints

Page 6: Software Architecture: views and viewpoints

Structure

Behavior

Hw/Sw

Real-timeReal-time

Page 7: Software Architecture: views and viewpoints
Page 8: Software Architecture: views and viewpoints

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

Page 9: Software Architecture: views and viewpoints
Page 10: Software Architecture: views and viewpoints
Page 11: Software Architecture: views and viewpoints
Page 12: Software Architecture: views and viewpoints
Page 13: Software Architecture: views and viewpoints

ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural

Description, 2011

Page 14: Software Architecture: views and viewpoints

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.”

Page 15: Software Architecture: views and viewpoints

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.

Page 16: Software Architecture: views and viewpoints

ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural

Description, 2011

Page 17: Software Architecture: views and viewpoints

[…] “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

Page 18: Software Architecture: views and viewpoints

Software Architect

Software Developer

Financial manager

Business manager

Page 19: Software Architecture: views and viewpoints

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

Page 20: Software Architecture: views and viewpoints

Models

Use CaseModel

DesignModel

Depl.Model

Impl.Model

TestModel

AnalysisModel

Views

Page 21: Software Architecture: views and viewpoints

[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.

Page 22: Software Architecture: views and viewpoints

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)

Page 23: Software Architecture: views and viewpoints

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.

Page 24: Software Architecture: views and viewpoints

ArchitecturalViewpoints

Stakeholders

Model KindsSystem Concerns Architectural Languages

Correspondences

Architectural

Assets

Repository

Architecture

Description

B

Architecture

Description

C

Architecture

Description

A

Architecture

Framework

Page 25: Software Architecture: views and viewpoints

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

Page 26: Software Architecture: views and viewpoints

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.

Page 27: Software Architecture: views and viewpoints

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]

Page 28: Software Architecture: views and viewpoints

c1c1

mkmksc

stk

Viewpoints

Stakeholders

Model KindsSystem Concerns Architectural Languages

Correspondences

c1c1Viewpoints

vp

Page 29: Software Architecture: views and viewpoints

CASE STUDY

Page 30: Software Architecture: views and viewpoints

Viewpoints: structural, behaviour, web services

ADLs: Diasuite, UML

Extensions: REST services metamodel, LTS

Stakeholders: sw architect, end-user, developer, sys eng.

Page 31: Software Architecture: views and viewpoints

42010 AF definition

Page 32: Software Architecture: views and viewpoints

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.

Page 33: Software Architecture: views and viewpoints
Page 34: Software Architecture: views and viewpoints

CONCLUSIONS

Page 35: Software Architecture: views and viewpoints

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

Page 36: Software Architecture: views and viewpoints

Our vision

Reuse, compose, and extend ADLs and AFs insteadof creating new onesof creating new ones

Page 37: Software Architecture: views and viewpoints

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

Page 38: Software Architecture: views and viewpoints

MEGAFDUALLy byADL

other

engines

MEGAF

EMF

AM3 AMW ATL

AMMA

Page 39: Software Architecture: views and viewpoints

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