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 (5352B)


      1 +++
      2 title = 'Architecture design'
      3 +++
      4 # Architecture design
      5 ## Architecture design methods
      6 How an architecture is developed:
      7 
      8 ![Architecture design flowchart by Bosch](42d47395d53f4c7684f4123e6bcbe80b.png)
      9 
     10 Architecture design in the context of other tasks
     11 
     12 ![Architecture in context of other dev tasks by Hofmeister](380b44cc14444bb59b6d4d891d489f29.png)
     13 
     14 ### Attribute-driven design
     15 1. Choose element to design
     16     - refinement: breadth first (figure out from high level all aspects) vs depth first (start with one aspect and go in detail)
     17     - choice driven by: personnel availability, risk mitigation, priorities
     18 2. Identify ASRs (can use e.g. utility tree)
     19 3. Generate design solution, e.g. inspired by patterns and tactics
     20 4. Verify and prepare for next iteration
     21 5. Repeat steps
     22 
     23 ![Generalized diagram of testing process](93f9279778fe4e70a343a6a526348792.png)
     24 
     25 ![Diagram of process in terms of backlog](4b5dc70b99da495abcb2a2c384d0b441.png)
     26 
     27 You choose from backlog by:
     28 - focusing on revenue
     29 - focusing on risk:
     30     - identify fail scenarios (what if SHTF) and add cost×probability of fail scenarios
     31     - cost of decision ≈ cost to undo that decision
     32 
     33 ## Architecture design process
     34 Design proceeds under conditions of great uncertainty: evolving requirements & limited info.
     35 How rational are your design decisions?
     36 
     37 Reflection-in-action: "thinking on your feet"
     38 Reflection-on-action: retrospective reflection, thinking about what happened
     39 
     40 Ultimate design is path through space of decisions. Choices at any point affect later (and maybe earlier) decisions.
     41 
     42 Can we even make rational decisions?
     43 - absolute rationality: logical chain of events+consequences, is time consuming
     44 - bounded rationality: heuristics and rules of thumb, is time-efficient
     45     - decisions are made in context, which is generally selected unconsciously and automatically
     46     - anchoring is when you are given a set of possible choices, you stop 'thinking outside the box'
     47 - social/cultural rationality: differences between people give new perspectives and solutions
     48 
     49 Prospect theory & fourfold pattern:
     50 - how people behave:
     51     - high probability of getting a lot: don't take the risk (fear of disappointment)
     52     - low probability of high loss: don't take the risk (fear of large loss)
     53     - high probability of high loss: risk seeking (hope to avoid loss)
     54     - low probability of high gain: risk seeking (hope of large gain)
     55 - we fear losses more than we value gains
     56 - influenced by diminishing sensitivity principle: value we perceive 'feels' different from actual worth
     57 
     58 Design is a "wicked" problem.
     59 There's no definite formulation, or stopping rule.
     60 Solutions are not just true or false (I'll say this on the exam lol).
     61 Decisions lead to new problems, to new decisions, to new problems, etc.
     62 
     63 ## Architectural decisions
     64 Design is series of decisions:
     65 - sub-problems of overall design problem
     66 - each issue has several design options
     67 - designer makes a decision to resolve each issue (involves choosing 'best' option among alternatives)
     68 
     69 ![Taking decisions flowchart](23eb8f7cbed047d6809b00fbe3d25822.png)
     70 
     71 Design space:
     72 - space of possible designs you can get by choosing different sets of alternatives
     73 - is problem space + solution space
     74 
     75 Technical and non-technical concerns/options are intertwined: architects decide on type of database, management decide on budget.
     76 
     77 Types of decisions:
     78 - implicit, undocumented (unaware, tacit, 'of course' knowledge)
     79 - explicit, undocumented (vaporizes over time)
     80 - explicit, explicitly undocumented (tactical, personal reasons)
     81     - e.g. the streets in the Jordaan area of Amsterdam are angled differently than the rest of the city, because it used to be an area for poor people, and this made it harder for poor people to go into richer neighborhoods, as well as harder for rich people to see the poor neighborhoods
     82 - explicit, documented (preferred and exceptional situation)
     83 
     84 Design rationale: logical reasons given to justify designed artefact
     85 - quantitative:
     86     - priority: relative importance of design concern
     87     - cost: dev effort, maintenance effort, potential legal liabilities
     88     - benefit: how well an option satisfies requirements
     89     - implementation risk: risk that team may not do successful design
     90     - outcome certainty risk: risk that design may not satisfy requirements
     91 - qualitative:
     92     - design assumptions
     93     - design constraints
     94     - strengths and weaknesses
     95     - trade-offs
     96 
     97 Why document design decisions?
     98 - prevents repeating past steps, which might be expensive
     99 - explains why the architecture is good
    100 - emphasizes qualities and criticality for requirements/goals
    101 - provides context and background
    102 
    103 Use of design decisions:
    104 - identify key decisions for stakeholder
    105 - evaluate impact for change
    106 
    107 Template for modelling design decision:
    108 - issue: what is it about?
    109 - decision: which one?
    110 - status: accepted/proposal/obsolete
    111 - group: for grouping decisions with common characteristics
    112 - assumptions: which are part of rationale?
    113 - constraints: which are part of rationale?
    114 - positions: alternatives, options to this decision
    115 - argument: why this decision?
    116 - implications: what are consequences of decision?
    117 - relations: among this decision and others, or requirements/artifacts/principles
    118 - importance: how important is this wrt quality?
    119 - possible negative impact on quality attributes