intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình Phân tích và thiết kế hướng đối tượng bằng UML: Thiết kế Class - Dương Anh Đức

Chia sẻ: Hấp Hấp | Ngày: | Loại File: PDF | Số trang:131

354
lượt xem
39
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giáo trình "Phân tích và thiết kế hướng đối tượng bằng UML: Thiết kế Class" cung cấp các kiến thức giúp người học có thể 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, 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,.... Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Giáo trình Phân tích và thiết kế hướng đối tượng bằng UML: Thiết kế Class - Dương Anh Đức

  1. Giáo trình Phân tích và thiết kế hướng đối tượng bằng UML Thiết kế Class Thiết kế Class Dương Anh Đức 1
  2. Mục tiêu  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  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  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  Tinh chỉnh các quan hệ, operation, và thuộc tính Thiết kế Class Dương Anh Đức 2
  3. Vị trí của Thiết kế Class Architectural Analysis Architectural Describe Review the Architecture Describe Architecture Architect Design Concurrency Distribution Reviewer Subsystem Design Use-Case Analysis Review the Use-Case Design Design Designer Design Reviewer Class Design Thiết kế Class Dương Anh Đức 3
  4. Tổng quan về Class Design Architecture Document Guidelines Design Classes Class Design Design Classes Use-Case Realization Design Model Thiết kế Class Supplementary Dương Anh Đức 4 Specifications
  5. Các bước thiết kế Class  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  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 Thiết kế Class Dương Anh Đức 5
  6. Các bước thiết kế Class  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  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 Thiết kế Class Dương Anh Đức 6
  7. Các khảo sát khi thiết kế Class 1. Các khảo sát khi thiết kế Class:  Class stereotype  Boundary  Entity  Control  Các design pattern khả dụng  Các cơ chế kiến trúc  Persistence  Distribution  … Thiết kế Class Dương Anh Đức 7
  8. Cần bao nhiêu Class ? 2. Cần bao nhiêu Class ?  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  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 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 ! Thiết kế Class Dương Anh Đức 8
  9. Thiết kế các Boundary Class  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ụ?  Các External system interface boundary class  Thường được mô hình như subsystem MainWindow SubWindow MainForm Button DropDownList Thiết kế Class Dương Anh Đức 9
  10. Thiết kế các Entity Class  Các Entity object thường thụ động và persistent  Các yêu cầu về hiệu năng có thể buộc ta phải tái xây dựng  Xem thêm bước xác định Persistent Class Analysis Design > FatClass FatClass - transientBookeeping - transientBookeeping + commonlyUsedAtt1 + getCommonlyUsedAtt1() + commonlyUsedAtt2 + getCommonlyUsedAtt2() + rarelyUsedAtt3 + getRarelyUsedAtt3() + rarelyUsedAtt4 + getRarelyUsedAtt4() 1 1 FatClassDataHelper FatClassLazyDataHelper + commonlyUsedAtt1 + rarelyUsedAtt3 + commonlyUsedAtt2 + rarelyUsedAtt4 Thiết kế Class Dương Anh Đức 10
  11. Thiết kế Control Class  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?  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 Thiết kế Class Dương Anh Đức 11
  12. Các bước thiết kế Class  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  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 Thiết kế Class Dương Anh Đức 12
  13. Xác định Persistent Class  Mọi thể hiện của class đều đòi hỏi phải lưu giữ trạng thái của nó  Các Persistent class được gán với cơ chế persistence Client Analysis Design Implementation Class Mechanism Mechanism Mechanism (Conceptual) (Concrete) (Actual) Legacy Data Course Persistency RDBMS JDBC to Ingres New Data Student Persistency OODBMS ObjectStore Thiết kế Class Dương Anh Đức 13
  14. Database Design Preview  Chiến lược Persistence phải nhất quán  Ở đây, nhớ rằng các class đều persistent Class Class Design Designer Database Design Database Designer Data Model Thiết kế Class Dương Anh Đức 14
  15. Các bước thiết kế Class  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  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 Thiết kế Class Dương Anh Đức 15
  16. Định nghĩa các Operation  Mục đích  Ánh xạ các nhiệm vụ đã xác định ơ mức phân tích thành các operation thực hiện chúng  Những cái cần xem xét:  Tên Operation, signature, và mô tả  Operation visibility  Tầm vực Operation • Class operation hay instance operation Thiết kế Class Dương Anh Đức 16
  17. Nhắc lại: Operation là gì ? CourseOffering Class addStudent deleteStudent getStartTime Operation getEndTime Thiết kế Class Dương Anh Đức 17
  18. Operation: Tìm chúng ở đâu?  Các thông điệp trong các interaction diagram :ClassA :ClassB :ClassA :ClassB // Perform responsibility performResponsibility():result  Các chức năng phụ thuộc vào cài đặt khác  Các chức năng quản trị  Các nhu cầu sao chép class  Các nhu cầu kiểm tra bằng, khác nhau, … Thiết kế Class Dương Anh Đức 18
  19. Đặt tên và mô tả các Operation  Các tên thích hợp cho operation  Chỉ rõ kết quả của operation  Đứng dưới góc nhìn của client  Nhất quán qua tất cả các class  Định nghĩa operation signature  operationName(parameter : class,..) : returnType  Cung cấp một mô tả ngắn, bao gồm ý nghĩa của tất cả các tham số Thiết kế Class Dương Anh Đức 19
  20. Guidelines: Thiết kế Operation Signatures  Khi thiết kế operation signatures phải bảo đảm hàm chứa:  Các tham số truyền theo giá trị hay tham số?  Các tham số có bị thay đổi bởi operation?  Các tham số là optional?  Tham số có giá trị mặc định?  Miền tham số hợp lệ?  Càng ít tham số càng tốt  Truyền các object thay vì “data bits” Thiết kế Class Dương Anh Đức 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0