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 3 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 4
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! 5 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? 6
Rendszer leírás Rendszer komponensek Komponensek kapcsolatai Kapcsolatok által kialakított szerkezet Komponensek interakciói Folyamatok Holisztikus tulajdonságok A rendszer azonosítói Környezet Érték és cél koncepciók 7 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 8
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 9 Hierarchikus szerkezetek Elemek különböz" szint! aggregációja elem komponens részrendszer teljes rendszer Szintek komplexitás szerepek bels" határok 10
Rendszermodell hierarchia "Világ" nézet Domén nézet Elem nézet Részlet nézet 11 Ü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 12
Ü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 13 Termék modellek Felhasználói igények megjelenítése termékjellemz"kként Termék architektúra Technológia, infrastruktúra 14
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 15 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 16
Hard és soft tulajdonságok hard egyértelm!en definiálható, mérhet", objektíven értékelhet" soft nincs rögzített definíció, szubjektív értékelés prioritások (érték rendszer) konfliktusok 17 Szoftver-folyamat és modellezés Funkcionalitás és technológia szétválasztása Implementációs modellezési szintek Platform független (koncepcionális) domén modellek üzleti modellek Platform specifikus modellek architekturális modellek implementációs (fizikai) modellek 18
Modell típusok Adatfeldolgozási modellek Kompozíciós modellek Architektúrális modellek Klasszifikációs modellek Stimulus-válasz modellek 19 Modellek grafikus reprezentációja Modell elemek, kontrukciók, kapcsolatok leképzése grafikus reprezentációkká Mentális modellek létrehozása csatorna sávszélessége preattentív feldolgozás mintázat felismerés megfelel" geometriai és topológiai elrendezés másodlagos szerkezet 20
Modellek grafikus reprezentációja 21 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 22
System Model Template Felhasználói felület Folyamatok és irányítási funkciók Bemenet Kimenet Karbantartás, teszt 23 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 24
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 25 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 26
DFD-k mögötti metafora A rendszer egy ipari üzem folyamatok szerel"szalag alapanyag források késztermék raktárak 27 Funkcionális perspektíva Folyamatok adat igénye Adat-kapcsolatok Szintenkénti finomítás Adatfolyam diagramok A F B A V X Z I K J B W Y X Z Y 28
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 29 Á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 30
Az állapotgépek mögötti metaforák Forrás-út-cél séma Állapottér pontjai forrás és cél is lehet egyszerre Állapot átmenetek (utak) Konténer séma szuperállapotok 31 Á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ó) 32
Á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 33 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 34
Egyed-kapcsolat modellek metaforája Konténer séma egyedek attribútumokat tartalmaznak Kapcsolat séma egyedek közötti relációk Adatmodellezéskor az egyedkapcsolat konstrukció meta modellként m!ködik instanciálás 35 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 36
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 37 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 38
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 39 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 40
Egyed-kapcsolat diagram példa MERISE jelölés 41 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 42
Tervezés, design Kognitív tevékenység fennálló helyzet kívánatossá alakítása probléma megoldási tevékenység rosszul struktúrált problémák analízis + szintézis + értékelés kielégít" megoldások (vs. opt.) opportunisztikus dekompozíció, struktúrálás magkoncepció 43 Tervezés, design (folyt.) Design decisions Célok (Taszk) Design space State DESIGN D D Lehet!ségek (Eszközök) F SP DD: Desirable for Designer DC: Desirable for Customer SP: Still Posible D C Conceivable outcomes 44
A tervezési folyamat Ötletek (nyelv) Cél (nyelv) Tervezési tevékenység Eszközök Reprezentációk (nyelv) Tudás (nyelv) 45 Szoftver tervezés F" kérdések: Hogyan kell egy programot, rendszert egy robusztus, tesztelt, dokumentált, támogatott termékként létrehozni? Hogyan lehet intellektuálisan kezelni az igen nagy komplexitást? 46
Szoftver tervezés (folyt.) Két réteg szoftver struktúrák mutatott, érzékelhet" jellemz"k Problémák implicit tervezési döntések tervezés szétken"dése az életcikluson eltér" nyelvek, reprezentációk domén függ" technikák dokumentálatlan korábbi tervezési tapasztalat nem megfelel" tervezési környezetek 47 Tervezési paradigmák El"író tervezési módszerek szoftver módszertanok top-down, finomítás Jelölés rendszerek tervezési formalizmusok Tapasztalati tudás tervezési minták HCI tervezés bottom-up, cognitive engineering 48
Modern tervezési módszerek Agilis módszerek participatory design (felhasználó bevonása) tesztelés-vezérelt fejlesztés design a teljes életciklusban Komponens-alapú tervezés újra felhasználható, standard komponensek, rendszer integrálás 49 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 50
Tervezési koncepciók 51 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 52
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 53 Hívási gráf példa sgi ProDev 54
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 55 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 56
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 57 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 58
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 59 CASE IDE példa WinDev 60
CASE IDE példa (folyt.) lekérdezés tervez" felületek Omnis Studio WinDev 61 Ö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 62