Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Objektumorientált labor

    A tantárgy angol neve: Object-Oriented Software Design

    Adatlap utolsó módosítása: 2023. január 13.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Mérnök informatikus szak, BSc képzés

    Szoftverfejlesztés specializáció

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIIIAC10 6 0/0/2/f 3  
    3. A tantárgyfelelős személy és tanszék Dr. Simon Balázs,
    A tantárgy tanszéki weboldala Kari Moodle
    4. A tantárgy előadója Dr. Simon Balázs, egyetemi docens, IIT
    5. A tantárgy az alábbi témakörök ismeretére épít UML, objektumorientált tervezési minták, objektumorientált tervezési elvek, objektumorientált tervezési heurisztikák, refaktorálás, clean code, konkurens és elosztott minták, immutable objektumorientáltság, Java és C# nyelv ismerete
    6. Előtanulmányi rend
    Ajánlott:
    Kötelező: Objektumorientált szoftvertervezés
    7. A tantárgy célkitűzése A tárgy célja, hogy a hallgatók programozási feladatok segítségével elmélyítsék és kibővítsék az objektumorientált tervezéssel kapcsolatos ismereteiket.
    8. A tantárgy részletes tematikája A laborok részletes tematikája:
    1. Objektumorientált tervezési elvek: SOLID, Tell Don't Ask, Design by Contract, Law of Demeter, stb. A tanult elvek megsértésének felismerése a kódban, a kód javítása.
    2. Objektumorientált tervezési heurisztikák: osztályok tervezése, felelősségek szétosztása, asszociációk és kompozíciók. A tanult heurisztikák megsértésének felismerése a kódban, a kód javítása.
    3. Objektumorientált tervezési heurisztikák: öröklődés és heterogén kollekciók. A tanult heurisztikák megsértésének felismerése a kódban, a kód javítása.
    4. Refaktorálás: code-smell-ek felismerése, javítás a tanult refaktorálási minták alkalmazásával.
    5. Clean code: nehezen karbantartható kód felismerése és a kód tisztítása a tanult elvek segítségével.
    6. Konkurens és párhuzamos minták: szinkronizáció, kontextus kezelési minták, kérés-válasz illetve eseménykezelési minták, konkurencia minták. A tanult minták alkalmazása programozási példákon keresztül.
    7. Immutable objektumorientáltság: immutable adatszerkezet implementálása és használata.

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Kéthetente 4 órás laboratóriumok. A laboratóriumi foglalkozásokon megoldandó feladatokhoz részletes feladatkiírás tartozik, így a foglalkozásokon a jelenlét nem kötelező: a feladatok otthonról is megoldhatók és beadhatók.
    10. Követelmények Legalább 4 laboratóriumi feladatsort határidőre meg kell oldani. Emellett a félév során 5 kiszárthelyi jellegű, otthon is megoldható Moodle kvízt kell határidőre kitölteni, mindegyikre egyenként egy pontszám (0-tól 5-ig) kapható. A határidőre ki nem töltött kvízek 0 pontosnak számítanak. A három legeredményesebb Moodle kvíznek egyenként legalább 2.00 pontszámot el kell érnie. A félév elismerését jelentő félévközi jegy számítása a következő: a 3 legeredményesebb Moodle kvíz pontszámának átlagát kerekítjük a legközelebbi egész számra (.5-től felfelé).
    11. Pótlási lehetőségek A laboratóriumi feladatok és a Moodle kvízek nem pótolhatók, mert csak a 2/3-ukat kell teljesíteni.
    12. Konzultációs lehetőségek Igény szerint a tárgy hallgatóival egyeztetve.
    13. Jegyzet, tankönyv, felhasználható irodalom
    • Robert C. Martin: Principles of Object-Oriented Design
    • Robert C. Martin: Clean Code, A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008, ISBN-10: 0132350882, ISBN-13: 978-0132350884
    • William J. Brown, Raphael C. Malveau, Thomas J. Mowbray: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, Wiley, 1998, ISBN-10 0471197130
    • Martin Fowler, Kent Beck, John Brant, and William Opdyke: Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999, ISBN-10 0201485672
    • Jasmin Blanchette: The Little Manual of API Design, Trolltech, a Nokia company, 2008
    • Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann: Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects, Wiley, 2000, ISBN-13: 978-0471606956
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra28
    Félévközi készülés órákra-
    Felkészülés zárthelyire10
    Házi feladat elkészítése22
    Kijelölt írásos tananyag elsajátítása-
    Vizsgafelkészülés-
    Összesen60
    15. A tantárgy tematikáját kidolgozta Dr. Simon Balázs, egyetemi docens, IIT
    IMSc tematika és módszer

    A laboratóriumi foglalkozásokon a program hallgatói a megoldandó feladatok mellé további, a téma mélyebb megértését és elsajátítását lehetővé tevő extra feladatokat kapnak. Ezekhez igény szerint a laborok alkalmával konzultációs lehetőséget is biztosítunk.

    A Moodle kvízekhez extra IMSc feladatok is tartoznak.

    IMSc pontozás

    A Moodle kvízekhez tartozó extra IMSc feladatokra az adott kvíz alapfeladataira elérhető pontszám 30%-át lehet kapni. Az extra IMSc feladatot csak akkor javítjuk, ha az adott kvíz alapfeladataira a hallgató a megszerezhető pontok legalább 80%-át megszerezte.

    A legjobb három IMSc kvíz pontszámai összeadódnak, és az összegből egyenes arányosítással áll elő a tárgyban megszerezhető maximum 10 IMSc pont.

    Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.