Quality and Analysis Flashcards
How does Architecture Analysis integrate with the regular Architecture Business Cycle
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
In a software project what can be evaluated?
- processes, e.g. development or operating process
- artifacts, e.g. requierements, source code, or other documents
What types of evaluation can be differentiated?
- quantitative
- qualitative
What are main qualitative characteristics of software architecture according to ISO25010/iSAQB?
- Functional suitability
- Reliability
- Security
- Maintainability
- Performance Efficiency
- Usability
- Compatability
- Portability
What is scalability?
- additional quality requierement
- ability of hardware and software to scale with an increasing volume of requierements
How can quality requierements affect each other?
- 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
Name tactics for enabling the requierement of increased performance
- carry out load testing
- provide additional hardware
- introduce redundancies
- reduce system flexibility
Name tactics for enabling the requierement of increased flexibility
- 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
What aspects of a system can be made more flexible?
- Functionality
- Data structure or data models
- External software
- Interfaces to other systems
- UIs
- target platforms
What is traceability and why is it important?
- ability to trace a requierement forward and reverse to its verification
- how documentation can be traced back to its point of origin
What are requierements for traceability?
- unique identification of requierements
- selection of nature, timing, responsibility for and tool support for information collection and management
How do quantitative quality factors work differently than qualitative factors?
Quantitative:
- can provide good indications of structural changes
- provide no information to operability or runtime quality
- need functional/technical context to be comparable
What quantitative Methods for software architecture exist?
- 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)
Name examples for Metrics
- 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
What is cyclomatic complexity?
- 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
What is Goodhart’s Law
- 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”
What are prototypes in software architecture?
- simplified experimental model of the planned system
- several types
- includes all functionality for its designed purpose
What types of prototypes are differentiated?
- 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
What are advantages of prototypes?
- 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
Prerequisites
What are prerequisites for architectural analysis?
- requierements analysis
- project objectives analysis
- suitablity quality model
- definition of functional processes
What is the Architectural Tradeoff Analysis Method (ATAM)
- methodical approach to qualitative architecture evaluation
- should be done early in development stage
What are advantages of ATAM?
- explicit quality requierements
- improved architecture documentation
- documented basis for architectural decisions
- early identification of risks
- improved communication between involved parties
What are the four phases of ATAM?
- Preperation phase
- KickOff phase
- Evaluation phase
- Conclusion
In ATAM what is part of the Preperation phase?
- Identification of relevant stakeholders