Bài giảng Phân tích 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
Domain Model - Design Model Classes
Domain 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ạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích 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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Phân tích 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
Chương 5 MÔ 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 t hô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ền 2 Domain Model - Design Model Classes Domain 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ền 3 Domain Model - Design Model Classes Ví dụ Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 4 Xâ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ềm Xác định các phương thức Bổ sung các loại thông tin Tinh 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ền 5 Xác định các lớp phần mềm Xá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ền 6 Xác định các lớp phần mềm Ví 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ạch Hệ 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ền 7 Xác định các lớp phần mềm Ví dụ: các lớp khái niệm trong domain model của hệ thống máy tính tiền Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 8 Xác định các lớp phần mềm Ví dụ: các lớp phần mềm trong hệ thống máy tính tiền Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 9 Xác đinh phương thức Cá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ền 10 Xác đinh phương thức Ví dụ: sơ đồ tương tác của hoạt động tính tiền trong hệ thống máy tính tiền Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 11 Xác đinh phương thức Một số vấn đề với tên phương thức Thô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ền 12 Xác đinh phương thức Một số vấn đề với tên phương thức Mộ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ượng Vì 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 Productspecification Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 13 Bổ 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 , c hỉ 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ền 14 Bổ 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ền 15 Sơ đồ 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ền 16 Nhóm các lớp vào Package Nguyê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 package Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 17 Nhóm các lớp vào Package Cá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 đích Cùng một hệ thống phân cấp Tham gia cùng một use case Có 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ền 18 Nhóm các lớp vào Package Ký 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 tab Ngượ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ền 19 Quyền sở hữu và tham chiếu Quyề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ền 20 Package phụ thuộc Nế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ộc Mộ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êu Trong 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ền 21 Package phụ thuộc Ví dụ : package Sales phụ thuộc vào package Core Elements Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 22 Ví dụ 1 Mô hình package domain của hệ thống máy tính tiền Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 23 Ví dụ 1 Package Core Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 24 Ví dụ 1 Package Products Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 25 Ví dụ 1 Package Sales Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 26 Bài tập Cho 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 package Dịch vụ của mỗi package là gì? Đảm bảo tính tái sử dụng Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 27 Bài tập Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 28 Bài tập Gợi ý: Package 1: gồm các lớp liên quan đến chuyến bay Package 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ống Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 29 Bài tập Giải pháp 1: Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 30 Bài tập Giải pháp 2: Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 31 Bài tập Gi ải pháp 2: lớ p Flight trong package Bookings đảm bảo được c ác tiêu chí : T hờ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. Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 32 Bài tập Kết quả sơ đồ package Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 33 Bài tập Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 34
File đính kèm:
- bai_giang_phan_tich_thiet_ke_he_thong_chuong_5_mo_hinh_thiet.pptx