Bài 2: Mô hình use-case

2.1 M u
S thi u hi u bi t gi a khách hàng và nhà thi t k h thông tin thư ng d n n nh nghĩa không chính xác yêu c u c a khách hàng. S khác nhau gi a mô hình bài toán và l i gi i, cũng như s bi n i gi a chúng thư ng là nguyên nhân d n n nh ng sai sót trong lúc gi i thích v n . Nh ng sai sót thư ng g p ó là: hoàn toàn không hi u yêu c u c a khách hàng ho c hi u không n nơi n ch n các yêu c u ó. Phương pháp ph bi n gi i quy t v n này ó là mô hình hóa các trư ng h p s d ng (mô hình use-case), nh nó chúng ta có th xác nh ư c ch c năng c a h m t cách ơn gi n, d hi u hơn i v i nh ng ngư i tham gia thi t k . Phương pháp này cho phép xây d ng m t ngôn ng có th trao i thông tin gi a các bên. S ơn gi n c a mô hình use-case là nguyên nhân chính d n n vi c s d ng nó không ch làm cơ s ký h p ng gi a khách hàng và nhóm thi t k mà còn là cơ s cho c quá trình t o nên s n ph m (ví d . Rational Unified Process là quá trình ư c t o nên t mô hình use-case). Các khái ni m cơ b n s d ng trong mô hình use-case s ư c gi i thi u ph n m t. Sau ó chúng ta s nghiên c u các tác nhân (actor), m i liên h gi a các use-case và m i liên h gi a các tác nhân. Cu i cùng b n bư c liên ti p trong quá trình xây d ng mô hình use-case s ư c trình bày.

2.2

Khái ni m cơ b n
Ý nghĩa Ký hi u

Mô hình use-case s d ng các khái ni m cơ b n trình bày trong B ng 1 Khái ni m

Tác nhân (actor)

Ngư i (ho c v t nào ó) không ph i là h có (1) D ng chu n: nh hư ng qua l i v i h . Tác nhân i di n cho ngư i s d ng h như là m t h toàn v n, ho c như m t h thành ph n (h con ho c th m chí ch là m t l p C lie n t trong h ). Ngư i s d ng có th là th c th b t kỳ trong vùng lân c n c a h mà ang c n nghiên c u ch c năng. Tác nhân có th ưa cho h m t nhi m v (ví d nh n ơn t , n p ơn t hàng, g i thông tin n i (2) V i s s d ng ký tư ng và/ho c cùng ho t ng v i h th c hi u phân lo i và hi n nhi m v ó. T “ho c” ư c dùng i

hi n nhi m v ó. T “ho c” ư c dùng i stereotype v i tác nhân b ng, ch có nhi m v nh n vi t d li u t o ra trong lúc th c hi n nhi m v ư c t ra b i nhân khác. Tác nhân ph i có tên riêng, không trùng l p v i các tên khác. Các câu h i thư ng g p:

d ng ch

«actor »

Client

1.H có th là tác nhân c a chính nó ư c không? Vì theo DN, tác nhân chính là th c (3) V i s s d ng ký th trong vùng lân c n c a h . hi u chu n cho s phân lo i và stereotype d ng Câu h i trên thư ng ư c t ra cho các bi u tư ng: nhi m v ư c giao b i các tác nhân có tên h con theo th i gian (time subsystem), có nghĩa là m t o n (fragment) c a h (gi s ch c năng c a c h ang ư c nghiên c u). Nên dùng thêm t th i gian ch các tác Client nhân ó – th c th phi v t ch t trong vùng lân c n c a h , có nh hư ng m t o n c a Các ký hi u khác: h . (1) ch tác nhân c a h 2.Tác nhân ó là nhân t gây nên các use- khác, ang cùng ho t case, có nghĩa là, nó là nhân t d n n s ng v i h ang xét: kh i ng các use-case, tính c ngư i g i và ngư i nh n d li u n và i t usecase. Tác nhân ó l ngư i gây ra s ki n? V y khách hàng, n u không ư c quy n s d ng tr c ti p h th ng có ư c coi là tác nhân c a h th ng không?
Insurance V y khách hàng ư c coi là tác nhân ho c system không ph i là tác nhân i v i h , i u ó ph thu c vào m c tr u tư ng. Nói chung khách hang không có quy n s d ng tr c ti p các ch c năng c a h ư c coi là các tác (2) ch tác nhân mô hình nhân thương m i, không ph i là tác nhân con theo th i gian: trong mô hình use-case.

The 1st day of a year

Use-case

Tác nhân có th có nh hư ng qua l i v i h nhi u cách khác nhau. M i cách s d ng có tên riêng c a use-case và nó bi u di n m t chu i các hành ng ư c th c hi n b i h th ng. Nh ó tác nhân s nh n ư c các k t qu c n thi t.

Place an order

ho c

• Hành ng ó là thao tác atomic (có nghĩa là ho c th c hi n toàn b ho c không th c hi n) ư c th c hi n tr l i các tín hi u t phía tác nhân ho c t các hi n tư ng liên quan n s trôi qua c a th i gian. Hành ng s truy n tín hi u n tác nhân, gây nên ho t ng ó ho c n các tác nhân khác. • Chu i hành ng xu t hi n tr l i m t chu i các s ki n di n ra gi a tác nhân và h . Chu i hành ng ư c nhóm l i trong các use-case. • Chu i hành ng th c hi n b i h ch gi i h n c a h và th ng – dùng xác nh ph m vi trách nhi m c a nó. T t c nh ng gì th c hi n b i h ư c nh nghĩa m t cách rõ ràng (khác v i hành ng c a th gi i bên ngoài và nó ư c phân bi t m t cách rõ ràng). • Khái ni m k t qu trông th y nh nghĩa chu i hành ng k t thúc b ng m t k t qu nào ó có giá tr thi t th c cho tác nhân. Th c hi n nhi u use-case ch nh n m t k t qu trông th y là hành ng không ư c khuy n khích (ví d : s d ng vài use-case khác nhau cùng ưa n m t k t qu : ghi l i t t c các ơn t hàng). Vi c ch n use-case ưa n k t qu trông th y

Place an order

s giúp chúng ta ch n ư c trư ng h p th c s c n thi t và d hi u i v i ngư i s d ng. • Tác nhân c th – giá tr thi t th c (k t qu trông th y) ư c chuy n n cho m t nhóm ngư i s d ng xác nh; Ý nghĩa c a nó ph thu c vào vai trò ch không ph i ngư i c th nào. Use-case ph i có tên riêng, không ư c trùng v i các tên khác, và ph i xác nh rõ rang m c ich s t n t i c a nó (k t qu trông th y). C n ph i tránh các tên g i g i ý các hành ng ư c th c hi n b i tác nhân trong vùng lân c n h (không ư c s h tr c a h ), ho c nh ng hành ng kéo dài theo th i gian. Theo m t s nhà phương pháp h c tên “use-case” c n ph i mô t hành ng (ví d „n p ơn t hàng”), i v i m t s ngư i nó ph i mô t các l nh (ví d „hãy n p ơn t hàng”). M tt p y các use-case nh nghĩa ch c năng hoàn h o c a h . M i trư ng h p c th bi u di n m t chu i s ki n c trưng, nó xác nh m t o n c a h .

Tương tác qua l i gi a tác nhân và use-case.

ánh d u tương tác qua l i gi a tác nhân và use-case ngư i ta s d ng ư ng li n (1). xác nh hư ng di chuy n s ki n ngư i ta s d ng ư ng li n có hư ng (2); grot ch th c th (tác nhân ho c use-case), gây nên s ki n. Tương tác ký hi u b ng d u (3), ó là tương tác tương ương (1), không s d ng.

(1)

(2)

(3)

Kh i s d ng Bi u di n o n h th ng, ư c s d ng b i vài use-case. Kh i s d ng l i có th là m t l i use-case riêng bi t, cho phép Khái ni m này không ánh d u tương tác có th tác nhân v i usen m trong case. Tương tác c a tác nhân v i kh i s chu n UML, d ng l i trong ý nghĩa thông thư ng (như là m c dù nó có ch c năng ph cho các use-case khác và nó ích cho s mô không s d ng ư c b i các th c th ngoài t ch c năng h (ký hi u trên bi u b ng hình ch nh t, ph , c bi t không ph i hình elip)), b nghiêm c m. quá trình xác nh c u trúc c a h thi t k .

Client authorization

Quan h g a các use-case

Quan h «include» và «extend» bi u di n m i liên k t x y ra gi a các use-case và kh i dùng l i; khái niêm này s ư c c p n ph n ti p theo.

«include»

«extend»

Hình 1. Khái niêm mô hình use-case

2.3 Ng c nh c a h th ng
Mô hình hóa các use-case yêu c u các nhà phân tích ph i xác nh t t c các tác nhân s d ng h ang thi t k , có nghĩa là xác nh nhưng ngư i s d ng ti m tàng (nói cách khác: ng c nh c a h th ng). Thư ng tác nhân là m t ngư i, nhưng ó cũng có th là m t t ch c (ví d : văn phòng lu t) ho c m t h thông tin khác. Tác nhân mô hình nhóm ngư i có cùng m t nhi m v nào ó, ch không ph i ngư i c th nào. Ví d , theo hình 1, m t ngư i c th có th tương tác v i h t v trí c a nhi u tác nhân: có th v a là „ngư i qu n lý h ”, v a là „m t khách hàng”. Và ngư c l i, m t tác nhân có th tương ương v i nhi u ngư i c th , ví d tác nhân „Ngư i ư c báo tin”

User
can play a role of Jan Kowalski Adam Malina

Actor
orders

Use case

System administrator Employee

Reboot system Enter with authorization Get general information Withdraw money

Concrete guest

Informed person

Concrete client

Client

Hình 1. Bi u di n s khác nhau gi a khái ni m tác nhân và ngư i s d ng h .

2.4 K ch b n use-case
Nguyên t cơ b n mô t use-case ó là xác nh dòng s ki n x y ra gi a tác nhân và h . Dòng s ki n c n ph i ư c mô t b ng ngôn ng t nhiên: d hi u, dùng t ng n m trong t i n khái ni m thu c mi n v n . Ví d dòng s ki n gi a tác nhân và h cho use-case „tr ti n” ng thu tr ti n, có th mô t như sau: trong h h tr máy t 1. use-case b t u khi khách hàng cho th vào máy. H chính xác c a nó. 3. H h i thao tác nào s c thông tin trên th và ki m tra

2. H h i mã s (PIN). Khách hàng ưa mã s . H ki m tra xem mã s có kh p không.

ư c th c hi n. Khách hàng ch n: “Tr ti n”.
ki m tra ID c a tài kho n và s ti n có khách có th nh n.

4. H h i s ti n là bao nhiêu. Khách hàng ưa s ti n. 5. H s n i v i ngân hàng 6. H h i khách hàng có c n l y hóa ơn. Bư c này ch có th th c hi n ư c n u trong máy có gi y in. 7. H báo v i khách hàng l y l i th . Khách hàng l y th . Tín hi u báo l y l i th là cơ ch giúp cho s an toàn c a khách hàng, không quên th . 8. H tr ti n. 9. H in hóa ơn (n u khách hàng yêu c u) và k t thúc use-case. Có nhi u dòng s ki n có th x y ra, nó ph thu c vào: D li u cung c p b i tác nhân, ví d : tác nhân có th h y cu c giao d ch vào b t c lúc nào ho c không c n l y hóa ơn. Tr ng thái c a h : ví d máy t ng có th có ti n ho c cũng có th h t ti n, có th h t gi y in, có th b ph n tr ti n b h ng, cũng có th h ng b ph n in. Quá th i gian cho phép: ví d khách hàng không tr l i sau th i gian ã qui nh, h có th h y b giao d ch.

• • •

Không nên coi m i m t quá trình như m t use-case riêng – chúng ta nên g p t t c các quá trình liên quan vào m t trư ng h p. M t nhóm các quá trình có liên quan g i là l p use-case (thay vì

use-case). L p use-case xu t hi n khi có nhi u hơn m t kh năng x y ra. S xu t hi n c a l p use-case ư c g i là k ch b n use-case. K ch b n dùng khai thác t use-case các chu i hành ng có th x y ra, nói cách khác: các kh năng c a use-case. Trong các bư c u phát tri n h , t t nh t nên b t u t m t k ch b n c th , sau ó thêm vào các kh năng khác có th x y ra, t ó t o nên l p s d ng. Hành ng d n n k t qu trông th y nên g p l i thành nhóm có th cùng quan sát, s a i, ki m tra (nói chung, coi nó là m t ơn v trong su t chu kỳ s ng c a s n ph m). i u ó không tương ương v i ch c năng chia nh , mà ta có th d dàng ánh m t cái m c, ó là k t qu c n ph i ư c em l i cho khách hàng. Xây d ng use-case c n ngiên c u k t p tương tác gi a ngư i s d ng và h th ng, k ch b n mô t m t hay nhi u use-case. Cơ s phân bi t tr ng thái tr l i hay tr ng thái h i. H có cung c p các giá tr có tác d ng thi t th c v i ngư i s d ng không? Ví d trong trư ng h p máy tr ti n t ng ngân hàng, câu h i có th t ra như sau: Khách hàng có th y hài lòng, n u sau khi ki m tra th h thông báo là th có giá tr và sau ó tr th , không h i gì v lư ng ti n ph i tr cũng như không tr ti n? Xây d ng k ch b n rõ ràng và xác nh duy nh t m t chu i tương tác gi tác nhân và h là m t bài toán khó, c bi t là trong trư ng h p có nhi u kh năng khác nhau. Nhi m v ó càng tr ngh nên khó hơn n u k ch b n ph i vi t b ng ngôn ng thông thư ng. M t s nhà phân tích s d ng d ng B ng 2 ghi chép k ch b n.

Tên use-case Tác nhân K ch b n chính K ch b n ph s m t K ch b n ph s hai ...
B ng 1. K ch b n ư c ghi d ng b ng

Sơ trên trông rõ ràng nhưng khó có th tư ng tư ng là nó có th mô t các trư ng h p khó, ví tránh s d các trư ng h p v i nhi u m ch xen k (alternative thread). M i k ch b n ph không rõ ràng, nhi u nghĩa, c n ph i nh nghĩa y c quá trình, i u ó có th d n n s l p l i nhi u o n k ch b n. Ngoài ra trong cách ghi này, khó có th tìm ra các lu ng ch y con, c n thi t trong các bư c ti p theo có th g p chúng thành kh i s d ng l i. T n t i cách khác t t hơn, ó là chia riêng hai ph n:

• •

Lu ng s ki n chính và Lu ng s ki n có th xu t hi n xen k

Trong lúc xác nh hai lo i m ch này chúng ta có th ánh d u các chu i tương tác b ng các s t nhiên liên ti p, b ng cách ó có th phát hi n ra các o n k ch b n b nh c l i. Các lu ng s ki n con nên ư c coi như là các nhóm ch c năng trong ngôn ng l p trình, có nghĩa là khi tr v t lu ng s ki n con l nh th c hi n ti p theo s là l nh xu t hi n sau l nh v a g i lu ng s ki n ó.

2.5

Xây d ng c u trúc use-case

C u trúc use-case ư c xây d ng d a v o vi c phân tích lu ng s ki n. Nói chung c u trúc usecase không th thi u trong quá trình thi t k h , nó giúp các ho t ng như: l p k ho ch, xác nh quy n ưu tiên và ph ng oán k t qu không gây khó khăn cho quá trình th c hi n án. C u trúc use-case thư ng ư c xây d ng d a trên các gói trư ng h p (packet) và m i quan h gi chúng: include, extend và khái quát hóa các chi ti t k thu t. L i cơ b n mà chúng ta thư ng m c ph i ó là l m d ng m i quan h include, extend và khái quát hóa. i u ó có th d n mô hình khó hi u, khó chăm sóc. M t cách gián ti p nó làm cho án t n kém hơn.

2.5.1 Gói use-case
Gói use-case g p các trư ng h p vào m t công-ten-nơ. Gói use-case óng vao trò quan tr ng trong các tài l n, ch a nhi u ơn v ch c năng có liên quan l n nhau và ư c t o nên nhi u nhà thi t k . S d ng gói giúp cho vi c c t gi , s a i các thành ph n c a mô hình ư c d dàng hơn. S phân chia ra các gói có ý nghĩa l n không nh ng trong quá trình t o nên mô hình trư ng h p mà còn r t có ích trong s n ph m ph n m m.

2.5.2 Include và extend
Lu ng s ki n có th bi u di n d ng chu i các dòng ch y con: g m m t dòng chính và nhi u dòng ph . Cùng m t dòng ph có th l p l i trong nhi u use-case khác nhau, vì v y có th tách nó ra như các trư ng h p riêng bi t. Trong khi mô t các chu i trư ng h p, chúng ta có thê n i hai trư ng h p v i nhau s d ng m t trong hai m i quan h : include ho c extend. Nguyên tăc này cũng có th s d ng v i các kh i s d ng l i. Trong c hai sơ (Hình 1 và Hình 2), P1 ư c g i là trư ng h p cơ s , nó ph i ư c th c hi n u tiên. Sơ không xác nh, lúc nào trong khi th c hi n trư ng h p P1, trư ng h p P2 s ư c g i:

• Ti n trình cơ b n (Hình 2): Trư ng h p cơ b n P1 luôn g i P2 chuy n.
P1
«include»

ư c g i là trư ng h p

P2

Hình 1. Ti n trình cơ b n

• Ti n trình không b t bu c (Hình 3): Th nh tho ng P1 ư c m tr ng thêm b i P2 - g i là trư ng h p m r ng. Gi i t „th nh tho ng” có nghĩa là i u ki n t ra khi g i P2 ph i ư c th a mãn. N u i u ki n g i P2 không ư c nh nghĩa thì P2 ư c g i vô i u ki n.

P1

«extend»

P2

Hình 3. Ti n trình không b t bu c trên hình 4 bi u di n use-case sai m i quan h „extend” n i hai trư ng h p „N p ơn t Sơ hàng” và „Th c hi n ơn t hàng” , gi s r ng hai use-case này không th th c hi n trong cùng m t ti n trình. Gi i h n không cho phép n i các trư ng h p không th xu t hi n trong cùng m t ti n trình liên quan n c hai lo i quan h .

Place an order

Client

«extend»

Supplier Process an order

Hình 2. Bi u di n s x d ng không úng m i quan h „extend”.

ch a các i m m r ng. Trong sơ Trên hình 5 chúng ta có ví d sơ nh nghĩa các i u ki n khi s d ng trư ng h p m r ng.

này chúng ta có th

Car repair
extension points: Car is out of repair shop Car needs review «extend» extension point: Car needs review

«extend» extension point: Car is out of repair shop

Car review
extension points: Car is dirty

Car towing

«extend»

Car wash

extension point: Car is dirty

Hình 3. Hình v bi u di n các i m m r ng

Tóm l i include và extend ư c s d ng v i m c ích:

ơn gi n hóa các ti n trình s ki n ph c t p.
c bi t.

• Bi u di n các trư ng h p không b t bu c. • S lý các trư ng h p

2.5.3 Khái quát hóa – chi ti t hóa use-case
Khái quát hóa – chi ti t hóa d a trên cơ s tìm ra các y u t gi ng nhau trong các use-case. Nó dùng thi t k t i ưu các lu ng s ki n. M i quan h này là phương ti n có th ơn gi n hóa mô hình xương s ng và các trư ng h p ng d ng. m i quan h khái quát hóa – chi ti t hóa nh nghĩa cho khái ni m tác nhân s ư c trình bày c th chương sau.

2.6

Ví d các sơ

use-case
ng bán thu c lá và

Trên hình 6 và 7 chúng ta có sơ ví d c a 2 h th ng ph c v máy t máy th c hi n các l nh c a ngân hàng.
ud Cigarettes selling machine

Refill comodity

Sell cigarettes Client

Execute money transaction Operator Create report

Controler

Hình 4. Sơ

use-case c a máy bán thu c lá t

ng.

Chúng ta ý r ng sơ use-case c a máy bán th c hi n các l nh c a ngân hàng không th a rõ ràng b i vì trong sơ này, các ư ng ch m i tương tác gi a tác nhân và mãn yêu c u v h c t nhau. Không nên coi thư ng s rõ ràng c a sơ , b i vì nó là nhân v t trung gian giúp

cho s truy n t thông tin gi a các thành viên trong nhóm thi t k cũng như gi a nhóm thi t k và khách hàng ơn gi n hơn.
ud Bank operations machine

Database management subsystem

Client’s account service

«include»

Account’s balance information Client Client’s card initialization System administrator

«include»

Client’s card and code verification

«include»

Hình 7. Sơ

use-case cho máy th c hi n các l nh c a ngân hàng.

2.7

Phát tri n mô hình use-case
use-case trong hình v 8

Chúng ta hãy nghiên c u sơ

?

Deposit money

Client

Withdraw money

Hình 8. Sơ

ví d use-case.

Trư ng h p khách hàng t rút ti n ã ư c gi i quy t. Tuy v y trư ng h p khách hàng t tr ti n v n còn là v n m . Gi s r ng khách hàng không có quy n s d ng ch c năng liên quan n vi c tr ti n. C n ph i nh nghĩa m t tác nhân m i, ví d th qu . Trên sơ hình 9, tác nhân th qu ư c ghi thêm như là m t nguyên t phát tri n mô hình.

Deposit money Cashier Client Withdraw money

Hình 5. Mô hình ư c m r ng thêm m t tác nhân m i.
ud Bank system

Deposit money Cashier

Withdraw money

Bank client

Check account balance

Take a loan

Management

Hình 6. Mô hình ư c phát tri n thêm các tác nhân m i, các use-case k ti p, sơ cùng tên g i c a nó.

óng khung

Sơ có th ti p t c m r ng b ng cách cho thêm các tác nhân m i, các use-case m i, kh i s d ng l i ho c các m i quan h gi a các use-case cũng như gi a use-case và kh i s d ng l i (Hình 10 và 11). Ngoài ra có th có th óng khung sơ và t tên cho h .

ud Bank system

Deposit money

Cashier
«include»

Withdraw money
«extend» «include»

Update account balance

Bank client

Check account balance

Take a loan

Management

Hình 7. Mô hình ư c m r ng thêm kh i s d ng l i và m i quan h gi a các use-case.

2.8

chi ti t c a mô hình use-case

Mô hình use-case ó là mô hình h th ng, ư c nhìn t góc tr u tư ng – góc c a tác nhân s d ng h . Tác d ng cơ b n c a mô hình này (m c dù nó không ph i là duy nh t), ó là nói chuy n v i khách hàng tương lai, m c ích là xác nh chính xác yêu c u c a khách hàng. Mô hình không ư c chi ti t quá cũng không ư c c th quá: quá chi ti t s khó nghiên c u, quá t ng quát s không phát hi n ư c các kh i s d ng l i. Theo kinh nghi m th c t , sơ usecase nói chung không xác nh m t cách chính xác và là mô hình ch quan, vì v y n i dung l n chi ti t c a nó ph thu c vào kinh nghi m c a nhà phân tích. Nói chung các nhà phân tích khác nhau t o nên các mô hình khác nhau (xem Hình 12 và 13). C n nh r ng nh n nh trên có ý nghĩa t ng quan không cho m i lo i mô hình ch không ch mô hình use-case.

Edit program

Compile program

«include» «include»

Programmer

Execute program Print file

User

Hình 8 Sơ

ví d use-case.

«extend»

Edit program

Compile program

«extend»

Programmer

Execute program Print file

User

Hình 9. D ng khác c a sơ

12.

2.9 Xây d ng mô hình use-case
Mô hình use-case ư c bi u di n b ng t p các use-case và t p các tác nhân có tương tác v i h qua các use-case ó. Mô hình giúp chúng ta mô t ch c năng c a h . i u ó có nghĩa là trong bư c xây d ng mô hình use-case chúng ta ph i t p trung vào các yêu c u ch c năng, còn các yêu c u không ch c năng (vd. S s d ng song song ngu n d li u chung trong lúc tương tác gi a các trư ng h p) có th b qua. Nhi m v chính c a mô hình là mô t úng ch c năng c a h c n thi t k , còn các nhi m v khác không ch c năng ch là các i u ki n b sung. Các ch c năng này ư c chú ý t i trong lúc thi t k h . b o m các ký hi u ư c th ng nh t trong quá trình t o mô hình, chúng ta ph i l p ra m t t i n các khái ni m liên quan n mi n v n ho c mô hình i tư ng ơn gi n c a mi n v n . Mô hình use-case ư c xây d ng d a trên b n bư c (Hình 14) và trong quá trình xây d ng mô hình s h p tác v i khách hàng ư c yêu c u

m t thi t. i u ó suy ra t nghuyên t c: „Không nên mô t các trư ng h p khó hi u ngư i s d ng”.
Following steps 1 Establish glossary Notion glossary 2 Determine actors are documented in

iv i

3

Actors definition document Determine use cases

4

Create description for each use case and: split use case into named parts search for common parts in different use cases

Use case diagram with detailed description for each use case

Hình 10. Các bư c k ti p trong xây d ng mô hình truư ng h p.

2.9.1 Bư c 1: L p t

i n khái ni m

T i n khái ni m liên quan n mi n v n . L p t i n c n b t u t bư c xây d ng mô hình use-case cho h th ng c n thi t k . Trong lúc l p t i n c n chú ý t i các i m sau:

• • •

Xây dưng t i n ó là ch t l c t yêu c u c a ngư i s d ng nh ng khái ni m, có liên quan tác nhân, use-case, i tư ng, các phép toán, s ki n,... Các khái ni m trong t i nc n ư c nh nghĩa m t cách chính xác và duy nh t. ti p S d ng các khái ni m trong t i n ph i tr thành nguyên t c khi mô t các v n theo và xây dưng m i mô hình ti p theo. Dư i ây chúng tôi cho ví d t trong t i n khái ni m:

„Tài kho n – s d ng ghi l i lư ng ti n và k t qu dao d ch ư c th c hi n b i khách hàng là ch c a tài kho n. Tài kho n có th có nhi u lo i: ví d tài kho n riêng, tài kho n chung c a v ch ng, c a hãng. M t khách hàng có th có nhi u tài kho n.” Khi ch n khái ni m vào t i n c n chú ý: ; phân bi t các useng, cách cư s - chúng có th là cơ s Danh t : có th ch tác nhân ho c th c th t mi n v n Các t ch hàm s , hành case.

• •

Bư c 2: Xác
xác

nh tác nhân

nh tác nhân i u quan tr ng là tr l i các câu h i sau ây: c a h (ví d : ngư i g i thư, ngư i n p ơn ng và th c hi n các nhi m v c a có th t

Nhóm khách hàng nào c n s d ng s giúp hàng,...)?

Nh ng i tư ng nào s c n thi t cho h trong lúc ho t mình (ví d ngư i i u hành m ng)

H ph i s d ng các y u t bên ngoài nào (ví d các h khác, ph n t nh y, m ng,...) th c hi n nhi m v c a mình?

Xác nh tác nhân ph i i cùng v i xác nh v i ph m vi trách nhi m c a h , có nghĩa là nh t thi t ph i xác nh danh gi i c a h , t c là lo i b các mi n v n con, mà h không ph c v . Các tác nhân ti m tàng c n ư c bi u di n b ng hình nh s d ng sơ như trên hình 15.

Database management subsystem «system» Bank operations machine System administrator

Client

Hình 11. Sơ

ng c nh c a máy th c hi n các l nh c a ngân hàng. nh:

Sau ó trong bư c k ti p c n xác

• Tên c a t ng tác nhân; • Ph m vi ý nghĩa c a t ng tác nhân và m i quan h gi a các tác nhân, ví d : thư kí và nhân viên qu n lí, nhân viên qu n lí và m t nhân viên b t kỳ, nhân viên và m t ngư i b t kỳ. c th làm ơn gi n c u trúc c a sơ và tăng s m ch l c (b ng cach gi m s lương tương tác c a tác nhân và use-case, t ó d n n gi m b t s ư ng c t trên sơ ), c n ph i xác nh c p b c th a k c a tác nhân i v i vi c s d ng h , t c là xây d ng c u trúc khái quát hóa- chi ti t hóa cho tác nhân. Ví d , trên Hình 16 tác nhân nhân viên qu n lí ư c th a hư ng quy n dùng các use-case nh nghĩa cho tác nhân nhân viên và có th s d ng m i use-case c a chính b n thân mình. Trong hình 17 c u trúc th a hư ng c a các tác nhân ư c s d ng v i m c ích làm gi m s ư ng n i ch tương tác gi a các tác nhân trong h .

Person
inheritance symbol

Employee

Guest

Accountant

Administrative worker

Hình 12. Ví d c u trúc th a hư ng c a các tác nhân

ud Bank operations machine

Database management subsystem

Client’s account service

«include»

Account’s balance information Client Client’s card initialization System administrator

«include»

Client’s card and code verification

«include»

Hình 13. Sơ nhân

máy th c hi n các l nh

ngân hàng, s d ng c u trúc th a hư ng c a các tác

Bư c 3: Xác

nh các use-case

tìm ki m use-case các nhà phân tích c n chú ý:

i v i m i tác nhân c n xác nh nhi m v , c n ph i th c hi n v i m c ích b tr ho t ng trong mi n v n cũng như ho t ng c a h .

Trong bư c u tiên càn xác nh “nhi m v chính”, t c là các nhi m v có ý nghĩa chính cho vi c h p tác v i h ( ó là các s d ng chu n). B qua các hành ng c bi t, b sung ho c không b t bu c Nhóm các nhi m v có m c ích gi ng nhau thành m t use-case, B ng cách ó có th trách chia m t use-case ra thành nhi u trư ng h p con (nh t là trong các bư c u tiên xây d ng mô hình) S p x p theo th t tác nhân và use-case d ng sơ .

• •

Phân tích l i các use-case ã t ra (m t s trư ng h p có th là trư ng h p con c a các use-case khác), cũng như m i lien h gi tác nhân và use-case. Xác inh cái gggì có th th a, cái gì có th khái quát hóa. Xác nh m i quan h qua l i gi a các use-case. quan hee lo i gì: cơ b n hay không b t bu c? B sung thêm các trư ng h p ph , bu c. i v i m i lo i quan h , xác nh ó là

c bi t, các trư ng h p b sung, ho c không b t

Di n t use-case b ng ngôn ng t nhiên, s d ng cac thu t ng ư c nh nghĩa trong t i n khái ni m. Cơ s cho nh n nh: mô hình ã chi ti t chưa chính là câu tr l i cho câu h i: t t c nhóm thi t k có hi u n i dung c a use-case không? Tài li u mô t nó ã c th cho nhà thi t k và ngư i ki m tra chương trình chưa? Chia m i use-case ra thành các kh i, sao cho m i kh i không quá t ng quát cũng không quá c th . Nghiên c u các trư ng h p ã oc nh nghĩa dư i khía c nh tách riêng các kh i s d ng l i. Phân tích s gi ng nhau v tên g i c a use-case cũng như s gi ng nhau v tên g i và cách x s c a các kh i xu t hi n trong nh nghĩa c a nó. S tách kh i s d ng l i có th g n li n v i vi c xác nh các nhi m v chính ho c cho thêm các tính ch t m i cho các nhi m v ã t n t i. Tên cho các use-case c n ph i ng n g n, nhưng ng th i ph i xác nh ư c c i m c a bài toán. Các tên này ph i th hi n các ho t ng t khía c nh tác nhân, ví d : ”tr ti n” ch không ph i “nh n ti n t khách hàng”.

Bư c 4: Tài li u mô t use-case
Tài li u mô t use-case ph i ch a ng:

• Sơ

use-case: tác nhân, use-case và và quan h gi a các use-case.

• Mô t ng n g n và t ng h p m i use-case: Khi nào và b ng cách nào use-case b t u và k t thúc; Mô t các tương tác gi use-case và tác nhân: khi nào x y ra tương tácvà thông tin gì s ư c g i i; Khi nào use-case c n n các d li u c t gi trong h và v i m c ích gì, và khi nào nó s ghi l i gi li u vào trong h và ghi như th nào; Nh ng ngo i l có th xu t hi n trong lúc th c hi n use-case Các yêu c u c bi t, vd. Th i gian cho phép cho m t câu tr l i, năng su t; Khi nào các khái ni m trong mi n v n ư c s d ng và nó ư c s d ng như th nào. • Mô t c th m i use-case: K ch b n Sơ ho t ng: Sơ ho t ng s ư c gi i thi u c th trong m t bài gi ng riêng liên quan n v n này.
B ng 2 ch a b n m u thi t l p tài li u cho use-case. B ng 4 mô t use-case „Hãy cho mư n ĩa” ư c ingh nghĩa cho h th ng ph c v c a hàng mư n ĩa DVD (văn b n các yêu c u ư c ghi m c 2.12).

Tên S id Tác gi Quy n ưu tiên D ng Tác nhân Mô t i u ki n b t u

Tên use-case S th t c a use-case Thông tin v tác gi Vd. Cao, th p, trung bình Vd. T ng quát, c th Danh sách các tác nhân có liên quan Ng n g n các tính ch t n use-case

c trưng c a use-case h có th th c hi n

Thông tin: cái gì c n ph i th c hi n trư c ó use-case ang xét. Các i u ki n sau khi th c hi n use-case

i u ki n k t thúc

Lu ng s ki n chính K ch b n chính

Lu ng s ki n không K ch b n ph có th x y ra b t bu c

b t bu c Các òi h i không ch c năng Các chú ý thêm
Vd. Th i gian cho phép cho m t câu h i, tôc Gi i h n, thông tin thương m i giao d ch, itd.

B ng 2 Tài li u ví d cho m t use-case

Tên S id Tác gi Quy n ưu tiên D ng Tác nhân Mô t

Hãy mư n ĩa 7 Jan Kowalski – nhà phân tích Cao C th Nhân viên c a hang Use-case liên quan n vi c ghi chép các giao d ch mư n ĩa; n u ĩa dành cho ngư i l n thì ch ngư i trên 18 tu i co quy n ư c mư n; m t ngư i có th mư n nhi u nh t 5 ĩa; không ư c cho mư n, n u ngư i ó ang trong th i gian „treo tài kho n”.

i u ki n b t

u

Ngư i mư n ph i có ăng ký là khách hàng c a c a hàng. N u các i u ki n mư n ĩa ư c th a mãn, thì các thông tin v giao d ch ph i ư c ghi l i: ai mư n, mư n gì và mư n khi nào. 1.Nhân viên c a hàng kh i ng use-case hãy cho mư n ĩa 2.H yêu c u ưa tên, h ngư i cho mư n ĩa. Nhân viên ưa các thông tin c n thi t. 3.H h i tên phim. Nhân viên ưa tên. 4.H ghi l i thông tin v giao d ch mư n ĩa phim (ai mư n, ĩa gì, ngày tháng mư n). 2a N u ngư i cho mư n không có quyên cho mư n (không có ăng ký trong h ) h s thong báo v i tác nhân và k t thúc usecase. 2b. N u có nhi u hơn m t ngư i có quy n cho mư n ĩa, h s

i u ki n k t thúc Lu ng s ki n chính

Lu ng s ki n không b t bu c

ưa ra danh sách. Nhân viên s ch n m t ngư i t danh sách ó.
3a N u không có phim yêu c u trong c a hàng ho c t t c các phim ó ã ư c mư n, h s tang báo v i tác nhân và k t thúc use-case. 3b N u phim dành cho ngư i l n, ngư i mư n nh hơn 18 tu i, h thông báo i u ó v i tác nhân và k t thúc use-case. 3c N u khách hàng ã mư n nhi u hơn 5 ĩa, h thông báo v i tác nhân và k t thúc use-case. 3d N u khách hàng ang trong th i kỳ treo tài kho n, h thông báo v i tác nhân và k t thúc use-case.

Các òi h i không ch c năng Các chú ý thêm

Không có Không có

B ng 3 Tài li u mô t use-case Hãy cho mư n ĩa c a h ph c v c a hàng cho mư n ĩa DVD.

2.10 Ví d văn phòng lu t sư
Trên hình 18 chúng ta có sơ v văn phòng lu t. use-case ư c xây d ng d a vào các yêu c u cho h th ng ph c

Văn phòng lu t sư:
M t văn phòng lu t sư quy t nh s d ng h th ng thông tin tăng năng su t và ch t lư ng ho t ng c a văn phòng. D a vào các yêu c u c a các nhân viên văn phòng chúng ta s tìm cách thi t k mô hình khái ni m: 1) C n ph i ghi l i thông tin v khách hàng và lu t sư: tên (không vư t quá hai tên), h , tên th i con gái, a ch và s i n tho i. 2) 3) i v i nhân viên, c n ph i ghi l i thông tin v s năm công tác trong ngh . i v i các s vi c mà văn phòng gi i quy t c n ghi l i thông tin như: ngày b t u và ngày k t thúc, s vi c liên quan n v n gì, s vi c có k t thúc t t p không, thông tin v khách hàng và các lu t sư tham gia gi i quy t s vi c.

4) C n ph i ghi l i t t c các ngày tháng và các phiên tòa liên quan ki n m i phiên tòa ph i có s riêng, không ư c trùng l p.

n s vi c. Trong s n khi

5) Lu t sư có th b th i vi c trong lúc gi i quy t v vi c, c n ph i ghi l i t khi nào nào lu t sư tham gia gi i quy t s vi c. 6) Trong m t th i i m lu t sư ch có th

ư c chia m t s vi c.

7) C n ph i chú ý r ng, lu t sư cũng có th là khách hàng c a văn phòng, nhưng lúc ó không ư c tham gia gi i quy t s vi c mà ngư i ó yêu c u. 8) S vi c có th b h y b t c th i i m nào; thông tin v các s vi c b h y không c n ghi l i. 9) Thông tin v các s vi c ph i lưu tr trong h 10 năm sau khi s vi c k t thúc. 10) H thông s giúp văn phòng trong các công vi c sau ây:

• • • • •

Ghi l i các s vi c Phân chia lu t sư cho các s vi c Ghi l i các phiên tòa Ghi l i k t thúc c a s vi c Xác nh danh sách các s vi c ã k t thúc th ng l i trong th i gian ã cho.

ud Law office

Register trial Lawyer Register case Assign lawyer to the case Check if the lawyer is currently available Dismiss lawyer from the case List cases met with success
«include»

«extend»

Law office manager

Cancel case 10 years after closing the case

Delete case

Hình 14 Sơ

use-case c a h th ng ph c v văn phòng lu t sư

2.11 Tóm l i
M c ích chính c a vi c xây d ng mô hình use-case ó là giúp các nhà phân tích xác nh chính xác yêu c u ch c năng c a h th ng c n xây d ng. Ngo i ra mô hình use-case cho phép:

Hi u rõ hơn các kh năng s d ng h , i u ó giúp cho ngư i s d ng, cũng như nhà phân tích và các nhà thi t k th hi u rõ hơn m c ích và ch c năng c a h th ng; S thong tin gi a các thành viên liên quan n h th ng ( i di n khách hàng, ngư i s d ng h , thi t k viên ) ư c rõ ràng, m ch l c hơn; Xác nh quy n s d ng các d li u c a h (d a trên tương tác gi a tác nhân và usecase); Làm cơ s thi t k giao di n v i ngư i s d ng; ó có th xác nh thành ph n c a h , t

• •

Xác nh m t cách sơ lư c c u trúc c a h , nh ó k ho ch xây d ng h ;

• • • •

Cơ s Cơ s Cơ s

ánh giá th i gian và phí t n

th c hi n

tài;

lên k ho ch phát tri n ph n m m; lên k ho ch ki m tra h ;

Ki m tra s chính xác c a các k t qu (trung gian) ư c t o nên trong quá trình xây d ng h ;

Hình 15 cho th y s nh hư ng c a mô hình use-case n mô hình phân tích cũng như mô hình mi n v n và ngư c l i, có nghĩa là s nh hư ng c a mô hình mi n v n n mô hình ng d ng và mô hình phân tích. Mô hình phân tích nói chung thư ng vư t ra ngoài ph m vi nhi m v c a h th ng, nó bao g m c các ho t ng chung v i h bên ngoài.
Experts

Domain experience

Domain model

Use cases
Users

Analytical model of system

strong influence weak influence

Hình 15 Bi u di n m i quan h qua l i gi các nhân t c t y u c a quá trình xây d ng h thông tin.

2.12 Câu h i và các v n

t p gi i quy t

1. Th c hi n các bài t p sau ây s d ng tài li u mô t các yêu c u c a h ph c v c a hàng cho mư n ĩa DVD:

• • •

L pt Xác

i n khái ni m; nh tác nhân c a h ;

V i m i tác nhân hãy tìm use-case (không i vào các chi ti t c th c a m i use-case);

Hãy xây d ng sơ nghĩa;

use-case d a vào các tác nhân và các use-case ư c

nh

Hãy xây d ng c u trúc các use-case d a trên quan h gi a chúng: include và extend; Hãy xây d ng c u trúc Hãy thay i sơ ng c p c a các tác nhân;

• • • •
2.

d a trên quan h gi a các tác nhân c a h ;

L p văn b n mô t các use-case; Thay i cho phù h p v i hi n th c t i n khái ni m; n giao

Hãy th c hi n các bài t p sau ây cho m t vài use-case (vd. use-case liên quan d ch tr ĩa):

• Xây d ng k ch b n; • Xác nh kh i s d ng l i; • Xây d ng sơ use-case, i v i m i use-case c n chú ý các k t lu n suy ra t phân tích k ch b n và các kh i s d ng l i; • Hãy thay i văn b n mô t use-case; • Thay i cho phù h p v i hi n th c t i n khái ni m. C a hàng cho mư n ĩa
1. H th ng có nhi m v lưu tr các thông tin v khách hàng (tên, tu i, a ch , s i n tho i). Khách hàng ch có th là nh ng ngư i k t thúc 16 tu i. 2. H th ng có nhi m v lưu tr các thông tin v nhân viên (tên, tu i, ngày tháng năm sinh, nơi sinh, a ch , s i n tho i, ngày nh n vi c, m c lương). Không ư c nh n nhân viên chưa thành niên. Nhân viên c a hàng có th ng th i là khách hàng, lúc ó m i nguyên t c s d ng cho nhân viên ó cũng gi ng như m t khách hàng bình thư ng. 3. H th ng có nhi m v lưu tr các thông tin v phim và ĩa DVD c a c a hàng. 4. Thông tin v phim bao g m: tên phim, ngày s n xu t, phim dài bao nhiêu phút, các di n viên chính và s ti n ph i tr khi mư n phim. Phim dành cho ngư i l n ch có th cho ngư i ã k t thúc 18 tu i mư n. 5. Cùng m t phim có th có nhi u ĩa. Trên m t ĩa ch có th có m t phim. H y m t phim có nghĩa là h y t t c các ĩa có ch a phim ó. 6. Thông tin v giao d ch mư n ĩa bao g m: ngày mư n, ngày tr và ti n s ph i tr khi mư n phim. Khách hàng ph i tr ti n ngay khi mư n phim. Khách hàng có th quy t nh ngày tr ĩa, các ĩa khác nhau có th có ngày tr khác nhau. 7. M i l n mư n có th mư n vài ĩa nhưng không ư c vư t quá 3 ĩa. 8. Khách hàng có th gi nhi u nh t 5 ĩa trong m t th i i m. 9. Trong trư ng h p gi ĩa quá lâu, s ti n ph i tr cho m t ngày gi ĩa s tăng theo m t ph n trăm nào ó so v i giá tiêu chu n. Ph n trăm ó s tăng d n theo s ngày quá h n, nhưng không ư c vư t quá 100% s ti n qui nh.

10. Ngư i mư n b 3 l n quá h n s m t quy n mư n ĩa; th i gian „m t quy n s d ng” kéo dài m t năm. 11. Hàng ngày ph i vi t tư ng trình v các s ki n x y ra c a hàng: s lư ng ĩa ư c mư n, s lư ng ĩa ư c tr , s lư ng ĩa hi n ang ư c mư n và s ti n thu ư c. 12. Th nh tho ng vi t tư ng trình k t v ho t ng c a c a hàng trong m t th i gian nào ó (các kho ng th i gian có th giao nhau), ch a các thông tin v các ĩa thư ng hay ư c mư n và các di n viên n i ti ng. 13. V i m i b n tư ng trình, c n ghi l i ngày ghi chép. 14. Các b n tư ng trình ph i ư c s p x p theo th i gian.

Sign up to vote on this title
UsefulNot useful