130

Click here to load reader

A rendszerfejlesztés technológiája

  • Upload
    izzy

  • View
    97

  • Download
    0

Embed Size (px)

DESCRIPTION

A rendszerfejlesztés technológiája. Előadásvázlat. A szoftver. A szoftver a programok, az adatok és a dokumentációk együttese , nem csak maga a program . Adatok alatt a szoftver vásárlásakor kapott állományokat kell érteni: ilyenek pl. a telepít ő és a konfigurációs állományok. - PowerPoint PPT Presentation

Citation preview

Page 1: A rendszerfejlesztés technológiája

A rendszerfejlesztés technológiája

Előadásvázlat

Page 2: A rendszerfejlesztés technológiája

A szoftver

A szoftver a programok, az adatok és a dokumentációk együttese, nem csak maga a program. Adatok alatt a szoftver vásárlásakor kapott állományokat kell érteni: ilyenek pl. a telepítő és a konfigurációs állományok.

Page 3: A rendszerfejlesztés technológiája

A szoftver egy termék

• bizonyos funckiót szolgáltat (szolgáltatási funkció)

• határidőre kell előállítani (előállítási határidő)

• előállításának van költsége (előállítási költség)

• minőségi elvárásoknak kell megfelelnie (minőségi elvárások)

Page 4: A rendszerfejlesztés technológiája

Szerzői jog - szabadalom

• Automatikusan jár, ingyenes – bejegyzése, fenntartása országonként díjhoz kötött, a szabadalmi per is drága

• Szerző halála után 70 évig, utána közkincs – 20 évig

• Szellemi termékekre – találmányokra

Page 5: A rendszerfejlesztés technológiája

A szoftverek csoportjai

• 1. általános célú (dobozos; COTS = Commercial On The Self) szoftvertermékek

– bárki megvásárolhatja

– általában sok év fejlesztőmunkája van mögötte

– általában nagy szoftverek

– a szakértelmet és a befektetett energiát kell megfizetni

– pl.: az Oracle adatbázis-kezelő rendszere

Page 6: A rendszerfejlesztés technológiája

A szoftverek csoportjai

• 2. Célszoftverek

– megrendelésre készülnek

– a kifejlesztést kell megfizetni

– pl.: a Neptun egységes felsőoktatási tanulmányi rendszer

Page 7: A rendszerfejlesztés technológiája

Új módszerek

Az információs rendszerek fejlesztéséhez, a szoftvertechnológiához, a szűkebben vett információ oldali részhez a kitalálás óta két új dolog csatlakozott:

• minőségbiztosítási módszerek a szoftverek kifejlesztéséhez;

• projektvezetési, -irányítási, -szervezési módszerek a fejlesztést végző emberek munkájának menedzselésére

Page 8: A rendszerfejlesztés technológiája

A szoftver, mint termék előállítása tevékenységsorozatban

• specifikáció: az elvárásokat tárjuk fel, konkretizáljuk, rögzítjük

• elkészítés/implementáció

• validáció: az elkészült szoftverről belátjuk, hogy megfelelő

• szoftverevolúció: az elkészült szoftver módosítása, továbbfejlesztése (nem hibajavítás!)

Page 9: A rendszerfejlesztés technológiája

A szoftverfejlesztés rendszerszervezési elemei

• elemzés (analízis),

• tervezés,

• implementáció,

• követés.

Page 10: A rendszerfejlesztés technológiája

Absztrakt megközelítés

A szoftverfejlesztési életciklusban egy abszrakt megközelítéstől egy teljesen konkrét megközelítés felé megyünk el valamilyen módon, valamilyen alkalmazott tevékenységsorozat folyamán. A cél ezt a tevékenységsorozatot abba az irányba tolni, hogy minél hamarabb, minél absztraktabb módon megfogalmazott dolgokból tudjuk a konkrét dolgokat automatikusan létrehozni.

Page 11: A rendszerfejlesztés technológiája

A folyamat

• a követelmények meghatározása és elemzése

• tervezés

• alrendszerek fejlesztése

• rendszerintegráció

• a rendszer telepítése

• a rendszer működtetése

• rendszerevolúció

• a rendszer üzemen kívül helyezése

Page 12: A rendszerfejlesztés technológiája

A szoftverfejlesztés folyamatának kiegészülése

Minőségbiztosítás és projektmenedzsment

Fő célok: határidők meghatározása, melyik lépést mikorra kell végrehajtani; szükséges hardver-, szoftver-, emberi, és anyagi erőforrások biztosítása; az emberek munkájának irányítása, az erőforrások szétosztása, határidők biztosítása stb.

Page 13: A rendszerfejlesztés technológiája

A követelmények meghatározása és elemzése

• funkcionális követelmények: rendszerszolgáltatások, pl.: tantárgyfelvétel, jegybeírás stb.

• rendszertulajdonságok: a rendszer egészére jellemző dolgok, pl.: rendelkezésre állás, biztonságosság, felhasználói felület

• lehatárolás: a rendszernek mit nem kell tudnia

Page 14: A rendszerfejlesztés technológiája

Tervezés

Alrendszerek azonosítása

Követelmények alrendszerekhez

rendelése

Alrendszerekinterfészének

definiálása

Alrendszerekfunkcionalitásának

meghatározása

Követelmények felosztása

A tervezés során a követelményektől eljutunk valamilyen módon az alrendszerekig.

Page 15: A rendszerfejlesztés technológiája

Alrendszerek fejlesztése

• Az alrendszerek általában párhuzamosan fejlesztendők, fejleszthetők. Az egyes alrendszereken dolgoznak az egyes fejlesztői csapatok; tervezés után fejlesztik, implementálják, kódolják, majd tesztelik az egyes alrendszereket. Ennek eredményeképpen előállnak az alrendszereink.

Page 16: A rendszerfejlesztés technológiája

Rendszerintegráció

• A kifejlesztett alrendszerekből összeállítjuk a teljes rendszert. Előfordulhat, hogy bizonyos alrendszereket nem fejlesztünk, hanem megvesszük. Bár a rendszerintegrációnál feltesszük, hogy az egyes alrendszerek önmagukban jól működnek, a rendszer összeállítása sok gondot okozhat.

Page 17: A rendszerfejlesztés technológiája

A rendszer telepítése

• Ha a rendszerfejlesztő cég és a megbízó jónak látja az elkészült rendszert, akkor következik a rendszer telepítése. A kifejlesztett rendszert konkrét hardver és szoftver platformra kell telepíteni.

Page 18: A rendszerfejlesztés technológiája

A rendszer működtetése

• A rendszer működtetése során derülnek ki a problémák, amire nem gondolt a felhasználó, működés közben ezeket a problémákat orvosolni kell. Ki tegye mindezt? Ez főnök vagy szerződés kérdése. Nagyon fontos a felhasználók képzése; a felhasználókat el kell látni információval.

Page 19: A rendszerfejlesztés technológiája

Rendszerevolúció

• A rendszert módosítjuk, továbbfejlesztjük a felhasználói környezet, a törvényi szabályozás, a cég méretének stb. megváltozása miatt. Tehát természetes fejlődés megy végbe a szoftvereknél is, amelynek semmi köze nincs a hibákhoz. Tervezéskor figyelembeveendő.

Page 20: A rendszerfejlesztés technológiája

A rendszer üzemen kívül helyezése

• Az információs rendszer általában nem önmagában létezik, hanem további rendszerek környezetében dolgozik: más rendszerektől adatokat fogad, más rendszereknek adatokat szolgáltat.

• A végiggondolt rendszerevolúció oda vezet, hogy nem a teljes rendszert állítjuk le, csak a rendszernek bizonyos részeit, bizonyos alrendszereket cserélünk le

Page 21: A rendszerfejlesztés technológiája

Szabványok

• tényleges, törvényszintű (de jure) szabványok: szabványügyi szervezetek (ISO, ANSI) dolgozzák ki őket

• ipari (de facto) szabványok: a szakterület vezető cégei összeállnak és alkotnak valamilyen formációt, konszenzusra jutnak, és ezt nyilvánosságra hozzák. (W3C)

• piaci szabványok: olyan szakterületeken alakulnak ki, amelyeken van egy nagyon erős piaci cég, őhozzá igazodnak a többiek

Page 22: A rendszerfejlesztés technológiája

Folyamatmodellek

• vízesés modell

• evolúciós modell

• formális fejlesztési modell

• újrafelhasználás-alapú modell

• iteratív modellek– spirális fejlesztési modell

– inkrementális fejlesztési modell

Page 23: A rendszerfejlesztés technológiája

Vízesésmodell

• Az első folyamatmodell, amely a történelemben kialakul, 1970-ben definiálták. Ez más termékelőállítási folyamatmodellből származik.

követelmények meghatározása

rendszer- és szoftvertervezés

implementáció és egységteszt

működtetés és karbantartás

Page 24: A rendszerfejlesztés technológiája

Vízesésmodell• Előnyei:

– a legegyszerűbb, a legjobban alkalmazható modell

– kicsi és közepes méretű rendszereknél jól struktúrált, jól felépített, jó architekturális jellemzőkkel rendelkező, robusztus rendszer fejleszthető

• Hátrányai:– Merev, nem flexibilis egymásraépülés.

– Minden egyes folyamat teljeskörűen lezárul, mielőtt a következő folyamat elindulna.

– A legutolsó lépésben derülnek ki a korai lépések problémái: nem teljesített követelmények, félreértések, stb.

Page 25: A rendszerfejlesztés technológiája

Evolúciós modell • A 80-as évek elején találták ki, párhuzamos

fejlesztési modell, implementációk verzióin keresztül jutunk el a végső verzióhoz: verziósorozatot produkál

vázlatleírása

specifikáció

fejlesztés

validálás

kezdeti verzió

közbülső verziók

végleges verzió

Page 26: A rendszerfejlesztés technológiája

Evolúciós megközelítések

• feltáró fejlesztés: a felhasználó és a fejlesztő közösen finomítja a követelményeket

• eldobható prototípuskészítés:a felhasználó kipróbálja a prototípust, így rájöhet, hogy mit akar.

Page 27: A rendszerfejlesztés technológiája

Evolúciós modell

• Előnyei– Nagyon hamar kap kipróbálható verziók

– A felhasználó hamar rájöhet, hogy a követelmények jók vagy nem

• Hátrányai– A túl sok verzió áttekinthetetlenné válhat

– Nem robusztusak: általában rossz struktúráltságú, architektúrájú szoftverhez vezet.

– Gyors fejlesztést, rapid techikákat igényel

Page 28: A rendszerfejlesztés technológiája

Formális modell • A 70-es években alakult ki a vízesés

modell egy változataként.

követelmények meghatározása

formális specifikáció

formális transzformáció

integráció és rendszerteszt

rendszer-validáció

A közbenső rész más: a rendszerspecifikációból matematikai eszközökkel formálisan generálunk működő programot. A transzformációs folyamat a formálisan megadott követelményekből előállít egy adott nyelvű kódot.

Page 29: A rendszerfejlesztés technológiája

Formális modell

• Előnye:

– automatizált a folyamat; bármilyen rendszer esetén alkalmazható

– biztonságkritikus rendszerek esetén alkalmazzák

• Hátránya:

– a rendszerkövetelmények formalizálása kézzel kell, hogy történjen

Page 30: A rendszerfejlesztés technológiája

Újrafelhasználás-orientált modell

• Léteznek olyan komponensek, amelyeket újrafelhasználhatunk (kód, tervezési szinten)

követelmények specifikációja

komponens-elemzés

követelmények módosítása

rendszerterv újrafelhasználással

fejlesztés és integráció

rendszer-validáció

Page 31: A rendszerfejlesztés technológiája

Újrafelhasználás-orientált modell

• Hátrány: kompromisszumok, leromolhat a rendszer struktúrája

• Előnyök: idő, pénz megtakarítása; a komponensek kipróbáltak, teszteltek stb., így egyfajta biztonságérzetet nyújt, sok validációs lépést megspórolhatunk.

Page 32: A rendszerfejlesztés technológiája

Iteratív folyamatmodellek:inkrementális fejlesztési modell

• A fejlesztés inkremensekben történik, az inkremenseket építünk, inkremensekkel bővítjük, és ha szükséges, nyilván megismételjük az inkremenshez akár a specifikációs tervezés lépését is.

Page 33: A rendszerfejlesztés technológiája

Inkrementális modell

vázlatos követelmények meghatározása

követelmények inkremensekhez

rendelése

rendszer- architektúra

megtervezése

rendszer-inkremens fejlesztése

inkremens validálása

inkremens integrálása

rendszer validálása

véglegesrendszer

a rendszer nem teljes

Page 34: A rendszerfejlesztés technológiája

Inkrementális modell • Előnyei:

– inkremensek kicsik, jól körülhatárolhatók, adott esetben a követelmények egyértelműen specifikálhatók

– az inkremensek fejlesztése történhet párhuzamosan

– kezdhetjük a legfontosabb inkremensekkel, a felhasználó nagyon hamar kap egy nem eldobható prototípust,

– a rendszerfejlesztés kockázata kisebb

– a rendszerfejlesztés közben a hibák hamarabb kiderülnek

Page 35: A rendszerfejlesztés technológiája

Spirális modell

• 1. lépés: célok meghatározása

• 2. lépés: kockázatelemzés, kockázatok felismerése, megszüntetése

• 3. lépés: fejlesztés és validálás

• 4. lépés: áttekintés, döntés a folytatásról

Page 36: A rendszerfejlesztés technológiája

Spirális modell

• Előnyei:– foglalkozik a kockázatokkal

– sokkal szisztematikusabban foglalkozik a projekttel

• Hátrányai:– nem a legtriviálisabb modell

– nagy rendszereknél javallott

Page 37: A rendszerfejlesztés technológiája

KÖVETELMÉNYEK MEGHATÁROZÁSA, ELEMZÉSE

• A követelmények osztályozása

– felhasználói követelmények

– rendszerkövetelmények

– szoftverterv-specifikáció

Page 38: A rendszerfejlesztés technológiája

A követelmények osztályozása

• funkcionális követelmények: hogyan reagál a rendszer bizonyos inputokra, bizonyos bekövetkező szituációkra, teljes és ellentmondásmentes

• nem-funkcionális követelmények

• szakterületi követelmények

Page 39: A rendszerfejlesztés technológiája

A követelmények kiknek szólnak

• A felhasználói követelményekkel elsősorban a fejlesztői oldali és a megrendelő oldali menedzserek találkoznak.

• A rendszerkövetelményekkel a rendszerfejlesztők, az informatikusok találkoznak.

• A szoftverterv specifikáció nyilvánvalóan a szoftver tervezőinek alapvető fontosságú.

Page 40: A rendszerfejlesztés technológiája

Követelmények másik felosztása

• funkcionális követelmények: hogyan reagál a rendszer bizonyos inputokra, szituációkra, kivételek feltárása

• nem-funkcionális követelmények: általános, teljes rendszerre vonatkozik

• szakterületi követelmények

Page 41: A rendszerfejlesztés technológiája

Nem funkcionális követelményeknem-funkcionáliskövetelmények

termék-követelmények

szervezetikövetelmények

külsőkövetelmények

hatékonyságikövetelmények

használhatóságikövetelmények

megbízhatóságikövetelmények

hordozhatóságikövetelmények

telepítésikövetelmények

implementációskövetelmények

szabány-követelmények

együttműködésikövetelmények

etnikaikövetelmények

törvényikövetelmények

adatvédelmikövetelmények

biztonságikövetelmények

teljesítménykövetelmények

tárterületkövetelmények

Page 42: A rendszerfejlesztés technológiája

A funkcionális és nem-funkcionális követelmények elválasztása

• ha együtt kezeljük, túl nagy lesz a specifikáció, nem veszünk észre bizonyos követelményeket; validációnál a bonyolultság miatt bizonyos követelmények elsikkadhatnak.

• ha külön kezeljük, akkor nehéz az ellentmondások felderítése

Page 43: A rendszerfejlesztés technológiája

Követelmények dokumentációja

• természetes nyelv

• diagramok (UML)

• leíró nyelvek: programnyelvekhez hasonló

• matematikai specifikáció

• hibrid megoldás

Page 44: A rendszerfejlesztés technológiája

Rendszermodellek

• környezeti modellek (HOL)

• viselkedési modellek (HOGYAN)

• adatmodellek (MIVEL)

Page 45: A rendszerfejlesztés technológiája

Környezeti modellek

• A rendszer határainak felderítése biztonságirendszer

bankautomatarendszer

karbantartórendszer

központinyilvántartór.

központiszámlázór.

számla-adatbázis

Igénybevételiadatbázis

Page 46: A rendszerfejlesztés technológiája

Viselkedési modellek

• adatfolyam modellek: tipikus struktúrált modellek

• állapotátmenet modellek: tipikusan OO-modellek (adatfolyam modell az OO-ban nincs)

Page 47: A rendszerfejlesztés technológiája

Adatfolyam modellek • Az adatfolyamok hogyan mozognak, hogyan

áramlanak a rendszeren belül, hogyan kerülnek feldolgozásra.

• Jelölések: ellipszis: feldolgozás, ezek egy-egy függvénynek tekinthető, amely a beérkező adatokból legenerálja a kimenetet és továbbítja.

• Nyíl: az adatáramlás irányát jelölik, az adatok milyensége a nyilakra van írva.

• Téglalap: adattárolók; ezek állományok, adatbázisok; itt megőrzésre kerülnek az adatok és újra elővehetők.

Page 48: A rendszerfejlesztés technológiája

Adatfolyam modell példája

kitöltött megrendelő űrlap

megrendelés validálása

megrendelés rögzítése

továbbítás szállítóhoz

költségkeret módosítása

megrendelés-állomány

költségvetés-állomány

megrendelés részletei + üres megrendelő űrlap kitöltött megrendelő űrlap kitöltött megren-

delő űrlap

aláírt megren-delő űrlap

aláírt megren-delő űrlap

megrendelésrészletezése

megrendelésvégösszege +számla rögzítése

átvizsgált ésaláírt megren-delő űrlap

Page 49: A rendszerfejlesztés technológiája

Állapotátmenet modell

• A formális automata, mint absztrakt matematikai eszköz megjelenése a formális rendszerfejlesztésben.

• Ha túl bonyolult a rendszer, bizonyos állapotokat metaállapotnak tekintve külön állapotátmenet diagramon ki lehet fejteni.

Page 50: A rendszerfejlesztés technológiája

Adatmodellek

• Az adatok struktúráját írják le, az egyedek tulajdonságait, és az egyedek közötti kapcsolatokat modellezik. Ezen modellek vezetnek az objektum modellek kialakulásához a 90-es évek elején.

• ETK, ER, OO adatmodellek

Page 51: A rendszerfejlesztés technológiája

ER adatmodell

• 3 fő komponense van:

– egyed

– kapcsolat

– tulajdonságok

AT

Page 52: A rendszerfejlesztés technológiája

Egyed elem az ER-benEgyed: egy objektum típus, egy a külvilág többi részétől

egyértelműen megkülönböztetett dolog• önálló léttel bír• amikről az információkat tárolni kivánjukTípusai:• normál egyed (önmagában azonosítható): dolgozó, autó• gyenge egyed (más egyedhez való kapcsolatán keresztül

azonosított): dolgozó felesége, autó lámpája

egyed neve egyed neve

normál egyed gyenge egyed

Page 53: A rendszerfejlesztés technológiája

Kapcsolat elem az ER-ben• opcionális: létezhet olyan egyed-

előfordulás, melyhez nem kapcsolódik egyed-előfordulás a kapcsolatban

• kötelező: minden egyed-előforduláshoz kell kapcsolódnia egyed-előfordulásnak a kapcsolatban

opcionális

A B

kötelező az A oldalon

Page 54: A rendszerfejlesztés technológiája

Kapcsolat elem az ER-ben

1:1

A B

N:M

ország - főváros tulajdonos - autó

1:N egy A-hoz több Bszínész - színdarab

Page 55: A rendszerfejlesztés technológiája

Tulajdonság elem az ER-ben• normál: egyértékű ember.szülidő

• kulcs: azonosító szerepűember.TAJszám

• összetett: több tagból áll ember.lakcim (irsz,varos)

• többértékű: több értéke is lehet, ember.hobby

• származtatott: értéke kiszámítható ember.életkor

t

normál

t

kulcs

t

összetett

t

t

t

többértékű

t

származtatott

Page 56: A rendszerfejlesztés technológiája

KÖVETELMÉNYTERVEZÉS• Amelynek során előáll a követelmény-

dokumentum, és ez szolgál majd a tervezés alapjául dokumentumként.

• Alfolyamatai:

– megvalósíthatósági tanulmány elkészítése

– követelmények feltárása, elemzése

– követelmények specifikálása és dokumentálása

– követelmények validálása

Page 57: A rendszerfejlesztés technológiája

Követelménytervezés folyamata

megvalósíthatósági tanulmány

követelmények feltárása, elemzése

követelmények specifikálása

követelmények validálása

megvalósíthatósági jelentés

rendszer-modellek

felhasználói ésrendszerkövetelmények

követelmények dokumentumai

Page 58: A rendszerfejlesztés technológiája

Megvalósíthatósági tanulmány / jelentés• A rendszer nagyvonalú leírását tartalmazza, ez

alapján döntjük el, hogy egyáltalán elindul-e a folyamat.

• A kifejlesztendő rendszer támogatja-e az adott szervezet általános célkitűzéseit, munkáját, igényeit?

• Megvalósítható-e a megfogalmazott időkeret, költségkeret és technológiai keretek között? (alternatívák)

• Integrálható-e, beilleszthető-e a jelenleg használatban lévő rendszerbe?

Page 59: A rendszerfejlesztés technológiája

Követelmények feltárása, elemzése

szakterületmegismerése

követelményekösszegyűjtése

követelményekellenőrzése

követelményekosztályozása

fontossági sorrendbe állítás

ellentmondások feloldása

követelményekspecifikációja

követelmények dokumentációja

a folyamat belépési pontja

Page 60: A rendszerfejlesztés technológiája

Követelmények feltárása -problémák

• Nem tudják, mit várnak a rendszertől (vagy megfogalmazás problémája). Triviális, vagy megoldhatatlan elvárások

• Kommunikáció a fejlesztővel, ellentmondások feloldása

• Külső körülmények, pl. vállalati politika

Page 61: A rendszerfejlesztés technológiája

Követelmények összegyűjtése

• prototípus-készítés

• nézőpont-orientált feltárás

• forgatókönyv-technika (interakciók)– eseményforgatókönyvek

– használati esetek (OO)

• etnográfia

Page 62: A rendszerfejlesztés technológiája

Követelmények ellenőrzése

a felhasználók és a fejlesztők együtt végzik, lépései:

• ellentmondásmentesség a teljes dokumentációra

• teljességellenőrzés

• megvalósíthatóság

• verifikálhatóság

Page 63: A rendszerfejlesztés technológiája

Validációs technikák

• felülvizsgálat

• prototípuskészítés

• tesztesetek generálása

• automatikus validálás (CASE eszközök)

Page 64: A rendszerfejlesztés technológiája

Követelmények menedzselése

• Környezeti változások követelmény-változások

• automatizált dokumentációs eszközökkel:

– követelmények azonosítása

– változtatáskezelés

– nyomonkövethetőség

Page 65: A rendszerfejlesztés technológiája

Prototípuskészítés, előnyök

• Eldobható prototípuskészítés

• Evolúciós prototípuskészítés– folyamatosan felhasználható a felhasználók

képzésére

– megerősítő tesztek futtatására

– a termék hamarabb piacra dobható

– felhasználók hamarabb válnak elkötelezetté

Page 66: A rendszerfejlesztés technológiája

Prototípuskészítés, hátrányok

• az emberek cserélődhetnek a cégnél

• karbantartási problémák (rossz struktúráltság)

• nehéz jó fejlesztői szerződést kötni a változások miatt

Page 67: A rendszerfejlesztés technológiája

TERVEZÉS

• Architekturális tervezés: szoftverarchitektúra leírást eredményez, a szoftver struktúráját írja le.

• Tervezéskor implementációs problémákat is figyelembe kell vennünk.

• Kiindulópontjai az alrendszerek

Page 68: A rendszerfejlesztés technológiája

Alrendszerek, modulok

• Az alrendszer egy olyan létjogosultságokkal rendelkező része a rendszernek, amelynek működése nem függ az egyéb alrendszerek szolgáltatásaitól. Kommunikációjuk interfészeken keresztül történik.

• A modulok nem önállóak az alrendszeren belül.

Page 69: A rendszerfejlesztés technológiája

Architekturális terv – nem funkcionális rendszerkövetelmények

• Teljesítménykritikus rendszer – kritikus műveletek kevés modulban

• Védelem – rétegzett architektúra

• Biztonságosság – biztonságkritikus műveletek egy, vagy kevés helyen

• Rendelkezésre állás – redundás rendszerelemek

• Karbantarthatóság – könnyen módosítható, kis modulok

Page 70: A rendszerfejlesztés technológiája

Alrendszerek információtárolási modelljei

• közös, megosztott adatbázis: ugyanazt az információegyüttest használják az alrendszerek

• minden alrendszernek külön adatbázis (valódi kommunikáció)

Page 71: A rendszerfejlesztés technológiája

Megosztott adatbázis jellemzői

• minden alrendszernek azonos adatmodell (de nehézkes módosítás)

• Információ kell arról, hogy az adatot ki, hogyan használja fel

• Egyszerűbb biztonsági problémák, mentés, védelem, konzisztencia

Page 72: A rendszerfejlesztés technológiája

Architektúra-modellek

• kliens-szerver modell (elosztott architektúra), elosztott rendszereknél célszerű

• rétegezett modell (több rétegből álló struktúra), inkrementális modellhez illeszkedik

Page 73: A rendszerfejlesztés technológiája

Vezérlési modell

• Alrendszerek és modulok együttműködéséhez

• Központosított: egy kitüntetett alrendszer koordinálja a többit (szekvencális, vagy párhuzamosnál szinkronizált működésű)

• Eseményvezérelt

Page 74: A rendszerfejlesztés technológiája

Eseményvezérelt modellek

• Eseményszórás: az egyes elemek regisztrálják magukat bizonyos eseményekre. Probléma: nem tudhatja egy alrendszer, hogy hány másik reagál ugyanarra az eseményre.

• Eseménymegszakítás: operációs rendszer megszakításkezelése alkalmazásszinten

Page 75: A rendszerfejlesztés technológiája

Modultervezés

• struktúrált módszertan: a modulokat egy adatfolyam modell alapján tervezzük meg.

• OO-szemlélet: az alrendszereket objektumokká bontjuk szét az objektumok tulajdonságaival

Page 76: A rendszerfejlesztés technológiája

Szakterületspecifikus architektúrák

• általános szakterületi architektúra

• referencia-architektúra

Page 77: A rendszerfejlesztés technológiája

A fordítóprogram architektúrája

szimbólumtábla

lexikális elemzés

szemantikai elemzés

szintaktikai elemzés

kód-generálás

Page 78: A rendszerfejlesztés technológiája

Tervezés újrafelhasználással

• alkalmazkodó újrafelhasználás: implementálás közben fedezzük fel az elemeket és illesztjük be a programba.

• módszeres újrafelhasználás: a tervezést eleve így képzeljük el

Page 79: A rendszerfejlesztés technológiája

Tervezés újrafelhasználással - előnyök

• Megbízhatóság

• Alacsony kockázat

• Szabványos komponensek (pl. GUI)

• Rövid tervezési, fejlesztési, tesztelési idő

Page 80: A rendszerfejlesztés technológiája

Tervezés újrafelhasználással - problémák

• Meg kell találni őket

• Megbízhatóság

• Dokumentáltság

• Nagyobb karbantartási költség (komponensek evolúciója, megszűnése)

Page 81: A rendszerfejlesztés technológiája

Komponens-orientált tervezés

• A komponens egy önálló, végrehajtható entitás, amely valamilyen szolgáltatást nyújt más komponenseknek vagy más szoftvereknek. A komponensnek minden esetben van egy interfésze, és a vele történő minden interakció ezen az interfészen keresztül megy végbe.

Page 82: A rendszerfejlesztés technológiája

A rendszer/komponens interfésze

• a rendszer szolgáltatásokat vár, keresendő a komponens, ami ezeket nyújtja.

komponens

rendszer vagy másik komponens

Page 83: A rendszerfejlesztés technológiája

A komponensek absztrakciós szintje

• funkcionális absztrakció

• lazán összefüggő entitások

• adatabsztrakció

• klaszterabsztrakció

• rendszerabsztrakció

Page 84: A rendszerfejlesztés technológiája

A komponens-orientált tervezés folyamata

rendszerarchitektúra tervezése

komponensek meghatározása

újrafelhasználható kom-ponensek megkeresése

felderített kompo-nensek egyesítése

Tipikusan követő modell, mert ha nem találunk meg minden komponenst, akkor fejleszteni kell.

Page 85: A rendszerfejlesztés technológiája

A komponens-orientált tervezés folyamata #2

• már a tervezés előtt keressük a komponenseket

• kompromisszum: követelménymódosítás

vázlatos rendszer-követelmények

újrafelhasználható kom-ponensek megkeresése

követelmények módosítása a felderített komponenseknek megfelelően

architekturálisterv

újrafelhasználható kom-ponensek megkeresése

a rendszer megtervezése az újrafelhasz-nálható koponenseknek megfelelően

Page 86: A rendszerfejlesztés technológiája

Alkalmazási keretrendszerek

• infrastruktúra keretrendszerek: pl. a felhasználói felületek legyártásához

• köztes termék keretrendszerek (middleware): információcsere, pl. Corba

• alkalmazásszintű keretrendszerek: szakterületi alkalmazások, pl. CMS, ERP

Page 87: A rendszerfejlesztés technológiája

Az újrafelhasználásra alkalmas komponens:

• stabil szakterületi absztrakción alapul

• bezárást, reprezentációt valósít meg

• ideális esetben független más komponensektől

• a komponens kivételei az interfészben, a felhasználó kezelheti

Page 88: A rendszerfejlesztés technológiája

Alkalmazáscsalád (product-line)

Általában közös és szakterületspecifikus architektúrát valósít meg (architektúra újrafelhasználás)

• platformspecializáció

• konfigurációspecializáció

• funkcionális specializáció

Page 89: A rendszerfejlesztés technológiája

Tervezési minta

• Terv-újrafelhasználási elem, implementációfüggetlen. Pl: az absztrakt adatszerkezet az algoritmusoknál.

• Leírja a problémát, a megoldását, az újrafelhasználhatóságot.

Page 90: A rendszerfejlesztés technológiája

Szolgáltatás-orientált architektúra (SOA)

• ObjektumKomponensSzolgáltatás

• A szolgáltatás egy zárt, független üzleti függvény, amely képes egy vagy több kérés fogadására és egy vagy több válasz generálására egy jól definiált interfészen keresztül. Speciális fajtája a webszolgáltatás.

Page 91: A rendszerfejlesztés technológiája

Webszolgáltatás

• Emeli az absztrakciós szintet, elfedi hogy mi van mögötte, csak interfészen keresztül érjük el, a kommunikáció eszköze az XML

• XML alkalmazásokat képeznek le programokra, objektumokra, adatbázisokra vagy üzleti függvényekre

• Az interfész mögött jellemzően adatbázis-kezelő-rendszer van

Page 92: A rendszerfejlesztés technológiája

Interakciós technikák

• RPC (Remote Procedure Call) – online-alapú, szinkron szolgáltatás; egy kérés egyetlen XML dokumentum továbbítását jelenti, ez egyetlen háttérelemre képezendő le, amely azonnal le is fut, mint egy távoli eljáráshívás.

• dokumentumorientált technika – batch, aszinkron szolgáltatás; az XML dokumentumot nem leképezni kell, hanem feldolgozni

• a webszolgáltatás a W3C szabványokon alapul

Page 93: A rendszerfejlesztés technológiája

A SOA webservices eszközei

• XML: szöveges dokumentumkódolási szabályok

• WSDL: szolgáltatásleíró nyelv, leírja az üzenettípusokat, az interfészt

• SOAP: a webszolgáltatások kommunikációjának protokollja (XML)

• UDDI: a szolgáltatás közzétételének, megosztásának eszköze

Page 94: A rendszerfejlesztés technológiája

Felhasználói felületek tervezése

• interfész-orientált tervezés: egy prototípusnál a felhasználó hogyan tud kapcsolatba kerülni az alkalmazással

• Jellemző a GUI, szokásos elemek, skinek, stb.

• Ergonómiai szempontok: RTM, olvashatóság, színtévesztés, stb.

Page 95: A rendszerfejlesztés technológiája

Felhasználói felületek megtervezésének elvei

• felhasználói jártasság

• konzisztencia

• minimális meglepetés elve

• visszaállíthatóság elve (undo)

• felhasználói támogatás

• felhasználói sokféleség elve

Page 96: A rendszerfejlesztés technológiája

Felhasználói interakciók

• közvetlen manipuláció

• menüpont kiválasztása

• űrlapkitöltés

• parancsnyelv

• emberi nyelvű vezérlés

Page 97: A rendszerfejlesztés technológiája

Információmegjelenítés kérdései

• mit akarunk megjeleníteni?

• mi a lényeges a felhasználó számára?

• csak látni akarja, vagy interakcióba lépni is vele?

• Diszkrét / analóg megjelenítés kérdése

Page 98: A rendszerfejlesztés technológiája

A felhasználói felületek ergonómiája

• Felhasználóbarát felületek (webes megjelenés)

– Letöltési idő

– Egyszerű, következetes navigáció, átláthatóság (térkép), szemmozgás, stb.

– Akadálymentesség

– Megfelelő színek, színpárok, kontraszt

Page 99: A rendszerfejlesztés technológiája

Ergonómia – felhasználói szokások

• A felhasználók egy idő után mindent megszoknak.. (pl. Microsoft-Apple)

• A felhasználó már megszokott egy sémát, akkor elvárja azt az újtól is

• Amit nem talál meg, az a funkció nem létezik (There is no spoon..)

Page 100: A rendszerfejlesztés technológiája

Színek, színhasználat

• Konzervatív, kevés szín használata (felhasználási területtől függően)

• Funkcionális használat: kiemeléshez, állapotváltozás jelzéséhez más szín

• Színek – érzelmi hatások

• Színhűség, webbiztos színek

Page 101: A rendszerfejlesztés technológiája

Felhasználói támogatás

• Jellemzően szövegesek, ill. illusztráltak

• Helyzetérzékeny súgó, online súgó

• Segítség a kezdőknek és a tapasztaltaknak: segítségkérés és informálódás, visszajelzés

• Informatikai hibaüzenetek elrejtése, becsomagolása

• Többnyelvűség, honosítás

• Gráfrendszer, többféle navigáció, belépési pont

Page 102: A rendszerfejlesztés technológiája

Felhasználói dokumentáció

rendszer-értékelők

rendszeradmi-nisztrátorok

kezdő felhasználók

tapasztalt felhasználók

rendszeradmi-nisztrátorok

funkcionális leírás

telepítési dokumentáció

bevezető kézikönyv

referencia kézikönyv

adminisztráto-rok útmutatója

szolgáltatá-sok leírása

Hogyan telepítjük a rendszert?

kezdeti leírások

eszközök leírása

működtetés és karbantartás

Page 103: A rendszerfejlesztés technológiája

Felhasználói felületek értékelése

• Tanulhatóság

• Interakciósebesség

• Robusztusság

• Visszaállíthatóság

• Adaptálhatóság

Page 104: A rendszerfejlesztés technológiája

Verifikáció és validáció

• Verifikáció: megfelel-e a szoftver a specifikációknak, kielégíti-e a követelményeket

• Validáció: olyan verifikált szoftver, ami a felhasználó igényeit szolgálja, minden lépés után elvégzendő.

• Módszerek: átvizsgálás, tesztelés

Page 105: A rendszerfejlesztés technológiája

Verifikáció és validáció

• Szoftverátvizsgálás: statikus módszer, általában manuális tevékenység.

• Szoftvertesztelés: dinamikus módszer, a program futtatása tesztfeladatokkal, majd összehasonlítás az elvárt eredményekkel

Page 106: A rendszerfejlesztés technológiája

Tesztelés

• Hiányosságtesztelés: verifikációs

• Statisztikai tesztelés: használható validációsra is

Page 107: A rendszerfejlesztés technológiája

A tesztelés kideríti

• A hiányosságokat a szoftverben

• A teljesítményproblémákat

• A specifikációtól eltérést

Ezt követi a hibák behatárolása, a debuggolás, majd a regressziós tesztelés

Page 108: A rendszerfejlesztés technológiája

Szoftvertesztelés tervezése

követelmények meghatározása

rendszer-specifikáció

rendszer-tervezés

részletestervezés

 szolgáltatás

 átviteli teszt

rendszer-integrációs teszt

alrendszer-integrációs teszt

modul az egységkó-dolásra és tesztelésre

átviteliteszt terve

rendszerintegrációs teszt terve

alrendszerinteg-rációs teszt terve

Page 109: A rendszerfejlesztés technológiája

Átvizsgálás

• Az átvizsgálás a teljes fejlesztési folyamat minden egyes lépésében alkalmazható. A szoftver átvizsgálása egy szárazteszt, amihez nem kell futtatni a programot. Tehát a forráskód átnézése alapján történő hiányosságtesztelés, verifikáció.

Page 110: A rendszerfejlesztés technológiája

Átvizsgálás során felismerhető hibák

• adatkezelési hibák

• vezérlési hibák

• I/O hibák

• interfész problémák

• tárkezelési hibák a dinamikus szerkezeteknél

• kivételkezelés

Page 111: A rendszerfejlesztés technológiája

Automatikus statikus tesztelők

• A program szövege alapján megpróbálják felderíteni a fenti kategóriájú problémákat.

• Bármilyen nyelvnél tesztelhető: pl. a paraméterek számossága, a formális és aktuális paraméterek típusa, stb.

• Előnyös az útvonalelemzésnél

Page 112: A rendszerfejlesztés technológiája

Modul- és egységteszt

• A legkisebb tesztelhető programegységek.

• Az elemek önállóan tesztelhetők.

• Modul- és egységteszt Alrendszer-integrációs teszt Rendszerintegrációs teszt

Page 113: A rendszerfejlesztés technológiája

Hiányosságteszt

tesztesetek tervezése

tesztadatok előkészítése

program futtatása tesztadatokkal

eredmények összehason-lítása a tesztesetekkkel

teszt-esetek

teszt-adatok

teszt-eredmények

teszt-jelentések

Page 114: A rendszerfejlesztés technológiája

Kimerítő tesztelés

• Az összes lehetséges programútvonalat teszteljük.

• A teszteseteket úgy tervezik, hogy a program minden utasítása legalább egyszer lefusson.

• Automatizált eszközökkel történhet.

Page 115: A rendszerfejlesztés technológiája

Tesztelési technikák

• 1. funkcionális vagy feketedoboz teszt: csak a viselkedésmódot, az I/O-t teszteljük.

• 2. struktúrateszt, fehérdoboz vagy üvegdoboz teszt: egységtesztelő módszer, a kód ismeretében tervezzük a teszt útvonalát.

Page 116: A rendszerfejlesztés technológiája

Feketedoboz teszt

• A tervezett tesztesetek alapján legenerálandók az input tesztaadatok

• A rendszer visszaadja az eredményeket

• A teszteredmények nem egyező részhalmaza határolja be a hiányosságokat.

outputteszt-eredmények

inputteszt-adatok

IE

OE

rendszer

Page 117: A rendszerfejlesztés technológiája

Tesztesetek tervezése

• A tesztesetek tervezéséhez generálásához egy ekvivalencia-osztályozást alkalmaznak az inputokon és az outputokon, ugyanis az inputadatok általában jól kategorizálhatók.

inputok

 rendszer

      

 

outputok

    

   

Page 118: A rendszerfejlesztés technológiája

Struktúrateszt, fehérdoboz vagy üvegdoboz teszt

• Tipikusan egységtesztelő módszer, használható integrációs tesztelésnél is, ahol felhasználjuk az implementációt is a tesztelésnél. A kódot arra használjuk fel, hogy ennek ismeretében tervezzük meg teszteseteket, generáljunk tesztadatokat. Ha tervezhető, minden utasítás minimum egyszer végrehajtásra kerüljön.

Page 119: A rendszerfejlesztés technológiája

Integrációs tesztelés

• Az elemek együttműködését teszteli.

• A rendszerspecifikációból indul ki.

• Jellemzően inkrementális teszteléssel ellenőrzik az összekapcsolt modulok együttműködését.

Page 120: A rendszerfejlesztés technológiája

Inkrementális tesztelés

A

B

T1

T2

T3

A

B

T1

T2

T3

C T4

A

B

T1

T2

T3

C T4

DT5

Page 121: A rendszerfejlesztés technológiája

Integrációs teszt fentről lefelé

1. szint 1. szint

2. szint

2. szintű csonkok

3. szintű csonkok 3. szintű csonkok 3. szintű csonkok 3. szintű csonkok

2. szint 2. szint 2. szint

• Előnye: már működő rendszert tesztelünk.

• Probléma: az integrációs teszt adott esetben nagyon nehéz, mivel az outputot a levélkomponensek biztosítják majd.

Page 122: A rendszerfejlesztés technológiája

Integrációs teszt lentről felfelé

• Előnye: itt valóban együttműködést lehet tesztelni.

• Probléma: a magasabb szintű elemekhez környezetet kell biztosítani, szimulálni.

N. szint N. szint N. szint N. szint N. szint

N–1. szint N–1. szint N–1. szint

tesztelési sorozat

Page 123: A rendszerfejlesztés technológiája

Interfésztesztelés

• paraméter interfész: az egyes elemek paraméterekkel kommunikálnak

• osztott memória interfész: az egyes elemek osztott tárterületen keresztül kommunikálnak

• funkcionális interfész: az egyik elem egy hívható alprogram, metódus, eljárás, függvény halmaz specifikációját adja

• üzenetinterfész (szolgáltatás-orientált): az egyes komponensek üzenetekkel szolgáltatásokat hívnak meg

Page 124: A rendszerfejlesztés technológiája

Stressztesztelés

• A rendszerintegráció során összeálló teljes szoftvert szélsőséges körülmények között, nem normális terhelés mellett teszteljük.

• Eredményeként lehet teljesítményt hangolni.

Page 125: A rendszerfejlesztés technológiája

Objektumorientált tesztelés

• Objektumorientált szoftverek modultesztelésénél osztályokat tesztelünk, az osztálytesztelés pedig elsősorban viselkedésmód-tesztelést jelent.

• Az osztályok közötti együttműködés, mint nagyobb objektumcsoport-osztályok közötti integrációs teszt, mivel az alrendszer sok osztályból áll.

Page 126: A rendszerfejlesztés technológiája

A tesztelés technológiai háttere

• tesztmenedzserek

• tesztadat-generátorok

• előrejelzők, jóslók

• dinamikus elemzők

• szimulátorok

Page 127: A rendszerfejlesztés technológiája

Minőség kezelése

• A szoftver egy termék.

• Az ipari termékeknek van minőségi specifikációjuk.

• A szoftver viszont egy szellemi termék.

Page 128: A rendszerfejlesztés technológiája

Minőség

• Minőségbiztosítás

– termékszabványok

– folyamatszabványok

• Minőségtervezés

• Minőségellenőrzés

Page 129: A rendszerfejlesztés technológiája

Minőségbiztosítás szoftvereknél

• termékszabvány: hogyan nézzen ki egy dokumentáció, a tesztelés eredményeként előálló jónak mondott szoftverelemekből hogyan lesz tényleges szoftverelem, hogyan kerül be egy szoftverelem a teljes szoftverbe, hogyan nézzen ki egy forráskód.

• folyamatszabványok: ki gyártja a teszteket, ki végzi a teszteket, ki végzi a felülvizsgálást, ki tervezi a minőséget a folyamat során, milyen tervezési mód, milyen szabvány, hogyan tervezzük, hogyan dokumentáljuk...

Page 130: A rendszerfejlesztés technológiája

Minőségi szabványok

• Az általános, ipari termékekre vonatkozó minőségszabvány: ISO9000

• Az ISO9000-3-as a szoftverminőség szabvány.

• A cég minőségbiztosításához minősíttetni kell egy auditáló céggel a termék-előállítási folyamatot.