Upload
ansob1
View
88
Download
1
Embed Size (px)
DESCRIPTION
Softverski procesi
Citation preview
" Š T A S E D O G A Đ A U ' Ž I V O T U ' S O F T V E R A "
Softverski inženjering
1
Životni ciklus softvera
Ciljevi predavanja
Softverski inženjering
2
Razmotriti 'životni ciklus' softvera Razumjeti softverski proces i njegove povezane
elemente Dovesti u vezu različite paradigme softverskog
inženjeringa
Slojevi softverskog inženjeringa
Softverski inženjering
3
fokus na "kvalitet"
model procesa
metode
alati
Softverski proces
Softverski inženjering
4
Aktivnosti u softverskim projektima Okarakteriziran općenitim procesnim okvirom
(common process framework) Okvirne aktivnosti (framework activity) – skupovi zadataka Krovne aktivnosti
"Zrelost procesa" (process maturity) omogućava razvoj kvalitetnih softverskih proizvoda
Općeniti procesni okvir
Softverski inženjering
5
Općeniti procesni okvirOkvirne aktivnosti
radni zadaciradni proizvodiprekretnice & rokovi isporukekontrolne tačke za QA
Krovne aktivnosti
Krovne aktivnosti
Softverski inženjering
6
Upravljanje softverskim projektom (software project management)
Formalni tehnički pregledi (formal technical review) Osiguranje kvaliteta softvera Upravljanje konfiguracijom softvera (software
configuration management) Priprema i produkcija dokumenta Upravljanje ponovnom upotrebom (reusability
management) Mjerenje Upravljanje rizikom (risk management)
Proces kao rješavanje problema
Softverski inženjering
7
statusquo
problemdefinition
technicaldevelopment
solutionintegration
Model procesa: Prilagodljivost
Softverski inženjering
8
Okvirne aktivnosti će uvijek biti primijenjene na svaki projekt ... MEĐUTIM
zadaci (i stepen strogosti) za svaku aktivnost će serazlikovati zavisno od: vrste projekta ("ulazna tačka" u model) karakteristika projekta procjene zdravog razuma; zajedničkog djelovanja projektnog
tima
Primarni cilj: Visok kvalitet
Softverski inženjering
9
Zapamtite:
Visok kvalitet = pravovremenost projekta
Zašto?
Manje ponovnog rada!
Sistematičan proces
Softverski inženjering
10
Problem
Modeli
Rješenje
Analiza
Dizajn
Razvoj
Testiranje
Generičke faze
Softverski inženjering
11
Faza definicije Fokus na ono 'šta' je softver
Faza razvoja Fokus na to 'kako' softver radi
Faza održavanja Fokus na 'izmjene' na softveru
Faza definicije
Softverski inženjering
12
Identificira informacije koje treba obraditi Identificira ponašanje sistema – funkcije i
performansu Određuje ograničenja, interfejse, kriterije validacije Glavni zadaci: Inženjering sistema Planiranje softverskog projekta Analiza zahtjeva
Faza razvoja
Softverski inženjering
13
Definira strukture podataka, provedbu djelovanja (function implementation), proceduralne detalje, interfejse
Prevodi dizajn u programski jezik Kako se testiranje obavlja Glavni zadaci: Dizajn softvera Generiranje kôda Testiranje softvera
Faza održavanja
Softverski inženjering
14
Ponovno primjenjuje faze definicije i razvoja na postojeći softver
Vrste izmjena: Korekcija Adaptacija Poboljšanje Prevencija
Vodopadni model
Softverski inženjering
15
System Engineering
Analysis
Design
Code
Testing
Maintenance
Karakteristike vodopadnog modela
Softverski inženjering
16
Klasični životni ciklus – najstarija i najviše korištenaparadigma
Aktivnosti 'teku' iz jedne faze u drugu Ako postoje korekcije, vraća se na prethodnu fazu i
'teče' otuda ponovo Glavne prednosti: Dobar za planiranje i dobro
definirane/ponovljene projekte
Problemi vodopadnog modela
Softverski inženjering
17
Često se stvarni projekti izvršavaju u sekvencama Svi zahtjevi možda neće biti eksplicitno formulirani
od kupca Kupac vidi samo rezultate nakon nekog vremena Razvojni inženjeri često kasne u određenim fazama
Prototipni model
Softverski inženjering
18
Kraj
Prikupljanje iprečišćavanje
zahtjeva
Izgradnjaprototipa
Brzidizajn
Korisničkaevaluacija
Prečišćavanjeprototipa
Inženjerskiproizvod
Početak
listento
customerbuild/revisemock-up
customertest-drivesmock-up
Karakteristike prototipnog modela
Softverski inženjering
19
Razvojni inženjer i kupac određuju ciljeve i nacrt zahtjeva (draft requirements)
Kupac brzo producira i evaluira prototip Prototip se zatim prečišćava i ponovo evaluira Proces se ponavlja, prije razvoja finalnog proizvoda Prednosti: Učešće kupca i bolji zahtjevi
Problemi prototipnog modela
Softverski inženjering
20
Problem 1: Kupac može vidjeti prototip kao radnimodel i očekivati brze rezultate
Problem 2: Brza izrada prototipa, npr. različitoperativni sistem ili programski jezik
Brzi razvoj aplikacija(Rapid Application Development – RAD)
Softverski inženjering
21
Modeliranjeposlovanja
Modeliranjepodataka
Modeliranjeprocesa
Stvaranjeaplikacije
Testiranje iTurnover
Tim #1 Modeliranjeposlovanja
Modeliranjepodataka
Modeliranjeprocesa
Stvaranjeaplikacije
Testiranje iTurnover
Tim #2
Vremenski period
Karakteristike RAD-a
Softverski inženjering
22
"High-speed" verzija vodopadnog modela Prvenstveno se koristi za aplikacije informacionih
sistema Zahtjevi se dobro razumiju, a potpuno
funkcionalan sistem se proizvede za kratko vrijeme Aplikacija je modularizirana – glavne funkcije
mogu biti završene za 3 mjeseca Zasebni timovi kompletiraju funkcije, a zatim ih
integriraju u cjelinu Zahtijeva ljudske resurse i predanost poslu
Inkrementalni model
Softverski inženjering
23
analysis design code test
System/informationengineering
analysis design code test
analysis design code test
analysis design code test
increment 2
increment 3
increment 4
increment 1
delivery of1st increment
delivery of2nd increment
delivery of3rd increment
delivery of4th increment
calendar time
Karakteristike inkrementalnog modela
Softverski inženjering
24
Softver se razdvaja u različite "inkremente" –potpune radne dijelove
Fokus na isporuci operativnog proizvoda sa svakiminkrementom – može biti evaluiran
Koristan kada nedostaje osoblja i može bitipredviđen za upravljanje tehničkim rizicima, npr. čekanje na novi hardver
Spiralni model
Softverski inženjering
25
CustomerCommunication
Planning
Construction & ReleaseCustomerEvaluation
Engineering
Risk Analysis
Karakteristike spiralnog modela
Softverski inženjering
26
Prvobitno ga je predložio Boehm, povezuje iterativnuprirodu prototypinga i sistematične aspektevodopadnog modela
Softver se razvija u serijama inkrementalnih izdanja Svaka iteracija proizvodi potpuniji proizvod Bolji menadžment pomoću analize rizika
Problemi spiralnog modela
Softverski inženjering
27
Može biti teško uvjeriti kupce da je razvoj kontrolabilan
Zahtijeva ekspertizu procjene rizika – glavni rizik će prouzrokovati probleme ako nije identificiran
Relativno nov i rijedak u praksi – ne može se odreditiperformansa
Komponentni model
Softverski inženjering
28
Identificiratikomponente
kandidate
Potražitikomponenteu biblioteci
Raspoloživo?
Ekstrahovatikomponente
Izgraditikomponente
Konstruiratisistem
da
ne
Karakteristike komponentnog modela
Softverski inženjering
29
Upotreba objektno-orijentirane tehnologije Komponente – klase koje enkapsuliraju i podatke i
algoritme Komponente se razvijaju da bi se ponovo mogle
koristiti Paradigma slična spiralnom modelu, ali inženjerska
aktivnost uključuje komponente Sistem se proizvodi sastavljanjem ispravnih
komponenti
Tehnike četvrte generacije (4GT)
Softverski inženjering
30
"Design" Strategy
Testing
Requirements gathering
Implementation using 4GL
Karakteristike 4GT-a
Softverski inženjering
31
Upotreba softverskih alata koji omogućavajusoftverskom inženjeru da specificira s/w karakteristike na višem nivou
Alati generiraju kôdove temeljene na specifikaciji Više vremena u dizajnu i testiranju – povećanje
produktivnosti Alati možda neće biti jednostavni za upotrebu,
generirani kôdovi možda neće biti efikasni
Ostali modeli procesa
Softverski inženjering
32
Komponentni model (component assembly model) – postupak koji treba primijeniti kada je ponovna upotreba cilj razvoja
Model konkurentnih procesa (concurrent process model) – prepoznaje da će različiti dijeloviprojekta biti na različitim mjestima u procesu
Formalne metode – postupak koji treba primijenitikada treba razviti matematsku specifikaciju
Softverski inženjering "bez greške" (cleanroom software engineering) – naglašava detekciju greške prije testiranja
Zaključak
Softverski inženjering
33
Paradigma korištena za razvoj softvera zavisi ododređenog broja faktora Ljudi – osoblje i korisnici Softverski proizvod Raspoloživi alati Okruženje
Postojeći modeli učinit će proces razvoja jasnijim, ali oni mogu prerasti u nove paradigme
Reference
Softverski inženjering
34
"Software Engineering: A Practitioner's Approach"5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001
"Software Engineering" by Ian Sommerville, Addison-Wesley, 2001