UML és OCL. Unified Modeling Language Object Constraint Language Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 1

Hasonló dokumentumok
UML (Unified Modelling Language)

Dr. Mileff Péter

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Modell alapú tesztelés mobil környezetben

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

Előzmények

S01-7 Komponens alapú szoftverfejlesztés 1

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

01. gyakorlat - Projektalapítás

HASZNÁLATI ESET DIAGRAM (USE CASE DIAGRAM)

Programozási technológia

Programozás 1. 2.gyakorlat

Név: Neptun kód: Pontszám:

Modellalkotás UML-ben

A SZOFTVERTECHNOLÓGIA ALAPJAI

Kölcsönhatás diagramok

Rendszer szekvencia diagram

OOP és UML Áttekintés

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

ELTE, Informatikai Kar december 12.

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

Programfejlesztési Modellek

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

A dokumentáció felépítése

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Metamodellezés. Simon Balázs BME IIT, 2011.

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Bánsághi Anna 2014 Bánsághi Anna 1 of 72

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Modellező eszközök, kódgenerálás

Utolsó módosítás:

Számítógépes munkakörnyezet II. Szoftver

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Komponens alapú fejlesztés

Szoftvertechnológia ellenőrző kérdések 2005

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

Interfészek. PPT 2007/2008 tavasz.

Osztott rendszer. Osztott rendszer informális definíciója

Alapszintű formalizmusok

Leolvasói rendszer kialakításának koncepciója ipari mobil eszközökkel (ipari PDA-val)

UML Feladatok. UML Feladatok

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

A Java EE 5 plattform

Szoftver újrafelhasználás

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

Szoftver-technológia II. Architektúrák dokumentálása UML-lel. Irodalom. Szoftver-technológia II.

OOP. Alapelvek Elek Tibor

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Objektumelvű programozás

AZ INTEGRÁLT NYOMONKÖVETŐ RENDSZER BEMUTATÁSA (TÁMOP B) Kern Zoltán Közoktatási szakértő

Az UML2 és a modell-vezérelt alkalmazásfejlesztés

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Dinamikus modell: állapotdiagram, szekvencia diagram

Már megismert fogalmak áttekintése

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Információ-architektúra

S01-8 Komponens alapú szoftverfejlesztés 2

Szoftverminőségbiztosítás

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Komplex záróvizsga témakörök Gazdaságinformatikus szak Pénzintézeti informatikus szakirány 2018

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

III. Alapfogalmak és tervezési módszertan SystemC-ben

Junior Java Képzés. Tematika

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

Objektum orientált programozás Bevezetés

Bevezetés az SAP világába. 5. Kommunikációs és integrációs technológiák

UML. Unified Modeling Language Egységesített Modellező Nyelv

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Könyvtári címkéző munkahely

Objektumorientált paradigma és a programfejlesztés

Párhuzamos programozási platformok

Bánsághi Anna 1 of 67

Modellek végrehajtása, kódgenerálás

Integrált keretrendszer

Utolsó módosítás:

Microsoft SQL Server telepítése

A szoftverfejlesztés eszközei

1. fejezet Bevezetés a web programozásába (Balássy György munkája) Az internet működése... 11

Információtartalom vázlata

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Intelligens biztonsági megoldások. Távfelügyelet

Üzleti interoperabilitás. - elektronikus üzleti szolgáltatások - elektronikus kereskedelem - elektronikus közbeszerzés

Bevezetés az informatikába

CCS Hungary, 2000 szeptember. Handling rendszer technikai specifikáció

Átírás:

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