1. Trang chủ
  2. » Cao đẳng - Đại học

chuong5classdiagram xuanhiens weblog

34 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô Hình Thiết Kế Cách Tạo Sơ Đồ Lớp Thiết Kế
Người hướng dẫn GV: Từ Thị Xuân Hiền
Chuyên ngành Phân Tích Thiết Kế Hệ Thống
Thể loại Bài Giảng
Định dạng
Số trang 34
Dung lượng 593,42 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• 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]

Trang 1

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)

Trang 2

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)

Trang 3

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

Trang 4

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

Trang 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ế

• 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ệ

Trang 6

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

Trang 7

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.

Trang 9

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

Trang 10

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

Trang 11

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

Trang 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 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

Trang 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 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

Trang 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 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ền 14

Trang 15

Bổ sung role vào mối quan hệ

• Ví dụ:

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ệ

Trang 16

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

Trang 17

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

Trang 18

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

Trang 19

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

• 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.

Trang 20

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

Trang 21

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:

Trang 22

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

Trang 23

Ví dụ 1

• Mô hình package domain của hệ thống máy tính tiền

Trang 24

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

Trang 25

Ví dụ 1

• Package Products

Trang 26

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

Trang 27

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

Trang 28

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

Trang 29

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

Trang 30

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

Trang 31

Bài tập

• Giải pháp 2:

Trang 32

Bài tập

• 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.

Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 32

Trang 33

Bài tập

• Kết quả sơ đồ package

Trang 34

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

Ngày đăng: 20/04/2021, 01:25