UML és OCL Unified Modeling Language Object Constraint Language 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében
UML és OCL - történet UML Egységes modellezési nyelv Version Adoption date URL 2.5. December 207 https://www.omg.org/spec/uml/2.5. 2.4. July 20 https://www.omg.org/spec/uml/2.4. 2.3 May 200 https://www.omg.org/spec/uml/2.3 2.2 January 2009 https://www.omg.org/spec/uml/2.2 OCL Objektum-specifikációs nyelv Version Adoption date URL 2.4 February 204 https://www.omg.org/spec/ocl/2.4 2.3. January 202 https://www.omg.org/spec/ocl/2.3. 2.2 February 200 https://www.omg.org/spec/ocl/2.2 2.0 May 2006 https://www.omg.org/spec/ocl/2.0 2..2 October 2007 https://www.omg.org/spec/uml/2..2 2.0 July 2005 https://www.omg.org/spec/uml/2.0.5 March 2003 https://www.omg.org/spec/uml/.5.4 September 200 https://www.omg.org/spec/uml/.4.3 February 2000 https://www.omg.org/spec/uml/.3.2 July 999 https://www.omg.org/spec/uml/.2. December 997 https://www.omg.org/spec/uml/. 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 2
UML Bevezető ismeretek 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 3
UML Unified Modeling Language Szabványos, általános célú modellező nyelv Nem módszer, csak leíró nyelv! Objektumorientált Önleíró: saját maga meta modellje is egyben OCL Object Constraint Language Alkalmazási területek (néhány példa): Szervezetek, rendszerek Szereplők Üzleti tevékenységek, folyamatok Logikai összetevők Programok, adatbázisok Kritikák: Túl nagy/bonyolult Sokféle diagram, amelyek részben redundánsak A diagramkészletet nem használják ki Pontatlan szemantika Az UML szemantikát részben OCL-el, részben angol nyelven, részben az UML-el magával definiálják, és előfordul, hogy verziónként változik (még nem kiforrott). leírása: viselkedés, struktúra, kapcsolatok stb. 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 4
UML Diagram típusok Különböző nézőpontok szerepe 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 5
Osztály (class) diagram struktúra Emlékeztető: OO módszertan Osztály: megegyező/hasonló viselkedésű és struktúrájú objektumok alapján készített minta Polimorfizmus, öröklődés Generalizáció/specializáció Asszociáció/ Aggregáció/ Kompozíció Láthatóság (public/protected/private) Attribútum formája 208..3. Metódus formája - status : int =0 + calctotal (a : int, b : int) : Money láthatóság attribútum neve típus kezdőérték láthatóság metódus neve paraméter, paramétertípus visszatérési érték Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 6
Osztály (class) diagram struktúra Emlékezető: objektumorientált módszertan láthatóság + Public (nyilvános) teljes hozzáférés: külső és saját metódusok, gyerekosztályok és metódusai # Protected (védett) korlátozott hozzáférés: saját metódusok, gyerekosztályok metódusai - Private (saját) zárt hozzáférés: saját metódusok ~ Package (default) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 7
Osztály (class) diagram struktúra Társítás (association): osztályok közötti kapcsolat Tulajdonságai: Név Irányítottság (navigálhatóság) Szerepkör Multiplicitás (számosság) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 8
Osztály (class) diagram struktúra Társítás osztály (association class): egy osztály, amely két másik osztályt valamilyen közös tulajdonság alapján kapcsol össze 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 9
Osztály (class) diagram struktúra Általánosítás (generalization): szülő-gyerek viszony bemutatása (öröklődés) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 0
Osztály (class) diagram struktúra Öröklődés és lehetőségek Új attribútumok hozzáadására Új metódusok hozzáadására Örökölt metódusok átdefiniálására 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében
Osztály (class) diagram struktúra Függőség (dependency): egy osztály egy másik osztályt használ paraméterként, ezért annak az osztálynak a megváltoztatása hat rá A nyíl iránya ellentétes azzal amit elvárunk! A felhasználótól (kliens) a szolgáltató (szerver) felé mutat Célszerű sztereotípiát használni 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 2
Osztály (class) diagram struktúra Aggregáció (aggregation) Rész-egész viszony A részosztály létezhet a bennfoglaló osztály nélkül is! 208..3. Kompozíció (composition) Rész-egész viszony A részosztály nem létezhet a bennfoglaló osztály nélkül! Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 3
Osztály (class) diagram struktúra Domain modell megoldás független (Adatbázis modellezés: Koncepcionális modell) Tervezési modell platform független (Adatbázis modellezés: Logikai modell) Végrehajtási modell Platform specifikus 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 4
Objektum (object) diagram struktúra Emlékeztető: OO módszertanok, objektum (példány) fogalma Az objektum egy rendszer egyedileg azonosítható szereplője, amelyet a külvilág felé mutatott viselkedésével, belső struktúrájával és állapotával jellemezhetünk. Tekinthető speciális osztálydiagramnak A modellezett rendszer teljes vagy részleges struktúráját mutatja be egy adott időpillanatban Célja: az osztály diagram megértésének támogatása Jelölések az osztály diagramhoz képest (koncepcionális szint): Az osztály diagram elkészítése előtt: a modellelemek és kapcsolataik feltárása (főleg ha egyes részrendszerek bonyolultak) Az osztály diagram elkészítése után: az osztálydiagram teljességének ellenőrzése 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 5
Objektum (object) diagram struktúra 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 6
Profile diagram struktúra Cél az UML szókincsének kiterjesztése: Nem definiált konkrét alkalmazási területekre/bármilyen speciális technológiára Az UML túl általános, használatával jelentős mennyiségű erőforrást igényel Az adott tartományra/szakterületre optimalizált UML nyelv létrehozása Kiterjesztési mechanizmusok: Sztereotípus (stereotype) Címkézett érték (tagged value) Kényszer/korlátozás (constraint) Példa: a felhasználó által definiált szakterületi objektumokhoz/elnevezésekhez rendelve segíti az automatikus kódgeneráló eszközök speciális környezetre (platformra) való kódgenerálását Példa: UML kiterjesztése -> programozási platformok (pl. Microsoft. NET, Java Enterprise Edition) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 7
Profile diagram struktúra Sztereotípia: azt jelzi, hogy az elem valamilyenformán viselkedni fog, vagy hogy milyen módon lesz/lehet felhasználni A szakterületünkre jellemző, új modellelemek létrehozása Szinte bármire rátehető, pl.: << component >> << interface >> Hálózati modellezés, pl.: << router >> << hub >> << switch >> 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 8
Profile diagram struktúra Címkézett érték: a modellezett elem specifikációjának kiterjesztése Példa: a rendszer összeállításáért, teszteléséért és telepítéséért felelős csapat számára ad információkat Kód generáláshoz Verziókezeléshez (pl. verziószám) Konfiguráció-menedzsment Tesztelés (pl. a vizsgálat elvárt eredménye) Stb. 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 9
Profile diagram struktúra Kényszer/korlátozás: mindenkor érvényes feltételek Megadásának módjai: a korlátozás teste Természetes nyelv Programozási nyel (pl. Java) Matematikai jelölések OCL (Object Constraint Language) A korlátok megjelenhetnek bármilyen típusú UML diagramban 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 20
Komponens (component) diagram struktúra Komponens: egy olyan univerzális (szoftver)egység, amely valamilyen szolgáltatás halmazt képvisel (a szolgáltatásokat egységbe zárja) A komponens nagysága változó lehet: Kisméretű: egy-két osztályt tartalmaz Nagyméretű: egy egész alrendszert tartalmaz A komponensek a szoftvermodulok fizikai kódját testesítik meg: Implementációs szintű modell A szolgáltatásokat más komponensek interfészeken keresztül érhetik el Komponens kicserélhetőségi feltétele: két komponens egymással helyettesíthető, ha interfészük és szolgáltatásaik megegyeznek Gyakran használt sztereotípiák: Komponens: <<component>> Futtatható fájl: <<exetcutable>> Könyvtár: <<library>> Adattábla: <<table>> Fájl: <<file>> 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 2
Komponens (component) diagram struktúra A diagram elemei: Komponensek Komponensek, mint black box. Interfészek Kapcsolatok lásd korábban (függőség, öröklés, társítás, stb.) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 22
Komponens (component) diagram struktúra 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 23
Összetett struktúra (Composit stucture) diagram struktúra Milyen az osztály belső szerkezete? Milyen az osztály és környezete közti kapcsolat? Kapcsolódó rajzi elemek: Class Part Port Connector Usage 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 24
Telepítési (Deployment) diagram struktúra A rendszer futásidejű architektúráját modellezik HW, SW és egyéb elemek elhelyezkedése 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 25
Csomag (Package) diagram struktúra Más modell elemek csoportosítása A funkcionalitás szerint összetartozó osztályok csoportba szervezése A program névterét adja meg 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 26
Használati eset (Use Case) diagram viselkedés Cél: felhasználói szempontból leírni a rendszer viselkedését (Mit csinál a rendszer? Hogyan?) Jó kommunikációs felület biztosít a felhasználóval A funkciók prioritásának feltárása létfontosságú a release-k megtervezésekor. Vajon az utolsó release -ig mi fog megvalósulni? Használati eset (UC) A rendszer funkcionalitás részei UC-k azonosítása: igék keresése Aktorok: emberek vagy dolgok, akik/amik kapcsolatba lépnek a rendszer UC-ivel Elsődleges (primary) Támogató (supporting) Háttér (offstage) Aktorok azonosítás: főnevek keresése Rendszerhatár: definiálja, hogy mely funkcionalitás tartozik a rendszerhez Megadási formái (példákat lásd később) Rövid (brief): Egy bekezdés, jellemzően a sikeres forgatókönyv Általános (casual): Szoros formai kötöttségektől mentes, természetes nyelvi leírás, azonban minden fontos elemet tartalmaz Teljes (fully dressed): Teljesen kidolgozott, gyakran szigorú formát követő leírás minden lehetséges alternatíva leírásával. 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 27
Használati eset (Use Case) diagram viselkedés Aktorok: Elsődleges aktor a jobb oldalon Támogató aktor a bal oldalon Kapcsolatok ez UC-ben: Include: egyik használati eset magába foglalj a másikat Extend: az egyik használati eset működését kiegészíti egy másik 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 28
Aktivitás (Activity) diagram viselkedés Emlékeztető: folyamatmodellezés Használati eset (UC) részletezése a folyamatok szerkezetének leírása Modellezési technikák ötvözete: folyamatábra, Petri-háló, állapotgép A jelölés főbb elemei: Aktivitás: elemi tevékenység (tovább már nem bontható), melyet a rendszer vagy a felhasználó végez Szekvencia: tevékenységek végrehajtási sorozata Szinkronizációs vonal: a vezérlés több szálra bomlása (join) vagy a párhuzamos szálak mindegyikének befejezésére való várakozás (fork) Döntés: feltétel, egymás ágyazott feltétel 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 29
Interaction Overview diagram viselkedés Az aktivitás diagram egy fajtája A csomópontjai egy interakciós diagramot reprezentálnak: Szekvencia diagram Kommunikációs diagram Idődiagram Stb. A használt elemek megegyeznek az aktivitás diagrammal, kivéve: Interaction occurrences: már meglévő interakciós diagramra való hivatkozás (Ref) Interaction elements: a meglévő diagram tartalmát is megjeleníti 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 30
Állapotgép (Statemachine) viselkedés Emlékeztető: állapot alapú modellezés Egy osztály objektumainak az életciklusuk alatt felvehető lehetséges állapotait és az állapotok közötti lehetséges átmeneteket ábrázolja Állapot: egy objektum attribútumainak a pillanatnyi értéke (van időtartama) Absztrakt állapot: A modellezés során egy bizonyos szempontból a konkrét állapotok meghatározott halmazai egyenértékűnek tekinthetők, egy állapot jelleget határoznak meg Entry: az állapotba lépéskor elvégzendő tevékenység Do: az állapothoz kapcsolódó tevékenységek Exit: az állapotból való kilépés előtt elvégzendő tevékenyég Kezdőállapot Végállapot Állapotátmenet: valamilyen esemény okozhatja (pillanatszerű) Kiváltó ok (trigger): az esemény megnevezése Feltétel (guard): az átmenet bekövetkezésének feltétele Hatás (effect): az átmenet miatt végrehajtandó tevékenység {<trigger>}* ['[' <guard>']'] [/<behavior-expression>] 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 3
Állapotgép (Statemachine) viselkedés Konkurencia: egymással párhuzamosan futó feladatok 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 32
Állapotgép (Statemachine) viselkedés Strukturált állapotgép szuperállapotok (emlékeztető: jelzőlámpa) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 33
Állapotgép (Statemachine) viselkedés Állapotgép vs. Idődiagram Hogyan kommunikáljuk a viselkedést? 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 34
Állapotgép (Statemachine) viselkedés Emlékező állapot: a legutolsó aktív állapotkonfigurációt jegyzi meg Egyszerű emlékező állapot: csak az adott finomítási szinten Mélyen emlékező állapot: a mélyebb finomítási szinteken is 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 35
Szekvencia (Sequence) diagram viselkedés Az objektumok közötti üzenetváltások és azok időbeli sorrendje Üzenet típusok és jelölések: Szinkron üzenet (kérés): küldő elküldi az üzenetet, majd várja a választ Válasz üzenet: mindig az előző üzenetre vonatkozik Aszinkron üzenet (szignál): a küldő elküldi az üzenet, a választ nem megvárva folytatja a működést Objektum létrehozó üzenet: új objektumot hoz létre Objektum megszüntető üzenet: életvonal végén X Üzenet nem nulla továbbítási idővel: ferde nyíl Objektum saját magának küldött üzenete Rekurzív üzenet: az objektum saját magának küldött üzenete, a fő tevékenységet felfüggeszti 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 36
Szekvencia (Sequence) diagram viselkedés 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 37
Szekvencia (Sequence) diagram viselkedés Interakciós operátorok: Ref: gyakran előforduló interakció sorozat, melyet külön szekvencia diagramba szervezünk és meghivatkozzuk Loop: ciklikusan ismétlődő interakció sorozat Strict: szigorú sorrendben követik egymást az interakciók (az előző befejeződése szükséges a következő megkezdéséig) Stb. Feltételes végrehajtás operátorai: Opt: az operandus opcionálisan felléphet Alt: az alternatívák közül a feltételnek megfelelő eset választódik ki Break: a tartalmazó interakciót megszakítja Stb. 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 38
Szekvencia (Sequence) diagram viselkedés 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 39
Kommunikációs (Communication) diagram viselkedés Régebben: Collaboration/Együttműködési diagram Az objektumok közötti üzenetváltások és az objektumok közötti kapcsolatok (üzenetek időbeli sorrendje számozással) Mi a különbség az együttműködési és szekvencia diagram között? 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 40
Idő (Timing) diagram viselkedés 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 4
SysML System Modelling Language Grafikus modellező nyelv Felhasználási terület komplex rendszerek: (pl. HW, SW, folyamatok, információs rendszerek, berendezések stb.) Specifikációja Elemzése Tervezése Verifikációja http://www.omgsysml.org/ 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 42
SysML System Modelling Language UML SysML 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 43
SysML Pillérek 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 44
Betekintés az UML specifikációba UML specifikáció 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 45
OCL Bevezető ismeretek 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 46
OCL célja és kialakulása A OCL hátterében meghúzódó igény: UML diagramokkal nem fejezhető ki minden, ezért sok esetben Természetes nyelven, szöveges formában egészítik ki (pl. korlátozások) Kétértelműség Matematikai pontosságú kifejezésekkel egészítik ki Az átlag fejlesztő számára nem érthető, nehezen olvasható Az UML kifejezéseinek leírására használható nyelv Specifikációs/modellező nyelv Nem programozási nyelv! Az implementációs kérdések hatókörén kívül esnek 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 47
Mire alkalmas az OCL? Lekérdező nyelv (query language) Invariánsok (állandók) megadása Osztálydiagram Sztereotípiák Elő- és utófeltételek megadása (metódusok/műveletek) Műveletek korlátainak megadása Őrfeltételek megadás Stb. 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 48
Betekintés az OCL specifikációba OCL specifikáció 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 49
Alkatrész készlet nyilvántartó rendszer Példa (RUP alkalmazása) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 50
Alkatrész-készlet nyilvántartó rendszer fejlesztése Bemenet: Szöveges leírással megfogalmazott Mindösszesen egy oldalnyi követelmény Hiányos és ellentmondásos megfogalmazások Stb. Cégünk vezetői bevállalták Mit tehetünk? Hogyan álljunk neki? 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 5
A fejlesztés bemenetét képező információk összegyűjtése Tudjunk meg minél többet, minél gyorsabban! Milyen eredményeket kaphatunk és hogyan használjuk fel? 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 52
Vízió: Tartalomjegyzék A rendszer és rendszerhatárok azonosítása A jelenleg alkalmazott alkatrész készlet kezelési rendszer A rendszer célja A rendszer és rendszerhatárok leírása A szervizelt berendezések típusai és alkatrészeik Az alkatrész-készlet raktára Az alkatrészek megrendelése A megrendelt alkatrészek kiszállítása A kiszállított alkatrészek felvétele a raktárba és az alkatrészkészlet-nyilvántartó rendszerbe Az alkatrészek vételezés a berendezések javításához (a szervizeléshez) Alkatrészek leltározása Az alkatrész-készlettel kapcsolatos statisztikák, kimutatások A rendszer üzemeltetése A rendszer áttekintése Stakeholderek A rendszer közvetlenül nem felhasználó stakeholderek azonosítása A rendszert közvetlenül felhasználó stakeholderek azonosítása A stakeholderek céljainak, problémáinak és hasznainak összefoglalása Alkalmazási korlátozások A rendszer funkcióinak és környezetének azonosítása (szöveges leírások) Körvonalazódnak a folyamatok Szereplők azonosítása és kapcsolatuk a rendszerrel 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 53
Vízió: A rendszer áttekintése A rendszer elnevezése 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 54
Vízió: Stakeholderek azonosítása Közvetlen felhasználók Közvetett érintettek A megrendelő cég vezetői A megrendelő cég vezérigazgatója A megrendelő cég szerelői Az alkatrész beszállító cég: A megrendelő cég titkárnője Rendelés felvevő részlege Logisztikai részlege Berendezés telepítő részlege Az alkatrészek szállítását végző cég Berendezés üzemeltető cég A fejlesztő cég: Üzleti menedzsmentje Projekt menedzsmentje Fejlesztőcsapata Konkurens fejlesztő cég 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 55
Vízió: stakeholder elemzés 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 56
Kitekintés: Miért fontos a stakeholderek azonosítása? 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 57
Vízió: alkalmazási korlátozások Emlékeztető: életciklus fázisok (rendszermeghatározás) Azonosító Alkalmazási korlátozás AC-00 A PSYS rendszer csak magyar nyelven üzemeltethető. AC-002 A PSYS rendszer nem képes kapcsolatot létesíteni más szerviz cégek alkatrész-készlet nyilvántartó rendszereivel. AC-003 AC-009 AC-00 AC-0 AC-02 AC-03 AC-04 AC-05 AC-06 A PSYS rendszer nem támogatja a meglévő alkatrészjegyzék módosítását, új típusú alkatrészek felvételét. A PSYS rendszer nem képes a beszállított alkatrészekért felszámolt alkatrészellátási díjak kezelésére. A PSYS rendszerben, ha alkatrész felvételt kezdeményeztek, akkor további alkatrész felvétel és alkatrész vételezés már nem kezdeményezhető. A PSYS rendszerben egyszerre csak egy szerelő kezdeményezhet vételezést. A SYS rendszer nem képes egy javítási folyamathoz több szerelőt rendelni és kezelni. A PSYS rendszer maximum 8 e-mail címre képes elküldeni automatikusan a havi jelentést arról, hogy melyik típusú berendezéshez milyen alkatrészből mennyi fogyott. A PSYS rendszer maximum 6 vezető kezelésére képes. A PSYS rendszer maximum 64 szerelő kezelésére képes. A PSYS rendszer maximum 200 000 alkatrész kezelésére képes. 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 58
Rövidítések Rövidítés Leírás PSYS Alkatrész-készlet nyilvántartó rendszer S(R)S Supplementary (Requirement) Specification Kiegészítő Követelmény Specifikáció AC Application Condition Alkalmazási Korlátozás SMS Short Message Service Rövid üzenet szolgáltatás UC Use Case RFID Radio Frequency IDentification IMAP Internet Message Access Protocol SMTP Simple Mail Transfer Protocol EDI Electronic Data Interchange Elektronikus Adatcsere. GSM Global System for Mobile Communications GUI Graphical User Interface Grafikus felhasználói felület 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 59
Szótár (fogalomtár) ID Fogalom Leírás G-00 alkatrész Az a tárgy, amely a berendezés elemi alkotóeleme. G-002 alkatrész felvétel A szerelő által végzett tevékenység, amely jelentheti: - az alkatrészek (fizikai) elhelyezését az alkatrész raktárban vagy - az alkatrész felvételének bejegyzését az alkatrész-készlet nyilvántartó rendszerben. G-003 alkatrész raktár Az alkatrészek tárolására használt épület. A szerelő által végzett tevékenység, amely jelentheti: G-004 alkatrész vételezés - az alkatrészek (fizikai) kivételét az alkatrész raktárból vagy - az alkatrész kivételének bejegyzését az alkatrész-készlet nyilvántartó rendszerben. G-005 alkatrészcsere A szerelő által végzett javítási folyamat része, amikor a szerelő a terepi berendezésben lévő hibás alkatrészt kicseréli a raktárból vételezett ugyanolyan feltételezhetően működő alkatrészre. G-006 alkatrészek leltározása A vezető által végzett tevékenység, amely az alkatrész raktárban lévő alkatrészek megszámolását (tényleges darabszámának meghatározását) célozza. G-007 alkatrész-készlet nyilvántartó rendszer Az alkatrészek kezeléséhez kapcsolódó folyamatokat támogató eszköz. G-008 alkatrészlista Az alkatrészek összefoglaló listája, amely tartalmazza az alkatrészek nevét és darabszámát. G-042 titkárnő Az a személy aki az alkatrész-készlet nyilvántartó rendszer felhasználói (vezetők és szerelők) adatait kezeli. 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 60
Kiegészítő követelmény specifikáció (SRS) Emlékeztető: Életciklus követelmények fázis FURPS modell SRS-00 A rendszer hibajavító karbantartását a Fejlesztő 2 évi garanciával térítésmentesen elvégzi. /Supportability/ SRS-002 A hiba bejelentését követően a Fejlesztő 2 héten belül frissíti a PSYS alkalmazást a javításokkal. /Supportability/ SRS-003 A PSYS rendszerben az elvégzett műveletek naplózásra kerülnek a rendszer használatára jogosult személy azonosítójával és időbélyeggel kiegészítve. /Supportability/ SRS-008 A PSYS rendszernek az esetleges váratlan meghibásodására számítva az adatvesztés elkerülése érdekében megadott időközönként biztonsági mentéseket kell készítenie az adatokról. /Reliability/ SRS-03 A megjelenítő felületek a jelen kor technikai szintjének (state of the art) megfelelően kell megtervezni. /Usability/ SRS-09 Az emberi reakcióidőt nem szabad jelentősen túllépni. /Performance/ SRS-020 Ha valamely folyamat tovább tart 5 másodpercnél, akkor erről minden esetben tájékoztatni kell a felhasználót a megjelenítő felületen (a folyamat feldolgozás alatt van). Ilyen esetben meg kell jeleníteni azt is másodperc pontossággal, hogy várhatóan mikor fog végezni a rendszer a folyamattal. /Usability/ 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 6
Kiegészítő követelmény specifikáció (SRS) Emlékeztető: Életciklus követelmények fázis FURPS+ modell SRS-024 A PSYS alkalmazás olyan PC-re vagy tabletre telepíthető, amely megfelel legalább a következő alapkövetelményeknek: GHz vagy gyorsabb 32 bites (x86) vagy 64 bites (x64) processzor GB RAM (32 bites rendszerhez) vagy 2 GB RAM (64 bites rendszerhez) 6 GB (32 bites rendszerhez) vagy 20 GB (64 bites rendszerhez) szabad lemezterület DirectX 9 grafikus eszköz WDDM.0 vagy újabb illesztőprogrammal /Phisical requirements/ SRS-028 A PSYS alkalmazáshoz kapcsolódó kommunikációs interfészek: SMS gateway, e-mail imap szerver, e-mail smtp szerver. /Interface requirements/ SRS-029 Az e-mailezéshez használt protokollok esetében figyelembe kell venni az EDI szabvány, amely vállalatok közötti üzleti folyamatok szabványos elektronikus adatcserében történő megvalósítására vonatkozóan ad ajánlásokat. /Implementation requirements/ SRS-030 Az SMS gateway-el kapcsolatban figyelembe kell venni a GSM szabványt. /Implementation requirements/ 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 62
Use Case modell (példa revízióra) Alkatrész-készlet nyilvántartó rendszer alkatrész rendelés e-mail smtp szerver havi jelentés küldése alkatrész leltározás vezető monitorozás /felügyelet/ e-mail imap szerver új telepítésű berendezések kezelése SMS gateway alkatrész felvétel alkatrész vételezés szerelő vezetők adatainak kezelése <<include>> bejelentkezés kezelése szerelők adatainak kezelése titkárnő e-mail címek kezelése 208..3. REV Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében REV3 63
UC modellezés (brief leírás) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 64
UC modellezés (fully dressed leírás) I. rész 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 65
UC modellezés (fully dressed leírás) II. rész 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 66
UC modellezés (fully dressed leírás) III. rész 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 67
UC modellezés (fully dressed leírás) IV. rész 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 68
Rendszerterv szintű szekvencia diagram (részlet) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 69
Rendszerterv szintű aktivitásdiagram (részlet) 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 70
tartalmaz tartozik tartozik tartozik tartalmaz tartozik tartalmaz tartozik tartalmaz tartozik tartozik tartalmaz tartalmaz tartalmaz végez végez végez végez tartozik végez tartalmaz végez használ Szállító cég <<TransEU>> Rendszertervi Berendezésgyártó cég szintű domain modell (részlet) alkalmaz <<Device4U>> Leltározás..* Telepítés alkalmaz Szervizelő cég <<Service4U>> Alkatrészraktár foglalkoztat foglalkoztat foglalkoztat tartozik Alkatrészfelvétel Szerelő..50 végez Vezető - név - lakcím - telefonszám - e-mail cím..0 Titkárnő Szállítólevél archívum Szállítás * tartozik * végez - név - lakcím - telefonszám - e-mail cím tartozik 0..3 Felfüggesztett vételezés Archiválás * Alkatrészvételezés Berendezés - berendezés gyári szám (az.) - berendezés típus - telepítési hely * leírja Berendezéstípus - beépített alkatrész gyári szám - beépített alkatrész darabszám Alkatrésztípus..* * tartozik Szervizelés * * Alkatrészrendelés..* Szállítólevél 0..*..* Alkatrész..* - alkatrész gyári szám (az.) - alkatrész típus 0..* leírja *..*..* - hossz - magasság - szélesség Felvételi lap Vételezési lap Munkalap Megrendelőlap..* 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 7
Részletes tervezés: szekvencia diagram (részlet) REV0 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 72
Hol van a végrehajtási modell és a megvalósítás? Emlékeztető: sikertelenül lezárt fejlesztések Miért bukott meg ez a projekt? Problémák a fejlesztőcsapatban Elégtelen kommunikáció az ügyféllel Mérföldkövek nem teljesültek Lejárt a teljesítési határidő 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 73
Összefoglalás UML OCL Példa: Alkatrész-készlet nyilvántartó rendszer 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 74
Köszönöm a figyelmet! 208..3. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 75