Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
TÁMOP 4.2.1/B-09/1/KMR-2010-0003
Projekteredmények
Kovács Attila témavezetésével készült diplomamunkák és szakdolgozatok
2010 szeptember - 2012 június
(névsorrendben)
1. Appel Ágnes: Kockázatelemzés
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 január
• A téma rövid leírása
A kockázatelemzés segítséget nyújt abban, hogy egy rendszer leggyengébb
pontjait, a legnagyobb kockázatot jelentő fenyegető tényezőket azonosítani
lehessen és ennek ismeretében a költséghatékony, kockázatarányos védekezést
lehessen kialakítani. Megfelelően megalapozott kockázatelemzés hiányában
ugyanis nem biztosított, hogy a biztonság fokozására fordított kiadások a
leghatékonyabban kerülnek felhasználásra. A kockázatarányos védekezés nem
csak költségminimalizálás szempontjából lényeges. Egy határon túl ugyanis
értelmetlen bizonyos területeken túlzottan védekezni, amíg más területeken
sokkal nagyobb kockázatú veszélyek is vannak a rendszerben, így nagy
valószínűséggel azok fognak problémát, veszteséget jelenteni. A kockázatok
meghatározása így az egyenszilárdságú védelem kialakításában alapvető szerepet
játszik. A kockázatelemzés tehát az IT biztonság megteremtésének lényeges
lépése, azonban látni kell, hogy ezen a területen a bonyolult IT és üzleti
folyamatok összefonódása miatt valódi számokban (pénzösszegekben) kifejezett
kockázatokról, károkról nem beszélhetünk. A kockázatbecslés problémáit ezért az
úgynevezett kockázatmenedzsment módszerével szokás kezelni a gyakorlatban. A
legtöbb, gyakorlatban alkalmazott kockázatbecslési módszertan a kategorizálás
módszerét alkalmazza, azaz csak nagy nagyságrendben határozza meg a
bekövetkezés valószínűségét és a kár nagyságát. Ez ugyan nem teszi lehetővé,
hogy a biztosításokhoz hasonlóan, számszerű kockázati értéket határozzunk meg
egy veszélyforráshoz, de már jó kiinduló pontot ad. Az egyes kockázati tényezőket
egymáshoz hasonlítva határozzuk meg a gyenge láncszemeket, azokat a pontokat,
ahol a legcélszerűbb védekezni. Ezt a folyamatot nevezzük kockázatelemzésnek
vagy kockázatmenedzselésnek, nevében is megkülönböztetve a
kockázatbecsléstől. A diplomamunka célja az aktuális kockázatelemzési
módszertanok áttekintése, különös tekintettel a mennyiségi módszertanokra.
• Témavezetői vélemény
A kockázatelemzés az üzleti célok elérése érdekében a kockázatok megértéséről
és a jelentős kockázatok azonosításáról, kezeléséről szól; egy strukturált
megközelítés a bizonytalanság kezelésére, amely stratégiák kidolgozásával
mérsékli a kockázatokat. Ilyen stratégiák lehetnek: a kockázatok átruházása egy
másik félnek, kockázatok elkerülése, a kockázatok negatív hatásainak
csökkentése, illetve egy bizonyos kockázat szint alatt a következmények
elfogadása. A diplomamunka célja az aktuális kockázatelemzési módszertanok
áttekintése volt, különös tekintettel az informatikai fejlesztésekben rejlő
kockázatokra. A diplomamunka első fejezete a kockázatkezelés elméleti alapjait
foglalja össze: fajtái, a kockázat forrásai, a kockázatmenedzsment életciklusa, stb.
A második fejezet a kockázatelemzés módszereit taglalja, részletesebben
vizsgálva az Ishikawa, a hibafa, az eseményfa, a Bayes-i hálók, a Pareto, és az
FMEA módszereket. A leírások korrektek, a példák szemléletesek. A harmadik
fejezet egy példa projektet ismertet. A negyedik fejezet a teljes projektre
vonatkozóan egy Pareto-Fishbone-FMEA kockázatelemzést mutat be. Különösen
tetszett az FMEA részletezése. További példaként a jelölt az utolsó fejezetben a
rendszer tesztelésének kockázataival foglalkozik. Az elemzés korrekt és érthető,
azzal a megjegyzéssel, hogy az idézett [14] cikkben a riportalany hibás adatokat
közölt. A helyes értékek:
A sikerességet az „on time, on budget, fully functional” mérőszámok, a bukást a
„canceled or never used” mérőszámok, a problémás eseteket a „late, over
budget, and/or less than promised functionality” jellemzik. Az okok sokrétűek, az
egyik elsődleges ok valóban az említett komplexitás és a rosszul feltárt
követelmények.
2. Billinger Sándor: SOAP web szolgáltatások automatikus tesztelése J2EE
környezetben
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 június
• A téma rövid leírása
Napjainkban az informatikai szektort erőteljes verseny jellemzi. Jelentős
versenyelőnyre tehet szert az a szoftverfejlesztő szervezet, amely a szoftver
termék piacra kerülési idejét (time-to-market) valamint a fejlesztéshez szükséges
mérnöknapok számát le tudja csökkenteni amellett, hogy a szoftver minőségét és
megbízhatóságát garantálni tudja. Az automatikus szoftvertesztelés a néhány
emberév nagyságrendű projektek esetén kezd egyre jelentősebbé válni, mert
képes a fejlesztési ciklus hatékonyságát mindkét szempont szerint javítani a teljes
élettartamra vetítve. A tesztelési folyamat automatizálására számos megközelítés
és módszertan létezik. A felhasználói felületekkel szemben az API-t kiajánló
szoftver komponensek tesztelése jóval egyszerűbb és egzaktabb. A szakdolgozat
célja egy olyan SOAP web szolgáltatást (web service) kiajánló J2EE technológiával
készült szoftver komponens automatikus tesztelése, amely alatt MySQL adatbázis
található. Terveink szerint a tesztelő alkalmazás lehetőséget nyújt build és/vagy
deploy időben történő automatikus, minél teljeskörűbb tesztelésre. Fontos
követelmény, hogy a szoftver fejlődésével a tesztesetek módosítása és bővítése
bárki által egyszerűen megoldható legyen. Konkrét feladatok:
• Áttekintjük a J2EE környezetben SOAP web szolgáltatásra alkalmazható létező
tesztelési módszertanokat.
• Összefoglaljuk a teszteléssel szemben támasztott műszaki követelményeket.
• Konkretizáljuk a követelményeket egy minta J2EE web szolgáltatásra
vonatkozóan.
• A mintaalkalmazáshoz teszteseteket készítünk.
• Irányelveket fogalmazunk meg a szoftver fejlesztői számára az időközben
bekerülő új funkciók tesztelésének kialakításához.
• Elemezzük a továbbfejlesztési lehetőségeket a hatékonyság mentén.
• Témavezetői vélemény
A diplomamunka témája web szolgáltatásokat kiajánló J2EE technológiával
készült szoftver komponensek tesztelését támogató szoftverkörnyezet (angolul:
test harness) kialakításának vizsgálata és megvalósítása volt. A dolgozat négy
fejezetből áll. Az első, bevezető fejezet után a második fejezet a tesztelés
alapvető fogalmaival, módszereivel foglalkozik. A szerző az alábbi kérdéseket
válaszolja meg:
• Mi a szoftverminőség és miért fontos?
• Miért kell tesztelni?
• Mit csinál pontosan egy szoftvertesztelő?
• Melyek a jó szoftvertesztelő alapvető tulajdonságai?
• Melyek a tesztelés legfontosabb alapelvei?
• Hogyan illeszkedik a szoftverfejlesztési életciklusba a tesztelés?
• Melyek a legfontosabb életciklus-modellek?
• Milyen a tesztelés folyamat életciklusa? Melyek a leggyakoribb kilépési
feltételek?
• Milyen a leggyakoribb tervezési technikák?
• Milyen szoftverhibák léteznek? Mekkora a költségük?
• Melyek a tesztelés szintjei?
• Milyen tesztelési módszerek léteznek?
• Milyen tesztjelentési dokumentumokat szoktunk írni?
• Hogy néz ki egy hiba életciklusa?
• Mikor és hogyan automatizáljunk?
A leírások érthetőek és korrektek, apró hiányosságokkal. A harmadik fejezet a
tesztelést támogató szoftverkörnyezet felépítését tárgyalja. A tesztrendszer egy
szerverből és virtuális gépekből áll. A futtató rendszer Hudson, amihez egy XML
alapú tesztforgatókönyv-tárház társul. A teszt szkriptekben EJB fürtök tesztelése is
megadható. A konfigurációkezelés SVN, az egész rendszer rendkívül jól
paraméterezhető. A szerző konkrét példákon keresztül mutatja be az
egységtesztelést, a specifikáció-alapú tesztelést (a távolról elérhető és rejtett
funkcionalitások tesztelését egyaránt). A teszt harness felépítését átgondoltnak és
jól megvalósítottnak vélem, csakúgy, mint az összefoglalásban említett
továbbfejlesztési lehetőségeket.
3. Boldizsár Szilárd: Az ELTE IK hálózati infrastruktúra sérülékenység-
vizsgálata
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2012 június
• A téma rövid leírása
Napjaink információáradatában rendkívül fontos, hogy az információ biztonságára
is odafigyeljünk: számos olyan adat kering akár a világhálón, akár a lokális
hálózatokban, amelynek rossz kezekbe kerülése gazdaságilag/politikailag
érzékenyen érintheti annak tulajdonosát. Emiatt a hálózatba kapcsolt
rendszereknél különösen oda kell figyelni a kívülről, hálózaton keresztül indított
támadások megakadályozására. Számos olyan szoftveres és hardveres lehetőség
van, amelyekkel adatainkat megvédhetjük (pl.:tűzfal, kódolás), azonban szintén
jelentős azon hackerek száma, akik kifejezetten eme eszközök megkerülésén
dolgoznak, ezáltal hozzáférve a bizalmas adatokhoz.
A hálózati sérülékenység vizsgálat (Network Vulnerability Assessment) célja, hogy
a belső és DMZ hálózaton lévő összes IP alapú host (számítógép, aktív eszköz,
stb.) felismerése és kritikusság szerinti kategorizálása után az ismert
sérülékenységekkel szembeni védelmét megállapítsuk.
A diplomamunka célja az ELTE Informatikai Kar hálózatának biztonságtechnikai
szempontok szerinti sérülékenység vizsgálata, a lehetséges kiskapuk felfedése,
illetve egy komplex biztonsági értékelés. A dolgozatban számos olyan módszert
szeretnék bemutatni, amely egy esetleges külső támadást szimulálna.
• Témavezetői vélemény
A dolgozat témája az ELTE IK hálózatának sérülékenységi elemzése. A hálózati
sérülékenység vizsgálat (Network Vulnerability Assessment) célja, hogy a belső és
DMZ hálózaton lévő összes IP alapú host (számítógép, aktív eszköz, stb.)
felismerése és kritikusság szerinti kategorizálása után az ismert
sérülékenységekkel szembeni védelmét megállapítsuk.
A diplomamunka 7 fejezetből áll. Az első, bevezető fejezet után az
információbiztonság alapjairól kapunk áttekintést: rövid történet, az
információbiztonság részei, az információ, mint a védelem tárgya elemei, a CIA
elv, biztonsági alapfogalmak (sérülékenység, fenyegetés, kockázat, védelmi
intézkedés, azonosítás, hitelesítés, PreDeCo elv). Az ismertetések világosak,
szabatosak. A 3. fejezet az OSI és a TCP/IP modelleket, az IEEE 802.3 és IEEE
802.11 hálózati szabványokat, az LLC és MAC protokollok, a DNS protokoll (RFC
1034 és 1035 névtér leírásokkal), az ARP, SMTP, SNMP protokollok ismertetését
tartalmazza. A 3.3 fejezet hálózatokról, topológiákról, az IP címosztályok
felépítéséről szól. A leírások pontosak, jól érthetőek. A 4. fejezet
kockázatmenedzsmentről szól. Az ismertetés tartalmazza az információbiztonság
folyamatának elemeit, és azok részletes kifejtését (vagyonleltár, sebezhetőség-
vizsgálat, kockázatértékelés, védelmi intézkedések tervezése). A kockázatelemzés
leírása tartalmazza az ismertebb kvantitatív és kvalitatív módszereket, a védelmi
intézkedések típusait. Az 5. fejezet a hálózati sérülékenységeket, a különböző
fenyegetéseket foglalja össze (hálózati oldal: ARP spoofing, IP spoofing, source
routing, fragment attacks, SYN flood, smurf attack, ICMP flood, ping of death,
ICMP redirecting; egyéb: data remanence, tunneling, targeted data mining,
backdoor, cracking, malicious code, spying, shoulder surfing, emanation, MIM
type attacks, dumpster diving, eavesdropping, impersonalization, mobile code,
object reuse, buffer overflow, covert channel, social engineering, sniffing),
különös tekintettel az ARP és DNS mérgezésre, a man-in-the-middle támadásra, a
NAT/PAT forwarding-ra, a tunneling technikákra. A leírások nagyon alaposak,
pontosak, nagy részük az internetről való. Az 5.2 fejezet a webes biztonságról
szól: a HTTP protokollról, a sütikről (cookies), és a webes sérülékenységekről (XSS,
injection hibák, RFI, CSRF, directory traversal, azonosítás). A 6. fejezet tartalmazza
a kari hálózaton végzett esettanulmányt. A támadásokat 3 irányból
kezdeményezte: vezetékes LAN, Wifi, és internet. A nyilvános gépteremben a LAN
támadás során root jogosultság szerezhető, amiből valószínűsíthető módon a kar
egészére vonatkozó rendszergazda jelszó lenne kinyerhető. A jelölt a Wifi elleni
támadáshoz az easy-creds eszközt használta, megmutatta, hogy a sikeresen
alkalmazott technika segítségével hogy lehetne ETR azonosítókat szerezni. Az
internetes támadáshoz a serversniff lett kiválasztva (gépek), majd a portok
vizsgálatát az nmap végezte (people.inf.elte.hu). A célgép file-rendszerét a
DirBuster térképezte fel. A web-szolgáltatások megfelelőségének átvizsgálását a
nikto és az armitage nevű program végezte. A jelölt végül a pandora szelencéjét
vizsgálta. Ezeken a szervereken exploit lehetőség nem volt. További vizsgált
gépek: ujmail, psztsrv, pszt. Ezen legutóbbi gép számos sérülékenységet rejteget.
A diplomamunka mind tartalmilag, mind formailag messzemenően kielégíti a
kívánt követelményeket. Kiemelném a vizsgálatok átgondolt, strukturált
ismertetését.
4. Debreczeni László: ITIL folyamatokat támogató web portál
• A diplomamunka típusa: BSC szakdolgozat
• Védés dátuma: 2012 január
• A téma rövid leírása
Az információtechnológia terjedésével mind az infrastruktúra, mind az
informatikai rendszerek egyre mélyebben épültek be a vállalatok, intézmények
működésébe, egyfajta függés alakult ki az információtechnológiai rendszerektől,
illetve az azok által biztosított szolgáltatásoktól. A helyzet kezelésére kozták létre
az IT Infrastructure Library-t (ITIL, IT Infrastruktúra Könyvtár), azzal a céllal, hogy
gyűjtse össze a jól bevált gyakorlati tapasztalatokat, és azokat felhasználva a
kormányzati területen javítsák az informatikai infrastruktúra működtetését. Az
informatikai szolgáltatásmenedzsment egymással együttműködő folyamatok
együttese, amelynek feladata, hogy az ügyféllel megállapodott szolgáltatási
szinteken biztosítsa a szolgáltatás minőségét. Az ITIL definiálja a
kulcsfolyamatokat és egy keretet ad az informatikaszolgáltatás irányítására. A
diplomamunka az ITIL által javasolt folyamatok webes támogatára szolgáló portál
tervezését és megvalósítását tűzi ki célul.
5. Erdélyi Zsolt: Ruby programok hívási gráf alapú vizsgálata
• A diplomamunka típusa: BSC szakdolgozat
• Védés dátuma: 2012 január
• A téma rövid leírása
A dolgozat témája hívási gráf alapú vizsgálati módszerek kidolgozása és integrált
eszköz formájában történő megvalósítása Ruby programokhoz.
A program legfontosabb céljai:
• hívási gráf felépítése a szintaxis elemzésével,
• felesleges kódrészletek (osztályok, metódusok) felderítése a programkód egyszerűsítése érdekében,
• hatásanalízis, azaz egy adott helyen történő programkód változás hatásainak megállapítása a program egészére nézve,
• a tesztek fedettségi mértékének meghatározása.
A szoftver megvalósítása során felhasznált eszközök:
• TDD (tesztvezérelt fejlesztés, Rspec és Cucumber keretrendszerekben),
• Metric_fu (metrikák előállítását elősegítő munkák gyűjteménye),
• Sinatra (webalkalmazás készítését elősegítő eszköz),
• Raphaël-JavaScript Library (vektor grafikák készítését elősegítő eszköz),
• Ruby2ruby (szintaktikai elemzést elősegítő eszköz).
6. Falucskai István: Tesztautomatizálás az automotívban
• A diplomamunka típusa: BSC szakdolgozat
• Védés dátuma: 2011 június
• A téma rövid leírása
Az alkalmazás kizárólag az OpenNav projekt tesztelésére alkalmas és azon belül is
célirányosan az OpenNav API-ban lévő hibák kiszűrését hivatott szolgálni. Hiába
képes az összes OpenNav API parancs minden lehetséges paraméterezésének
legenerálására, nem lehet túlbecsülnünk az eszköz értékét. Egy általános
folyamatos tesztelés nem alkalmas kiváltani a célirányos teszteléseket. Könnyen
belátható, ha a funkcionális tesztelésekből ismert határérték tesztelést nézzük. A
mi esetünk ugyanis az függvényparaméterek mindig véletlenszerűen választódnak
ki így nincs semmi garancia az ilyen jellegű esetek vizsgálatára. Felhasználását is a
tesztelők helyett inkább a fejlesztőknek ajánljuk, mivel úgy lett kialakítva, hogy a
NaviServer többek között debug módban futhat és így a hiba fellépésekor azonnal
sok információ áll rendelkezésre, amivel esetenként megspórolható a hiba
reprodukciójának meghatározására fordított energia.
7. Gonda Zoltán: Webalkalmazások védelme
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 június
• A téma rövid leírása
Az elmúlt években egyértelműen megfigyelhető a különböző web-alapú
technikák, illetve webes felülettel (is) rendelkező alkalmazások térhódítása.
Azonban ez a technológia egy új szemléletmód kialakulását is szükségessé teszi.
Ezek az alkalmazások ugyanis más alapelvek mentén működnek, mint a
hagyományos deszktop alapú szoftverek. Sajnos a fejlesztők azonban sok esetben
nincsenek felkészülve ezekre a régi-új kihívásokra, nem ismerik a webes
alkalmazásfejlesztés biztonsági kritériumait, a potenciális sérülékenységeket. A
diplomamunka célja egyrészt rávilágítani ezekre a problémákra, bemutatni a
leggyakoribb biztonsági hibákat, amelyek webes környezetben előfordulnak.
Másrészt megmutatni hogyan lehet ezeket a hibákat kiküszöbölni, illetve ha erre
már nincs lehetőség, hogyan lehetséges mégis biztonságossá tenni egy kész
webalkalmazást. A dolgozat bemutatja az úgynevezett webalkalmazás-tűzfalak
(Web Application Firewall – WAF) koncepcióját, valamint konkrét termékek
vizsgálatával leteszteli, mennyire képesek ezek a szoftverek megvédeni egy
sérülékeny alkalmazást.
• Témavezetői vélemény
A diplomamunka témája a webes felülettel is rendelkező alkalmazások biztonsági
kritériumainak, sérülékenységeinek elemzése, a kiküszöbölésükre irányuló
törekvések összefoglalása, a Web Application Firewall koncepciójának
tanulmányozása volt. A bevezetés utáni második fejezet a webes szoftverek
biztonsági kérdéseit taglalja: fekete és fehér listás szűrést, helytelen
inputvalidációt, a kimenet helytelen kódolását, információszivárgást, operáció
rendszer szintű injekciót, hibás szál-szinkronizációt. A szerző minden problémához
megelőzési útmutatót is ad. Megjegyzem, hogy a 12. oldalon lévő példa
megtalálható a http://cwe.mitre.org/data/slices/750.html lapon is, amit
hivatkozni kellett volna. A 2.3 rész a kritikus állapotadatokhoz való külső
hozzáférés, a kódinjekció és a helytelen erőforrás-leállítás (felszabadítás)
veszélyeit taglalja, szintén megelőzési útmutatóval. A 2.4 rész a hibás védekező
technikákról szól (bedrótozott jelszó, szerver oldalhoz tartozó biztonság kliens
oldalra történő kényszerítése). A bemutatott példa szemléletes (lásd
http://cwe.mitre.org/data/definitions/602.html). A harmadik fejezet napjaink
operációs rendszereinek és böngészőinek biztonsági hiányosságait foglalja össze.
A negyedik fejezet a leggyakoribb webes sérülékenységeket mutatja be az
OWASP alapján: XSS (idézve a www.cert.hu oldalról), injekciós hibák,
inputvalidáció nélküli átirányítás, közvetlen objektumhivatkozás, CSFR, nem
megfelelő biztonsági beállítások, hitelesítési mechanizmusok hibái, tárolás
helytelen titkosítással, nem biztonságos kommunikáció, URL hozzáférés-
ellenőrzés gyengeségei. A felsorolt sérülékenységek elleni védelmek leírásai
szépek és szemléletesek. Az ötödik fejezet a webalkalmazás tűzfalak (WAF)
koncepcióját tárgyalja, két konkrét alkalmazást mutatva be (Aqtronix WebKnight,
ModSecurity). A hatodik fejezetben a jelölt összehasonlítja az iménti WAF
alkalmazásokat a FoundStone Hacme Bank 2.0 online mintaportálon. Az
összehasonlító elemzés a dolgozat legérdekesebb része, a jelölt hozzáértését
tanúsítja. A 75. oldal tartalmazza a tesztek rövid leírását, a konkrét tesztek a
következő 35 oldalon keresztül kerülnek bemutatásra. A 7. fejezet a tesztek
alapján levont konklúziókat tartalmazza, amelyekkel messzemenően egyetértek.
8. Horváth Nóra: Test automating in a distributed environment
• A diplomamunka típusa: BSC szakdolgozat
• Védés dátuma: 2011 június
• A téma rövid leírása
The final thesis is going to include design, testing, integration and documentation
of a distributed test framework. The main purpose of this framework is to support
automated testing of specific distributed medical systems, where clients are
spread over the network. Functionalities will include among others: control test
execution from command line and web based user interface, transfer test log files
and other test results to the central test station. The framework shall be multi-
platform (Linux, Windows), easily extensible and implementation of new test
scenarios and test cases shall be convenient.
9. Jenei Gábor: Naplóüzenetek feldolgozása statisztikai módszerekkel
• A diplomamunka típusa: BSC szakdolgozat
• Védés dátuma: 2012 június
• A téma rövid leírása
A naplókezelésben az egyik legkritikusabb probléma a születő hatalmas
adatmennyiség feldolgozása, amelyet különösen nehézzé tesz, ha a naplóüzenet
egyszerű strukturálatlan szövegként jelenik meg. Bár léteznek naplózó technikák,
melyekkel strukturált üzeneteket továbbíthatunk – megkönnyítve a későbbi
feldolgozást –, ezek használata többnyire körülményes és csak szűk területen
terjedtek el, a jellemző naplózási forma még mindig az egyszerű szöveges üzenet.
A syslog-ng-hez létezik "patternize" néven egy klaszteranalízis technikán alapuló
megoldás. Ez a syslog-ng-hez használható minta-adatbázist képes előállítani egy
naplóüzenet-halmaz alapján, melynek segítségével effektíven csoportokba tudjuk
sorolni az üzeneteket időigényes kézi feldolgozás nélkül, ezzel jelentősen
megkönnyítve a későbbi naplókezelést.
Ez a megoldás azonban még nagyon gyerekcipőben jár. Az egyik lehetséges
javítási irány a felhasznált klaszteranalizáló algoritmuselemzése, vizsgálata. A
jelenleg használt algoritmus Risto Vaarandi SLCT programjához kifejlesztett
megoldás, azonban léteznek más klaszterező algoritmusok is, melyek
alkalmazhatóak lehetnek naplóüzenet-jellegű adathalmaz csoportosítására. A
dolgozat egyik feladata ennek felderítése, és egy vagy több egyéb algoritmus
implementálása, valamint a létező keretrendszerbe történő beillesztése, az
eredmények összehasonlítása, vizsgálata.
10. Juhász Attila: Objektumközpontú programtervezési minták katalógusa
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 június
• A téma rövid leírása
Egy főként .NET, illtve C# alapú programkódokkal kapcsolatos tervezési minták
katalógusát tartalmazza a dolgozat. Részletesen áttekinti, rendszerezi az egyes
mintákat, példakódokkal ellátva. Ezen minták egy-egy ismétlődő szoftver-
tervezési probléma megnevezett, újrafelhasználható megoldásai, melyek
kísérletet tesznek arra, hogy lerögzítsék, újrafelhasználhatóvá tegyék a jól bevált
objektumorientált terveket, architektúrákat. A részletesen kifejtett tervezési
minták leírása lehetővé teszi, hogy a tervezők rugalmasabb, újrahasznosítható
programterveket készítsenek, felhasználva a katalógusba foglalt minták elemeit.
Ezen minták használatával olyan (objektumorientált) programkódot lehet
készíteni, mely egyrészről felhasználja más fejlesztőknek egy adott problémára
kidolgozott vázlatát, ráadásul a kész kód rugalmassága, különböző helyzetekhez
idomítása is rutinmunkának számít. Először bemutatásra kerülnek a létező
minták, illetve, hogy ezek miként segítenek az objektumközpontú rendszerekben
újra és újra visszatérő problémák megoldásában. Az egyes minták értékelésre
kerülnek a dolgozatban. Bemutatásra kerül, hogy ezek a minták hogyan
illeszkednek a szoftverfejlesztés folyamatába, és hogyan oldhatóak meg velük a
leghatékonyabban saját egyéni tervezési gondjaink. Minden mintánál leírásra
kerül, hogy milyen körülmények között alkalmazható, milyen más tervezési
megkötéseket kell figyelembe venni, illetve hogy az adott minta nagyobb terv
részeként való felhasználásánál milyen következményekkel és mellékhatásokkal
kell számolni. Minden minta létező rendszeren, valós életből vett példákon alapul.
Mindegyikhez tartozik kód is, amely bemutatja, hogyan valósítható meg a minta
az olyan objektumközpontú nyelveken, mint a C#, vagy a VB.NET. A dolgozat
választ ad arra a kérdésre, hogy „Miért hatékonyabb egy tapasztalt tervezési
mintákat használó programozó, amit egy kezdő, aki nem használ ilyen
elemeket?”, illetve hogy „Hogyan lesz valakiből profi rendszertervező?”
Megválaszolásra kerül az is, hogy „hogyan segít a tervezésben a DP”.
• Témavezetői vélemény
A diplomamunka célja az objektumközpontú tervminták általános bemutatása
mellett C# programkód részletekkel bemutatni azok .NET környezetben történő
használatát, és egy konkrét vállalati alkalmazás esetében demonstrálni
alkalmazhatóságukat. A dolgozat első, bevezető fejezete az objektum-orientált
alapfogalmakat, a tervminták magyarázatát, előnyeit tartalmazza. A második
fejezet a GOF minták katalógusát taglalja: Létrehozási minták
• Gyártófüggvény (factory)
• Egyke (singleton)
• Elvont gyár (abstract factory)
• Prototípus (prototype)
• Építő (builder)
Strukturális minták
• Illesztő (adapter)
• Híd (bridge)
• Összetétel (composite)
• Dekorátor
• Homlokzat (facade)
• Pehelysúlyú (flyweight)
• Helyettes (proxy)
Viselkedési minták
• Felelősség lánc (chain of responsibility)
• Parancs (command)
• Értelmező (interpreter)
• Bejáró (iterátor)
• Közvetítő (mediátor)
• Emlékező (memento)
• Megfigyelő (obserever)
• Állapot (state)
• Stratégia (strategy)
• Sablon függvény (template method)
• Látogató (visitor) A harmadik fejezet az anti-tervmintákkal foglalkozik. A leírások érthetőek,
korrektek, a példák szemléletesek. Említést érdemel, hogy a szerző saját vállalati
tapasztalatából merít példát a tervminták gyakorlati alkalmazhatóságára.
11. Kasza Péter: Képek távolságmértékei
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 június
• A téma rövid leírása Napjainkban egyre fontosabb szerepet játszanak a képfeldolgozásra épülő
eszközök és alkalmazások. Alapvető probléma a képfeldolgozási alkalmazások
terén az emberi szemléletnek megfelelő távolságmértékek kialakítása.A dolgozat
célja az elterjedt módszerek ismertetése és matematikai jellemzése. Emellett
célom egy robusztus és gyorsan számítható mérték konstruálása, amelyet egy
gyakorlati problémán keresztül is szeretnék bemutatni.
• Témavezetői vélemény
A diplomamunka témája képek közötti távolságok mérésének vizsgálata volt,
különös tekintettel a mátrixnormák, térkitöltő görbék és momentumok
tanulmányozására. A dolgozat négy fejezetből áll. Az első fejezet tartalmazza a
probléma felvetését, a jelölésrendszert, és a vizsgálandó képleíró
tulajdonságokat. A metrikus posztulátumok Tversky kritikáinak ismertetését
illetően ([1]) hiányoltam annak vizsgálatát, hogy vajon milyen képtávolság-
függvény lehet pszeudometrika, szemimetrika, és kvázimetrika. A háromszög-
egyenlőtlenség elemzésekor a dolgozat lineáris terek szeminormáinak
vizsgálatára tér át, amit előtte definiálni kellett volna (másrészt leírni, hogy
mindezt miért lehet megtenni). A második fejezet mátrixnormákról szól. Az
ismertetés érthető és korrekt, néhány helyen apró elírásokkal (pl. a 21. oldalon 3
elírás). Az a teszteredmény, miszerint az adott telítettség-függvény mellett a
mátrixnormával definiált távolság nem tartja szem előtt a képek topológiai
tulajdonságait, valamint a p normák esetén a p növekedtével a távolságfüggvény
emelkedő mértékben büntet a különböző pixelek száma és az eltérések mértéke
szerint, helytálló, kár hogy minderről nem készült alaposabb statisztikai elemzés a
vizsgált 2000 elemű kínai karakterkészleten. A harmadik fejezet a térkitöltő
görbékkel megadható távolságfüggvényeket elemzi. Az ismertetés világos és
érthető, de helyenként túlzottan tömör. A Hilbert, Peano és Lebesgue görbék
mellett említést érdemelt volna a Hilbert görbe Moore-variánsa, amikor a kezdő
és a végpont azonosan a (½,0) pont:
A Peano görbéket illetően is ismertesek variánsok:
, , , stb.
Lényeges észrevétel volt, hogy amíg a Hilbert és Peano görbék közös
tulajdonsága, hogy sehol sem differenciálhatóak, addig a Lebesgue-féle térkitöltő
görbe erre ellenpélda (3.4.2. tétel). Továbbá, a Hilbert görbével ellentétben,
melynek bármelyik része újra térkitöltő görbe, a Lebesgue görbe esetére az állítás
nem igaz. Fontos megjegyezni, hogy nem létezik mindenhol differenciálható
térkitöltő görbe. A szekvenciákra vonatkozó metrikákról a dolgozat nagyon
szűkszavú. Hiányoltam a sztringek távolságmetrikáinak alaposabb ismertetését.
Mindazonáltal korrekt a szerző azon megjegyzése, miszerint térkitöltő görbékkel
az invariáns tulajdonságokat (geometriai transzformációk) nehéz kezelni. A
negyedik fejezet a momentumokat tárgyalja, elsősorban a momentumok alapján
történő képrekonstrukcióra fókuszálva. Ismert, hogy a képek végtelen számú
momentumukból teljesen rekonstruálhatóak. A kérdés az, hogy adott hosszúságú
momentumlistából milyen paraméterek mentén milyen minőségű kép
rekonstruálható. A geometriai momentumok (a többi nem ortogonális
momentummal egyetemben) rekonstrukciója általában nehéz. A szerző [2]
alapján ismertet egy lehetséges megoldást. A probléma továbbra is az, hogy a
folytonos ortogonális momentumok lényegesen rövidebb momentumsorozatból
képesek az eredetihez nagyon hasonló kép visszaállítására. Újabb eredmények azt
mutatják [3], hogy a geometriai momentumok {xpyq : pϵN, qϵN} bázisának
exponenciális tagjaira alkalmazott Schlick approximációval a rekonstrukció
gyorsítható. Lényeges megjegyzés a dolgozatban, hogy geometriai momentumok
segítségével (a kép súlypontjának felhasználásával centrális momentumok
számíthatók) eltolásra és forgatásra történő invariancia is elérhető. Ortogonális
momentumokat alkalmazva rövid momentumsorozatból is jó minőségű kép
rekonstruálható. Hátrányuk, hogy korlátos tartományon definiáltak ([-1,1] a
Legendre momentumoknál, egységsugarú körlemez a Zernike és pszeudo-Zernike
momentumoknál), a koordináta-transzformációk számítási költsége magas,
továbbá geometriai és approximációs hibák is felléphetnek. Sajnos az elméleti
ismertetés mellet a dolgozat konkrét megvalósítást és azokról elemzéseket nem
tartalmaz. A dolgozat említés szintjén foglalkozik a Fourier transzformációval és a
wavelet transzformációval, mint lehetséges egyéb megközelítésekkel. Hasonlóan,
a dolgozat megemlíti az iterált függvényrendszerekkel történő fraktál-
képtömörítések lehetőségét is. A referenciák a témában való alapos elmélyülésre
utalnak, ámbár megadásuk helyenként hiányos. A vállalt robusztus és gyorsan
számítható mérték konstruálása elmaradt.
[1] Tversky, A: Features of Similarity, Psychological Review, 84, pp. 327-352, 1977.
[2] Ghorbel, F, Dhahbi, S, Mezhoud, R: Reconstructing with geometric moments,
Proc. Int. Conf. Machine Intelligence: ACIDCA-ICMI’05, 2005.
[3] Mukundan, R: Fast Computation of Geometric Momemts and Invariants Using
Schlick’s Approximation, International Journal of Pattern Recognition and
Artificial Intelligence, IJPRAI, vol. 22, no. 7, pp. 1363-1377, 2008.
12. Kovács Krisztina Magdolna: Kockázatelemző alkalmazás
• A diplomamunka típusa: BSC szakdolgozat
• Védés dátuma: 2011 június
• A téma rövid leírása
A szakdolgozat témáját képező program célja egy újszerű kockázatelemzési
módszertan alkalmazásszintű megvalósítása. Könnyen értelmezhető, és a
mindennapos munkavégzést támogató eszközt kíván nyújtani. A program
jellegéből fakadóan alkalmas kell, hogy legyen nagy mennyiségű adat tárolására és
kezelésére, mely adatbázis használatát kívánja meg. Képesnek kell lennie
kockázatok paraméterek által történő felvételére és ezek alapján számítások
végzésére, melyek révén megtudható, hogy az adott eredmények fényében szükség
van-e intézkedésre. A felhasználók által alkalmazott és megadott, illetve
kockázatelemzéshez nélkülözhetetlen adatok tárolásához szükség lehet
reprodukálható, sémaként szolgáló adatbázis struktúra kialakítására, mely lehetővé
teszi az adatcsoportok kategorizálását. Amennyiben az adatbázis rendelkezésre áll,
és a felhasználók rendelkeznek írási, olvasási és végrehajtási jogokkal is, az
alkalmazás felületén keresztül elérhető funkcióknak támogatniuk, gyorsítaniuk kell
a munkavégzés folyamatát. A szakdolgozat feladata tehát a fentiekben tervezett
program megvalósítása, mely a következő feladatok elvégzését jelenti:
• adatbázis struktúra tervezése, felépítése MySQL Server 5.5 segítségével,
melynek révén a program futási időben, igény szerint képes olyan adatbázisok
létrehozására és feltöltésére, melyek a program alapvető működéséhez
szükséges adatokat tartalmazzák.
• kapcsolati osztály megvalósítása, mely az adatbázisszerver és az alkalmazás
közti kommunikációt szolgálja.
• felhasználói felület megvalósítása, melyen keresztül elérhetőek a kívánt
funkciók.
13. Kovács Márton: RUNtime - mintaprojekt megvalósítása és elemzése
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 június
• A téma rövid leírása
A diplomamunka célja egy mintaprojekt keretei között megmutatni és elemezni a
szoftverfejlesztés és tesztelés különböző módszereit, eszközeit, különös
tekintettel a minőségi aspektusokra. A mintaprojekt egy futóverseny
lebonyolításának szoftveres támogatását jelenti (webes portál a regisztrációhoz,
szponzorációhoz; riport generátor, kommunikációs szerver GPS szatellit
támogatással, CRM, számlázó-rendszer). A minőségbiztosítás – tesztelés tárgyalja
a menedzsment vonatkozásokat, a specifikáció-alapú tesztelési technikákat, a
struktúra-alapú technikákat, de érintőlegesen a defektus és tapasztalati
technikákat is. Külön részt szentelünk a statikus és dinamikus elemzésnek, a
funkcionális, használhatósági, elérhetőségi, hatékonysági, biztonsági,
megbízhatósági, karbantarthatósági tesztelésnek. Mindezekhez konkrét eszközök
támogatását is igénybe vesszük.
• Témavezetői vélemény
A diplomamunka célja néhány szoftvertesztelési módszertan egy mintaprojekten
keresztüli bemutatása volt. A bevezető után a dolgozat második fejezete rövid
áttekintést ad a tesztelés alapjairól. A harmadik fejezet néhány tesztelési
módszert ismertet. A jelölt először a teszttervezést és tesztdokumentálást (IEEE
829), a követelménydokumentálást (FURFS) és az átvizsgálásokat mutatja be,
utóbbi kettőt konkrét, átgondolt példákkal. A 3.2 alfejezet az egységtesztelésről
szól, majd a cxxtest alkalmazáson keresztül láthatunk konkrét teszteseteket. A 3.3
alfejezet a funkcionális tesztelést tárgyalja. A szerző szerint „az elnevezés azért
megtévesztő, mert minden teszt, ami elsősorban a funkcionalitást vizsgálja,
funkcionális tesztnek minősül, például az egységtesztelés is a funkcionális
tesztelés egy fajtája.”. Valójában ISTQB szerinti megközelítésben specifikáció-
alapú és struktúra alapú módszerek léteznek, függetlenül attól, hogy mi a SUT. A
fejezetben a szerző ír a teszt-vezérelt fejlesztésről, tesztautomatizálásról. A 48.
oldalon említett folyamatos integrációs szerver elnevezés helyesen folytonos
integrációt támogató szerver. A funkcionális tesztmódszertanra adott példa
ötletes, a python nyelvű környezet a célnak megfelelő. A teljesítménytesztek
tervezése és ismertetése szintén korrekt. A 3.4 fejezet a statikus tesztelésről szól,
amit a szerző a Cppcheck és a Flexlint eszközök segítségével mutat be. Formai
oldalról megjegyezzük, hogy a tartalomjegyzékben lévő és a valódi oldalszámok
nincsenek összhangban. A dolgozat egészének megítélésekor egyrészt egy magas
szintű C++ ismertekkel rendelkező fejlesztőt és átlagos módszertani ismeretekkel
rendelkező tesztelőt ismerhettünk meg. A jelölt a vállalt célkitűzéseket sikeresen
megvalósította.
14. Madarász János: Oktatási segédanyag készítése diszkrét matematikához
Sage támogatással
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 június
• A téma rövid leírása
A Sage egy olyan nyílt forráskódú (GNU GPL) programcsomag, ami a modern
matematikai programozás számos aspektusát támogatja: algebra, kombinatorika,
numerikus matematika (alapja a GSL, SciPy, NumPy), kalkulus (alapja a Maxima és
a SymPy), stb. Néhány lényeges jellemvonás:
• Notebook interfész grafikával, szöveg annotációs lehetőséggel, böngésző támogatással – Firefox, Opera, Konqueror, Safari, https protokollal. IPython-ra épülő parancssoros interfész.
• Az alapul szolgáló Python programozási nyelv egyaránt támogatja a procedurális, funkcionális és objektumorientált technikákat. Lehetőség van többmagos processzorok használatára, a párhuzamos és az elosztott programozásra.
• 2D és 3D grafika adatokra és függvényekre. Ritka mátrixreprezentációk. Többváltozós statisztkia (R, SciPy). Képfeldolgozást támogató eszközök. Gráfok megjelenítése és gráfalgoritmusok. Számelméleti függvények. Komplex számok, tetszőleges pontosságú aritmetika, szimbolikus számítási lehetőségek.
• Import és export adatszűrők adatokhoz, képekhez, videóhoz, hanghoz, CAD, GIS, dokumentum és biomedikai formátumok. Formulaszerkesztés, LaTeX-be ágyazhatóság.
• Twisted-del támogatott hálózati hozzáférés alapvető kiszolgálókhoz: SQL, Java, .NET, C++, FORTRAN. Protokollok: HTTP, NNTP, IMAP, SSH, IRC, FTP stb.
• Interfész az ismert komputeralgebra rendszerekhez: Mathematica, Magma, Maple.
A diplomamunka a diszkrét matematika oktatásához készített mintaprogramokon
keresztül mutatná be a nyelvi lehetőségeket.
• Témavezetői vélemény
A diplomamunka célja az informatikus BSc és részben az MSc képzés során a
diszkrét matematika gondolatvilágához tartozó területekhez oktatást támogató
példaprogramok készítése volt Sage nyelven. A Sage egy ingyenes, nyílt
forráskódú komputeralgebra rendszer. Kiválóan alkalmas a BSc képzésben
előforduló mindennemű algoritmikus probléma vizsgálatára, megoldásának
demonstrálására. A dolgozat az alábbi területekhez kapcsolódó példákat,
algoritmusokat tartalmaz:
• Logika (ítéletkalkulus, rezolúció)
• Kombinatorika (permutáció, variáció, kombináció, ismétléssel és anélkül)
• Számelmélet (osztók száma, lineáris diofantikus egyenletek, Euler-féle φ függvény, gyors hatványozás, lineáris kongruenciák, kínai maradéktétel, maradékrendszerek, lánctörtek, diofantikus approximáció)
• Számítási modellek (Turing-gép, RAM gép)
• Gráfok (Euler-kör, Hamilton-kör, de Bruijn gráf, Kruskal algoritmus, Dijkstra algoritmus, véges állapotterű problémák modelljei, Prüfer kód)
• Polinomok (Maradékos osztás, lnko, Horner elrendezés, Lagrange interpoláció, titokmegosztás)
• Számfogalom (komplex számok, algebrai, trigonometrikus alak, mátrix reprezentáció, forgatás, kvaterniók, gyors kvaternió szorzás)
• Algebra (véges félcsoportok, csoportok, gyűrűk tulajdonságainak vizsgálatai)
• Kódolás (Polinomkód, Reed-Solomon kód, Huffman kód, Shannon kód, LZW, RSA kód)
A dolgozatban számos kisebb elírást találtam, a munka igazi ereje a
példaprogramokban rejlik. Különösen tetszett a rezolúció, a Turing-gép
szimulátor, a RAM-gép szimulátor és az LZW algoritmus megvalósítása.
15. Mészáros Zsófia: Java alkalmazások minőségellenőrzése
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2012 június
• A téma rövid leírása
Bármilyen termék esetén – legyen szó egy egyszerű mp3 lejátszótól kezdve, egy
többfunkciós okostelefonig – elfogadhatatlan az az eljárás, hogy a gyártó gyenge
minőségű terméket adjon át a vásárló/megrendelő számára.
A szoftver is egy termék, tehát átadás előtt fontos minőségének ellenőrzése.
Kihagyhatatlan ez a lépés olyan szoftvereknél, ahol az üzembe helyezés után
felmerült hibák és hiányosságok következményei egyáltalán nem
elhanyagolhatóak, mint például egy orvosi vagy energetikai alkalmazás esetében.
A minőségellenőrzés kérdése nem csak egy új szoftver átadásakor merülhet fel.
Manapság a szoftverfejlesztési projektekben népszerű tendencia, hogy meglévő
rendszerek, komponensek adaptálásával történik a fejlesztés, mivel így a
projektek költségei és nem utolsó sorban a rájuk szánt idő is jelentős mértékben
redukálható. Azonban egy szoftver minősége nem állandó, így szükség van
utólagos ellenőrzésre.
Egy szoftver esetén különböző minőségi szempontokat vizsgálhatunk, mint
funkcionalitás, megbízhatóság, karbantarthatóság, stb. A szoftver, mint termék
minőségi aspektusait az ISO/IEC 9126 szabvány tárgyalja. Természetesen nem
utolsó szempont a megrendelő elégedettsége sem.
A diplomamunka egyik célja bemutatni és összehasonlítani azokat a piacon
található és ingyenes eszközöket, amelyek segítségével egy Java alkalmazás
minősége mérhető, vizsgálható, meghatározható. Másik cél különböző, nyílt
forráskódú Java alkalmazások minőségi elemzése, az ehhez szükséges mérések
automatizálási lehetőségeinek vizsgálata, egyfajta minőségi kockázati profil
elkészítése.
• Témavezetői vélemény
A szoftverek minőségének biztosítása elkerülhetetlen ráfordítást jelent a
szoftveripari vállalkozásoknak és az informatikára épülő vállalatoknak egyaránt. A
diplomamunka célja Java alkalmazások statikus minőségellenőrzése volt:
• néhány ingyenes eszköz bemutatása és összehasonlítása,
• kérdőív tervezése minőségi kockázati profil elkészítéséhez,
• nyílt forráskódú Java alkalmazás minőségi elemzése.
A diplomamunka felépítése követi a kitűzött célokat. Az első rész az
alapfogalmakat tárgyalja: a minőség fogalmát, a szoftverkövetelmények és a
minőség kapcsolatát, az ISO/IEC 9126 és ISO/IEC 25010 szabványokat, a minőségi
karakterisztikák mérésének módozatait, a statikus elemző eszközöket ‒ PMD,
CheckStyle, FindBugs. A leírások világosak és korrektek. A minőségi profil
meghatározására szolgáló kérdőív a mellékletben található. A konkrét termékek
mérési eredményeinek ismertetésére a 3. fejezetben került sor.
• JSignPdf: a 47. oldalon található összegzés korrekt. Nagyon tetszett a
verziókon átívelő mérések eredményeinek bemutatása.
• aTunes: a mérések bemutatása itt is megfelelő, az ábrák nagyon
szemléletesek.
• ImageEditor: egy saját fejlesztésű eszköz, az előbbiektől eltérően több
minőségi sérülékenységgel.
Az összegzésben leírtakkal teljesen egyetértek.
16. Pfeff Ákos György: Szoftverprojektek termékminőségének vizsglata
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 június
• A téma rövid leírása
A dolgozat célja főbb pontokban:
• Minőségellenőrzést támogató program fejlesztése szoftveripari kliens elvárt
minőségi profiljának rögzítéséhez ISO 9126 szabvány alapján.
• Segédprogram fejlesztése a kliens vizsgált .NET/C# nyelven készülő, vagy kész
termékének forráskódja alapján történő minőségi analízis támogatásához.
• Adatbázis tervezése a hívási gráf, és az abból nyert információk, valamint a
minőségi analízis eredményeinek összekötéséhez.
• Felület fejlesztése a mérési eredmények, az analízis eredményeinek, a hívási
gráf részleteinek, valamint az ezekből következő ajanlások infografikus
megjelenítéséhez szofverfejlesztő szakértő számára.
• Felület fejlesztése a készülő, vagy kész termék minőségi attribútumainak az
elvárt minőségi profiltól való eltérések infografikus megjelenítéséhez
döntéshozó személy számára.
Az említett szofverrendszert oly módon tervezzük megvalósítani, hogy a .NET/C#-
specifikus részek könnyen cserélhetőek legyenek, lehetővé téve a szotverrendszer
alkalmazását Java nyelven fejlesztett termék vizsgálatához.
• Témavezetői vélemény
A diplomamunka célja az ISO/IEC 9126-os szabvány alapján szoftvertermékek
forráskód alapú minőségi jellemzését támogató szoftver prototípus készítése volt.
A bevezető részek után a problémakör áttekintésekor a jelölt a szabvány elemeit
és az FxCop 10.0 elemzőt tagalja. Kiemelendő az FxCop kritikája alfejezet, ami
általában véve bármely statikus kódelemző kritikájaként is felfogható. A
diplomamunka egyik leglényegesebb része az ISO 9126 és az FxCop
szabályhalmaza közötti megfeleltetések létrehozása volt. Itt a jelölt kiemelkedő
szakmai hozzáértésről tett tanúbizonyságot. Az eredményt egy táblázatban
foglalta össze (28. oldal). Meg kell jegyezzük, hogy 2011 őszén a 9126-os
szabványt felváltotta az ISO/IEC 20510 szabvány, ami 6 helyett 8 fő jellemzőt,
összesen 39 részjellemzőt tartalmaz. A diplomamunka következő része egy
vállalati minőségi profil felállítását célzó kérdőívet tartalmaz, majd az FxCop-hoz
köthető hívási gráf kinyerését, az eredmények összekapcsolását és elemzését
taglalja (JTreeMap). Az ötödik fejezet két konkrét projekt, az NUnit és a Poseidon
2.0 minőségi vizsgálatát tárgyalja. Az ismertetések korrektek, érdekesek, az
eredmények értékelései helytállóak. A hatodik fejezet a fejlesztett alkalmazásokat
dokumentálja. A hetedik fejezet a feladat megoldása során tapasztalt
nehézségeket, és a nem megvalósított kihívásokat összegzi. A jelölt a célul
kitűzött feladatot önállóan, magas színvonalon oldotta meg. Bár az elkészült
prototípus nem teljes, továbbfejleszthető lenne.
17. Sótér Péter: A felsőoktatásba felvételizők intézményválasztásának
szimulációs modellezése
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2012 június
• A téma rövid leírása
A diplomamunka célja a felsőoktatásba felvételizők intézményválasztásának
szimulációs modellezése. A szimuláció a globális és lokális változások hatásait
hivatott felmérni, bemutatni, esetleg előre jelezni.
Az első feladat a felsőoktatási intézmény kiválasztását befolyásoló tényezők
feltérképezése. A felmérés célja ezen tényezők hiteles súlyozása, valamint egyéb
kiegészítő információk kinyerése internetes technológiákkal. Ezt követi a
begyűjtött adatok feldolgozása, ami majd egy ágens alapú rendszer
paraméterezését szolgálja.
A feladat második része a szimulációhoz szükséges ágens alapú technológiák
bemutatása és alkalmazása lesz. Olyan programot készítek, ami képes modellezni,
hogy a változtatások milyen hatást gyakorolnak a hallgatók döntésére. A
szimulációk validálását és eredményeinek bemutatását egy adott szakra vetítve
valósítom meg.
• Témavezetői vélemény
A diplomamunka célja egy olyan szimulációs modell megtervezése és
megvalósítása volt, ami a felsőoktatásba felvételizők intézményválasztását, a
döntést befolyásoló tényezők feltérképezését, súlyozását, és végül ágensek
segítségével történő elemzését vizsgálja.
A dolgozat 7 fejezetből áll. A bevezetés utáni második fejezet irodalmi áttekintést
tartalmaz a Bayes-hálókról, a rajtuk futó döntési algoritmusokról, az ágensek
működtetéséhez szükséges hálózati topológiákról. A harmadik fejezet a döntési
modell elemeit, a külső és belső tényezőket, a modell tudását megalapozó
kérdőíves felmérés részleteit taglalja. A felmérés megtervezése és lebonyolítása
nagyon komoly kihívás volt, amit a jelölt önállóan, precízen, nagyfokú
alapossággal hajtott végre. Az eredmények a későbbiekben is fontosak lehetnek a
karunk számára. A fejezet második része a konkrét Bayes-háló szerkezeti
felépítését ismerteti. A negyedik fejezet a szimulációs modellel foglalkozik: a
topológia generálásával, a hálózat tanításával. A jelölt a GeNIe ingyenes
alkalmazást választotta eszközül. A szimuláció paraméterei az alábbiak voltak: a
topológia adatai, szimulációs futamok száma, globális hatások jelenléte, súlya, a
topológián belüli hatások valószínűségi eloszlásai, a felhasználható szálak száma,
és egyéb kimeneti beállítások. A jelölt külön foglalkozik a külső hatásokkal (tandíj
lehetséges mértéke, kollégium, nyílt nap, felvi.hu statisztikák, egyetemi státusz
változása), a párhuzamos futtatás lehetőségével. Az ismertetések korrektek,
átgondoltak. Az ötödik fejezet tartalmazza a szimulációkat. Az eredményeket
illetően jelölt a hatalmas paramétertér miatt csak bizonyos konstellációkat
futtatott, komolyabb eredményt csak nagy számítógépes támogatással lehetett
volna (talán) elérni. A hatodik és hetedik fejezet az összefoglalást és a
mellékleteket tartalmazza.
Összességében a diplomamunka mind tartalmilag, mind formailag messzemenően
kielégíti a kívánt követelményeket.
18. Vidman Viktor: Szoftverek statikus minőségelemzése
• A diplomamunka típusa: MSC diplomamunka
• Védés dátuma: 2011 január
• A téma rövid leírása
A nagyobb méretű és hosszabb életciklusú szoftvertermékek esetén gyakori
probléma, hogy a több éven és számos változaton átívelő programírás során az
eredeti követelmények megváltoznak, a kezdeti rendszerterv elavulttá válik, a
funkcionalitás és a programhierarchia átalakul. Mindez megnehezíti a
programhibák javítását, az igényelt változtatások kódba integrálását, valamint a
tesztesetek karbantartását. Az egyes komponensek módosítása a program más
részeire is hatással lehet, ami magasabb költséggel és kockázattal jár. A
diplomamunka célja egy olyan prototípus specifikációja és részbeni
megvalósítása, amelynek segítségével (elsősorban objektumorientált)
szoftvertemékek statikus minősége elemezhető, kockázatai és fenntartási
költségei becsülhetők, a tesztelési folyamat pedig hatékonyabbá tehető. A
diplomamunka eredménye egy olyan prototípus, amely a szoftvertermék forrás és
bináris kódjából kiindulva a kód minőségét jellemző mérési eredményeket
adatbázisba gyűjti, az adatokat statisztikai módszerekkel elemzi, majd a kapott
értékeket igény szerint a fejlesztő, tesztelő csapat vagy a menedzsment számára
releváns információkat tartalmazó nyomtatható jelentés és/vagy interaktívan
böngészhető vizuális megjelenítés formájában tálalja. Amennyiben a kiemelt
kockázatot jelentő komponenseket sikerül azonosítani, azok felülvizsgálatával,
esetleges újraírásával a szoftvertemék fenntarthatósága javul, a változtatások
biztonságosabbá és olcsóbbá tehetők. Végül, az egyes komponensek belső
jellemzőinek és a többi komponenssel való kapcsolatrendszerének ismeretében a
minőségi jellemzők nemcsak izoláltan, hanem globálian is értelmezhetővé
tehetők.
• Témavezetői vélemény
Nagy szoftverrendszerek fejlesztésére és karbantartására fordított erőforrások
jelentős részét tesztelésre és hibajavításra kell fordítani, amelynek oka részben a
szoftverfejlesztési projektek gyenge követelményvizsgálata, nem megfelelő
tervezése, a nem megfelelően kivitelezett kódolás. A folyamatos hibajavítások a
szoftverkódok állandó változását idézik elő, újabb problémákat generálnak,
amelyek hosszabb távon a szoftver minőségének romlásához vezetnek. A statikus
kódelemző technikák segítségével a fejlesztések kezdetétől korai hiba- és eltérés
felismerést lehet megvalósítani:
• ellenőrizni lehet kódolási szabálysértéseket,
• „rossz előjeleket”,
• bekódolt sérülékenységeket.
A jelölt feladata egy Java fejlesztést támogató statikus minőségellenőrzést
biztosító szoftver prototípus tervezése és fejlesztése volt. A diplomamunka első
része az alapfogalmakat tekinti át: a minőség megközelítéseit, a termék és
folyamatmodelleket, továbbá a statikus elemzéshez használt PMD eszközt. A
harmadik fejezet a felhasználói és a fejlesztői dokumentációt tartalmazza. Az
eszköz először egy vállalati profilt készít, amelyet felhasználva előállíthatók az ISO
9126 szoftvertermék-minőséget jellemző attribútumok és a PMD szabályhalmaza
közötti megfeleltetések adott projektre vonatkozó aspektusai; a mérések után az
eredmények több szempontból is megjeleníthetőek. A megfeleltetések pontos
leírásával a 4. fejezet első része foglalkozik. A fejezet hátralévő része konkrét
projektek vizsgálatát tartalmazza:
• Apache ant (alkalmazás-építés)
• Geoserver (szerver oldali webalkalmazás)
• Vuze (kliens oldali webalkalmazás)
• TripleA (játékprogram)
• JarBuilder (kisalkalmazás)
• toString (kisalkalmazás 2 verzióban)
A kapott eredmények és következtetések korrektek, a fejlesztett prototípus
hatékonyan segíti a fejlesztőket a kritikus komponensek azonosításában,
támogatja a menedzsmentet a kockázatok felmérésében.
19. Vránics Ferenc: Web application vulnerability scanners based on TTCN-3
• A diplomamunka típusa: BSC szakdolgozat
• Védés dátuma: 2012 június
• A téma rövid leírása
The goal of this project is to create a tool for scanning a website for common
vulnerabilities.
The code will be mostly written in TTCN-3 language, a programming language
specialized for testing purposes. The TITAN executor compiles TTCN-3 into C++,
and controls the test components. It also provides distributed execution of the
program and connection via HTTP/HTTPS.
The scanner program will be able to run a collection of static and dynamic
testcases on a given webpage, that are configured by the user via an easy-to-use
user interface, or given in a configuration file. The two basic categories of the
tests will be Cross Site Scripting (XSS), and SQL injection.
After starting the application with the desired parameters, the application will
build up a connection with the webpage, and starts to analyze the behaviour of
the webpage on manipulated input strings/queries. After all tests have finished,
log files will be generated as output, containing the verdicts of the tests.