1 / 296

UML

UML. A szabványos OO modellező nyelv. Modellezés. Modellezés. Programozás előtti előzetes terv Rendszerszervezés elemzés tervezés implementáció. Modellezés. különböző részletezettségi szintű vázlatos tervek előnyök áttekinthetőbbek ellenőrizhető megrendelőkkel egyeztetésre

coy
Download Presentation

UML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UML A szabványos OO modellező nyelv Vég Csaba / www.logos2000.hu

  2. Modellezés Vég Csaba / www.logos2000.hu

  3. Modellezés • Programozás előtti előzetes terv • Rendszerszervezés • elemzés • tervezés • implementáció Vég Csaba / www.logos2000.hu

  4. Modellezés • különböző részletezettségi szintű vázlatos tervek • előnyök • áttekinthetőbbek • ellenőrizhető • megrendelőkkel egyeztetésre • fejlesztés menete jobban nyomon követhető (erőforrásigény, bekerülés költsége). • könnyebben módosíthatók Vég Csaba / www.logos2000.hu

  5. Könnyebb módosítás Vég Csaba / www.logos2000.hu

  6. Vizuális jelölések • „térkép”, „tervrajz” (blueprint) • csomópontok: elemek; élek: viszonyok Vég Csaba / www.logos2000.hu

  7. Bonyolultság kezelése • „dealing with complexity” • eszközök • absztrakció • részekre bontás Vég Csaba / www.logos2000.hu

  8. Absztrakció (hasonlóság) • „vagy” • absztrakt elem Vég Csaba / www.logos2000.hu

  9. Részekre bontás • „és” Vég Csaba / www.logos2000.hu

  10. Absztrakció • Absztrakció • kiemelés lehetősége (konzisztencia!) • megosztás (sharing), újrafelhasználás (reuse) Vég Csaba / www.logos2000.hu

  11. Strukturált szemlélet Vég Csaba / www.logos2000.hu

  12. Szemléletek Vég Csaba / www.logos2000.hu

  13. Modell transzformációja Vég Csaba / www.logos2000.hu

  14. Megközelítési szintek • nézet • absztrakt megoldási mód • leképezés (mapping) Vég Csaba / www.logos2000.hu

  15. Történet Vég Csaba / www.logos2000.hu

  16. OO programozási nyelvek • ‘67 SIMULA (Dahl, Nygaard) • osztályok, egyszeres öröklődés, művelet-átdefiniálás (overloading), a statikus és dinamikus kötés (!), beépített garbage collection, korutinok, szimulációt segítő kiegészítő osztályok • ‘70-es évek: Smalltalk (A. Kay és A. Goldberg ) • az első tisztán OO nyelv • XEROX Palo Alto kutatóközpontja • "objektumorientált”: Alan Kay • SIMULA '67 koncepcióin LISP alapfelépítésű nyelv • üzenetváltás jelölése • grafikus felhasználói felületek (GUI) megjelenése Vég Csaba / www.logos2000.hu

  17. OO nyelvek: C kiterjesztés • '80-as évek elején • Objective-C • Smalltalk nyelvre épült • C++ (korábban: C with classes) • szimulációs feladatok hatékony kezelésére; több nyelvi elemet is a SIMULA '67-ből vettek át • objektumorientált koncepciók gépközeli szinten és hatékonysággal -> OO technikák ipari méretű felhasználása Vég Csaba / www.logos2000.hu

  18. C++ • bonyolult nyelv: teljes eszközrendszerét csak magasan kvalifikált programozók ismerik. • hatékony és ezért nagyon magas költségű megoldást kényszeríti ki: a problémát nem lehet nagyvonalúan, absztraktabb szinten megközelíteni • nem rendelkezik beépített automatizmusokkal (pl. gc) és védelmi eszközökkel (pl.: indexhatár-ellenőrzés), amelyek megkönnyítenék a biztonságos programok fejlesztését. • viszonylag kevés a szabványos kiegészítése (összetett adatok, felhasználói felületek kezelése). • Egy C++ projekt sikere nagy tapasztalatot és komoly előkészületeket igényel. Vég Csaba / www.logos2000.hu

  19. Java • egyszerűsített C++ • általánosság (pl. metódusok virtuálisak, objektumról megállapíthatjuk, hogy egy adott osztály példánya-e, stb.) előtérbe helyezése a hatékonyság rovására • belső automatizmusok (pl.: tárfelszabadítás) és a biztonságosság (pl.: indexhatár-ell., üres mutatón keresztül történő hivatkozás). • csak nehezen tehetjük meg, hogy ne nagyvonalúan közelítsük meg a feladatot. Vég Csaba / www.logos2000.hu

  20. Java • igen nagy méretű osztálykönyvtárral rendelkezik • a nyelv és a környezet is elméletileg platform-független: a szlogen szerint az egyszer megírt és lefordított kód bárhol futtatható, ahol elérhető a Java virtuális gép. • igen produktív környezet, amely lényegesen felgyorsíthatja az alkalmazások fejlesztését. • sok informatikai cég támogatja: objektumorientált „lingua franca” Vég Csaba / www.logos2000.hu

  21. Java - hiányosságok • következetlenségek a nyelvben • nem megoldottak a sebesség és hatékonyság problémák • csak részben megoldott az objektumok külső tárolásának kérdése (a perzisztencia, illetve a relációs adatbázisban történő tárolás) • az alkalmazásoknak igen nagy az erőforrásigénye. Vég Csaba / www.logos2000.hu

  22. Módszertanok • Szoftver-krízis • OO módszertanok • tervezés (OO design) • elemzés (OO analysis) • a kifejlesztendő alkalmazást már nyelvtől és platformtól független módon közelíti meg. • '86: Grady Booch (Ada tanfolyam) • Abbot '83 • diagramok (Intel iAPX 432) • ‘91: Booch módszer (nem csak Ada-ra) Vég Csaba / www.logos2000.hu

  23. '89: CRC-kártyák módszere (Cunningham és Beck) • '90: Rebecca Wirfs-Brock:felelősségeken alapuló tervezés (RDD: responsibility-driven design) Vég Csaba / www.logos2000.hu

  24. OO elemzés • Hagyományos elemzési módszerek alapján • '89: Shlaer-Mellor: adatmodellezés objektum-alapú kiegészítése • ‘90,’91: Coad-Yourdon: elemzési módszer Vég Csaba / www.logos2000.hu

  25. OMT • ‘91: James Rumbaugh és négy társa (Blaha, Premerlani, Eddy és Lorensen) General Electric kutatóközpontja • Objektum-modellezési technika (Object Modeling Technique - OMT) • jelölésrendszer és módszer • egyik legkedveltebb módszerré vált. Vég Csaba / www.logos2000.hu

  26. OMT siker • a könyv közérthető nyelven íródott • elsajátításához nem szükségesek mély informatikai ismeretek • minden fogalmat (informálisan) egyszerűen és érthetően definiáltak • legnépszerűbb jelölések alapján konzisztens jelölésrendszert állítottak össze • módszerük egyszerűen, szinte gépiesen végrehajtható lépésekből áll (alapja az Abbot-féle szövegelemzés) Vég Csaba / www.logos2000.hu

  27. OMT • a gyakorlati alkalmazás a jelölések és a technika több gyenge pontját és hiányosságait is a felszínre hozta. • áttekinthető és biztonságos alap • használható az OO technikákkal való ismerkedés első lépéseként is • Az UML majdnem teljes mértékben átvette az OMT jelöléseit. Vég Csaba / www.logos2000.hu

  28. Használati esetek • korai OO módszerek hiányossága: kevés támpontot adtak a követelmények tisztázására. • pl. OMT: adottnak tételezi fel szöveges formában • Jacobson és társai: Objectory, ill. OOSE (Object-Oriented Software Engineering) • újdonsága a használati esetek (use case) technikája. Vég Csaba / www.logos2000.hu

  29. Használati eset • a rendszer és a felhasználó közötti tipikus interakció-sorozat • összefoglalhatjuk a rendszerrel kapcsolatos követelményeket, a rendszer vázlatos külső "képét", a rendszer „határait”. • nagyon népszerű technika (nem OO) • OMT-II: alkalmazásfejlesztés első lépése Vég Csaba / www.logos2000.hu

  30. Egységesítés és szabványosítás • ‘90-es évek: OO technikák nagyon népszerűek, • önálló jelölések és módszerek (10-50) • nehéz volt választani • azonos koncepciókat használtak • Jelentősebb módszer második generációja (pl. Booch '93, OMT-II), melyek több koncepciót, jelölést és technikát is átvettek versenytársaiktól. • OMG (Object Management Group) kísérlet • Booch: informális megbeszélések ("kötetlen reggeli kávézás") • "módszerek háborúja" (method war) Vég Csaba / www.logos2000.hu

  31. Egyeztetés • '94 ősz: OOPSLA: Booch és Rumbaugh • (Method war is over - we won)Rumbaugh csatlakozik Booch cégéhez (Rational) • '95 OOPSLA: • Egységesített módszer (Unified Method) 0.8Booch '93 + OMT-II + használati esetek • Jacobson (Objectory) is csatlakozik • UM: sok kritika; nem tartalmazott tényleges módszertani elemeket • '96: • UML (Egységesített modellező nyelv) 0.9 • Rational Objectory Process Vég Csaba / www.logos2000.hu

  32. Szabványosítás • UML Partners: UML szabványosítása • (önmagában is "de facto" szabvánnyá vált volna). • ‘97 jan: UML 1.0 (néhány kifogás) • ‘97 szept. UML 1.1 • ‘97 nov. OMG szabvány • UML dokumentáció: Rational web-lapján • ‘97: Fowler - Scott: UML Distilled. Applying the Standard Object Modeling Language • ‘99 UML 1.3 Vég Csaba / www.logos2000.hu

  33. UML források • Booch, Rumbaugh, Jacobson: The Unified Modeling Language User Guide • Rumbaugh, Jacobson, Booch: The Unified Modeling Language Reference Manual • Jacobson, Booch, Rumbaugh: The Unified Software Development Process Vég Csaba / www.logos2000.hu

  34. Mi az UML? • Unified Modeling Language • OO szemléletre épülő elemzés és tervezés eszköze. • közvetlen örököse a korábbi három legnépszerűbb objektumorientált módszertannak (a három jelölésrendszer következő generációjának is tekinthető) • az OMG által elfogadott, szabványos jelölésrendszer. • alapvetően grafikus nyelv (diagramok) • modellező nyelv • nem vizuális programozási nyelv • a modellek ábrázolására alkalmas jelölésrendszer Vég Csaba / www.logos2000.hu

  35. szabványosság • Információcsere: OO módszerek ipari méretekben történő alkalmazásának kulcsa • fejlesztői csoporton belüli kommunikáció • vállalatok közötti információcsere • a megrendelő és a fejlesztő cég közötti információcsere • nem szükséges külön belső szabványt kialakítani, • nagyobb ismeretanyag, könyvek, cikkek… • oktatják, ezért lerövidíthető az újonnan felvett informatikusok munkába állása. Vég Csaba / www.logos2000.hu

  36. Nyelv és módszer • modellező nyelv: modellek ábrázolásaa nyelv ismerete egy kész modell értelmezését teszi lehetővé, de nem ad ajánlást arra vonatkozóan, hogy azt milyen lépésekkel állítsuk elő. • A módszer (process) felajánl egy lépéssorozatot, amely segítségével megrajzolható az alkalmazás modellje. Vég Csaba / www.logos2000.hu

  37. Rational Unified Process • Objectory • Jacobson (Objectory) csatlakozásaketté választották a modellező nyelvet (UML) és a módszertant (Rational Objectory Process). • ‘98: Rational Unified Process (RUP) Vég Csaba / www.logos2000.hu

  38. használati eset vezérelt • robosztus architektúrára összpontosító tervezés • lehetővé teszi a párhuzamos fejlesztést, az újrafelhasználhatóságot és egyszerűsíti a későbbi karbantartást. Vég Csaba / www.logos2000.hu

  39. iteratív és inkrementális eljárás • nem "vízesésszerű" • igényeket több részre bontjuk és először csak a leglényegesebb elemeket valósítjuk meg • egyre több ismeret gyűlik össze az alkalmazással szemben támasztott tényleges követelményekről • minden iteráció működő és tesztelhető szoftver • inkrementális: elemek integrációja folyamatos (őse a Booch módszer) Vég Csaba / www.logos2000.hu

  40. a fejlesztés folyamata ellenőrzött • a felhasználók által igényelt alkalmazást fejlesztjük • a fejlesztés kockázatai és erőforrásigénye is becsülhető • a fejlesztés folyamata is tervezhető • minőségbiztosítás - a fejlesztés menetébe integrálható. Vég Csaba / www.logos2000.hu

  41. Alapelemek Vég Csaba / www.logos2000.hu

  42. Megjegyzések • "megjegyzéslap" alakzat ("notesz-lap"), melyen szöveg és kép is szerepelhet. Vég Csaba / www.logos2000.hu

  43. Csatolás Vég Csaba / www.logos2000.hu

  44. Külső dokumentum és URL Vég Csaba / www.logos2000.hu

  45. Szövegen belüli megjegyzés Vég Csaba / www.logos2000.hu

  46. Elnevezések • Rövidített elnevezések • Fogalomszótár v. szójegyzék (glossary) • elnevezések rövid leírása Vég Csaba / www.logos2000.hu

  47. Seminar — tanfolyamszervezés • A Seminar alkalmazás megkönnyíti a tanfolyamok szervezését. Segítségével Web-en meghirdetheti tanfolyamait, melyekre az érdeklődők egy űrlap kitöltésével előzetesen jelentkezhetnek. • A tanfolyamok meghirdetését az oktatási igazgató (v. helyettese) irányítja, az adminisztratív teendőket pedig a tanfolyam-szervezők látják el. • A meghirdetett tanfolyamot a megtartása előtt 3-5 munkanappal a szervező véglegesítheti vagy elegendő jelentkező hiányában, esetleg egyéb különleges ok miatt lemondhatja; mindkét esetben a jelentkezőket e-mail-ben értesíteni kell. A jelentkezések szintén lemondhatók. • A megtartott/lemondott tanfolyamok adatait egy archívum gyűjti. Vég Csaba / www.logos2000.hu

  48. Kiterjesztési mechanizmusok • szabványos jelölések: a modellek ábrázolásának egy általános kerete • kiterjesztési mechanizmusok: az általános jelölésrendszert a fejlesztés által megkövetelt irányba specializálhatjuk a szabvány keretein belül • az alkalmazás szakterületének, • az alkalmazott technológiának • a fejlesztési módszernek megfelelő jelölések • kiterjesztési mechanizmusokkal az UML a fejlesztés és a feladat környezetéhez igazítható. Vég Csaba / www.logos2000.hu

  49. UML kiterjesztési mechanizmusai • Sztereotípia: új modellelemek jelölése. • Megszorítások: tulajdonságok, melyek az UML más jelöléseivel nem adhatók meg. • Kulcsszavas értékek: a modellelemek leírását speciális jellemzőkkel egészíthetjük ki. Vég Csaba / www.logos2000.hu

  50. Sztereotípia • Rebecca Wirfs-Brock - elnevezés (stereotype) • osztályok magas szintű tipizálása, az osztály általános céljának és jellegének megadása, melyek a kódban csak közvetve ("jellegként") jelennek meg, • pl. vezérlő (controller) vagy megjelenítő (view) • Jacobson (Objectory/OOSE): sztereotípiákkal minden osztályt három csoportba soroljunk • modell (szakterületi osztály) • interfész (például megjelenítő) • vezérlő Vég Csaba / www.logos2000.hu

More Related