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ó    

    Szoftvertechnológia

    A tantárgy angol neve: Software Engineering

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

    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
    VIIIAB01 3 3/0/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Goldschmidt Balázs, Irányítástechnika és Informatika Tanszék
    A tantárgy tanszéki weboldala https://www.iit.bme.hu/targyak/BMEVIIIAB01
    4. A tantárgy előadója

    Dr. Balla Katalin, docens,  Irányítástechnika és Informatika Tanszék

    Dr. Simon Balázs, adjunktus,  Irányítástechnika és Informatika Tanszék 

     

    5. A tantárgy az alábbi témakörök ismeretére épít
    • programozási gyakorlat
    • digitális technika alapjai
    • rendszermodellezés
    6. Előtanulmányi rend
    Kötelező:
    (TárgyEredmény( "BMEVIIIAA00" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény( "BMEVIIIA114" , "jegy" , _ ) >= 2)

    ÉS NEM ( TárgyEredmény( "BMEVIIIA217", "jegy" , _ ) >= 2
    VAGY TárgyEredmény("BMEVIIIA217", "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:
    • Programozás alapjai 1-2.
    • Rendszermodellezés
    7. A tantárgy célkitűzése

    A tárgy nagy méretű szoftver rendszerek tervezésének, fejlesztésének, karbantartásának tanítását tűzi ki célul, bemutatva a szoftver, mint termék előállításához szükséges mérnöki tevékenység technikáit és módszereit.

    A tárgyat abszolválva a hallgatók képesek

    • alapfokon alkalmazni az objektum orientált szoftver tervezés módszereit;
    • megérteni és kezelni a nagy méretű szoftver rendszerek fejlesztésének problémáit;
    • részt venni klasszikus (RUP) és agilis projektekben.

    A tárgyhoz szorosan kapcsolódik a Programozás alapjai 3 c. tárgy, amely laborgyakorlatokkal segíti a megszerzett ismeretek elmélyítését.

    A tárgy kidolgozásánál - a korábbi évek tapasztalataiból kiindulva - két-lépcsős Software Engineering oktatási modellt vettünk alapul, ahol a hallgatók egy félév alatt előadásokon keresztül megismerik a technikákat és módszereket, majd a következő félévben a Szoftver projekt labor c. tárgy (VIIIAB02) keretében alkalmazzák a tanultakat a gyakorlatban projekt-szerű keretekben.

    8. A tantárgy részletes tematikája
    1. Bevezetés. Tárgykövetelmények ismertetése, Szoftver technológia alapfogalmai, Mi a szoftver ? A szoftver piac ma, kihívások, minőség, problémák. Esettanulmányok: Ariane-5. Szoftver karbantartás. Technológia definíciója, kialakulása. A szoftver technológia rövid története. A szoftver krízis és kezelése. Szoftver technológia definíciói.
    2. A szoftver fejlesztési folyamat. Minőség oldali megközelítés. A fejlesztés elvi folyamata, Általános folyamat modell. A termék életciklusa. CMM
    3. Az UML bevezetése. UML kiterjesztő mechanizmusok, Osztály diagram, Name compartment, Attributumok, Operációk, Konkurencia szemantika Template,. Relációk: függőségek. UML asszociációk, aggregáció, generalizáció. Interfész. Objektum diagram.
    4. UML komponens diagram, komponens fogalma. Port, konnektor fogalma. Kompozit struktúra diagram. Kollaborációk. Telepítési diagram. Termék, csomópont, eszköz. Use case és aktor. Use case relációk, property-k.
    5. UML. Viselkedés modellezése. Interakciók, események, üzenetek. Interakciók. Szekvencia diagram. Kommunikációs diagram. Időzítési diagram, Interakciós áttekintő diagram. Forgó-morgó mintafeladat MVC modell bemutatására.
    6. Állapot modellezés. Kompozit állapotok. Aktivitás diagram. Mi van az UML után?
    7. Verifikáció és validáció. Felülvizsgálatok. A vizsgálatok célja, módszerei, szereplői. A tesztelés célja, sajátosságai, a tesztelés információs folyamata. Tesztelés az életcikluson belül. A tesztelés és az integráció kapcsolata. A tesztelés dimenziói (FURPS) Test stratégiák, Teszt eljárások, teszt esetek. A követelmények kezelésének lényege, fontossága. Nem-funkcionális követelmények, Követelmény definíció, specifikáció. Rendszer definíció felépítése. Szoftver specifikáció bevezetés. Funkcionális modell. DFD jelölések, adattárak. DFD folyamatspecifikációk.
    8. Adatmodellezés, ERD, Adat specifikáció. XML. DTD. Egyéb specifikációs technikák: szintaxis gráf, BNF. Adatszerkezetek definiálása algebrai axiómákkal, pl Stack
    9. Algebrai axiómák, szabályaik, leírásuk. Viselkedés modellezése. Állapotgépek. A modellek kombinálása. Specifikációs dokumentáció, Felhasználói kézikönyv. Szoftver tervezés lényege, szintjei. Tervezés alapfogalmai: absztrakció, egybefoglalás, információ rejtés, modularizálás. Döntések, döntéshasítás. Csatolás és kohézió. OO tervezés alapjai: Design by Contract. Öröklés, paraméterek, Demeter törvénye.
    10. Szoftver architektúrák. Architektúra fogalma, stílusok. Fontosabb architektúrák: csövek és szűrők, falitábla. Interpreter, objektum orientáltság, rétegelt. Kliens-szerver rétegek. SOA SOE. Tervezési dokumentumok.
    11. Rational Unified Process. Bevezetés RUP Életciklus, munkafolyamatok és modellek. A folyamat strukturálása. Use case modellek készítése. Fogalmi modell kialakítása. Analízis modell összeállítása. Szekvencia és interakciós diagramok készítése, szerződések. Tervezési döntések. Architektúra és implementáció. Agilis fejlesztés, SCRUM, Extreme Programming, Test Driven Development. Szereplők, ütemezések, feladatok, felelősségek.
    12. Szoftver karbantartás. A konfigurációs menedzsment feladatai: cm elemek azonosítása, változások kezelése, build menedzsment.
    13. Verziókezelés, SVN, GIT. Konfiguráció-menedzsment terv. Szoftver menedzsment alapjai. Mit csinálnak a fejlesztők? Csoportok szervezésének elvei. Szoftver menedzsment alapjai. Project tervezés. Projekt ütemezése, Kockázatok fogalma, kezelése. Projekt adatok mérése, becslése, A projekt terv dokumentáció vázlata.
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás

    10. Követelmények

    a. A szorgalmi időszakban:

    • Egy darab otthoni feladat megoldása. Ki- és beadása kari ütemterv szerint.

    Az aláírás megszerzésének feltétele: az otthoni feladat megoldásának elfogadása.

    b. A vizsgaidőszakban:

    • A vizsga írásbeli.
    • A vizsgadolgozattal elérhető maximális pontszám: 50

    ·         Értékelés:

    Pont

    Osztályzat

    0 - 20

    elégtelen (1)

    21 - 27

    elégséges (2)

    28 - 34

    közepes (3)

    35 - 41

    jó (4)

    42 - 50

    jeles (5)

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

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

    Házi feladat pótlása: Aki a feladatát nem adta be, vagy akinek a feladata nem lett elfogadva, új feladatot kérhet. Az új feladat megoldásának beadása a pótlási időszakban a tárgy honlapján szereplő határidőig lehetséges.

     

    Vizsgák: a TVSZ-nek megfelelően pótolhatók.

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

    Tanulmányi időszakban az előadások után, vizsgaidőszakban nincs.  

    13. Jegyzet, tankönyv, felhasználható irodalom
    • Kondorosi, László, Szirmay-Kalos: Objektum orientált szoftver fejlesztés, Kempelen Farkas Digitális Tankönyvtár, www.hik.hu
    • A tárgy weboldaláról (http://kfarkas.iit.bme.hu/~ptuser/) letölthető kb. 600 darab előadás fólia, segédletek, kidolgozott mintafeladatok és vizsgasorok.
    • Sommerville, I. – Szoftver rendszerek fejlesztése 2. bővített kiadás, Panem Kiadó, Debrecen, 2007.
    • Harald Störrle: UML 2, Panem Kiadó, Budapest, 2007
    • Sommerville, I. - Software Engineering 8th ed., Pearson Education Ltd, 2007, http://www.cs.st-andrews.ac.uk/%7Eifs/index.html
    • Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide, Addison-Wesley, 1999.
    • Roger s. Pressman: Software Engineering, A Practitioner's Approach, 6th ed, McGraw-Hill, 2006
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

    Kontaktóra

    42

    Készülés előadásokra

    16

    Készülés gyakorlatra

    0

    Készülés laborra

    0

    Készülés zárthelyire

    0

    Házi feladat elkészítése

    22

    Önálló tananyag-feldolgozás

    0

    Vizsgafelkészülés

    40

    Összesen

    120

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

    Dr. Goldschmidt Balázs

    docens

    Irányítástechnika és Informatika Tanszék

    Dr. László Zoltán

    docens

    Irányítástechnika és Informatika Tanszék

    Bóka Gábor

    tanársegéd

    Irányítástechnika és Informatika Tanszék

    IMSc tematika és módszer

    Az IMSc programban részt vevő hallgatók számára az előadásokon további elmélyülést biztosító irodalmat ajánlunk.

    Az IMSc programban részt vevő hallgatóknak igény szerint tanórán kívüli konzultációs lehetőséget biztosítunk.

     

    IMSc pontozás

    Az írásbeli vizsgán extra, IMSc feladatot biztosítunk, amelyre az alapfeladatokra elérhető pontszám 30%-át lehet kapni.  A plusz feladat csak akkor kerül értékelésre, ha a vizsga alapfeladatai megoldásával a hallgató jeles osztályzatot ért el.

    Az IMSc feladatra kapott pontszám egyenes arányosításával áll elő a tárgyban megszerezhető maximum 20 IMSc pont.

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