Metodologije razvoja programske opreme: koncepti, načela, metode in razvojne faze

Kako ustvariti programsko opremo? Kateri strokovnjaki so vodeni v svojih dejavnostih? Pomembne metodologije za razvoj programske opreme so pomembne na tem področju. Nekaj ​​jih bomo razpravljali v tem članku, podrobno pa se bomo osredotočili na naloge, faze, pomembna načela in razlike teh metodologij.

Kaj je to?

Začnimo z opredelitvijo članka. Metodologija razvoja programske opreme je sklop načel, sistema idej, konceptov, metod, metod in orodij, ki na koncu določajo slog razvoja programske opreme. Z drugimi besedami, tukaj je metodologija izvajanje določenega standarda. Pomembno je opozoriti, da so standardi tukaj priporočeni, ne pa naročeni, kot bi morali biti. Zato je pred ustvarjalcem ohranjena svoboda izbire, prilagoditev teorije. Specifični izdelki se izvajajo z metodologijo razvoja programske opreme. Odločila se bo, kako bo strokovnjak opravljal svoje delo. Danes obstaja veliko takšnih metodologij - glavnih, ki jih bomo upoštevali pri gradivu. Kakšne vplive na njihovo izbiro imajo samo? Opredeljujejo se velikost ekipe, kompleksnost in specifičnost posameznega projekta, zrelost in stabilnost procesov v podjetju-delodajalcu, osebne preference ustvarjalca.


Metodologija je torej jedro teorije upravljanja razvoja programske opreme. V preteklosti so uporabljali klasifikacijo, ki je vse metodologije razdelila na dve vrsti: iterativno in slapovito (na podlagi. \ Tmodelov življenjskega cikla). Danes se uporablja sodobna splošna klasifikacija, ki je razdeljena na dve skupini: predvidljiva in prilagodljiva. Podrobneje se seznanite z njimi.

Metodologija napovedi

Kakšni so podatki o metodologijah razvoja programske opreme? To so sorte, ki so osredotočene na podrobno načrtovanje prihodnosti. Naloge in viri so znani ves čas trajanja projekta. Zato se bo delovna skupina težko odzvala na nepričakovane spremembe.


Načrt je sestavljen iz sestave potrebnega dela, zahtev, ki jih mora izpolnjevati. Sprememba zahtev vodi k spremembi celotnega načrta, oblikovanju načrta. Za predvidene metodologije je običajno ustanovitev posebnega odbora, ki upravlja spremembe, tako da projekt upošteva le najpomembnejše zahteve.

Prilagodljive metodologije

Kakšna je posebnost teh metodologij za razvoj računalniške programske opreme? Namenjene so že preseganju pričakovane nepopolnosti, nepopolnosti zahtev in nenehnim spremembam slednjih. V skladu s tem bo spremembo zahtev zamenjala skupina razvijalcev projektov. Natančen načrt prilagoditvene metodologije se razvija le v bližnji prihodnosti. Načrti, ki so bolj oddaljeni od realnosti dogodkov, obstajajo v obliki izjav o namenu dela, njegovih rezultatih in pričakovanih stroških.

Prilagodljive metodologije

Prilagodljive metodologije za razvoj programske opreme - angleščina. Agilna razvoj programske opreme. Od tod tudi drugo ime: agilne metode. Prilagodljive metodologije razvoja programske opreme sokompleks pristopov k razvoju programske opreme, ki se osredotoča na uporabo iterativnega razvoja, dinamično oblikovanje zahtev za projekt, zagotavljanje izvedbe konca stalne interakcije v delovnih skupinah, ki jih sestavljajo strokovnjaki različnih profilov.
Predvsem gre za učinkovito prakso dela majhnih skupin, ki se ukvarjajo z enako vrsto ustvarjalnega dela. V kombinaciji s kombinirano (demokratično in liberalno) metodo upravljanja. Prilagodljive metodologije za razvoj programske opreme so namenjene zmanjševanju tveganj z združevanjem skupnega projekta v kompleks kratkih ciklov (ti iteracije), ki trajajo vse do 2-3 tedne. Ponovitev je majhen programski projekt, ki vključuje vse naloge za zagotavljanje funkcionalne mini rasti. Kot tak: načrtovanje, analiza zahtev, načrtovanje, programiranje, testiranje razvoja, dokumentacija. Seveda ločena iteracija tukaj ni dovolj za sproščanje končnega izdelka. Tu je še en pomen. Do konca vsake ponovitve je prilagodljiv programski izdelek pripravljen. Tudi ob koncu obdobja mora ekipa opraviti ponovno oceno razvojnih prioritet. Med vsako ponovitvijo (stopnje razvoja programske opreme) je poudarek na neposredni komunikaciji strokovnjakov "iz oči v oči". Večina ekip se nahaja v eni pisarni. Bodite prepričani, da imate "stranko" - pooblaščenega predstavnika, ki pripravlja zahteve za razvoj. To vlogo upravlja upravljavecprojekt, stranka-stranka, poslovni analitik. Pisarna lahko vključuje tudi testerje, tehnične pisce, oblikovalce vmesnika itd.
Glavni pokazatelj je končni izdelek. Poleg tega je neposredna komunikacija strokovnjakov sorazmerno majhna količina priložene pisne dokumentacije.

Agilni manifest

Oglejmo si osnovne standarde razvoja programske opreme. Prvi je niz razvojnih procesov, imenovanih Agile. Opredeljen je v Agilnem manifestu. Pomembno je reči, da Agile ne vsebuje nekaj praktičnih nasvetov, ampak vsebuje vrednote in načela, ki jih mora voditi skupina razvijalcev pri svojem delu. Agilni manifest je bil razvit in sprejet 1. in 13. februarja 2001 na smučišču v gorah Utah. Vsebuje 4 glavne ideje in 12 načel timskega dela brez enotnega praktičnega odbora. Predstavljajte si osnovne ideje moderne metodologije razvoja programske opreme:
  • Interakcija in ljudje so najpomembnejša orodja in procesi.
  • Delovni proizvod je nad obsežno dokumentacijo.
  • Sodelovanje s stranko je najpomembnejše usklajevanje posameznih pogodbenih pogojev.
  • Pripravljenost skupine za spremembo je pomembnejša od sprejetja začetnih načrtov.
  • Tudi v Agilnem manifestu so bila navedena naslednja načela dejavnosti razvijalca:
  • Zadovoljevanje zahtev strank zaradi neprekinjenega predčasnega dostave dragocenih.
  • Čestitke za spreminjajoče se zahteve tudi po zaključku projekta. Navsezadnje lahko to poveča njegovo konkurenčnost.
  • Pogoste dobaveprogramska oprema za delo - vsak teden.
  • Projekt zaposluje motivirane posameznike, ki imajo udobne delovne pogoje, zaupanje in podporo.
  • Vsakodnevno tesno sodelovanje med stranko in skupino razvijalcev.
  • Programska oprema bo najboljše merilo napredka.
  • Uporabniki, sponzorji in razvijalci morajo izbrano hitrost ohraniti za nedoločen čas.
  • Stalna pozornost za izboljšanje zasnove izdelka, tehničnih zahtev.
  • Enostavnost je umetnost, da se ne ukvarjamo z odvečnim delom.
  • Stalno prilagajanje spreminjajočim se pogojem dejavnosti. Razvijalci bi morali nenehno iskati načine za izboljšanje svoje učinkovitosti, sledite jim kasneje.
  • Model slapov

    Iz fleksibilnega manifesta metodologije razvoja programske opreme preidemo na nov tip. Model slapa - "slap" ali kaskadni model. Ena najstarejših metodologij. Vključuje zaporedne prehodne faze razvoja programske opreme, ki se morajo končati, preden se začne naslednja.

    Zaradi te togosti je projekt v skladu s to metodologijo lahko upravljati. Stroški in čas razvoja so vnaprej določeni, zakaj je delo hitro. Pomembno pa je tudi, da se spomnimo tega vidika: kaskadni model daje odličen rezultat le pri projektih z vnaprej določenimi jasno določenimi zahtevami, metodami njihovega izvajanja. Tukaj strokovnjaki nimajo možnosti "vrniti", saj se testiranje začne šele po zaključku faze. Če izbira takšnega modela ni utemeljenaza izdelek, potem se proizvodnja vidi s precejšnjimi pomanjkljivostmi. Navsezadnje bo njihova prisotnost znana po zaključku dela zaradi strogega zaporedja aktivnosti. Popravljanje napak tukaj je precej drago. Za zagon popisa morate počakati na konec razvoja.
    Strokovnjaki svetujejo uporabo metodologije "slap" v naslednjih primerih:
  • Zahteve projekta so znane, razumljive in fiksne. Med njimi ni nasprotij.
  • Pri programerjih ni težav pri pridobivanju zahtevanih kvalifikacij.
  • Projekt je relativno majhen.
  • V-model

    Faze razvoja programske opreme so tudi skladne. Ta funkcija V-Model "podedoval" iz "slap". Še posebej dobro za tiste sisteme, kjer je potrebno nemoteno delovanje. Dober primer je izdelava aplikativne programske opreme za klinike, ki se uporabljajo za stalno spremljanje bolnikov. Ali programska oprema, ki nadzoruje mehanizme zračnih blazin v vozilih. Ali aplikacija za mobilnega operaterja, ki je namenjena varčevanju za stroške uporabnika za gostovanje v tujini. Projekt se izvaja istočasno na jasnih točkah ustvarjalne naloge. Pomembno vlogo ima tudi pravočasno testiranje: funkcionalni, integracijski, nakladalni, uporabniku prijazen vmesnik. Kadar je treba uporabiti to metodologijo za razvoj:
  • Kadar je potrebno skrbno testiranje proizvoda.
  • Za male in srednje velike projekte z natančno opredeljenimi zahtevami.
  • Vpogoji, kadar so na voljo inženirji, preizkuševalci določene kvalifikacije.
  • Inkrementalni model

    V tej tehnologiji razvoja programske opreme so kompleksne zahteve sistema razdeljene na kompilacijo. Z drugimi besedami, to je opis postopne gradnje. Več ciklov razvoja projekta je v kompleksu, imenovanem "multi-slap". Cikel je nato razdeljen na ločene modele, ki jih je enostavno ustvariti. Vsak od njih poteka skozi faze zahtev po definiciji, oblikovanju, izvedbi, testiranju, kodiranju. Posebnost pri tem je, da je na prvi veliki stopnji izdan osnovni model razvoja. Nato se dodajo povečave - nove funkcije. Takšen postopek se nadaljuje, dokler se ne ustvari celoten kompleks. Dodaten model je primeren, kadar so posamezne zahteve za spremembe jasne, jih je mogoče preprosto formalizirati in izvajati. Opišite primere, kjer je uporaba inkrementalnega modela upravičena:
  • Jasno opredeljene in razumljive zahteve za končni izdelek.
  • Nekatere podrobnosti je mogoče sčasoma izboljšati.
  • Obstaja več tveganih ciljev.
  • Potreben je zgodnji zaključek na trgu.
  • Model RAD

    Takoj opažamo, da je model RAD eden izmed različic inkrementalnega modela. Komponente ali funkcije programa razvijajo hkrati več skupin strokovnjakov. Rezultat je nekaj mini projektov. Čas za ustvarjanje vsakega od njih je strogo omejen. Vsi moduli so v splošnem delovnem prototipu. Sistem je dober, ker pomaga hitro predstaviti strankoPreglejte delovni izdelek, ki ga lahko naredite vrsto sprememb. Proces razvoja programske opreme vključuje več korakov:
  • Poslovna simulacija. To je definicija tokov informacij med spektrom enot.
  • Simulacija informacij. Podatki, zbrani v prvi fazi, se uporabljajo za identifikacijo subjektov, potrebnih za kroženje informacij.
  • Modeliranje procesov. V tej fazi informacijski tokovi povezujejo določene objekte, da bi dosegli cilj razvoja.
  • Priprava programa. Tukaj uporabljamo avtomobilske sklope za pretvorbo vzorcev oblikovanja v kodo.
  • Testiranje. Preverjanje novih komponent in vmesnikov.
  • Uporabite to metodo razvoja programske opreme le, če so v ekipi visoko usposobljeni in "ozki" strokovnjaki. Proračun projekta je vsekakor velik: potrebno je plačati delo strokovnjakov, stroške gotovih orodij avtomatizirane montaže. Model je izbran s samozavestnim poznavanjem ciljnega podjetja v primerih, ko je treba končne izdelke predstaviti kratke - v 2-3 mesecih.

    Iterativni model

    Naslednji primer organizacije za razvoj programske opreme je iterativen (ali iterativni model). Posebnost projekta je, da ne zahteva popolne specifikacije zahtev za začetek izvajanja. Oblikovanje se začne z zasnovo baze podatkov, ki mora biti osnova za določanje nadaljnjih zahtev. Različica v tem primeru je lahko popolnoma neprimerna. Glavna zahteva je, da deluje.Razvijalec razume in vidi končni cilj dela. Prizadevati si mora za to, da je vsak korak njegove dejavnosti produktiven in da je vsaka ustvarjena različica izvedljiva. Iz nekega razloga ustvarjanje tukaj spominja na ustvarjanje slike: risba je najprej narisana, nato je napolnjena s cvetjem, dodane so podrobnosti, nasičenost, prehodni odtenki, zadnji dotiki - in proces je zaključen. Nekaj ​​je podobno inkrementalnemu modelu? Poglejmo si razliko. V skladu z inkrementalno metodologijo je izdelek sestavljen iz delov, funkcionalna programska oprema pa je sestavljena, kar se imenuje, v bitih. Hkrati pa je vsak del že sestavni del. In "kosi" v iterativnem modelu nimajo avtonomije. Drug zgled razvoja programske opreme iz te metodologije je naprava za prepoznavanje glasu. Vse se je začelo s pripravo znanstvene baze. Nato smo zbrali potrebno dokumentacijo. Z vsakim novim razvojem se je kakovost opreme povečala. Vendar še ni dosegel idealne ravni. Torej projekt še ni zaključen. Uporaba iterativnega modela je upravičena v naslednjih primerih:
  • Zahteve za končno različico razvoja so jasne in jasno opredeljene.
  • Projekt je zelo velik.
  • Glavna naloga je vnaprej določena. Toda izboljšajmo njegove podrobnosti, spremembe v procesu dela.
  • Spiralni model

    Spiralni model je v veliki meri podoben prejšnjemu. Poudarek pa je na še eni nalogi razvoja programske opreme - ocena tveganja. Večino te metodologije lahko uporabimo za reševanje kritičnih vprašanjposlovne naloge, ko lahko neuspeh projekta resno škoduje poslovanju podjetja. Spiralni model se pogosto uporablja pri izdaji novih programskih linij, če je potrebno, za izvajanje znanstveno-raziskovalnih projektov, praktičnega testiranja. Vsak od "zavojev spirale" poteka skozi štiri faze:
  • Načrtovanje.
  • Analiza tveganja.
  • Gradbeništvo.
  • Ocena rezultatov. Če je pozitiven, se razvijalec preseli v novo "nit" projekta.
  • Spiralni model se ne sme uporabljati za majhne proračunske projekte. Nasprotno, primernejši je za velike in drage. Dober primer uporabe metodologije za razvoj sistema za bančno dokumentacijo. Tu se veliko pozornosti namenja ne samo programiranju, ampak tudi analizi vsakega že proizvedenega "obrata".

    LD

    Tako imenovani napredni razvoj programske opreme. To je ena od vej fleksibilne metodologije, ki smo jo razstavili zgoraj. Glavna prednost LD: ohranjanje visokega moralnega in funkcionalnega stanja strokovnjakov. To je zlasti naslednje:
  • Spodbujanje vsakega zaposlenega do posebej uspešne dejavnosti.
  • Sedanji cilji projekta se spremenijo le v primeru skrajne nujnosti ali na zahtevo stranke.
  • Strogo izvajanje načrta. Super-delo velja za znak izgube časa in sredstev.
  • Izvajanje splošnega koncepta dejavnosti: "Široko razmišljanje, hitra napaka, malo dela, hitro učenje".
  • XP

    Zelo zanimiv primer je metodologija tako imenovanega ekstremaprogramiranje Kaj je skrito tukaj? To je razvoj v pogojih nenehno spreminjajočih se zahtev za izdelek. Smer metodologije ima naslednje posebne značilnosti:
  • "načrtovanje igre". Na začetku dela je predstavljen le približen načrt. Z vsakim razvojem se povečuje njegova ostrina.
  • Velika pogostnost izpustov. To pomeni, da bo nova različica imela le majhno razliko od prejšnje, vendar bo njegova izdaja trajala najmanj časa.
  • Stik s stranko. Za naslednjo metodologijo je pomembno, da hitro izpolnimo vse zahteve naročnika - takoj odgovorimo na vse njegove pripombe in želje.
  • Refactoring. Kakovost kode se izboljša, ne da bi zmanjšali njeno funkcionalnost.
  • Izvajanje standardne kode. Na prvi pogled ali v skladu s splošnimi pravili ali pomanjkanjem neskladij v razvojnem procesu.
  • Kolektivna odgovornost. Tako je vsak član ekipe zaposlen z določenim področjem dela. Toda za celoten rezultat je celotna ekipa že odgovorna.
  • FDD

    In zadnja metodologija v našem članku. Zagotavlja prilagodljivost in ponovljivost. Ampak hkrati spodbuja ustvarjalni pristop, uporabo v delu inovacij. Glavna načela metodologije so naslednja:
  • Razvoj vsakega velikega projekta je sistematična dejavnost.
  • Vsi postopki morajo biti preprosti in dobro zasnovani.
  • Vsak član skupine mora razumeti logiko in vrednost vsakega postopka.
  • Prednosti so kratki cikli razvoja programske opreme. To vam omogoča, da zmanjšate zneseknapak, medtem ko povečuje funkcionalnost.
  • Vrednost metodologije in dejstvo, da jasno ureja dolžino procesov. V tem primeru se organizacijska vprašanja v vsakem ciklu ne smejo porabiti več kot 25% časa. Preostalih 75% je zgolj za razvoj, pripravo in testiranje funkcionalnosti. Zaključili bomo z osnovnim razvojem programske opreme. Kot ste videli, značilnosti vsakega od njih omogočajo izbiro ustrezne metodologije za uspešno izvedbo najrazličnejših projektov.

    Sorodne publikacije