1 2

Nội dung

PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN

1. Mô hình hóa chức năng 2. Biểu đồ use case 3. Đặc tả use case 4. Biểu đồ activity 5. Case study

Chương 5. Mô hình hóa chức năng sử dụng use case

1.1. Bức tranh PTKTHT

Mô hình hóa chức năng

• Bức tranh PTKTHTTT • Mục đích • Mô hình hóa chức năng

1

3 4

Bức tranh PTKTHT (2)

1.2. Mục đích

• Thiết lập và duy trì sự thoả thuận giữa khách

hàng và người tham gia dự án về việc hệ thống sẽ làm được những gì • Không nói làm như thế nào để đạt được điều đó • Giúp cho những người phát triển hệ thống một sự hiểu biết rõ hơn về những yêu cầu của hệ thống • Đưa ra những giới hạn mà hệ thống sẽ thực hiện và

KHÔNG thực hiện

• Cung cấp các thông tin cơ bản để lập kế hoạch phát

triển dự án

5 6

1.2. Mục đích (2)

1.2. Mục đích (3)

• Cung cấp những cơ sở để ước lượng giá thành và thời

gian để phát triển hệ thống

• Nắm bắt được những yêu cầu và mục đích của người sử

dụng

2

7 8

1.3. Mô hình hóa yêu cầu (3)

1.3. Mô hình hóa chức năng

Các thành phần chính:

• Mô hình hóa các chức năng mà hệ thống sẽ thực thi • Mô hình bao gồm các chức năng định trước của hệ thống • Sử dụng khái niệm Use Case

9 10

11 12

Nội dung

Biểu đồ Use-Case

1. Mô hình hóa yêu cầu 2. Biểu đồ use case 3. Đặc tả use case 4. Biểu đồ activity 5. Case study

3

2.1. Actor và use case

2.1.1. Tác nhân

Actor

• Tác nhân (actor) biểu diễn bất cứ thứ gì tương tác với hệ thống.

Tác nhân biểu diễn các vai trò của một người dùng trong hệ thống  Có thể là người, máy móc hoặc hệ thống khác mà chúng ta không phải xây dựng Ví dụ như các thiết bị ngoại vi, thậm chí là database

 Có thể chủ động trao đổi thông tin với hệ

• Use case (Chức năng)

thống

Actor

Use Case

Có thể là người đưa thông tin vào hệ thống Có thể là người nhận thông tin.

 Không phải là một phần của hệ thống

• Mô tả chức năng mà hệ thống có • Mục đích là để PHÂN TÍCH yêu cầu nghiệp vụ của bài toán chứ không phải để THIẾT KẾ phần mềm

Actors are EXTERNAL.

13 14

Ví dụ về tác nhân

Tìm kiếm tác nhân của hệ thống • Đặt các câu hỏi sau để tìm ra tác nhân:

– Nhóm người nào yêu cầu hệ thống làm việc giúp họ? – Nhóm người nào kích hoạt chức năng của hệ thống? – Nhóm người nào sẽ duy trì và quản trị hệ thống hoạt

động?

– Hệ thống có tương tác với các thiết bị hay phần mềm

ngoại vi nào khác hay không?

• Thông tin về tác nhân:

Tác nhân KHÔNG phải là một phần của hệ thống!!! Tác nhân có thể là: • Người dùng, • Thiết bị phần cứng • Hệ thống phần mềm khác

– Tên tác nhân phải mô tả vai trò của tác nhân đó một

cách rõ ràng

• Tác nhân trao đổi thông tin với hệ thống:

– Tên nên là danh từ – Cần mô tả khái quát khả năng của tác nhân đó

• Gửi thông tin tới hệ thống • Nhận thông tin từ hệ thống

4

15 16

2.1.2. Use case

Tìm use case của hệ thống

• Xem các yêu cầu chức năng để tìm ra các UC • Đối với mỗi tác nhân tìm được, đặt các câu hỏi:

– Các tác nhân yêu cầu những gì từ hệ thống – Các công việc chính mà tác nhân đó muốn HT thực thi? – Tác nhân đó có tạo ra hay thay đổi dữ liệu gì của HT? – Tác nhân đó có phải thông báo gì cho HT? – Tác nhân đó có cần thông tin thông báo gì từ HT?

• Thông tin về use case:

– Tên của UC nên chỉ rõ kết quả của quá trình tương tác với

Mỗi Use-Case biểu diễn cho một chức năng của hệ thống Use-Case là một chuỗi bao gồm nhiều hành động Mỗi Use-Case có thể mở rộng (extext) thành nhiều Use- Case khác Mỗi Use-Case có thể bao hàm (include) nhiều Use-Case khác Use-Case được đặt bên trong phạm vi hệ thống Ký hiệu: hình elip + tên Use-Case (động từ)

tác nhân

– Tên nên là động từ – Mô tả ngắn gọn về mục đích của UC

Mượn sách

Use Case

Nguyễn Thị Thu Trang, SE-FIT-HUT

17 18

Ví dụ: Xác định tác nhân và Use Case

Những điều nên tránh khi tạo UC

• Tạo ra các UC quá nhỏ

• Hành động quá đơn giản mà chỉ cần mô tả bởi vài dòng

• Tạo ra quá nhiều Use case (hàng chục)

• Nhóm các Use case liên quan thành một Use case tổng quát (mức

1)

• Mô tả các Use Case tổng quát ở một sơ đồ khác (mức 2) • Ví dụ: “Quản lý sách” bao gồm “Nhập sách”, “Xuất sách”, “…”

• Sử dụng các Use-case quá cụ thể, hoặc làm việc với dữ

liệu quá cụ thể. Ví dụ: • “Tìm sách theo tên” (nên là “Tìm sách”) • “Nhập Pin vào máy ATM” (nên là “Nhập PIN”) • “Thêm sách” (nên là “Quản lý sách” bao gồm “Thêm sách”)

5

19 20

Ví dụ: Xác định tác nhân và Use Case

Phân loại tác nhân

21 22

Xác định Use Case

Xác định Use Case

6

23 24

2.2. Mối liên hệ (relationship)

• Mối liên hệ giữa các actor với nhau

2.2.1. Mối liên hệ giữa các actor với nhau • Khái quát hóa (Generalization) • Tác nhân con kế thừa tính chất và

hành vi của tác nhân cha

• Khái quát hóa (Generalization)

• Mối liên hệ giữa actor và use case

• Giao tiếp

• Mối liên hệ giữa các use case với nhau

• Generalization: Khái quát hóa • Include: Bao hàm • Extend: Mở rộng

25 26

2.2.2. Mối liên hệ giữa actor với use case (2)

2.2.2. Mối liên hệ giữa actor với use case

Chiều của quan hệ chính là chiều của tín hiệu gửi đi • Từ tác nhân tới Use Case

• Thiết lập quan hệ giữa Tác nhân và Use Case • Chúng tương tác bằng cách gửi các tín hiệu cho nhau

• Một use case mô hình hóa một hội thoại giữa các tác

nhân và hệ thống

• Một use case được bắt đầu bởi một tác nhân để gọi một

• Kích hoạt Use case • Hỏi thông tin nào đó trong hệ thống • Thay đổi thông tin nào đó trong hệ thống • Thông báo cho UC về một sự kiện đặt biệt nào đó xảy ra với hệ thống

chức năng nào đó trong hệ thống.

• Từ Use Case tới tác nhân:

• Nếu như có một điều gì đó xảy ra với HT và tác nhân đó cần được biết

sự kiện đó

• UC đôi khi cần hỏi thông tin nào đó từ một tác nhân trước khi UC đó

đưa ra một quyết định

Use Case

Association

Actor

7

27 28

Quan hệ generalization

2.2.3. Mối liên hệ giữa các use case với nhau

• Được sử dụng để chỉ ra một vài tính chất chung của một nhóm tác nhân hoặc UC

• Sử dụng khái niệm kế thừa

• Generalization • <> • always use • <>

• Mô tả hành vi chung (chia sẻ) trong

• sometime use

UC cha

• Mô tả hành vi riêng trong (các) UC

con

29 30

<> • Cho phép một UC sử dụng chức năng của UC khác • Chức năng của UC Inclusion sẽ bắt buộc được gọi

<> • Cho phép mở rộng chức năng của một UC • Chèn hành vi của UC Extension vào UC Base • Chỉ chèn khi điều kiện extend đúng (mở rộng, phát sinh)

trong UC Base

• Sử dụng stereotype là <>

(Khi thực hiện thực hiện UC Base thì thực hiện UC extension ở một số tình huống nào đó, chứ không bắt buộc)

• Chèn vào lớp cơ sở tại điểm phát sinh (extension point) • Sử dụng stereotype là <>

8

32 34

35 37

Nội dung

Biểu đồ Use Case

1. Mô hình hóa yêu cầu 2. Biểu đồ use case 3. Đặc tả use case 4. Biểu đồ activity 5. Case study

• Biểu đồ use case (use case diagram) • Là tập hợp các actor và các use case lại; bổ liên sung các mối (association) quan giữa chúng và lập thành biểu đồ use case

Đặc tả use case

Đặc tả Use Case • Kết thúc quá trình mô hình hóa yêu cầu phải đặc tả lại tất

cả Use-case của hệ thống

• Mỗi Use-Case cần những thông tin

• Tên

• Đặc tả use case là gì? • Mẫu đặc tả use case • Ví dụ minh họa từ các case study

• Tên của Use case • Mô tả ngắn gọn:

• Mô tả về vai trò và mục đích của use case, tránh kiểu diễn xuôi tên Use Case

• Ràng buộc (điều kiện)

• Tiền điều kiện • Hậu điều kiện

• Luồng sự kiện (kịch bản):

• Mô tả bằng lời những gì mà hệ thống sẽ làm thể hiện trên use-case, luồng sự

kiện chính, luồng sự kiện con, luồng sự kiện ngoại lệ.

• Biểu đồ hoạt động

• Minh họa luồng sự kiện bằng mô hình

• Các yêu cầu đặc biệt…

9

38 39

Luồng sự kiện của use-case

Luồng sự kiện của use-case (2)

• Trả lời được quá trình từ khi bắt đầu đến khi kết thúc của

• Luồng chính (Basic flow)

• Luồng lý tưởng mà Use case thường hoạt động

một use-case • Chỉ mô tả chi tiết các sự kiện thuộc use-case đó • Nếu có sự liên hệ với Use Case khác, nên có sự phân tích và tham

khảo ngắn gọn

• Mô tả dữ liệu được trao đổi giữa tác nhân và use-case đó

• Luồng phát sinh (Alternative flow) • Sử dụng nhiều lần trong luồng chính • Các trường hợp đặc biệt (vd nhấn mạnh một tính năng của HT) • Gây ra lỗi, cách xử lý lỗi trong tình huống đó

• Chú ý

• Chỉ cần luồng chính là có thể hiểu được tác vụ chính mà Use Case

đó sẽ thực thi

• Cấu trúc: Ai làm gì, khi nào, với dữ liệu gì, [vì mục đích gì] • Cần phân tích rõ hệ thống cần phải làm gì để đáp ứng được yêu cầu của tác nhân đó. Không được mặc định cho rằng hệ thống tự biết làm điều đó

• Tránh mô tả chức năng hoặc GUI (Graphic User Interface) • Tránh mô tả chung chung, hoặc lúc nào cũng đúng

• Phải có lời gọi luồng phát sinh từ luồng chính • Tránh viết luồng phát sinh dài hơn luồng chính • Tránh viết luồng phát sinh quá dài • Tránh tách quá nhiều luồng phát sinh

40 41

Luồng sự kiện của use-case (3)

Ví dụ

• Kịch bản là một thể hiện của UC đó

• Một Use Case có nhiều kịch bản tùy thuộc vào ngữ

cảnh cụ thể mà nó phát sinh

42 43

UC Rút tiền 1. Gọi UC “Xác thực KH” 2. Hiển thị menu. 3. KH chọn chức năng “Rút tiền”

4.

...

UC Xác thực KH 1. Đưa thẻ vào máy 2. Kiểm tra thẻ 3. KH nhập PIN 4. Hệ thống kiểm tra PIN E1: Thẻ sai E2: Sai PIN E3: ...

10

ID:

Mức quan trọng:

Tên Use-case:

Loại Use-case:

Tác nhân chính:

Người liên quan và công việc quan tâm:

Mô tả tóm tắt:

Ví dụ đặc tả UC Rút tiền mặt

Ràng buộc:

Loại:

• Luồng phát sinh:

• Luồng chính:

• Luồng phát sinh “Rút tiền xu”

1.Gọi UC “Xác thực KH” để

Các mối quan hệ: 1. Kết hợp 2. Bao hàm 3. Mở rộng 4.

Tổng quát hóa

ktra KH

2.Hiển thị menu 3.KH chọn chức năng “Rút

tiền”

nếu <điều kiện> đúng thì thực hiện S-1: thực hiện công việc /*TH1*/ nếu <điều kiện> đúng thì thực hiện S-2: thực hiện công việc /*TH2*/

Các dòng sự kiện tổng quát chính: /*mô tả các dòng sự kiện chính*/ 1. Hoạt động 1: 2. Hoạt động 2: /*hoạt động cho nhiều trường hợp xử lý*/ 3. Hoạt động 3: …. n. Hoạt động n:

4.Nhập số tiền cần rút 5.HT gửi giao dịch tới ngân

hàng chờ chấp thuận 6.Máy ATM xuất tiền (tiền

phát sinh tại bước 6 trong luồng chính (Có thể có luồng phát sinh khác như Hết tiền…) • Luồng phát sinh Rút tiền xu: (Phần này có thể viết chung với UC Rút tiền, hoặc có thể viết riêng như một UC nếu nó tương đối phức tạp) 1. Nếu KH chọn thể loại tiền xu 2. KH nhập số lượng xu 3. Hệ thống tính ra tổng số tiền

giấy)

1. Hoạt động 1 2…… 3. Hoạt động n

cần rút

7.Trả lại thẻ 8.In biên lai

Các dòng sự kiện chi tiết chính: /*mô tả các hoạt động chi tiết cho các trường hợp trên*/ S-1: Thực hiện công việc A /*mô tả cho trường hợp 1 TH1*/ S-2: Thực hiện công việc B /*mô tả cho trường hợp 2 TH2*/

1. Hoạt động 1 2…… 3. Hoạt động n

4. KH chấp nhận 5. Khay tiền xu mở để xuất tiền 6. UC Rút tiền tiếp tục thực hiện

Các dòng sự kiện ngoại lệ: /*mô tả các dòng sự kiện xử lý ngoại lệ cho các dòng sự kiện chính hoặc các dòng sự kiện con*/ 1.a. Hoạt động ngoại lệ cho hoạt động 1 3.a. Hoạt động ngoại lệ cho hoạt động 3 S-1 2.a. Hoạt động ngoại lệ cho hoạt động 2 trong S-1

44 45

46 47

Tên Use-case: Đặng nhập

ID: 1

Mức quan trọng: cao

Tác nhân chính: người dùng

Loại Use-case: chi tiết cần thiết

Người liên quan và công việc quan tâm: người dùng muốn đăng nhập vào ht để thực hiện một thao tác trên HT

Biểu đồ hoạt động

Mô tả tóm tắt: Use-Case này mô tả xử lý đăng nhập vào HT của một người dùng

Ràng buộc: Người dùng chọn chức năng đăng nhập từ trang chủ của HT Loại: Bên ngoài

• Biểu đồ hoạt động trong mô hình use case được sử dụng

Các mối quan hệ: 1. Kết hợp: Người dùng 2. Bao hàm: không có 3. Mở rộng: không có 4.

Tổng quát hóa: không có

để lưu lại các hoạt động và các hành động được thực hiện trong một use case  Minh họa luồng sự kiện • Biểu đồ luồng (flow chart): Chỉ ra luồng điều khiển từ hoạt động

hoặc hành động này đến hoạt động/hành động khác.

nếu người dùng nhập thông tin đăng nhập thực hiện S-1: xử lý đăng nhập nếu người dùng chọn quên mật khẩu thực hiện S-2: xử lý quên mật khẩu

Các dòng sự kiện chính: /*mô tả các dòng sự kiện chính*/ 1. Hệ thống hiển thị trên màn hình đăng nhập 2. Người dùng chọn chức năng: /*hoạt động cho nhiều trường hợp xử lý*/ 3. hệ thống hiển thị màn hình thông báo kết quả cho giao tác liên quan đến người dùng

This use case starts when the Registrar requests that the system close registration.

Activity 2

1. kiểm tra thông tin tài khoản 2. Hiển thị màn hình thông báo đăng nhập thành công

1. The system checks to see if registration is in progress. If it is, then a message is displayed to the Registrar and the use case terminates. The Close Registration processing cannot be performed if registration is in progress.

Activity 1

Activity 3

Các dòng sự kiện con: /*mô tả các hoạt động chi tiết cho các trường hợp trên*/ S-1: Xử lý đăng nhập S-2: Xử lý quên mật khẩu:

1. HT hiển thị màn hình để người dùng nhập Email 2. Người dùng nhập email và chọn nút chức năng lấy lại mật khẩu 3. HT kiểm tra email hợp lệ 4. Gởi liên kết để tạo lại mật khẩu mới 5. Gởi email thông báo đã tạo mới mật khẩu

2. For each course offering, the system checks if a professor has signed up to teach the course offering and at least three students have registered. If so, the system commits the course offering for each schedule that contains it.

Hệ thống hiển thị lại màn hình đăng nhập để khách hàng nhập thông tin. Quy lại bước 1 trong luồng sự kiện S-1

Các dòng sự kiện ngoại lệ: /*mô tả các dòng sự kiện xử lý ngoại lệ cho các dòng sự kiện chính hoặc các dòng sự kiện con*/ S-1 2a. Xử lý nhập mật khẩu sai 1. 2. S-2.3a. Xử lý nhập email không hợp lệ 1. Hiển thị thông báo lỗi và yêu cầu nhập lại email 2. Quay lại bước 3 trong S-2

11

Flow of Events

Biểu đồ hoạt động

Biểu đồ hoạt động (2)

• Hoạt động

• Đặc tả cho hành vi được diễn tả như một luồng thực thi thông qua sự sắp xếp thứ tự của các đơn vị nhỏ hơn.

• Các đơn vị nhỏ hơn bao gồm các hoạt động lồng nhau và

các hành động riêng lẻ cơ bản

• Có thể chứa các ràng buộc biểu thức logic khi hoạt động

được gọi hoặc kết thúc

49

48

Biểu đồ hoạt động

Biểu đồ hoạt động

12

50 51

Biểu đồ hoạt động

• Được sử dụng để minh hoạ luồng sự kiện

53 54

13

55 56

Case study – Course Registration

Mô hình hóa nghiệp vụ

• Xác định được phạm vi, hệ thống, trực quan hóa hệ thống phức tạp

• Nắm bắt các yêu cầu nghiệp vụ, biểu

diễn các quy trình nghiệp vụ

• Actor? • Use case? • Relationship?

Hệ thống

• Biểu diễn sự thay đổi, cải tiến quy trình đã tồn tại, hoặc xây dựng quy trình mới, hoặc nâng cấp môi trường,…

Mô hình hóa

60 61

Các bước mô hình hóa nghiệp vụ

Các bước mô hình hóa nghiệp vụ

• Đánh giá hiện trạng tổ chức

• Mục đích:

• Đánh giá hiện trạng tổ chức • Nắm bắt thông tin về tổ chức:

• Đánh giá và nắm bắt thông tin về tổ chức. • Xác định các đối tượng liên quan (stakerholder) và khách hàng của hệ

• Cơ cấu tổ chức, phân cấp và các vai trò trong hệ thống. • Mô tả ngắn gọn các thành phần và mối quan hệ này thông qua

thống.

sơ đồ tổ chức

• Định nghĩa phạm vị của việc mô hình hóa nghiệp vụ. • Xác định những tiềm năng cải tiến và các mục tiêu mới của tổ chức. • Mô tả những mục tiêu chính của tổ chức.

Tổ văn phòng

Tổ bảo vệ

Tổ tin học

Tổ thu ngân

Tổ mặt hàng

62 63

Sơ đồ tổ chức của siêu thị

14

Các bước mô hình hóa nghiệp vụ

Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức

• Đánh giá hiện trạng tổ chức

64 65

Mô tả

• Nắm bắt và phân tích các yêu tố sau:

Tổ văn phòng

Gồm 1 Giám Đốc và 2 phó Giám Đốc có nhiệm vụ điều phối toàn bộ hoạt động của siêu thị. Tổ phải nắm được tình hình mua bán, doanh thu của siêu thị để báo cáo lại cho ban GĐ. Việc báo cáo thực hiện hàng tháng, hàng quý hoặc cũng có khi báo cáo đột xuất theo yêu cầu

Tổ bảo vệ

Kiểm tra và bảo vệ an ninh của siêu thị, ghi nhận hàng hóa đổi lại của khách hàng

• Hỗ trợ ra quyết định • Ưu thế cạnh tranh • Hoàn vốn đầu tư, chỉ ra lợi kinh tế rõ ràng • Giảm chi phí • Hỗ trợ cho việc quản lý nghiệp vụ. • Khả năng thực hiện công việc phải nhanh hơn và tốt hơn.

Tổ thu ngân Thực hiện việc bán hàng và lập hóa đơn cho khách hàng, đồng thời ghi nhận lại số hàng hóa bán được của mỗi loại để báo cáo cho tổ quản lý sau mỗi ca làm việc

Tổ mặt hàng Kiểm tra chất lượng hàng hóa và nắm tình trạng hàng hóa của siêu thị, đảm bảo hàng hóa luôn ở trong tình trạng tốt nhất khi đến tay khách hàng. Khi phát hiện hàng hư hỏng phải kịp thời báo cáo cho tổ văn phòng để có biện pháp giải quyết và điều phối hàng

Tổ tin học

Thực hiện việc thu thập, kết xuất các báo cáo cần thiết phục vụ cho tổ văn phòng

Các bước mô hình hóa nghiệp vụ

Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức

• Đánh giá hiện trạng tổ chức

• Ví dụ: xác định các đối tượng liên quan và khách hàng trong hệ

thống siêu thị

• Xác định các đối tượng liên quan và khách hàng

• Đối tượng liên quanL là những người chịu ảnh hưởng trực tiếp từ các

66 67

Tên

Đại diện

Vai trò

tác động của hệ thống.

• Khách hàng: người dùng hệ thống, có thể những người liên quan

Người quản lý

Giám đốc, người quản lý siêu thị

• Mô tả nhu cầu của đối tượng liên quan

Theo dõi tiến trình phát triển của dự án và theo dõi tình hình hoạt động của siêu thị

Chịu trách nhiệm trong khâu bán hàng ở siêu thị, duy trì hoạt động của siêu thị

Nhân viên bán hàng Tên

Người nhập thông tin trong hệ thống Mô tả

Đối tượng liên quan

Người quản lý

Người quản lý

Đáp ứng các nhu cầu quản lý siêu thị như hàng hóa, khách hàng, doanh số.

Nhân viên bán hàng

Nhân viên bán hàng

Đảm bảo rằng hệ thống sẽ đáp ứng các nhu cầu của công việc bán hàng

Khách hàng Đáp ứng nhu cầu tra cứu thông tin về

hàng hóa có trong siêu thị

15

Các bước mô hình hóa nghiệp vụ

Các bước mô hình hóa nghiệp vụ

• Đánh giá hiện trạng tổ chức

• Đánh giá hiện trạng tổ chức

• Giới hạn hệ thống phát triển

• Giới hạn hệ thống phát triển

• Xác định ranh giới phát triển hệ thống bằng cách

• Chỉ ra những thực thể nằm ngoài hệ thống • Chỉ ra những thực thể bên trong tổ chức như nằm ngoài hệ thống

68 69

Các bước mô hình hóa nghiệp vụ

Các bước mô hình hóa nghiệp vụ

• Đánh giá hiện trạng tổ chức

• Xác định thuật ngữ nghiệp vụ

• Ví dụ: xác định và trình bày các vấn đề của hệ thống

16

70 71

Mô hình hóa nghiệp vụ với mô hình Use case

Mô hình hóa nghiệp vụ với mô hình Use case

• Cách thực hiện

• Xác định ranh giới của nghiệp vụ • Xác định tác nhân (Actor) • Xác định nghiệp vụ/chức năng (Use-case) • Xác định mối quan hệ giữa Actor với Actor, giữa Actor với Use-

case, giữa Use-case với Use-case

• Mô hình hóa nghiệp vụ với mô hình Use-case

72 73

Mô hình hóa nghiệp vụ với mô hình Use case

17

74