You are on page 1of 34

ivotni ciklus softvera

"TA SE DOGAA U 'IVOTU' SOFTVERA"

Softverski inenjering
Ciljevi predavanja
2

Razmotriti 'ivotni ciklus' softvera


Razumjeti softverski proces i njegove povezane
elemente
Dovesti u vezu razliite paradigme softverskog
inenjeringa

Softverski inenjering
Slojevi softverskog inenjeringa
3

Softverski inenjering je slojevita tehnologija.


Bilo koji inenjerski pristup (ukljuujui i softverski
inenjering) mora poivati na opredijeljenosti
organizacije za kvalitet.

alati
metode
model procesa
fokus na "kvalitet"

Softverski inenjering
Softverski proces
4

Aktivnosti u softverskim projektima


Okarakteriziran zajednikim procesnim
frameworkom (engl. common process framework)
Okvirne aktivnosti (engl. framework activities) skupovi
zadataka
Krovne aktivnosti (engl. umbrella activities)
Framework je kombinacija komponenti koje se mogu
ukljuiti u aplikaciju
"Zrelost procesa" (engl. process maturity)
omoguava razvoj kvalitetnih softverskih proizvoda

Softverski inenjering
Zajedniki procesni framework
5

Zajedniki procesni framework


Framework aktivnosti
radni zadaci
radni proizvodi
milestones i rokovi isporuke
kontrolne take za QA

Krovne aktivnosti

Softverski inenjering
Krovne aktivnosti
6

Upravljanje softverskim projektom (engl. software project


management)
Formalni tehniki pregledi (engl. formal technical review)
Osiguranje kvaliteta softvera (engl. software quality
assurance)
Upravljanje konfiguracijom softvera (engl. software
configuration management)
Priprema i produkcija dokumenta
Upravljanje ponovnom upotrebom (engl. reusability
management)
Mjerenje
Upravljanje rizikom (engl. risk management)
Softverski inenjering
Proces kao rjeavanje problema
7

Softverski inenjering
Model procesa: Prilagodljivost
8

Okvirne aktivnosti e uvijek biti primijenjene na


svaki projekt ... MEUTIM
zadaci (i stepen strogoe) za svaku aktivnost e se
razlikovati zavisno od:
vrste projekta ("ulazna taka" u model)
karakteristika projekta
procjene zdravog razuma; zajednikog djelovanja projektnog
tima

Softverski inenjering
Primarni cilj: Visok kvalitet
9

Zapamtite:

Visok kvalitet = pravovremenost projekta

Zato?

Manje ponovnog rada!

Softverski inenjering
Sistematian proces
10

Problem
Analiza

Dizajn
Modeli

Razvoj

Rjeenje
Testiranje

Softverski inenjering
Generike faze
11

Rad povezan sa softverskim inenjeringom moe biti


kategoriziran u tri generike faze, bez obzira na
podruje primjene, veliinu projekta ili sloenost.
Faza definicije
Fokus na to "ta" je softver
Faza razvoja
Fokus na to "kako" softver radi

Faza odravanja
Fokus na "promjene" na softveru

Softverski inenjering
Faza definicije
12

Tokom definicije softverski inenjer pokuava identificirati


informacije koje treba obraditi, funkciju i performansu koje se
ele, kakvo ponaanje sistema se moe oekivati, kakvi
interfejsi trebaju biti utemeljeni, koja ogranienja dizajna
postoje, te koji su kriteriji validacije potrebni da bi se
definirao uspjean sistem.
Mada e se metode primijenjene tokom faze definicije
razlikovati u zavisnosti od paradigme softverskog inenjeringa
koja se primjenjuje, tri glavna zadatka e se dogoditi u nekom
obliku:
Inenjering sistema
Planiranje softverskog projekta
Analiza zahtjeva
Softverski inenjering
Faza razvoja
13

Tokom razvoja softverski inenjer pokuava definirati kako


podaci trebaju biti strukturirani, kako funkcija treba biti
implementirana unutar softverske arhitekture, kako trebaju
biti implementirani proceduralni detalji, kako interfejsi
trebaju biti karakterizirani, kako e dizajn biti preveden u
programski jezik (ili neproceduralni jezik), te kako e biti
izvedeno testiranje.
Metode primijenjene tokom razvojne faze e se razlikovati, ali
bi se uvijek trebala dogoditi tri specifina tehnika zadatka:
Dizajn softvera
Generiranje kda
Testiranje softvera

Softverski inenjering
Faza odravanja
14

Ponovno primjenjuje korake pri fazama definicije i


razvoja, ali to radi u kontekstu postojeeg softvera
Vrste promjena:
Korekcija
Adaptacija
Poboljanje
Prevencija

Softverski inenjering
Vodopadni model
15

System
Engineering

Analysis

Design

Code

Testing

Maintenance

Softverski inenjering
Karakteristike vodopadnog modela
16

Klasini ivotni ciklus najstarija i najvie koritena


paradigma softverskog inenjeringa
Aktivnosti "teku" iz jedne faze u drugu
Ako postoje korekcije, vraa se na prethodnu fazu i
"tee" otuda ponovo
Glavne prednosti: Dobar za planiranje i dobro
definirane/ponovljene projekte

Softverski inenjering
Problemi vodopadnog modela
17

esto se stvarni projekti izvravaju u sekvencama


Svi zahtjevi moda nee biti eksplicitno formulirani
od strane kupca
Kupac samo vidi rezultate nakon nekog vremena
Razvojni inenjeri esto kasne u odreenim fazama

Softverski inenjering
Prototipni model
18

Poetak

Prikupljanje i listen
Brzi Izgradnja to build/revise
preiavanje customer mock-up
zahtjeva dizajn prototipa

Inenjerski Preiavanje Korisnika customer


test-drives
proizvod prototipa evaluacija mock-up

Kraj

Softverski inenjering
Karakteristike prototipnog modela
19

Razvojni inenjer i kupac utvruju ciljeve za softver i


nacrt zahtjeva (engl. draft requirements)
Zatim se dogaa "brzi dizajn"
Brzi dizajn dovodi do konstrukcije prototipa
Kupac evaluira prototip; prototip se koristi i za
preiavanje zahtjeva za softver
Postupak se ponavlja, prije razvoja finalnog
proizvoda
Prednosti: Uee kupca i bolji zahtjevi

Softverski inenjering
Problemi prototipnog modela
20

Problem 1: Kupac moe vidjeti prototip kao radni


model i oekivati brze rezultate
Problem 2: Razvojni inenjeri esto prave
kompromise u implementaciji kako bi brzo izradili
prototip, npr. koriste neprikladan operativni sistem
ili programski jezik

Softverski inenjering
Brzi razvoj aplikacija
(engl. Rapid Application Development RAD)
21

Tim #2
Tim #1 Modeliranje
poslovanja
Modeliranje Modeliranje
poslovanja podataka
Modeliranje
Modeliranje procesa
podataka Stvaranje
aplikacije
Modeliranje Testiranje i
procesa Turnover

Stvaranje
aplikacije
Testiranje i
Vremenski period Turnover

Softverski inenjering
Karakteristike RAD-a
22

"High-speed" verzija vodopadnog modela u kojoj se brzi


razvoj postie koritenjem izgradnje bazirane na
komponentama
Prvenstveno se koristi za aplikacije informacionih sistema
Ako se zahtjevi dobro shvate, potpuno funkcionalan sistem
se proizvede za vrlo kratko vrijeme (npr. 60 do 90 dana)
Ako poslovna aplikacija moe biti modularizirana na neki
nain koji omoguava da svaka glavna funkcija bude
zavrena za manje od 3 mjeseca, ona je kandidat za RAD
Zasebni timovi dovravaju funkcije, a zatim ih integriraju u
cjelinu
Zahtijeva ljudske resurse i predanost poslu
Softverski inenjering
Inkrementalni model
23

System/information increment 1
engineering

analysis design code test delivery of


1st increment

analysis design code test delivery of


increment 2
2nd increment

increment 3 analysis design code test delivery of


3rd increment

increment 4 analysis design code test

delivery of
4th increment

calendar time
Softverski inenjering
Karakteristike inkrementalnog modela
24

Inkrementalni model kombinira elemente linearnog


sekvencijalnog modela s iterativnom filozofijom
prototypinga
Softver se razdvaja u razliite "inkremente" potpune
radne dijelove
Inkrementalni model se fokusira na isporuku
operativnog proizvoda sa svakim inkrementom. Prijanji
inkrementi pruaju platformu za evaluaciju od strane
korisnika
Koristan kada nedostaje osoblja i moe biti predvien za
upravljanje tehnikim rizicima, npr. ekanje na novi
hardver
Softverski inenjering
Spiralni model
25

Planning
Risk Analysis

Customer
Communication

Engineering

Customer
Evaluation Construction & Release

Softverski inenjering
Karakteristike spiralnog modela
26

Prvobitno ga je predloio Boehm, povezuje iterativnu


prirodu prototypinga s kontroliranim i sistematskim
aspektima vodopadnog modela
Softver se razvija u nizu inkrementalnih izdanja
Tokom ranih iteracija, inkrementalno izdanje moe
biti model na papiru (engl. paper model) ili prototip
Tokom kasnijih iteracija proizvode se sve potpunije
verzije projektiranog sistema
Bolje upravljanje pomou analize rizika

Softverski inenjering
Problemi spiralnog modela
27

Moe biti teko uvjeriti kupce da je razvoj


kontrolabilan
Zahtijeva ekspertizu procjene rizika ukoliko glavni
rizik nije razotkriven i dirigiran, problemi e se
sigurno dogoditi
Relativno nov i rijedak u praksi bie potrebno
odreeno vrijeme prije nego to se efikasnost ove
vane paradigme bude mogla odrediti sa apsolutnom
sigurnou

Softverski inenjering
Model komponentno-baziranog razvoja
28

Ekstrahovati
komponente
da
Identificirati Potraiti
komponente komponente Raspoloivo? Konstruirati
kandidate u biblioteci sistem
ne

Izgraditi
komponente

Softverski inenjering
Karakteristike CBD modela
29

Upotreba objektno-orijentirane tehnologije


Komponente klase koje enkapsuliraju i podatke i
algoritme
Komponente se razvijaju da bi se mogle ponovo
koristiti
Paradigma slina spiralnom modelu, ali inenjerska
aktivnost ukljuuje komponente
Sistem se proizvodi sastavljanjem ispravnih
komponenti

Softverski inenjering
Tehnike etvrte generacije (4GT)
30

Requirements
gathering

"Design"
Strategy

Implementation
using 4GL

Testing

Softverski inenjering
Karakteristike 4GT-a
31

Upotreba softverskih alata koji omoguavaju softverskom


inenjeru da specificira karakteristike softvera na viem
nivou
Alati automatski generiraju izvorne kdove temeljene na
specifikaciji
Zagovornici prijavljuju dramatino skraenje vremena
razvoja softvera i znatno poboljanu produktivnost za
ljude koji grade softver
Oponenti prijavljuju da trenutni 4GT alati nisu laki za
upotrebu od programskih jezika, a da je rezultirajui
izvorni kd proizveden pomou takvih alata neefikasan

Softverski inenjering
Ostali modeli procesa
32

Komponentni model (engl. component assembly


model) postupak koji treba primijeniti kada je ponovna
upotreba cilj razvoja
Model istovremenih procesa (engl. concurrent
process model) prepoznaje da e razliiti dijelovi
projekta biti na razliitim mjestima u procesu
Formalne metode postupak koji treba primijeniti kada
treba razviti matematiku specifikaciju raunarskog
softvera
Softverski inenjering "bez greke" (engl.
cleanroom software engineering) naglaava
detekciju greke prije testiranja
Softverski inenjering
Zakljuak
33

Paradigma koritena za razvoj softvera zavisi od


odreenog broja faktora
Ljudi osoblje i korisnici
Softverski proizvod
Raspoloivi alati
Okruenje
Postojei modeli uinit e proces razvoja jasnijim, ali
oni mogu prerasti u nove paradigme

Softverski inenjering
Reference
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

Softverski inenjering

You might also like