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ó    

    Szoftvertervezés

    A tantárgy angol neve: Software Design

    Adatlap utolsó módosítása: 2019. január 30.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIIIMA15 1, 3 3/0/0/f 4  
    3. A tantárgyfelelős személy és tanszék Dr. Benyó Balázs István,
    A tantárgy tanszéki weboldala https://www.iit.bme.hu/targyak/BMEVIIIMA15
    4. A tantárgy előadója

    dr. Benyó Balázs, egyetemi tanár - Irányítástechnika és Informatika Tanszék

    5. A tantárgy az alábbi témakörök ismeretére épít Objektum-orientált programozás alapjai.
    6. Előtanulmányi rend
    Kötelező:
    NEM ( TárgyEredmény( "BMEVIIIM110" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIIIM110", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény( "BMEVIIIMA20", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIIIMA20", "FELVETEL", AktualisFelev()) > 0)

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

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

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

    A tárgy célja a modern szoftvertervezés elméleti és gyakorlati alapjainak ismertetése, a szoftver rendszerek fejlesztése során alkalmazott legfontosabb elvek és módszerek, valamint azok gyakorlatban történő alkalmazásának bemutatása. A hallgatók közvetlenül alkalmazható tudást szereznek az objektum-orientált szoftvertervezés gyakorlatából, megismerhetik a szoftvertervezési minták alkalmazását. Képesek lesznek átlátni a szoftvertervezés és fejlesztés folyamatát, a szoftverek létrehozása során alkalmazott különböző típusú követelményeket, valamint az azokat kielégítő rendszer megvalósításának folyamatát.

    8. A tantárgy részletes tematikája
    1. A szoftver rendszerek létrehozásának folyamata. A software engineering fogalmának meghatározása. Alapfogalmak definíciója: szoftver, szoftverfejlesztési módszertan, életciklus modell. A szoftverfejlesztési módszertanok és szoftverfejlesztési környezetek fejlődésének bemutatása. A szoftver életciklus modelljeinek bemutatása és azok összehasonlítása: vízesés modell, V modell, iteratív-inkrementális fejlesztés, spirál modell. Modell vezérel fejlesztés jellemzői.

    2. Modern szoftverfejlesztési módszertanok jellemzői, agilis fejlesztési módszertanok meghatározása. Néhány elterjedt agilis tervezés módszertan és módszer bemutatása: SCRUM , Extreme Programming, Test First Development, Test Driven Development.

    3. SCRUM módszertan: A módszertan bemutatása, az agile szemléletmód és annak megvalósítása a fejlesztés során. A Product Backlog és annak használata a fejlesztés során. A Scrum Folyamat és a Scrum Csapat bemutatása. Az egyes szerepkörök ismertetése: Scrum Master szerep, Product Owner szerep, Fejlesztő (Developer) szerep.

    4. SCRUM módszertan: A Srum folyamat végrehajtása a gyakorlatban, ceremóniák és fogalmak. A Product Backlog kezelésének részletei, különböző típusú Backlog Item-ek definiálása, azok leírásának kezelése a fejlesztés során. User Story fogalma és használata. A ráfordítás becslése és előrejelzése a Scrum folyamat végrehajtása során.

    5. Objektum orientált szoftver fejlesztés meghatározása. Objektum orientált megközelítés, ill. szoftver fejlesztési elvek alkalmazása az elemzés, a tervezés és a megvalósítás során: legfontosabb alapelvek és módszerek ismertetése. Unified Process (UP) fejlesztési módszertan bemutatása. A UP fázisai, diszciplínák vagy munkafolyamatok, a UP során létrejövő szoftverfejlesztési termékek. A sikeres fejlesztés kockázatainak kezelése. Unified Modelling Language (UML) bemutatása.

    6. A Unified Process Előkészítés (Inception) fázisa. Jellemző termékek tartalmának meghatározása: Vízió, Use Case modell, Kiegészítő követelmények leírása (Supplementary Specification), Glossary. A funkcionális és nem funkcionális követelmények meghatározásának módszerei. A FURPS+ modell a követelmények meghatározására.

    7. A Use Case modellezés meghatározása. A Use Case-ek és Aktorok definiálása és azok leírása. A Use Case diagramok felépítése és azok strukturálása. A System Sequence Diagram (SSD) szintaktikája és elkészítése. Az SSD viszonya más fejlesztési termékekkel. Gyakorlati példa ismertetése.

    8. Az Aktivitás diagram és annak használata a Use Case modellezés során. Az Aktivitás diagram és a Use Case leírás viszonya. Gyakorlati példa ismertetése.

    9. Az UML osztály diagram. A Domain modell felépítése, értelmezése és létrehozásának módszerei. Gyakorlati példa ismertetése.

    10. A Unified Process Kidolgozás (Elaboration) fázisa. Felelősségek meghatározásának és kiosztásának módszerei. Gyakorlati példa ismertetése.

    11. Az UML interakciós diagramjainak (szekvencia és kommunikációs, ill. együttműködési diagramok) szintaktikája, azok alkalmazása a tervezés során. A Unified Process Design Modell elemei és azok létrehozásának módszerei. Gyakorlati példa ismertetése.

    12. A szoftverfejlesztés során alkalmazott szoftver tervezési minták fogalma, típusai, alkalmazásuk. Tervezési minták a szoftver felelősségek meghatározásához: Genenal Responsibility Assignment Software Patterns (GRASP). Gyakorlati példák ismertetése.

    13. A Unified Process Megvalósítás (Construction) és Átadás (Transition) fázisai. Modellek és a szoftver kód viszonya, kódgenerálás módszerei és lehetőségei. UML modellek és alkalmazásuk a Megvalósítás és Átadás fázisaiban. A szoftver rendszerek verifikációja és validációja: a feladatok meghatározása, helyük a fejlesztési folyamatában, jellemző típusai. A szoftver verifikáció és validáció során felhasznált legfontosabb módszerek.

    14. A modern szoftver tervezés gyakorlatában alkalmazott, a szoftverek tervezését és létrehozását támogató környezetek (CASE) típusai és funkciói. Verzió és konfiguráció management környezetek tipikus feladatai. Feladatok és hibák követése (Issue tracking, Bug tracking) a szoftverfejlesztés során. A szoftver projektek tervezése módszerei: Gantt diagram, PERT háló bemutatása. Szoftver fejlesztő szervezetek minősítése: Capability Maturity Model (CMM) ismertetése.

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

    Heti három előadás. (A hallhatók házi feladatot kapnak.)

    10. Követelmények

    A. A szorgalmi időszakban egy nagyzárthelyi megírása, és egy komplex csoportmunkában készített otthoni házi feladat elkészítése. A félévközi jegy megszerzésének feltétele a házi feladat elfogadása és legalább elégséges nagyzárthelyi. A félévközi jegyet a nagyzárthelyi (60%) és a házi feladat (40%) eredménye alapján kapja a hallgató.

    B. A vizsgaidőszakban: nincs.

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

    A nagyzárthelyi a pótlási héten egy alkalommal pótolható, az otthoni házi feladat különeljárási díj megfizetése mellett pótolható.

    12. Konzultációs lehetőségek Az előadóval történő egyeztetés után igény szerint.
    13. Jegyzet, tankönyv, felhasználható irodalom

    Larman, Craig. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edition. 2012.

    Jeff Sutherland, Ken Schwaber: The Scrum Guide - The Definitive Guide to Scrum: The Rules of the Game, 2017.

    Satzinger, John W., Robert Jackson, and Stephen D. Burd. Systems analysis and design in a changing world. Cengage Learning, 2011.

    Mike Cohn: Agile Estimating and Planning, Prentice Hall, 2005.

    Sommerville, Ian: Software Engineering. International computer science series,  2004.

    Sommerville, Ian: Szoftverrendszerek fejlesztése/Software Engineering, Sixth Edition, PANEM Könyvkiadó, Budapest (2002).

    Pressman, Roger S.: Software engineering: a practitioner’s approach, McGraw-Hill, 2001.

    Rumbaugh, James, Ivar Jacobson, and Grady Booch: Unified Modeling Language Reference Manual, Pearson Higher Education, 2004.

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra 42
    Félévközi készülés órákra 14
    Felkészülés zárthelyire 34
    Házi feladat elkészítése 30
    Kijelölt írásos tananyag elsajátítása -
    Vizsgafelkészülés -
    Összesen120
    15. A tantárgy tematikáját kidolgozta dr. Benyó Balázs