Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

UML vagy Unified Modeling Language – grafikus leíró nyelv objektummodellezéshez a fejlesztés területén szoftver. De az UML használata nem korlátozódik az IT-re, az UML gyakorlati alkalmazásának másik nagy területe az üzleti folyamatok modellezése, a rendszertervezés és a szervezeti struktúrák feltérképezése. Az UML lehetővé teszi a szoftverfejlesztők számára, hogy megállapodásra jussanak grafikus szimbólumokáltalános koncepciók bemutatására és a tervezésre és fejlesztésre koncentrálni.

Az UML előnyei

  • Az UML grafikus szimbólumokat használ a modellezett rendszer elemeihez, és az UML diagramok meglehetősen könnyen érthetők;
  • Az UML lehetővé teszi a rendszerek leírását szinte minden lehetséges nézőpontból, különféle szempontok figyelembevételével;
  • Az UML objektumorientált: elemzési és felépítési módszerei szemantikailag közel állnak a modern OOP nyelvekben használt programozási módszerekhez;
  • Az UML nyílt szabvány. A szabvány változatról verzióra fejlődik és fejlődik, megfelelve a rendszerek leírására vonatkozó legmodernebb követelményeknek;
  • tartalmaz egy kiterjesztési mechanizmust, amely lehetővé teszi további szöveg- és grafikai típusok bevezetését, amely lehetővé teszi az UML használatát nem csak az informatikai területen.

Az UML diagramok típusai

Az UML-ben 14 diagramtípus létezik. 2 kategóriába sorolhatók:

  • szerkezeti képviselő információs szerkezet;
  • viselkedési, amely a rendszer viselkedését és az interakciók különböző aspektusait reprezentálja. A viselkedésdiagramok külön alfaja az interakciós diagramok.

Az UML diagramtípusok hierarchiája, osztálydiagrammal ábrázolva

Szerkezeti diagramok

  1. osztálydiagram az objektumorientált modellezés kulcseleme. Ennek a diagramnak a segítségével (valójában át osztályok, az övék attribútumokat, módés az osztályok közötti függőségek) a tartománymodellt és a modellezett rendszer szerkezetét írja le.
  2. Alkatrész diagram megjeleníti a programkód nagy blokkra (strukturális komponensekre) való felosztását és megmutatja függőségek közöttük. Az összetevők lehetnek csomagok, modulok, könyvtárak, fájlok stb.
  3. objektum diagram a szimulált rendszer teljes vagy részleges kivágását mutatja egy adott időpontban. Az osztályok (objektumok) példányait, állapotukat (aktuális attribútumértékek) és a köztük lévő kapcsolatokat ábrázolja.
  4. Összetett szerkezeti diagram bemutatja az osztályok belső felépítését és lehetőség szerint e szerkezet elemei közötti kölcsönhatásokat.
  5. Csomag diagram a csomagokat és a köztük lévő kapcsolatokat mutatja be. Az ilyen típusú diagramok a modell szerkezetének egyszerűsítését (és ennek megfelelően a vele való munkavégzést) szolgálják azáltal, hogy a modellelemeket bizonyos kritériumok szerint csoportokba vonják.
  6. Telepítési diagram modellezi a szoftverkomponensek telepítését ( műtárgyak) a számítási erőforrásokon/hardverkomponenseken ( csomópontok).
  7. Profil diagram egy bővíthetőségi mechanizmust ír le, amely lehetővé teszi, hogy az UML-t különféle tématerületekhez és tevékenységi területekhez igazítsák.

Példa UML osztálydiagramra

Viselkedési diagramok

  1. tevékenység diagram akciókat mutat ( akciók) ebből valamilyen tevékenység ( tevékenység). A tevékenységdiagramok üzleti folyamatok, technológiai folyamatok, soros és párhuzamos számítások modellezésére szolgálnak.
  2. Használati eset diagram(vagy használati eset diagram) leírja a szereplők (szereplők) kapcsolatát és a szimulált rendszer használati eseteit (képességeit). A diagram fő célja az, hogy univerzális gyógymódügyfelek, fejlesztők és végfelhasználók számára, amelyen keresztül közösen meg lehetne beszélni a rendszert - képességeit és viselkedését.
  3. Állapot diagram egy entitás dinamikus viselkedését ábrázolja, bemutatva, hogy az entitás az aktuális állapotától függően hogyan reagál a különböző eseményekre. Valójában ez egy állapotdiagram az atomok elméletéből.
  4. Kommunikációs diagram(V korai változatai együttműködési diagram) az összetett szerkezet részei és az együttműködés szerepei közötti kölcsönhatásokat mutatja be. A diagram kifejezetten jelzi az elemek (objektumok) közötti kapcsolatot.
  5. szekvencia diagram objektum kölcsönhatások sorozatának megjelenítésére szolgál. Megmutatja egy adott objektum életciklusát és a szereplők (szereplők) interakcióját valamilyen használati eseten belül, az általuk kicserélt üzenetek sorozatát.
  6. Interakció áttekintése diagram tartalmazza a szekvenciadiagram és a vezérlőfolyamat-konstrukció egy részét. Segít az objektumok kölcsönhatásának különböző nézőpontokból történő átgondolásában.
  7. Időzítési diagram- az interakciós diagramok külön alfaja, amely az időzítésre szakosodott. Az ilyen típusú diagramok az objektumok viselkedésének tanulmányozására szolgálnak egy bizonyos ideig.

Mutassa be egy objektum viselkedését az élete során, az objektum létrehozásától a megsemmisítéséig. Minden állapotdiagram valamilyen automatát ábrázol.

Akcióterv

A Leírás részben ismerje meg a diagramok olvasásához szükséges alapvető állapotdiagram karakterkészletet.

A többi rész ("Példa", "Használat") elolvasása után kipróbálhatja magát az állapotdiagramok önálló elkészítésében.

Megjegyzések (leírás)

Íme a fő karakterkészlet állapotdiagramok szükséges volt a diagram olvasásához. A többi rész ("Példa", "Alkalmazás") elolvasása után már tud írni állapotdiagramok egyedül!

Term Kép Leírás
Kezdeti pszeudostata A rendszer kezdeti állapota
Átmenet Az átmenet azt jelenti, hogy egyik állapotból a másikba lépünk.
Állapot A rendszer által végrehajtott műveleteket jelzi (beleértve lehetséges opciók), ami a szereplők által megfigyelt eredményekhez vezet.
Állapot
tevékenység állapota
Egy használati eset nehéz lépése egy másik használati esettel is ábrázolható.
UML kifejezéssel azt mondjuk, hogy az első használati eset magában foglalja a másodikat is.
Végállapot Lehetővé teszi a rendszerek vagy alrendszerek határainak kijelölését.
Belső tevékenységek Az az eset, amikor az állapotok átmenet nélkül tudnak reagálni az eseményekre, ebben az esetben az esemény, az őrség és a tevékenység az állapottéglalapon belülre kerül.
bemeneti tevékenység A beviteli tevékenység minden alkalommal végrehajtódik, amikor belép az állapotba
kimeneti tevékenység Kilépési tevékenység – minden alkalommal végrehajtódik, amikor elhagyja az államot.
szuperállam
Gyakran előfordul, hogy több állapotnak közös átmenetei és belső tevékenységei vannak. Ilyen esetekben részállapotokká (substate) alakíthatja át őket, és az általános viselkedést átviheti egy szuperállapotba (superstate).
Párhuzamos államok
Az állapotok több egyidejű állapotra bonthatók, amelyek egyidejűleg futnak.

Hogyan alkalmazzuk a kreativitás technikáját

Az UML állapotdiagramok alkalmasak egyetlen objektum viselkedésének leírására több felhasználási esetben. De nem nagyon alkalmasak sok objektum interakciójával jellemezhető viselkedés leírására. Ezért célszerű más technológiákat is használni az állapotdiagramokkal együtt. Például az interakciós diagramok (4. fejezet) nagyszerűen leírják több objektum viselkedését egyetlen használati esetben, míg az UML tevékenységdiagramok arra alkalmasak, hogy több objektum fő műveletsorát több használati esetben is megmutassák.

Nem mindenki tartja természetesnek az állapotdiagramokat. Figyelje meg, hogyan dolgoznak velük a szakértők. Lehetséges, hogy a csapattagok úgy gondolják, hogy az állapotdiagramok nem megfelelőek az ő munkamódszerükhöz. Nem ez a legnagyobb nehézség; emlékeznie kell a különböző munkamódszerek megosztására.

Ha állapotdiagramokat használ, ne próbálja meg rajzolni azokat a rendszer minden osztályához. Ezt a megközelítést gyakran használják a formailag szigorú teljesség érdekében, de ez szinte mindig felesleges erőfeszítés. Az állapotdiagramokat csak olyan osztályokhoz használja, amelyek érdekes viselkedést mutatnak, ahol az állapotdiagram ábrázolása segít megérteni, hogyan mennek a dolgok.

Sok szakértő ezt hiszi az UI szerkesztő és a vezérlőobjektumok hasznos funkciókkal rendelkeznek, ha állapotdiagrammal jelenítik meg őket.

Hogyan tanuljunk

Itt megpróbáltuk a tanulás legegyszerűbb módját biztosítani UML állapotdiagramok.

Sok más nyelvhez hasonlóan ez is karakterkészletet használ a leíráshoz. Ezeknek a szimbólumoknak a jelentése a „Megjegyzések (leírás)” részben található táblázatban található. Minden jelnek saját neve (kifejezése) és helyesírása van. Ezenkívül minden kifejezéshez rövid magyarázat tartozik, hogy gyorsan megértsük a fő lényegét.

Ezután javasoljuk, hogy lépjen a „Példák” szakaszra állapotdiagramok hogy kipróbálja magát a különböző diagramok olvasásában. Ezután érdemes áttanulmányozni a "Használat" részt, mert bár az UML-ben kevés diagramtípus van, a maximális hasznot csak a megfelelő diagramok rendeltetésszerű felhasználásával érheti el a használatuk.

Használati példa

Állapotgép diagramok egy jól ismert technika a rendszer viselkedésének leírására. Az állapotdiagramok ilyen vagy olyan formában az 1960-as évek óta léteznek, és az objektum-orientált programozás korai napjaiban a rendszer viselkedésének ábrázolására használták őket. Objektumorientált megközelítésekben egyetlen osztály állapotdiagramját rajzolja meg, amely megmutatja egyetlen objektum viselkedését annak élettartama során.

Amikor véges állapotú gépekről írnak, elkerülhetetlenül példaként említik a tempomatrendszereket vagy az automatákat.
Úgy döntöttünk, hogy a gótikus kastély titkos központjának vezérlőjét használjuk. Ebben a kastélyban szeretnénk elrejteni kincseinket, hogy nehezen leljenek rájuk. Ahhoz, hogy hozzáférhessünk a széf zárjához, ki kell húznunk egy stratégiai gyertyát a kandeláberből, de a zár csak akkor jelenik meg, ha az ajtó zárva van. A zár megjelenése után belehelyezhetjük a kulcsot és kinyithatjuk a széfet. A nagyobb biztonság érdekében úgy alakítottuk, hogy a széfet csak a gyertya eltávolítása után lehessen kinyitni. Ha a tolvaj nem veszi figyelembe ezt az óvintézkedést, akkor szabadjára engedünk egy förtelmes szörnyet, aki lenyeli a tolvajt.

ábrán. 10.1 látható állapotdiagram vezérlő osztály, amely a szokatlan biztonsági rendszeremet kezeli. Az állapotdiagram a létrehozandó vezérlőobjektum állapotával kezdődik: állapotok Várjon. Ezt a diagramon jelzi kezdeti pszeudostata, amely nem állapot, hanem a kezdőállapotra mutató nyíllal rendelkezik.
Az ábra azt mutatja, hogy a vezérlő három állapot egyikében lehet: Várakozás (Várakozás), Zárolás (Zárolás) és Nyitás (Nyitva). Az ábra azt is mutatja, hogy a vezérlő milyen szabályok szerint vált át egyik állapotból a másikba. Ezeket a szabályokat átmenetként – állapotokat összekötő vonalként – ábrázoljuk.

Az átmenet azt jelenti, hogy egyik állapotból a másikba lépünk. Minden átmenetnek megvan a saját címkéje, amely három részből áll:
trigger-azonosító [védelem]/tevékenység (trigger-aláírás /tevékenység). Mindegyik nem kötelező. Általában, trigger-id az egyetlen esemény, amely állapotváltozást okozhat.

Az őr, ha meg van adva, egy logikai feltétel, amelynek teljesülnie kell az átálláshoz. Az aktivitás a rendszer bizonyos viselkedése az átmenet során. Bármilyen viselkedési kifejezés lehet. Az ID trigger teljes formája több eseményt és paramétert is tartalmazhat. A Várakozás állapotból (10.1. ábra) egy másik állapotba való átmenet a következőképpen értelmezhető: „A várakozás állapotában, ha a gyertyát eltávolítják, egy zár jelenik meg, és a Lezárt állapotba lép.”

Az átmenet leírásának mindhárom része nem kötelező. A tevékenység kihagyása azt jelenti, hogy az átmenet során semmi sem történik. Az őrök kihagyása azt jelenti, hogy az átmenet mindig végrehajtásra kerül, ha a kiváltó esemény bekövetkezik. Az eseményindító azonosító ritkán hiányzik, de előfordul. Ez azt jelenti, hogy az átmenet azonnal megtörténik, ami főleg aktív állapotokban figyelhető meg.

Ha egy esemény egy bizonyos állapotban következik be, akkor ebből az állapotból csak egy átmenetet lehet végrehajtani, például Lock állapotban (10.1. ábra) a védelmeknek kölcsönösen ki kell zárniuk egymást. Ha egy esemény történik, és nincsenek engedélyezett átmenetek – például egy széf bezárása Várakozás állapotban vagy gyertya eltávolítása, miközben az ajtó nyitva van – az esemény figyelmen kívül marad.

Végállapot ( végső állapot) azt jelenti, hogy az állapotgép befejezte a futást, ami a vezérlőobjektum törlését okozza. Tehát azok számára, akik nem voltak elég óvatosak, hogy beleesjenek a csapdába, amikor a vezérlő objektum megszűnik létezni, kénytelenek vagyunk visszahelyezni a nyulat a ketrecébe, felmosni a padlót, és újraindítani a rendszert.

Ne feledje, hogy az állapotgépek csak azokat az objektumokat tudják megjeleníteni, amelyeket közvetlenül megfigyelnek vagy amelyekre hatást gyakorolnak. Így bár azt várhatnánk, hogy kinyitott ajtó mellett helyezzünk be vagy vegyünk ki valamit a széfből, nem jelöltük meg a diagramon, mert a vezérlő nem tud róla semmit mondani.

Amikor a fejlesztők objektumokról beszélnek, gyakran hivatkoznak az objektumok állapotára, vagyis az objektum mezőiben található összes adat kombinációjára. Az állapot az állapotgép diagramban azonban az állapot elvontabb fogalma; a lényeg az, hogy a különböző állapotok az eseményekre való reagálás különböző módjait jelentik.

Belső tevékenységek állapottáblázatban

Az államok átmenet nélkül reagálhatnak az eseményekre belső tevékenységek (belső tevékenységek), ebben az esetben az esemény, az őrség és a tevékenység az állapottéglalapon belülre kerül.

ábrán. A 10.2. ábra a szerkesztő szövegmezőiben megfigyelhető belső szimbólumtevékenységekkel és súgórendszer-események állapotát mutatja. UI. A belső tevékenység olyan, mint egy önátmenet – egy átmenet, amely visszatér ugyanabba az állapotba. A belső tevékenységek szintaxisa az események, védelmek és eljárások azonos logikai sémája szerint épül fel.

ábrán. A 10.2 speciális tevékenységeket is mutat: input és output tevékenységek. bemeneti tevékenység végrehajtják, amikor belép az állapotba; kimeneti tevékenység– amikor elhagyja az államot. A belső tevékenységek azonban nem kezdeményeznek bemeneti és kimeneti tevékenység; ez a különbség között belső tevékenységek ésönátmenetek .

A tevékenység állapotok állapottáblázatban

Az eddig leírt állapotokban az objektum néma, és vár a következő eseményre, mielőtt bármit tenne. Lehetnek azonban olyan állapotok, amelyekben az objektum valamilyen tevékenységet mutat.

Állapot Keresésábrán. A 10.3 ilyen állapot tevékenység állapota: a folyamatban lévő tevékenységet a szimbólum jelzi do/; innen a kifejezés tevékenységet végezni (légy aktív). A keresés befejezése után tevékenység nélküli átmeneteket hajtanak végre, például új berendezéseket mutatnak be (Új hardver megjelenítése). Ha a tevékenység során törlési esemény történik ( megszünteti), Ez csinál-tevékenység egyszerűen megszakad, és visszatérünk az állapothoz Frissítse a Hardver ablakot.

Mind a cselekvő tevékenységek, mind a normál tevékenységek valamilyen viselkedés megnyilvánulását jelentik. A döntő különbség a kettő között az, hogy a normál tevékenységek "azonnal" megtörténnek, és nem szakíthatják meg őket normál események, míg a tevékenységek korlátozott ideig futhatnak, és megszakíthatók, amint az a 2. ábrán látható. 10.3. Azonnali számára különböző rendszerek másként értelmezik; valós idejű rendszerek esetén ez több gépi utasítást is igénybe vehet, asztali szoftvereknél pedig több másodpercig is eltarthat.

BAN BEN UML 1 a szokásos tevékenységeket jelöltük a kifejezéssel akció(cselekvés) és a kifejezés tevékenység(tevékenység) csak az csinál-tevékenységeket.

Szuperállamok

Gyakran előfordul, hogy több állapotnak közös átmenetei és belső tevékenységei vannak. Ilyen esetekben részállapotokká (alállapotokká) alakíthatja őket, és az általános viselkedést átviheti egy szuperállapotba (superstate), amint az az ábrán látható. 10.4. A szuperállam nélkül meg kellene rajzolnunk az átmenetet megszünteti(mégse) egy állapoton belül mindhárom állapotra Adja meg a kapcsolat részleteit.

Párhuzamos államok

Az állapotok több egyidejű állapotra bonthatók, amelyek egyidejűleg futnak. ábrán. A 10.5. ábra egy egyszerű ébresztőórát mutat be, amely akár CD-t, akár rádiót képes bekapcsolni, és az aktuális időt vagy a jelidőt mutatja.

A CD/rádió opciók és az aktuális idő/ébresztési idő párhuzamos. Ha ezt nem párhuzamos állapotdiagrammal akarná ábrázolni, akkor egy rendetlen diagramot kapna, mivel állapotokat kell hozzáadni. A két viselkedést két állapotdiagramra bontva sokkal világosabbá válik.

Rizs. 10.5 is tartalmazza őskori állapot(történeti álállapot). Ez azt jelenti, hogy az óra bekapcsolásakor a rádió/CD opció arra az állapotra vált, amelyben az óra ki volt kapcsolva. A történelemből kijövő nyíl mutatja, melyik állam létezett eredetileg, amikor még nem volt történelem.

Állapottáblázatok megvalósítása

Az állapotdiagram három fő módon valósítható meg: beágyazott kapcsoló utasítással, állapotmintával és állapottáblázattal. Az állapotdiagramokkal való munka legközvetlenebb megközelítése a beágyazott switch utasítás, például az 1. ábrán látható. 10.6.

Bár ez a módszer egyszerű, még ennél az egyszerű esetnél is nagyon hosszú. Ráadásul ezzel a megközelítéssel nagyon könnyen elveszíthető az irányítás, ezért még elemi helyzetekben sem javasoljuk a használatát.
Az állapotminta az állapotosztályok hierarchiáját képviseli az állapot viselkedésének kezelésére. Az állapotdiagramon minden egyes állapotnak megvan a maga állapot-alosztálya. A vezérlő minden eseményhez rendelkezik metódusokkal, amelyek egyszerűen átirányítanak az állapotosztályra. ábrán látható állapotdiagram. A 10.1 az ábrán látható osztályokkal valósítható meg. 10.7.

A hierarchia teteje egy absztrakt osztály, amely tartalmazza az eseményeket kezelő összes metódus leírását, de implementációt nem.
Minden adott állapothoz elegendő egy adott esemény kezelő metódusát átírni, amely az állapotból való átmenetet kezdeményezi.
Az állapottábla adatként ábrázolja az állapotdiagramot.

Tehát az ábra diagramja. A 10.1 táblázat formájában is bemutatható. 10.1.
Ezután építünk egy értelmezőt, amely az állapottáblát használja a program végrehajtása során, vagy egy kódgenerátort, amely e tábla alapján osztályokat generál.

Nyilvánvaló, hogy az állapottáblázaton végzett munka nagy részét egyszer végezzük el, de ezután bármikor használható, amikor állapottal kapcsolatos problémát kell megoldani. A futásidejű állapottábla újrafordítás nélkül módosítható, ami némileg kényelmes. Az állapotsablont könnyebb összeállítani, és bár minden állapot külön osztályt igényel, a megírandó kód mennyisége meglehetősen kicsi.

A megadott megvalósítások szinte minimálisak, de ötletet adnak a jelentkezésről állapotdiagramok. Az állapotmodellek megvalósítása minden esetben meglehetősen sztereotip programot eredményez, ezért általában érdemesebb valamilyen kódgenerálást használni ehhez.

Iratkozzon fel az oldal híreire, a feliratkozási űrlapot az oldal jobb oldali oszlopában találja.

Ha szeretné megtanulni, hogyan kell szabadúszó professzionálisan dolgozni, meghívjuk a "" tanfolyamra.

Az UML diagram egy speciális grafikus leíró nyelv, amelyet különféle szoftverek fejlesztése során történő objektummodellezésre terveztek. Ez a nyelv széles profillal rendelkezik, és egy nyílt szabvány, amely különféle grafikus jelöléseket használ a rendszer absztrakt modelljének létrehozásához. Az UML-t azért hozták létre, hogy lehetővé tegye mindenféle szoftverrendszer meghatározását, megjelenítését, dokumentálását és tervezését. Érdemes megjegyezni, hogy maga az UML diagram nem programozási nyelv, de lehetőséget ad arra, hogy külön kódot generáljunk az alapján.

Miért van szükség rá?

Az UML használata nem ér véget mindenféle szoftver modellezésével. Is adott nyelv ma aktívan használják különféle üzleti folyamatok modellezésére, rendszertervezés lebonyolítására, valamint szervezeti struktúrák megjelenítésére.

Az UML segítségével a szoftverfejlesztők biztosíthatják az ábrázoláshoz használt grafikus konvenciók teljes egyetértését általános fogalmak, mint például: komponens, általánosítás, osztály, viselkedés és aggregáció. Ezzel az építészetre és a tervezésre való nagyobb fokú koncentráció érhető el.

Azt is érdemes megjegyezni, hogy többféle ilyen diagram létezik.

osztálydiagram

Az UML osztálydiagram egy statikus szerkezeti diagram, amelyet a rendszer szerkezetének leírására terveztek, valamint bemutatják az attribútumokat, metódusokat és több különböző osztály közötti függőséget.

Érdemes megjegyezni azt a tényt, hogy az ilyen diagramok felépítésével kapcsolatban több szempont létezik, attól függően, hogy hogyan fogják őket használni:

  • Fogalmi. BAN BEN ez az eset Az UML osztálydiagram egy adott témakör modelljét írja le, és csak az alkalmazott objektumok osztályai vannak benne.
  • Különleges. A diagramot különféle információs rendszerek tervezése során használják.
  • Végrehajtás. Az osztálydiagram minden olyan osztályt tartalmaz, amelyet a programkód közvetlenül használ.

Alkatrész diagram

Az UML komponens diagramja egy teljesen statikus szerkezeti diagram. Célja egy bizonyos particionálás bemutatása szoftver rendszer különböző szerkezeti elemekbe, valamint a köztük lévő kapcsolatokba. Az UML komponens diagramok mindenféle modellt, könyvtárat, fájlt, csomagot, végrehajtható fájlt és sok más elemet használhatnak.

Kompozit/kompozit szerkezeti diagram

Az UML kompozit/kompozit szerkezeti diagram egyben statikus szerkezeti diagram is, de az osztályok belső szerkezetének bemutatására szolgál. Ha lehetséges, ez a diagram bemutatja az osztály belső szerkezetében lévő elemek kölcsönhatását is.

Ezek egyik alfaja az UML együttműködési diagram, amely a szerepek és az interakciók bemutatására szolgál. különféle osztályok együttműködés keretein belül. Nagyon hasznosak, ha tervezési mintákat kell modelleznie.

Érdemes megjegyezni, hogy az UML osztálydiagramok és az összetett szerkezeti diagramok egyszerre használhatók.

Telepítési diagram

Ez a diagram a futó csomópontok, valamint a rajtuk telepített összes műtermék modellezésére szolgál. Az UML 2-ben a melléktermékeket különféle csomópontokon telepítik, míg az első verzióban csak összetevőket telepítettek. Így az UML telepítési diagramot elsősorban a második verzióhoz használják.

Megnyilvánulási függőség jön létre egy műtermék és az általa megvalósított komponens között.

Objektum diagram

Ebben a nézetben teljes vagy részleges pillanatképet láthat a létrehozandó rendszerről bizonyos pillanatban idő. Teljesen megjeleníti egy adott rendszer osztályainak összes példányát, jelezve paramétereik aktuális értékeit, valamint a köztük lévő kapcsolatokat.

Csomag diagram

Ez a diagram strukturális jellegű, és fő tartalma mindenféle csomag, valamint a köztük lévő kapcsolatok. Ebben az esetben nincs szigorú elválasztás több szerkezeti diagram között, aminek következtében használatukat legtöbbször kizárólag kényelmi szempontok miatt használjuk, szemantikai jelentést nem hordoznak. Érdemes megjegyezni, hogy a különböző elemek más UML-diagramokat is szolgáltathatnak (például maguk a csomagok és csomagdiagramok).

Használatuk annak érdekében történik, hogy biztosítsák több elem csoportokba szervezését egy bizonyos attribútum szerint, a szerkezet egyszerűsítése, valamint a rendszer modelljével való munka megszervezése érdekében.

tevékenység diagram

Az UML tevékenységdiagram egy adott tevékenység több részre bontását jeleníti meg. Ebben az esetben a "tevékenység" fogalma egy bizonyos végrehajtható viselkedés specifikációját jelenti, párhuzamos, valamint különböző alárendelt elemek összehangolt szekvenciális végrehajtása - egymásba ágyazott típusú tevékenységek és különféle műveletek, amelyeket egyesítenek a egy bizonyos csomópont kimenetei egy másik bemenetére.

Az UML tevékenységi diagramot gyakran használják különféle üzleti folyamatok, párhuzamos és szekvenciális számítások modellezésére. Többek között mindenféle technológiai eljárást modelleznek.

automata diagram

Ezt a nézetet némileg másképp hívják UML állapotdiagramnak. Van egy bemutatott állapotgépe egyszerű és összetett állapotokkal, valamint átmenetekkel.

A véges állapotú gép különböző állapotok sorozatának specifikációja, amelyen egy bizonyos objektum áthalad, vagy egy interakció az életében bekövetkezett egyes eseményekre, valamint az objektum ilyen eseményekre adott válasza. Az UML állapotdiagram által használt állapotgép az eredeti elemhez van csatolva, és a példányok viselkedésének meghatározására szolgál.

Az úgynevezett sárkánydiagramok az ilyen diagramok analógjaként használhatók.

Használjon esetdiagramokat

Az UML használati eset diagramja megjeleníti a szereplők között előforduló összes kapcsolatot, valamint a különböző használati eseteket. Fő feladata, hogy olyan teljes értékű eszközt biztosítson, amellyel a megrendelő, a végfelhasználó vagy valamelyik fejlesztő közösen megbeszélheti egy adott rendszer viselkedését, funkcionalitását.

Ha UML használati eset diagramot használnak egy rendszermodellezési folyamatban, akkor az elemző a következőket fogja tenni:

  • Világosan válassza el a modellezett rendszert a környezetétől.
  • Azonosítsa a szereplőket, a rendszerrel való interakciójuk módjait, valamint a rendszer várható működését.
  • Állítsa be a szószedetben tárgykörként különböző fogalmakat, amelyekhez kapcsolódik Részletes leírás ennek a rendszernek a funkcionalitását.

Ha az UML-ben használati diagramot dolgoznak ki, akkor az eljárás szöveges leírással kezdődik, amelyet az ügyféllel való munka során kapunk. Ugyanakkor érdemes megjegyezni, hogy a használati esetmodell összeállítása során a különböző nem funkcionális követelmények teljesen kimaradnak, és ezekről már külön dokumentum készül.

Kommunikáció

A kommunikációs diagram az UML szekvenciadiagramhoz hasonlóan tranzitív, azaz kifejezi az interakciót, de egyben demonstrálja is. különböző utak, és ha szükséges, a szükséges pontossággal konvertálhatja egyiket a másikba.

A kommunikációs diagram tükrözi a kompozit szerkezet különböző elemei között fellépő interakciókat, valamint az együttműködés szerepeit. Legfőbb különbsége a sorrenddiagramtól, hogy egyértelműen jelzi több elem kapcsolatát, és az időt nem használják külön dimenzióként.

Ezt a típust egy teljesen szabad formátum különbözteti meg, ahol több objektum és kapcsolat elrendezése ugyanúgy történik, mint az objektumdiagramban. Ha szükség van az üzenetek sorrendjének fenntartására ebben a szabad formátumban, akkor azok időrendi sorrendben vannak számozva. Ennek a diagramnak az olvasása a kezdeti 1.0 üzenettel kezdődik, majd az üzenetek egyik objektumról a másikra való továbbításának irányában folytatódik.

Az ilyen diagramok többnyire pontosan ugyanazt az információt mutatják, amit a szekvenciadiagram szolgáltat nekünk, de mivel más módon mutatja be az információkat, az egyik diagramban bizonyos dolgok sokkal könnyebben meghatározhatók, mint a másikban. Azt is érdemes megjegyezni, hogy a kommunikációs diagram világosabban megmutatja, hogy az egyes elemek mely elemekkel lépnek kölcsönhatásba, míg a szekvenciadiagram egyértelműen azt mutatja meg, hogy milyen sorrendben valósulnak meg az interakciók.

szekvencia diagram

Az UML szekvenciadiagram több objektum közötti interakciókat mutatja, amelyek az előfordulásuk időpontja szerint vannak rendezve. Egy ilyen diagram több objektum közötti időrendi interakciót mutat be. Különösen megjeleníti az interakcióban részt vevő összes objektumot, valamint az általuk váltott üzenetek teljes sorozatát.

A fő elemek ebben az esetben a különböző objektumok megjelölései, valamint függőleges vonalak, amely az idő múlását és a téglalapok, amelyek egy adott objektum tevékenységét vagy valamely funkció általi végrehajtását ábrázolják.

Együttműködési diagram

Az ilyen típusú diagramok lehetővé teszik több objektum közötti interakciók megjelenítését, elvonatkoztatva az üzenetfordítási sorrendtől. Az ilyen típusú diagramok kompakt formában megjelenítik egy bizonyos objektum összes továbbított és fogadott üzenetét, valamint ezen üzenetek formátumát.

Mivel a szekvenciadiagramok és a kommunikációs diagramok egyszerűen ugyanazon eljárások különböző nézetei, a Rational Rose lehetőséget biztosít kommunikációs szekvenciadiagram létrehozására egy szekvenciadiagramból vagy fordítva, és teljesen automatikusan szinkronizálja azokat.

Interakciós áttekintési diagramok

Ezek UML-diagramok, amelyek a tevékenységdiagramok egy típusához tartoznak, és mind sorozatelemeket, mind vezérlőfolyam-konstrukciókat tartalmaznak.

Érdemes megjegyezni azt a tényt, hogy adott formátum Együttműködési és Sorozatdiagramot egyesíti, amelyek lehetőséget adnak arra, hogy a kialakítandó rendszer több objektuma közötti interakciót különböző nézőpontokból megvizsgáljuk.

Időzítési diagram

Képviseli Alternatív lehetőség szekvencia diagram, amely explicit módon mutatja be az életvonal állapotváltozását egy bizonyos időskálán. Nagyon hasznos lehet különféle valós idejű alkalmazásokban.

Milyen előnyökkel jár?

Érdemes megjegyezni néhány előnyt, amelyek megkülönböztetik az UML használati diagramot és másokat:

  • A nyelv objektum-orientált, ennek eredményeként az elvégzett elemzés és tervezés eredményeinek leírására szolgáló technológiák szemantikailag közel állnak a modern típusú objektum-orientált nyelvek mindenféle programozási módszeréhez.
  • Ezt a nyelvet használva a rendszer szinte minden lehetséges nézőpontból leírható, és viselkedésének különböző aspektusai ugyanúgy leírhatók.
  • Az összes diagram viszonylag könnyen olvasható még a szintaxisának viszonylag gyors megismerése után is.
  • Az UML lehetővé teszi a bővítést, valamint saját grafikai és szöveges sztereotípiák bevezetését, ami hozzájárul ahhoz, hogy nem csak a szoftverfejlesztésben használják.
  • A nyelv meglehetősen elterjedt, és meglehetősen aktívan fejlődik.

Hibák

Annak ellenére, hogy az UML diagramok felépítésének számos előnye van, gyakran kritizálják őket a következő hiányosságok miatt:

  • redundancia. A kritikusok az esetek túlnyomó többségében azt mondják, hogy az UML túl nagy és összetett, és ez gyakran indokolatlan. Elég sok redundáns vagy szinte haszontalan konstrukciót, diagramot tartalmaz, és leggyakrabban a második verziót érik ilyen kritikák, és nem az elsőt, mert az újabb változatokban több a „bizottság által tervezett” kompromisszum.
  • Különféle pontatlanságok a szemantikában. Mivel az UML-t önmagának, az angolnak és az OCL-nek a kombinációja határozza meg, hiányzik belőle az a merevség, amely a formális leírási technikák által pontosan meghatározott nyelvek velejárója. Bizonyos helyzetekben az OCL, az UML és az angol nyelv absztrakt szintaxisa kezd ellentmondani egymásnak, míg más esetekben hiányosak. Magának a nyelvnek a pontatlansága egyaránt érinti a felhasználókat és az eszközszolgáltatókat, ami végül az eszközök összeférhetetlenségéhez vezet a különböző specifikációk egyedi kezelési módja miatt.
  • Problémák a megvalósítás és a tanulmányozás folyamatában. A fenti problémák mindegyike bizonyos nehézségeket okoz az UML bevezetésének és tanulásának folyamatában, és ez különösen igaz, ha a menedzsment arra kényszeríti a mérnököket, hogy ezt használják, ha nem rendelkeznek előzetes ismeretekkel.
  • A kód tükrözi a kódot. Egy másik vélemény, hogy nem a szép és vonzó modellek a fontosak, hanem a közvetlenül működő rendszerek, vagyis a kód a projekt. Ezzel a szemlélettel összhangban további fejlesztésekre van szükség hatékony módszeríró szoftver. Az UML-t azokban a megközelítésekben értékelik, amelyek modelleket állítanak össze egy megvalósítható ill forráskód. De a valóságban ez nem biztos, hogy elég, mert a nyelvből hiányoznak a Turing-teljességi tulajdonságok, és az egyes generált kódokat végül korlátozza az, amit az UML értelmező eszköz feltételezhet vagy meghatározhat.
  • Terhelési eltérés. Ez a kifejezés a rendszerelemzés elméletéből származik, annak meghatározására, hogy egy bizonyos rendszer bemenete nem képes-e érzékelni egy másik kimenetét. Mint minden szabványos jelölés, az UML is hatékonyabban és tömörebben tud ábrázolni bizonyos rendszereket, mint másokat. Így a fejlesztő hajlamosabb azokra a megoldásokra, amelyek kényelmesebbek az UML, valamint más programozási nyelvek minden erősségének átszövésére. Ez a probléma nyilvánvalóbb, ha a fejlesztési nyelv nem felel meg az objektum-orientált ortodox doktrína fő elveinek, vagyis nem igyekszik az OOP elvei szerint működni.
  • Igyekszik sokoldalú lenni. Az UML egy modellező nyelv Általános rendeltetésű, amely megpróbálja biztosítani a kompatibilitást bármely ma létező feldolgozó nyelvvel. Egy adott projekttel összefüggésben ahhoz, hogy a tervezőcsapat elérje a végső célt, ki kell választani ennek a nyelvnek az alkalmazható jellemzőit. kívül lehetséges módjai az UML hatókörének korlátai bármely területen egy olyan formalizmuson mennek keresztül, amely nem teljesen megfogalmazott, de maga is kritika tárgya.

Így ennek a nyelvnek a használata nem minden helyzetben releváns.

10.4. UML DIAGRAM

10.4.1. Vizuális UML diagramok típusai

Az UML többféle vizuális diagram létrehozását teszi lehetővé:

Esetdiagramok használata;

szekvencia diagramok;

Szövetkezeti diagramok;

osztálydiagramok;

Állapotdiagramok;

Alkatrész diagramok;

Elhelyezési diagramok.

A diagramok a rendszer különböző aspektusait mutatják be. Például egy kooperatív diagram bemutatja, hogy az objektumoknak hogyan kell kölcsönhatásba lépniük a rendszer bizonyos funkcióinak megvalósítása érdekében. Minden diagramnak megvan a maga célja.

10.4.2. Használjon esetdiagramokat

A használati eset diagramok a rendszer funkcióit reprezentáló használati esetek és a rendszer funkcióit reprezentáló szereplők és személyeket vagy rendszereket képviselő szereplők közötti interakciót mutatják be, akik információt kapnak vagy továbbítanak a rendszerbe, illetve a rendszerből. ezt a rendszert. Az 1. ábrán látható egy példa egy bankjegykiadó automata (ATM) használati esetére. 10.1.

Rizs. 10.1. Használati eset diagram

A diagram a használati esetek és a szereplők közötti interakciót ábrázolja. A rendszerkövetelményeket tükrözi a felhasználó szemszögéből. Így a használati esetek a rendszer által végrehajtott funkciók, a szereplők pedig az érintettek létrehozott rendszert. A diagramok azt mutatják, hogy mely szereplők kezdeményeznek használati eseteket. Azt is megmutatják, hogy a szereplő mikor kap információt a használati esetből. Lényegében egy használati eset diagram szemlélteti a rendszer követelményeit. Példánkban a banki ügyfél különböző felhasználási eseteket kezdeményez: "Pénz felvétele a számláról", "Pénz utalása", "Pénz befizetése a számlára", "Egyenleg megjelenítése", "Az azonosító szám módosítása", "Befizetés". A bankpénztáros kezdeményezheti az „Azonosítószám módosítása” használati ügyet. A „Befizetés” használati esetből egy nyíl látható a Hitelrendszerre. A színészek lehetnek külső rendszerek, ebben az esetben a Hitelrendszer pontosan szereplőként jelenik meg – az ATM rendszeren kívül van. A használati esetről a szereplőre mutató nyíl azt jelzi, hogy a használati eset bizonyos információkat nyújt a szereplőnek. Ebben az esetben a Fizetés használati esete biztosítja a Hitelrendszer számára a bankkártyás fizetési információkat.

A használati esetek diagramjaiból elég sok információhoz juthatunk egy rendszerről. Az ilyen típusú diagram a rendszer általános működését írja le. A felhasználók, projektmenedzserek, elemzők, fejlesztők, minőségbiztosítási szakemberek és a rendszer egésze iránt érdeklődők a használati eset diagramok vizsgálatával megérthetik, mit kell tennie a rendszernek.

10.4.3. Szekvencia diagramok

A szekvenciadiagramok a használati eseten belül előforduló események folyamatát mutatják be. Például a „Pénz kivonása” használati eset többféle lehetséges szekvenciát biztosít: pénzfelvétel, pénzfelvételi kísérlet, amikor nincs elég pénz a számlán, pénzfelvételi kísérlet helytelen azonosítószámmal és néhány más. A 20 dollár számláról történő kivonásának szokásos forgatókönyve (olyan problémák hiányában, mint a hibás azonosítószám vagy a számlán lévő pénzhiány) a 2. ábrán látható. 10.2.

10.2. ábra. Joe ügyfél 20 dolláros kivonási diagramja

A diagram tetején látható az összes szereplő és objektum, amelyre a rendszernek szüksége van a Pénzkivonás használati eset végrehajtásához. A nyilak a szereplő és az objektum, illetve az objektumok között a szükséges funkciók végrehajtása érdekében átadott üzeneteknek felelnek meg. Azt is meg kell jegyezni, hogy a szekvenciadiagram objektumokat mutat, nem osztályokat. Az osztályok az objektumok típusai. A tárgyak konkrétak; osztály helyett Ügyfél a szekvenciadiagram egy adott vásárlót, Joe-t ábrázol.

A használati eset akkor kezdődik, amikor az ügyfél behelyezi a kártyáját az olvasóba – ez az objektum az ábra tetején lévő dobozban látható. Beolvassa a kártya számát, megnyitja a Joe-fiók objektumot, és inicializálja az ATM képernyőt. A képernyő megkérdezi Joe-tól a regisztrációs számát. Az ügyfél beírja az 1234-es számot. A képernyő ellenőrzi a számot a Joe-fiók objektumon, és megállapítja, hogy helyes-e. A képernyőn megjelenik Joe egy menü közül, amelyből választhat, és kiválasztja a „Visszavonás” lehetőséget. A képernyő megkérdezi, mennyit akar kivenni, és Joe beír 20 dollárt. A képernyő pénzt von le a számláról. Ennek során a Joe Account objektum által végrehajtott folyamatok sorozatát kezdeményezi. Ezzel egyidejűleg ellenőrzik, hogy legalább 20 dollár van-e ezen a számlán, és a szükséges összeget levonják a számláról. Akkor bankautomata utasítást kap, hogy "adjon ki egy csekket és 20 dollár készpénzt". Végül ugyanaz a "Joe's account" objektum utasítja a kártyaolvasót a kártya visszaküldésére.

Tehát ez a szekvenciadiagram azt a műveletsort szemlélteti, amely megvalósítja a „Pénz kivonása a számláról” használati esetet azon a konkrét példán, amikor az ügyfél Joe 20 dollárt vett fel. Ezt a diagramot tekintve a felhasználók megismerkednek munkájuk sajátosságaival. Az elemzők a műveletek sorrendjét (folyamatát), a fejlesztők a létrehozandó objektumokat és azok működését látják. A minőségellenőrző szakemberek megértik a folyamat részleteit, és képesek lesznek teszteket kidolgozni azok ellenőrzésére. Így a szekvenciadiagramok a projekt minden résztvevője számára hasznosak.

10.4.4. szövetkezeti grafikonok

A kooperatív diagramok ugyanazt az információt jelenítik meg, mint a sorozatdiagramok. Ezt azonban másként és más célokra teszik. ábrán látható. A 10.2. ábra a szekvencia diagramot mutatja. 10.3 kooperatív diagram formájában.

Mint korábban, a tárgyak téglalapként, a szereplők pedig figurákként jelennek meg. Ha a szekvenciadiagram a szereplők és tárgyak közötti interakciót mutatja az időben, akkor a kooperatív diagramban nincs időbeli kapcsolat. Így látható, hogy a kártyaolvasó utasítja a "Joe számláját" a megnyitásra, a "Joe's account" pedig arra készteti a kártyaolvasót, hogy visszaadja a kártyát a tulajdonosnak. A közvetlenül kölcsönható objektumokat vonalak kötik össze. Ha például a kártyaolvasó közvetlenül kommunikál az ATM képernyőjével, akkor határvonalat kell húzni közöttük. A vonal hiánya azt jelenti, hogy nincs közvetlen kommunikáció az objektumok között.

Rizs. 10.3. A számláról történő pénzfelvétel folyamatát leíró szövetkezeti diagram

Tehát a kooperatív diagram ugyanazokat az információkat jeleníti meg, mint a sorrenddiagram, de más célokra van rá szükség. A minőségellenőrzési szakemberek és rendszertervezők képesek lesznek megérteni a folyamatok objektumok közötti eloszlását. Tegyük fel, hogy valamilyen kooperatív diagram egy csillaghoz hasonlít, ahol több objektum kapcsolódik egy központi objektumhoz. A rendszertervező arra a következtetésre juthat, hogy a rendszer túlságosan függ egy központi létesítménytől, és a folyamatok egyenletesebb elosztása érdekében újra kell tervezni. Egy szekvenciadiagramban az ilyen típusú interakciót nehéz lenne látni.

10.4.5. osztálydiagramok

Az osztálydiagramok egy rendszer osztályai közötti interakciót tükrözik. Például a "joe fiókja" egy objektum. Egy ilyen objektum típusa általában véve számlának tekinthető, azaz a "Számla" egy osztály. Az osztályok olyan adatokat és viselkedéseket (műveleteket) tartalmaznak, amelyek befolyásolják ezeket az adatokat. Így a Számla osztály tartalmazza az ügyfél azonosító számát és az azt ellenőrző műveleteket. Az osztálydiagramban minden objektumtípushoz létrejön egy osztály a szekvenciadiagramokból vagy a kooperációs diagramokból. A „Pénz kivonása” használati eset osztálydiagramja az 1. ábrán látható. 10.4.

A diagram a „Pénz kivonása” használati esetet megvalósító osztályok közötti kapcsolatokat mutatja. Négy osztály vesz részt ebben a folyamatban: kártyaolvasó (kártyaolvasó), számla (számla), ATM (ATM képernyő) és pénzkiadó (pénztárgép). Az osztálydiagramon minden osztály három részre osztott téglalapként van ábrázolva. Az első rész az osztály neve, a második rész az osztály neve. attribútumokat. Az attribútum egy olyan információ, amely egy osztályt jellemzi. Például a Számla (számla) osztálynak három attribútuma van: Számlaszám (számlaszám), PIN (azonosító szám) és Egyenleg (egyenleg). Az utolsó rész az osztály azt tükröző műveleteit tartalmazza. viselkedés(az osztály által végzett tevékenységek). Az osztályokat összekötő vonalak az osztályok közötti interakciót mutatják.

Rizs. 10.4. osztálydiagram

A fejlesztők osztálydiagramokat használnak az osztályok tényleges létrehozásához. Az olyan eszközök, mint a Rose, létrehoznak egy osztálykód-alapot, amelyet a programozók kitöltenek a részletekkel a választott nyelven. Ezekkel a diagramokkal az elemzők megmutathatják a rendszer részleteit, az építészek pedig megérthetik a tervezését. Ha például egy osztály túl nagy funkcionális terhelést hordoz, ez látható lesz az osztálydiagramon, és az építész átoszthatja a többi osztály között. A diagram azon esetek azonosítására is használható, amikor a kommunikáló osztályok között nincs kapcsolat definiálva. Osztálydiagramokat kell készíteni, hogy minden használati esetben mutassák az egymással kölcsönhatásba lépő osztályokat. Készíthet általánosabb diagramokat is, amelyek lefedik az összes rendszert vagy alrendszert.

10.4.6. Állapotdiagramok

Az állapotdiagramokat arra tervezték, hogy modellezzék azokat a különféle állapotokat, amelyekben egy objektum lehet. Míg az osztálydiagram az osztályok és kapcsolataik statikus képét mutatja, addig az állapotdiagramok a rendszer viselkedésének dinamikáját írják le.

Az állapotdiagramok egy objektum viselkedését ábrázolják. Tehát egy bankszámlának több különböző állapota lehet. Lehet nyitott, zárt, vagy a rajta lévő jóváírás túlléphető. A fiók viselkedése attól függően változik, hogy milyen állapotban van. Az állapotdiagram pontosan ezt az információt mutatja. ábrán. A 10.5 egy példa egy bankszámla állapotdiagramjára.

Rizs. 10.5. A Számlaosztály állapotdiagramja

Ez a diagram bemutatja a számla lehetséges állapotait, valamint a számla egyik állapotból a másikba való átmenet folyamatát. Például, ha az ügyfél egy nyitott számla bezárását kéri, az utóbbi „Lezárt” állapotba kerül. Az ügyfél igénye ún esemény, az események okozzák az átmenetet egyik állapotból a másikba.

Amikor az ügyfél pénzt vesz fel egy nyitott számláról, a számla "túlhitelezett" állapotba kerülhet. Ez csak akkor történik meg, ha a számlaegyenleg kisebb, mint nulla, amit a feltétel [ negatív egyenleg] diagramunkon. zárójelben feltétel meghatározza, hogy az egyik állapotból a másikba való átmenet mikor következhet be vagy nem.

Az ábrán két speciális állapot található: a kezdetiÉs végső. A kezdeti állapotot fekete pont jelzi: az objektum létrehozásakori állapotának felel meg. A végső állapotot egy fehér körben lévő fekete pont jelzi: ez a tárgy közvetlenül a megsemmisülése előtti állapotának felel meg. Egy állapotdiagramnak egy és csak egy kezdeti állapota lehet. Ugyanakkor lehet, hogy annyi végső állapot van, amennyire szüksége van, vagy lehet, hogy egyáltalán nincs.

Amikor egy objektum egy adott állapotban van, bizonyos folyamatok végrehajthatók. Példánkban a jóváírás túllépése esetén egy megfelelő üzenetet küldünk az ügyfélnek. Meghívják azokat a folyamatokat, amelyek akkor fordulnak elő, amikor egy objektum egy adott állapotban van akciókat.

Állapotdiagramokat nem kell minden osztályhoz létrehozni, csak nagyon bonyolult esetekben használják. Ha egy osztályobjektum több állapotban is létezhet, és mindegyikben eltérően viselkedhet, akkor valószínűleg szüksége lenne egy ilyen diagramra. Sok projektben azonban egyáltalán nem használják őket. Ha állapotdiagramok készültek, a fejlesztők használhatják őket osztályok létrehozásakor.

Az állapottáblákra főként dokumentációs célokra van szükség.

10.4.7. Alkatrész diagramok

A komponens diagramok megmutatják, hogyan néz ki a modell fizikai szinten. A rendszer szoftverösszetevőit és a köztük lévő kapcsolatokat ábrázolja. Kétféle összetevő létezik: végrehajtható összetevők és kódkönyvtárak.

ábrán. A 10.6. ábra az ATM-rendszer egyik alkatrész-diagramját mutatja. Ez a diagram egy ATM rendszerkliens összetevőit mutatja be. Ebben az esetben a fejlesztőcsapat úgy döntött, hogy a rendszert C++ nyelven építik fel. Minden osztálynak saját fejlécfájlja és kiterjesztésfájlja van. CPP úgy, hogy minden osztályt a diagramban a saját komponenseivé alakítson át. A kiválasztott sötét komponens meghívásra kerül csomag specifikációés megfelel a C++ ATM osztály törzsfájljának (.cpp fájl). A ki nem választott összetevőt csomagspecifikációnak is nevezik, de egy C++ nyelvi osztályfejlécfájlnak felel meg (.h fájlkiterjesztés). ATM komponens. Az exe egy feladatspecifikáció, és az információfeldolgozási folyamatot képviseli. Ebben az esetben a feldolgozó szál a végrehajtható program.

Az összetevőket szaggatott vonal köti össze, amely a köztük lévő függőséget mutatja. Egy rendszernek több komponens diagramja lehet az alrendszerek számától függően, ill futtatható fájlok. Minden alrendszer komponensek csomagja.

A komponens diagramokat a projekt azon résztvevői használják, akik a rendszer összeállításáért felelősek. A komponens diagram képet ad arról, hogy milyen sorrendben kell összeállítani a komponenseket, valamint hogy a rendszer mely végrehajtható komponenseket hozza létre. A diagram az osztályok és a megvalósított komponensek megfelelőségét mutatja. Tehát ott van szükség, ahol a kódgenerálás kezdődik.

Rizs. 10.6. Alkatrész diagram

10.4.8. Elhelyezési diagramok

A helydiagramok a rendszer különböző összetevőinek fizikai elhelyezkedését mutatják a hálózaton. Példánkban az ATM-rendszer a következőkből áll egy nagy szám alrendszerek, amelyek különálló fizikai eszközökön vagy csomópontokon futnak. Az ATM-rendszer elhelyezési diagramja az ábrán látható. 10.7.

Ebből a diagramból megismerheti a rendszer fizikai elrendezését. Az ATM-kliensprogramok több helyen, különböző helyeken futnak majd. Az ügyfelek zárt hálózatokon keresztül kommunikálnak a regionális ATM szerverrel. Az ATM szerver szoftvert fogja futtatni. Viszont át helyi hálózat a regionális szerver együttműködik az Oracle-t futtató banki adatbázis-kiszolgálóval. Végül egy nyomtató csatlakozik a regionális ATM-szerverhez.

Tehát ez a diagram a rendszer fizikai elrendezését mutatja. Például ATM-rendszerünk egy háromszintű architektúrát követ, ahol az első réteg az adatbázist, a második réteg a regionális szervert, a harmadik réteg pedig a klienst tárolja.

10.7. Elhelyezési diagram

Az elrendezési diagramot a projektmenedzser, a felhasználók, a rendszertervező és az üzemeltetők használják a rendszer fizikai elrendezésének és az egyes alrendszerek elhelyezkedésének meghatározásához. A projektmenedzser elmagyarázza a felhasználóknak, hogyan fog kinézni a kész termék. Az operatív személyzet képes lesz megtervezni a rendszer telepítési munkáit.

könyvből Microsoft iroda szerző Leontyev Vitalij Petrovics

Diagramok A táblázatban szereplő számok messze nem mindig teszik lehetővé, hogy teljes benyomást keltsen, még akkor is, ha az Ön számára legkényelmesebb módon vannak rendezve. A rendelkezésre álló Microsoft Excel diagramsablonok segítségével vizuális képet kaphat a táblázat adatairól anélkül

A Computer at 100. Kezdve ezzel a könyvből Windows Vista a szerző Zozulya Jurij

Diagramok A diagramok táblázatos adatok grafikus formában történő bemutatására szolgálnak, amelyek jelentősen javíthatják az információk láthatóságát, bemutatják a különböző paraméterek arányát vagy változásuk dinamikáját. Eszközöket használnak diagramok beszúrására a Wordben

A Hatékony irodai munka című könyvből szerző Ptasinszkij Vlagyimir Szergejevics

Grafikonok Az Excel legszembetűnőbb tulajdonsága a számítások eredményeinek vagy a felhalmozott adatoknak a grafikonok (diagramok) formájában történő bemutatása: néha a leglenyűgözőbb számok sem képesek meggyőzni úgy, ahogy az egyszerű grafikák is képesek. Az Excel rendelkezik

Excel munkafüzetből. multimédiás tanfolyam a szerző Medinov Oleg

8. fejezet Diagramok Gyakran Excel program különböző statisztikai és elemző jelentéseket bemutató dokumentumok készítésére szolgálnak. Ezek lehetnek értékesítési jelentések, levegőhőmérséklet-mérési táblázatok, szociológiai felmérések adatai stb. A számadatok nem mindig

A Word 2007 könyvből. Népszerű oktatóanyag a szerző Krainsky I

Diagram készítése Az első példához létre kell hoznia az ábrán látható táblázatot. 8.1. Rizs. 8.1. Hőmérséklet mérési táblázat A táblázat adatai alapján egy egyszerű hőmérsékleti diagramot készítünk.1. Jelölje ki a kitöltött tartományt a táblázatban.2. Menj

A Computer Tutorial című könyvből szerző Kolisnichenko Denis Nikolaevich

6.6. Grafikonok Kivéve grafikus fájlok, V Word dokumentumok diagramok beilleszthetők. Diagramok segítségével megjelenítheti a numerikus adatokat, például nyomon követheti az adatok változását, megtekintheti egy projekt dinamikáját. A diagramok hasonlóak

Az Object-Oriented Analysis and Design with example C++ Applications című könyvből írta Butch Gradi

14.9. Diagramok Talán itt az ideje, hogy a száraz számokat grafikává alakítsuk, szebbé és informatívabbá téve táblázatunkat? Ehhez diagramokat használnak. Mondjon, amit szeretne, de a diagram jobban érzékelhető, mint a táblázat. Diagram készítéséhez ki kell választania azokat az értékeket, amelyek alapján

A Programozási technológiák című könyvből a szerző Kamaev V A

5.2. Osztálydiagramok A lényeg: osztályok és kapcsolataik Az osztálydiagram az osztályokat és azok kapcsolatait mutatja be, így a projekt logikai aspektusát reprezentálja. Egyetlen osztálydiagram az osztálystruktúra egy adott nézetét képviseli. Az elemzés szakaszában mi

A Business Process Modeling with BPwin 4.0 című könyvből szerző Maklakov Szergej Vladimirovics

5.4. Objektumdiagramok lényegesek: Objektumok és kapcsolataik Az objektumdiagram a meglévő objektumokat és azok kapcsolatait mutatja be a rendszer logikai tervezésében. Más szavakkal, az objektumdiagram egy pillanatkép az események folyamatáról bizonyos konfigurációkban.

Az OrCAD PSpice könyvből. Elemzés elektromos áramkörök írta Keown J.

5.7. Folyamat diagramok. Alapvető: Processzorok, eszközök és kapcsolatok A folyamatdiagramok a folyamatok processzorok közötti eloszlásának bemutatására szolgálnak a rendszer fizikai tervezésében. Egy külön folyamatábra a folyamat szerkezetének egy nézetét mutatja

A VBA Book for Dummies-ből szerző Cummings Steve

10.4. UML DIAGRAM 10.4.1. Vizuális diagramok típusai Az UMLUML többféle vizuális diagram létrehozását teszi lehetővé: használati eset diagramok; szekvencia diagramok; kooperatív diagramok; osztálydiagramok; állapotdiagramok; diagramok

A Macintosh bemutatója című könyvből szerző Skrylina Sofia

1.2.6. Diagram keret Az 1.2.26. ábra egy tipikus példát mutat a határolókeretekkel ellátott bontási diagramra, amelyet a diagram keretének neveznek. Rizs. 1.2.26. Példa bontási diagram drótvázzal A drótváz tartalmaz egy címet ( felső rész keretek) és pince (alsó rész).

A szerző könyvéből

Időzítési táblázatok A bemeneti és kimeneti feszültségek időzítési diagramjainak megjelenítéséhez kissé módosítani kell a bemeneti fájlt. Az előző példához hasonlóan szinuszos bemeneti feszültséget használunk: Vi 1 0 sin (0 0,5 V 5 kHz) A tranziens elemzéssel együtt

A szerző könyvéből

Diagramok és grafikonok Csak szakember láthatja a végtelen számsorok jelentését, de bárki megértheti (vagy legalábbis azt állíthatja, hogy megérti) az oszlopdiagramot vagy a kördiagramot. A VBA-nak nincsenek beépített diagramkészítő eszközei, hanem ilyenek

A szerző könyvéből

5.1.14. Diagramok A diagramok egy táblázat numerikus adatainak grafikus megjelenítése. A Pages többféle diagramtípust kínál: Oszlop (oszlop), Halmozott oszlop (többszintű oszlopok), Vág (Hisztogram), Halmozott vag (többszintű hisztogram), Vonal (Lineáris), Terület (Terület), Halmozott terület (többszintű) lépcsőzetes

A szerző könyvéből

5.2.8. Diagramok A diagram egy kiválasztott tartományból származó adatok grafikus megjelenítése. Diagram felépítéséhez kövesse a következő algoritmust1. Készítsen táblázatot a számított értékekről.2. Válassza ki a kívánt tartományt (ez lehet nem szomszédos téglalap alakú

Szerintem mindenki hallott gyerekkorában egy ilyen mondást: Hétszer mérje meg egyszer". A programozásban ez ugyanaz. Mindig jobb átgondolni az implementációt, mielőtt időt töltesz a végrehajtásával. Gyakran osztályokat kell létrehoznod a megvalósítás során, ki kell találnod azok interakcióját. És gyakran ennek vizuális megjelenítése segíthet a probléma megoldásában a leghelyesebb módon.Itt segítünk UML.

Mi az UML?

Ha megnézed a képeket a keresőkben, egyértelművé válik, hogy UML- ez valami sémákról, nyilakról és négyzetekről szól. Az a fontos, hogy az UML a következőképpen fordítható: Egységes modellezési nyelv. Az Egységes szó itt fontos. Vagyis képeinket nem csak mi értjük meg, hanem mások is, akik ismerik az UML-t. Kiderült, hogy ez egy olyan nemzetközi nyelv a diagramok rajzolásához.

Ahogy a Wikipédia mondja

Az UML egy grafikus leíró nyelv objektummodellezéshez a szoftverfejlesztés, az üzleti folyamatok modellezése, a rendszertervezés és a szervezeti struktúrák feltérképezése területén.
A legérdekesebb dolog, amelyre nem mindenki gondol vagy sejt, az az, hogy az UML-nek vannak specifikációi. Sőt, még UML2 specifikáció is létezik. A specifikációról további információ az Object Management Group honlapján található. Valójában ez a csoport az UML specifikációk fejlesztésével foglalkozik. Az is érdekes, hogy az UML nem korlátozódik az osztályok szerkezetének leírására. Sokféle UML diagram létezik. Az UML diagramok típusainak rövid leírása megtekinthető ugyanabban a Wikipédiában: UML diagramok vagy Timur Batyrshinov videójában Az UML diagramok áttekintése. Az UML-t széles körben használják különféle folyamatok leírására is, például itt: Egyszeri bejelentkezés JWT használatával. Visszatérve az UML osztálydiagramok használatára, érdemes megjegyezni a Head First: Design Patterns című könyvet, amelyben a mintákat ugyanazok az UML diagramok illusztrálják. Kiderült, hogy az UML-t valóban használják. És kiderül, hogy alkalmazásának ismerete és megértése igen hasznos készség.

Alkalmazás

Lássuk, hogyan tud dolgozni ezzel az UML-lel az IDE-ből. IDE-ként vegye fel IntelliJ ötlet. Ha használja IntelliJ Idea Ultimate, akkor a beépülő modult "dobozból" telepítjük. UML támogatás". Lehetővé teszi gyönyörű osztálydiagramok automatikus generálását. Például a Ctrl + N billentyűkombinációval vagy a "Navigáció" -> "Osztály" menüponttal lépjen az osztályra Tömb lista. Most, keresztül helyi menü osztálynév szerint válassza a "Diagram" -> "Show diagram popup" lehetőséget. Ennek eredményeként egy gyönyörű diagramot kapunk:

De mi van akkor, ha magad akarod lerajzolni, és még az Idea Ultimate verziója sincs? Ha IntelliJ Idea Community Edition-t használunk, akkor nincs más választásunk. Ehhez meg kell értenie egy ilyen UML-séma működését. Először telepítenünk kell a Graphviz-t. Ez egy gráfvizualizációs segédprogram készlete. Az általunk használni kívánt plugin használja. A telepítés után hozzá kell adni egy könyvtárat kuka a telepített könyvtárból graphviz egy környezeti változóhoz PÁLYA. Ezután az IntelliJ Idea programban válassza a Fájl -> Beállítások menüpontot. A "Beállítások" ablakban válassza ki a "Plugins" kategóriát, kattintson a "Lerakatok tallózása" gombra, és telepítse a PlantUML integrációs bővítményt. Miért olyan jó ez PlantUML? Egy "" nevű gráfleíró nyelvet használ pont" és ez lehetővé teszi, hogy univerzálisabb legyen, hiszen ezt a nyelvet nem csak a PlantUML használja. Sőt, mindent megtehetünk, amit alább nem csak az IDE-ben, hanem a online szolgáltatás planttext.com. A PlantUML bővítmény telepítése után a "Fájl" -> "Új" menüpontban UML-diagramokat készíthetünk. Hozzunk létre egy "UML osztály" diagramot. Ennek során automatikusan létrejön egy sablon egy példával. Töröljük a tartalmát, és hozzuk létre a sajátunkat, a Habr: Class Relations cikkével felvértezve – az UML-től a kódig. És hogy megértsük, hogyan ábrázoljuk ezt a szövegben, vegyük a PlantUML kézikönyvet: plantuml osztálydiagram . Ebben a legelején van egy tábla az összefüggések leírásával:

Magukról a kapcsolatokról még itt olvashatunk: "Osztályok közötti kapcsolatok UML-ben. Példák". Ezen anyagok alapján kezdjük el elkészíteni az UML diagramunkat. Adja hozzá a következő tartalmat, amely leírja a két osztályt: @startuml osztály ArrayList ( ) osztály LinkedList ( ) @enduml Az eredmény megtekintéséhez válassza a "View" -> " Eszköz Windows" -> "PlantUML". Mindössze két négyzetet fogunk kapni, amelyek osztályokat jelölnek. Mint tudjuk, mindkét osztály megvalósítja a List interfészt. Az osztályok ezt a relációját implementációnak (realizációnak) nevezik. A szaggatott vonallal ellátott nyíl ábrázolására szolgál egy ilyen kapcsolat.. Rajzoljuk le: interfész Lista Lista< | . . ArrayList List < | . . LinkedList List - один из дочерних классов Collection . То есть он наследуется от Collection. Эта связь называется обобщением (generalization). Выглядит как стрелка с обычной непрерывной линией. Изобразим её: interface Collection Collection < | -- List Для следующего типа связи добавим в описание класса ArrayList запись о csomag privát elem tömb: ~ Object elementData Most szeretnénk megmutatni, hogy az ArrayList tartalmaz néhány objektumot. Ebben az esetben a kapcsolat típusa: összesítését(összevonás). Az aggregátum ebben az esetben az ArrayList , mert más tárgyakat tartalmaz. Az aggregációt azért választjuk, mert a listában szereplő objektumok a lista nélkül is élhetnek: nem szerves részei annak. Élettartamuk nincs a lista élettartamához kötve. A latin nyelvű egységet "összegyűjtöttnek" fordítják, azaz valamiből áll. Például az életben van egy szivattyúegység, amely egy szivattyúból és egy motorból áll. Maga az egység szétszedhető, néhány alkatrésze megmarad. Például eladni vagy behelyezni egy másik egységet. Tehát szerepel a listán. És ez az egységnél üres rombusz és folyamatos vonal formájában fejeződik ki. Fogalmazzunk így: osztály Object ( ) ArrayList o- Object Most azt akarjuk megmutatni, hogy az ArrayList-től eltérően a LinkedList osztály Node - konténereket tartalmaz, amelyek tárolt adatokra hivatkoznak. Ebben az esetben a csomópontok magának a LinkedList-nek a részét képezik, és nem élhetnek külön. A csomópont nem közvetlenül tárolt tartalom, csak hivatkozást tartalmaz rá. Például amikor hozzáadunk egy sort a LinkedList listához, akkor hozzáadunk egy új csomópontot, amely egy hivatkozást tartalmaz az adott sorra, valamint egy hivatkozást az előző és a következő csomópontra. Ezt a kapcsolattípust ún fogalmazás(fogalmazás). Egy kompozit (olyan, amely részekből áll) megjelenítéséhez egy kitöltött robikot rajzolunk, amelyhez egy folyamatos vonal vezet. Most írjuk ezt a hivatkozás szöveges megjelenítéseként: class Node ( ) LinkedList * -- Node És most meg kell tanulnunk, hogyan jelenítsünk meg egy másik fontos hivatkozástípust - függőség(függőségi kapcsolat). Akkor használatos, ha az egyik osztály egy másikat használ, míg az osztály nem tartalmazza a használt osztályt, és nem az utódja. Például a LinkedList és az ArrayList létrehozhat egy ListIteratort. Jelenítsük meg ezt pontozott nyilakként: Class ListIterator ListIterator< . . . ArrayList : create ListIterator < . . . LinkedList : create Выглядеть после всего это будет следующим образом:

Annyit részletezhet, amennyire szüksége van. Az összes megnevezés itt található: "PlantUML - Osztálydiagram". Ezenkívül nincs semmi természetfeletti egy ilyen sémában, és amikor a feladatain dolgozik, gyorsan megrajzolhatja kézzel. Ez fejleszti az alkalmazásarchitektúra átgondolásának készségeit, és segít az osztályszerkezeti hibák korai felismerésében, nem pedig azután, hogy már egy napot töltött a rossz modell megvalósításával. Szerintem ez jó ok arra, hogy kipróbáljam?)

Automatizálás

A PlantUML diagramok automatikus generálására különféle módok állnak rendelkezésre. Például be ötleteket Van egy SketchIT bővítmény, de nem rajzolja meg őket megfelelően. Például az interfészek megvalósítása helytelenül van megrajzolva (öröklődésként jelenik meg). Vannak online példák is arra, hogyan építsd be ezt a projekted életciklusába. Mondjuk azért Maven van egy példa az uml-java-docklet használatára. Ennek bemutatásához használjuk a Maven archetípust egy Maven projekt gyors létrehozásához. Végezzük el a parancsot: mvn archetype:generate A szűrő kiválasztásának kérdésére ( Válasszon egy számot, vagy alkalmazzon szűrőt) hagyja el az alapértelmezett beállítást az Enter megnyomásával. mindig az lesz" maven-archetype-quickstart". Kiválasztjuk a legújabb verziót. Ezután válaszoljon a kérdésekre, és fejezze be a projekt létrehozását:

Mivel ennek a cikknek a középpontjában nem a Maven áll, a Mavennel kapcsolatos kérdéseire a Maven Users Centerben találhat választ. A generált projektben nyissa meg a projektleíró fájlt szerkesztésre, pom.xml. Belemásoljuk az uml-java-docklet telepítés leírásának tartalmát. A leírásban használt műtárgy nem található a Maven Central adattárában. De nekem ezzel működött: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. Vagyis abban a leírásban csak ki kell cserélni csoportazonosító Val vel " info.leadinglight" tovább " com.chfourie"és tedd be a verziót" 1.0.0 Ezt követően a fájlt tartalmazó könyvtárban tudjuk végrehajtani pom.xml ezek a parancsok: mvn clean install és mvn javadoc:javadoc . Most, ha megnyitjuk a generált dokumentációt (explorer target\site\apidocs\index.html), UML diagramokat fogunk látni. Egyébként itt már helyesen megjelenik a megvalósítás)

Következtetés

Mint látható, az UML lehetővé teszi az alkalmazás szerkezetének megjelenítését. Ezenkívül az UML nem korlátozódik erre. Az UML segítségével leírhat különféle folyamatokat a vállalaton belül, vagy leírhatja azt az üzleti folyamatot, amelyen belül az Ön által írt funkció működik. Ön dönti el, hogy az UML mennyire hasznos Önnek személyesen, de mindenképpen hasznos lesz rászánni az időt és részletesebben megismerni. #Viacheslav A bejegyzés orosz verziója: UML diagram Java a CodeGym-en

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: