Rendszermodellezés. UML áttekintő. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hasonló dokumentumok
UML (Unified Modelling Language)

Előzmények

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

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

Modellalkotás UML-ben

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

Modell alapú tesztelés mobil környezetben

Utolsó módosítás:

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

DEBRECENI EGYETEM INFORMATIKAI KAR. Az UML gyakorlati alkalmazásának bemutatása az AutoWorld rendszer tervezésén keresztül

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

OOP és UML Áttekintés

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

Utolsó módosítás:

HASZNÁLATI ESET DIAGRAM (USE CASE DIAGRAM)

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench)

Programozás 1. 2.gyakorlat

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

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

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

01. gyakorlat - Projektalapítás

UML Feladatok. UML Feladatok

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

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

Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: Ficsor Lajos. Unified Modeling Language UML / 1

Áttekintés. rténete 1. Az UML törtt. Miskolci Egyetem Általános Informatikai Tanszák. Ficsor Lajos UML / 1

ELTE, Informatikai Kar december 12.

S01-7 Komponens alapú szoftverfejlesztés 1

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

A SZOFTVERTECHNOLÓGIA ALAPJAI

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

Objektum orientált software fejlesztés (Bevezetés)

Dr. Mileff Péter

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Folyamatmodellezés (BPMN) és alkalmazásai

Viczián István IP Systems JUM XIX szeptember 18.

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Rendszertervezés 4. A rendszerfejlesztés eszközei (technikák, CASE, UML) Dr. Szepesné Stiftinger, Mária

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

Programozási technológia

Komponens alapú fejlesztés

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

A Java EE 5 plattform

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

Kölcsönhatás diagramok

Objektumorientáció, objektumorientált szemlélet

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Tervminták a valósidejű gyakorlatban

Tartalom. Szoftverfejlesztési. Szoftver = Termék. módszertan. la Rational XDE CASE eszköz. Az előállításához technológiára van szükség

eseményvezérelt megoldások Vizuális programozás 5. előadás

Szoftvertechnológia 2008/2009. tanév 2. félév 2. óra. Szoftvertechnológia

7. rész: A specifikációtól az implementációig az EJB rétegben

CIM Core Model. Paller Gábor Internet és mobil rendszerek menedzselése

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

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

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

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

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

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

Programozás III. - NGB_IN001_3

Rendszer-modellezés, modellezési technikák

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

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

Programfejlesztési Modellek

tudod-e? Az UML nyelv

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

Objektumorientált szoftverfejlesztés IV. előadás. Diagramok készítése CASE eszközzel. <Előadó neve és elérhetősége>

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

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

API tervezése mobil környezetbe. gyakorlat

gyakorlatban Nagy Gusztáv

WEBES ALKALMAZÁSOK TERVEZÉSE, FEJLESZTÉSÉNEK MENETE. Tarcsi Ádám

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.

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

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

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

The Unified Software Development Process. Történet. Feltételek. Rational Unified Process. Krizsán Zoltán Ficsor Lajos

NEPTUN ID BMENET ID. Címtár BME VPN. vcenter VPN SVN. Trac Wiki. Wifi

Osztott alkalmazások fejlesztési technológiái Áttekintés

Models are not right or wrong; they are more or less useful.

Models are not right or wrong; they are more or less useful.

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

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

Osztályok. 4. gyakorlat

Elemi Alkalmazások Fejlesztése II.

Software Engineering Szoftver fejlesztés

Java Programozás 11. Ea: MVC modell

Szoftvertechnológia 8. előadás. Szoftverrendszerek tervezése Giachetta Roberto

Rendszer szekvencia diagram

JAVA webes alkalmazások

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Programozás II. ATM példa Dr. Iványi Péter

ROS Remote Operations Service

Adatstruktúrák, algoritmusok, objektumok

Rendszermodellezés: házi feladat bemutatás

Átírás:

Rendszermodellezés UML áttekintő Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Tartalom UML bemutatása Use Case modell Osztálydiagram Egyéb diagramok

UML David Harel: Statecharts Rational Software: The Three Amigos o Ivar Jacobson: Object-Oriented Software Engineering o James Rumbaugh: Object Modeling Technique o Grady Booch: Booch Method 1997: Unified Modeling Language OMG 1997: befogadja OMG 2005: UML 2.0

UML modellek felhasználása Követelmények Analízis modell o Üzleti fogalmak, közvetlenül a követelményekből o Az implementációnál absztraktabb Implementációs modell o Részletes tervezés o Kódváz generálása o Adatmodell generálása o Interfész dokumentáció o Karbantartási célra

UML szabványok Diagram Interchange OCL - Object Constraint Language Superstructure Infrastructure

Grafikus elemek o Csomópontok o Vonalak, vonalvégek o Címkék Általánosítás Sztereotípia Név:Típus/Szerep Jegyzet Néhány alapelem

Grafikus elemek o Csomópontok o Vonalak, vonalvégek o Címkék Általánosítás Sztereotípia Név:Típus/Szerep Jegyzet Néhány alapelem

Grafikus elemek o Csomópontok o Vonalak, vonalvégek o Címkék Általánosítás Sztereotípia Név:Típus/Szerep Jegyzet Néhány alapelem

Grafikus elemek o Csomópontok o Vonalak, vonalvégek o Címkék Általánosítás Sztereotípia Név:Típus/Szerep Jegyzet Néhány alapelem

Grafikus elemek o Csomópontok o Vonalak, vonalvégek o Címkék Általánosítás Sztereotípia Név:Típus/Szerep Jegyzet Néhány alapelem

Grafikus elemek o Csomópontok o Vonalak, vonalvégek o Címkék Általánosítás Sztereotípia Név:Típus/Szerep Jegyzet Néhány alapelem

Grafikus elemek o Csomópontok o Vonalak, vonalvégek o Címkék Általánosítás Sztereotípia Név:Típus/Szerep Jegyzet Néhány alapelem

Grafikus elemek o Csomópontok o Vonalak, vonalvégek o Címkék Általánosítás Sztereotípia Név:Típus/Szerep Jegyzet Néhány alapelem

UML diagramok taxonómiája Structure Class Object Component Composite Structure Deployment Package Behavior Use Case Interaction Communication Activity State Machine Sequence Timing Interaction Overview

Alapelemek Use Case modell o Use Case o Actor o Köztük részt vesz kapcsolat

Use Case modell Use Case ( használati eset ) o funkcionális követelményt rögzít o tipikus rendszer külvilág(actor) interakció o tovább bontható: scenario ( forgatókönyv?) o tipp az elnevezésre: (angol) ige + főnév Actor ( aktor ) o A UC-ek rendszeren kívüli résztvevője (több-több) o interakcióbeli szerepet jelent, nem azonosítót / típust Több-több összerendelés a külvilág tényleges elemeivel o Elsődleges (UC kezdeményező) / másodlagos

Use Case modell Szöveges követelményekből Use Case Internetes sakkbajnokság-szervező o Each registered player may announce a championship. o A player should register and log in to the system before using it. o Each player is allowed to organize a single championship at a time. o Players may join (enter) a championship on a web page o When the sufficient number of participants are present, the organizer starts the championship. o After starting a championship, the system must automatically create the pairings in a round-robin system.

Use Case modell Szöveges követelményekből Use Case Internetes sakkbajnokság-szervező o Each registered player may announce a championship. o A player should register and log in to the system before using it. o Each player is allowed to organize a single championship at a time. o Players may join (enter) a championship on a web page o When the sufficient number of participants are present, the organizer starts the championship. o After starting a championship, the system must automatically create the pairings in a round-robin system.

Use Case modell Szöveges követelményekből (folyt.) o If the championship is not started yet (e.g. the number of participants does not reach a minimum level), the organizer may cancel the championship o The actual game is played between existing clients, which is outside the scope of the system. o Both players should report the result and the moves after each game using a web form. A win scores 1 point, a draw ½, and a loss 0. o If players report contradicting results, the organizer should judge who the winner is, and penalize the cheating player by a 1 point penalty. o Finally, when all games are finished, the organizer should close the championship by announcing the winner. Then he or she may start organizing a new championship.

Use Case modell Szöveges követelményekből (folyt.) o If the championship is not started yet (e.g. the number of participants does not reach a minimum level), the organizer may cancel the championship o The actual game is played between existing clients, which is outside the scope of the system. o Both players should report the result and the moves after each game using a web form. A win scores 1 point, a draw ½, and a loss 0. o If players report contradicting results, the organizer should judge who the winner is, and penalize the cheating player by a 1 point penalty. o Finally, when all games are finished, the organizer should close the championship by announcing the winner. Then he or she may start organizing a new championship.

Kezdeti Use Case modell

Kezdeti Use Case modell

Kezdeti Use Case modell Rendszer határa Kontextuális (rendszeren kívüli)

Use Case modell átalakítása

Use Case modell átalakítása Dekompozíció esetekre Bizonyos esetekben maga után vonhatja

Use Case model átalakítása Dekompozíció lépésekre

Use Case diagram - élek Aktor Use Case asszociáció o Részt vesz benne Aktor aktor általánosítás o Nem hivatalos Use Case Use Case általánosítás o Különböző esetek összevonása Use Case Use Case «include» o Lépés azonosítása Use Case Use Case «extend» o Opcionális része (választható vagy esetenkénti)

Use Case diagram - gyakorlat A rendszer egy havidíjas többszereplős on-line játék. A játékba való belépés vastag kliensen keresztül zajlik, míg a befizetés és egyéb személyes adatok megadása egy weboldalon keresztül történik (mindkettő az adott felületen történő azonosítás után). A játékos miután a vastag kliensen keresztül azonosította magát és befizette a havidíjat (a weboldalon keresztül) játszhat meglévő játékkaraktereivel. Ha nincs ilyen, akkor új karaktert generál. Új karaktert akkor is lehet generálni, ha a játékosnak már van karaktere, de éppen nem játszik egyikkel se. Játék után a játékos új karaktert választhat, készíthet, vagy kiléphet.

Use Case diagram - gyakorlat A weblapon történő azonosítás után befizetés történhet hitelkártyával vagy feltöltőkártyával. A személyes adatok bekérése is itt zajlik, ezekre általában csak egyszer, a felhasználói fiók létrehozásakor kerül sor. A játékos továbbá beléphet a fórumba ahol üzenetet hagyhat. A játékos több egyéb szolgáltatást is elér a weblapon, de ezekhez nem szükséges belépés. Ezek tetszés szerint bővíthetők (karakterek elért eredményei és pontjai, szerverek státusza, stb). A játékvilágot adminisztrátorok töltik fel adatokkal. Kezelőfelületük nagyban hasonlít a játékosok által elérhető felülethez. Azonban nincs jogosultságuk bejelentkezni a weboldalra. Ugyanígy a weboldal adminisztrátorai biztonsági okokból nem férhetnek hozzá a játékvilág adataihoz. A weboldal adminisztrátorai egy megnövelt funkcionalitású kezelőfelületen keresztül dolgoznak, mely funkcionalitásában lényegesen különbözik a játékosok által megszokott webes felülettől.

Objektumdiagram Hagyományos objektum-orientált szemlélet o A rendszer objektumokból épül fel o Tulajdonságok, műveletek Értékek Kapcsolatok

Osztálydiagram elemei Hagyományos objektum-orientált szemlélet o A rendszer objektumokból épül fel o Tulajdonságok, műveletek OO modell metamodellje Objektumok sablonja: osztály o Attribútumok o Operációk o Láthatóság, típus, stb. Osztályok közt általánosítás

Osztálydiagram elemei Kapcsolat sablonja: asszociáció o Végeken: multiplicitás, navigálhatóság, szerepnév o Tartalmazás: aggregáció / kompozíció o Bináris asszociáció attribútum

Osztálydiagram elemei Interfész Absztrakt ősosztály o Absztrakt metódusok o Dőlt betű Interfészek közti öröklés Interfész implementációja

Osztálydiagram elemei Classifier Scope ( Java static member) Többágú asszociáció Származtatott tulajdonságok Láthatóság age = curryear - birth o +public, -private, #protected, ~package Szimbolikus felsorolás típus

Analízis célú osztályok RUP javaslata: analízis modell osztályai Entitás osztály (Entity class) o Perzisztens adat o Túléli a UC végét Határoló osztály (Boundary class) o Felület az aktorok és a rendszer közt o Pl. webes űrlap, ablak, SOAP webszolgáltatás Vezérlő osztály (Control class) o Az üzleti logikát koncentrálja Sztereotípiaként jelölhető

Szekvencia diagram - felhasználás Use Case tipikus végrehajtása Kollaboráció Scenario tipikus végrehajtása Komponensek, objektumok kommunikációja o Analízis, tervezési fázisban egyaránt State Machine, Activity Diagram egy lefutása Teszteset specifikációja

Szekvencia diagram - példa user : User loginform : welcomeform : usermanager : player : logininfo : UserLoginForm UserWelcomeForm UserManager Player LoginInfo 1 : submitlogin ( ) 2 : create ( auser, apwd ) logininfo 3 : loginuser ( logininfo ) 4 : allfieldsvalid ( ) fieldsvalid 5 : [fieldsvalid] getusername ( ) ausername 6 : findplayer ( ausername ) player 7 : [player<>null] getpassword ( ) pwd1 [pwd1=pwd2] true 8 : [player<>null] getpassword ( ) pwd2 9 : displaywelcome ( )

Szekvencia diagram - példa Message (Üzenet) user : User loginform : welcomeform : usermanager : player : logininfo : UserLoginForm UserWelcomeForm UserManager Player LoginInfo 1 : submitlogin ( ) 2 : create ( auser, apwd ) logininfo Message parameter 3 : loginuser ( logininfo ) Return value Return message 4 : allfieldsvalid ( ) fieldsvalid 5 : [fieldsvalid] getusername ( ) ausername 6 : findplayer ( ausername ) player Swimlane (Életpálya) [pwd1=pwd2] true 7 : [player<>null] getpassword ( ) pwd1 8 : [player<>null] getpassword ( ) pwd2 Guard (Őrfeltétel) 9 : displaywelcome ( )

Szekvencia diagram - példa user : User loginform : welcomeform : usermanager : player : logininfo : UserLoginForm UserWelcomeForm UserManager Player LoginInfo 1 : submitlogin ( ) 2 : create ( auser, apwd ) logininfo Actor BoundaryC Classes 3 : loginuser ( logininfo ) Control Class [pwd1=pwd2] true Entity Class (Persistent) 4 : allfieldsvalid ( ) fieldsvalid 5 : [fieldsvalid] getusername ( ) ausername 6 : findplayer ( ausername ) player 7 : [player<>null] getpassword ( ) pwd1 8 : [player<>null] getpassword ( ) pwd2 Non- Persistent Class 9 : displaywelcome ( )

Konnektor Komponens diagram - példa Interfész IReport ILookup dirserver cm: ChampManager Port IPairing Komponens dirclient report pairing client1: NewClient player IGame Composite Structure Diagram: körülbelül ugyanez IChallenge AndMatch challengee client2: NewClient

Komponens diagram - példa IReport ILookup dirserver cm: ChampManager IPairing dirclient report pairing client1: NewClient player IGame IChallenge AndMatch client2: NewClient challengee

Komponens diagram - példa IReport ILookup dirserver cm: ChampManager IPairing dirclient report pairing old1: GameClient client1: NewClient IGame m:matchman player IGame IChallenge AndMatch client2: NewClient IChallenge challengee

Protocol Statechart of IGame

State Machine Diagram Állapotok o Egyszerű állapotok o Kezdő- és végállapot o History (ld. később) o Összetett (ld. később) Állapotátmenetek o Kiváltó esemény o Akció o [Guard] Példa: óra beállítása sethour setmin modeevt modeevt setevt/ hour += 1 setevt/ minute += 1

State Machine Diagram Összetett állapotok Óra beállítás sethour setmin setevt/ hour += 1 modeevt setevt/ hour += 1 modeevt modeevt modeevt Óra megjelenítés tickevt/... Konkurens régiók

Összetett állapotok State Machine Diagram Óra beállítás sethour setevt/ hour += 1 Bekapcsolva modeevt History State emlékszik az elhagyott állapotra Óra megjelenítés setmin modeevt setevt/ hour += 1 modeevt modeevt tickevt/... H switchevt switchevt Kikapcsolva

További strukturális diagramok Package Diagram o Az UML modell elemei csomagokba gyűjthetőek o Függőség, tartalmazás, névtér import Deployment Diagram

További viselkedési diagramok Activity Diagram: folyamatmodell o erről még külön lesz szó Communication Diagram o Szekvencia diagram üzenetei, de objektum diagramon o Jól be tud mutatni egy kollaborációt Timing Diagram: állapotok időtengelyen o Állapotgép egy lefutása Interaction Overview Diagram o Activity Diagram összetett csomópontokkal o Csomópont lehet: Sequence, Timing, Communication

UML hibái, hiányosságai A specifikációjában mindig van redundancia, többértelmű elem, ellentmondás. Túl általános akar lenni o keveset fog o Emiatt szükségtelenül bonyolult Nem csak információs rendszerek vannak o Szoftveresek értik, más nem SysML és szakterületi (Domain-Specific) modellezés Jim Rumbaugh: The Preacher at Arrakeen (2001)