SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
Principles of
                              Software
                             Architecture
                                Design
                                         Len Bass




NICTA Copyright 2012   From imagination to impact
About NICTA

National ICT Australia

    • Federal and state funded research
      company established in 2002
    • Largest ICT research resource in
      Australia
    • National impact is an important
      success metric
    • ~700 staff/students working in 5 labs
      across major capital cities
    • 7 university partners                                     NICTA technology is
    • Providing R&D services, knowledge                       in over 1 billion mobile
      transfer to Australian (and global) ICT                                  phones
      industry


                                                                               2
 NICTA Copyright 2012            From imagination to impact
Why build a
computer
system?

                                                       System




              Designer                  Software
NICTA Copyright 2012                    Architecture
                         From imagination to impact
To Achieve Some Business Goals




                                                               System


   Business Goals




                                                    Software
                                                    Architecture
NICTA Copyright 2012   From imagination to impact
Business Goal Categories
 • Business goals fall into five broad categories for
   a particular system or collection of systems. Any
   system usually has a variety of goals.
       1. Reduce cost of ownership: development,
          maintenance, deployment, operation
       2. Improve the quality of the system(s) compared with
          its predecessors with respect to performance,
          modifiability, security, reliability, etc
       3. Improve the capabilities/functionality offered by the
          system compared to its predecessors
       4. Improve organization’s market position
       5. Improve external confidence in either the
          organization or the system

NICTA Copyright 2012       From imagination to impact
Variations depending on the type of system
and stakeholder organizations

          •System could be externally visible – shrink
          wrapped, portion of a larger system, sold to
          customers as middleware
          •System could be to improve a business process
          including improving the infrastructure or reducing
          the cost of development of other systems
          •Many systems involve a variety of different
          stakeholder organizations
              – Customer organization
              – Developer organizations
              – User organization
NICTA Copyright 2012        From imagination to impact
Reduce cost of ownership
       •For infrastructure development, the goal may be
       to reduce the cost of developing other systems

       •Consider not only the cost of development and
       maintenance but also the cost of deployment and
       operations

       •May also involve schedule for development

       •Goal should be specified

       •Techniques that have been decided upon (such
       as large scale reuse) should be identified.
NICTA Copyright 2012   From imagination to impact
Improve the quality of the system(s)
   •Qualities are things like performance, availability,
   or usability.

   •How will the quality in question be measured?

   •What is the goal?




NICTA Copyright 2012     From imagination to impact
Improve the capabilities offered by the
system
   •Functions should be identified (in general terms)

   •This may be a new system to support some
   improved business process.

   •If the goal is to replace existing systems, then
   these systems should be identified.




NICTA Copyright 2012     From imagination to impact
Improve organization’s market position

   •What techniques have been identified
     – Could be through improvement in quality
     – Could be through lower cost
     – Could be through appeal to broader audience


   •Not usually relevant to business process
   improvement




NICTA Copyright 2012   From imagination to impact
Improve external confidence
 •Could be through improvement in quality

 •Could be through support of new business process

 •Techniques that have been decided on should be
 specified

 •How is confidence measured?

 •What is the goal?


NICTA Copyright 2012   From imagination to impact
In addition, for all goals
 •Priority of goal should be specified
    – Some goals are “nice to have”

    – Developers some times have to “push back” or make
       trade offs. Knowing priority gives insight

 •Source of goal should be specified
    – Some goals are a result of market analysis

    – Some goals are inherent in the system being
      developed
    – Some goals are arbitrary – could cause problems




NICTA Copyright 2012   From imagination to impact
Business Goals Beget Requirements



  Business                                      Requirements
  Goals


 Reduce cost of                              System shall check for
 deployment                                  updates during start-up
                                             and shall download
                                             updates automatically


NICTA Copyright 2012   From imagination to impact
Types of Requirements




Requirements                                             Software Architectures

Constraints – pre-specified design decisions              Functions are:
Features – what functions add value to the user              Features +
   (e.g. what the system does)                            necessary non user
Quality Attribute– how well the system does by            visible computations
various measures (e.g., how timely,
   secure, modifiable, deployable it is)

NICTA Copyright 2012        From imagination to impact
Constraints




Requirements                                              Software Architectures
                                                 Constraints reduce the space of
                                                 architectures in which to search for a
Constraints – pre-specified design               solution
  decisions (e.g. what the system
  does)



NICTA Copyright 2012        From imagination to impact
Must live within constraints
 •Very little software design is “greenfield”

 •Frameworks, large-grained components are
 frequently required.

 •Disciplined design must accommodate constraints.

 •Designer does not make design decisions to
 achieve constraints – constraints are given.

 •Designer makes design decisions to achieve
 other requirements within given constraints.
NICTA Copyright 2012   From imagination to impact
Do functional or quality requirements drive
   remaining architectural design?




NICTA Copyright 2012   From imagination to impact
Do functional or quality requirements drive
remaining architectural design?
 •/A/ Quality requirements determine most
 architectural design decisions – not functional
 requirements

 •If the only concern is functionality then a
 monolithic system would suffice.

 •However is it quite common to see:
           – Redundancy structures for reliability
           – Concurrency structures for performance
           – Layers for modifiability to impact
NICTA Copyright 2012         From imagination
Key ideas of this section
 •Computer systems are constructed to satisfy
 business goals

 •Business goals are translated into requirements

 •Requirements can be considered as either:
        – Functional
        – Quality
        – Constraints


 •Quality requirements are those that are
 instrumental in the design of an architecture.
NICTA Copyright 2012    From imagination to impact
Principle 1
 • Quality attribute requirements are those that
   drive the design of the software architecture

 • Leads to several questions:
       1) How are quality attribute requirements specified
       2) How are quality attribute requirements achieved
       3) How can understanding of the impact of quality
          attributes on design be used during the design
          process?




NICTA Copyright 2012      From imagination to impact
Specifying Quality Attribute Requirements

  • Two problems:
        1. Requirements are not appropriately specific
        2. A common approach to specifying quality
           attributes is through taxonomies




NICTA Copyright 2012       From imagination to impact
Requirements are not appropriately specific


 •Requirements such as “the system shall be
 modifiable”, are meaningless.

 •What does it mean to say “the system shall be
 modifiable”?

 •Must state “modifiable with respect to what?”




NICTA Copyright 2012   From imagination to impact
Taxonomies do not help
 •Common approach is to say a quality is divided
 into (ISO25010)
        –    Functionality
        –    Reliability
        –    Usability
        –    Compatibility
        –    Security
        –    Efficiency
        –    Maintainability
        –    Portability
 •In order to use a taxonomy, a specific requirement
 must be placed into a category.
NICTA Copyright 2012           From imagination to impact
What category are the following?
 •Denial of service attack

 •Response time for user request

 •System A must be fielded within six months.




NICTA Copyright 2012   From imagination to impact
Broad categories must be used carefully

   •They are useful in establishing a vocabulary
   and frame of reference

   •They are useful in generating ideas during
   requirements elicitation

   •They are not useful if requirements must be
   placed into exactly one category




NICTA Copyright 2012   From imagination to impact
We have a common form for specification of quality
requirements
 •We use quality attribute general scenarios,
 which are system independent, to guide the
 specification of quality attribute requirements.
 •We characterize quality attribute requirements for
 a specific system by a collection of concrete
 quality attribute scenarios. These are instances
 of general scenarios.
 •We use general scenario generation tables to
 construct well-formed general scenarios for each
 attribute.

NICTA Copyright 2012   From imagination to impact
General Scenarios

  •General scenarios have six parts. The
  “values” for each part define a vocabulary for
  articulating quality attribute requirements. The
  parts are:
    – Stimulus
    – Source of stimulus
    – Environment in which the stimulus arrives
    – Artifact influenced by the stimulus
    – Response of the system to the stimulus
    – Response measures


NICTA Copyright 2012     From imagination to impact
Availability Scenario Generation Table
     •Source of stimulus:              Stimulus:
      – Internal to the system           Unanticipated event
       External to the system          Update to a data store
     •Environment:                     Artifact:
       Normal operation                 Process
      – Degraded mode                   Persistent storage
                                       Response measures:
     •Response:                          Availability percentage
       record it
                                        Time range in which the system
       notify parties                    can be in degraded mode
      – operate in normal or
        degraded mode
  Example Scenario:
    “An unanticipated message is received by a system process during
    normal operation. The process has to record it, inform the appropriate
    parties and continue to operate in normal mode without any
    downtime.”
NICTA Copyright 2012          From imagination to impact
Constructing Quality Requirements from
General Scenarios

  •Generate a possible general scenario by choosing one or more
  entries from each list and combining them
  •Not all:
   – general scenarios are relevant to specific system
   – generated scenarios make sense

  •Make each scenario system specific (concrete scenario)

  •May be multiple concrete scenarios for each general scenario.
  e.g., modify function.

  •Eliminate duplicates


NICTA Copyright 2012        From imagination to impact
Which attributes?
 •We have focused on seven quality attributes:
    – Availability
    – Interoperability
    – Modifiability
    – Performance
    – Security
    – Testability
    – Usability

 •Others are equally important:
     – Buildability
     – Upgradability
     – …




NICTA Copyright 2012        From imagination to impact
What about function and quality?
 •Software for garage door opener

 •Some scenarios:
        – “Halt garage door when an obstacle is detected”
        – “respond to user’s requests to raise/lower the door
          within .5 second”
        – “replace sensor/actuator within 40 staff hours”


 •Functional or quality requirements?



NICTA Copyright 2012       From imagination to impact
Functional AND Quality
 •Every requirement has both functional AND
 quality portions.
 •E.g. Halt garage door when an obstacle is
 detected.
 •Function: detect obstacle, halt garage door
 •Quality: within time limit (implicit in this example).
 •Scenario template provides means for eliciting
 quality requirements associated with functions.
 •Quality portion leads to design template in which
 to situate functionality
NICTA Copyright 2012   From imagination to impact
Key Ideas of this section
 •Can express business goals as quality scenarios

 •Can characterize quality scenarios in structured
 fashion

 •For seven attributes, we have tables that enable
 the generation of quality attribute scenarios

 •Quality attribute scenarios provide quality attribute
 requirements to particular functions

NICTA Copyright 2012   From imagination to impact
Principle 2
 • Quality attribute requirements can be specified
   through concrete scenarios with six parts.

 • Still questions left:

       – How are quality attribute requirements achieved
       – How can understanding of the impact of quality
         attributes on design be used to improve the process
         of design?




NICTA Copyright 2012      From imagination to impact
Achieving Quality Attribute Requirements
          •Design is the process of making decisions
          about various design options

          •We can enumerate decisions known to be
          useful in achieving different quality attributes.

          •For example: what are some decisions used
          to improve
                 –     performance
                 –     modifiability
                 –     availability
                 –     …
NICTA Copyright 2012                   From imagination to impact
Architectural tactic
 •An architectural tactic is a transformation on an
 architecture or a change to the input to a system
 that results in the improvement of a specific quality
 attribute(s).
 •Examples:
       –Information hiding is a transformation on an
       architecture that improves modifiability
       –Redundancy is a transformation on an architecture that
       improves availability or performance.
       –Reducing the arrival rate of requests is a change to the
       input of a system that improves latency.
NICTA Copyright 2012       From imagination to impact
Where do tactics come from?
 •Two places:
        – Quality attribute models
        – Experience of architects




NICTA Copyright 2012       From imagination to impact
Queuing model for performance




          •Parameters of model:
              – Arrival rate
              – Service time at each station
              – Scheduling strategy for processor
              – Scheduling strategy for queues
              – Topology

          •To change the results of the model must change at least one of
          the parameters.

NICTA Copyright 2012            From imagination to impact
Model -> Architecture
 •How is “service time” changed architecturally?

 •Service time is time spent executing. It can be reduced by
     – Improving the performance of an algorithm – e.g. use better
        sorting algorithm
     – Reducing computational overhead – e.g. co-locate computations
        in the same process to avoid interprocess communication
        overhead, pre-allocate time critical resources such as threads.

 •When there is a relevant quality attribute model, tactics are the
 architectural mechanisms used to change the parameters of the model.




NICTA Copyright 2012        From imagination to impact
Suppose there is no model
 •Many quality attributes have no good models, e.g.
 usability, testability.

 •Others have only partial models, e.g. reliability,
 security, modifiability.

 •In that case, tactics are derived by interviewing
 experts.
        – People have built systems with high reliability, high
          security, etc.
        – Interviewing them leads to tactics

NICTA Copyright 2012        From imagination to impact
What lists of tactics exist?
 •We have built lists of tactics for the same seven
 quality attributes that we have scenario generation
 tables for.
        –    Availability
        –    Interoperability
        –    Modifiability
        –    Performance
        –    Security
        –    Testability
        –    Usability



NICTA Copyright 2012            From imagination to impact
Availability Tactics

                                               Availability



               Fault         Recovery –                         Recovery – Re-    Prevention
              Detection    Preparation and                       Introduction
                               Repair


          Ping/Echo       Voting                           Shadow                Removal from
                                                                                  Service
          Heartbeat       Active                           State Re-
                           Redundancy                       Synchronization      Transactions
          Exception
                           (statefull)
                                                           Rollback              Process
                          Passive                                                 Monitor
                           Redundancy
                           (stateless)

NICTA Copyright 2012
                          Spare    From imagination to impact
Principle 3
 •     Quality attribute requirements can be achieved through application
       of architectural tactics

 •     Still questions left:

 •     How can understanding of the impact of quality attributes on design
       be used to improve the development process?
       • Methods to elicit requirements important to architecture design
       • Methods to evaluate software architecture
       • Methods to design a software architecture




NICTA Copyright 2012           From imagination to impact
Summary
 •Systems are built to satisfy business goals.

 •Business goals determine requirements.

 •Quality attribute requirements strongest influence on architectural
 design

 •Quality attributes requirements can be expressed in a common form

 •Architectural tactics are an enumeration of techniques that architects
 use to achieve particular quality attributes

 •Tactics are a key portion of methods to design and evaluate software
 architecture




NICTA Copyright 2012         From imagination to impact
More information

  •Scenarios, tactics,
  evaluation, and design can
  be found in Software
  Architecture in Practice 3rd
  edition.



  Len Bass
  len.bass@nicta.com.au


NICTA Copyright 2012   From imagination to impact

Weitere ähnliche Inhalte

Was ist angesagt?

Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architectureLilia Sfaxi
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software ArchitectureRahimLotfi
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design patternMindfire Solutions
 
Introduction to Software Project Management
Introduction to Software Project ManagementIntroduction to Software Project Management
Introduction to Software Project ManagementReetesh Gupta
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsAmr E. Mohamed
 
Software architecture
Software architectureSoftware architecture
Software architectureUdayna
 

Was ist angesagt? (20)

Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
software architecture
software architecturesoftware architecture
software architecture
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Slides chapter 11
Slides chapter 11Slides chapter 11
Slides chapter 11
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
 
TOGAF 9 Architectural Artifacts
TOGAF 9  Architectural ArtifactsTOGAF 9  Architectural Artifacts
TOGAF 9 Architectural Artifacts
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design pattern
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Introduction to Software Project Management
Introduction to Software Project ManagementIntroduction to Software Project Management
Introduction to Software Project Management
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design Patterns
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 

Andere mochten auch

Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: StylesHenry Muccini
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software ArchitectureMarkus Voelter
 
Architectural styles
Architectural stylesArchitectural styles
Architectural stylesguyburdett
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture StylesJorgen Thelin
 
Mobile application architecture
Mobile application architectureMobile application architecture
Mobile application architectureChristos Matskas
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagrammingmeghantaylor
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overviewDavid Scruggs
 
Mobile Application Architecture Strategy
Mobile Application Architecture StrategyMobile Application Architecture Strategy
Mobile Application Architecture StrategyGary Wong
 
architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applicationsHassan Dar
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Developmentjini james
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & DevelopmentRonnie Liew
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An OverviewOliver Stadie
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Svetlin Nakov
 

Andere mochten auch (17)

Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: Styles
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
Architectural styles
Architectural stylesArchitectural styles
Architectural styles
 
Architectural styles
Architectural stylesArchitectural styles
Architectural styles
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture Styles
 
Mobile application architecture
Mobile application architectureMobile application architecture
Mobile application architecture
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
ARCHITECTURAL STYLES
ARCHITECTURAL STYLESARCHITECTURAL STYLES
ARCHITECTURAL STYLES
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overview
 
Mobile Application Architecture Strategy
Mobile Application Architecture StrategyMobile Application Architecture Strategy
Mobile Application Architecture Strategy
 
architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applications
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & Development
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
 

Ähnlich wie Principles of software architecture design

The quality attribute of upgradability
The quality attribute of upgradabilityThe quality attribute of upgradability
The quality attribute of upgradabilityLen Bass
 
Enterprise Applications
Enterprise ApplicationsEnterprise Applications
Enterprise Applicationsswamysenthil
 
Cisco systems architecture
Cisco systems architectureCisco systems architecture
Cisco systems architectureDhanesh Gandhi
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdmguestc990b6
 
What is Software Engineering?
What is Software Engineering?What is Software Engineering?
What is Software Engineering?QAI
 
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...Compuware APM
 
Software Evolution_Se lect3 btech
Software Evolution_Se lect3 btechSoftware Evolution_Se lect3 btech
Software Evolution_Se lect3 btechIIITA
 
Supporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveSupporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveLen Bass
 
META for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMETA for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMatt McLarty
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGPreeti Mishra
 
Best Practices for Managing IaaS, PaaS, and Container-Based Deployments - App...
Best Practices for Managing IaaS, PaaS, and Container-Based Deployments - App...Best Practices for Managing IaaS, PaaS, and Container-Based Deployments - App...
Best Practices for Managing IaaS, PaaS, and Container-Based Deployments - App...AppDynamics
 
Design systems in organisations
Design systems in organisationsDesign systems in organisations
Design systems in organisationsAnnalisa Valente
 

Ähnlich wie Principles of software architecture design (20)

Chapter01
Chapter01Chapter01
Chapter01
 
The quality attribute of upgradability
The quality attribute of upgradabilityThe quality attribute of upgradability
The quality attribute of upgradability
 
Enterprise Applications
Enterprise ApplicationsEnterprise Applications
Enterprise Applications
 
1 introduction
1 introduction1 introduction
1 introduction
 
1 introduction (1)
1 introduction (1)1 introduction (1)
1 introduction (1)
 
Transition to System Design
Transition to System DesignTransition to System Design
Transition to System Design
 
Cisco systems architecture
Cisco systems architectureCisco systems architecture
Cisco systems architecture
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
 
What is Software Engineering?
What is Software Engineering?What is Software Engineering?
What is Software Engineering?
 
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
 
Software Evolution_Se lect3 btech
Software Evolution_Se lect3 btechSoftware Evolution_Se lect3 btech
Software Evolution_Se lect3 btech
 
Chapter01
Chapter01Chapter01
Chapter01
 
Chap12
Chap12Chap12
Chap12
 
Supporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveSupporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspective
 
META for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMETA for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motion
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Chapter01.ppt
Chapter01.pptChapter01.ppt
Chapter01.ppt
 
Best Practices for Managing IaaS, PaaS, and Container-Based Deployments - App...
Best Practices for Managing IaaS, PaaS, and Container-Based Deployments - App...Best Practices for Managing IaaS, PaaS, and Container-Based Deployments - App...
Best Practices for Managing IaaS, PaaS, and Container-Based Deployments - App...
 
merged (1).pdf
merged (1).pdfmerged (1).pdf
merged (1).pdf
 
Design systems in organisations
Design systems in organisationsDesign systems in organisations
Design systems in organisations
 

Mehr von Len Bass

Devops syllabus
Devops syllabusDevops syllabus
Devops syllabusLen Bass
 
DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020Len Bass
 
11 secure development
11  secure development 11  secure development
11 secure development Len Bass
 
10 disaster recovery
10 disaster recovery  10 disaster recovery
10 disaster recovery Len Bass
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction Len Bass
 
8 pipeline
8 pipeline 8 pipeline
8 pipeline Len Bass
 
7 configuration management
7 configuration management 7 configuration management
7 configuration management Len Bass
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architectureLen Bass
 
5 infrastructure security
5 infrastructure security5 infrastructure security
5 infrastructure securityLen Bass
 
4 container management
4  container management4  container management
4 container managementLen Bass
 
3 the cloud
3 the cloud 3 the cloud
3 the cloud Len Bass
 
1 virtual machines
1 virtual machines1 virtual machines
1 virtual machinesLen Bass
 
2 networking
2 networking2 networking
2 networkingLen Bass
 
Quantum talk
Quantum talkQuantum talk
Quantum talkLen Bass
 
Icsa2018 blockchain tutorial
Icsa2018 blockchain tutorialIcsa2018 blockchain tutorial
Icsa2018 blockchain tutorialLen Bass
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devopsLen Bass
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchainsLen Bass
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchainLen Bass
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systemsLen Bass
 
My first deployment pipeline
My first deployment pipelineMy first deployment pipeline
My first deployment pipelineLen Bass
 

Mehr von Len Bass (20)

Devops syllabus
Devops syllabusDevops syllabus
Devops syllabus
 
DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020
 
11 secure development
11  secure development 11  secure development
11 secure development
 
10 disaster recovery
10 disaster recovery  10 disaster recovery
10 disaster recovery
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction
 
8 pipeline
8 pipeline 8 pipeline
8 pipeline
 
7 configuration management
7 configuration management 7 configuration management
7 configuration management
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architecture
 
5 infrastructure security
5 infrastructure security5 infrastructure security
5 infrastructure security
 
4 container management
4  container management4  container management
4 container management
 
3 the cloud
3 the cloud 3 the cloud
3 the cloud
 
1 virtual machines
1 virtual machines1 virtual machines
1 virtual machines
 
2 networking
2 networking2 networking
2 networking
 
Quantum talk
Quantum talkQuantum talk
Quantum talk
 
Icsa2018 blockchain tutorial
Icsa2018 blockchain tutorialIcsa2018 blockchain tutorial
Icsa2018 blockchain tutorial
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devops
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchains
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchain
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
 
My first deployment pipeline
My first deployment pipelineMy first deployment pipeline
My first deployment pipeline
 

Kürzlich hochgeladen

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
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
 
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
 

Kürzlich hochgeladen (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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...
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
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
 
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
 

Principles of software architecture design

  • 1. Principles of Software Architecture Design Len Bass NICTA Copyright 2012 From imagination to impact
  • 2. About NICTA National ICT Australia • Federal and state funded research company established in 2002 • Largest ICT research resource in Australia • National impact is an important success metric • ~700 staff/students working in 5 labs across major capital cities • 7 university partners NICTA technology is • Providing R&D services, knowledge in over 1 billion mobile transfer to Australian (and global) ICT phones industry 2 NICTA Copyright 2012 From imagination to impact
  • 3. Why build a computer system? System Designer Software NICTA Copyright 2012 Architecture From imagination to impact
  • 4. To Achieve Some Business Goals System Business Goals Software Architecture NICTA Copyright 2012 From imagination to impact
  • 5. Business Goal Categories • Business goals fall into five broad categories for a particular system or collection of systems. Any system usually has a variety of goals. 1. Reduce cost of ownership: development, maintenance, deployment, operation 2. Improve the quality of the system(s) compared with its predecessors with respect to performance, modifiability, security, reliability, etc 3. Improve the capabilities/functionality offered by the system compared to its predecessors 4. Improve organization’s market position 5. Improve external confidence in either the organization or the system NICTA Copyright 2012 From imagination to impact
  • 6. Variations depending on the type of system and stakeholder organizations •System could be externally visible – shrink wrapped, portion of a larger system, sold to customers as middleware •System could be to improve a business process including improving the infrastructure or reducing the cost of development of other systems •Many systems involve a variety of different stakeholder organizations – Customer organization – Developer organizations – User organization NICTA Copyright 2012 From imagination to impact
  • 7. Reduce cost of ownership •For infrastructure development, the goal may be to reduce the cost of developing other systems •Consider not only the cost of development and maintenance but also the cost of deployment and operations •May also involve schedule for development •Goal should be specified •Techniques that have been decided upon (such as large scale reuse) should be identified. NICTA Copyright 2012 From imagination to impact
  • 8. Improve the quality of the system(s) •Qualities are things like performance, availability, or usability. •How will the quality in question be measured? •What is the goal? NICTA Copyright 2012 From imagination to impact
  • 9. Improve the capabilities offered by the system •Functions should be identified (in general terms) •This may be a new system to support some improved business process. •If the goal is to replace existing systems, then these systems should be identified. NICTA Copyright 2012 From imagination to impact
  • 10. Improve organization’s market position •What techniques have been identified – Could be through improvement in quality – Could be through lower cost – Could be through appeal to broader audience •Not usually relevant to business process improvement NICTA Copyright 2012 From imagination to impact
  • 11. Improve external confidence •Could be through improvement in quality •Could be through support of new business process •Techniques that have been decided on should be specified •How is confidence measured? •What is the goal? NICTA Copyright 2012 From imagination to impact
  • 12. In addition, for all goals •Priority of goal should be specified – Some goals are “nice to have” – Developers some times have to “push back” or make trade offs. Knowing priority gives insight •Source of goal should be specified – Some goals are a result of market analysis – Some goals are inherent in the system being developed – Some goals are arbitrary – could cause problems NICTA Copyright 2012 From imagination to impact
  • 13. Business Goals Beget Requirements Business Requirements Goals Reduce cost of System shall check for deployment updates during start-up and shall download updates automatically NICTA Copyright 2012 From imagination to impact
  • 14. Types of Requirements Requirements Software Architectures Constraints – pre-specified design decisions Functions are: Features – what functions add value to the user Features + (e.g. what the system does) necessary non user Quality Attribute– how well the system does by visible computations various measures (e.g., how timely, secure, modifiable, deployable it is) NICTA Copyright 2012 From imagination to impact
  • 15. Constraints Requirements Software Architectures Constraints reduce the space of architectures in which to search for a Constraints – pre-specified design solution decisions (e.g. what the system does) NICTA Copyright 2012 From imagination to impact
  • 16. Must live within constraints •Very little software design is “greenfield” •Frameworks, large-grained components are frequently required. •Disciplined design must accommodate constraints. •Designer does not make design decisions to achieve constraints – constraints are given. •Designer makes design decisions to achieve other requirements within given constraints. NICTA Copyright 2012 From imagination to impact
  • 17. Do functional or quality requirements drive remaining architectural design? NICTA Copyright 2012 From imagination to impact
  • 18. Do functional or quality requirements drive remaining architectural design? •/A/ Quality requirements determine most architectural design decisions – not functional requirements •If the only concern is functionality then a monolithic system would suffice. •However is it quite common to see: – Redundancy structures for reliability – Concurrency structures for performance – Layers for modifiability to impact NICTA Copyright 2012 From imagination
  • 19. Key ideas of this section •Computer systems are constructed to satisfy business goals •Business goals are translated into requirements •Requirements can be considered as either: – Functional – Quality – Constraints •Quality requirements are those that are instrumental in the design of an architecture. NICTA Copyright 2012 From imagination to impact
  • 20. Principle 1 • Quality attribute requirements are those that drive the design of the software architecture • Leads to several questions: 1) How are quality attribute requirements specified 2) How are quality attribute requirements achieved 3) How can understanding of the impact of quality attributes on design be used during the design process? NICTA Copyright 2012 From imagination to impact
  • 21. Specifying Quality Attribute Requirements • Two problems: 1. Requirements are not appropriately specific 2. A common approach to specifying quality attributes is through taxonomies NICTA Copyright 2012 From imagination to impact
  • 22. Requirements are not appropriately specific •Requirements such as “the system shall be modifiable”, are meaningless. •What does it mean to say “the system shall be modifiable”? •Must state “modifiable with respect to what?” NICTA Copyright 2012 From imagination to impact
  • 23. Taxonomies do not help •Common approach is to say a quality is divided into (ISO25010) – Functionality – Reliability – Usability – Compatibility – Security – Efficiency – Maintainability – Portability •In order to use a taxonomy, a specific requirement must be placed into a category. NICTA Copyright 2012 From imagination to impact
  • 24. What category are the following? •Denial of service attack •Response time for user request •System A must be fielded within six months. NICTA Copyright 2012 From imagination to impact
  • 25. Broad categories must be used carefully •They are useful in establishing a vocabulary and frame of reference •They are useful in generating ideas during requirements elicitation •They are not useful if requirements must be placed into exactly one category NICTA Copyright 2012 From imagination to impact
  • 26. We have a common form for specification of quality requirements •We use quality attribute general scenarios, which are system independent, to guide the specification of quality attribute requirements. •We characterize quality attribute requirements for a specific system by a collection of concrete quality attribute scenarios. These are instances of general scenarios. •We use general scenario generation tables to construct well-formed general scenarios for each attribute. NICTA Copyright 2012 From imagination to impact
  • 27. General Scenarios •General scenarios have six parts. The “values” for each part define a vocabulary for articulating quality attribute requirements. The parts are: – Stimulus – Source of stimulus – Environment in which the stimulus arrives – Artifact influenced by the stimulus – Response of the system to the stimulus – Response measures NICTA Copyright 2012 From imagination to impact
  • 28. Availability Scenario Generation Table •Source of stimulus: Stimulus: – Internal to the system  Unanticipated event  External to the system Update to a data store •Environment: Artifact:  Normal operation  Process – Degraded mode Persistent storage Response measures: •Response:  Availability percentage  record it Time range in which the system  notify parties can be in degraded mode – operate in normal or degraded mode Example Scenario: “An unanticipated message is received by a system process during normal operation. The process has to record it, inform the appropriate parties and continue to operate in normal mode without any downtime.” NICTA Copyright 2012 From imagination to impact
  • 29. Constructing Quality Requirements from General Scenarios •Generate a possible general scenario by choosing one or more entries from each list and combining them •Not all: – general scenarios are relevant to specific system – generated scenarios make sense •Make each scenario system specific (concrete scenario) •May be multiple concrete scenarios for each general scenario. e.g., modify function. •Eliminate duplicates NICTA Copyright 2012 From imagination to impact
  • 30. Which attributes? •We have focused on seven quality attributes: – Availability – Interoperability – Modifiability – Performance – Security – Testability – Usability •Others are equally important: – Buildability – Upgradability – … NICTA Copyright 2012 From imagination to impact
  • 31. What about function and quality? •Software for garage door opener •Some scenarios: – “Halt garage door when an obstacle is detected” – “respond to user’s requests to raise/lower the door within .5 second” – “replace sensor/actuator within 40 staff hours” •Functional or quality requirements? NICTA Copyright 2012 From imagination to impact
  • 32. Functional AND Quality •Every requirement has both functional AND quality portions. •E.g. Halt garage door when an obstacle is detected. •Function: detect obstacle, halt garage door •Quality: within time limit (implicit in this example). •Scenario template provides means for eliciting quality requirements associated with functions. •Quality portion leads to design template in which to situate functionality NICTA Copyright 2012 From imagination to impact
  • 33. Key Ideas of this section •Can express business goals as quality scenarios •Can characterize quality scenarios in structured fashion •For seven attributes, we have tables that enable the generation of quality attribute scenarios •Quality attribute scenarios provide quality attribute requirements to particular functions NICTA Copyright 2012 From imagination to impact
  • 34. Principle 2 • Quality attribute requirements can be specified through concrete scenarios with six parts. • Still questions left: – How are quality attribute requirements achieved – How can understanding of the impact of quality attributes on design be used to improve the process of design? NICTA Copyright 2012 From imagination to impact
  • 35. Achieving Quality Attribute Requirements •Design is the process of making decisions about various design options •We can enumerate decisions known to be useful in achieving different quality attributes. •For example: what are some decisions used to improve – performance – modifiability – availability – … NICTA Copyright 2012 From imagination to impact
  • 36. Architectural tactic •An architectural tactic is a transformation on an architecture or a change to the input to a system that results in the improvement of a specific quality attribute(s). •Examples: –Information hiding is a transformation on an architecture that improves modifiability –Redundancy is a transformation on an architecture that improves availability or performance. –Reducing the arrival rate of requests is a change to the input of a system that improves latency. NICTA Copyright 2012 From imagination to impact
  • 37. Where do tactics come from? •Two places: – Quality attribute models – Experience of architects NICTA Copyright 2012 From imagination to impact
  • 38. Queuing model for performance •Parameters of model: – Arrival rate – Service time at each station – Scheduling strategy for processor – Scheduling strategy for queues – Topology •To change the results of the model must change at least one of the parameters. NICTA Copyright 2012 From imagination to impact
  • 39. Model -> Architecture •How is “service time” changed architecturally? •Service time is time spent executing. It can be reduced by – Improving the performance of an algorithm – e.g. use better sorting algorithm – Reducing computational overhead – e.g. co-locate computations in the same process to avoid interprocess communication overhead, pre-allocate time critical resources such as threads. •When there is a relevant quality attribute model, tactics are the architectural mechanisms used to change the parameters of the model. NICTA Copyright 2012 From imagination to impact
  • 40. Suppose there is no model •Many quality attributes have no good models, e.g. usability, testability. •Others have only partial models, e.g. reliability, security, modifiability. •In that case, tactics are derived by interviewing experts. – People have built systems with high reliability, high security, etc. – Interviewing them leads to tactics NICTA Copyright 2012 From imagination to impact
  • 41. What lists of tactics exist? •We have built lists of tactics for the same seven quality attributes that we have scenario generation tables for. – Availability – Interoperability – Modifiability – Performance – Security – Testability – Usability NICTA Copyright 2012 From imagination to impact
  • 42. Availability Tactics Availability Fault Recovery – Recovery – Re- Prevention Detection Preparation and Introduction Repair Ping/Echo Voting Shadow Removal from Service Heartbeat Active State Re- Redundancy Synchronization Transactions Exception (statefull) Rollback Process Passive Monitor Redundancy (stateless) NICTA Copyright 2012 Spare From imagination to impact
  • 43. Principle 3 • Quality attribute requirements can be achieved through application of architectural tactics • Still questions left: • How can understanding of the impact of quality attributes on design be used to improve the development process? • Methods to elicit requirements important to architecture design • Methods to evaluate software architecture • Methods to design a software architecture NICTA Copyright 2012 From imagination to impact
  • 44. Summary •Systems are built to satisfy business goals. •Business goals determine requirements. •Quality attribute requirements strongest influence on architectural design •Quality attributes requirements can be expressed in a common form •Architectural tactics are an enumeration of techniques that architects use to achieve particular quality attributes •Tactics are a key portion of methods to design and evaluate software architecture NICTA Copyright 2012 From imagination to impact
  • 45. More information •Scenarios, tactics, evaluation, and design can be found in Software Architecture in Practice 3rd edition. Len Bass len.bass@nicta.com.au NICTA Copyright 2012 From imagination to impact