Zašto modeli procesa? Tema 3 i softverskih procesa SI je primena sistematskog, disciplinovanog, merljivog pristupa razvoju, upotrebi i održavanju softvera... (IEEE Standard Glossary of Software Engineering Terminology, 1990). DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac Po definiciji pojma SI zahteva se proučavanje modela za sistematski razvoj softvera (glavni cilj SI)! Version: Feb. 20, 2004 (D Nov. 06, 2003) 4 Organizaciju projekta: Inače: sporadično, nekoordinisano upravljanje projektom Iskustvo: softver visokog kvaliteta je nemoguće napraviti bez sistematskog pristupa razvoju softvera Važnost modela procesa i procesa su važni za Procenu kvaliteta softverskih kuća Sertifikacija za ISO 9000 Analizu projekta: Koje su slabe tačke u razvojnom procesu? vremena i troškova 2 5 i procesa: korišćena terminologija i softverskih procesa Software process models Fazni modeli Phase models i životnog ciklusa Life cycle models i razvoja softvera Software development models Projektni modeli Project models (Napomena: pojmovi su slični, ali sadrže razlike; npr. model životnog ciklusa: razvoj i održavanje, model razvoja softvera: bez održavanja) 3 Šta je model procesa? 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? 6 1
Izvršavanje aktivnosti: osnovna šema (aktivnost = podproces modela procesa) Najpoznatiji modeli procesa: pregled Dati artefakti Metode Vodiči ( Guidelines ) Konvencije Liste za proveru ( Check lists ) Primeri Saradnik Y Uloga X Alati Izmenjeni ili novi artefakti Legenda: Aktivnost Uloga Saradnik (Artefakt) Dokument (Artefakt) Klasični fazni model (vodopadni Prototipovi (evolutivno SI) i procesa Spiralni model Iterativni fazni model (životni ciklus) V-model Source: Balzert, vol. 1, p. 60 7 10 Softverski artefakti Primedbe Softverski artefakt Proizvod ljudskih ruku Može da bude dokument, model ili program Primeri: - Dokument, npr. specifikacija zahteva -, npr. model OOA - Program, npr. C++ program. Softverski proizvod Skup softverskih artefakata i su uvek idealizovani - daju samo okvir i treba da omoguće fleksibilan rad ne smeju da ugroze rad Različ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 8 11 9 12 2
Proces razvoja softvera do 1970: crna kutija Klasični vodopadni model (1970) Neformalni zahtevi ii definicija Samo do 1970? ( Design ) Proces razvoja softvera Programski kod Korisnik Problemi? Šta se dešava unutra? Korišćenje i i održavanje 13 16 Klasični vodopadni model (1970) Dokumenti u razvoju softvera ii definicija Korisnički zahtevi Specifikacija Projekat Kod ( Design ) Korisnik Analitičar Projektant Programer Korišćenje i i održavanje Zahtevane osobine (beli kružići) se vremenom gube, a nepotrebne (crni kružići) se dodaju Izvor: Schneider, SEUH 43, p. 123 14 17 Faze razvoja softvera: tema i proizvodi (pregled) Protok informacija u razvoju softvera i definicija problama + definicija zahteva, težište: spoljašnje ponašenje softverskog sistema; intenzivna saradnja: klijent kontraktor specifikacija zahteva, model proizvoda ( product model ), itd. ( design ) Specifikacija strukture softvera (softverska arhitektura), specifikacija komponenti i njihovih veza softverska arhitektura, detaljni projekat, itd... Softverska arhitektura se popunjava : programiranje komponenti program (programski kod) komponenti i njihove integracije slučajevi za ( test cases ), protokoli za, itd. Kako je korisnik objasnio Kako je vođa projekta shvatio Kako ga je Kako je projekat bio komercijalista opisao dokumentvan Kako je softverski arhitekta projektovao Kako je naplaćeno Kako je programer napisao Kako ga je Tester ostavio Kako je korišćenje Šta je korisnik zaista bilo kasnije podržano želeo Izvor: nepoznat 15 18 3
ii definicija Iterativni fazni model ( Design ) Problemi? Korišćenje i i održavanje 19 22 Raspodela troškova u životnom ciklusu softvera Faze po Jacobson-u zahteva 3% Specifikacija 3% 5% Kodiranje 7% modula 8% zahteva Preliminarni Projekat ( design ) Detaljni projekat ( design ) Kodiranje Održavanje 67% Integraciono 7% jedinica ( unit testing ) Integracija Sistemski test Izvor: R. Klösch, H.Gall: Objektorientiertes Reverse Engineering. Springer, 1995 20 Jacobson: Object-oriented Software Engineering p. 32 23 Statistika grešaka: nastanak i ispravka zahtevi projektov anje implementacija 20 % 38 % 42 % 1 % 2 % 20 % 30 % 40 % 7 % ( review ) zahteva projektne dokumen tacije koda + jedinica programa ( unit test ) podsistema Kada su greške nastale sistema i prihvatljivosti ( acceptance test ) Greške tokom upotrebe Kada su otkrivene Specifikacija sistema Korisnički interfejs Integracija sistema Definicija podsistema Funkcionalni model podsistema Faze po Denert-u Konstrukcija sistema baza Modularnost Implemencija modula Specifikacija modula Konstrukcija modula Organizacija procesa Izvor: Software Metrics Symposium 1996, p. 176 sistema modula Denert: Software Engineering, Springer Verlag, 1992, p. 39 21 24 4
Component SKONTO is connected with the aaaaaaaaaskonto is aaaaaaaaaaaabatt aaaaaaaaaaaalookup IF kunde = nnnnnnn PlaubaTT, I problema Hijerarhija organization organizacije hierarchy Sirovi model Procesi zadataka Hijerarhija zadataka Faze u CASE-alatu MAESTRO II Requirements Definicija Definition zahteva procesa SEtec Korisnički interfejs Procesi funkcija Hijerarhija funkcija Design sistem Specifikacija interfejsa baze, Integracija & Test Logika IF kunde = 99999 programa CASE PlaubaTT = 1 integracije DB definicije, SQL GUI objekti Detailed Software Sirovi koncept Detaljni koncept Projekat Softverski sistem Concept Design proizvoda SEtec Client/Server OS/2, Motif MS-Windows UNIX/RDBs IBM MVS COBOL, CICS DB2 IMS DB/DC SNI BS2000 COBOL, UTM SESAM, UDS Faze po Balzert-u (detaljnije) I Razvoj softvera 1 Faza planiranja 2 Faza definicije 3 Faza projektovanja 4 Faza implementacije 5 Prihvatanje i uvođenje 6 Faza održavanja Izvor: SoftLab, Munich, MAESTRO II (najpoznatiji nemački CASE alat) 25 28 Unificirani model razvoja softvera Unified Software Development Process (USDP) Proces objektno-orijentisanog razvoja softvera po Jacobson-u, Booch-u, i Rumbaugh-u (1999) Zahtevi Deo fazа i definicija, u kome će biti detektovani osnovni slučajevi korišćenja: Dijagrami slučajeva korišćenja ( use case diagrams ) Deo fazа i definicija u kome će biti detektovane osnovne klase problema: Dijagrami klasa ( class diagrams ) 26 Fazni model u programu Space shuttle (NASA) OI verzija I K M O Q 1990 1992 1994 1996 1998 2000 Životni ciklus za svaki OI (Operacioni korak operational increment ) Č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 Razvoj Kontrola Priprema misije Korišćenje Izvor: M. Zelkovitz, I. Rus: ICSM 2001, p. 119 29 Faze po Balzert-u 1 Osnove Uvod i pregled V iranje složenih sistema 2 Objektno-orijentisano modeliranje Posebni fazni model I Upravljanje softverom I Razvoj softvera 1 Osnove 1 Faza planiranja III Obezbedjivanje kvaliteta 1 OSnove Početak projekta Šta je neobično? 2 3 Organizacija 4 Ljudi 2 Faza definicije 3 Faza projektovanja 4 Faza implementacije 2 Obezbedjivanje kvaliteta 3 Manualni metodi provere 4 Kvalitet procesa Konstrukcija proizvodnje Priprema za rad Proizvodnja 5 Vođstvo 5 Prihvatanje i uvodjenje 5 Kvalitet proizvoda - komponente 6 Kontrola 6 Faza održavanja 6 Kvalitet proizvoda sistem Kako interpretirati? Ugovor Početak proizvodnje Isporuka 1 Principi i metode IV Uporedni odeljci i pogledi 3 Ponovno 2 CASE korišćenje 4 Reorganizacija Balzert: Textbook of Software Technology vol. 1, 2001 1 godina Izvor: R.Bronsart, SEUH 1996 27 30 5
Samsoniteov fazni model 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 ( rapid prototyping ) Postupno napredovanje ka finalnom proizvodu (evolutivni razvoj softvera ( evolutionary software development )) 31 34 kofera Faze iterativnog prototipskog modela rešenja Utvrdjivanje problema Procena Implementiranje rešenja Sumarna procena & isporuka 32 Boyle: Design of Multimedia Learnnig, Prentice Hall Europe (1997), p. 186 35 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) Zahtevi Procena Studija izvodljivosti i poslovnih procesa Funkcionalne iteracije prototipova iteracije prototipova Uvodjenje sistema u korisničku okolinu 33 36 6
Esencija spiralnog modela Apstraktni model: meta model Apstrakcija 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,... 37 40 problema: ciljevi alternative Uvod u spiralni model Karakteristike faza? Fazni model kao specijalni slučaj spiralnog modela Korišćenje i održavanje problema rizika rizika: procena alternativa : konstrukcija proizvoda : sledeći koraci u projektu ( Revie 38 P r e g l e d jedan okret = jedna faza Procena prodaje faze Plan projekta analize Validacija definije projektovanjaproizvoda implementacije Integracije i GUIprototip Simulacija Projekatovanje softvera Integracija i sistema Instalacija Test prihvatljivosti Kodiranje i jedinica Pagel, Six p.72 41 Spiralni model po Boehm-u (1988) Evolucioni razvoj softvera kao specijalni slučaj spiralnog modela problema: Odredjivanje ciljeva, alternativa i dodatnih zahteva za svaki novi ciklus rizika: Procena alternativa; identifikacija i smanjenje rizika Korišćenje i održavanje problema rizika kraj ciklusa: P r e g l e d predvidjanje prodaje Plan projekta GUIprototip Planiranj e: sledećih koraka, tj. sledećeg ciklusa u spirali Napredovanje projekta po spiralnim ciklusima Implementacij Konstrukcija a: i tekućeg proizvoda 1. prototipa jedan okret = jedan prototip 2. prototipa Validacija prototipa Instalacija Test prihvatljivosti Revidirani projektni plan Prototip 1 Validacija prototipa Prototip n Koristan proizvod Pagel, Six p.73 39 42 7