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

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

KÉSZÍTETTE: DR. MILEFF PÉTER

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

Szoftverfejlesztés. (MSc) Miskolci Egyetem Általános Informatikai Tanszék MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR

01. gyakorlat - Projektalapítás

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

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

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

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

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

Szoftvermenedzsment 4. fejezet A szoftverfolyamat

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

4. A szoftvergyártás folyamata

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

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

S01-7 Komponens alapú szoftverfejlesztés 1

Információtartalom vázlata

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

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

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

TESZTELÉS A SZOFTVER ÉLETCIKLUSÁN ÁT SZOFTVERFEJLESZTÉSI MODELLEK

The Unified Software Development Process. Történet. Feltételek. Rational Unified Process. Krizsán Zoltán Ficsor Lajos

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

Bevezetés a programozásba

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

Tesztelés az XP-ben Tesztelés az XP-ben. A tesztelés kulcsjellemzői:

Tartalom. Szoftverfejlesztési. Szoftver = Termék. módszertan. la Rational XDE CASE eszköz. Az előállításához technológiára van szükség

Rational Unified Process

A szoftverfolyamat és s a tesztelés

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

extreme Programming programozástechnika

Teszt terv Új funkció implementációja meglévı alkalmazásba

Adatstruktúrák, algoritmusok, objektumok

Témakörök. Struktúrált fejlesztés. Elınyök (SA) Structured Analysis (SA) Hátrányok (SA) Alapfogalmak (SA)

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

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

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

Félévi követelmények Bemutatkozás és követelmények

Programfejlesztési Modellek

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

Programtervezés. Dr. Iványi Péter

Informatikai projektmenedzsment

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

Web-programozó Web-programozó

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

MIÉRT KELL TESZTELNI?

Projektmenedzsment Szervezet Szervezeti és Mőködési Szabályzat

Szoftver-technológia I.

Szoftverfejlesztési folyamatok és szoftver minőségbiztosítás

Objektum orientált software fejlesztés (Bevezetés)

Félévi követelmények. Gyakorlatvezetők

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Szoftverminőségbiztosítás

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

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

Szoftverminőségbiztosítás

MINISZTERELNÖKI HIVATAL. Szóbeli vizsgatevékenység

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

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

Életciklus modellek a rendszer és szoftverrendszer-fejlesztésben. SDLC System Development Life Cycle Software Development Life Cycle

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

A fejlesztési szabványok szerepe a szoftverellenőrzésben

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

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

5. Témakör TARTALOMJEGYZÉK

Az Innováció és az ember avagy: Miért (nem) szeretnek a felhasználók kattintani?

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

TOGAF elemei a gyakorlatban

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

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

A TANTÁRGY ADATLAPJA

Orvostechnikai eszköz tesztelése DSS Unit test. Taliga Miklós BME-IIT

Szoftver követelmények meghatározása

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

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

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

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Projectvezetők képességei

Agilis projektmenedzsment

Szépmővészeti Múzeum térszint alatti bıvítése: A projekt idıt befolyásoló kockázatok értékelése. Készítette: Kassai Eszter Rónafalvi György

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

S01-8 Komponens alapú szoftverfejlesztés 2

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

S S A D M ELEMZÉSI ÉS TERVEZÉSI MÓDSZERTAN. Structured Systems Analysis and Design Method

Szigma Integrisk integrált kockázatmenedzsment rendszer

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,

Nagy bonyolultságú rendszerek fejlesztőeszközei

A fejlesztés módszertana

Informatikai rendszertervezés

SW-project management

Követelmény alapú minőségbiztosítás az államigazgatásban

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

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK STRUKTÚRA ALAPÚ, VAGY FEHÉRDOBOZ TECHNIKÁK TAPASZTALAT ALAPÚ TECHNIKÁK

AZ INFORMÁCIÓS RENDSZEREK TERVEZÉSÉNEK ELMÉLETE ÉS EGY PÉLDA GYAKORLATI MEGVALÓSÍTÁSÁRA A KÖZIGAZGATÁSBAN

IT ügyfélszolgálat és incidenskezelés fejlesztése az MNB-nél

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

Szoftverminőségbiztosítás

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ı.

A tőzvédelmi tanúsítási rendszer mőködése Magyarországon

Átírás:

Folyamattevékenységek Dr. Mileff Péter Alapvetıen négy különbözı folyamattevékenység: Specifikáció (követelménytervezés) Tervezés és implementáció Validáció Evolúció Ezeket a különféle fejlesztési folyamatmodellek különféleképpen szervezik. Vízesésmodell szekvencia Evolúciós fejlesztés összemosás 1 2 Szoftverspecifikáció (Követelménytervezés) Az a folyamat, ahol megértjük és definiáljuk, hogy a rendszernek milyen szolgáltatásokat kell biztosítani. Azonosítjuk a rendszer üzemeltetésének és fejlesztésének megszorításait. Kritikus szakasz: Az itt vétett hibák nagy problémákhoz vezetnek majd a rendszertervezés késıbbi szakaszában és az implementációban. 3 4 1

Szoftverspecifikáció A folyamat eredménye a követelmény dokumentum elıállítása. Leírása két szinten: ügyfelek számára leírt követelmények fejlesztık sokkal részletesebb rendszer-specifikációja 1. fázis: Megvalósíthatósági tanulmány A felhasználók, megrendelı kívánságainak ellenırzése: kielégíthetık-e az adott szoftver- és hardvertechnológia mellett. A vizsgálatoknak el kell döntenie: a rendszer költséghatékony-e, kivitelezhetı-e. A megvalósíthatóság elemzésének relatíve olcsónak és gyorsnak kell lennie. Eredménye: megvalósítási jelentés. 5 6 2. fázis: Követelmények feltárása és elemzése A folyamat a következıkön alapszik: rendszerkövetelmények meglévı rendszereken történı megfigyelése, a potenciális felhasználókkal és beszerzıkkel folytatott megbeszélések. Akár egy vagy több különbözı rendszermodell, illetve prototípus elkészítését is magában foglalhatja. 3. fázis: Követelmény specifikáció Az elemzési tevékenységek során összegyőjtött információk egységes dokumentummá alakítása: A felhasználói követelmények: a rendszerkövetelmények absztrakt leírása a végfelhasználóknak, megrendelınek. A konkrét rendszerkövetelmények: részletezik az elkészítendı rendszer által nyújtandó funkciókat. 7 8 2

4. fázis: Követelmény-validáció validáció Annak ellenırzése, hogy mennyire valószerőek, konzisztensek és teljesek a követelmények. A folyamat során fel kell tárni a követelmények dokumentumában található hibákat, hiányosságokat és kijavítani. A követelménytervezés tevékenységeit nem kötelezı szigorú sorrendben végrehajtani. 9 10 Szoftvertervezés és implementáció Nem más, mint a rendszer-specifikáció futtatható rendszerré történı alakítása. Magában foglalja: a szoftver tervezését a programozását esetleg a specifikáció finomítását. A tervezés A szoftver tervezése leírása a az implementálandó szoftver struktúrájának és az adatoknak, a rendszerkomponensek közötti interfészeknek és néha a használt algoritmusoknak. Iteratív folyamat: A terv folyamatosan fejlıdik, finomodik. A tervezés számos különféle absztrakciós szinten levı rendszermodell kifejlesztését is tartalmazhatja. A tervet részekre osztásával napvilágra kerülnek a korábbi hibák Visszacsatolások biztosítják a rendszer fejlesztését. 11 12 3

A tervezés A tervezés lépései 1. Architekturális tervezés: A rendszert felépítı alrendszerek és a köztük található kapcsolatok azonosítása és dokumentálása. 1. Architekturális tervezés 2. Absztrakt specifikáció 3. Interfész tervezése 4. Komponens tervezése 5. Adatszerkezet tervezése 6. Algoritmus tervezése 2. Absztrakt specifikáció: Minden alrendszer esetében meg kell adni szolgáltatásaik absztrakt specifikációját és azokat a megszorításokat, amelyek mellett azok mőködnek 13 14 A tervezés lépései 3. Interfész tervezése: interfész tervezése az alrendszerek felé. Az interfész specifikációnak egyértelmőnek kell lennie. 4. Komponens tervezése: A szolgáltatások elhelyezése a különbözı komponensekben, és meg kell tervezni a komponensek interfészeit. A tervezés lépései 5. Adatszerkezet tervezése: Meg kell határozni és részletesen meg kell tervezni a rendszer implementációjában használt adatszerkezeteket. 6. Algoritmus tervezése: Meg kell tervezni és pontosan meg kell határozni a szolgáltatások biztosításához szükséges algoritmusokat. 15 16 4

Az implementáció A programozás személyekre szabott tevékenység, nincs általános szabály, amit követni lehet. A fejlesztés gyakori menete: azon komponensekkel kezdik, melyeket a legjobban megértettek, csak azután fejlesztik a kevésbé érthetı komponenseket. A fejlesztés során a programozók tesztelnek is, amely hibákat tár fel. Ezeket javítani kell. 17 18 Szoftvervalidáció Általánosan: verifikáció és a validáció (V & V). Cél: megmutassa, a rendszer konform a saját specifikációjával, a rendszer megfelel a rendszert megvásárló ügyfél elvárásainak. Egy ellenırzési folyamat a szoftverfolyamat minden egyes szakaszában A követelmények meghatározásától kezdve egészen a program kifejlesztéséig. Pl.: szemlék, felülvizsgálatok. Szoftvervalidáció A rendszerek többsége nem tesztelhetık magukban mint monolitikus egységek. Ezért többlépéses tesztelés. A programban felderített hibákat ki kell javítani. Következménye: a tesztelési folyamat egyéb szakaszait is meg kell ismételni. Egy háromlépéses tesztelési folyamat: 19 20 5

A tesztelési folyamat szakaszai: 1. Komponens (vagy egység) tesztelése: Az egyedi komponenseket tesztelni kell, és biztosítani a tökéletes mőködésüket. Minden egyes komponens tesztelése az egyéb rendszerkomponensektıl függetlenül történik. 2. Rendszer tesztelése. Az alrendszerek és interfészeik közötti elıre nem várt kölcsönhatásokból adódó hibák megtalálásával foglalkozik. A rendszer eleget tesz-e a rendszer funkcionális és nemfunkcionális követelményeinek és az eredendı rendszertulajdonságoknak. A tesztelési folyamat szakaszai: 3. Átvételi tesztelés: A tesztelési folyamat legutolsó fázisa a rendszer használata elıtt. A rendszert ilyenkor a megrendelı adataival kell tesztelni Olyan hiányosságokat vethet fel ami, más esetben nem derül ki. Alfa-tesztelésnek is szokták nevezni. Ezt addig kell folytatni, amíg a rendszerfejlesztı és a kliens egyet nem ért abban, hogy a leszállított rendszer a rendszerkövetelményeknek megfelelı. 21 22 Szoftverevolúció A szoftver karbantartása a rendszeren történı változtatások folyamata, a rendszer mőködésbe állítása után. Korábbi felfogás szerint éles a határ a fejlesztés és a karbantartás között. A karbantartás költségei a fejlesztés költségeinek többszörösét is elérhetik Ez a folyamat sokkal kisebb kihívás, mint a kifejlesztés. Napjainkban ez az elkülönítés egyre lényegtelenebb. 23 24 6

Szoftverevolúció Kevés szoftverrendszer tekinthetı teljesen újnak így a fejlesztés és karbantartás egy egységnek tekinthetı. Valószerőbb a szoftvertervezést evolúciós folyamatként kezelni, ahol a szoftver élettartama alatt a követelményekkel és az ügyfél elvárásaival együtt folyamatosan változik. 25 26 Rational Unified Process Rational Software Corporation fejlesztette ki Az IBM felvásárolta 2003-ban. Jó példája a modern folyamatmodelleknek. UML-bıl és a hozzá kapcsolódó Unified Software Development Process-bıl származik. Jó példája a hibrid modelleknek is: mindegyik korábban tárgyalt általános folyamatmodellbıl tartalmaz elemeket. támogatja az iterációt, és jól illusztrálja a specifikáció és a tervezés tevékenységeit. RUP A RUP felismeri, hogy a konvencionális folyamatmodellek a folyamatoknak csak egy egyszerő nézetét adják. Nem egy kész, követendı eljárást ad minden projektre, inkább egy könnyen változtatható keretet azok kézbentartásához. A RUP szabvány általában nagymérető projektekhez ajánlott, ahol akár több fejlesztı csapat dolgozik közösen egy adott problémán. 27 28 7

RUP A rendszerfejlesztés folyamatát alapvetıen három dimenzióval írja le: RUP Az idıbeliség alapján az RUP a rendszerfejlesztést négy nagyobb egységre, négy diszkrét fázisra bontja. A fázisok sokkal közelebb állnak az üzleti vonatkozásokhoz, mint a technikaiakhoz. 1. dinamikus perspektíva: a modell fázisait mutatja be. 2. statikus perspektíva: a végrehajtandó folyamattevékenységeket mutatja be. 3. gyakorlati perspektíva: jól hasznosítható gyakorlatokat javasol a folyamat alatt. 29 30 RUP fázisok 1. Elıkészítés (inception) : Ebben a fázisában a rendszer eredeti ötletét részletes elképzeléssé dolgozzuk át: Amely alapján a fejlesztés tervezhetı lesz, a költségei pedig megbecsülhetık. Alapvetı dolgokat fogalmazunk meg: A felhasználók milyen módon fogják használni a rendszert, és annak milyen alapvetı belsı szerkezetet, architektúrát alakítunk ki. RUP fázisok 2. Kidolgozás (elaboration): Ebben a fázisban a használati módokat, a használati eseteket részleteiben kell kidolgozni Össze kell állítani egy stabil alaparchitektúrát (architecture baseline). A Unified Process készítıinek a képe alapján a teljes rendszer egy testnek tekinthetı: Csontváz, bır és izmok. Alaparchitektúra: a bırrel borított csontváz. Mindössze a minimális összekötı izomzatot tartalmazza, annyit, amennyi a legalapvetıbb mozdulatokhoz elegendı. Az alaparchitektúra segítségével a teljes fejlesztés folyamata ütemezhetı és a költségei is tisztázhatók. 31 32 8

RUP fázisok 3. Megvalósítás (construction): Ezen fázisban a teljes rendszert kifejlesztjük, beépítjük az összes izomzatot. Legfıképpen a rendszertervvel, a programozással és a teszteléssel foglalkozik. A rendszer különbözı részei párhuzamosan fejleszthetık, és ez alatt a fázis alatt integrálhatók. A fázis teljesítése után már rendelkezünk egy mőködı szoftverrendszerrel és a hozzá csatlakozó dokumentációval, Ez már leszállítható a felhasználónak. RUP fázisok 4. Átadás (transition): A rendszer bétaváltozatának kipróbálását jelenti. Ekkor néhány gyakorlott felhasználó teszteli a rendszert jelentést készít annak helyességérıl vagy a hibáiról és hiányosságairól. A megjelenı hibákat ki kell küszöbölni, a még hiányzó részeket ki kell fejleszteni. 33 34 Mérföldkő (milestone ( milestone) Minden fázis vége a fejlesztés egy-egy jól meghatározott mérföldköve. Olyan pont, ahol egy célt kell elérni és kritikus döntéseket meghozni. Minden fázis végén megvizsgáljuk az eredményeket és döntünk a folytatásról. Mérföldkő Iterációk: a fejlesztés nagyobb egységeit jelentı fázisok további kisebb egységekre bonthatók. egy teljes, illetve részben önálló fejlesztési ciklust jelent. végén egy mőködı és végrehajtható alkalmazásnak kell elıállnia. Az iterációk végén így a teljes rendszer egyre bıvülı részét kapjuk. Ezek a rendszer egymás utáni kibocsátásai (release). Fázisok idı- és erıforrásigénye 35 36 9

Mérföldkő Az iterációk végén belsı változatok alakulnak ki. A belsı változatok: a fejlesztık kipróbálhatják a rendszert. Segítik a fejlesztést: módosítások eszközölése Tapasztalatok szerzése. A fejlesztés másik dimenziója Meghatározza az eljárás elemeket: a fejlesztés során milyen dokumentumokat, diagramokat, forráskódokat készítünk el. Összesítıen: produktumok (artifact). A produktumokat megfelelı szakértelemmel ellátott személy (dolgozó) állítja össze. A tevékenységek, azok idıbeli sorrendje és az azt végrehajtó dolgozók együttesen egy munkafolyamattal (workflow) írhatók le. a munkafolyamatok leírása UML-modellekkel történik. 37 38 Modellek A fejlesztés folyamatában megjelenı tevékenységcsoportok és modellek: Üzleti elemzés Követelmények Elemzés Tervezés Implementáció Üzleti modell Használati esetmodell Elemzési modell Tervezési modell Implementációs modell Telepítési modell Tevékenységcsoportok 1. üzleti modellezés(business model): a fejlesztéshez egy megfelelı kiindulópont keresése. Megkeressük a készítendı rendszer üzleti vagy más néven szakterületi környezetét: alapvetıen az üzleti fogalmakat és folyamatokat jelentik illetve az azokra hatást gyakorló üzleti munkatársakat. Teszt Teszt modell 39 40 10

Tevékenységcsoportok 2. követelmények meghatározása (requirements capture): Összegyőjtjük és felsoroljuk a rendszer mőködésével szemben támasztott kezdeti elképzeléseket. Leírjuk, hogy a rendszernek milyen környezetben kell mőködnie, Felsoroljuk a funkcionális és nemfunkcionális követelményeket: Funkcionális: mőködéssel kapcsolatos. Nemfunkcionális: válaszidık, bıvíthetıség, alkalmazott technológiák, stb. A követelmények meghatározása során alapvetıen a felhasználók szempontjából írjuk le a rendszert, így annak egy külsı képét rögzítjük. Tevékenységcsoportok 3. elemzés (analysis): A követelményeket a fejlesztık szempontjának megfelelıen rendezzük át, így azok együttessen a rendszer egy belsı képét határozzák meg. a további fejlesztés kiindulópontja lesz. Rendszerezzük és részletezzük az összegyőjtött használati eseteket, valamint azok alapján meghatározzuk a rendszer alapstruktúráját. Cél: a szerkezeti váz kialakítása. 41 42 Tevékenységcsoportok 4. tervezés (design): A szerkezeti vázat teljes alakká formálja, és tartalommal tölti fel. az összes funkcionális és nem-funkcionális követelménynek is eleget tesz. Az implementációval kapcsolatos összes kérdést meg kell válaszolnia. Amely alapján a rendszer leprogramozható minden kérdés nélkül. Felmerülı kérdések: összes felhasznált technológia, a rendszer részekre bontása, alrendszerek és kapcsolódásuk, protokollok. Tevékenységcsoportok 5. implementáció (implementation): A rendszert az UML terminológiája szerinti komponensekként állítjuk elı. Forráskódok, bináris, futtatható állományok, szövegek, képek, stb. Az állományok elıállítása egyben azok függetlenül végrehajtható, önálló tesztjei is. Az iteráció esetén szükséges rendszerintegráció tervezése, az osztottság (distribution) tervezése 43 44 11

Tevékenységcsoportok 6. teszt (test): utolsó munkafolyamat. Ütemtervek összeállítása: az iterációkon belüli integrációs tesztek ütemtervei az iterációk végén végrehajtandó rendszertesztek ütemtervei. Megtervezzük és implementáljuk a teszteket Tesztesetek elıállítása. Programokat készítünk, ha lehetséges a tesztek automatizálása. A tesztek végrehajtásával párhuzamosan azok eredményeit szisztematikusan feldolgozzuk. Hibák vagy hiányosságok esetén újabb tervezési vagy implementációs tevékenységeket hajtunk végre. 45 46 12