24.03.2015 Views

Reikalavimai programinei įrangai

Reikalavimai programinei įrangai

Reikalavimai programinei įrangai

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Programų sistemų inžinerija<br />

<strong>Reikalavimai</strong> <strong>programinei</strong> įrangai<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 1<br />

Tikslai<br />

• Supažindinti su vartotojo ir sistemos reikalavimų<br />

sąvoka<br />

• Aprašyti funkcinius ir nefunkcinius reikalavimus<br />

• Išsiaiškinti, kaip programinės įrangos<br />

reikalavimai gali būti aprašomi reikalavimų<br />

specifikacijos dokumentuose<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 2


Nagrinėjamos temos<br />

• Funkciniai ir nefunkciniai reikalavimai<br />

• Vartotojo reikalavimai<br />

• Sistemos reikalavimai<br />

• Sąsajos specifikavimas<br />

• PĮ reikalavimų specifikacija<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 3<br />

Reikalavimų inžinerija<br />

• Tai procesas, kurio metu nustatoma, kokias<br />

paslaugas turės atlikti kuriama programinė<br />

įranga bei su kokiais apribojimais sistemai<br />

susidursime kūrimo metu<br />

• Patys reikalavimai - tai sistemos paslaugų ir<br />

apribojimų aprašymai, kurie sugeneruojami<br />

reikalavimų inžinerijos proceso metu<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 4


Kas yra reikalavimas?<br />

• Tai gali būti nuo labai abstrakčių teiginių iki<br />

detalizuotų matematinių funkcijų.<br />

• Tai neišvengiama, nes reikalavimai gali atlikti<br />

dvigubą funkciją<br />

– gali būti kaip pagrindas pasiūlymui ( konkursui) –<br />

todėl turi būti atviras interpretacijai<br />

– gali būti pagrindas ir pačiai užsakymo sutarčiai –<br />

taigi tai turi būti aprašyta gana smulkiai<br />

– abu tokie teiginiai gali būti pavadinti reikalavimais<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 5<br />

• Vartotojo reikalavimai<br />

Reikalavimų tipai<br />

– Paprasta (ne technine) kalba surašyti vartotojo<br />

pageidavimai būsimai sistemai, gali būti pridedamos<br />

laisvos formos diagramos, parašyta taip, kad<br />

suprastų bet kuris sistemos vartotojas<br />

• Sistemos reikalavimai<br />

– Struktūrizuotas dokumentas, išdėstantis detalius<br />

sistemos funkcijų, paslaugų ir operacijų aprašymus.<br />

Nusako, kas turi būti padaryta ir gali būti naudojamas<br />

kaip kontrakto dalis<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 6


Apibrėžimai ir specifikacijos<br />

Vartotojo reikalavimų apibrėžimas<br />

Programinė įranga turi leisti atvaizduoti ir apdoroti išorinius failus,<br />

sukurtus 1. kitomis programomis<br />

Sistemos reikalavimų specifikacija<br />

1.1<br />

1.1 Vartotojai turi turėti galimybę apibrėžti išorinių failų tipą.<br />

1.2 Kiekvienas išorinis failo tipas turi turėti susijusias priemones, kurias<br />

galima būtų panaudotos failui apdoroti.<br />

1.3 1.2 Kiekvienas išorinių failų tipas gali būti pristatytas kaip specifinė<br />

ikona.<br />

1.4 1.2Vartotojas turi turėti galimybę apibrėžti ikonų atvaizdavimą<br />

kiekvienam išorinio failo tipui<br />

1.2<br />

1.2<br />

1.2<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 7<br />

Reikalavimų skaitytojai<br />

Vartotojo<br />

reikalavimai<br />

Kliento vadybininkai<br />

Sistemos galutiniai vartotojai<br />

Kliento inžinieriai<br />

Kūrėjų vadybininkai<br />

Sistemos architektai<br />

Sistemos<br />

reikalavimai<br />

Galutiniai sistemos vartotojai<br />

Kliento inžinieriai<br />

Sistemos architektai<br />

Programinės įrangos tobulintojai(vystytojai)<br />

Programinės įrangos<br />

projektavimo<br />

specifikacijos<br />

Galimi kliento inžinieriai<br />

Sistemos architektai<br />

Programinės įrangos tobulintojai(vystytojai)<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 8


Funkciniai ir nefunkciniai reikalavimai<br />

• Funkciniai reikalavimai<br />

– Sistemos atleikamų paslaugų aprašymas, sistemos reakcijos į<br />

tam tikrus įvedimo ar išvedimo duomenis aprašymas, sistemos<br />

elgesys tam tikroje situacijoje...<br />

• Nefunkciniai reikalavimai<br />

– Apribojimai sistemos atliekamoms paslaugoms ar funkcijoms,<br />

dažniausiai laiko apribojimai, programavimo proceso<br />

apribojimai, standartai ir pan.<br />

• Srities reikalavimai<br />

– <strong>Reikalavimai</strong>, ateinantys iš konkrečios nagrinėjamos srities ir<br />

atspindintys tik tai sričiai būdingas problemas ar<br />

charakteristikas<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 9<br />

Funkciniai reikalavimai<br />

• Nusako sistemos funkcionalumą ar sistemos<br />

paslaugas<br />

• Priklauso nuo kuriamos PĮ tipo, būsimų vartotojų<br />

ar srities, kur sistema bus naudojama<br />

• Funkciniai vartotojo reikalavimai gali būti aukšto<br />

lygio teiginiai, apie tai, ką sistema turi daryti, bet<br />

funkciniai sistemos reikalavimai turi detaliai<br />

aprašyti sistemos paslaugas.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 10


Bibliotekos sistema LIBSYS<br />

• Sistema, kuria naudojantis galima prieiti prie tam<br />

tikro skaičiaus straipsnius talpinančių duomenų<br />

bazių kitose bibliotekose<br />

• Vartotojai gali atlikti straipsnių paiešką, išsaugoti<br />

rastus straipsnius bei spausdinti juos<br />

asmeniniam naudojimui<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 11<br />

Funkcinių reikalavimų pavyzdžiai<br />

• Vartotojas privalo turėti galimybę paiešką atlikti<br />

tiek visoje duomenų bazėje, tiek pasirinktame jos<br />

poaibyje<br />

• Sistema turi aprūpinti vartotojus tinkamomis<br />

straipsnių peržiūros priemonėmis (viewers), kad<br />

jie galėtų skaityti dokumentus tiesiai iš straipsnių<br />

saugyklos/duomenų bazės<br />

• Kiekvienam užsakymui turi būti priskirtas<br />

unikalus užsakymo numeris (ORDER_ID), kurį<br />

vartotojas galėtų išsaugoti savo užsakymų<br />

istorijoje<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 12


Reikalavimų netikslumai<br />

• Jei reikalavimai suformuluoti netiksliai,<br />

neišvengiamai turėsime problemų<br />

• Netiksliai apibrėžtus reikalavimus programuotojai<br />

ir vartotojai supras skirtingai<br />

• Pvz, ką reiškia “atitinkama straipsnių peržiūros<br />

priemonė”<br />

– Vartotojo pozicija – kiekvienam dokumento tipui<br />

pritaikyta atitnkama peržiūros programa (.pdf, .doc)<br />

– Programuotojo pozicija – tekstinis peržiūros režimas(<br />

nes taip greičiau ir lengviau)<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 13<br />

Reikalavimų pilnumas ir<br />

suderinamumas<br />

• <strong>Reikalavimai</strong> turi būti ir pilni, ir suderinti.<br />

• Pilni<br />

– Jie turi pilnai aprašyti visas reikalingas sistemos<br />

funkcijas<br />

• Suderinti<br />

– Neturėtų būti vienas kitam prieštaraujančių sistemos<br />

reikalavimų reikalavimų<br />

• Praktikoje yra sunku pateikti ir pilną, ir suderintą<br />

reikalavimų dokumentą.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 14


Nefunkciniai reikalavimai<br />

• Šie reikalavimai apibrėžia sistemos savybes<br />

(pvz. patikimumą, atsakymo į užklausą laiką,<br />

reikalavimus atminčiai) ir apribojimus (pvz.<br />

įvedimo/ išvedimo įrenginio galimybes)<br />

• Proceso reikalavimai gali būti specifikuoti<br />

reikalaujant naudoti specialią CASE sistemą,<br />

programavimo kalbą ar projektavimo metodą.<br />

• Nefunkciniai reikalavimai gali būti svarbesni už<br />

funkcinius reikalavimus. Jei jie nėra tenkinami,<br />

sistema gali būti bevertė<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 15<br />

Nefunkcinių reikalavimų klasifikacija<br />

• Produkto reikalavimai<br />

– <strong>Reikalavimai</strong>, kurie apibrėžia, kad pateiktas<br />

produktas privalo elgtis specifiniu būdu, pvz.<br />

vykdymo greitis ir patikimumas ir pan.<br />

• Organizaciniai reikalavimai<br />

– <strong>Reikalavimai</strong>, kurie yra organizacinės politikos ir<br />

procedūrų padariniai, pvz. panaudoti procesų<br />

standartai, įdiegimo reikalavimai ir pan.<br />

• Išoriniai reikalavimai<br />

– <strong>Reikalavimai</strong>, atsirandantys iš išorinių sistemos<br />

faktorių, pvz sistemos suderinamumo reikalavimai,<br />

teisiniai reikalavimai ir pan.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 16


Nefunkcinių reikalavimų tipai<br />

Nefunkciniai<br />

reikalavimai<br />

Produkto<br />

reikalavimai<br />

Organizaciniai<br />

reikalavimai<br />

Išoriniai<br />

reikalavimai<br />

Efektyvumo<br />

reikalavimai<br />

Patikimumo<br />

reikalavimai<br />

Pernešamumo<br />

reikalavimai<br />

Darbingumo<br />

reikalavimai<br />

Etiniai<br />

reikalavimai<br />

Panaudojamumo<br />

reikalavimai<br />

Pristymo<br />

reikalavimai<br />

Kūrimo<br />

reikalavimai<br />

Standartai<br />

Teisiniai<br />

reikalavimai<br />

<strong>Reikalavimai</strong><br />

veikimo greičiui<br />

Apimties<br />

reikalavimai<br />

Privatumo<br />

reikalavimai<br />

Saugumo<br />

reikalavimai<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 17<br />

Nefunkcinių reikalavimų pavyzdžiai<br />

• Produkto reikalavimai<br />

– 4.C.8 visus būtinus ryšius tarp APSE ir vartotojo bus įmanoma<br />

išreikšti standartiniu Ada simbolių rinkiniu.<br />

• Organizaciniai reikalavimai<br />

– 9.3.2 Sistemos kūrimo procesas bei rezultate gauti dokumentai turi<br />

tenkinti standarto XYZCo-SP-STAN-95 reikalavimus.<br />

• Išoriniai reikalavimai<br />

– 7.6.5 Sistema neturi atskleisti sistemos operatoriams jokios<br />

asmeninės informacijos apie vartotojus, išskyrus jų vardą ir<br />

kreipimosi numerį.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 18


Tikslai ir reikalavimai<br />

• Nefunkcinius reikalavimus sunku tiksliai suformuluoti, o<br />

netiksliai suformuluotus reikalavimus sunku patikrinti<br />

• Tikslas<br />

– Bendras vartotojo pageidavimas, pvz. lengvai įsisavinama<br />

programa<br />

• Nefunkcinio reikalavimo tikrinimas<br />

– Būtina suformuluoti aiškų matavimą, leisiantį patikrinti, ar<br />

reikalavimas įvykdytas<br />

• Tokie tikslai yra labai naudingi sistemos kūrėjams, nes<br />

galima suprasti, ko iš sistemos tikisi galutiniai vartotojai<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 19<br />

• Sistemos tikslas<br />

Pavyzdžiai<br />

– Sistema turi būti lengvai įsisavinama patyrusių<br />

vartotojų ir turi būti suprojektuota taip, kad dirbdami<br />

vartotojai padarytų kaip galima mažiau klaidų<br />

• Nefunkcinio reikalavimo patikrinimas<br />

– Patyrę vartotojai privalo gebėti naudotis visomis<br />

sistemos funkcijomis po max. dviejų valandų<br />

mokymų. Išklausius mokymus, vidutinis tokių<br />

vartotojų leistinas klaidų sakičius per dieną neturi<br />

viršyti dviejų klaidų<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 20


Reikalavimų matavimai<br />

Greitis<br />

Dydis<br />

Naudojimo lengvumas<br />

Patikimumas<br />

Operacijos atlikimo greitis sekundėmis, ekrano<br />

persipiešimo greitis, per kiek laiko sureaguojama į<br />

vartotojo veiksmą<br />

Baitai<br />

RAM mikroshemų skaičius<br />

Mokymų laikas<br />

Kiek laiko dirba nenulūždama, lūžimų dažnis,<br />

išsaugotų po lūžimo duomenų kiekis ar atsatymo<br />

greitis<br />

Patvarumas<br />

Pernešamumas<br />

Per kiek laiko persikrauna po lūžimo, kiek procentų<br />

veiksmų iššaukia lūžimą, tikimybė prarasti duomenis<br />

Koks kiekis programos kodo tinka pakartotiniam<br />

naudojimui, keliose sistemose galima panaudoti kodą<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 21<br />

Reikalavimų sąveika<br />

• Konfliktai tarp skirtingų nefunkcinių reikalavimų<br />

sudėtingose sistemose pasitaiko dažnai<br />

• Lėktuvo valdymo programa<br />

– Siekiant sumažinti svorį, atskirų mikroschemų<br />

skaičius sistemoje turi būti minimalus.<br />

– Siekiant sumažinti energijos vartojimą, turi būti<br />

panaudotos mažesnės galios mikroschemos.<br />

– Tačiau naudojant mažesnio galingumo<br />

mikroschemas, jų gali prireikti daugiau... Kuris<br />

reikalavimas yra svarbesnis?<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 22


Srities reikalavimai<br />

• Gauti iš sistemos taikymo srities bei nusako tą<br />

konkrečią sritį atspindinčias charakteristikas.<br />

• Tai gali būti nauji funkciniai reikalavimai,<br />

egzistuojančių reikalavimų apribojimai arba<br />

apibrėžti specifiniai skaičiavimai.<br />

• Jei srities reikalavimai netenkinami, sistema<br />

nedirbs.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 23<br />

Bibliotekos sistemos srities reikalavimai<br />

• Visos duomenų bazės turi būti prieinamos<br />

naudojantis standartine vartotojo sąsaja,<br />

aprašyta Z39.50 standarte.<br />

• Dėl autorinių teisių apribojimų kai kurie<br />

dokumentai turi būti sunaikinami iš karto po jų<br />

peržiūros. Priklausomai nuo vartotojo teisių, šitie<br />

dokumentai arba bus spausdinami bibliotekoje ir<br />

po to atiduodami vartotojui, arba nukreipiami į<br />

vartotojo nurodytą tinklo spausdintuvą.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 24


Srities reikalavimų problemos<br />

• Suprantamumas (Understandability)<br />

– <strong>Reikalavimai</strong> yra išreikšti srities taikymo kalba.<br />

– Tokių reikalavimų nesupranta programinę įrangą<br />

kuriantys projektuotojai<br />

• Neabejotinumas (Implicitness)<br />

– Srities specialistai situacijoje gaudosi taip gerai, kad<br />

jie nė negalvoja apie tikslių srities reikalavimų<br />

sudarymą.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 25<br />

Vartotojo reikalavimai<br />

• Turi aprašyti funkcinius ir nefunkcinius<br />

reikalavimus taip, kad juos suprastų detalių<br />

techninių žinių neturintys sistemos vartotojai.<br />

• Vartotojo reikalavimai yra apibrėžiami naudojant<br />

natūralią kalbą, lenteles ir diagramas.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 26


Natūralios kalbos naudojimo problemos<br />

• Aiškumo trūkumas<br />

– Jei norime, kad būtų lengva skaityti, tai nebus<br />

aiškumo, jei norime aiškumo, tada teks pridėti<br />

papildomų detalių ir skaityti lengva jau nebus...<br />

• Reikalavimų painiava<br />

– Aiškiai neatskiriami funkciniai ir nefunkciniai<br />

reikalavimai<br />

• Reikalavimų apjungimas<br />

– Keli skirtingi reikalavimai gali būti pateikti kaip vienas<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 27<br />

LIBSYS vartotojo reikalavimas<br />

4..5 LIBSYS turi pateikti visų vartotjo atliktų mokėjimo<br />

operacijų sąrašą. Sistemos administratoriai gali suderinti<br />

sistemą taip, kad vartotojas gautų nuolaidas teikiamoms<br />

paslaugoms.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 28


LIBSYS vartotojo reikalavimo problema<br />

• Reikalavimas apima tiek koncepcinę, tiek detalią<br />

informaciją:<br />

– Aprašo dalį finansų apskaitos sistemos, kuri bus prijungta prie<br />

LIBSYS;<br />

– Tuo pačiu pateikia tokios sistemos detales – bus galima gauti<br />

nuolaidas<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 29<br />

Patarimai reikalavimų rašymui<br />

• Susirasti šabloną ir jį naudoti visų reikalavimų<br />

užrašymui (Volere).<br />

• Naudoti kalbą tinkamu būdu, pvz. žodis “turi”<br />

privalomiems reikalavimams, “ turėtų”<br />

pageidaujamiems reikalavimams.<br />

• Naudoti teksto paryškinimą reikalavimų esminių<br />

dalių identifikavimui.<br />

• Vengti kompiuterinio žargono.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 30


Sistemos reikalavimai<br />

• Tai daug detalesnis sistemos funkcioanlumo bei<br />

apribojimų aprašymas, negu vartotojų<br />

reikalavimai<br />

• Tarnauja kaip pagrindas kuriant sistemą.<br />

• Gali būti įtraukiami į sistemos kontraktą.<br />

• Sistemos reikalavimai gali būti išreiškiami ar<br />

papildomi sistemos modeliais<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 31<br />

<strong>Reikalavimai</strong> ir projektavimas<br />

• <strong>Reikalavimai</strong> turi nurodyti, ką sistema turi daryti, o<br />

projektavimo dokumentas nusakyti, kaip tai turi būti<br />

daroma.<br />

• Praktikoje reikalavimai ir projektavimas yra neatskiriami:<br />

– Sistemos architektūra gali būti suprojektuota tam, kad<br />

patikslintų reikalavimus.<br />

– Sistema gali dirbti su kitomis sistemomis, kurios generuoja<br />

projekto reikalavimus.<br />

– Specialaus dizaino parinkimas gali būti srities reikalavimas.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 32


Problemos dėl specifikacijų, parašytų<br />

natūralia kalba<br />

• Dviprasmiškumas<br />

– Reikalavimų skaitytojai ir autoriai tą patį žodį turi<br />

interpretuoti taip pat. Natūrali kalba yra<br />

nevienareikšmė, todėl tą pasiekti yra labai sunku.<br />

• Per didelis lankstumas<br />

– Tas pats dalykas specifikacijoje gali būti pasakytas<br />

keliais skirtingais būdais.<br />

• Struktūrizavimo trūkumas<br />

– Natūrali kalba netinka sistemos reikalavimų<br />

struktūrizavimui.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 33<br />

Struktūrizuotos kalbos specifikacijos<br />

• Reikalavimų analitiko “žodžio laisvė” yra iš<br />

anksto apribota tam tikru šablonu<br />

• Visi reikalavimai užrašomi tuo pačiu stiliumi<br />

• Naudojami tie patys terminai (terminų žodynas)<br />

• Tai panaikina kai kurias problemas, atsiradusias<br />

dėl nevienareikšmiškumo, ir suteikia<br />

specifikacijai vienodą stilių<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 34


Formomis paremtos specifikacijos<br />

• Funkcijos ar objekto apibrėžimas<br />

• Įvedimo duomenų aprašymas, iš kur jie ateina<br />

• Rezultatų aprašymas ir kur jie nueina<br />

• Kitų reikalingų objektų atpažinimas<br />

• Pradinės ir galutinės sąlygos (jei reikia)<br />

• Pašaliniai efektai (jei yra)<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 35<br />

Formomis paremtos specifikacijos pvz.<br />

Insulin Pump/Control Software/SRS/3.3.2<br />

Function Compute insulin dose: Safe sugar level<br />

Description Computes the dose of insulin to be delivered when the current measured sugar level is in<br />

the safe zone between 3 and 7 units.<br />

Inputs Current sugar reading (r2), the previous two readings (r0 and r1)<br />

Source Current sugar reading from sensor. Other readings from memory.<br />

Outputs CompDose Š the dose in insulin to be delivered<br />

Destination<br />

Main control loop<br />

Action: CompDose is zero if the sugar level is stable or falling or if the level is increasing but the rate of<br />

increase is decreasing. If the level is increasing and the rate of increase is increasing, then CompDose is<br />

computed by dividing the difference between the current sugar level and the previous level by 4 and<br />

rounding the result. If the result, is rounded to zero then CompDose is set to the minimum dose that can<br />

be delivered.<br />

Requires<br />

Pre-condition<br />

Post-condition<br />

Side-effects None<br />

Two previous readings so that the rate of change of sugar level can be computed.<br />

The insulin reservoir contains at least the maximum allowed single dose of insulin..<br />

r0 is replaced by r1 then r1 is replaced by r2<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 36


Lentelės formos specifikacija<br />

• Papildo natūralią kalbą<br />

• Naudinga tada, kai yra daug alternatyvių variantų<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 37<br />

Lentelės formos specifikacija<br />

Condition<br />

Action<br />

Sugar level falling (r2 < r1) CompDose = 0<br />

Sugar level stable (r2 = r1) CompDose = 0<br />

Sugar level increasing and rate of<br />

increase decreasing ((r2-r1)


Grafinis modelis<br />

• Naudingas tada, kai reikia parodyti būsenos<br />

pasikeitimus ar veiksmų sekas<br />

• Bus daugiau ☺<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 39<br />

Sekos diagramos<br />

• Parodo įvykių sekas, kurios atsiras vartotojui<br />

dirbant su sistema<br />

• Skaitomos iš viršaus į apačią tam, kad nustatyti,<br />

kokia tvarka turi būti atliekami veiksmai.<br />

• Pinigų išėmimas iš bankomato:<br />

– Kortelės identifikavimas;<br />

– Užklausos pateikimas;<br />

– Operacijos užbaigimas.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 40


Sekos diagrama pinigų išėmimui iš<br />

automato<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 41<br />

Sąsajos specifikacija<br />

• Dauguma sistemų sąveikauja su kitomis<br />

sistemomis, todėl sąsaja turi būti specifikuojama<br />

kaip reikalavimų dalis.<br />

• Yra trys sąsajų tipai<br />

– Procedūrinė sąsaja;<br />

– Duomenų struktūros, kuriomis keičiasi programos;<br />

– Duomenų vaizdavimas.<br />

• Formalios specifikacijos labiausiai tinka sąsajos<br />

specifikavimui.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 42


Procedūrinės sąsajos pavyzdys<br />

interface PrintServer {<br />

// defines an abstract printer server<br />

// requires: interface Printer, interface PrintDoc<br />

// provides: initialize, print, displayPrintQueue, cancelPrintJob, switchPrinter<br />

void initialize ( Printer p ) ;<br />

void print ( Printer p, PrintDoc d ) ;<br />

void displayPrintQueue ( Printer p ) ;<br />

void cancelPrintJob (Printer p, PrintDoc d) ;<br />

void switchPrinter (Printer p1, Printer p2, PrintDoc d) ;<br />

} //PrintServer<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 43<br />

Reikalavimų specifikacijos dokumentas<br />

• Reikalavimų specifikacija yra oficialus<br />

dokumentas, ko reikalaujama iš sistemos kūrėjų.<br />

• Į ją turi būti įtraukiami ir vartotojo reikalavimai, ir<br />

sistemos specifikacija<br />

• Tai ne projektavimo dokumentas. Jis akcentuoja<br />

KĄ sistema turi padaryti, o ne KAIP ji turi<br />

padaryti.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 44


Reikalavimų specifikacijos dokumento<br />

naudotojai<br />

Sistemos<br />

klientai<br />

Nustato reikalavimus ir skaito juos tam, kad<br />

patikrintų, ar jie atitinka jų poreikius. Jie<br />

nustato reikalavimų pakeitimus.<br />

Vadybininkai<br />

Naudoja reikalavimų dokumentą tam, kad<br />

suplanuotų sistemos kainą ir suplanuotų<br />

sistemos kūrimo procesą.<br />

Sistemos<br />

projektuotojai<br />

Naudoja reikalavimus tam, kad suprastų ,<br />

kaip projektuoti sistemą.<br />

Sistemos testo<br />

projektuotojai<br />

Naudoja reikalavimus tam, kad sukurtų<br />

sistemai atestavimo testą.<br />

Sistemų<br />

palaikymo<br />

inžinieriai<br />

Naudoja reikalavimus, kad padėtų suprasti<br />

sistemą ir santykius tarp jos dalių.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 45<br />

Reikalavimų specifikacijos dokumentas<br />

• Turi nustatyti išorinį sistemos elgesį.<br />

• Turi nustatyti realizavimo apribojimus.<br />

• Turi būti lengvai keičiamas.<br />

• Turi būti atskaitos taškas programinės įrangos<br />

palaikymui.<br />

• Vertinti sistemos gyvavimo ciklą, tai yra nuspėti<br />

pakeitimus.<br />

• Charakterizuoti atsakymus į netikėtus įvykius<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 46


IEEE reikalavimų standartas<br />

• Nusako bendrą reikalavimų specifikacijos<br />

struktūrą:<br />

– Įvadas.<br />

– Bendras aprašymas.<br />

– Specifiniai reikalavimai.<br />

– Priedai.<br />

– Indeksų lentelės.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 47<br />

Reikalavimų specifikacijos dokumento<br />

struktūra<br />

• Priešistorė<br />

• Įvadas<br />

• Santrauka<br />

• Vartotojo reikalavimų apibrėžimas<br />

• Sistemos architektūra<br />

• Sistemos reikalavimų specifikacija<br />

• Sistemos modeliai<br />

• Sistemos palaikymas<br />

• Priedai<br />

• Indeksų lentelės<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 48


Esminiai aspektai<br />

• <strong>Reikalavimai</strong> išdėsto, ką sistema turi daryti, ir<br />

apibrėžia jos vykdymo ir realizavimo apribojimus.<br />

• Funkciniai reikalavimai išdėsto paslaugas, kurias<br />

turi užtikrinti sistema.<br />

• Nefunkciniai reikalavimai apriboja kuriamą<br />

sistemą arba kūrimo procesą.<br />

• Vartotojo reikalavimai yra aukšto abstrakcijos<br />

lygio sakiniai, ką sistema turi daryti.<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 49<br />

Esminiai aspektai<br />

• Vartotojo reikalavimai turi būti parašyti natūralia<br />

kalba, lentelėmis ir diagramomis.<br />

• Sistemos reikalavimai skirti funkcijoms, kurias<br />

sistema turi vykdyti.<br />

• Yra specialūs šablonai ir standartai<br />

Pagal ©Ian Sommerville 2006 Software Engineering, 8th edition. Skaidrė 50

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!