Szoftvertechnológia és -technikák

A tantárgy angol neve: Software Technology and Techniques

Adatlap utolsó módosítása: 2018. június 28.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Üzemmérnök-informatikus szak, BProf képzés
közös tárgy
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAUBB02 3 2/0/4/v 7  
3. A tantárgyfelelős személy és tanszék Dr. Charaf Hassan,
4. A tantárgy előadója

Név

Beosztás

Tanszék

Dr. Charaf Hassan

Egyetemi tanár

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

Dr. Mezei Gergely

Egyetemi docens

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

5. A tantárgy az alábbi témakörök ismeretére épít

·       Objektumorientált programozás

6. Előtanulmányi rend
Kötelező:
Training.Code=("5N-A9") ÉS
(TárgyEredmény("BMEVIIIBA02", "FELVETEL", _) > 0
VAGY
TárgyEredmény( "BMEVIIIBA02" , "jegy" , _ ) >= 2 )

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.

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

A tárgy célja a készség szintű tudás átadás a szoftverfejlesztés folyamata, támogató eszközei és módszertana területén, ami alkalmassá teszi a tárgyat sikeresen elvégzőket a fejlesztő műhelyek munkájába való zökkenőmentes bekapcsolódásra.

A tárgy főbb témakörei a következők:

·       A szoftverfejlesztés folyamata, a fejlesztés lépései (megértés szint: magyarázatok, összefüggések ismerete, esetek felismerése, besorolása - K2)

·       A SOLID elvek a programozásban (alkalmazás szint (problémamegoldás ismeretek alkalmazásával, példák, feladatok önálló megoldása - K3)

·       Az UML jelölésrendszer (osztály-, szekvencia-, használati eset-, állapotdiagram) (K3)

·       Tervezési minták (K3)

·       Architektúrák, architektúrális tervezési minták (K2)

Fejlesztési módszertanok (vízesés, RUP, agilis) (K2)

8. A tantárgy részletes tematikája

Az előadások tematikája:

Előadás

Előadás anyaga

1.

Bevezetés, a félév áttekintés, a szoftverfejlesztés alapjai. A SOLID elvek

2.

Bevezetés az UML világába. Osztálydiagram.

3.

Osztálydiagram és szekvencia diagram.

4.

Állapotdiagram és aktivitás diagram

5.

Használati eset diagram

6.

UML összefoglalás és kitekintés. UML Profile.

7.

Tervezési minták – bevezetés (Singleton, Factory method, Prototype)

8.

Tervezési minták – Observer, Memento, Bridge, Adapter, Iterator, Template method, Command

9.

Architektúrális tervezési minták. Document-View. Model-View-Controller. MVVM. Pipes & filters. Több rétegű arhictektúrák.

10.

A szoftverfejlesztési fázisai, dokumentáció, tesztelés alapjai

11.

A vízesés és a RUP módszertan

12.

Agilis fejlesztés, Scrum

13.

Continous integration. Continous development. DevOps

14.

Kitekintés, tartalék

A gyakorlatok (laborok) tematikája:

Gyakorlat

Gyakorlat anyaga

1.

Bevezetés, követelmények ismertetése. Objektumorientált programozás ismétlése Java alapon.

2.

Kódelemzés, a SOLID elvek vizsgálata egy meglévő kódon.

3.

Java kódból osztálydiagram készítése, osztálydiagramból Java kód készítése.

4.

Java kódból osztálydiagram készítése, osztálydiagramból Java kód készítése.

5.

C# és Java kód összehasonlítása, osztálydiagram készítése kódból és visszafelé.

6.

C# és Java kód összehasonlítása, osztálydiagram készítése kódból és visszafelé.

7.

Szekvencia diagram készítése forráskód alapján.

8.

Szekvencia diagram készítése forráskód alapján, a szekvencia-, és osztálydiagram kombinálása.

9.

Állapotgép forráskód készítés modell alapján

10.

Kódkészítés modell alapján, modellkészítés kód alapján.

11.

Specifikációból modell, majd forráskód készítés

12.

Specifikációból modell, majd forráskód készítés, gyakorlás

13.

Tervezési minták felismerése, kiegészítése

11.

Tervezési minták és implementálásuk (Singleton, Factory Method)

12.

Tervezési minták (Memento, Command)

13.

Tervezési minták (Observer, Bridge, Iterator)

14.

Tervezési minták – gyakorlás, összetett példák

15.

A Document- View és MVVM megközelítés a gyakorlatban

16.

A Document- View és MVVM megközelítés a gyakorlatban

17.

Architektúra és tervezés gyakorlat

18.

Szoftverfejlesztési módszertanok a gyakorlatban

19.

Szoftverfejlesztési módszertanok a gyakorlatban

20.

Tesztelés alapok a gyakorlatban

21.

Tesztelés alapok a gyakorlatban

22.

Házi feladat beadása

23.

Tartalék az elmaradó órákhoz, kitekintés

24.

Tartalék az elmaradó órákhoz, kitekintés

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

Előadás: a szoftverfejlesztési technológiák és technikák ismertetése, az elméleti, általános alapok az egyes témakörökhöz kapcsolódóan. Az előadás célja, hogy a hallgatók megismerjék a fogalmakat, a jelölésrendszert, amik használatát a laborok segítségével a gyakorlatban is elsajátíthatják később.

Labor: számítógépes labor, ahol az egyes témakörökbe előbb a laborvezető segítségével betekintést nyernek, majd az elsajátított ismereteket a gyakorlatban is alkalmazzák önálló munkavégzés formájában.

10. Követelmények

A szorgalmi időszakban:

Két kis házi feladat (részteljesítmény értékelés) és egy zárthelyi dolgozat (összegző értékelés). Az első házi feladat a hatodik héten kerül kiosztásra és a tizedik hétig kell beadni. A második feladat a tizenegyedik héten kerül kiosztásra és a szorgalom időszak végén megjelölt laboron kell beadni. A zárthelyik a nyolcadik-tizedik hét közt írják a féléves kari ZH tervnek megfelelően.

A félév végi aláírás feltételei:

A zárthelyi dolgozat és mindkét házi feladat legalább elégséges szintű teljesítése (A ZH esetében ez az elérhető pontszám több, mint a felét kell-, amíg a két házi feladat értékelésén legalább 2-2 pontot kell elérni.)

A vizsgaidőszakban:
A vizsga sikeres teljesítése.

Az osztályzat megállapításának módja:

A vizsga 80 pontos. Mindkét házi feladat alapján 0-5 pont, a zárthelyi dolgozat alapján 0-10 pont adható, így összesen 100 pont szerezhető. 85 ponttól jeles, 70 ponttól jó, 60 ponttól közepes, 50 pont felett elégséges az osztályzat.

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

A két házi feladat a pótlási hét végéig pótolható. A zárthelyi dolgozat egy alkalommal pótzárthelyi dolgozattal pótolható.

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

Igény szerint.

13. Jegyzet, tankönyv, felhasználható irodalom

Sommerville, I. – Szoftver rendszerek fejlesztése 2. bővített kiadás, Panem Kiadó, 2007

Benedek Z., Levendovszky T.: Szoftvertechnikák (egyetemi jegyzet), BME, 2006
Gamma, Helm, Johnson, Vlissides: Design Patterns, Addison-Wesley, 1994

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

Kontaktóra

84

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

6

Készülés laborra

28

Készülés zárthelyire

21

Házi feladat elkészítése

15

Vizsgafelkészülés

56

Összesen

210

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

Név:

Beosztás:

Tanszék, Int.:

Dr. Mezei Gergely

Egyetemi docens

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

Dr. Kővári Bence

Egyetemi docens

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

Bendedek Zoltán

Tanársegéd

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