Životni ciklus i faze razvoja softvera. Životni ciklus softverskih sistema Proces životnog ciklusa softvera


Rice. 5.2.

Ovi aspekti su:

  1. ugovorni aspekt, u kojem kupac i dobavljač stupaju u ugovorne odnose i sprovode procese nabavke i isporuke;
  2. aspekt upravljanja, koji uključuje upravljačke akcije osoba koje učestvuju u životnom ciklusu softvera (dobavljač, kupac, programer, operater, itd.);
  3. operativni aspekt, koji uključuje radnje operatora za pružanje usluga korisnicima sistema;
  4. inženjerski aspekt, koji sadrži radnje programera ili službe podrške na rješenju tehnički problemi u vezi sa razvojem ili modifikacijom softverskih proizvoda;
  5. aspekt podrške vezan za implementaciju pratećih procesa kroz koje pružaju help desk neophodne usluge svim ostalim učesnicima u radu. U ovom aspektu možemo izdvojiti aspekt upravljanja kvalitetom softvera, koji uključuje procese osiguranja kvaliteta, verifikaciju, sertifikaciju, zajedničku procjenu i reviziju.

Organizacioni procesi se sprovode na korporativnom nivou ili na nivou cijele organizacije u cjelini, stvarajući osnovu za implementaciju i kontinuirano unapređenje procesa životnog ciklusa softvera.

5.6. Modeli i faze životnog ciklusa softvera

Model životnog ciklusa softvera shvata se kao struktura koja definiše redosled izvršavanja i odnose procesa, radnji i zadataka tokom životnog ciklusa softvera. Model životnog ciklusa zavisi od specifičnosti, obima i složenosti projekta i specifičnih uslova u kojima sistem nastaje i funkcioniše.

Standard ISO/IEC 12207 ne nudi specifičan model životnog ciklusa i metode razvoja softvera. Njegove odredbe su opšte za sve modele životnog ciklusa, metode i tehnologije razvoja softvera. Standard opisuje strukturu procesa životnog ciklusa softvera, ali ne precizira kako implementirati ili izvršiti radnje i zadatke uključene u ove procese.

Model životnog ciklusa bilo kog konkretnog softvera određuje prirodu procesa njegovog kreiranja, a to je skup vremenski raspoređenih radova, međusobno povezanih i kombinovanih u faze (faze), čija je implementacija neophodna i dovoljna za kreiranje softvera koji zadovoljava specificiranim zahtjevima.

Faza (faza) kreiranja softvera podrazumijeva se kao dio procesa kreiranja softvera, ograničen određenim vremenskim okvirom i završava izdavanjem određenog proizvoda (softverski modeli, softverske komponente, dokumentacija, itd.), određen zahtjevima. specificirano za ovu fazu. Faze stvaranja softvera izdvajaju se iz razloga racionalnog planiranja i organizacije posla koji se završava određenim rezultatima. Životni ciklus softvera obično uključuje sljedeće faze:

  1. formiranje softverskih zahtjeva;
  2. dizajn (izrada sistemskog projekta);
  3. implementacija (može se podijeliti na pod-faze: detaljni dizajn, kodiranje);
  4. testiranje (može se podijeliti na samostalno i integrirano testiranje i integraciju);
  5. puštanje u rad (provedba);
  6. rad i održavanje;
  7. razgradnju.

Neki stručnjaci uvode dodatnu početnu fazu - analiza izvodljivosti sistemima. Ovdje mislimo na hardverski i softverski sistem za koji se softver kreira, kupuje ili modificira.

Faza formiranja softverskih zahtjeva je jedna od najvažnijih i u značajnoj (čak i odlučujućoj!) mjeri određuje uspjeh cjelokupnog projekta. Početak ove faze je dobijanje odobrene i validirane arhitekture sistema, uključujući osnovne sporazume o raspodeli funkcija između hardvera i softvera. Ovaj dokument takođe treba da sadrži potvrdu opšteg razumevanja rada softvera, uključujući osnovne sporazume o raspodeli funkcija između osobe i sistema.

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

  1. Planiranje rada prije rada na projektu. Glavni ciljevi faze su utvrđivanje razvojnih ciljeva, preliminarni ekonomska procjena projekat, izrada rasporeda rada, stvaranje i obuka zajedničke radne grupe.
  2. Sprovođenje pregleda aktivnosti automatizovane organizacije (objekta), u okviru kojeg se vrši preliminarna identifikacija zahteva za budući sistem, utvrđivanje strukture organizacije, utvrđivanje liste ciljnih funkcija organizacije, analiza distribucije funkcija među odjelima i zaposlenima, identifikacija funkcionalnih interakcija između odjela, tokovi informacija unutar i između odjela, eksterni u odnosu na organizaciju objekata i eksterni informacijski uticaji, analiza postojećih sredstava za automatizaciju aktivnosti organizacije.
  3. Izgradnja modela djelatnosti organizacije (objekta), koji uključuje obradu materijala ankete i izgradnju dvije vrste modela:

    • model "AS-IS" ("kao što je"), koji odražava trenutno stanje u organizaciji u vrijeme istraživanja i omogućava razumijevanje kako ova organizacija funkcionira, kao i da se identifikuje uska grla i formulisati predloge za poboljšanje situacije;
    • model "TO-BE" ("kako bi trebalo biti"), koji odražava ideju o novim tehnologijama za organizaciju.

Svaki od modela treba da sadrži kompletan funkcionalni i informacioni model aktivnosti organizacije, kao i (ako je potrebno) model koji opisuje dinamiku ponašanja organizacije. Imajte na umu da konstruisani modeli imaju nezavisne praktični značaj, bez obzira da li će se u preduzeću razvijati i implementirati informacioni sistem, jer je uz njihovu pomoć moguće obučiti zaposlene i unaprediti poslovne procese preduzeća.

Rezultat završetka faze generisanja softverskih zahtjeva su softverske specifikacije, funkcionalne, tehničke i specifikacije interfejsa, za koje se potvrđuje njihova potpunost, provjerljivost i izvodljivost.

Faza projektovanja uključuje sljedeće faze.

  1. Razvoj projekta softverskog sistema. U ovoj fazi se daje odgovor na pitanje „Šta treba da radi budući sistem, a to su: arhitektura sistema, njegove funkcije, eksterni uslovi rada, interfejsi i distribucija funkcija između korisnika i sistema, zahtevi za softverom?“ i informacionih komponenti, sastava izvođača i rokova utvrđuju se razvoj, plan otklanjanja grešaka softvera i kontrola kvaliteta.

    Osnovu projekta sistema čine modeli projektovanog sistema koji su izgrađeni po modelu “TO-BE”. Rezultat razvoja sistemskog projekta mora biti odobrena i potvrđena specifikacija softverskih zahtjeva: funkcionalne, tehničke i specifikacije interfejsa, za koje se potvrđuje njihova potpunost, provjerljivost i izvodljivost.

  2. Izrada detaljnog (tehničkog) projekta. U ovoj fazi se vrši stvarni dizajn softvera, uključujući projektovanje arhitekture sistema i detaljnog dizajna. Tako se dobija odgovor na pitanje: "Kako izgraditi sistem da zadovolji zahtjeve?"

Rezultat detaljnog dizajna je razvoj verifikovane softverske specifikacije, uključujući:

  • formiranje hijerarhije softverskih komponenti, intermodularnih interfejsa za podatke i upravljanje;
  • specifikacija svake softverske komponente, naziv, svrha, pretpostavke, dimenzije, sekvenca poziva, ulazni i izlazni podaci, greške izlazi, algoritmi i logička kola;
  • formiranje fizičkih i logičkih struktura podataka do nivoa pojedinačnih polja;
  • izradu plana raspodjele računarskih resursa (centralno procesorsko vrijeme, memorija, itd.);
  • provjeru potpunosti, konzistentnosti, izvodljivosti i valjanosti zahtjeva;
  • preliminarni plan za integraciju i otklanjanje grešaka, plan za korisnički priručnik i testiranje prihvatljivosti.

Završetak faze detaljnog projektovanja je od kraja do kraja

Životni ciklus softver(PO) - vremenski period koji počinje od trenutka donošenja odluke o potrebi stvaranja softverski proizvod i završava se u trenutku njegovog potpunog povlačenja iz upotrebe. Ovaj ciklus je proces izgradnje i razvoja softvera.

Faze životnog ciklusa:

2. Dizajn

3. Implementacija

4. Montaža, ispitivanje, testiranje

5. Implementacija (puštanje)

6. Pratnja

Postoje 2 slučaja proizvodnje softvera: 1) Softver se pravi za određenog kupca. U tom slučaju morate primijenjeni zadatak pretvoriti u programski. Morate razumjeti kako funkcionira okruženje koje treba biti automatizirano (analiza poslovnog procesa). Kao rezultat, pojavljuje se specifikacija dokumentacije zahtjeva, koja ukazuje na to koje specifične zadatke treba izvršiti. riješeno i pod kojim uslovima. Ovaj posao obavlja sistemski analitičar (analitičar poslovnih procesa).

2) Softver je razvijen za tržište. Potrebno je izvršiti marketinško istraživanje i pronađite koji proizvod nije na tržištu. Ovo dolazi sa velikim rizikom. Cilj je razviti specifikaciju zahtjeva.

Dizajn

Svrha - Definicija opšta struktura(arhitekturni) softver. Rezultat je softverska specifikacija. Ovaj posao obavlja sistemski programer.

Implementacija

Pisanje programskog koda. Implementacija uključuje razvoj, testiranje i dokumentaciju.

Montaža, testiranje, testiranje

Kompilacija svega što su napravili različiti programeri. Testiranje cjelokupnog softverskog paketa. Otklanjanje grešaka – pronalaženje i otklanjanje uzroka grešaka. Test - pojašnjenje tehničke karakteristike. Kao rezultat toga, garantirano je da će program raditi.

Implementacija (izdanje)

Implementacija – kada rade za jednog kupca. Uključuje postavljanje programa na lokaciji kupca, obuku kupca, konsultacije, otklanjanje grešaka i očiglednih nedostataka. Softver mora biti otuđen - korisnik može raditi sa softverom bez učešća autora.

Izdanje – kada se softver razvija za tržište. Počinje sa fazom beta testiranja. Resp. verzija - beta verzija. Alfa testiranje je testiranje od strane ljudi iz iste organizacije koji nisu bili uključeni u razvoj programa. Beta testiranje je proizvodnja nekoliko kopija softvera i slanje potencijalnim kupcima. Cilj je ponovo provjeriti razvoj softvera.

Ako se na tržište pusti suštinski novi softver, moguće je nekoliko beta testova. Nakon beta testiranja - izdavanje komercijalne verzije.

Pratnja

Otklanjanje grešaka uočenih tokom rada. Pravljenje nebitnih poboljšanja. Akumulacija prijedloga za razvoj sljedeće verzije.

Modeli životnog ciklusa

1. Vodopad („vodopad“, kaskadni model)

2. Izrada prototipa

Prvo, ne razvija se sam softverski proizvod, već njegov prototip koji sadrži rješenje za glavne probleme s kojima se susreću programeri. Nakon uspješnog završetka razvoja prototipa, pravi se softverski proizvod razvija po istim principima. Prototip vam omogućava da bolje razumete zahteve za program koji se razvija. Koristeći prototip, kupac također može preciznije formulirati svoje zahtjeve. Programer ima mogućnost, koristeći prototip, da ga predstavi kupcu preliminarni rezultati tvoj rad.

3. Iterativni model

Zadatak je podijeljen na podzadatke i redoslijed njihove implementacije je određen tako da svaki sljedeći podzadatak proširuje mogućnosti softvera. Uspjeh značajno ovisi o tome koliko su zadaci podijeljeni u podzadatke i kako je redoslijed odabran. Prednosti: 1) mogućnost aktivnog učešća kupca u razvoju, ima mogućnost da razjasni svoje zahteve tokom razvoja; 2) mogućnost testiranja novorazvijenih dijelova zajedno sa prethodno razvijenim, što će smanjiti troškove složenog otklanjanja grešaka; 3) tokom razvoja možete započeti implementaciju u dijelovima.

Životni ciklus softvera

Životni ciklus softvera je vremenski period koji počinje od trenutka donošenja odluke o potrebi kreiranja softverskog proizvoda i završava se u trenutku kada se potpuno ukloni iz upotrebe. (IEEE Std 610.12)

Potreba za određivanjem faza životnog ciklusa softvera (LC) proizilazi iz želje programera da poboljšaju kvalitet softvera kroz optimalno upravljanje razvojem i korištenje različitih mehanizama kontrole kvaliteta u svakoj fazi, od definisanja problema do podrške za autorstvo softvera. Većina opšta idejaŽivotni ciklus softvera je model u obliku osnovnih faza – procesa, koji uključuju:

Analiza sistema i opravdanje softverskih zahtjeva;

Idejni (nacrt) i detaljni (tehnički) dizajn softvera;

Razvoj softverskih komponenti, njihova integracija i otklanjanje grešaka softvera u cjelini;

Testiranje, probni rad i replikacija softvera;

Redovan rad softvera, podrška za rad i analiza rezultata;

Održavanje softvera, njegova modifikacija i unapređenje, kreiranje novih verzija.

Ovaj model je opšteprihvaćen i usklađen je kako sa domaćim propisima iz oblasti razvoja softvera tako i sa inostranim. Sa stanovišta osiguranja tehnološke sigurnosti, preporučljivo je detaljnije razmotriti karakteristike predstavljanja faza životnog ciklusa u stranim modelima, budući da je to strano softver su najvjerovatniji nosioci softverskih grešaka tipa sabotaže.

Standardi životnog ciklusa softvera

GOST 34.601-90

ISO/IEC 12207:1995 (ruski ekvivalent - GOST R ISO/IEC 12207-99)

Grafički prikaz modela životnog ciklusa omogućava da se jasno istaknu njihove karakteristike i neka svojstva procesa.

U početku je kreiran kaskadni model životnog ciklusa, u kojem su glavne faze započinjale jedna za drugom koristeći rezultate prethodnog rada. Omogućava sekvencijalnu implementaciju svih faza projekta po strogo utvrđenom redoslijedu. Prelazak u sljedeću fazu znači potpuni završetak radova u prethodnoj fazi. Zahtjevi definisani u fazi formiranja zahtjeva strogo su dokumentovani u obrascu projektni zadatak i evidentiraju se za cjelokupni razvoj projekta. Svaka faza kulminira izdavanjem kompletne dokumentacije koja je dovoljna da omogući nastavak razvoja od strane drugog razvojnog tima. Netačnost bilo kojeg zahtjeva ili njegovo pogrešno tumačenje rezultira činjenicom da je potrebno "vratiti" na ranu fazu projekta i potrebna dorada ne samo da izbacuje projektni tim iz rasporeda, već često dovodi do kvalitativnog povećanja troškova i, eventualno, do okončanja projekta u onom obliku u kojem je prvobitno zamišljen. Glavne zablude autora vodopada modela su pretpostavke da projekat prolazi kroz ceo proces jednom, projektovana arhitektura je dobra i laka za korišćenje, dizajn implementacije razuman, a greške u implementaciji se lako eliminišu testiranjem. Ovaj model pretpostavlja da će sve greške biti koncentrisane u implementaciji, te se stoga njihovo otklanjanje odvija ravnomjerno tokom testiranja komponenti i sistema. Dakle, model vodopada za velikih projekata nije baš realistično i može se efikasno koristiti samo za kreiranje malih sistema.

Najspecifičniji je model spiralnog životnog ciklusa. Ovaj model se fokusira na iterativni proces početnih faza projektovanja. U ovim fazama se uzastopno kreiraju koncepti, specifikacije zahtjeva, idejni i detaljni projekti. Na svakom koraku se razjašnjava sadržaj rada i koncentriše izgled softvera koji se kreira, ocjenjuje se kvalitet dobijenih rezultata i planira rad sljedeće iteracije. U svakoj iteraciji se evaluira sljedeće:

Rizik prekoračenja projektnih rokova i troškova;

Potreba za izvođenjem još jedne iteracije;

Stepen potpunosti i tačnosti razumijevanja sistemskih zahtjeva;

Izvodljivost okončanja projekta.

Standardizacija životnog ciklusa softvera odvija se u tri pravca. Prvi pravac organiziraju i stimulišu Međunarodna organizacija za standardizaciju (ISO - International Standard Organization) i Međunarodna elektrotehnička komisija (IEC - International Electro-technical Commission). Na ovom nivou se vrši standardizacija najopštijih tehnoloških procesa koji su važni za međunarodnu saradnju. Drugi pravac aktivno razvija u SAD-u Institut inženjera elektrotehnike i elektronike (IEEE) zajedno sa Američkim nacionalnim institutom za standarde (ANSI). ISO/IEC i ANSI/IEEE standardi su prvenstveno savjetodavne prirode. Treći pravac stimuliše Ministarstvo odbrane SAD (DOD). DOD standardi imaju obavezna priroda za kompanije koje rade u ime američkog Ministarstva odbrane.

Za dizajniranje softvera za složeni sistem, posebno sistem u realnom vremenu, preporučljivo je koristiti model životnog ciklusa za cijeli sistem zasnovan na kombinovanju svih poznata dela u okviru razmatranih osnovnih procesa. Ovaj model je namijenjen za korištenje u planiranju, planiranju i upravljanju različitim softverskim projektima.

Skup faza ovog modela životnog ciklusa preporučljivo je podijeliti na dva dijela, koji se značajno razlikuju po karakteristikama procesa, tehničkim i ekonomskim karakteristikama i faktorima koji na njih utiču.

U prvom delu životnog ciklusa, analiza sistema, dizajn, razvoj, testiranje i testiranje softvera. Obim posla, njegova složenost, trajanje i druge karakteristike u ovim fazama značajno zavise od objekta i razvojnog okruženja. Proučavanje ovakvih zavisnosti za različite klase softvera omogućava nam da predvidimo sastav i glavne karakteristike rasporeda rada za nove verzije softvera.

Drugi dio životnog ciklusa, koji odražava podršku za rad i održavanje softvera, relativno je slabo povezan sa karakteristikama objekta i razvojnog okruženja. Opseg rada u ovim fazama je stabilniji, ali njihov radni intenzitet i trajanje mogu značajno varirati i ovisiti o širokoj upotrebi softvera. Za bilo koji model životnog ciklusa, osiguranje visokog kvaliteta softverskih sistema moguće je samo kada se koriste regulisani tehnološki proces u svakoj od ovih faza. Ovaj proces je podržan alatima za automatizaciju razvoja, koje je preporučljivo odabrati između dostupnih ili kreirati uzimajući u obzir razvojni objekt i spisak radova koji mu odgovaraju.

Životni ciklus softvera

Jedan od osnovnih koncepata metodologije dizajna softvera je koncept njegovog životnog ciklusa softvera (SO). Životni ciklus softvera je kontinuirani proces koji počinje od trenutka donošenja odluke o potrebi njegovog kreiranja i završava se u trenutku njegovog potpunog povlačenja iz upotrebe.

Main normativni dokument koji reguliše životni ciklus softvera je međunarodni standard ISO/IEC 12207 (ISO - Međunarodna organizacija za standardizaciju - Međunarodna organizacija o standardizaciji, 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 tokom kreiranja softvera. U ovom standardu Softver (softverski proizvod) definisan kao skup kompjuterski programi, procedure i eventualno povezana dokumentacija i podaci. Proces definira se kao skup međusobno povezanih radnji koje transformiraju neke ulazne podatke u izlazne podatke. Svaki proces karakterišu određeni zadaci i metode za njihovo rješavanje, ulazni podaci dobiveni iz drugih procesa i rezultati.

Struktura životnog ciklusa softvera prema standardu ISO/IEC 12207 zasniva se na tri grupe procesa:

· glavni procesi životnog ciklusa softvera (kupovina, isporuka, razvoj, rad, podrška);

· pomoćni procesi koji osiguravaju implementaciju glavnih procesa (dokumentacija, upravljanje konfiguracijom, osiguranje kvaliteta, verifikacija, sertifikacija, procjena, revizija, rješavanje problema);

· organizacione procese(upravljanje projektom, kreiranje projektne infrastrukture, definisanje, evaluacija i unapređenje samog životnog ciklusa, obuka).

Modeli životnog ciklusa softvera

Model životnog ciklusa- struktura koja određuje redoslijed izvršenja i odnos faza i faza koje se izvode tokom životnog ciklusa. Model životnog ciklusa zavisi od specifičnosti softvera i specifičnih uslova u kojima se softver stvara i radi. Glavni modeli životnog ciklusa su sljedeći.

1. Kaskadni model(do 70-ih godina XX veka) određuje uzastopni prelazak u sledeću fazu nakon završetka prethodne.

Ovaj model karakteriše automatizacija pojedinačnih nepovezanih zadataka, koji ne zahtevaju integraciju informacija i kompatibilnost, softver, tehničko i organizaciono sučelje.

Dostojanstvo: dobri pokazatelji u pogledu vremena izrade i pouzdanosti pri rješavanju pojedinačnih problema.

Mana: Nije primenljivo na velike i složene projekte zbog varijabilnosti u sistemskim zahtevima tokom dugog perioda projektovanja.

2. Iterativni model(70-80-te godine XX vijeka) odgovara tehnologiji dizajna odozdo prema gore. Omogućava iterativni povratak na prethodne faze nakon završetka sljedeće faze;


Model omogućava generalizaciju dobijenih projektnih rješenja za pojedinačne probleme u sistemska rješenja. U ovom slučaju postoji potreba za revizijom prethodno formuliranih zahtjeva.

dostojanstvo: mogućnost brzog prilagođavanja projekta.

mana: sa velikim brojem iteracija, vreme projektovanja se povećava, javljaju se neslaganja u dizajnerskim rešenjima i dokumentaciji, a funkcionalna i sistemska arhitektura kreiranog softvera se zbunjuje. Potreba za redizajniranjem starog ili stvaranjem novi sistem može nastati odmah nakon faze implementacije ili operacije.

3. Spiralni model(80-90-e godine XX vijeka) odgovara tehnologiji dizajna odozgo prema dolje. Uključuje upotrebu prototipa softvera koji omogućava proširenje softvera. Dizajn sistema ciklički ponavlja put od detaljnih zahtjeva do detaljnog programskog koda.

Prilikom projektovanja arhitekture sistema prvo se utvrđuje sastav funkcionalnih podsistema i rešavaju problemi celog sistema (organizacija integrisane baze podataka, tehnologija za prikupljanje, prenos i skladištenje informacija). Zatim se formuliraju pojedinačni problemi i razvija tehnologija za njihovo rješavanje.

Prilikom programiranja prvo se razvijaju glavni softverski moduli, a zatim moduli koji obavljaju pojedinačne funkcije. Prvo se osigurava interakcija modula međusobno i sa bazom podataka, a zatim implementacija algoritama.

Prednosti:

1. smanjenje broja iteracija, a samim tim i broja grešaka i nedosljednosti koje je potrebno ispraviti;

2. smanjenje vremena projektovanja;

3. pojednostavljenje izrade projektne dokumentacije.

mana: visoki zahtjevi za kvalitetom sistemskog spremišta (zajednička baza podataka dizajna).

Osnova je spiralni model tehnologije brzog razvoja aplikacija ili RAD tehnologija (brzi razvoj aplikacija), koja podrazumeva aktivno učešće krajnjih korisnika budućeg sistema u procesu njegovog kreiranja. Glavne faze informacionog inženjeringa su sljedeće:

· Analiza i planiranje informacione strategije. Korisnici, zajedno sa specijalističkim programerima, učestvuju u identifikaciji problematične oblasti.

· Dizajn. Korisnici, pod vodstvom programera, učestvuju u tehničkom dizajnu.

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

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

Razvoj softvera je nemoguć bez razumijevanja takozvanog životnog ciklusa softvera. Prosječan korisnik to možda ne mora znati, ali je preporučljivo savladati osnovne standarde (kasnije će se reći zašto je to potrebno).

Šta je životni ciklus u formalnom smislu?

Životni ciklus bilo koje aplikacije obično se podrazumijeva kao vrijeme njenog postojanja, počevši od faze razvoja pa do trenutka potpunog napuštanja upotrebe u odabranom polju primjene, pa do potpunog povlačenja aplikacije iz upotrebe.

Govoreći jednostavnim jezikom, informacioni sistemi u obliku programa, baza podataka ili čak „operativnih sistema“ traže se samo ako su podaci i mogućnosti koje pružaju ažurni.

Smatra se da se definicija životnog ciklusa ni na koji način ne odnosi na testiranje aplikacija, kao što su beta verzije, koje su najnestabilnije u radu. Sam životni ciklus softvera zavisi od mnogih faktora, među kojima jednu od glavnih uloga igra okruženje u kojem će se program koristiti. Međutim, moguće je i istaknuti opšti uslovi, koji se koristi u definisanju koncepta životnog ciklusa.

Početni zahtjevi

  • izjava o problemu;
  • analiza međusobnih zahtjeva budućeg softvera za sistem;
  • dizajn;
  • programiranje;
  • kodiranje i kompilacija;
  • testiranje;
  • otklanjanje grešaka;
  • implementacija i održavanje softverskog proizvoda.

Razvoj softvera se sastoji od svih gore navedenih faza i ne može bez barem jedne od njih. Ali su uspostavljeni posebni standardi za kontrolu takvih procesa.

Standardi procesa životnog ciklusa softvera

Među sistemima koji unaprijed određuju uslove i zahtjeve za takve procese, danas možemo navesti samo tri glavna:

  • GOST 34.601-90;
  • ISO/IEC 12207:2008;
  • Oracle CDM.

Za drugu međunarodni standard postoji ruski analog. Ovo je GOST R ISO/IEC 12207-2010, koji je odgovoran za sistemski i softverski inženjering. Ali životni ciklus softvera opisan u oba pravila je u suštini identičan. Ovo se objašnjava prilično jednostavno.

Vrste softvera i ažuriranja

Inače, za većinu trenutno poznatih multimedijalnih programa oni su sredstvo za čuvanje osnovnih parametara konfiguracije. Upotreba softvera ovog tipa je, naravno, prilično ograničena, ali razumijevanje općih principa rada s istim media playerima neće škoditi. A evo i zašto.

U stvari, oni uključuju životni ciklus softvera samo na nivou ažuriranja verzije samog plejera ili instaliranja kodeka i dekodera. A audio i video transkoderi su sastavni atributi svakog audio ili video sistema.

Primjer baziran na FL Studiju

U početku, virtuelni studijski sekvencer FL Studio se zvao Fruity Loops. Životni ciklus softvera u njegovoj početnoj modifikaciji je istekao, ali je aplikacija donekle transformisana i dobila svoj sadašnji oblik.

Ako govorimo o fazama životnog ciklusa, prvo, u fazi postavljanja problema, postavljeno je nekoliko obaveznih uslova:

  • stvaranje bubnjarskog modula sličnog ritam mašinama kao što je Yamaha RX, ali koristeći jednokratne semplove ili sekvence u WAV formatu snimljene uživo u studijima;
  • integracija u operativni sistemi Windows;
  • mogućnost izvoza projekta u WAV, MP3 i OGG formatima;
  • Kompatibilnost projekata sa dodatnom aplikacijom Fruity Tracks.

U fazi razvoja korišćeni su alati programskog jezika C. Ali platforma je izgledala prilično primitivno i nije dala krajnjem korisniku potreban kvalitet zvuk.

S tim u vezi, u fazi testiranja i otklanjanja grešaka, programeri su morali pratiti put njemačke Steinberg korporacije i primijeniti podršku za Full Duplex način rada u zahtjevima za glavni zvučni drajver. Kvalitet zvuka je postao viši i omogućava vam da mijenjate tempo, visinu i primjenjujete dodatne FX efekte u realnom vremenu.

Završetkom životnog ciklusa ovog softvera smatra se izlazak prve zvanične verzije FL Studija, koji je, za razliku od svojih predaka, već imao interfejs punopravnog sekvencera sa mogućnošću uređivanja parametara na virtuelnom 64 -kanalna mikserska konzola sa neograničenim dodavanjem audio i MIDI zapisa.

Nije se tu zaustavilo. U fazi upravljanja projektom uvedena je podrška za povezivanje plug-ina VST formata (prvo druga, a zatim treća verzija), koji je svojevremeno razvio Steinberg. Grubo govoreći, bilo koji virtuelni sintisajzer koji podržava VST-host bi se mogao povezati na program.

Nije iznenađujuće da bi uskoro bilo koji kompozitor mogao koristiti analoge "hardverskih" modela, na primjer, kompletne setove zvukova nekada popularnog Korg M1. Dalje - više. Upotreba modula kao što su Addictive Drums ili univerzalni Kontakt plugin omogućila je reprodukciju živih zvukova pravih instrumenata snimljenih sa svim nijansama artikulacije u profesionalnim studijima.

Istovremeno, programeri su pokušali da postignu maksimalan kvalitet kreiranjem podrške za ASIO4ALL drajvere, za koje se pokazalo da su glava i ramena iznad Full Duplex režima. U skladu s tim, brzina prijenosa je također porasla. Danas, kvalitet izvezene audio datoteke može biti 320 kbps pri frekvenciji uzorkovanja od 192 kHz. A ovo je profesionalni zvuk.

Što se tiče početne verzije, njen životni ciklus bi se mogao nazvati potpuno završenim, ali takva izjava je relativna, jer je aplikacija samo promijenila ime i dobila nove mogućnosti.

Perspektive razvoja

Koje su faze životnog ciklusa softvera već je jasno. Ali razvoj takvih tehnologija vrijedi posebno spomenuti.

Nepotrebno je reći da bilo koji programer softvera nije zainteresiran za stvaranje kratkotrajnog proizvoda za koji je malo vjerovatno da će preživjeti na tržištu nekoliko godina. Dugoročno, svi gledaju na njegovu dugoročnu upotrebu. To se može postići na različite načine. Ali, u pravilu, gotovo svi se svode na izdavanje ažuriranja ili novih verzija programa.

Čak iu slučaju Windows OS-a, takvi trendovi se mogu vidjeti golim okom. Malo je vjerovatno da će danas postojati barem jedan korisnik koji koristi sisteme kao što su modifikacije 3.1, 95, 98 ili Millennium. Njihov životni ciklus je završio nakon izdavanja XP-a. Ali verzije servera zasnovane na NT tehnologijama su i dalje relevantne. Čak i Windows 2000 danas nije samo vrlo relevantan, već u nekim instalacijskim ili sigurnosnim parametrima čak i nadmašuje najnovija dostignuća. Isto važi i za NT 4.0 sistem, kao i za specijalizovanu modifikaciju Windows Servera 2012.

Ali u odnosu na ove sisteme, podrška je i dalje deklarirana na najvišem nivou. Ali nekada senzacionalna Vista očigledno doživljava pad svog ciklusa. Ne samo da se ispostavilo da je nedovršen, već je u njemu bilo toliko grešaka i propusta u njegovom sigurnosnom sistemu da se može samo nagađati kako je tako neodrživo rješenje moglo biti pušteno na tržište softvera.

Ali ako kažemo da razvoj softvera bilo koje vrste (kontrolnog ili aplikativnog) ne miruje, možemo samo reći da se danas ne tiče samo kompjuterski sistemi, i mobilnih uređaja, u kojoj su tehnologije koje se koriste često ispred računarskog sektora. Pojava procesorskih čipova baziranih na osam jezgara nije najbolja najbolji primjer? Ali ne može se svaki laptop pohvaliti da ima takav hardver.

Neka dodatna pitanja

Što se tiče razumevanja životnog ciklusa softvera, sasvim je proizvoljno reći da se on završio u određenom trenutku, jer softverski proizvodi i dalje imaju podršku od programera koji su ih kreirali. Umjesto toga, završetak se odnosi na naslijeđene aplikacije koje ne ispunjavaju zahtjeve savremeni sistemi i ne mogu raditi u svom okruženju.

Ali čak i uzimajući u obzir tehnički napredak mnoge od njih mogu uskoro postati nelikvidne. Tada ćete morati donijeti odluku ili da objavite ažuriranja ili da u potpunosti revidirate cijeli koncept koji je prvobitno ugrađen u softverski proizvod. Otuda i novi ciklus, koji podrazumeva promenu početnih uslova, razvojnog okruženja, testiranje i moguću dugoročnu upotrebu u određenom području.

Ali u kompjuterskoj tehnologiji danas se prednost daje razvoju automatizovanih upravljačkih sistema (ACS), koji se koriste u proizvodnji. Čak i operativni sistemi, u poređenju sa specijalizovanim programima, gube.

Okruženje zasnovano na Visual Basicu ostaje mnogo popularnije od Windows sistema. I uopće ne govorimo o aplikativnom softveru za UNIX sisteme. Što reći ako gotovo sve komunikacijske mreže istih Sjedinjenih Država rade isključivo za njih. Inače, sistemi poput Linuxa i Androida također su prvobitno kreirani na ovoj platformi. Stoga, najvjerovatnije, UNIX ima mnogo više izgleda od ostalih proizvoda zajedno.

Umjesto totala

Ostaje samo to dodati u ovom slučaju opšti principi i faze životnog ciklusa softvera. U stvari, čak i prvobitno postavljeni zadaci mogu veoma značajno varirati. Shodno tome, razlike se mogu uočiti u drugim fazama.

Ali osnovne tehnologije za razvoj softverskih proizvoda i njihovu kasniju podršku trebaju biti jasne. U ostalom treba uzeti u obzir specifičnosti softvera koji se kreira, okruženja u kojima on treba da radi, mogućnosti programa koji se pružaju krajnjem korisniku ili proizvodnji i još mnogo toga.

Osim toga, ponekad životni ciklusi mogu ovisiti o relevantnosti razvojnih alata. Ako, na primjer, programski jezik zastari, niko neće pisati programe na osnovu njega, a još manje implementirati ih u automatizovani sistemi upravljanje proizvodnjom. Ovdje čak ni programeri ne dolaze do izražaja, već trgovci koji moraju pravovremeno reagirati na promjene na tržištu računara. A takvih specijalista nema toliko u svijetu. Visokokvalificirani kadrovi koji mogu držati prst na pulsu tržišta postaju najtraženiji. A oni su često tzv. sivi kardinali“, od kojih zavisi uspjeh ili neuspjeh određenog softverskog proizvoda u IT oblasti.

Možda ne razumeju uvek suštinu programiranja, ali su jasno u stanju da odrede modele životnog ciklusa softvera i dužinu vremena njihove upotrebe, na osnovu globalnih trendova u ovoj oblasti. Učinkovito upravljanje često daje opipljivije rezultate. Da, barem PR tehnologije, oglašavanje itd. Korisniku možda neće trebati neka aplikacija, ali ako se aktivno reklamira, korisnik će je instalirati. Ovo je već, da tako kažem, podsvjesni nivo (isti efekat 25. kadra, kada se informacija stavlja u svijest korisnika nezavisno od njega).

Naravno, takve tehnologije su zabranjene u svijetu, ali mnogi od nas i ne slute da se i dalje mogu koristiti i na određeni način utjecati na podsvijest. Koliko košta “zombiranje” informativnih kanala ili internet stranica, a da ne spominjemo korištenje više moćna sredstva, kao što je izlaganje infrazvuku (ovo je korišteno u jednoj opernoj produkciji), zbog čega osoba može doživjeti strah ili neprikladne emocije.

Vraćajući se softveru, vrijedi dodati da neki programi koriste zvučni signal prilikom pokretanja kako bi privukli pažnju korisnika. I, kao što istraživanje pokazuje, takve aplikacije su održivije od drugih programa. Naravno, životni ciklus softvera se takođe povećava, bez obzira na to koja mu je funkcija prvobitno dodeljena. I, nažalost, mnogi programeri to koriste, što izaziva sumnju u zakonitost takvih metoda.

Ali nije na nama da sudimo o tome. Moguće je da će se u bliskoj budućnosti razviti alati za identifikaciju takvih prijetnji. Za sada je to samo teorija, ali, prema nekim analitičarima i stručnjacima, do praktična primjena Ostalo je jako malo. Ako već stvaraju kopije neuronskih mreža ljudskog mozga, šta onda reći?