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.

doc20 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2253 | Lượt tải: 0download
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:

  • docPhan1.doc
Tài liệu liên quan