Giới thiệu ngôn ngữ Java và case Tool
Java là ngôn ngữ lập trình hướng đối tượng, đa luồng, đa mục đích và thích hợp để tạo ra các ứng dụng cho Internet và các mạng phân tán phức hợp khác . Tuy PC rất phổ dụng nhưng nó không phải là loại máy duy nhất để truy cập Internet . Ngay cả PC, nó cũng đòi hỏi phải có các phiên bản khác của chương trình phụ thuộc vào hệ điều hành cụ thể . Các chương trình dành cho Windows có thể không chạy được trên OS/2 và các chương trình của OS/2 lại có thể không thích hợp với Unix . Nhưng Java giải quyết cụ thể triệt để vấn đề này bằng cách tạo ra " Chương trình thích nghi với mọi tình huống ". Những trình được tạo ra từ Java không quan tâm đến hệ máy mà bạn đang dùng . Mỗi kiểu máy tính và các hệ điều hành có phiên bản cụ thể gọi là máy Java ảo (Java Virtual Machine) . Java giúp các trình bày chuyển đổi từ trình Java sang dạng mà các loại máy tính và hệ điều hành cụ thể hiểu được . Quá trình chuyển đổi này hoàn toàn tự động và xuyên suốt đối với người dùng . Như vậy các trình ứng dụng được viết từ ngôn ngữ Java sẽ vận hành được trên bất cứ các loại máy nào trang bị Java Virtual Machine . Không cần đến các lập trình viên tạo ra vô số các phiên bản " riêng biệt" để thích ứng với các hệ điều hành "riêng biệt". Chỉ có một phiên bản để thích nghi với mọi hệ điều hành . Nói một cách khác nó có khả năng chuyển tải giữa các nền ở mức độ nguồn và mức nhị phân . Hot Java là một trình duyệt World Wide Web Browser của Sun Microsystem.
20 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2281 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Giới thiệu ngôn ngữ Java và case Tool, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Phaàn 1 : Giôùi thieäu Ngoân Ngöõ Java vaø Case Tool
I. Giôùi thieäu ngoân ngöõ Java :
Java laø ngoân ngöõ laäp trình höôùng ñoái töôïng, ña luoàng, ña muïc ñích vaø thích hôïp ñeå taïo
ra caùc öùng duïng cho Internet vaø caùc maïng phaân taùn phöùc hôïp khaùc . Tuy PC raát phoå duïng
nhöng noù khoâng phaûi laø loaïi maùy duy nhaát ñeå truy caäp Internet . Ngay caû PC, noù cuõng ñoøi hoûi
phaûi coù caùc phieân baûn khaùc cuûa chöông trình phuï thuoäc vaøo heä ñieàu haønh cuï theå . Caùc chöông
trình daønh cho Windows coù theå khoâng chaïy ñöôïc treân OS/2 vaø caùc chöông trình cuûa OS/2 laïi
coù theå khoâng thích hôïp vôùi Unix . Nhöng Java giaûi quyeát cuï theå trieät ñeå vaán ñeà naøy baèng caùch
taïo ra " Chöông trình thích nghi vôùi moïi tình huoáng ". Nhöõng trình ñöôïc taïo ra töø Java khoâng
quan taâm ñeán heä maùy maø baïn ñang duøng . Moãi kieåu maùy tính vaø caùc heä ñieàu haønh coù phieân
baûn cuï theå goïi laø maùy Java aûo (Java Virtual Machine) . Java giuùp caùc trình baøy chuyeån ñoåi töø
trình Java sang daïng maø caùc loaïi maùy tính vaø heä ñieàu haønh cuï theå hieåu ñöôïc . Quaù trình
chuyeån ñoåi naøy hoaøn toaøn töï ñoäng vaø xuyeân suoát ñoái vôùi ngöôøi duøng . Nhö vaäy caùc trình öùng
duïng ñöôïc vieát töø ngoân ngöõ Java seõ vaän haønh ñöôïc treân baát cöù caùc loaïi maùy naøo trang bò Java
Virtual Machine . Khoâng caàn ñeán caùc laäp trình vieân taïo ra voâ soá caùc phieân baûn " rieâng bieät"
ñeå thích öùng vôùi caùc heä ñieàu haønh "rieâng bieät". Chæ coù moät phieân baûn ñeå thích nghi vôùi moïi heä
ñieàu haønh . Noùi moät caùch khaùc noù coù khaû naêng chuyeån taûi giöõa caùc neàn ôû möùc ñoä nguoàn vaø
möùc nhò phaân . Hot Java laø moät trình duyeät World Wide Web Browser cuûa Sun Microsystem .
Ngoaøi nhöõng ñaëc tính cô baûn cuûa Web, noù cho pheùp heä thoáng ngöôøi ñoïc naïp xuoáng töø
maïng caùc Applet vaø thöïc thi chuùng, Applet hieän treân trang maïng baèng caùch töông töï nhö hieän
aûnh . Tuy nhieân Applet khoâng phaûi laø aûnh vì chuùng coù ñaëc tính ñoäng vaø coù khaû naêng töông taùc
. Moät caùch khaùc vôùi Java baïn coù theå thöôûng thöùc aûnh ñoà hoïa sinh ñoäng, caùc bieåu töôïng xoay,
caû nhöõng aâm thanh soáng ñoäng, nhöõng troø chôi hoaëc nhöõng hieäu öùng töông taùc khaùc nhau ngay
treân maïng xen giöõa caùc phaàn töû vaên baûn vaø ñoà hoïa . Ñoù laø keát quaû cuûa nhöõng chöông trình
ñöôïc gôûi töø Internet .
Ngoaøi Hot Java Browser laø World Wide Web Browser ñaàu tieân cho pheùp thöïc hieän Java
Applet, caùc Browser cuõng nhanh choùng phaùt trieån coù hoå trôï khaû naêng Java . Cuï theå laø
Netscape Navigator ñaõ boå sung khaû naêng hoå trôï Java töø phieân baûn 2.0 , caùc nhaø thieát keá
Browser khaùc cuõng ñang ñöa khaû naêng hoå trôï Java vaøo caùc saûn phaåm môùi cuûa mình .
Ñeå taïo moät Java Applet, ta vieát chuùng baèng ngoân ngöõ Java, sau ñoù bieân dòch chuùng baèng
Java Compiler, keá ñoù ta taïo theâm moät file HTML (Hyper Text Markup Language). Sau ñoù,
baát kyø ai treân heä thoáng maïng cuõng coù theå duøng Hot Java Browser hay moät Browser töông
thích Java naøo ñoù ñeå xem "trang maïng" naøy . Browser seõ taûi Applet töø maïng xuoáng heä thoáng
ngöôøi duøng .
Baïn neân hieåu veà Java laø ngoaøi vieäc taïo caùc Applet, baïn coù theå söû duïng Java vaøo nhieàu
öùng duïng khaùc . Java ñöôïc thieát keá nhö moät ngoân ngöõ laäp trình hoaøn chænh, vôùi Java baïn coù
theå tieán haønh laäp trình nhö vôùi moïi ngoân ngöõ laäp trình khaùc nhö : Pascal, C, VisualBasic … .
Baûn thaân Hot Java cuõng ñöôïc vieát baèng chính Java .
Java laø moät moâi tröôøng ñoäc laäp , ñoù laø moät trong nhöõng lôïi theá quan troïng cho pheùp Java
hôn haún nhöõng ngoân ngöõ khaùc , ñaëc bieät cho nhöõng heä thoáng caàn ñeå laøm vieäc treân nhieàu moâi
tröôøng (maùy tính , heä ñieàu haønh) khaùc nhau . Java laø moät moâi tröôøng ñoäc laäp ôû caû treân neàn heä
thoáng laãn döôùi möùc thaáp nhö xöû lyù nhò phaân.
Moâi tröôøng ñoäc laäp laø moät chöông trình coù khaû naêng duy chuyeån deã daøng töø heä thoáng
maùy tính naøy sang heä thoáng maùy tính khaùc khoâng phuï thuoäc vaøo caáu truùc cuûa maùy hay heä ñieàu
haønh hoaït ñoäng treân maùy .
ÔÛ möùc neàn, caùc kieåu döõ lieäu cô baûn cuûa Java coù vò trí vöõng chaéc trong taát caû caùc moâi
tröôøng . Nhöõng lôùp thö vieän cuûa Java giuùp cho baïn coù theå vieát ra caùc chöông trình maø noù coù
theå ñem töø maùy tính naøy sang maùy tính khaùc maø khoâng caàn phaûi vieát laïi ñeå chaïy rieâng cho
maùy môùi .
Moâi tröôøng ñoäc laäp khoâng bao giôø chæ döøng laïi ôû möùc neàn . Taäp tin chöùa maõ Java ñaõ
dòch cuõng gioáng nhö moâi tröôøng ñoäc laäp, noù cuõng coù theå chaïy treân nhieàu loaïi maùy tính khaùc
nhau maø khoâng gaëp phaûi vaán ñeà ñoøi hoûi bieân dòch laïi chöông trình nguoàn . Vaäy noù laøm vieäc
nhö theá naøo ? Nhöõng maõ Java thöïc söï ñöôïc goïi laø Bytecode . Vôùi bytecode laø moät taäp hôïp caùc
chæ daãn troâng khaù gioáng maõ maùy, nhöng noù khoâng cuï theå cho moät boä xöû lyù naøo .
Thoâng thöôøng, khi baïn bieân dòch moät chöông trình vieát trong C hay haàu heát nhöõng ngoân
ngöõ khaùc . Chöông trình bieân dòch seõ dòch chöông trình cuûa baïn ra maõ maùy hoaëc caùc chæ thò
cho boä xöû lyù . Nhöõng chæ thò naøy hoaøn toaøn cuï theå ñoái vôùi töøng boä xöû lyù ñeå maùy tính cuûa baïn
chaïy ñöôïc noù - vì vaäy, ví duï khi baïn bieân dòch chöông trình cuûa baïn treân moät maùy Pentium,
keát quaû chöông trình seõ chæ chaïy ñöôïc treân nhöõng heä thoáng Pentium khaùc . Neáu baïn muoán
duøng cuøng chöông trình naøy treân moät heä thoáng khaùc (ví duï nhö Applet), baïn phaûi söûa laïi
chöông trình nguoàn cuûa baïn, laáy trình bieân dòch cho heä thoáng môùi naøy vaø bieân dòch laïi cho
chöông trình nguoàn cuûa baïn . Chöông trình phaûi bieân dòch laïi khi muoán thöïc thi treân heä thoáng
khaùc .
Moïi thöù seõ trôû neân khaùc khi baïn vieát chöông trình trong Java . Moâi tröôøng phaùt trieån
Java goàm coù hai phaàn : moät Java Compiler (Chöông trình bieân dòch Java) vaø moät Java
interpreter (chöông trình thoâng dòch Java) . Chöông trình bieân dòch Java seõ laøm vieäc vôùi
chöông trình Java cuûa baïn vaø thay vì phaùt sinh ra maõ maùy töø taäp tin chöùa chöông trình nguoàn
cuûa baïn , noù laïi phaùt sinh ra maõ bytecode .
Compiler (Pentium)
Compiler (PowerPC)
Compiler (SPARC)
Binary File
(Pentium)
Binary File
(PowerPC)
Binary File
(SPARC)
Java Compiler
Binary File
(Pentium)
Compiler (Pentium)
Compiler (PowerPC)
Compiler (SPARC)
Binary File
(Pentium)
Binary File
(PowerPC)
Binary File
(SPARC)
Ñeå chaïy moät chöông trình Java, baïn goïi moät moät chöông trình coù teân laø bytecode
interpreter, noù seõ thöïc thi chöông trình Java cuûa baïn . Baïn coù theå chaïy baèng chöông trình
thoâng dòch (interpreter) hoaëc laø (ñoái vôùi applet) baèng moät bytecode interpreter caøi saün trong
HotJava hay trong moät chöông trình duyeät xeùt coù tính naêng Java khaùc ñeå chaïy nhöõng applet
cho baïn . Ch öông trình Java vieát döôùi daïng bytecode coù nghóa laø thay vì ñöôïc dòch cuï theå vôùi
töøng heä thoáng moät, chöông trình cuûa baïn seõ coù ñöôïc khaû naêng chaïy trong nhieàu loaïi maùy tính
vaø heä ñieàu haønh khaùc nhau khi boä thoâng dòch Java coøn coù hieäu löïc ôû ñoù . Khaû naêng naøy cuûa
taäp tin maõ Java seõ giuùp cho noù thöïc thi ñöôïc treân caùc loaïi moâi tröôøng khaùc nhau vaø laø tính coát
yeáu vôùi nhöõng gì applet coù theå laøm vieäc ñöôïc, bôûi vì World Wide Web töï noù cuõng laø moâi
tröôøng ñoäc laäp . Trong luùc taäp tin HTML coù theå ñöôïc ñoïc trong nhieàu moâi tröôøng, cuõng nhö
applet coù theå thöïc thi trong nhöõng moâi tröôøng maø nhöõng chöông trình duyeät xeùt coù tính naêng
Java chaïy ñöôïc treân ñoù.
Yeáu ñieåm cuûa vieäc duøng bytecode laø trong toác ñoä thöïc thi. Bôûi vì vôùi nhöõng chöông trình
chaïy trong moät heä thoáng cuï theå, vieäc chaïy tröïc tieáp treân nhöõng phaàn cöùng cho nhöõng caùi maø
noù seõ thöïc thi bôûi chöông trình thoâng dòch. Vì ñoái vôùi nhieàu chöông trình Java, toác ñoä khoâng
coøn laø vaán ñeà quan troïng . Neáu baïn vieát nhöõng chöông trình maø caàn nhieàu toác ñoä thöïc thi hôn,
boä thoâng dòch Java coù theå cung caáp baïn coù moät vaøi phöông aùn thích hôïp vôùi baïn, bao goàm vieäc
coù theå lieân keát nhöõng chöông trình nguoàn vaøo trong chöông trình Java cuûa baïn hoaëc laø duøng
nhöõng coâng cuï chuyeån ñoåi bytecode trôû laïi thaønh chöông trình nguoàn . Chuù yù raèng neáu baïn
duøng nhöõng phöông aùn naøy, baïn seõ maát tính chaát naêng ñoäng maø Java bytecode ñaõ cung caáp
cho baïn .
Ñoái vôùi moät vaøi ngöôøi, kyõ thuaät laäp trình höôùng ñoái töôïng (object - oriented - programming )
chæ ñôn thuaàn laø moät caùch toå chöùc chöông trình, vaø noù coù theå söû duïng toát trong nhieàu ngoân
ngöõ. Khi laøm vieäc vôùi ngoân ngöõ laäp trình höôùng ñoái töôïng thöïc vaø moâi tröôøng laäp trình naøy,
baïn coù khaû naêng ñaït ñöôïc heát taát caû nhöõng lôøi theá cuûa phöông phaùp laäp trình höôùng ñoái töôïng
vaø khaû naêng ñeå taïo ra söï meàm deûo, tính linh hoaït, laäp trình theo töøng khoái vaø söû duïng laïi
chöông trình cuõ. Gioáng nhö haàu heát nhöõng ngoân ngöõ laäp trình höôùng ñoái töôïng khaùc, Java bao
goàm moät taäp caùc lôùp thö vieän maø noù cung caáp nhöõng kieåu döõ lieäu cô baûn, döõ lieäu nhaäp cuûa heä
thoáng, khaû naêng xuaát döõ lieäu vaø nhöõng haøm tieän ích. Nhöõng lôùp cô baûn naøy laø nhöõng phaàn cuûa
coâng cuï phaùt trieån Java (Java Development Kit), noù cuõng coù nhöõng lôùp hoã trôï tính naêng maïng,
nhöõng nghi thö ùc chung cuûa Internet, vaø nhöõng haøm giao tieáp vôùi ngöôøi duøng . Bôûi vì nhöõng lôùp
thö vieän naøy ñöôïc vieát trong Java, noù coù tính khaû chuyeån giöõa caùc moâi tröôøng cuõng gioáng nhö
taát caû caùc öùng duïng khaùc cuûa Java .
Hoaït ñoäng cuûa moät öùng duïng vieát baèng Java
Chöông trình xaây döïng baèng Java ñöôïc chia laøm hai loaïi : Java Applet vaø Java
Application :
v Hoaït ñoäng cuûa Java Applet :
Java Applet laø caùc ñoái töôïng ñöôïc thöïc hieän treân trình duyeät Web . Khi thöïc hieän treân
caùc trình duyeät Web, Java Applet cuõng taïo ra hieäu öùng nhö moät öùng duïng bình thöôøng, tuy
nhieân caùc thoâng tin cho pheùp Java Applet thöïc hieän laïi ñöa töø caùc trang Web . Khi trình duyeät
Web truy caäp ñeán trang thoâng tin naøy, Java Applet seõ ñöôïc taûi veà trình duyeät Web vaø ñöôïc
thöïc hieän thoâng qua moät cô caáu goïi laø Java Virtual Machine (JVM) ñaõ ñöôïc caøi saün trong trình
duyeät .
v Hoaït ñoäng cuûa Java Application :
Java Application (Java App) laø nhöõng öùng duïng ñoäc laäp, töông töï nhö nhöõng chöông
trình coù ñuoâi .EXE hay ñuoâi .COM thoâng thöôøng . Vieäc thöïc hieän Java App ñôn giaûn hôn Java
Applet vì chuùng khoâng phaûi thoâng qua trình duyeät Web .
v Java Virtual Machine (JVM )
JVM ñoùng vai troø raát quan troïng ñeå caùc öùng duïng Java coù theå thöïc hieän ñöôïc . Noù hoaït
ñoäng nhö moät maùy tính aûo, cuõng coù boä leänh, caáu truùc döõ lieäu, boä nhô ù... Khi öùng döïng Java
thöïc hieän ( sau khi dòch, caùc öùng duïng Java coù phaàn môû roäng laø class ), JVM tieán haønh phaân
maõ trong class ñoù thaønh boä leänh cuûa JVM roài thöïc hieän gioáng nhö maùy PC thao taùc vôùi caùc
öùng duïng thoâng thöôøng . Do ñoù caùc class sau khi dòch coù theå ñöôïc thöïc hieän treân baát kyø heä
ñieàu haønh naøo thoâng qua maùy tính aûo JVM .
Bôûi vaäy, caùc class sau khi dòch coù theå ñöôïc thöïc hieän treân baát kyø heä ñieàu haønh naøo thoâng
qua maùy tính aûo JVM .
Hieän taïi, JVM ñöôïc xaây döïng cho haàu heát caùc heä ñieàu haønh vaø heä xöû lyù hieän coù, ñieàu
naøy coù nghóa laø caùc öùng duïng vieát baèng Java coù ñaày ñuû ñieàu kieän ñeå phaùt trieån .
Do phaûi hoaït ñoäng thoâng qua maùy tính aûo JVM neân toác ñoä thöïc hieän öùng duïng cuûa
Java khaù chaäm
Treân thò tröôøng hieän nay coù nhieàu boä coâng cuï laäp trình cho Java : Java Workshop cuûa
Sun Microsystems, Visual J cuûa Microsoft, Symantec Cafe cuûa Symantec … Taát caû ñeàu coù
ñieåm chung laø hoã trôï toái ña cho ngöôøi laäp trình . ÔÛ luaän aùn toát nghieäp naøy chuùng em ñaõ söû
duïng Symantec Cafe phieân baûn 1.8 ñeå vieát chöông trình naøy . Symantec Cafe 1.8 laø moät coâng
cuï laäp trình Java cuûa haõng Symantec, tuy laø moät phieân baûn cuõ nhöng noù vaãn hoå trôï toát cho
vieäc laäp trình Java .
II. Giôùi thieäu CaseTool :
Tìm hieåu ngoân ngöõ moâ hình hôïp nhaát ( uml )
Ngoân ngöõ moâ hình hôïp nhaát ( UML ) laø 1 taäp hôïp moâ hình quan nieäm vôùi heä thoáng kyù
hieäu ñôn trò. Baûn thaân noù ( UML ) khoâng laø 1 phöông phaùp laäp trình vì noù khoâng coù 1 caùch xöû
lyù naøo caû. Nhöng khi ñöôïc gheùp vôùi ENTERPRISE COMPONENT MODELING ( E C M ) _ (
hay baát kyø caùch naøo baïn choïn ), noù seõ trôû thaønh 1 phöông phaùp laäp trình . Ngoân ngöõ UML
Java Applet
Browser
Java Virtual Machine
( JVM )
Operating System
( OS )
PC coù caøi Browser
H.1 – Hoaït ñoäng cuûa Java Applet
duøng kieåu phaân tích vaø thieát keá höôùng ñoái töôïng ñeå xaây döïng neân moâ hình cuûa 1 heä thoáng
höôùng ñoái töôïng. Caùc moâ hình naøy coù theå ñöôïc duøng ñeå taïo maõ thöïc thi cho baûn dòch ( cuûa heä
ñieàu haønh ). Ngoân ngöõ UML, ñöôïc phaùt trieån bôûi Grady Booch, Jame Rumbaugh vaø Ivar
Jacobson, duøng caùc khaùi nieä m töø phöong phaùp Booch, OMT & OOSE vaø keát hôïp caùc yù kieán töø
caùc nhaø phöông phaùp hoïc khaùc. Baèng caùch hôïp nhaát caùc quan nieäm töø caùc phöông phaùp laäp
trình höôùng ñoái töôïng chuû ñaïo, UML coù tham voïng ñöa ra 1 tieâu chuaån cho vieäc phaân tích vaø
thieát keá höôùng ñoái töôïng.
Trong chöông naøy phaàn taøi lieäu veà caøi ñaët UML ñöôïc hoã trôï bôûi Paradigm Plus.
Paradigm Plus ñöôïc ñöa vaøo UML töø phieân baûn 1.0 . Nhöõng phaàn coá vaán caùc coâng vieäc keå
treân laø phaàn giôùi thieäu cô baûn ñeå coù caùi nhìn toång quaùt veà phöông phaùp laäp trình naøy.
Paradigm Plus hoã trôï theâm phaàn môû roäng cho UML bao goàm :
Requirement traceability
Business process modeling
Test plan management & change request tracking
Trong 1 soá tröôøng hôïp phaàn môû roäng ñöôïc ñính keøm vôùi sô ñoà vaø kyù hieäu ñeå hoã trôï cho
vieäc taïo maõ.
UML METHOD OVERVIEW
UML laø ngoân ngöõ moâ hình hôïp nhaát söû duïng 1 phöông phaùp xöû lyù . Phöông phaùp xöû lyù
ECM döôùi ñaây chæ ñöôïc toùm taét sô löôïc. Ñaëc bieät, nhö caùc kyù hieäu, baûn maãu tra cöùu, caáu truùc
team, coâng cuï, kyõ thuaät, change, process vaø thuû tuïc quaûn lyù quaûn lyù döï aùn, phaûi ñöôïc thieát laäp
bôûi caùc nhoùm caù theå caàn chu trình ECM. Caùc phaàn öùng duïng treân bao goàm1 hay nhieàu phaàn
meàm hôïp thaønh, moãi phaàn coù theå ñöôïc phaùt trieån vaø xöû lyù song song thoâng qua chu kyø soáng
cuûa chính phaàn öùng duïng. Chaúng haïn nhö, 1 soá phaàn ñöôïc keát hôïp trong 1 project ñoøi hoûi giai
ñoaïn phaân tích , trong khi 1 soá khaùc laïi ñoøi hoûi giai ñoaïn xaây döïng hay kieåm tra. Phöông phaùp
xöû lyù naøy coù theå ñöôïc duøng ñeå phaùt trieån 1 heä thoáng höôùng ñoái töôïng duøng UML. Neân xem
qua Enterprise Component Modeling ñeå bieát theâm thoâng tin.
Heä thoáng phaân phoái ñöôïc mieâu taû bôûi ECM are formally documented in an interrated
metamodel that spans the entire application lifecycle. A diagram showing how the various
ECM models and phases interrelate is depicted below:
BUSINESS PROCESS MODEL
Bpm ñöôïc duøng ñeå taû business processes toàn taïi baèng caùch phaân tích möùc ñoä kyõ thuaât
moâ hình naêng ñoäng Döïa vaøo traïng thaùi cuûa söï toàn taïi heä thoáng ( nghóa laø hieäu quaû, caùch trình
baøy, möùc ñoä töï ñoäng hoùa …). Coâng cuï & kyõ thuaät BPR coù theå trôû thaønh 1 phaàn cuûa coâng vieäc
trình baøy… performed to construct this model.
USAGE MODEL
Caùch söû duïng moâ hình ñöa ra cho heä thoáng tính naêng hoaït ñoäng töø phoái caûnh cuûa ngöôøi
söû duïng. Caùc tröôøng hôïp naøy ñöôïc xaây döïng khi xaùc ñònh ñöôïc yeâu caàu cuûa heä thoáng vaø keá ñoù
noù ñöôïc söû duïng vaø ñöôïc tinh cheá laïi trong giai ñoaïn phaùt trieån heä thoáng. Khi ngöôøi söû duïng
xaùc ñònh ñöôïc giai ñoaïn phaùt trieån heä thoáng seõ quyeát ñònh laøm gì vôùi heä thoáng , use cases seõ
taùc ñoäng leân giai ñoaïn phaùt trieån heä thoáng coøn laïi. Caùch söû duïng moâ hình ( Usage Model ) bao
goàm:
ü Use Case Diagrams
ü Collaboration Diagrams
ü Sô ñoà trình töï
ü Scenario Diagrams
ARCHITECTURE MODEL
Caáu truùc moâ hình ñöa ra 1 caùi nhìn coù tính khaùi quaùt cao veà caáu truùc vaøphaân phoái heä
thoáng cuûa quaù trình xöû lyù beân trong heä thoáng . Thoâng thöôøng noù ñöôïc xaây döïng khi caùc chöông
trình öùng duïng ñaõ ñöôïc duyeät. Caáu truùc moâ hình cuõng raát höõu duïng khi veõ (taû) sô ñoà maïng maø
caùc chöông trình öùng duïng seõ trieån khai. Architecture model bao goàm :
ü Sô ñoà trieån khai
COMPONENT MODEL
Component model taû nhöõng thaønh phaàn hôïp thaønh nhö söï bao boïc cuûa 1 soá trong caùc lôùp
coù quan heä vôùi nhau, associations, operations, events, & söï raøng buoäc(haïn cheá). Noù taû söï ñoäc
laäp vaø söï quan heä giöõa caùc thaønh phaàn ñaët treân giao dieän maø noù trình baøy. Caùc ñoái töôïng
thaønh phaàn coù theå ñoùng goùp vaø trôû neân thöïc thi duøng 1 soá caùc kyõ thuaät, goàm COBRA, Java, vaø
ActiveX/COM. Component Model bao goàm:
ü Sô ñoà Component
OBJECT MODEL
Object model mieâu taû caáu truùc tónh cuûa 1 heä thoáng, vôùi taát caû caùc lôùp ( caùc loaïi ñoái töôïng ) vaø
moái lieân quan giöõa chuùng. Object model bao goàm :
ü Sô ñoà lôùp(taàng _ Class)
ü Sô ñoà ñoái töôïng
INTERACTION MODEL (interactive : aûnh höôûng laãn nhau, töông taùc laãn nhau)
Interaction model mieâu taû veà lòch söû soáng (life history) cuûa 1 ñoái töôïng trong 1 lôùp ñaëc
bieät. Noù coøn dieãn taû trình töï xuaát hieän cuûa töøng taùc vuï . Interaction model bao goàm :
ü Sô ñoà traïng thaùi
ü Sô ñoà döï ñoaùn tình traïng keá tieáp
ü Sô ñoà trình töï
ü Sô ñoà coäng taùc (Collaboration)
PHYSICAL DATABASE MODEL
Physical database model thöôøng duøng trong moâi tröôøng cô sôû döõ lieäu maø ôû ñoù DDL &
DML ñöôïc sinh ra. Noù ñöa ra 1 ñaïi dieän cho thieát keá cô sôû döõ lieäu vaø phöông tieän trôï giuùp
trong caùch ñònh nghóa phaïm truø quan heä cuûa cô sôû döõ lieäu. Physical database model bao goàm:
ü Sô ñoà cô sôû döõ lieäu physical ???
Taát caû caùc moâ hình ñöôïc lieân heä vôùi nhau vaø ñöôïc laëp ñi laëp laïi trong suoát quaù trình phaùt
trieån .
Phaàn môû roäng sau ñöôïc toå hôïp trong phöông phaùp UML ;
ü Project Model
Trôï giuùp quaûn lyù project baèng caùch duy trì traceability heä thoáng trong quaù trình phaùt
trieån phaàn meàm
ü Physical database model
Moâ hình hoùa moâi tröôøng cô sôû döõ lieäu coù lieân quan
Caùc phaàn môû roäng naøy ñöôïc mieâu taû sô löôïc trong chöông naøy cho bieát chuùng coù theå ñöôïc
duøng ôû ñaâu trong chu kyø phaùt trieån .
METHODOLOGY STRATEGY
Phöông phaùp xöû lyù ECM moâ hình hoùa 1 heä thoáng thoâng qua moái lieân quan giöõa caùc giai
ñoaïn phaùt trieån moâ hình ñöa ra nhöõng caùch nhìn khaù c nhau trong heä thoáng. Heä thoáng ñöôïc xaây
döïng thoâng qua 7 giai ñoaïn. Moãi giai ñoaïn ñöôïc xaây döïng treân keát quaû cuûa giai ñoaïn tröôùc noù.
Computer System
“Moâ hình naém giöõ moät soá phaàn chuû yeáu cuûa heä
thoáng. (Modeling captures essential
parts of the system.)”
Dr. James Rumbaugh
Moâ hình tröïc quan laø moâ hình söû
duïng nhöõng kyù hieäu, chuù thích bình
thöôøng ñeå minh hoïa
Business Process
Order
Item
Ship via
Duø caùch xöû lyù naøy ñöôïc toàn taïi nhö linear squence, söï phaùt trieån cuûa heä thoáng laø 1 quaù trình
laëp vaø coù theå ñoøi hoûi theâm 1 soá böôùc laëp trong caùc level khaùc nhau. Caùc böôùc chính seõ cho
bieát moãi giai ñoaïn caàn laøm nhöõng gì vaø ñöa ra ñöôøng daãn höôùng daãn tìm sô ñoà vaø nhöõng neùt
ñaëc tröng coù theå ñöôïc söû duïng trong Paradigm Plus.
CASE Tool laø gì ?
§CASE : Computer-Aided System Engineering.
§CASE tool : coâng cuï hoå trôï ñeå phaùt trieån (phaân tích vaø thieát keá) caùc heä thoáng coù söû
duïng maùy tính (hardware, OS & software).
Caùc ñaëc tính ban ñaàu :
§Object-Oriented.
§Naém vöõng Methodology (Software Engineering).
§Thay ñoåi thöôøng xuyeân.
§Kinh nghieäm veà caùc moâ hình laäp trình.
Moâ hình tröïc quan (Visual Modeling) laø gì ?
Visual Modeling naém giöõ caùc quaù trình coâng vieäc (Business Process)
User Interface
(Visual Basic,
Java) Business Logic
(C++, Java)
Database Server
(C++ & SQL) Moâ hình heä thoáng cuûa baïn ñoäc
laäp ñoái vôùi ngoân ngöõ thöïc hieän
Use Case Analysis laø moät phöông phaùp kyõ thuaät ñeå naém giöõ business process vieãn
caûnh cuûa user (user’s perspective)
Visual Modeling laø moät coâng cuï giao thieäp (Communication Tool)
Söû duïng visual modeling ñeå naém giöõ caùc ñoái töôïng coâng vieäc (business objects) vaø logic
.Söû duïng visual modeling ñeå phaân tích vaø thieát keá öùng duïng (application) cuûa baïn.
Visual Modeling giaûi quyeát ñöôïc söï phöùc taïp
Visual Modeling ñònh nghóa, xaùc ñònh kieán truùc phaàn meàn (Software
Architecture)
Visual Modeling ñaåy maïnh söï thöøa keá (Promotes Reuse)
UML laø gì ?
§UML coù nghóa laø Unified Modeling Language (ngoân ngöõ moâ hình hôïp nhaát)
§UML keát hôïp töø nhöõng caùi toát nhaát
l Khaùi nieäm Data Modeling (Bieåu ñoà moái lieân heä thöïc theå _ Entity elationship
Diagrams)
l Business Modeling (doøng coâng vieäc _ work flow)
l Object Modeling
l Component Modeling
§UML laø ngoân ngöõ chuaån cho söï möôøng töôïng (visualizing), söï ñònh roõ (specifying),
söï xaây döïng (constructing), vaø söï cung caáp tö lieäu (documenting) giaû töôûng a(rtifacts) cuûa moïtt
heä thoáng phaàn meàn chuyeân saâu (software-intensive system)
§ Noù coù theå ñöôïc öû duïngvôùi taát caû caùc quaù trình (processes), trong suoát chu trình phaùt
trieån, vaø ngang qua caùc ngoân ngöõ thi haønh (implementation technologies) khaùc nhau.
Reusable
Components
Multiple Systems
Lòch söû phaùt trieån cuûa UML
UML cung caáp söï phaùt trieån öùng duïng
UML coù theå ñöôïc duøng ñeå :
application partitioning
Nov ‘97 UML approved by the OMG
Classes
Business Objects
Relationships
Business Process
Objects
Use Cases
large scale system
Scenarios
Components
Microsoft
ActiveX/COM
Microsoft
ORDBMS
Oracle
CORBA
OMG
§Trình baøy ranh giôùi cuûa moät heä thoáng vaø nhöõng haøm chuyeân ñeà (major function) cuûa
noù söû duïng use cases vaø actors
§Minh hoïa caùc use case thöïc hieän baèng caùc bieåu ñoà töông taùc (interaction diagram)
§Mieâu taû moät caáu truùc tónh cuûa moät heä thoáng söû duïng caùc bieåu ñoà lôùp (class diagram)
§Moâ hình traïng thaùi cuûa nhöõng object baèng caùc bieåu ñoà traïng thaùi chuyeån tieáp (state
transition diagrams)
§Bieåu loä caáu truùc thi haønh vaät lyù baèng caùc bieåu ñoà thaønh phaàn vaø trieån khai
(component & deployment diagram)
§Môû roäng haøm chöùc naêng (functionality) cuûa baïn baèng caùc maãu saün (stereotype)
Caùc moâ trong heä thoáng phaùt trieån (development)
(Object-Oriented Software Engineering - Ivar Jacobson)
Nhöõng moâ hình ñieàu kieän (Requirements Model): Use Case Model
§Phaân ñònh heä thoáng vaø ñònh nghóa theá naøo laø functionality heä thoãng seõ cung caáp
§Giao keát giöõa developer vaø orderer
Actors
§Moät actor laø ngöôøi naøo ñoù hay caùi gì ñoù maø phaûi aûnh höôûng laãn nhau vôùi heä thoáng
döôùi söï phaùt trieå n (Actors.mdl)
Student
Registrar
Professor
Phaân tích Xaây döïng Kieåm tra
Analysis Construction Testing
Requirements model
Analysis model
Design model
Implementation model
Test model
Use Cases
§Moät use case laø moät maãu (pattern) cuûa traïng thaùi heä thoáng bieåu loä
l Moãi use case laø moät söï lieân tuïc (sequence) cuûa nhöõng söï thöïc hieän coù quan heä
thöïc hieän bôûi moät actor vaø heä thoáng trong moät cuoäc ñoái thoaïi (dialogue)
§Caùc actor ñöôïc kieåm tra ñeå xaùc ñònh nhöõng gì chuùng caàn
l Registrar -- duy trì, baûo quaûn chöông trình giaûng daïy
l Professor -- yeâu caàu, ñeànghò baûng phaân coâng
l Student -- giöõ vöõng thôøi gian bieåu
l Billing System -- tieáp nhaän billing thoâng tin töø söï ñaêng kyù
§Usecases.mdl
Documenting Use Cases
§Moät doøng nhöõng söï kieän tö lieäu ñöôïc taïo ra cho moãi use cases
l Ñöôïc vieát ra töø moät quan ñieåm (point of view) actor
§Nhöõng chi tieát gì heä thoáng phaûi cung caáp cho actor khi use cases ñöôïc thöïc hieän
§Nhöõng noäi dung tieâu bieåu
l Use case baét ñaàu vaø keát thuùc nhö theá naøo
l Doøng chaûy bình thöôøng cuûa nhöõng söï kieän
l Doøng chaûy xen keû cuûa nhöõng söï kieän
Maintain
Schedule
Maintain
Curriculum
Request Course
Roster
l Doøng chaûy khaùc thöôøng cuûa nhöõng söï kieän
Use Case Diagram
§Caùc use case diagram ñöôïc taïo ra ñeå möôøng töôïng nhöõng moái quan heä giöõaa caùc
actor vaø caùc use case (UseCaseDiagram.mdl)
Söû duïng vaø môû roäng caùc Use Case Relationship
§Khi caùc use case ñöôïc cung caáp tö lieäu, caùc use case relationship khaùc coù theå ñöôïc
nhaän ra
l Moät moái lieân heä söû duïng (uses relationship) baøy toû thaùi ñoä maø noù phoå bieán tôùi moät
hay nhieàu use case
l Moät moái lieân heä môû roäng (extends relationship) baøy toû thaùi ñoä tuøy yù
§Toå chöùc caùc use case : UseCaseViewPackages.mdl
Use Case Realizations (söï thöïc hieän)
Registrar
Professor
Maintain Curriculum
Request Course
Student
Maintain Schedule
Billing System
Register for courses
>
Logon validation >
Maintain curriculum
§Use case diagram bieåu thò moät taàm nhìn beân ngoaøi cuûa heä thoáng
§Caùc Interaction diagram dieãn taû caùc use case ñöôïc thöïc hieän nhö theá naøo khi caùc söï
aûnh höông laãn nhau (interaction) giöõa söï giao du cuûa caùc object
§Hai loaïi interaction diagrams:
l Sequence diagrams (Bieåu ñoà lieân tuïc)
l Collaboration diagrams (Bieåu ñoà söï coäng taùc)
Sequence Diagram
§Moät sequence diagram bieåu thò caùc object interaction ñöôïc saép xeáp trong moät thôøi
gian lieân tuïc (SequenceDiagram.mdl)
Collaboration Diagram
§Moät collaboration diagram bieåu thò caùc object interaction ñöôïc toå chöùc xung quanh
caùc object vaø caùc link cuûa chuùng tôùi moät caùi khaùc (Collaboration.mdl)
: Student registration
form
registration
manager
math 101
1: fill in info
2: submit
3: add course(joe, math 01)
4: are you open?
5: are you open?
6: add (joe)
7: add (joe)
math 101
section 1
Class Diagrams
§Moät class diagram cho thaáy söï toàn taïi cuûa caùc class vaø nhöõng moái lieân heä cuûa chuùng
trong taàm nhìn logic cuûa moät heä thoáng
§UML moâ hình hoùa caùc yeáu toá trong class diagrams
l Caùc class vaø caáu truùc cuûa chuùng vaø taùc ñoäng
l Association (söï lieân keát), aggregation (söï taäp hôïp), dependency (phaàn phuï thuoäc),
vaø inheritance (söï thöøa keá) relationships
l Multiplicity and navigation indicators (vaät chæ thò)
l Role names
Caùc class
§Moät class laø moät söï taäp hôïp cuûa caùc object vôùi caáu truùc chung , taùöc ñoäng chung,
nhöõng moái lieân heä chung vaø ngöõ nghóa (semantics) chung
§Caùc class ñöôïc xaây döïng bôûi söï kieåm tra caùc object trong sequence vaø collaboration
diagram
§Moät class ñöôïc veõ nhö moät hình chöõ nhaät vôùi ba ngaên
§Caùc class seõ ñöôïc ñaët teân baèng caùc töø vöïng trong phaïm vi
l Daët nhöõng teân chuaån seõ ñöôïc taïo ra
: Registrar
course form :
CourseForm
theManager :
CurriculumManager aCourse :
Course
1: set course info
2: process
3: add course
4: new course
l Chaúng haïn taát caû teân caùc class laø caùc danh töø soá ít baét ñaàu vôùi moät maãu töï vieát hoa
§Classes.mdl
§Toå chöùc caùc class : ClassDiagram.mdl
Caùc thuoäc tính (Attribute)
§Caáu truùc cuûa moät class ñöôïc trình baøy bôûi caùc thuoäc tính cuûa noù
§Caùc thuoäc tính coù theå ñöôïc xaây döïng bôûi söï kieåm tra caùc ñònh nghóa class, caù c vaán
ñeà taát yeáu vaø bôûi aùp duïng phaïm vi hieåu bieát (Attribute.mdl)
Caùc quaù trình hoaït ñoäng (Operations)
§Taùc ñoäng cuûa moät class ñöôïc mieâu taû bôûi caùc quaù trình hoaït ñoäng cuûa noù
§Caùc quaù trình hoaït ñoäng coù theå ñöôïc xaây döïng bôûi söï kieåm tra caùc interaction
diagram (Operation.mdl)
RegistrationFor
RegistrationManage
Cours
Studen
CourseOfferin
Professo
ScheduleAlgorithm
Moãi course offering
coù, vò trí vaø thôøi gian
CourseOffering
number
location
time
Classes
Caùc moái quan heä (Relationships)
§Caùc moái quan heä cung caáp moät döôøng daãn cho söï lieân laïc giöõa caùc object
§Caùc sequence vaø/hoaëc collaboration diagram ñöôïc kieåm tra ñeå xaùc ñònh caùc link
giöõa caùc object caàn toàn taïi gì ñeå hoaøn thaønh taùc ñoäng (behavior) -- neáu hai object caàn "thaûo
luaän" (“talk”) chuùng caàn phaûi coù moät lieân keát (link) giöõa chuùng them
registration
form
registration
manager
3: add course(joe, math 01)
RegistrationManager
addCourse(Student,Course)
Copyright © 1997 by Rational Software
Corporation
Course
name
numberCredits
open()
addStudent(StudentInfo)
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
Student
nam
majo CourseOffering
location
open()
addStudent(StudentInfo)
Professor
nam
tenureStatu
ScheduleAlgorithm
§Ba loaïi relationship laø:
l Association (söï lieân keát)
l Aggregation (söï taäp hôïp)
l Dependency (phaàn phuï thuoäc)
§Moät association laø moät söï lieân laïc hai ñònh höôùng (directional) giöõa caùc class
(Associations.mdl)
l Moät association ñöôïc trình baøy nhö moät ñöôøng keát noái caùc class coù quan heä
§Moät aggregation laø moät hình theå sinh ñoäng hôn, vöõng chaéc hôn (stronger form) cuûa
relationship ôû choã moái lieân heä giöõa caùi toaøn theå (the whole) vaø caùc boä phaän cuûa noù
(Aggregations.mdl)
l Moät aggregation ñöôïc trình baøy nhö moät ñöôøng keát noái giöõa caùc class coù quan heä
vôùi moät hình thoi tieáp sau ñoù toâi moät class mieâu taû caùi toaøn theå
§Moät dependency relationship laø moät hình theå keùm hôn (weaker form) cuûa
relationship theå hieän ôû moái lieân heä giöõa moät cli ent vaø moät supplier nôi client khoâng coù söï
nhaän bieát veà ngöõ nghóa (semantic knowledge) cuûa supplier
l Moät dependency ñöôïc theå hieän nhö moät ñöôøng lao tôùi moät ñieåm (dashed line
pointing) töø client tôùi supplier (Dependency.mdl)
Phaùt hieän caùc Relationship
§Caùc Relationship ñöôïc phaùt hieän baèng caùch xem xeùt caùc interaction diagram
l Neáu hai object phaûi “talk” thì chuùng caàn phaûi coù moät ñöôøng daãn cho söï thoâng tin
Registration
Manager
Math 101:
Course
3: add student(joe)
RegistrationManager
Course
Relationships
Multiplicity and Navigation
§Multiplicity ñònh nghóa coù bao nhieâu object tham gia trong moät relationships
l Multiplicity laø moät soá instances cuûa moät class coù quan heä tôùi moät instance cuûa
class khaùc
l Ñoái vôùi moãi association vaø aggregation, coù hai multiplicity decisions (söï giaûi
quyeát) ñeå thöïc hieän: moät cho moãi ñaàu muùt cuûa moái lieân heä
§Maëc duø associations and aggregations laø hai ñònh höôùng (directional) bôûi maät ñònh
(default), noù thöôøng muoán (desirable) haïn cheá navigation tôùi moät direction
§Neáu navigation bò haïn cheá, moät muõi teân ñöôïc theâm vaøo ñeå bieåu loä höôùng cuûa
navigation
Söï thöøa keá (Inheritance)
open()
addStudent(StudentInfo)
RegistrationForm
RegistrationManager
Course
Student
CourseOffering
Professor
addStudent(Course, StudentInfo)
name
numberCredits
open()
addStudent(StudentInfo) major
location
tenureStatus
ScheduleAlgorithm
1 0..
0..
1
1
1..
4
3..1
0..
1
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
Course
name
numberCredits
open()
addStudent(StudentInfo)
Student
name
major
CourseOffering
location
open()
addStudent(StudentInfo)
Professor
name
tenureStatus
ScheduleAlgorithm
§Söï thöøa keá laø moät relationships giöõa moät superclass vaø caùc subclass cuûa noù
§Coù hai höôùng ñeå nhaän thaáy söï thöøa keá:
l Generalization (söï toång quaùt hoùa)
l Specialization (söï chuyeân moân hoùa)
§Caùc thuoäc tính chung, operations, vaø/hoaëc relationships ñöôïc tröng baøy ôû caáp coù theå
öùng duïng cao nhaát trong heä thoáng caáp baäc
(Generalization.mdl)
Traïng thaùi cuûa moät Object
§Moät traïng thaùi chuyeån tieáp (State transition diagram) bieåu hieän (State.mdl)
l Baûng chu trình cuûa moät class ñaõ quy ñònh
l Nhöõng söï kieän maø gaây neân moät söï chuyeån tieáp töø moät traïng thaùi naøy tôùi traïng thaùi
khaùc
l Nhöõng hoaït ñoäng maø keát quaû töø söï thay ñoåi traïng thaùi
§Caùc State transition diagram ñöôïc taïo ra bôûi caùc object vôùi ñoäng löïc taùc ñoäng ñaùng
keå
RegistrationForm
RegistrationManager
addStudent(Course, studentInfo)
Course
name
numberCredits
open()
addStudent(StudentInfo)
Student
major
CourseOffering
location
open()
addStudent(StudentInfo)
Professor
tenureStatus
ScheduleAlgorithm
name
RegistrationUser
State Transition Diagram
§(StateTransition.mdl, StateActions.mdl, StartStopStates.mdl, NestedState.mdl)
The Physical World
§Caùc component diagram minh hoïa caùc toå chöùc vaø caùc thaønh phaàn trong caùc software
component
§Moät component coù theå laø
l Moät source code component
Course Course
Offering
Student Professor
Course.dll
People.dll
Course
User
Register.exe Billing.exe
Billing
System
Initialization
Open
entry: Register student
exit: Increment count
Closed
do: Initialize course
do: Finalize course
Canceled
do: Notify registered students
Add Student /
Set count = 0
Add student [ count < 10 ]
[ count = 10
Cancel Cancel
Cancel
l Moät run time components hoaëc
l Moät executable component
Component Diagram (ComponentDiagram.mdl)
Trieån khai heä thoáng (Deploying the System)
§Deployment diagram bieåu thò hình theå cuûa caùc run-time processing element vaø caùc
software process ñang toàn taïi treân chuùng
§Deployment diagram möôøng töôïng söï saép xeáp, phaân loaïi cuûa caùc component qua
enterprise.
Deployment Diagram
§(DeloymentDiagram.mdl)
Nhöõng lôïi ích (Advantages)
§System Quality Assessment (söï ñaùnh giaù heä thoáng chaát löôïng).
§Reuseability.
§Round-trip engineering.
§Team-work development (chung söùc phaùt trieån).
§Reverse engineering.
Registration Database
Librar
Dorm
Main
Building
Các file đính kèm theo tài liệu này:
- Phan1.doc