SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Architecture Evaluation Methods




                           Presenter: Alexandru Chica
Contents

Architecture
 • What is an architecture?
 • Quality attributes of an architecture

Evaluating an architecture
 •Why evaluate an architecture?
 •Benefits and costs
 •Different approaches:
     o SAAM (Software Architecture Analysis Method)
     o ATAM (Architecture Tradeoff Analysis Method) (tbd.)
     o ARID (Active reviews for intermediate designs) (tbd.)
Architecture

What is an architecture?
 • The software architecture of a program or computing system is the
  structure or structures of the system, which comprises of software
  components, the externally visible properties of those components, and
  the relationships among them. [Bass 98]


 • Architecture is high-level design

 • Architecture is the overall structure of a system
 • Architecture is components and connectors
What is an architecture?


 Architecture
Architecture

Quality attributes of an architecture (I)
• Usability - the measure of a user's ability to utilize a system effectively


• Functionality - the ability of the system to do the work for which it was
intended


• Modifiability - the ability to make changes to a system quickly and cost
effectively


• Subsetability


• Reliability - the ability of the system to keep operating over time
Architecture

Quality attributes of an architecture (II)
• Conceptual integrity – the architecture should do similar things in
similar ways

• Performance - the responsiveness of the system
• Availability – the proportion of time the system is up and running (the
delay between failures and time needed to resume normal operations)

• Testability

• Security
Evaluating an architecture

 Why evaluate an architecture?
• The earlier you find a problem in a SW project, the better off you are (the
 cost to fix an error in early design phase is much smaller than the cost to
 fix the same error in implementation/testing)


• Architecture is the earliest point in the project where trade-offs are visible

• Architecture determines the structure of the project: schedules, budgets,
 performance indicators, team structure, testing and maintenance
 activities


• Risk management
Evaluating an architecture

Benefits and costs
 • (+) Forces clear explanation of architecture
 • (+) Puts stakeholders in the same room
 • (+) Identifies and solves conflicting goals
 • (+) Forces clarification of specific quality goals
 • (+) Identifies risks early in the lifecycle
 • (-) Costs time and money

Any kind of organized approach to evaluation is way better than none
Evaluating an architecture

      SAAM (Software Architecture Analysis Method)
  o   Based on scenarios
        A scenario represents a description of a stakeholder’s interaction
         with the system
  o   Scenarios are created depending on the point of view of each
      stakeholder:
       o Developer – interested in reusability, implementation,
          maintenance
       o Project Manager – interested in time, cost, quality, extensibility
       o Tester – interested in usability, mapping to requirements
Evaluating an architecture

Steps of a SAAM evaluation

                 Identify and assemble stakeholders
                                  ↓
                   Develop and prioritize scenarios
                                  ↓
                Describe architecture (actual review)
                                  ↓
                Classify scenarios as direct or indirect
                                  ↓
                    Perform scenario evaluation
                                  ↓
                    Reveal scenario interactions
                                  ↓
                     Generate overall evaluation
Evaluating an architecture

SAAM scenarios
 • Scenarios should refer to the evolution that the system must support
  (based on requirements)
    o Functionality
    o Development activities
    o Change activities
 • Scenarios should represent tasks relevant to all stakeholders
 • Suggestion: 10-15 prioritized scenarios
 • Scenarios can be classified in two classes
    o Direct scenarios do not require system modifications
    o Indirect scenarios require system change
Evaluating an architecture

SAAM scenario evaluation


 • For each direct scenario, see if scenario can be performed with current
  system state


 • For each indirect scenario
    o Identify the components which have to be modified, added or deleted
    o Estimate the difficulty of the modification (based on the number of
      components to be modified and the effect of the modification)
Evaluating an architecture

SAAM scenario interaction


 • Multiple indirect scenarios affecting the same component could indicate
  a problem
    o Could be good: if scenarios are variants of each other
    o Could be bad: indicates a poor separation of responsibilities


SAAM Evaluation Results


 • Classification of scenarios based on importance
 • Decision if architecture is accepted or has to be modified
Evaluating an architecture

Examples

•   Indirect scenarios:

      •   Extension of capabilities – adding new functionality, enhancing
          existing functionality

      •   Deletion of unwanted capabilities

      •   Adaption to new operating environments (hardware, OS, I/O devices)

      •   Restructuring – modularizing, optimizing, creating reusable
          components
Evaluating an architecture

Examples

•   Direct scenarios

      •   Confronting the architecture with regular use cases

      •   Use logic that is provided by the interfaces

      •   Stress testing – behavior of components in case of intensive usage

      •   Corruption of data/components after long-term usage

      •   Data integrity when sending it through communication channels

      •   Scenarios regarding functionality found in the requirements

      •   Ease of test – how easy is it to test a requirement
Evaluating an architecture

Conclusion


Any kind of organized approach to evaluation is way better than none.


 SAAM
Evaluating an architecture




                             ?

Weitere ähnliche Inhalte

Was ist angesagt?

Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Software estimation
Software estimationSoftware estimation
Software estimationMd Shakir
 
Importance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningImportance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningABHISHEK KUMAR
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
Hierarchical architecture
Hierarchical architectureHierarchical architecture
Hierarchical architecturebrigeit
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
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
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramKumar
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 
Software Product Line
Software Product LineSoftware Product Line
Software Product LineHimanshu
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram Rahul Pola
 
Class and object_diagram
Class  and object_diagramClass  and object_diagram
Class and object_diagramSadhana28
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes arvind pandey
 

Was ist angesagt? (20)

Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software estimation
Software estimationSoftware estimation
Software estimation
 
Importance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningImportance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML Designing
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Hierarchical architecture
Hierarchical architectureHierarchical architecture
Hierarchical architecture
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Architectural design
Architectural designArchitectural design
Architectural design
 
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
 
Task programming
Task programmingTask programming
Task programming
 
Database System Architectures
Database System ArchitecturesDatabase System Architectures
Database System Architectures
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
Software Product Line
Software Product LineSoftware Product Line
Software Product Line
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram
 
Class and object_diagram
Class  and object_diagramClass  and object_diagram
Class and object_diagram
 
Software design
Software designSoftware design
Software design
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
 

Andere mochten auch

Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureHimanshu
 
Toolbox of techniques for Architecture Reviews
Toolbox of techniques for Architecture ReviewsToolbox of techniques for Architecture Reviews
Toolbox of techniques for Architecture ReviewsJason Baragry
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overviewelliando dias
 
The dynamics of software evolution - EVOLUMONS 2011
The dynamics of software evolution - EVOLUMONS 2011The dynamics of software evolution - EVOLUMONS 2011
The dynamics of software evolution - EVOLUMONS 2011Israel Herraiz
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software EngineeringManish Kumar
 
Software archiecture lecture10
Software archiecture   lecture10Software archiecture   lecture10
Software archiecture lecture10Luktalja
 
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular Environments
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular EnvironmentsAn Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular Environments
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular EnvironmentsAlpen-Adria-Universität
 
Ethics and software engineering
Ethics and software engineeringEthics and software engineering
Ethics and software engineeringSolomon Nsumba
 
The ethics of software engineering
The ethics of software engineeringThe ethics of software engineering
The ethics of software engineeringjndatirwa
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)REHMAT ULLAH
 
Software Architecture: Architecture Description Languages
Software Architecture: Architecture Description LanguagesSoftware Architecture: Architecture Description Languages
Software Architecture: Architecture Description LanguagesHenry Muccini
 
Software Selection & Evaluation
Software Selection & EvaluationSoftware Selection & Evaluation
Software Selection & EvaluationAlaa Sadik
 
Pre-Thesis Document
Pre-Thesis DocumentPre-Thesis Document
Pre-Thesis Documentsaricx
 

Andere mochten auch (20)

Saam
SaamSaam
Saam
 
ATAM
ATAMATAM
ATAM
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
Toolbox of techniques for Architecture Reviews
Toolbox of techniques for Architecture ReviewsToolbox of techniques for Architecture Reviews
Toolbox of techniques for Architecture Reviews
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overview
 
The dynamics of software evolution - EVOLUMONS 2011
The dynamics of software evolution - EVOLUMONS 2011The dynamics of software evolution - EVOLUMONS 2011
The dynamics of software evolution - EVOLUMONS 2011
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
Software archiecture lecture10
Software archiecture   lecture10Software archiecture   lecture10
Software archiecture lecture10
 
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular Environments
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular EnvironmentsAn Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular Environments
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular Environments
 
Ethics and software engineering
Ethics and software engineeringEthics and software engineering
Ethics and software engineering
 
The ethics of software engineering
The ethics of software engineeringThe ethics of software engineering
The ethics of software engineering
 
Taxonomy for bugs
Taxonomy for bugsTaxonomy for bugs
Taxonomy for bugs
 
Software evaluation
Software evaluationSoftware evaluation
Software evaluation
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
 
Software Architecture: Architecture Description Languages
Software Architecture: Architecture Description LanguagesSoftware Architecture: Architecture Description Languages
Software Architecture: Architecture Description Languages
 
Software Selection & Evaluation
Software Selection & EvaluationSoftware Selection & Evaluation
Software Selection & Evaluation
 
Ch21
Ch21Ch21
Ch21
 
Pre-Thesis Document
Pre-Thesis DocumentPre-Thesis Document
Pre-Thesis Document
 
Teaching Architectural design
Teaching Architectural design Teaching Architectural design
Teaching Architectural design
 

Ähnlich wie Architecture evaluation

UW Presentation - Architecture Trade-off Analysis Method
UW Presentation - Architecture Trade-off Analysis MethodUW Presentation - Architecture Trade-off Analysis Method
UW Presentation - Architecture Trade-off Analysis MethodShrikant Palkar
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsRebecca Wirfs-Brock
 
IT Software Development Life Cycle
IT Software Development Life CycleIT Software Development Life Cycle
IT Software Development Life CyclePreshita Chaurasiya
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slidesvenkatasubramanianSr5
 
Software Architecture – Centric Methods and Agile Development
Software Architecture –   Centric Methods and   Agile DevelopmentSoftware Architecture –   Centric Methods and   Agile Development
Software Architecture – Centric Methods and Agile Developmentsathish sak
 
Performance Based Design Presentation By Deepak Bashetty
Performance Based Design Presentation By Deepak BashettyPerformance Based Design Presentation By Deepak Bashetty
Performance Based Design Presentation By Deepak BashettyDeepak Bashetty
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleGurban Daniel
 
Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life CycleKumar
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified ProcessKumar
 

Ähnlich wie Architecture evaluation (20)

Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
Saam
SaamSaam
Saam
 
UW Presentation - Architecture Trade-off Analysis Method
UW Presentation - Architecture Trade-off Analysis MethodUW Presentation - Architecture Trade-off Analysis Method
UW Presentation - Architecture Trade-off Analysis Method
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile Projects
 
Ppt nardeep
Ppt nardeepPpt nardeep
Ppt nardeep
 
IT Software Development Life Cycle
IT Software Development Life CycleIT Software Development Life Cycle
IT Software Development Life Cycle
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slides
 
module 1.pptx
module 1.pptxmodule 1.pptx
module 1.pptx
 
Sda 6
Sda   6Sda   6
Sda 6
 
Software Architecture – Centric Methods and Agile Development
Software Architecture –   Centric Methods and   Agile DevelopmentSoftware Architecture –   Centric Methods and   Agile Development
Software Architecture – Centric Methods and Agile Development
 
Performance Based Design Presentation By Deepak Bashetty
Performance Based Design Presentation By Deepak BashettyPerformance Based Design Presentation By Deepak Bashetty
Performance Based Design Presentation By Deepak Bashetty
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Sdlc
SdlcSdlc
Sdlc
 
Rup
RupRup
Rup
 
Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life Cycle
 
Sdlc
SdlcSdlc
Sdlc
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
QWA
QWAQWA
QWA
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 

Architecture evaluation

  • 1. Architecture Evaluation Methods Presenter: Alexandru Chica
  • 2. Contents Architecture • What is an architecture? • Quality attributes of an architecture Evaluating an architecture •Why evaluate an architecture? •Benefits and costs •Different approaches: o SAAM (Software Architecture Analysis Method) o ATAM (Architecture Tradeoff Analysis Method) (tbd.) o ARID (Active reviews for intermediate designs) (tbd.)
  • 3. Architecture What is an architecture? • The software architecture of a program or computing system is the structure or structures of the system, which comprises of software components, the externally visible properties of those components, and the relationships among them. [Bass 98] • Architecture is high-level design • Architecture is the overall structure of a system • Architecture is components and connectors
  • 4. What is an architecture? Architecture
  • 5. Architecture Quality attributes of an architecture (I) • Usability - the measure of a user's ability to utilize a system effectively • Functionality - the ability of the system to do the work for which it was intended • Modifiability - the ability to make changes to a system quickly and cost effectively • Subsetability • Reliability - the ability of the system to keep operating over time
  • 6. Architecture Quality attributes of an architecture (II) • Conceptual integrity – the architecture should do similar things in similar ways • Performance - the responsiveness of the system • Availability – the proportion of time the system is up and running (the delay between failures and time needed to resume normal operations) • Testability • Security
  • 7. Evaluating an architecture Why evaluate an architecture? • The earlier you find a problem in a SW project, the better off you are (the cost to fix an error in early design phase is much smaller than the cost to fix the same error in implementation/testing) • Architecture is the earliest point in the project where trade-offs are visible • Architecture determines the structure of the project: schedules, budgets, performance indicators, team structure, testing and maintenance activities • Risk management
  • 8. Evaluating an architecture Benefits and costs • (+) Forces clear explanation of architecture • (+) Puts stakeholders in the same room • (+) Identifies and solves conflicting goals • (+) Forces clarification of specific quality goals • (+) Identifies risks early in the lifecycle • (-) Costs time and money Any kind of organized approach to evaluation is way better than none
  • 9. Evaluating an architecture SAAM (Software Architecture Analysis Method) o Based on scenarios  A scenario represents a description of a stakeholder’s interaction with the system o Scenarios are created depending on the point of view of each stakeholder: o Developer – interested in reusability, implementation, maintenance o Project Manager – interested in time, cost, quality, extensibility o Tester – interested in usability, mapping to requirements
  • 10. Evaluating an architecture Steps of a SAAM evaluation Identify and assemble stakeholders ↓ Develop and prioritize scenarios ↓ Describe architecture (actual review) ↓ Classify scenarios as direct or indirect ↓ Perform scenario evaluation ↓ Reveal scenario interactions ↓ Generate overall evaluation
  • 11. Evaluating an architecture SAAM scenarios • Scenarios should refer to the evolution that the system must support (based on requirements) o Functionality o Development activities o Change activities • Scenarios should represent tasks relevant to all stakeholders • Suggestion: 10-15 prioritized scenarios • Scenarios can be classified in two classes o Direct scenarios do not require system modifications o Indirect scenarios require system change
  • 12. Evaluating an architecture SAAM scenario evaluation • For each direct scenario, see if scenario can be performed with current system state • For each indirect scenario o Identify the components which have to be modified, added or deleted o Estimate the difficulty of the modification (based on the number of components to be modified and the effect of the modification)
  • 13. Evaluating an architecture SAAM scenario interaction • Multiple indirect scenarios affecting the same component could indicate a problem o Could be good: if scenarios are variants of each other o Could be bad: indicates a poor separation of responsibilities SAAM Evaluation Results • Classification of scenarios based on importance • Decision if architecture is accepted or has to be modified
  • 14. Evaluating an architecture Examples • Indirect scenarios: • Extension of capabilities – adding new functionality, enhancing existing functionality • Deletion of unwanted capabilities • Adaption to new operating environments (hardware, OS, I/O devices) • Restructuring – modularizing, optimizing, creating reusable components
  • 15. Evaluating an architecture Examples • Direct scenarios • Confronting the architecture with regular use cases • Use logic that is provided by the interfaces • Stress testing – behavior of components in case of intensive usage • Corruption of data/components after long-term usage • Data integrity when sending it through communication channels • Scenarios regarding functionality found in the requirements • Ease of test – how easy is it to test a requirement
  • 16. Evaluating an architecture Conclusion Any kind of organized approach to evaluation is way better than none. SAAM