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



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

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Alkalmazások architektúrája

Elosztott rendszer architektúrák

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

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Szoftver újrafelhasználás

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

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

A szoftverfejlesztés eszközei

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

Komponens alapú fejlesztés

Szoftver követelmények meghatározása

Szoftver-technológia I.

A szoftverfejlesztés eszközei

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

S01-7 Komponens alapú szoftverfejlesztés 1

Operációs rendszerek. Az X Window rendszer

Szoftver-technológia II. Modulok és OOP. Irodalom

Szoftver követelmények meghatározása

Nagy bonyolultságú rendszerek fejlesztőeszközei

Formális módszerek GM_IN003_1 Bevezetés

Tartalom Platform-független modellezés Alkalmazás-modellezés A DECOS hardver platform Platform modellezés Hardver-szoftver integráció Implementáció 2

TOGAF elemei a gyakorlatban

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

Kogníció, koncepciók, modellek

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

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

Autóipari beágyazott rendszerek. Funkcionális biztonságossági koncepció

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Informatikai projekteredmények elfogadottságának tényezői

Kód átvizsgálás. Irodalom. (Code review) code review,smart Bear Inc., ! Jason Cohen: Best kept secrets of peer

Járműinformatika A járműinformatikai fejlesztés

Szoftver tervezés és design

01. gyakorlat - Projektalapítás

Osztott Objektumarchitektúrák

Web-fejlesztés NGM_IN002_1

A cloud szolgáltatási modell a közigazgatásban

Mai program. Web Technológiák. Webalkalmazások. Webalkalmazás, mint UI

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

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Operációs rendszerek. Bemutatkozás

Üzleti architektúra menedzsment, a digitális integrált irányítási rendszer

Verziókövető rendszerek használata a szoftverfejlesztésben

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

DECOS Nemzeti Nap. DECOS Nemzeti Nap. DECOS Nemzeti Nap

A SZOFTVERTECHNOLÓGIA ALAPJAI. Architekturális tervezés, Osztott rendszerek 7. előadás PPKE-ITK

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

ALKALMAZÁS KERETRENDSZER

Behatolás detektálás. Behatolás megel!zés. IDS rendszerek. Detektálás Eltérítés Elhárítás. (ellenlépések) Megel!z! csapás Küls! megel!

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Tartalomjegyzék. 1. Bevezető Az információs rendszerek világa Az információs rendszerek felépítése... 31

Szoftverminőségbiztosítás

S01-8 Komponens alapú szoftverfejlesztés 2

Biztonsági folyamatirányító. rendszerek szoftvere

UML (Unified Modelling Language)

Bevezetés. Adatvédelmi célok

Használhatósági problémák Neptun.NET

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

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

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

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

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

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

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Tanszék

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék. Dr. Kulcsár Gyula egyetemi docens

Objektumorientált felbontás

Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben. Ráth István

Információs rendszerek Információsrendszer-fejlesztés

Prolan Zrt. fejlesztéseiben. Petri Dániel

A vállalkozás sikerének tényezi. Termék, szolgáltatás Erforrások Információtechnológia

Katasztrófavédelem informatikai rendszere ZNEBK104102

TSIMMIS egy lekérdezés centrikus megközelítés. TSIMMIS célok, technikák, megoldások TSIMMIS korlátai További lehetségek

I. CRM elmélete és gyakorlata. II. Stratégiai elemek. III. Strukturális megoldások

Hely- és kontextusfüggő alkalmazások fejlesztését támogató keretrendszer mobil környezetben

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

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Web:

Szoftveripar és üzleti modellek

Projectvezetők képességei

IV.4. FELHŐ ALAPÚ BIZTONSÁGOS ADATTÁROLÁSI MÓDSZER ÉS TESZTKÖRNYEZET KIDOLGOZÁSA

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

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

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

Azonnali fizetési rendszer megvalósítása

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

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

Termékhasználat. Helyes helytelen termékhasználat. Felhasználók. Ergonómiai hagyományok. Az ergonómia integrálása a termékfejlesztés folyamatába

Software engineering (Software techológia) Bevezetés, alapfogalmak. Történelem 1. Történelem as évek Megoldandó problémák: Fejlesztő: Eszköz:

(Teszt)automatizálás. Bevezető

Komponens alapú programozás Bevezetés

Verifikáció és validáció Általános bevezető

A TANTÁRGY ADATLAPJA

IBM felhő menedzsment

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

Szombathely Város Vezetõi Döntéstámogató Rendszere VDIR-STAT.

stratégiai kutatási terve

Programrendszerek tanúsítása szoftverminőség mérése

Országgyűlés Hivatala Exadata a törvényhozásban

Átírás:

Szoftver architektúra, Architektúrális tervezés Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 11. Roger S. Pressman: Software Engineering, 5th e. chapter 14. Bass, Clements, Kazman: Software Architecture in Practice, Addison- Wesley, 2004 2

Mi a szoftver architektúra? A rendszert felépít! alrendszerek (szoftver komponensek) kerete alrendszerek meghatározása alrendszerek tulajdonságai vezérlési valamint kommunikációs kapcsolataik 3 Mi még a szoftver architektúra? Magasszint" terv A rendszer átfogó struktúrája több nézet -> több struktúra Komponensek és összeköt!k összesége 4

A szoftver architektúra szerepe Az érdekelt szerepl!k kommunikációjának lehet!vé tétele A korai fejlesztási fázisok döntéseinek támogatása a követelmények tükrében Nagylépték" újrafelhasználhatóság el!segítése 5 A szoftver architektúrák forrása Üzleti és technológiai döntések eredménye Meghatározó a környezet szerepe A fejleszt!k céljai és stratégiája által befolyásolt követelmények vezetnek különféle szoftver architektúrákhoz 6

Az architektúra ciklus Az architektúra meghatározó a fejleszt! szervezet szerkezetére Az architektúra befolyásolja a fejleszt! szervezet céljait Az architektúra hatással van a követelményekre A fejlesztés során a fejleszt!k tapasztalatokat szereznek architektúráról Bizonyos rendszerek hatással vannak a fejlesztési kultúrára 7 Az architektúra ciklus (folyt.) Fejleszt! szervezet Követelmények Szerepl!k Architektúra Technológiai környezet A tervez! tapasztalata Tervez! Rendszer 8

Mit!l jó egy architektúra? Kis számú vezet! tervez! Jól definiált funkcionális követelmények és min!ségi jellemz!k Jól dokumentált az architektúra Az architektúra értékelésében az összes érintett szerepl! részt vesz Kvantitatív min!ségi mértékek Inkrementális architektúra implementáció Kevés er!forrás versenyhelyzet a fejlesztés során 9 Struktúrális ökölszabályok Jól definiált modulok információ elrejtés, szeparáció Jól definiált interfészek Kereskedelmi termékekt!l független architektúra Jól ismert architektúrális taktikák alkalmazása Egyszer" interakciós minták 10

Architektúra elemek Architektúrális minta típus elemek és kapcsolatok, kényszerek pl. kliens-szerver minta Referencia modell standard funkcionális felosztás és adatfolyam megoldások pl. adatbázis kezel! rendszer Referencia architektúra referencia modell leképezése szoftver elemekre pl. ISO OSI architektúra 11 Architektúra elemek (folyt.) Refrencia modell Referencia architektúra Szoftver architektúra Architektúrális minta 12

Architektúrális szerkezetek / nézetek Modul szerkezetek funkcionális felbontás Komponens-és-összeköt! szerkezetek futási idej" komponensek és csatlakoztatások Allokációs szerkezetek szoftver és küls! elemek összerendelése 13 Architektúrális szerkezetek / nézetek (folyt.) Hogyan bontható a rendszer kódegységekre, modulokra? Hogyan struktúrálható a m"köd! rendszer futási id!ben komponensekre, és lépnek egymással interakcióba ezek a komponensek? Milyen kapcsolatban van a rendszer a környezet nem szoftver elemeivel (pl. processzorok, fájlrendszerek, fejleszt! teamek)? 14

Szoftver struktúrák Modul szerkezetek Dekompozició Használat Réteg szerkezet Osztályok, generalizálás Komponens és összeköt! szerkezetek Kliens-szerver Folyamat Konkurrencia Osztott adatok Allokációs szerkezetek Telepítési szerkezet Munkakiosztás (fejlesztési) Implementációs szerkezet (konfiguráció mgt.) 15 Szerkezet megválasztása, értékelése Ellen!rzési nézetek Logikai nézet modul szerk. Folyamat nézet komponens-és-összeköt! szerk. Fejlesztési nézet allokációs szerk. Fizikai nézet allokáció (telepítési) szerk. 16

Architektúrális tervezés A rendszer tervezés korai fázisa Specifikációs és tervezési fázis összekötése Specifikálással párhuzamosítható F! rendszer-komponensek meghatározása 17 Architektúra és a rendszer jellemz!i A rendszer architektúrája hatással van a rendszer min!ségi jellemz!ire Nem funkcionális követelmények szerepe Teljesítmény Biztonság Megbízhatóság Rendelkezésreállás Karbantarthatóság 18

Architektúra, költségek, érték Megbízhatóság Teljesítmény Módosíthatóség Rendelkezésreállás Üzleti célok Architektúra választás Érték Költségek 19 Min!ségi jellemz!k Min!ségi jellemz!k meghatározása Stimulus forrás Stimulus Környezet Tárgy Válasz Metrika Stimulus forrás Stimulus Tárgy Környezet Válasz Mérték 20

Min!ségi scenárió (pl.) Használhatóság Tipikus felhasználó Tevékenység végrehajtása UI manipuláció Felh. felület Tipikus alkalazási környezet Adat viz. UI változások Teljesítmény (id!, hibaszám) Megelégedettség 21 Stratégiák és taktikák Taktikák a min!ségi célok elérésére A taktikák összessége a stratégia A taktikák mint tervezési lehet!ségek A tervezési minták tartalmaznak taktikákat 22

Taktikák (pl.) Magas rendelkezésreállási taktikák Hibadetektálás Ping/echo Heartbeat Kivételkezelés Javítás Szavazás Aktív redundancia Passzív redundancia Visszaállítás Árnyék m"ködés Állapot újraszinkronizálás Megel!zés Kikapcsolás, újraindítás Tranzakció kezelés 23 Architektúrális konfliktusok Nagyméret" komponensek jó teljesítmény"ek, de nehezen karbantarthatók A redundancia fokozza rendelkezésreállást, de adatbiztonsági problémákat okoz A biztonsági megoldások általában megnövelt adatmozgatással járnak 24

Architektúrális tervezési kérdések Vannak-e generikus alkalmazás architektúrák? Hogyan kell a rendszert elosztani? Hogyan kell a rendszert modulokra bontani? Milyen legy az alkalmazás vezérlési szerkezete? Hogyan lehet az architektúrákat értékelni, összehasonlítani? Hogyan kell dokumentálni egy architektúrát? 25 Az architektúra helye az evolúciós életciklusban Szoftver koncepció Kiindulási követelmények Végleges verzió Architektúra tervezés Egy verzió kifejlesztése Felhasználói visszajelzések beépítése A verzió leszállítása Felhasználói visszajelzések beszerzése 26

Néhány elterjedt architektúrális modell Osztott adatokra épített architektúra CASE eszközök Kliens-szerver architektúra hálózati, kommunikációs szoftverek Réteg szerkezet architektúra protokoll refrencia modellek Funkcionális cs!rendszerek Eseményvezérelt rendszerek 27 Osztott adatok Az alrendszerek adatokat cserélnek központi adatbázis saját adatbázisok, explicit adatcsere Közös adatigény" alkalmazások 28

Osztott adatok (folyt.) El!nyök nagy mennyiség" adat hatékony megosztása központi adat kezelés lehet!sége Hátrányok minden részrendszerben azonos adatszervezés elosztottság nehézkes 29 Osztott adatok (pl.) Integrált CASE eszköz Tervez! editor Kódeditor Jelentés generátor Projekt adattár RAD generátor Kódgenrátor 30

Kliens-szerver modell Elosztott rendszerek adatok feldolgozás Önnálló szolgáltatásokat nyújtó szerverek A szolgáltatásokat igénybevev! több, különböz! kliens Kommunikációs mechanizmus hálózat üzenetkezel! 31 Kliens-szerver modell (folyt.) El!nyök Eloszott rendszer Hálózat kihasználása Olcsóbb hardvermegoldások pl. NC Skálázhatóság Hátrányok Adat reprezentációs problémák Redundáns management Szolgáltatások leírása, megtalálása 32

Üzleti alkalmazások klien-szerver megoldásai Megjelenítés Alkalmazás funkció Adat Management Távoli adatkezelés Megjelenítés Alkalmazás funkció Alkalmazás funkció Adat Management Elosztott funkcionalitás Megjelenítés H á l ó z a t Alkalmazás funkció Adat Management Távoli megjelenítés Kliens Megjelenítés Megjelenítés vezérlés Alkalmazás funkció Adat Management Szerver Elosztott megjelenítés Megjelenítés Megjelenítés vezérlés Alkalmazás funkció Adat Management Terminál Emuláció 33 Réteg szerkezet modell Speciális alrendszer elrendezés Rétegekbe szervezett modulok, szolgáltatások Jól definiált interfészek Inkrementálisan, egymástól elkülönülten fejleszthet! rétegek Mesterségesen kialakított rétegek 34

Réteg szerkezet (pl.) ISO OSI modell Hoszt Alaklmazási Hoszt Alaklmazási Megjelenítési Megjelenítési Session Session Szállítási Szállítási Hálózati Hálózati Hálózati Hálózati Adatkapcs. Adatkapcs. Adatkapcs. Adatkapcs. Fizikai Fizikai Fizikai Fizikai Hálózati csomópont 35 Funkcionális cs!rendszerek Adatfolyam orientált megközelítés Cs!, sz"r! modell Szekvenciális, kötegelt feldolgozás Nem interaktív alkalmazások 36

Cs!rendszer modell jellemz!i Transzformációk újrafelhasználása Intuitiven kialakítható szerkezet Könnyen b!víthet! új transzformációkkal Konkurrens rendszerek is kialakíthatók szinkronizáló cs!rendszerek Kötött adatformátum a csövekben 37 Cs!rendszer (pl.) UNIX pipe ps -ax more cat /etc/passwd sort>fil.txt 38

Cs!rendszer (pl.) Labview virtuális m"szerek 39 Eseményvezérelt rendszerek A rendszer vezérlésén kívülr!l érkez! események határozzák meg a viselkedést Eseményvezérelt modellek broadcast modell interrupt modell 40

Broadcast modell Elosztott alrendszerek integrálása Az alrendszerek el!fizetnek az!ket érdekl! eseményekre az eseménykezel!nél Eseménytovábbitó mechanizmus eseménysor Az eseményekhez eseménykezel!ket definiálnak Események id!beli bekövetkezte ismeretlen Alrendszer 1 Alrendszer 2 Alrendszer 3 Esemény diszpécser Események 41 Interrupt modell Valósidej" rendszerek Definiált interrupt típusok és típusonkénti kezel! eljárások Interrupt vektor Gyors m"ködés, nehéz tesztelés Kezel! 1 Folyamat 1 Kezel! 2 Interrupt vektor Kezel! 3 Folyamat 2 Kezel! 4 Folyamat 3 42

Összefoglalás A szoftver architektúra fogalma Architektúrális nézetek modul szerkezetek komponens-és-összeköt! szerkezetek allokáció szerkezetek Architektúrális taktikák szerepe Néhány klasszikus architektúra osztott adatok, kliens-szerver, réteg szerkezet, eseményvezérelt 43