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ó    

    Szoftvertechnikák

    A tantárgy angol neve: Software Techniques

    Adatlap utolsó módosítása: 2017. június 27.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnök informatikus szak, BSc képzés

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUAB00 4 2/0/2/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Kővári Bence András, Automatizálási és Alkalmazott Informatikai Tanszék
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Charaf Hassan

    egyetemi tanár

    Automatizálási és Alkalmazott Informatikai Tanszék

    Benedek Zoltán

    tanársegéd

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr. Kővári Bence

    docens

    Automatizálási és Alkalmazott Informatikai Tanszék

     

     

     

    5. A tantárgy az alábbi témakörök ismeretére épít A C++ programozási nyelv, Java és UML alapok ismerete.
    6. Előtanulmányi rend
    Kötelező:
    (TárgyEredmény( "BMEVIIIAB01" , "aláírás" , _ ) = -1
    VAGY TárgyEredmény( "BMEVIIIA217" , "aláírás" , _ ) = -1 )

    ÉS NEM ( TárgyEredmény( "BMEVIAUA218" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUA218", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:
    A tárgyat csak azok vehetik fel, akik teljesítik a következőket:
    Programozás alapjai 1-2. teljesítése 
    ÉS
    Szoftvertechnológia tárgyból aláírás megszerzése

    7. A tantárgy célkitűzése

    A tárgy alapvető célja, hogy elmélyítse a korábbi félévekben megkezdett számítógépes problémamegoldás terén szerzett ismereteket, valamint az objektumorientált paradigmát követve kiszélesítse a szoftverfejlesztés technikáinak spektrumát.  A hallgatók elsajátítják a natív és felügyelt eseményvezérelt programozás legfontosabb módszereit, a grafikus felhasználói felület, gyors alkalmazás-fejlesztés (RAD - Rapid Application Development) struktúráit és programozási alapjait, valamint megismerik a modern felügyelt futtatókörnyezetek és osztálykönyvtárak fontosabb szolgáltatásait (reflexiós technikák, adatkötés, rajz és szöveg megjelenítése, párhuzamos feldolgozás, szinkronizációs technikák, stb.). Ezen túlmenően a tárgy ismerteti a szoftverrendszerek tervezésének kapcsán a gyakrabban használt architekturális és tervezési mintákat, valamint ezek szerepét a szoftverfejlesztés folyamatában.  A tárgy a minták elméleti ismertetésén túlmenően esettanulmányokon és laborfoglalkozások keretében bemutatja a fontosabb minták gyakorlatban történő alkalmazástechnikáját.

    Célkitűzését a tárgy az előző félévekben megszerzett C és C++, Java nyelvi tudásra, valamint az UML nyelv alapjaira építve éri el. A laborok anyaga folyamatosan követi és kiegészíti az előadások tematikáját, azok mélyebb megértését teszi lehetővé.

    8. A tantárgy részletes tematikája
    Előadás
    1. Felügyelt futtatókörnyezetek. .NET alapok.
    2. Modern nyelvi eszközök (property, delegate, event, attribútum, reflexió).
    3. Eseményvezérelt programozás natív környezetben, üzenet alapú platformok.  
    4. Vastagkliens alkalmazások fejlesztésének alapjai felügyelt környezetben (RAD koncepciók, Windows Forms alapok, vezérlők, menük, események, vezérlők, dialógus ablakok). Nem felügyelt erőforrások életciklus menedzsmentje (destruktor, dispose).
    5. Vastagkliens alkalmazások fejlesztése, folytatás. Rajz és szöveg megjelenítése.
    Egyedi vezérlők kialakításának lehetőségei. Moduláris felhasználói felület kialakítása (usercontrol). Rajz és szöveg megjelenítése. Generikus típusok megvalósításának összehasonlítása az elterjedtebb platformokon.
    6. Többszálú alkalmazások fejlesztése .NET környezetben: alapok.
    7. Többszálú alkalmazások fejlesztése .NET környezetben: szinkronizációs problémák és megoldásuk (zárolási technikák, események). Threadpool fogalma és használata. Holtpont elkerülésének technikái.
    8. Adatbázisok programozása felügyelt környezetben.
    9. Szoftver architektúrák. Az architektúra nézetei. Architekturális tervezési minták: Document-View architektúra. A View (nézet) megvalósításának technikája. MVC, Pipes and Filters.
    10. Architekturális tervezési minták folytatás: vállalati információs rendszerek architektúrája: rétegelés, kétrétegű (kliens-szerver) architektúra és problémái, kapcsolata a RAD-dal, háromrétegű architektúra. Többrétegű alkalmazások komponensekbe szervezése, függőségi problémák.
    11. Tervezési minták: áttekintés, szerepük. Létrehozási minták (Singleton, Factory Method, Prototype).
    12. Tervezési minták: fontosabb strukturális és viselkedési minták bemutatása (Observer, Memento, Bridge, Adapter, Iterator, Template Method).
    13. Tervezési minták: fontosabb strukturális és viselkedési minták bemutatása (Proxy, Memento, Command, State, Strategy, Decorator). Néhány konkurens környezetben használatos tervezési minta bemutatása (Thread-safe Interface, Double-checked Locking Optimization, Strategized Locking).
    Labor
    1. C# alapok. Kódgenerálás modell alapján. Haladó objektumorientált koncepciók gyakorlása: mikor használjunk absztrakt őst, mikor interfészt, a két technika kombinálása.
    2. Önálló feladat: gyakorlópéldák C# alapok, Base Class Library, haladó objektumorientált koncepciók témakörben.
    3. Property, in/out/ref paraméterek, delegate (metódusreferencia), események (C# event)
    4. Önálló feladat: gyakorlópéldák property, in/out/ref paraméterek, delegate (metódusreferencia), események (C# event) témakörben.
    5. Vastagkliens alkalmazások fejlesztésének alapjai (Windows Forms).
    6. Önálló feladat: gyakorlópéldák Windows Forms témakörben
    7. Többszálú alkalmazások fejlesztése .NET környezetben. Zárak és események használata. 
    8. Önálló feladat: gyakorlópéldák többszálú alkalmazásfejlesztés témakörben.
    9. Adatbázisok programozása felügyelt környezetben.
    10. Önálló feladat: adatbázisok programozása.
    11. Architekturális minták (Document-View).
    12. Önálló feladat: document-view alapú alkalmazásfejlesztés gyakorlása
    13. Tervezési minták
    14. Önálló feladat tervezési minta témakörben

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás és laboratórium.

    10. Követelmények

    a. A szorgalmi időszakban:

     (1) Az ismeretek alkalmazását és készségszintű megértését a félév során folyamatosan tartott laboratóriumi foglalkozásokon segítik. A laboratóriumi foglalkozások egy részén kötelező a részvétel, más része önálló feladatmegoldást igényel, melynek eredményét a hallgatóknak a tárgy honlapjára kell feltölteni.

    (2) Az ismeretek átfogó és részletes áttekintését a szorgalmi időszak alatt egy alkalommal nagy zárthelyivel mérjük.

     Az aláírás feltételei:

    ·         Legalább elégséges szintű zárhelyi eredmény a pótlási héttel bezáróan.

    ·         A 7 páratlan sorszámú laboratóriumi foglalkozásból 6-on kötelező a jelenlét. A pótlási héten egy laborgyakorlat pótolható. A laborgyakorlatokon végig jelen kell lenni, és az oktatóval együtt kell dolgozni.

    ·         A 7 páros sorszámú laboratóriumi foglalkozás 7 önálló feladatmegoldást jelent. A hallgatók a feladatokat a félév során folytatólagosan, a tárgy honlapján kapják meg. A megoldáshoz igény esetén a laboridőpontokban konzultációs lehetőséget biztosítunk. A feladatok megoldását a megadott határidőn belül a tárgy honlapjára fel kell tölteni. Pótbeadásra háromszor van lehetőség. Pótbeadásra akkor van szükség, ha a hallgató az adott feladatot nem adta le határidőre, vagy leadta, de a megoldás minősége nem éri el az elfogadható szintet.

     b. A vizsgaidőszakban:

     A vizsga írásbeli. A kreditpont megszerzésének feltétele: legalább elégséges vizsgaosztályzat elérése.

    11. Pótlási lehetőségek

    A sikertelen zárthelyi a szorgalmi időszakban tartott pótzárthelyi dolgozat legalább elégséges szintű megírásával pótolható. A zárhelyi ezt követően a pótlási héten pótolható a TVSZ szerint (anyaga megegyezik a zárthelyi anyagával).

     

    A vizsgák a TVSZ-nek megfelelően pótolhatók.

    12. Konzultációs lehetőségek

    Konzultációra a szorgalmi időszakban az előadások után, illetve igény szerint az előadóval egyeztetve van lehetőség.

    13. Jegyzet, tankönyv, felhasználható irodalom
    • Benedek Zoltán, Levendovszky Tihamér: Szoftvertechnikák egyetemi jegyzet elektronikus formában.
    • Gamma, Helm, Johnson, Vlissides: Design Patterns, Addison-Wesley, 1994.
    • Buschmann et al.: Pattern-Oriented Software Architecture Volume 1: A System of Patterns, 1996.
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

     

    Előadási órák

    28

    Laboratóriumi gyakorlatok

    28

    Félévközi készülés előadásokra

    8

    Félévközi készülés laboratóriumi gyakorlatokra

    26

    Felkészülés zárthelyire

    20

    Vizsgafelkészülés

    40

    Összesen

    150

    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Charaf Hassan

    egyetemi tanár

    Automatizálási és Alkalmazott Informatikai Tanszék

    Benedek Zoltán

    tanársegéd

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr. Kővári Bence

    docens

    Automatizálási és Alkalmazott Informatikai Tanszék

    IMSc tematika és módszer

    Az emelt szintű ismeretek elsajátítását emelt szintű laboratóriumi foglalkozások és önálló feladatok segítik.

     

    Az emelt szintű laboratóriumi foglalkozásokon a gyorsabb haladás több, összetettebb feladat megoldását teszi lehetővé.

    IMSc pontozás

    A tárgyból 25 IMSc pont szerezhető.

    Sikeresen megoldott többletfeladatokkal a nagyzárthelyin 7 pont, a vizsgán 8 pont, önálló feladatok megoldásával 10 pont szerezhető. Adott számonkérés vonatkozásában IMSc pontot az szerezhet, aki a számonkérésen a kitűzött normál feladatok megoldásával a jeles szintet eléri.

     

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