Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva...

47
Inženjerstvo zahtjeva dr.sc. Tihana Galinac

Transcript of Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva...

Page 1: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Inženjerstvo zahtjeva

dr.sc. Tihana Galinac

Page 2: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Ciljevi

Razumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva, dokumentacija zahtjeva i validacijaRazumijevanje važnosti socijalnih i spoznajnih karakteristika u inženjerstvu zahtjevaRazlikovanje različitih tehnika pronalaženja i analize zahtjeva Svjesnost sadržaja specifikacije zahtjevaZnati tehnike i notacije specifikacije zahtjevaSvjesnost različitih perspektiva i aspekta modeliranja zahtjeva

Page 3: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Sadržaj

Uvod u inženjerstvo zahtjevaProcesi inženjerstva zahtjevaPronalaženje i analiza zahtjevaDokumentiranje zahtjevaTehnike dokumentacije zahtjevaProvjera zahtjeva

Page 4: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Sadržaj

Uvod u inženjerstvo zahtjevaProcesi inženjerstva zahtjevaPronalaženje i analiza zahtjevaDokumentiranje zahtjevaTehnike dokumentacije zahtjevaProvjera zahtjeva

Page 5: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

The hardest single part of building a system is deciding what to build

F. P. Brooks: No Silver bullet: Essence and Accidents of Software Engineering, IEEE Computer, 2004.

Page 6: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Uvod u inženjerstvo zahtjeva

Prva faza u tehničkim procesima žcppOdgovara na pitanje ‘što ćemo razvijati’To je proces izrade dokumenta specifikacije zahtjeva za proizvod kojeg ćemo razvijati

Problem

Specifikacija zahtjeva

Inženjerstvo zahtjeva

Page 7: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Inženjerstvo zahtjeva

Zahtjev je stanje ili sposobnost koje je potrebno da programski sustav posjeduje kako bi pomogao njegovom korisniku u rješavanju problema i/ili dostizanju ciljeva.

Definicija prema IEEE standardnom riječniku pojmova

U inženjerstvu zahtjeva različiti korisnici mogu predlagati zahtjeve, iako se najčešće za funkcionalne zahtjeve konzultira krajnji korisnik

Page 8: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Inženjerstvo zahtjeva (nastavak)

Iterativan i kooperativan proces analize, dokumentiranja rezultata analize te kontinuirane provjere ispravnosti razumijevanja postignutog tim radnjama (Primjer)Osim tehničkih potrebna je velika socijalna i spoznajna vještina Rezultat inženjerstva zahtjeva se opisuje u dokumentu specifikacija zahtjeva (eng. Requirement specification)

Page 9: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Specifikacija zahtjeva (SZ)

Osnovna svrha je postizanje međusobnog dogovora oko zahtjeva s obzirom na koje će se programski sustav dalje razvijatiKoristi se

kao osnova pri sklapanju ugovora između naručitelja sustava i organizacije razvoja sustava,Kao ulaz u sljedeću fazu dizajna tehničke solucijeKao ulaz za specifikaciju testnih slučaja Korisnici SZ mogu biti i drugi kao što su primjerice inženjeri koji izvode validaciju sustava, menadžeri

Page 10: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Specifikacija zahtjeva (nastavak)

Obično se faze inženjerstva zahtjeva i dizajna preklapaju tako da se za vrijeme postavljanja SZ u preliminarnu reviziju započinje i s dizajn dokumentacijomDobar dio zahtjeva se iskristalizira tek početkom dizajna sustava koristeći te zahtjeve!

Requirements

Design

Page 11: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Primjer: e-knjižnice

Sustav pretraživanja u tradicionalnim knjižnicama uglavnom abecedni sustav pretraživanja po prvom autoru knjigeAko znamo samo naziv knjige teško bi našli i posudili knjigu koju tražimoImate li ideju kako bi izgledala solucija u programskom proizvodu?

Page 12: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Zahtjevi na e-knjižnicu

Koji su funkcionalni zahtjevi? – prioritizacijaKoja platforma i operacijski sustav će se koristiti? Koji DBMS, tipovi terminala i koliko njih?Koje su klase korisnika neohodne? knjižničari, članovi knjižnice; Postoje li zabrane funkcija po korisniku?Koja veličina baze i koja su očekivanja kako će potrebe za pohranom podataka rasti? Koje je razumno vrijeme očekivanja odgovora iz sustava? Koja je cijena ovakvog sustava, uključivši i prebacivanje podataka u sustav?

Page 13: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Zaključci iz primjera

Tek kad se krene razmišljati iz perspektive dizajna niz novih pitanja i zahtjeva se postavljaOsim funkcionalnih zahtjeva, treba se razmotriti okolina primjene te interakcija s okolinom primjenePosljedice uvođenja e-knjižnice mogu biti puno veće od same izrade programske solucije i često nepravovremena identifikacija vodi ka neuspjehu projekta

Page 14: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Studija izvedivosti (eng. Feasibility study)

Uglavnom se prije početka dizajna i implementacije provodi studija izvedivostiOsnovna svrha je provjera mogu li odabrani hardver i programski proizvod zadovoljiti traženim performansamaUključuje i analizu troškova i benefita

Page 15: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Zadatak

Treba napraviti (ne-formalnu) specifikaciju zahtjeva za programski proizvod.Najbolje bi bilo da radite u grupama 2-3Zadatak:

Treba napraviti program za upravljački sustav od n dizala/liftova u zgradi s m katova. Zadatak je osmisliti logiku kojom se liftovi kreću između katova u sljedećim uvjetima:

Page 16: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Zadatak (nastavak)

Svaki lift ima niz tipki, po jedna za svaki kat. Tipka zasvjetli kako lift prolazi po katovima zgrade. Tipka se ne osvjetljava na katu na kojem lift zastaje.Svaki kat ima dvije tipke (osim najgornjeg i najdonjeg), jedan za zahtjev za dizanje i jedan za spuštanje. Kada se pritisne neka od tih tipki, ona zasvjetli. Tipka prestaje svijetliti onoga trena kada dođe lift na taj kat, ili se kreće u tom smjeru ili nema zahtjeva za kretnjom.Kada nema zahtjeva, lift treba ostati na zadnjoj destinaciji sa zatvorenim vratima i čekati sljedeće zahtjeve. (Alternativa može biti da se odredi kat na kojem će lift čekati pod tim uvjetima)

Page 17: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Zadatak (nastavak)

Svi zahtjevi za liftovima moraju se poslužiti, tako da se svim katovima da jednaki prioritet. Svi zahtjevi za katove unutar lifta moraju se poslužiti, tako da lift staje po odabranim katovima slijedno u smjeru kretanja.Svaki lift ima tipku za nuždu koja ako se pritisne uzrokuje da se signal upozorenja šalje upravitelju zgrade. Lift se od tog trenutka smatra da je izvan funkcije. Svaki lift ima i mehanizam da se lift ponovno vrati u funkciju.

Page 18: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Zadatak (nastavak)

Sigurno ste se svi susretali s sustavom dizala sličnom ovom. Ono što se očekuje od vas je da na osnovu svog iskustva pokušate specificirati zahtjeve.Prvo se pokušajte fokusirati na zahtjeve koji su povezani s upravljanjem kretanja svakog lifta u odnosu na zahtjeve putnika i povezanih ostalih čimbenika.S obzirom da trebate napraviti ne-formalnu specifikaciju, zahtjevi trebaju biti uglavnom tekstualni, ali mogu se dodati tablice ili dijagrami po želji.Dodajte jedno poglavlje gdje opisujete probleme i/ili otvorena pitanja i nejasnoće.

Page 19: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Sadržaj

Uvod u inženjerstvo zahtjevaProcesi inženjerstva zahtjevaPronalaženje i analiza zahtjevaDokumentiranje zahtjevaTehnike dokumentacije zahtjevaProvjera zahtjeva

Page 20: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Procesi inženjerstva zahtjeva

U procesu inženjerstva zahtjeva možemo razlikovati tri osnovne faze:

Pronalaženje i analiza zahtjeva (eng. Req. Elicitation)Dokumentiranje zahtjeva (eng. Req. specification) Provjera zahtjeva (eng. Req. Validation and verification)

Page 21: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Okvir procesa inženjerstva zahtjeva

Pronala-ženje i analiza

zahtjeva

Dokume-ntiranjezahtjeva

Provjera zahtjeva

Korisnik

Domena primjene

Zahtjevi korisnika

Znanja iz domene primjene

Prikupljenaznanja

Potreba za novim znanjima

Modeli zahtjeva

Rezultatiprovjere

Modeli koje korisnik provjerava

Odaziv korisnika

Znanja iz domene primjene

Page 22: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Sadržaj

Uvod u inženjerstvo zahtjevaProcesi inženjerstva zahtjevaPronalaženje i analiza zahtjevaDokumentiranje zahtjevaTehnike dokumentacije zahtjevaProvjera zahtjeva

Page 23: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Pronalaženje i analiza zahtjeva

Cilj je pronaći točne i potpune zahtjeveProblemi

Obično znanja iz domene primjene se u toj domeni podrazumijevaju i neformalna su pa ih je teško dohvatiti (Primjer palestinska marama)

Dolazi do izražaja socijalna i spoznajna sposobnost analitičara

Zahtjevi su kompleksni i postoji velik broj mogućnosti koje se može izvesti programskim proizvodom

Teško da korisnik iz prvog pokušaja uspije sagledati sve aspekte svojih želja

Teško se nositi s razvojem okoline, tj. osigurati perspektivne zahtjeve koji će služiti i u budučnosti

Page 24: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Tehnike pronalaženja i analize zahtjeva

Izvor ModeliranjeDomena Korisnik Sadašnj. Budućn.

X

X

X

XXXX

Interview XDelphi technique XBrainstorming sessionTask analysis XScenario (use-case) analy. XEthnography X XForm analysis X X

Tehnika

Page 25: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Tehnike pronalaženja i analize zahtjeva (nastavak)

Izvor PrimjenjivostDomena Korisnik Sadašnj. Budućn.

XXX

Analy. Of natural language descriptions

X X

Synthesis of reqs from an existing system

X X

Domain analysis X XUse of reference models X XBusiness process redesign X XPrototyping

Tehnika

Page 26: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Tehnike ispitivanja

Interview, Brainstorm, questionarieeSvode se na ispitivanje uglavnom korisnika i njegovim očekivanjima od sustavaOsnovni problemi ovakvih tehnika su da korinici često predvide svoja ograničenja i predrasude

DelphiIterativna tehnika gdje korisnici izmjenjuju informacije u pisanoj formi dok god se ne postigne sporazum

Page 27: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Task analysis, scenario-based analysis

Task analysis - Korisnici u svom poslu izvode niz zadataka. Ideja ove tehnike je da se napravi dekompozicija zadatakaScenario based analysis – za razliku od prehodnih tehnika ne fokusira se na zadatke već na slijed zadatka. Svaki scenario objašnjava kako se slijed zadatka izveo.

Obično se koristi u objektno orijentiranim analizama i dizajn metodama (Use Case analysis)

Page 28: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Etnography, Form analysis, Natural languague description

Etnography – grupa ljudi se analizira kako u stvarnosti radi a ne kako je poslovni proces propisanForm analysis – informacija o domeni se dobiva iz raznih formulara koji se koriste u stvarnom procesuNatural language descriptions – slično kao i form analysis samo što se informacije prikupljaju iz raznih opisnih dokumentacija primjerice operacijskih instrukcija i priručnika

Page 29: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Derivation from an existing system, Business process redesign, Prototyping

Derivation from an existing system – zahtjevi se formuliraju tako da se analiza započne od nekog postojećeg sustavaBusiness process redesign – koristi se kad se želi potpuno izmjeniti i automatizirati poslovni model neke organizacije, koristi formalnu metodologiju, ne spada baš u skupinu tehnika pronalaženja i analize zahtjevaPrototyping – na osnovu inicijalnog skupa zahtjeva razvije se prototip na osnovu kojeg se dalje definiraju zahtjevi

Page 30: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Sadržaj

Uvod u inženjerstvo zahtjevaProcesi inženjerstva zahtjevaPronalaženje i analiza zahtjevaDokumentiranje zahtjevaTehnike dokumentacije zahtjevaProvjera zahtjeva

Page 31: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Specifikacija zahtjeva

Konačni proizvod faze inženjerstva zahtjevaOsnovna svrha je komunikacija rezultata između svih involviranih sudionika IEEE standardi propisuju

Karakteristike koje zahtjeve čine dobro specificiranim,Sadžaj dokumenta specifikacije zahtjeva

Page 32: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Zahtjevi na SZ:Što znači DOBRO specificirani zahtjevi?

TočniNe dvo- ili više-značniPotpuni – jesu li svi zahtjevi izraženiKonzistentni – usklađeni međusobnoPrioretizirani – definirani prema prioritetimaMogu se jednostavno provjeriti

Primjer kako ne: ‘It should provide the user a fast response’Modularni -jednostavno se mijenjaju i prilagođavajuMogu se jednostavno pratiti prema drugim dokmentima

Page 33: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Zahtjevi na SZ:Što SZ treba sadržavati?

Funkcionalnost – što treba prog. proizvod raditi?Vanjska sučelja – Kako programski proizvod međudjeluje s okolinom (ljudima, sistemskim hardverom, drugim hardverom i programskim proizvodima)?Performanse – Koja je brzina, dostupnost, vrijeme odaziva, vrijeme oporavka različitih funkcija programskog proizvoda?Atributi – Analiza svojstva atributa kvalitete (prenosivost, točnost, jednostavnost održavanja, sigurnost, pouzdanost, i drugi)Ograničenja zbog implementacije – Organičenja resursa, integritet baze podataka, operativni sustav, standardi

Page 34: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Sadržaj specifikacije zahtjeva

Sadržaj specifikacije zahtjeva predložen je IEEE normom [830].

Prikladan za većinu slijednih modela razvoja (Vodopadni i njegove varijante) dok za prototip model predloženi okvir više služi za opis izlaza procesa

Osnovna poglavlja suUvodOpći opis sustavaLista specificiranih zahtjeva sustavaDodaciIndeks

Primjer SZ, i primjer s liftomhttp://www.astrodigital.org/space/stshorse.html

Adobe obat Docum

Page 35: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Uvod SZ dokumenta

Opis svrhe (eng. purpose) dokumenta i kome je namijenjenOkvir ili opseg (eng. Scope) dokumenta koji sadrži sljedeće informacije:

Prijedlog općeg imena programskog proizvoda (npr. Elevator controller)Kratki opis osnovne funkcije programskog proizvodaOpis moguće primjene programskog proizvoda, opis benefita primjene, osnovnih zadaća i ciljeva primjene

Opis definicija, pojmova i kratica koje se koriste u dokumentuLista referenci Opis strukture SZ dokumenta

Page 36: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Opći opis sustava

Product perspective: Opis prog. proizv. iz perspektive njegova djelovanja i njegove interakcije s drugim proizvodima. Identificirati sve uvjete rada:

sučelja s sustavom, korisnikom, harverom, drugim programima, komunikacijska sučelja, korištenje memorije, načini/uvjeti izvođenja, zahtjevi uslijed određene primjene

Product functions: Kratki opis svih funkcija koje pp treba izvoditiUser characteristics: Opis nužnih karakteristika korisnika za rukovanje prog.proizv.

Page 37: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Opći opis sustava (nastavak)

Constraints: Opis ograničenja u razvoju prog. proizv. primjerice razne regulative, ograničenja hardvera, sučelja prema drugim funkcijama, mogućnost paralelnog rada, funkcije audita i kontrole, pouzdanost, sigurnost, i druga moguća ograničenja na dizajn funkcije.

Page 38: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Opći opis sustava (nastavak)

Assumptions and dependencies: Opis pretpostavki i zavisnosti izvođenja prog.proizv. o drugim elementima s kojima je u interakciji. Za razliku od ograničenja na dizajn ovjdje se navode moguća ograničenja na izvođenje prog. proizv.

Primjer: Prog. proizv. Se razvija s pretpostavkom da će raditina određenoj platformi. U slučaju da ta platforma ne bude dostupna, prog. proizv. će se trebati prilagoditi nekoj drugoj.

Apportioning of requirements: Lista mogućih zahtjeva u budućim revizijama SZ dokumenta

Page 39: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Lista specificiranih zahtjeva sustava

Osnova cijelog dokumenta SZ i najduže poglavljePravila koja se treba držati:

DOBRO specificiraniMeđusobno referenciraniJedinstveni identificiraniOrganizirani u smislene skupine

Neki primjeri organizacije su prema režimu (mod) rada, razredu (klasa) korisnika, objektu na koji se odnose, odazivu, funkcionalnoj hijerarhiji

Page 40: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Sadržaj

Uvod u inženjerstvo zahtjevaProcesi inženjerstva zahtjevaPronalaženje i analiza zahtjevaDokumentiranje zahtjevaTehnike dokumentacije zahtjevaProvjera zahtjeva

Page 41: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Tehnike dokumentacije zahtjeva

Dokumentirani zahtjevi se promatraju iz:Korisničke perspektive;

naručitelji i organizacija razvoja pri sklapanju ugovoraImplementacijske perspektive:

sudionici procesa razvoja kao osnovni ulazni dokument

Page 42: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Govorni jezik

Preferiran of strane naručitelja sustavaNedostaci govornog jezika:

Šum – nepotreban tekst Tišina – neizrečeni aspekti problemaPrespecificiranost – implementacijski detaljiKontradiktornost – ponavljanje različitim tekstomDvosmislenost – korištenje stručnim žargonomNestrukturiranost – korištenje nedefiniranih pojmovaMaglovitost - Neizvedivi zahtjevi

Moguće rješenje je korištenje formalnog jezika za specifikaciju i potom prebacivanje u govorni jezik

Page 43: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Entity-relationship modeling

Za modeliranje podataka kod razvoja informacijskih sustavaModeliranje logičke, sematičke struktureKoriste entity-relationship dijagrame

Pravokutnici – entiteti u procesu, objekti u procesu (knjige, članovi, org. jedinica,..)Elipse, kružnice – atributi entiteta (id, adresa)Tipovi entiteta ili atributa u opisnom obliku: {0...10}, posuđen/vračen, i drugo.Linije – veze između entiteta, usmjerene ili neusmjerene. Dijagram je osjetliv na pogreške u vezama

Zajedno se koristi s drugim formalnim jezicima

Page 44: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Primjer: Entity-relationship dijagram

Ime

Adresa Član posuđen Primjerak knjige

Identifikacija

{0...10} {0...1}

Identifikacija

Page 45: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Finite State machines

Konačni automati (eng. Finite state machines) koriste

konačni broj stanja i mogućih prijelaza Posebno definirano inicijalno/početno stanjedijagram prijelaza stanja koriste kružnice za prikaz stanja i usmjerene putanje za prikaz prijelaza stanja s labelom što je pokrenulo prijelaz (stimulans)

Ispisana iz sustava

Posuđena

Na popravku

Dostupna

posudba

povratak

sa popravka

na popravak

ispis

obnovi

Page 46: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Sadržaj

Uvod u inženjerstvo zahtjevaProcesi inženjerstva zahtjevaPronalaženje i analiza zahtjevaDokumentiranje zahtjevaTehnike dokumentacije zahtjevaProvjera zahtjeva

Page 47: Inženjerstvo zahtjeva - riteh.uniri.hr · Ciljevi zRazumijevanje da je inženjerstvo zahtjeva cikličan proces koji uključuje sljedeće aktivnosti: pronalaženje i analiza zahtjeva,

Provjera zahtjeva

Zahtjevi se provjeravaju koristeći Verifikacija

provjera semantike i sintakseSudionici razvoja, alati za formalnu verifikaciju

Validacija provjera svojstva točnost, potpunost, ne-višeznačnost, konzistentnostPotrebno prisustvo korisnika

Tehnike su uglavnom parafraziranje govornim jezikom, diskusije pomoću obrasca upotrebe (eng. usage scenario), prototipiranje i animacijaTest plan za test prihvatljivosti (eng. Acceptance test)