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

Hasonló dokumentumok
Szoftverprototípus készítése

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

Szoftvertechnológia 2008/2009. tanév 2. félév 8. óra. Szoftvertechnológia

Szoftverspecifikáció fázis: Követelmény specifikáció. 2. fázis: Követelmények feltárása és elemzése

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

A folyamat közös fázisai. A szoftverfolyamat modelljei. A vízesésmodell fázis: követelmények elemzése és meghozása

Szoftvertechnológia ellenőrző kérdések 2005

S01-7 Komponens alapú szoftverfejlesztés 1

Programfejlesztési Modellek

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

A programkomponensek között különbözı típusú interfészek léteznek. következésképpen különbözı típusú interfészhibák fordulhatnak elı.

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

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

Szolgáltatási szint és performancia menedzsment a PerformanceVisor alkalmazással. HOUG konferencia, 2007 április 19.

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

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

Modell alapú tesztelés mobil környezetben

Bevezetés Mi a szoftver? Általános termékek: Mi a szoftvertervezés?

Adatstruktúrák, algoritmusok, objektumok

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

A programkód átvizsgálásának hatékonyságát két ok magyarázza:

Az objektumorientált megközelítés elınye: Hátránya:

Bánsághi Anna 1 of 67

30 MB INFORMATIKAI PROJEKTELLENŐR

01. gyakorlat - Projektalapítás

Információtartalom vázlata

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

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

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

A WINETTOU Távközlési Szolgáltató Korlátolt Felelısségő Társaság. Internet szolgáltatásra vonatkozó Általános Szerzıdéses Feltételek

Szoftvertermékek csoportjai. A szoftver. Bemutatkozás és követelmények

LABMASTER anyagvizsgáló program

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

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

A szoftverfejlesztés eszközei

Object Orgy PROJEKTTERV 1 (9) Adattípusok menedzselése Palatinus Endre

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

Vízügyi Ingatlan-nyilvántartási Információs Rendszer kialakítása. Szakdolgozat Védés 2007

Szoftver újrafelhasználás

Szoftverminőségbiztosítás

Bánsághi Anna Bánsághi Anna 1 of 54

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Elosztott rendszer architektúrák

1. 1. Mi a szoftver? Sorolja fel azokat a termékeket, amelyek a szoftverhez tartoznak.

Ez idézte elı az olyan fejlesztési folyamatokat, amelyek a gyors szoftverfejlesztésre és átadásra összpontosítanak.

Integráci. ciós s tesztek. ciós s tesztek (folyt.) Integration Level Testing (ILT) Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

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

Book Template Title. Author Last Name, Author First Name

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

Adatstruktúrák, algoritmusok, objektumok

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

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

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

4. A szoftvergyártás folyamata

A külsı minıségbiztosítás jelentısége az e-kormányzati fejlesztésekben,

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK A TESZT FEJLESZTÉSI FOLYAMATA A TESZTTERVEZÉSI TECHNIKÁK KATEGÓRIÁI

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

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

Az ÁFSZ 1 ügyviteli folyamatainak támogatása. Az alprojekt bemutatása

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

Szoftverminőségbiztosítás

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

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

A gyártástervezés modelljei. Dr. Mikó Balázs

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

Balázs Ildikó* ELEKTRONIKUS KOMMUNIKÁCIÓ JÖVİNK KULCSAI

Prolan Zrt. fejlesztéseiben. Petri Dániel

Alkalmazásportfólió. Szoftvermenedzsment. menedzsment. Racionalizálás. Konszolidáció. Nyilvántartás. Elemzés

Explosion Protection Documentation System EPDS

UML (Unified Modelling Language)

Komplex záróvizsga témakörök Gazdaságinformatikus szak Logisztikai informatikus szakirány 2014

Operációs rendszerek. Az X Window rendszer

Bevezetés az elosztott rendszerekbe

Könyvtári kölcsönzések kezelése

Informatikai projektellenőr szerepe/feladatai Informatika / Az informatika térhódítása Függőség az információtól / informatikától Információs

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

Statikus technikák: A szoftver átvizsgálása. Statikus technikák: A szoftver átvizsgálása

Számítógépes munkakörnyezet II. Szoftver

Információbiztonsági Szabályzat elkészítése és javasolt tartalma. Debrıdy István Németh Ákos

ELO dokumentumkezelı bevezetése a Market Építıipari Zrt-ben

Nagy bonyolultságú rendszerek fejlesztőeszközei

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt

Komponens alapú fejlesztés. Szoftvertechnológia elıadás

2F Iskola fejlesztői dokumentáció

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

Osztott Objektumarchitektúrák

6. A szervezet. Az egyik legfontosabb vezetıi feladat. A szervezetek kialakítása, irányítása, mőködésük ellenırzése, hatékonyságuk növelése,

Mobil Peer-to-peer rendszerek

Szigma Integrisk integrált kockázatmenedzsment rendszer

A szoftverfejlesztés eszközei

Projectvezetők képességei

CCS Hungary, 2000 szeptember. Handling rendszer technikai specifikáció

E-Számlázás az ECOD rendszeren belül. Horváth Péter, Senior Projekt Menedzser Synergon Retail Systems Kft.

A tartalomelemzés szőkebb értelemben olyan szisztematikus kvalitatív eljárás, amely segítségével bármely szöveget értelmezni tudunk, és

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

postafiók beállításai az e-szignó archívum szolgáltatáshoz

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

1. elıadás. Információelmélet Információ technológia Információ menedzsment

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

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

Átírás:

A prototípus fogalma: a szoftverrendszer kezdeti verziója, Arra használják, hogy bemutassák a koncepciókat, kipróbálják a tervezési opciókat, és hogy jobban megismerjék a problémát és annak lehetséges megoldásait. 1 A prototípus gyors, iteratív fejlesztése azért nagyon fontos, mert a költségek így ellenırizhetık. 2 A szoftverprototípus több helyen is használható a fejlesztés folyamatában: 1. A követelménytervezés folyamatában. 2. A rendszertervezési folyamatban. 3. A tesztelési folyamatban. A követelmény fázisban: a prototípus fejlesztése alatt fény derülhet a követelményekkel kapcsolatos lehetséges hibákra, esetleg új ötletek kapcsán új rendszerkövetelményeket is indítványozhatnak. A rendszertervezési folyamatban: a rendszerprototípus felhasználható a tervezési tapasztalatok alkalmazására, illetve a javasolt terv megvalósíthatóságának felülvizsgálatára. Pl.: a gyors prototípus készítés az egyetlen módja annak, hogy a felhasználók bevonásával grafikus felhasználói felületeket fejlesszünk ki. 3 4 1

A rendszertesztelés fázisában: a prototípusok segítségével az eredmények ellenırzéséhez szükséges munka visszacsatoló tesztek segítségével csökkenthetı. Ilyenkor ugyanazokra a tesztesetekre futtatjuk a prototípust és a rendszert. Ha mindkét rendszer ugyanazt az eredményt adja, akkor a teszteset valószínőleg nem talált hibát. A prototípuskészítés rendszerint a szoftverfolyamat korai szakaszában növeli a költségeket, késıbb viszont jelentısen csökkenti, mert elkerülhetık az újraírási munkák. A prototípuskészítés folyamata négy különbözı fázissal írható le: A prototípus céljainak megállapítása A prototípus funkcionalitásának definiálása A prototípus fejlesztése A prototípus kiértékelése 5 6 1. A prototípuskészítés céljait érdemes az elején írásban megadni, e nélkül a vezetés vagy a végfelhasználók félreérthetik a rendeltetését. Ilyen cél lehet: az alkalmazás megvalósíthatóságának demonstrálása vagy a felhasználói felületek bemutatása, stb. Ugyanaz a prototípus nem szolgálhatja az összes célt. 2. Annak eldöntése, hogy mit tegyünk bele a prototípusba. 3. Prototípus fejlesztése 4. A kiértékelés Gondoskodni kell a felhasználók képzésérıl, mivel idıbe telik, amíg megszokják az új rendszert, és csak ezután fedezhetik fel a követelménybeli hibákat és hiányosságokat. 7 Két fı típusa: evolúciós és az eldobható. Az evolúciós prototípus készítésének célja: egy mőködı rendszer átadása a végfelhasználóknak. Ezért a legjobban megértett és leginkább elıtérbe helyezett követelményekkel javallott kezdeni. Kevésbé fontos és körvonalazatlanabb követelmények: akkor kerülnek megvalósításra, amikor a felhasználók kérik. Ez a módszer a weblapfejlesztés és az e-kereskedelmi alkalmazások szokásos technikája. 8 2

Az eldobható prototípus készítésének célja: a rendszerkövetelmények validálása vagy származtatása. A nem jól megértett követelményekkel érdemes kezdeni, mivel azokról szeretnénk többet megtudni. 9 10 A szoftvertervezés lényege a szoftver logikai szerkezetére vonatkozó döntések meghozatala. Bizonyos esetekben ezt a logikai szerkezetet egy olyan modellezınyelv segítségévei leírt modellel ábrázoljuk, mint amilyen az UML. Más esetekben a tervet informális jelölésrendszerrel leírt vázlatokkal reprezentáljuk. 11 12 3

A nagy rendszereket olyan alrendszerekre bontják, amelyek biztosítják az egymással kapcsolatban lévı szolgáltatásokat. Ezen alrendszerek azonosításának és az alrendszer vezérlésére és kommunikációjára szolgáló keretrendszer létrehozásának kezdeti tervezési folyamata az architektúrális tervezés. 13 Egy kreatív folyamat, ahol megpróbálunk elıállítani egy rendszerszerkezetet: amely megfelel a funkcionális és nemfunkcionális rendszerkövetelményeknek. A rendszer architektúrája befolyásolja a rendszer teljesítményét, robusztusságát, eloszthatóságát és karbantarthatóságát. Ezért fontos: a szoftvertervezıket rákényszerítsük arra, hogy a tervezés kulcsfontosságú aspektusaival már a folyamat korai szakaszában foglalkozzanak. 14 Az alkalmazás számára választott szerkezet: Függhet nemfunkcionális rendszerkövetelményektıl is Pl.: a teljesítmény, védettség, biztonságosság, rendelkezésre állás, és karbantarthatóság. Magában foglalja a rendszerek alrendszerekre bontását is Az alrendszerek tervezése tulajdonképpen a rendszer durva szemcsézettségő komponensekre történı absztrakt felbontása, Ezen komponensek lehetnek önálló rendszerek. Az alrendszerek terveit általában blokkdiagram segítségével írjuk le, ahol a diagram dobozai az egyes alrendszereket reprezentálják. A tervezési folyamat során a rendszer tervezıinek számos döntést kell meghozniuk. amelyek alapvetıen kihatnak a rendszerre és a fejlesztési folyamatra. Tudásuk és tapasztalataik alapján a következı alapvetı kérdésekre kell válaszolniuk: 1. Létezik-e olyan általános alkalmazás architektúra, amely a tervezendı rendszer számára mintául szolgálhat? 2. Hogyan osztjuk szét a rendszert processzorokra? 3. Milyen architektúrális stílus lenne a rendszer számára megfelelı? 15 16 4

4. Milyen alapvetı megoldásokat alkalmazunk a rendszer strukturálására? 5. Hogyan lehet a rendszer szerkezeti egységeit modulokra felbontani? 6. Milyen stratégiát kell alkalmazni az egységek mőködésének vezérlésével kapcsolatban? 7. Hogyan értékelik majd ki az architektúrális tervet? 8. Hogyan kell a rendszer-architektúrát dokumentálni? A folyamat eredménye: egy architektúrális tervezési dokumentum, tartalmazza a rendszer grafikus reprezentációit és a hozzájuk kapcsolódó leíró szöveget. Tartalmaznia kell annak leírását, hogy a rendszert hogyan lehet alrendszerekre bontani, az egyes alrendszerek miképpen oszthatók modulokra. 17 18 1. Statikus szerkezeti modell: megmutatja, hogyan lehet az alrendszereket és komponenseket különálló egységként fejleszteni. 2. Dinamikus folyamatmodell: ábrázolja, hogy a rendszer hogyan szervezhetı futási idejő folyamatokba. Ez különbözhet a statikus modelltıl. 3. Interfészmodell: az alrendszerek által publikus interfészeiken keresztül nyújtott szolgáltatásait írja le. 4. Kapcsolatmodellek: az alrendszerek közötti kapcsolatokat (például adatáramlás) mutatják be. 5. Elosztási modell: azt adja meg, hogy az egyes alrendszereket hogyan kell elosztani a számítógépek között. A rendszer-architektúrák leírása: számos kutató az architektúraleíró nyelvek (architectural description languages, ADL) használatát és az UML nyelvet javasolja. Már az architekturális tervezési folyamat korai szakaszában döntenünk kell a rendszer teljes szerkezeti modelljérıl. Ezt a szervezési módot az alrendszerek közvetlenül is tükrözhetik, de gyakran elıfordul, hogy az alrendszer modellje részletesebb a szerkezeti modellnél. A rendszer felépítését számos modell segítségével írhatjuk le. 19 20 5

A rendszert felépítı alrendszereknek a hatékony együttmőködés céljából információt kell cserélniük A nagy mennyiségő adatokkal dolgozó rendszerek osztott adatbázisok és tárolók köré szervezıdnek. Két módon történhet: 1. Minden megosztott adatot a minden alrendszer által elérhetı, központi adatbázisban kell elhelyezni. A megosztott adatbázison alapuló rendszermodellt tárolási modellnek nevezzük. 2. Minden alrendszer saját adatbázist tart fent. Ekkor az egyéb alrendszerek közötti adatcsere üzenetküldés segítségével történik. Ez a modell azon alkalmazások számára megfelelı, ahol az egyik alrendszerben keletkezı adatok egy másik alrendszerben kerülnek felhasználásra. 21 22 1. Hatékony módszer nagy mennyiségő adat megosztására. nem szükséges az adatokat explicit módon átvinni egyik alrendszerbıl a másikba. 2. Az alrendszereknek azonban azonos adattárolási modellel kell rendelkezniük. Ekkor kompromisszumokra van szükség az egyes eszközök között, Ez azonban rossz irányban befolyásolhatja a teljesítményt. A közös sémának nem megfelelı adatmodellel rendelkezı új alrendszerek integrálása nehézzé vagy lehetetlenné válik. 3. Az adatokat termelı alrendszereknek foglalkozniuk kell azzal, hogy a többi alrendszer hogyan fogja használni azokat az adatokat. 4. Az olyan tevékenységek, mint a biztonsági mentés, a védelem, a hozzáférés-szabályozás és a hiba utáni visszaállítás központosítottak, így az eszközök lényeges feladataikra összpontosíthatnak. 23 24 6

5. A tárolási modell viszont ugyanazt a politikát kényszeríti rá minden alrendszerre. 6. A megosztottság modellje a tárolási sémán keresztül látható. Ez egyenes utat biztosít az új eszközök integrálásához, amennyiben azok megfelelnek a közös adatmodellnek. 7. A tároló több gép közötti elosztása azonban bonyolult is lehet. Bár lehetıség van egy logikailag központosított tároló elosztására, problémák léphetnek fel az adatok redundanciájával és inkonzisztenciájával kapcsolatban. 25 26 A kliens-szerver architektúra modellje egy osztott rendszer modellje. Megmutatja, hogy az adat és a feldolgozás hogyan oszlik meg feldolgozóegységek között. A modell három fı komponensbıl, a kliensek és szerverek halmazából, valamint a hálózatból tevıdik össze. Szerverek halmaza: amelyek más alrendszerek számára szolgáltatásokat nyújtanak. Pl.: a nyomtatószerverek. Kliensek halmaza: amelyek hozzáférnek a szerverek által biztosított szolgáltatásokhoz. Ezek általában önálló létjogosultsággal rendelkezı alrendszerek. Egy kliensprogramnak számos példánya futhat egyidejőleg. Hálózat: lehetıvé teszi, hogy a kliensek hozzáférjenek a szolgáltatásokhoz. Ez nem szükséges akkor, ha mind a kliensek, mind pedig a szerverek egyetlen gépen futnak. 27 28 7

A klienseknek szükségük van arra: ismerjék az elérhetı szerverek. az általuk biztosított szolgáltatások neveit de a szervereknek nem kell tudniuk sem a kliens azonosságát, sem pedig azt, hogy hány kliens van. A kliensek a szerverek által biztosított szolgáltatásokat távoli eljáráshívásokkal érik el egy kérés-válasz alapú protokoll segítségével, mint pl. a www esetén használt http protokoll. Lényegében a kliens elküld egy kérést a szervernek, és addig vár, amíg választ nem kap. 29 A kliens-szerver modell legfontosabb elınye az osztott architektúrája. Hatékonyan használható sok, osztott feldolgozási egységbıl álló hálózati rendszerek esetén. Egy új szerver könnyen hozzáadható a rendszerhez és integrálható annak többi részével. 30 Egy film és kép könyvtári rendszer architektúrája A rétegzett modell a rendszert rétegekbe szervezi. Amelyek mindegyike valamilyen szolgáltatásokat biztosít. Minden ilyen rétegre úgy tekinthetünk, mint egy absztrakt gépre amelynek gépi nyelvét a réteg által biztosított szolgáltatások definiálják. Ezt a nyelvet", szolgáltatásokat használják az absztrakt gép következı szintjének megvalósítására. Pl.: a hálózati protokollok OSI-referenciamodellje. 31 32 8

Rétegzett rendszerek: A rétegalapú megközelítés segíti a rendszerek inkrementális fejlesztését. Mihelyt egy réteg kifejlesztésre került, a réteg által biztosított szolgáltatások egy része elérhetıvé tehetı a felhasználók számára. Egy réteg helyettesíthetı egy másik, azzal ekvivalens réteggel, ha interfésze nem változik meg. Egy réteg interfészének megváltozása: vagy a réteg új lehetıségekkel történı bıvítése csak a szomszédos réteget érinti. Csak a belsı, gépfüggı rétegeket kell újraimplementálni ahhoz, hogy figyelembe vegyük egy másik operációs rendszer vagy adatbázis lehetıségeit. 33 34 A megközelítés hátránya, hogy ily módon a rendszerek strukturálása igen bonyolulttá is válhat. Az alapvetı adottságokat, amelyre minden absztrakt gépnek szüksége van a belsı rétegek biztosíthatják. A külsı réteg felhasználó által igényelt szolgáltatásainak át kell ütniük" több szomszédos réteget is ahhoz, hogy hozzáférjenek a több réteggel alattuk elhelyezkedı réteg szolgáltatásaihoz. Ez felforgatja a modellt, egy külsı réteg a továbbiakban már nem csupán egyszerően a közvetlen megelızıjétıl függ. 35 36 9

A teljes rendszer-architektúra kiválasztásra után, dönteni kell az alrendszerek modulokra bontása során alkalmazott megközelítésrıl. Az alrendszerek és modulok nem különböztethetık meg egyértelmően, de érdemes azokat a következı módon elképzelni: Egy alrendszer egy olyan önálló rendszer, amely mőködése nem függ más alrendszerek szolgáltatásaitól. Az alrendszerek modulokból épülnek fel. Egy modul olyan rendszerkomponens, amely más modulok számára szolgáltatás(oka)t biztosít. Az alrendszerek modulokra bontása során két fı stratégia ismeretes: 1. Objektumorientált felbontással a rendszert egymással kommunikáló objektumok halmazára bontjuk fel. 2. Funkcióorientált csıvezetékek használatával a rendszert bemenı adatokat elfogadó és azokat kimenı adatokká alakító funkcionális modulokra bontjuk. 37 38 39 10