2.96k likes | 3.16k Vues
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
E N D
UML A szabványos OO modellező nyelv Vég Csaba / www.logos2000.hu
Modellezés Vég Csaba / www.logos2000.hu
Modellezés • Programozás előtti előzetes terv • Rendszerszervezés • elemzés • tervezés • implementáció Vég Csaba / www.logos2000.hu
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
Könnyebb módosítás Vég Csaba / www.logos2000.hu
Vizuális jelölések • „térkép”, „tervrajz” (blueprint) • csomópontok: elemek; élek: viszonyok Vég Csaba / www.logos2000.hu
Bonyolultság kezelése • „dealing with complexity” • eszközök • absztrakció • részekre bontás Vég Csaba / www.logos2000.hu
Absztrakció (hasonlóság) • „vagy” • absztrakt elem Vég Csaba / www.logos2000.hu
Részekre bontás • „és” Vég Csaba / www.logos2000.hu
Absztrakció • Absztrakció • kiemelés lehetősége (konzisztencia!) • megosztás (sharing), újrafelhasználás (reuse) Vég Csaba / www.logos2000.hu
Strukturált szemlélet Vég Csaba / www.logos2000.hu
Szemléletek Vég Csaba / www.logos2000.hu
Modell transzformációja Vég Csaba / www.logos2000.hu
Megközelítési szintek • nézet • absztrakt megoldási mód • leképezés (mapping) Vég Csaba / www.logos2000.hu
Történet Vég Csaba / www.logos2000.hu
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
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
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
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
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
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
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
'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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Alapelemek Vég Csaba / www.logos2000.hu
Megjegyzések • "megjegyzéslap" alakzat ("notesz-lap"), melyen szöveg és kép is szerepelhet. Vég Csaba / www.logos2000.hu
Csatolás Vég Csaba / www.logos2000.hu
Külső dokumentum és URL Vég Csaba / www.logos2000.hu
Szövegen belüli megjegyzés Vég Csaba / www.logos2000.hu
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
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
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
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
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