SlideShare a Scribd company logo
1 of 24
Software Architecture

                              Prof.Dr.ir. F. Gielen



Architectural Views




  Vakgroep Informatietechnologie – IBCN
Software Architecture Definition




     The Software Architecture of a program or
 computing system is the structure or structures of
 the system, which comprises software elements,
  the external visible properties of those elements
         and the relationships among them.




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 2
Where do views come from ?


   A software architecture is multi-dimensional & complex
    entity that cannot be described in a simple one-
    dimensional fashion.
   To communicate meaningfully about an architecture, we
    must make clear which structure or structures we are
    discussing at the moment - which view we are taking of
    the architecture.




     Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 3
Architectural views – Ph.Kruchten

     A view is a set of coherent architectural elements.
                                                                Programmers
                                                                 - Software management
End user
 - Functionality
 - Vocabulary
                              Design                    Component
                               view                        view

                                             Use case
     Analysts/Testers
      - Behavior                               view

                             Process                    Deployment
                              view                         view

System integrators                                           System engineering
- Performance                                                 - System topology
- Scalability                                                 - Delivery and installation
- Throughput                                                  - Communication


Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                                       p. 4
Architecture Documentation Challenges

   How do you decide which architectural views to
    document?
   What information do you record about an architectural
    view beyond the box-and-line diagram?
   How do you specify an architectural element's
    software interface? What information do you record?
   How do you specify an element's behavior?
   What notations are available for documenting a view,
    an interface or behavior?




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN      p. 5
Architecture Description Languages

                                     Requirements




                                                        UML




                                     Software
                                   Architecture




An ADL is a language that provides features for modelling a software
system’s conceptual architecture.

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                  p. 6
Architecture Structures
   STATIC view : What is the structure of the system ?
        What is the primary functional responsibility assigned to each structure?
        What other software elements is a module allowed to use?
        What other software does it actually use?
   DYNAMIC view: What is the runtime behavior of the system ?
        What are the major components ? How do they interact , communicate ?
        What are the major shared data stores? Which parts of the system are
         replicated? How does data flow or progress through the system?
        What are the system states ?
        What parts of the system can run in parallel and are concurrent ?
   DEPLOYMENT view : Allocation Structures.
        Relation with external elements
        What processor does each software element execute on?
        In what files is each element stored during development, testing, and
         system building?
      Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                      p. 7
UML 2.0 for Architecture




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   8
STATIC Views & Modules Structures

                                     Module

                 Decomposition                          Class
                                       Uses


                                      Layered




Modules are units of implementation.
      with functional responsibility
      is a sub module of and uses - relations
      generalisation -> re-use & incremental development
      associated products: test plan, interface specification,
       code …etc.

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN             p. 9
Module Structures in UML

   Represented stereotyped packages, classes and interfaces




      Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 10
UML Interfaces Representations
   Provided interfaces



   Required interfaces



   Example: HTTP Server




    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   11
Component Diagrams
   A component is a modular, autonomous unit with well
    defined interfaces.
   They are particularly well suited for initial architectural
    modeling.
                                                              Static View


                                                              Dynamic View




      Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                  12
DYNAMIC Views & Component-Connector
                       Component – Connector Structures

                Communication
                                                        Shared data
                  Processes
                             Concurrency         Client -
                                                 Server


Components are runtime units
      computational units
      parallelism, identify resource contention


Connectors are interaction mechanism among
components
      communication & synchronisation mechanism
      interaction, data flow (persistence).
Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                 p. 13
Dynamic Views in UML




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   14
Interaction diagrams
Interaction diagrams show the communication behavior
between parts of the system
Four types of Interaction diagrams
     Sequence diagram
            Emphasis on the sequence of communications between parts
      Communication diagram
            Emphasis on structure and the communication paths between
             parts
      Timing diagram
            Emphasis on change in state over time
      Interaction overview diagram
            Emphasis on flow of control between interactions


       Vakgroep Informatietechnologie – Onderzoeksgroep IBCN         15
Sequence diagram




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   16
Communication Diagram




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   17
Example: Static & Dynamic view




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 18
DEPLOYMENT Views & Allocation structures

                                     Allocation
                                                    Work
                   Deployment
                                                    Assignment

                                   Implementation



Allocation structures show relations in the
external environment:
      assignment to processors and communication
       resources
      mapping to file structures and build systems
      who does the work



Vakgroep Informatietechnologie – Onderzoeksgroep IBCN            p. 19
UML Deployment Diagrams




                                            aN ode




     Node           ≈ “computational unit”
                    (processor, computer, sensor, ...)


Vakgroep Informatietechnologie – Onderzoeksgroep IBCN    p. 20
Example WWW Client Server




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 21
HTTP Client Module

   UI manager :
      Responsible for the look and feel of the UI (e.g., web browser)
   Presentation manager
      Delegates document types to viewers
               external: QuickTime movies, MP3 audio, etc.
               internal: HTML, GIFs to UI manager
   Scenario:
      UI manager captures user’s requests for URL and passes to
       Access manager
      Access manager determines if URL has been cached; if not, it
       initiates retrieval through Protocol and Stream managers
      Response stream sent to presentation manager for
       appropriate display


    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN            p. 22
HTTP Server Module

   Hypertext Transfer Protocol (HTTP) server :
      Receives URL request and passes that the Path resolver, which
       determines the file location for the document (assuming local)
      Checks the access list to see if access is permitted (may initiate
       password authentication session) and then gets the document
       from the file system and writes it to the output stream
   Common Gateway Interface (CGI)
      Special document type that allows customized access to other
       data or programs
      Also writes to output stream
   HTML stream is sent to the client by the HTTP server



     Vakgroep Informatietechnologie – Onderzoeksgroep IBCN            p. 23
Common Gateway Interface (CGI)


   HTTP server : transparent access to the file system
    by:
       Handling access directly for known types
       Passing unknown types to a “proxy” server known as Common
        Gateway Interface (CGI)


   CGI
       Most information returned by the server is “static”
       CGI provides for the dynamic generation of responses e.g.
        “looking something up in a database”
       Virtual documents or dynamic documents
       CGI Scripts: C, C++, Perl, Visual Basic, AppleScript, PHP,



    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN            p. 24

More Related Content

What's hot

4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Remedy IT
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technologyMayukh Maitra
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technologySaransh Garg
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Aspect oriented software development
Aspect oriented software developmentAspect oriented software development
Aspect oriented software developmentMaryam Malekzad
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design conceptssrijavel
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? IJORCS
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineeringVarsha Ajith
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 
10 ooad uml-13
10 ooad uml-1310 ooad uml-13
10 ooad uml-13Niit Care
 
A comparison of component-based software engineering and model-driven develop...
A comparison of component-based software engineering and model-driven develop...A comparison of component-based software engineering and model-driven develop...
A comparison of component-based software engineering and model-driven develop...Nikolay Grozev
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecturebashcode
 

What's hot (20)

4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
Software design
Software designSoftware design
Software design
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 
Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technology
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technology
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software Development
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Aspect oriented software development
Aspect oriented software developmentAspect oriented software development
Aspect oriented software development
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies?
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineering
 
Sda 7
Sda   7Sda   7
Sda 7
 
Software design
Software designSoftware design
Software design
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
10 ooad uml-13
10 ooad uml-1310 ooad uml-13
10 ooad uml-13
 
Design techniques
Design techniquesDesign techniques
Design techniques
 
A comparison of component-based software engineering and model-driven develop...
A comparison of component-based software engineering and model-driven develop...A comparison of component-based software engineering and model-driven develop...
A comparison of component-based software engineering and model-driven develop...
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 

Viewers also liked

An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptswweinmeyer79
 
Software architecture categories and views
Software architecture categories and viewsSoftware architecture categories and views
Software architecture categories and viewsJohn Chou
 
支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境John Chou
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software ArchitectureIvano Malavolta
 
Solution Architecture Concept Workshop
Solution Architecture Concept WorkshopSolution Architecture Concept Workshop
Solution Architecture Concept WorkshopAlan McSweeney
 
Generating Architectural Concepts & Design Ideas
Generating Architectural Concepts & Design IdeasGenerating Architectural Concepts & Design Ideas
Generating Architectural Concepts & Design IdeasWan Muhammad / Asas-Khu™
 
Structured Approach to Solution Architecture
Structured Approach to Solution ArchitectureStructured Approach to Solution Architecture
Structured Approach to Solution ArchitectureAlan McSweeney
 

Viewers also liked (8)

An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture concepts
 
Software architecture categories and views
Software architecture categories and viewsSoftware architecture categories and views
Software architecture categories and views
 
支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境
 
Class notes
Class notesClass notes
Class notes
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
Solution Architecture Concept Workshop
Solution Architecture Concept WorkshopSolution Architecture Concept Workshop
Solution Architecture Concept Workshop
 
Generating Architectural Concepts & Design Ideas
Generating Architectural Concepts & Design IdeasGenerating Architectural Concepts & Design Ideas
Generating Architectural Concepts & Design Ideas
 
Structured Approach to Solution Architecture
Structured Approach to Solution ArchitectureStructured Approach to Solution Architecture
Structured Approach to Solution Architecture
 

Similar to Sa 008 architecture_views

4+1view architecture
4+1view architecture4+1view architecture
4+1view architectureTot Bob
 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributesFrank Gielen
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Mozaic Works
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxmccormicknadine86
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architectureIvano Malavolta
 
Architectural design
Architectural designArchitectural design
Architectural designHuda Alameen
 
Model Based Software Architectures
Model Based Software ArchitecturesModel Based Software Architectures
Model Based Software ArchitecturesMunazza-Mah-Jabeen
 
Introduction to Modern Software Architecture
Introduction to Modern Software ArchitectureIntroduction to Modern Software Architecture
Introduction to Modern Software ArchitectureJérôme Kehrli
 
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSALARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSALijcsit
 
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSALARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSALAIRCC Publishing Corporation
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principlesAhmad sohail Kakar
 

Similar to Sa 008 architecture_views (20)

4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributes
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docx
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Se lec6
Se lec6Se lec6
Se lec6
 
Architectural design
Architectural designArchitectural design
Architectural design
 
2
22
2
 
Model Based Software Architectures
Model Based Software ArchitecturesModel Based Software Architectures
Model Based Software Architectures
 
Introduction to Modern Software Architecture
Introduction to Modern Software ArchitectureIntroduction to Modern Software Architecture
Introduction to Modern Software Architecture
 
Sda 2
Sda   2Sda   2
Sda 2
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Lecture-7.ppt
Lecture-7.pptLecture-7.ppt
Lecture-7.ppt
 
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSALARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
 
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSALARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
ARCHITECTURAL ASPECT-AWARE DESIGN FOR IOT APPLICATIONS: CONCEPTUAL PROPOSAL
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principles
 

More from Frank Gielen

I mindsx4howest v2
I mindsx4howest v2I mindsx4howest v2
I mindsx4howest v2Frank Gielen
 
I mindsx learning analytics v2
I mindsx learning analytics v2I mindsx learning analytics v2
I mindsx learning analytics v2Frank Gielen
 
You have been MOOCed
You have been MOOCedYou have been MOOCed
You have been MOOCedFrank Gielen
 
Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)Frank Gielen
 
Beyond MOOCs (2014)
Beyond MOOCs (2014)Beyond MOOCs (2014)
Beyond MOOCs (2014)Frank Gielen
 
The Research Canvas
The Research CanvasThe Research Canvas
The Research CanvasFrank Gielen
 
Defining the opportunity 2013
Defining the opportunity 2013Defining the opportunity 2013
Defining the opportunity 2013Frank Gielen
 
KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013Frank Gielen
 
Dare 2 Start - Course outline
Dare 2 Start - Course outlineDare 2 Start - Course outline
Dare 2 Start - Course outlineFrank Gielen
 
Delaware presentation nov2012
Delaware presentation nov2012Delaware presentation nov2012
Delaware presentation nov2012Frank Gielen
 
Sa 007 availability
Sa 007 availabilitySa 007 availability
Sa 007 availabilityFrank Gielen
 
Pr 005 qa_workshop
Pr 005 qa_workshopPr 005 qa_workshop
Pr 005 qa_workshopFrank Gielen
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiabilityFrank Gielen
 
The Phonegap Architecture
The Phonegap ArchitectureThe Phonegap Architecture
The Phonegap ArchitectureFrank Gielen
 
VC Do's and Don'ts - Jurgen Ingels
VC Do's and Don'ts  - Jurgen Ingels VC Do's and Don'ts  - Jurgen Ingels
VC Do's and Don'ts - Jurgen Ingels Frank Gielen
 
Debt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickDebt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickFrank Gielen
 
Sa 005 performance
Sa 005 performanceSa 005 performance
Sa 005 performanceFrank Gielen
 

More from Frank Gielen (20)

I mindsx4howest v2
I mindsx4howest v2I mindsx4howest v2
I mindsx4howest v2
 
I mindsx learning analytics v2
I mindsx learning analytics v2I mindsx learning analytics v2
I mindsx learning analytics v2
 
You have been MOOCed
You have been MOOCedYou have been MOOCed
You have been MOOCed
 
Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)
 
Beyond MOOCs (2014)
Beyond MOOCs (2014)Beyond MOOCs (2014)
Beyond MOOCs (2014)
 
The Research Canvas
The Research CanvasThe Research Canvas
The Research Canvas
 
Defining the opportunity 2013
Defining the opportunity 2013Defining the opportunity 2013
Defining the opportunity 2013
 
KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013
 
Dare 2 Start - Course outline
Dare 2 Start - Course outlineDare 2 Start - Course outline
Dare 2 Start - Course outline
 
Sop test planning
Sop test planningSop test planning
Sop test planning
 
Delaware presentation nov2012
Delaware presentation nov2012Delaware presentation nov2012
Delaware presentation nov2012
 
Pr crc
Pr crcPr crc
Pr crc
 
Sa 009 add
Sa 009 addSa 009 add
Sa 009 add
 
Sa 007 availability
Sa 007 availabilitySa 007 availability
Sa 007 availability
 
Pr 005 qa_workshop
Pr 005 qa_workshopPr 005 qa_workshop
Pr 005 qa_workshop
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiability
 
The Phonegap Architecture
The Phonegap ArchitectureThe Phonegap Architecture
The Phonegap Architecture
 
VC Do's and Don'ts - Jurgen Ingels
VC Do's and Don'ts  - Jurgen Ingels VC Do's and Don'ts  - Jurgen Ingels
VC Do's and Don'ts - Jurgen Ingels
 
Debt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickDebt & Equity - Wouter Haerick
Debt & Equity - Wouter Haerick
 
Sa 005 performance
Sa 005 performanceSa 005 performance
Sa 005 performance
 

Recently uploaded

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Recently uploaded (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Sa 008 architecture_views

  • 1. Software Architecture Prof.Dr.ir. F. Gielen Architectural Views Vakgroep Informatietechnologie – IBCN
  • 2. Software Architecture Definition The Software Architecture of a program or computing system is the structure or structures of the system, which comprises software elements, the external visible properties of those elements and the relationships among them. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 2
  • 3. Where do views come from ?  A software architecture is multi-dimensional & complex entity that cannot be described in a simple one- dimensional fashion.  To communicate meaningfully about an architecture, we must make clear which structure or structures we are discussing at the moment - which view we are taking of the architecture. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 3
  • 4. Architectural views – Ph.Kruchten A view is a set of coherent architectural elements. Programmers - Software management End user - Functionality - Vocabulary Design Component view view Use case Analysts/Testers - Behavior view Process Deployment view view System integrators System engineering - Performance - System topology - Scalability - Delivery and installation - Throughput - Communication Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 4
  • 5. Architecture Documentation Challenges  How do you decide which architectural views to document?  What information do you record about an architectural view beyond the box-and-line diagram?  How do you specify an architectural element's software interface? What information do you record?  How do you specify an element's behavior?  What notations are available for documenting a view, an interface or behavior? Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 5
  • 6. Architecture Description Languages Requirements UML Software Architecture An ADL is a language that provides features for modelling a software system’s conceptual architecture. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 6
  • 7. Architecture Structures  STATIC view : What is the structure of the system ?  What is the primary functional responsibility assigned to each structure?  What other software elements is a module allowed to use?  What other software does it actually use?  DYNAMIC view: What is the runtime behavior of the system ?  What are the major components ? How do they interact , communicate ?  What are the major shared data stores? Which parts of the system are replicated? How does data flow or progress through the system?  What are the system states ?  What parts of the system can run in parallel and are concurrent ?  DEPLOYMENT view : Allocation Structures.  Relation with external elements  What processor does each software element execute on?  In what files is each element stored during development, testing, and system building? Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 7
  • 8. UML 2.0 for Architecture Vakgroep Informatietechnologie – Onderzoeksgroep IBCN 8
  • 9. STATIC Views & Modules Structures Module Decomposition Class Uses Layered Modules are units of implementation.  with functional responsibility  is a sub module of and uses - relations  generalisation -> re-use & incremental development  associated products: test plan, interface specification, code …etc. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 9
  • 10. Module Structures in UML  Represented stereotyped packages, classes and interfaces Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 10
  • 11. UML Interfaces Representations  Provided interfaces  Required interfaces  Example: HTTP Server Vakgroep Informatietechnologie – Onderzoeksgroep IBCN 11
  • 12. Component Diagrams  A component is a modular, autonomous unit with well defined interfaces.  They are particularly well suited for initial architectural modeling. Static View Dynamic View Vakgroep Informatietechnologie – Onderzoeksgroep IBCN 12
  • 13. DYNAMIC Views & Component-Connector Component – Connector Structures Communication Shared data Processes Concurrency Client - Server Components are runtime units  computational units  parallelism, identify resource contention Connectors are interaction mechanism among components  communication & synchronisation mechanism  interaction, data flow (persistence). Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 13
  • 14. Dynamic Views in UML Vakgroep Informatietechnologie – Onderzoeksgroep IBCN 14
  • 15. Interaction diagrams Interaction diagrams show the communication behavior between parts of the system Four types of Interaction diagrams  Sequence diagram  Emphasis on the sequence of communications between parts  Communication diagram  Emphasis on structure and the communication paths between parts  Timing diagram  Emphasis on change in state over time  Interaction overview diagram  Emphasis on flow of control between interactions Vakgroep Informatietechnologie – Onderzoeksgroep IBCN 15
  • 16. Sequence diagram Vakgroep Informatietechnologie – Onderzoeksgroep IBCN 16
  • 18. Example: Static & Dynamic view Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 18
  • 19. DEPLOYMENT Views & Allocation structures Allocation Work Deployment Assignment Implementation Allocation structures show relations in the external environment:  assignment to processors and communication resources  mapping to file structures and build systems  who does the work Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 19
  • 20. UML Deployment Diagrams aN ode Node ≈ “computational unit” (processor, computer, sensor, ...) Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 20
  • 21. Example WWW Client Server Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 21
  • 22. HTTP Client Module  UI manager :  Responsible for the look and feel of the UI (e.g., web browser)  Presentation manager  Delegates document types to viewers  external: QuickTime movies, MP3 audio, etc.  internal: HTML, GIFs to UI manager  Scenario:  UI manager captures user’s requests for URL and passes to Access manager  Access manager determines if URL has been cached; if not, it initiates retrieval through Protocol and Stream managers  Response stream sent to presentation manager for appropriate display Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 22
  • 23. HTTP Server Module  Hypertext Transfer Protocol (HTTP) server :  Receives URL request and passes that the Path resolver, which determines the file location for the document (assuming local)  Checks the access list to see if access is permitted (may initiate password authentication session) and then gets the document from the file system and writes it to the output stream  Common Gateway Interface (CGI)  Special document type that allows customized access to other data or programs  Also writes to output stream  HTML stream is sent to the client by the HTTP server Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 23
  • 24. Common Gateway Interface (CGI)  HTTP server : transparent access to the file system by:  Handling access directly for known types  Passing unknown types to a “proxy” server known as Common Gateway Interface (CGI)  CGI  Most information returned by the server is “static”  CGI provides for the dynamic generation of responses e.g. “looking something up in a database”  Virtual documents or dynamic documents  CGI Scripts: C, C++, Perl, Visual Basic, AppleScript, PHP, Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 24

Editor's Notes

  1. The neurologist, the orthopedist, the hematologist, and the dermatologist all have a different view of the structure of a human body. Ophthalmologists, cardiologists, and podiatrists concentrate on subsystems. The kinesiology's and psychiatrist are concerned with different aspects of the entire arrangement's behavior. Although these views are pictured differently and have very different properties, all are inherently related: Together they describe the architecture of the human body.So it is with software. Modern systems are more than complex enough to make it difficult to grasp them all at once. Instead, we restrict our attention at any one moment to one (or a small number) of the software system's structures. To communicate meaningfully about an architecture, we must make clear which structure or structures we are discussing at the moment-which view we are taking of the architecture.We will be using the related terms structure and view when discussing architecture representation. A view is a representation of a coherent set of architectural elements, as written by and read by system stakeholders. It consists of a representation of a set of elements and the relations among them. A structure is the set of elements itself, as they exist in software or hardware. For example, a module structure is the set of the system's modules and their organization. A module view is the representation of that structure, as documented by and used by some system stakeholders. These terms are often used interchangeably, but we will adhere to these definitions.Architectural structures can by and large be divided into three groups, depending on the broad nature of the elements they show. Module structures. Here the elements are modules, which are units of implementation. Modules represent a code-based way of considering the system. They are assigned areas of functional responsibility. There is less emphasis on how the resulting software manifests itself at runtime. Module structures allow us to answer questions such as What is the primary functional responsibility assigned to each module? What other software elements is a module allowed to use? What other software does it actually use? What modules are related to other modules by generalization or specialization (i.e., inheritance) relationships? Component-and-connector structures. Here the elements are runtime components (which are the principal units of computation) and connectors (which are the communication vehicles among components). Component-and-connector structures help answer questions such as What are the major executing components and how do they interact? What are the major shared data stores? Which parts of the system are replicated? How does data progress through the system? What parts of the system can run in parallel? How can the system's structure change as it executes? Allocation structures . Allocation structures show the relationship between the software elements and the elements in one or more external environments in which the software is created and executed. They answer questions such as What processor does each software element execute on? In what files is each element stored during development, testing, and system building? What is the assignment of software elements to development teams? These three structures correspond to the three broad types of decision that architectural design involves: How is the system to be structured as a set of code units (modules)?How is the system to be structured as a set of elements that have runtime behavior (components) and interactions (connectors)? How is the system to relate to non software structures in its environment (i.e., CPUs, file systems, networks, development teams, etc.)?
  2. Component diagrams are particularly useful with larger teams.  Your initial architectural modeling efforts during cycle 0 should focus on identifying the initial architectural landscape for your system.  UML component diagrams are great for doing this as they enable you to model the high-level software components, and more importantly the interfaces to those components.  Once the interfaces are defined, and agreed to by your team, it makes it much easier to organize the development effort between sub teams. You will discover the need to evolve the interfaces to reflect new requirements or changes to your design as your project progresses, changes that need to be negotiated between the sub teams and then implemented appropriately.
  3. A component is a principal unit of runtime interaction or data storage; a connector is an interaction mechanism among components. For example, in a pipe-and-filter view, filters are components, and pipes are the connectors. In a shared-data view, the data repository and the accessory are the components, and the access mechanisms are the connectors. In a client-server view, the components are clients and servers, and the connectors are the protocol mechanisms by which they interact.
  4. Deployment diagrams are mostly (and almost exclusively) used for distributed applications. These diagrams show on which machines which parts of the software is running (a physical mapping of software to hardware infrastructure). Also communication links between different computers are indicated. A deployment diagram node can represent any computational unit, i.e. any device having some information processing capability, ranging from a simple temperature sensor to a regular computer.
  5. The user interface (UI) manager handles the look-and-feel of the client's user interface. However, given the open-ended set of resources that a WWW system can handle, another element, the presentation manager, can delegate information display to external programs (viewers) to view resources known by the system but that the UI manager does not directly support. For example, most Web viewers use an external program to view PostScript or .pdf files. This delegation is a compromise between the competing desires of user interface integration (which provides for a consistent look-and-feel and hence better usability) and extensibility. The UI manager captures a user's request for information retrieval in the form of a URL and passes the information to the access manager. The access manager determines if the requested URL exists in cache and also interprets history-based navigation (e.g., "back"). If the file is cached, it is retrieved from the cache manager and passed to the presentation manager for display to either the UI or an external viewer. If it is not cached, the protocol manager determines the type of request and invokes the appropriate protocol suite to service it. The client stream manager uses this protocol for communicating the request to the server. Once it receives a response from the server in the form of a document, this information is passed to the presentation manager for appropriate display. The presentation manager consults a static view control configuration file (mimerc, mailcap, etc.) to help it map document types to external viewers. The HTTP server ensures transparent access to the file system-the source of the documents that the Web exists to transfer. It does this either by handling the access directly (for known resource types) or through a proxy known as common gateway interface (CGI). CGI handles resource types that a native server cannot handle and handles extension of server functionality, as will be discussed next. Before these extensions, the available WWW servers implemented a subset of defined HTTP requests, which allowed for the retrieval of documents, the retrieval of document meta-information, and server-side program execution via CGI. When a request is received by the server stream manager, its type is determined and the path of the URL is resolved via the path resolver. The HTTP server consults an access list to determine if the requesting client is authorized for access. It might initiate a password authentication session with the client to permit access to secured data. Assuming authentication, it accesses the file system (which is outside the server boundary) and writes the requested information to the output stream. If a program is to be executed, a process is made available (either new or polled) through CGI and the program is executed, with the output written by the server stream manager back to the client. In either case, CGI is one of the primary means by which servers provide extensibility, which is one of the most important requirements driving the evolution of Web software. CGI became such an important aspect of Web-based applications that we now discuss this topic at greater length.