Rendszer-modellezés, modellezési technikák System engineering and modelling
Szoftver-technológia I.
Szoftver-technológia I.
Irodalom
• Ian Sommerville: Software
Engineering, 7th e. chapter 8.
• Roger S. Pressman: Software
Engineering, 5th e. chapter 10, 11, 12, 13.
2
Szoftver-technológia I.
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
Percepció
"Valóság" (Vállalati folyamatok)
Felhasználó
ás
ál id al
V
Koncepcionális modell
Modellezés
Tudás kinyerés
Szoftver-technológia I.
A rendszer-modellezés folyamata
Informatikai elemz!
4
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Rendszermodell hierarchia "Világ" nézet
Domén nézet
Elem nézet
Részlet nézet
8
Szoftver-technológia I.
Ü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
A vállalat Információs stratégia Egy üzletág
Egy üzletág Info. feld. terület
Üzletági elemzés
Információs rendszer Üzleti r. rendszerterv
Implementációs részletek
Software engineering
Szoftver-technológia I.
Üzleti folyamatok modellezése (folyt.)
10
Termék modellek
Szoftver-technológia I.
• 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.)
Szoftver-technológia I.
A teljes termék Követelmény specifikáció Egy funkció
Hardver
Szoftver Komponens nézet Feld. követ.
Funkció Prg. k.
Viselkedés Elemzési és tervezési modellezés
Komponens konstrukció és integrálás
Software engineering
Adatok
12
Szoftver-technológia I.
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
Szoftver-technológia I.
Modell típusok
• Adatfeldolgozási modellek • Kompozíciós modellek • Architektúrális modellek • Klasszifikációs modellek • Stimulus-válasz modellek 14
Szoftver-technológia I.
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
Szoftver-technológia I.
Felhasználói felület
Folyamatok és irányítási funkciók Bemenet
Kimenet
Karbantartás, teszt
16
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Adatfolyam diagramok
• Funkcionális perspektíva • Folyamatok adat igénye • Adat kapcsolatok • Szintenkénti finomítás
B
A F
X
V A
J
I Z
W
K
B
Y
X Z Y
20
DFD példa
Szoftver-technológia I.
2
környezeti elem 1
els! szint" eljárás
2.1 eljárás 2.1
D1
adattár 1 D2/1
adattár 2
2.2 eljárás 2.2 környezeti elem 2
D2/2
3
adattár 3
2.3 eljárás 3
eljárás 2.3
21
Szoftver-technológia I.
Á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
Szoftver-technológia I.
• Á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
Szoftver-technológia I.
Main OK disabled
OK enabled
[pwd2=""]
[pwd1=""]
[pwd1!=pwd2] Different [pwd2=""]
Pwd 1 [pwd1!=""] All clear
[pwd1=pwd2]
[pwd1!=pwd2]
[pwd2!=pwd1] start
Regisztráció Jelszó1
****
Jelszó2
****
[pwd2!=""] Pwd 2
[pwd2=""]
[pwd1=pwd2] Same
[pwd2=pwd1] [pwd1=""]
Kilépés
OK
OK clicked
OK clicked
OK2 clicked
Exit clicked Success feedback
OK3 clicked
Password missmatch exit
24
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
• 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
Szoftver-technológia I.
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
Szoftver-technológia I.
• 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
Szoftver-technológia I.
• Különféle jelölés rendszerek • Chen Egyed
Attrib.
Számosság
Reláció
Egyed
Attrib.
Attrib.
Kötelez!
Opcionális
Attrib.
30
roject
aisk
Analysis
Egyed-kapcsolat diagram példa Part 1
Szoftver-technológia I.
•
Analysis Description
Chart
MERISE jelölés
31
Szoftver-technológia I.
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 1
32
Szoftver-technológia I.
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
Szoftver-technológia I.
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.)
Szoftver-technológia I.
• 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
Szoftver-technológia I.
• 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
Szoftver-technológia I.
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
Szoftver-technológia I.
CASE IDE példa
WinDev 38
Szoftver-technológia I.
CASE IDE példa (folyt.)
• lekérdezés tervez" felületek
Omnis Studio
Szoftver-technológia I.
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
Szoftver-technológia I.
Komponens szint! tervezés
Folyamat specifikáció Állapotátmenet diagram Vezérlési specifikáció
Interfész tervezés
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
Szoftver-technológia I.
•
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
Szoftver-technológia I.
•
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
Szoftver-technológia I.
• Modulokra bontás, modulok integrálása
• Kognitív komplexitás kezelése C( p ) > C( p ) " E( p ) > E( p ) • C( p + p ) > C( p ) + C( p ) " E( p + p ) > E( p ) + E( p ) • Modulszám hatása 1
1
2
2
!
1
1
2
2
1
2
1
2
Modul költség Integrációs költség Összköltség
!
Modulok száma
44
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Hívási gráf példa
sgi ProDev
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Ö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