Objektumelvű programozás
Tantárgy célja bemutatni az objektumelvű programozási
paradigma elemzési, tervezési, megvalósítási és tesztelési aspektusait kisebb
méretű objektumelvű alkalmazások készítésén keresztül. A modellezéséhez
elsősorban UML diagramokat használunk, az alkalmazásokat C# nyelven
implementáljuk, és teszteljük.
Tantárgyi tematika:
Az
objektum fogalma, az objektum típusának leírása és az osztály fogalma.
Objektum-orientált programozási nyelv ismérvei. Objektumok példányosítása,
konstruktor és gyártó függvények szerepe.
Gyűjtemények
és azok feldolgozása. Felsorolók fogalma, típusa. Nevezetes felsorolók.
Algoritmus minták általánosítása felsorolókra. Feladatok megoldása felsorolókra
fogalmazott algoritmus mintákra történő visszavezetéssel. Algoritmus mintákra
épülő programok tesztelése.
Az
egyszerűbb objektum-orientált alkalmazások modellezéséhez használt UML
diagramok: használati eset diagram, objektum diagram, kommunikációs diagram,
osztály diagram, szekvencia diagram, állapotgép diagram.
Objektumok
közötti kapcsolatok ábrázolása az osztály diagramban. A függőség, az
asszociáció, az aggregáció, a kompozíció, és a
származtatás és ezek objektum-orientált nyelven történő megvalósítása.
Esettanulmányok
tervezési mintákra (egyke, gyártőfüggvény, sablonfüggvény, stratégia, állapot,
látogató, összetétel, híd, bejáró, gyártófüggvény).
Objektumok
viselkedésének tervezése állapotgép diagrammok segítségével. Párhuzamosan
tevékenykedő objektumok objektum-orientált nyelven történő megvalósítása.
Aszinkron üzenetek és események kezelése.
A
bemutatott feladatok modelljeinek C# nyelven történő implementálása,
tesztelése.
Előfeltétel: Programozás
Óraszám:
- heti 2
óra előadás (amely aszinkron online módon lesz megtartva: videókról
tekinthetők meg az MS Stream-en, Canvas kvíz kapcsolódik hozzájuk);
- heti 2
óra tervezős gyakorlat, 2 óra kódolós gyakorlat,
amelynek második órája rendszeresen megtartott konzultációnak számít.
A kurzus teljesítésének feltételei:
- Az előadásokhoz tartozó 10 darab
kvízt határidőre, legalább 75%-os eredménnyel határidőre kell teljesíteni.
- A tervezős gyakorlatokon megírt
+/- kérdésekre adott válaszok legalább fele + kell legyen.
- Az 5 db kis beadandót (adott terv
alapján kell megírni a programkód egy részét) az előírt határidőre kell
leadni úgy, hogy a meghirdetett 10 kisbeadandóból az első kettő
közül kell egyet, a második kettő közül is egyet, és így tovább
kiválasztani. A kötelező 5 beadandón felüli teljesítések szorgalmi
feladatnak számítanak.
- Az 1 db nagy beadandót
(tervdokumentáció, programkód és tesztelés ), amit több lépésben, az
előírt határidőre kell elkészíteni. A beadandó specifikációját (használati
esetek, objektum és kommunikációs diagram) a 7. héten, a modellt
(részletes osztály diagram, de tervezési minták nélkül) a 11. hétig, a
teljes tervdokumentációt (a korábbiak tervezési mintákkal,
állapotgépdiagrammal, szekvenciadiagrammal) a 13. hétig a tervezős
gyakorlat vezetőjével kell elfogadtatni, majd a teljes megoldást a kódolós gyakorlatvezetőnek kell bemutatni. A kódolós gyakorlatvezető által a szorgalmi időszak
végén kijelölt határidőig elkészült, és elfogadott munka 5-öst ér, majd
minden hét késés után eggyel kevesebbet. Legalább elégséges(2) eredményt
el kell érni.
- A 2 db (0-tól 5-ig értékelt)
tervezős zárthelyik eredményének a legalább elégséges (2) szintet el kell
érnie (csak az egyik zárthelyit lehet javítani).
- Az 1 db
(kiváló(5)/megfelelt(3)/nem felelt meg(1) minősítésű) kódolós
zárthelyinek legalább megfelelt eredményűnek kell lenni (egyszer lehet
javítani).
ˇ
lehetőség
van a gyakorlatvezető által kijelölt egyéb szorgalmi feladatok elvégzésére is
Gyakorlati
jegy: Amennyiben
megvalósulnak a kurzus teljesítésének feltételei, akkor a (tervezős zh-k jegyei + kódolós zh jegye + beadandó
jegye) / 4 + 0.1*(szorgalmik száma) összegnek
az egészre kerekített értéke.
Plágium: Amennyiben a hallgató bármely beadandója vagy házi feladata
nagyfokú hasonlóságot mutat más hallgató munkájával, vagy bármilyen más
forrással, úgy az nem teljesítettnek minősül, és az oktató a gyakorlati jegyet
megtagadja.