Szoftver Tervezés és Technológia 1. Bevezetés, probléma megfogalmazás, megoldási paradigmák Dr. Tick JózsefJ Budapesti Műszaki M FőiskolaF Neumann János J Informatikai Főiskolai F Kar Szoftvertechnológia Intézet BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 1 Oktatási cél: c A tárgy keretében a hallgatók megismerkednek a szoftvertechnológia alapvető paradigmáival, a szoftver tervezés, fejlesztés metodikájával, különös tekintettel az objektum-orientált modellezésen alapuló modern megoldásokra. A hallgatók a gyakorlatok során jártasságot szereznek a CASE eszköz segítségével történő objektumorientált szoftverfejlesztésben. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 2 Félévi követelmk vetelményrendszer l Aláírás: A 7. héten (október 20.) és a 13. héten (december 1.) ZH. (Max. 100-100 pont) Az aláíráshoz a két ZH-ból összesen legalább 61 pontot kell szerezni. Aki nem éri el a két ZH összegéből a 61 pontot, az a vizsgaidőszak elején, (december 22.) egyszeri alkalommal (lásd TVSZ) ismétlővizsga jelleggel szerezheti meg az aláírást. Ebben az esetben aláírást az kaphat, aki ezen dolgozat maximális pontszámának több, mint 30%-át eléri. Félévi követelmk vetelményrendszer l Vizsga: A vizsgát csak az kezdheti meg, aki az aláírást megszerezte. A vizsga írásbeli. Értékelése: Az érdemjegy: a zh eredménye jeles (5) 91% - 100% jó (4) 81% - 90% közepes (3) 66% - 80% elégséges (2) 51% - 65% elégtelen (1) <= 50% BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 3 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 4
Ajánlott irodalomak Ian Sommerville: Szoftverrendszerek Fejlesztése Panem kiadó Budapest, 2002 ISBN 963 545 311 6 Hallgatók számára 20% kedvezmény!!! www.panem.hu Roger S. Pressman: Software Engineering A Practitioner s Approach McGRAW-HILL Int. Ed., 2005 ISBN 007 123840 9 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 5 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 6 Egy elgondolkodtató példa: Helmut Balzert: Lehrbuch der Software-Technik Építészet Egy pici építmény Szoftverfejlesztés Egy kis program Spektrum Akademischer Verlag Heidelberg, Berlin 1998 ISBN 3 8274 0065 1 (tervezés nélkül gyorsan összeütjük ) (hasonló képpen) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 7 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 8
Családi ház Közepes méretű Program Felhőkarcoló Nagy méretű szoftver projekt (vázlat, terveztetés, terv engedélyeztetés, kivitelező megbízása, töbé-kevésbé terv szerinti megépítés, használatba vétel engedélyeztetése) (interjúk, tervezgetés, programozás, tesztelés, módosítás, módosítás, módosítás átadás.) (Analízis, nagyon hosszú, alapos, tervezés, gyors, terv szerinti kivitelezés, elenyésző számú változtatás) (Analízis, tervezés, implementálás, tesztelés, sok-sok módosítás) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 9 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 10 Miért? A probléma a K O M P L E X I T Á S Talán, mert a beton 28 nap alatt megköt!... és s a szoftver? BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 11 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 12
1. Bevezetés 1.1 Mi a probléma? A rendszerköltségen belül a hardver / szoftver arány változása Rendszerköltség 100% 90% 10% Hardver Szoftver 1957 1987 Idő BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 13 Szoftverfejlesztési költségek: NASA Hold-projekt: 1.000.000.000 $ (8 év) 1961. Május 25. Az amerikai Kongresszus ülésén That s one small step for (a) man, one giant leap for mankind A szoftver ipar az USA-ban a 80-as években 10.000.000.000 $/év termel 1969. Július 20. The eagle has landed BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 14 A szoftverfejlesztés tradicionális fázisai: Tulajdonképpen mi a drága benne? A szoftverfejlesztés melyik fázisa drága? Analízis Tervezés Implementáció Tesztelés Követés BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 15 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 16
A szoftverfejlesztés fázisainak költség arányai: A követés költségeinek megoszlása: Követés 2/3 Analízis Tervezés Implementáci ció Tesztel ztelés 1/3 Tovább bb- fejlesztés 2/3 Javítás 1/6 Adaptáci ció 1/6 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 17 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 18 A szoftverfejlesztés költségarányai a követés nélkül: Tesztel ztelés 1/2 Analízis Tervezés 1/3 Hibák k száma Növeljük a tesztelés s intenzitását? t? Költs ltségek Kódolás 1/6 Intenzit zitás BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 19 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 20
Jó tudni l A szoftverprojektek 31%-át lelövik mielőtt elkészül! l A szoftverprojektek 53%-a 90%-kal túllépi az előre tervezett költségeket! l 9%-a a nagy, és 16%-a a kis szoftverprojekteknek nem készül el határidőre! l A szoftverprojektek 56%-a már az analízis fázisában elcsúszik! 1.2 A szoftverkrízis zis 2% azonnal ment 30% soha nem ment, de kifizették 45% soha nem ment rendesen 20% alapos átdolgozás után n ment 3% javítás után ment BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 21 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 22 Előzm zmények (a programozás s hőskora) h l A mai fogalmak szerint gyenge hardver l Gyenge fejlesztői szoftver ellátottság l Monolitikus programozás Nehezen becsülhető előre a szükséges erőforrás mennyisége Nehezen határidőzhető a feladat Körülményes a team-munka nem teljes körű a tesztelés (triviális hibák még futáskor is kibukhatnak (interpreterek)) Nagyon nehézkes a program módosítása, bővítése Személyiség függő programok BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 23 A szoftver krízis tüneteit l Megbízhatatlanok a szoftverek (nem tudja a speckót, nem szűri az inputot, nem robosztus) l Nehezen alkalmazkodnak a konfiguráció változásához l A fejlesztés nehézkes (részprogramok összeállítása nehézkes, körülményes a tesztelés, nem hatékony a team-munka) l Nem informatívak a szoftverek (nincs korrekt hibajelzés, merev input oldal, stb.) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 24
A szoftverkrízis zis okai A minőségi követelmények változása Futási idő minimalizálás Tárigény minimalizálás Felhasználóbarát felület Feltétlen megbízhatóság Könnyű karbantarthatóság Könnyű továbbfejleszthetőség Gyors, olcsó kivitelezhetőség Határidők pontos betartása Egyéniség független fejlesztés BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 25 A szoftverkrízis zis okai (folyt.) A szoftverek méretének növekedése maga után vonta a komplexitás növekedését (min. négyzetes az összefüggés). A fejlesztési módszerek nem tartottak lépést a változással. A felhasználói környezet változása (a felhasználók száma, felkészültsége, az alkalmazási körülmények gyökeresen megváltoztak. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 26 A krízisb zisből l kivezető út Software Engineering Konferencia 1968. Október 7-11. Garmisch, NSZK E. W. Dijkstra 1930-2002 2002, Austin 1968, Garmisch BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 27 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 28
Megoldás A szoftverkészítés technologizálása Új elvek, módszerek és eszközök kifejlesztése (CASE) Szoftverszabványok bevezetése, szoftver minőségbiztosítás Új programozási paradigmák alkalmazása BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 29 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 30 Új j programozási Paradigmák Strukturált programozás (SP, SD, SA) Moduláris programozás ( Divide et Impera ) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 31 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 32
Objektum-Orientált programozás (OOP, OOD, OOA, OOAD) A szoftver jellemzői A hagyományos termékek készítésének folyamata Analizs Vázlatos tervezés Részletes tervezés Fizikai megvalósítás BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 33 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 34 A szoftver termékek esetében: A hagyományos termékek hibaarány görbéje l A szoftver termék esetében eltérő a megvalósítás fázisa Nincs átültetés az anyagba Nem kell figyelembe venni a tervezés során lanyagjellemzőket lmegmunkálási módok jellemzőit hibaarány gyerekbetegségek öregedés, kopás l A szoftver nem kopik el BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 35 idő BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 36
A gyerekbetegségek okai: l tervezési-, gyártási-, szerelési hibák l hibás anyagok, IC-k, stb. az elkopás okai: l öregedés, hőmérsékleti-, mechanikus-, környezeti behatások hibaarány A szoftver termékek hibaarány görbg rbéje Konstans az elavulásig idő Ez az ideális, illetve változtatás nélküli állapot. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 37 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 38 A szoftver termékek hibaarány görbg rbéje a változtatv ltoztatásokat is figyelembe vévev ve hibaarány Változtatások Győztes csapaton ne változtass!??? idő A változtatások újabb hibákat eredményeznek, melyek a termékben összegződnek. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 39 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 40