Oktatási cél:
Szoftver Tervezés és Technológia 1. Bevezeté Bevezetés, problé probléma megfogalmazá megfogalmazás, megoldá megoldási paradigmá paradigmák Dr. Tick Jó József Budapesti Mű Műszaki Fő Főiskola Neumann Já János Informatikai Fő Főiskolai Kar Szoftvertechnoló Szoftvertechnológia Inté Intézet BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
1
Félévi követelményrendszer l Aláírás:
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
2
Félévi követelményrendszer l Vizsga:
– 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. BMF-NIK-SZTI
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.
Tick: Szoftver Tervezés és Technológia
3
– 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
4
1
Ajánlott irodalomak Roger S. Pressman:
Ian Sommerville:
Software Engineering
Szoftverrendszerek Fejlesztése
A Practitioner’s Approach
Panem kiadó Budapest, 2002 ISBN 963 545 311 6
McGRAW-HILL Int. Ed., 2005 ISBN 007 123840 9
Hallgatók számára 20% kedvezmény!!! www.panem.hu 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
Spektrum Akademischer Verlag Heidelberg, Berlin 1998 ISBN 3 8274 0065 1
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
7
Építészet
Szoftverfejlesztés
Egy pici építmény
Egy kis program
(tervezés nélkül gyorsan „összeütjük”)
(hasonló képpen)
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
8
2
Családi ház
Közepes méretű Program
(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.)
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
9
Felhőkarcoló
Nagy méretű szoftver projekt
(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
10
A probléma a
Miért ?
KOMPLEXITÁS Talá Talán, mert a beton 28 nap alatt megkö megköt ! ... é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
3
1. Bevezetés 1.1 Mi a probléma ? A rendszerköltségen belül a hardver / szoftver arány változása
Szoftverfejlesztési költségek: NASA Hold-projekt: 1.000.000.000 $ (8 év)
Rendszerköltség 100% 90%
„That’s one small step for (a) man, one giant leap for mankind”
Hardver Szoftver
1961. Május 25. Az amerikai Kongresszus ülésén
10% 1957 BMF-NIK-SZTI
1987
Idő
Tick: Szoftver Tervezés és Technológia
13
1969. Július 20. „The eagle has landed”
A szoftver ipar az USA-ban a ‘80-as években 10.000.000.000 $/év termel BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
14
A szoftverfejlesztés tradicionális fázisai: Analízis Tervezés Implementáció Tesztelés Követés
Tulajdonképpen mi a drága benne? A szoftverfejlesztés melyik fázisa drága?
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
15
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
16
4
A szoftverfejlesztés fázisainak költség arányai:
BMF-NIK-SZTI
Javí Javítás 1/6 1/6
Analí Analízis Tervezé Tervezés Implementá Implementáció ció Tesztel és Tesztelé 1/3
Tick: Szoftver Tervezés és Technológia
Tová Továbbbbfejleszté fejlesztés 2/3
17
A szoftverfejlesztés költségarányai a követés nélkül:
Tesztel és Tesztelé 1/2
BMF-NIK-SZTI
Adaptá Adaptáció ció 1/6 1/6
Tick: Szoftver Tervezés és Technológia
18
Hibáák sz szááma Hib
Növeljü veljük a tesztelé tesztelés intenzitá intenzitását?
Analí Analízis Tervezé Tervezés 1/3
ltséégek Költs
Követé vetés 2/3
A követés költségeinek megoszlása:
Kódolá dolás 1/6 Intenzit ás Intenzitá BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
19
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
20
5
1.2 A szoftverkrízis
Jó tudni … lA
szoftverprojektek 31%-át „lelövik” mielőtt elkészül!
2% azonnal ment
lA
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! szoftverprojektek 56%-a már az analízis fázisában elcsúszik! Tick: Szoftver Tervezés és Technológia
21
Elő Előzmé zmények (a programozá programozás hő hőskora) lA
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
20% alapos átdolgozá tdolgozás utá után ment
45% soha nem ment rendesen
lA
BMF-NIK-SZTI
30% soha nem ment, de kifizetté kifizették
3% javítás után ment
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
22
A szoftver krí krízis tü tünetei 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
6
A szoftverkrí szoftverkrízis okai (folyt.)
A szoftverkrí szoftverkrízis okai A minőségi követelmények változása
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).
Futási idő minimalizálás Tárigény minimalizálás
A fejlesztési módszerek nem tartottak lépést a változással. 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
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.
25
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
26
E. W. Dijkstra
A krí krízisbő zisből kivezető kivezető út
1930-2002
Software Engineering Konferencia 1968. Október 7-11. Garmisch, NSZK
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
7
Megoldá 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
Új programozá programozási Paradigmá Paradigmák
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
30
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
8
Objektum-Orientált programozás (OOP, OOD, OOA, OOAD)
A szoftver jellemző 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
34
A hagyomá hagyományos termé termékek hibaará hibaarány görbé rbéje
A szoftver termé termékek eseté esetében: szoftver termék esetében eltérő a megvalósítás fázisa
hibaarány
lA
– Nincs „átültetés” az anyagba – Nem kell figyelembe venni a tervezés során l Anyagjellemzőket l Megmunkálási módok jellemzőit lA
Tick: Szoftver Tervezés és Technológia
gyerekbetegségek
öregedés, kopás
szoftver „nem kopik el” idő
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
35
BMF-NIK-SZTI
Tick: Szoftver Tervezés és Technológia
36
9
A szoftver termé termékek hibaará hibaarány gö görbé rbéje hibaarány
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
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é termékek hibaará hibaarány gö görbé rbéje a vá változtatá ltoztatásokat is figyelembe vé vé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
10