SlideShare a Scribd company logo
3
Most read
5
Most read
6
Most read
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




                             ?

More Related Content

PPT
Designing and prototyping
PPTX
Distributed architecture (SAD)
DOCX
Software architecture Unit 1 notes
PPT
Object oriented modeling and design
PPTX
Architectural styles and patterns
PPTX
Model Based Software Architectures
PPTX
Importance & Principles of Modeling from UML Designing
PPT
3.2 The design model & Architectural design.ppt
Designing and prototyping
Distributed architecture (SAD)
Software architecture Unit 1 notes
Object oriented modeling and design
Architectural styles and patterns
Model Based Software Architectures
Importance & Principles of Modeling from UML Designing
3.2 The design model & Architectural design.ppt

What's hot (20)

PPTX
Architecture business cycle
PPTX
Reconstructing Software Architecture
PDF
Domain specific Software Architecture
PDF
An Introduction to Software Architecture
PPTX
Software development life cycle (SDLC)
PPT
Pressman ch-11-component-level-design
PDF
Unit 5- Architectural Design in software engineering
PPTX
Presentation on uml
PPT
Formal Specification in Software Engineering SE9
PPT
Lecture 12 requirements modeling - (system analysis)
PPTX
Cost Benefit Analysis Method
PDF
Domain Modeling
PPTX
Documenting software architecture
PPT
Object Oriented Analysis and Design Unit-1
PDF
Object Oriented Analysis Design using UML
PPTX
Software Evolution
PPTX
Architectural Design & Patterns
PPT
PPTX
Unified process model
PPT
Architecture design in software engineering
Architecture business cycle
Reconstructing Software Architecture
Domain specific Software Architecture
An Introduction to Software Architecture
Software development life cycle (SDLC)
Pressman ch-11-component-level-design
Unit 5- Architectural Design in software engineering
Presentation on uml
Formal Specification in Software Engineering SE9
Lecture 12 requirements modeling - (system analysis)
Cost Benefit Analysis Method
Domain Modeling
Documenting software architecture
Object Oriented Analysis and Design Unit-1
Object Oriented Analysis Design using UML
Software Evolution
Architectural Design & Patterns
Unified process model
Architecture design in software engineering
Ad

Viewers also liked (20)

PPTX
Saam
PPT
ATAM
PPTX
Quality attributes in software architecture
PPTX
Toolbox of techniques for Architecture Reviews
PDF
Architecture Description Languages: An Overview
PDF
The dynamics of software evolution - EVOLUMONS 2011
PPT
Software Design Patterns
PPTX
Design Pattern in Software Engineering
PDF
Software archiecture lecture10
PPTX
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular Environments
PDF
Ethics and software engineering
PPTX
The ethics of software engineering
PPT
Taxonomy for bugs
PPTX
Software evaluation
PPTX
software project management Artifact set(spm)
PDF
Software Architecture: Architecture Description Languages
PPT
Software Selection & Evaluation
PPT
Ch21
PDF
Pre-Thesis Document
PPTX
Teaching Architectural design
Saam
ATAM
Quality attributes in software architecture
Toolbox of techniques for Architecture Reviews
Architecture Description Languages: An Overview
The dynamics of software evolution - EVOLUMONS 2011
Software Design Patterns
Design Pattern in Software Engineering
Software archiecture lecture10
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular Environments
Ethics and software engineering
The ethics of software engineering
Taxonomy for bugs
Software evaluation
software project management Artifact set(spm)
Software Architecture: Architecture Description Languages
Software Selection & Evaluation
Ch21
Pre-Thesis Document
Teaching Architectural design
Ad

Similar to Architecture evaluation (20)

PDF
Architecture evaluation
PPTX
Saam
PDF
UW Presentation - Architecture Trade-off Analysis Method
PPTX
13- Architecture Evaluations_design.pptx
PPTX
Software Architecture
PPTX
Software Architecture Standard IEEE 1471
PPT
14 analysis techniques
PPTX
Software architecture simplified
PDF
SAF - architecture framework
PPT
PDF
Requirements for quality evaluation of software architecture
PDF
software architecture
PDF
Software archiecture lecture03
PDF
Moving To The Cloud, Evaluating Architectures
PDF
V5 i3201613
PPTX
PDF
Applying Agile Values to Enterprise Architecture Software Architectural Trend...
PPTX
Power point for project
PDF
2 - Architetture Software - Software architecture
PDF
XP-Manchester 2013 Software Architecture for Agile Developers Intro
Architecture evaluation
Saam
UW Presentation - Architecture Trade-off Analysis Method
13- Architecture Evaluations_design.pptx
Software Architecture
Software Architecture Standard IEEE 1471
14 analysis techniques
Software architecture simplified
SAF - architecture framework
Requirements for quality evaluation of software architecture
software architecture
Software archiecture lecture03
Moving To The Cloud, Evaluating Architectures
V5 i3201613
Applying Agile Values to Enterprise Architecture Software Architectural Trend...
Power point for project
2 - Architetture Software - Software architecture
XP-Manchester 2013 Software Architecture for Agile Developers Intro

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