Kihagyás

A modellezés alapelvei

Az előadás videója elérhető a itt.

Vizuális modellezés

Egy teljes szoftverfejlesztési ciklus során elvégzendő tevékenységek általában különböző jellegűek, például a kezdeti fázisokban a tervezés során sokszor magasabb absztrakciókban gondolkodunk, míg a fejlesztési ciklus végére konkrét implementáció szintű problémákat kell megoldani.

Objektumorientált rendszerek fejlesztésére különösen jellemző, hogy az analízis szintű gondolkodást kiegészíti a tervezés szintű gondolkodás.

Egy szoftver fejlesztésének korai fázisaiban a megvalósítandó rendszer feladatait szeretnénk feltérképezni, azok funkcionális és egyéb jellegű követelményeivel. Más szóval, az analízis szintű megközelítésben a kérdés ilyenkor az, hogy a rendszernek mit kellene tennie. Ilyenkor határozzuk meg a szoftver (formális és informális) specifikációját, majd abból kiindulva kezdjük magasabb szintű absztrakciók segítségével előállítani a rendszer modelljét, amely a konkrét megvalósítás alapját fogja képezni.

A meglévő (és folyamatosan fejlődő) modell alapján a tervezés során a szoftver konkrét implementációjához vezető utat adjuk meg, ahol a felmerülő problémákat többnyire a valós világból vett ötletekkel próbáljuk leírni valamilyen vizuális, grafikai eszközzel, kiragadva csupán a rendszer lényeges részeit. Ilyenkor már arra keressük a választ, hogy a meghatározott specifikációt hogyan valósítsa meg a rendszer.

Az analízis és tervezési tevékenységek hatékony és célszerű sorrendjét és módját különböző módszerekkel és folyamatokkal kell vezérelni.

Miért modellezünk?

Hogyan lehet hatékonyan elkészíteni egy nagy méretű szoftverrendszert? Ahhoz, hogy ez a cél kezelhető legyen emberi mértékű befogadóképességgel, a megvalósítandó rendszert kisebb és a célnak megfelelő módon kell ábrázolnunk. Valójában ilyenkor a rendszer egy modelljét vizsgáljuk, és azon dolgozunk a végső megvalósításig. A modell egy adott probléma leírása a valós világból vett ötletekkel, ami azt jelenti, hogy a probléma kezelését a már megszokott problémamegoldó képességeinkre bízzuk annak érdekében, hogy azt minél hatékonyabban (ösztönszerűen) tegyük. Úgy is mondhatnánk, hogy amíg a szoftver teljes és abszolút specifikációja a számítógép számára maga a forráskód, addig nekünk embereknek egy könnyebben emészthető formában, a modellben tálaljuk.

Modellezéskor mindig a rendszer lényeges részeit vizsgálhatjuk, azokat, amelyek a részfeladat megoldáshoz éppen a legalkalmasabbak. Ezzel egyidejűleg a skálázhatóság problémáját is megoldjuk, ugyanis egy valós méretű szoftverrendszert (gondoljuk itt csak egy teljes banki ügyviteli-, vagy egy reptéri irányító szoftverre) kisebb, ember által is feldolgozható részekre (nézetekre) bontjuk. Ezzel a módszerrel gyakorlatilag tetszőleges komplexitású rendszer modellezhető.

A szoftverfejlesztés, mint modellezés, akkor áll legközelebb az emberi felfogóképességeinkhez, amikor vizuális eszközöket használunk, azaz szabványos grafikai eszközökkel végezzük a modellezést. Egy találó hasonlat szerint "1 bitmap = 1 megaword", tehát ábrák segítségével sokszor könnyebben megérthető számunkra egy-egy probléma vagy megoldás.

Szokás a szoftver analízis és tervezés (modellezés) folyamatait sokkal inkább hasonlítani a mérnöki tudományokhoz, mint matematikai megközelítéshez. A mérnökök által használt tervezési módszerek sikeresen alkalmazhatók "szoftvermérnökök" esetében is. Jó példa erre az építészet. Egy felhőkarcolót építési tervdokumentáció nélkül képtelenség elkezdeni, míg egy kisebb szerszámtárolóhoz sokkal szerényebb terv is elegendő. Így van ez a szoftver esetében is: kis "példa programhoz" az ember nyilván nem készít tervet, viszont nagy méretű és bonyolultságú rendszerhez annál inkább. Mint ahogy az építészetben is több különböző szempont szerint kell a terveket elkészíteni (statikai, elektromos, stb.), a szoftvertervezésnél is több "nézet" segítségével írjuk le a rendszert (szerkezeti, viselkedési, használati eset).

A fentieken kívül még számos előnye van a vizuális modellezésnek, ilyenek a következők:

  • Alkalmas üzleti folyamatok leírására is (forráskód mentesen).
  • Esettanulmányokat ad a felhasználó szempontjából. Ez azt jelenti, hogy egy nem szoftver szakember is könnyen megértheti bizonyos részeit a modellnek.
  • Jó kommunikációs eszközt képez a szoftver fejlesztésében résztvevő szereplők között: mérnökök, kódolók, tesztelők, menedzserek, a megrendelő, jogászok, …
  • Komlpexitás kezelése egyszerűbb, hiszen nem veszünk el a részletekben.
  • Fejlesztési idő és rizikó csökkenthető általa, amely nagy projektek esetében nem elhanyagolható (anyagi) szempont.
  • Szoftver architektúra definiálása egyszerűbb. A szoftver felépítését több szemszögből lehet megjeleníteni.
  • Szoftver újrafelhasználhatóság alapjait biztosítja. Az objektumorientáltság hagyományos előnyein kívül (öröklődés, egységbezárás), itt még jobban jellemző az újrafelhasználhatóság, csak nagyobb méretekben (szoftverkomponensek).

Utolsó frissítés: 2021-05-04 07:53:32