1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Phân tích thiết kế hệ thống hướng đối tượng dùng UML - Module 8: Thiết kế kiến trúc pdf

68 1K 3

Đ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

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 552,18 KB

Nội dung

Architectural Design Topicsw Các khái niệm then chốt w Các cơ chế thiết kế và cài đặt w Các Design Class và Subsystem w Các khả năng tái sử dụng w Tổ chức mô hình thiết kế w Checkpoints.

Trang 1

Phân tích và Thiết kế Hướng đối tượng

dùng UML

Module 8: Thiết kế kiến trúc

Trang 2

Mục tiêu:

kiến trúc và thời điểm thực hiện công đoạn này

và cách gán chúng từ các cơ chế phân tích

trò của chúng trong kiến trúc hệ thống

subsystems

các quyết định về kiến trúc

Trang 3

Designer

Architectural Analysis

Architecture Reviewer

Review the Design

Review the Architecture

Use-Case Analysis

Architectural Design Concurrency Describe Distribution Describe

Class Design

Subsystem Design

Use-Case Design Reviewer Design

Vò trí cuûa Phaân tích kieán truùc

Trang 4

Specifications

Architectural Design

Software Architecture

Document

Design Guidelines

Glossary

Design Guidelines

Analysis Classes

Toång quan veà phaân tích kieán truùc

Trang 5

Architectural Design Topics

w Các khái niệm then chốt

w Các cơ chế thiết kế và cài đặt

w Các Design Class và Subsystem

w Các khả năng tái sử dụng

w Tổ chức mô hình thiết kế

w Checkpoints

Trang 6

Architectural Design Topics

w Các khái niệm then chốt

w Các cơ chế thiết kế và cài đặt

w Các Design Class và Subsystem

w Các khả năng tái sử dụng

w Tổ chức mô hình thiết kế

w Checkpoints

Trang 7

Process View Deployment View

System engineering

Analysts/Designers

Structure

Mô hình kiến trúc “4+1 View”

Logical View là phần có ý nghĩa về mặt kiến trúc của Design Model

Trang 8

Class Name

Nhắc lại: Class và Package

w Thế nào là class?

các trách nhiệm, mối quan hệ, các tác vụ, thuộc tính, và ngữ nghĩa.

w Thế nào là package?

thành các nhóm

các phần tử khác

Trang 9

Foundation Classes

global

Các Global Package

w Toàn bộ package được sử dụng bởi tất cả các package khác

w Những package này được đánh dấu là global

Trang 10

Architectural Design Topics

w Các khái niệm then chốt

w Các cơ chế thiết kế và cài đặt

w Các Design Class và Subsystem

w Các khả năng tái sử dụng

w Tổ chức mô hình thiết kế

w Checkpoints

Trang 11

Các cơ chế thiết kế và cài đặt

Remote Method Invocation (RMI)

Persistency

Analysis Mechanism (Conceptual)

Design Mechanism (Concrete)

Implementation Mechanism (Actual)

Trang 12

w Các cơ chế kiến trúc có thể xem như các khuôn mẫu (pattern)

Documenting Architectural Mechanisms

Pattern Name

Template Parameters

Trang 13

Ví dụ: Persistency: RDBMS: JDBC

ResultSet

(from java.sql)

Connection(from java.sql)

Statement(from java.sql)

DriverManager getConnection(url, user, pass) : Connection

(from java.sql)

DBClass

create() : PersistentClass read(searchCriteria : string) : PersistentClassList update(c : PersistentClass)

delete(c : PersistentClass)

<<role>>

1 1

(from SamplePersistentClass)

<<role>>

PersistentClassList

new() add(c: PersistentClass)

Roles sẽ được điền bởi designer

áp dụng cơ chế

Trang 14

Ví dụ: Persistency: RDBMS: JDBC: Khởi tạo

DriverManager

1 getConnection(url, user, pass)

Trang 15

Ví duï: Persistency: RDBMS: JDBC: Create

: Connection : Statement

: PersistencyClient : DBClass PersistentClass :

1 create( )

1.1 New()

1.3 createStatement( )

1.4 executeUpdate(String) 1.2 getData( )

Trang 16

Ví duï: Persistency: RDBMS: JDBC: Read

: Connection : Statement : ResultSet

returns a Statement

1.3 new( ) Create a list to hold all retrieved data

1.7 add(PersistentClass)

Add the retrieved course offering

Repeat these operations for

each element returned from

the executeQuery()

command.

The PersistentClassList is

loaded with the data retrieved

from the database.

The SQL statement built by the DBClass using the given criteria is passed to executeQuery()

The criteria used to

access data for the

persistent class

Trang 17

Ví duï: Persistency: RDBMS: JDBC: Update

: DBClass

: PersistencyClient PersistentClass : : Connection : Statement

1 update(PersistentClass)

1.2 createStatement( ) 1.1 getData( )

1.3 executeUpdate(string)

execute SQL statement

Trang 18

Ví duï: Persistency: RDBMS: JDBC: Delete

: PersistencyClient : DBClass : Connection : Statement

1 delete(PersistentClass)

1.1 createStatement( )

1.2 executeUpdate(string)

execute SQL statement

Trang 19

Tổng hợp JDBC: Các bước

thiết để cài đặt JDBC

Delete

Trang 20

Ví dụ: Tổng hợp JDBC

Trang 21

Architectural Design Topics

w Các khái niệm then chốt

w Các cơ chế thiết kế và cài đặt

w Các Design Class và Subsystem

w Các khả năng tái sử dụng

w Tổ chức mô hình thiết kế

w Checkpoints

Trang 22

Analysis Classes Design Elements

Từ Analysis Classes đến Design Elements

<<boundary>>

<<control>>

<<entity>>

<<boundary>>

Trang 23

Xác định các Design Class

w Analysis class ánh xạ thẳng thành design class nếu:

w Các analysis class phức tạp hơn có thể:

w Các analysis class đơn giản có thể trở thành

một design class

Trang 24

sở hữu nó

Các phụ thuộc Package: Tính khả kiến của các ptử

Trang 25

w Một dạng trung gian giữa package (có thể chứa các phần tử khác) và class (có hành vi)

w Hiện thực hoá 1 hoặc nhiều interface định

nghĩa hành vi của nó

Trang 26

Class A2 X()

Subsystem và Interface (tt.)

w Các Subsystem:

interface rõ ràng (có tiềm năng tái sử dụng)

Trang 27

So sánh Package với Subsystem

w Subsystem cung cấp hành vi, package không

w Subsystem hoàn toàn đóng gói nội dung của nó, package thì không

w Subsystem dễ dàng được thay thế

Trang 28

Cách dùng Subsystem

về:

cao đối với các tài nguyên then chốt

bản thiết kế (chẳng hạn như các component)

Trang 29

Các gợi ý giúp xác định các Subsystem

w Tìm kiếm sự cộng tác giữa các object

w Tìm kiếm sự tuỳ chọn

w Chú ý user interface của system

w Chú ý các Actor

w Tìm kiếm sự kết dính giữa các class

w Xem xét sự thay thế (các mức độ service)

w Xem xét sự phân bố

w Xem xét sự kém bền vững

Trang 30

w Các Analysis classe có thể tiến hoá thành các subsystem

§ Các Class cung cấp các dịch vụ và/hoặc các tiện ích trọn vẹn

§ Các Boundary class (user interface và external system interface)

w Các sản phẩm sẵn có hoặc các system nằm ngoài thiết kế

§ Communication software

§ Database access support

§ Các kiểu và cấu trúc dữ liệu

§ Các tiện ích dùng chung

§ Các sản phẩm ứng dụng đặc thù

Các Subsystem tiềm năng

Trang 31

<<Interface>>

Y() Z()

<<subsystem>> SubsystemK

ClassA

Y() Z()

“Superman Class”

Identifying Subsystems

?

Trang 32

Identifying Interfaces

nhiệmvụ của chúng

cả các subsystem

Trang 33

Interface Guidelines

w Đặt tên cho Interface

w Mô tả Interface

w Định nghĩa Operation

và kết quả

w Interface documentation

diagrams, kế hoạch kiểm chứng, …

Trang 34

BillingSystem // submit bill()

Ví dụ: Các Design Subsystem

getCourseOfferings(forSemester : Semester) : CourseOfferingList

submitBill(forTuition : Double, forStudent : Student)

Trang 35

Analysis Class Design Element

CourseCatalogSystem

BillingSystem

All other analysis classes map

directly to design classes

CourseCatalogSystem Subsystem BillingSystem Subsystem

Via duï: Analysis-Class-To-Design-Element Map

Trang 36

<<subsystem proxy>> class

Qui ước mô hình hoá: Subsystem và Interface

Trang 37

// is registration open?() // save schedule() // create schedule with offerings() // update schedule with new selections()

<<control>>

CloseRegistrationController

// is registration open?() // close registration()

Trang 38

<<subsystem proxy>>

IBillingSystem submitBill(forTuition : Double, forStudent : Student)

<<Interface>>

Student

<<entity>>

0 1 1 +Biller

CloseRegistrationController

// is registration open?() // close registration()

<<control>>

Ví duï: Subsystem Context: Billing System

Trang 39

Bài tập: Architectural Design, phần 1

w Cho biết các vấn đề sau:

Trang 40

Bài tập: Architectural Design, phần 1 (tt.)

w Hãy xác định:

chúng với các phần tử thiết kế khác

kế

Trang 41

Bài tập: Architectural Design, Part 1 (tt.)

w Hãy xây dựng các lược đồ sau:

class diagram

các phần tử thiết kế (design element)

Trang 42

Architectural Design Topics

w Các khái niệm then chốt

w Các cơ chế thiết kế và cài đặt

w Các Design Class và Subsystem

w Các khả năng tái sử dụng

w Tổ chức mô hình thiết kế

w Checkpoints

Trang 43

Xác định các khả năng dùng lại

w Mục đích

hay các component đã xây dựng dựa trên interface của chúng.

w Các bước

có sẵn

có sẵn

Trang 44

Những cơ hội dùng lại

w Bên trong hệ thống đang xây dựng:

subsystem

w Bên ngoài hệ thống đang xây dựng:

đó

Trang 45

Cơ hội dùng lại ngay bên trong hệ thống

Trang 46

Architectural Design Topics

w Các khái niệm then chốt

w Các cơ chế thiết kế và cài đặt

w Các Design Class và Subsystem

w Các khả năng tái sử dụng

w Tổ chức mô hình thiết kế

w Checkpoints

Trang 47

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

General

functionality

Specific

functionality

Trang 48

Layering Guidelines

§ Chỉ có các phụ thuộc giữa layer hiện tại và layer kế

thay đổi

§ Các phần tử có chức năng tổng quát ở các layer thấp

Trang 50

Middleware <<layer>>

Application <<layer>>

Business Services

<<layer>>

Ví duï: Architectural Layers

Trang 51

Các tiêu chuẩn phân chia

w Sự chồng lắp và kết dính

w Tổ chức của đơn vị sử dụng

w Năng lực và kỹ năng

w Sự phân bố của hệ thống

w Tính bảo mật

w Khả năng biến đổi

Hãy thử loại bỏ các phụ thuộc xoay vòng

Trang 52

Package B

Ví duï: Partitioning

Trang 53

Ví duï: Registration Package

Trang 54

FulltimeStudent <<entity>> ParttimeStudent <<entity>>

0 *

0 2 alternateCourses

Vó dụ: University Artifacts Package

Trang 55

IBillingSystem <<Interface>> ICourseCatalogSystem <<Interface>>

Ví duï: External System Interfaces Package

Trang 56

<<layer>> Application

Ví duï: Application Layer

Trang 57

Application <<layer>>

Business Services

<<layer>>

Security Registration

GUI Framework

External System Interfaces

Trang 58

<<subsystem>>

CourseCatalogSystem <<subsystem>>

External System Interfaces

University Artifacts

ObjectStore Support

<<layer>>

Business Services

GUI Framework

Secure Interfaces

Security

<<subsystem>> Security Manager

Ví duï: Business Services Layer

Trang 59

Middleware <<layer>>

Business Services

<<layer>>

java.sql com.odi

University Artifacts

Secure Interfaces

Security

<<subsystem>>

Security Manager

Ví duï: Business Services Layer Context

Trang 61

Architectural Design Topics

w Các khái niệm then chốt

w Các cơ chế thiết kế và cài đặt

w Các Design Class và Subsystem

w Các khả năng tái sử dụng

w Tổ chức mô hình thiết kế

w Checkpoints

Trang 62

những dịch vụ của các package khác nhau không?

cơ chế không?

hơn trong lãnh vực của ứng dụng không ?

phù hợp với toàn bộ mô hình không?

Trang 64

§ Tên của role trong các aggregation và

association có diễn tả chính xác mối quan hệ?

Trang 65

Nhắc lại: Architectural Design

w Mục tiêu của Architectural Design là gì?

w Thiết kế và cài đặt là gì?

w Mechanisms? Cho ví dụ.

w Interface là gì?

w Subsystem là gì? Khác package chỗ nào?

w Subsystem dùng để làm gì và làm sao để xác định được nó?

w Phân lớp và chia nhóm như thế nào?

Trang 66

Bài tập: Architectural Design, Part 2

w Làm các việc sau:

class, subsystem, interface) và quan hệ của chúng

Trang 67

Bài tập: Architectural Design, Part 2 (tt.)

w Hãy xác định

design class) trong kiến trúc (nghĩa là, xác định các package/layer chứa các design element)

Trang 68

Bài tập: Architectural Design, Part 2 (tt.)

w Hãy xây dựng:

“sở hữu” chúng

Ngày đăng: 18/02/2014, 03:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w