Bài giảng Phân tích và Thiết kế hệ thống - Chương 5: Mô hình thiết kế cách tạo sơ đồ lớp thiết kế - Từ Thị Xuân Hiền
Giải pháp 2: lớp Flight trong package Bookings đảm bảo được các tiêu chí:
Thời gian sống của các đối tượng
Flight có quan hệ chặt hơn với việc đặt vé (Bookings) so với các thông tin chung về chuyến bay.
34 trang |
Chia sẻ: huongthu9 | Lượt xem: 562 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Phân tích và Thiết kế hệ thống - Chương 5: Mô hình thiết kế cách tạo sơ đồ lớp thiết kế - Từ Thị Xuân Hiền, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 5MÔ HÌNH THIẾT KẾCÁCH TẠO SƠ ĐỒ LỚP THIẾT KẾ(DESIGN MODEL: CREATING DESIGN CLASS DIAGRAMS)Sơ đồ lớp thiết kế (Design class diagram)Sơ đồ lớp thiết kế biểu diễn chi tiết của các lớp phần mềm và giao diện trong một ứng dụng. Những thông tin tiêu biểu trong sơ đồ lớp thiết kế bao gồm:Các lớp (classes)Mối quan hệ và thuộc tính (associations & attributes Giao diện và thao tác trên giao diện (interfaces with their operations)Các phương thức (methods)Thuộc tính (attribute)Các phụ thuộc (dependencies)Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền2Domain Model - Design Model ClassesDomain model: các lớp khái niệm đại diện cho các khái niệm trừu tượng trong thế giới thực mà người phát triển phần mềm đang quan tâm.Mô hình lớp thiết kế (Design model class): lớp thiết kế đại diện cho các lớp phần mềm, nó được định nghĩa như là một thành phần của phần mềm ứng dụng.Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền3Domain Model - Design Model ClassesVí dụBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền4Xây dựng sơ đồ lớp thiết kếCác bước xây dựng sơ đồ lớp thiết kếXác định các lớp phần mềmXác định các phương thứcBổ sung các loại thông tinTinh chỉnh các mối quan hệ Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền5Xác định các lớp phần mềmXác định những lớp mà tham gia vào các giải pháp phần mềm. Các lớp này có thể được tìm thấy bằng cách duyệt tất cả các sơ đồ tương tác và danh sách các lớp trong domain model.Tuy nhiên có những lớp trong domain model không cần xuất hiện trong sơ đồ lớp thiết kếBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền6Xác định các lớp phần mềmVí dụ: Một hệ thống máy tính tiền được sử dụng để ghi lại doanh thu và xử lý các khoản thanh toán, được sử dụng trong một cửa hàng bán lẻ, hệ thống bao gồm các thành phần phần cứng như máy tính và máy quét mã vạchHệ thống có thể giao tiếp với các ứng dụng khác như máy tính thuế, hệ thống kiểm soát hàng tồn kho, kho lưu trữ sản phẩm theo Loại sản phẩm.Hệ thống tự động xuất hóa đơn thanh toán khi tất cả các sản phẩm mà khách hàng mua được nhập vào hệ thống.Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền7Xác định các lớp phần mềmVí dụ: các lớp khái niệm trong domain model của hệ thống máy tính tiềnBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền8Xác định các lớp phần mềmVí dụ: các lớp phần mềm trong hệ thống máy tính tiềnBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền9Xác đinh phương thứcCác phương thức của mỗi lớp có thể được xác định bằng cách phân tích các biểu đồ tương tác.Nói chung, tập hợp tất cả các Messages được gửi đến một lớp X trên tất cả các sơ đồ tương tác thường là các phương thức của lớp X phải xác định.Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền10Xác đinh phương thứcVí dụ: sơ đồ tương tác của hoạt động tính tiền trong hệ thống máy tính tiềnBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền11Xác đinh phương thứcMột số vấn đề với tên phương thứcThông điệp Create trong sơ đồ tương tác, chỉ ra một đối tượng mới được khởi tạo, khi chuyển thiết kế sang ngôn ngữ lập trình hướng đối tượng, nó phải được thể hiện trong ngữ cảnh của ngôn ngữ hiện thực.Ví dụ: C ++, Java không có phương thức create() mà là new()Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền12Xác đinh phương thứcMột số vấn đề với tên phương thứcMột thông điệp dạng (multiobject) truyền tới các đối tượng chứa bên trong lớp đóVí dụ: Find() là một thông điệp đến một tập đối tượngVì vậy, Find() không phải là một phần của lớp Productspecification; nó là một phần của interface của multiobject. Do đó, không thêm Find() vào lớp ProductspecificationBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền13Bổ sung role vào mối quan hệBổ sung điều hướng vào mối quan hệ:Điều hướng là một thuộc tính của Role, chỉ ra rằng mối quan hệ được thực hiện từ lớp nguồn đến lớp mục tiêu.Ví dụ:Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền14Bổ sung role vào mối quan hệVí dụ: Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền15Sơ đồ lớp của hệ thống máy tính tiền được bổ sung Role vào các mối quan hệSử dụng Package tổ chức domain modelĐể dễ dàng trong phần thiết kế hướng đối tượng, domain model được tổ chức thành các package.Tổ chức domain model thành các package là một thủ tục phức tạp, dựa trên hai nguyên tắc cơ bản: sự gắn kết và độc lập.Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền16Nhóm các lớp vào PackageNguyên tắc 1: nhóm các lớp vào package phải thỏa các tiêu chí gắn kết (coherence) sau:Mục tiêu: các lớp phải trả về các dịch vụ đáp ứng yêu cầu người dùngỔn định: sự cô lập các lớp trong một package phải thực sự ổn định trong quá trình phát triển dự án, và sau đó. Thời gian sống của các đối tượng: tiêu chí này giúp phân biệt được các lớp mà đối tượng có thời gian sống rất khác nhau.Nguyên tắc 2: nhóm các lớp vào package phải giảm thiểu sự phụ thuộc (dependency) giữa các packageBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền17Nhóm các lớp vào PackageCách chọn các lớp vào một package cần phải:Có cùng chủ đề, có quan hệ chặt chẽ bởi khái niệm hoặc mục đíchCùng một hệ thống phân cấpTham gia cùng một use caseCó quan hệ kết hợp chặt.Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền18Nhóm các lớp vào PackageKý hiệu Package trong UML: được hiển thị như một thư mục dạng tab, Subordinate packages có thể được hiển thị bên trong nó. Tên packages Nếu package mô tả các phần tử của nó thì tên Package đặt trong tabNgược lại, thì tên Package đặt trong package.Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền19Quyền sở hữu và tham chiếuQuyền sở hữu: Một phần tử được sở hữu bởi package chứa nó. Tuy nhiên, Một phần tử có thể được tham chiếu đến một phần tử trong package khác. Trong trường hợp này, tên của phần tử được xác định bởi tên của package theo định dạng: PackageName::ElementName Ví dụ:Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền20Package phụ thuộcNếu một phần tử trong mô hình phụ thuộc vào một phần tử khác thì giữa chúng có mối quan hệ phụ thuộcMột package phụ thuộc chỉ ra rằng các phần tử bên trong nó kết hợp với các phần tử trongpackage mục tiêuTrong UML mối quan hệ phụ thuộc được biểu diễn bằng ký hiệu: Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền21Package phụ thuộcVí dụ: package Sales phụ thuộc vào package Core ElementsBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền22Ví dụ 1Mô hình package domain của hệ thống máy tính tiềnBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền23Ví dụ 1Package CoreBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền24Ví dụ 1Package ProductsBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền25Ví dụ 1Package SalesBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền26Bài tậpCho domain model của hệ thống đặt vé máy bay, hãy chia domain model thành 2 package sau cho đảm bảo:Tính kết dính trong mỗi package Giảm tối thiểu sự phụ thuộc giữa các packageDịch vụ của mỗi package là gì?Đảm bảo tính tái sử dụngBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền27Bài tậpBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền28Bài tậpGợi ý:Package 1: gồm các lớp liên quan đến chuyến bayPackage 2: các lớp liên quan đến việc đặt véLưu ý:Lớp flight đặt trong Package nào là tốt nhất để đảm bảo thời gian sống và tính tái sử dụng của hệ thốngBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền29Bài tậpGiải pháp 1: Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền30Bài tậpGiải pháp 2: Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền31Bài tậpGiải pháp 2: lớp Flight trong package Bookings đảm bảo được các tiêu chí:Thời gian sống của các đối tượngFlight có quan hệ chặt hơn với việc đặt vé (Bookings) so với các thông tin chung về chuyến bay.Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền32Bài tậpKết quả sơ đồ packageBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền33Bài tậpBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền34
Các file đính kèm theo tài liệu này:
- bai_giang_phan_tich_va_thiet_ke_he_thong_chuong_5_mo_hinh_th.pptx