Rendszertervezés Alapfogalmak; Az informatikai rendszer A szoftver mint termék, szoftverkrízis A szoftvergyártás lépései A szoftverfejlesztés modellezésének alapjai Elterjedt szoftver fejlesztési modellek Kitekintés
Informatikai rendszer Alapfogalmak Információ:hír, üzenet melytől ismereteink bővülnek Informatikai rendszer ? Számítástechnikai információ: binárisan kódolt utasítás vagy adat Bináris kód: két elemű kód, melyekkel digitális áramköröket lehet működtetni. Szokásos jelölés:0;1 Bit: a bináris kód egy eleme, az információ egysége Byte: 8 bites információ egység Nagymennyiségű információ leírása prefixumokkal: k=*210; M=*220; G=*230; T=*240 ....
Informatikai rendszer Programok, adatok, dokumentáció Alapfogalmak PROGRAM Informatikai rendszer ? utasítás vagy adat digitális áramkörök ADATOK HERDVER: az áramkörök SZOFTVER: Programok, adatok, dokumentáció
Informatikai rendszer: - Hardver - Szoftver - programok - adatok - dokumentáció
Informatikai rendszer: tervezése(fejlesztése) meghatározza Szoftver tervezés a Hardver-t 1. a programok bonyolultsága és az adatok mennyisége (szoftver) alapvetően meghatározza a szükséges erőforrásokat (hardvert) Informatikai rendszer összes költsége időpont 1960 2010 100% 90% 10% Hardver Szoftver ? 2. a szoftver/hardver árarány változása a szoftver tervezés fejlesztését igényli!!!
Informatikai rendszer: tervezése(fejlesztése) meghatározza Szoftver tervezés a Hardver-t System engineering Software engineering Information technology
Programok típusai Alapszoftver Alkalmazói szoftver operációs rendszer program nyelvek segédprogramok Alkalmazói szoftver általános célú speciális
Informatikai rendszer: alkalmazói programok alap programok Hardver System engineering Software engineering Information technology
Information technology: Technológia: tudományos ismeretek alkalmazásával történő gazdaságos gyártási eljárás Lépései: Követelmény feltárás Tervezés Fizikai megvalósítás Ellenőrzés hagyományos termék szoftver termék hiba arány idő hiba arány idő kezdeti hiányosságok kezdeti hiányosságok kopás ÉLETCIKLUS NEM KOPIK, DE ELAVUL hiba arány idő Lépései: Követelmény feltárás Tervezés Megvalósítás Ellenőrzés Követés Könnyen módosítható szoftvert kell gyártani kezdeti hiányosságok Módosítások
Szoftver krízis tünetei: költségek alakulása Követelmény feltárás Tervezés Megvalósítás Ellenőrzés Követés 1/3 a többi 1/2 ellenőrzés tervezés 2/3 követés megval. 2% rögtön jó 3% javítás után jó javítás 2/3 tovább fejlesztés 20% alapos átdolgozás után jó adaptálás 30% soha nem ment DE KIFIZETTÉK Az összes eddigi szoftverből.. 45% soha nem ment rendesen
Szoftver krízis KÖVETELMÉNYEK: OKOK: - minimális futási idő - gyenge hardver - minimális tárhely - gyenge fejlesztői környezet - felhasználó-barát felület - monolitikus programozás - feltétlen megbízhatóság * nem becsülhető előre a hardver igény - könnyű karbantarthatóság * nem becsülhető a határidő - egyszerű továbbfejlesztés * körülményes a team-munka - gyors, olcsó kivitelezés * nem becsülhető a tesztelési idő * nincs teljes körű teszt (béta verzió) - határidők betartása * szinte lehetetlen a program módosítása - egyéntől független programozás * a program minősége a programozó ....szakmai tudásától függ CSAK
Szoftver fejlesztés modellezése Probléma-tér Implementációs-tér Implementációs modell Fogalmi modell Tervezés Modellezés Implementáció Modellezés Követelmények Működő rendszerek Valós világ Lehetséges rendszerek Megvalósított rendszer
Szoftvertechnológia lépései, szakkifejezései analízis (specifikáció, követelmény feltárás) tervezés ( modellezés, absztrakció és dekompozíció) a szoftver életciklusa implementálás (megvalósítás, kódolás) tesztelés (ellenőrzés, validáció) követés (továbbfejlesztés, evolúció) Absztrakt Elvont Fogalmi modell Impl. modell Megfelelés tervezés Dekompozíció finomítás Releváns tartomány Dekompozíció finomítás Absztrakció Absztrakció Konkrét
A tervezés alapesetei top-down bottom-up Semmi biztosíték nincs, hogy a fogalmi és az implementációs rendszer megfelel egymásnak 2 3 1 3 1 2 javítás 1 2 n
Szoftvertervezési modellek: vízesés modell specifikáció, köv. feltárás Előnye: jól áttekinthető, a feladatok szétoszthatók, időben tervezhető Hátránya: minél később derül ki a probléma, annál bonyolultabb meghatározni, hogy hol volt a hiba. Ha a specifikáció a hibás az újratervezés miatt drága. rendszer és szoftverterv implementáció és egységteszt integráció és rendszerteszt működtetés és karbantartás - alapeset szerint: top-down modell a modell életciklus követés részét nem tartalmazza
Szoftvertervezési modellek: evolúciós modell (prototípus modell) Előnye: a folyamatos ellenőrzéssel a nagyobb tévedések elkerülhetők. Hátránya: tökéletes szoftver nincs; hogy meddig vállaljuk a finomítást azt a döntést a modell nem tartalmazza START STOP Specifikáció Finomítás? gyors tervezés prototípus 2. verzió validáció prototípus 3. verzió n. verzió
Szoftvertervezési modellek: spirális modell Előnye: költséghatékony. Hátránya: a benne alkalmazott előző modellek hiányosságai, benne maradnak a rendszerben Specifikáció tervezés finomítás Kockázat elemzés go? no-go? ellenőrzés validáció adott verzió imlementáció Az egyes szakaszokban az eddigi modellek használhatók
Szoftvertervezési modellek: újrafelhasználás orientált modell Előnye: költséghatékony, időtakarékos Hátránya: nem minden esetben használható, a követés csak nehézkesen valósítható meg specifikáció, köv. feltárás komponensekre bontás meglévő elemek vizsgálata Követelmény módosítás Integrálás, implementáció Rendszer validáció a meglévő, módosítható (freeware) programokból hozzuk létre az ígényeknek megfelelőt bottom-up alapmodell
A konkrét szoftvertervezés kiegészítő tevékenységei: Szoftvermenedzsment Minőségbiztosítás A szoftver mint projekt: időtervezés erőforrás-tervezés költségtervezés kockázatelemzés ISO 9000-3 (ISO 91) International Organization for Standardization Tanusítvány!! Elemek: minőségellenőrzés minden fázisban dokumentációk karbantartás és szerviz tevékenység jogi keretek, felelősség