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 (funkciók) és m"ködési feltételek (jellemz!k) 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 megfelel! követelménymeghatá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 4
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] 5 Követelménymeghatározás (folyt.) A követelmény-meghatározás során végzett tevékenységek probléma-azonosítás értékelés, szintézis modellezés specifikálás 6
Néz!pontok System Function (focus) System Function (background) Observer Observer Collaborating objects (background) Funkció megfigyelése Collaborating objects Funkció azonosítása System User SE-HCI néz!pont Observer 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 Felhasználói 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
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 15 Nem-funkcionális (folyt.) Termék Szervezési Küls! 16
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 17 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 18
Nem-funkcionális megfogalmazása (folyt.) Követelmények egymásrahatása ellentmondó kompromisszumos megoldás v. a megváltoztatása 19 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 20
Domén (pl.) 21 A pontatlansága A nem egyértelm"en megfogalmazott et többféle képpen lehet értelmezni 22
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 23 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 24
Természetes-nyelvi problémák (folyt.) Kognitív mentális terek (modellek) leképezése nyelvi formába alul specifikáltság, nem teljesség formális, propozícionális stílus kellene fejl!d! pontosítás, domén tudás 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
Felhasználói rögzítése 27 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 28
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 29 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 30
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 31 "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 32
"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@%<%=() +) 33 B(gQK=&Cgh/=A%ZgC//"gC//"i"'/#23254W#\) 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 34
IEEE/ANSI 830-1998 Általános felépítés Bevezetés Általános leírás Specifikus Mellékletek Tárgymutató 35 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 36
A követelmény meghatározási folyamat Felhasználó Felhasználói Felhasználói visszacsatolás Valid. Kinyerés Specifikálás eredm. Validálás Tudás Köv. modellek Domén Domén Domén tudás 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 hogyan 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
Megvalósíthatósági tanulmány 41 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 42
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! 43 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 44
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 45 Különböz! szerepek Interaktorok A rendszer használatában közvetlenül érintettek Közvetett szerepl!k Domén néz!pontok 46
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 47 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 48
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 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-casek kialakítása Absztrahálás Tervezési megkötések meghatározása Terv formalizálása Felhasználói történetek Koncepcionális scenáriók Konkrét scenáriók Use-casek Tevékenységek megértése Ötletek gyártása, megfogalmazása Prototípus készítés, ellen!rzés Dokumentálás, implementálás 51 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 52
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 53 Prototípus 54
CASE támogatás Diagram editorok szintaxis validálás Dokumentum kezel! megoldások Képerny! és jelentés tervez! alkalmazások 55 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 56
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 57 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 58
Követelmény-követés Néhány megválaszolandó kérdés Hol van egy adott követelmény megvalósítva? Miért az adott módon van megvalósítva, milyen más alternatívák voltak még? Milyen elfogadási teszt tartozik a követelményhez? Milyen hatással jár egy adott követelmény megváltoztatása? 59 Követelmény-követés Megközelítés módok Jellemz! alapú megközelítés A fejlesztési döntések kiinduló pontjai a rendszer speciális jellemz!i Érv alapú megközelítés A fejlesztési döntések okai érdekesek Változtatások okai és hatásuk 60
Követelmény-követés Alkalmazható technológiák Keresztreferenciák, hivatkozások Dokumentum sablonok, transzformációs megoldások Restruktúrálási lehet!ségek: gráf, hálózat, mátix reprezentációk 61 Ö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 62