Ohjelmistojen kehitysprosessi. Ohjelmiston suunnittelu

Nykyään monimutkaisten ohjelmistosovellusten luomisprosessia ei voida kuvitella jakamatta sitä elinkaarivaiheisiin. Ohjelman elinkaarella tarkoitamme sarjaa vaiheita:

  • Aihealueen analyysi ja teknisten eritelmien luominen (vuorovaikutus asiakkaan kanssa)
  • Ohjelmarakenteen suunnittelu
  • Koodaus (ohjelmakoodisarja projektidokumentaation mukaan)
  • Testaus ja virheenkorjaus
  • Ohjelman toteuttaminen
  • Ohjelman tuki
  • Hävittäminen
Katsotaanpa tarkemmin suunnitteluprosessia. Suunnitteluprosessin aikana arkkitehti tai kokenut ohjelmoija laatii suunnitteludokumentaation, joka sisältää tekstikuvaukset, kaaviot ja mallit tulevasta ohjelmasta. UML-kieli auttaa meitä tässä vaikeassa tehtävässä.

UML on graafinen kieli eri järjestelmien (erityisesti ohjelmien) visualisointiin, parametrien kuvaamiseen, suunnitteluun ja dokumentointiin. Kaaviot luodaan käyttämällä erityisiä CASE-työkaluja, kuten Rational Rose (http://www-01.ibm.com/software/rational/) ja Enterprise Architect (http://www.sparxsystems.com.au/). Perustuu UML-tekniikkaan, yhtenäinen tietomalli. Yllä olevat CASE-työkalut pystyvät luomaan koodia useilla oliokielillä, ja niissä on myös hyvin hyödyllinen toiminto käänteinen suunnittelu. (Käänteisen suunnittelun avulla voit luoda graafisen mallin olemassa olevasta ohjelmakoodista ja sen kommenteista.)

Tarkastellaan kaaviotyyppejä mallin visualisoimiseksi (tämä on pakollinen, vaikka tyyppejä on monia muita):

Onko lyhyiden segmenttien sovellusten rakentamisesta mitään hyötyä?

Jopa ilman mitään lisätoimintoja sitä voidaan käyttää esimerkiksi yrityskirjeenvaihtoon. Monissa projekteissa alussa näyttää olevan hyvin tiedossa, miten sovelluksen pitäisi toimia. Mutta kun on kyse ratkaisun valmistelusta, käy ilmi, että tämä visio ei ole täysin selvä.

Asiakkaiden määrän kasvaessa sovelluksen on tarjottava helppo pääsy tietokantaan. Tämä haku voidaan tehdä eri tavoilla: Pelkästään nimen etsimisestä, lajittelusta eri parametrien, kuten viimeisimmän yhteydenottoajan, viimeisimmän tilauksen koon tai viimeisimmän asiakkaan sijainnin mukaan, mukaan. Näin käy usein, kun käyttäjät alkavat käyttää tätä sovellusta. Tiedät, mitä hakua he pitävät. Voit yrittää ennustaa sen suunnitteluvaiheessa, mutta elämä voi yllättää kokeneimmatkin ihmiset.

Käyttötapauskaavio

Suunniteltu järjestelmä esitetään kokonaisuutena kokonaisuutena tai toimijoina, jotka ovat vuorovaikutuksessa järjestelmän kanssa niin kutsuttujen ennakkotapausten avulla. Tässä tapauksessa toimija tai näyttelijä on mikä tahansa kokonaisuus, joka on vuorovaikutuksessa järjestelmän kanssa ulkopuolelta. Toisin sanoen jokainen käyttötapaus määrittelee tietyn joukon toimintoja, jotka järjestelmä suorittaa dialogin aikana toimijan kanssa. Mitään ei kuitenkaan kerrota siitä, miten toimijoiden vuorovaikutus järjestelmän kanssa toteutetaan.

luokkakaavio

Luokkakaavio edustaa järjestelmämallin staattista rakennetta olio-ohjelmointiluokkien terminologiassa. Luokkakaavio voi heijastaa erityisesti yksittäisten toimialueen entiteettien, kuten objektien ja alijärjestelmien, välisiä erilaisia ​​suhteita, ja se kuvaa myös niiden sisäistä rakennetta (kentät, menetelmät...) ja suhdetyyppejä (perinnöllisyys, rajapintojen toteutus... ). Tämä kaavio ei anna tietoa järjestelmän toiminnan ajoitusnäkökohdista. Tästä näkökulmasta luokkakaavio on jatkokehitys suunnitellun järjestelmän käsitteelliselle mallille. Tässä vaiheessa OOP-lähestymistavan ja suunnittelumallien tuntemus on välttämätöntä.


Mitkä ovat käyttäjien vinkit?

Käyttäjät lähettävät kyselyitä, kuten minä käytän tätä useammin. Tämä ominaisuus voidaan sijoittaa aloitusnäyttöön.

Sitten kuinka aloittaa Sprint ensin

Aloitetaan määrittelemällä tuote, jolla on vähimmäisvaatimukset. Tämä on perusominaisuus, joka on otettava käyttöön, jotta asiakas voi varmistaa tuotteen sopivuuden liiketoimintaan. Joskus tämän saavuttamiseksi ei ole yhtä, vaan useita sprinttejä.

Kuinka kauan ohjelmiston ensimmäisen version luominen kestää?

Kuukautta myöhemmin meillä oli ensimmäinen versio ohjelmisto. Jos tämä aika on paljon pidempi, on hyvä idea valmistella prototyyppi, jonka avulla käyttäjät voivat arvioida ehdotettua ratkaisua. Tällaisessa prototyypissä jotkin toiminnot eivät toimi, mutta käyttäjät voivat laatia ensimmäiset arviot.

tilakaavion kaavio

Tämän kaavion päätarkoituksena on kuvata mahdollisia tila- ja siirtymäsarjoja, jotka yhdessä kuvaavat mallielementin käyttäytymistä sen elinkaaren aikana. Tilakaavio edustaa entiteettien dynaamista käyttäytymistä sen perusteella, miten ne reagoivat tiettyjen tapahtumien havaintoon.


Mikä on tärkeää hyvässä ohjelmistokehitysyhteistyössä?

Palaute on tärkeää. Ilman sitä ketterä metodologia lakkaa toimimasta. Ilman tietoa meidän on luotava ohjelmisto arvaamalla, pidämmekö tekemästämme. Onneksi asiakkaamme ovat erittäin kiinnostuneita viestinnästä, ja tämä auttaa.

On vaikea sanoa, kuinka paljon koko projekti maksaa, joten sinun on laadittava erittäin yksityiskohtainen erittely etukäteen. Tällaisen spesifikaation luomisen kustannukset ovat kuitenkin usein suuremmat kuin kustannusarvion virhe hitaassa suunnittelussa. Kuten missä tahansa liiketoiminnassa, luottamuksen rakentaminen vaatii muutakin kuin vain liiketoimintaa. Toimittajan on työskenneltävä heille. On vaikea olettaa, että saat niitä ilmaiseksi, varsinkin jos asiakkaalla on huonoja kokemuksia muista yrityksistä. Meillä on ollut tilanteita, joissa aloitimme yhteistyön hyvin rajallisella luottamuksella, mutta lupausten kasvaessa.

Järjestyskaavio

Objektien vuorovaikutuksen mallintamiseen UML-kielellä käytetään sopivia vuorovaikutuskaavioita. Kohteiden vuorovaikutuksia voidaan tarkastella ajassa, ja sitten sekvenssikaaviolla esitetään viestien lähetyksen ja vastaanoton ajoitus objektien välillä. Vuorovaikutuksessa olevat objektit vaihtavat tietoja keskenään. Tässä tapauksessa tiedot ovat valmiita viestejä. Toisin sanoen, vaikka viestillä on informaatiosisältöä, se saa lisäominaisuuden, että se vaikuttaa suoraan vastaanottajaan.

Tärkeää on myös se, että ketterässä metodologiassa hän näkee, kuinka se toimii kanssamme, sen sijaan, että maksaisi hänen näkökulmastaan ​​turhasta, yksityiskohtaisesta dokumentaatiosta, jota voidaan myöhemmin muuttaa, vaan hän näkee, kuinka se toimii meillä ja saa tuotteen ensimmäisen version. Hänen ei tarvitse olettaa – hän voi vakuuttaa meidät siitä, että voimme valmistaa hänelle juuri sen, mitä hän tarvitsee.

Jos tuotteesi on valmistettu tällä tavalla, onko sinulla aikaa testata niitä?

Virheiden korjaamisen lisäksi se on liian kallista ja voi myös vahingoittaa mainettamme. Ohjelmistomme on testattu eri tavoilla. Pidämme automaattisesta testauksesta: testaamme sekä koodin yksittäisiä toimintoja että koko toiminnallisuutta. Voitte kuvitella, kuinka kone testasi sovellustamme: se napsahti ja siirtyi näytöilleen. Joissakin projekteissamme nämä automatisoidut testit ovat niin monimutkaisia, että niiden tekeminen kestää koko yön. Heidän ansiostaan ​​aamulla töihin tullessamme näemme heti, tarvitseeko meidän parantaa.

Yhteistyökaavio

Yhteistyökaaviossa vuorovaikutukseen osallistuvat objektit on kuvattu suorakulmioina, jotka sisältävät kohteen nimen, luokan ja mahdollisesti attribuuttiarvot. Kuten luokkakaaviossa, objektien väliset assosiaatiot ilmaistaan ​​erilaisten yhdistävien viivojen muodossa. Tässä tapauksessa voit määrittää nimenomaisesti yhdistyksen nimet ja roolit, joita objektit pelaavat tässä yhteydessä.
Toisin kuin sekvenssikaavio, yhteistyökaavio kuvaa vain suhteita objektien välillä, joilla on tietty rooli vuorovaikutuksessa.

Parhaatkaan automaattiset testit eivät tietenkään korvaa edullisia testaajiamme. Heidän poikkeuksellisen kekseliäisyytensä ansiosta he voivat usein havaita tilanteita, joita ohjelmoija ei ole ennustanut, tai kaapata koneen. Perinteinen menetelmä on perusteltu, kun asiakas tietää tarkalleen, miltä tuote näyttää, eikä hänellä ole varaa jatkuvaan kokouksiin ja osallistumiseen. Sen sijaan hän haluaa räätälöidä valmiin järjestelmän tarkkojen vaatimusten mukaan. Jos kuitenkin projektitiimin suunnittelusta on paljon epäselvyyttä, kannattaa harkita kettereiden menetelmien käyttöä.

Komponenttikaavio

Komponenttikaavio, toisin kuin aiemmin käsitellyt kaaviot, kuvaa järjestelmän fyysisen esityksen piirteitä. Komponenttikaavion avulla voit määrittää kehitettävän järjestelmän arkkitehtuurin luomalla riippuvuuksia ohjelmistokomponenttien välille, jotka voivat olla lähdekoodia, binaarikoodia ja suoritettavaa koodia. Monissa kehitysympäristöissä moduuli tai komponentti vastaa tiedostoa. Moduulit yhdistävät katkoviivat nuolet osoittavat samanlaisia ​​keskinäisiä riippuvuussuhteita kuin ohjelman lähdekoodia käännettäessä. Komponenttikaavion tärkeimmät graafiset elementit ovat komponentit, rajapinnat ja niiden väliset riippuvuudet.


Silloin useimmat epäilykset ratkeavat projektin aikana loppukäyttäjien osallistuessa. Jokainen meistä toimii hieman eri tavalla. Jotkut työskentelevät suurilla 30 tuuman näytöillä. Minulle riittää, että työskentelen kannettavalla tietokoneella. Joka tapauksessa keskustelut ovat osa käyttämäämme metodologiaa - tapaamme aamulla keskustelemaan päivän tehtävistä: mitä on tehty, mikä on tiellä, mihin meidän pitää keskittyä ja mitä teemme tänään. Verkkokehityksellä on kiistattomia etuja ohjelmistoratkaisuihin verrattuna, mutta monissa tapauksissa näitä etuja ei voida enää hyödyntää ja näissä tapauksissa on tarpeen kehittää ohjelmistosovelluksia, jotka toimivat koneen käyttöjärjestelmissä ja joilla on täysi pääsy resursseihinsa.

Käyttöönottokaavio

Käyttöönottokaavio on suunniteltu visualisoimaan ohjelman elementit ja komponentit, jotka ovat olemassa vain ajonaikaisessa vaiheessa. Tässä tapauksessa vain ohjelmailmentymien komponentit, jotka ovat suoritettavia tiedostoja tai dynaamisia kirjastoja, ovat edustettuina. Ne komponentit, joita ei käytetä ajon aikana, eivät näy käyttöönottokaaviossa.
Käyttöönottokaavio sisältää graafisia kuvia prosessorit, laitteet, prosessit ja niiden väliset yhteydet. Toisin kuin loogiset esityskaaviot, käyttöönottokaavio on yhtenäinen koko järjestelmälle, koska sen on heijastettava täysin sen toteutuksen piirteitä. Tämä kaavio päättää olennaisesti tietyn OOAP-prosessin ohjelmistojärjestelmä ja sen kehitys on yleensä mallin määrittelyn viimeinen vaihe.

Työpöytä- ja palvelinohjelmien kehittäminen

Sovellusohjelmointi perustuu tiukoille koodausstandardeille ja "parhaan todisteen" periaatteille ylivertaisen koodin ja arkkitehtuurin varmistamiseksi. Kun hakemuksesi vaatii korkeaa laskentateho tai sovelluksia, joiden on käytettävä paikalliseen tietokoneeseen tallennettuja resursseja, sinun on valittava erikoissovellus, joka toimii paikallisessa käyttöjärjestelmässä Internetin sijaan.

Työpöytäohjelmistossa voi olla graafinen käyttöliittymä ja sen avulla käyttäjä voi toimia helposti. Nämä sovellukset voivat olla vuorovaikutuksessa ulkoisten alustojen kanssa Internetissä, olla riippumattomia paikallinen kone tai työskentele tehokkaasti useiden ulkoisten laitteiden kanssa. Palvelinohjelmistolla ei yleensä ole graafista käyttöliittymää, vaan se käynnistetään konsolista käyttöjärjestelmä. Tarvittaessa nämä sovellukset voivat myös luoda käyttöliittymän sekä natiivisti että verkossa.

Tämä päättää yleiskatsauksen kaavioista erityisesti ja suunnittelusta yleensä. On syytä huomata, että suunnitteluprosessista on pitkään tullut standardi ohjelmistokehityksessä, mutta usein joutuu kohtaamaan erinomaisesti kirjoitetun ohjelman, joka normaalin dokumentaation puutteen vuoksi kasvaa tarpeettomalla sivutoiminnallisuudella, kainalosauvoilla, vaikeutuu. ja menettää entisen laatunsa. =(

Sovellusten käynnistäminen konsolista

Kokemuksemme useilta kehitysalueilta antaa meille mahdollisuuden tutustua laajaan valikoimaan teknologioita, jotta voimme löytää optimaalisen ratkaisun niiden yhdistämiseen.

Tietokannan hallintaohjelmisto

Tietojenkäsittelyohjelmisto. Ohjelmistokehitys laitteistointegraatiolla. Ohjelmistosovellus antaa hänelle mahdollisuuden käyttää kaikkia resursseja paikallinen tietokone, jonka hän lanseeraa, mikä avaa uusia kehitysmahdollisuuksia. Usein yksinkertainen sovellus ei vastaa kaikkia tarpeitasi.

Olen vakuuttunut siitä, että ohjelmoija on ennen kaikkea koodaaja - hänen EI pidä kommunikoida asiakkaan kanssa, EI pitäisi ajatella järjestelmän arkkitehtuuria, ei pitäisi keksiä liittymää ohjelmaan, hänen tulee vain koodata - toteuttaa algoritmeja, toimintoja, ulkomuoto, käytettävyyttä, mutta ei mitään muuta... Suunnittelijan tulee kuvata kaikki yksityiskohtaisesti vaihe vaiheelta alkaen abstrakteista kaavioista (aihealuetta kuvaavista) datan rakennetta, luokkia ja niiden vuorovaikutuksen prosesseja kuvaaviin kaavioihin. Eli suunnittelijan työn monimutkaisuuden ja palkan tulisi olla suuruusluokkaa suurempi kuin ohjelmoijalla == koodaajalla. Pahoittelut levottomuudesta....

Tässä tapauksessa tarvitaan integraatiota laitteistoon, joka laajentaa ohjelman ominaisuuksia ja siten laajentaa sovellusten käyttömahdollisuuksia. Nämä eri viestintäkanavia käyttävät ohjelmat voivat avata siirtokanavia laitteiston avulla ja siten siepata ja lähettää niille dataa. Erilaisia ​​viestintäprotokollia voidaan integroida tai kehittää viestintäkanavien yli, joten voit integroida monenlaisiin teollisuuden ohjaus- tai valvontalaitteisiin.

Ohjelmistotuotekehitys tuntee monia arvokkaita metodologioita – toisin sanoen vakiintuneita parhaita käytäntöjä. Valinta riippuu projektin erityispiirteistä, budjettijärjestelmästä, subjektiivisista mieltymyksistä ja jopa johtajan temperamentista. Artikkelissa kuvataan menetelmiä, joita kohtaamme säännöllisesti Edisonissa.

Monissa tapauksissa useiden järjestelmien tai alijärjestelmien on toimittava yhdessä, jolloin voidaan kehittää käyttöliittymäsovelluksia, jotka joko linkittävät ohjelmistoja tai Laitteisto tai jopa kaksi erityyppistä laitetta, joilla ei ole alkuperäistä kykyä kommunikoida keskenään. Kehittämämme integraatioohjelmat tarjoavat asiakkaalle vakaan käyttöliittymän, johon liiketoiminta- tai teollisuusprosessi perustuu.

Tavoitteemme on, että asiakaskohtaiset ohjelmistoratkaisut toimivat analyysijakson aikana havaittujen asiakkaiden vaatimusten ja spesifikaatioiden mukaisesti. Seuraamme tarkasti suunnitelmiamme saavuttaaksemme sopimusmääräajat.

1. "Vesiputousmalli" (kaskadimalli tai "vesiputous")



Yksi vanhimmista, sisältää peräkkäisen vaiheen, joista jokainen on suoritettava kokonaan ennen seuraavan alkamista. Waterfall-mallin avulla projektin hallinta on helppoa. Jäykkyyden ansiosta kehitys etenee nopeasti, hinta ja määräaika on ennalta määrätty. Mutta tämä on kaksiteräinen miekka. Vesiputousmalli antaa erinomaisia ​​tuloksia vain hankkeissa, joissa on selkeästi ja ennalta määriteltyjä vaatimuksia ja tapoja toteuttaa niitä. Ei ole mahdollista ottaa askelta taaksepäin; testaus alkaa vasta, kun kehitys on valmis tai melkein valmis. Tämän mallin mukaan ilman perusteltua valintaa kehitetyissä tuotteissa voi olla puutteita (vaatimuslistaa ei voi muuttaa milloin tahansa), jotka tulevat tiedoksi vasta lopussa tiukan toimintajärjestyksen vuoksi. Muutosten tekemisen kustannukset ovat korkeat, koska sen käynnistäminen vaatii odottamista, kunnes koko projekti on valmis. Kiinteät kustannukset ovat kuitenkin usein suuremmat kuin menetelmän haitat. Luomisprosessin aikana havaittujen puutteiden korjaaminen on mahdollista ja vaatii kokemuksemme mukaan yhdestä kolmeen lisäsopimusta sopimukseen pienellä teknisellä eritelmällä.

Ohjelmistokehitys: päävaiheet

Ohjelmistokehitysprojektin analyysi

Tämän vaiheen tarkoituksena on määrittää ja ymmärtää oikein asiakkaan vaatimukset projektin toteuttamiselle:. - Me tuomme Yksityiskohtainen kuvaus joko spesifikaatioiden tai uuden sovelluksen tarvitsemien toimintojen määrittelyn perusteella. - Tarjoamme ratkaisuja siihen, miten tarvittava toiminnallisuus toteutetaan.

Tärkeää: Hankkeen edunsaajalle on erittäin hyödyllistä varata tarvittavat resurssit liiketoimintavaatimusten määrittelemiseen ja kriteerien hyväksymiseen. Tässä vaiheessa suoritettujen toimien tuloksena saadaan "Projektitiedot" -asiakirja, joka lähetetään edunsaajalle tarkistettavaksi.

Vesiputousmallin avulla loimme monia projekteja tyhjästä, mukaan lukien vain teknisten eritelmien kehittäminen. Projektit, joista on kirjoitettu Habréssa: keskikokoinen - , pieni - .

Milloin vesiputousmetodologiaa tulee käyttää?

  • Vain kun vaatimukset tunnetaan, ymmärretään ja kirjataan. Ristiriitaisia ​​vaatimuksia ei ole.
  • Vaaditun pätevyyden omaavien ohjelmoijien saatavuudessa ei ole ongelmia.
  • Suhteellisen pienissä projekteissa.

2. "V-malli"



Peri "askel askeleelta" -rakenteen kaskadimallista. V-muotoinen malli soveltuu järjestelmiin, joissa keskeytymätön toiminta on erityisen tärkeää. Esimerkiksi, sovellusohjelmia klinikoilla potilaiden seurantaa varten, integroitu ohjelmisto ajoneuvojen hätäturvatyynyjen ohjausmekanismeihin ja niin edelleen. Mallin erityispiirre on, että sillä pyritään tarkastamaan ja testaamaan perusteellisesti jo suunnittelun alkuvaiheessa oleva tuote. Testausvaihe suoritetaan samanaikaisesti vastaavan kehitysvaiheen kanssa, esimerkiksi yksikkötestejä kirjoitetaan koodauksen aikana.

Projektikaavion luominen

Se luodaan yhdessä asiakkaan kanssa molempien osapuolten käytettävissä olevien resurssien mukaan ja sopimuksessa asetettujen määräaikojen mukaisesti.

Ohjelmistosovelluksen asennus ja konfigurointi

Asennus ja konfigurointi suoritetaan asiakastestiympäristössä.

Toimita, asenna ja määritä sovellus tuotantoympäristössä

Asennus- ja konfigurointivaiheen aikana, mutta myös sen valmistuttua, suoritetaan osittainen tai lopullinen testaus. Testien tarkoituksena on tarkistaa vaatimustenmukaisuus ja tarkistaa asetusten vaikutus moduulien tai koko sovelluksen hyvään toimivuuteen.

Käyttäjien ja ylläpitäjien koulutus

Koulutusten tarkoituksena on hankkia taitoja toimitetun sovelluksen käyttöön ja hallintaan.

Esimerkki V-metodologiaan perustuvasta työstämme - mobiilisovellus eurooppalaiselle matkapuhelinoperaattori, mikä säästää verkkovierailukustannuksia matkoilla. Projekti toteutetaan selkeän spesifikaation mukaan, mutta se sisältää merkittävän testausvaiheen: käyttöliittymän mukavuus, toiminta, kuormitus ja mukaan lukien integraatio, jonka pitäisi varmistaa, että useat eri valmistajien komponentit toimivat yhdessä vakaasti, rahavarkaudet ja lainat ovat mahdotonta.

Suunnittelemme valmennuksia asiakkaan kanssa riippuen siitä, millaisia ​​tiimejä koulutetaan. Koulutusmateriaalit sisältävät vastaanottajakohtaisia ​​virtoja asiakirjan mukaisesti " Tekniset tiedot projekti." Oppimisprosessi päättyy "Opetusminuutteihin".

Hakemuksen käsittelyyn pääsy

Tällä hetkellä sovellus käynnistyy. Tuotannon aloittaminen merkitään allekirjoittamalla tuotannon aloituskirjaus tai kirjaus päivittäiseen työpöytäkirjaan.

Lisäapua tuotantoon siirtymisessä

Tässä vaiheessa joitain tuotantoprosessin aikana tunnistettuja ominaisuuksia mukautetaan ja suunnitellaan uudelleen alkuperäisen analyysin vastaisesti.

Milloin V-mallia käytetään?

  • Jos tuotteen perusteellinen testaus vaaditaan, niin V-malli oikeuttaa sen luontaisen idean: validoinnin ja verifioinnin.
  • Pienille ja keskisuurille projekteille, joissa vaatimukset on selkeästi määritelty ja kiinteä.
  • Tarvittavan pätevyyden omaavien insinöörien, erityisesti testaajien, saatavuuden olosuhteissa.

3. "Inkrementaalinen malli" (inkrementaalinen malli)

Inkrementtimallissa täydelliset järjestelmävaatimukset on jaettu eri kokoonpanoihin. Terminologiaa käytetään usein kuvaamaan ohjelmiston vaiheittaista kokoonpanoa. Kehityssyklejä tapahtuu useita, ja ne yhdessä muodostavat usean vesiputouksen elinkaaren. Sykli on jaettu pienempiin, helposti luotaviin moduuleihin. Jokainen moduuli käy läpi vaatimusten määrittelyn, suunnittelun, koodauksen, toteutuksen ja testauksen vaiheet. Inkrementtimallin mukainen kehitysprosessi sisältää perustoiminnallisuuden sisältävän tuotteen julkaisun ensimmäisessä suuressa vaiheessa ja sen jälkeen peräkkäin uusien toimintojen, ns. ”inkrementtien” lisäämisen. Prosessi jatkuu, kunnes koko järjestelmä on luotu.


Inkrementtimalleja käytetään silloin, kun yksittäiset muutospyynnöt ovat selkeitä ja helposti muotoiltavissa ja toteutettavissa. Projekteissamme loimme sen avulla DefView-lukijan ja sitten sähköisten kirjastojen Vivaldi-verkoston.

Esimerkkinä kuvataan yhden lisäyksen olemus. korvattu DefView. DefView on yhdistetty yhteen asiakirjapalvelimeen ja voi nyt muodostaa yhteyden useisiin. Tallennuspalvelin asennetaan laitoksen toimipisteeseen, joka haluaa lähettää sisältöään tietylle yleisölle, joka pääsee suoraan käsiksi asiakirjoihin ja muuntaa ne vaadittuun muotoon. Arkkitehtuurin juurielementti on ilmestynyt - Vivaldi-keskuspalvelin, joka toimii yhtenä hakukone kaikissa eri laitoksissa olevissa tallennuspalvelimissa.

Milloin inkrementaalista mallia käytetään?

  • Kun järjestelmän perusvaatimukset on selkeästi määritelty ja ymmärretty. Samalla jotkut yksityiskohdat saattavat tarkentua ajan myötä.
  • Tuote on saatava markkinoille ajoissa.
  • On olemassa useita riskialttiita ominaisuuksia tai tavoitteita.

4. "RAD-malli" (nopea sovelluskehitysmalli tai nopea sovelluskehitys)

RAD-malli on eräänlainen inkrementaalinen malli. RAD-mallissa komponentteja tai toimintoja kehittävät useat korkeasti koulutetut tiimit rinnakkain, kuten useita miniprojekteja. Yhden syklin aikakehys on tiukasti rajoitettu. Luodut moduulit integroidaan sitten yhdeksi toimivaksi prototyypiksi. Synergian avulla voit nopeasti tarjota asiakkaalle jotain toimivaa tarkistettavaksi saadaksesi palautetta ja tehdä muutoksia.


Nopea sovelluskehitysmalli sisältää seuraavat vaiheet:

  • Liiketoiminnan mallintaminen: tietovirtojen luettelon määrittäminen eri osastojen välillä.
  • Tiedon mallinnus: edellisessä vaiheessa kerätyn tiedon perusteella määritetään tiedon kiertoon tarvittavat objektit ja muut kokonaisuudet.
  • Prosessin mallintaminen: Tietovirrat linkittävät objekteja kehitystavoitteiden saavuttamiseksi.
  • Rakenna sovellus: käyttää automaattisia kokoonpanotyökaluja CAD-mallien muuntamiseen koodiksi.
  • Testaus: testataan uusia komponentteja ja rajapintoja.
Milloin RAD-mallia käytetään?

Voidaan käyttää vain erittäin pätevien ja erittäin erikoistuneiden arkkitehtien kanssa. Hankkeen budjetti on suuri näiden asiantuntijoiden maksamiseen sekä valmiiden automatisoitujen kokoonpanotyökalujen kustannuksiin. RAD-malli voidaan valita luotettavalla tiedolla kohdeliiketoiminnasta ja järjestelmän kiireellisestä tuotantotarpeesta 2-3 kuukauden sisällä.

5. "Ketterä malli" (joustava kehitysmenetelmä)



Ketterässä kehitysmetodologiassa asiakas voi jokaisen iteraation jälkeen tarkkailla tulosta ja ymmärtää, tyydyttääkö se häntä vai ei. Tämä on yksi joustavan mallin eduista. Sen haittoja ovat se, että tulosten täsmällisten muotoilujen puutteen vuoksi on vaikea arvioida työvoimakustannuksia ja kehittämisen vaatimia kustannuksia. Extreme Programming (XP) on yksi tunnetuimmista ketterän mallin sovelluksista käytännössä.

Tämä tyyppi perustuu lyhyisiin päivittäisiin kokouksiin - "Scrum" ja säännöllisesti toistuviin kokouksiin (kerran viikossa, kerran kahdessa viikossa tai kerran kuukaudessa), nimeltään "Sprint". Päivittäisissä kokouksissa tiimin jäsenet keskustelevat:

  • raportti edellisen Scrum-kerran jälkeen tehdystä työstä;
  • luettelo tehtävistä, jotka työntekijän on suoritettava ennen seuraavaa kokousta;
  • työn aikana kohtaamista vaikeuksista.
Menetelmä soveltuu suuriin projekteihin tai pitkälle elinkaariprojekteihin, jotka mukautuvat jatkuvasti markkinaolosuhteisiin. Vastaavasti vaatimukset muuttuvat toteutusprosessin aikana. Kannattaa muistaa luovien ihmisten luokka, jolla on tapana tuottaa, keksiä ja kokeilla uusia ideoita viikoittain tai jopa päivittäin. Ketterä kehitys sopii parhaiten tämän tyyppiselle johtajalle. Kehitämme yrityksen sisäisiä startuppeja Agilen avulla. Esimerkki asiakasprojekteista on sähköinen lääkärintarkastusjärjestelmä, joka on luotu suorittamaan joukkolääkärintarkastuksia muutamassa minuutissa. Tämän katsauksen toisessa kappaleessa amerikkalaiset kumppanimme kuvasivat erittäin tärkeän asian, joka on keskeistä Agilen menestykselle.

Milloin käyttää Agilea?

  • Kun käyttäjien tarpeet muuttuvat jatkuvasti dynaamisessa liiketoiminnassa.
  • Ketterät muutokset toteutetaan pienemmillä kustannuksilla toistuvien lisäysten ansiosta.
  • Toisin kuin vesiputousmalli, ketterä malli vaatii vain vähän suunnittelua, jotta projekti saadaan käyntiin.

6. "Iteratiivinen malli" (iteratiivinen tai iteratiivinen malli)

Iteratiivinen elinkaarimalli ei aluksi vaadi täydellistä vaatimusmäärittelyä. Sen sijaan luominen alkaa toiminnallisuuden toteuttamisella, josta tulee pohja lisävaatimusten määrittelylle. Tämä prosessi toistetaan. Versio ei ehkä ole täydellinen, pääasia, että se toimii. Ymmärtämällä lopullisen tavoitteen pyrimme siihen niin, että jokainen askel on tehokas ja jokainen versio toimiva.


Kaavio näyttää Mona Lisan iteratiivisen "kehityksen". Kuten näet, ensimmäisessä iteraatiossa on vain luonnos Mona Lisasta, toisessa värit tulevat näkyviin ja kolmas iteraatio lisää yksityiskohtia, kylläisyyttä ja viimeistelee prosessin. Inkrementtimallissa tuotteen toimivuus rakentuu pala palalta, tuote koostuu osista. Toisin kuin iteratiivinen malli, jokainen pala edustaa kokonaista elementtiä.

Esimerkki iteratiivisesta kehityksestä on äänentunnistus. Ensimmäinen tutkimus ja tieteellisen laitteen valmistelu alkoi kauan sitten, ensin ajatuksissa, sitten paperilla. Jokaisen uuden iteroinnin myötä tunnistuksen laatu parani. Täydellistä tunnustamista ei kuitenkaan ole vielä saavutettu, joten ongelmaa ei ole vielä täysin ratkaistu.

Milloin on optimaalista käyttää iteratiivista mallia?

  • Lopullisen järjestelmän vaatimukset on selkeästi määritelty ja ymmärretty etukäteen.
  • Projekti on suuri tai erittäin suuri.
  • Päätavoite on määriteltävä, mutta toteutuksen yksityiskohdat voivat muuttua ajan myötä.

7. "Spiraalimalli" (spiraalimalli)



"Spiraalimalli" on samanlainen kuin inkrementaalinen malli, mutta siinä painotetaan riskianalyysiä. Se toimii hyvin kriittisten liiketoiminnan ongelmien ratkaisemisessa, kun epäonnistuminen ei sovi yhteen yrityksen toiminnan kanssa, uusien tuotelinjojen julkaisun yhteydessä, kun tarvitaan tieteellistä tutkimusta ja käytännön testausta.

Spiraalimalli sisältää 4 vaihetta jokaista käännöstä kohden:

  1. suunnittelu;
  2. riskianalyysi;
  3. design;
  4. tuloksen arviointi ja, jos laatu on tyydyttävä, siirtyminen uuteen vaiheeseen.
Tämä malli ei sovellu pieniin projekteihin, se on järkevä esimerkiksi monimutkaisiin ja kalliisiin projekteihin, kuten pankin dokumenttikulkujärjestelmän kehittämiseen, jolloin jokainen seuraava vaihe vaatii enemmän analyysiä seurausten arvioimiseksi kuin ohjelmointi. Hankkeessa EDMS:n kehittämiseksi Siperian ODU:lle SO UES, kaksi sähköisen arkiston osioiden kodifioinnin muuttamista käsittelevää kokousta vie 10 kertaa enemmän aikaa kuin ohjelmoijan kahden kansion yhdistäminen. Hallitushankkeet, joihin osallistuimme, alkoivat asiantuntijayhteisön valmistelemalla kallis konsepti, joka ei suinkaan ole aina turhaa, sillä se maksaa valtakunnallisesti.

Tehdään yhteenveto



Dia näyttää erot kahden yleisimmän menetelmän välillä.

Nykykäytännössä ohjelmistokehitysmallit ovat monimuuttujia. Kaikille projekteille, aloitusehdoille ja maksumalleille ei ole yhtä oikeaa mallia. Edes meidän kaikkien niin rakastama Agile ei sovellu kaikkialle joidenkin asiakkaiden valmistautumattomuuden tai joustavan rahoituksen mahdottomuuden vuoksi. Menetelmät menevät osittain päällekkäin ja ovat osittain samankaltaisia. Joitakin muita käsitteitä käytettiin vain omien kääntäjiensä edistämiseen, eivätkä ne tuoneet mitään uutta käytäntöön.

Tietoa kehitystekniikoista:
.
.
.
.

Mitä menetelmiä käytät?