Szoftvertechnológia és -technikák
A VIK Wikiből
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.
Követelmények
Előtanulmányi rend
- A tárgy felvételéhez az Objektumorientált programozás előzetes vagy egyidejű felvétele szükséges.
A szorgalmi időszakban
- A ZH legalább elégséges szintű (50%) teljesítése. A zárthelyire 0-100 pontot lehet szerezni, és a pontok legalább felét kell megszerezni az elégséges teljesítéséhez.
- A házi feladatokra darabonként 0-10 pontot lehet szerezni. A házi feladatok teljesítéséhez 4-4 pontot kell elérni mind a kettőből. 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 laborok 70%-át teljesíteni kell. Jár "pluszpont", ha valaki megcsinálja a szorgalmi részét egy labornak.
- Általában 3-4 órát kell dolgozni a jelenléthez, és még 1-3 óra a szorgalmi feladat.
- Gyakorlatoknak is szokták hívni, mert az első pár héten vannak elméletibb "gyakorlat" feladatok is laboron.
- A szorgalmit meg lehet csinálni otthon, és a következő laboralkalom előttig be lehet adni, de csak akkor ha abból a laborból megvan a jelenlét.
- Pótlási lehetőségek:
- A házi feladatok a pótlási hét végéig pótolhatóak.
- A ZH szorgalmi időszakban egyszer pótolható, pót-pót ZH már nincs.
A vizsga
- A vizsga 90 pontos lesz.
- Van beugró, aminek az 50% teljesítése elvárt, a beugró össztpontja alapján. (Vigyázat: az Igaz-Hamis feladatoknál pontlevonás van (UML-rajzoknál nincs)!)
Félévvégi jegy
- Pontszámítás:
- Vizsga + ZH * 0.4 + Házi pontok + pluszpontok
- Ponthatárok:
- 75-től kettes, 90-től hármas, 105-től négyes és 127-től ötös
Tematika
A példakódokat amikben mutatnak dolgokat, a Szoftvertechnológiák tananyagnál Java-ban mutatják, majd a Szoftvertechnikák tananyagnál C#-ban tanítják (de a 2. házi feladatot lehet mindkét nyelvben csinálni).
Előadás
A prezentációk a Teamsre vannak feltöltve.
- 1. hét (Dr. Mezei Gergely): bevezetés, OOP, SOLID
UML
- 2. hét (Dr. Mezei Gergely): osztálydiagram; gyakorlófeladat: osztálydiagram készítése szöveges specifikáció alapján
- 3. hét (Dr. Mezei Gergely): osztálydiagram: «enumeration», «abstract», «interface» és kapcsolatok; sorrend; szekvenciadiagram: szinkron és aszinkron hívás, blokkok (alt, loop, opt, par); gyakorlófeladat: szekvenciadiagram készítése kód alapján
- 4. hét (Somogyi Ferenc Attila): aktivitásdiagram: initial node; őrfeltétel, dekompozíció; decision, merge; fork, join; partition, object flow, object node, pin; exception, accept (time) event / send signal action; flow final node; final node; állapot(gép)diagram: trigger, guard condition; behavior expression; composite state: entry / exit / do action; region, submachine state; shallow / deep history; entry / exit point; fork, join; gyakorlófeladat: aktivitásdiagram vagy állapotdiagram készítése leírás alapján
- 5. hét: szünet
- 6. hét (Dr. Mezei Gergely): használatieset-diagram: rendszerhatár, aktor, usecase, asszociáció; XMI; kitekintés: UML Profile, metamodellezés (MOF); gyakorlófeladat: használatieset-diagram készítése leírás alapján
Design pattern
- 7. hét (Benedek Zoltán): design patterns: elemei, csoportosítása; template method, strategy pattern, lambda expressions
- 8. hét: szünet
- 9. hét (Benedek Zoltán): design patterns, folytatás: observer, dependency injection, singleton, abstract factory
- EA08_Tervezési_minták_3
- EA09_Architekturális_tervezés
- EA10 Szoftverfejlesztés 1
- EA11 Szoftverfejlesztés 2
- EA12 Szoftverfejlesztés 3
- EA13 Szoftverfejlesztés 4
Labor
A laborfeladatok a tárgyhonlapra vannak feltöltve. A megoldásokat a tárgyhonlap Eredményeim aloldalára kell feltölteni.
UML
- 1. hét: kód készítése szöveges specifikáció alapján (bútoros)
- 2. hét: kód és osztálydiagram készítése szöveges specifikáció alapján (járművek, ETR, étterem)
- 3. hét: osztálydiagram készítése szöveges specifikáció alapján (építési vállalat, webshop, szemétszállító cég)
- 4. hét: szekvenciadiagram készítése kód alapján (WashingMachine), osztály- és szekvenciadiagram készítése leírás alapján (Furious Flights), kód kiegészítése osztály- és szekvenciadiagram alapján (RockPaperScissors)
- 5. hét: szünet
- 6. hét: aktivitás- és állapotdiagram készítése szöveges specifikáció alapján (webshop, egyetemi követelményrendszer, regény, kávéfőző, nyomtató), állapotgép kódjának elemzése (.NET Core-os verzió, ami macOS-en is fut)
- 7. hét: használatiesetdiagram készítése szöveges specifikáció alapján (CyberPub); gyakorlás a ZH-ra feladatok önálló megoldásával: használatiesetdiagram készítése szöveges specifikáció alapján (bűvésztársulat), osztálydiagram készítése szöveges specifikáció alapján (kollégium), szekvenciadiagram készítése kód alapján (SocialMediaService), állapotdiagram készítése szöveges specifikáció alapján (ZH-javító), aktivitásdiagram készítése szöveges specifikáció alapján (hivatalnok)
Design pattern
- 8. hét: extension methods refactoring (Person): osztályba szervezés, bővítés, strategy pattern
- 9. hét: observer és singleton (Lift): program írása, refactoring
- 9. labor: útmutató, kiinduló
- 10. labor: útmutató, kiinduló 17763, kiinduló 19041
- A két különböző kiinduló fájl valójában ugyan az, csak ez azért van, hogy lehetőleg mindenkinek a rendszerén tudjon futni, az UWP sajátosságai miatt...
- 11. labor: útmutató, kiinduló
- 12. labor: útmutató
Segédanyagok
Házi feladat
- 1. házi feladat - Szoftvertechnológiák
- 2. házi feladat - Szoftvertechnikák
ZH
Vizsga
- 2019. ősz
- 2021. ősz
- 2022. ősz
GitEgylet segédanyagok:
1. félév | |
---|---|
2. félév | |
3. félév | |
4. félév | |
5. félév | |
6. félév |