Quality and Analysis Flashcards

1
Q

How does Architecture Analysis integrate with the regular Architecture Business Cycle

A

Regular cycle goes from
1. Clarifying requierements
to 5. Monitor Implementation
6. Evaluate Architecture

The Evaluation of Architecture contains the Architecture Analysis and this consists of:
1. Analyze
2. Document
3. Evaluate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

In a software project what can be evaluated?

A
  • processes, e.g. development or operating process
  • artifacts, e.g. requierements, source code, or other documents
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What types of evaluation can be differentiated?

A
  • quantitative
  • qualitative
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are main qualitative characteristics of software architecture according to ISO25010/iSAQB?

A
  • Functional suitability
  • Reliability
  • Security
  • Maintainability
  • Performance Efficiency
  • Usability
  • Compatability
  • Portability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is scalability?

A
  • additional quality requierement
  • ability of hardware and software to scale with an increasing volume of requierements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How can quality requierements affect each other?

A
  • wide range of impacts on each other
  • simplicity increases comprehensibility
  • security can possibly affect usability
  • flexibility can reduce testability
  • performance can conflict with adaptability and flexibility
  • increased performance requierement can conflict with timely completion

-> many more
-> examples, other and even inverted affects can occur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Name tactics for enabling the requierement of increased performance

A
  • carry out load testing
  • provide additional hardware
  • introduce redundancies
  • reduce system flexibility
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Name tactics for enabling the requierement of increased flexibility

A
  • use information hiding, introducing additional abstraction levels
  • reduce dependencies
  • keep changes as local as possible, limiting them to a minimum of building blocks
  • decouple systems from each other as much as possible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What aspects of a system can be made more flexible?

A
  • Functionality
  • Data structure or data models
  • External software
  • Interfaces to other systems
  • UIs
  • target platforms
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is traceability and why is it important?

A
  • ability to trace a requierement forward and reverse to its verification
  • how documentation can be traced back to its point of origin
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are requierements for traceability?

A
  • unique identification of requierements
  • selection of nature, timing, responsibility for and tool support for information collection and management
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How do quantitative quality factors work differently than qualitative factors?

A

Quantitative:
- can provide good indications of structural changes
- provide no information to operability or runtime quality
- need functional/technical context to be comparable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What quantitative Methods for software architecture exist?

A
  • metrics for measurement and evaluation of architectural aspects (e.g. cyclomatic complexity)
  • analysis focused on process (e.g. analysis of change frequencies)
  • analysis that checks for correct implementation of architecture (e.g. checking code compliance)
  • analysis focused on software repository (e.g. detect duplicate code)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Name examples for Metrics

A
  • Requierements: number of changed requierements per unit of time
  • Source Code: Number of lines of code, Inheritance depth, degreed of dependency (coupling)
  • Software production process: Time for meetings vs. developing time, number of implemented tests/features per unit of time
  • Errors: average time for correction of an error
  • Testing: Number of test cases, test cases per class/package
  • Design: incoming/outgoing dependencies, Instabilty
  • System: performance characteristics, like resource consumption
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is cyclomatic complexity?

A
  • quantitative measure of module complexity
  • number of linear independent paths through a program’s code
  • ## excessive high cyclomatic complexity can also be tolerated if module is still understandable or it can only be reduced with difficulty
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is Goodhart’s Law

A
  • what is measured can quickly become itself the target quality
  • measurement can provide an indication of a problem but does not necessarily mean that a problem exists
  • “When a measure becomes a target, it ceases to become a good measure”
17
Q

What are prototypes in software architecture?

A
  • simplified experimental model of the planned system
  • several types
  • includes all functionality for its designed purpose
18
Q

What types of prototypes are differentiated?

A
  • Demonstration prototype, should be subsequently junked
  • Labor sample
  • Pilot (later part of the core product)
  • “real” prototype (demonstrated UI aspects or functional elements), used for analysis
19
Q

What are advantages of prototypes?

A
  • allows gain of important experimental experience
  • can be used as basis for futher discussions and decisions
  • provides early-stage feedback of suitability of solution
  • thus reduces development risk
  • can sometimes be regarded as documentation alternative
20
Q

Prerequisites

What are prerequisites for architectural analysis?

A
  • requierements analysis
  • project objectives analysis
  • suitablity quality model
  • definition of functional processes
21
Q

What is the Architectural Tradeoff Analysis Method (ATAM)

A
  • methodical approach to qualitative architecture evaluation
  • should be done early in development stage
22
Q

What are advantages of ATAM?

A
  • explicit quality requierements
  • improved architecture documentation
  • documented basis for architectural decisions
  • early identification of risks
  • improved communication between involved parties
23
Q

What are the four phases of ATAM?

A
  • Preperation phase
  • KickOff phase
  • Evaluation phase
  • Conclusion
24
Q

In ATAM what is part of the Preperation phase?

A
  • Identification of relevant stakeholders
25
In ATAM what is part of the KickOff phase?
- presentation of evaluation method - presentation of business (by client) and architecture goals - presentation of current architecture (by architect), including complete context, top-level building blocks, runtime views of most important use cases
26
In ATAM what is part of the Evaluation phase?
- Create a quality tree and scenarios - analyze archtiectural approaches and scenarios
27
In ATAM what is part of the Conclusion phase?
- present the results
28
In ATAM what kind of decisions can be classified?
- risks (possible dangers to fulfillment of business objectives and cause other issues) - non-risks (always fulfilled) - sensitivity points (even minor changes have wide ranging consequences, critical components for requierements fulfilling) - Compromises (trade-offs whether or how a design decision affects multiple quality characteristics)
29
How does a quality tree work
- main nodes are important quality characteristics for project - sub-nodes are more specific requirements - 'leaves' are scenarios detailing exact requierements for upper node - characteristics and node are prioritized by stakeholders according to business benefit and by architect by technical complexity
30
What is a scenario in Architecture Analysis?
- description on how a system should behave under specific circumstances and in respective of a specific quality characteristic - like amount of users handled in parallel and response time
31
What types of scenarios exist?
- Application scenarios (how system reacts to specific stimuli at runtime) - Change scenarios (what happens in case of change to the system) - Stress or limit scenarios (how system reacts to extreme situations)
32
What are elements of scenarios in Architecture Analysis?
- Trigger - Trigger source - Environment - System components/artifact - Response - Response metric