Agilis szoftverfejlesztés
A tantárgyleírás hatályossága
| Tantárgy neve (magyarul, angolul) |
Agilis szoftverfejlesztés
Agile Software Development
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIAUAV17 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | félévközi érdemjegy | ||||||||||||
| Tantárgy kreditértéke | 2 | ||||||||||||
| Tantárgyfelelős |
Dr. Lengyel László
beosztás: egyetemi tanár
elérhetőség:
lengyel.laszlo@vik.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
Automatizálási és Alkalmazott Informatikai Tanszék
|
||||||||||||
| Kar | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Tantárgy weboldala | — | ||||||||||||
| Tantárgy elsődleges mintatantervi jellege | — | ||||||||||||
| Közvetlen előkövetelmények – Erős előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Gyenge előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Párhuzamos előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Mérföldkő előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Kizáró feltétel | nincs |
Célkitűzés
|
Hét |
Előadás anyaga |
|
1. |
Bevezetés Az agilis szoftverfejlesztés alapjai. Mire jók a szoftverfejlesztési módszertanok. Az agilis kiáltvány, agilis alapelvek, agilis módszertanok. |
|
2. |
Agilis tervezés szintjei Hogyan lehet egy szoftver-terméket, illetve annak kiadásait (release) megtervezni, és hogyan lehet a szállítási időket jól becsülni. Kiadás (release) tervezés, felhasználói sztorik (user story), becslési technikák, Iteráció tervezés, Daily Standup. |
|
3. |
Agilist tervezés a gyakorlatban Egy gyakorlat keretében egy
konkrét szoftver-terméket tervezünk, majd megbecsüljük az egyes felhasználói
sztorik méretét, elkészítési idejét. A gyakorlat során a projekt-csapatok egy
valódi szoftverrel megvalósítandó feladaton dolgoznak. |
|
4. |
Prioritások Az agilis fejlesztés középpontjában az értékkel bíró szoftver hatékony kiadása áll. Prioritások nélkül ez nem megvalósítható. Lehetséges priorizálási módszerek, prioritások felülvizsgálata, story backlog menet közbeni módosítása. |
|
5. |
Refactoring 1 A legtöbb szoftver életciklusa során eljut abba a fázisba, amikor már nehezen karbantartható. Minőségi szoftver csak úgy készíthető, ha ezt a minőségbeli romlást, tudatosan és már a fejlesztés közben megakadályozzuk. Ennek egyik leghatékonyabb módja a refaktorálás. Konkrét szoftver refaktorálásának részletes bemutatása program-kódon keresztül. |
|
6. |
Refactoring 2 Egy gyakorlat keretében a hallgatók maguk is refaktorálnak konkrét program kódot. A gyakorlat keretében bemutatjuk a refaktorálási lehetőségek katalógusát és egyéb refaktorálási trükköket, amelyek lehetővé teszik minőségi kód elkészítését. |
|
7. |
Agilis tesztelés Az agilis módszertan a hagyományostól eltérő tesztelést igényel. Ezek a tesztek magukba foglalnak a fejlesztők által megírt automatizált teszteket, és tesztelők által végzett manuális teszteket. Bemutatjuk, hogy egy adott szoftver esetében hogyan tudjuk meghatározni, hogy milyen típusú tesztekből mennyire van szükség ahhoz, hogy minőségi szoftvert készíthessünk. Teszt
kvadránsok, automatizált tesztek, UI tesztek, funkcionális tesztek, unit
tesztek. |
|
8. |
TDD 1 A tesztvezérelt fejlesztés (Test Driven Development) egy kulcsfontosságú gyakorlat az extrém programozásban. TDD alkalmazása esetén a végrehajtó-kód a teszt-kóddal együtt fejlődik, ezzel is biztosítva a jó minőséget. TDD
alapelvek, alapfogalmak (tesztelt kód - Code under test, teszt-lefedettség - code
coverage, elvárt eredmények - expectation) |
|
9. |
TDD 2 Egy
gyakorlat keretében a hallgatók elsajátíthatják a TDD fejlesztéshez
kapcsolódó gyakorlatokat, trükköket, technikákat, és megtapasztalják, hogy
hogyan lehet hatékony unit teszteket írni. |
|
10. |
Folyamatos integráció A folyamatos integráció szintén fontos eleme az agilis fejlesztésnek, mivel a becslések és a projekt státusza csak akkor vehetőek figyelembe, ha az egyes fejlesztési feladatok folyamatosan integrálva vannak. CI keretrendszerek, 10-minute Build, Test suite |
|
11. |
Folyamatos integráció a gyakorlatban Gyakorlat keretében készítünk egy folyamatos integrációs eszközbe építve egy build scriptet, amivel ellenőrizhetjük az elkészült kód integritását. |
|
12. |
eXtrém programozás Az extrém programozás öt Értékre (kommunikáció,
egyszerűség, visszacsatolás, bátorság és bizalom) épülő gyakorlatok
összessége, ahol a az értékek és gyakorlatok közötti kapcsolatot az Elvek
jelentik. Bemutatjuk, hogy az egyes gyakorlatok (pl. TDD) hogyan valósítják
meg ezeket az értékeket. Értékek, elvek, gyakorlatok. |
|
13. |
eXtrém Programozás a hétköznapokban Gyakorlatok részletes tárgyalása, hétköznapi jelentésük, megvalósításuk, előnyök, hátrányok. Bemutatjuk, hogy mit jelentenek ezek a gyakorlatok egy projekt esetében a napi munkában. |
|
14. |
Automatizált tesztelés A
folyamatos integrációt csak úgy tudjuk elérni, ha kód minden verziójáról el
tudjuk dönteni, hogy az megfelel-e a követelményeknek. Ezt csak automatizált
tesztekkel érhetjük el. Áttekintjük az automatizált tesztelési eszközöket,
elfogadási teszteket, megtárgyaljuk azok előnyeit, hátrányait, majd
bemutatjuk tipikus problémáit. |
Tanulmányi eredmények
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Tudás
Nincsenek rögzített tanulási eredmények.
Képességek
Nincsenek rögzített tanulási eredmények.
Attitűd
Nincsenek rögzített tanulási eredmények.
Autonómia és felelősség
Nincsenek rögzített tanulási eredmények.
Oktatási módszertan
Tanulástámogató anyagok
Online források
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Szorgalmi időszakban végzett teljesítményértékelések részaránya
Nincs megadva részarány.
Vizsgaidőszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Vizsgarészek részaránya
Nincs megadva részarány.
Érdemjegy megállapítása
Nincs megadva érdemjegy határ.
Jelenléti és részvételi követelmények
Nincs megadva jelenléti követelmény.
Javítás, ismétlés és pótlás különös szabályai
Nincs megadva.
Rövid leírás
Nincs megadva.
Részletes leírás
Nincs megadva.
Ajánlott tantárgyak
A tantárgy elvégzéséhez szükséges tanulmányi munka
Nincs megadva munkaidő bontás.
Tantárgykövetelmények hatályossága
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.