Software Architecture in Practice Notes on H2 A word about • … my process • I do not read them as an exam exercise – There are probably errors that I have missed • Focus on – QAS formulation and Tactics arguments – Less on architectural suggestions (have a go in H3) – Feedback in the form of these slides… • Thanks to the volunteers of material CS@AU Henrik Bærbak Christensen 2 Overall • Good investment of energy and learning effort – Generally grade 4-10 quality of hand-ins • Lots of stuff to master – I have found quite a few ‘errors’ (a lot actually!) • Some minor – Wrong use of templates and techniques • Some grave – Non-sense, learning objectives missing partly, … CS@AU Henrik Bærbak Christensen 3 QAW I know… • … I do not mention ‘report experience’ in the exercise requirements • Those of you who do – I like that… – Screen shots and some meta data is fine… • Challenge: Learning while doing… CS@AU Henrik Bærbak Christensen 5 Non-architectural QAS • It is a brainstorm, true, but keep a watch on nonarchitectural stuff that pops up – Functional requirements sneeking in… – Business requirements – Process requirements CS@AU Henrik Bærbak Christensen 6 Architecture or Not The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and the properties of both. [Bass et al., 2013] CS@AU Henrik Bærbak Christensen 7 QAS Formulation A key thing I have been looking at Template or Not • Try to express well chosen scenario • Many do not follow the template idea • Some source generates some events (stimuli) that arrives at some artefact under some conditions (environment) and must be dealt with (response) in a satisfactory way (response measure = the architectural requirement) • Sign: The QAS makes little sense when read… CS@AU Henrik Bærbak Christensen 9 Example • Patient (source) TM16 server not available (stimulus) at TM16 Client (artifact),??? measurement created and client continue in normal operation (response) with 99,99% probability (measure) • Hardware crashes in TM16 server, normal op, failure masked so ptt can create measurement in client, available for clinician to review within 1 hour I suggest instead CS@AU Henrik Bærbak Christensen 10 Better • Better, with minor issues CS@AU Henrik Bærbak Christensen 11 Grave problems • Try to catch important scenario • But misses the – Correct QA – Never express any real response measure – Reponse measure = architectural requirement! CS@AU Henrik Bærbak Christensen 12 Example • So – unauthorized user trigger access within a few seconds ??? – I will not hire you! • RM is performance related… CS@AU Henrik Bærbak Christensen 13 Example • Text addresses ‘no connection to server’ – Must be explicit in the QAS, that is what the QAS is for! CS@AU Henrik Bærbak Christensen 14 Example How do I store data in degraded mode QAS is fulfilled even if connection is never restored! NO RM CS@AU Henrik Bærbak Christensen 15 Why is there a RM? • QAS is fulfilled if it take 12 years to save All data. CS@AU Henrik Bærbak Christensen 16 Classification? • Some QAS can be classified in multiple categories – If it is too slow to store, usability suffers, true • But… – QAS must be written with one QA in mind • Otherwise the response measure is wrong and ambiguous – Write the same scenario using two QAS • Performance QAS • Usability QAS CS@AU Henrik Bærbak Christensen 17 If in doubt • Look at the definition of the QA • Availability = the probability that the system will be operational when needed CS@AU Henrik Bærbak Christensen 18 Use the ‘generators’ • Try the generator first, adopt only if not precise enough • Internal crash in TM16 server process in normal operations, failure logged and masked by patient making measurement in client, available for clinician to review within 1 hour CS@AU Henrik Bærbak Christensen 19 Avoid the ‘design trap’ • Most of you are designers, design solutions • Do not (too much) – describe requirements Not really a RM, but a UI design proposal. RM = task time, error count, ratio of success CS@AU Henrik Bærbak Christensen 20 Ex CS@AU Henrik Bærbak Christensen 21 Ex CS@AU Henrik Bærbak Christensen 22 Security != Functionality • Functionality = – Given patient X, the physician can get the data for X • Meaning: Not for Y when requesting X • Security – Physician P tries to get data for ptt X which is NOT a patient of P, access attempt is logged, data is protected from unauthorized access CS@AU Henrik Bærbak Christensen 23 But… • Less is more – Better to have 4 less-well-formed QAS than none ! • Still – learning situation – so I will point out failures CS@AU Henrik Bærbak Christensen 24 QAS Conclusion • Read the QAS aloud – does it make sense? • Is the Response Measure proper – And – does it measure the QA you want to express • Use the generators / general scenarios – Use the generators! – Use the generators!! – Use the generators!!!!! • Express one QA per QAS CS@AU Henrik Bærbak Christensen 25 Tactics Tactics • Generally well, but – Yes, TM16 already supports quite a lot of modifiability but what tactics are actually employed in TM16? • You could have used that analysis as learning platform CS@AU Henrik Bærbak Christensen 27 Designs • Client side caching of measurements in case of no server connection. – Fine idea. • But – do not use a MongoDB to store 3 measurements! CS@AU Henrik Bærbak Christensen 28 Modifiability • Add measurement types – Actually done through ‘codes’ and ‘code systems’ in vocabularies TM16 – (value, unit, code, codesystem) – Example: LOINC CS@AU Henrik Bærbak Christensen 29 Report Techniques • Do not make it a puzzle for the reader – be clear Great overview. (And review for exam) CS@AU Henrik Bærbak Christensen 30
© Copyright 2026 Paperzz