36
Phân tích Kiến trúc Khoa CNTT - ĐHKHTN 1 Công cvà môi trường phát trin phn mm Phân tích Kiến trúc

Ccmtptpm 06 phantichkientruc

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 1

Công cụ và môi trường phát triển phần mềm

Phân tích Kiến trúc

Page 2: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 2

Mục tiêu

w Tìm hiểu mục đích của Phân tích Kiến trúc và nơi thực hiện công việc này trong chu kỳ sống của hệ thốngw Mô tả một mẫu biểu diễn kiến trúc và một tập hợp các

cơ chế phân tích cùng với ảnh hưởng của chúng đến kiến trúcw Tìm hiểu nguồn gốc căn bản và các khảo sát hợp lý

nhằm hỗ trợ cho các quyết định liên quan đến kiến trúc (hệ thống)w Tìm hiểu cách đọc và diễn dịch các kết quả của Phân

tích Kiến trúc§ Các tầng kiến trúc và quan hệ giữa chúng§ Các trừu tượng hóa chính§ Các cơ chế phân tích

Page 3: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 3

Architect

Designer

Phân tích kiến trúc

ArchitectureReviewer

Phản biệnthiết kế

Phản biệnkiến trúc

Use-CaseAnalysis

Thiết kếkiến trúc

Mô tả cácTương tranh

Mô tả cácPhân bố

ClassDesign

Subsystem Design

Use-CaseDesign

DesignReviewer

Phân tích kiến trúc trong ngữ cảnh

Page 4: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 4

Tổng quan về phân tích kiến trúc

SupplementarySpecification

Glossary

Use-Case Model

Phân tíchKiến trúc

Use-Case Realization(identified)

Design Model

DesignGuidelines

Software ArchitectureDocument

Business Model

Page 5: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 5

Các chủ đề

w Các khái niệm then chốtw Các qui ước trong mô hình hóaw Các cơ chế phân tíchw Các trừu tượng hóa chínhw Các tầng kiến trúc ban đầuw Checkpoints

Page 6: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 6

Kiến trúc là gì: Mô hình “4+1 View”

Process View Deployment View

Logical View

Use-Case View

Implementation View

End-user Functionality

ProgrammersSoftware management

PerformanceScalabilityThroughput

System integratorsSystem topology

Delivery, installationcommunication

System engineering

Analysts/DesignersStructure

Page 7: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 7

w Package là một cơ chế để tổ chức các phần tửthành nhómw Là một phần tử của mô hình có thể chứa các

phần tử khác

w Dùng để§ Tổ chức một mô hình đang trong q/t phát triển§ Làm một đơn vị trong quản trị cấu hình

Package Name

Nhắc lạI: Package là gì?

Page 8: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 8

w Các Package có thể liên hệ với nhau thông qua mối quan hệdependency

w Dependency hàm nghĩa• Các thay đổi ở Supplier package có thể ảnh hưởng đến

Client package• Client package không thể được dùng lại một cách độc

lập vì nó phụ thuộc vào Supplier package

Các mối quan hệ giữa các Packages: Dependency

ClientPackage SupplierPackage

Dependency relationship

Page 9: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 9

A

B

C

A

B

Hierarchy không được chứa chu trình

A

B

C

A'

Các phụ thuộc xoay vòng làm cho không thể dùng lại một package khi không có các package khác

Loại bỏ các phụ thuộc xoay vòng

Page 10: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 10

Các chủ đề

w Các khái niệm then chốtw Các qui ước trong mô hình hóaw Các cơ chế phân tíchw Các trừu tượng hóa chínhw Các tầng kiến trúc ban đầuw Checkpoints

Page 11: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 11

Các qui ước trong mô hình hóa

w Chúng là những gì?§ Dùng những diagram và phần tử mô hình nào§ Các luật để sử dụng các phần tử mô hình và diagram§ Qui ước về đặt tên

w Các ví dụ§ Các modeling construct không được dùng§ Các diagram phải hiện diện§ Phải dùng các diagram để mô hình hóa các architectural

view§ Cách trình bày mô hình (Model layout)

Page 12: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 12

Ví dụ:

w Use-Case View§ Dùng các câu ngắn ở thể chủ động để đặt tên cho các Use

Case, ví dụ “Submit Grades”, “Vào điểm”w Logical View§ Một Use-Case Realization package chứa:

• Ít nhất một realization cho mỗi use case• Một “View Of Participating Classes” diagram thể hiện tất

cả các class trong realization và các quan hệ cần thiết của chúng

§ Dùng các danh từ để đặt tên cho các Class. Tên càng phùhợp với ý nghĩa ứng dụng càng tốt

Page 13: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 13

Các chủ đề

w Các khái niệm then chốtw Các qui ước trong mô hình hóaw Các cơ chế phân tíchw Các trừu tượng hóa chínhw Các tầng kiến trúc ban đầuw Checkpoints

Page 14: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 14

Architect

SupplementarySpecification

Use-Case Model

Mechanisms COTS ProductsDatabasesIPC Technologyetc.

“realized by client classes using”

“responsible for”

“constrained by”

Required Functionality

Implementation Environment

Các cơ chế kiến trúc là gì?

Page 15: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 15

Ba loạI cơ chế kiến trúc

w Các loại cơ chế kiến trúc§ Các cơ chế phân tích (conceptual)§ Các cơ chế thiết kế (concrete)§ Các cơ chế cài đặt (actual)

Page 16: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 16

Các cơ chế phân tích mẫu

w Persistencyw Communication (IPC and RPC)w Message routing w Distributionw Transaction management w Process control and synchronization (resource contention)w Information exchange, format conversionw Security w Error detection / handling / reportingw Redundancy w Legacy Interface

Page 17: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 17

Các đặc trưng của cơ chế phân tích

w Persistency§ Granularity§ Volume§ Duration§ Access mechanism§ Access frequency (creation/deletion, update, read)§ Reliability

w Communication§ Latency§ Synchronicity§ Message Size§ Protocol

Page 18: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 18

Các đặc trưng của cơ chế phân tích (tt)

w Legacy interface§ Latency§ Duration§ Access mechanism§ Access frequency

w Security§ Data granularity§ User granularity § Security rules§ Privilege types

w etc.

Page 19: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 19

Ví dụ: Các cơ chế phân tích trong ƯD “Đăng kí HP”

w Persistencew Distributionw Securityw Legacy Interface

Page 20: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 20

Các chủ đề

w Các khái niệm then chốtw Các qui ước trong mô hình hóaw Các cơ chế phân tíchw Các trừu tượng hóa chínhw Các tầng kiến trúc ban đầuw Checkpoints

Page 21: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 21

Xác định các trừu tượng hóa chính

w Định nghĩa sơ bộ các class (sources) từ:§ Tri thức về miền ứng dụng§ Các yêu cầu đặt ra cho hệ thống (Requirements)§ Bảng chú giải (Glossary)§ Domain Model, hoặc Mô hình nghiệp vụ (nếu có)

w Định nghĩa analysis class relationshipsw Mô hình hóa các analysis class và các quan hệ của chúng trên

Class Diagram§ Đính kèm mô tả ngắn gọn của analysis class

w Ánh xạ các analysis class với các analysis mechanism cần thiết

Page 22: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 22

CourseCourseCatalog

Professor

CourseOffering

Student

Schedule

Ví dụ:

Page 23: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 23

Các chủ đề

w Các khái niệm then chốtw Các qui ước trong mô hình hóaw Các cơ chế phân tíchw Các trừu tượng hóa chínhw Các tầng kiến trúc ban đầuw Checkpoints

Page 24: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 24

Patterns và Frameworks

w Pattern (Khuôn mẫu )§ Là một lời giải chung cho một bài toán trong ngữ cảnh hiện

hànhw Analysis/Design Pattern§ Lời giải cho một bài toán kỹ thuật hẹp§ Một đoạn của lời giải, một mảnh của puzzle

w Framework§ Định nghĩa hướng tiếp cận tổng quát để giải quyết bài toán§ Sườn của lời giải, chi tiết của nó có thể là các

analysis/design pattern

Page 25: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 25

Parameterizedcollaboration

Structural Aspect Behavioral Aspect

Pattern Name

TemplateParameters

Design Patterns

w Design pattern là lời giải chung của một design problem§ Mô tả design problem chung§ Mô tả lời giải của bài toán§ Thảo luận về các kết quả và cân nhắc việc sử dụng hiệu

quả patternw Design pattern cung cấp khả năng tái sử dụng thành công các

thiết kế

Page 26: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 26

Architectural Patterns

w Các tầng (Layers)w Model-view-controller (M-V-C)w Pipes và filtersw Blackboard

Page 27: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 27

Hướng tiếp cận phân lớp truyền thống

General functionality

Specific functionality

Lớp các application sybsystem khác nhau, từ đó cấu thành một ứng dụng, chứa các giá trị bổsung cho phần mềm đơn vị đang phát triển

Lớp nghiệp vụ chuyên nghiệp (Busines-specific) chứa một số các subsystem cụ thể ứng với loại của nghiệp vụ

Lớp Middleware đưa ra các subsystem chứa các class tiện ích và các dịch vụ độc lập platform hỗ trợ cho các ứng dụng chạy trên các môi trường không thuần nhất.

Lớp phần mềm hệ thống chứa phần mềm dành cho kiến trúc hạ tầng như các hệ điều hành, các giao tiếp với phần cứng, trình điều khiển thiết bị, …

Page 28: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 28

Làm thế nào để tìm thấy các Layer?

w Mức trừu tượng§ Nhóm các phần tử cùng chung mức độ trừu tượng

w Phân tách các thành phần liên quan§ Nhóm những gì giống nhau lại chung§ Phân biệt những gì khác biệt nhau§ Application vs. Domain model elements

w Sự co giãn (Resiliency)§ Sự kết hợp lỏng lẻo§ Chú trọng đến các thay đổi (encapsulating)§ User interface, business rules, và dữ liệu có khả năng thay đổi cao

Page 29: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 29

<<layer>>Package Name

Modeling Architectural Layers

w Architectural layers can be modeled using stereotyped packages

w <<layer>> stereotype

Page 30: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 30

Application<<layer>>

Business Services

<<layer>>

Ví dụ: Tổ chức cấp cao của Model

Page 31: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 31

Các chủ đề

w Các khái niệm then chốtw Các qui ước trong mô hình hóaw Các cơ chế phân tíchw Các trừu tượng hóa chínhw Các tầng kiến trúc ban đầuw Checkpoints

Page 32: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 32

Checkpoints

w Tổng thể§ Việc phân chia các package (partitioning và layering) có được thực hiện một cách chắc chắn và hợp lý không ?

§ Các analysis mechanisms cần thiết đã được xác định đầy đủ ?

w Packages§ Chúng ta đã cung cấp một hình ảnh toàn diện

(comprehensive) về các dịch vụ của packages trong cácupper-level layer chưa?

Page 33: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 33

Checkpoints (tt)

w Các Class§ Các key entity class và những mối quan hệ của chúng đã được xác định và mô hình một cách chính xác đúng đắn chưa?

§ Tên của mỗi class có thể hiễn rõ ràng vai trò của chúng không ?

§ Các key abstraction/class và những mối quan hệ của chúng có nhất quán với business model, domain model, requirements, glossary, ... không ?

Page 34: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 34

Review:

w Mục tiêu của Phân tích kiến trúc là gì?w Modeling Conventions là gì và tại sao phải cần đến chúng ?

Cho ví dụ.w Package là gì ?w Analysis Mechanisms là gì ? Cho ví dụ.w Những key abstractions nào được xác định trong Phân tích

kiến trúc? Tai sao chúng lại được xác định ở đây?w Kiến trúc phân lớp là gì ? Cho ví dụ về các layer truyền thống.

Page 35: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 35

(xem tiếp)

Bài tập

w Thực hiện các công việc sau:§ Cho một số kết quả của luồng công việc đặc tả y/c người

dùng:• Phát biểu bài toán• Use-Case Model main diagram• Glossary

§ Cho một số quyết định về kiến trúc hệ thống:• Các upper-level architectural layer và các mối phụ thuộc

của chúng (bằng văn bản)

Page 36: Ccmtptpm 06 phantichkientruc

Phân tích Kiến trúcKhoa CNTT - ĐHKHTN 36

Bài tập: (tt)

w Xác định:§ Các key abstraction

w Xây dựng:§ Class diagram chứa các key abstraction§ Class diagram chứa các upper-level architectural layer và

các mối phụ thuộc của chúng