[2016/2017] architectural languages

34
Ivano Malavolta ARCHITECTURAL LANGUAGES VRIJE UNIVERSITEIT AMSTERDAM

Upload: ivano-malavolta

Post on 23-Jan-2017

26 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [2016/2017] Architectural languages

Ivano Malavolta

ARCHITECTURAL

LANGUAGES

VRIJEUNIVERSITEITAMSTERDAM

Page 2: [2016/2017] Architectural languages

Historical View

25+ years back

I have to share with architects the architecture

solution I have in mind.

What shall I use?

software architect

Page 3: [2016/2017] Architectural languages

Historical View

But architecting makessense if we can run some

automatedanalysis (and more)!academia

“Aside from providing clear and precisedocumentation, the primary purpose ofspecifications is to provide automatedanalysis of the document and to exposevarious kinds of problems that wouldotherwise go undetected” (PW1992)

“Fourth, an architectural systemrepresentation is often essentialto the analysis and description ofthe highl-level properties of acomplex system” (GS1994)

Page 4: [2016/2017] Architectural languages

Historical View

core concerns

Comp&ConSpec

Interconnectio

n

Composition

Abstraction

Reusability

Configuration

Heterogeneity

Analysis

Components and connectorsDistribution and configurationExpected behaviourPatterns, stylesHW/SW Deployment

Page 5: [2016/2017] Architectural languages

1st generation ALs

Darwin FSP

ACME

Rapide Wright

ACME

1st generation ALsSupport components and connectors specification, their overall interconnection, composition, abstraction, reusability, configuration, heterogeneity, and analysis.

Page 6: [2016/2017] Architectural languages

Examples of 1st generation ALs

Nenad Medvidovic, Eric M. Dashofy, Richard N. Taylor: Moving architectural description from under the technology lamppost. Information & Software Technology 49(1): 12-31 (2007)

Page 7: [2016/2017] Architectural languages

Basic example: C2

Designed for systems that have a GUI

• component-based– written in any programming language

– easily reused and substituted

• scalability– no assumption about how components communicate

– components may be running in a distributed, heterogeneous environment

• flexibility– architectures may be changed dynamically

Page 8: [2016/2017] Architectural languages

The C2 communication rules

• The communication between components and connectors is achieved solely exchanging messages

• The communication is based on notifications and requests

• Both component top domain and bottom domain can notify or request messages

Comp1

Comp2

Top

Top

Bottom

Bottom Comp1 receives a request

Comp1 sends a request

Comp2 receives a request Comp2 sends a notification

Comp1 receives a notification

Comp1 sends a notification

Requests Notifications

Page 9: [2016/2017] Architectural languages

C2 composition rules

1. The top of a component may be connected to the bottom of a single connector

Comp1 NOT Permitted

Comp1

Connector Bottom

Connector Top

Permitted

Page 10: [2016/2017] Architectural languages

C2 composition rules

2. The bottom of a component may be connected to the top of a single connector.

Comp1

NOT PermittedComp1

Connector Bottom

Connector Top

Permitted

Page 11: [2016/2017] Architectural languages

C2 composition rules

3. There is no bound on the number of components or connectors that may be attached to a single connector.

Comp1 Comp2 Comp3

Permitted

Page 12: [2016/2017] Architectural languages

C2 composition rules

4. When two connectors are attached to each other, it must be from the bottom of one to the top of the other.

Connector Bottom

Connector Top

Connector Bottom

Connector Top

Connector Bottom

Connector Top

Permitted

Connector Bottom

Connector Top

Connector Bottom

Connector Top

NOT Permitted

Page 13: [2016/2017] Architectural languages

C2 composition rules

5. Components can communicate only through connectors

Comp1

Comp2

NOT PermittedPermitted:

Following rule 4

Page 14: [2016/2017] Architectural languages

Example: elevator system

ElevatorADT1

ElevatorPanel1

Scheduler

BuildingPanel

ElevatorADT2

ElevatorPanel2

ElevatorSynchronizer

ElevatorADT1

ElevatorPanel1

Scheduler

BuildingPanel

ElevatorADT2

ElevatorPanel2

ElevatorSynchronizer

C2 connector

C2 component

request

notification

comm. channel

Page 15: [2016/2017] Architectural languages

Issues of 1st generation ALs

• Focus exclusively on technology

• The broader context was completely missing– Relation to system requirements

– Constraints imposed by implementation platforms

– Characteristics of application domains

– Organizational structure and politics

• Often targeted at research environments– Awkward syntax and/or semantics

– Modeling rigidity

• Inadequate tool support • UML

– Video killed the radio star...

Page 16: [2016/2017] Architectural languages

A return…

Page 17: [2016/2017] Architectural languages

Historical View

core concerns

Config. managem

ent

Distribution

Product lines

StylesDifferent domains

Page 18: [2016/2017] Architectural languages

2nd generation ALs

UML 2.0AADL

Koala xADL 2.0

ACME

2nd generation ALsModeling support for: configuration management, distribution, and product lines. Structural specifications integrated with behavior with

the introduction of many formalisms such as pre- and post-conditions, process algebras, statecharts, POSets, CSP, π-calculus

Page 19: [2016/2017] Architectural languages

Examples of 2nd generation ALs

Nenad Medvidovic, Eric M. Dashofy, Richard N. Taylor: Moving architectural description from under the technology lamppost. Information & Software Technology 49(1): 12-31 (2007)

• UML 2.0 ß UML 1.x

• AADL ß MetaH– we will have a dedicated lecture about it

• Koala ß Darwin ß Conic

Page 20: [2016/2017] Architectural languages

UML 2.0

• De facto standard software design language– Developed by OMG

• A “Swiss Army Knife” of notations

• Has a number of architectural constructs

Page 21: [2016/2017] Architectural languages

UML 2.0

Reasonably applicable to software architectures…

Page 22: [2016/2017] Architectural languages

But…

• Meaningful Modeling: What’s the Semantics of “Semantics”? http://goo.gl/mbTloA[HarelRumpe04]

“In its current form, the Object Management Group’s documents do not offer a rigorous definition of UML’s true semantics, not even of the semantic domain. Rather, they concentrate on the abstract syntax, intermixed with informal natural language discussions of what the semantics should be. These discussions certainly contain much interesting information on the semantics, but they are a far cry from what developers, as well as tool vendors, really need. As recent research shows, they still lack many clarifying details and contain many inconsistencies. ”

• The State of Practice in Model-Driven Engineering http://goo.gl/h5YRtv [WHR14]

“UML 2.0, for example, a major revision of the UML standard, didn’t reflect the literature on

empirical studies of software modeling or software design studies. Consequently, current approaches force developers and organizations to operate in a way that fits the approach instead of making the approach fit the people. ”

Less formal and much more ambiguous than existing ALs

Page 23: [2016/2017] Architectural languages

AADL

• Architecture Analysis and Design Language

• Primarily textual • Very detailed

– An AADL component runs on a processor, which runs one or more processes, each of which contains one or more threads of control, all of which can receive instructions through in ports and send data through out ports over a bus...

• Primary focus – real-time embedded systems

Page 24: [2016/2017] Architectural languages

AADL model

Ivano Malavolta, Henry Muccini, Patrizio Pelliccione: Integrating AADL within a Multi-domain Modeling Framework. ICECCS 2009: 341-346

Page 25: [2016/2017] Architectural languages

Koala

• Developed at Philips – in collaboration with Imperial College London

• Used in the consumer electronics domain – allows to specify hierarchical architectures

– makes a distinction between component types and instances

– allows to construct configurations by instantiating components and connectors and explicitly models optional interfaces

• Both graphical and textual

• Primary focus – management of product populations– Modeling– Analysis

– Implementation generation

– Deployment

Page 26: [2016/2017] Architectural languages

Koalamodel

provides interface

required interface

Component type definition

Component instances

subcomponent

module switch

interface

Page 27: [2016/2017] Architectural languages

Real Koala model

Page 28: [2016/2017] Architectural languages

From a different perspective…

FormalPro:.formal semantics.computable

Cons:.difficult to learn.general lack of industry-ready tools

UML-basedPro:.trained people.same notation for SA and design modeling

Cons:.not a 100% fit.complexity

InformalPro:.of immediate use.perfect for sketching.communicative

Cons:.Ambiguous.not automated

Page 29: [2016/2017] Architectural languages

Todayhttp://www.di.univaq.it/malavolta/al/

100+ ALs(better to say, languages that consider themselves to be ALs)

Page 30: [2016/2017] Architectural languages

What this lecture means to you?

Software architecturewhat is essential about the system

w.r.t. some specific concern

Page 31: [2016/2017] Architectural languages

Readings

1. Bagheri, Hamid, et al. "Software architectural principles incontemporary mobile software: from conception to practice." Journalof Systems and Software 119 (2016): 31-44.

2. Patricia Lago, Ivano Malavolta, Henry Muccini, Patrizio Pelliccione,Antony Tang (2013). What Industry Needs from ArchitecturalLanguages: A Survey. IEEE Transactions on Software Engineering,39(6), pp. 869-891.

Page 32: [2016/2017] Architectural languages

References

Page 33: [2016/2017] Architectural languages

Acknowledgement

Some contents of this part of lecture extracted from Henry Muccini’slecture on architectural languages at the University of L’Aquila (Italy)

Page 34: [2016/2017] Architectural languages

ContactIvano Malavolta |

Assistant professorVrije Universiteit Amsterdam

iivanoo

[email protected]

www.ivanomalavolta.com