chuong3domain xuanhiens weblog

52 7 0
chuong3domain xuanhiens weblog

Đ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

• Trong quá trình tạo các quy tắc hoạt động của hệ thống, sẽ khám phá các lớp khái niệm, thuộc tính, hoặc các mối quan hệ mới trong domain model. • Hậu điều kiện trong các[r]

(1)

Chương 3

(2)

Mô hình hóa phạm vi tốn (domain modeling)

Mục tiêu mơ hình hóa để hiểu rõ hệ thống làm việc như nào

• Phân tích yêu cầu xác định cách mà người dùng tương tác với hệ thống (hành vi bên ngồi)

(3)

Mơ hình hóa phạm vi tốn (domain modeling)

Mơ hình hóa phạm vi tốn dựa yếu tố

• Hiểu biết hoạt động mà hệ thống phải thực (từ phân tích yêu cầu, ví dụ, use case)

• Tìm hiểu phạm vi tốn (domain) • Kiến thức thiết kế phần mềm

(4)

Use Cases Domain Model

Use Case Use Case

Use Case N

Actor

System

Actors Use Case

Use Case

Use Case N

Actor System Actors Actor Domain Model Actors Actor Domain Model Actors

Trong phân tích use case, hệ thống xem hộp đen “black box”, xem xét hành vi bên hệ thống

(5)

Domain model

Domain model là đại diện trực quan lớp khái niệm (conceptual classes), các đối tượng mối quan hệ chúng phạm vi tốn.

• Domain model thành phần quan trọng tạo giai đoạn phân tích hướng đối tượng, là sở cho việc thiết kế phần mềm

Domain model cịn gọi conceptual models, domain

(6)

Domain model UML

• Trong UML, domain model được biểu diễn tập hợp các sơ đồ lớp (class diagram), hiển thị:

• Đối tượng lớp khái niệm

(7)

Domain model UML

(8)

Các bước xây dựng Domain Model

• Tìm lớp khái niệm trong phạm vi tốn • Chuẩn bị từ điển liệu

• Tìm mối quan hệ giữa lớp đối tượng.

• Xác định lượng số (Multiplicity) loại đối tượng tham gia vào mối quan hệ

• Tìm thuộc tính của đối tượng.

(9)

Lớp khái niệm - Conceptual Classes

Lớp khái niệm là ý tưởng, vật đối tượng phạm vi toán.

• Lớp khái niệm có phần:

Symbol: biểu diễn hình chữ nhật

(10)

Lớp khái niệm - Conceptual Classes

Một lớp là tập đối tượng có thuộc tính, hành vi/trách nhiệm, mối quan hệ ngữ nghĩa.

• Xác định đối tượng được sử dụng để xác định lớp khái niệm phạm vi tốn.

• Lớp khái niệm là:

(11)

Cách xác định lớp khái niệm

Có cách để xác định lớp khái niệm:

• Xác định cụm danh từ

(12)

Xác định cụm danh từ

• Cụm danh từ xác định từ nguồn:

• Mơ tả phạm vi tốn

• Trong đặc tả use case, tìm kiếm cụm danh từ có liên quan • Danh mục thuật ngữ

• Cụm danh từ lớp khái niệm thuộc tính

• Nếu cụm danh từ lưu thơng tin trạng thái có nhiều hành vi, lớp

(13)

Xác định cụm danh từ

• Ví dụ: mơ tả phần hoạt động rút tiền từ ATM

• ATM kiểm tra số thẻ khách hàng mã PIN

• Nếu đúng, khách hàng kiểm tra số dư tài khoản, rút tiền mặt

• Nếu kiểm tra số dư, ATM hiển thị số dư tài khoản

• Nếu rút tiền mặt ATM yêu cầu khách hàng nhập số tiền, ATM kiểm tra số tiền rút < số dư tài khoản Nếu thỏa ATM xuất tiền mặt cập nhật lại số dư

(14)

Sử dụng danh mục lớp khái niệm

Danh mục lớp khái niệm Ví dụ

Đối tượng vật lý hữu hình Khách hàng, máy ATM

Thông số kỹ thuật, mô tả vật Thông số kỹ thuật sản phẩm, Mô tả chuyến bay

Nơi chốn Cửa hàng, sân bay

Giao dịch Giao dịch rút tiền, tốn

Vai trị người Thủ quỹ, phi công

Hệ thống máy tính điện tử Hệ thống chức thực thẻ tốn, hệ thống kiểm

sốt khơng lưu

Danh mục Danh mục sản phẩm, danh mục phòng ban

(15)

Xác định lớp khái niệm ứng viên

• Từ việc phân tích cụm danh từ danh mục lớp khái niệm, tạo danh sách lớp khái niệm ứng viên, cách:

• Loại bỏ cụm danh từ trùng lắp, khơng liên quan đến vấn đề phân tích

(16)

Từ điển liệu

• Chuẩn bị từ điển liệu cho tất yếu tố mơ hình bao gồm:

• Mô tả phạm vi lớp vấn đề tại, gồm tất giả định ràng buộc

(17)

Từ điển liệu

• Tài khoản (Account) • ATM

• Ngân hàng (Bank)

• Thẻ rút tiền (CashCard) • Số dư

• Tên ngân hàng • Mã PIN

• Nhân viên NH • Khách hàng • Giao dịch • Biên lai

• Ngày thực giao dịch • Loại giao dịch

(18)

Xác định lớp khái niệm ứng viên

• Từ việc phân tích cụm danh từ danh mục lớp khái niệm, tạo danh sách lớp khái niệm ứng viên, cách:

• Loại bỏ cụm danh từ trùng lắp, không liên quan đến vấn đề phân tích

(19)

Xác định lớp khái niệm ứng viên

Biểu diễn lớp UML: có dạng hình chữ nhật có ngăn chứa loại thơng tin:

• Tên lớp

• Danh sách thuộc tính

• Danh sách hoạt động (hành vi – phương thức)

Tên lớp

(20)

Xác định lớp khái niệm ứng viên

• Tài khoản (Account) • ATM

• Ngân hàng (Bank)

• Thẻ rút tiền (CashCard)

• Nhân viên NH • Khách hàng • Giao dịch • Biên lai

(21)

Xác định lớp khái niệm ứng viên

(22)

Tìm mối quan hệ

• Có thể tìm mối quan hệ đối tượng khái niệm dựa vào danh mục loại mối quan hệ sau:

Danh mục Ví dụ

A thành phần vật lý B Máy bay – Cánh máy bay A thành phần logic B Môn học – Học kỳ

A chứa B Hành khách - máy bay

A thành phần logic chứa B Sản phẩm – Danh mục sản phẩm Chuyến bay – lịch trình chuyến bay A chi tiết giao dịch với B Giao dịch – nhật ký giao dich

(23)

Tìm mối quan hệ

Danh mục Ví dụ

A thành phần B Ngân hàng – Nhân viên ngân hàng Phi công – hãng hàng không

A sử dụng quản lý B Thủ quỹ- sổ sách, Phi công - Máy bay A giao tiếp với B Khách hàng - Thu ngân

A có liên quan đến giao dịch

với B Khách hàng - Thanh toán, hành khách- Vé

A thuộc sở hữu B Máy tính tiền– Cửa hàng, Máy bay- hãng hàng khơng A kiện liên quan

(24)

Tìm mối quan hệ

• Bài tập: Tìm mối quan hệ domain hệ thống ATM

• Khách hàng - ?

• Nhân viên ngân hàng - ? • ATM - ?

(25)

Roles

• Quan hệ hai lớp ký hiệu UML đường nối lớp, hai đầu đường nối thường gán Role Role bao gồm tùy chọn sau:

• Lượng số đối tượng tham gia (multiplicity) • Tên của quan hệ

(26)

Xác định lượng số tham gia (Multiplicity)

Multiplicity: số đối tượng của lớp tham gia vào mối quan hệ.

• Với quan hệ, có thơng số multiplicity tạo hai đầu mối quan hệ

(27)

Xác định lượng số tham gia (Multiplicity)

• Ví dụ: hệ thống ATM

• Một khách hàng có thể có nhiều thẻ ATM, thẻ ATM thuộc khách hàng

• Một thẻ ATM ứng với tài khoản thuộc ngân hàng, ngân hàng có nhiều thẻ rút tiền

• Một nhân viên NH thuộc ngân hàng, ngân hàng có nhiều nhân viên

(28)

Xác định lượng số tham gia (Multiplicity)

(29)

Bài tập

Hệ thống đặt vé máy bay, mô tả sau:

• Một chuyến bay (flight) liên quan đến nhiều chặng dừng (stopovers) sân bay

(30)

Bài tập

(31)

Tên mối quan hệ

• Tên mối quan hệ dựa định dạng TypeName-VerbPhrase-TypeName, là chuỗi đọc mang ý nghĩa ngữ cảnh domain model.

• Ví dụ:

(32)

Loại quan hệ lớp

• Quan hệ kết hợp – Association: có loại

• Aggregation • Composition

(33)

Quan hệ lớp

• Quan hệ kết hợp loại Aggregation

• Một lớp danh mục chứa lớp khác • Cịn gọi quan hệ “Has a”

• Chu trình sống Lớp chứa không phụ thuộc vào Lớp chứa • Nếu Lớp chứa bị hủy Lớp chứa vẫn tồn

(34)

Quan hệ lớp

Quan hệ kết hợp loại Composition

• Là quan hệ kết hợp mạnh “owns a”

• Một lớp bao gồm danh mục lớp khác

• Chu trình sống Lớp chứa phụ thuộc vào Lớp chứa • Nếu hủy Lớp chứa thì Lớp chứa sẽ bị hủy theo

(35)

Quan hệ lớp

Quan hệ tổng quát kế thừa - Generalization

• Những đặc điểm chung lớp đặt lớp cha gọi lớp tổng quát, lớp chứa đặc riêng Quan hệ lớp cha lớp gọi quan hệ tổng quát

(36)

Xác định thuộc tính lớp

Thuộc tính:

• Mơ tả trạng thái đối tượng thời điểm • Là giá trị liệu túy

(37)

Xác định thuộc tính lớp

Phân biệt Lớp (class) thuộc tính (attribute)

• Nếu thực thể có thuộc tính mơ tả Lớp

• Nếu thực thể khơng có thuộc tính mơ tả thuộc tính

Biểu diễn thuộc tính domain model

• Thuộc tính lớp đặt ngăn thứ hai ký hiệu Lớp UML

(38)

Xác định thuộc tính lớp

• Thuộc tính thường có kiểu liệu nguyên thủy:

• Boolean, Date, Number, String (Text), Time

• Ví dụ: Tài khoản, có thơng tin mơ tả: Số tài khoản, số dư

(39)

Xác định thuộc tính lớp

Lưu ý:

Khơng sử dụng thuộc tính để trì mối quan hệ lớp

(40)

Các lỗi xác định lớp khái niệm

• Lỗi thường gặp tạo domain model nhầm lẫn lớp khái niệm thuộc tính.

(41)

Các lỗi xác định lớp khái niệm

• Nguyên tắc:

• Nếu vật giới thực không xem số text, có nhiều thơng tin mơ tả lớp khái niệm Ngược lại, thuộc tính

(42)

Bài tập

• Từ mơ tả hệ thống máy rút tiền tự động ATM, vẽ sơ đồ lớp ở mức phân tích, gồm:

• Các lớp khái niệm • Thuộc tính lớp

• Mối quan hệ lớp

(43)

Các quy tắc hoạt động trong sơ đồ use case

(44)

Các quy tắc (Contracts)

• Sơ đồ Use case mô tả đầy đủ hành vi hệ thống, không mô tả chi tiết.

Domain model: mơ tả trực quan lớp khái niệm đối

tượng phạm vi vấn đề đan gquan tâm.

Các quy tắc (contracts) mô tả chi tiết hành vi hệ thống những thay đổi trạng thái đối tượng Domain Model sau hoạt động hệ thống thực hiện.

• Các quy tắc hoạt động giúp xác định hành vi hệ thống

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

(45)

Các quy tắc (Contracts)

Các quy tắc dùng định nghĩa các hoạt động hệ thống

• Các hoạt động mà đó, hệ thống xem hộp đen, xử lý kiện tương tác với hệ thống thông qua giao diện chung

• Ví dụ: quy tắc hoạt động rút tiền qua ATM

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

(46)

Các phần quy tắc

Hoạt động (Operation): tên hoạt động tham số

Tham chiếu (References): các use case mả hoạt động

xãy

Tiền điều kiện (Preconditions):

• Trạng thái hệ thống đối tượng domain model trước hoạt động thực

Hậu điều kiện (Postconditions):

• Trạng thái đối tượng Domain Model sau hoạt động thực thi thành cơng

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

(47)

Các phần quy tắc

Lưu ý:

• Các hậu điều kiện mơ tả thay đổi trạng thái đối tượng Model Domain

• Sự thay đổi trạng thái Domain Model bao gồm: • Các phần tử tạo

• Các mối quan hệ hình thành phá hủy • Các thuộc tính thay đổi

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

(48)

Các phần quy tắc

• Ví dụ: quy tắc hoạt động rút tiền từ ATM

Hoạt động: rút tiền, tham số: Số PIN, số tiền cần rút • Tham chiếu: use case rút tiền thẻ ATM

Tiền điều kiện: Nhập số PIN thành công, tài khoản có đủ tiền, ATM phải có tiền

Hậu điều kiện hoạt động rút tiền:

• Số tiền tài khoản giảm số = số tiền rút, (trạng thái tài khoải bị thay đổi)

• Một biên lai giao dịch tạo (thực thể mới), liên quan đến Tài khoản ATM (domain model thay đổi)

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

(49)

Cập nhật domain model từ quy tắc

• Trong q trình tạo quy tắc hoạt động hệ thống, khám phá lớp khái niệm, thuộc tính, mối quan hệ mới domain model

Hậu điều kiện trong quy tắc thường hỗ trợ việc phân tích, chi tiết xác.

• Từ mơ tả chi tiết quy tắc, việc cập nhật domain model lặp nhiều lần suốt giai đoạn phân tích.

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

(50)

Sử dụng quy tắc

• Nếu Use case model chứa đầy đủ tất yêu cầu chức năng chi tiết để cung cấp cho việc thiết kế hệ thống khơng cần quy tắc.

• Quy tắc dùng tình mà trạng thái của yêu cầu thay đổi chi tiết phức tạp khó nắm bắt use case.

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

(51)

Sử dụng quy tắc

Ví dụ: trong hệ thống đặt vé hãng hàng không, hoạt động đặt vé addNewReservation có độ phức tạp cao liên quan đến tất đối tượng domain model:

• Thay đổi trạng thái domain model

• Tạo thêm đối tượng domain model

Trong trường hợp cần phải viết quy tắc để mô tả chi tiết hoạt động đặt vé để xác định đối tượng liên quan.

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

(52)

Các quy tắc hoạt động

(Contracts, Operations)

Các quy tắc (Contract)

• Tiền điều kiện hậu điều kiện quy tắc dùng để xác định hoạt động đối tượng

Hoạt động (Operation):

Ngày đăng: 27/04/2021, 17:00

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan