15
Chapter 7 Other design methods

Designing Software Architectures: A Practical Approach - Chapter 7

Embed Size (px)

Citation preview

Page 1: Designing Software Architectures: A Practical Approach - Chapter 7

Chapter 7

Other design methods

Page 2: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 3: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 4: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 5: Designing Software Architectures: A Practical Approach - Chapter 7

A General Model of Software Architecture Design

• Architectural design activities

Page 6: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 7: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 8: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 9: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 10: Designing Software Architectures: A Practical Approach - Chapter 7

The Process of Software Architecting

• Tasks in the create logical / physical architecture

Elements are identified

Their interfaces are defined

Page 11: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 12: Designing Software Architectures: A Practical Approach - Chapter 7

A Technique for Architecture and Design

• Iterative steps of the technique for architecture and design

Page 13: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 14: Designing Software Architectures: A Practical Approach - Chapter 7

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

Page 15: Designing Software Architectures: A Practical Approach - Chapter 7

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