Inženjerski pristupInženjerski pristup razvoja razvoja ... · odre đeni cilj eni cilj -...

44
Inženjerski pristup Inženjerski pristup razvoja razvoja programskih aplikacija programskih aplikacija ili ili Software Engineering Software Engineering 1 MS.CS Petar Popić, software engineer .CS Petar Popić, software engineer [email protected] [email protected] Copyright © Petar Popic Software Engineering

Transcript of Inženjerski pristupInženjerski pristup razvoja razvoja ... · odre đeni cilj eni cilj -...

Inženjerski pristupInženjerski pristup razvojarazvojaprogramskih aplikacijaprogramskih aplikacija

iliiliSoftware EngineeringSoftware Engineering

1

MMSS.CS Petar Popić, software engineer.CS Petar Popić, software engineer

[email protected]@gmail.com

Copyright © Petar Popic Software Engineering

Software EngineeringSoftware Engineering

MS.CS. Petar Popić, Software EngineerMS.CS. Petar Popić, Software Engineer

�� Diplomirao 1999, Filozofski Fakultet u Rijeci, smjer matematika i informatikaDiplomirao 1999, Filozofski Fakultet u Rijeci, smjer matematika i informatika

�� 2003 koristim istraživačku školarinu West Virginia University 2003 koristim istraživačku školarinu West Virginia University –– US, mentor US, mentor

2

�� 2003 koristim istraživačku školarinu West Virginia University 2003 koristim istraživačku školarinu West Virginia University –– US, mentor US, mentor Dr. Bojan Čukić Dr. Bojan Čukić -- laboratorij za istraživanje pouzdanosti aplikacija koje su laboratorij za istraživanje pouzdanosti aplikacija koje su dizajnirane za kritične sustave (High Assurance Systems Research Center) dizajnirane za kritične sustave (High Assurance Systems Research Center) Lane Department of Computer Science & Electrical Engineering at WVU,Lane Department of Computer Science & Electrical Engineering at WVU,

�� Magistrirao (Master of Science in Computer Science) 2005, West Virginia Magistrirao (Master of Science in Computer Science) 2005, West Virginia University, područje računalstvo University, područje računalstvo –– magistrirao na projektu istraživanja magistrirao na projektu istraživanja širenja greške (the error propagation) između programskih komponenti u širenja greške (the error propagation) između programskih komponenti u aplikacijama dizajnirane za kritične sustaveaplikacijama dizajnirane za kritične sustave..

Copyright © Petar Popic Software Engineering

Software EngineeringSoftware Engineering

�� Teme:Teme:�� Pregled i povijest Pregled i povijest Software Engineering Software Engineering discipline,discipline,�� Software process,Software process,�� Software process models,Software process models,�� TimoviTimovi--projektiprojekti--upravljanjeupravljanje--koncept,koncept,�� Requirements engineering,Requirements engineering,�� Requirements elicitation tehnike,Requirements elicitation tehnike,�� Specifikacija definiranih zahtjeva,Specifikacija definiranih zahtjeva,�� Strukturna analiza,Strukturna analiza,

3

�� Strukturna analiza,Strukturna analiza,�� Objektno orjentirani koncept i principi,Objektno orjentirani koncept i principi,�� Objektno orjentirana analiza,Objektno orjentirana analiza,�� Koncepti i principi SW dizajna,Koncepti i principi SW dizajna,�� Architectural design,Architectural design,�� Objektno orjentirani dizajn,Objektno orjentirani dizajn,�� Software Quality Assurance,Software Quality Assurance,�� Verifikacija i Validacija,Verifikacija i Validacija,�� Software testing,Software testing,�� Održavanje,Održavanje,�� Planiranje i procjena.Planiranje i procjena.

Copyright © Petar Popic Software Engineering

SW processSW process

�� PregledPregled

Faze Faze SW procesaSW procesa

4

�� Faze Faze SW procesaSW procesa

�� Unaprjeđenje procesaUnaprjeđenje procesa

Copyright © Petar Popic Software Engineering

SW processSW process

�� SW proces označava način na koji je SW SW proces označava način na koji je SW proizvedenproizveden

�� Kad razvijate proizvod, vrlo je važno prolaziti kroz Kad razvijate proizvod, vrlo je važno prolaziti kroz seriju očekivanih koraka. seriju očekivanih koraka.

�� Ti koraci nam služe kao putokaz koji nam pomažu kreirati Ti koraci nam služe kao putokaz koji nam pomažu kreirati proizvod visoke kvalitete unutar zadanih rokova. proizvod visoke kvalitete unutar zadanih rokova.

5

proizvod visoke kvalitete unutar zadanih rokova. proizvod visoke kvalitete unutar zadanih rokova.

�� Taj putokaz se zove SW processTaj putokaz se zove SW process

�� Proces ovisi o SW proizvodu Proces ovisi o SW proizvodu –– proces koji je pogodan proces koji je pogodan za razvoj sustava u letjelicama je potpuno drugačiji od za razvoj sustava u letjelicama je potpuno drugačiji od onog koji je prikladan za razvoj web stranicaonog koji je prikladan za razvoj web stranica

�� Proces definira tko što radi, kad i kako da se dostigne Proces definira tko što radi, kad i kako da se dostigne određeni cilj određeni cilj -- Jacobson, Booch, Rumbaugh Jacobson, Booch, Rumbaugh

Copyright © Petar Popic Software Engineering

SW process i SW EngineeringSW process i SW Engineering

�� Da li se SW proces podudara sa Da li se SW proces podudara sa SW SW engineeringomengineeringom??

�� I da i neI da i ne�� Kad koristimo inženjerski pristup razvoja SW aplikacija (SW Kad koristimo inženjerski pristup razvoja SW aplikacija (SW

Engineering), tada pratimo korake u procesu razvoja, dakle Engineering), tada pratimo korake u procesu razvoja, dakle

6

Engineering), tada pratimo korake u procesu razvoja, dakle Engineering), tada pratimo korake u procesu razvoja, dakle koristimo pritup SW procesa,koristimo pritup SW procesa,

�� Ali SW engineering u sebi sadržava tehnologije koje Ali SW engineering u sebi sadržava tehnologije koje popunjavaju proces: tehničke metode i automatizirane alate.popunjavaju proces: tehničke metode i automatizirane alate.

�� Metode omogućuju tehnički opis “How to” za razvoj softwareMetode omogućuju tehnički opis “How to” za razvoj software--aa

�� Alati omogućuju automatiziranu ili poluautomatiziranu podršku Alati omogućuju automatiziranu ili poluautomatiziranu podršku za proces i metodeza proces i metode

�� Software proces je ljepilo koje spaja te dvije tehnologije Software proces je ljepilo koje spaja te dvije tehnologije

Copyright © Petar Popic Software Engineering

SW process SW process -- učesniciučesnici

�� Klijent, programer i korisnikKlijent, programer i korisnik

�� Klijent Klijent

�� Pojedinac ili organizacija koja želi da se razvije Pojedinac ili organizacija koja želi da se razvije proizvodproizvod

7

proizvodproizvod

�� ProgrameriProgrameri

�� Članovi organizacije odgovorni za razvoj proizvodaČlanovi organizacije odgovorni za razvoj proizvoda

�� KorisniciKorisnici

�� Osobe u čije ime je klijent naručio proizvod i koji će Osobe u čije ime je klijent naručio proizvod i koji će isti koristitiisti koristiti

Copyright © Petar Popic Software Engineering

SW processSW process

�� Klijent, programer i korisnik (cont)Klijent, programer i korisnik (cont)

�� Razvoj softwareRazvoj software--a a –– svi aspekti proizvodnje svi aspekti proizvodnje softwaresoftware--a koji postoje prije faze održavanjaa koji postoje prije faze održavanja

�� Unutarnji razvoj softwareUnutarnji razvoj software--aa

8

�� Unutarnji razvoj softwareUnutarnji razvoj software--aa

�� I klijent i programeri potječu iz iste organizacijeI klijent i programeri potječu iz iste organizacije

�� Contract software Contract software �� Organizacije iz koje potječu klijent i programeri su Organizacije iz koje potječu klijent i programeri su

potpuno neovisnepotpuno neovisne

�� Custom SW i ComponentsCustom SW i Components--offoff--thethe--shelfs shelfs (COTS)(COTS)

Copyright © Petar Popic Software Engineering

SW processSW process

�� Faze SW procesaFaze SW procesa1.1. Requirements faza Requirements faza ili faza pronalaženja i definiranja ili faza pronalaženja i definiranja zahtjeva zahtjeva

klijenta i korisnikaklijenta i korisnika

2.2. Specification faza Specification faza ili faza specificiranja pronađenih i definiranih ili faza specificiranja pronađenih i definiranih zahtjeva klijentazahtjeva klijenta

3.3. Dizajn fazaDizajn faza

4.4. Faza implementacijeFaza implementacije

9

4.4. Faza implementacijeFaza implementacije

5.5. Faza integracije (paralelno sa 4)Faza integracije (paralelno sa 4)

6.6. Faza održavanja ili povlačenje iz upotrebeFaza održavanja ili povlačenje iz upotrebe

�� Testiranje i pisanje dokumentacije su aktivnosti koje se Testiranje i pisanje dokumentacije su aktivnosti koje se morajumoraju provoditi tijekom svih fazaprovoditi tijekom svih faza

Copyright © Petar Popic Software Engineering

SW processSW process

�� Requirements faza ili faza pronalaženja i definiranja Requirements faza ili faza pronalaženja i definiranja zahtjeva klijenta i korisnikazahtjeva klijenta i korisnika�� U toj fazi razmatra se SW proizvod kroz ekonomsku opravdanostU toj fazi razmatra se SW proizvod kroz ekonomsku opravdanost�� Koncept: Koncept:

�� Odredi što klijentu trebaOdredi što klijentu treba�� Odredi postojeća ograničenjaOdredi postojeća ograničenja

RokoviRokovi

10

�� RokoviRokovi�� TroškoviTroškovi�� Pouzdanost, dostupnost, sigurnost, zaštita, performancePouzdanost, dostupnost, sigurnost, zaštita, performance

�� Pronalaženje zahtjeva je iterativan proces koji ima svoje korake. Pronalaženje zahtjeva je iterativan proces koji ima svoje korake. Ako u toj fazi koristimo inženjerski pristup tada smo uvelike Ako u toj fazi koristimo inženjerski pristup tada smo uvelike povećali mogućnost da se je većina zahtjeva definirala na povećali mogućnost da se je većina zahtjeva definirala na samom početku razvoja proizvoda. Inžinjerski pristup nam samom početku razvoja proizvoda. Inžinjerski pristup nam omogućuje i kontroliran način za dodavanje novih zahtjeva i omogućuje i kontroliran način za dodavanje novih zahtjeva i prepravke postojećih.prepravke postojećih.

�� U većini slučajeva nemoguće je sve zahtjeve odmah definirati U većini slučajeva nemoguće je sve zahtjeve odmah definirati

Copyright © Petar Popic Software Engineering

SW processSW process

�� Requirements faza ili faza pronalaženja i Requirements faza ili faza pronalaženja i definiranja zahtjeva klijenta i korisnikadefiniranja zahtjeva klijenta i korisnika (cont)(cont)

�� Rapid prototypingRapid prototyping

�� To je SW koji u sebi već sadrži većinu To je SW koji u sebi već sadrži većinu funkcionalnosti funkcionalnosti krajnjeg proizvodakrajnjeg proizvoda ali izostavlja aspekte koji su nevidljivi ali izostavlja aspekte koji su nevidljivi klijentu (klijentu (file updatingfile updating, , exception handling exception handling ...)...)

11

klijentu (klijentu (file updatingfile updating, , exception handling exception handling ...)...)

�� Klijent i korisnik isprobavaju i experimentiraju sa prototipom Klijent i korisnik isprobavaju i experimentiraju sa prototipom radi određivanja da li ispunjavanjihove potrebe i očekivanjaradi određivanja da li ispunjavanjihove potrebe i očekivanja

�� Klasična shema pronalaženja zahtjeva kroz poznate Klasična shema pronalaženja zahtjeva kroz poznate elicitation metode elicitation metode ((interview, task analysis, use interview, task analysis, use cases..cases...).)

�� Dokument zahtjeva Dokument zahtjeva –– odobreno od klijenta, izabranih odobreno od klijenta, izabranih korisnika, i razvojnog timakorisnika, i razvojnog tima

Copyright © Petar Popic Software Engineering

SW processSW process

�� Specification faza ili faza specificiranja Specification faza ili faza specificiranja pronađenih i definiranih zahtjeva klijentapronađenih i definiranih zahtjeva klijenta

�� Točno i nedvojbeno daje opis funkcionalnosti proizvodaTočno i nedvojbeno daje opis funkcionalnosti proizvoda

�� Navodi Navodi sva ograničenja koje proizvod posjedujesva ograničenja koje proizvod posjeduje

�� Uključuje sve Uključuje sve ulazne parametre ulazne parametre proizvoda kao i očekivane proizvoda kao i očekivane

12

�� Uključuje sve Uključuje sve ulazne parametre ulazne parametre proizvoda kao i očekivane proizvoda kao i očekivane izlazne parametreizlazne parametre

�� To je pravno valjan dokument i ne smije u sebi To je pravno valjan dokument i ne smije u sebi sadržavati izraze i fraze poput “optimalno”, sadržavati izraze i fraze poput “optimalno”, “prikladno” ili “98% završeno”“prikladno” ili “98% završeno”

Copyright © Petar Popic Software Engineering

SW processSW process

�� Specification faza ili faza specificiranja Specification faza ili faza specificiranja pronađenih i definiranih zahtjeva klijenta (cont)pronađenih i definiranih zahtjeva klijenta (cont)

�� Specifikacije ne smiju biti Specifikacije ne smiju biti �� DvosmisleneDvosmislene

NekompletneNekompletne

13

�� NekompletneNekompletne

�� KontradiktorneKontradiktorne

�� Nakon što su se zahtjevi kompletirali i ovjerili tada Nakon što su se zahtjevi kompletirali i ovjerili tada započinje detaljna planiranja i procjenezapočinje detaljna planiranja i procjene

�� Koliko će trebati vremena za razvoj?Koliko će trebati vremena za razvoj?

�� Koliko će koštati?Koliko će koštati?

Copyright © Petar Popic Software Engineering

SW processSW process

�� Specification faza ili faza specificiranja Specification faza ili faza specificiranja pronađenih i definiranih zahtjeva klijenta pronađenih i definiranih zahtjeva klijenta (cont)(cont)�� Software Project Management Plan Software Project Management Plan (SPMP)(SPMP)

14

�� Izražava odvojene faze u procesu razvoja i Izražava odvojene faze u procesu razvoja i pokazuje koji članovi su uključeni i koje zadatke, pokazuje koji članovi su uključeni i koje zadatke, kao i rokove za zaključivanje svih zadatakakao i rokove za zaključivanje svih zadataka

�� Glavne sastojnice SPMPGlavne sastojnice SPMP�� Isporuka Isporuka –– što će klijent dobitišto će klijent dobiti

�� Rokovi Rokovi –– kad će se isporučiti klijentukad će se isporučiti klijentu

�� Budget Budget –– koliko će koštatikoliko će koštati

Copyright © Petar Popic Software Engineering

SW processSW process

�� Specification faza ili faza specificiranja Specification faza ili faza specificiranja pronađenih i definiranih zahtjeva klijenta (cont)pronađenih i definiranih zahtjeva klijenta (cont)

�� SPMP uključuje:SPMP uključuje:�� Life cycle model Life cycle model koji će se koristitikoji će se koristiti

Organizacijsku strukturuOrganizacijsku strukturu

15

�� Organizacijsku strukturuOrganizacijsku strukturu

�� Odgovornosti projektaOdgovornosti projekta

�� Ciljevi i prioriteti upravljanjaCiljevi i prioriteti upravljanja

�� CASE alati CASE alati koji će se koristitikoji će se koristiti

�� Detaljni rasporedDetaljni raspored

�� BudgetBudget

�� Podjela resursaPodjela resursa

Copyright © Petar Popic Software Engineering

SW processSW process

�� Specification faza ili faza specificiranja pronađenih i Specification faza ili faza specificiranja pronađenih i definiranih zahtjeva klijenta (cont)definiranih zahtjeva klijenta (cont)�� Software Quality AssuranceSoftware Quality Assurance (SQA) grupa je odgovorna za (SQA) grupa je odgovorna za

pažljivo i detaljno pregledavanje specifikacijapažljivo i detaljno pregledavanje specifikacija�� Pregledavaju kontradikcije, nejasnoće i necjelovitostPregledavaju kontradikcije, nejasnoće i necjelovitost

�� Osiguravaju mogućnost implementacije specificiranih zahtjevaOsiguravaju mogućnost implementacije specificiranih zahtjeva

16

�� Osiguravaju mogućnost implementacije specificiranih zahtjevaOsiguravaju mogućnost implementacije specificiranih zahtjeva

�� Popraćuju svaku izjavu u zahtjevu nazad do Popraćuju svaku izjavu u zahtjevu nazad do SRS dokumenta SRS dokumenta ili ili protoptipaprotoptipa

�� Kontrole odrađuju pomoću metoda za inspekcije i pregledavanja Kontrole odrađuju pomoću metoda za inspekcije i pregledavanja ((SQA, req. analitičar SQA, req. analitičar i klijent)i klijent)

�� SQA grupa bi trebala pregledati i verificirati SPMP SQA grupa bi trebala pregledati i verificirati SPMP

�� Dokumentacije koje ova faza mora generirati su SRS i SPMP Dokumentacije koje ova faza mora generirati su SRS i SPMP (ukoliko isti nije neovisno napisan od strane (ukoliko isti nije neovisno napisan od strane project manageraproject managera))

Copyright © Petar Popic Software Engineering

SW processSW process

�� Dizajn fazaDizajn faza�� Specifikacije Specifikacije –– što i zašto?što i zašto?

�� Dizajn Dizajn –– kako?kako?

�� Architectural dizajnArchitectural dizajn

17

�� Architectural dizajnArchitectural dizajn�� Razgrađuje proizvod na module (neovisne dijelove Razgrađuje proizvod na module (neovisne dijelove

koda sa odlično definiranim koda sa odlično definiranim interfaceinterface--imaima prema prema ostatku proizvoda)ostatku proizvoda)

�� Detaljan dizajnDetaljan dizajn�� Dizajnira svaki modul: strukture podataka, Dizajnira svaki modul: strukture podataka,

algoritmealgoritme

Copyright © Petar Popic Software Engineering

SW processSW process

�� Dizajn faza (cont)Dizajn faza (cont)

�� Trebamo pohraniti sve relevantne činjenice Trebamo pohraniti sve relevantne činjenice koje su dovele do dizajnakoje su dovele do dizajna

�� Ukoliko naletimo na sljepu ulicu Ukoliko naletimo na sljepu ulicu –– popratimo do popratimo do

18

�� Ukoliko naletimo na sljepu ulicu Ukoliko naletimo na sljepu ulicu –– popratimo do popratimo do ishodišta i napravimo redesignishodišta i napravimo redesign

�� Korisno za tim koji će održavati proizvodKorisno za tim koji će održavati proizvod

�� Idealno, dizajn bi trebao biti Idealno, dizajn bi trebao biti openopen--endedended –– da da dozvoli dodavanje novih dozvoli dodavanje novih modulamodula ili zamjenu ili zamjenu postojećih modulapostojećih modula

Copyright © Petar Popic Software Engineering

SW processSW process

�� Dizajn faza (cont)Dizajn faza (cont)

�� SQA grupa je odgovorna za kontrolu dizajnaSQA grupa je odgovorna za kontrolu dizajna

�� Kontrolira logičke pogreške, interface pogreške, Kontrolira logičke pogreške, interface pogreške, nedostatak nedostatak kontroliranih izuzećakontroliranih izuzeća, odstupanje od , odstupanje od

19

nedostatak nedostatak kontroliranih izuzećakontroliranih izuzeća, odstupanje od , odstupanje od specifikacijaspecifikacija

�� Prate svaki dio dizajna u određeni dio SRS Prate svaki dio dizajna u određeni dio SRS dokumentadokumenta

�� Pregled vrše SQA i dizajn timPregled vrše SQA i dizajn tim

�� Dokumentacija koju generira ova faza je Dokumentacija koju generira ova faza je architecture design i detailed designarchitecture design i detailed design

Copyright © Petar Popic Software Engineering

SW processSW process

�� Faza implementacijeFaza implementacije�� Implementiranje detaljnog dizajna u kodImplementiranje detaljnog dizajna u kod

�� TestiranjaTestiranja�� Pregled i inspekcija kodaPregled i inspekcija koda

20

�� Izvršavanje Izvršavanje test slučajevatest slučajeva�� Neformalna testiranja Neformalna testiranja koja odrađuje programer koja odrađuje programer

�� Testiranje od strane SQA grupeTestiranje od strane SQA grupe

�� Dokumentacija koju generira ova faza suDokumentacija koju generira ova faza su�� izvorni kod sa prikladnim komentarimaizvorni kod sa prikladnim komentarima

�� Test slučajevi prema kojima je testiran izvorni kodTest slučajevi prema kojima je testiran izvorni kod

Copyright © Petar Popic Software Engineering

SW processSW process

�� Faza integracije Faza integracije –– paralelno sa 4paralelno sa 4

�� Integriraju se moduli Integriraju se moduli –– izvršava se paralelno izvršava se paralelno sa implementacijomsa implementacijom

�� Integration testing Integration testing

21

�� Integration testing Integration testing

�� Testiraju se interfaceTestiraju se interface--i modulai modula

�� Testira se proizvod Testira se proizvod –– SQA grupaSQA grupa�� IspravnostIspravnost

�� Robustnost ...Robustnost ...

�� Acceptance testing Acceptance testing -- klijentklijent

Copyright © Petar Popic Software Engineering

SW processSW process

�� Faza integracije Faza integracije –– paralelno sa 4 (cont)paralelno sa 4 (cont)�� Jednom kada se kompletira testiranje proizvoda, SW Jednom kada se kompletira testiranje proizvoda, SW

proizvod se proizvod se testiratestira u u organizacijiorganizaciji kojakoja je je razvilarazvila swsw ii uuodređenim slučajevima se dostavlja budućim određenim slučajevima se dostavlja budućim korisnicima za korisnicima za onon--site testing site testing –– alpha versionalpha version

22

�� Prepravljena alfa verzija se zove Prepravljena alfa verzija se zove beta verzija beta verzija i testira i testira se na strani klijentase na strani klijenta

�� Dokumentacija koju generira ova faza je Dokumentacija koju generira ova faza je �� Izvorni kod s komentarimaIzvorni kod s komentarima

�� Test slučajevi za cjelokupan proizvodTest slučajevi za cjelokupan proizvod

�� Korisnički priručnik, priručnik operatera, priručnik baze Korisnički priručnik, priručnik operatera, priručnik baze podatakapodataka

Copyright © Petar Popic Software Engineering

SW processSW process

�� Faza održavanjaFaza održavanja

�� Pod održavanjem se podrazumijeva i svaka Pod održavanjem se podrazumijeva i svaka promjena na proizvodu nakon što ga je klijent promjena na proizvodu nakon što ga je klijent odobrio i prihvatioodobrio i prihvatio

23

odobrio i prihvatioodobrio i prihvatio

�� Cijeli SW razvoj bi se trebao odvijati na način Cijeli SW razvoj bi se trebao odvijati na način da smanjuje buduće održavanjeda smanjuje buduće održavanje

�� Uobičajeni problem Uobičajeni problem –– nedostatak nedostatak dokumentacije i neažurirana dokumentacija dokumentacije i neažurirana dokumentacija

Copyright © Petar Popic Software Engineering

SW processSW process

�� Faza održavanja (cont)Faza održavanja (cont)�� Radi brojnih prepravaka i izmjena ova faza je Radi brojnih prepravaka i izmjena ova faza je

poznata po čestim poznata po čestim regression testingregression testingaktvnostima aktvnostima –– proizvod mora biti testiran na proizvod mora biti testiran na način da se provjeravaju prošli test slučajevi.način da se provjeravaju prošli test slučajevi.

24

način da se provjeravaju prošli test slučajevi.način da se provjeravaju prošli test slučajevi.�� Tako osiguravamo postojanost i ispravnost Tako osiguravamo postojanost i ispravnost

funkcionalnosti ostatka proizvoda funkcionalnosti ostatka proizvoda

�� Pohranite sve učinjene izmjene, zajedno sa Pohranite sve učinjene izmjene, zajedno sa sa razlozimasa razlozima

�� Pohranite sve regression test casesPohranite sve regression test cases

Copyright © Petar Popic Software Engineering

SW processSW process

�� Povlačenje iz upotrebePovlačenje iz upotrebe

�� Software se više ne može održavati radi:Software se više ne može održavati radi:

�� Predložene drastične promjene u dizajnuPredložene drastične promjene u dizajnu

�� Kad proizvod se mora implementirati u potpuno Kad proizvod se mora implementirati u potpuno

25

�� Kad proizvod se mora implementirati u potpuno Kad proizvod se mora implementirati u potpuno novom hardware/operating sustavunovom hardware/operating sustavu

�� Kad nedostaje dokumentacija ili kad je ista Kad nedostaje dokumentacija ili kad je ista netočnanetočna

�� Ponekad je isplativije iznova napisati SW Ponekad je isplativije iznova napisati SW nego isti modificiratinego isti modificirati

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Unaprjeđenje procesaUnaprjeđenje procesa

�� Software Engineering Institute (Software Engineering Institute (www.sei.cmu.eduwww.sei.cmu.edu) ) �� Carnegie Mellon University in PittsburghCarnegie Mellon University in Pittsburgh

�� Capability maturity model (CMM)Capability maturity model (CMM)

�� http:http://www.sei.cmu.edu/cmm///www.sei.cmu.edu/cmm/

26

�� http:http://www.sei.cmu.edu/cmm///www.sei.cmu.edu/cmm/

�� International Standards OrganizationInternational Standards Organization

�� ISO 9000ISO 9000

�� ISO/IEC 15504 ISO/IEC 15504 –– standardi u procjenama SW procesastandardi u procjenama SW procesa

�� Usporedba ISO 9001 i CMMUsporedba ISO 9001 i CMM

�� http://www.sei.cmu.edu/publications/documents/94.reports/94.trhttp://www.sei.cmu.edu/publications/documents/94.reports/94.tr.012.html.012.html

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model�� UnaprjeUnaprjeđenje SW procesa bez obzira na life đenje SW procesa bez obzira na life

cycle modelcycle model�� SWSW--CMM za softwareCMM za software

PP--CMM za CMM za Human ResourcesHuman Resources

27

�� PP--CMM za CMM za Human ResourcesHuman Resources

�� SESE--CMM za CMM za Systems EngineeringSystems Engineering

�� IPDIPD--CMM za integrirani razvoj proizvodaCMM za integrirani razvoj proizvoda

�� SASA-- za za software acquisitionsoftware acquisition

�� Spomenute strategije su ujedinjene u CMMI Spomenute strategije su ujedinjene u CMMI (Capability maturity model integration)(Capability maturity model integration)

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)�� SWSW--CMM CMM –– unaprjeđenje procesa proizvodnje SW unaprjeđenje procesa proizvodnje SW

19861986

�� Osnovna ideja:Osnovna ideja:�� Unaprjeđenje procesa vodi Unaprjeđenje procesa vodi

28

�� Unaprjeđenje procesa vodi Unaprjeđenje procesa vodi �� Boljoj kvalitetiBoljoj kvaliteti

�� Isporuci unutar rokova i unutar budgetaIsporuci unutar rokova i unutar budgeta

�� Unaprjeđenje managementa vodiUnaprjeđenje managementa vodi�� Unaprjeđenim tehnikamaUnaprjeđenim tehnikama

�� Postupno unaprjeđenjePostupno unaprjeđenje�� Definirano je 5 razina zrelostiDefinirano je 5 razina zrelosti

�� Organizacije napreduju korak po korak iz razine u razinuOrganizacije napreduju korak po korak iz razine u razinu

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)

�� Razina zrelosti 1 Razina zrelosti 1 –– početna razinapočetna razina

�� Ad hoc (ponekad i kaotičan) pristupAd hoc (ponekad i kaotičan) pristup

�� Potpuno ovisi o trenutnim reursimaPotpuno ovisi o trenutnim reursima

29

�� Potpuno ovisi o trenutnim reursimaPotpuno ovisi o trenutnim reursima

�� Cijeli proces razvoja je nepredvidivCijeli proces razvoja je nepredvidiv

�� Management postoji samo kao odgovor na krizne Management postoji samo kao odgovor na krizne situacijesituacije

�� Nažalost većina organizacija diljem svijeta je Nažalost većina organizacija diljem svijeta je na razini 1na razini 1

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)

�� Razina zrelosti 2 Razina zrelosti 2 –– repeatable razinarepeatable razina�� Postavljene su osnove project managementa radi praćenja Postavljene su osnove project managementa radi praćenja

troškova, rokova i funkcionalnostitroškova, rokova i funkcionalnosti

�� Planiranje i upravljanje je bazirano na prijašnjim iskustvima sa Planiranje i upravljanje je bazirano na prijašnjim iskustvima sa

30

�� Planiranje i upravljanje je bazirano na prijašnjim iskustvima sa Planiranje i upravljanje je bazirano na prijašnjim iskustvima sa sličnim proizvodimasličnim proizvodima

�� Rade se razna mjerenja Rade se razna mjerenja

�� Prate se troškovi i rokoviPrate se troškovi i rokovi

�� Rezultati mjerenja se mogu iskoristiti Rezultati mjerenja se mogu iskoristiti

�� Za detektiranje problema i poduzimanja trenutnih Za detektiranje problema i poduzimanja trenutnih korektivnih akcijakorektivnih akcija

�� Za predviđanje troškova i rokova u budućim projektima Za predviđanje troškova i rokova u budućim projektima

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)�� Razina zrelosti 2 Razina zrelosti 2 –– repeatable razinarepeatable razina

�� Ključne aktivnosti koje se moraju izvršavati:Ključne aktivnosti koje se moraju izvršavati:�� SW configuration managementSW configuration management

�� Da se uspostavi i održava cjelovitost proizvoda kroz njegov životni Da se uspostavi i održava cjelovitost proizvoda kroz njegov životni ciklusciklus

�� SQASQA

31

SQASQA�� SW subcontract managementSW subcontract management

�� Svrha da se kvalitetno selektiraju podugovarači te efikasno Svrha da se kvalitetno selektiraju podugovarači te efikasno upravlja njimaupravlja njima

�� SW project tracking and oversightSW project tracking and oversight�� Svrha je da se omogući adekvatan pristup u trenutni progres tako Svrha je da se omogući adekvatan pristup u trenutni progres tako

da uprava može na vrijeme poduzeti određene akcije ukoliko se da uprava može na vrijeme poduzeti određene akcije ukoliko se primjeti drastično odstupanje od planaprimjeti drastično odstupanje od plana

�� SW project planningSW project planning�� Da se uspostave razumljivi planovi za upotrebu SW engineringa i Da se uspostave razumljivi planovi za upotrebu SW engineringa i

upravljanje SW projektimaupravljanje SW projektima�� Requirements managementRequirements management

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)

�� Razina zrelosti 3 Razina zrelosti 3 –– definirana razinadefinirana razina�� Software proces za aktivnosti vezane uz management i Software proces za aktivnosti vezane uz management i

engineering je potpuno standardiziran i dokumentiranengineering je potpuno standardiziran i dokumentiran

�� Upravljački i tehnički aspekti su jasno definiraniUpravljački i tehnički aspekti su jasno definirani

�� Postoje kontinuirani napori za unapređenje kvalitete i Postoje kontinuirani napori za unapređenje kvalitete i

32

�� Postoje kontinuirani napori za unapređenje kvalitete i Postoje kontinuirani napori za unapređenje kvalitete i produktivnostiproduktivnosti

�� Koriste se tehnike pregledavanja radi unaprjeđenja kvalitete Koriste se tehnike pregledavanja radi unaprjeđenja kvalitete softwaresoftware--aa

�� Uključuje sve karakteristike iz razine 2 plus ove ključne Uključuje sve karakteristike iz razine 2 plus ove ključne aktivnosti:aktivnosti:

�� Peer reviewsPeer reviews

�� Svrha je da se rano i efikasno odstrane defekti iz proizvoda Svrha je da se rano i efikasno odstrane defekti iz proizvoda

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)�� Razina zrelosti 3 Razina zrelosti 3 –– definirana razina, ključne definirana razina, ključne

aktivnosti (cont)aktivnosti (cont)�� Intergroup coordinationIntergroup coordination

�� SW product engineeringSW product engineering

33

SW product engineeringSW product engineering�� Svrha je da se konzistentno koristi odlično definiran inženjerski Svrha je da se konzistentno koristi odlično definiran inženjerski

proces koji u sebi integrira sve SW inženjerske aktivnosti proces koji u sebi integrira sve SW inženjerske aktivnosti

�� Integrated SW managementIntegrated SW management�� Svrha je da se integriraju aktivnosti vezane uz sw engineering i Svrha je da se integriraju aktivnosti vezane uz sw engineering i

management u razumljiv i definiran sw procesmanagement u razumljiv i definiran sw proces

�� Training programTraining program�� Svrha je da se kod pojedinaca razvijaju vještina i znanja tako Svrha je da se kod pojedinaca razvijaju vještina i znanja tako

da svoje uloge mogu efikasnije izvoditi da svoje uloge mogu efikasnije izvoditi

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)�� Razina zrelosti 3 Razina zrelosti 3 –– definirana razina, ključne definirana razina, ključne

aktivnosti (cont)aktivnosti (cont)�� Organization process definitionOrganization process definition

�� Svrha je da se razviju i održavaju korisni setovi SW procesa Svrha je da se razviju i održavaju korisni setovi SW procesa koji će unaprijediti preformance procesa kroz projekte i koji će unaprijediti preformance procesa kroz projekte i

34

koji će unaprijediti preformance procesa kroz projekte i koji će unaprijediti preformance procesa kroz projekte i omogućiti osnovu za kumulativne i dugoročne koristi omogućiti osnovu za kumulativne i dugoročne koristi organizacije organizacije

�� Organization process focusOrganization process focus�� Svrha je da se uspostavi odgovornost na nivou organizacije u Svrha je da se uspostavi odgovornost na nivou organizacije u

vezi aktivnosti SW procesa koje unaprjeđuju sposobnosti vezi aktivnosti SW procesa koje unaprjeđuju sposobnosti procesa procesa

�� Brojne organizacije su dostigle razinu zrelosti 2 i 3, ali Brojne organizacije su dostigle razinu zrelosti 2 i 3, ali ih je samo nekoliko dostiglo razine 4 i 5ih je samo nekoliko dostiglo razine 4 i 5

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)

�� Razina zrelosti 4 Razina zrelosti 4 –– upravljačka razinaupravljačka razina�� Prikupljaju se i pohranjuju detaljna mjerenja software Prikupljaju se i pohranjuju detaljna mjerenja software

proizvoda i kvalitete procesproizvoda i kvalitete proces

�� Kvaliteta i produktivnost se kontinuirano promatrajuKvaliteta i produktivnost se kontinuirano promatraju

35

�� Kvaliteta i produktivnost se kontinuirano promatrajuKvaliteta i produktivnost se kontinuirano promatraju

�� Postoje statističke obrade kontrole kvalitetePostoje statističke obrade kontrole kvalitete

�� Uključuje sve karakteristike iz razine 3 plus ove Uključuje sve karakteristike iz razine 3 plus ove ključne aktivnosti:ključne aktivnosti:�� Software quality managementSoftware quality management

�� Quantitative process management Quantitative process management

�� Količinski kontrolira performanse porcesa Količinski kontrolira performanse porcesa –– trenutne rezultate trenutne rezultate koji su su postigli slijedeći SW proceskoji su su postigli slijedeći SW proces

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Capability maturity modelCapability maturity model (cont)(cont)�� Razina zrelosti 5 Razina zrelosti 5 –– optimizirajuća razinaoptimizirajuća razina

�� Kontinuirano unaprjeđenje procesaKontinuirano unaprjeđenje procesa�� Znanje koje se prikupilo tijekom odrađivanja svakog projekta se Znanje koje se prikupilo tijekom odrađivanja svakog projekta se

koristi u budućim projektima koristi u budućim projektima

�� Uključuje sve ključne aktivnosti iz razine 4 plus:Uključuje sve ključne aktivnosti iz razine 4 plus:�� Process change managementProcess change management

36

�� Process change managementProcess change management�� Svrha je da se kontinuirano poboljšavaju sw procesi koji se koriste u Svrha je da se kontinuirano poboljšavaju sw procesi koji se koriste u

organizaciji sa zadaćom unaprjeđenja kvalitete i produktivnosti i organizaciji sa zadaćom unaprjeđenja kvalitete i produktivnosti i smanjenja vremena potrebnog za razvoj smanjenja vremena potrebnog za razvoj

�� Technology change managementTechnology change management�� Svrha je da se identificiraju nove tehnologije (alati, metode, procesi) Svrha je da se identificiraju nove tehnologije (alati, metode, procesi)

koje se mogu implementirati u organizacijikoje se mogu implementirati u organizaciji

�� Defect preventionDefect prevention�� Svrha je da se identificiraju razlozi za defekte te da se njihovo spriječi Svrha je da se identificiraju razlozi za defekte te da se njihovo spriječi

njihovo ponovno pojavljivanjenjihovo ponovno pojavljivanje

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� SW SW CMM CMM –– zbirnozbirno�� Za Za svaku razinu zrelosti postoji nekoliko ključnih aktivnostisvaku razinu zrelosti postoji nekoliko ključnih aktivnosti

�� Unutar svake ključne aktivnosti je nekoliko ciljeva (između 2 i 4)Unutar svake ključne aktivnosti je nekoliko ciljeva (između 2 i 4)

5. OptimizirajućaKontrola procesa

37Copyright © Petar Popic Software Engineering

5. Optimizirajućarazina

4. Upravljačkarazina

3. Definirana razina

2. Repeatablerazina

1. Početna razina

Definicija procesa

Basic projectmanagement

AD hoc proces

Kontrola procesa

Mjerenje procesa

SW process improvementSW process improvement

�� SW CMM iskustvaSW CMM iskustva

�� Potrebno je 3 do 5 godina da organizacija prijeđe iz Potrebno je 3 do 5 godina da organizacija prijeđe iz razine 1 u 2razine 1 u 2

�� 1.5 do 3 godina da se prijeđe iz razine 2 u 3.1.5 do 3 godina da se prijeđe iz razine 2 u 3.

SEI upitnici pomažu da se pronađu slabosti u SEI upitnici pomažu da se pronađu slabosti u

38

�� SEI upitnici pomažu da se pronađu slabosti u SEI upitnici pomažu da se pronađu slabosti u dosadašnjem procesu koji organizacija primjenjuje, dosadašnjem procesu koji organizacija primjenjuje, napravi analiza i predlože putevi za unaprjeđenje napravi analiza i predlože putevi za unaprjeđenje procesa.procesa.

�� Originalna ideja: organizacije koje mogu dobiti posao Originalna ideja: organizacije koje mogu dobiti posao sa nekim od državnim ministarstvima biti CMM razine sa nekim od državnim ministarstvima biti CMM razine 3 ili više.3 ili više.

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� Druge inicijativeDruge inicijative

�� ISO 9000 ISO 9000 –– serija od 5 standarda koji su u serija od 5 standarda koji su u određenom međusobnom odnosu i koji se određenom međusobnom odnosu i koji se mogu primjeniti u širokom spektru industrijskih mogu primjeniti u širokom spektru industrijskih

39

mogu primjeniti u širokom spektru industrijskih mogu primjeniti u širokom spektru industrijskih aktivnosti, od dizajna, razvoja, proizvodnje, aktivnosti, od dizajna, razvoja, proizvodnje, instalacije i usluga.instalacije i usluga.

�� ISO/IEC 15504 ISO/IEC 15504 –– međunarodni standardi međunarodni standardi vezanih uz procjenu sw procesa vezanih uz procjenu sw procesa

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� ISO 9000ISO 9000�� Prihvaćen od preko 60 zemaljaPrihvaćen od preko 60 zemalja�� Skup od 5 standarda za industrijske aktivnostiSkup od 5 standarda za industrijske aktivnosti

�� ISO 9001 za kvalitetuISO 9001 za kvalitetu�� ISO 9000ISO 9000--3, vodič za primjenu 9001 u SW industriji3, vodič za primjenu 9001 u SW industriji

Postoji preklapanje sa CMM, ali nikako nisu indentičniPostoji preklapanje sa CMM, ali nikako nisu indentični

40

�� Postoji preklapanje sa CMM, ali nikako nisu indentičniPostoji preklapanje sa CMM, ali nikako nisu indentični�� ISO 9000 filozofija ISO 9000 filozofija –– sljeđenje standarda ne garantira sljeđenje standarda ne garantira

proizvod visoke kvalitete, reducira rizik da proizvod ne bude proizvod visoke kvalitete, reducira rizik da proizvod ne bude loše kvaliteteloše kvalitete

�� ISO 9000 je nužan ukoliko organizacija želi raditi sa ISO 9000 je nužan ukoliko organizacija želi raditi sa EU projektima EU projektima �� Sve više US organizacija radi toga implementiraju ISO 9000 Sve više US organizacija radi toga implementiraju ISO 9000

standarde i certifikatestandarde i certifikate

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� ISO/IEC 15504ISO/IEC 15504

�� Software Proces Improvement Capability Software Proces Improvement Capability dEtermination (SPICE) dEtermination (SPICE)

�� Pokrenut od ministrastva odbrane Velike BritanijePokrenut od ministrastva odbrane Velike Britanije

41

�� Pokrenut od ministrastva odbrane Velike BritanijePokrenut od ministrastva odbrane Velike Britanije

�� Preuzet od strane ISO organizacije, IEC postaje Preuzet od strane ISO organizacije, IEC postaje međunarodna inicijativa za naprjeđenje procesa u međunarodna inicijativa za naprjeđenje procesa u SW industrijiSW industriji

�� Inicijativa proširuje i unaprjeđuje i CMMI i ISO Inicijativa proširuje i unaprjeđuje i CMMI i ISO 90009000

Copyright © Petar Popic Software Engineering

SW process improvementSW process improvement

�� SEI iSEI izvještaj o 13 organizacija koje koriste različite tehnike za unaprjeđenje zvještaj o 13 organizacija koje koriste različite tehnike za unaprjeđenje procesa, ne samo SWprocesa, ne samo SW--CMMCMM

KategorijaKategorija RasponRaspon MedianMedian Broj data Broj data pointspoints

Godine upotrebe unaprjeđenja procesa (SPI)Godine upotrebe unaprjeđenja procesa (SPI) 11--99 3.53.5 2424

42Copyright © Petar Popic Software Engineering

Godine upotrebe unaprjeđenja procesa (SPI)Godine upotrebe unaprjeđenja procesa (SPI) 11--99 3.53.5 2424

Godišnji trošak SPI po SW engineerGodišnji trošak SPI po SW engineer--u.u. $490$490--$2004$2004 $1375$1375 55

Godišnji napredak u produktivnosti Godišnji napredak u produktivnosti 9%9%--67%67% 35%35% 44

Godišnji napredak u ranoj detekciji grešakaGodišnji napredak u ranoj detekciji grešaka 6%6%--25%25% 22%22% 33

Godišnje smanjenje kašnjenja isporukeGodišnje smanjenje kašnjenja isporuke 15%15%--23%23% 19%19% 22

Gidišnje smanjenje grešaka nakon isporuke Gidišnje smanjenje grešaka nakon isporuke 10%10%--94%94% 39%39% 55

Poslovna vrijednost (ušteda/trošak SPI)Poslovna vrijednost (ušteda/trošak SPI) 4.04.0--8.8:18.8:1 5.0:15.0:1 55

SW process improvementSW process improvement

�� Rezultati 34 projekta odrađenih za US Government Electronics Division od Rezultati 34 projekta odrađenih za US Government Electronics Division od strane Motorola organizacijestrane Motorola organizacije

�� MEALS MEALS –– Million equivalent assembler code linesMillion equivalent assembler code lines

CMM razina CMM razina Broj Broj projekataprojekata

Relativno Relativno smanjenje trajanjasmanjenje trajanja

Greške za MEALS Greške za MEALS pronađene tjekom pronađene tjekom

razvojarazvoja

Relativna Relativna produktivnostproduktivnost

43Copyright © Petar Popic Software Engineering

razvojarazvoja

Razina 1Razina 1 33 1.01.0 -- --

Razina 2Razina 2 99 3.23.2 890890 1.01.0

Razina 3Razina 3 55 2.72.7 411411 0.80.8

Razina 4Razina 4 88 5.05.0 205205 2.32.3

Razina 5Razina 5 99 7.87.8 126126 2.82.8

�� Puno hvala Puno hvala ☺☺

�� Pitanja??Pitanja??

44Copyright © Petar Popic Software Engineering