SlideShare a Scribd company logo
1 of 42
Download to read offline
Università degli Studi dell’Aquila




L04: SA Styles
                                        Henry Muccini
 Dipartimento di Ingegneria, Scienze dell’Informazione e
           Matematica, University of L’Aquila
        henry.muccini@univaq.it, @henrymuccini
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
Prescriptive vs descriptive use of an architectural
language
“A set of design rules that identify the kinds of components
        and connectors that may be used to compose a system
        or subsystem, together with local or global constraints on
        the way the composition is done” (Shaw & Clements, 1996)
      A set of constraints you put on your development to elicit desirable
IMP      properties from your software architecture.

              Topological
              Behavioral
              Communication-oriented
              etc. etc.
Architectural styles typically determine four kinds of properties [AAG93]:




IMP
The Classical Style




The Californian Style
Many similarities between patterns and styles


But they have come from different communities



Differences


                            Architectural Styles          Design Patterns


                      Few                          Many

                      Large-scale system           Localized, small-scale
                      organization                 design solutions
1.   The top of a component may be connected to the bottom
     of a single connector.




     Comp1          NOT Permitted
                                                   Connector Top

                              Connector Bottom

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


      Comp1




                                           Comp1
                       NOT Permitted
                                                   Connector Top

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




                                 Permitted

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

                             Connector Top

      Connector Bottom                                           Permitted
                         Connector Top
                                                 Connector Top

Connector Bottom
                           Connector Bottom


                         Connector Top                  Connector Top

Connector Bottom                  Connector Bottom
                                                           NOT Permitted
5. Components can communicate only through
   connectors

      Comp1

                                       Permitted:
             NOT Permitted
                                     Following rule 4


     Comp2
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

                         Requests             Notifications
           Top

  Comp2
       Bottom      Comp2 receives a request          Comp2 sends a notification


           Top     Comp1 sends a request      Comp1 receives a notification

  Comp1
          Bottom   Comp1 receives a request    Comp1 sends a notification
ADL           TOOLS             DATE                 SUPPORT FOR ARCHITECTURAL STYLES
                                                              Descrizione di proprietà ed interfacce relative a componenti
  AADL             Osate            2001                                                      +
                                                                          configurazioni di intercambio XML/XMI

  ACME       Acme Studio+Armani     1995                    Interscambio architetturale prevalentemente a livello strutturale


 ArchiTrio        Trident           1990         Unisce lo stile delle notazioni standard UML 2.0 ai formalismi logico-temporali di TRIO


 ArchJava      AcmeArchJava         2002                 Supporta uno stile di programmazione flessibile orientato agli oggetti

                CommUnity
CommUnity                           2002                           Linguaggio che si rispecchia negli stili UNITY ed IP
                WorkBench

 DARWIN       LTSA-WS + SAA         1991      Architetture di sistemi distribuiti il cui dinamismo è guidato da un supporto severo e formale


EAST-ADL        AutoFocus2        2001/2004           La descrizione degli elementi del linguaggio è suddivisa in sei parti (domini)


Ménage/xAD
           ArchStudio+Ménage        2000                     Introduce la distinzione tra prescription e description della SA
    L

 PRISMA         PrismaCase          2002                  Definizione di elementi architetturali a due diversi livelli di astrazione


xArch/xAcm                                    Versione recente del linguaggio Acme che ne mantiene le caratteristiche di base, specificate
                Acme Studio         2001
     e                                                                              però in XML


xArch/xADL   ArchStudio+Apigen      2000                     Introduce la distinzione tra prescription e description della SA
C2 Style
Pipes and filters
Layered systems
Blackboard style
Implicit Invocation
Idealized FT Component Model
_________________________________________________
Peer to peer


Hypertext style (!)
MVC
RUP
For each style, we will identify:
Layered Style


            Java

            Java
                          Java Virtual Machine
         Operating


         Processor       (Virtual Machine Style)


          System

       Virtual Machine

         Application
The Layered System Style

A layered system is organized hierarchically, each layer providing service
   to the layer above and below
Components

Connectors
        Procedure calls or system calls

Stylistic invariants
Application                            Application
Presentation                           Presentation
  Session                                Session
 Transport                              Transport
 Network       Network     Network      Network
 Data Link     Data Link   Data Link    Data Link
  Physical     Physical    Physical      Physical
Advantages




Disadvantages
GLOBAL
    XCONN                                         XCONN
                                  SHELF


                                  PERIPHE
            XCONN1
                                  RAL                  XCONN1

     1..1
                                                1..1
                    1..1
             1..2                                              1..1
                                                        1..2

            XCONN2         1..1
                                                       XCONN2         1..1
     1..1
                                                1..1
                    1..1
                                                               1..1


…                   1..1
                           1..1             …                  1..1
                                                                      1..1
            XCONN3
                                                       XCONN3
Blackboad style
1..*                Controller

  KS
1..*
                  Blackboard
The Blackboard Style

This style is characterized by a central data structure and a collection of components
operating on the central data store

The Blackboard is characterized by three main types of components
(Corkill, 1991):




Connector
Property
Advantages




Disadvantages
Distributed Peer-to-Peer Systems

Components


Connectors

Configurations

Computational model
Web
                                                       Servers
  Browser Clients
                                                           www.sitoweb.it
Netscape
Navigator
                          HTTP
                                                www.website.com
                   (asynchronous RPC)
Microsoft
   IE
                                                                www.laudaweb.it


     • Load balancing
     • Cooperative caching
     • Use of geographic distribution of the server machines.
Client/Server Systems

Client/Server systems are the most common specialization (restriction) of
   the peer-to-peer style

One component is a server offering a service

The other components are clients using the service

Server implementation is transparent but can be centralized or distributed,
  single-threaded or multi-threaded
3-Tier Client/Server Systems (example)
3-Tier Client/Server Systems

3-Tier Client/Server systems are a common class of distributed business
  systems


First tier: Client (user interface) tier


Second (middle, “business logic”) tier: Servers acting as “business objects”,
  encapsulating abstract, integrated models of multiple, disparate data
  sources


Third (back-end, database) tier: Legacy business applications providing data
  services
WHAT IS P2P?

There are 3 types of P2P System:




   1st: Napster
WHAT IS P2P?




2nd: Gnutella
WHAT IS P2P?




  3rd: SKYPE
Advantages




Disadvantages
      Distributed state
      Potential for deadlock, starvation, race conditions, service outages

      Data marshalling and unmarshalling
      Proxies and stubs for RPC
      Legacy wrappers
Program unit (object, process, block, module, method,
class, component, etc.)
 Service Request   Reply        Interface Exception   Failure Exception



                           Local Exception


      Normal Processing                 Error Processing
                           Return to normal




 Service Request   Reply        Interface Exception   Failure Exception
•The normal part implements the component’s normal services
•The exceptional part implements the responses of the component to exceptional
situations, by means of exception-handling techniques.
•When the normal behavior of a component raises an exception (local exception) its
exception handling part is automatically invoked. If the exception is successfully
handled the component resumes its normal behavior, otherwise an external
exception is signalled.
•External exceptions are signalled to the enclosing context when the component
realizes that is not able to provide the service.
Example
Let us take into consideration the Fire System
      example.
      Let us consider the:
IMP
What you shall have learned

You shall:
       Layered systems
       Blackboard style
       Peer to peer
       …

More Related Content

What's hot

Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Cloud Computing Principles and Paradigms: 4 the enterprise cloud computing pa...
Cloud Computing Principles and Paradigms: 4 the enterprise cloud computing pa...Cloud Computing Principles and Paradigms: 4 the enterprise cloud computing pa...
Cloud Computing Principles and Paradigms: 4 the enterprise cloud computing pa...Majid Hajibaba
 
Reconstructing Software Architecture
Reconstructing Software ArchitectureReconstructing Software Architecture
Reconstructing Software ArchitectureHimanshu
 
Introduction to Virtualization
Introduction to VirtualizationIntroduction to Virtualization
Introduction to VirtualizationRahul Hada
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagramRamakant Soni
 
Virtualization & cloud computing
Virtualization & cloud computingVirtualization & cloud computing
Virtualization & cloud computingSoumyajit Basu
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software EngineeringSatishDabhi1
 
Lead Allocation System's Attribute Driven Design (ADD)
Lead Allocation System's Attribute Driven Design (ADD)Lead Allocation System's Attribute Driven Design (ADD)
Lead Allocation System's Attribute Driven Design (ADD)Amin Bandeali
 
Unit 4 designing classes
Unit 4  designing classesUnit 4  designing classes
Unit 4 designing classesgopal10scs185
 

What's hot (20)

Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Ch17 distributed software engineering
Ch17 distributed software engineeringCh17 distributed software engineering
Ch17 distributed software engineering
 
Cloud Computing Principles and Paradigms: 4 the enterprise cloud computing pa...
Cloud Computing Principles and Paradigms: 4 the enterprise cloud computing pa...Cloud Computing Principles and Paradigms: 4 the enterprise cloud computing pa...
Cloud Computing Principles and Paradigms: 4 the enterprise cloud computing pa...
 
Reconstructing Software Architecture
Reconstructing Software ArchitectureReconstructing Software Architecture
Reconstructing Software Architecture
 
Ch6 architectural design
Ch6 architectural designCh6 architectural design
Ch6 architectural design
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Introduction to Virtualization
Introduction to VirtualizationIntroduction to Virtualization
Introduction to Virtualization
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagram
 
Virtualization & cloud computing
Virtualization & cloud computingVirtualization & cloud computing
Virtualization & cloud computing
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Types and roles
Types and rolesTypes and roles
Types and roles
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software Engineering
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Cloud Computing: Virtualization
Cloud Computing: VirtualizationCloud Computing: Virtualization
Cloud Computing: Virtualization
 
Sequence diagrams in UML
Sequence diagrams in UMLSequence diagrams in UML
Sequence diagrams in UML
 
Lead Allocation System's Attribute Driven Design (ADD)
Lead Allocation System's Attribute Driven Design (ADD)Lead Allocation System's Attribute Driven Design (ADD)
Lead Allocation System's Attribute Driven Design (ADD)
 
Functional modeling
Functional modelingFunctional modeling
Functional modeling
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Unit 4 designing classes
Unit 4  designing classesUnit 4  designing classes
Unit 4 designing classes
 

Similar to Software Architecture: Styles

Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIvano Malavolta
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languagesIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
In-depth look at the Flex compiler and HFCD
In-depth look at the Flex compiler and HFCDIn-depth look at the Flex compiler and HFCD
In-depth look at the Flex compiler and HFCDStop Coding
 
L lpic1-v3-103-1-pdf
L lpic1-v3-103-1-pdfL lpic1-v3-103-1-pdf
L lpic1-v3-103-1-pdfhellojdr
 
[2015/2016] Architectural languages
[2015/2016] Architectural languages[2015/2016] Architectural languages
[2015/2016] Architectural languagesIvano Malavolta
 
An introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developersAn introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developersGiorgio Cefaro
 
2013 Hello GCC:The Theory, History and Future of System Linkers
2013 Hello GCC:The Theory, History and Future of System Linkers2013 Hello GCC:The Theory, History and Future of System Linkers
2013 Hello GCC:The Theory, History and Future of System LinkersChing-Yi Chen
 
Colony, modularity the easy way
Colony, modularity the easy wayColony, modularity the easy way
Colony, modularity the easy wayHive Solutions
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDESina Madani
 
Staying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugStaying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugmarckhouzam
 
Elixir for aspiring Erlang developers
Elixir for aspiring Erlang developersElixir for aspiring Erlang developers
Elixir for aspiring Erlang developersTorben Dohrn
 
Concept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variabilityConcept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variabilityRa'Fat Al-Msie'deen
 
COBOL FOR FRESHER
COBOL FOR FRESHERCOBOL FOR FRESHER
COBOL FOR FRESHERNirmal Pati
 
ECET 380 Entire Course NEW
ECET 380 Entire Course NEWECET 380 Entire Course NEW
ECET 380 Entire Course NEWshyamuopuop
 
ECET 380 Success Begins/Newtonhelp.com
ECET 380 Success Begins/Newtonhelp.comECET 380 Success Begins/Newtonhelp.com
ECET 380 Success Begins/Newtonhelp.comledlang2
 
Introduction tococoon2 (1)
Introduction tococoon2 (1)Introduction tococoon2 (1)
Introduction tococoon2 (1)Duong Duong
 
Flex4 Component Lifecycle
Flex4 Component LifecycleFlex4 Component Lifecycle
Flex4 Component LifecycleEffective
 

Similar to Software Architecture: Styles (20)

Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGES
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languages
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
In-depth look at the Flex compiler and HFCD
In-depth look at the Flex compiler and HFCDIn-depth look at the Flex compiler and HFCD
In-depth look at the Flex compiler and HFCD
 
L lpic1-v3-103-1-pdf
L lpic1-v3-103-1-pdfL lpic1-v3-103-1-pdf
L lpic1-v3-103-1-pdf
 
[2015/2016] Architectural languages
[2015/2016] Architectural languages[2015/2016] Architectural languages
[2015/2016] Architectural languages
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 
An introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developersAn introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developers
 
2013 Hello GCC:The Theory, History and Future of System Linkers
2013 Hello GCC:The Theory, History and Future of System Linkers2013 Hello GCC:The Theory, History and Future of System Linkers
2013 Hello GCC:The Theory, History and Future of System Linkers
 
Colony, modularity the easy way
Colony, modularity the easy wayColony, modularity the easy way
Colony, modularity the easy way
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDE
 
Staying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugStaying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debug
 
Elixir for aspiring Erlang developers
Elixir for aspiring Erlang developersElixir for aspiring Erlang developers
Elixir for aspiring Erlang developers
 
Concept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variabilityConcept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variability
 
COBOL FOR FRESHER
COBOL FOR FRESHERCOBOL FOR FRESHER
COBOL FOR FRESHER
 
ECET 380 Entire Course NEW
ECET 380 Entire Course NEWECET 380 Entire Course NEW
ECET 380 Entire Course NEW
 
ECET 380 Success Begins/Newtonhelp.com
ECET 380 Success Begins/Newtonhelp.comECET 380 Success Begins/Newtonhelp.com
ECET 380 Success Begins/Newtonhelp.com
 
Studienarb linux kernel-dev
Studienarb linux kernel-devStudienarb linux kernel-dev
Studienarb linux kernel-dev
 
Introduction tococoon2 (1)
Introduction tococoon2 (1)Introduction tococoon2 (1)
Introduction tococoon2 (1)
 
Flex4 Component Lifecycle
Flex4 Component LifecycleFlex4 Component Lifecycle
Flex4 Component Lifecycle
 

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

Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxdhanalakshmis0310
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docxPoojaSen20
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 

Recently uploaded (20)

Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 

Software Architecture: Styles

  • 1. Università degli Studi dell’Aquila L04: SA Styles Henry Muccini Dipartimento di Ingegneria, Scienze dell’Informazione e Matematica, University of L’Aquila henry.muccini@univaq.it, @henrymuccini
  • 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
  • 4. Prescriptive vs descriptive use of an architectural language
  • 5. “A set of design rules that identify the kinds of components and connectors that may be used to compose a system or subsystem, together with local or global constraints on the way the composition is done” (Shaw & Clements, 1996) A set of constraints you put on your development to elicit desirable IMP properties from your software architecture. Topological Behavioral Communication-oriented etc. etc.
  • 6. Architectural styles typically determine four kinds of properties [AAG93]: IMP
  • 7. The Classical Style The Californian Style
  • 8. Many similarities between patterns and styles But they have come from different communities Differences Architectural Styles Design Patterns Few Many Large-scale system Localized, small-scale organization design solutions
  • 9.
  • 10. 1. The top of a component may be connected to the bottom of a single connector. Comp1 NOT Permitted Connector Top Connector Bottom Comp1
  • 11. 2. The bottom of a component may be connected to the top of a single connector. Comp1 Comp1 NOT Permitted Connector Top Connector Bottom
  • 12. 3. There is no bound on the number of components or connectors that may be attached to a single connector. Permitted Comp1 Comp2 Comp3
  • 13. 4. When two connectors are attached to each other, it must be from the bottom of one to the top of the other. Connector Top Connector Bottom Permitted Connector Top Connector Top Connector Bottom Connector Bottom Connector Top Connector Top Connector Bottom Connector Bottom NOT Permitted
  • 14. 5. Components can communicate only through connectors Comp1 Permitted: NOT Permitted Following rule 4 Comp2
  • 15. 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 Requests Notifications Top Comp2 Bottom Comp2 receives a request Comp2 sends a notification Top Comp1 sends a request Comp1 receives a notification Comp1 Bottom Comp1 receives a request Comp1 sends a notification
  • 16. ADL TOOLS DATE SUPPORT FOR ARCHITECTURAL STYLES Descrizione di proprietà ed interfacce relative a componenti AADL Osate 2001 + configurazioni di intercambio XML/XMI ACME Acme Studio+Armani 1995 Interscambio architetturale prevalentemente a livello strutturale ArchiTrio Trident 1990 Unisce lo stile delle notazioni standard UML 2.0 ai formalismi logico-temporali di TRIO ArchJava AcmeArchJava 2002 Supporta uno stile di programmazione flessibile orientato agli oggetti CommUnity CommUnity 2002 Linguaggio che si rispecchia negli stili UNITY ed IP WorkBench DARWIN LTSA-WS + SAA 1991 Architetture di sistemi distribuiti il cui dinamismo è guidato da un supporto severo e formale EAST-ADL AutoFocus2 2001/2004 La descrizione degli elementi del linguaggio è suddivisa in sei parti (domini) Ménage/xAD ArchStudio+Ménage 2000 Introduce la distinzione tra prescription e description della SA L PRISMA PrismaCase 2002 Definizione di elementi architetturali a due diversi livelli di astrazione xArch/xAcm Versione recente del linguaggio Acme che ne mantiene le caratteristiche di base, specificate Acme Studio 2001 e però in XML xArch/xADL ArchStudio+Apigen 2000 Introduce la distinzione tra prescription e description della SA
  • 17. C2 Style Pipes and filters Layered systems Blackboard style Implicit Invocation Idealized FT Component Model _________________________________________________ Peer to peer Hypertext style (!) MVC RUP
  • 18. For each style, we will identify:
  • 19. Layered Style Java Java Java Virtual Machine Operating Processor (Virtual Machine Style) System Virtual Machine Application
  • 20. The Layered System Style A layered system is organized hierarchically, each layer providing service to the layer above and below Components Connectors Procedure calls or system calls Stylistic invariants
  • 21. Application Application Presentation Presentation Session Session Transport Transport Network Network Network Network Data Link Data Link Data Link Data Link Physical Physical Physical Physical
  • 22.
  • 24. GLOBAL XCONN XCONN SHELF PERIPHE XCONN1 RAL XCONN1 1..1 1..1 1..1 1..2 1..1 1..2 XCONN2 1..1 XCONN2 1..1 1..1 1..1 1..1 1..1 … 1..1 1..1 … 1..1 1..1 XCONN3 XCONN3
  • 25. Blackboad style 1..* Controller KS 1..* Blackboard
  • 26. The Blackboard Style This style is characterized by a central data structure and a collection of components operating on the central data store The Blackboard is characterized by three main types of components (Corkill, 1991): Connector Property
  • 28.
  • 30. Web Servers Browser Clients www.sitoweb.it Netscape Navigator HTTP www.website.com (asynchronous RPC) Microsoft IE www.laudaweb.it • Load balancing • Cooperative caching • Use of geographic distribution of the server machines.
  • 31. Client/Server Systems Client/Server systems are the most common specialization (restriction) of the peer-to-peer style One component is a server offering a service The other components are clients using the service Server implementation is transparent but can be centralized or distributed, single-threaded or multi-threaded
  • 33. 3-Tier Client/Server Systems 3-Tier Client/Server systems are a common class of distributed business systems First tier: Client (user interface) tier Second (middle, “business logic”) tier: Servers acting as “business objects”, encapsulating abstract, integrated models of multiple, disparate data sources Third (back-end, database) tier: Legacy business applications providing data services
  • 34. WHAT IS P2P? There are 3 types of P2P System: 1st: Napster
  • 35. WHAT IS P2P? 2nd: Gnutella
  • 36. WHAT IS P2P? 3rd: SKYPE
  • 37. Advantages Disadvantages Distributed state Potential for deadlock, starvation, race conditions, service outages Data marshalling and unmarshalling Proxies and stubs for RPC Legacy wrappers
  • 38. Program unit (object, process, block, module, method, class, component, etc.) Service Request Reply Interface Exception Failure Exception Local Exception Normal Processing Error Processing Return to normal Service Request Reply Interface Exception Failure Exception
  • 39. •The normal part implements the component’s normal services •The exceptional part implements the responses of the component to exceptional situations, by means of exception-handling techniques. •When the normal behavior of a component raises an exception (local exception) its exception handling part is automatically invoked. If the exception is successfully handled the component resumes its normal behavior, otherwise an external exception is signalled. •External exceptions are signalled to the enclosing context when the component realizes that is not able to provide the service.
  • 41. Let us take into consideration the Fire System example. Let us consider the: IMP
  • 42. What you shall have learned You shall: Layered systems Blackboard style Peer to peer …