Ugrás a fő tartalomra

UML alapjai

UML (Unified Modeling Language) Egységesített modellező nyelvet jelent.

UML egy széles körben elismert, objektum orientált szemléletű alkalmazások elemzése és tervezése során használt módszer
Az UML egy grafikus nyelv, mely alapvetően szoftverrendszer elemek vizualizálására, specifikálására, létrehozására és dokumentálására szolgál.
Az OMG (Object Modeling Group) definíció:
“Az UML egy grafikus nyelv egy szoftver-intenzív rendszer termékeinek
– megjelenítésére,
– specifikálására,
– felépítésére
– és dokumentálására.
Az UML szabványos lehetőségeket kínál a rendszer felvázolásához, beleértve a fogalmi dolgokat, mint üzleti modellezés
és rendszerfunkciók, valamint a konkrét dolgokat, mint programnyelvi utasítások, adatbázis sémák és
újrafelhasználható szoftverkomponensek.”

Egy UML profilnak három kulcseleme van: 
– sztereotípiák,
– címke-érték párok (tulajdonságok),
– megszorítások.
A rendszer megértéséhez és dokumentálásához a rendszert nézetekre és részekre (csoportokra), …
kell tagolni, és az így elkülönített dolgokat különböző absztrakció s szinteken külön-külön kell modellezni, leírni.
Modell:
A modell egy rendszer (bonyolult probléma vagy szerkezet) absztrakciója, amely a megértést és a kezelhetőséget célozza meg.
A modell az adott rendszert egy bizonyos absztrakciós szinten teljes mértékben leírja.
Nézet:
A rendszernek lehetnek nézetei. Az egyes nézetek a rendszert más-más szemszögből világítják meg, más-más oldalról mutatják.
Modellelem:
A modell alkotó elemei a modellelemek. Minden egyes modellelemnek más a célja, jelölése, és más-más szabályok vonatkoznak rá.
A modellelem a modellben egyértelműen azonosítható. A modellelemek csomagneveikkel minő síthetőek.
Egy diagramra bármely modellelem rátehető, és egy modellelem több diagramon is szerepelhet.

Modellezési elemek
– Szerkezeti elemek: class, interface, collaboration, use case, component, node
– Viselkedési elemek: interaction, state machine
– Csoportosítási elemek: package, subsystem
– Egyéb: note

Kapcsolatok (Relationships). A modellezési elemeket, mint csomópontokat összekötő élek.
– Függőségi kapcsolat (Dependency)
– Asszociációs kapcsolat (Association)
– Általánosítás, öröklődés (Generalization)
– Megvalósítás (Realization)

Bővíthetőség (Extensibility Mechanism). Az UML nyelv bővítésére nyújtott támogatás.
– Sztereotípia (Stereotype)
– Címke-érték (Tagged value)
– Megszorítás (Constraint)

Az UML modelezési tipusok:

Funkcionális modell: a szoftver funkcionális követelményeit és a felhasználóval való interaktivitást adja meg
pl.: felhasználói esetek diagramja, kihelyezési diagram
Diagramok (Diagrams) a modelek vizuális megjelenítései
– Szerkezeti diagramok (Structural Diagrams):
a rendszer felépítését adja meg, milyen osztályok, objektumok, relációk alkotják a rendszer ot
pl.: osztálydiagram, objektumdiagram
– Osztály diagram (Class Diagram),
– Objektum diagram (Object Diagram)
– Viselkedési diagramok (Behavioral Diagrams):
rendszer működésének lefolyását, az objektumok együttműködésének módját ábrázolja
– Használati eset diagram (Use Case Diagram),
Megadja a szoftverrendszer és a felhasználó interakciójának lehetőségeit,
a külső rendszer funkciókat rendszer egységekre, illetve csomagokra csoportosítva
– Szekvencia diagram (Sequence Diagram),
– Együttműködési diagram (Collaboration diagram),
– Állapot-átmeneti diagram (State Transition Diagram),
– Aktivitás diagram (Activity Diagram)
– Telepítési diagramok (Implementation Diagrams):
– Komponens diagram (Component Diagram),
– Telepítési diagram (Deployment Diagram).

Osztálydiagram készítés alapjai

Egy osztályt egy három részre osztott téglalap reprezentál, amelyben az alábbiak találhatóak:
– az osztály neve
– attribútumok (adattagok)
– operációk (metódusok)
Attribútumok (adattagok) megadása a következő formulával történik:
láthatóság név : típus = alapérték
Operációk (metódusok) megadásának szintaktikája:
láthatóság név (paraméterlista) : típus
A láthatóság a következők valamelyike lehet:
– public: +
– protected: #
– csomagszintű: ~
– private: 

     Rendszer fejlesztés mint folyamat:

1. Követelmény feltárás
A követelmény feltárás során felmérjük és összegyűjtjük az igényelt szoftverrel szemben támasztott felhasználói követelményeket,
elemzésre kerül az alkalmazási szakterület általános és specifikus tulajdonságai.
1.1. Célkitűzés, projektindító dokumentum
A projektindító dokumentum egy viszonylag rövid, szöveges leírás, mely a megrendelő legfontosabb elvárásait tartalmazza.
1.2. Szakterületi fogalomjegyzék
A rendszer által támogatott szakterület fogalmainak gyűjteménye, magyarázata, mely szükséges
a rendszer fejlesztői-, felhasználói dokumentációjának megértéséhez. A fogalomjegyzék a fejlesztés előrehaladása során folyamatosan bővül.
1.3. Használatieset-modell, funkcionális követelmények
A rendszerrel szemben támasztott funkcionális- és szakterületi követelményeknek használati esetek felelnek meg.
A használatieset-modell használatieset diagramokat és ezek szöveges leírását tartalmazza.
A megrendelő számára is érthetővé válik a termék, mely segíti a megrendelő és a fejlesztő közti kommunikációt.
A használati eseteket a teljes fejlesztési folyamat során figyelembe kell venni.
1.4. Szakterületi követelmények
A fejlesztett szoftver által megcélzott alkalmazási terület szabályszerűségei.
1.5. Nem funkcionális követelmények
Használati esetekkel nem leírható követelmények listáját tartalmazza.

2. Tervezés
2.1. A rendszer architektúrája
A rendszer legfontosabb elemeinek és ezek kapcsolatainak meghatározása. A megoldáshoz felhasznált tervezési minták megadása.
2.2. Osztálymodell
Az osztálymodell a rendszer statikus modellje, mely megmutatja a rendszer szerkezeti felépítését. Osztálydiagramokból és osztályleírásokból áll.
Ebben a részben kell meghatározni a probléma megoldáshoz szükséges osztályokat, az osztályok feladatait és kapcsolatait.
Az osztályokon belül először csak a legfontosabb adatokat és metódusokat kell megadni.
Először célszerű szakterületi osztálydiagramot készíteni.
Ezen csak olyan osztályok szerepelnek, melyeket a rendszer programozói tudással nem rendelkező megrendelő is megért.
A szakterületi osztálydiagram segíti a megrendelő és a fejlesztő közti kommunikációt.
A szakterületi osztálydiagramon nem szerepelnek a fejlesztőeszköz osztálykönyvtárának osztályai.
Az osztálymodell része lehet az adatbázisterv is.
2.3. Adatbázis terv
Megadható osztálydiagrammal.
  • Cél meghatározás, a feladat: Meghatározzuk a tárolandó adatok körét, az adatbázis használatának módját, az elvégzendő részfeladatokat.
  •  Logikai (koncepcionális) adatmodell készítése
  •  Fizikai adatmodell készítése
  • Táblák meghatározása: Az összegyűjtött információkat témakörökre, táblákra bontjuk (normalizálás). Kerülni kell a többszörös adatbevitelt, de minden szükséges adatot tárolni kell.
  • A táblák mezőinek meghatározása, funkcionális függőségek megállapítása
  • Kapcsolatok felállítása a táblák között
  • Teszt változat elkészítése, a terv finomítása
  •  Üzembehelyezés
  •  Karbantartás


2.4. Dinamikus működés
A program dinamikus működése modellezhető szekvencia diagrammal, együttműködési diagrammal, állapot-átmeneti diagrammal, aktivitás diagrammal.
A szekvencia diagram a rendszerben lévő objektumok közötti üzenetváltásokat mutatja az idő függvényében.
Segít meghatározni a megoldáshoz szükséges metódusokat, és segít feltárni az objektumok közti kapcsolatokat.
Egy használati eset végrehajtásának egy lehetséges forgatókönyvét mutatja be.
2.5. Felhasználói-felület modell
Képernyőtervek. A felhasználói-felületet modellezhetjük CASE eszközzel.
A modell megmutatja, hogy a program milyen ablakokkal rendelkezik, és ezek hogyan kapcsolódnak egymáshoz.
Itt még nem szükséges teljes részletességgel megtervezni az egyes ablakok belső felépítését,
hiszen a felhasználói felület részletes kidolgozása 4GL fejlesztőeszközzel is lehetséges
2.6. Részletes programterv
A részletes programterv osztálydiagramokból és szöveges osztályleírásokból áll.
Bemutatja a programban definiált összes osztályt, az osztályok összes adatát, metódusát.
Az itt olvasható osztályleírások kiegészítik az „Osztálymodell” című részben található osztályleírásokat.
Szövegesen definiálni kell az összes általunk készített osztály összes metódusának a feladatát.

3. Implementáció (megvalósítás)


4. Tesztelés


5. Felhasználói dokumentáció


5.1. A futtatáshoz ajánlott hardver-, szoftver konfiguráció
5.2. Telepítés
5.3. A program használata


   Modelezéssel kapcsolatos fogalmak :

Osztály (Class):
Az osztály egy felhasználói típus, amelynek alapján példányok (objektumok) hozhatók létre.
Az osztály alapvetően adat és metódus (művelet) definíciókat tartalmaz.
Objektum (példány):
Információt (adatokat) tárol és kérésre műveleteket végez. Van állapota, viselkedése és futásidőben azonosítható.
portok (Port) kapcsolódási pontokat írnak le az osztályok határán. Arra szolgálnak, hogy a
belső részek kapcsolatba kerülhessenek a külvilággal, és a tartalmazó osztályok egymással.
Az konnektorok (Connector) létesítenek kapcsolatot (asszociáció egy előfordulása)
a részek között, a kommunikációt lehetővé téve, azaz üzeneteket lehet küldeni és fogadni.
Az asszociációkkal ellentétben, amelyek osztályok közötti kapcsolatot jelentenek,
a konnektorok csak a belső szerkezet részei közötti kapcsolatot specifikálják. Egy konnektor
egy porthoz vagy közvetlenül az osztály valamely részéhez csatlakozhat.
Mivel az elemek egymásba ágyazhatók, a belső részek elrejtésével a rendszer jobban áttekinthető, míg
megjelenítve őket, részletes információt kapunk. A portok használata lehetőséget ad arra,
hogy elrejtse egy osztály belső szerkezetét a környezet elől, és továbbítsa a beérkező vagy
kimenő jeleket.

A Modell Vezérelt Architektúra (Model Driven Architecture – MDA) egy új alkalmazásfejlesztési megközelítés.
Egy MDA specifikáció egy platform-független UML modellből (Platform Independent Model – PIM)
és egy vagy több platform specifikus modellből (Platform Specific Model – PSM) áll.

Megjegyzések