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



Hasonló dokumentumok
2. Követelmények (Requirements)

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

Objektumorientált programozás C# nyelven III.

UML (Unified Modelling Language)

Adatstruktúrák, algoritmusok, objektumok

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

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

01. gyakorlat - Projektalapítás

A C# programozási nyelv alapjai

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Java II. I A Java programozási nyelv alapelemei

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

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

Objektumorientált programozás C# nyelven III.

MÉRNÖK-SZÓTÁR. számítógépes program rendszer. magyar-angol-német-orosz és más nyelvek. Mérnökök által összeállított szakmai szótárak, szakembereknek!

6. Szoftver követelmények

Programozás II. ATM példa Dr. Iványi Péter

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

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

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Szoftvertechnológia gyakorlat (BMF-NIK) Előkészítés. A csapat: Alma Aliz PROJEKTVEZETŐ. Barack Béla ADMINISZTRÁTOR. Citrom Cecília DEMONSTRÁTOR

Szoftver követelmények meghatározása

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

Szoftvertechnológia alapjai Java előadások

LABMASTER anyagvizsgáló program

PDF DOKUMENTUMOK LÉTREHOZÁSA

Objektumorientált programozás C# nyelven

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

A követelm. vetelmény. analízis fázis. Az analízis fázis célja. fázis feladata

Programfejlesztési Modellek

Szoftvertervezés és -fejlesztés I.

Adatbáziskezelés alapjai. jegyzet

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

Tartalomjegyzék. Bevezetés...2

Mesterséges Intelligencia Elektronikus Almanach. Megnyit. MI Almanach projektismertetı rendezvény április 29., BME, I. ép., IB.017., 9h-12h.

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,

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

Felhasználó által definiált adattípus

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

Rendszer szekvencia diagram

Irányítástechnika Elıadás. PLC-k programozása

Objektumorientált programozás C# nyelven

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

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

BÁN JÓZSEF FERTİSZÉPLAK SZÉKESFEHÉRVÁR - BUDAPEST. VISZK Bt. Székesfehérvár. Felhasználói Kézikönyv

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

Bertóthyné dr. Végvári Erzsébet: Módszertani útmutató a felsıfokú szakképzésben részt vevı hallgatók számára az

Informatika terméktervezőknek

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Szoftver újrafelhasználás

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

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

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

FİBB PONTOK PIACKUTATÁS (MARKETINGKUTATÁS) Kutatási terv október 20.

SEPA szabvány a napközbeni többszöri. A projekt mögötti szakmai koncepció Prágay István november 24.

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

S01-7 Komponens alapú szoftverfejlesztés 1

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

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

Modell alapú tesztelés mobil környezetben

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

Arculat fontossága & Akadálymentesítés

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

Diplomamunka. Tóth Miklós

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

OEP Online jogosultság és TAJ ellenırzés Felhasználói kézikönyv

KÖZLEMÉNY A KÉPVISELİK RÉSZÉRE

Java II. I A Java programozási nyelv alapelemei

Java I. A Java programozási nyelv

Tananyagfejlesztési módszer platformfüggetlen tananyagcsomagok elıállítására

Objektumorientált Programozás III.

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

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

A kompetencia alapú képzés bevezetésének elméleti és gyakorlati kérdései

VÍZÓRA NYÍLVÁNTARTÓ RENDSZER

Bevezetés az informatikába

Operációs rendszerek

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Java Programozás 11. Ea: MVC modell

SZÁLLÍTÁSI ÉS ÁLTALÁNOS SZERZİDÉSI FELTÉTELEK weboldal és webáruház

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

Szoftver-technológia I.

Java és web programozás

GSM átjelzı berendezés ( ) Mőszaki Leírás

Mathcad Június 25. Ott István. S&T UNITIS Magyarország Kft.

Tartalom. Nagy rendszerek struktúrált fejlesztése (SSADM) Bevezetı. Történet. Nyolc ok az SSADM használatára. Nyolc ok az SSADM használatára

EURÓPAI PARLAMENT MUNKADOKUMENTUM

HT2110 ID kártyás beléptetı rendszer

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

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

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

CAD-CAM-CAE Példatár

Turing-gép május 31. Turing-gép 1. 1

KAPCSOLÁSI RAJZ KIDOLGOZÁSA

Információtartalom vázlata

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

Átírás:

Szoftvertechnológia Szabolcsi Judit 2008

(Ajánlott irodalom: : Ian Somerville: Szoftverrendszerek fejlesztése. Második, bıvített, átdolgozott kiadás, Panem Kiadó, Budapest 2007.) KÖVETELMÉNYEK VII. Szoftverkövetelmények VII.1. A követelmények fajtái A szoftvertervezık által megoldandó problémák gyakran összetettek, így nehéz pontosan leírni, hogyan kellene mőködnie a rendszernek. A szolgáltatások és megszorítások leírásai a rendszer követelményei, ezen szolgáltatások és megszorítások kitalálásának, elemzésének, dokumentálásának és ellenırzésének a folyamatát pedig a követelmények tervezésének nevezzük. A követelmény szó elég általános, ezért érdemes két szintre bontani a követelményeket: a felhasználói és a rendszerkövetelményekre. A felhasználói követelmények diagramokkal kiegészített természetes nyelvő leírások arról, hogy milyen szolgáltatásokat várunk el a rendszertıl és annak milyen megszorítások mellett kell mőködnie. Ezek magas szintő, absztrakt követelmények. Ez a leírás az ügyfelek és a fejlesztık képviselıi (menedzserek) számára készülnek, akik nem rendelkeznek részletes technikai ismerettel a rendszerrıl. A rendszerkövetelményspecifikáció a rendszer által végzendı tevékenység részletes, precíz leírása, amely a vezetı technikai személyzetnek és a projektvezetıknek szól, és a rendszer vásárlója és a fejlesztı közötti szerzıdés része lehet. A szoftvertervezés számos problémája a követelményspecifikáció pontatlanságaiból ered. A rendszerfejlesztı számára természetes, hogy úgy értelmezzen egy kétértelmő követelményt, hogy közben annak megvalósítását egyszerősítse. (Viszont nem biztos, hogy az ügyfél ezt akarta.) Elvben a rendszer funkcionális követelményeit leíró specifikációjának teljesnek és ellentmondásmentesnek kell lennie, a gyakorlatban nagymérető, összetett rendszereknél ez lehetetlen. A követelményeket gyakran felosztják funkcionális és nemfunkcionális, illetve szakterületi követelményekre. A funkcionális követelmények. A rendszer által nyújtandó szolgáltatások ismertetései, hogy hogyan kell reagálnia a rendszernek bizonyos bemenetekre. Nemfunkcionális követelmények. A funkciókra és szolgáltatásokra tett megszorítások. Gyakran a rendszer egészére vonatkoznak. A nemfunkcionális követelményeket a következıképpen csoportosíthatjuk: Nemfunkcionális követelmények: - termékkövetelmények - használhatósági - hatékonysági (teljesítmény, tárterület) - megbízhatósági - hordozhatósági - szervezeti (a fejlesztı szervezet, vállalat) - telepítési - implementációs - szabvány - külsı követelmények

- együttmőködési - etikai - törvényi (adatvédelmi, biztonsági) A nemfunkcionális követelményekkel kapcsolatos általános probléma, hogy nehéz a meglétüket ellenırizni. Pl.: Rendszercél: A rendszernek a tapasztalt ellenırök számára könnyen használhatónak kell lennie, és a felhasználói hibák száma a lehetı legkisebb legyen. Verifikálható formában: A tapasztalt ellenırök képesek legyenek az összes rendszerfunkció használatára egy kétórás képzés után. A képzés után a tapasztalt felhasználók által elkövetett hibák száma átlagosan ne haladja meg a napi kettıt. A szakterületi követelmények A szakterületének jellegzetességeibıl származnak, nem a rendszer felhasználójának egyéni igényeibıl. Itt a legfıbb problémát az jelenti, hogy ezeket a követelményeket az alkalmazás szakterületén használt terminológiával fogalmazzák meg, amihez a szoftvertervezık általában nem értenek. A szakterület szakértıi kihagyhatnak információkat a követelménybıl, mivel az számukra teljesen nyilvánvaló, de a szoftver fejlesztıinek nem. VII.2. Felhasználói követelmények A rendszernek csak a külsı viselkedését írják le, és kerülni kell benne a rendszer tervezésének jellemzıit. A felhasználói követelményeket természetes nyelven írják, így a következı problémák merülnek fel: 1. egyértelmőség hiánya; 2. követelmények keveredése; 3. követelmények ötvözıdése. Ha a felhasználói követelmények túl sok információt tartalmaznak, az korlátozza a rendszerfejlesztı szabadságát, hogy újító megoldást adjon, másrészt nehezen érthetıvé teszi a leírást. A felhasználói követelményeknek egyszerően a kulcsfontosságú igényekre kell összpontosítaniuk. Egy példa két változatban: 2.6. Rács eszközök Az egyedek diagramon történı pozícionálását segítendı a felhasználó bekapcsolhat egy rácsot akár centiméteres, akár hüvelykes beosztással, a vezérlıpanelen lévı opció segítségével. Kezdetben a rács kikapcsolt állapotban van. A rács a szerkesztés menete alatt tetszılegesen ki- bekapcsolható, és bármikor válthatunk a centiméteres és hüvelykes beosztás között. A rács opció az ablakméretre illeszthetı nézetben is elérhetı lesz, de a rácsvonalak száma csökkeni fog annak elkerülése végett, hogy a kisebb diagramokat kitöltsék a rácsvonalak. 2.6. Rács eszközök 2.6.1. A szerkesztı biztosítson egy rács eszközt, ahol a vízszintes és a függıleges vonalak mátrixa hátteret nyújt a szerkesztıablakhoz. Ez a rács legyen passzív rács, ahol az elemek igazítása a felhasználóra tartozik. Magyarázat: Egy rács segíti a felhasználót egy rendezett diagram elkészítésében, az elemek jó elhelyezésében. Bár egy aktív rács, ahol az elemek a rácsvonalakhoz tapadnak hasznos lehet, de a pozícionálást pontatlanná teszi. Annak eldöntésében, hogy hova kerüljenek az elemek a felhasználó

a legilletékesebb személy. Az elsı változat elsı mondata három követelményt mos össze: fogalmi, funkcionális (a rács); nemfunkcionális (a mértékegységek); nemfunkcionális felhasználói követelményt (a rács ki- és be kapcsolásának a módja). Ezzel ellentétben a második változat a lényegre összpontosít. A követelményekhez főzött magyarázat fontos, hogy a rendszerfejlesztık és karbantartók megértsék, miért került be a követelmény, és hogy meg tudják becsülni a követelmények megváltoztatásának hatását. A felhasználói követelmények leírásakor tartsunk be néhány egyszerő irányelvet: Találjunk ki és használjunk egy szabványos formátumot. Használjuk következetesen a nyelvet, pl. tegyünk különbséget szükséges és kívánatos között (kell és javasolt). Használjunk szövegkiemelést (félkövér és dılt betők) a kulcsfontosságú részek hangsúlyozására. Kerüljük el a számítógépes zsargon használatát. VII.3. Rendszerkövetelmények A rendszerkövetelmények a felhasználói követelmények részletesebb leírásai. Alapjául szolgálnak a rendszer megvalósítási szerzıdéséhez, így az egész rendszer teljes és ellentmondásmentes meghatározását kell tartalmazniuk. A rendszerkövetelmények specifikációja tartalmazhatja a rendszer különbözı modelljeit, pl. objektummodellt, vagy adatfolyam-modellt. Elvben a rendszerkövetelmények feladata annak leírása, hogy mit kell csinálnia a rendszernek, nem pedig az, hogy hogyan kellene megvalósítani, de a részletességnek ezen a szintjén jóformán lehetetlen kizárni minden tervezési információt. A természetes nyelvet gyakran használják a rendszerkövetelmények specifikációja megírásához. A fentebb már említett három probléma mellett itt továbbiak merülhetnek fel: 1. A természetes nyelv megértése azon alapszik, hogy az író és az olvasó ugyanazokat a szavakat használja ugyanazokhoz a fogalmakhoz. Ez viszont nincs feltétlenül így, fıleg a természetes nyelv többértelmősége miatt. 2. Túl rugalmas. Ugyanazt a dolgot teljesen eltérı formában is elmondhatjuk, az olvasó dolga, hogy kitalálja, a követelmények mikor egyeznek meg és mikor különböznek. 3. A természetes nyelvő követelmények modularizálására nincs könnyő módszer. Lehet, hogy bonyolult az összes kapcsolódó követelményt megtalálni. Ahhoz, hogy felfedezzük egy változtatást következményeit, lehet, hogy a teljes specifikációt át kell néznünk. A fenti okok miatt a természetes nyelvnek több alternatíváját is kipróbálták: strukturált természetes nyelv tervleíró nyelvek grafikus jelölések (use case-ek) matematikai specifikációk (véges állapotú automaták, halmazok) A strukturált természetes nyelv a természetes nyelv egyfajta leszőkítése a rendszerkövetelmények leírásához. Ennek az az elınye, hogy a természetes nyelv kifejezıképességét és érthetıségét jórészt megtartja, de egységességet is nyújt. Erre egy példa az őrlap alapú megközelítés, ahol egy vagy több szabványos őrlapot kell definiálnunk, és végig ezeket használjuk a követelmények

kifejtéséhez. Például: Funkció Csomópont hozzáadása Leírás Hozzáad egy csomópontot a meglévı tervhez. A felhasználó kiválasztja a csomópont típusát és helyét. Hozzáadás után a csomópont lesz aktuális. A felhasználó úgy választja ki a csomópont helyét, hogy a kurzort oda viszi, ahová a csomópontot helyezni akarja. Bemenet Csomópont típus, Csomópont pozíció, Terv azonosító Forrás A Csomópont típus és a Csomópont pozíció a felhasználótól eredı bemenetek, a Terv azonosító pedig az adatbázisból. Kimenet Terv azonosító Cél A terv adatbázis. A terv az adatbázisba kerül a mővelet befejezésekor. Igény Tervezési gráf, melynek gyökere a bemeneti azonosító. Elıfeltétel A terv nyílt és megjeleníthetı a felhasználó képernyıjén. Utófeltétel A terv változatlan, eltekintve egy megadott típusú csomópont hozzáadásától egy megadott helyen. Mellékhatás Nincs. Tervleíró nyelv: PDL A természetes nyelvő specifikáció többértelmőségének kivédésére találták ki a programleíró nyelveket PDL (Program Description Language). A PDL olyan programozási nyelvbıl származó nyelv, mint a Java vagy az Ada. Tartalmazhat új, absztrakt konstrukciókat a kifejezıerı növelésére. A PDL ek szoftveres eszközökkel szintaktikailag és szemantikailag is ellenırizhetık. Két esetben javasolt a használatuk: Ha egy mővelet egyszerőbb tevékenységek sorozataként definiált és a végrehajtás sorrendje fontos. Ha hardver- és szoftverinterfészeket kell megadni. A PDL használatának hatékony módja, ha összekapcsoljuk a strukturált természetes nyelvvel. A teljes rendszer specifikálásához őrlap alapú megközelítést használunk, a vezérlési sorozatok és az interfészek részletesebb leírásához pedig PDL-t. Egy ATM mőködés PDL-leírásának részlete:

class ATM //deklarációk helye public static void main (String args[]) throw InvalidCard try thiscard.read(); // InvalidCard kivételt dobhat pin = KeyPad.readPin(); attempts = 1; while (!thiscard.pin.equals(pin) & attempts <4) pin = KeyPad.readPin(); attempts = attempts + 1; if (!thiscard.pin.equals(pin) throw new InvalidCard ( A kód téves ); thisbalance = thiscard.getbalance(); do Screen.prompt( Válasszon szolgáltatást ); service = Screen.touchKey(); switch (service) case Services.withdrawalWithReceipt: receiptrequired = true; case Services.withdrawalNoReceipt: amount = KeyPad.readAmount(); if (amount > thisbalance) Screen.printmsg( Kevés az egyenlege ); break; Dispenser.deliver (amount); newbalance = thisbalance amount; if (receiptrequired) Receipt.print(amount, newbalance); break; //egyéb szolgáltatások helye default: break; while (service!= Service.quit); thiscard.returntouser( Vegye ki a kártyát. ); catch (InvalideCard e) Screen.printmsg( A kártya vagy a kód nem érvényes ); // egyéb kivételek kezelésének helye //main vége //ATM vége VII.4. A szoftverkövetelmények dokumentuma A rendszerfejlesztıkkel szemben támasztott elvárások hivatalos leírása. A követelménydokumentum lehetséges használói és hogy ık mire használják:

Használók megrendelık menedzserek rendszertervezık rendszerteszt-tervezık rendszerkarbantartás-tervezık Mire? Meghatározzák a követelményeket és ellenırzik, hogy azok megfelelnek-e az igényeiknek. Változtatásokat adnak meg a követelményekhez. Az árajánlat elkészítéséhez és a rendszerfejlesztési folyamat megtervezéséhez használják. Annak megértéséhez használják, hogy milyen rendszert kell fejleszteni. Validációs tesztek készítésére. Segít megérteni a rendszer és a rendszer részei közötti összefüggéseket. Kérdések (A válaszok beküldhetık: március 23-a délig) 1. Írja le természetes nyelven egy banki ATM (pénzkiadó automata) pénzkiadás funkciójának a felhasználói követelményeit (a nem normál mőködésre is térjen ki)! (4 pont) 2. Alakítsa át a fenti természetes nyelvő leírást strukturált természetes nyelvővé! (5 pont)