lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

index.md (4464B)


      1 +++
      2 title = 'Architecture & quality'
      3 +++
      4 # Architecture & quality
      5 ## Quality
      6 Architecture is critical for realization of qualities.
      7 The implementation details of architecture achieve the qualities.
      8 Qualities are not achieved in isolation, but they interact.
      9 
     10 Why not quality attributes?
     11 - not testable
     12 - concerns of QAs overlap
     13 - each QA community has own vocabulary
     14 
     15 Approaches to defining quality:
     16 - transcendental: I can't define it, but know it when I like it
     17 - product-based: related to attributes of software
     18 - user-based: fitness for use, user preferences
     19 - manufacturing-based: conformance to specs
     20 - value-based: deals with costs and profits
     21 
     22 ISO 25010 ("product characteristics"): functional suitability, performance efficiency, compatibility, usability, reliability, security, maintainability, portability
     23 
     24 How do you go from quality to architecture?
     25 - decompose QA scenarios into tactics
     26     - tactics: design decisions influencing achievement of quality attribute _response_
     27     - one tactic focuses on one QA (no tradeoffs), tactics are packaged in design patterns (which do have tradeoffs)
     28         - design pattern: recurring structure of communicating components that solve general design problem in a particular context (like "model-view-controller")
     29     - tactics can influence/refine other tactics, can be combined or grouped hierarchically
     30     - example: "active redundancy" to increase availability
     31 - verify achievement of qualities using "design checklists", systematically consider each category of decisions for an attribute (allocation of responsibilities, coordination model, data model, management of resources, mapping among architectural elements, binding time decisions, choice of technology)
     32 
     33 ## Evaluation
     34 Why evaluate? The sooner you start testing, the more money you save.
     35 
     36 Two questions:
     37 - is this architecture suitable?
     38 - which architecture is most suitable?
     39 
     40 Analysis techniques:
     41 - questioning: how does system react to various situations, make use of scenarios
     42 - measuring: rely on quantitative measures, e.g. architecture metrics and simulation
     43 
     44 ### Architecture documentation review (structured approach)
     45 - establish purpose of review (e.g. is arch design ready for dev activity)
     46 - establish subject of review (which artifacts are needed)
     47 - build/adopt appropriate question set
     48     - question set name (e.g. "capturing right stakeholders and concerns")
     49     - purpose (e.g. "is list of stakeholders appropriate, are concerns complete, do stakeholders believe their interests have been captured")
     50     - stakeholders and concerns (e.g. "all with substantial stake")
     51     - questions
     52         - respondents
     53         - expected answers
     54         - criticality
     55     - advice
     56 - tailor question set
     57 - plan review
     58 - perform review
     59 - analyze and summarize results
     60 
     61 ### ATAM (Architecture Tradeoff Analysis Method)
     62 - designed for evaluators not familiar with architecture/goals, system not yet built, many stakeholders
     63 - phases:
     64     0.  partnership, preparation (evaluation team leadership + key decision makers, informally)
     65     1. evaluation (evaluation team + decision makers analyse architecture, in one day)
     66         1. present method
     67         2. present business drivers (project manager)
     68         3. present architecture (lead architect)
     69         4. identify architectural approaches (patterns, tactics)
     70         5. generate quality attribute utility tree (+ priority and difficulty)
     71         6. analyze architectural approaches (scenario walkthrough)
     72     2. evaluation (evaluation + decision makers + stakeholders, two days)
     73         1. brainstorm and prioritize scenarios
     74         2. analyze architectural approaches
     75         3. present results (including risk themes)
     76     3. follow up (evaluation team + client)
     77 
     78 ![Flow of ATAM](763b9ad1accc441f86cd948bc2e76a21.png)
     79 
     80 Important concepts:
     81 - sensitivity  point: decision/property critical for a quality attribute
     82 - tradeoff point: decision/property affecting more than one quality attribute
     83 - risk: decision/property that is potential problem
     84 - nonrisk: architectural decision that is deemed safe
     85 - risk theme: overarching theme (from full set of discovered risks) identifying systemic weakness in architecture/process/team
     86 
     87 ### Architecture metrics
     88 Analyzability:
     89 - system breakdown: 1 component is bad, too many components is bad. need somewhere in between
     90 - uniform size of components: the more, the better
     91 - so, component balance metric = (system breakdown) × (component size uniformity)