Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 131 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
131
Dung lượng
653,98 KB
Nội dung
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
1
Phân tích và Thiết kế Hướng đối tượng
dùng UML
Module 13: Thiết kế Class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
2
Mục tiêu
w Tìm hiểu mục đích của bước thiết kế Class và
vò trí của công đoạn này trong qui trình
w Xác đònh bổ sung các class và quan hệ của
chúng cần để hỗ trợ cho việc cài đặt các cơ
chế kiến trúc đã chọn
w Xác đònh và phân tích việc chuyển đổi trạng
thái các đối tường trong các class kiểm soát
được trạng thái
w Tinh chỉnh các quan hệ, operation, và thuộc
tính
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
3
Vò trí của Thiết kế Class
Architect
Designer
Architectural
Analysis
Architecture
Reviewer
Review the
Design
Review the
Architecture
Use-Case
Analysis
Architectural
Design
Describe
Concurrency
Describe
Distribution
Class
Design
Subsystem Design
Use-Case
Design
Design
Reviewer
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
4
Tổng quan về Class
Supplementary
Specifications
Class
Design
Architecture Document
Design Model
Design
Guidelines
Use-Case Realization
Design Classes
Design Classes
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
5
Các bước thiết kế Class
w Tạo các Design Class ban đầu
w Xác đònh các Persistent Class
w Đònh nghóa các Operation
w Đònh nghóa Class Visibility
w Đònh nghóa các Method
w Đònh nghóa các trạng thái
w Đònh nghóa các thuộc tính
w Đònh nghóa các phụ thuộc
w Đònh nghóa các mỗi kết hợp
w Đònh nghóa các quan hệ tổng quát hóa
w Giải quyết đụng độ giữa các Use-Case
w Xử lý các yêu cầu phi chức năng nói chung
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
6
Các bước thiết kế Class
w Tạo các Design Class ban đầu
w Xác đònh các Persistent Class
w Đònh nghóa các Operation
w Đònh nghóa Class Visibility
w Đònh nghóa các Method
w Đònh nghóa các trạng thái
w Đònh nghóa các thuộc tính
w Đònh nghóa các phụ thuộc
w Đònh nghóa các mỗi kết hợp
w Đònh nghóa các quan hệ tổng quát hóa
w Giải quyết đụng độ giữa các Use-Case
w Xử lý các yêu cầu phi chức năng nói chung
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
7
Các khảo sát khi thiết kế Class
w Class stereotype
§ Boundary
§ Entity
§ Control
w Các design pattern khả dụng
w Các cơ chế kiến trúc
§ Persistence
§ Distribution
§ …
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
8
Một class phải có một mục tiêu rõ ràng.
Một class phải làm một việc gì đó và phải làm tốt điều này !
Cần bao nhiêu Class ?
w Nếu nhiều class đơn giản. Nghóa là mỗi class:
§ Đóng gói một phần ít hơn trên toàn bộ hệ thống
§ Nhiều khả năng dùng lại hơn
§ Dễ cài đặt hơn
w Nếu nhiều class phức tạp. Nghóa là mỗi class:
§ Đóng gói một phần nhiều hơn trên toàn bộ hệ thống
§ Ít khả năng dùng lại hơn
§ Khó cài đặt hơn
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
9
MainForm
SubWindow
DropDownListButton
MainWindow
Thiết kế các Boundary Class
w Các User interface (UI) boundary class
§ Công cụ xây dựng giao diện người dùng nào sẽ
được sử dụng?
§ Bao nhiêu giao diện có thể được xây dựng bởi
công cụ?
w Các External system interface boundary class
§ Thường được mô hình như subsystem
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
10
Analysis
Design
FatClass
- transientBookeeping
+ getCommonlyUsedAtt1()
+ getCommonlyUsedAtt2()
+ getRarelyUsedAtt3()
+ getRarelyUsedAtt4()
FatClassDataHelper
+ commonlyUsedAtt1
+ commonlyUsedAtt2
FatClassLazyDataHelper
+ rarelyUsedAtt3
+ rarelyUsedAtt4
1
1
FatClass
- transientBookeeping
+ commonlyUsedAtt1
+ commonlyUsedAtt2
+ rarelyUsedAtt3
+ rarelyUsedAtt4
<< entity >>
Thiết kế các Entity Class
w Các Entity object thường thụ động và persistent
w Các yêu cầu về hiệu năng có thể buộc ta phải tái xây
dựng
w Xem thêm bước xác đònh Persistent Class
. một phần ít hơn trên toàn bộ hệ thống
§ Nhiều khả năng dùng lại hơn
§ Dễ cài đặt hơn
w Nếu nhiều class phức tạp. Nghóa là mỗi class:
§ Đóng gói một phần. (UI) boundary class
§ Công cụ xây dựng giao diện người dùng nào sẽ
được sử dụng?
§ Bao nhiêu giao diện có thể được xây dựng bởi
công cụ?
w Các External