Objektumelvű programozás

Tantárgy célja: Típus központú alkalmazások tervezése osztályokkal és felsorolóra kiterjesztett algoritmus minták felhasználásával, valamint objektum elvű alkalmazások tervezése UML diagramokkal, és ezen tervek objektum orientált nyelven történő implementálása és tesztelése.

Tantárgyi tematika: A típus fogalma, felhasználói típus megvalósítása C++ nyelven osztállyal. Az objektum és az osztály fogalma. Objektum-orientált programozás ismérvei. Objektumok példányosítása. Konstruktor szerepe.

Gyűjtemények és azok feldolgozása. Felsorolók fogalma, típusa. Nevezetes felsorolók. Programozási tételek általánosítása felsorolókra. Feladatok megoldása felsorolókra fogalmazott programozási tételekre történő visszavezetéssel. Programozási tételekkel alkotott algoritmusok tesztelése. Egyedi felsoroló objektumok megvalósítása.

Objektumok közötti kapcsolatok ábrázolása objektum- és osztály diagrammal. A függőség, az asszociáció, az aggregáció, a kompozíció, és a származtatás és ezek C++ nyelvű megvalósítása. Feladatok megoldásának tervezése osztálydiagramokkal. Néhány nevezetes tervezési minta (sablonfüggvény, stratégia, egyke, látogató, híd, bejáró, gyártófüggvény).

Kód-újrafelhasználás objektum orientált eszközei, és ezeknek alkalmazása egy algoritmus mintákat tartalmazó osztály-sablon könyvtárral.

Objektumok viselkedésének tervezése kommunikációs diagrammok, szekvencia diagrammok és állapotgép diagrammok segítségével. Párhuzamosan tevékenykedő objektumok C++ nyelvű megvalósítása. Aszinkron üzenetek és események kezelése.

Egyetemi jegyzet:

Gregorics T.: Programozás 1. kötet Tervezés. ELTE Eötvös Kiadó, 2013.

Gregorics T.: Programozás 2. kötet Megvalósítás. ELTE Eötvös Kiadó, 2013.

Sike S., Varga L.: Szoftvertechnológia és UML. ELTE Eötvös Kiadó, 2003.

Ajánlott irodalom:

Bjarne Stroustrup: A C++ programozási nyelv (Kiskapu)

Herbert Schildt: C/C++ Referenciakönyv (Panem Kft.) 1998.

Andrei Alexandrescu, Herb Sutter: C++ kódolási szabályok. Kiskapu Kft. 2005.

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Programtervezési minták. Addison-Wesley, Kiskapu Kft. 2004.

Előfeltétel: Programozás

Óraszám:

Számonkérések:

ˇ        az előadásokhoz 12 kvíz tartozik

ˇ        a táblás gyakorlatokon ún. plusz/mínusz dolgozatokat kell írni, ami lehet egy kvíz is

ˇ        3 db kis beadandót kell írni (adott terv alapján megírt programkód)

ˇ        3 db 0-5-ig skálán értékelt nagy beadandó (tervdokumentáció, programkód és tesztelés)

ˇ        2 db 0-5-ig skálán értékelt tervezős zárthelyi (az egyiket lehet javítani)

ˇ        2 db 0-5-ig skálán értékelt kódolós zárthelyi (az egyiket lehet javítani)

 

A kurzus teljesítésének feltételei:

ˇ        a 12 darab előadás kvízből 9 darab legalább 75%-os eredményű

ˇ        a plusz/mínusz dolgozatok féléves összesítése nem-negatív

ˇ        mindhárom kis beadandó az előírt határidőre elkészült

ˇ        mindhárom nagy beadandó az előírt határidőre (plusz legfeljebb 3 hét) beadásra kerül

ˇ        tervezős zárthelyik eredménye legalább elégséges

ˇ        második kódolós zárthelyi eredménye legalább elégséges

 

Az első tervezős és kódolós zárthelyikre kb. a 8. héten, a második tervezős és kódolós zárthelyikre a vizsga időszak első két hetében kerül majd sor. A beadandók és házi feladatok határidejét a gyakorlatvezetők határozzák meg.

 

Gyakorlati jegy: Amennyiben megvalósulnak a kurzus teljesítésének feltételei, akkor a (beadandók jegyátlaga + 4 ˇ tervezős zh-k jegyátlaga + kódolós zh-k jegyei) / 7  egészre kerekített értéke.

 

Kis beadandók: Egy-egy adott terv megvalósításaként előállt programkód, amelyeket határidőre kell feltölteni.

 

Nagy beadandók: Egy összetett feladat (amelyet a gyakorlatvezető jelöl ki) tervezése, megvalósítása és tesztelése. A követelményeknek megfelelő, határidőre bemutatott beadandó eredménye 5 pontot ér, ami késés esetén hetente eggyel csökken, de csak három hetet lehet késni.

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.

Kvíz formájában teljesített plusz/mínusz: A táblás gyakorlatok közben feladott kérdésekre kapott helyes válaszok száma alapján képzünk az órai munka értékelésére pluszt, nullát, mínuszt. A hiányzás is mínusz-t ér. A félév során szerzett plusz-ok száma nem lehet kevesebb a mínusz számánál.