Programtervezés Dr. Iványi Péter 1
A programozás lépései 2
Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3
Feladat megfogalmazása Egyértelmű Teljes, minden részletre kiterjedő Érthető áttekinthető Pontos, szabatos Tömör, lényegretörő Szemléletes 4
Input adatok Mik az input adatok? Adatok értéktartománya Beviteli formátum Hogyan kell befejezni a bevitelt? Hibás adatok javíthatók-e, hogyan? Speciális előírások Kapcsolat adatok között Ellenőrzési lehetőségek 5
Output adatok Milyen adatot kell megjeleníteni? Milyen formátumban? Adatok megőrzése későbbre, milyen formátumban 6
Szokásos hibák 1. Nem teljesen tisztázott feladat 2. Nem egyértelmű fogalmak (pl. második legnagyobb) 3. Félrevezető szöveges leírás 4. Áttekinthetetlen megfogalmazás 5. A hogyanról szól a mit helyett 7
Tervezés Az összegyűjtött információt figyelembe véve a végleges adat szerkezetek és algoritmusok kidolgozása 8
Tervezési módszer A számítástechnika lehetőségei Milyen számítógépre, milyen rendszerre épül? A feladat nagyságrendje A csapat felkészültsége Rendelkezésre álló szoftverek Hagyományok, szabványok Anyagi fedezet 9
Elkészítés Tesztelés fejben Mi történik ha...? Program terv Ha hibátlan kész a feladat 10
Programírás Kódolás Programtervnek megfelelő forráskód Követi a programtervet Áttekinthető Tömör és egyértelmű megjegyzésekkel el van látva 11
Tesztelés A programozó maga is tesztel Próba adatokkal Célja: A programtervnek megfelelően működik? Van-e input adat amire leáll, vagy hibásan működik? Hatékony-e? Biztonságos? Felhasználóbarát? 12
Formai ellenőrzés Statikus tesztelés Automatizálható Minden utasítást legalább egyszer végre kell hajtani Kódellenőrzés Algoritmus vizsgálata (átolvasás) Ellentmondás keresés Kezdőérték nélkül használunk változót Kétszer adunk kezdőértéket 13
Statikus tesztelés inicializálatlan változó felhasználatlan változó végrehajthatatlan utasítás végtelen ciklus típuskeveredés azonosan igaz vagy hamis feltétel konstans értékű, változókat tartalmazó kifejezés 14
Dinamikus tesztelés Működés közben vizsgáljuk Fekete doboz módszer (adat vezérelt) A kód ismerete nélkül Minden adatot nem lehet tesztelni ezért teszt csoportok létrehozása Érvénytelen adatokból is kell teszt csoportot létrehozni Határesetek vizsgálata! 15
Fehér doboz módszer Ismerjük a kódot Dinamikus tesztelés Utasítás lefedés: minden utasítást legalább egyszer végrehajtjuk Döntés lefedés Részfeltétel lefedés... 16
Dinamikus tesztelés Volumen teszt (sok adat) Stressz teszt Nagy mennyiségű gyorsan érkező adattal Meghatározott időn belül hajtson végre egy feladatot Biztonsági teszt Vannak-e ellenőrzések 17
Hibakeresés Lényege: a felfedett hibajelenség okozójának megtalálása. 1. Eszközök használata előtt alapos végiggondolás 2. Csak akkor javítani, ha megtaláltuk a hibát 3. Egy megtalált hiba a program más részeiben is okozhat hibát 4. A hibák száma, súlyossága a program méretével nemlineárisan nő 5. Egyformán fontos, hogy miért nem csinálja, amit várunk, illetve, hogy miért csinál olyat, amit nem várunk 18
Hibajavítás Lényege: a megtalált hiba kijavítása. 1. A hiba kijavítása a program más részében okozhat hibát 2. A hibát kell javítani és nem a tüneteit 3. A jó javítás valószínűsége a program méretével fordítva arányos 4. A hibajavítás a tervezési fázisba is visszanyulhat 19
Hibakeresési eszközök Memória, változó kiírás Nyomkövetés (vezérlés, változók), hibától visszafelé Töréspont elhelyezése A hiba helyének és okának kijelzése Speciális ellenőrzések (pl. indexhatár) Lépésenkénti végrehajtás Állapotellenőrzés 20
Dokumentálás A program elkészülte után is kell dokumentációt készíteni Fejlesztői Felhasználói 21
Dokumentálás Fejlesztői dokumentáció specifikáció, követelményanalízis algoritmusok leírása, döntések, más alternatívák, érvek, magyarázatok adatleírás kód, implementációs szabványok, döntések tesztesetek hatékonysági mérések környezetleírás fejlesztési lehetőségek 22
Dokumentálás Felhasználói dokumentáció feladat (összefoglaló és részletes is) környezetleírás használat leírása (betöltés, lehetséges válaszok,...) bemenő adatok, eredmények, szolgáltatások mintaalkalmazás -példafutás hibaüzenetek és a hibák lehetséges okai 23