Rendszer-modellezés, modellezési technikák System engineering and modelling Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 8. Roger S. Pressman: Software Engineering, 5th e. chapter 10, 11, 12, 13. 2
A rendszermodellezés célja A megvalósítandó rendszer megértése rendszer lehatárolása m!ködés modellezése Modellek létrehozása kommunikáció elemzés tervezés 3 A rendszer-modellezés folyamata "Valóság" (Vállalati folyamatok) Percepció Felhasználó Validálás Tudás kinyerés Koncepcionális modell Modellezés Informatikai elemz! 4
Rendszerszer! megközelítés Rendszer entitások attribútumai közötti kapcsolatok Vizsgálati szempontok Mely attribútumok lényegesek? Milyenek az entitások kapcsolatai? Hol vannak a rendszer határai? Mi a rendszer feladata, szerepe? Mivel jár az alkotó részek egy bizonyos elrendezése? 5 Rendszerszer! megközelítés (folyt.) Output definiálása Határok meghatározása Nem lineáris m!ködés felderítése Szabályozási folyamatok meghatározása Több szempontú megközelítés 6
Modellezés Modellek különböz" néz"pontokból Küls" néz"pont rendszer környezete, kontextus Viselkedési megközelítés Szerkezeti megközelítés 7 Rendszermodell hierarchia "Világ" nézet Domén nézet Elem nézet Részlet nézet 8
Üzleti folyamatok modellezése Cél: üzleti tevékenység hatékony információ felhasználásának kialakítása Elemzési területek adatok architektúrája alkalmazások architektúrája technológiai infrastruktúra 9 Üzleti folyamatok modellezése (folyt.) A vállalat Egy üzletág Információs stratégia Egy üzletág Info. feld. terület Üzletági elemzés Információs rendszer Implementációs részletek Üzleti r. rendszerterv Software engineering 10
Termék modellek Felhasználói igények megjelenítése termékjellemz"kként Termék architektúra Technológia, infrastruktúra 11 Termék modellek (folyt.) A teljes termék Egy funkció Követelmény specifikáció Hardver Szoftver Feld. követ. Komponens nézet Adatok Funkció Prg. k. Viselkedés Elemzési és tervezési modellezés Komponens konstrukció és integrálás Software engineering 12
Modellezési alapelvek A probléma információs aspektusának megjelenítése és megértése A szoftver által végrehajtandó funkciók definiálása A küls" események hatására bekövetkez" viselkedés megjelenítése A modellek részleteinek réteges (hierarchikus) kifejtése Az elemzés célja az információk megjelenítése implementációs szinten 13 Modell típusok Adatfeldolgozási modellek Kompozíciós modellek Architektúrális modellek Klasszifikációs modellek Stimulus-válasz modellek 14
Környezeti modellek A környezeti (kontextus) modellek a rendszer m!ködési környezetét írják le a rendszer határain kívül Szociális és szervezeti vonatkozások Architektúrális modellek kapcsolat más rendszerekkel 15 System Model Template Felhasználói felület Folyamatok és irányítási funkciók Bemenet Kimenet Karbantartás, teszt 16
Folyamat modellek Folyamat modellek A rendszer átfogó folyamatai Rendszer által támogatott folyamatok Adatfolyam modellek folyamatok, folyamat-állomások közötti adatáramlás 17 Viselkedési modellek A rendszer viselkedésének, m!ködésének a leírása Alkalmazott megoldások (különböz" néz"pontok) adatfeldolgozási modellek állapotgép modellek 18
Adatfeldolgozási modellek Adatfolyam diagramok (Data Flow Diagram) feldolgozási állomások (transzformációk) adatáramlás a rendszerben Könnyen érthet" jelölésrendszer 19 Adatfolyam diagramok Funkcionális perspektíva Folyamatok adat igénye Adat kapcsolatok A B F Szintenkénti finomítás A V X Z I K J B W Y X Z Y 20
DFD példa környezeti elem 1 2.1 2 els! szint" eljárás eljárás 2.1 D1 adattár 1 D2/1 adattár 2 2.2 környezeti elem 2 eljárás 2.2 D2/2 adattár 3 3 2.3 eljárás 3 eljárás 2.3 21 Állapotgép modellek A rendszer viselkedésének leírása a küls" és bels" eseményekre adott válaszokkal Gyakran alkalmazzák valósidej! rendszereknél, felhasználói felületeknél (eseményvezérelt megközelítés) Rendszerállapotok és állapotátmentek 22
Állapotátmenet diagramok Állapottér dekompozíció Csomópontok állapot spec. tevékenységek (érkezés, elhagyás) Élek állapotátmenetek események (feltételek) üzenetküldés (akció) 23 Állapotátmenet diagram példa Jelszó1 **** Jelszó2 **** Regisztráció start Main OK disabled [pwd2=""] OK enabled [pwd1=""] [pwd1!=pwd2] Pwd 1 Different [pwd1!=""] [pwd2=""] All clear [pwd1=pwd2] [pwd1!=pwd2] [pwd2!=pwd1] [pwd2!=""] [pwd1=pwd2] [pwd2=""] Pwd 2 [pwd2=pwd1] Same [pwd1=""] Kilépés OK OK clicked Exit clicked OK clicked OK2 clicked Success feedback OK3 clicked exit Password missmatch 24
Adatmodellezés Rendszer által kezelt adatok szerkezetének leírása Egyed-kapcsolat-attribútum modellek Adatbázis kezel" alkalmazások relációs adatbázisok 25 Adatelemek Adatobjektumok küls" (valóságos) entitás Attribútumok adatobjektumok tulajdonságai felhasználás azonosítás leírás kapcsolat Kapcsolatok kétirányú szerepek, relációk számosság és modalitás 26
Számosság és modalitás Számosság (a kapcsolatban résztvev" adatobjektum megjelenések száma) Egy-egy kapcsolat Egy-több kapcsolat Több-több kapcsolat Modalitás (a reláció szükségessége) Kötelez" Opcionális 27 Adatobjektum példa Adatobjektumok Attribútumok Név Lakcím Életkor Vezet!i engedély száma Kapcsolatok Autója Tulajdonosa Gyártmány Modell Szín Rendszám 28
Egyed-kapcsolat diagramok Adatmodellek kedvelt leírási formája Elemei Adatobjektumok osztályai (egyedtípusok) Kapcsolatok számosság/modalitás Attributumok eltér" részletesség 29 Egyed-kapcsolat diagram jelölések Különféle jelölés rendszerek Chen Egyed Reláció Egyed Attrib. Attrib. Attrib. Attrib. Számosság Kötelez! Opcionális 30
Egyed-kapcsolat diagram példa MERISE jelölés 31 Adatszótárak Adatmodellben használt nevek szótára egyed és attribútum nevek definíció (típus) felhasználás, hivatkozások formátum adatok Egyértelm!ség, duplikálás elkerülése CASE támogatás 32
Struktúrált módszerek Rendszerszervezési és szoftverfolyamat megközelítés 70-es, 80-as évek Jellemz"k meghatározottság pontos dokumentációs és jelölésrendszer termék szemlélet 33 Struktúrált módszerek (folyt.) A módszer(tan) magábafoglalja a rendszermodellezést Definiálják az alkalmazható modelltípusokat, jelölésrendszereket, alkalmazási útmutatókat tartalmaznak CASE eszközök tartalmazzák a modellezési segédeszközöket 34
Struktúrált módszerek (folyt.) Struktúrált módszerek hiányosságai nem modellezik a nemfunkcionális követelményeket a módszer alkalmassága nem ítélhet" meg túl sok dokumentáció keletkezik a végfelhasználók számára túl részletes és nehezen megérthet" modellek 35 CASE támogatás A módszerhez csatlakozó szoftverfolyamat tevékenységeinek konzisztens támogatása modellezés, tervezés, kódgenerálás, tesztelés Egységes követelmény specifikálás és rendszertervezés A módszerhez tartozó jelölésrendszerek támogatása Különböz" nézetek szerinti modellek összekapcsolása 36
CASE támogatás (folyt.) CASE eszköz komponensek diagram editorok modell ellen"rzés fejlesztési minta-tár adatszótár!rlap és jelentés tervez" eszközök kód generátorok 37 CASE IDE példa WinDev 38
CASE IDE példa (folyt.) lekérdezés tervez" felületek Omnis Studio WinDev 39 Tervezési modellek A tervezési fázis célja az implementációt lehet"vé tév", részletes modellek megalkotása Szoftver tervezési modellek adat modellek architektúra modellek interfész modellek komponens modellek 40
Tervezési szintek Komponens szint! tervezés Interfész tervezés Folyamat specifikáció Állapotátmenet diagram Vezérlési specifikáció Adatfolyam diagram Állapotátmenet diagram Vezérlési specifikáció Architektúrális tervezés Adatfolyam diagram Adat tervezés Egyed-kapcsolat diagram Adatszótár 41 Tervezés és szoftvermin"ség Architektúra felismerhet" tervezési minta megfelel" komponensek evolúciós fejlesztés lehet"sége Moduláris tervezés funkcionális modulok Megfelel" reprezentáció A valós adatobjektumokhoz illeszked" adatszerkezetek Funkcionálisan független komponensek Kapcsolatok komplexitását csökkent" interfészek Módszeres tervezés a követelményspecifikáció alapján 42
Tervezési koncepciók Megválaszolandó kérdések Hogyan kell részekre, komponensekre bontani a szoftvert? Mi választja el a funkcionális vagy adatszerkezeti részleteket a koncepcionális modellekt"l? Vannek-e a szoftverek technikai min"ségét definiáló kritériumok? Tervezési koncepciók különböz" absztrakciós szintek használata lépésenkénti finomítás modularitás alkalmazása architektúrális minták alkalmazása vezérlési hierarchia kialakítása 43 Modularitás Modulokra bontás, modulok integrálása Kognitív komplexitás kezelése Modulszám hatása C( p 1 ) > C(p 2 ) " E( p 1 ) > E(p 2 ) C( p 1 + p 2 ) > C(p 1 ) + C( p 2 ) " E(p 1 + p 2 ) > E( p 1 ) + E(p 2 ) Modul költség Integrációs költség Összköltség Modulok száma 44
Szoftver architektúra A rendszert alkotó komponensek és interakcióik hierarchikus szerkezete A részletes tervezési tevékenység kerete Architektúrális tervezési minták Szoftver architektúra jellemz"i struktúrális jellemz"k komponensek, package-ek, interakciók nem funkcionális jellemz"k teljesítmény, megbízhatóság,... 45 Végrehajtási hierarchia Program hierarchia hívási-visszatérési architektúra metrikák mélység szélesség fan-in, fan-out láthatóság 46
Hívási gráf példa sgi ProDev 47 Információ elrejtés Modulok bels" információi nem hozzáférhet"k olyan modulokból melyekben az adott információ nem szükséges független, önálló modulok interfészek 48
Moduláris tervezési elvek Funkcionális függetlenség modularitás, absztrakció, info elrejtés Kritériumok Kohézió kevés, szorosan kapcsolódó funkció Csatolás alacsony fokú adat, vezérlési kapcsolat 49 Moduláris tervezési elvek (folyt.) Kohézió növelése, kapcsolás csökkentése modulok felbontása/egyesítése Fan-out csökkentése Modulban lezajló döntések hatásának korlátozása a modul hatókörére Interfészek komplexitásának csökkentése 50
Összefoglalás Rendszerszer! megközelítés Rendszermodell hierarchia Modellezési néz"pontok folyamat-, adat-, viselkedési-, architektúrális modellek Struktúrált elemzési módszerek Tervezési szintek Tervezési elvek 51