Architecture Lifecycle Issues
From Suhrid.net Wiki
Contents
Architecture Based Process
- Establish business case for the system. e.g. Product cost, time to market.
- Understand the requirements
- Use cases, prototypes
- Quality attributes
- Commonality & variability from previous/future systems - domain analysis.
- Develop the architecture - use tactics, styles.
- Document the architecture - using variety of views and ADL.
- Analyse or evaluate the architecture.
- Implement product based on the architecture.
- Ensure that implementation conforms with architecture.
Process Recommendations
- Architecture should be a product of a single architect or a small group of architects with a single leader.
- Arch should have both functional reqs and an articulated, prioritized list of quality attributes.
- Arch should be well documented with atleast one static view and one dynamic view.
- Arch should be circulated to all stakeholders who should actively review.
- Arch should be analysed for quantitative measures and formally evaluated for qualitative properties.
- Should lend itself to incremental implementation via creation of a skeletal system.
Global Analysis
- The purpose of global analysis is to analyse the factors that influence the architecture and develop strategies for accommodating these factors in the architecture design.
- Three types of factors:
- Organizational factors
- Technological factors
- Product factors
Process
Analyse factors
- 1. Identify and describe factors
- Consider those that have significant global influence.
- Can factor be localized or is it truly global ?
- 2. Characterize the flexibility and changeability of the factors
- Can factor be changed, modified, influenced.
- How often will it change ? How likely ?
- 3. Analyse the impact of factors
- Other factors, component, design decisions.
Develop Strategies
- 1. Identify issues and influencing factors
- Identify handful of important issues that are influenced by factors and their changeability.
- Usually several factors affect an issue and when they conflict - we must negotiate a change in them.
- Difficult to satisfy factor, expensive factor.
- 2. Develop solutions and specific strategies
- Reduce or localize factor's influence.
- 3. Identify related strategies
- Dont repeat strategies identified with more than one issue. Reference them.
Organisational Factors
- Management
- Staff skills
- e.g. Analyze factors
- experience in multithreading.
- Only one developer has skill.
- Flexibility: Subject area is too complex for only training.
- Impact: There is a moderate impact on meeting performance.
- Strategies
- Only 1 developer
- Strategy: avoid use of multiple threads.
- Process and development environment
- Development schedule
- Development budget
Technological Factors
- General purpose hardware e.g CPU, mem, disk
- Special purpose hardware e.g. probe
- Software technology e.g. OS, language,
- Architecture technology - e.g product line, DSL's.
- Standards - OS interface, data formats, coding conventions.