Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
1
Humboldt University Berlin, University of Novi Sad, University of Plovdiv,University of Skopje, University of Belgrade, University of Niš, University of Kragujevac
DAAD Project“Joint Course on Software Engineering”
Version: Feb. 20, 2004 (D Nov. 06, 2003)
Tema 3Modeli softverskih procesa
2
2DAAD project „Joint Course on Software Engineering“ ©
3. Modeli procesa
a) Zašto modeli procesa?
b) Pregled postojećih modela
c) Klasični i iterativni fazni model (vodopadni model)
d) Alternativne faze u faznim modelima
e) Prototipovi
f) Spiralni model
3
3DAAD project „Joint Course on Software Engineering“ ©
Modeli procesa: korišćena terminologija
(Napomena: pojmovi su slični, ali sadrže razlike; npr. model životnog ciklusa: razvoj i održavanje,
model razvoja softvera: bez održavanja)
Modeli softverskih procesa“Software process models”
Fazni modeli”Phase models”
Modeli životnog ciklusa ”Life cycle models”
Modeli razvoja softvera“Software development models”
Projektni modeli“Project models”
4
4DAAD project „Joint Course on Software Engineering“ ©
Zašto modeli procesa ?
„SI je primena sistematskog, disciplinovanog, merljivog pristupa razvoju, upotrebi i održavanju softvera...“(IEEE Standard Glossary of Software Engineering Terminology, 1990).
Po definiciji pojma SI zahteva se proučavanje modela za sistematski razvoj softvera (glavni cilj SI)!
5
5DAAD project „Joint Course on Software Engineering“ ©
Važnost modela procesaModeli procesa su važni za
Organizaciju projekta:• Inače: sporadično,
nekoordinisano upravljanje projektom
• Iskustvo: softver visokog kvaliteta je nemoguće napraviti bez sistematskog pristupa razvoju softvera
Analizu projekta:Koje su slabe tačke u razvojnom procesu?
Planiranje vremena i troškova
Procenu kvaliteta softverskih kućaSertifikacija za ISO 9000
6
6DAAD project „Joint Course on Software Engineering“ ©
Šta je model procesa?
Model procesa• Uopšteno: razvojni plan koji definiše opšti proces
razvoja softverskog proizvoda.• Preciznije: Definicija koja odredjuje koje aktivnosti se
izvršavaju, od strane kojih osoba u kojim ulogama; kojim redosledom će aktivnosti biti izvršavane, koji proizvodi će biti razvijani i kako će se procenjivati njihov kvalitet.
Uloga• Saradnik koji izvršava odredjenu aktivnost
npr. Test-inženjer, vodja projekta, projektant, programer, softverski ergonomist
Šta je specifično za softver?
7
7DAAD project „Joint Course on Software Engineering“ ©
Izvršavanje aktivnosti: osnovna šema(aktivnost = podproces modela procesa)
Source: Balzert, vol. 1, p. 60
Dati artefakti
Uloga XSaradnik Y
Alati
Izmenjeni ili novi artefakti
Legenda:
Aktivnost
Uloga
Saradnik
Model(Artefakt)
Dokument(Artefakt)
Metode•Vodiči (“Guidelines”)•Konvencije•Liste za proveru(“Check lists”)•Primeri
8
8DAAD project „Joint Course on Software Engineering“ ©
Softverski artefakti
Softverski artefakt• Proizvod ljudskih ruku• Može da bude dokument, model ili program• Primeri:
- Dokument, npr. specifikacija zahteva- Model, npr. model OOA - Program, npr. C++ program.
Softverski proizvod• Skup softverskih artefakata
9
9DAAD project „Joint Course on Software Engineering“ ©
3. Modeli procesa
a) Zašto modeli procesa?
b) Pregled postojećih modela
c) Klasični i iterativni fazni model (vodopadni model)
d) Alternativne faze u faznim modelima
e) Prototipovi
f) Spiralni model
10
10DAAD project „Joint Course on Software Engineering“ ©
Najpoznatiji modeli procesa: pregled
Modeli procesa
• Klasični fazni model(vodopadni model)
• Iterativni fazni model(životni ciklus)
• Spiralni model
• Prototipovi(evolutivno SI)
• V-model
11
11DAAD project „Joint Course on Software Engineering“ ©
Primedbe
Modeli su uvek idealizovani - daju samo okvir i treba da omoguće fleksibilan rad
ne smeju da ugroze radRazličite vrste problema u razvoju softvera
različiti pogodni modeli
npr. program u oblasti veštačke inteligencije: postepena evolucijaČesto se koristi prototipski model
12
12DAAD project „Joint Course on Software Engineering“ ©
3. Modeli procesa
a) Zašto modeli procesa?
b) Pregled postojećih modela
c) Klasični i iterativni fazni model (vodopadni model)
d) Alternativne faze u faznim modelima
e) Prototipovi
f) Spiralni model
13
13DAAD project „Joint Course on Software Engineering“ ©
Proces razvoja softvera do 1970: crna kutija
Proces razvoja softvera Programskikod
Šta se dešava unutra?
Samo do 1970?
Korisnik
Neformalni zahtevi
14
14DAAD project „Joint Course on Software Engineering“ ©
Analizai
definicija
Analizai
definicija
Klasični vodopadni model (1970)
Projektovanje(“Design”)
Projektovanje(“Design”)
ImplementacijaImplementacija
TestiranjeTestiranje
Korišćenje i održavanje
Korišćenje i održavanje
15
15DAAD project „Joint Course on Software Engineering“ ©
Faze razvoja softvera:tema i proizvodi (pregled)
Analiza i definicijaAnaliza problama + definicija zahteva, težište: spoljašnje ponašenje softverskog sistema; intenzivna saradnja: klijent ↔ kontraktor
specifikacija zahteva, model proizvoda (“product model”), itd.Projektovanje (“design”)Specifikacija strukture softvera (softverska arhitektura), specifikacija komponenti i njihovih veza
softverska arhitektura, detaljni projekat, itd... ImplementacijaSoftverska arhitektura se „popunjava “: programiranje komponenti
program (programski kod)TestiranjeTestiranje komponenti i njihove integracije
slučajevi za testiranje (“test cases”), protokoli za testiranje, itd.
16
16DAAD project „Joint Course on Software Engineering“ ©
Analizai
definicija
Analizai
definicija
Klasični vodopadni model (1970)
Projektovanje(“Design”)
Projektovanje(“Design”)
ImplementacijaImplementacija
TestiranjeTestiranje
Korišćenje i održavanje
Korišćenje i održavanje
Problemi ?
17
17DAAD project „Joint Course on Software Engineering“ ©
Dokumenti u razvoju softvera
Zahtevane osobine (beli kružići) se vremenom gube, a nepotrebne (crni kružići) se dodaju
Izvor: Schneider, SEUH 43, p. 123
Korisnik Analitičar Projektant Programer
Korisnički zahtevi Specifikacija Projekat Kod
18
18DAAD project „Joint Course on Software Engineering“ ©
Protok informacija u razvoju softvera
Kako je korisnik objasnio
Kako je vođa projekta shvatio
Kako ga je “Tester”ostavio
Kako je programer napisao
Kako ga je komercijalista opisao
Kako je projekat bio dokumentvan
Kako je softverski arhitekta projektovao
Kako je naplaćeno Kako je korišćenje bilo kasnije podržano
Šta je korisnik zaista želeo Iz
vor:
nepo
znat
19
19DAAD project „Joint Course on Software Engineering“ ©
Analizai
definicija
Analizai
definicija
Iterativni fazni model
Projektovanje(“Design”)
Projektovanje(“Design”)
ImplementacijaImplementacija
TestiranjeTestiranje
Korišćenje i održavanje
Korišćenje i održavanje
Problemi?
20
20DAAD project „Joint Course on Software Engineering“ ©
Raspodela troškova u životnom ciklusu softvera
Održavanje67%
Analiza zahteva3%
Specifikacija3% Projektovanje
5%
Kodiranje7%
Testiranje modula8%
Integracionotestiranje
7%
Izvor: R. Klösch, H.Gall: Objektorientiertes Reverse Engineering. Springer, 1995
21
21DAAD project „Joint Course on Software Engineering“ ©
Statistika grešaka: nastanak i ispravka
Izvor: Software Metrics Symposium 1996, p. 176
zahtevi projektovanje
implementacija
20 % 38 % 42 %
1 % 2 % 20 % 30 % 40 % 7 %
Pregled (“review”)
zahteva
Pregled projektne dokumen
tacije
Pregled koda
+testiranje jedinica
programa (“unittest”)
Testiranje podsistema
Testiranje sistema i testiranje
prihvatljivosti (”acceptance
test”)
Greške tokom
upotrebe
Kada su otkrivene
Kada su greške nastale
22
22DAAD project „Joint Course on Software Engineering“ ©
3. Modeli procesa
a) Zašto modeli procesa?
b) Pregled postojećih modela
c) Klasični i iterativni fazni model (vodopadni model)
d) Alternativne faze u faznim modelima
e) Prototipovi
f) Spiralni model
23
23DAAD project „Joint Course on Software Engineering“ ©
Faze po Jacobson-u
Jacobson: Object-oriented Software Engineering p. 32
Karakteristike?
Analizazahteva
PreliminarniProjekat
(“design”)Detaljniprojekat
(“design”)Kodiranje
Testiranje jedinica(“unit testing”)
Integracija
Sistemski test
24
24DAAD project „Joint Course on Software Engineering“ ©
Faze po Denert-u
Denert: Software Engineering, Springer Verlag, 1992, p. 39
Specifikacija sistema
Korisnički interfejs
Model podataka
Funkcionalni model
Konstrukcija sistema
Modularnost
Organizacija procesa
Projektovanje baza podataka
Implemencija modula
Specifikacija modula
Testiranje modula
Konstrukcija modula
Integracija sistema
Definicija podsistema
Testiranje sistema
Testiranje podsistema
Karakteristike?
25
25DAAD project „Joint Course on Software Engineering“ ©
RequirementsDefinition Design
DetailedConcept
SoftwareDesign
organization hierarchyHijerarhija organizacije
Sirovi model podatakaProcesi
zadataka
Hijerarhija zadataka
Korisnički interfejs
Procesi funkcija
Hijerarhija funkcija
Model podataka
Analizaproblema
Definicijazahteva
Projektovanje Implementacija,Integracija & Test
Sirovi koncept Detaljni koncept Projekat Softverski sistem
Client/ServerOS/2, MotifMS-WindowsUNIX/RDBs
SNI BS2000COBOL, UTMSESAM, UDS
IBM MVSCOBOL, CICSDB2IMS DB/DC
Model baze podataka
Specifikacija interfejsaComponent SKONTO is connected with the
aaaaaaaaaSKONTO is
aaaaaaaaaaaaBATT
aaaaaaaaaaaaLOOKUP
Model integracije
DB definicije, SQL
GUI objekti
Logika programaIF kunde = 99999
CASE PlaubaTT = 1IF kunde = nnnnnnn
PlaubaTT, I
Model sistem
Faze u CASE-alatu MAESTRO II
Model procesa SEtec
Model proizvoda SEtecIzvor: SoftLab, Munich, MAESTRO II (najpoznatiji nemački CASE alat)
Karakteristike?
26
26DAAD project „Joint Course on Software Engineering“ ©
Unificirani model razvoja softvera“Unified Software Development Process” (USDP)
Proces objektno-orijentisanog razvoja softvera po Jacobson-u, Booch-u, i Rumbaugh-u (1999)
Zahtevi
Analiza
Projektovanje
Implementacija
Testiranje
Deo fazа “Analiza i definicija‘, u kome će biti detektovani osnovni slučajevi korišćenja:
Dijagrami slučajeva korišćenja(“use case diagrams”)
Deo fazа ‚Analiza i definicija‘ u kome će biti detektovane osnovne klase problema:
Dijagrami klasa(“class diagrams”)
27
27DAAD project „Joint Course on Software Engineering“ ©
Faze po Balzert-u
Balzert: Textbook of Software Technology vol. 1, 2001
Uvod i pregled
1 Osnove 2 Objektno-orijentisano modeliranje
V Modeliranje složenih sistema
I Upravljanje softverom
1 Osnove
2 Planiranje
3 Organizacija
4 Ljudi
5 Vođstvo
6 Kontrola
III Obezbedjivanje kvaliteta
1 OSnove
2 Obezbedjivanjekvaliteta
3 Manualni metodiprovere
4 Kvalitet procesa
5 Kvalitet proizvoda - komponente
6 Kvalitet proizvoda –sistem
1 Faza planiranja
2 Faza definicije
3 Faza projektovanja
4 Faza implementacije
5 Prihvatanje i uvodjenje
6 Faza održavanja
I Razvoj softvera
4 Reorganizacija3 Ponovnokorišćenje2 CASE1 Principi i
metode
IV Uporedni odeljci i pogledi
28
28DAAD project „Joint Course on Software Engineering“ ©
1 Faza planiranja
2 Faza definicije
3 Faza projektovanja
4 Faza implementacije
5 Prihvatanje i uvođenje
6 Faza održavanja
I Razvoj softvera
Karakteristike?
Faze po Balzert-u(detaljnije)
29
29DAAD project „Joint Course on Software Engineering“ ©
Fazni model u programu Space shuttle (NASA)
Činjenice:• 22 verzije (OI = Operational Increment) 1981-2001• razvoj do 2020• svake godine: nova verzija• za svaku verziju: 2 godine razvoja• nekoliko verzija su aktuelnе u isto vreme• velike posledice na upravljanje projektom
Izvor: M. Zelkovitz, I. Rus: ICSM 2001, p. 119
1990
KontrolaPriprema misijeKorišćenje
1992 1994 1996 1998 2000
Q
O
M
K
I
OI v
erzi
ja
Razvoj
Životni ciklus za svaki OI (Operacioni korak –“operational increment”)
30
30DAAD project „Joint Course on Software Engineering“ ©
Početak projektaProjektovanje
KonstrukcijaPlaniranje proizvodnje
Priprema za rad
Proizvodnja
Testiranje
Ugovor Početak proizvodnje Isporuka
1 godinaIzvor: R.Bronsart, SEUH 1996
Posebni fazni model
Šta je neobično?
Kako interpretirati?
31
31DAAD project „Joint Course on Software Engineering“ ©
Samsonite-ov fazni
model
32
32DAAD project „Joint Course on Software Engineering“ ©
Testiranje kofera ☺
33
33DAAD project „Joint Course on Software Engineering“ ©
3. Modeli procesa
a) Zašto modeli procesa?b) Pregled postojećih modelac) Klasični i iterativni fazni model (vodopadni
model)d) Alternativne faze u faznim modelimae) Prototipovif) Spiralni model
34
34DAAD project „Joint Course on Software Engineering“ ©
Prototipski model
Područja primene:Zahtevi u početku nisu precizni ili se često menjaju
Prototip:izvršivi softverski sistem,• Značajni delovi završnog proizvoda su već završeni
(npr. Korisnički interfejs, osnovna funkcionalnost),• Ostali delovi tek treba da se realizuju (npr. specijalni slučajevi)
Proces primene:• Prototip (može biti odbačen)
(dodatak analizi zahteva: brzo pravljenje prototipova (“rapidprototyping”)
• Postupno napredovanje ka finalnom proizvodu(evolutivni razvoj softvera (“evolutionary software development”))
35
35DAAD project „Joint Course on Software Engineering“ ©
Faze iterativnog prototipskog modela
Boyle: Design of Multimedia Learnnig, Prentice Hall Europe (1997), p. 186
Projektovanje rešenja
Utvrdjivanje problema
Implementiranjerešenja
Sumarna procena& isporuka
Procena
Karakteristike?
36
36DAAD project „Joint Course on Software Engineering“ ©
Zahtevi
Analiza
Projektovanje
Implementacija
ProcenaProcenaProcena
Dinamički metod razvoja sistema“Dynamic Systems Development Method”
(DSDM)Standardni RAD (Rapid Application Development – brzi razvoj aplikacija) metod zasnovan na iterativnom prototipskom sistemu koji je vođen od strane korisnika (1995)
Studija izvodljivosti i poslovnih procesa
Uvodjenje sistema u korisničku okolinu
Funkcionalne iteracije prototipovaProjektovanje iteracije prototipova
37
37DAAD project „Joint Course on Software Engineering“ ©
3. Modeli procesa
a) Zašto modeli procesa?b) Pregled postojećih modelac) Klasični i iterativni fazni model (vodopadni
model)d) Alternativne faze u faznim modelimae) Prototipovif) Spiralni model
38
38DAAD project „Joint Course on Software Engineering“ ©
Uvod u spiralni modelAnaliza problema:• ciljevi• alternative
Analiza rizika:• procena alternativa
Implementacija:• konstrukcija proizvoda• testiranje
Planiranje:• sledeći koraci u projektu
Pregled(“Revie
Karakteristike faza?
39
39DAAD project „Joint Course on Software Engineering“ ©
Spiralni model po Boehm-u (1988)
Odredjivanje ciljeva, alternativa i dodatnih zahteva za svaki novi ciklus
Procena alternativa;identifikacija i smanjenje rizika
Planiranje sledećih koraka, tj. sledećeg ciklusa u spirali
Konstrukcija i testiranje tekućeg proizvoda
kraj ciklusa: Pregled
Napredovanje projekta po spiralnim ciklusima
Analiza rizika:Analiza problema:
Implementacija:
Planiranje:
40
40DAAD project „Joint Course on Software Engineering“ ©
Esencija spiralnog modela
Apstraktni model: meta modelApstrakcija ostalih modela razvoja softvera(jedan “okret” = • jedna faza ili
• razvoj sledećeg protipa ili ...)
Orijentisan sličnim aktivnostima u svakom koraku(analiza problema, analiza rizika, implementacija, planiranje, pregled)analiza rizika: poredjenje mogućih alternativa(primeri: izbor programskog jezika, metoda za analizu i projektovanje, ljudi, alata)
fleksibilan:Prvi “okret” proizvodi prototip, sledeći odgovara fazama analize i
definicije, projektovanja, ...
41
41DAAD project „Joint Course on Software Engineering“ ©
Fazni model kao specijalni slučaj spiralnog modela
Pagel, Six p.72
Analiza rizika
Korišćenje i održavanje
P r e g l e d Procena prodaje
Plan projektaPlaniranje fazeanalize
GUI-prototip
Simulacija
Analiza
Validacija definije proizvoda
Projekatovanjesoftvera
Kodiranjei testiranje
jedinica
Integracijai
testiranje sistemaInstalacija
Test prihvatljivosti
Planiranje projektovanja
Planiranje implementacijeIntegracije i testiranje
Analiza problema
Implementacija
Planiranje
jedan okret = jedna faza
42
42DAAD project „Joint Course on Software Engineering“ ©
Evolucioni razvoj softvera kao specijalni slučaj spiralnog modela
Pagel, Six p.73
Analiza rizika
predvidjanje prodaje GUI-prototip
Test prihvatljivosti
P r e g l e dPlan projekta
Validacijaprototipa
Revidiraniprojektniplan
Instalacija
Validacija prototipa
Prototip 1Prototip n
Koristan proizvodPlaniranje
2. prototipa
Planiranje 1. prototipa
Korišćenje i održavanje
Analiza problema
Implementacija
Planiranje
jedan okret = jedan prototip