3-Analysis and Design Overview

60 10 0
3-Analysis and Design Overview

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

12 Architect Software Architecture Document Reference Architecture Analysis Model Design Model Deployment Model Implementation Model... Designer’s Responsibilities.[r]

(1)(2)

Objectives

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

(3)

Analysis and Design in Context

The purposes of Analysis and Design are to:

Transform the requirements

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:

Transform the requirements

into a design of the system-to-be

Evolve a robust architecture

for the system

Adapt the design to match

the implementation

(4)

Analysis and Design Overview

4

Supplementary Specification

Use-Case Model Design Model

Data Model

Architecture Document

Analysis and Design

(5)

Analysis Versus Design

Analysis Design

 Focus on understanding

the problem

 Idealized design  Behavior

 System structure

 Functional requirements  A small model

 Focus on understanding

the solution

 Operations and

attributes

 Performance

 Close to real code  Object lifecycles  Nonfunctional

requirements

 A large model

WHAT?

(6)

Analysis and Design Are Not Top-Down or Bottom-Up

6

Bottom Up Top Down

Design Classes Subsystems

Use Cases Analysis Classes

(Define a middle level)

(7)

What Is Architecture?

Software architecture encompasses a set of

significant decisions about the organization of a software system.

 Selection of the structural elements and their

interfaces by which a system is composed

 Behavior as specified in collaborations among those

elements

 Composition of these structural and behavioral

elements into larger subsystems

 Architectural style that guides this organization

Grady Booch, Philippe Kruchten, Rich Reitman, Kurt Bittner;

(8)

Architecture Constrains Design and Implementation

Architecture involves a set of strategic design

decisions, rules or patterns that constrain design and construction

8

Architecture decisions are the most fundamental decisions, and changing them will have significant effects

Architecture Design

(9)

Software Architecture: The “4+1 View” Model

Process View Deployment View

Logical View

Use-Case View

Implementation View

End-user Functionality

Programmers Software management

Performance, scalability, throughput

System integrators System topology, delivery, installation, communication System engineering

Analysts/Designers

(10)

Analysis and Design Workflow

10

Analysis

Design

[Early Elaboration Iteration]

[Inception Iteration (Optional)]

Define a Candidate

Architecture ArchitecturalPerform Synthesis

Analyze Behavior

Refine the Architecture

Design

(11)

Analysis and Design Activity Overview

Architect

(12)

Software Architect’s Responsibilities

The Software

(13)

Designer’s Responsibilities

The designer must

know use-case modeling

techniques, system requirements, and software design

techniques.

Designer RealizationUse-Case

(14)

Analysis and Design Is Use-Case Driven

Use cases defined for a system are the basis

for the entire development process.

Benefits of use cases:

 Concise, simple, and understandable by a wide range

of stakeholders

 Help synchronize the content of different models

14

Withdraw Money Check Balance

(15)

What Is a Use-Case Realization?

Use-Case Model Design Model

Use Case Use-Case Realization

Class Diagrams Use Case

Communication Diagrams Sequence

(16)

Analysis and Design

in an Iterative Process

16

Iteration n Iteration n +

Use Case A Scenarios &

Use-Case Realization A Start of iteration

End of iteration

Use Case B Scenario

Use-Case Realization A

Use Case A Scenario

(17)

Review

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?

(18)

Architectural Analysis

(19)

Objectives: 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:

 Architectural layers and their relationships  Key abstractions

(20)

Architectural 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

(21)

Architectural Analysis Overview

Supplementary Specification

Glossary

Use-Case Model

Architectural Analysis

Design Model Reference

Architecture

Deployment Model

Vision Document Software

Architecture Doc

(22)

Architectural Analysis Steps

Key Concepts

Define the High-Level Organization of the

model

Identify Analysis mechanismsIdentify Key Abstractions

Create Use-Case RealizationsCheckpoints

(23)

The “4+1 View” Model

Process View Deployment View

Logical View

Use-Case View

Implementation View

End-user Functionality

Programmers Software management

Performance, scalability, throughput

System integrators System topology, delivery, installation, communication

System engineering

Analysts/Designers

(24)

Review: 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

 To organize the model under

development

 As a unit of configuration

management

24

(25)

Package Relationships: Dependency

Packages can be related to one another using a

dependency relationship.

Dependency Implications

 Changes to the Supplier package may affect the Client

package

 The Client package cannot be reused independently

because it depends on the Supplier package

Client Package Supplier

Package

(26)

Hierarchy 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

(27)

Architectural Analysis Steps

Key Concepts

Define the High-Level Organization of the

model

Identify Analysis mechanismsIdentify Key Abstractions

(28)

Patterns and Frameworks

Pattern

 Provides a common solution to a common problem in

a context

Analysis/Design pattern

 Provides a solution to a narrowly-scoped technical

problem

 Provides a fragment of a solution, or a piece of the

puzzle

Framework

 Defines the general approach to solving the problem  Provides a skeletal solution, whose

details may be Analysis/Design patterns

(29)

What 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

pattern

Design patterns provide the capability to reuse

successful designs

Structural Aspect Behavioral Aspect

Parameterized Collaboration

Pattern Name

(30)

What 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 System of Patterns

 Layers

 Model-view-controller (M-V-C)  Pipes and filters

 Blackboard

(31)

Typical Layering Approach

General functionality

Specific

functionality Distinct application subsystems that make up

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

(32)

Example: Layers 32 Application Presentation Session Transport Network Data Link Physical Layer 7 Layer 6 Layer 5 Layer 4 Layer 3 Layer 2 Layer 1

Provides miscellaneous protocols for common activities Structure information and attaches semantics

Provides dialog control and synchronization facilities Breaks messages into packets and guarantees delivery Selects a route from send to receiver

Detects and corrects errors in bit sequences

(33)

Layering Considerations

Level of abstraction

 Group elements at the same level of abstraction

Separation of concerns

 Group like things together  Separate disparate things

 Application vs domain model elements

Resiliency

 Loose coupling

 Concentrate on encapsulating change

 User interface, business rules, and retained data tend to have

(34)

Modeling Architectural Layers

Architectural layers can be modeled using

stereotyped packages.

<<layer>> stereotype

34

Package Name

(35)

What 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

(36)

High-Level Organization of the Model

36

Application

<<layer>>

Business Services

(37)

Architectural Analysis Steps

Key Concepts

Define the High-Level Organization of the

model

Identify Analysis mechanisms

Identify Key Abstractions

(38)

What Are Architectural Mechanisms?

38

Required Functionality

Implementation Environment

Architect Supplementary

Specification

Use-Case Model

Mechanisms COTS ProductsDatabases

IPC Technology, etc.

“realized by client classes using”

“responsible for”

(39)

Architectural Mechanisms: Three Categories

Architectural Mechanism Categories

 Analysis mechanisms (conceptual)  Design mechanisms (concrete)

(40)

Why Use Analysis Mechanisms?

40

Oh no! I found a group of classes that has persistent data How am I

supposed to design these things if I don’t even know what database we are going to be using?

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

(41)

Sample Analysis Mechanisms

Persistency

Communication (IPC and RPC)Message routing

Distribution

Transaction management

Process control and synchronization (resource

contention)

Information exchange, format conversionSecurity

Error detection / handling / reportingRedundancy

(42)

Examples of Analysis Mechanism Characteristics

Persistency mechanism

 Granularity  Volume

 Duration

 Access mechanism

 Access frequency (creation/deletion, update, read)  Reliability

Inter-process Communication mechanism

 Latency

 Synchronicity  Message size  Protocol

(43)

Example: Analysis Mechanism Characteristics

Legacy interface mechanism

 Latency  Duration

 Access mechanism  Access frequency

Security mechanism

 Data granularity  User granularity  Security rules  Privilege types

(44)

Describing Analysis Mechanisms

Collect all analysis

mechanisms in a list

Draw a map of classes to

analysis mechanisms

Identify characteristics

of analysis mechanisms

Model using

(45)

Example: Course Registration Analysis Mechanisms

Security Legacy Interface

(46)

Architectural Analysis Steps

Key Concepts

Define the High-Level Organization of the

model

Identify Analysis mechanisms

Identify Key Abstractions

Create Use-Case RealizationsCheckpoints

(47)

What 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

 Domain knowledge  Requirements

 Glossary

(48)

Defining Key Abstractions

Define analysis classes

Model analysis classes and relationships on

class diagrams

 Include a brief description of

an analysis class

Map analysis classes to

necessary analysis mechanisms

(49)

Example: Key Abstractions Student Professor

Schedule

(50)

Architectural Analysis Steps

Key Concepts

Define the High-Level Organization of the

model

Identify Analysis mechanismsIdentify Key Abstractions

Create Use-Case Realizations

Checkpoints

(51)

What Is a Use-Case Realization?

Use-Case Model Design Model

Use Case Use-Case Realization

Class Diagrams Use Case

Communication Diagrams Sequence

(52)

The Value of Use-Case Realizations

Provides traceability from Analysis and Design

back to Requirements

The Architect creates the Use-Case

Realization

52

Use Case

Analysis & Design (Design Model) Requirements

(Use-Case Model)

(53)

Architectural Analysis Steps

Key Concepts

Define the High-Level Organization of the

model

Identify Analysis mechanismsIdentify Key Abstractions

Create Use-Case Realizations

(54)

Checkpoints

General

 Is the package partitioning and layering

done in a logically consistent way?

 Have the necessary analysis mechanisms

been identified?

Packages

 Have we provided a comprehensive

picture of the services of the packages in upper-level layers?

(55)

Checkpoints (continued)

Classes

 Have the key entity classes and their

relationships been identified and accurately modeled?

 Does the name of each class clearly

reflect the role it plays?

 Are the key abstractions/classes and

their relationships consistent with the Business Model, Domain Model,

(56)

Review: Architectural Analysis

What is the purpose of Architectural Analysis?

What is a package?

What is a layered architecture? Give examples of

typical layers.

What are analysis mechanisms? Give examples.

What key abstractions are identified during

Architectural Analysis? Why are they identified here?

(57)

Exercise: Architectural Analysis

Given the following:

 Some results from the Requirements

discipline: (Exercise Workbook: Payroll Requirements)

 Problem statement

 Use-Case Model main diagram

 Glossary

 Some architectural decisions: (Exercise

Workbook: Payroll Architecture

Handbook, Logical View, Architectural Analysis)

 (textually) The upper-level architectural

(58)

Exercise: Architectural Analysis (continued)

Identify the following:

 The key abstractions

(59)

Exercise: Architectural Analysis (continued)

Produce the following:

 Class diagram containing the key abstractions  Class diagram containing the upper-level

(60)

Exercise: Review

Compare your key abstractions

with the rest of the class

 Have the key concepts been

identified?

 Does the name of each class reflect

the role it plays?

Compare your class diagram

showing the upper-level layers

 Do the package relationships support

the Payroll System architecture?

Ngày đăng: 27/04/2021, 19:00

Tài liệu cùng người dùng

Tài liệu liên quan