Szoftverarchitektúrák

A tantárgy angol neve: Software Architectures

Adatlap utolsó módosítása: 2008. szeptember 19.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Mérnök informatikus szak
MSc képzés

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAUM105 1 3/0/0/f 4  
3. A tantárgyfelelős személy és tanszék Dr. Charaf Hassan,
4. A tantárgy előadója
Név: Beosztás: Tanszék, Intézet:
Dr. Charaf Hassanegyetemi docens AAIT
Dr. Levendovszky Tihaméradjunktus AAIT

 

5. A tantárgy az alábbi témakörök ismeretére épít Programozási alapok, Szoftvertechnológia, Szofgtvertechnikák
6. Előtanulmányi rend
Kötelező:
NEM ( TárgyEredmény( "BMEVIAUMA06" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIAUMA06", "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ó.

7. A tantárgy célkitűzése A tantárgy áttekinti az alkalmazások, kutatások és fejlesztések élvonalába tartozó szoftverarchitektúrákat és tárgyalja ezen architektúrák szerepét, jelentőségét az információs rendszerek fejlesztésében. A tantárgy kitekintést nyújt a jövő elosztott és nagy megbízhatóságú rendszerarchitektúráira és technológiáira. A korábban megismert objektumorientált, komponensalapú és szolgáltatásalapú architektúrákat szintézis formájában foglaljuk össze. A tantárgy kihangsúlyozza a szisztematikus szoftver-újrafelhasználhatóságot és a szoftverarchitektúrák területén folyó kutatási tevékenységek tükrében elemzi a lazán csatolt rendszerek kialakításának problémakörét, valamint az architekturális minták jelentőségét. A tantárgy egyik célkitűzése a fentiekhez kapcsolódó ismeretek rendszerezése és átadása a hallgatóságnak.

 

A nagyvállalati (enterprise) rendszerek fejlesztési gyakorlatában a többrétegű objektumorientált platformok (pl. Java, .NET) dominálnak. A gyakorlat bizonyítja, hogy ezek az eszközök és technológiák képesek hatékonyan támogatni alkalmazások fejlesztését, azonban a megfelelő architekturális ismeretek hiányában az implementáció során számos nehézség merül fel. A hibák és sikertelen fejlesztések törvényszerűen fakadnak abból, hogy a szoftverfejlesztők nem rendelkeznek kellően mély és széleskörű architekturális ismeretekkel. Ebben a tekintetben a tantárgy másik célkitűzése a hallgatók felkészítése nagyvállalati (enterprise) rendszerek professzionális fejlesztési feladatainak ellátására.

 

8. A tantárgy részletes tematikája ·         Bevezetés a szoftver architektúrák világában (3 óra elmélet/előadás):

 

Célkitűzés: megismertetni a hallgatókkal a szoftver architektúrák tulajdonságait, jelentőségét és a megvalósított szoftverrendszerekre való hatását  

 

Alapfogalmak. Tervezési és architekturális minták. Skálázhatóság, elosztottság, rendszerjellemzők.

 

·         Alapfeladatok a rendszerarchitektúrával kapcsolatban (6 óra elmélet/előadás):

 

Célkitűzés: A tematikához kapcsolódó tárgyi ismeretek megszerzése

 

Rétegezés szerepe és a réteghatárok definiálása. Többrétegű architektúrák. Szakterület logika (domain logic) kategorizálása. Webes megjelenítés. Relációs adatbázisok kezelése. Konkurenciakezelés. Elosztási stratégiák. Teljesítmény és egyéb jellemzők.

 

·         Szoláltatás hozzáférési és konfigurációs minták (4 óra elmélet/előadás):

 

Célkitűzés: Alapvető architektúrális minták ismertetése és illusztrálása

 

Objektumorientált csomagolás (Wrapper Facade). Szolgáltatások konfigurálása (Component configurator). Szolgáltatás-keretrendszerek átlátszó bővítése (Interceptor). Több interfész egységes összefogása a hatékonyság érdekében (Extenstion Interface). Egyéb minták.

 

·         Eseménykezelési  minták (4 óra elmélet/előadás):

 

 Célkitűzés: Architektúrális minták ismertetése és illusztrálása

 

Szolgáltatáskérések szétosztása (Reactor). Aszinkron műveletek feldolgozása (Proactor). Aszinkron válaszok kezelése (Asynchronous Completion Token). Szolgáltatásinicializáció különválasztása (Acceptor-Connector). Egyéb minták.

 

·         Szinkronizációs minták (4 óra elmélet/előadás):

 

Célkitűzés: Architektúrális minták ismertetése és illusztrálása

 

A hatókör felhasználása automatikus erőforrás-kezelésre(Scoped Locking). Parametrizált szinkronizálási mechanizmusok (Strategized Locking). Komponensen belüli szinkronizáció (Thread-Safe Interface). Megosztott erőforrások többszálú hozzáférése (Double-Checked Locking Optimazation).

 

·         Konkurencia kezelési  minták (4 óra elmélet/előadás):

 

Célkitűzés: Architektúrális minták ismertetése és illusztrálása

 

Konkurens objektumok (Active Object). Szálbiztos passzív objektumok (Monitor Object). Aszinkron és szinkron szolgáltatásfeldolgozás szétválasztása (Half Sync-Half Async). Nagy teljesítőképességű többszálú szerverek (Leader/Followers). Egyéb minták.

 

·         Integrációs megoldások  6 óra elmélet/előadás):

 

Célkitűzés: Integrációs megoldások ismertetése és illusztrálása

 

Rendszerintegrációs típusok. Üzenetalapú rendszerek. Rendszermenedzsment kérdések. Integrációs minták. Egyéb minták.

 

·         Esettanulmányok (8 óra elmélet/előadás+gyakorlat):

 

Célkitűzés: Esettanulmányok formájában kívánjuk illusztrálni a félév során tanult anyagot.

 

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás
10. Követelmények

a.              A szorgalmi időszakban: egy zárthelyi és egy házi feladat

b.             A vizsgaidőszakban:       -

c.              Elővizsga:                       -

 

Az aláírás megszerzésének feltétele a zárthelyi és a házi feladat elfogadható (legalább elégséges szintű) megoldása.

 

11. Pótlási lehetőségek A zárthelyihez a TVSZ előírásai szerint mind a szorgalmi, mind a pótlási időszakban 1-1 pótlási lehetőséget biztosítunk.
12. Konzultációs lehetőségek Az előadóval előre egyeztetett időpontban
13. Jegyzet, tankönyv, felhasználható irodalom [1]  Szoftverarchitektúrák, elektronikus jegyzet. AAIT Alkalmazott Informatika Csoport. [2]  Patterns of Enterprise Application Architecture. Martin Fowler et al. [3]  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, Wiley press, vol.1 ,2.

[4]  Addison Wesley - Enterprise Integration Patterns - Designing, Building And Deploying Messaging Solutions (Fowler) – 2003.

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra39
Félévközi készülés órákra0
Felkészülés zárthelyire26
Házi feladat elkészítése45
Kijelölt írásos tananyag elsajátítása10
Vizsgafelkészülés0
Összesen120
15. A tantárgy tematikáját kidolgozta
Név: Beosztás: Tanszék, Intézet:
Dr. Charaf Hassanegyetemi docens AAIT
Dr. Levendovszky Tihaméradjunktus AAIT
Benedek ZoltántanársegédAAIT