A kurzussal kapcsolatos általános információk és követelmények a Canvasban találhatóak! Ezen a weboldalon a követelményrendszer, valamint a kurzushoz tartozó előadásom segédanyagai kerülnek közzétételre a könnyebb (publikus) elérhetőség céljából.
Célkitűzés
A kurzus célja a szoftvertechnológia alapjainak megismerése, a szoftverfejlesztési folyamat áttekintése, szoftverek tervezési alapelveinek elsajátítása, elsősorban az objektumorientált programozás szemszögéből. A félév során a hallgatók megismerhetik az UML modellező nyelvet, a statikus és dinamikus tervezést.
A tárgy tejesítésével a hallgatók képesek lesznek objektumorientált alkalmazások tervezésére, valamint fejlesztésének menedzselésére.
Előfeltételek
- Eseményvezérelt alkalmazások (erős)
Szükséges előismeretek
- Objektumorientált és eseményvezérelt programozás, modellezés (UML).
- C++ és/vagy C# programozási nyelvi alapismeretek.
- Grafikus felületű alkalmazások (Qt, WinForms, WPF), eseményvezérlés.
- Relációs adatbázis-kezelési alapok (ORM).
Számonkérés
Az tárgy előadása bemutatja a szoftvertechnológiát, a szoftverek fejlesztési folyamatait, valamint segítséget nyújt a gyakorlaton megoldandó feladatokhoz. A félév során az előadásokhoz ellenőrző kérdéseket kell megválaszolni az aláírás megszerzésének előfeltételeként. A kvízeknek legalább a 75%-át kell kitölteni 100%-osra. A kvíz egy 24 órás intervallumon belül (az előadás napja) tetszőlegesen sokszor ismételhető! A kvíz egyben a félév végi zárthelyire való felkészülést is szolgálja.
A félév végén az előadásokon megszerzett ismeretekből évfolyamzárthelyit kell teljesíteni, amely az aláírás előfeltétele (összevont számonkérésű kurzus). A zárthelyi értékelése kétfokozatú (megfelelt / nem felelt meg), a sikeres teljesítéshez a kérdések legalább 2/3-át kell helyesen megválaszolni. Sikertelen zárthelyi ismétlésére lesz lehetőség.
A félév során a hallgatóknak 3-4 fős csapatokban dolgozva kell egy kitűzött objektumorientált szoftvert specifikálniuk, implementálniuk és dokumentálniuk, projektmunka keretében.
A gyakorlati órák keretében a projektmunka 4 alkalommal kerül értékelésre (a 4., 7., 10. és a 13. oktatási héten).
Az előadások elméleti anyagából a félév végén zárthelyi dolgozatot kell teljesíteni, amelynek értékelése kétfokozatú. A sikertelen (0-1) zárthelyi javítására, pótlásra lesz lehetőség.
Mérföldkövek
- Követelményelemzés és tervezés: megvalósíthatósági terv, funkcionális és nem funkcionális specifikáció, felhasználói eset diagramok, felhasználói történetek, osztály diagram, komponens diagram, felhasználói felület terv (wireframe mockup), EK-diagram (ha van DB)
- Prototípus 1: részleges implementáció, a használati esetek kb. 30%-a működjön, Git használata
- Prototípus 2: részleges implementáció, a használati esetek kb. 90%-a működjön, CI használat, részleges egységtesztek
- Végleges termék: teljes funkcionalitás, clean-code, dokumentálva, tesztelve (alapos egységtesztelés)
Értékelés
A hallgatók a tárgyból aláírást, valamint gyakorlati jegyet szerezhetnek.
Az aláírás előfeltétele a heti elméleti kvízek legalább 75%-ának hibátlan teljesítése; az elméleti zárthelyi sikeres teljesítése, valamint mind a 4 projekt értékelési mérföldkő legalább elégséges (2) szintre történő elfogadtatása.
A gyakorlati jegy a 4 projekt értékelési mérföldkőnél szerzett érdemjegy átlaga.
Előadás tematika
- Szoftverfejlesztési folyamat (Varga László Zsolt)
- Követelmény specifikáció (Varga László Zsolt)
- Objektum orientált tervezés (Varga László Zsolt)
- Objektumorientált tervezési szempontok és minták (Varga László Zsolt)
- Projekt menedzsment eszközök, Verziókövető rendszerek (Cserép Máté)
- Build rendszerek (Cserép Máté)
- Verifikáció és validáció, egységtesztelés (Varga László Zsolt)
- Continuous integration and delivery (Cserép Máté)
- TDD, Clean code (Varga László Zsolt)
- Tervminták (Varga László Zsolt)
- Párhuzamos programozás (Cserép Máté)
- Agilis módszertan (Ilyés Enikő)