Stability

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