Szoftver követelmények meghatározása Requirements engineering (analysis)
Szoftver-technológia I.
Szoftver-technológia I.
Irodalom
• Ian Sommerville: Software
Engineering, 7th e. chapter 6-7.
• Roger S. Pressman: Software
Engineering, 5th e. chapter 11.
2
Szoftver-technológia I.
Követelménymeghatározás
• Rendszer szolgáltatások és
m!ködési feltételek meghatározása a megrendel" számára
• Rendszer és szoftver tervezés összekapcsolása Rendszer tervezés Követelmény elemzés Szoftver tervezés
3
Követelménymeghatározás (folyt.)
Szoftver-technológia I.
• A követelmény meghatározás helye az életciklusban
Rendszertervezés
Követelmény elemzés
Szoftver tervezés
Implementáció
Min!ségbiztosítás
Karbantartás
4
Követelménymeghatározás (folyt.)
Szoftver-technológia I.
• A megfelel" követelmény meghatározás fontossága • Hibák az életciklus alatt Valós probléma
Követelmény meghatározás helyes spec.
hibás spec. Tervezés
helyes terv
hibás terv
terv hibás spec. alapján
hibás prog.
prog. hibás terv alapján
prog. hibás spec. alapján
javítható hibák
javíthatatlan hibák
Implementálás helyes prog.
Tesztelés helyes prog.
Szoftver-technológia I.
rejtett hibák
5
Specifikációs hibák aránya és költsége
• Bell Labs., IBM elemzések • hibák 80%-a hibás köv. megh.-ra vezethet" vissza • U.S. Airforce • az összes hiba 36%-a követelmények hibás értelmezéséb"l • Voyager és Galileo !rszondák • 197 hibát tárt fel az int. tesztelés, ebb"l 3 programozási hiba • Követelmény hiba javítási költsége szállítás után 100-szorosa az impl. hiba javításnak [Boehm]
6
Követelménymeghatározás (folyt.)
Szoftver-technológia I.
• A követelmény meghatározás során végzett tevékenységi körök
• probléma azonosítás • értékelés, szintézis • modellezés • specifikálás 7
Szoftver-technológia I.
Követelmények
• Megjelenés • magas szint! absztrakt szolgáltatás leírás • részletes formális leírás • Kett"s szerep (Davis, 1993) • ajánlattételi felhívás • eltér" alternatívák • szerz"dési alap • validálhatóság 8
Szoftver-technológia I.
Követelmény típusok
• Felhasználói követelmények • szolgáltatások köre • természetes nyelven • Rendszer követelmények • rendszer funkciók, szolgáltatások • m!ködési feltételek • precíz megadás 9
Szoftver-technológia I.
A követelmények célcsoportjai Felhasználói követelmények
managerek (megrendel!i oldal) végfelhasználók mérnökök (megrendel!i oldal) rendszertervez!k
Rendszer követelmények
végfelhasználók mérnökök (megrendel!i oldal) rendszertervez!k szoftver fejleszt!k
Tervezési specifikáció
mérnökök (megrendel!i oldal) rendszertervez!k szoftver fejleszt!k
10
Szoftver-technológia I.
Felhasználói követelmények (pl.)
11
Szoftver-technológia I.
Rendszer követelmények (pl.)
12
Szoftver-technológia I.
Funkcionális és nemfunkcionális követelmények
• Funkcionális követelmények • szolgáltatások köre • Nem-funkcionális követelmények • m!ködési kényszerek, feltételek • Domén követelmények • alkalmazási terület jellemz"i 13
Szoftver-technológia I.
Funkcionális követelmények
• A rendszer funkcionalitásának és szolgáltatásainak leírása
• Az alkalmazási környezet, a
szoftvertípus és a felhasználói kör függvénye
14
Szoftver-technológia I.
A követelmények pontatlansága
• A nem egyértelm!en
megfogalmazott követelményeket többféle képpen lehet értelmezni
15
A követelmények teljessége és konzisztenciája
Szoftver-technológia I.
• Teljesség • tartalmazza az összes szükséges információt, az összes szolgáltatás leírását
• Konzisztencia • nincsenek ellentmondások a rendszer leírásában, a szolgáltatások definícióiban
16
Szoftver-technológia I.
Nem-funkcionális követelmények
• A rendszer m!ködési környezetére vonatkozó
• rendszer tulajdonságok • feltételek, kényszerek
• A szoftverfolyamatra vonatkozó megkötések
• Kielégítésük kritikus a rendszer szempontjából
17
Szoftver-technológia I.
Nem-funkcionális követelmények (folyt.)
• Termék követelmények • Szervezési követelmények • Küls" követelmények
18
Szoftver-technológia I.
Nem-funkcionális követelmények (folyt.) Nem-funkcionális követelmények
Termék követelmények
Hatékonysági követelmények
Megbizhatósági követelmények
Szervezési követelmények
Küls! követelmények
Együttm"ködési követelmények Portabilitási követelmények Etikai követelmények
Teljesítmény követelmények
Törvényességi követelmények
Méret követelmények Szállítási követelmények
Titkossági követelmények
Adatbiztonsági követelmények
Szabványossági követelmények Használhatósági követelmények
Implementációs követelmények
19
Nem-funkcionális követelmények megfogalmazása
Szoftver-technológia I.
• Elérend" célok ellen"rizhet" követelményekké alakítása • metrikák használata, ha lehetséges Tulajdonság
Metrika
sebesség
tranzakció/sec válaszid" frissítési ráta
méret
Kbyte
használhatóság
betanulási id" help oldalak száma
megbízhatóság
MTBF BER
robusztusság
újra indulási id"
hordozhatóság
platform függ" kód aránya elérhet" platformok száma
20
Nem-funkcionális követelmények megfogalmazása (folyt.)
Szoftver-technológia I.
• Követelmények egymásrahatása • ellentmondó követelmények • kompromisszumos megoldás v. a követelmények megváltoztatása
21
Szoftver-technológia I.
Domén követelmények
• Az alkalmazási terület által támasztott követelmények
• Megértés • terminológia, koncepciók • Implicitás • “nyilvánvaló”
• új funkcionális követelemények 22
Szoftver-technológia I.
Domén követelmények (pl.)
23
Szoftver-technológia I.
Felhasználói követelmények
• felhasználók számára érthet", sw. technológiai háttér nélkül
• természetes nyelven, intuitív diagrammokkal
24
Szoftver-technológia I.
Természetes-nyelvi problémák
• Pontatlan, nem egyértelm! • precízen megfogalmazott szöveg nehezen olvasható • Túl rugalmas • többféle képen leírható ugyanaz • Nem elég struktúrált • • Nehezen különíthet"k el a követelmények, célok, tervezési információk
25
Felhasználói követelmények rögzítése
Szoftver-technológia I.
• Standard formátum az összes követelményhez
• Konzisztens nyelvhasználat • kötelez" és kívánatos követelmények
• Kulcsrészek tipográfiai kiemelése • Komputer zsargon kerülése 26
Szoftver-technológia I.
Rendszer követelmények
• Szolgáltatások és kényszerek részletes specifikációja
• A szoftvertervezési folyamat kiinduló dokumentumai
• Dokumentáláshoz rendszer
modellezési formalizmusok használata 27
Szoftver-technológia I.
Követelmények és a tervezés
• A tervezési folyamat nem
választható el a követelmények meghatározásától
• architektúrális tervezés • tervezési kényszerek más rendszerekkel való együttm!ködés miatt
• domén specifikus tervezési elvek 28
Rendszer követelmények rögzítése
Szoftver-technológia I.
• Természtes-nyelvi problémák • Speciális fél formális jelölés rendszerek • Struktúrált természetes nyelv • Design leíró nyelv • info architecture • Grafikus jelölések • use-case, szekvencia diagr. • Matematikai specifikáció • véges automaták 29
Szoftver-technológia I.
Struktúrált nyelv! specifikációk
• El"re definált forma • Sz!kített terminológia • El"nyök • természetes nyelv kifejez" ereje • egységesített forma • struktúráltság 30
Szoftver-technológia I.
"rlap alapú specifikálás
• Entitás definíciója • Input/Output leírása • Kapcsolódó entitások • El"feltételek és következmények • Mellékhatások 31
Szoftver-technológia I.
"rlap alapú specifikálás (pl.) !"#$%&'()*++,)
-%"./0()1223425)
627528)
) ) !"#$%&"''(%&) 9:;.:<);:=.>?@)
*&"'&!) +,-./) A"4)B<#=&C)D:EC)F@G"?@) 1228H2IH18) 0.#1234#(5) 0.#12346&7#7%8-4) JC=KE0)L)!:=.'M")L)N'#"=0) 9!J!DNJ) 0.#12349"8',%) ! JC=KE0)&:<.;:=.%<)O%P/.%':<)<'#"=0.M
E4)*)<.MQEC)Q%?P%E%E)C)1875RR3) ST+4114U)!V)"%=W%E%'=%&()C)<'#"=0)<.MQEC)X$)<#"<.MQ#')&C;):<)Y/ZC'./&)C.)%E!.![) <'#"=0.#'')<.MQEC)<#"<.MQM"C) ! N'#"=0)<.MQEM')\E) C)?C.WC<M?/)%E<.MQ#EME=%&[)CY#==C=)C) QK=&C=C;)O%P%$%.:<%)K'M=)C)^`C;/);:=.'M".M"M<_HE=%&)M')C)P!;:=.'M"OC4)V]?)C) 'C=KE0/);:=.'M"OC=)Q/=W%=)'C=KE0/)O%P/.%':<)':'%E%<%=)=@#Q#=)&GZ%'Y%'![)CWW/?)C) P!;:=.'M"OC)QM")&/"%=W%E'<:?"%[)/EE%'Z%)&/P/.%':<[)O%P/.%':<)\<#;#"'#<]'MEG=)) G<<.%<]'Z%)&%">E=%&)O%)C.)CWC'#&4)J%YM')&/"%=W%E'<:?%=&:='[)/EE%'Z%)O%P/.%':<%=&:='[) &/P/.%':<%=&:=')&>EG=)G<<.%<]'Z%)&%">E)C)P!;:=.'M"OC)C.)G<<.%?4)) ! *.)G<<.%<]'%'')<#"#&"C)C)&G=@Z%E:<)Q/C'')ZC=)<.>&<:?4()Q/Z%E)C)O%P/.%':<%&)C=CE/'/&K<) =@/EZM='C"'M<M')C);"#?"CQ)%EZ:?./[)%E%?%=W!)C)P!&G=@ZO%=)C)&/"%=W%E'<:?%&"%) G<<.%<]'%'')<#"#&C')=']"#.=/4)) :";<";=&(%) ) >(?"'#=!) @$6-A"1('!) B"8',%) C8?.% N'#"=0)WM'KQ) a$)CWC'O%Z/'%E/)Q%.!4) +) *K'#QC'/&K'G'') &C"C&'%"%&=%&)Q%?P%E%E![)=:Z<#")<.%"/='/)%EE)CK'#QC'/&K
B(gQK=&Cgh/=A%ZgC//"gC//"i"'/#23254W#\)
32
Szoftver-technológia I.
Grafikus modellek
• Állapotváltozások, id"beli viselkedés
• Komponensek kapcsolatai • Információ vizualizálás 33
Szoftver-technológia I.
Információ vizualizálás
• Grafikus követelmény kezelés
PaladinRM
34
Interfész specifikáció
Szoftver-technológia I.
• Interfész típusok • procedurális interfészek • adat szerkezetek • adat reprezentációk • Formális leírások használata • SDL, ASN.1 35
Szoftver-technológia I.
IEEE/ANSI 830-1998
• Általános felépítés • Bevezetés • Általános leírás • Specifikus követelmények • Mellékletek • Tárgymutató 36
Szoftver-technológia I.
A követelmény meghatározási folyamat
• Függ az alkalmazási területt"l és a követelményeket meghatározó szervezett"l
• Generikus tevékenységek • követelmények kinyerése • követelmények elemzése • követelmények specifikálása • követelmények validálása • követelmény management
Szoftver-technológia I.
37
A követelmény meghatározási folyamat Követelmény specifikálás
Rendszer köv. spec.
Felh. köv. spec.
Üzleti köv. spec.
Felh. köv. meghat. Megval. tanulmány Rendszer köv. meghat.
Prototípus kész. Szemlék
Követelmény kinyerés
Követelmény validálás
38
Szoftver-technológia I.
Megvalósíthatósági tanulmány
• Megéri-e megvalósítani a rendszert? • A rendszer hozzájárul-e a szervezet céljaihoz? • Megvalósítható-e a jelenlegi •
technológiával az adott költség és id"keretben? Integrálható-e a meglév" korábbi rendszerekkel?
39
Szoftver-technológia I.
Megvalósíthatósági tanulmány (foly.)
• Megválaszolandó kérdések • M!ködhet-e a szervezet az adott rendszer nélkül? • Mi a probléma a jelenlegi • •
folyamatokkal, és hogy változnak azok az új rendszer hatására? Mik lesznek az integrálási problémák? Szükséges-e új technológiák, tudások bevezetése? 40
Követelmények meghatározása és elemzése
Szoftver-technológia I.
• Követelmény meghatározás, követelmény feltárás
• Érintettek (szerepl"k) köre • végfelhasználók • managerek • mérnökök • domén szakért"k 41
Követelményelemzés problémái • Az érintettek nem tudják mit akarnak • Az érintettek saját
Szoftver-technológia I.
• • •
terminológiájukban fejezik ki a követelményeket A különböz" szerepl"k érdekei ellentétesek Szervezeti és politikai tényez"k befolyásolják a követelményeket A követelmények változnak az elemzés alatt!
42
Szoftver-technológia I.
Tevékenységek
• Követelmény feltárás • Követelmények kategórizálása és elrendezése
• Követelmények prioritálása, egyeztetés
• Követelmények dokumentálása 43
Szoftver-technológia I.
Néz#pontok és szerepek
• Az érdekelt felek besorolhatók néz"pontjaik szerint
• A néz"pontok alkalmasak a
követelmények struktúrálására
• A követelmények elemzésének
megfelel" módja a több néz"pontú elemzés 44
Szoftver-technológia I.
Különböz# szerepek
• Interaktorok • A rendszer használatában közvetlenül érintettek
• Közvetett szerepl"k • Domén néz"pontok 45
Szoftver-technológia I.
Interjú készítés
• Rendszerrel kapcsolatos információk kinyerése • zárt interjú • el"re meghatározott kérdések • nyílt interjú • lehetséges problémák feltárása • Domén tudás kinyerésére nem megfelel" • terminológia • implicit tudás
46
Szoftver-technológia I.
Egyéb technikák
• Kérd"ívek • pontosabb • nagyszámban kiértékelhet" • A tevékenység során használt
bizonylatok, !rlapok elemzése
• Közvetlen megfigyelés • video 47
Szoftver-technológia I.
Scenáriók
• A rendszer valós használatára vonatkozó tipikus helyzetek
• A scenáriónak tartalmaznia kell • kiindulási állapot, feltételek • események normál lefolyás esetén • hibalehet"ségek • konkurens tevékenységek • végállapot 48
Szoftver-technológia I.
Scenárió részlet (pl.)
49
Use case-ek
Szoftver-technológia I.
• Objektum orientált megközelítés (UML)
• Interakciók számbavétele, egyedi leírása
• felhasználási esetek, módok • szerepl"k
• Use case diagramok
50
Use case diagram (pl.)
Szoftver-technológia I.
Toy Order System
Search Toy <uses> Search by Preference
Create Preference
Staff Customer
Check Order Status
Place Order
<uses> <extends>
Reorder
Calculate Total
51
Szoftver-technológia I.
Gyors prototipizálás
• Követelmények pontosítása és
specifikálása egy gyorsan kialakított prototípus alapján
• Prototípus változtathatósága • Felhasználó központú fejlesztés • gyors felhasználói visszacsatolás • A prototípus felhasználása • min"ségi megkötések
52
Szoftver-technológia I.
CASE támogatás
• Diagram editorok • szintaxis validálás • Dokumentum kezel" megoldások • Képerny" és jelentés tervez" alkalmazások
53
Szoftver-technológia I.
Követelmények validálása
• Meghatározott követelmények megfelelnek a megrendel" szándékainak
• érvényesség ellen"rzése • konzisztencia ellen"rzése • teljesség ellen"rzése • realitás ellen"rzése 54
Szoftver-technológia I.
Követelmények validálása (folyt.)
• Alkalmazható technikák • szemlék, átvizsgálások • követelmény metrikák • követelmény változékonyság
(változások száma, frekvenciája)
• prototípusok készítése • tesztesetek készítése 55
Szoftver-technológia I.
Követelmény management
• Változások követése / kezelése fejlesztés közben
• Teljesség és konzisztencia fenntartása
• üzleti folyamatok változása • különböz" néz"pontok változó figyelembevétele
56
Szoftver-technológia I.
Összefoglalás
• A követelmény meghatározási folyamat elemei • megvalósíthatósági tanulmány, • • • •
követelmény-meghatározás és elemzés, specifikáció, validálás és management Különböz" érdekeltek különböz" néz"pontokkal Változó követelmények kezelése Funkcionális és nem-funkcionális követelmények Felhasználói és rendszer követelmények 57