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đốitượng – Thiếtkế kiến trúc
Dương Anh Đức
1
Phân tích và ThiếtkếHướngđối tượng
dùng UML
Module 13:Thiếtkế Class
PT & TK Hướngđốitượng – Thiếtkế 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ếtkế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ântích việc chuyển đổi trạng
thái các đốitườ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đốitượng – Thiếtkế kiến trúc
Dương Anh Đức
3
Vò trí của Thiếtkế 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đốitượng – Thiếtkế 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đốitượng – Thiếtkế kiến trúc
Dương Anh Đức
5
Các bước thiếtkế 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đốitượng – Thiếtkế kiến trúc
Dương Anh Đức
6
Các bước thiếtkế 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đốitượng – Thiếtkế kiến trúc
Dương Anh Đức
7
Các khảo sát khi thiếtkế 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đốitượng – Thiếtkế 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đốitượng – Thiếtkế 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đốitượng – Thiếtkế 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
[...]... các object thay vì “data bits” PT & TK Hướng đốitượng – Thiếtkế kiến trúc Dương Anh Đức 20 Phát hiện Additional Classes và Relationships ClassA Class2 op1(var1 :Class2 ): Class3 Class3 Additional classes và relationships có thể được thêm vào để hỗ trợ signature PT & TK Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức 21 Operation Visibility w Tính khả kiến được dùng để cung cấp tính đóng gói w Giá... instance cho mỗi class instance § Classifier: 1 instance cho tất cả class instance w Tầm vực mức Classifier được ký hiệu bằng cách gạch dưới tên attribute/operation Class- classifierScopeAttribute - instanceScopeAttribute classifierScopeOperation() instanceScopeOperation() PT & TK Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức 24 Ví dụ: Scope Student - name - address - studentID - nextAvailID... Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức 25 Utility Classes w Thế nào là một Utility Class? § Utility là một class stereotype § Dùng để chỉ các class chứa một bộ các chương trình con miễn phí w Tại sao lại dùng chúng? § Để cung cấp các dòch vụ có thể hữu dụng trong các ngữ cảnh khác nhau § Để gói các hàm thư viện hay các ứng dụng phi đốitượng MathFunctions PT & TK Hướngđối tượng. .. operations Protected operations Public operations PT & TK Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức 22 Ký hiệu tính khả kiến? w Các ký hiệu sau được dùng: § § § + Public access # Protected access - Private access Class- privateAttribute # protectedAttribute +publicOp() # protectedOp() - privateOp() PT & TK Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức 23 Tầm vực w Xác đònh số lượng thể... Tầm vực Operation • Class operation hay instance operation PT & TK Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức 16 Nhắc lại: Operation là gì ? Class Operation PT & TK Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức CourseOffering addStudent deleteStudent getStartTime getEndTime 17 Operation: Tìm chúng ở đâu? w Các thông điệp trong các interaction diagram :ClassA :ClassB :ClassA // Perform responsibility.. .Thiết kế Control Class w Chuyện gì xảy ra với các Control Class? § Chúng thật sự cần thiết? § Có phải tách chúng ra không? w Dựa vào đâu để quyết đònh? § § § § Độ phức tạp Khả năng thay đổi Tính phân tán và hiệu năng Transaction management PT & TK Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức 11 Các bước thiếtkếClass w w w w w w w w w w w w w Tạo các Design Class ban đầu Xác... Đònh nghóa các mỗi kết hợp Đònh nghóa các quan hệ tổng quát hóa Giải quyết đụng độ giữa các Use-Case Xử lý các yêu cầu phi chức năng nói chung Checkpoints PT & TK Hướng đốitượng – Thiếtkế kiến trúc Dương Anh Đức 32 Nhắc lại: Package Element Visibility PackageA Class A1 A B Class A2 Class A3 Chỉ có thể tham chiếu tới các public class từ bên ngoài package chứa nó PackageB +Class B1 -Class B2 Public visibility... strategy must be coordinated w Ở đây, nhớ rằng các class đều persistent Class Design Class Designer Database Designer PT & TK Hướng đốitượng – Thiếtkế kiến trúc Dương Anh Đức Database Design Data Model 14 Các bước thiếtkếClass w w w w w w w w w w w w w Tạo các Design Class ban đầu Xác đònh các Persistent Class Đònh nghóa các Operation Đònh nghóa Class Visibility Đònh nghóa các Method Đònh nghóa... dụng các mối quan hệ PT & TK Hướng đốitượng – Thiếtkế kiến trúc Dương Anh Đức 35 Các bước thiếtkếClass w w w w w w w w w w w w w Tạo các Design Class ban đầu Xác đònh các Persistent Class Đònh nghóa các Operation Đònh nghóa Class Visibility Đònh nghóa các Method Đònh nghóa các trạng thái Đònh nghóa các thuộc tính Đònh nghóa các phụ thuộc Đònh nghóa các mỗi kết hợp Đònh nghóa các quan hệ tổng quát hóa... một use case cụ thể (còn tiếp) PT & TK Hướng đốitượng – Thiếtkế kiến trúc Dương Anh Đức 29 Bài tập: Define Operations (tt.) w Với các design class, hãy xác đònh: § Các Operation và mô tả hoàn chỉnh của chúng § Operation scope và visibility § Mọi mối quan hệ và các class bổ sung để hỗ trợ cho các operation đã đònh nghóa (còn tiếp) PT & TK Hướngđốitượng – Thiếtkế kiến trúc Dương Anh Đức 30 Bài tập: . 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. Persistent Class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
11
Thiết kế Control Class
w Chuyện gì xảy ra với các Control Class?
§ Chúng