Chapter 7
Other design methods
Outline
• A General Model of Software Architecture Design• Architecture-Centric Design Method• Architecture Activities in the Rational Unified
Process• The Process of Software Architecting• A Technique for Architecture and Design• Viewpoints and Perspectives Method• Summary
Background
• Over the past two decades, a number of architecture design methods have been proposed and documented
• In this chapter we briefly present some of the most well-known methods
A General Model of Software Architecture Design
• The authors compared 5 architecture design methods and extracted their commonalities
• The general model consists of 3 main activities– Architectural analysis: Architecturally significant
Requirements (ASRs) are determined– Architectural synthesis: design of candidate
architectural solutions. ADD corresponds to this activity.
– Architectural evaluation: Solutions are measured against the ASRs
A General Model of Software Architecture Design
• Architectural design activities
A General Model of Software Architecture Design
• Progress is driven by an implicit or explicit backlog of smaller needs, issues, problems and ideas that must be addressed
Architecture-Centric Design Method
• A method proposed by A. Lattanze that covers the complete life cycle of the architecture in 8 stages
• Stage 3 is focused on design. ADD can be used in this step
Architecture Activities in the Rational Unified Process (RUP)
• The RUP is a popular software development process, which is structured in 4 phases– Inception. Where the project is conceived– Elaboration. Where the architecture is designed,
among other things– Construction. Where the system is built iteratively– Transition. Where the system is moved from the
development environment to the end-user environment
Architecture Activities in the Rational Unified Process (RUP)
• Architecture is a fundamental aspect in the RUP, and there are activities associated to its development in inception and elaboration
• Inception– Perform Architectural Synthesis. Construct and assess an architectural
Proof-of-Concept to demonstrate the feasibility of the system• Elaboration
– Define a candidate architecture. An initial sketch of the software architecture is created
– Refine the architecture. The architecture is completed for an iteration• ADD can be integrated into the RUP for the design of the
architecture
The Process of Software Architecting
• Tasks in the create logical / physical architecture
Elements are identified
Their interfaces are defined
A Technique for Architecture and Design
• A method proposed by Microsoft that consists of five steps– Identify architecture objectives. This includes establishing the design
purpose and scope– Identify key scenarios. This includes identifying both functional and
quality attribute scenarios– Create application overview. This involves creating an overview of the
architecture using reference architectures, deployment patterns and technologies
– Identify key issues. This involves identifying the drivers that will be addressed
– Define candidate solutions. This involves designing candidate architectures. If a candidate architecture satisfies the requirements and issues, then it becomes a baseline architecture and is refined in further iterations
A Technique for Architecture and Design
• Iterative steps of the technique for architecture and design
Viewpoints and Perspectives Method
• A method proposed by Nick Rozanski and Eoin Woods which introduces two main concepts– Viewpoints. Collections of patterns, templates and
conventions for constructing one type of view. Viewpoints define stakeholders whose concerns are reflected in them. Viewpoints include functional, information, concurrency, development, deployment and operational
– Perspectives are collections of activities, tactics and guidelines used to ensure a system exhibits a set of quality properties. The primary perspectives include security, performance and scalability, availability and resilience, and evolution. They are orthogonal to viewpoints
The Process of Software Architecting
• Method steps– Step 1. Understand, validate and
refine initial inputs– Step 2. Identify drivers– Step 3. Identify architectural styles
that can be used as a basis for the design
– Step 4. Create a first cut architecture
– Step 5. Explore alternatives and select one
– Step 6. Perform an architectural evaluation for the current design
– Step 7.• A) Address concerns from
evaluation• B) Consider changes to the
original requirements
Summary• There are several design methods to choose from• ADD is focused on design and, as a consequence, it is
generally more concrete and specific in its steps and guidance for accomplishing the architecture design activity
• While most of the methods described cover the whole architectural development life cycle, ADD can be combined with methods such as QAW or ATAM to achieve the same result. Also, ADD can be used for the design activity in the methods that were described
• ADD 3.0 borrows from, benefits from, and owes a debt of gratitude to all of the approaches described in this chapter