SlideShare a Scribd company logo
1 of 52
Download to read offline
_________ _____ ____ ____
                               _____




L05: Introduction to ADLs
                                  Henry Muccini
                    DISIM, University of L’Aquila
                     henry.muccini@univaq.it
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 SA        Intro to Software Testing
SA Case study      Structural Testing
SA style           Model-based Testing
ADLs               Architecture-based Testing
Design Decisions
                   Lab
Views/Viewpoints


UML                Non Functional S.E.
UML Profiling      Performance modeling
Lab                Performance analysis
WEB:
www.di.univaq.it/muccini/SE+/2012/




SVN:
https://svn.di.univaq.it/seagroup/Courses/SE+2012/PROGETTI
HOW TO MODEL SA?
Which are the problems with such a notation?
There are three different options:



   component ElevatorPanel is {
     state {
       vport : ViewportType;
       sub_vports : set ViewportIDType;
     }
     invariant {
       #sub_vports eqgreater 0;
     }
     interface {
       prov ip_newvpt: createViewport() : ViewportType;
          ...
       req ir_selshp: selectShipment(port : PortID; shp : ShipmentID);
          }
     operations {
       prov op_subvpt: {
         let vpt : ViewportIDType;
         pre vpt not_in sub_vports;
         post (#~sub_vports = #sub_vports + 1) and
              (vpt in sub_vports);
       } ...
Architecture Description Languages
An architecture description language (or architecture
definition language, or ADL) is a

  •formal specification language

  •for describing the structure and behavior of a
  software architecture
ADLs Principles
Motivations: Why use Specifications
Specification is “the software lifecycle phase
concerned with precise definition of the tasks to be
performed by the system”[Meyer85]
To reveal ambiguity, incompleteness and inconsistency
   →   Rephrasing: to be sure that the product released conforms to the customer
       expectations
To prove that the system is:
   →   Consistent
   →   Complete
   →   Unambiguous
   →   Minimal
   →   Adequate
Specification: What
Specification and Formal Specification

“Formal methods provide mathematically based techniques” that have the
additional advantage of “being amenable to machine analysis and
manipulation” [Wing90]

A Formal specification is the expression, in some formal language and at
some level of abstraction, of a collection of properties some system should
satisfy [Lam00]

A formal specification language consists of
   →   syntax (the notation)
   →   semantics (the specifiable objects)
   →   satisfies relation (the semantics associated to the syntax)
Formal Specification: Why
Sometimes, systems must run reliably
for 99.9999 % of the time

semi-automated generation of test cases
 from formally specified requirements
semi-automated derivation of correctness,
 security, safety and other properties
Formal Specification: Why
For avoiding:
     »    [In]Consistency
     1.   [In]Completeness
     2.   [Non] Minimality
Types of Formal Specifications for SA modeling

Structural specifications:
  →   Structural specifications describe topological constraints
  →   Properties on the structure of the element in the
      specification


Behavioral specification
  →   Behavioral specifications describe
      constraints on behavior of the
      system
  →   functional properties
Example
Structural specification
State Transition Specifications: the FSP Process Algebra

range N = 0..1
range K = 0..1                                                       a)
range Sent = 0..1

/**UserProcess*/
USER_ALARM= (sendAlarm_To_Router -> receiveAck_From_Router -> USER_ALARM).
USER_CHECK = (sendCheck_To_Router -> USER_CHECK).                     b)
||USER = (USER_ALARM||USER_CHECK).
/**RouterProcess*/
ROUTER_RECEIVEALARM = (receiveAlarm_From_User -> sendAlarm_To_Server ->
receiveAck_From_Server -> sendAck_To_User -> ROUTER_RECEIVEALARM).
ROUTER_RECEIVECHECK = (receiveCheck_From_User -> (sendInput_To_Timer ->
ROUTER_RECEIVECHECK|pre_receiveCheck -> ROUTER_RECEIVECHECK)). c)
ROUTER_RECEIVETIME = (receiveTime_From_Timer ->(sendNoFunc_To_Server ->
ROUTER_RECEIVETIME|pre_receiveTime-> ROUTER_RECEIVETIME)).
||ROUTER = ([0..1]:ROUTER_RECEIVEALARM||[0..1]:ROUTER_RECEIVECHECK||
ROUTER_RECEIVETIME).
...                                                                   d)
/**System*/
||ALL_PROCESSES=(u[0..1]:USER||r:ROUTER||sa[0..1]:SERVER||t:TIMER)/
{
u[0].sendAlarm_To_Router/r.[0].receiveAlarm_From_User,                e)
u[1].sendAlarm_To_Router/r.[1].receiveAlarm_From_User,
...
ADL
ADL = Formal specifications for modeling SA concepts
Structural:
  →Components,  Connectors, Interfaces, Ports, Channels
  →Configurations, Constraints, Properties

Behavioral:
  →How components and connectors behave
  →How they behave in integration

  →Constraints, Properties
Practical ADLs
Existing ADLs (and many many more)
     NOME ADL
                              NOME ADL
         AADL
                                   LISA
       ABC/ADL
                                LITTLE JIL
        ACME
                                   MAE
        ADAGE
                                  MADL
       ADLARS
                                  MAFIIA
        ADML
                                 MAUDE
        AESOP
                              M(énage / xADL
       ArchJava
                                 META H
       ArchWare
                                 MIMOLA
       ArchiTRIO
                              MODE CHART
       ARTECH
                                PALANTIR
          C2
                                 PRISMA
        C2 AML
                                  RADL
       C2 SADEL
                                 RAPIDE
      CommUnity
                                RESOLVE
       DAOP ADL
                                  SADL
       DARWIN
                                 SATURN
        DICAM
                                 SKWYRL

       EAST ADL                   UDL/i

      EXPRESSION                 UNICON

      GEN VOCA                   WEAVES

        HMDES                    WRIGHT

         ISDL                     WSDL

        JACAL                  xArch / xAcme

        KOALA                  xArch / xADL

       LILEANNA                    xC2
NON PRESENZA DI BUON
      ADL NON                   ADL NON PIU’        MANCANZA DI TOOL    TOOLKIT E MANCANZA DI   ADL NON SOFTWARE
   CONVENZIONALE                 UTILIZZATO           DI SUPPORTO         MULTIPIATTAFORMA           SPECIFIC
        (V3)                        (V4)                  (V5)                  (V8.1)                 (V9)




                           OR                  OR                      OR                  OR


                                               NON ESISTENZA DI
      ADL DATATO
         (V1)
                                AND            APPLICAZIONI CHE
                                                   ESTEDONO
                                                     L’ADL
                                                      (V7)



  OFFICIAL WEB SITE                            NON ESISTENZA DI
        NON                     AND            APPLICAZIONI CHE
                                                   ESTEDONO
    AGGIORNATO
        (V2)                                         L’ADL
                                                      (V7)
                                                                                          REJECTED
SCARSE INFORMAZIONI                            NON ESISTENZA DI
 CAUSA GIOVANE ETA’
      DELL’ADL
                                AND            APPLICAZIONI CHE
                                                   ESTEDONO
        (V6)                                         L’ADL
                                                      (V7)


                                               NON ESISTENZA DI
PRESENZA DI BUON TOOLKIT                       APPLICAZIONI CHE
    MA MANCANZA DI
   MULTIPIATTAFORMA
                                AND                ESTEDONO
         (V8.2)                                      L’ADL
                                                      (V7)
ADL/Tool Support


     Mainly for            Strongly            Supports code          Oriented to
     Analysis             oriented to          generation and          dynamic
                         Architectural          architectural        architectures
                             Styles             programming             via FSP




AADL/OSATE            ACME/AcmeStudio        AcmeArchJava        DARWIN/SAA




                       Representationa           Support to         XML Schemas-
   Supports for              and                   Aspect               based
  model checking       Implementatino           Oriented and         extensibility
        SA                 of PLAs               Component
                                                   Based
                                                development


EAST-
EAST-ADL/AutoFocus2   xADL/Ménage-
                      xADL/Ménage-Palantir   Prisma/PrismaCase   xADL/ArchStudio
A Look to Some of them
Darwin & FSP
  →   Imperial College London, J. Kramer & J. Magee
Koala
  →   Philips Research
ACME
  →   Carnegie-Mellon, D. Garlan
Rapide
  → Stanford, D. Luckham

xArch/xADL
  →   University of California, Irvine
For distributed sytems
                    Darwin/FSP
                                                                             [Darwin], [DarwinWeb]




range N = 0..1
range K = 0..1                                                       a)
range Sent = 0..1

/**UserProcess*/
USER_ALARM= (sendAlarm_To_Router -> receiveAck_From_Router -> USER_ALARM).
USER_CHECK = (sendCheck_To_Router -> USER_CHECK).                     b)
||USER = (USER_ALARM||USER_CHECK).
/**RouterProcess*/
ROUTER_RECEIVEALARM = (receiveAlarm_From_User -> sendAlarm_To_Server ->
receiveAck_From_Server -> sendAck_To_User -> ROUTER_RECEIVEALARM).
ROUTER_RECEIVECHECK = (receiveCheck_From_User -> (sendInput_To_Timer ->
ROUTER_RECEIVECHECK|pre_receiveCheck -> ROUTER_RECEIVECHECK)). c)
ROUTER_RECEIVETIME = (receiveTime_From_Timer ->(sendNoFunc_To_Server ->
ROUTER_RECEIVETIME|pre_receiveTime-> ROUTER_RECEIVETIME)).
||ROUTER = ([0..1]:ROUTER_RECEIVEALARM||[0..1]:ROUTER_RECEIVECHECK||
ROUTER_RECEIVETIME).
...                                                                   d)
/**System*/
||ALL_PROCESSES=(u[0..1]:USER||r:ROUTER||sa[0..1]:SERVER||t:TIMER)/
{
u[0].sendAlarm_To_Router/r.[0].receiveAlarm_From_User,                e)
u[1].sendAlarm_To_Router/r.[1].receiveAlarm_From_User,
...
Koala [KoalaWeb][Koala]
Koala (Ommering, 2004) is an ADL specially designed for
modeling embedded software for consumer electronics.
It inherits from Darwin the main concepts and ideals, even
though it is more oriented to notations and concepts
commonly used in consumer electronics products.
Koala allows to specify hierarchical architectures, it makes
a distinction between component types and instances, it
allows to construct configurations by instantiating
components and connectors and explicitly models optional
interfaces.
For product lines
A graphical view of Koala
For modeling styles
AcmeStudio ACME tool
For formal verification
    Rapide          [Rapide, RapideWeb]
Rapide is an event-based ADL
   →component   behavior and interconnection represented by
        ─ explicit event sequences. Events are the method of
          communication
        ─ event sequencing constraints


   →Events organized in POSETs (Partially Ordered SETs)
   →Specified systems can be simulated by Rapide toolset

   →Simulations can be visualized in a graph format
POSETs
Consider events that a person might emit at a gas station:
    →   Pull up
    →   Leave
    →   Use Credit Card Machine
    →   Wash Windows
    →   Pump Gas
                                                   What are the orderings
                                                   between these events?


                  Credit Card       Pump Gas       Wash

 Pull Up                                                        Leave


                    Wash            Credit Card    Pump Gas


                      Credit Card           Pump Gas
The Result
The Result




Could this be a problem?



 Ability to specify Constraints
 (patterns that should or should
 not happen) are important in
 finding these issues.
For extensibility
xArch/xADL 2.0 [xADL_Wicsa01]
xArch is an XML-based representation for building
ADLs.
It consists of a core of basic architectural elements,
defined in an XML schema called the “instances”
schema.
The xArch instances schema provides definitions for
the following elements typically found in an ADL:
  •Component,   connector, interface, and link instances;
  •Subarchitectures, for specifying hierarchically composed component and
  connector instances; and
  •Groups, allowing the combination of basic elements
xArch XML Schema
Open the XMLinstance.html file
AADL                         Part of the material on AADL comes from
                             www.aadl.info and from Dr. Peter Feiler.
Notation for specification of runtime architecture of
real-time, embedded, fault-tolerant, secure, safety-
critical, software-intensive systems
Fields of application: Avionics, Aerospace, Automotive,
Autonomous systems, Medical devices
Based on 15 years of research & industry input
Standard approved & published Nov 2004
www.aadl.info
High level description of AADL
Developed and standardized under the auspices of the
International Society of Automotive Engineers (SAE)
Support the design and analysis of complex real-time
safety-critical systems in avionics, automotive, space,
…
AADL provides a formal mechanism to capture the
architecture specification
      ─ AADL -> mathematical analysis of real-time embedded,
       multiprocessor, safety critical, fault tolerant systems (hardware
       and software)
AADL is precise but abstract, incremental, system of
systems, extendable
Model-based Assurance

  Availability
                      Predictive Analysis
  & Reliability       Across Perspectives                   Security
  MTBF                                                      Intrusion
  FMEA                                                      Integrity
                        Architecture Model                  Confidentiality
  Hazard
  analysis




                                                      Resource
    Data                                              Consumption
    Quality
                                                      Bandwidth
    Data precision/         Real-time                 CPU time
    accuracy
                            Performance               Power
    Temporal                                          consumption
                            Execution time/
    correctness
                            Deadline
    Confidence
                            Deadlock/starvation      Reduced model
                            Latency               validation cost due to
                                                   single source model
SAE AADL Standard
                  RMA               Simplex                    MetaH
   ACME




                                                                                                Automotive
                Lehoczky       Dependable Upgrade           Error Model
   Garlan
                  Klein               Sha                   Honeywell
   EDCS

                              HOOD                Eclipse              GME
     MetaH
                                                                     VanderBilt
    Honeywell                 STOOD                EMF
                                                                      MoBIES
      DSSA


                               MBE




                                                                                                Avionics
                                                                                                Avionics
                      SAE AADL             AADL Meta
                       Standard            Model & XMI
                      Nov 2004              June 2006            OSATE
                                                                 Toolset
                                                                   SEI




                                                                                                Aerospace
                       AADL UML            AADL Error
                       Profile Std        Annex Standard
                          2007              June 2006




Embedded
 Systems                                                                   Industry
Research        Industrial           Industrial         Industrial         Standards
                Initiatives           Projects            Tools

        Unmanned
                                                                                       www.aadl.info
Medical   Vehicles                    Aerospace              Avionics Automotive
Application Components
System: hierarchical organization
of components
Process: protected virtual address
space
Thread group: organization of
threads in processes
Thread: an active unit of
concurrent execution
Data: potentially sharable data
Subprogram: Callable unit of
sequential code
Why So Many ADLs?
There are many reasons for having many ADLs:
  →Different   ADLs for different “stakeholder concerns”
      ─ Different Domains
      ─ Different Analysis
      ─ Different Viewpoints


  →Some   of them are really similar, with just small semantic or
  syntactic differences
  →Many are just prototipal languages research specific
Problems with Existing ADLs
High degree of formality
  →making   difficult their integration in industrial life-cycles

Specialized semantic basis:
  →Differentanalysis require different ADLs
  →Impossible to construct an ADL which supports every kind of analysis



Limited tool support

Lack of lifecycle-wide support

Very limited industry buy-in to date
Our study
Goal:
  →To understand which ADLs are used by industry
  →To underestand what they like and do not like

  →To understand how to plan for more practical ADLs




Plan:
  →We identified 135 ADLs!!! (see googledocs)
  →We interviewed 35 practitioners
        ─ from Volvo, IBM, ESA, Ericsson, CapGemini, SAP, Accenture Lab,
          ABB, and many others
RQ1: most popular notations
RQ1: What are the most popular notations used by
the interviewed companies?
                                      Standard notation types
                                 45
                                 40

 →UML   vs formal ADL            35
                                 30
     ─ Standard notation types   25
                                 20
                                 15
                                 10
                                 5
                                 0
RQ1: most popular notations
RQ1: What are the most popular notations used by
the interviewed companies?

 →UML   vs formal ADL
                                            AS IS (73%)
     ─ Standard notation types
     ─ Do you use UML?
          How?
                                 PROFILED
                                   (25%)
                                                          NO USAGE
                                                            (19%)
RQ1: most popular notations
RQ1: What are the most popular notations used by
the interviewed companies?
                                       Kind of UML diagrams
 →UML   vs formal ADL
     ─ Standard notation types
                                                         Structural
     ─ Do you use UML?                             38%

          How?                   57%
                                                         Behavioral
          Which UML diagrams?                 5%




                                                         Mixed(Structural/Behav
                                                         ioral)
RQ1: most popular notations
RQ1: What are the most popular notations used by
the interviewed companies?

 →UML   vs formal ADL
     ─ Standard notation types
     ─ Do you use UML?
          How?
          Which UML diagrams?
     ─ Used ADL (see next slide)
RQ1: Used ADLs

                  Used Architectural Notations
40

35

30

25

20

15

10

 5

 0
RQ1: most popular notations
RQ1: What are the most popular notations used by
the interviewed companies?
                                        Use of multiple ADLs
 →UML   vs formal ADL
                                                   21%



                                                               Yes
                                  79%                          No




     ─ About 21% of the respondents use multiple ADLs
     ─ Free sketching is advocated as useful
RQ1 - Summary
 →Summary:
    ─ UML very used (86%)
    ─ Formal ADL: only rarely and produced by industry (AADL,
      Archimate, ad hoc, Rapide)
usefulness of ADL features in past and future
projects
A Compromise: UML
UML is the de facto standard design notation of choice
 in industrial software development
Understood by many industrial software developers
Reasonably applicable to software architectures
  → UML   can be adapted for use as an ADL, but
     ─ Less formal and much more ambiguous than existing ADLs
     ─ Mature design environments, but lack of powerful analysis tools
Nowadays, many approaches to extend the UML for
 SA modeling
In general

As a matter of fact, a Software Architect needs to use
different ADLs or UML profiles to model different
aspects of his system

  →As analyzed in many papers, it is impractical to think about a
  universal ADL covering all the different users’ concerns
  →We will see our solution (DUALLY) in L17 and L18
What you shall have learned
You get the precise idea on what an ADL is
You get a precise idea on why there are many ADLs

More Related Content

What's hot

Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
DevSecOps: Key Controls for Modern Security Success
DevSecOps: Key Controls for Modern Security SuccessDevSecOps: Key Controls for Modern Security Success
DevSecOps: Key Controls for Modern Security SuccessPuma Security, LLC
 
Strategies and Tools for Model Reuse with Capella
Strategies and Tools for Model Reuse with CapellaStrategies and Tools for Model Reuse with Capella
Strategies and Tools for Model Reuse with CapellaObeo
 
Model-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedModel-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedElizabeth Steiner
 
Unified process model
Unified process modelUnified process model
Unified process modelRyndaMaala
 
Software System Engineering - Chapter 2
Software System Engineering - Chapter 2Software System Engineering - Chapter 2
Software System Engineering - Chapter 2Fadhil Ismail
 
Security architecture analyses brief 21 april 2015
Security architecture analyses brief 21 april 2015Security architecture analyses brief 21 april 2015
Security architecture analyses brief 21 april 2015Bill Ross
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7koolkampus
 
2 Security Architecture+Design
2 Security Architecture+Design2 Security Architecture+Design
2 Security Architecture+DesignAlfred Ouyang
 
Adaptive Enterprise Security Architecture
Adaptive Enterprise Security ArchitectureAdaptive Enterprise Security Architecture
Adaptive Enterprise Security ArchitectureSABSAcourses
 
Enterprise Security Architecture Design
Enterprise Security Architecture DesignEnterprise Security Architecture Design
Enterprise Security Architecture DesignPriyanka Aash
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLESIvano Malavolta
 

What's hot (20)

Security review using SABSA
Security review using SABSASecurity review using SABSA
Security review using SABSA
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Adapter Pattern
Adapter PatternAdapter Pattern
Adapter Pattern
 
Ch13 security engineering
Ch13 security engineeringCh13 security engineering
Ch13 security engineering
 
DevSecOps: Key Controls for Modern Security Success
DevSecOps: Key Controls for Modern Security SuccessDevSecOps: Key Controls for Modern Security Success
DevSecOps: Key Controls for Modern Security Success
 
Togaf 9 template transition architecture
Togaf 9 template   transition architectureTogaf 9 template   transition architecture
Togaf 9 template transition architecture
 
Strategies and Tools for Model Reuse with Capella
Strategies and Tools for Model Reuse with CapellaStrategies and Tools for Model Reuse with Capella
Strategies and Tools for Model Reuse with Capella
 
Model-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedModel-Based Systems Engineering Demystified
Model-Based Systems Engineering Demystified
 
SABSA Implementation(Part III)_ver1-0
SABSA Implementation(Part III)_ver1-0SABSA Implementation(Part III)_ver1-0
SABSA Implementation(Part III)_ver1-0
 
Documenting Software Architectures
Documenting Software ArchitecturesDocumenting Software Architectures
Documenting Software Architectures
 
Unified process model
Unified process modelUnified process model
Unified process model
 
Software System Engineering - Chapter 2
Software System Engineering - Chapter 2Software System Engineering - Chapter 2
Software System Engineering - Chapter 2
 
Security architecture analyses brief 21 april 2015
Security architecture analyses brief 21 april 2015Security architecture analyses brief 21 april 2015
Security architecture analyses brief 21 april 2015
 
Togaf 9 template Preliminary Phase architecture principles
Togaf 9 template  Preliminary Phase architecture principlesTogaf 9 template  Preliminary Phase architecture principles
Togaf 9 template Preliminary Phase architecture principles
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7
 
2 Security Architecture+Design
2 Security Architecture+Design2 Security Architecture+Design
2 Security Architecture+Design
 
Class notes
Class notesClass notes
Class notes
 
Adaptive Enterprise Security Architecture
Adaptive Enterprise Security ArchitectureAdaptive Enterprise Security Architecture
Adaptive Enterprise Security Architecture
 
Enterprise Security Architecture Design
Enterprise Security Architecture DesignEnterprise Security Architecture Design
Enterprise Security Architecture Design
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 

Viewers also liked

Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIvano Malavolta
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Koala component model (1)
Koala component model (1)Koala component model (1)
Koala component model (1)Saransh Garg
 
Advo slides
Advo slidesAdvo slides
Advo slidesfamily81
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overviewelliando dias
 
Technical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionTechnical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionSaransh Garg
 
AADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design LanguageAADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design LanguageIvano Malavolta
 
CSCSS Science of Security - Developing Scientific Foundations for the Operati...
CSCSS Science of Security - Developing Scientific Foundations for the Operati...CSCSS Science of Security - Developing Scientific Foundations for the Operati...
CSCSS Science of Security - Developing Scientific Foundations for the Operati...Shawn Riley
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software EngineeringManish Kumar
 
India - Decade Of Innovations Roadmap
India - Decade Of Innovations RoadmapIndia - Decade Of Innovations Roadmap
India - Decade Of Innovations Roadmapdebmalyadutta
 
Software Architecture explained with Real Life Analogies
Software Architecture explained with Real Life AnalogiesSoftware Architecture explained with Real Life Analogies
Software Architecture explained with Real Life AnalogiesAntal Attila
 
Agile India 2012 Opening Talk
Agile India 2012 Opening TalkAgile India 2012 Opening Talk
Agile India 2012 Opening TalkNaresh Jain
 
Pragmatic Architecture, Today (v2)
Pragmatic Architecture, Today (v2)Pragmatic Architecture, Today (v2)
Pragmatic Architecture, Today (v2)Bart Blommaerts
 
Semantics Meaning Components
Semantics Meaning ComponentsSemantics Meaning Components
Semantics Meaning ComponentsGrayson Wingate
 
What Is An Architectural Framework
What Is An Architectural FrameworkWhat Is An Architectural Framework
What Is An Architectural FrameworkJerald Burget
 
Let's Build a Product Development Organization!
Let's Build a Product Development Organization!Let's Build a Product Development Organization!
Let's Build a Product Development Organization!Kevin Goldsmith
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software ArchitectureSimon Guest
 
Organization and Architecture
Organization and ArchitectureOrganization and Architecture
Organization and ArchitectureKevin Goldsmith
 

Viewers also liked (20)

Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGES
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
RCW@DEI - ADL
RCW@DEI - ADLRCW@DEI - ADL
RCW@DEI - ADL
 
Koala component model (1)
Koala component model (1)Koala component model (1)
Koala component model (1)
 
Advo slides
Advo slidesAdvo slides
Advo slides
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overview
 
Technical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionTechnical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selection
 
AADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design LanguageAADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design Language
 
CSCSS Science of Security - Developing Scientific Foundations for the Operati...
CSCSS Science of Security - Developing Scientific Foundations for the Operati...CSCSS Science of Security - Developing Scientific Foundations for the Operati...
CSCSS Science of Security - Developing Scientific Foundations for the Operati...
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
India - Decade Of Innovations Roadmap
India - Decade Of Innovations RoadmapIndia - Decade Of Innovations Roadmap
India - Decade Of Innovations Roadmap
 
Software Architecture explained with Real Life Analogies
Software Architecture explained with Real Life AnalogiesSoftware Architecture explained with Real Life Analogies
Software Architecture explained with Real Life Analogies
 
Agile India 2012 Opening Talk
Agile India 2012 Opening TalkAgile India 2012 Opening Talk
Agile India 2012 Opening Talk
 
Pragmatic Architecture, Today (v2)
Pragmatic Architecture, Today (v2)Pragmatic Architecture, Today (v2)
Pragmatic Architecture, Today (v2)
 
Semantics Meaning Components
Semantics Meaning ComponentsSemantics Meaning Components
Semantics Meaning Components
 
What Is An Architectural Framework
What Is An Architectural FrameworkWhat Is An Architectural Framework
What Is An Architectural Framework
 
Let's Build a Product Development Organization!
Let's Build a Product Development Organization!Let's Build a Product Development Organization!
Let's Build a Product Development Organization!
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 
Organization and Architecture
Organization and ArchitectureOrganization and Architecture
Organization and Architecture
 

Similar to Software Architecture: Architecture Description Languages

Modernize your Solaris Apps
Modernize your Solaris AppsModernize your Solaris Apps
Modernize your Solaris AppsAppZero
 
SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1
SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1
SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1Benton "Ben" Bovée
 
FPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Central
 
Cisco open network environment
Cisco open network environmentCisco open network environment
Cisco open network environmentdeepers
 
Fel Flyer F10
Fel Flyer F10Fel Flyer F10
Fel Flyer F10chitlesh
 
To the cloud...
To the cloud...To the cloud...
To the cloud...AppZero
 
Symbian OS - Quick Start
Symbian OS - Quick StartSymbian OS - Quick Start
Symbian OS - Quick StartAndreas Jakl
 
Unleash software architecture leveraging on docker
Unleash software architecture leveraging on dockerUnleash software architecture leveraging on docker
Unleash software architecture leveraging on dockerAdrien Blind
 
Documenting the Mined Feature Implementations from the Object-oriented Source...
Documenting the Mined Feature Implementations from the Object-oriented Source...Documenting the Mined Feature Implementations from the Object-oriented Source...
Documenting the Mined Feature Implementations from the Object-oriented Source...Ra'Fat Al-Msie'deen
 
Bring the Spark To Your Eyes
Bring the Spark To Your EyesBring the Spark To Your Eyes
Bring the Spark To Your EyesDemi Ben-Ari
 
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...Yoichi Kawasaki
 
Aldec overview 2011-10 revised
Aldec overview 2011-10 revisedAldec overview 2011-10 revised
Aldec overview 2011-10 revisedPrateek Chopra
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product PresentationWil Huijben
 
Optimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and VulkanOptimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and Vulkanax inc.
 

Similar to Software Architecture: Architecture Description Languages (20)

Modernize your Solaris Apps
Modernize your Solaris AppsModernize your Solaris Apps
Modernize your Solaris Apps
 
Cast vs sonar
Cast vs sonarCast vs sonar
Cast vs sonar
 
Cast vs sonar
Cast vs sonarCast vs sonar
Cast vs sonar
 
SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1
SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1
SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1
 
FPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec Presentation
 
Cisco open network environment
Cisco open network environmentCisco open network environment
Cisco open network environment
 
WSDL 2.0 and Apache Woden
WSDL 2.0 and Apache WodenWSDL 2.0 and Apache Woden
WSDL 2.0 and Apache Woden
 
Fel Flyer F10
Fel Flyer F10Fel Flyer F10
Fel Flyer F10
 
To the cloud...
To the cloud...To the cloud...
To the cloud...
 
Symbian OS - Quick Start
Symbian OS - Quick StartSymbian OS - Quick Start
Symbian OS - Quick Start
 
Unleash software architecture leveraging on docker
Unleash software architecture leveraging on dockerUnleash software architecture leveraging on docker
Unleash software architecture leveraging on docker
 
Documenting the Mined Feature Implementations from the Object-oriented Source...
Documenting the Mined Feature Implementations from the Object-oriented Source...Documenting the Mined Feature Implementations from the Object-oriented Source...
Documenting the Mined Feature Implementations from the Object-oriented Source...
 
Bring the Spark To Your Eyes
Bring the Spark To Your EyesBring the Spark To Your Eyes
Bring the Spark To Your Eyes
 
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
 
Aldec overview 2011-10 revised
Aldec overview 2011-10 revisedAldec overview 2011-10 revised
Aldec overview 2011-10 revised
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 
Mobile Java
Mobile JavaMobile Java
Mobile Java
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product Presentation
 
Optimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and VulkanOptimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and Vulkan
 
Avenue Omg
Avenue OmgAvenue Omg
Avenue Omg
 

More from Henry Muccini

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design Henry Muccini
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...Henry Muccini
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieHenry Muccini
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileHenry Muccini
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementHenry Muccini
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsHenry Muccini
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsHenry Muccini
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureHenry Muccini
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Henry Muccini
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Henry Muccini
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Henry Muccini
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Henry Muccini
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Henry Muccini
 
Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Henry Muccini
 
Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Henry Muccini
 
Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Henry Muccini
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityHenry Muccini
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical SpacesHenry Muccini
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISHenry Muccini
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureHenry Muccini
 

More from Henry Muccini (20)

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibile
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd management
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of Things
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design Decisions
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building Architecture
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)
 
Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)
 
Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)
 
Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on Sustainability
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical Spaces
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software Architecture
 

Recently uploaded

Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6Vanessa Camilleri
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptxDhatriParmar
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQuiz Club NITW
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...DhatriParmar
 
How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17Celine George
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxCLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxAnupam32727
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseCeline George
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxMichelleTuguinay1
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDhatriParmar
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Celine George
 

Recently uploaded (20)

Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
 
How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxCLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 Database
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17
 

Software Architecture: Architecture Description Languages

  • 1. _________ _____ ____ ____ _____ L05: Introduction to ADLs Henry Muccini DISIM, University of L’Aquila henry.muccini@univaq.it
  • 2. 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
  • 3. Intro to SA Intro to Software Testing SA Case study Structural Testing SA style Model-based Testing ADLs Architecture-based Testing Design Decisions Lab Views/Viewpoints UML Non Functional S.E. UML Profiling Performance modeling Lab Performance analysis
  • 6. Which are the problems with such a notation?
  • 7. There are three different options: component ElevatorPanel is { state { vport : ViewportType; sub_vports : set ViewportIDType; } invariant { #sub_vports eqgreater 0; } interface { prov ip_newvpt: createViewport() : ViewportType; ... req ir_selshp: selectShipment(port : PortID; shp : ShipmentID); } operations { prov op_subvpt: { let vpt : ViewportIDType; pre vpt not_in sub_vports; post (#~sub_vports = #sub_vports + 1) and (vpt in sub_vports); } ...
  • 8. Architecture Description Languages An architecture description language (or architecture definition language, or ADL) is a •formal specification language •for describing the structure and behavior of a software architecture
  • 10. Motivations: Why use Specifications Specification is “the software lifecycle phase concerned with precise definition of the tasks to be performed by the system”[Meyer85] To reveal ambiguity, incompleteness and inconsistency → Rephrasing: to be sure that the product released conforms to the customer expectations To prove that the system is: → Consistent → Complete → Unambiguous → Minimal → Adequate
  • 12. Specification and Formal Specification “Formal methods provide mathematically based techniques” that have the additional advantage of “being amenable to machine analysis and manipulation” [Wing90] A Formal specification is the expression, in some formal language and at some level of abstraction, of a collection of properties some system should satisfy [Lam00] A formal specification language consists of → syntax (the notation) → semantics (the specifiable objects) → satisfies relation (the semantics associated to the syntax)
  • 13. Formal Specification: Why Sometimes, systems must run reliably for 99.9999 % of the time semi-automated generation of test cases from formally specified requirements semi-automated derivation of correctness, security, safety and other properties
  • 14. Formal Specification: Why For avoiding: » [In]Consistency 1. [In]Completeness 2. [Non] Minimality
  • 15. Types of Formal Specifications for SA modeling Structural specifications: → Structural specifications describe topological constraints → Properties on the structure of the element in the specification Behavioral specification → Behavioral specifications describe constraints on behavior of the system → functional properties
  • 17. State Transition Specifications: the FSP Process Algebra range N = 0..1 range K = 0..1 a) range Sent = 0..1 /**UserProcess*/ USER_ALARM= (sendAlarm_To_Router -> receiveAck_From_Router -> USER_ALARM). USER_CHECK = (sendCheck_To_Router -> USER_CHECK). b) ||USER = (USER_ALARM||USER_CHECK). /**RouterProcess*/ ROUTER_RECEIVEALARM = (receiveAlarm_From_User -> sendAlarm_To_Server -> receiveAck_From_Server -> sendAck_To_User -> ROUTER_RECEIVEALARM). ROUTER_RECEIVECHECK = (receiveCheck_From_User -> (sendInput_To_Timer -> ROUTER_RECEIVECHECK|pre_receiveCheck -> ROUTER_RECEIVECHECK)). c) ROUTER_RECEIVETIME = (receiveTime_From_Timer ->(sendNoFunc_To_Server -> ROUTER_RECEIVETIME|pre_receiveTime-> ROUTER_RECEIVETIME)). ||ROUTER = ([0..1]:ROUTER_RECEIVEALARM||[0..1]:ROUTER_RECEIVECHECK|| ROUTER_RECEIVETIME). ... d) /**System*/ ||ALL_PROCESSES=(u[0..1]:USER||r:ROUTER||sa[0..1]:SERVER||t:TIMER)/ { u[0].sendAlarm_To_Router/r.[0].receiveAlarm_From_User, e) u[1].sendAlarm_To_Router/r.[1].receiveAlarm_From_User, ...
  • 18. ADL ADL = Formal specifications for modeling SA concepts Structural: →Components, Connectors, Interfaces, Ports, Channels →Configurations, Constraints, Properties Behavioral: →How components and connectors behave →How they behave in integration →Constraints, Properties
  • 20. Existing ADLs (and many many more) NOME ADL NOME ADL AADL LISA ABC/ADL LITTLE JIL ACME MAE ADAGE MADL ADLARS MAFIIA ADML MAUDE AESOP M(énage / xADL ArchJava META H ArchWare MIMOLA ArchiTRIO MODE CHART ARTECH PALANTIR C2 PRISMA C2 AML RADL C2 SADEL RAPIDE CommUnity RESOLVE DAOP ADL SADL DARWIN SATURN DICAM SKWYRL EAST ADL UDL/i EXPRESSION UNICON GEN VOCA WEAVES HMDES WRIGHT ISDL WSDL JACAL xArch / xAcme KOALA xArch / xADL LILEANNA xC2
  • 21. NON PRESENZA DI BUON ADL NON ADL NON PIU’ MANCANZA DI TOOL TOOLKIT E MANCANZA DI ADL NON SOFTWARE CONVENZIONALE UTILIZZATO DI SUPPORTO MULTIPIATTAFORMA SPECIFIC (V3) (V4) (V5) (V8.1) (V9) OR OR OR OR NON ESISTENZA DI ADL DATATO (V1) AND APPLICAZIONI CHE ESTEDONO L’ADL (V7) OFFICIAL WEB SITE NON ESISTENZA DI NON AND APPLICAZIONI CHE ESTEDONO AGGIORNATO (V2) L’ADL (V7) REJECTED SCARSE INFORMAZIONI NON ESISTENZA DI CAUSA GIOVANE ETA’ DELL’ADL AND APPLICAZIONI CHE ESTEDONO (V6) L’ADL (V7) NON ESISTENZA DI PRESENZA DI BUON TOOLKIT APPLICAZIONI CHE MA MANCANZA DI MULTIPIATTAFORMA AND ESTEDONO (V8.2) L’ADL (V7)
  • 22. ADL/Tool Support Mainly for Strongly Supports code Oriented to Analysis oriented to generation and dynamic Architectural architectural architectures Styles programming via FSP AADL/OSATE ACME/AcmeStudio AcmeArchJava DARWIN/SAA Representationa Support to XML Schemas- Supports for and Aspect based model checking Implementatino Oriented and extensibility SA of PLAs Component Based development EAST- EAST-ADL/AutoFocus2 xADL/Ménage- xADL/Ménage-Palantir Prisma/PrismaCase xADL/ArchStudio
  • 23. A Look to Some of them Darwin & FSP → Imperial College London, J. Kramer & J. Magee Koala → Philips Research ACME → Carnegie-Mellon, D. Garlan Rapide → Stanford, D. Luckham xArch/xADL → University of California, Irvine
  • 24. For distributed sytems Darwin/FSP [Darwin], [DarwinWeb] range N = 0..1 range K = 0..1 a) range Sent = 0..1 /**UserProcess*/ USER_ALARM= (sendAlarm_To_Router -> receiveAck_From_Router -> USER_ALARM). USER_CHECK = (sendCheck_To_Router -> USER_CHECK). b) ||USER = (USER_ALARM||USER_CHECK). /**RouterProcess*/ ROUTER_RECEIVEALARM = (receiveAlarm_From_User -> sendAlarm_To_Server -> receiveAck_From_Server -> sendAck_To_User -> ROUTER_RECEIVEALARM). ROUTER_RECEIVECHECK = (receiveCheck_From_User -> (sendInput_To_Timer -> ROUTER_RECEIVECHECK|pre_receiveCheck -> ROUTER_RECEIVECHECK)). c) ROUTER_RECEIVETIME = (receiveTime_From_Timer ->(sendNoFunc_To_Server -> ROUTER_RECEIVETIME|pre_receiveTime-> ROUTER_RECEIVETIME)). ||ROUTER = ([0..1]:ROUTER_RECEIVEALARM||[0..1]:ROUTER_RECEIVECHECK|| ROUTER_RECEIVETIME). ... d) /**System*/ ||ALL_PROCESSES=(u[0..1]:USER||r:ROUTER||sa[0..1]:SERVER||t:TIMER)/ { u[0].sendAlarm_To_Router/r.[0].receiveAlarm_From_User, e) u[1].sendAlarm_To_Router/r.[1].receiveAlarm_From_User, ...
  • 25. Koala [KoalaWeb][Koala] Koala (Ommering, 2004) is an ADL specially designed for modeling embedded software for consumer electronics. It inherits from Darwin the main concepts and ideals, even though it is more oriented to notations and concepts commonly used in consumer electronics products. Koala allows to specify hierarchical architectures, it makes a distinction between component types and instances, it allows to construct configurations by instantiating components and connectors and explicitly models optional interfaces.
  • 26. For product lines A graphical view of Koala
  • 28. For formal verification Rapide [Rapide, RapideWeb] Rapide is an event-based ADL →component behavior and interconnection represented by ─ explicit event sequences. Events are the method of communication ─ event sequencing constraints →Events organized in POSETs (Partially Ordered SETs) →Specified systems can be simulated by Rapide toolset →Simulations can be visualized in a graph format
  • 29. POSETs Consider events that a person might emit at a gas station: → Pull up → Leave → Use Credit Card Machine → Wash Windows → Pump Gas What are the orderings between these events? Credit Card Pump Gas Wash Pull Up Leave Wash Credit Card Pump Gas Credit Card Pump Gas
  • 31. The Result Could this be a problem? Ability to specify Constraints (patterns that should or should not happen) are important in finding these issues.
  • 32. For extensibility xArch/xADL 2.0 [xADL_Wicsa01] xArch is an XML-based representation for building ADLs. It consists of a core of basic architectural elements, defined in an XML schema called the “instances” schema. The xArch instances schema provides definitions for the following elements typically found in an ADL: •Component, connector, interface, and link instances; •Subarchitectures, for specifying hierarchically composed component and connector instances; and •Groups, allowing the combination of basic elements
  • 33. xArch XML Schema Open the XMLinstance.html file
  • 34. AADL Part of the material on AADL comes from www.aadl.info and from Dr. Peter Feiler. Notation for specification of runtime architecture of real-time, embedded, fault-tolerant, secure, safety- critical, software-intensive systems Fields of application: Avionics, Aerospace, Automotive, Autonomous systems, Medical devices Based on 15 years of research & industry input Standard approved & published Nov 2004 www.aadl.info
  • 35. High level description of AADL Developed and standardized under the auspices of the International Society of Automotive Engineers (SAE) Support the design and analysis of complex real-time safety-critical systems in avionics, automotive, space, … AADL provides a formal mechanism to capture the architecture specification ─ AADL -> mathematical analysis of real-time embedded, multiprocessor, safety critical, fault tolerant systems (hardware and software) AADL is precise but abstract, incremental, system of systems, extendable
  • 36. Model-based Assurance Availability Predictive Analysis & Reliability Across Perspectives Security MTBF Intrusion FMEA Integrity Architecture Model Confidentiality Hazard analysis Resource Data Consumption Quality Bandwidth Data precision/ Real-time CPU time accuracy Performance Power Temporal consumption Execution time/ correctness Deadline Confidence Deadlock/starvation Reduced model Latency validation cost due to single source model
  • 37. SAE AADL Standard RMA Simplex MetaH ACME Automotive Lehoczky Dependable Upgrade Error Model Garlan Klein Sha Honeywell EDCS HOOD Eclipse GME MetaH VanderBilt Honeywell STOOD EMF MoBIES DSSA MBE Avionics Avionics SAE AADL AADL Meta Standard Model & XMI Nov 2004 June 2006 OSATE Toolset SEI Aerospace AADL UML AADL Error Profile Std Annex Standard 2007 June 2006 Embedded Systems Industry Research Industrial Industrial Industrial Standards Initiatives Projects Tools Unmanned www.aadl.info Medical Vehicles Aerospace Avionics Automotive
  • 38. Application Components System: hierarchical organization of components Process: protected virtual address space Thread group: organization of threads in processes Thread: an active unit of concurrent execution Data: potentially sharable data Subprogram: Callable unit of sequential code
  • 39. Why So Many ADLs? There are many reasons for having many ADLs: →Different ADLs for different “stakeholder concerns” ─ Different Domains ─ Different Analysis ─ Different Viewpoints →Some of them are really similar, with just small semantic or syntactic differences →Many are just prototipal languages research specific
  • 40. Problems with Existing ADLs High degree of formality →making difficult their integration in industrial life-cycles Specialized semantic basis: →Differentanalysis require different ADLs →Impossible to construct an ADL which supports every kind of analysis Limited tool support Lack of lifecycle-wide support Very limited industry buy-in to date
  • 41. Our study Goal: →To understand which ADLs are used by industry →To underestand what they like and do not like →To understand how to plan for more practical ADLs Plan: →We identified 135 ADLs!!! (see googledocs) →We interviewed 35 practitioners ─ from Volvo, IBM, ESA, Ericsson, CapGemini, SAP, Accenture Lab, ABB, and many others
  • 42. RQ1: most popular notations RQ1: What are the most popular notations used by the interviewed companies? Standard notation types 45 40 →UML vs formal ADL 35 30 ─ Standard notation types 25 20 15 10 5 0
  • 43. RQ1: most popular notations RQ1: What are the most popular notations used by the interviewed companies? →UML vs formal ADL AS IS (73%) ─ Standard notation types ─ Do you use UML? How? PROFILED (25%) NO USAGE (19%)
  • 44. RQ1: most popular notations RQ1: What are the most popular notations used by the interviewed companies? Kind of UML diagrams →UML vs formal ADL ─ Standard notation types Structural ─ Do you use UML? 38% How? 57% Behavioral Which UML diagrams? 5% Mixed(Structural/Behav ioral)
  • 45. RQ1: most popular notations RQ1: What are the most popular notations used by the interviewed companies? →UML vs formal ADL ─ Standard notation types ─ Do you use UML? How? Which UML diagrams? ─ Used ADL (see next slide)
  • 46. RQ1: Used ADLs Used Architectural Notations 40 35 30 25 20 15 10 5 0
  • 47. RQ1: most popular notations RQ1: What are the most popular notations used by the interviewed companies? Use of multiple ADLs →UML vs formal ADL 21% Yes 79% No ─ About 21% of the respondents use multiple ADLs ─ Free sketching is advocated as useful
  • 48. RQ1 - Summary →Summary: ─ UML very used (86%) ─ Formal ADL: only rarely and produced by industry (AADL, Archimate, ad hoc, Rapide)
  • 49. usefulness of ADL features in past and future projects
  • 50. A Compromise: UML UML is the de facto standard design notation of choice in industrial software development Understood by many industrial software developers Reasonably applicable to software architectures → UML can be adapted for use as an ADL, but ─ Less formal and much more ambiguous than existing ADLs ─ Mature design environments, but lack of powerful analysis tools Nowadays, many approaches to extend the UML for SA modeling
  • 51. In general As a matter of fact, a Software Architect needs to use different ADLs or UML profiles to model different aspects of his system →As analyzed in many papers, it is impractical to think about a universal ADL covering all the different users’ concerns →We will see our solution (DUALLY) in L17 and L18
  • 52. What you shall have learned You get the precise idea on what an ADL is You get a precise idea on why there are many ADLs