Alkalmazásfejlesztés

A tantárgy angol neve: Development of Software Applications

Adatlap utolsó módosítása: 2021. július 15.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Villamosmérnöki szak, MSc képzés       
Számítógép-alapú rendszerek főspecializáció       

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAUMA09 2 2/1/0/v 4  
3. A tantárgyfelelős személy és tanszék Dr. Csorba Kristóf,
A tantárgy tanszéki weboldala https://www.aut.bme.hu/Course/VIAUMA09
4. A tantárgy előadója Dr. Csorba Kristóf, egyetemi docens, Automatizálási és Alkalmazott Informatikai Tanszék
5. A tantárgy az alábbi témakörök ismeretére épít
  • ·         A tantárgy anyaga épít a BSc képzés Beágyazott operációs rendszerek és kliens alkalmazások (VIAUAC07) tantárgyára, de akik ezt nem hallgatták, azok számára felzárkóztató anyagokat biztosítunk.

    ·         Az objektum orientált szoftverfejlesztési elvek ismerete és alkalmazása.

6. Előtanulmányi rend
Kötelező:
NEM
(TárgyEredmény( "BMEVIAUMB07", "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIAUMB07", "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ó.

Ajánlott:

Ajánlott előtanulmány: Beágyazott operációs rendszerek és kliens alkalmazások (VIAUAC07)

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

A tantárgy célja megismertetni a hallgatókkal azokat az eszközöket, melyek a programozási alapismereteken túl a nagyobb szoftverfejlesztési projektek esetében szükségesek. Ide tartoznak a magas szintű osztálykönyvtárak, az automatikus tesztelés, a verziókezelés és dokumentációs módszerek. A tantárgy első részében a C# és .NET Core, majd az Universal Windows Platform (UWP) lehetőségeit mutatjuk be, utána pedig a szoftverfejlesztésben széles körben megjelenő tervezési mintákat tekintjük át. Mindezek során a tantárgy kiemelt hangsúlyt fektet a beágyazott rendszerekhez kapcsolódó feladatokra, valamint az ezekből származó speciális környezetekre.

Megszerezhető készségek, képességek:

A tantárgy sikeres elvégzése esetén a hallgatók képesek lesznek .NET Core és UWP használatával olyan szoftverek fejlesztésére, melyek rendelkeznek összetett grafikus felhasználó felülettel (GUI) és képesek kommunikálni szerver oldallal vagy beágyazott rendszerekkel is, felépítésükben pedig a tervezési minták és a széles körben használt architeltúrális irányelvek is megjelennek. A fejlesztés során képesek az alapvető fejlesztői eszközök (verziókövető, folyamatos tesztek) használatára. Ezen kívül megismerik a szoftverprojektek tömör és áttekinthető dokumentálásának módszereit, mint a legfontosabb UML diagramokat és a forráskód alapján generálható dokumentációt.

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

 

Az előadások az alábbi témákat érintik, míg a gyakorlatok célja az előadáson hallottak gyakorlati elmélyítése.

·         Bevezető, követelmények ismertetése, demók a később érintett területek érdekességei közül. A tantárgy anyagának elhelyezése a villamosmérnöki szakmán belül.

·         Verziókezelés ismétlése: git használata, problémásabb esetek megoldása a repositoryban, merge és rebase alapú fejlesztés, GitFlow, github pull requestek. Dokumentálás: UML alapok, Markdown, dokumentálás a forráskódban

·         C# és .NET alapok átismétlése

·         További .NET Core technológiák: IEnumerable, Linq, szerializálás, adatperzisztencia, hálózati és soros porti kommunikáció

·         XAML alapú UWP felhasználó felületek alapjai

·         Adatkötés, MVVM architektúra

·         Multithreading (Task osztály, async-await minta)

·         Automatikus tesztelési módszerek

·         Tervezési architektúrák és minták: céljuk, felismerésük, megvalósítások C# nyelven, „antipatternek”.

·         Összetett esettanulmányok


 

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

Előadás, gyakorlat. A tananyag egy részét a hallgatóknak online elérhető anyagok formájában, otthon kell elsajátítani.

 

A félév során a tantárgy oktatási módja két fázisra oszlik. Az első részben online anyagok és az azokat kiegészítő kontaktórák formájában lemegy az elméleti anyag. A második rész a házi feladatra fókuszál. Ekkor új anyag már nem hangzik el, a kontaktórákon egyrészt a házi feladattal kapcsolatos konzultáció van, valamint a házi feladathoz (plusz pontért) kérhető, csapatonként személyre szabott visszajelzést adó „code review” általános tapasztalatait beszéljük meg.

10. Követelmények

A szorgalmi időszakban:

A félévközi ismeretek elsajátítását és a gyakorlást egy házi feladat biztosítja, amelynek beadási határideje a 14. oktatási hétre meghirdetett időpont.

Az aláírás feltételei:

·         A házi feladat megfelelő minőségben, határidőre való elkészítése.

 

A vizsgaidőszakban: írásbeli vizsga.

A félév elismerését jelentő félév végi jegy megszerzésére akkor van lehetőség, ha a hallgató

·         megszerezte az aláírást,

·         sikeres vizsgát tett.

 

A házi feladat 50%-ban, a vizsga 50%-ban számít az érdemjegybe.

A házi feladathoz kiegészítő, szorgalmi feladatok is tartoznak, melyek kiemelkedő teljesítése esetén a vizsgára plusz pontokat, vagy megajánlott jegyet lehet szerezni.

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

A házi (otthoni) feladatot a 14. hét végéig be kell adni, annak pótlása a pótlási időszakban lehetséges, de ekkor már a házi feladattal bónusz pont nem szerezhető.

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

Igény szerint az előadóval egyeztetve.


13. Jegyzet, tankönyv, felhasználható irodalom
  • ·         Tantárgy weboldalán található oktatási segédanyagok.

    ·         Beágyazott operációs rendszerek és kliens alkalmazások (VIAUAC07) jegyzete elektronikus formában.

    ·         Scott Chacon: Pro Git, Apress, 2009, http://git-scm.com/book

    ·         John Ferguson Smart: Jenkins: The Definitive Guide. O'Reilly Media, 2011

    ·         Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008

    ·         Steve McConnell: Code Complete: A Practical Handbook of Software Construction, Second Edition, Microsoft Press, 2004

    ·         Buschmann et al.: A System of Patterns, Willey, 1996

    ·         Tom Pender, UML Bible, Wiley, 2003


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

Kontakt óra

42

Kiadott tananyagok otthoni elsajátítása

16

Felkészülés a vizsgára

26

Házi feladat elkészítése

36

Összesen

120


15. A tantárgy tematikáját kidolgozta Dr. Csorba Kristóf, egyetemi docens, Automatizálási és Alkalmazott Informatikai Tanszék