Silde bài giảng công nghệ phần mềm
Công nghệ phần mềm Pha thiết kế Giảng viên: TS Nguyễn Mạnh Hùng Học viện Cơng nghệ Bưu Viễn thông (PTIT) Nội dung tham khảo từ Stephen R Schach Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Pha thiết kế (1) Mục đích: Chuyển tài liệu phân tích dừ dạng đặc tả nghiệp vụ hệ thống, sang dạng cài đặt kiểm thử Pha thiết kế (2) Thực hiện: B1: Hồn thiện sơ đồ lớp có pha phân tích → sơ đồ lớp chi tiết Thiết kế chi tiết hoạt động bên lớp, phương thức lớp Hoàn thiện sơ đồ lớp (1) Thực hiện: Định nghĩa kiểu thuộc tính cho lớp Định nghĩa khuôn mẫu phương thức cho lớp Hoàn thiện sơ đồ lớp (2) Định nghĩa kiểu thuộc tính cho lớp: Tên thuộc tính xác định pha phân tích Chọn kiểu liệu cụ thể cho thuộc tính dựa vào giới hạn lưu trữ thuộc tính Điền thuộc tính (tên:kiểu) vào sơ đồ lớp Hoàn thiện sơ đồ lớp (3) Ví dụ quỹ MSG: Hồn thiện sơ đồ lớp (4) Định nghĩa khuôn mẫu phương thức cho lớp: Dùng thẻ CRC để xác định phương thức nên gán cho lớp Định nghĩa phuôn mẫu cho phương thức Hoàn thiện sơ đồ lớp (5) Gán phương thức cho lớp: Nguyên lí A: Che giấu thơng tin Các thuộc tính lớp phải để dạng private → cần phương thức get/set tương ứng cho phép đối tượng khác truy nhập vào thuộc tính Áp dụng cho lớp thực thể: thuộc tính để private, thuộc tính có cặp phương thức get/set tương ứng Hồn thiện sơ đồ lớp (6) Gán phương thức cho lớp (tt): Ngun lí B: Nếu có nhiều đối tượng X gọi đến hành động k đối tượng Y, phương thức để thực hành động k nên gán cho lớp đối tượng Y, mà không nên gán cho lớp đối tượng X 10 Hoàn thiện sơ đồ lớp (7) Gán phương thức cho lớp (tt): Nguyên lí C: Thiết kế hướng trách nhiệm Nếu hành động mà gán thành phương thức cho lớp khác, lớp đối tượng cần thực hành động phải chứa phương thức tương ứng hành động 11 Hồn thiện sơ đồ lớp (8) Ví dụ tốn thang máy: Thẻ CRC cho lớp điều khiển thang máy 12 Hoàn thiện sơ đồ lớp (9) Ví dụ tốn thang máy: Thao tác → gán phương thức turnOn/turnOff cho lớp nút nhấn thang máy (nguyên lí B) Thao tác → gán phương thức turnOn/turnOff cho lớp nút nhấn tầng (nguyên lí B) Thao tác → gán phương thức moveUp/moveDown cho lớp thang máy (nglí B) Thao tác → gán phương thức open/close cho lớp cửa thang máy (nguyên lí B) Các thao tác 8, 10, 11 → gán phương thức cho lớp điều khiển thang máy khơng gán cho lớp (ngun lí C) 13 Hồn thiện sơ đồ lớp (10) Kết quả: 14 Hoàn thiện sơ đồ lớp (11) Định nghĩa khuôn mẫu phương thức: Kiểu liệu trả Số lượng, thứ tự kiểu liệu truyền vào Ví dụ: Khơng nên định nghĩa phương thức lưu thông tin khoản đầu tư với tham số thuộc tính: public void saveInvestment(int id, string name ) Mà nên truyền vào kiểu đối tượng cửa lớp khoản đầu tư đóng gói: public void saveInvestment(Investment inv) 15 Thiết kế logic/thuật toán (1) Thực hiện: Dùng sơ đồ trạng thái hữu hạn (statechart) biểu diễn chi tiết thuật tốn cho lớp/phương thức Mỗi chữ nhật trạng thái: định nghĩa hành động trạng thái theo cú pháp: tên_phương_thức() Mỗi mũi tên chuyển trạng thái dự vào kiện gắn thành nhãn tương ứng mũi tên 16 Thiết kế logic/thuật tốn (2) Ví dụ lớp điều khiển thang máy: 17 Thiết kế logic/thuật tốn (3) Ví dụ lớp nút nhấn thang máy: 18 Bài tập Với modul cá nhân: Định nghĩa thuộc tính kiểu thuộc tính lớp Dùng kĩ thuật thẻ CRC nguyên lí thiết kế phương thức để gán phương thức cho lớp Định nghĩa khuôn mẫu cho phương thức Điền tất vào sơ đồ lớp để thu sơ đồ lớp chi tiết Thiết kế thuật toán (dùng statechart) cho lớp sơ đồ lớp 19 Bài tập nộp sau pha thiết kế Với modul cá nhân: Vẽ lại sơ đồ UC chi tiết hệ thống modul Vẽ lại sơ đồ lớp sau pha phân tích Định nghĩa thuộc tính kiểu thuộc tính lớp Dùng kĩ thuật thẻ CRC nguyên lí thiết kế phương thức để gán phương thức cho lớp Định nghĩa khuôn mẫu cho phương thức Điền tất vào sơ đồ lớp để thu sơ đồ lớp chi tiết Thiết kế thuật toán (dùng statechart) cho lớp sơ đồ lớp 20 Questions? ... 2007 Pha thiết kế (1) Mục đích: Chuyển tài liệu phân tích dừ dạng đặc tả nghiệp vụ hệ thống, sang dạng cài đặt kiểm thử Pha thiết kế (2) Thực hiện: B1: Hoàn thiện sơ đồ lớp có pha phân. .. (dùng statechart) cho lớp sơ đồ lớp 19 Bài tập nộp sau pha thiết kế Với modul cá nhân: Vẽ lại sơ đồ UC chi tiết hệ thống modul Vẽ lại sơ đồ lớp sau pha phân tích Định nghĩa thuộc... lớp Hồn thiện sơ đồ lớp (2) Định nghĩa kiểu thuộc tính cho lớp: Tên thuộc tính xác định pha phân tích Chọn kiểu liệu cụ thể cho thuộc tính dựa vào giới hạn lưu trữ thuộc tính Điền thuộc