12 Architect Software Architecture Document Reference Architecture Analysis Model Design Model Deployment Model Implementation Model... Designer’s Responsibilities.[r]
Trang 1Analysis and Design Overview
Trang 2 Review the key Analysis and Design terms and concepts
Introduce the Analysis and Design process,
including roles, artifacts and workflow
Explain the difference between Analysis and Design
2
Trang 3Analysis and Design in Context
The purposes of Analysis and
Design are to:
into a design of the
system-to-be
Evolve a robust architecture
for the system
Adapt the design to match
the implementation
environment, designing it for
performance.
The purposes of Analysis and
Design are to:
into a design of the
system-to-be
Evolve a robust architecture
for the system
Adapt the design to match
the implementation
environment, designing it for
performance.
Trang 4Analysis and Design Overview
4
Supplementary Specification
Data Model
Architecture Document
Analysis and Design
Glossary
Trang 5Analysis Versus Design
Trang 6Analysis and Design Are Not Top-Down
Trang 7What Is Architecture?
Software architecture encompasses a set of significant decisions about the organization of
a software system.
interfaces by which a system is composed
elements
elements into larger subsystems
Grady Booch, Philippe Kruchten, Rich Reitman, Kurt Bittner;
Rational (derived from Mary Shaw)
Trang 8Architecture Constrains Design and
Architecture decisions are the most fundamental decisions,
and changing them will have significant effects
Architecture
Design Implementation
Code
Trang 9Software Architecture:
The “4+1 View” Model
Process View Deployment View
Performance, scalability, throughput
System integrators System topology, delivery,
installation, communication
System engineering
Analysts/Designers
Structure
Trang 10Analysis and Design Workflow
10
Analysis
Design
[Early Elaboration Iteration]
[Inception Iteration (Optional)]
Define a Candidate Architecture ArchitecturalPerform
Synthesis
Analyze Behavior
Refine the Architecture
Design Components Design theDatabase
(Optional)
Trang 11Analysis and Design Activity Overview
Architect
Designer
Trang 12Software Architect’s Responsibilities
Reference Architecture
Analysis Model
Design Model
Deployment Model Implementation Model
Trang 14Analysis and Design Is Use-Case Driven
Use cases defined for a system are the basis for the entire development process.
Benefits of use cases:
of stakeholders.
14
Withdraw Money
Check Balance
Customer
Trang 15What Is a Use-Case Realization?
Class Diagrams Use Case
Communication Diagrams Sequence
Diagrams
Trang 16Analysis and Design
in an Iterative Process
16
Iteration n Iteration n + 1
Use Case A Scenarios 1 & 2
Use-Case Realization A Start of iteration
End of iteration
Use Case B Scenario 1
Use-Case Realization A
Use Case A Scenario 3
Use-Case Realization B
Trang 17 What is the purpose of the Analysis and
Design Discipline?
What are the input and output artifacts?
Name and briefly describe the 4+1 Views of Architecture.
What is the difference between Analysis and Design?
What is architecture?
Trang 18Architectural Analysis
18
Trang 19Objectives: Architectural Analysis
Explain the purpose of Architectural Analysis and where it is performed in the lifecycle.
Describe a representative architectural
pattern and set of analysis mechanisms, and how they affect the architecture.
Describe the rationale and considerations
that support the architectural decisions.
Show how to read and interpret the results of Architectural Analysis:
Trang 20Architectural Analysis in Context
20
[Early Elaboration Iteration] Iteration (Optional)][Inception
Define a Candidate Architecture ArchitecturalPerform
Synthesis
Analyze Behavior
Refine the Architecture
Design Components Design theDatabase
(Optional)
Architecture
Analysis
Architect
Trang 21Architectural Analysis Overview
Design Model
Reference Architecture
Deployment Model
Vision Document
Software Architecture Doc
Project-Specific
Guidelines
Trang 22Architectural Analysis Steps
Key Concepts
model
22
Trang 23The “4+1 View” Model
Process View Deployment View
Performance, scalability, throughput
installation, communication
System engineering
Analysts/Designers
Structure
Trang 24Review: What Is a Package?
A package is a general-purpose
mechanism for organizing
elements into groups.
It is a model element that can
contain other model elements.
A package can be used
Trang 25Package Relationships: Dependency
Trang 26Hierarchy should be acyclic
Circular dependencies make it impossible
to reuse one package
without the other.
Avoiding Circular Dependencies
A
B
C
A' C
A
B
A
B
Trang 27Architectural Analysis Steps
Define the High-Level Organization of the
model
Trang 28Patterns and Frameworks
details may be Analysis/Design patterns
28
Trang 29What Is a Design Pattern?
A design pattern is a solution to a common design problem.
Describes a common design problem
Describes the solution to the problem
Discusses the results and trade-offs of applying the
Trang 30What Is an Architectural Pattern?
An architectural pattern expresses a
fundamental structural organization schema for software systems It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them – Buschman et al,
“Pattern-Oriented Software Architecture — A
Trang 31Typical Layering Approach
General
functionality
Specific
an application — contains the value adding software developed by the organization.
Business specific — contains a number of reusable subsystems specific to the type of business.
Middleware — offers subsystems for utility classes and platform-independent services for distributed object computing in heterogeneous environments and so on.
System software — contains the software for the actual infrastructure such as operating systems, interfaces to specific hardware, device drivers, and so on.
Application
Business-Specific
Middleware
System Software
Trang 32Detects and corrects errors in bit sequences Transmits bits: velocity, bit-code, connection, etc.
Trang 33Layering Considerations
Group elements at the same level of abstraction
Group like things together
Separate disparate things
Application vs domain model elements
Loose coupling
Concentrate on encapsulating change
User interface, business rules, and retained data tend to have
a high potential for change
Trang 34Modeling Architectural Layers
Architectural layers can be modeled using
Trang 35What Are Stereotypes?
Stereotypes define a new model element
in terms of another model element.
Sometimes you need to introduce new
things that speak the language of your
domain and look like primitive building
blocks.
Class
<<stereotypename>> Stereotype
Trang 36High-Level Organization of the Model
Trang 37Architectural Analysis Steps
model
Identify Analysis mechanisms
Trang 38What Are Architectural Mechanisms?
38
Required
Functionality
Implementation Environment
Architect
Supplementary
Specification
Use-Case Model
Mechanisms COTS Products Databases
IPC Technology, etc.
“realized by client classes using”
“responsible for”
“constrained by”
Trang 39Architectural Mechanisms: Three Categories
Architectural Mechanism Categories
Trang 40Why Use Analysis Mechanisms?
That is why we have a persistence analysis mechanism We don’t know enough yet, so we can bookmark it and come back to it later.
Analysis mechanisms are used during analysis to reduce the
complexity of analysis and to improve its consistency by providing
designers with a shorthand representation for complex behavior.
Trang 41Sample Analysis Mechanisms
Trang 42Examples of Analysis Mechanism Characteristics
Trang 43Example: Analysis Mechanism Characteristics
Legacy interface mechanism
Trang 44Describing Analysis Mechanisms
Collect all analysis
Analysis Mechanisms
Trang 45Example: Course Registration Analysis
Mechanisms
Persistence Distribution
Trang 46Architectural Analysis Steps
model
Identify Key Abstractions
46
Trang 47What Are Key Abstractions?
A key abstraction is a concept, normally
uncovered in Requirements, that the system must be able to handle
Sources for key abstractions
Trang 48Defining Key Abstractions
Define analysis classes
Model analysis classes and relationships on
Trang 49Example: Key Abstractions
Student Professor
Schedule
Trang 50Architectural Analysis Steps
model
Create Use-Case Realizations
50
Trang 51What Is a Use-Case Realization?
Use-Case Model Design Model
Class Diagrams Use Case
Communication Diagrams Sequence
Diagrams
Trang 52The Value of Use-Case Realizations
Provides traceability from Analysis and Design back to Requirements
The Architect creates the Use-Case
Trang 53Architectural Analysis Steps
model
Checkpoints
Trang 54 General
done in a logically consistent way?
been identified?
Packages
picture of the services of the packages in
upper-level layers?
54
Trang 55Checkpoints (continued)
Classes
relationships been identified and
accurately modeled?
reflect the role it plays?
their relationships consistent with the
Business Model, Domain Model,
Requirements, Glossary, etc.?
Trang 56Review: Architectural Analysis
typical layers.
Architectural Analysis? Why are they identified
here?
56
Trang 57Exercise: Architectural Analysis
Given the following:
discipline: (Exercise Workbook: Payroll
Requirements)
Workbook: Payroll Architecture
Handbook, Logical View, Architectural
Analysis)
layers and their dependencies
Trang 58Exercise: Architectural Analysis
(continued)
Identify the following:
58
Trang 59Exercise: Architectural Analysis
(continued)
Produce the following:
architectural layers and their dependencies
Trang 60Exercise: Review
Compare your key abstractions
with the rest of the class
identified?
the role it plays?
Compare your class diagram
showing the upper-level layers
the Payroll System architecture?
60