Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Hasonló dokumentumok
S01-7 Komponens alapú szoftverfejlesztés 1

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

Elosztott rendszer architektúrák

Osztott Objektumarchitektúrák

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Szoftver architektúra, Architektúrális tervezés

Autóipari beágyazott rendszerek Dr. Balogh, András

UML (Unified Modelling Language)

Adatbázisrendszerek 7. előadás: Az ER modell március 20.

TOGAF elemei a gyakorlatban

2. fejezet Hálózati szoftver

SAP Business One. Áttekintés, gyakorlati ismertetı. Mosaic Business System Kft.; Support:

Software Engineering

Objektumorientált paradigma és programfejlesztés Bevezető

Utolsó módosítás:

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Adatbázis rendszerek Definíciók:

A Jövő Internet elméleti alapjai. Vaszil György Debreceni Egyetem, Informatikai Kar

Objektumorientált paradigma és a programfejlesztés

Adatbázis rendszerek I

8. előadás. Az ER modell. Jelölések, az ER séma leképezése relációs sémára. Adatbázisrendszerek előadás november 14.

A SZOFTVERTECHNOLÓGIA ALAPJAI

OOP. Alapelvek Elek Tibor

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

UNIX: folyamatok kommunikációja

Szaniszló Gábor, ABB Kft MEE szakmai nap elıadás, Az IEC61850-es szabvány gyakorlati alkalmazása. ABB Group June 1, 2010 Slide 1

Szoftver újrafelhasználás

Vezetői információs rendszerek

egy szisztolikus példa

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

NETinv. Új generációs informatikai és kommunikációs megoldások

Hálózati réteg. WSN topológia. Útvonalválasztás.

Komponens alapú programozás Bevezetés

Objektum orientált programozás Bevezetés

Komponens alapú fejlesztés

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

BMEVIHIM134 Hálózati architektúrák NGN menedzsment vonatkozások: II. Üzemeltetés-támogatás és üzemeltetési folyamatok

A Java EE 5 plattform

Intelligens biztonsági megoldások. Távfelügyelet

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

A számítógép-hálózat egy olyan speciális rendszer, amely a számítógépek egymás közötti kommunikációját biztosítja.

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Programozási technológia

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Számítógép architektúra

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

Intelligens partner rendszer virtuális kórházi osztály megvalósításához

S01-8 Komponens alapú szoftverfejlesztés 2

Párhuzamos programozási platformok

Komponens alapú szoftverfejlesztés. 1. Előadás Bevezetés

Konkurencia és energiakezelés integrálása eszközmeghajtókba. Vezeték nélküli szenzorhálózatok

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Párhuzamos programozási platformok

Novell ZENworks Configuration Management. Néhrer János konzultáns Novell PSH Kft.

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

Szolgáltatás Orientált Architektúra a MAVIR-nál

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Adatbázis rendszerek. dr. Siki Zoltán

Komponens modellek. 3. Előadás (első fele)

Utolsó módosítás:

Operációs rendszerek. Az X Window rendszer

Models are not right or wrong; they are more or less useful.

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Név: Neptun kód: Pontszám:

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

VIR alapfogalmai. Előadásvázlat. dr. Kovács László

Adatbázismodellek. 1. ábra Hierarchikus modell

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

Component Soft és tovább

Parametrikus tervezés

Adatmodellezés. 1. Fogalmi modell

J NEMZETGAZDASÁGI ÁG - INFORMÁCIÓ, KOMMUNIKÁCIÓ. 62 Információtechnológiai szolgáltatás Információtechnológiai szolgáltatás

Szoftver-technológia II. Architektúrák dokumentálása UML-lel. Irodalom. Szoftver-technológia II.

Informatikai alkalmazásfejlesztő Információrendszer-elemző és - tervező

ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS. Általános ismertető és Accountability Patterns

Szoftverminőségbiztosítás

Hálózatok I. A tárgy célkitűzése

ELTE, Informatikai Kar december 12.

Informatika. 3. Az informatika felhasználási területei és gazdasági hatásai

A prototípus gyors, iteratív fejlesztése azért nagyon fontos, mert a költségek így ellenırizhetık.

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet

Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése

ELEKTRONIKUS MUNKABÉRJEGYZÉK MODUL

Architektúra elemek, topológiák

Rendszer-modellezés, modellezési technikák

Multimédiás adatbázisok

Alhálózatok. Bevezetés. IP protokoll. IP címek. IP címre egy gyakorlati példa. Rétegek kommunikáció a hálózatban

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Történet John Little (1970) (Management Science cikk)

Szoftverfejlesztő képzés tematika oktatott modulok

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

Földmérési és Távérzékelési Intézet

Szolgáltatási szint megállapodás

HASZNÁLATI ESET DIAGRAM (USE CASE DIAGRAM)

Internetes alkalmazásfejlesztő képzés tematika oktatott modulok

Átírás:

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

A szotverarchitektúra fogalma A szoftverarchitektúra nagyon fiatal diszciplína. A fogalma még nem teljesen kiforrott. Néhány definíció: A szoftverarchitektúra nem más mint magas szintű tervezés; A szoftverarchitektúra nem más, mint a rendszer teljes struktúrája; Az architektúra komponensek és konnektorok együttese.

Az általunk használt definíció Egy program vagy egy számítógépes rendszer szoftverarchitektúrája alatt értjük a program vagy számítógépes rendszer azon szerkezetét (struktúráját) vagy szerkezeteit, amelyek magukba foglalják a szoftverelemeket, ezek kívülről látható tulajdonságait és a közöttük fennálló kapcsolatokat (relationships).

A definíció elemzése:architektúra és absztrakció Az architektúra a fentiek szerint a szoftverelemeket és a közöttük fennálló kapcsolatokat definiálja figyelmen kívül hagyva azon információkat, amelyek nem az elemek közötti interakciókra vonatkoznak. Az architektúra tehát egyfajta absztrakciója egy rendszernek, amely elnyomja azokat az egyes elemekre vonatkozó információkat, amelyek nem a használatukra, kapcsolataikra és interakcióikra vonatkoznak.

A definíció elemzése: rendszer és struktúra kapcsolata Egy rendszer többféle struktúrát tartalmazhat és egyikük sem jelentheti ki kétségbevonhatatlanul, hogy ő az architektúra. Az architektúra az ilyen struktúrák összességét jelenti. A szoftvereket használó számítógépes rendszereknek szükségszerűen létezik szofverarchitektúrája. A rendszer elemeinek viselkedése része kell legyen az architektúrának. Az architektúra definíciója indifferens arra nézve, hogy egy rendszer számára egy architektúra megfelelő-e vagy sem.

A szoftverarchitektúra fontosabb strukturális összetevői Architektúra sémák Referencia modellek A referencia architektúra Az egyes összetevők közötti kapcsolatot a következő ábra mutatja be az irányított nyíl azt jelzi, hogy az adott fogalom több tervezési elemet tartalmaz

Architektúra sémák, referencia modellek, referencia architektúrák, és a szoftverarchitektúrák kapcsolata

Architektúra sémák Egy architektúra séma elemek és reláció típusok leírása, amely a használatukra vonatkozó megszorítások halmazát is tartalmazza. Például a kliens-szerver architektúra egy jól ismert séma.

Referencia modellek Egy referencia modell a funkcionalitás egy olyan felosztása, amely az egyes részek közötti adatfolyamot is tartalmazza. A referencia modell egy ismert probléma standard dekompozicíója olyan részekre, amelyek egymással kooperálva megoldják az eredeti problémát.

A referencia architektúra A referencia architektúra egy olyan referencia modell, amelyet a szoftverelemekre és azok kapcsolataira képeztünk le. A referencia modellek, a referencia sémák és a referencia architektúrák még nem tekinthetők architektúráknak. Ezek olyan fontos fogalmak, amelyek segítenek az architektúra elemeinek megragadásában.

Miért fontos a szoftver Architektúra? Fontos a kommunikáció szempontjából az összetevők között A szoftverarchitektúra egy rendszer azon közös absztrakcióját reprezentálja, amelyet minden összetevő használ és ez képezheti alapját a kölcsönös megértésnek, a konszenzusnak és a kommunikációnak. Fontos a korai tervezési döntés meghozatala szempontjából Fontos, mert a rendszer egyfajta absztrakciójaként az újrafelhasználhatóságot segíti elő

Közös szoftverarchitektúra struktúrák

A modul alapú struktúra Modul alapú struktúra elemei a következők: Dekompozíció A dekompozíció egysége a modul A modulokat is a submodule of reláció kapcsolhatja egymáshoz Egy modul rekurzív módon dekomponálható kisebb modulokra, egészen addig, amíg könnyen megérthető nagyságuvá és implementálhatóvá nem válik Uses Ezek az egységek szintén lehetnek modulok, de lehetnek eljárások vagy a modulok külső felületeinek leírásában szereplő erőforrások. Az egyes egységek között uses reláció létezik.

Modul alapú struktúra elemei (folyt.) Layered réteg. A uses reláció speciális esete szigorúan rétegelt struktúra esetén Az n-dik réteg csak az (n-1)-dik réteg szolgáltatásait hasznáhatja Class, or generalization osztály, vagy általánosítás Ebben a struktúrában a modulokat osztályoknak nevezzük. A reláció ebben az esetben inherits-from vagy isan-instance-of

Component-and-connector A struktúra elemei: struktúra Processes, or communicating processes Mint minden component-and-connector struktúra ez is ortogonális a modell alapú struktúrára nézve Ebben az esetben az egységek folyamatok vagy szálak (threads), amelyeket a közöttük meglévő kommunikáció vagy szinkronizáció - a kizárást is beleértve - köt össze. Ebben az esetben az egységek közötti reláció: attachment kötődés, amely azt mutatja meg, hogy a komponensek és a konnektorok milyen módon kapcsolódnak egymáshoz

Component-and-connector struktúra elemei (folyt.) Concurrency konkurencia Ez a struktúra a rendszer tervezői számára lehetőséget ad a párhuzamosság bevezetésére Az egységek a komponensek és a konnektorok a logikai szálak Shared data, or repository osztott adatok, vagy raktár Ez a struktúra komponenseket és konnektorokat tartalmaz, amelyek létrehoznak, tárolnak és elérnek adatokat Megmutatja, hogy az adatok milyen módon jönnek létre és milyen módon használják fel azokat a futásidejű szoftverelemek

Component-and-connector struktúra elemei (folyt.) Client-server kliens-szerver Ebben az esetben a rendszer egymással kooperáló kliensek és szerverek halmazából épül fel. A komponensek ebben az esetben kliensek és szerverek, a konnektorok pedig kommunikációs protokollok

Allocation struktúra elemei Deployment telepítés A telepítési struktúra megadja, hogy a szoftver hogyan rendelődik hozzá a hardver feldolgozáshoz és a kommunikációs elemekhez Elemei szoftver (rendszerint egy folyamat egy component-connector struktúrából) és hardver (folyamatok) entitások, valamint kommunikációs útvonalak

Allocation struktúra elemei (folyt.) Implementation megvalósítás Ez a struktúra megmutatja, hogy a szoftverelemeket hogyan képezzük le fájlstruktúrákra Work assignment munka hozzárendelés Ez a struktúra hozzárendeli fejlesztői csapatokhoz (teams) az egyes modulok megvalósítását és integrálását

Melyik struktúrát válasszuk? Néhány hasznos architektúrális struktúrát nagyvonalakban bemutattuk, de még számos további létezik. Joggal vetődik fel a kérdés melyiket válasszuk egy adott feladat megoldásához? A kérdésre nem könnyű a válasz, mert egy rendszer sokféle struktúrát tartalmazhat. Javaslatunk az, hogy az elkészítendő rendszer minőségi attribútumainak alapos tanulmányozása után válasszuk azokat a struktúrákat, amelyek legjobban garantálják az elvárt minőséget.