• 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á[r]
(1)Chương 5
MƠ HÌNH THIẾT KẾ
CÁCH TẠO SƠ ĐỒ LỚP THIẾT KẾ
(2)Sơ đồ lớp thiết kế (Design class diagram)
• Sơ đồ lớp thiết kế biểu diễn chi tiết lớp phần mềm giao diện ứng dụng Những thông tin tiêu biểu sơ đồ lớp thiết kế bao gồm:
• Các lớp (classes)
• Mối quan hệ thuộc tính (associations & attributes
• Giao diện thao tác 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)
(3)Domain Model - Design Model Classes
• Domain model: lớp khái niệm đại diện cho khái niệm trừu tượng giới thực mà người phát triển phần mềm quan tâm
(4)Domain Model - Design Model Classes
• Ví dụ
(5)Xây dựng sơ đồ lớp thiết kế
• Các bước xây dựng sơ đồ lớp thiết kế
(6)Xác định lớp phần mềm
• Xác định lớp mà tham gia vào giải pháp phần mềm Các lớp tìm thấy cách duyệt tất sơ đồ tương tác danh sách lớp domain model
• Tuy nhiên có lớp domain model không cần xuất sơ đồ lớp thiết kế
(7)Xác định lớp phần mềm
• Ví dụ: Một hệ thống máy tính tiền sử dụng để ghi lại
doanh thu xử lý khoản toán, sử dụng một cửa hàng bán lẻ, hệ thống bao gồm thành phần phần cứng máy tính máy qt mã vạch
• Hệ thống giao tiếp với ứng dụng khác máy tính
thuế, hệ thống kiểm số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 toán tất sản
(8)Xác định lớp phần mềm
• Ví dụ: lớp khái niệm domain model hệ thống máy tính tiền
(9)Xác định lớp phần mềm
(10)Xác đinh phương thức
• Các phương thức lớp xác định cách phân tích biểu đồ tương tác.
• Nói chung, tập hợp tất Messages gửi đến lớp X tất sơ đồ tương tác thường phương thức lớp X phải xác định
(11)Xác đinh phương thức
(12)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 sơ đồ tương tác, đối tượng khởi tạo, chuyển thiết kế sang ngơn ngữ lập trình hướng đối tượng, phải thể ngữ cảnh ngơn ngữ thực • Ví dụ: C ++, Java khơng có phương thức create() mà new()
(13)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 đối tượng chứa bên lớp
• Ví dụ: Find() thơng điệp đến tập đối tượng
(14)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 thuộc tính Role, mối quan hệ thực từ lớp nguồn đến lớp mục tiêu.
• Ví dụ:
(15)Bổ sung role vào mối quan hệ
• Ví dụ:
(16)Sử dụng Package tổ chức domain model
• Để dễ dàng phần thiết kế hướng đối tượng, domain model tổ chức thành package
• Tổ chức domain model thành package thủ tục phức tạp, dựa hai nguyên tắc bản: gắn kết độc lập.
(17)Nhóm lớp vào Package
• Ngun tắc 1: nhóm lớp vào package phải thỏa tiêu chí gắn kết (coherence) sau:
• Mục tiêu: lớp phải trả dịch vụ đáp ứng yêu cầu người dùng • Ổn định: cô lập lớp package phải thực ổn định
trong trình phát triển dự án, sau
• Thời gian sống đối tượng: tiêu chí giúp phân biệt lớp mà đối tượng có thời gian sống khác
• Nguyên tắc 2: nhóm lớp vào package phải giảm thiểu
(18)Nhóm lớp vào Package
• Cách chọn lớp vào package cần phải:
• Có chủ đề, có quan hệ chặt chẽ khái niệm mục đích • Cùng hệ thống phân cấp
• Tham gia use case • Có quan hệ kết hợp chặt
(19)Nhóm lớp vào Package
• Ký hiệu Package UML: hiển thị thư mục dạng tab, Subordinate packages hiển thị bên
• Tên packages
(20)Quyền sở hữu tham chiếu
• Quyền sở hữu:
• Một phần tử sở hữu package chứa
• Tuy nhiên, Một phần tử tham chiếu đến phần tử package khác Trong trường hợp này, tên phần tử xác định bởi tên package theo định dạng: PackageName::ElementName
• Ví dụ:
(21)Package phụ thuộc
• Nếu phần tử mơ hình phụ thuộc vào phần tử khác chúng có mối quan hệ phụ thuộc
• Một package phụ thuộc phần tử bên kết hợp với phần tử trongpackage mục tiêu
(22)Package phụ thuộc
• Ví dụ: package Sales phụ thuộc vào package Core Elements
(23)Ví dụ 1
(24)Ví dụ 1
• Package Core
(25)Ví dụ 1
(26)Ví dụ 1
• Package Sales
(27)Bài tập
• Cho domain model hệ thống đặt vé máy bay, chia domain model thành package sau cho đảm bảo:
• Tính kết dính package
• Giảm tối thiểu phụ thuộc package • Dịch vụ package gì?
(28)Bài tập
(29)Bài tập
• Gợi ý:
• Package 1: gồm lớp liên quan đến chuyến bay • Package 2: lớp liên quan đến việc đặt vé
• Lưu ý:
(30)Bài tập
• Giải pháp 1:
(31)Bài tập
(32)Bài tập
• Giải pháp 2: lớp Flight package Bookings đảm bảo tiêu chí:
• Thời gian sống đối tượng
• Flight có quan hệ chặt với việc đặt vé (Bookings) so với thông tin chung chuyến bay
(33)Bài tập
(34)Bài tập