SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
Software Architecture
        Documentation
                     Paulo Gandra de Sousa
                           2010.08.03

pagsousa@gmail.com    http://twitter.com/pagsousa   http://linkedin.com/in/pagsousa
Goals
1.   Present common views and SAD
2.   Define stakeholders
3.   Identify stakeholders’s concerns
4.   Define what and how to document
Scope
            IN                      OUT

• Initial description of   • Detailed architecture
  architecture             • Data model
Introduction
The software architecture of a program or
   computing system is the structure or
 structures of the system, which comprise
     software elements, the externally
   visible properties of those elements,
    and the relationships among them.
                Bass, Clements, Kazman (2003)
[Software architecture is] The
 fundamental organization of a system
    embodied in its components, their
 relationships to each other, and to the
environment, and the principles guiding
        its design and evolution.
                     ANSI/IEEE 1471 (2000)
Architecture in the
software development process




                   Architecture Reconstruction
Context
          Problem description



                                                      Rationale

Quality attributes

                                                        Views

                        Software Architecture
                             Document

      Principles and Guidelines
                                                Structure
RUP’s SAD
1.  Introduction
      1. Purpose
      2. Scope
      3. Definitions, Acronyms, and Abbreviations
      4. References
      5. Overview
2. Architectural Representation
3. Architectural Goals and Constraints
4. Use-Case View
      1. Use-Case Realizations
5. Logical View
      1. Overview
      2. Architecturally Significant Design Packages
6. Process View
7. Deployment View
8. Implementation View
      1. Overview
      2. Layers
9. Data View (optional)
10. Size and Performance
11. Quality
SEI’s SAD
1.   Documentation Roadmap
                                                   1.5     Viewpoint Definitions
      1. …
                                                   1.5.1      <viewpoint> Viewpoint Definition
      2. Stakeholder Representation                1.5.1.1        Abstract
      3. Viewpoint Definitions                     1.5.1.2        Stakeholders and Their Concerns Addressed
      4. …                                         1.5.1.3        Elements, Relations, Properties and
                                                                  Constraints
2.   Architecture Background
                                                   1.5.1.4        Language(s) to Model/Represent Conforming
      1. Problem Background                                       Views
             1. System Overview                    1.5.1.5        Applicable Evaluation/Analysis Techniques
                                                                  and Consistency/Completeness Criteria
             2. Goals and Context
                                                   1.5.1.6        Viewpoint Source
             3. Significant Driving Requirements
      2. Solution Background
             1. Architectural Approaches           3.1     <view name> View
             2. Analysis Results                   3.1.1     View Description
                                                   3.1.2     View Packet Overview
             3. Requirements Coverage
                                                   3.1.3     Architecture Background
             4. Summary of Background Changes      3.1.4     Variability Mechanisms
                 Reflected in Current Version      3.1.5     View Packets
      3. Product Line Reuse Considerations         3.1.5.1       View packet #i
3.   Views                                         3.1.5.1.1          Primary Presentation
      1. <Insert view name> View                   3.1.5.1.2          Element Catalog
                                                   3.1.5.1.3          Context Diagram
4.   …
                                                   3.1.5.1.4          Variability Mechanisms
5.   Directory                                     3.1.5.1.5          Architecture Background
      1. Index                                     3.1.5.1.6          Related View Packets
      2. Glossary
      3. Acronym List
Less is More*

* SAD should have the minimum information necessary
    to understand the system but no more than that
Different kinds of views
           Structural




External                Behavioral
Different viewsets
• RUP 4+1
• Siemens
• Rozansky & Woods’ views and
  perspectives
• SEI’s views and beyond
• …
RUP 4+1
Siemens




Adapted from “Applied Software Architecture”, Hofmeister, C. et al. (2000).
Rozansky & Woods
SEI’s Views and Beyond
Module vs. C&C
Usefullness of views
Structure         Relations                           Useful for
Decomposition     Is a submodule of; shares secret    Resource allocation and project structuring and
                  with                                planning; information hiding, encapsulation;
                                                      configuration control
Uses              Requires the correct presence of    Engineering subsets; engineering extensions
Layered           Requires the correct presence of;   Incremental development; implementing systems on
                  uses the services of; provides      top of "virtual machines" portability
                  abstraction to
Class             Is an instance of; shares access    In OO design systems, producing rapid almost-alike
                  methods of                          implementations from a common template

Client-Server     Communicates with; depends on       Distributed operation; separation of concerns;
                                                      performance analysis; load balancing

Process           Runs concurrently with; may run     Scheduling analysis; performance analysis
                  concurrently with; excludes;
                  precedes; etc.
Concurrency       Runs on the same logical thread     Identifying locations where resource contention exists,
                                                      where threads may fork, join, be created or be killed

Shared Data       Produces data; consumes data        Performance; data integrity; modifiability
Deployment        Allocated to; migrates to           Performance, availability, security analysis
Implementation    Stored in                           Configuration control, integration, test activities
Work Assignment   Assigned to                         Project management, best use of expertise,
                                                      management of commonality
Sample Views

https://wiki.sei.cmu.edu/sad
Functionality
High level Module Uses view
Context Diagram
OPC Module Decomposition view
OPC Module Uses view
High level C&C view
OPC C&C view
Deployment view
High level Implementation view
Element catalog
Discussion
SAD
•   Intended audience (stakeholders)
•   Stakeholders’ concerns to address
•   Sections to include
•   Views to include
•   Depth of documentation
Stakeholders
• Sample stakeholders:
   – Project Manager
   – Member of Development
     Team
   – Testers and Integrators
   – Maintainers
   – Product Line Application
     Builder
   – Customer
   – End User
   – Analyst
   – Infrastructure Support
   – New Stakeholder
   – Current and Future
     Architect
stakeholders
Stakeholder Concerns to adddress
SEI example Stakeholders’
                     documentation needs
                                           Module                           C&C                  Allocation
Stakeholder             Decomposition       Uses      Class    Layer     Various       Deployment      Implem.
Project Manager                 s              s                  s                          d
Member of                       d              d        d         d           d              s                s
Development Team
Testers and                                    d        d                     s              s                s
Integrators
Maintainers                     d              d        d         d           d              s                s
Product Line                                   d         s        o           s              s                s
Application Builder
Customer                                                                      s              o
End User                                                                      s              s
Analyst                         d              d         s        d           s              d
Infrastructure                  s              s                  s                          s                d
Support
New Stakeholder                 x              x         x        x           x              x                x
Current and Future              d              d        d         d           d              d                s
Architect



                 d = detailed information, s = some details, o = overview information, x = anything
Stakeholders’
                  documentation needs
                                  Module Views            C&C Views         Allocation Views

Stakeholder       Decomposition    Uses   Class   Layer   Various     Deployment   Implementation




 d = detailed information, s = some details, o = overview information, x = anything
Context
RUP’s SAD
1.  Introduction
      1. Purpose
      2. Scope
      3. Definitions, Acronyms, and Abbreviations
      4. References
      5. Overview
2. Architectural Representation
3. Architectural Goals and Constraints
4. Use-Case View
      1. Use-Case Realizations
5. Logical View
      1. Overview
      2. Architecturally Significant Design Packages
6. Process View
7. Deployment View
8. Implementation View
      1. Overview
      2. Layers
9. Data View (optional)
10. Size and Performance
11. Quality
SEI’s SAD
1.   Documentation Roadmap
                                                   1.5     Viewpoint Definitions
      1. …
                                                   1.5.1      <viewpoint> Viewpoint Definition
      2. Stakeholder Representation                1.5.1.1        Abstract
      3. Viewpoint Definitions                     1.5.1.2        Stakeholders and Their Concerns Addressed
      4. …                                         1.5.1.3        Elements, Relations, Properties and
                                                                  Constraints
2.   Architecture Background
                                                   1.5.1.4        Language(s) to Model/Represent Conforming
      1. Problem Background                                       Views
             1. System Overview                    1.5.1.5        Applicable Evaluation/Analysis Techniques
                                                                  and Consistency/Completeness Criteria
             2. Goals and Context
                                                   1.5.1.6        Viewpoint Source
             3. Significant Driving Requirements
      2. Solution Background
             1. Architectural Approaches           3.1     <view name> View
             2. Analysis Results                   3.1.1     View Description
                                                   3.1.2     View Packet Overview
             3. Requirements Coverage
                                                   3.1.3     Architecture Background
             4. Summary of Background Changes      3.1.4     Variability Mechanisms
                 Reflected in Current Version      3.1.5     View Packets
      3. Product Line Reuse Considerations         3.1.5.1       View packet #i
3.   Views                                         3.1.5.1.1          Primary Presentation
      1. <Insert view name> View                   3.1.5.1.2          Element Catalog
                                                   3.1.5.1.3          Context Diagram
4.   …
                                                   3.1.5.1.4          Variability Mechanisms
5.   Directory                                     3.1.5.1.5          Architecture Background
      1. Index                                     3.1.5.1.6          Related View Packets
      2. Glossary
      3. Acronym List
Proposed general content
• Architecture background
  – Problem Background
    • System Overview
    • Goals and Context
    • Significant Driving Requirements
  – Solution Background
    • Architectural Approaches
    • Analysis Results
    • Requirements Coverage
Proposed views to include in a
                SAD
•   Functional view
•   High-level module uses view
•   High-level module decomposition view
•   High-level C&C view
•   Deployment view
Proposed content for each view
• View description
• Primary presentation
• Element catalog
  –   Elements
  –   Relations
  –   Interfaces
  –   Behavior
  –   Constraints
• Context diagram
• Variability mechanisms
• Architecture background
Non-functional view, a.k.a.,
          Quality attributes
•   Performance
•   Scalability
•   Availability
•   Security
•   Extensibility
•   Flexibility
•   Monitoring and management
•   Reliability
•   Interoperability
•   Legal and regulatory requirements
•   Internationalisation and localisation
•   Accessibility
•   …
Thank you

Weitere ähnliche Inhalte

Was ist angesagt?

Reconstructing Software Architecture
Reconstructing Software ArchitectureReconstructing Software Architecture
Reconstructing Software ArchitectureHimanshu
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented DesignSharath g
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycleHimanshu
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Sudarshan Dhondaley
 
Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )Dr Reeja S R
 
Slides 6 design of sw arch using add
Slides 6 design of sw arch using addSlides 6 design of sw arch using add
Slides 6 design of sw arch using addJavid iqbal hashmi
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design Arslan Anwar
 

Was ist angesagt? (20)

UML
UMLUML
UML
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Reconstructing Software Architecture
Reconstructing Software ArchitectureReconstructing Software Architecture
Reconstructing Software Architecture
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
CBAM
 CBAM CBAM
CBAM
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Class notes
Class notesClass notes
Class notes
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
 
V model
V modelV model
V model
 
Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )
 
Slides 6 design of sw arch using add
Slides 6 design of sw arch using addSlides 6 design of sw arch using add
Slides 6 design of sw arch using add
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Presentation on uml
Presentation on umlPresentation on uml
Presentation on uml
 

Ähnlich wie Documenting Software Architectures

Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplifiedPrasad Chitta
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
 
[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
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architectureTot Bob
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471vconovalov
 
Chen.tim
Chen.timChen.tim
Chen.timNASAPMC
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09Luktalja
 
Arch06 1
Arch06 1Arch06 1
Arch06 1nazn
 
Software design
Software designSoftware design
Software designambitlick
 
A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guideTriet Ho
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
 

Ähnlich wie Documenting Software Architectures (20)

CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Architectural design
Architectural designArchitectural design
Architectural design
 
Chapter1
Chapter1Chapter1
Chapter1
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471
 
Chen.tim
Chen.timChen.tim
Chen.tim
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09
 
Arch06 1
Arch06 1Arch06 1
Arch06 1
 
Uml3
Uml3Uml3
Uml3
 
Software design
Software designSoftware design
Software design
 
Sdd template
Sdd templateSdd template
Sdd template
 
A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guide
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
Design engineering
Design engineeringDesign engineering
Design engineering
 

Mehr von Paulo Gandra de Sousa

Design Patterns: From STUPID to SOLID code
Design Patterns: From STUPID to SOLID codeDesign Patterns: From STUPID to SOLID code
Design Patterns: From STUPID to SOLID codePaulo Gandra de Sousa
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Paulo Gandra de Sousa
 

Mehr von Paulo Gandra de Sousa (20)

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Minds-on DDD
Minds-on DDDMinds-on DDD
Minds-on DDD
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Benefits of Hypermedia API
Benefits of Hypermedia APIBenefits of Hypermedia API
Benefits of Hypermedia API
 
Design Patterns: From STUPID to SOLID code
Design Patterns: From STUPID to SOLID codeDesign Patterns: From STUPID to SOLID code
Design Patterns: From STUPID to SOLID code
 
Design Patterns: Back to Basics
Design Patterns: Back to BasicsDesign Patterns: Back to Basics
Design Patterns: Back to Basics
 
Hypermedia APIs
Hypermedia APIsHypermedia APIs
Hypermedia APIs
 
RESTful services Design Lab
RESTful services Design LabRESTful services Design Lab
RESTful services Design Lab
 
Principles of Service Orientation
Principles of Service OrientationPrinciples of Service Orientation
Principles of Service Orientation
 
OO design principles and patterns
OO design principles and patternsOO design principles and patterns
OO design principles and patterns
 
Modern web architectural patterns
Modern web architectural patternsModern web architectural patterns
Modern web architectural patterns
 
REST beyond CRUD
REST beyond CRUDREST beyond CRUD
REST beyond CRUD
 
Revision control with Mercurial
Revision control with MercurialRevision control with Mercurial
Revision control with Mercurial
 
Rest web services
Rest web servicesRest web services
Rest web services
 
Lição prova professor coordenador
Lição prova professor coordenadorLição prova professor coordenador
Lição prova professor coordenador
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 
PoEAA by Example
PoEAA by ExamplePoEAA by Example
PoEAA by Example
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
 
Patterns for distributed systems
Patterns for distributed systemsPatterns for distributed systems
Patterns for distributed systems
 

Kürzlich hochgeladen

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Documenting Software Architectures

  • 1. Software Architecture Documentation Paulo Gandra de Sousa 2010.08.03 pagsousa@gmail.com http://twitter.com/pagsousa http://linkedin.com/in/pagsousa
  • 2. Goals 1. Present common views and SAD 2. Define stakeholders 3. Identify stakeholders’s concerns 4. Define what and how to document
  • 3. Scope IN OUT • Initial description of • Detailed architecture architecture • Data model
  • 5. The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Bass, Clements, Kazman (2003)
  • 6. [Software architecture is] The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. ANSI/IEEE 1471 (2000)
  • 7. Architecture in the software development process Architecture Reconstruction
  • 8. Context Problem description Rationale Quality attributes Views Software Architecture Document Principles and Guidelines Structure
  • 9. RUP’s SAD 1. Introduction 1. Purpose 2. Scope 3. Definitions, Acronyms, and Abbreviations 4. References 5. Overview 2. Architectural Representation 3. Architectural Goals and Constraints 4. Use-Case View 1. Use-Case Realizations 5. Logical View 1. Overview 2. Architecturally Significant Design Packages 6. Process View 7. Deployment View 8. Implementation View 1. Overview 2. Layers 9. Data View (optional) 10. Size and Performance 11. Quality
  • 10. SEI’s SAD 1. Documentation Roadmap 1.5 Viewpoint Definitions 1. … 1.5.1 <viewpoint> Viewpoint Definition 2. Stakeholder Representation 1.5.1.1 Abstract 3. Viewpoint Definitions 1.5.1.2 Stakeholders and Their Concerns Addressed 4. … 1.5.1.3 Elements, Relations, Properties and Constraints 2. Architecture Background 1.5.1.4 Language(s) to Model/Represent Conforming 1. Problem Background Views 1. System Overview 1.5.1.5 Applicable Evaluation/Analysis Techniques and Consistency/Completeness Criteria 2. Goals and Context 1.5.1.6 Viewpoint Source 3. Significant Driving Requirements 2. Solution Background 1. Architectural Approaches 3.1 <view name> View 2. Analysis Results 3.1.1 View Description 3.1.2 View Packet Overview 3. Requirements Coverage 3.1.3 Architecture Background 4. Summary of Background Changes 3.1.4 Variability Mechanisms Reflected in Current Version 3.1.5 View Packets 3. Product Line Reuse Considerations 3.1.5.1 View packet #i 3. Views 3.1.5.1.1 Primary Presentation 1. <Insert view name> View 3.1.5.1.2 Element Catalog 3.1.5.1.3 Context Diagram 4. … 3.1.5.1.4 Variability Mechanisms 5. Directory 3.1.5.1.5 Architecture Background 1. Index 3.1.5.1.6 Related View Packets 2. Glossary 3. Acronym List
  • 11. Less is More* * SAD should have the minimum information necessary to understand the system but no more than that
  • 12. Different kinds of views Structural External Behavioral
  • 13. Different viewsets • RUP 4+1 • Siemens • Rozansky & Woods’ views and perspectives • SEI’s views and beyond • …
  • 15. Siemens Adapted from “Applied Software Architecture”, Hofmeister, C. et al. (2000).
  • 19. Usefullness of views Structure Relations Useful for Decomposition Is a submodule of; shares secret Resource allocation and project structuring and with planning; information hiding, encapsulation; configuration control Uses Requires the correct presence of Engineering subsets; engineering extensions Layered Requires the correct presence of; Incremental development; implementing systems on uses the services of; provides top of "virtual machines" portability abstraction to Class Is an instance of; shares access In OO design systems, producing rapid almost-alike methods of implementations from a common template Client-Server Communicates with; depends on Distributed operation; separation of concerns; performance analysis; load balancing Process Runs concurrently with; may run Scheduling analysis; performance analysis concurrently with; excludes; precedes; etc. Concurrency Runs on the same logical thread Identifying locations where resource contention exists, where threads may fork, join, be created or be killed Shared Data Produces data; consumes data Performance; data integrity; modifiability Deployment Allocated to; migrates to Performance, availability, security analysis Implementation Stored in Configuration control, integration, test activities Work Assignment Assigned to Project management, best use of expertise, management of commonality
  • 22. High level Module Uses view
  • 32. SAD • Intended audience (stakeholders) • Stakeholders’ concerns to address • Sections to include • Views to include • Depth of documentation
  • 33. Stakeholders • Sample stakeholders: – Project Manager – Member of Development Team – Testers and Integrators – Maintainers – Product Line Application Builder – Customer – End User – Analyst – Infrastructure Support – New Stakeholder – Current and Future Architect
  • 35. SEI example Stakeholders’ documentation needs Module C&C Allocation Stakeholder Decomposition Uses Class Layer Various Deployment Implem. Project Manager s s s d Member of d d d d d s s Development Team Testers and d d s s s Integrators Maintainers d d d d d s s Product Line d s o s s s Application Builder Customer s o End User s s Analyst d d s d s d Infrastructure s s s s d Support New Stakeholder x x x x x x x Current and Future d d d d d d s Architect d = detailed information, s = some details, o = overview information, x = anything
  • 36. Stakeholders’ documentation needs Module Views C&C Views Allocation Views Stakeholder Decomposition Uses Class Layer Various Deployment Implementation d = detailed information, s = some details, o = overview information, x = anything
  • 38. RUP’s SAD 1. Introduction 1. Purpose 2. Scope 3. Definitions, Acronyms, and Abbreviations 4. References 5. Overview 2. Architectural Representation 3. Architectural Goals and Constraints 4. Use-Case View 1. Use-Case Realizations 5. Logical View 1. Overview 2. Architecturally Significant Design Packages 6. Process View 7. Deployment View 8. Implementation View 1. Overview 2. Layers 9. Data View (optional) 10. Size and Performance 11. Quality
  • 39. SEI’s SAD 1. Documentation Roadmap 1.5 Viewpoint Definitions 1. … 1.5.1 <viewpoint> Viewpoint Definition 2. Stakeholder Representation 1.5.1.1 Abstract 3. Viewpoint Definitions 1.5.1.2 Stakeholders and Their Concerns Addressed 4. … 1.5.1.3 Elements, Relations, Properties and Constraints 2. Architecture Background 1.5.1.4 Language(s) to Model/Represent Conforming 1. Problem Background Views 1. System Overview 1.5.1.5 Applicable Evaluation/Analysis Techniques and Consistency/Completeness Criteria 2. Goals and Context 1.5.1.6 Viewpoint Source 3. Significant Driving Requirements 2. Solution Background 1. Architectural Approaches 3.1 <view name> View 2. Analysis Results 3.1.1 View Description 3.1.2 View Packet Overview 3. Requirements Coverage 3.1.3 Architecture Background 4. Summary of Background Changes 3.1.4 Variability Mechanisms Reflected in Current Version 3.1.5 View Packets 3. Product Line Reuse Considerations 3.1.5.1 View packet #i 3. Views 3.1.5.1.1 Primary Presentation 1. <Insert view name> View 3.1.5.1.2 Element Catalog 3.1.5.1.3 Context Diagram 4. … 3.1.5.1.4 Variability Mechanisms 5. Directory 3.1.5.1.5 Architecture Background 1. Index 3.1.5.1.6 Related View Packets 2. Glossary 3. Acronym List
  • 40. Proposed general content • Architecture background – Problem Background • System Overview • Goals and Context • Significant Driving Requirements – Solution Background • Architectural Approaches • Analysis Results • Requirements Coverage
  • 41. Proposed views to include in a SAD • Functional view • High-level module uses view • High-level module decomposition view • High-level C&C view • Deployment view
  • 42. Proposed content for each view • View description • Primary presentation • Element catalog – Elements – Relations – Interfaces – Behavior – Constraints • Context diagram • Variability mechanisms • Architecture background
  • 43. Non-functional view, a.k.a., Quality attributes • Performance • Scalability • Availability • Security • Extensibility • Flexibility • Monitoring and management • Reliability • Interoperability • Legal and regulatory requirements • Internationalisation and localisation • Accessibility • …
  • 44.