Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Class
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
đối tượng – Thiết kế kiến trúc Dương Anh Đức 111 Cài đặt Polymorphism Không có Polymorphism Có Polymorphism Animal talk () Lion Tiger talk () talk () if animal = “Lion” then do the Lion talk else if animal = “Tiger” then do the Tiger talk end do the Animal talk PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 112 So sánh Interface và Generalization w Các Interface hỗ trợ biểu diễn độc lập với cài đặt của polymorphism § Realization relationships có thể băng ngang qua cấu trúc phân cấp của quan hệ tổng quát hóa w Các Interface chỉ thuần là đặc tả, không có hành vi § Abstract base class có thể định nghĩa attributes và associations w Các Interface hoàn toàn độc lập với quan hệ kế thừa § Generalization thường dùng để cài đặt việc dùng lại § Interfaces thường dùng để đặc tả việc tái sử dụng các hành vi w Generalization cung cấp một cách cài đặt polymorphism PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 113 Dùng QH tổng quát hóa để cài Polymorphism w Chỉ cung cấp interface cho các class con cháu? § Thiết kế tổ tiên như một abstract class § Mọi method cài đặt ở các class con cháu w Cung cấp interface và behavior mặc định cho các class con cháu? § Thiết kế tổ tiên như một concrete class với các method mặc định § Cho phép dùng các polymorphic operation w Cung cấp interface và behavior bắt buộc cho các class con cháu? § Thiết kế tổ tiên là concrete class § Không cho phép các polymorphic operation PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 114 Sử dụng quan hệ tổng quát hóa w Chia sẻ các thuộc tính và hành vi chung w Chia sẻ cài đặt w Cài đặt cơ chế Polymorphism w Cài đặt cơ chế Metamorphosis PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 115 Metamorphosis tồn tại trong thể giới thực Làm sao mô hình hóa chúng? Metamorphosis là gì? wMetamorphosis § 1. Một thay đổi trong hình dạng, cấu trúc, hay chức năng; đặc biệt là các thay đổi vật lý mà các động vật phải trải qua, như con nòng nọc biến thành con ếc § 2. Mọi thay đổi được ghi nhận, như trong các ký tự, thể hiện, hoặc điều kiện § Xem thêm Webster’s New World Dictionary, Simon & Schuster, Inc., 1979 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 116 FulltimeStudent name address studentID gradDate ParttimeStudent name address maxNumCourses studentID Ví dụ: Metamorphosis w Trong trường đại học, có full time students và part time students § Full time students có ngày tốt nghiệp dự kiến còn part time students lại không § Part time students có thể đăng ký học tối đa 3 môn trong khi full time students không bị giới hạn PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 117 Chuyện gì xảy ra nếu một part-time student trở thành full-time student? FulltimeStudent Student name address studentID gradDate ParttimeStudent maxNumCourses Một hướng tiếp cận Modeling Metamorphosis w Có thể tạo một quan hệ tổng quát hóa PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 118 1 1 Classification ParttimeClassification maxNumCourses Student name address studentID FulltimeClassification gradDate FulltimeStudent Student name address studentID gradDate ParttimeStudent maxNumCourses Một hướng tiếp cận khác w Quan hệ kế thừa có thể dùng để mô hình hóa cấu trúc, hành vi và quan hệ chung và tạo quan hệ với phần “thay đổi” PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 119 : Student : Fulltime Classification : Student Manager : Parttime Classification delete create change to full time Một hướng tiếp cận khác (tt) wMetamorphosis được hoàn tất bởi object “nói chuyện với” phần “thay đổi” PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 120 studentID 11 ResidentInformation dorm room roomKeyID Student name address10..1 Classification Metamorphosis và tính mềm dẻo w Kỹ thuật này thêm tính mềm dẻo cho mô hình ParttimeClassification maxNumCourses FulltimeClassification gradDate PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 121 Bài tập: Định nghĩa Generalizations w Hãy cho biết: § Tất cả các design class w Hãy xác định: § Tât cả các tinh chỉnh liên quan đên generalizations có sẵn § Mọi ứng dụng generalization mới • Kiểm tra là đã xem xétmọi metamorphosis w Xây dựng các lược đồ: § Class diagram chứa mọi quan hệ tổng quát hóa mới (hay đã tính chỉnh) giữa các class § Tinh chỉnh use-case realizations (optional) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 122 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 123 Giải quyết đụng độ giữa các Use-Case w Nhiều use case có thể truy cập riêng rẽ đến các design object w Options § Dùng cơ chế truyền message đồng bộ => đến trước được xử lý trước § Xác định các operation (hay code) cần protect § Áp dụng cơ chế access control • Lập hàng đợi Message • Semaphores (hoặc 'tokens') • Các cơ chế khóa khác w Lời giải phụ thuộc nhiều vào môi trường cài đặt PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 124 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 125 Xử lý các yêu cầu phi chức năng nói chung Analysis Class Analysis Mechanism(s) Student Schedule CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Persistency, Legacy Interface Distribution Persistency, Security Analysis Design Implementation Remote Method Invocation (RMI) Persistency Analysis Mechanism (Conceptual) Design Mechanism (Concrete) Implementation Mechanism (Actual) OODBMS RDBMS JDBC ObjectStore Java 1.2 from Sun Legac y Data New Data Distribution Persistency Design Guidelines Some Design Class PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 126 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 127 Checkpoints: Các Class w Tên của mỗi class có phản ánh rõ vai trò của nó không? w Class có biểu diễn một single well-defined abstraction? w Tất cả các attribute và trách nhiệm có gắn kết với nhau? w Có bất kỳ class attribute, operation hay relationship nào cần tổng quát hóa, nghĩa là, chuyển lên tổ tiên không? w Mọi yêu cầu trên class đã xử lý? w Mọi đòi hỏi trên class phù hơp với với statecharts mô hình hóa hành vi của class và các thể hiện của nó? w Đã mô tả trọn vẹn chu kỳ sống của các thể hiện của class ? w Class thực hiện mọi hành vi cần thiết? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 128 Checkpoints: Operations w Các operation có dễ hiểu? w Các mô tả trạng thái của class và hành vi của các object của nó có chính xác? w Class có thực hiện đúng hành vi yêu cầu nó? w Bạn đã các định các tham số đúng chưa ? w Bạn đã gán đầy đủ operations cho các message của mỗi object ? w Các đặc tả cài đặt (nếu có) của operation có chính xác ? w Các operation signature có phù hợp với NNLT cài đặt hệ thống? w Tất cả các operation đề cần cho use-case realization? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 129 Checkpoints: Attributes wMỗi attribute biểu diễn một khái niệm đơn? w Tên của các attribute có gợi nhớ? w Tất cả các attribute là cần thiết cho các use- case realization ? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 130 Checkpoints: Relationships w Tên của role gợi nhớ? w Bản số của các relationship có chính xác? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 131 Nhắc lại: Class Design w Mục đích của Class Design là gì? w Các class được tinh chỉnh bằng cách nào? w Các statechart được tạo cho mỗi class? w Các component chính của statechart là gì ? Cho mô tả ngắn gọn về mỗi thứ. w Có những dạng tinh chỉnh relationship nào? w Sự khác nhau giữa association và dependency? w Ta phải làm gì với operations và attributes?
File đính kèm:
- Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Class.pdf