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: 2020. április 3.

    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,
    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
    VAGY
    TárgyEredmény( "BMEVIIIAA03" , "jegy" , _ ) >= 2)

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

    ÉS (Training.Code=("5N-A8") VAGY Training.Code=("5NAA8"))

    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 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, támogató és menedzsment tevékenységeket, ezek néhány alapvető technikáját és módszerét.

    Cél, hogy a hallgatók átfogó képpel rendelkezzenek a teljes szoftverfejlesztési folyamatról, beleértve a fejlesztési-, projektmenedzsment- és támogató folyamatokat.  Tudást szereznek az alapvető életciklus modellekről, folyamatfejlesztési modellekről és szabványokról.

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

    l alapfokon alkalmazni az objektum orientált szoftver tervezés módszereit;

    l megérteni és kezelni a mindenkor aktuális technológiával  készülőszoftver rendszerek fejlesztésének problémáit;

    l részt venni klasszikus és agilis szoftverfejlesztési 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. A szoftverről és a szoftverfejlesztésről. Aktuális trendek és problémák. Folyamatok és modellezésük.

    Miért olyan fontos a szoftver? Különbözik-e a szoftver más  javaktól”? Miért, vagy miért nem? A szoftverfejlesztés alapelvei . Példák szoftverhibákra és ezek következményeire . A fegyelem szükségessége a szoftverfejlesztésben. Próbálkozások a szoftverfejlesztés modellezésére az elmúlt 50 évben . Folyamatok, meghatározásuk és elemeik.

    2.     Objektumorientált tervezési elvek, OO fogalmak.

    3.     Egy népszerű modellezési nyelv: UML. Az UML elemeinek alkalmazása a szoftverfejlesztési folyamatban.

    UML: Use Case Diagram, Activity Diagram, Component Diagram, Deployment Diagram

    UML: Class Diagram, Package Diagram, Object Diagra

    UML: Sequence Diagram, Communication Diagram, Interaction Overview Diagram

    UML: State Machine Diagram, Timing Diagram, Composite Structure Diagram, Profile Diagram;

     Beyond UML: MOF, XMI, OCL

    4.     Szoftverfejlesztési folyamatok. Népszerű életciklus modellek (vízesés, iteratív, inkrementális, spirál modellek, RUP). A V modell és az ISO 12207 szabvány.

    5.     Hagyományos és agilis szoftverfejlesztés. Agilis és Lean alapelvek. A Scrum és az XP.

    6.     Folyamatfejlesztési modellek. Elemek, célok, gyakorlatok . Folyamatcsoportok: fejlesztési, menedzsment és támogató folyamatok. Népszerű folyamatfejlesztési modellek: CMMI, SPICE, AutomotiveSPICE, TMMi.

    7.     Követelménymenedzsment. A követelmények fontossága. Követelmények fejlesztése, követelmények kidolgozása. Követelmények forrásai. Követelmények felmérése, elemzése, priorizálása. Követelmények típusai: funkcionális és nemfunkcionális követelmények. Az IS 25000 szabványcsalád. Követelmények modellezése, dokumentálása. Kétirányú követhetőség. Követelmények változásának kezelése. Követelmények és követelményfejlesztés agilis környezetben .

    8.     Tervezés és implementálás.   Definíciók . A tervezési és implementálási folyamat. Szoftvertervezési alapelvek és fontos elemek . Architektúrák, döntések, tervezési minták . Felhasználói interfész (UI) tervezése; felhasználói élmény (UX).  Szoftvertervezés az ismert modellekben. Implementáció / kódolás . Kódolási szabványok alkalmazása. A kód minőségének ellenőrzése. Becslés a szoftvertervezés során. Tervezés és implementáció agilis környezetben

    9.     Tesztelés. Alapfogalmak.  A tesztelés definíciója. A tesztelés és minőségbiztosítás közötti különbség. A tesztelés 7 alapelve. Az alapvető tesztelési folyamat. A tesztelés alapdokumentumai. A tesztelés pszichológiája

    10.  A tesztek csoportosítása. Alapvető tesztelési technikák. Statikus tesztelés. Dinamikus tesztelés : funkcionális tesztelés, strukturális tesztelés. Tesztelés agilis környezetben.   

    11.  A szoftver projektek irányítási vonatkozásai. Becslés, tervezés, követés, vezérlés. Agilis projektmenedzsment technikák és eszközök.

    12.  Támogató folyamatok a szoftverfejlesztésben. Konfigurációmenedzsment. Konfigurációs elemek azonosítása, konfigurációmenedzsment tevékenységek. Kockázatmenedzsment. Minőségmenedzsment. Mérés és elemzés a szoftverfejlesztésben.


    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. Késedelmes leadásra nincs lehetőség.

     

    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

    ·       Előadásdiák (https://www.iit.bme.hu/oktatas/tanszeki_targyak/BMEVIIIAB01)

    ·       Ian Sommerville: Szoftverrendszerek fejlesztése - Software Engineering, 2. kiadás, Panem Kiadó, 2007

    ·       Essentials of Software Engineering. Fourth Edition. Jones & Bartlett Learning, authors: Frank Tsui, PhD, Orlando Karam, Barbara Bernal http://www.jblearning.com/catalog/9781284106008/

    ·       Balla K: Minőségmenedzsment a szoftverfejlesztésben. Budapest: PANEM, 2007

    ·       Tarczali Tünde: UML diagramok a gyakorlatban, Typotex Kiadó, 2011, http://www.tankonyvtar.hu/hu/tartalom/tamop425/0008_tarcali/Tarczali_UML_diagramok_1_1.html

     

    A tárgy kidolgozásában felhasznált főbb internetes források, szabványok, modellek:

    l ISTQB Glossary of Terms used in Software Testing http://glossary.istqb.org

    l ISTQB Foundation Level Syllabus et.al. http://www.istqb.org/downloads/category/2-foundation-level-documents.html

    l A Glossary of Requirements Engineering Terminology Version 1.6 May 2014

    l IREB Foundation Level Syllabus, Version 2.2.1 , July 24th 2017

    l Requirements Engineering Fundamentals, Klaus Pohl, Chris Rupp, 2nd edition, Rocky Nook Inc. (April 2015)

    l Agile Alliance documents - https://www.agilealliance.org

    l https://theagileadmin.com/what-is-devops/

    l Kanban boards step by step https://www.processmodel.com/blog/what-is-a-process/ § https://www.computer.org/web/swebok

    l  http://iso25000.com/index.php/en/iso-25000-standards

    l UML 2.5, http://www.omg.org/spec/UML/

    l CMMI-DEV v1.3, www.cmmiinstitute.com

    l ISO/IEC 12207:2008 / 2015: Systems and software engineering -- Software life cycle processes

    l ISO 15504: 2012. Information technology -- Process assessment -- Part 5: An exemplar software life cycle process assessment model

    l ISO 9001:2015 Quality management systems -- Requirements

    l ISO/IEC 25000:2014 . Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- Guide to SQuaRE § Automotive SPICE PAM, V3.0. http://www.automotivespice.com/fileadmin/softwaredownload/Automotive_SPICE_PAM_30.pdf

    l ISO/IEC/IEEE 29119-1, 29119-2, 29119-3 and 29119-4 (2013) IEEE Standard for Software Test Documentation

    l ISO/IEC 25010, System and software engineering – Systems and software Quality Requirements and 6 Evaluation (SQueRE) System and software quality models. 2011 14. 

    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. Balla Katalin

    docens

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

    Dr. Simon Balázs

    docens

    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.