Mais conteúdo relacionado
Semelhante a Cong Nghe Phan Mem Dhbk (20)
Cong Nghe Phan Mem Dhbk
- 1. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
Khoa Coâng Ngheä Thoâng Tin
Moân hoïc
COÂNG NGHEÄ PHAÀN MEÀM
- Trang 1 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
- 2. GIÔÙI THIEÄU MOÂN HOÏC
Ñaëc ñieåm
Maõ soá: 501095 Soá tín chæ: 2 Phaân phoái giôø: 2(2.1.4)
Moân hoïc tröôùc: Toaùn Tin Hoïc (501302)
Toùm taét noäi dung
Caùc khaùi nieäm cô baûn cuûa Coâng Ngheä Phaàn Meàm: caùc moâ hình phaùt trieån
phaàn meàm, phaân tích yeâu caàu, thieát keá, kieåm tra…
2 tröôøng phaùi chính: coù caáu truùc (coå ñieån) & höôùng ñoái töôïng
Chuaån UML vaø vieäc aùp duïng noù trong phöông phaùp höôùng ñoái töôïng
Thöïc haønh taïi phoøng Lab: laøm quen vôùi coâng cuï Rational Rose
- Trang 2 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
- 3. GIÔÙI THIEÄU MOÂN HOÏC (t.t)
Taøi lieäu tham khaûo
[1] Software Engineering - A practitioner’s approach, R.S.
Pressman, McGraw-Hill, 1997
[2] OMG Unified Modeling Language Specification, version 1.3,
Object Management Group (www.omg.org), 1999
[3]UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998
[4] Object-Oriented Software Engineering, A Use-Case Driven
Approach, I. Jacobson, ACM Press/Addison-Wesley, 1992
[5] Object-Oriented Analysis and Design with Applications, G.
Booch, The Benjamin Cummings Publishing Company, 1994
- Trang 3 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
- 4. GIÔÙI THIEÄU MOÂN HOÏC (t.t)
Hình thöùc ñaùnh giaù
Thi giöõa kyø: traéc nghieäm khoâng söû duïng
taøi lieäu, chieám 20 % keát quaû cuoái cuøng
Thi cuoái kyø: traéc nghieäm khoâng söû duïng
taøi lieäu, chieám 80 % keát quaû cuoái cuøng
- Trang 4 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
- 5. ÑEÀ CÖÔNG
Chöông 1: Giôùi thieäu veà Coâng Ngheä Phaàn Meàm
Chöông 2: Phaân tích yeâu caàu theo phöông phaùp coå ñieån
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
Chöông 6: Cô sôû cuûa thieát keá phaàn meàm vaø phöông phaùp thieát keá coå ñieån
Chöông 7: Thieát keá höôùng ñoái töôïng
Chöông 8: Hieän thöïc vaø trieån khai heä thoáng
Chöông 9: Kyõ thuaät kieåm tra phaàn meàm
Chöông 10: Chieán thuaät kieåm tra phaàn meàm
- Trang 5 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
- 6. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
Khoa Coâng Ngheä Thoâng Tin
Chöông 1
GIÔÙI THIEÄU VEÀ
COÂNG NGHEÄ PHAÀN MEÀM
✦ Moät soá khaùi nieäm
✦ Caùc moâ hình phaùt trieån phaàn meàm
- Trang 6 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 7. NOÄI DUNG
1.1. Moät soá khaùi nieäm
1.1.1. Khuûng hoaûng phaàn meàm
1.1.2. Ñònh nghóa
1.1.3. Chu trình (process), phöông phaùp (method), coâng cuï (tool)
1.1.4. Moät caùch nhìn toång quan veà coâng ngheä phaàn meàm
1.1.5. Moâ hình CMM
1.2. Caùc moâ hình phaùt trieån phaàn meàm
1.2.1. Moâ hình tuaàn töï tuyeán tính
1.2.2. Moâ hình prototype
1.2.3. Moâ hình xoaén oác
1.2.4. Moâ hình taêng daàn
1.2.3. Moâ hình RAD
- Trang 7 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 8. KHUÛNG HOAÛNG PHAÀN MEÀM
Phaàn meàm ñöôïc vieát ngay töø khi
xuaát hieän caùc heä maùy tính vaø ngoân
ngöõ laäïp trình ñaàu tieân
Treân thöïc teá saûn xuaát phaàn meàm
khoâng ñaùp öùng kòp yeâu caàu cuûa
ngöôøi söû duïng
- Trang 8 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 9. KHUÛNG HOAÛNG PHAÀN MEÀM (t.t)
Caùc döõ lieäu quan saùt ñöôïc
Cöù 6 ñeà aùn trieån khai thì coù 2 bò huyû boû
Trung bình thôøi gian thöïc hieän thöïc teá bò keùo daøi 50 % (caù bieät 200-
300%)
Caùc ñeà aùn lôùn deã thaát baïi
3/4 caùc heä thoáng lôùn coù loãi khi thöïc thi
Quaù trình phaân tích yeâu caàu (5 % coâng söùc): ñeå laïi 55 % loãi, coù 18 %
phaùt hieän ñöôïc
Quaù trình thieát keá (25 % coâng söùc): ñeå laïi 30 % loãi, coù 10 % phaùt hieän
ñöôïc
Quaù trình maõ hoaù, kieåm tra vaø baûo trì: ñeå laïi 15 % loãi, coù 72 % phaùt hieän
ñöôïc
- Trang 9 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 10. KHUÛNG HOAÛNG PHAÀN MEÀM (t.t)
Nguyeân nhaân
Phaùt trieån phaàn meàm gioáng nhö moät ngheä thuaät, chöa ñöôïc xem nhö moät
ngaønh khoa hoïc
Quaù trình phaùt trieån phaàn meàm chöa ñöôïc thoáng nhaát
Phaûi vieát laïi s/w moãi khi coù söï thay ñoåi veà ngoân ngöõ, h/w hoaëc o/s
Chöa ñaït ñöôïc 1 chuaån cho vieäc ño löôøng hieäu suaát vaø saûn phaåm
Ñoä phöùc taïp cuûa phaàn meàm quaù cao ñoái vôùi 1 “kieán truùc sö”
Kyõ thuaät ñaëc taû ñeå laïi söï nhaäp nhaèng trong caùc yeâu caàu phaàn meàm
Laøm vieäc nhoùm khoâng ñuùng kyû luaät gaây ra caùc loãi
- Trang 10 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 11. KHUÛNG HOAÛNG PHAÀN MEÀM (t.t)
Höôùng tôùi coâng ngheä saûn xuaát phaàn meàm chuyeân nghieäp
science
production professional
engineering
commercialization
craft
- Trang 11 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 12. ÑÒNH NGHÓA
Ñònh nghóa coå ñieån (cuûa Fritz Bauer)
Coâng Ngheä Phaàn Meàm laø söï thieát laäp vaø söû duïng caùc nguyeân taéc
khoa hoïc nhaèm muïc ñích taïo ra caùc phaàn meàm moät caùch kinh teá maø
caùc phaàn meàm ñoù hoaït ñoäng hieäu quaû vaø tin caäy treân caùc maùy tính.
- Trang 12 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 13. ÑÒNH NGHÓA (t.t)
Ñònh nghóa khaùc: Coâng Ngheä Phaàn Meàm
Laø caùc quy trình ñuùng kyû luaät vaø coù ñònh löôïng ñöôïc aùp duïng
cho söï phaùt trieån, thöïc thi vaø baûo trì caùc heä thoáng thieân veà phaàn
meàm
Taäp trung vaøo quy trình, söï ño löôøng, saûn phaåm, tính ñuùng
thôøi gian vaø chaát löôïng
- Trang 13 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 14. CHU TRÌNH
Chu trình (process) ñònh nghóa moät boä khung caùc tieâu
chuaån phaûi ñöôïc thieát laäp ñeå trieån khai coâng ngheä phaàn
meàm.
- Trang 14 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 15. PHÖÔNG PHAÙP
Phöông phaùp (method) chæ ra caùch thöïc hieän nhöõng coâng
vieäc cuï theå (“how to”):
phaân tích yeâu caàu
thieát keá
xaây döïng chöông trình
kieåm tra
söûa loãi
...
- Trang 15 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 16. COÂNG CUÏ
Coâng cuï (tool) cung caáp caùc hoã trôï töï
ñoäng hay baùn töï ñoäng ñoái vôùi chu trình vaø
phöông phaùp
Caùc coâng cuï ñöôïc tích hôïp taïo thaønh
CASE (Computer Aided Software
Engineering)
- Trang 16 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 17. MOÄT CAÙCH NHÌN TOÅNG QUAN VEÀ CNPM
Goàm 3 giai ñoaïn lôùn
Giai ñoaïn ñònh nghóa: Phaân tích heä thoáng (system engineering), Hoaïch
ñònh ñeà taøi (software project management), Phaân tích yeâu caàu (requirement
analysis).
Giai ñoaïn phaùt trieån: Thieát keá phaàn meàm (software design), sinh maõ
(code generation), kieåm tra phaàn meàm (software testing)
Giai ñoaïn baûo trì: Söûa loãi (correction), thay ñoåi moâi tröôøng thöïc thi
(adaptation), taêng cöôøng (enhancement)
- Trang 17 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 18. MOÂ HÌNH CMM
Optimized
(Level 5)
Risk Managed
(Level 4)
Defined
(Level 3)
Repeatable
(Level 2)
Initial Competitiveness
(Level 1)
- Trang 18 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 19. CAÙC MOÂ HÌNH PHAÙT TRIEÅN PHAÀN MEÀM
Moâ hình tuaàn töï tuyeán tính: coå ñieån
Moâ hình prototyping: prototype
Moâ hình xoaén oác: ñaùnh giaù ruûi ro
Moâ hình taêng daàn: caùc böôùc laëp
Moâ hình RAD: thôøi gian phaùt trieån ngaén
- Trang 19 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 20. MOÂ HÌNH TUAÀN TÖÏ TUYEÁN TÍNH
Requirement Software
System Engineering Coding Test Maintenance
Analysis Design
Moâ hình phaùt trieån phaàn meàm ñaàu tieân
Caùc coâng vieäc tieáp noái nhau moät caùch tuaàn töï
Ñaët neàn moùng cho caùc phöông phaùp phaân tích, thieát keá, kieåm
tra…
- Trang 20 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 21. MOÂ HÌNH TUAÀN TÖÏ TUYEÁN TÍNH (t.t)
Boäc loä moät soá khuyeát ñieåm
Baûn chaát cuûa phaùt trieån phaàn meàm laø quaù trình laëp ñi laëp laïi chöù khoâng
phaûi tuaàn töï
Baét buoäc khaùch haøng ñaëc taû taát caû yeâu caàu moät caùch chính xaùc vaø ñaày ñuû
ngay töø ban ñaàu
Khaùch haøng thöôøng phaûi chôø ñôïi raát laâu ñeå thaáy ñöôïc phieân baûn ñaàu tieân
cuûa saûn phaåm
Toàn taïi “delay” trong nhoùm laøm vieäc
- Trang 21 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 22. MOÂ HÌNH PROTOTYPING
Prototype nhö laø moät cô cheá ñeå
Xaây döïng
prototype nhaän dieän chính xaùc yeâu caàu cuûa
khaùch haøng
Thaûo luaän vôùi
Prototype coù theå bò “throw-away”
khaùch haøng Moät soá khuyeát ñieåm
Khaùch haøng hoái thuùc nhaø
phaùt trieån hoaøn thaønh saûn phaåm
Ñaùnh giaù cuûa moät khi thaáy ñöôïc caùc prototype
khaùch haøng
ñaàu tieân
Caùc prototype thöôøng khoâng
hoaït ñoäng hieäu quaû
- Trang 22 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 23. MOÂ HÌNH XOAÉN OÁC
R
Ñònh nghóa Ñaùnh giaù
quy trình ruûi ro
R
Hoaïch ñònh Phaùt trieån saûn phaåm
ñeà taøi ôû laàn laëp tieáp theo
R
Ñöôïc thöïc hieän theo moät chuoãi laëp kieåu xoaén oác, moãi laàn laëp caûi
thieän saûn phaåm
Coù phöông phaùp ñaùnh giaù ruûi ro
Coù theå aùp duïng prototype
Moãi laàn laëp ñöôïc caûi thieän cho thích nghi vôùi baûn chaát cuûa ñeà aùn
- Trang 23 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 24. MOÂ HÌNH TAÊNG DAÀN
Phaân tích yeâu caàu
Thieát keá kieán truùc
1
Phaùt trieån module
2 Tích hôïp
3
4
Kieåm tra heä thoáng
- Trang 24 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 25. MOÂ HÌNH TAÊNG DAÀN (t.t)
Caùc böôùc (iteration) ñaàu taäp trung vaøo yeâu caàu cuûa phaàn meàm vaø
thieát laäp moät kieán truùc oån ñònh cho heä thoáng (ít phaûi thay ñoåi sau
naøy)
Caùc böôùc sau taäp trung vaøo vieäc xaây döïng saûn phaåm ñeå cuoái
cuøng chuyeån sang giai ñoaïn kieåm tra heä thoáng
Moãi böôùc hieän thöïc moät phaàn cuï theå trong toaøn boä yeâu caàu cuûa
heä thoáng
Quaù trình xaây döïng vaø chieán thuaät kieåm tra theo kieåu taêng daàn
vaø döïa treân phöông phaùp kieåm tra hoài quy.
- Trang 25 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 26. MOÂ HÌNH RAD
Application Testing &
Business modeling Data modeling Process modeling
generation Turnover
Rapid Application Development laø moâ hình tuaàn töï tuyeán tính coù
thôøi gian phaùt trieån raát ngaén
Söû duïng caùc thaønh phaàn coù saün caøng nhieàu caøng toát
Söû duïng coâng cuï laäp trình ôû daïng töï ñoäng sinh maõ chöù khoâng
phaûi caùc ngoân ngöõ truyeàn thoáng
- Trang 26 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
- 27. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
Khoa Coâng Ngheä Thoâng Tin
Chöông 2
PHAÂN TÍCH YEÂU CAÀU THEO
PHÖÔNG PHAÙP COÅ ÑIEÅN
✦ Moâ hình phaân tích
✦ DFD & STD
✦ Töø ñieån döõ lieäu
- Trang 27 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 28. GIÔÙI THIEÄU
Khaùch haøng vaø nhaø phaùt trieån gaëp nhau ñeå thaûo
luaän veà yeâu caàu cuûa heä thoáng phaàn meàm caàn xaây
döïng
Nhaø phaùt trieån kieåm chöùng laïi (validate) yeâu caàu
vaø bieåu dieãn noù baèng moâ hình phaân tích
Moâ hình phaân tích (WHAT?): caùc chöùc naêng, döõ
lieäu input & output, caùc traïng thaùi khaùc nhau...
- Trang 28 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 29. NOÄI DUNG
2.1. Caùc yeáu toá caên baûn cuûa moâ hình phaân tích
2.2. Moâ hình chöùc naêng vaø doøng thoâng tin
2.2.1. Löôïc ñoà doøng chaûy döõ lieäu vôùi caùc kyù hieäu cô baûn
2.2.2. Môû roäng cuûa Ward vaø Mellor
2.2.3. Môû roäng cuûa Hatley & Pirbhai
2.3. Moâ hình haønh vi phaàn meàm
2.4. Kyõ thuaät phaân tích yeâu caàu
2.4.1. Xaây döïng DFD
2.4.2. Vieát PSPEC
2.5. Töø ñieån döõ lieäu
- Trang 29 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 30. CAÙC YEÁU TOÁ CAÊN BAÛN CUÛA MOÂ HÌNH PHAÂN TÍCH
Ñaëc taû Process Specification (PSPEC)
ñoái töôïng
döõ lieäu
Moâ hình chöùc naêng vaø
doøng thoâng tin: DFD, PSPEC
Löu ñoà Löu ñoà
quan heä doøng chaûy
thöïc theå Töø ñieån
döõ lieäu
Moâ hình döõ lieäu: ERD,
döõ lieäu
ñaëc taû ñoái töôïng döõ lieäu
Löu ñoà
dòch chuyeån
traïng thaùi Moâ hình haønh vi: STD,
Control Specification (CSPEC) CSPEC
- Trang 30 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 31. MOÂ HÌNH CHÖÙC NAÊNG VAØ DOØNG THOÂNG TIN
Moâ taû doøng thoâng tin di chuyeån (flow) xuyeân qua caùc heä thoáng
thieân veà phaàn meàm.
Thoâng tin input cuõng nhö output coù theå ôû nhieàu daïng khaùc nhau:
file, baøn phím, treân maïng, töø thieát bò, keát xuaát ra maøn hình vaø maùy
in…
Caùc giaûi thuaät xöû lyù cuõng raát ña daïng
- Trang 31 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 32. MOÂ HÌNH CHÖÙC NAÊNG VAØ DOØNG THOÂNG TIN (t.t)
Löu ñoà doøng chaûy döõ lieäu DFD (Data Flow Diagram) cung caáp 4
kyù hieäu cô baûn ñeå moâ hình söï di chuyeån cuûa doøng thoâng tin
DFD ñöôïc môû roäng ñeå moâ hình caùc heä thoáng thôøi gian thöïc
Môû roäng cuûa Ward vaø Mellor (töï ñoïc: [1], trang 312)
Môû roäng cuûa Hatley & Pirbhai (töï ñoïc: [1], trang 315)
- Trang 32 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 33. LÖÔÏC ÑOÀ DOØNG CHAÛY DÖÕ LIEÄU (DFD)
4 phaàn töû chính
Thöïc theå: taïo ra hoaëc tieâu thuï thoâng tin, naèm beân ngoaøi bieân giôùi cuûa
phaïm vi thoâng tin heä thoáng
Chöùc naêng xöû lyù: thöïc hieän chöùc naêng naøo ñoù, tieâu thuï vaø taïo ra thoâng
tin, naèm beân trong phaïm vi thoâng tin heä thoáng
Thoâng tin hay döõ lieäu
Kho döõ lieäu: löu tröõ döõ lieäu maø ñöôïc söû duïng bôûi nhieàu chöùc naêng xöû lyù
Chöùc naêng Kho döõ lieäu
Thöïc theå
xöû lyù Döõ lieäu
- Trang 33 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 34. LÖÔÏC ÑOÀ DOØNG CHAÛY DÖÕ LIEÄU (t.t)
DFD ñöôïc xaây döïng qua nhieàu möùc khaùc nhau: möùc 0, 1, 2…
DFD möùc sau chi tieát hôn möùc tröôùc
Process Specification (PSPEC) boå sung cho DFD
Tính lieân tuïc cuûa doøng döõ lieäu
- Trang 34 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 35. MOÂ HÌNH HAØNH VI PHAÀN MEÀM
Ñaày giaáy vaø saün saøng Raûnh
————————
Yeâu caàu copy
————————
Yeâu caàu ñoïc leänh
Löôïc ñoà dòch chuyeån
Ñoïc leänh
Copy xong
traïng thaùi (STD) theå hieän
———————— Ñaày giaáy
Yeâu caàu ñoïc leänh ———————— Caùc traïng thaùi khaùc
Yeâu caàu ñoïc leänh
nhau cuûa heä thoáng
Thöïc hieän Naïp giaáy
copy Heát giaáy
Söï dòch chuyeån giöõa
————————
Yeâu caàu naïp giaáy caùc traïng thaùi ñoù
Ví duï: mieâu taû hoaït
Keït giaáy Heát keït giaáy
———————— ———————— ñoäng cuûa maùy photocopy
Yeâu caàu xöû lyù loãi Yeâu caàu ñoïc leänh
Xöû lyù loãi
- Trang 35 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 36. KYÕ THUAÄT PHAÂN TÍCH YEÂU CAÀU
Thieát laäp ñoaïn vaên mieâu taû chöùc naêng (processing narrative) cho
heä thoáng caàn xaây döïng
Xaây döïng DFD ôû caùc möùc khaùc nhau
Thieát laäp sô ñoà ngöõ caûnh (DFD möùc 0)
Phaân hoaïch DFD vaøo caùc möùc cao hôn
Söû duïng phöông phaùp duyeät vaên phaïm.
Luoân luoân tuaân theo tính lieân tuïc cuûa doøng döõ lieäu
Vieát PSPEC cho caùc chöùc naêng cuûa DFD möùc cao nhaát
- Trang 36 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 37. XAÂY DÖÏNG DFD
Phaàn meàm SafeHome: Thieát laäp ñoaïn vaên mieâu taû xöû lyù
DFD möùc ngöõ caûnh: nhaän dieän caùc thöïc theå vaø döõ lieäu input, output
Baûng ñieàu khieån
Leänh vaø döõ lieäu Thoâng tin hieån thò Maøn hình
SafeHome Kieåu baùo ñoäng
Chuoâng
Traïng thaùi caûm öùng
Taàn soá cuûa soá ñieän thoaïi
Boä caûm öùng
Ñöôøng ñieän thoaïi
- Trang 37 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 38. XAÂY DÖÏNG DFD (t.t)
Baûng ñieàu khieån DFD möùc 1:
Yeâu caàu
Caáu hình
Leänh vaø döõ lieäu caáu hìnhh heä thoáng
hình thaønh
moät soá chöùc
Töông taùc
vôùi user
Thoâng soá caáu hình naêng chính
Start/stop
Maøn hình
Caám/
Maät maõ Cho pheùp
Thoâng baùo a/d
Thoâng tin hieån thò
Xöû lyù Xaùc nhaän maät maõ Hieån thò
maät maõ
Thoâng tin caûm öùng
Theo doõi Kieåu baùo ñoäng
Chuoâng
Traïng thaùi caûm öùng caûm öùng
Taàn soá cuûa soá ñieän thoaïi
Boä caûm öùng
Ñöôøng ñieän thoaïi
- Trang 38 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 39. XAÂY DÖÏNG DFD (t.t)
Thoâng tin caûm öùng
DFD möùc 2:
Ñònh daïng tinh cheá chöùc
Thoâng soá caáu hình hieån thò
naêng “Theo
Id, type, vò trí
Döõ lieäu caáu hình doõi caûm öùng”
Thieát laäp
Id, type Taïo tín hieäu
ñieàu kieän
chuoâng Kieåu baùo ñoäng
Id, type baùo ñoäng
Soá ñieän thoaïi
Chuoâng
Ñoïc döõ lieäu
caûm öùng Quay soá
Traïng thaùi caûm öùng
Taàn soá cuûa soá ñieän thoaïi
Boä caûm öùng
Ñöôøng ñieän thoaïi
- Trang 39 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 40. VIEÁT PSPEC
Coù theå vieát PSPEC baèng moät trong 2 caùch
Ngoân ngöõ töï nhieân (töông töï processing narrative)
Ngoân ngöõ PDL - laø ngoân ngöõ giaû giuùp theå hieän kieán truùc vaø
giao tieáp cuûa chöùc naêng xöû lyù
- Trang 40 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 41. TÖØ ÑIEÅN DÖÕ LIEÄU
Nhieàu phaàn töû ñöôïc taïo ra trong moâ hình phaân tích: döõ lieäu, chöùc
naêng, ñieàu khieån…
Phaûi coù moät caùch thöùc quaûn lyù caùc phaàn töû ñoù sao cho hieäu quaû:
töø ñieån döõ lieäu
Ñònh nghóa:
Töø ñieån döõ lieäu laø moät danh saùch coù toå chöùc cuûa taát caû caùc phaàn töû döõ lieäu caàn thieát
cho heä thoáng. Caùc phaàn töû ñöôïc ñònh nghóa chính xaùc vaø chaët cheõ sao cho caû phaân
tích vieân vaø khaùch haøng cuøng chia seû moät suy nghó veà chuùng.
Töø ñieån döõ lieäu thöôøng ñöôïc hieän thöïc nhö laø moät phaàn cuûa coâng
cuï CASE.
Moãi phaàn töû bao goàm nhöõng thoâng tin: teân, bí danh, ñöôïc duøng ôû
ñaâu/nhö theá naøo, ñaëc taû noäi dung vaø thoâng tin phuï trôï
- Trang 41 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 42. TÖØ ÑIEÅN DÖÕ LIEÄU (t.t)
Ví duï phaàn töû döõ lieäu soá ñieän thoaïi
Teân: Soá ñieän thoaïi
Bí danh: Khoâng
Ñöôïc duøng ôû ñaâu/nhö theá naøo: output cuûa Thieát laäp ñieàu kieän baùo ñoäng
input cuûa Quay soá
Ñaëc taû noäi dung:
soá ñieän thoaïi = [ môû roäng ñòa phöông | soá beân ngoaøi ]
môû roäng ñòa phöông = [ 2001 | 2002 … | 2009 ]
soá beân ngoaøi = 9 + [ soá ñòa phöông | soá ñöôøng daøi ]
soá ñòa phöông = tieàn toá + <chuoãi 4 kyù soá>
soá ñöôøng daøi = (1) + maõ vuøng + soá ñòa phöông
tieàn toá = [ 795 | 799 | 874 | 877 ]
- Trang 42 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 43. TOÅNG KEÁT
Phaân tích yeâu caàu theo pp coå ñieån bao goàm: moâ
hình chöùc naêng vaø doøng thoâng tin (DFD), moâ hình döõ
lieäu (ERD) vaø moâ hình haønh vi (STD)
Löôïc ñoà DFD cô baûn coù 4 kyù hieäu vaø noù ñöôïc môû
roäng ñeå bieåu dieãn ñöôïc caùc heä thoáng thôøi gian thöïc
Xaây döïng DFD möùc 0 roài ñeán caùc möùc cao hôn;
chuù yù baûo toaøn tính lieân tuïc cuûa doøng döõ lieäu
Töø ñieån döõ lieäu giuùp quaûn lyù vaø tra cöùu caùc phaàn töû
döõ lieäu
- Trang 43 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
- 44. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
Khoa Coâng Ngheä Thoâng Tin
Chöông 3
CAÙC KHAÙI NIEÄM CÔ BAÛN CUÛA
MOÂ HÌNH HÖÔÙNG ÑOÁI TÖÔÏNG
✦ Lôùp vaø ñoái töôïng, söï ñoùng bao
✦ Thuoäc tính, taùc vuï, thoâng ñieäp
✦ Bao goäp, thöøa keá
✦ Tính ña hình, tính vónh cöûu
- Trang 44 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 45. NOÄI DUNG
3.1. Ñoái töôïng vaø lôùp, ñoùng bao
3.2. Thuoäc tính
3.3. Taùc vuï
3.4. Thoâng ñieäp
3.5. Bao goäp
3.6. Thöøa keá vaø override
3.7. Tính ña hình
3.8. Tính vónh cöûu
- Trang 45 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 46. GIÔÙI THIEÄU
Moâ hình höôùng ñoái töôïng giôùi thieäu moät quan ñieåm laäp trình (vaø
phaân tích/thieát keá) khaùc haún so vôùi tröôøng phaùi coå ñieån (coù caáu
truùc)
Baét ñaàu nhen nhoùm vaøo nhöõng naêm cuoái 60s vaø ñeán ñaàu 90s trôû
neân raát phoå bieán trong coâng nghieäp phaàn meàm
Nhöõng ngoân ngöõ höôùng ñoái töôïng ñaàu tieân: Smalltalk, Eiffel. Sau
ñoù xuaát hieän theâm: Object Pascal, C++, Java…
Hình thaønh caùc phöông phaùp phaân tích/thieát keá höôùng ñoái töôïng
- Trang 46 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 47. ÑOÁI TÖÔÏNG vaø LÔÙP
Moâ hình höôùng ñoái töôïng quan nieäm theá giôùi bao goàm caùc ñoái
töôïng (object) sinh soáng vaø töông taùc vôùi nhau
Ñoái töôïng bao goàm
döõ lieäu: mang moät giaù trò nhaát ñònh
taùc vuï: thöïc hieän moät coâng vieäc naøo ñoù
- Trang 47 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 48. ÑOÁI TÖÔÏNG vaø LÔÙP (t.t)
Lôùp (class) ñònh nghóa moät taäp hôïp caùc taùc vuï vaø thuoäc tính maø
ñaëc taû ñaày ñuû caáu truùc vaø haønh vi cuûa caùc ñoái töôïng.
Ñoái töôïng (coøn goïi laø minh duï (instance) ) ñöôïc cuï theå hoaù töø lôùp
Caùc ngoân ngöõ laäp trình höôùng ñoái töôïng
Khai baùo lôùp: töông töï nhö khai baùo moät kieåu do ngöôøi duøng ñònh nghóa
Khai baùo ñoái töôïng: bieán cuûa kieåu lôùp
- Trang 48 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 49. ÑOÙNG BAO
Circle c1 : Circle
# Radius: float Radius = 1.3
- x: float x = 3.2
- y: float y = 1.7
+ Draw( w: Window)
+ GetClass( ): String
Ñoùng bao: vieäc goäp thuoäc tính vaø taùc vuï trong moät ñoái töôïng
ñoàng thôøi giôùi haïn caùch truy xuaát caùc thuoäc tính ñoù (thöôøng phaûi
thoâng qua caùc taùc vuï get/set)
- Trang 49 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 50. THUOÄC TÍNH
Thuoäc tiùnh (attribute) laø moät vuøng coù theå chöùa döõ lieäu (ñôn hoaëc
toå hôïp) cuûa lôùp.
Döõ lieäu maø thuoäc tính theå hieän naèm trong moät khoaûng giaù trò naøo
ñoù ñöôïc xaùc ñònh bôûi kieåu.
Giaù trò cuûa taát caû thuoäc tính xaùc ñònh traïng thaùi cuûa ñoái töôïng
Ví duï: moät ñoái töôïng cuûa Circle coù (Radius, x, y) = (1.2, 3.4, 5.3)
- Trang 50 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 51. THUOÄC TÍNH (t.t)
Thuoäc tính coù theå bò che daáu hoaëc truy xuaát ñöôïc töø beân ngoaøi
Moät soá ngoân ngöõ laäp trình (vaø UML): public, protected, private
Coù 2 loaïi taàm vöïc
Taàm vöïc lôùp: thuoäc tính chung cho taát caû caùc ñoái töôïng cuûa moät lôùp
Taàm vöïc ñoái töôïng: thuoäc tính cuûa töøng ñoái töôïng (coù theå mang giaù trò
khaùc nhau)
Baäc cuûa thuoäc tính chæ ra soá löôïng döõ lieäu maø baûn thaân thuoäc tính
coù theå naém giöõ: 0..1, 1, *, 5..8
- Trang 51 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 52. TAÙC VUÏ
Taùc vuï (operation) laø moät dòch vuï coù theå yeâu caàu töø phía ñoái
töôïng ñeå thöïc hieän haønh vi.
Daáu hieäu nhaän daïng cuûa taùc vuï (signature) xaùc ñònh caùc thoâng soá
coù theå truyeàn cuõng nhö keát quaû traû veà.
Phöông thöùc (method) laø phaàn hieän thöïc cuûa taùc vuï
- Trang 52 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 53. TAÙC VUÏ (t.t)
Taùc vuï coù theå bò che daáu hoaëc truy xuaát ñöôïc töø beân ngoaøi
Moät soá ngoân ngöõ laäp trình (vaø UML): public, protected, private
Taùc vuï coù theå ñöôïc override trong caùc lôùp con thöøa keá
Tröøu töôïng (abstract): khoâng coù hieän thöïc
Moät soá ngoân ngöõ laäp trình cho pheùp ñònh nghóa
Taùc vuï khôûi taïo (constructor): ñöôïc goïi khi ñoái töôïng môùi taïo ra
Taùc vuï huûy (destructor): ñöôïc goïi khi ñoái töôïng saép bò huyû boû
- Trang 53 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 54. VÍ DUÏ veà LÔÙP/ÑOÁI TÖÔÏNG - JAVA
class abstract HTMLObject {
protected static final int LEFT = 0;
protected static final int MIDDLE = 1;
protected static final int RIGHT = 2;
private int alignment = LEFT;
protected Vector objects = null;
HTMLObject( ){ // constructor
objects = new Vector ( 5 );
}
public void setAlignment( int algnmt ) {
alignment = algnmt;
}
public int getAlignment( ) {
return alignment;
}
public abstract String toHTML( ); // abstract operation
}
- Trang 54 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 55. THOÂNG ÑIEÄP
Thoâng ñieäp laø moät pheùp goïi taùc vuï ñeán moät ñoái töôïng
cuï theå.
Thoâng ñieäp bao goàm 3 phaàn
Ñoái töôïng ñích
Daáu hieäu nhaän daïng cuûa taùc vuï muoán goïi
Danh saùch thoâng soá goïi
- Trang 55 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 56. THOÂNG ÑIEÄP (t.t)
Ñoái vôùi caùc ngoân ngöõ laäp trình
Ñoái töôïng ñích: bieán ñoái töôïng hoaëc baûn thaân ñoái töôïng muoán göûi thoâng
ñieäp (self, this)
Daáu hieäu nhaän daïng cuûa taùc vuï muoán goïi: teân taùc vuï truøng nhau xem caùc
thoâng soá goïi
Danh saùch thoâng soá goïi: nhö pheùp goïi haøm bình thöôøng, chuù yù kieåu khi
truyeàn vaø gaùn keát quaû traû veà
Ví duï: aCircle.SetRadius( 3 ); aCircle.Draw( pWnd );
- Trang 56 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 57. BAO GOÄP
Bao goäp (aggregation) laø quan heä giöõa hai ñoái töôïng
Moät ñoái töôïng bao laáy ñoái töôïng kia
Quan heä naøy thöôøng xaûy ra trong theá giôùi thöïc, ví duï
Xe hôi bao goàm: baùnh xe, ñoäng cô, khung xe...
Trang HTML bao goàm: text, hình aûnh, tieâu ñeà, caùc lieân keát...
Checkbox, ComboBox, Slider… naèm trong moät hoäp thoaïi
- Trang 57 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 58. BAO GOÄP (t.t)
Hai daïng lieân keát giöõa ñoái töôïng nguoàn vaø ñoái töôïng ñích
Chaët cheõ: ñoái töôïng ñích ñöôïc taïo ra vaø huyû ñi ñoàng thôøi vôùi ñoái töôïng
nguoàn
Loûng leûo: chu kyø soáng cuûa hai ñoái töôïng ñoäc laäp nhau
Quan heä bao goäp cuõng ñöôïc aùp duïng cho lôùp
Moät soá ngoân ngöõ laäp trình hoã trôï caû 2 daïng lieân keát: bieán & con troû
- Trang 58 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 59. VÍ DUÏ veà BAO GOÄP - C++
class Geometry { // abstract base class
public:
Geometry( );
~Geometry( );
virtual void Draw( Window *pWnd ) = 0; // abstract operation
protected:
int xPos, yPos;
double xScale, yScale;
COLORREF color;
};
class Group : public Geometry {
public:
Group( );
~Group( );
virtual void Draw( Window *pWnd ); // override
private:
Geometry **ppGeo; // pointer container
int geoCount;
};
- Trang 59 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 60. THÖØA KEÁ vaø OVERRIDE
Thöøa keá (inheritance) laø quan heä giöõa hai lôùp
Lôùp con thöøa höôûng taát caû thuoäc tính vaø taùc vuï cuûa lôùp cha
Lôùp con (subclass) laø cuï theå hoaù cuûa lôùp cha (superclass); lôùp cha
laø toång quaùt hoaù cuûa lôùp con
Quan heä naøy cuõng thöôøng ñöôïc ghi nhaän trong theá giôùi thöïc, ví
duï
Hoå, baùo, soùi ñeàu laø thuù
Button, Checkbox vaø Dialog ñeàu laø Window
Hình troøn, hình chöõ nhaät, hình ellipse ñeàu laø hình veõ 2D.
- Trang 60 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 61. THÖØA KEÁ vaø OVERRIDE (t.t)
Hai loaïi thöøa keá: ñôn thöøa keá vaø ña thöøa keá
Ñôn thöøa keá: moãi lôùp con coù nhieàu nhaát laø moät lôùp cha
Ña thöøa keá:
Moãi lôùp con coù moät hoaëc nhieàu lôùp cha
Naûy sinh hai vaán ñeà: ñuïng ñoä giöõa teân caùc thaønh phaàn (member) cuûa lôùp
cha vaø thöøa keá laïi
- Trang 61 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 62. THÖØA KEÁ vaø OVERRIDE (t.t)
Lôùp con coù theå override laïi moät soá taùc vuï cuûa lôùp cha.
Phaûi giöõa nguyeân daáu veát nhaän daïng (signature) cuûa taùc vuï bò
override; chæ ñöôïc thay ñoåi phöông thöùc (phaàn hieän thöïc) cuûa noù
Ña soá ngoân ngöõ laäp trình höôùng ñoái töôïng hoã trôï thöøa keá
Moät soá ngoân ngöõ ñöa ra khaùi nieäm phöông thöùc aûo (virtual)
- Trang 62 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 63. VÍ DUÏ veà THÖØA KEÁ vaø OVERRIDE - JAVA
class HTMLDocument extends HTMLObject {
private String title = null;
// other attributes...
HTMLDocument( ){
}
public void setTitle( String ttl ) {
if ( ttl != null )
title = ttl;
}
public String getTitle( ) {
return title;
}
public String toHTML( ) { // override
StringBuffer html = new StringBuffer;
// additional implementation...
return html.toString( );
}
}
- Trang 63 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 64. TÍNH ÑA HÌNH
Moät ñoái töôïng mang nhieàu boä maët khaùc nhau: cuûa chính lôùp ñaëc
taû noù vaø cuûa caùc lôùp cha tính ña hình (polymorphism)
Töông hôïp kieåu: kieåu cuûa lôùp con luoân töông hôïp vôùi kieåu lôùp
cha
Moät soá ngoân ngöõ laäp trình ñònh nghóa khaùi nieäm lieân keát muoän
Haøm ñöôïc goïi ñeå ñaùp öùng caùc thoâng ñieäp ñöôïc xaùc ñònh trong thôøi gian
thöïc thi chöù khoâng phaûi bieân dòch
Moãi ñoái töôïng coù moät baûng phöông thöùc aûo
- Trang 64 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 65. TÍNH ÑA HÌNH (t.t)
Window
# hWnd: HWND Ví duï: ñoái töôïng http
+ MoveWindow( ) ñöôïc xem nhö thuoäc
+ GetClass( ): String
kieåu cuûa HttpView,
View http : HttpView
View vaø Window
+ GetClass( ): String
+ GetDocument( ): Document
HttpView
+ GetClass( ): String
- Trang 65 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 66. TÍNH VÓNH CÖÛU
Chu kyø soáng cuûa ñoái töôïng: khoaûng thôøi gian töø luùc ñoái töôïng
ñöôïc taïo ra ñeán luùc noù bò huyû ñi.
Thoâng thöôøng chu kyø soáng cuûa ñoái töôïng goùi goïn trong thôøi gian
chöông trình thöïc thi
- Trang 66 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 67. TÍNH VÓNH CÖÛU (t.t)
Chu kyø soáng cuûa ñoái töôïng coù theå vöôït ra khoûi söï thöïc thi cuûa
chöông trình tính vónh cöûu (persistence)
Ñoái töôïng ñöôïc caát vaøo boä nhôù vónh cöûu khi chöông trình keát thuùc
Khi caàn thieát coù theå khoâi phuïc laïi ñoái töôïng vaøo boä nhôù chính
Chæ löu tröõ traïng thaùi cuûa ñoái töôïng
Ngoân ngöõ C++ vaø Java: streaming
- Trang 67 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 68. TOÅNG KEÁT
Moâ hình höôùng ñoái töôïng quan nieäm theá giôùi bao goàm caùc ñoái
töôïng soáng chung vaø töông taùc vôùi nhau:
Caùc ñaëc ñieåm chính
Ñoùng bao: moãi ñoái töôïng bao goàm döõ lieäu vaø taùc vuï. Caùc taùc vuï thieát laäp
neân haønh vi cuûa ñoái töôïng. Caùc ñoái töôïng ñöôïc phaân loaïi baèng lôùp
Caùc ñoái töôïng töông taùc vôùi nhau baèng caùch göûi thoâng ñieäp
Giöõa caùc lôùp/ñoái töôïng coù theå toàn taïi quan heä bao goäp vaø thöøa keá
Tính ña hình: ñoái töôïng mang nhieàu boä maët
Tính vónh cöûu: ñoái töôïng coù theå “nguû”
- Trang 68 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm -
Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
- 69. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
Khoa Coâng Ngheä Thoâng Tin
Chöông 4
MOÂ HÌNH NGHIEÄP VUÏ
VAØ THU THAÄP YEÂU CAÀU
✦ Actor & use-case
✦ Moâ hình use-case
- Trang 69 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 70. NOÄI DUNG
4.1. Nhaän dieän caùc vai troø (actor)
4.1.1. Khaùi nieäm actor
4.1.2. Nhaän dieän actor
4.1.3. Actor trong UML
4.2. Nhaän dieän caùc tröôøng hôïp söû duïng (use-case)
4.1.1. Khaùi nieäm use-case
4.1.2. Tìm kieám use-case
4.1.3. Use-case trong UML
4.3. Thieát laäp caùc moái quan heä
4.3.1. Quan heä lieân keát (association)
4.3.2. Quan heä giao tieáp, goäp vaø môû roäng
4.4. Xaây döïng moâ hình use-case
- Trang 70 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 71. GIÔÙI THIEÄU
Khaùch haøng vaø nhaø phaùt trieån gaëp nhau cuøng
thaûo luaän veà yeâu caàu cuûa heä thoáng phaàn meàm caàn
xaây döïng
Moâ hình nghieäp vuï ñöôïc thieát laäp ñeå hoã trôï caû
nhaø phaùt trieån laãn khaùch haøng trong vieäc kieåm
chöùng laïi vaø thoáng nhaát yeâu caàu phaàn meàm vaø vai
troø caùc taùc nhaân beân ngoaøi
- Trang 71 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 72. KHAÙI NIEÄM ACTOR
Actor xaùc ñònh moät boä vai troø maø ngöôøi hoaëc vaät seõ ñoùng vai khi
töông taùc vôùi heä thoáng phaàn meàm
Actor naèm ngoaøi phaïm vi cuûa heä thoáng
Chæ quan taâm caùc thoâng ñieäp maø actor göûi hay nhaän
Khoâng quan taâm caáu truùc beân trong cuûa actor
Phaân loaïi actor
Chuû yeáu / Thöù yeáu
Tích cöïc / Thuï ñoäng
- Trang 72 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 73. NHAÄN DIEÄN CAÙC ACTOR
Traû lôøi moät soá caâu hoûi nhö
Ai laø ngöôøi söû duïng chöùc naêng chính cuûa heä thoáng ?
Ai caàn söï hoã trôï töø heä thoáng ñeå thöïc hieän coâng vieäc thöôøng nhaät cuûa hoï ?
Ai phaûi thöïc hieän coâng vieäc baûo döôõng, quaûn trò vaø giöõ cho heä thoáng
hoaït ñoäng ?
Heä thoáng seõ kieåm soaùt thieát bò phaàn cöùng naøo ?
Heä thoáng ñang xaây döïng caàn töông taùc vôùi nhöõng heä thoáng khaùc hay
khoâng ?
Ai hoaëc vaät theå naøo quan taâm ñeán hay chòu aûnh höôûng bôûi keát quaû maø heä
thoáng phaàn meàm taïo ra ?
- Trang 73 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 74. ACTOR trong UML
Actor ñöôïc bieåu dieãn baèng kyù hieäu hình ngöôøi
Actor ñöôïc xem laø moät lôùp (class) coù stereotype laø <<actor>>
Giöõa caùc actor coù theå coù quan heä toång quaù hoaù
Ví duï: Sinh vieân, giaûng vieân vaø khaùch ñeàu laø ñoäc giaû cuûa heä thoáng
quaûn lyù thö vieän
Ví duï: moät heä thoáng ñaêng kyù moân hoïc trong tröôøng ñaïi hoïc
- Trang 74 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 75. ACTOR trong UML (t.t)
Sinh vieân Phoøng Ñaøo Taïo
Heä thoáng
ñaêng kyù
moân hoïc
Giaûng vieân Phoøng Taøi Vuï
- Trang 75 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 76. ACTOR trong UML (t.t)
Quaûn trò vieân
Ngöôøi ñaêng kyù mailbox Heä thoáng
göûi nhaän mail
- Trang 76 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 77. KHAÙI NIEÄM USE-CASE
Use-case bieåu dieãn moät chöùc naêng cuûa heä thoáng phaàn meàm
Use-case ñöôïc bieåu dieãn baèng moät chuoãi caùc thoâng ñieäp trao ñoåi
beân trong heä thoáng vaø moät hoaëc moät soá thoâng ñieäp trao ñoåi vôùi
actor
Moät soá quy öôùc
Use-case luoân luoân ñöôïc baét ñaàu baèng thoâng ñieäp ñeán töø actor
Use-case phaûi hoaøn taát: chuoãi thoâng ñieäp phaûi keát thuùc baèng keát quaû cuï
theå.
Loãi thöôøng gaëp: chia nhoû use-case trôû thaønh nhöõng chöùc naêng vuïn vaët
- Trang 77 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 78. KHAÙI NIEÄM USE-CASE (t.t)
Ñieåm môû roäng laø moät vò trí trong use-case maø taïi ñoù coù theå cheøn
chuoãi söï kieän cuûa moät use-case khaùc
Use-case coù theå chöùa ñieàu kieän reõ nhaùnh, xöû lyù loãi, ngoaïi leä...
Minh duï cuûa use-case laø kòch baûn (scenario): mieâu taû cuï theå trình
töï caùc söï kieän
- Trang 78 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 79. TÌM KIEÁM USE-CASE
Traû lôøi moät soá caâu hoûi nhö
Actor yeâu caàu chöùc naêng gì cuûa heä thoáng ?
Actor caàn phaûi ñoïc, taïo, xoaù, söûa ñoåi hoaëc löu tröõ thoâng tin naøo ñoù cuûa heä
thoáng khoâng ?
Actor caàn thieát phaûi ñöôïc caûnh baùo veà nhöõng söï kieän trong heä thoáng, hay
actor caàn phaûi baùo hieäu cho heä thoáng veà vaán ñeà naøo ñoù khoâng ?
Heä thoáng coù theå hoã trôï moät soá coâng vieäc thöôøng nhaät cuûa actor naøo ñoù hay
khoâng ?
- Trang 79 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 80. TÌM KIEÁM USE-CASE (t.t)
Moät soá caâu hoûi khaùc caàn chuù yù
Heä thoáng caàn döõ lieäu input/ouput naøo ? Döõ lieäu ñoù ñeán töø ñaâu ?
Nhöõng khoù khaên naøo lieân quan ñeán hieän thöïc cuûa heä thoáng hieän taïi (chaúng
haïn heä thoáng quaûn lyù baèng giaáy tôø neân ñöôïc thay theá baèng heä thoáng quaûn lyù
treân maùy tính) ?
- Trang 80 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 81. USE-CASE trong UML
Use-case ñöôïc bieåu dieãn baèng hình ellipse
Giöõa use-case vaø actor thöôøng coù quan heä lieân keát
Giöõa caùc use-case cuõng coù quan heä lieân keát hoaëc toång quaùt hoaù
Ví duï: moät heä thoáng ñaêng kyù moân hoïc theo tín chæ trong tröôøng
ñaïi hoïc
- Trang 81 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 82. USE-CASE trong UML (t.t)
<<communicate>>
Sinh vieân Phoøng Ñaøo Taïo
Quaûn lyù MH
Ñaêng kyù hoïc
<<extend>>
Ñaêng kyù daïy
Quaûn lyù SV
Theâm SV môùi
Giaûng vieân
- Trang 82 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 83. THIEÁT LAÄP CAÙC MOÁI QUAN HEÄ
Quan heä giöõa actor vôùi actor
Quan heä giöõa actor vôùi use-case
Quan heä giöõa use-case vôùi use-case
UML ñöa ra quan heä lieân keát (association)
- Trang 83 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 84. QUAN HEÄ LIEÂN KEÁT
Quan heä lieân keát chæ ra moät quan heä coù yù nghóa giöõa hai beân
Trong thöïc teá: haønh khaùch vôùi laùi xe, sinh vieân vôùi giaùo vieân, giaûng vieân
vôùi moân hoïc…
Moät soá tính chaát lieân quan
Teân cuûa lieân keát
Moät chieàu hay 2 chieàu
Baäc: soá löôïng thöïc theå tham gia vaøo lieân keát taïi moãi beân
- Trang 84 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 85. QUAN HEÄ LIEÂN KEÁT trong UML
UML bieåu dieãn lieân keát nhö laø moät ñoaïn thaúng (hai chieàu) hoaëc
muõi teân (moät chieàu)
Coù theå aùp duïng stereotype:
<<include>>
<<extend>>
<<communicate>>
...
- Trang 85 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 86. LIEÂN KEÁT trong MOÂ HÌNH NGHIEÄP VUÏ
Lieân keát laø quan heä duy nhaát giöõa actor vaø use-case
Coù theå laø moät chieàu hoaëc hai chieàu
actor kích hoaït use-case vaø nhaän keát quaû veà: lieân keát 2 chieàu
actor kích hoaït use-case, khoâng quan taâm keát quaû veà: lieân keát 1 chieàu
1 *
Ñaët haøng
Ngöôøi baùn haøng
- Trang 86 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 87. QUAN HEÄ GIAO TIEÁP
Laø quan heä lieân keát coù stereotype laø <<communicate>>
Duøng ñeå lieân keát giöõa actor vôùi use-case maø noù kích hoaït
<<communicate>>
Ñaêng kyù daïy
Giaûng vieân
- Trang 87 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 88. QUAN HEÄ GOÄP
Laø quan heä lieân keát coù stereotype laø <<include>>
Duøng ñeå lieân keát giöõa 2 use-case
Trong use-case nguoàn coù moät ñieåm môû roäng maø taïi ñoù baét buoäc
phaûi cheøn use-case ñích vaøo
- Trang 88 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 89. QUAN HEÄ GOÄP (t.t)
Taïi ñieåm môû roäng, dieãn tieán cuûa use-case nguoàn taïm thôøi ngöøng
laïi ñeå chuyeån sang dieãn tieán cuûa use-case ñích
Khi keát thuùc use-case ñích, dieãn tieán cuûa use-case nguoàn laïi tieáp
tuïc
<<include>>
Tìm kieám Ñaêng nhaäp
- Trang 89 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 90. QUAN HEÄ MÔÛ ROÄNG
Laø quan heä lieân keát coù stereotype laø <<extend>>
Duøng ñeå lieân keát giöõa 2 use-case
Trong use-case nguoàn coù moät ñieåm môû roäng maø taïi ñoù coù theå
(hoaëc khoâng) phaûi cheøn use-case ñích vaøo
Cheøn hay khoâng phuï thuoäc vaøo ñieàu kieän reõ nhaùnh hoaëc töông
taùc töø phía actor
- Trang 90 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 91. QUAN HEÄ MÔÛ ROÄNG (t.t)
Taïi ñieåm môû roäng, neáu ñöôïc môû roäng thì dieãn tieán cuûa use-case
nguoàn taïm thôøi ngöøng laïi ñeå chuyeån sang dieãn tieán cuûa use-case
ñích
Khi keát thuùc use-case ñích, dieãn tieán cuûa use-case nguoàn laïi tieáp
tuïc
<<extend>>
Tìm kieám Ñaêng kyù ñaët choã
- Trang 91 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 92. XAÂY DÖÏNG MOÂ HÌNH USE-CASE
Caùc yeâu caàu cuûa phaàn meàm ñöôïc mieâu taû trong moâ hình use-case
Moâ hình use-case bao goàm caùc löôïc ñoà use-case (use-case
diagram) vaø (coù theå) moät soá package
Moãi löôïc ñoà use-case bao goàm caùc actor, use-case vaø caùc moái
quan heä
Coù theå söû duïng package ñeå gom moät soá use-case lieân quan taïo
thaønh moät boä chöùc naêng con cuûa heä thoáng
- Trang 92 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 93. XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t)
Caùc quan heä coù theå xaûy ra trong löôïc ñoà use-case
Quan heä lieân keát giöõa actor vaø use-case: moät chieàu hoaëc hai chieàu, thöôøng
coù stereotype laø <<communicate>>
Quan heä môû roäng hay goäp giöõa 2 use-case: quan heä lieân keát vôùi stereotype
<<extend>> hay <<include>>
Quan heä toång quaùt hoaù (generalization) giöõa caùc actor: nhieàu actor coù vai
troø cuûa moät actor tröøu töôïng
Quan heä toång quaùt hoaù giöõa caùc use-case: nhieàu use-case laø tröôøng hôïp cuï
theå cuûa moät use-case tröøu töôïng
- Trang 93 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 94. XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t)
fee summary
Prints timetable Makes timetable
Student
print request <<communicate>> Finance
<<communicate>> timetable command
Registers courses
Removes students
People
Administration
<<include>> Manages course
<<extend>>
<<include>>
Lecturer Reads courses
<<include>> Manages lecturers
<<include>> Adds students
<<extend>>
<<include>>
Login <<include>>
Manages students
Undertakes
courses
- Trang 94 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 95. XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t)
<<communicate>>
Forwards
Removes mailbox
Subcriber <<communicate>>
<<extend>>
<<extend>>
Views mail <<include>> Administrator
Replies
<<communicate>>
<<communicate>> <<extend>> <<include>>
<<include>>
Adds mailbox
Login
Composes
- Trang 95 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 96. XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t)
<<include>>
<<extend>>
models
imports
<<communicate>> initializes
<<communicate>> model command
import command
run command
<<communicate>>
export command
sets appearance
exports
<<communicate>>
save command Viewer
toggles light
saves model <<communicate>>
<<extend>> close command
toggles mode
exits
sets eye
sets viewing
- Trang 96 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 97. TOÅNG KEÁT
Moâ hình nghieäp vuï theå hieän caùc chöùc naêng
cuûa heä thoáng phaàn meàm vaø caùc thöïc theå lieân
quan
UML ñònh nghóa moâ hình use-case bao goàm
caùc actor, caùc use-case vaø caùc löôïc ñoà use-case
Tieáp theo moâ hình nghieäp vuï laø moâ hình caùc
ñoái töôïng phaân tích
- Trang 97 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu
caàu
- 98. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
Khoa Coâng Ngheä Thoâng Tin
Chöông 5
PHAÂN TÍCH YEÂU CAÀU
HÖÔÙNG ÑOÁI TÖÔÏNG
✦ Nhaän dieän ñoái töôïng/lôùp
✦ Löôïc ñoà lôùp
- Trang 98 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 99. NOÄI DUNG
5.1. Nhaän dieän caùc ñoái töôïng/lôùp
5.1.1. Ñoái töôïng/lôùp thöïc theå
5.1.2. Ñoái töôïng/lôùp bieân
5.1.3. Ñoái töôïng/lôùp ñieàu khieån
5.2. Nhaän dieän caùc thuoäc tính
5.2.1. Kieåu döõ lieäu cuûa thuoäc tính
5.2.2. Baäc cuûa thuoäc tính
5.2.3. Möùc ñoä truy xuaát thuoäc tính
5.3. Nhaän dieän caùc taùc vuï
- Trang 99 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 100. NOÄI DUNG (t.t)
5.4. Nhaän dieän lôùp cô sôû
5.4.1. Nhaän dieän caùc thuoäc tính/taùc vuï chung
5.4.2. Quan heä toång quaùt hoùa (generalization)
5.5. Nhaän dieän caùc moái quan heä
5.5.1. Quan heä lieân keát (association)
5.5.2. Quan heä bao goäp (aggregation)
5.6. Xaây döïng löôïc ñoà lôùp
5.7. Thieát laäp caùc package
- Trang 100 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 101. GIÔÙI THIEÄU
Moâ hình nghieäp vuï bieåu dieãn caùc chöùc naêng
ñoáii töôïng/lôùp
ñoá töôïng/lôùp
-- quan heä
quan heä phaàn meàm caàn xaây döïng döôùi daïng caùc use-case
Moâ hình phaân tích seõ tìm kieám caùc ñoái töôïng
“soáng” trong ngöõ caûnh cuûa phaàn meàm
Caùc ñoái töôïng seõ töông taùc vôùi nhau ñeå taïo neân
caùc chöùc naêng moâ taû bôûi use-case
- Trang 101 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 102. GIÔÙI THIEÄU (t.t)
Moâ hình phaân tích taäp trung moâ taû vai troø vaø caáu truùc cuûa caùc ñoái
töôïng
Chöa quan taâm ñeán haønh vi cuï theå vaø nhieäm vuï chi tieát cuûa
chuùng trong ngöõ caûnh cuûa heä thoáng
Nguyeân taéc: moâ hình phaân tích phaûi ñoäc laäp vôùi o/s, ngoân ngöõ
laäp trình, coâng cuï phaùt trieån
- Trang 102 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 103. NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP
Döïa vaøo ñaëc taû cuûa töøng use-case ñeå tìm kieám caùc ñoái töôïng
Caùc ñoái töôïng thöôøng xuaát hieän trong caùc danh töø hay nhoùm danh töø
Moät soá löu yù
Khoâng neân duøng ñoái töôïng ñeå bieåu dieãn moät döõ lieäu ñôn (neân xem laø thuoäc
tính cuûa ñoái töôïng khaùc)
Ñoái töôïng/lôùp phaûi thöïc söï caàn thieát cho söï hoaït ñoäng cuûa heä thoáng
Ñoái töôïng/lôùp ≠ baûng cô sôû döõ lieäu
Ñoái töôïng/lôùp ≠ actor
- Trang 103 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 104. NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t)
Phaân loaïi ñoái töôïng/lôùp
Ñoái töôïng thöïc theå (entity): bieåu dieãn caùc thoâng tin thieát
yeáu cuûa heä thoáng, coù theå ñöôïc löu trong cô sôû döõ lieäu
Ñoái töôïng bieân (boundary): thöïc hieän chöùc naêng giao
tieáp vôùi actor
Ñoái töôïng ñieàu khieån (control): ñieàu khieån caùc ñoái
töôïng khaùc
- Trang 104 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 105. NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t)
Trong UML, lôùp ñöôïc bieåu dieãn baèng moät hình chöõ nhaät goàm 3
phaàn: teân, caùc thuoäc tính vaø caùc taùc vuï
Coù theå aùp duïng stereotype cho lôùp: <<entity>>, <<boundary>>,
<<control>>...
Ñoái töôïng cuõng ñöôïc bieåu dieãn baèng hình chöõ nhaät, thoâng
thöôøng goàm 2 phaàn: teân ñoái töôïng + teân lôùp (ñöôïc gaïch chaân), giaù
trò caùc thuoäc tính (traïng thaùi cuûa ñoái töôïng)
- Trang 105 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 106. NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t)
HTMLObject
# alignment: int
+ GetAlignment( ): int
+ toHTML( ): String
HTMLDocument doc : HTMLDocument
alignment = MIDDLE
- title: String
title = “A document”
+ GetTitle( ): String
+ toHTML( ): String
- Trang 106 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 107. ÑOÁI TÖÔÏNG/LÔÙP THÖÏC THEÅ
Bieåu dieãn cho caùc thöïc theå xuaát hieän moät caùch töï nhieân trong heä
thoáng
Thoâng tin veà caùc ñoái töôïng thöïc theå coù theå phaûi ñöôïc löu tröõ laâu
daøi (database, file...)
Trong UML, ñöôïc gaùn stereotype <<entity>>
Deã nhaän dieän caùc thuoäc tính cuûa chuùng
- Trang 107 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 108. ÑOÁI TÖÔÏNG/LÔÙP THÖÏC THEÅ (t.t)
Ví duï:
Message Ñoái vôùi heä thoáng ñaêng kyù moân hoïc heä tín
<<entity>>
chæ qua WEB, nhaän dieän caùc ñoái töôïng thöïc
# subject: String
# sent: Date theå nhö: thoâng tin SV, thoâng tin GV, nhoùm
# content: String lôùp hoïc, ñaêng kyù nhoùm, soå tay sinh vieân…
+ GetSubject( ): String Ñoái vôùi heä thoáng mail, nhaän dieän caùc ñoái
+ toString( ): String
töôïng thöïc theå nhö: hoäp thö, thoâng ñieäp mail…
Ñoái töôïng ñöôøng ñoàng möùc, ñöùt gaõy vaø
baûn ñoà trong chöông trình veõ beà maët ñòa hình
- Trang 108 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 109. ÑOÁI TÖÔÏNG/LÔÙP BIEÂN
Thöïc hieän chöùc naêng giao tieáp vôùi actor
Thöôøng chöùa caùc phaàn töû hoaëc ñieàu khieån giao dieän ngöôøi duøng
(nuùt nhaán, hoäp danh saùch, tuyø choïn, menu...)
Trong UML, ñöôïc gaùn stereotype <<boundary>>
Khoù nhaän bieát caùc thuoäc tính vaø taùc vuï trong moâ hình phaân tích
- Trang 109 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 110. ÑOÁI TÖÔÏNG/LÔÙP BIEÂN (t.t)
Ví duï:
MailView
Ñoái vôùi heä thoáng ñaêng kyù moân hoïc heä
<<boundary>>
tín chæ qua WEB, nhaän dieän caùc ñoái töôïng
bieân nhö: RegisterForm, StudentForm…
Ñoái vôùi heä thoáng mail, nhaän dieän caùc
ñoái töôïng bieân nhö: MailView,
MailCompose...
- Trang 110 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 111. ÑOÁI TÖÔÏNG/LÔÙP ÑIEÀU KHIEÅN
Coù nhieäm vuï ñieàu khieån caùc lôùp khaùc hoaëc
(Ñôn giaûn hôn) Nhöõng lôùp khoâng phaûi laø lôùp thöïc theå vaø lôùp bieân
Trong UML, ñöôïc gaùn stereotype <<control>>
Lôùp bieân thöôøng coù quan heä lieân keát hoaëc phuï thuoäc vôùi caùc lôùp
khaùc
- Trang 111 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 112. ÑOÁI TÖÔÏNG/LÔÙP ÑIEÀU KHIEÅN (t.t)
Command
<<control>> Ví duï:
Ñoái töôïng bieåu dieãn
+ Execute( )
+ Reexecute( ) moät soá leänh thoâng
+ Unexecute( )
# Do( ) thöôøng nhö caét, daùn,
thay ñoåi thoâng soá nhìn
PasteCommand BgCommand
<<control>> <<control>> trong hieån thò ñoà hoaï…
+ Execute( ) + Execute( )
+ Reexecute( ) + Reexecute( )
+ Unexecute( ) + Unexecute( )
# Do( ) # Do( )
- Trang 112 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 113. NHAÄN DIEÄN CAÙC THUOÄC TÍNH
Döïa vaøo ñaëc taû cuûa töøng use-case, tìm kieám caùc danh töø hoaëc
nhoùm danh töø lieân quan ñeán ñoái töôïng ñang xeùt
Traû lôøi caâu hoûi: nhöõng thaønh phaàn naøo caáu thaønh ñoái töôïng ñang
xeùt ?
Löu yù: cuøng moät ñoái töôïng trong caùc ngöõ caûnh khaùc nhau chuùng
ta coù theå tìm ñöôïc caùc thuoäc tính khaùc nhau
- Trang 113 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 114. NHAÄN DIEÄN CAÙC THUOÄC TÍNH (t.t)
Neân xaùc ñònh (tuy nhieân khoâng baét buoäc) trong moâ hình phaân
tiùch
Kieåu cuûa thuoäc tính: moät soá kieåu cô baûn
Baäc cuûa thuoäc tính: soá ít hoaëc soá nhieàu
Visibility cuûa thuoäc tính: möùc ñoä cho pheùp truy xuaát thuoäc tiùnh töø beân
ngoaøi
UML: thuoäc tính ñöôïc mieâu taû töôøng minh hoaëc thoâng qua quan
heä vôùi caùc lôùp khaùc
- Trang 114 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 115. KIEÅU DÖÕ LIEÄU CUÛA THUOÄC TÍNH
Moät soá kieåu cô baûn cuûa caùc ngoân ngöõ laäp trình: integer, float,
double, long, char...
Moät soá kieåu cô baûn khaùc: string, date, time...
UML cho pheùp ñònh nghóa taát caû caùc kieåu döõ lieäu treân
- Trang 115 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 116. BAÄC CUÛA THUOÄC TÍNH
Baäc cuûa thuoäc tính: soá ít hay soá nhieàu
Neáu thuoäc tính ñöôïc ñaëc taû töôøng minh: duøng daáu [] ñeå chæ soá
nhieàu hoaëc soá löôïng chính xaùc
Tröôøng hôïp thuoäc tính ñöôïc mieâu taû thoâng qua quan heä vôùi caùc
lôùp khaùc: UML cho pheùp theå hieän baäc treân quan heä (ví duï: 1, 0, *,
2..9, 0..n)
- Trang 116 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 117. MÖÙC ÑOÄ TRUY XUAÁT THUOÄC TÍNH
UML ñònh nghóa 3 möùc ñoä truy xuaát thuoäc tính (visibility)
public (+): coù theå truy xuaát thuoäc tính töø taát caû caùc vò trí khaùc nhau
protected (#): baûn thaân lôùp ñang xeùt vaø caùc lôùp con cuûa noù coù theå truy
xuaát thuoäc tính
private (-): chæ coù lôùp ñang xeùt coù theå truy xuaát thuoäc tính
Thoâng thöôøng neân ñaët möùc ñoä truy xuaát thuoäc tính laø private
hoaëc protected (cho caùc lôùp cô sôû), khoâng neân laø public. Thuoäc tính
neân ñöôïc truy xuaát thoâng qua taùc vuï get/set
- Trang 117 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 118. NHAÄN DIEÄN CAÙC TAÙC VUÏ
Döïa vaøo ñaëc taû cuûa töøng use-case, tìm kieám caùc ñoäng töø hoaëc
nhoùm ñoäng töø lieân quan ñeán ñoái töôïng ñang xeùt
Chuù yù xem ñoái töôïng ñöôïc taïo ra vaø bò huyû boû ñi nhö theá naøo ?
Trong thôøi gian ñoù noù göûi/nhaän thoâng ñieäp ra sao ?
Caùc ñoái töôïng bieân coù caùc taùc vuï nhaän leänh töø actor.
- Trang 118 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 119. NHAÄN DIEÄN CAÙC TAÙC VUÏ (t.t)
Xem xeùt möùc ñoä truy xuaát cuûa taùc vuï töông töï nhö ñoái vôùi caùc
thuoäc tính; caùc taùc vuï thöôøng coù visibility laø + hoaëc #
Moät soá taùc vuï khoâng xuaát hieän moät caùch töï nhieân trong moâ hình
phaân tích moâ hình thieát keá seõ nghieân cöùu kyõ traùch nhieäm vaø
haønh vi cuûa töøng ñoái töôïng
- Trang 119 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 120. VÍ DUÏ veà NHAÄN DIEÄN THUOÄC TÍNH
StudentInfo
<<entity>>
LecturerInfo
<<entity>>
Heä thoáng ñaêng kyù
- name: String - name: String moân hoïc heä tín chæ qua
- code: Long - code: String
- dateOfBirth: Date - dateOfBirth: String
- addr: String - addr: String WEB - Nhaän dieän caùc
- acaYear: Date - degree
- department - title: String thuoäc tính cho caùc ñoái
- home: String - division
töôïng: StudentInfo,
- socialAid - health
- experience: Date
+ GetName( ): String
+ GetCode( ): Long + GetName( ): String
+ GetCode( ): String
LecturerInfo
- Trang 120 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
- 121. VÍ DUÏ veà NHAÄN DIEÄN THUOÄC TÍNH (t.t)
CourseOfferring Catalog Heä thoáng ñaêng kyù
<<entity>> <<entity>>
- courseName: String - acaYear: Date moân hoïc heä tín chæ qua
- courseCode: String - semester
- offering: int WEB - Nhaän dieän caùc
- session
- credit: int
- prerequisite thuoäc tính cho caùc ñoái
töôïng: CourseOffering,
Catalog
- Trang 121 -
Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng