Ca sử dụng: ghi nhận các mặt hàng

Một phần của tài liệu Thiết kế hướng đối tượng sử dụng UML (Trang 26 - 46)

Các tác nhân: người bán hàng, khách hàng

Mô t: Khách hàng mang các mặt hàng ñến quầy tính tiền. Người bán hàng ghi nhận các mặt hàng và thông báo tổng số tiền phải trả.

Quan hệ sử dụng

Kí hiệu

Mua hàng trả một lần

Mua hàng trảgóp

<< use >>

Quan hệsử dụng

Ghi nhận các mặt hàng

<< use >>

Ngược với quan hệmởrộng, các ca sửdụng trong quan hệsửdụng không nhất thiết kết hợp với cùng tác nhân.

53

Cách xác ñịnh các ca sử dụng

Phương pháp phỏng vấn

Khó khăn, vì hai người khác nhau ñược phỏng vấn có thể ñưa ra ý kiến khác nhau

Phương pháp hội thảo (workshop)

Tập hợp tất cả những ai liên quan ñến hệ thống ñể thảo luận: các nhà tin học và khách hàng (người sử dụng)

Mỗi người ñều ñưa ra ý kiến

Cách xác ñịnh các ca sử dụng

Cách tiến hành hội thảo

Liệt kê tất cả các tác nhân có thể

Liệt kê tất cả các ca sử dụng có thể

Phân tích, biện chứng mỗi ca sử dụng bằng cách viết ra một mô tả ñơn giản

Mô hình hóa các ca sử dụng và tác nhân

55

Cách xác ñịnh các ca sử dụng

Khuyến khích

Không nên cố gắng tìm mọi ca sử dụng,

• Trong quá trình phát triển các ca sử dụng sẽ lộ diện dần

Nếu không thể biện chứng cho một ca sử dụng

• Có thể ñó không phải là ca sử dụng

Sắp xếp các ca sử dụng

Khi tất cả các ca sử dụng ñã ñược xác ñịnh

Tiến trình phát triển gồm nhiều bước lặp

Mỗi bước lặp thực hiện thiết kế, mã hóa và kiểm thử chỉ mt vài ca sdng

Làm sao chia các ca sử dụng vào các bước lặp?

57

Sắp xếp các ca sử dụng

Lặp 1 Lặp 2 Lặp 3 …

A B

C

D

Các ca sửdụng

Sắp xếp các ca sử dụng

Các ca sử dụng nên ñược thực hiện trước

Các ca sử dụng chứa các rủi ro/nguy cơ

Các ca sử dụng kiến trúc chính

Các ca sử dụng ñòi hỏi nghiên cứu mới, công nghệ mới

Các ca sử dụng mà khách hàng quan tâm hơn

59

Bài tập 1

Máy rút tin ATM có các chức năng chính nhưsau:

Cấp phát tiền cho những ai có thẻngân hàng (cho phép rút một sốlượng tiền bởi hệthống thông tin của ngân hàng) và những ai có thẻVISA (cho phép từxa bởi hệthống VISA)

Cho xem kiểm tra sốtiến tài khoản và bỏtiền vào tài khoản bằng tiền mặt hoặc ngân phiếuñối với những ai có thẻngân hàng

Tất cảcác giao tácñềuñược kiểm tra an toàn

Kiểm tra mã PIN

Mã PIN nhập sai 3 lần thì thẻsẽbị“nuốt”

Cần phải thường xuyên nạp tiền vào máy, lấy ngân phiếu và các thẻbịnuốt ra

Xácñịnh các tác nhân, các ca sửdụng và vẽbiểuñồca sử dụng

Bài tập 1

Các tác nhân

Người có thẻngân hàng (bankcard)

Người có thẻVISA (VISAcard)

Người vận hành máy (operator)

Hệthống VISA (VISA)

Hệthống thông tin ngân hàng (bank)

61

Bài tập 1

Các ca sửdụng

Rút tiền với thẻngân hàng (withdraw by bankcard)

Rút tiền với thẻVISA (withdraw by VISAcard)

Kiểm tra mã PIN (identify)

Xem sốtiền còn trong tài khoản (balance)

Bỏtiền vào tài khoản bằng ngân phiếu hoặc tiền mặt (deposit)

Nạp tiền vào máy (put money)

Lấy thẻbịnuốt trong máy (get cards)

Lấy ngân phiếu trong máy (get cheques)

Bài tập 1

VISAcard

withdraw with VISA card

VISA

bankcard

withdraw with bank card balance

deposit

deposit by cheque deposit by cash

bank

identify

<<extend>>

<<include>>

63

Bài tập 1

operator

put cash

get cards

get cheques

Bài tập 2

Qun lýñào to nhân viên: Một công ty muốn mô tảbằng UML việcñào tạo nhân viênñểtin học hóa một sốcông việc. Việcñào tạoñược bắtñầu khi người quản lýñào tạo nhậnñược yêu cầu ñào tạo của một nhân viên. Nhân viên này có thểxem danh mục các chuyênñề ñào tạo của cácñơn vị ñào tạo ký kết với công ty.

Yêu cầu của nhân viênñược xem xét bởi người quản lýñào tạo và người quản lý sẽtrảlời là chấp nhận hay từchốiñềnghị ñó. Trong trường hợp chấp nhận, người quản lý sẽxácñịnh chuyênñềphù hợp trong danh mục các chuyênñề, sauñó gửi cho nhân viên nội dung của chuyênñềvà danh sách các khóañào tạo. Nhân viên sẽ chọn khóañào tạo và người quản lý sẽ ñăng ký khóa học vớiñơn vị ñào tạo cho nhân viên. Trong trường hợp muốn hủy bỏ ñăng ký khóañào tạo, nhân viên phải thông báo sớm cho người quản lý biếtñểngười quản lý thực hiện hủy bỏ. Cuối khóañào tạo, nhân viên chuyển phiếuñánh giá kết quảhọc vềcho công ty. Người quản lý sẽkiểm tra hóañơn thanh toán tiền củañơn vị ñào tạo.

Xây dựng biểuñồca sửdụng.

65

Nội dung

Khái niệm cơ bản hướng ñối tượng

Biểu ñồ ca sử dụng

Thiết kế cấu trúc tĩnh

Thiết kế cấu trúc ñộng

Sinh mã

Cấu trúc tĩnh

Mô hình khái niệm

Biểu ñồ lớp

Biểu ñồ ñối tượng

67

Mô hình khái niệm

Xácñịnh các “khái niệm” quan trọng trong hệthống

Mô hình khái niệm (conceptual model) mô tảcác khái niệm trong các quan hệcủa chúng

UML không cung cấp mô hình khái niệm, tuy nhiên cung cấp kí hiệu và cú phápñểbiểu diễn mô hìnhñó chính là biuñồlp

Ởgiaiñoạn này, mô hình khái niệm cònñược gọi biểu ñồlớp phân tích (analysis class diagram) – lưu ý, khác với biểuñồlớp thiết kế(design class diagram)

Ngoài ra, mô hình khái niệm cũng cònñược gọi là mô hình lĩnh vực (domain model)

Mô hình khái niệm

Mô hình khái niệm gồm:

Các khái nim của lĩnh vực nghiên cứu

Các thuc tính các thao tác của các khái niệm này

Các quan hệ của các khái niệm này

Một khái niệm là biểu diễn ở mức cao (trừu tượng) về một sự vật

Một khái niệm là một phần tử của lĩnh vực nghiên cứu, chứ không phải một phần tử của phần mềm hay hệ thống

69

Mô hình khái niệm

Trong mô hình khái niệm, chúng ta sẽnắm bắt các khái niệm nhận biết bởi khách hàng

Ví dụcác khái niệmñúng: khái nim gn lin vi vnñề

Thang máy trong hệthốngñiều khiển thang máy

Vé máy bay trong hệthốngñặt vé máy may

ðặt hàng trong hệthống mua bán hàng qua mạng

Ví dụtồi vềkhái niệm: khái nim gn lin vi gii pháp

DanhSachKhachHang – bảng các khách hàng

EventTrigger – tiến trình thực hiện duyệt hệthống 10 phút một lần

Mô hình khái niệm

Làm sao biết ñược một khái niệm là ñúng hay không?

Nguyên tắc: “Nếu khách hàng không hiu khái nim, rt có thể ñó không phi là khái nim

Mô hình khái niệm sẽ ñược chuyển dần sang biểu ñồ lớp thiết kế trong giai ñoạn xây dựng

71

Xác ñịnh các khái niệm

ðể xác ñịnh các khái niệm, dựa vào ñặc tả yêu cầu, mà cụ thể hơn là dựa vào các ca sử dụng

Ví dụ: ca sử dụng “mua hàng

Các khái niệm có thể: KháchHàng, NgườiBánHàng, TínhTin, MuaHàng, MtHàng, …

Xác ñịnh các khái niệm

Một số ứng cử viên của khái niệm từ ñặc tả hoặc ca sử dụng:

Cácñối tượng vật lý (xe ôtô)

Các vịtrí, ñịañiểm (nhà ga)

Các giao tác (thanh toán)

Các vai trò của con người (người bán)

Các hệthống khácởbên ngoài (cơsởdữliệu từxa)

Danh từtrừu tượng (sựkhát, ăn uống)

Các tổchức (ñại học)

Các sựkiện (cấp cứu)

Nguyên tắc/chính sách

73

Xác ñịnh các khái niệm

Cách khác ñể xác ñịnh các khái niệm

Các danh từvà cụm danh từtrongñặc tảyêu cầu hoặcñặc tảca sửdụng có thểlà các khái niệm

Dựa vào hiểu biết và kinh nghiệm loại bỏcác danh từ và cụm danh từkhông là các khái niệm

Ví dụ: dựa vào kịch bản ca sử dụng “mua hàng

Gạch chân các danh từvà cụm danh từ

Xác ñịnh các khái niệm

Ví dụ

Hành ñộng ca tác nhân Hành ñộng ca hthng 1. Một khách hàng ñưa

hàng ñã chọn mua ñến quầy tính tiền.

2. Người bán hàng ghi nhận từng mặt hàng.

Nếu một mặt hàng có số lượng nhiều hơn một thì người bán hàng có thểnhập vào một số.

3. Xác ñịnh mặt hàng, hiển thị các thông tin và giá mặt hàng.

Sốnày ñược hiển thị.

75

Xác ñịnh các khái niệm

Ví dụ

4. Sau khiñã ghi nhận tất cảcác mặt hàng, người bán hàng báo hiệu kết thúc việc ghi nhận hàng.

6. Người bán hàng thông báo tổng sốtiền phải trảcho khách hàng.

7. Khách hàng trảtiền cho người bán hàng.

5. Tính và hiển thịtổng số tiền.

Hành ñộng ca tác nhân Hành ñộng ca hthng

Xác ñịnh các khái niệm

Ví dụ

8.Người bán hàng nhập số tiền khách hàng trả.

10.Người bán hàng xác nhận sựtrảtiền, lấy tiền dư trảcho khách hàng vàñưa cho khách hàng phiếu bán hàng.

12. Khách hàng rời quầy thu tiền với túi hàng

9.Hiển thịtiền dưvà in phiếu bán hàng

11. Ghi nhận phiên bán hàng.

Hành ñộng ca tác nhân Hành ñộng ca hthng

77

Xác ñịnh các khái niệm

Phân biệt giữa khái niệm (concept) và thuộc tính (attribut)

Nếu một phần tửcủa lĩnh vực nghiên cứu không là một con sốhoặc một chuỗi kí tựthì có thể ñó là một khái niệm

Ví dụ: Cần xây dựng phần mềm quản lý các chuyến bay.

ðích của một chuyến bay là thuộc tính của một chuyến bay hay là một khái niệm khác ?

Trảlời: ñích một chuyến bay là một sân bay, không phải là một con sốhay văn bản, ñó là một khái niệm

Xác ñịnh các khái niệm

Lớp “MôTả”

Lớp MôTả là lớp chứa thông tin mô tả các ñối tượng khác

• Ví dụ: Lớp MặtHàng chứa các thông tin vềMặt Hàng

MặtHàng mãMH tênMH: text giá sốXêri màuSắc

Phương án 1 (chưa tốt)

79

Xác ñịnh các khái niệm

Lớp “MôTả”

MặtHàng sốXêri màuSắc

Phương án 2 (tốt hơn)

MôTảMặtHàng mãMH tênMH: text giá

* ðược mô tả 1

Xác ñịnh các khái niệm

Lớp “MôTả”

Khi nào sử dụng lớp “MôTả”

• Khi cần giảm bớt sựdưthừa, trùng lặp thông tin

• Khi cần mô tảvề ñối tượngñộc lập với cácñối tượng cụthể

• Khi cần cần duy trì thông tin về ñối tượng cho dù cácñối tượng cụthểbịxóa

81

Xác ñịnh các khái niệm

Lớp “MôTả”

Ví dụ: trong lĩnh vực hàng không, cần mô tả quan hệ giữa các chuyến bay và các sân bay

ChuyếnBay ngày giờ sốHiệu

SânBay

* Bay ñến 1 tên

Phương án 1

Xác ñịnh các khái niệm

Lớp “MôTả”

MôTảChuyếnBay sốHiệu

SânBay

* Bay ñến 1 tên

Phương án 2 ChuyếnBay

ngày giờ

* 1

83

Biểu diễn khái niệm

Sử dụng kí hiệu của biểu ñồ lớp

MôtảMặtHàng Khái niệm

Các thuộc tính Các thao tác (chưa xétñếnở giaiñoạn này)

Thuộc tính

Các thuộc tính (attribut) của một khái niệm biểu diễn dữliệu cần thiết cho các thểhiện (instance) của khái niệm

Ví dụ

MôtảMặtHàng Khái niệm

Các thuộc tính mã

tên: text

Kiểu (không bắt buộc)

85

Thuộc tính

Một thuộc tính chỉ ñại diện cho các dữliệu liên quan ñến khái niệmshuthuộc tínhñó

Ví dụ

NgườiBánHàng tên

sốQuầy

NgườiBánHàng tên

Quầy số Sai

ðúng

Thuộc tính

Cách xác ñịnh các thuộc tính

Các con số và chuỗi kí tự là các thuộc tính

Nếu một tính chất của một khái niệm không thể làm ñược ñiều gì thì rất có thể ñó là thuộc tính

Nếu nghi ngờ một thuộc tính là khái niệm, thì ñơn giản hãy coi ñó là khái niệm

• Ví dụ: lương là thuộc tính hay khái niệm so với khái niệm công nhân ?

• Nếu nghi ngờ ñó là khái niệm thì coi nhưlương công nhân là hai khái niệm tách rời

87

Thao tác

Khái niệm có thể có các thao tác (operation)

Thao tác của khái niệm chính là khả năng thực hiện của một thể hiện của khái niệm

Ví dụ

MặtHàngBán Khái niệm

Các thuộc tính ngày

giờBắtðầu: Time

tổngTiền(): Integer Thao tác

Thao tác

Ở giai ñoạn elaboration, mô hình khái niệm có thể không nht thiết phi mô tcác thao tác của khái niệm

Giai ñoạn construction sẽ thực hiện công việc này một cách chi tiết và ñầy ñủ

89

Kết hợp

Kết hp (association) biểu diễn quan hệgiữa các thể hiện của các khái niệm

Ví dụ: kết hợp cha giữa khái niệm ca hàng và khái niệm mt hàng

Kí hiệu

CửaHàng Chứa > MặtHàng

Kết hợp

Kết hợp

Có thểtồn tại kết hợp của nhiều hơn hai khái niệm

Ví dụ

Person Company

function Profession

work employ

91

Kết hợp

Bi số(multiplicity) của vai trò chỉra sốthểhiện có thểcủa quan hệtham gia vào quan hệ

Các bội sốcó thể

1: chỉ ñúng một

1..*: từmộtñến nhiều

*: từ0 ñến nhiều

m..n: từm ñến n

Ví dụ

MặtHàng CửaHàng 1 Chứa > *

Hạn chế kết hợp (qualificator)

Giảm sốthểhiện tham gia vào một kết hợp

Kí hiệu

Mỗi thểhiện A với giá trịkey xácñịnh một tập con các thểhiện B tham gia vào kết hợp

B

Một phần của tài liệu Thiết kế hướng đối tượng sử dụng UML (Trang 26 - 46)

Tải bản đầy đủ (PDF)

(77 trang)