2.Szoftverfejlesztés
2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA Szoftverfejlesztés: magában foglalja mindazon elveket, módszereket és eszközöket, amelyek célja a programok megbízható és hatékony elkészítésének támogatása.
Szoftver életciklusa: a szoftver teljes élettartamát fogja át, a kezdeti elképzelésektől egészen a végső elavulásig. Egy egyszerűbb felbontásban a szoftver életciklusának a főbb lépései: •
Követelmények meghatározása.
•
Analízis, specifikáció elkészítése.
•
Tervezés.
•
Implementáció.
•
Tesztelés.
•
Használat o tapasztalat o módosítás o tesztelés o használat
Szoftverfejlesztés piramisa: Ötlet, követelményspecifikáció Struktúraanalízis Rendszertervezés Implementáció, kódolás A piramis az absztrakciós szint jelzésére, az elvégzett munka jellegének kiemelésére is alkalmas. A felső szinten absztraktabb, emberi heurisztikát igénylő műveletek állnak, míg az alsó szinten a rutintevékenységek vannak.
A szoftver fejlesztést csak hatékony segédeszközökkel lehet a mai igényeknek megfelelően elvégezni!! Az eszközök lehetnek számítógépi segédprogramok (pl.: fordítók) de magukban foglalják a módszertani segédeszközöket is.
A szoftverfejlesztéi módszerek Brooks féle sajátos vonásai: •
Komplexitás : a szoftver az egymáshoz kapcsolódó komplex tevékenységek, megkötöttségek és struktúrák leírására, leképezésére szolgál. A szoftver tükrözi a valós világ komplexitását, a tervező a valóságot különböző összetettségi szintekre képezheti le.
•
Illeszthetőség : a szoftver nem önmagában működik, hanem meglévő hardver és szoftver környezetben.
•
Rugalmasság: a valós világnak az alkalmazási területet érintő változásait követni kell, ami a módosítások gyorsaságát és áttekinthetőségét igényli.
•
Elvontság: a leírt programkód alapján az ember nem tudja érzékelni a működést, a megvalósulást (legalábbis bizonyos szoftver méret felett). Így nem lehet közvetlenül ellenőrizni a szoftver helyességét, csak próbálkozással, ami viszont nem ad abszolút megbízhatóságot.
A szoftvertervezés: a szoftver fejlesztésének élettörténetébe tartozó folyamat. A tervezőnek számos és különböző forrásból származó információ alapján kell elkészítenie a szoftver tervét, specifikációját. A rendszertervezőnek átfogó ismeretekkel kell rendelkeznie több szakterületről is. Ez utóbbiak indokoltságából eredően a szoftverfejlesztés csoportmunkán alapul. A szoftvertervezés általános modellje:
Követelményanalízis
Megkötések, Keretfeltételek,
Egyedi döntések a tapasztalatok alapján
Rendszertervezés
Szoftverspecifikáció
A különböző tervezési módszerek a tervezési lépéseket, azok célját és sorrendjét adják meg. A Tervezés eredménye valamilyen modell, formalizmus. A modellek a valóság különböző összetevőit emelik ki. A tervezés szemléleti vetületei: •
Strukturális vetület: a rendszer objektumai között fennálló statikus kapcsolatokat írja le. Ez a vetület foglalja magában a különböző programegységek és hivatkozási kapcsolataik megadását.
•
Viselkedési vetület: a rendszerben bekövetkező események és azok kapcsolatait ábrázolja.
•
Funkcionális vetület: az egyes eseményeket és azok belső működését reprezentálja, vagyis megadja, hogy milyen lépéseket is jelentenek azok.
•
Adatorientált vetület: az adatok struktúráját és az adatok közötti kapcsolatokat statikusan szemlélteti.
2.2. A funkcióorientált vetületet tartalmazó módszerek, modellek fajtái: • • • • • • •
HIPO Jackson-féle strukturált tervezés SSA/DT SSADM SADT Petri SDT hálók Objektumorientált eszközök
2.2.1. HIPO HIERARCHIKUSFUNKCIONÁLIS TERVEZÉS Jellemzői: •
Hierarchikus struktúrát alkot.
•
A tervezés folyamata felülről-lefelé halad (top-down).
•
A tervezés elemei: - észlelés, - elemi folyamatok IO struktúrába rendezése, - az IO struktúra táblázatban történő megjelenítése. - a táblázatból szöveges leírás létrehozása.
•
A tervezés szintjei: - első szint (rendszerszint): emberi nyelven megírt specifikáció, - második szint (programodulszint: - harmadik szint: ): a program modulokból a program előállítása. Forrásnyelvű program áll elő.
•
A HIPO tervezési modell dokumentációjának a felbontási finomsága szerinti fokozatai: - Összetétel-diagram: a főbb modulokat és azok kapcsolatát tartalmazza. - Áttekintő diagram: megadja a modulhoz tartozó be- és kimenő adategységeket, valamint a modulon belüli tevékenységek áttekintő leírását. - Részletező diagram: az adatok és a végrehajtandó utasítások részletes specifikációját tartalmazza.
2.2.2. JACKSON-FÉLE RENDSZERFEJLESZTÉS (JSD) A szoftverfejlesztési módszer sokban közös a Jackson-féle strukturált programozási elvvel (JSP). A JSP egy programozási technika, a JSD pedig szoftverfejlesztési koncepció. A fejlesztési leírás struktúradiagrammal történik. A struktúradiagram elemei:
•
Elemi komponensek : egységként kezelt objektumok.
•
Összetett komponensek:
•
Szekvencia: a végrehajtási sorrendet jelenti.
•
Szelekció: a végrehajtásban elágazás.
•
Iteráció: hurok, ciklus.
A JSP kétféle struktúradiagramot támogat: a. Egyedstruktúra-diagram: az egyes adatokat tároló objektumokat írja le - az input-output adatok szerkezetét adja meg-. Az adatszerkezetben előfordulhatnak többértékű és összetett adatelemek is. Az időbeliségre semmilyen információt nem jelenít meg.
Programstruktúra-diagram: a funkciómodulokat és kapcsolataikat ábrázolja.
A JSP lépéseinek megtervezése, lépései: • • • •
Adatstruktúra-diagram kialakítása. Programstruktúra-diagram elkészítése. Atomi műveletek meghatározása és hozzárendelése a diagramegységekhez. Az utasításszöveg elkészítése az egyes atomi műveletekhez.
A JSD a JSP -vel szemben az analízist-tervezést támogató módszertan! Középpontjában a rendszerben lezajló cselekvések, tevékenységek állnak. A JSD lépése, struktúrája: •
Követelményspecifikáció
•
Modellezési fázis: a tervező a követelmények elemzése alapján meghatározza a körben szereplő egyedeket.
•
Egyedi folyamatok leírása: időbeliségének meghatározása.
•
Rendszer-modellezési fázis: Egyedstruktúradiagram elkészítése. Ebben a diagramban a szekvencia időbeli egymásutániságot jelent.
•
Rendszerleírás: Az adatok közös felhasználása alapján az egyedek közötti kapcsolatok meghatározása. A kapcsolatrendszer leírására a rendszerspecifikációs-diagram szolgál. Az egyedek kapcsolatait leírják: - Adatfolyam-diagram: az egyik egyed által előállított adatot a másik egyed felhasználja bemenő adatként. - Állapotvektor-diagram: az egyedek vektorokat használnak állapotaik leírására, amelyeket elolvasva más egyedek is tudomást szerezhetnek az egyed helyzetéről.
az
egyedekhez
kapcsolódó
Adatfolyam-diagram (elvi sémája) Tevékenység A
Adat
Tevékenység A
Állapotvektor-diagram Tevékenység A
• •
Adat
Implementációs fázis: fizikai megvalósítás Futtatható alkalmazás
Tevékenység A
folyamatok
2.3. STRUKTURÁLT RENDSZERANALÍZIS ÉS STRUKTURÁLT TERVEZÉS (SSA/DT) A módszer az 1970-es években fejlődött ki. A módszernek két fő komponense van az analízis - és a tervezésrész. •
Az analízisrész a modellezett problémakör absztrakt leírását szolgálja.
•
A tervezésrész során a megvalósítás részleteit dolgozzák ki.
Az SSA/DT módszer a felülről-lefelé ( top-down ) stratégián alapul, a kezdeti globalitás felől az egyre részletesebb absztrakció felé halad a tervezés. A módszer négy lépésből áll: •
•
•
Az első két lépés képezi az analízisrészt, míg a többi a tervezési fázishoz tartozik. Az analízisrész célja a rendszer funkcionális leírása, annak megadása, mikor, mi történik. Az elemzés eredménye az SSA/DT adatfolyam-diagramban ( data-flow " DFD ") kerül rögzítésre.
SSA/DT adatfolyam-diagram
• A DFD folyamatot leíró négy alapelem: - kör (vagy ellipszis), amely egy tevékenységet, műveletet jelképez. - téglalap, amely a külső információforrást, vagy nyelőt jelenti. - párhuzamos vonal az adatállományt jelöli. - irányított él, az adat, az információ áramlását mutatja be. •
A DFD szemléletesen ábrázolja a modellezett rendszer funkcióit, az egymás között fennálló kapcsolatokat.
•
A tervezési lépések finomítása, a funkciók, adatelemek több szintre tagolódása szükség szerint adódik. A több szintű tagozódás kezelhetősége érdekében segítséget jelent a nyilvántartás, adatszótár.
•
A harmadik lépésben a globális DFD -t felbontják az önálló, azonosított művelet soroknak megfelelően. Így a modell tagoltabbá válik.
•
A negyedik lépésben a DFD -ből struktúradiagramot (strukture chart " SC") készítenek, amely a szoftverrendszer belső struktúráját, a definiálandó eljárásokat és azok hívási kapcsolatait írja le.
SSA/DT Struktúradiagram • A struktúraleírás ( SC) grafikai alapelemei: - téglalap (kör, ellipszis): eljárást azonosít. - él: eljárás meghívását jelöli. - nyíl: az adatáramlás irányát mutatja. •
Az SSA/DT tervezési fázisa ellenőrzéssel, az átfedések és elletmondások kiküszöbölésével zárul.
ÁLLAPOTÁTMENETEK KEZELÉSE, STD DIAGRAM ÉS STM MÁTRIX Állapotátmenet-diagram (STD): Elsősorban vezérlő-irányító rendszerek különböző állapotaiban bekövetkező rendszer viselkedések dinamikus vetületének leírására szolgál. Ezen rendszerek véges automaták (FSM) köréhez tartoznak. Az FSM rendszereknek véges számú különböző állapota lehetséges, minden idő pillanatban egy lehetséges állapotban van a rendszer.
A rendszer állapota, ebből eredő viselkedése az idő múlásával megváltozhat. Az új állapot a rendszer aktuális állapotától, a környezet bemenő adataitól függ. A rendszer az állapota megváltozásával párhuzamosan kimenő adatokat is generálhat. A diagram vázolja a rendszer lehetséges állapotait, a hozzájuk kapcsolódó tevékenységeket. Nem tájékoztat azonban a műveletek megvalósításáról, a műveletek pontos ütemezéséről. Az STD elsősorban rendszerelemzési, analizációs módszer. Az STD alkotóelemei: •
Állapot: téglalap, vagy ellipszis jelképezi, amely jelben megadják az állapotjelző leírását.
•
Állapotátmenetek: nyilak jelképezik.
•
Átmenet feltételei: szöveges formában adnak meg az ábrában.
•
Átmenetnél bekövetkező tevékenységek: az átmenethez tartozó nyílnál adnak meg.
Állapotátmenet-diagram (STD)
Átmenetmátrix (STM): a táblázat sorai a rendszer lehetséges állapotait, az oszlopai pedig az állapotot kiváltó eseményeket rögzíti. A táblázat célja annak kijelölése, hogy a rendszer egyes állapotaiban milyen események következhetnek be. Az STD és az STM hátránya: olyan komplex rendszerek modellezése esetén, amikor sok rendszerállapot és számtalan akció lehetséges, valamint nagyszámú lehet az egyes rendszerállapothoz tartozó bemenő adat (feltétel), a diagram, táblázat ábrázolása nagyméretűvé, nehezen áttekinthetővé válik.