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

08 design elements 97

15 121 0

Đ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 15
Dung lượng 413,52 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

8 - 4 Design Elements Nội dung trình bày Mô hình thiết kế và lớp thiết kế Hệ thống con Subsystem Tính sử dụng lại Reusability Mô hình phân tầng trong quá trình thiết kế Mô hình thiết

Trang 1

Mô hình hóa thiết kế

Giảng viên: Mai Thúy Nga

Unified Modeling Language

Nội dung môn học

Giới thiệu về PTTK

hướng đối tượng với

UML

Khái niệm về Hướng đối tượng trong UML

Đặc tả Yêu cầu với

mô hình Use Case I

Đặc tả Yêu cầu với

mô hình Use Case II

Tổng quan về Phân tích và Thiết kế

Phân tích Use

Case II

Ôn tập

Mô hình hóa Thiết kế

Phân tích Use Case I

1

5 4

2

6 3

Trang 2

8 - 4 Design Elements

Nội dung trình bày

 Mô hình thiết kế và lớp thiết kế

 Hệ thống con (Subsystem)

 Tính sử dụng lại (Reusability)

 Mô hình phân tầng trong quá trình thiết kế

Mô hình thiết kế

Mô hình thiết kế

Đặc tả yêu cầu

Tìm kiếm các thành phần của

mô hình thiết kế

Kiến trúc dự án

Mô hình phân tích

Hướng dẫn dự án

Trang 3

8 - 6 Design Elements

Chuyển ñổi lớp phân tích thành các thành phần thiết kế

<<boundary>>

<<control>>

<<entity>>

<<boundary>>

Ánh xạ Nhiều – Nhiều

Tìm kiếm các lớp thiết kế

 Một lớp phân tích ánh xạ trực tiếp thành một lớp thiết

kế nếu

 Các lớp phân tích phức tạp có thể:

hoặc tập hợp (generalization, aggregation)

Trang 4

8 - 8 Design Elements

Nhóm các lớp thiết kế (package) (1)

 Thay ñổi một lớp làm ảnh hưởng tới các lớp còn lại

 ðối tượng của lớp này tương tác tới các ñối tượng của lớp khác

 Chúng tương tác với cùng một tác nhân

 Chúng có quan hệ chặt chẽ với nhau

 Lớp này tạo ra lớp kia

năng sử dụng lại và bảo dưỡng hệ thống

Nhóm các lớp thiết kế (package) (2)

 Các gói không nên quan

hệ chéo lẫn nhau

 Nhóm ở tầng dưới không

nên phụ thuộc vào tầng

trên

 Tránh sự phụ thuộc bỏ

qua các tầng ở giữa

A

B

X

Tầng trên

Tầng dưới

C

X

X = Vi phạm nguyên tắc quan hệ

X

Trang 5

8 - 10 Design Elements

đóng gói trong hệ thống đăng ký học

RegisterForCoursesForm

<<boundary>>

RegistrationController

<<control>>

CloseRegistrationForm

<<boundary>>

CloseRegistrationController

<<control>>

Registration Package

Quản lý Đóng đăng ký học

Quản lý Đăng

ký học

External System Interfaces Package

IBillingSystem

<<interface>>

ICourseCatalogSystem

<<Interface>>

Gói giao tiếp với

hệ thống ngoại vi (HT Thanh Toán,

HT QL khóa học)

Student

<<entity>>

Professor

<<entity>>

Schedule

<<entity>>

CourseOffering

<<entity>>

Course

<<entity>>

University Artifacts Package

Gói thực thể

của HT QL

Học tập

Nội dung trình bày

 Mô hình thiết kế và lớp thiết kế

 Hệ thống con (Subsystem)

 Tắnh sử dụng lại (Reuse)

 Mô hình phân tầng trong quá trình thiết kế

Trang 6

8 - 12 Design Elements

Hệ thống con (Subsystems)

 đóng gói hoàn chỉnh một hành vi nào ựó

 Thể hiện khả năng ựộc lập sử dụng các giao diện một

cách rõ ràng

 Có thể có nhiều hình thức cài ựặt

InterfaceK MethodX() MethodW()

<<Interface>>

SubsystemA

<<subsystem>>

ClassA1 MethodW()

ClassA2 MethodX()

SubsystemB

<<subsystem>>

ClassB1 MethodW() MethodY()

ClassB2 MethodX()

ClassB3 MethodZ()

Subsystems là hình thức trừu tượng hóa

Sử dụng hệ thống con

 Phân chia hệ thống thành nhiều phần hoạt ựộng

tương ựối ựộc lập

 Hệ thống con trong mô hình thiết kế sẽ trở thành

thành phần trong quá trình cài ựặt (components)

 Subsystems có thể ựược sử dụng ựể thể hiện một

sản phẩm có sẵn, hoặc một hệ thống ngoại vi trong

quá trình thiết kế

Trang 7

8 - 14 Design Elements

Tìm kiếm hệ thống con

 Lớp phân tích có thể tạo thành hệ thống con nếu

 Thể hiện một sản phẩm có sẵn hoặc hệ thống ngoại

vi trong quá trình thiết kế:

hệ thống phân tán

 …

Subsystem A

<<subsystem>>

Subsystem B

<<subsystem>>

Subsystem C

<<subsystem>>

Thiết kế hệ thống con (Subsystems)

Method1() Method2()

<<Interface>>

Subsystem K

<<subsystem>>

ClassA

Method1() Method2()

“Superman Class”

Trang 8

8 - 16 Design Elements

Một giao diện rõ ràng, ổn định

là giải pháp tốt cho việc tạo ra một kiến trúc hiệu quả.

Giao diện cho hệ thống con (Subsystem Interface)

 Mỗi hệ thống con nên có một hoặc nhiều giao diện

 Mô hình hóa các giao diện

 đóng gói các giao diện

Vắ dụ: Giao diện của hệ thống con trong HT đăng ký học

Phân tắch

BillingSystem

//submit bill()

<<boundary>>

CourseCatalogSystem

//get course offerings()

<<boundary>>

Giao diện với

HT Thanh toán

Giao diện với HT

QL Khóa học

Lấy thông tin các Khóa học mở trong kỳ cho một Sinh viên

Thiết kế

Billing System

<<subsystem>>

IBillingSystem

submitBill(forTuition : Double, forStudent : Student)

Course Catalog System

<<subsystem>>

ICourseCatalogSystem

getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList initialize()

Chỉ ra chi tiết

Đóng học phắ cho một Sinh viên

Trang 9

8 - 18 Design Elements

CourseCatalogSystem

(Quản lý khóa học)

BillingSystem

(HT Thanh toán)

Các lớp phân tích khác ánh xạ

trực thành thành lớp thiết kế

Hệ thống con CourseCatalogSystem

Hệ thống con BillingSystem

Bảng ánh xạ Lớp phân tích – Thành phần thiết kế

Mô hình hóa hệ thống con và giao diện trong UML

Gói <<subsystem>>

CourseCatalogSystem

<<subsystem>>

ICourseCatalogSystem

Giao diện với HT

QL Khóa học

Giao diện thường

bắt đầu bởi “I”

Lớp thực thi hệ thống con

<<subsystem proxy>>

CourseCatalogSystem getCourseOfferings() initialize()

<<subsystem proxy>>

ICourseCatalogSystem

getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList

initialize()

Lấy thông tin các Khóa học mở trong kỳ cho một Sinh viên

(Phần khai báo hàm)

Lấy thông tin các Khóa học mở

Trang 10

8 - 20 Design Elements

Hệ thống con CourseCatalogSystem

Xác định rõ

giao diện

ICourseCatalogSystem

getCourseOfferings(forSemester : Semester) : CourseOfferingList initialize()

<<Interface>>

CloseRegistrationController

// is registration open?()

// close registration()

<<control>>

0 1

+courseCatalog

CourseCatalogSystem

getCourseOfferings(forSemester : Semester) : CourseOfferingList initialize()

<<subsystem proxy>>

RegistrationController

getCurrentSchedule() deleteCurrentSchedule() submitSchedule() saveSchedule() getCourseOfferings() setSession()

<<class>> new() getStudent()

<<control>>

CourseOfferingList

new() add()

Lớp thiết kế mới

Hệ thống con Billing System

BillingSystem submitBill(forStudent : Student, forTuition : double)

<<subsystem proxy>>

IBillingSystem submitBill(forTuition : Double, forStudent : Student)

<<Interface>>

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

<<control>>

1

0 1

Biller 1

Student

<<entity>>

Phụ thuộc

Thanh toán

(Thực thi)

Thanh toán

(Khai báo)

Trang 11

8 - 22 Design Elements

Nội dung trình bày

 Mô hình thiết kế và lớp thiết kế

 Hệ thống con (Subsystem)

 Tính sử dụng lại (Reuse)

 Mô hình phân tầng trong quá trình thiết kế

Tính sử dụng lại

 Mục ñích

thống con hoặc các thành phần sẵn có trong hệ thống

 Hướng dẫn

sẵn có (sử dụng lại)

thành phần có sẵn ñó ñể sử dụng lại

Trang 12

8 - 24 Design Elements

Các khả năng sử dụng lại

 Bên trong hệ thống

 Bên ngoài hệ thống

 Phát triển lại một thành phần có sẵn (sử dụng lại thiết kế)

Khả năng sử dụng lại bên trong hệ thống

2 Chuyển thành phần đó xuống tầng hệ thống

3 Sửa lại gói ban đầu và gói mới để sử dụng lại thành phần vừa chuyển tới tầng hệ thống

?

1 Cần sử dụng lại

thành phần sẵn có?

Tầng

ứng dụng

Tầng

hệ thống

Trang 13

8 - 26 Design Elements

Nội dung trình bày

 Mô hình thiết kế và lớp thiết kế

 Hệ thống con (Subsystem)

 Tính sử dụng lại (Reuse)

 Mô hình phân tầng trong quá trình thiết kế

B

A Package A

Package B

Quan hệ giữa các lớp tạo nên sự phụ thuộc

1

8 7 6

5 4

3

2

14

13 12

11 10 9

18 19 15

Trang 14

8 - 28 Design Elements

Security

GUI Framework Secure Interfaces

Application

<<layer>>

Business Services

<<layer>>

<<layer>>

Tầng Ứng dụng

<<layer>>

Tầng Nghiệp vụ

Mô hình phân tầng với Hệ thống ðăng ký học (1)

University Artifacts

Registration

External System Interfaces

Gói “Bảo mật” có thể cần thiết cho hệ thống nếu cần

Mô hình phân tầng với Hệ thống ðăng ký học (2)

CourseCatalogSystem

<<subsystem>>

External System Interfaces

University Artifacts

ObjectStore

Support

<<layer>>

Tầng Nghiệp vụ

GUI Framework

Secure Interfaces

Security

<<subsystem>>

Security Manager

BillingSystem

<<subsystem>>

Gói “Bảo mật” có thể cần thiết cho hệ thống nếu cần

Các Hệ thống con nên tương tác với HT qua Lớp giao diện tương tác

Gói “Hỗ trợ làm việc với CSDL” cho

phép HT có thể lưu trữ DL một cách

mềm dẻo, không bị phụ thuộc

Trang 15

8 - 30 Design Elements

Middleware

<<layer>>

Business Services

<<layer>>

Mô hình phân tầng với Hệ thống ðăng ký học (3)

java.sql com.db

<<layer>>

Tầng Thư viện

BillingSystem

<<subsystem>>

CourseCatalogSystem

<<subsystem>>

External System Interfaces

University Artifacts

ObjectStore

Support

<<layer>>

Tầng Nghiệp vụ

GUI Framework

Secure Interfaces

Security

<<subsystem>>

Security Manager

Tầng thực thi làm việc với CSDL

Tổng kết

 Các mô hình thiết kế ñược xây dựng trực tiếp từ các

mô hình phân tích

 Là hình thức chi tiết hóa từ các lớp trừu tượng hóa trong

mô hình phân tích

 Lớp phân tích có mức ñộ phức tạp cao có thể ñược

phát triển thành hệ thống con (subsystem)

phần còn lại

viện có sẵn

Ngày đăng: 19/03/2018, 12:47

TỪ KHÓA LIÊN QUAN