A korszerű szoftverfejlesztés gyakorlata

A tantárgy angol neve: Modern Software Development

Adatlap utolsó módosítása: 2006. július 1.

Tantárgy lejárati dátuma: 2009. november 24.

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

Villamosmérnöki Szak

Műszaki Informatika Szak

Választható tárgy

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAU9082   4/0/0/v 5 1/1
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Balássy György

Tanszéki mérnök

AAIT

Kovács Ferenc

Tanársegéd

AAIT

Levendovszky Tihamér

Tanársegéd

AAIT

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

Egy objektum orientált programozási nyelv ismerete (C++, C#, vagy Java nyelv ismerete ajánlott)

6. Előtanulmányi rend
Ajánlott:
7. A tantárgy célkitűzése

A tárgy keretében a hallgatók megismerkednek a könnyen értelmezhető, jól karbantartható, és értelmezhető kód készítésének gyakorlatával az Extreme Programming (XP) technikái segítségével. Ennek során külön hangsúlyt kap a szoftver mint karbantartható, újrafelhasználható termék. A cél, hogy a hallgató megismerje a legkorszerűbb módszereket az áttekinthető szoftver létrehozására. Egy n-rétegű vállalati információs rendszer esettanulmányán keresztül a tárgy bemutatja azoknak a funkcióknak (hibakezelés, naplózás, biztonság stb.) a megvalósítási módjait, amelyek az ipari gyakorlatban alapkövetelmények a megbízható alkalmazásokkal szemben. A tárgy átfogó és teljes képet ad a csoportos szoftverfejlesztés körülményeiről és a kódíráson túlmutató fejlesztői feladatokról (dokumentáció, tesztelés, telepítés, üzemeltetés). A modellezés kívül esik a tárgy keretein. Az órák keretében a hallgatók számára lehetőség nyílik az előadás anyagának gyakorlati alkalmazására is, az egyes előadásokhoz, témakörökhöz kapcsolódóan számítógépes laborgyakorlatok segítik a bemutatott ismertek elsajátítását.

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

Extreme programming

  • Bevezetés: szoftverfejlesztési projektek tipikus problémái, bevezető a szoftverfejlesztési módszertanokba, az eXtreme Programming módszertana, a fejlesztési ciklus
  • Architekturális tervezés
    • Az adatbázis-réteg megvalósítása: teljesítmény optimalizálás, cache, szerver független megoldások, kapcsolat nélküli működés, elosztott adatbázisok
    • Webes kontra vastag kliens: előnyök, hátrányok, választási szempontok, önmagukat frissítő alkalmazások
    • Tervezési kérdések: Design Patternek alkalmazása a tervezés során, a vállalati információs rendszerek tervezési mintái, prezentációs rétegbeli minták, domain rétegbeli minták, elosztottság és párhuzamosság mintái (tranzakciók, megbízható üzenetküldés, stb.)

A kódbiztonság

  • Központi hibakezelés: Hibakezelés az alkalmazás különböző szintjein, elosztott hibakezelés, hibakezelés webalkalmazásban, hibakezelés szinkron folyamatokban
  • Nyomkövetés és hibakeresés (trace, debug): diagnosztikai szolgáltatások a .NET Frameworkben (Trace és Debug), naplókészítés többrétegű alkalmazásban, naplókészítés többszálú alkalmazásban, naplófájlok feldolgozása, Enterprise Instrumentation Framework (EIF)
  • Kódbiztonság: A Windows biztonsági alrendszere
    (felhasználók, jogosultságok, házirendek, service-ek, access control listek), SQL injection, cross-site scripting, buffer overrun, input vizsgálata reguláris kifejezésekkel, a “least privilege”-elv
  • Többszálú alkalmazások problémá: processzek és szálak, biztonságos szinkronizáció, párhuzamos hibafelderítés, platformok közötti különbségek, biztonságos és hatékony IPC
  • Alkalmazások menedzselhetősége, WMI használata

Programozás újrafelhasználásra és karbantartásra

  • Tesztelés és kódminőség: A tesztelés szerepe a fejlesztési ciklusban, unit testing, teljesítmény tesztelés, webalkalmazások tesztelése, teljesítmény-számlálók és riasztások a Windowsban
  • Csoportmunka: forráskód kezelő rendszerek szerepe, alapfunkciói, csoportmunka a fejlesztői ciklusban, szerepek és folyamatok a fejlesztő csapatban (fejlesztő, tesztelő stb.), konfiguráció és változáskezelés, bugtracking
  • Iteratív minőségjavítás: Refactoring: bevezetés, gyakori problémák és megoldásuk
  • Globalizáció és lokalizáció: kultúra beállítások a .NET keretrendszerben, input feldolgozás és output formázás kultúra alapján, magyar ékezetek kérdése, a területi beállítások szerepe, alkalmazások honosítása erőforrás fájlok segítségével, többnyelvű Windows alkalmazások, többnyelvű ASP.NET webalkalmazások
  • Üzemeltetési kérdések: amit üzemeltetőnek tudnia kell, új rendszer bevezetésének lépései, interakció más infrastrukturális rendszerekkel, monitorozás, Code Access Security konfigurálása, kódverziók kezelése (betöltési folyamat, frissítés), alkalmazások konfigurálása
9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

(előadás, gyakorlat, laboratórium):

Előadás + Gyakorlat

10. Követelmények

a. A szorgalmi időszakban: Házi feladat

b. A vizsgaidőszakban: Szóbeli vizsga

  1. Elővizsga: Van
11. Pótlási lehetőségek

A házi feladatot a szorgalmi időszak végéig be kell adni. Ezt később pótolni nem lehet.

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

Igény szerint előre egyeztetett időpontban.

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

1. Albert István et. al: A .NET Framework és programozása, ISBN: 9-639-13162-8

2. Óravázlatok, és elektronikus tanszéki jegyzetek

3. Kent Beck: Extreme Programming Explained, ISBN: 0-201-61641-6

4. Alistair Cockburn: Agile Software Development, ISBN: 0-201-69969-9

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

(a tantárgyhoz tartozó tanulmányi idő körülbelüli felosztása a tanórák, továbbá a házi feladatok és a zárthelyik között):

Kontakt óra

60

Félévközi készülés órákra

0

Felkészülés zárthelyire

0

Házi feladat elkészítése

50

Kijelölt írásos tananyag elsajátítása

20

Vizsgafelkészülés

20

Összesen

150

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

Név:

Beosztás:

Tanszék, Int.:

Balássy György

Tanszéki mérnök

AAIT

Kovács Ferenc

Tanársegéd

AAIT

Levendovszky Tihamér

Tanársegéd

AAIT