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

Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
Haitham El-Ghareeb
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
Hayim Makabee
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
Ashita Agrawal
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architecture
Himanshu
 

What's hot (20)

Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and design
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Object modeling
Object modelingObject modeling
Object modeling
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
Domain object model
Domain object modelDomain object model
Domain object model
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
 
Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMS
 
Basic behavioral modeling chapter 3 of OMD
Basic behavioral modeling chapter 3 of OMDBasic behavioral modeling chapter 3 of OMD
Basic behavioral modeling chapter 3 of OMD
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief Overview
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and Answer
 
Class diagram- UML diagram
Class diagram- UML diagramClass diagram- UML diagram
Class diagram- UML diagram
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architecture
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
 
CBAM
 CBAM CBAM
CBAM
 

Similar to Software Architecture: Styles

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
Stop Coding
 
L lpic1-v3-103-1-pdf
L lpic1-v3-103-1-pdfL lpic1-v3-103-1-pdf
L lpic1-v3-103-1-pdf
hellojdr
 
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
Giorgio Cefaro
 
Introduction tococoon2 (1)
Introduction tococoon2 (1)Introduction tococoon2 (1)
Introduction tococoon2 (1)
Duong Duong
 

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

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

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 

Recently uploaded (20)

PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
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
 
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
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
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
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
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
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
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
 

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 …