Chương 8<br />
<br />
Thiết kế hướng ₫ối tượng<br />
8.1 Nhiệm vụ của thiết kế<br />
8.2 Các artifacts cần tạo ra<br />
8.3 Các worker tham gia thiết kế<br />
8.4 Qui trình thiết kế<br />
8.5 Thiết kế kiến trúc<br />
8.6 Thiết kế từng use-case<br />
8.7 Thiết kế từng class<br />
8.8 Thiết kế các hệ thống con<br />
8.9 Kết chương<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 1<br />
<br />
8.1 Nhiệm vụ của thiết kế<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cụ thể hóa, chi tiết hóa các bản phát họa cách thức giải quyết<br />
chức năng tương ứng. Nếu dùng kỹ thuật thiết kế hướng ₫ối tượng,<br />
bản thiết kế cách giải quyết chức năng là các class ₫ối tượng cụ<br />
thể, mối quan hệ giữa chúng và các thông tin cụ thể, chi tiết kèm<br />
theo. Thí dụ mỗi class ₫ều có tên, có các thuộc tính chi tiết và các<br />
tác vụ chức năng (có thể kèm theo giải thuật của tác vụ ₫ó)<br />
Workflow thiết kế sẽ cụ thể hóa, chi tiết hóa tất cả các bản phát<br />
họa cách giải quyết mọi yêu cầu chức năng của hệ thống phần<br />
mềm.<br />
Workflow thiết kế cũng sẽ ₫ặc tả ₫ược kiến trúc cụ thể, chi tiết của<br />
hệ thống phần mềm.<br />
Toàn bộ các artifacts ₫ược tạo ra và duy trì trong workflow thiết kế<br />
₫ược gọi là mô hình thiết kế và mô hình triển khai.<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 2<br />
<br />
8.1 Nhiệm vụ của thiết kế<br />
<br />
<br />
Mục ₫ích của các artifacts ₫ược tạo ra trong workflow thiết kế là :<br />
Giúp nắm bắt các hệ thống con, các class thiết kế, interface<br />
giữa chúng (interface ↔ interface, interface ↔ class class ↔<br />
class).<br />
Giúp ta xem xét dễ dàng bảng thiết kế bằng cách dùng các ký<br />
hiệu của ngôn ngữ ₫ặc tả ₫ể miêu tả, hiển thị artifacts.<br />
Giúp người nghiên cứu hệ thống ₫ạt ₫ược sự hiểu biết sâu sắc<br />
các ràng buộc, các yêu cầu không chức năng liên quan ₫ến<br />
ngôn ngữ lập trình ₫ược dùng ₫ể hiện thực, việc dùng lại linh<br />
kiện có sẵn, HĐH, công nghệ phân tán, xử lý ₫ồng thời,<br />
database, giao diện, quản lý giao tác…<br />
Tạo ra mức trừu tượng ₫ể làm ₫ầu vào trực tiếp cho hoạt ₫ộng<br />
hiện thực hệ thống phần mềm.<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 3<br />
<br />
8.2 Các artifacts cần tạo ra<br />
<br />
<br />
<br />
<br />
Mô hình thiết kế = hệ thống các kết quả thiết kế, nó chứa :<br />
các hệ thống con, nếu có, mỗi hệ thống con chứa :<br />
o các dẫn xuất use-case ở cấp thiết kế, mỗi dẫn xuất chứa :<br />
à các lược ₫ồ class ở cấp thiết kế.<br />
à các lược ₫ồ tương tác giữa các ₫ối tượng cấp thiết kế.<br />
à 'flow of events' ở cấp thiết kế.<br />
à các yêu cầu ₫ặc biệt của từng use-case, hay của toàn<br />
bộ các use-case cho workflow hiện thực.<br />
Đặc tả kiến trúc hệ thống phần mềm theo góc nhìn thiết kế<br />
(view of design model)<br />
Mô hình triển khai :<br />
Sẽ là ₫ặc tả kiến trúc phần mềm theo góc nhìn triển khai.<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 4<br />
<br />
8.2 Các artifacts cần tạo ra<br />
*<br />
1<br />
<br />
Design<br />
Model<br />
<br />
*<br />
<br />
Desgin<br />
System<br />
<br />
*<br />
<br />
*<br />
<br />
Desgin Class<br />
<br />
Design<br />
Subsystem<br />
<br />
*<br />
<br />
* *<br />
<br />
*<br />
<br />
Use-Case Realization Design<br />
<br />
Interface<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 5<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
8.3 Các worker tham gia thiết kế<br />
Architect<br />
<br />
Use-Case<br />
Engineer<br />
<br />
Component<br />
Engineer<br />
<br />
Chịu trách nhiệm về<br />
<br />
Chịu trách nhiệm về<br />
<br />
Chịu trách nhiệm về<br />
<br />
Desgin<br />
Model<br />
<br />
Use-Case<br />
Deployment Architecture<br />
Description Realization Model<br />
Desgin<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Design<br />
Design<br />
class Subsystem<br />
<br />
Interface<br />
<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 6<br />
<br />
8.4 Qui trình thiết kế<br />
<br />
Architect<br />
<br />
Architectural<br />
Design<br />
<br />
Design a<br />
Use-Case<br />
<br />
Use-Case<br />
Engineer<br />
<br />
Component<br />
Engineer<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Design a<br />
Class<br />
<br />
Design a<br />
Subsystem<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 7<br />
<br />
8.5 Thiết kế kiến trúc<br />
<br />
<br />
<br />
<br />
<br />
<br />
Nhiệm vụ của hoạt ₫ộng thiết kế kiến trúc là xây dựng mô hình<br />
thiết kế, mô hình triển khai và kiến trúc của hệ thống phần mềm<br />
theo 2 góc nhìn tương ứng.<br />
Để xây dựng mô hình triển khai, ta nhận dạng các thông tin sau :<br />
Các nút tính toán và các cấu hình mạng của chúng.<br />
Để phục vụ xây dựng mô hình thiết kế, ta nhận dạng các thông tin<br />
sau :<br />
Các hệ thống con và interface của chúng.<br />
Các class thiết kế có ý nghĩa kiến trúc (như class chủ ₫ộng).<br />
Các cơ chế thiết kế tổng quát ₫ể xử lý các yêu cầu chung như<br />
tính bền vững, tính hiệu quả… mà ta ₫ã nắm bắt ₫ược trong<br />
workflow phân tích.<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 8<br />
<br />
8.5 Thiết kế kiến trúc<br />
Nhận dạng các nút và cấu hình mạng nối kết<br />
Cấu hình mạng vật lý sẽ ảnh hưởng ₫ến kiến trúc phần mềm, gồm<br />
các khía cạnh sau :<br />
Các nút nào liên quan, khả năng về bộ nhớ và công suất tính<br />
toán của từng nút.<br />
Kiểu kết nối và giao thức giữa các nút.<br />
Các tính chất của kết nối và giao thức như băng thông, ₫ộ sẵn<br />
sàng, chất lượng,…<br />
Mức ₫ộ cần thiết của tính dư thừa, ₫ề kháng lỗi, di cư process,<br />
sao lưu dữ liệu…<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 9<br />
<br />
8.5 Thiết kế kiến trúc<br />
Nhận dạng các hệ thống con và interface của chúng<br />
Được thực hiện từ ₫ầu hay khi mô hình thiết kế phát triển lên ₫ộ<br />
phức tạp cao nên cần phải chia nhỏ.<br />
Một số hệ thống con có thể ₫ược dùng lại từ các project khác.<br />
Các hoạt ₫ộng cụ thể :<br />
Nhận dạng các hệ thống con ở cấp ứng dụng.<br />
Nhận dạng các hệ thống con cấp giữa (middleware) và cấp hệ<br />
thống.<br />
Định nghĩa sự phụ thuộc giữa các hệ thống con.<br />
Nhận dạng interface giao tiếp của từng hệ thống con<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2010<br />
<br />
Môn : Nhập môn Công nghệ phần mềm<br />
Chương 8 : Thiết kế hướng ₫ối tượng<br />
Slide 10<br />
<br />