Kako svoj posao učiniti uspješnim
  • Dom
  • Dekor
  • Životni ciklus softvera (SOFTW). Životni ciklus i prekretnice razvoja softvera Što znate o životnom ciklusu razvoja softvera?

Životni ciklus softvera (SOFTW). Životni ciklus i prekretnice razvoja softvera Što znate o životnom ciklusu razvoja softvera?

Životni ciklus softvera - vremensko razdoblje koje počinje od trenutka donošenja odluke o potrebi izrade softverskog proizvoda i završava u trenutku njegovog potpunog povlačenja iz rada.

Procesi životnog ciklusa softvera:

Osnovni, temeljni,

Pomoćni,

Organizacijski.


Glavni:

1. Nabava - radnje i zadaci kupca koji kupuje softver;

2. Isporuka - aktivnosti i zadaci dobavljača koji isporučuje kupcu softverski proizvod ili uslugu;

3. Razvoj - radnje i zadaci koje provodi programer: izrada softvera, izrada projektne i pogonske dokumentacije, priprema materijala za testiranje i obuku;

4. Rad - radnje i zadaće operatera organizacije koja upravlja sustavom;

5. Održavanje - unošenje promjena u softver kako bi se ispravile greške, poboljšale performanse ili prilagodile promjenjivim radnim uvjetima ili zahtjevima.

Pomoćni:

1. Dokumentacija - formalizirani opis informacija nastalih tijekom životnog ciklusa softvera;

2. Upravljanje konfiguracijom - primjena administrativnih i tehničkih postupaka tijekom životnog ciklusa softvera za određivanje stanja komponenti softvera, upravljanje njegovim izmjenama;

3. Osiguranje kvalitete - osiguravanje da softver i procesi njegovog životnog ciklusa budu u skladu s navedenim zahtjevima i odobrenim planovima;

4. Verifikacija - utvrđivanje da softverski proizvodi u potpunosti zadovoljavaju zahtjeve ili uvjete zbog prethodnih radnji;

5. Certifikacija - utvrđivanje potpunosti usklađenosti navedenih zahtjeva i izrađenog sustava s njihovom specifičnom funkcionalnom namjenom;

6. Zajednička procjena - procjena stanja rada na projektu: kontrola planiranja i upravljanja resursima, kadrovima, opremom, alatima;

7. Revizija - utvrđivanje usklađenosti sa zahtjevima, planovima i uvjetima ugovora;

8. Rješavanje problema - analiza i rješavanje problema, bez obzira na njihovo porijeklo ili izvor, koji su otkriveni tijekom razvoja, rada, održavanja ili drugih procesa.

Organizacijski:

1. Upravljanje - radnje i zadaci koje može obavljati svaka strana koja upravlja svojim procesima;

2. Stvaranje infrastrukture - izbor i održavanje tehnologije, standarda i alata, odabir i instalacija hardvera i softvera koji se koristi za razvoj, rad ili održavanje softvera;

3. Poboljšanje - procjena, mjerenje, kontrola i poboljšanje procesa životnog ciklusa;

4. Osposobljavanje - početno osposobljavanje i naknadno kontinuirano stručno usavršavanje osoblja.

Godine 2002. objavljen je standard za procese životnog ciklusa sustava (ISO/IEC 15288 Procesi životnog ciklusa sustava). U izradi norme sudjelovali su stručnjaci iz različitih područja: sistemskog inženjerstva, programiranja, upravljanja kvalitetom, ljudskih resursa, sigurnosti itd. praktično iskustvo izgradnja sustava u vladinim, komercijalnim, vojnim i akademskim organizacijama. Standard je primjenjiv na široku klasu sustava, ali mu je glavna svrha podržati stvaranje računalnih sustava.



Prema nizu normi ISO/IEC 15288, sljedeće skupine procesa trebaju biti uključene u strukturu životnog ciklusa:

1. Ugovorni procesi:

Akvizicija (in-house rješenja ili vanjska rješenja dobavljača);

Isporuka (interna rješenja ili rješenja vanjskih dobavljača);

2. Procesi poduzeća:

Kontrolirati okoliš poduzeća;

Upravljanje ulaganjima;

IP upravljanje životnim ciklusom;

Upravljanje resursima;

Kontrola kvalitete;

3. Procesi dizajna:

Planiranje projekta;

Evaluacija projekta;

Kontrola projekta;

Upravljanje rizicima;

Upravljanje konfiguracijom;

Upravljanje protokom informacija;

Donošenje odluka.

4. Tehnički procesi:

Definicija zahtjeva;

Analiza zahtjeva;

Razvoj arhitekture;

implementacija;

Integracija;

Verifikacija;

Tranzicija;

Certifikacija;

iskorištavanje;

Pratnja;

Raspolaganje.

5. Posebni procesi:

Definiranje i uspostavljanje međusobnih odnosa polazeći od zadataka i svrhe.


Uspostavljanje osnovnih procesa životnog ciklusa IP softvera (ISO/IEC 15288)

Proces (izvršitelj procesa) Radnje Ulaz Proizlaziti
Akvizicija (kupac) - Iniciranje - Priprema prijedloga ponuda - Priprema ugovora - Kontrola aktivnosti dobavljača - Prihvat IP-a - Odluka o početku rada na implementaciji IP - Rezultati ankete o radnjama kupaca - Rezultati analize IP tržišta/natječaja - Isporuka / razvojni plan - Sveobuhvatno testiranje IP - Studija izvodljivosti za implementaciju IS - Projektni zadatak za IS - Ugovor o nabavi/razvoju - Akti o prijemu faza radova - Akt o prijemnim ispitivanjima
Isporuka (IS programer) - Iniciranje - Odgovor na ponude - Priprema ugovora - Planiranje izvedbe - IP opskrba - Projektni zadatak za IS - Odluka uprave o sudjelovanju u razvoju - Rezultati natječaja - Projektni zadatak za IS - Plan upravljanja projektom - Izrađen IS i dokumentacija - Odluka o sudjelovanju u razvoju - Komercijalne ponude/ ponuda - Ugovor o nabavi/razvoju - Plan upravljanja projektom - Implementacija/prilagodba - Izvješće o prijemnom ispitivanju
Razvoj (IS developer) - Priprema - Analiza zahtjeva IS - Dizajn arhitekture IS - Razvoj softverskih zahtjeva - Dizajn softverske arhitekture - Detaljni dizajn softvera - Kodiranje i testiranje softvera - Integracija softvera i testiranje kvalifikacije softvera - Integracija IS i kvalificirano testiranje IS - Projektni zadatak za IS - Projektni zadatak za IS, model životnog ciklusa - Podsustavi IS - Specifikacije zahtjeva za komponente softvera - Arhitektura softvera - Detaljni materijali za dizajn softvera - Plan integracije softvera, testovi - Arhitektura IS, softver, dokumentacija za IS, testovi - Korišteni model životnog ciklusa, razvojni standardi - Plan rada - Sastav podsustava, hardverske komponente - Specifikacije zahtjeva za softverske komponente - Sastav softverskih komponenti, sučelja s bazom podataka, plan integracije softvera - Projekt baze podataka, specifikacije sučelja između softvera komponente, zahtjevi za testove - Tekstovi modula Softver, radnje autonomnog testiranja - Ocjena usklađenosti programskog kompleksa sa zahtjevima TOR-a - Ocjena usklađenosti softvera, baza podataka, tehnički kompleks i set dokumentacije prema zahtjevima TOR-a

Faze razvoja sustava (ISO/IEC 15288)


CPC: Izradite projektni zadatak za projekt "Queue" na web stranici www.mastertz.ru

Modeli životnog ciklusa softvera:

1. kaskada,

2. spirala,

3. iterativni.

Kaskadni modelživotni ciklus (“model vodopada”, engleski waterfall model) predložio je 1970. Winston Royce. Omogućuje sekvencijalnu provedbu svih faza projekta u strogo utvrđenom redoslijedu. Prijelaz na sljedeću fazu znači potpuni završetak rada u prethodnoj fazi.

Zahtjevi definirani u fazi formiranja zahtjeva strogo su dokumentirani u obliku projektnog zadatka i fiksni za cijelo vrijeme trajanja razvoja projekta.

Svaka faza kulminira izdavanjem cjelovitog skupa dokumentacije koja je dovoljna da razvoj nastavi drugi razvojni tim.

Razvoj zahtjeva
Formiranje

spiralni model(engleski spiralni model) razvio je Barry Boehm sredinom 1980-ih. Temelji se na klasičnom ciklusu PDCA (planiraj-učini-provjeri-djeluj) Edwarda Deminga. Kod korištenja ovog modela softver se izrađuje u nekoliko iteracija (spiralnih zavoja) izradom prototipa.

Prototip je aktivna softverska komponenta koja implementira pojedinačne funkcije i vanjska sučelja.

Svaka iteracija odgovara izradi fragmenta ili verzije softvera, pri čemu se specificiraju ciljevi i karakteristike projekta, procjenjuje kvaliteta dobivenih rezultata i planira rad sljedeće iteracije.

Riža. 21. Spiralni model životnog ciklusa softvera

U svakoj iteraciji ocjenjuje se sljedeće:

1. Rizik prekoračenja uvjeta i troškova projekta;

2. Potreba za izvođenjem još jedne iteracije;

3. Stupanj potpunosti i točnosti razumijevanja zahtjeva za sustav;

4. Svrsishodnost prekida projekta.

Jedan primjer implementacije spiralnog modela je RAD.

Osnovni principi RAD-a:

1. Komplet alata trebao bi biti usmjeren na smanjenje vremena razvoja;

2. Izrada prototipa za razjašnjavanje zahtjeva kupaca;

3. Ciklus razvoja: svaka nova verzija proizvoda temelji se na procjeni rezultata rada prethodne verzije od strane kupca;

4. Minimiziranje vremena razvoja verzije prijenosom gotovih modula i dodavanjem funkcionalnosti novoj verziji;

5. Razvojni tim mora blisko surađivati, svaki član mora biti spreman obavljati višestruke odgovornosti;

6. Upravljanje projektom treba minimizirati trajanje razvojnog ciklusa.

Iterativni model: prirodni razvoj kaskadnog i spiralnog modela doveo je do njihove konvergencije i nastanka modernog iterativnog pristupa, koji je racionalna kombinacija ovih modela.

Riža. 22. Iterativni model životnog ciklusa softvera

Životni ciklus softver

Jedan od osnovnih pojmova metodologije projektiranja softvera je koncept životnog ciklusa softvera (životni ciklus softvera). Životni ciklus softvera je kontinuirani proces koji počinje od trenutka donošenja odluke o potrebi njegove izrade, a završava u trenutku njegovog potpunog povlačenja iz rada.

Glavni normativni dokument, koji regulira životni ciklus softvera, je međunarodna norma ISO/IEC 12207 (ISO - Međunarodna organizacija za standardizaciju - Međunarodna organizacija za standardizaciju, IEC - Međunarodna elektrotehnička komisija - Međunarodna komisija za elektrotehniku). Definira strukturu životnog ciklusa koja sadrži procese, aktivnosti i zadatke koji se moraju izvršiti tijekom razvoja softvera. U ovom standardu Softver (softverski proizvod) definiran kao skup računalni programi, postupcima i eventualno povezanom dokumentacijom i podacima. Postupak se definira kao skup međusobno povezanih radnji koje pretvaraju neki ulaz u izlaz. Svaki proces karakteriziraju određeni zadaci i metode za njihovo rješavanje, početni podaci dobiveni iz drugih procesa i rezultati.

Struktura životnog ciklusa softvera prema normi ISO/IEC 12207 temelji se na tri skupine procesa:

glavni procesi životnog ciklusa softvera (nabava, nabava, razvoj, rad, održavanje);

pomoćni procesi koji osiguravaju provedbu glavnih procesa (dokumentacija, upravljanje konfiguracijom, osiguranje kvalitete, verifikacija, certifikacija, procjena, audit, rješavanje problema);

· organizacijski procesi(upravljanje projektom, stvaranje projektne infrastrukture, definiranje, evaluacija i poboljšanje samog životnog ciklusa, obuka).

Modeli životnog ciklusa softvera

Model životnog ciklusa- struktura koja određuje redoslijed izvođenja i odnos faza i faza koje se izvode tijekom životnog ciklusa. Model životnog ciklusa ovisi o specifičnostima softvera i specifičnostima uvjeta u kojima se potonji stvara i radi. Glavni modeli životnog ciklusa su sljedeći.

1. Kaskadni model(do 70-ih godina XX. stoljeća) određuje sekvencijalni prijelaz na sljedeću fazu nakon završetka prethodne.

Ovaj model karakterizira automatizacija pojedinačnih nepovezanih zadataka, koja ne zahtijeva informacijsku integraciju i kompatibilnost, softversko, tehničko i organizacijsko sučelje.

Dostojanstvo: dobre performanse u smislu vremena razvoja i pouzdanosti u rješavanju pojedinačnih problema.

Mana: neprimjenjivost na velike i složeni projekti zbog varijabilnosti zahtjeva sustava tijekom dugotrajnog projektiranja.

2. Iterativni model(70-80-ih godina 20. stoljeća) odgovara tehnologiji projektiranja “odozdo prema gore”. Omogućuje iterativne povratke na prethodne faze nakon izvršenja sljedeće faze;


Model omogućuje generalizaciju dobivenih projektnih rješenja za pojedinačne zadatke u rješenja za cijeli sustav. U ovom slučaju postoji potreba za revidiranjem prethodno formuliranih zahtjeva.

Dostojanstvo: sposobnost brzog prilagođavanja projekta.

Mana: s velikim brojem iteracija povećava se vrijeme projektiranja, dolazi do odstupanja u projektnim rješenjima i dokumentaciji te je konfuzna funkcionalna i sistemska arhitektura izrađenog softvera. Potreba za redizajnom starog ili stvaranjem novog sustava može se pojaviti odmah nakon faze implementacije ili rada.

3. Spiralni model(80-90-ih godina 20. stoljeća) odgovara top-down tehnologiji projektiranja. Pretpostavlja korištenje prototipa softvera koji omogućuje proširenje softvera. Dizajn sustava ciklički ponavlja put od specifikacije zahtjeva do specifikacije programskog koda.

Pri projektiranju arhitekture sustava najprije se utvrđuje sastav funkcionalnih podsustava i rješavaju problemi na razini cijelog sustava (organizacija integrirane baze podataka, tehnologija prikupljanja, prijenosa i akumulacije informacija). Zatim se formuliraju pojedinačni zadaci i razvija tehnologija za njihovo rješavanje.

Pri programiranju se najprije razvijaju glavni programski moduli, a zatim moduli koji obavljaju pojedine funkcije. Prvo, moduli komuniciraju jedan s drugim i s bazom podataka, a zatim se implementiraju algoritmi.

Prednosti:

1. smanjenje broja ponavljanja i, posljedično, broja pogrešaka i nedosljednosti koje je potrebno ispraviti;

2. smanjenje vremena projektiranja;

3. pojednostavljenje stvaranja projektna dokumentacija.

Mana: visoke zahtjeve na kvalitetu repozitorija cijelog sustava ( zajednička baza projektni podaci).

U osnovi je spiralni model tehnologije brzog razvoja aplikacija ili RAD tehnologija (rapid application development), koja uključuje Aktivno sudjelovanje krajnji korisnici budućeg sustava u procesu njegove izrade. Glavne faze informacijskog inženjeringa su sljedeće:

· Analiza i planiranje informacijske strategije. Korisnici, zajedno sa specijalistima programera, sudjeluju u identifikaciji problematičnog područja.

· Oblikovati. Korisnici pod vodstvom programera sudjeluju u tehničkom dizajnu.

· Oblikovati. Programeri dizajniraju radnu verziju softvera koristeći jezike 4. generacije;

· Provedba. Programeri obučavaju korisnike za rad u novom softverskom okruženju.

Razvoj CT-a stalno proširuje klase zadataka koje treba rješavati vezane uz obradu informacija različite prirode.

To su u osnovi tri vrste informacija i, sukladno tome, tri klase zadataka za koje se koriste računala:

1) Računalni zadaci povezani s obradom numeričkih informacija. To uključuje, na primjer, problem rješavanja sustava linearnih jednadžbi visoke dimenzije. Nekada je to bilo glavno, dominantno područje korištenja računala.

2) Zadaci za obradu simboličkih informacija vezanih uz stvaranje, uređivanje i transformaciju tekstualnih podataka. Rad, na primjer, tajnice-daktilografkinje povezan je s rješavanjem takvih problema.

3) Zadaci za obradu grafičkih informacija ᴛ.ᴇ. dijagrami, crteži, grafikoni, skice itd. Takvi zadaci uključuju, na primjer, zadatak izrade crteža novih proizvoda od strane dizajnera.

4) Zadaci za obradu alfanumeričkih informacija – IS. Danas je to jedno od osnovnih područja primjene računala, a zadaci postaju sve složeniji.

Računalno rješavanje zadataka svake klase ima svoje specifičnosti, ali se može podijeliti u nekoliko faza koje su tipične za većinu problema.

Tehnologija programiranjaproučava tehnološke procese i redoslijed njihova odvijanja (faze) korištenjem znanja, metoda i sredstava.

Tehnologije su prikladno karakterizirane u dvije dimenzije - vertikalnoj (koja predstavlja procese) i horizontalnoj (koja predstavlja faze).

Slika

Proces je skup međusobno povezanih radnji (tehnoloških operacija) koje pretvaraju neke ulazne podatke u izlazne podatke. Procesi se sastoje od skupa radnji (tehnoloških operacija), a svaka radnja sastoji se od skupa zadataka i metoda za njihovo rješavanje. Vertikalna dimenzija odražava statične aspekte procesa i operira s konceptima kao što su radni procesi, akcije, zadaci, rezultati izvedbe, izvođači.

Faza je dio aktivnosti stvaranja softvera, ograničen nekim vremenskim okvirom i završava izdavanjem određenog proizvoda, određenog zahtjevima postavljenim za ovu fazu. Ponekad se faze kombiniraju u veće vremenske okvire koji se nazivaju fazama ili prekretnicama. Dakle, horizontalna dimenzija predstavlja vrijeme, odražava dinamičke aspekte procesa i operira konceptima kao što su faze, stupnjevi, stupnjevi, iteracije i kontrolne točke.

Razvoj softvera slijedi definirani životni ciklus.

Životni ciklus Softver - ϶ᴛᴏ kontinuirani i uređen skup aktivnosti koje se provode i kojima se upravlja u okviru svakog projekta razvoja i rada softvera, počevši od trenutka kada se pojavi ideja (koncept) za izradu nekog softvera i donese odluka o iznimnoj važnosti njegovog nastanka i završava u trenutku nastanka potpunog povlačenja iz rada iz sljedećih razloga:

a) zastarjelost;

b) gubitak kritične važnosti rješavanja odgovarajućih problema.

Tehnološki pristupi - ϶ᴛᴏ mehanizmi za provedbu životnog ciklusa.

Tehnološki pristup određen je specifičnostima kombinacije faza i procesa, usmjerenih na različite klase softvera i na karakteristike razvojnog tima.

Životni ciklus definira faze (faze, faze) tako da se softverski proizvod kreće iz jedne faze u drugu, od koncepcije proizvoda do faze njegovog sklapanja.

Životni ciklus razvoja softvera trebao bi biti predstavljen s različitim stupnjevima detalja faza. Najjednostavniji prikaz životnog ciklusa uključuje faze:

Oblikovati

Provedba

Testiranje i otklanjanje pogrešaka

Implementacija, rad i održavanje.

Najjednostavniji prikaz životnog ciklusa programa (kaskadni tehnološki pristup upravljanju životnim ciklusom):

Procesi

Oblikovati

Programiranje

Testiranje

Pratnja

Analiza Dizajn Implementacija Testiranje Implementacija Operacija

te otklanjanje pogrešaka i održavanje

Zapravo, postoji samo jedan proces koji se izvodi u svakoj fazi. Očito, pri razvoju i stvaranju velikih programa, takva shema nije dovoljno točna (nije primjenjiva), ali se može uzeti kao osnova.

Stadij alize fokusira se na zahtjeve sustava. Zahtjevi su definirani i specificirani (opisani). U tijeku je izrada i integracija funkcionalnih modela i podatkovnih modela za sustav. Istodobno se popravljaju nefunkcionalni i drugi zahtjevi sustava.

Faza projektiranja podijeljena je u dvije osnovne podfaze: arhitektonski i izvedbeni projekt. Konkretno, dizajn programa, korisničko sučelje i strukture podataka su pročišćeni. Postavljaju se i popravljaju problemi dizajna koji utječu na razumljivost, mogućnost održavanja i skalabilnost sustava.

Faza implementacije uključuje pisanje programa.

Razlike u hardveru i softveru posebno su vidljive na pozornici iskorištavanje. Ako roba široke potrošnje prolazi kroz faze uvođenja na tržište, rasta, zrelosti i pada, onda život softvera više liči na priču nedovršene, ali stalno dovršene i ažurirane zgrade (zrakoplov) (Pretplatnik).

Životni ciklus softvera reguliran je mnogim standardima, uklj. i međunarodnog.

Svrha standardizacije životnog ciklusa složenog PS-a:

Sažimanje iskustava i rezultata istraživanja mnogih stručnjaka;

Odrađivanje tehnološki procesi i tehnike razvoja, i metodološka baza za njihovu automatizaciju.

Standardi uključuju:

Pravila za opisivanje početnih informacija, metoda i metoda za izvođenje operacija;

Uspostaviti pravila kontrole procesa;

Uspostaviti zahtjeve za prezentaciju rezultata;

Uređuje sadržaj tehnološke i pogonske dokumentacije;

Odrediti organizacijska struktura razvojni tim;

Osigurati raspodjelu i raspored zadataka;

Omogućite kontrolu nad napretkom stvaranja PS-a.

U Rusiji postoje standardi koji reguliraju životni ciklus:

Faze razvoja softvera - GOST 19.102-77

Faze stvaranja AS - GOST 34.601-90;

TK za stvaranje AS - GOST 34.602-89;

Vrste ispitivanja AS - GOST 34.603-92;

Istodobno, izrada, održavanje i razvoj aplikacijskog softvera za IP u ovim standardima nisu dovoljno reflektirani, a neke od njihovih odredbi su zastarjele sa stajališta izgradnje suvremenih distribuiranih sustava visokokvalitetnih aplikacijskih programa u upravljanju i podacima. obradni sustavi s različitim arhitekturama.

U tom smislu treba istaknuti međunarodnu normu ISO/IEC 12207-1999 - ʼʼ Informacijska tehnologija– Procesi životnog ciklusa softveraʼʼ.

ISO - International Organisation of Standardization - Međunarodna organizacija za normizaciju, IEC - Međunarodna elektrotehnička komisija - Međunarodna komisija za elektrotehniku.

Definira strukturu životnog ciklusa softvera i njegovih procesa.

Oni. stvaranje softvera nije tako lak zadatak, s tim u vezi postoje standardi u kojima je sve zapisano: što treba učiniti, kada i kako.

Struktura životnog ciklusa softvera prema međunarodni standard ISO/IEC 12207-95 temelji se na tri grupe procesa:

1) glavni procesi životnog ciklusa softvera (stjecanje, nabava, razvoj, rad, održavanje). Usredotočit ćemo se na potonje.

2) pomoćni procesi koji osiguravaju provedbu osnovnih procesa ( dokumentacija, upravljanje konfiguracijom, osiguranje kvalitete, verifikacija, validacija, kolaborativni pregled (procjena), revizija, rješavanje problema).

1. Upravljanje konfiguracijomovo je proces koji podržava glavne procese životnog ciklusa softvera, prvenstveno procese razvoja i održavanja. Prilikom razvoja složenih softverskih projekata koji se sastoje od mnogih komponenti, od kojih svaka može imati varijante ili verzije, javlja se problem uzimanja u obzir njihovih odnosa i funkcija, stvaranja jedinstvene (ᴛ.ᴇ. unificirane) strukture i osiguravanja razvoja cijelog sustava. . Upravljanje konfiguracijom omogućuje organiziranje, sustavno uzimanje u obzir i kontrolu promjena na različitim komponentama softvera u svim fazama njegovog životnog ciklusa.

2. Provjera je postupak utvrđivanja je li trenutno stanje softvera postignuto na ovoj fazi, zahtjevi ove faze.

3. Certifikacija– potvrdu ispitivanjem i predočenjem objektivnih dokaza da su specifični zahtjevi za pojedine objekte u potpunosti ispunjeni.

4. Zajednička analiza (procjena) sustavno utvrđivanje stupnja usklađenosti objekta s utvrđenim kriterijima.

5. Revizija– revizija koju provodi nadležno tijelo (osoba) radi neovisne procjene stupnja usklađenosti softverskih proizvoda ili procesa s utvrđenim zahtjevima. Ispitivanje omogućuje procjenu usklađenosti razvojnih parametara s početnim zahtjevima. Provjera se preklapa s testiranjem, a provodi se kako bi se utvrdile razlike između stvarnih i očekivanih rezultata i procijenilo ispunjavaju li karakteristike softvera izvorne zahtjeve. U procesu realizacije projekta važno mjesto zauzimaju pitanja identifikacije, opisa i kontrole konfiguracije pojedinih komponenti i cjelokupnog sustava u cjelini.

3) organizacijski procesi (upravljanje projektima, stvaranje projektne infrastrukture, definiranje, evaluacija i poboljšanje samog životnog ciklusa, obuka).

Upravljanje projektima povezan s pitanjima planiranja i organizacije rada, stvaranjem timova programera te praćenjem vremena i kvalitete obavljenog posla. Tehnička i organizacijska podrška projektu uključuje odabir metoda i alata za provedbu projekta, definiranje metoda za opisivanje međustanja razvoja, razvoj metoda i alata za testiranje izrađenog softvera, obuku osoblja itd. Osiguranje kvalitete projekta vezano je uz probleme verifikacije, verifikacije i testiranja programskih komponenti.

Razmotrit ćemo životni ciklus softvera sa stajališta programera.

Proces razvoja u skladu sa standardom predviđa radnje i zadatke koje provodi programer, a obuhvaća izradu softvera i njegovih komponenti u skladu sa specificiranim zahtjevima, uključujući pripremu projektne i operativne dokumentacije, kao i pripremu materijale potrebne za provjeru operativnosti i sukladnosti kvalitete programskih proizvoda, materijale potrebne za obuku osoblja i sl.

Prema standardu, životni ciklus IP softvera uključuje sljedeće radnje:

1) nastanak i proučavanje ideje (koncepta);

2) pripremna faza - izbor modela životnog ciklusa, standarda, metoda i razvojnih alata te izrada plana rada.

3) analiza zahtjeva informacijskog sustava - njegovu definiciju

funkcionalnost, zahtjevi korisnika, zahtjevi za pouzdanošću i sigurnošću, zahtjevi za vanjska sučelja itd.

4) projektiranje arhitekture informacijskog sustava - identificirati kritične operacije hardvera, softvera i održavanja.

5) analiza zahtjeva softvera- definicija funkcionalnosti, uključujući karakteristike izvedbe, radnu okolinu komponenti, vanjska sučelja, specifikacije pouzdanosti i sigurnosti, ergonomske zahtjeve, zahtjeve za korištenje podataka, instalaciju, prihvaćanje, korisničku dokumentaciju, rad i održavanje.

6) dizajn softverske arhitekture - definiranje strukture softvera, dokumentiranje sučelja njegovih komponenti, razvoj preliminarne verzije korisničke dokumentacije, kao i zahtjevi za testiranje i plan integracije.

7) detaljan dizajn softvera - detaljan

opis programskih komponenti i sučelja između njih, ažuriranje korisničke dokumentacije, razvoj i dokumentiranje testnih zahtjeva i plana testiranja, softverske komponente, ažuriranje plana integracije komponenti.

8) softversko kodiranje -razvoj i dokumentacija

svaka komponenta softvera;

9)testiranje softvera – razvoj skupa testnih procedura i podataka za njihovo testiranje, testiranje komponenti, ažuriranje korisničke dokumentacije, ažuriranje plana integracije softvera;

10) integracija softverasklapanje programskih komponenti u skladu s

plan integracije i testiranje softvera za usklađenost kvalifikacijski zahtjevi, koji su skup kriterija ili uvjeta koje je izuzetno važno ispuniti kako bi se softverski proizvod kvalificirao kao sukladan svojim specifikacijama i spreman za upotrebu u danim radnim uvjetima;

11) testiranje kvalifikacije softveratestiranje softvera u

prisutnost kupca kako bi se pokazala njegova usklađenost

zahtjevi i spremnost za rad; ujedno se provjerava spremnost i cjelovitost tehničke i korisničke dokumentacije;

12) integracija sustavamontaža svih komponenti informacijski sistem, uključujući softver i hardver;

13) Ispitivanje IP kvalifikacijetestiranje sustava za

usklađenost sa zahtjevima za njega i provjera dizajna i potpunosti dokumentacije;

14) instalacija softverainstalacija softvera na kupčevu opremu i provjera njegove izvedbe;;

15) prihvaćanje softveraevaluacija rezultata kvalificiranog

testiranje softvera i informacijskog sustava općenito i

dokumentiranje rezultata evaluacije zajedno s kupcem, certificiranje i konačni prijenos softvera kupcu.

16) Vođenje i izrada dokumentacije;

17) operacija

18) pratnja - proces stvaranja i implementacije novih verzija

softverski proizvod.;

19) završetak operacije.

Ove radnje mogu se grupirati, uvjetno ističući sljedeće glavne faze razvoja softvera:

izjava o zadatku (TOR) (prema GOST 19.102-77 faza ʼʼProfesionalni zadaciʼʼ)

analiza zahtjeva i izrada specifikacija (prema GOST 19.102-77 faza "Nacrt dizajna");

dizajn (prema GOST 19.102-77 stupanj ʼʼ Tehnički projektʼʼ)

Implementacija (kodiranje, testiranje i otklanjanje pogrešaka) (prema GOST 19.102-77 faza ʼʼRadni nacrtʼʼ).

rad i održavanje.

Životni ciklus i faze razvoja softvera - pojam i vrste. Klasifikacija i značajke kategorije "Životni ciklus i faze razvoja softvera" 2017., 2018.


Riža. 5.2.

Ovi aspekti su:

  1. ugovorni aspekt u koji ulaze kupac i dobavljač ugovorni odnos te implementirati procese nabave i nabave;
  2. upravljački aspekt, koji uključuje upravljačke radnje osoba koje sudjeluju u životnom ciklusu softvera (dobavljač, kupac, programer, operater itd.);
  3. aspekt rada, koji uključuje radnje operatora za pružanje usluga korisnicima sustava;
  4. inženjerski aspekt, koji sadrži radnje programera ili službe podrške za rješavanje tehničkih problema povezanih s razvojem ili modificiranjem softverskih proizvoda;
  5. aspekt podrške povezan s provedbom procesa podrške, putem kojih službe podrške pružaju potrebne usluge svim ostalim sudionicima u radu. U ovom aspektu može se izdvojiti aspekt upravljanja kvalitetom softvera, uključujući procese osiguranja kvalitete, verifikacije, certifikacije, zajedničke procjene i audita.

Organizacijski procesi odvijaju se na korporativnoj razini ili na razini cijele organizacije kao cjeline, stvarajući osnovu za implementaciju i kontinuirano poboljšanje procesa životnog ciklusa softvera.

5.6. Modeli i faze životnog ciklusa softvera

Model životnog ciklusa softvera shvaća se kao struktura koja određuje redoslijed izvršavanja i odnos procesa, akcija i zadataka tijekom životnog ciklusa softvera. Model životnog ciklusa ovisi o specifičnostima, opsegu i složenosti projekta te specifičnim uvjetima u kojima sustav nastaje i radi.

Norma ISO/IEC 12207 ne predlaže određeni model životnog ciklusa i metode razvoja softvera. Njegove odredbe zajedničke su svim modelima životnog ciklusa, metodama i tehnologijama razvoja softvera. Standard opisuje strukturu procesa životnog ciklusa softvera, ali ne specificira kako implementirati ili izvesti aktivnosti i zadatke uključene u te procese.

Model životnog ciklusa bilo kojeg specifičnog softvera određuje prirodu procesa njegovog stvaranja, koji je skup radova poredanih u vremenu, međusobno povezanih i objedinjenih u fazama (fazama), čija je implementacija neophodna i dovoljna za stvaranje softvera koji zadovoljava navedene zahtjeve.

Faza (faza) stvaranja softvera shvaća se kao dio procesa stvaranja softvera, ograničen nekim vremenskim okvirom i završava izdavanjem određenog proizvoda (softverski modeli, softverske komponente, dokumentacija itd.), određen navedenim zahtjevima za ovu fazu. Izdvojene su faze izrade softvera iz razloga racionalnog planiranja i organizacije rada, a završavaju navedenim rezultatima. Životni ciklus softvera obično uključuje sljedeće faze:

  1. formiranje softverskih zahtjeva;
  2. projektiranje (izrada projekta sustava);
  3. implementacija (može se podijeliti na pod-korake: detaljni dizajn, kodiranje);
  4. testiranje (može se podijeliti na samostalno i sveobuhvatno testiranje i integracija)
  5. puštanje u rad (implementacija);
  6. rad i održavanje;
  7. razgradnja.

Neki stručnjaci uvode dodatnu početnu fazu - Studija izvodljivosti sustava. Ovo se odnosi na softverski i hardverski sustav za koji je softver kreiran, kupljen ili modificiran.

Faza formiranja softverskih zahtjeva jedna je od najvažnijih i u velikoj mjeri (čak i odlučujuće!) određuje uspjeh cijelog projekta. Početak ove faze je dobivanje odobrene i odobrene arhitekture sustava uz uključivanje osnovnih dogovora o raspodjeli funkcija između hardvera i softvera. Ovaj dokument također treba sadržavati potvrdu opće ideje o funkcioniranju softvera, uključujući glavne sporazume o raspodjeli funkcija između osobe i sustava.

Faza formiranja softverskih zahtjeva uključuje sljedeće faze.

  1. Planiranje rada prije projekta. Glavni zadaci pozornice su definiranje razvojnih ciljeva, preliminarni ekonomska procjena projekt, izrada rasporeda rada, stvaranje i obuka zajedničke radne skupine.
  2. Provođenje istraživanja aktivnosti automatizirane organizacije (objekta), u okviru kojeg se provodi preliminarna identifikacija zahtjeva za budući sustav, određivanje strukture organizacije, određivanje popisa ciljnih funkcija organizacije, analiza raspodjela funkcija po odjelima i zaposlenicima, identificiranje funkcionalne interakcije između odjela, tokovi informacija unutar odjela i između njih, objekti izvan organizacije i vanjski informacijski utjecaji, analiza postojećih sredstava automatizacije aktivnosti organizacije.
  3. Izgradnja modela aktivnosti organizacije (objekta), koji predviđa obradu anketnih materijala i izgradnju dvije vrste modela:

    • model "KAKO JEST" ("kakav jest") koji odražava trenutno stanje stvari u organizaciji u vrijeme ankete i omogućuje vam da razumijete kako organizacija funkcionira, kao i da identificirate uska grla i formulirate prijedloge za poboljšanje situacija;
    • Model "TO-BE" ("kao što bi trebalo biti"), odražava ideju novih tehnologija rada organizacije.

Svaki od modela treba sadržavati cjeloviti funkcionalni i informacijski model aktivnosti organizacije, kao i (ako je potrebno) model koji opisuje dinamiku ponašanja organizacije. Napominjemo da su konstruirani modeli od samostalnog praktičnog značaja, neovisno o tome razvija li poduzeće i implementira informacijski sustav, budući da se mogu koristiti za obuku zaposlenika i unapređenje poslovnih procesa poduzeća.

Rezultat završetka faze formiranja programskih zahtjeva su softverske specifikacije, funkcionalne, tehničke i specifikacije sučelja, za koje se potvrđuje njihova cjelovitost, provjerljivost i izvedivost.

Faza projektiranja uključuje sljedeće korake.

  1. Izrada projekta softverskog sustava. U ovoj fazi daje se odgovor na pitanje "Što bi budući sustav trebao raditi?", a to su: arhitektura sustava, njegove funkcije, vanjski uvjeti funkcioniranje, sučelja i raspodjela funkcija između korisnika i sustava, zahtjevi za softverske i informacijske komponente, sastav izvođača i vrijeme razvoja, plan otklanjanja pogrešaka i kontrole kvalitete softvera.

    Osnova projekta sustava su modeli projektiranog sustava koji su izgrađeni na modelu "TO-BE". Rezultat razvoja projekta sustava treba biti odobrena i potvrđena specifikacija softverskih zahtjeva: funkcionalnih, tehničkih i specifikacija sučelja, za koje se potvrđuje njihova cjelovitost, provjerljivost i izvedivost.

  2. Izrada izvedbenog (tehničkog) projekta. U ovoj fazi se provodi stvarni dizajn softvera, uključujući dizajn arhitekture sustava i detaljni dizajn. Time je dan odgovor na pitanje: "Kako izgraditi sustav tako da zadovoljava zahtjeve?"

Rezultat detaljnog dizajna je razvoj provjerene specifikacije softvera, uključujući:

  • formiranje hijerarhije programskih komponenti, međumodulnih sučelja za podatke i kontrolu;
  • specifikacija svake softverske komponente, naziv, svrha, pretpostavke, veličine, redoslijed poziva, ulazni i izlazni podaci, pogrešni izlazi, algoritmi i logički sklopovi;
  • formiranje fizičkih i logičkih struktura podataka do razine pojedinih polja;
  • izrada plana raspodjele računalnih resursa (vrijeme središnjih procesora, memorije i dr.);
  • provjera potpunosti, dosljednosti, izvedivosti i valjanosti zahtjeva;
  • preliminarni plan integracije i otklanjanja pogrešaka, korisnički priručnik i plan prihvatljivog testiranja.

Završetak faze detaljnog dizajna je od kraja do kraja

Standardi životnog ciklusa softvera

  • GOST 34.601-90
  • ISO/IEC 12207:1995 (ruski analog - GOST R ISO/IEC 12207-99)

Metodologije razvoja softvera

  • Racionalni objedinjeni proces (RUP).
  • Microsoft Solutions Framework (MSF). Uključuje 4 faze: analizu, dizajn, razvoj, stabilizaciju, uključuje korištenje objektno orijentiranog modeliranja.
  • Ekstremno programiranje ( ekstremno programiranje, XP). Metodologija se temelji na timskom radu, učinkovita komunikacija između naručitelja i izvođača tijekom cijelog projekta razvoja IP-a. Razvoj se provodi korištenjem sukcesivno dorađenih prototipova.

Standard GOST 34.601-90

Standard GOST 34.601-90 predviđa sljedeće faze i faze stvaranja automatiziranog sustava:

  1. Formiranje zahtjeva za AU
    1. Inspekcija objekta i obrazloženje potrebe za stvaranjem AU
    2. Formiranje korisničkih zahtjeva za AU
    3. Prijava izvješća o radu i prijave za izradu AS-a
  2. Razvoj koncepta AS
    1. Proučavanje objekta
    2. Izvođenje potrebnog istraživačkog rada
    3. Izrada varijanti koncepta AU i odabir varijante koncepta AU koja zadovoljava zahtjeve korisnika
    4. Izrada izvješća o obavljenom poslu
  3. Tehnički zadatak
    1. Razvoj i odobrenje projektnog zadatka za stvaranje AU-a
  4. Idejni projekt
    1. Izrada idejnih projektnih rješenja sustava i njegovih dijelova
  5. Tehnički projekt
    1. Izrada projektnih rješenja sustava i njegovih dijelova
    2. Izrada dokumentacije za AU i njegove dijelove
    3. Izrada i izrada dokumentacije za nabavu komponenti
    4. Izrada projektnih zadataka u susjednim dijelovima projekta
  6. radna dokumentacija
    1. Izrada radne dokumentacije za NE i njezine dijelove
    2. Izrada i prilagodba programa
  7. Puštanje u rad
    1. Priprema objekta automatizacije
    2. Obučavanje zaposlenika
    3. Završetak AU s isporučenim proizvodima (softver i hardver, softver i hardverski sustavi, informacijski proizvodi)
    4. Građevinski i instalacijski radovi
    5. Puštanje u rad
    6. Provođenje preliminarnih ispitivanja
    7. Provođenje probnog rada
    8. Provođenje testova prihvatljivosti
  8. AC podrška.
    1. Izvođenje radova u skladu s jamstvenim obvezama
    2. Postjamstveni servis

Nacrti, tehnički projekti i radna dokumentacija dosljedna je izgradnja sve preciznijih projektnih rješenja. Dopušteno je isključiti fazu "Idejni projekt" i pojedine faze rada u svim fazama, spojiti faze "Tehnički projekt" i "Izvedbena dokumentacija" u "Izvršni projekt", izvoditi različite faze i radove paralelno, uključite dodatne.

Ovaj standard trenutno nije sasvim prikladan za razvoj: mnogi procesi nisu dovoljno prikazani, a neke odredbe su zastarjele.

ISO/IEC 12207/ i njegova primjena

ISO/IEC 12207:1995 "Informacijska tehnologija - Procesi životnog ciklusa softvera" je glavni normativni dokument koji regulira sastav procesa životnog ciklusa softvera. Definira okvir životnog ciklusa koji sadrži procese, aktivnosti i zadatke koji se moraju izvršiti tijekom razvoja softvera.

Svaki proces podijeljen je na skup radnji, a svaka radnja na skup zadataka. Svaki proces, radnju ili zadatak pokreće i izvršava drugi proces prema potrebi i ne postoje unaprijed definirane sekvence izvršavanja. Veze po ulaznim podacima su sačuvane.

Procesi životnog ciklusa softvera

  • Glavni:
    • Akvizicija (radnje i zadaci kupca koji kupuje softver)
    • Isporuka (aktivnosti i zadaci dobavljača koji isporučuje kupcu softverski proizvod ili uslugu)
    • Razvoj (radnje i zadaci koje obavlja programer: izrada softvera, izrada projektne i operativne dokumentacije, priprema materijala za testiranje i obuku itd.)
    • Rad (radnje i zadaci operatera - organizacije koja upravlja sustavom)
    • Održavanje (radnje i zadaci koje obavlja prateća organizacija, odnosno služba održavanja). Održavanje - izmjene softvera kako bi se ispravile greške, poboljšale performanse ili prilagodile promjenjivim radnim uvjetima ili zahtjevima.
  • Pomoćni
    • Dokumentacija (formalizirani opis informacija stvorenih tijekom životnog ciklusa softvera)
    • Upravljanje konfiguracijom (primjena administrativnih i tehničkih postupaka tijekom životnog ciklusa softvera za određivanje stanja komponenti softvera, upravljanje njegovim izmjenama).
    • Osiguranje kvalitete (osiguranje da su IS i procesi njegovog životnog ciklusa u skladu s navedenim zahtjevima i odobrenim planovima)
    • Verifikacija (utvrđivanje da programski proizvodi, koji su rezultat neke radnje, u potpunosti zadovoljavaju zahtjeve ili uvjete zbog prethodnih radnji)
    • Certifikacija (utvrđivanje potpunosti usklađenosti navedenih zahtjeva i izrađenog sustava s njihovom specifičnom funkcionalnom namjenom)
    • Zajednička procjena (procjena stanja rada na projektu: kontrola planiranja i upravljanja resursima, osobljem, opremom, alatima)
    • Revizija (utvrđivanje usklađenosti sa zahtjevima, planovima i uvjetima ugovora)
    • Rješavanje problema (analiza i rješavanje problema, bez obzira na njihovo porijeklo ili izvor, koji su otkriveni tijekom razvoja, rada, održavanja ili drugih procesa)
  • Organizacijski
    • Upravljanje (aktivnosti i zadaci koje može obavljati bilo koja strana koja upravlja svojim procesima)
    • Stvaranje infrastrukture (odabir i održavanje tehnologije, standarda i alata, odabir i instalacija hardvera i softvera koji se koristi za razvoj, rad ili održavanje softvera)
    • Poboljšanje (procjena, mjerenje, kontrola i poboljšanje procesa životnog ciklusa)
    • Obuka (početna obuka i kasniji kontinuirani razvoj osoblja)

Svaki proces uključuje niz aktivnosti. Na primjer, postupak akvizicije obuhvaća sljedeće korake:

  1. Inicijacija akvizicije
  2. Priprema ponuda
  3. Priprema i prilagodba ugovora
  4. Nadzor dobavljača
  5. Prijem i završetak radova

Svaka radnja uključuje niz zadataka. Na primjer, priprema ponuda treba uključivati:

  1. Formiranje zahtjeva za sustav
  2. Formiranje popisa programskih proizvoda
  3. Postavljanje uvjeta i dogovora
  4. Opis tehničkih ograničenja (radno okruženje sustava, itd.)

Faze životnog ciklusa softvera, odnos između procesa i faza

Model životnog ciklusa softvera- strukturu koja određuje redoslijed izvršavanja i odnos procesa, akcija i zadataka tijekom životnog ciklusa. Model životnog ciklusa ovisi o specifičnostima, opsegu i složenosti projekta te specifičnim uvjetima u kojima sustav nastaje i radi.

Norma GOST R ISO/IEC 12207-99 ne nudi određeni model životnog ciklusa. Njegove odredbe zajedničke su svim modelima životnog ciklusa, metodama i tehnologijama za stvaranje IP-a. Opisuje strukturu procesa životnog ciklusa bez specificiranja kako implementirati ili izvesti aktivnosti i zadatke uključene u te procese.

Model životnog ciklusa softvera uključuje:

  1. faze;
  2. Rezultati rada u svakoj fazi;
  3. Ključni događaji - točke završetka rada i donošenja odluka.

Pozornica- dio procesa stvaranja softvera, ograničen određenim vremenskim okvirom i završava izdavanjem određenog proizvoda (modeli, komponente softvera, dokumentacija), određen zahtjevima navedenim za ovu fazu.

U svakoj fazi može se izvesti nekoliko procesa definiranih u ISO/IEC 12207-99, i obrnuto, isti se proces može izvesti u različitim fazama. Odnos između procesa i faza također je određen korištenim modelom životnog ciklusa softvera.

Modeli životnog ciklusa softvera

Model životnog ciklusa shvaća se kao struktura koja određuje redoslijed izvršavanja i odnos procesa, aktivnosti i zadataka koji se obavljaju tijekom životnog ciklusa. Model životnog ciklusa ovisi o specifičnostima informacijskog sustava i specifičnostima uvjeta u kojima isti nastaje i djeluje.

Do danas su najčešće korišteni sljedeći glavni modeli životnog ciklusa:

  • Model zadatka;
  • kaskadni model (ili sistemski) (70-85);
  • spiralni model (sadašnjost).

Model zadatka

Kod razvoja sustava "odozdo prema gore" od pojedinačnih zadataka do cijelog sustava (task model), neminovno se gubi jedinstveni pristup razvoju, nastaju problemi u informacijskom spajanju pojedinih komponenti. U pravilu, kako se broj zadataka povećava, poteškoće rastu, već se morate stalno mijenjati postojeće programe i strukture podataka. Stopa razvoja sustava se usporava, što usporava i razvoj same organizacije. Međutim, u nekim slučajevima ova tehnologija može biti prikladna:

  • Izuzetna hitnost (potrebno je da se barem nekako riješe zadaci; onda morate sve ponoviti);
  • Eksperimentiranje i prilagođavanje kupca (algoritmi nisu jasni, rješenja se pipaju metodom pokušaja i pogrešaka).

Opći je zaključak da je na ovaj način nemoguće stvoriti dovoljno velik učinkovit informacijski sustav.

Kaskadni model

Kaskadni modelživotni ciklus predložio je 1970. Winston Royce. Omogućuje sekvencijalnu provedbu svih faza projekta u strogo utvrđenom redoslijedu. Prijelaz na sljedeću fazu znači potpuni završetak rada u prethodnoj fazi (slika 1). Zahtjevi definirani u fazi formiranja zahtjeva strogo su dokumentirani u obliku projektnog zadatka i fiksni za cijelo vrijeme trajanja razvoja projekta. Svaka faza kulminira izdavanjem cjelovitog skupa dokumentacije koja je dovoljna da razvoj nastavi drugi razvojni tim.

Pozitivni aspekti primjene kaskadnog pristupa su sljedeći:

  • u svakoj fazi formira se kompletna projektna dokumentacija koja zadovoljava kriterije cjelovitosti i konzistentnosti;
  • faze rada koje se izvode u logičnom slijedu omogućuju planiranje vremena završetka svih radova i odgovarajućih troškova.

Faze projekta prema modelu vodopada:

  1. Formiranje zahtjeva;
  2. Oblikovati;
  3. Provedba;
  4. Testiranje;
  5. implementacija;
  6. Rad i održavanje.

Riža. 1. Kaskadna shema razvoja

Waterfall pristup dokazao se u izgradnji informacijskih sustava za koje se već na samom početku razvoja mogu vrlo točno i potpuno formulirati svi zahtjevi kako bi se programerima dala sloboda da ih implementiraju što je moguće bolje s tehničkog gledišta. Ova kategorija uključuje složene sustavi naselja, sustavi u stvarnom vremenu i drugi slični zadaci. Međutim, u procesu korištenja ovog pristupa otkriven je niz njegovih nedostataka, prvenstveno zbog činjenice da se stvarni proces stvaranja sustava nikada u potpunosti nije uklapao u tako krutu shemu. U procesu stvaranja postojala je stalna potreba vraćanja na prethodne faze i pojašnjavanja ili revidiranja ranijih donesene odluke. Kao rezultat toga, stvarni proces stvaranja softvera dobio je sljedeći oblik (slika 2):

Riža. 2. Stvarni proces razvoja softvera prema kaskadnoj shemi

Glavni nedostatak kaskadnog pristupa je značajno kašnjenje u dobivanju rezultata. Koordinacija rezultata s korisnicima provodi se samo u točkama planiranim nakon završetka svake faze rada, zahtjevi za informacijskim sustavima "zamrznuti" su u obliku tehničkog zadatka za cijelo vrijeme njegovog stvaranja. Stoga korisnici svoje komentare mogu dostaviti tek nakon što su radovi na sustavu u potpunosti završeni. Ako zahtjevi nisu točno navedeni ili se mijenjaju tijekom dugog razdoblja razvoja softvera, korisnici završavaju sa sustavom koji ne zadovoljava njihove potrebe. Modeli (funkcionalni i informacijski) automatiziranog objekta mogu zastarjeti istodobno s njihovim odobrenjem. Bit sustavnog pristupa razvoju IS-a leži u njegovoj dekompoziciji (particioniranju) na automatizirane funkcije: sustav se dijeli na funkcionalne podsustave, koji se pak dijele na podfunkcije, dalje dijele na zadatke i tako dalje. Proces particioniranja nastavlja se do specifičnih postupaka. Istovremeno, automatizirani sustav zadržava holistički pogled u kojem su sve komponente međusobno povezane. Dakle, ovaj model ima glavnu prednost sustavnog razvoja, a glavne nedostatke su sporost i skupost.

spiralni model

Kako bi se prevladali ovi problemi, predloženo je spiralni modelživotni ciklus (slika 3), koji je sredinom 1980-ih razvio Barry Boehm. Temelji se na rani stadijiživotni ciklus: analiza i dizajn. U tim se fazama provjerava izvedivost tehničkih rješenja izradom prototipova.

Prototip- aktivna softverska komponenta koja implementira pojedinačne funkcije i vanjska sučelja. Svaka iteracija odgovara izradi fragmenta ili verzije softvera, pri čemu se specificiraju ciljevi i karakteristike projekta, procjenjuje kvaliteta dobivenih rezultata i planira rad sljedeće iteracije.

Svaka iteracija je potpuni razvojni ciklus koji vodi do izdavanja interne ili eksterne verzije proizvoda (ili podskupa konačnog proizvoda) koji se poboljšava od iteracije do iteracije kako bi postao potpuni sustav.

Svaki zavoj spirale odgovara stvaranju dijela ili verzije softvera, na kojem se specificiraju ciljevi i karakteristike projekta, utvrđuje njegova kvaliteta i planira rad sljedećeg zavoja spirale. Tako se detalji projekta produbljuju i dosljedno konkretiziraju, a kao rezultat toga odabire se razumna opcija koja se dovodi u realizaciju.

Razvoj iteracijama odražava objektivno postojeći spiralni ciklus stvaranja sustava. Nepotpuni završetak rada u svakoj fazi omogućuje vam da prijeđete na sljedeću fazu bez čekanja na potpuni završetak rada na trenutnoj. Uz iterativni razvoj, posao koji nedostaje može se dovršiti u sljedećoj iteraciji. Glavna zadaća je korisnicima sustava što prije prikazati proizvod koji je u funkciji, čime se aktivira proces pojašnjenja i dopune zahtjeva.

Glavni problem spiralnog ciklusa je određivanje trenutka prijelaza u sljedeću fazu. Da bi se to riješilo, potrebno je uvesti vremenska ograničenja za svaku od faza životnog ciklusa. Prijelaz se odvija prema planu, čak i ako svi planirani poslovi nisu dovršeni. Plan se izrađuje na temelju statističkih podataka dobivenih u prethodnim projektima, te osobno iskustvo programeri.

Slika 3. Spiralni model životnog ciklusa IS-a

Jedan od mogućih pristupa razvoju softvera u okviru spiralnog modela životnog ciklusa je u posljednje vrijeme široko korištena metodologija brzog razvoja aplikacija RAD (Rapid Application Development). Ovaj pojam obično se shvaća kao proces razvoja softvera koji sadrži 3 elementa:

  • mali tim programera (od 2 do 10 ljudi);
  • kratak, ali pažljivo razrađen raspored proizvodnje (od 2 do 6 mjeseci);
  • iterativni ciklus u kojem programeri, kako aplikacija počinje poprimati oblik, zahtijevaju i implementiraju u proizvod zahtjeve primljene kroz interakciju s korisnikom.

Životni ciklus softvera prema RAD metodologiji sastoji se od četiri faze:

  • faza definiranja i analize zahtjeva;
  • faza projektiranja;
  • faza provedbe;
  • faza implementacije.

U svakoj iteraciji ocjenjuje se sljedeće:

  • rizik prekoračenja uvjeta i troškova projekta;
  • potreba za izvođenjem druge iteracije;
  • stupanj potpunosti i točnosti razumijevanja zahtjeva za sustav;
  • svrsishodnost prekida projekta.

Prednosti iterativnog pristupa:

  • Iterativni razvoj uvelike pojednostavljuje uvođenje promjena u projekt pri promjeni zahtjeva korisnika.
  • Kod korištenja spiralnog modela pojedinačni elementi informacijski sustavi se postupno integriraju u jedinstvenu cjelinu. U iterativnom pristupu integracija je gotovo kontinuirana. Budući da integracija počinje s manje elemenata, puno je manje problema tijekom njezine provedbe (prema nekim procjenama, kod korištenja waterfall razvojnog modela, integracija zauzima i do 40% svih troškova na kraju projekta).
  • Iterativni razvoj pruža veću fleksibilnost u upravljanju projektom dopuštajući taktičke promjene na proizvodu u razvoju.
  • Iterativni pristup pojednostavljuje ponovnu upotrebu komponenti (implementira komponentni pristup programiranju). To je zbog činjenice da je puno lakše identificirati (identificirati) zajedničke dijelove projekta kada su već djelomično razvijeni nego ih pokušati istaknuti na samom početku projekta. Pregled dizajna nakon nekoliko početnih ponavljanja otkriva uobičajene komponente za višekratnu upotrebu koje će se poboljšati u sljedećim ponavljanjima.
  • Spiralni model omogućuje vam da dobijete pouzdaniji i stabilniji sustav. To je zato što se, kako se sustav razvija, greške i slabosti pronalaze i popravljaju pri svakoj iteraciji. Istodobno se mogu podešavati kritični parametri performansi, što je u slučaju vodopada dostupno samo prije implementacije sustava.
  • Iterativni pristup pruža priliku za poboljšanje procesa razvoja - analiza provedena na kraju svake iteracije omogućuje procjenu onoga što treba promijeniti u organizaciji razvoja i to poboljšati u sljedećoj iteraciji.

Najpopularniji povezani članci