Szoftver meghatározása Requirements engineering (analysis) Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 6-7. Roger S. Pressman: Software Engineering, 5th e. chapter 11. 2
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.) 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ény- meghatározás (folyt.) 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 Implementálás helyes prog. hibás prog. prog. hibás terv alapján prog. hibás spec. alapján Tesztelés helyes prog. javítható hibák javíthatatlan hibák 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 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.) 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 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
Követelmény típusok Felhasználói szolgáltatások köre természetes nyelven Rendszer rendszer funkciók, szolgáltatások m!ködési feltételek precíz megadás 9 A célcsoportjai Felhasználói Rendszer managerek (megrendel!i oldal) végfelhasználók mérnökök (megrendel!i oldal) rendszertervez!k 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
Felhasználói (pl.) 11 Rendszer (pl.) 12
Funkcionális és nemfunkcionális Funkcionális szolgáltatások köre Nem-funkcionális m!ködési kényszerek, feltételek Domén alkalmazási terület jellemz"i 13 Funkcionális 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
A pontatlansága A nem egyértelm!en megfogalmazott et többféle képpen lehet értelmezni 15 A teljessége és konzisztenciája 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
Nem-funkcionális 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 Nem-funkcionális (folyt.) Termék Szervezési Küls" 18
Nem-funkcionális (folyt.) Nem-funkcionális Termék Szervezési Küls! Hatékonysági Megbizhatósági Portabilitási Együttm"ködési Etikai Törvényességi Teljesítmény Méret Szállítási Szabványossági Titkossági Adatbiztonsági Használhatósági Implementációs 19 Nem-funkcionális megfogalmazása Elérend" célok ellen"rizhet" ké alakítása metrikák használata, ha lehetséges Tulajdonság sebesség méret használhatóság megbízhatóság robusztusság hordozhatóság Metrika tranzakció/sec válaszid" frissítési ráta Kbyte betanulási id" help oldalak száma MTBF BER újra indulási id" platform függ" kód aránya elérhet" platformok száma 20
Nem-funkcionális megfogalmazása (folyt.) Követelmények egymásrahatása ellentmondó kompromisszumos megoldás v. a megváltoztatása 21 Domén Az alkalmazási terület által támasztott Megértés terminológia, koncepciók Implicitás nyilvánvaló új funkcionális követelemények 22
Domén (pl.) 23 Felhasználói felhasználók számára érthet", sw. technológiai háttér nélkül természetes nyelven, intuitív diagrammokkal 24
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, célok, tervezési információk 25 Felhasználói rögzítése Standard formátum az összes követelményhez Konzisztens nyelvhasználat kötelez" és kívánatos Kulcsrészek tipográfiai kiemelése Komputer zsargon kerülése 26
Rendszer 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 Követelmények és a tervezés A tervezési folyamat nem választható el a 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 rögzítése 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 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
"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 "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<C)! *)O%P/.%':<"!E)&:<.;:=.%<)<'#"=0)<.MQEC)&:<.>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')\<C&)C&&#")E%Y%')&:<.]'%=/[)YC)C.)%"%W%'/E%?)&/CW#'')<.MQEC)Z/<<.C&%">E) C)?C.WC<M?/)%E<.MQ#EM<OC[)'%YM')C)<'#"=0)<.MQEC)^Q%EE:&E%'%_)C.)%"%W%'/E%?)&/CW#'') <.MQEC)! *.)ME'CEM=#<);C"CQ:'%"%&O%=)E%Y%')O%MEE]'C=/)C)<.MQEC);:EWM=@<.MQM'4)))! *)<'#"=0.#'')<.MQEM&[)&/P/.%':<%&)C.)K=4)^JC=KE0/);:=.'M"_HOC)&%">E=%&[)CY#==C=)C) QK=&C=C;)O%P%$%.:<%)K'M=)C)^`C;/);:=.'M".M"M<_H<CE)&%">E=%&)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/.%':<)\<#;#"'#<]'M<OC=)&>EG=)) 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<C=)P%E'GE'!W/&)C)?:;)"%=W<.%"WM'KQMZCE4) b.%=)c)wm'kq#=)=%q)e%y%')zme'#.'c'=/4)*)wm'kq)ym"#q) <.%Q;#=')<.%"/=')&%EE)%EE%=!"/.=/()! *)WM'KQ)\<C&)C)<.MQ]'0?:;)"%=W<.%"WM'KQC) E%Y%')! *)WM'KQ)=%Q)E%Y%')&#"MOO/[)Q/=')C)'C=KE0/) ;:=.'M")K'#E<0)O%P/.%':<%)! *)WM'KQ)=%Q)E%Y%')&#"MOO/[)Q/=')C)P!;:=.'M") K'#E<0)O%P/.%':<%) JC=KE0)=%Z%) c9d)e)&%"%<:<[)c)<'#"=0.m<')/?:=@e!)'c=ke0)&%"%<:<%4))*) 9) &%"%<!)?E#OME/<)&%"%<:<')YC$')Z:?"%()C)O%>'G'') &C"C&'%"%&=%&)Q%?P%E%E![)=:Z<#")<.%"/='/)%E<!)=%Z%&%') C$M=E$C)P%E)C);"#?"CQ)&/ZMEC<.'M<"C4)*)&/ZMEC<.'M<') b`jb,h"%e)e%y%')%ep#?cw'c'=/4)*);#='#<)c.#=#<]'m<) :"W%&:O%=)C)'C=KE0)&%"%<:<%&#")C)&:;%"=@!=)'GOO[)C) 'C=KE0')C.#=#<]'0)CWC')$%E%=/&)Q%?4)) N.MQEC)<#"<.MQ) *)CW#'')'C=KE0)&/ZMEC<.'M<C)K'M=)'C=KE0Y#.)"%=W%E') 'MOEM.C'OC=)Q%?$%E%==%&)C=CE/'/&K<C=)C)&/CW#'') <.MQEM&)SEW4)9!J!DN,f)PK=&\/0U[)*)<.MQEC) <#"<.MQC)O%Z/'%E/)Q%.!"%)C.)/W!"%=WO%=)K'#E<0)<.MQEC) <#"<.MQC)&%">E)CK'#QC'/&K<C=4)b.)O/.#=@EC'Y%E@%<%=() +) 32 B(gQK=&Cgh/=A%ZgC//"gC//"i"'/#23254W#\)
Grafikus modellek Állapotváltozások, id"beli viselkedés Komponensek kapcsolatai Információ vizualizálás 33 Információ vizualizálás Grafikus követelmény kezelés PaladinRM 34
Interfész specifikáció 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 IEEE/ANSI 830-1998 Általános felépítés Bevezetés Általános leírás Specifikus Mellékletek Tárgymutató 36
A követelmény meghatározási folyamat Függ az alkalmazási területt"l és a et meghatározó szervezett"l Generikus tevékenységek kinyerése elemzése specifikálása validálása követelmény management 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. Követelmény kinyerés Felh. köv. meghat. Megval. tanulmány Rendszer köv. meghat. Prototípus kész. Szemlék Követelmény validálás 38
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 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 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 terminológiájukban fejezik ki a et A különböz" szerepl"k érdekei ellentétesek Szervezeti és politikai tényez"k befolyásolják a et A változnak az elemzés alatt! 42
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 Néz#pontok és szerepek Az érdekelt felek besorolhatók néz"pontjaik szerint A néz"pontok alkalmasak a struktúrálására A elemzésének megfelel" módja a több néz"pontú elemzés 44
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 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
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 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
Scenárió részlet (pl.) 49 Use case-ek 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.) Toy Order System Search Toy <uses> Create Preference Search by Preference Staff Customer Check Order Status Place Order <extends> <uses> Reorder Calculate Total 51 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
CASE támogatás Diagram editorok szintaxis validálás Dokumentum kezel" megoldások Képerny" és jelentés tervez" alkalmazások 53 Követelmények validálása Meghatározott 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
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 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
Ö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ó kezelése Funkcionális és nem-funkcionális Felhasználói és rendszer 57