Objektumelvű programozás

Tantárgy célja: Típus központú alkalmazások tervezése osztályokkal és felsorolóra kiterjesztett programozási tételek 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.

Típusok osztályozása a szerkezetük szerint. 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ók megvalósítása. Összefuttatás.

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. Programozási tételekkel alkotott algoritmusok implementálása egy osztály-sablon könyvtár kódjának felhasználásával.

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.

Előfeltétel: Programozás

Óraszám: 2 óra előadás; 2 óra táblásgyakorlat, 1 óra laborgyakorlat, 1 óra laborba beosztott konzultáció.

A kurzus teljesítéséhez

 

négy jegyet képzünk a félév során:

A gyakorlati jegy a fenti négy jegy átlagának kerekített értéke lesz, de az átlagot 0.1-el növeli a sikeres szorgalmik száma. Ezek a félév elején készített szorgalmi programok, valamint az 5. és 6. házi feladatok részét képezi, de nem kötelezően beadandó programok.

 

Nem kap jegyet az, akinek

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.