Metódy vývoja softvéru: koncepty, princípy, metódy a fázy vývoja

Ako vytvoriť softvér? Aké sú špecialisti riadení vo svojej činnosti? V tejto oblasti sú dôležité dôležité metodiky vývoja softvéru. Niektoré z nich budeme diskutovať v tomto článku a podrobne sa zameriavame na úlohy, fázy, dôležité zásady a rozdiely týchto metodík.

Čo je to?

Začnime s definíciou článku. Metodológia vývoja softvéru je súbor zásad, systém myšlienok, konceptov, metód, metód a nástrojov, ktoré nakoniec určujú štýl vývoja softvéru. Inými slovami, tu ide o implementáciu konkrétneho štandardu. Čo je dôležité poznamenať, štandardy tu sú odporúčané, nie sú objednané, ako by mali byť. Preto pred tvorcom sa zachová sloboda voľby, prispôsobenie teórie. Špecifické produkty sa implementujú prostredníctvom metodiky vývoja softvéru. Určí, ako špecialista vykoná svoju prácu. Dnes existuje veľa takýchto metodológií - hlavných, ktoré zvážime v priebehu materiálu. Aké vplyvy na ich výber len jeden? Veľkosť tímu, zložitosť a špecifickosť konkrétneho projektu, zrelosť a stabilita procesov v spoločnosti-zamestnávateľ, osobné preferencie tvorcu sú rozlíšené.


Metodika je teda jadrom teórie riadenia vývoja akéhokoľvek softvéru. V minulosti použili klasifikáciu, ktorá rozdelila všetky metodiky na dva typy: iteračný a vodopád (založený naaplikované modely životného cyklu). Dnes sa používa moderná všeobecná klasifikácia a je tiež rozdelená do dvoch skupín: predvídateľná a adaptačná. Zoznámte sa s nimi podrobnejšie.

Metodika predpovedí

Aké sú údaje metodológií vývoja softvéru? Jedná sa o odrody, ktoré sú zamerané na podrobné plánovanie budúcnosti. Úlohy a zdroje sú známe počas trvania projektu. Pracovný tím bude preto ťažké reagovať na neočakávané zmeny.


Plán pozostáva zo zloženia potrebnej práce, požiadaviek na ne. Preto zmena požiadaviek vedie k zmene celého plánu, návrhu dizajnu. Pre predpovedané metodiky je zvyčajne vytvorenie osobitného výboru, ktorý riadi zmeny tak, aby projekt zohľadňoval len tie najdôležitejšie požiadavky.

Adaptívne metodiky

Aké sú osobitosti týchto metodík pre vývoj počítačového softvéru? Sú už zamerané na prekonanie očakávanej nedokonalosti, neúplnosti požiadaviek a neustálej zmeny. Preto bude zmena požiadaviek nahradená tímom vývojárov projektov. Presný plán adaptačnej metodiky sa vyvíja len v blízkej budúcnosti. Plány, ktoré sú vzdialenejšie od reality udalostí, existujú vo forme deklarácií o účeloch práce, jej výsledkoch a očakávaných nákladoch.

Flexibilné metodiky

Flexibilné metodiky vývoja softvéru - angličtina. Agilný vývoj softvéru. Preto druhý názov: agilné metódy. Flexibilné metodiky vývoja softvéru súkomplexné prístupy k vývoju softvéru zamerané na využitie iteračného vývoja, dynamické vytváranie požiadaviek na projekt, zabezpečenie realizácie konca nepretržitého vzájomného pôsobenia v rámci fungujúcich samoorganizovaných skupín zložených zo špecialistov z rôznych profilov.
V prvom rade ide o účinnú prax práce malých tímov zapojených do rovnakého druhu tvorivej práce. V kombinácii s kombinovanou (demokratickou a liberálnou) metódou riadenia. Flexibilné metodiky vývoja softvéru sú zamerané na minimalizáciu rizík tým, že prinášajú spoločný projekt do komplexu krátkych cyklov (tzv. Iterácií), z ktorých každý trvá až 2-3 týždne. Iterácia je tu malý programový projekt, ktorý zahŕňa všetky úlohy na zabezpečenie funkčného mini-rastu. Ako také: plánovanie, analýza požiadaviek, projektovanie, programovanie, vývojové testovanie, dokumentácia. Samozrejme, samostatná iterácia tu nestačí na uvoľnenie konečného produktu. Tu je ďalší význam. Na konci každej iterácie je pripravený flexibilný softvérový produkt. Na konci obdobia musí tím vykonať opätovné posúdenie rozvojových priorít. Počas každej iterácie (štádia vývoja softvéru) sa kladie dôraz na priamu komunikáciu špecialistov "tvárou v tvár". Väčšina tímov sa nachádza v jednej kancelárii. Uistite sa, že máte "zákazníka" - zástupcu splnomocnenca, ktorý vytvára požiadavky na rozvoj. Túto úlohu spravuje manažérprojekt, klient-zákazník, obchodný analytik. Kancelária môže zahŕňať aj testerov, technických spisovateľov, návrhárov rozhrania atď.
Hlavným ukazovateľom je konečný produkt. Plus priama komunikácia špecialistov spočíva v tom, že je sprievodná písomná dokumentácia pomerne málo.

Agile Manifesto

Pozrime sa na základné štandardy vývoja softvéru. Prvým je súbor procesov vývoja nazvaný Agile. Je definovaný agilným manifestom. Je dôležité povedať, že Agile nezahŕňa niektoré praktické tipy, ale obsahuje hodnoty a princípy, ktoré by mal viesť tím vývojárov v ich práci. Agile Manifest bol vyvinutý a prijatý 1. - 13. februára 2001 v lyžiarskom stredisku v Utahu. Obsahuje 4 hlavné myšlienky a 12 princípov tímovej práce bez jednej praktickej rady. Predstavte si základné myšlienky tejto modernej metodológie vývoja softvéru:
  • Interakcia a ľudia sú najdôležitejšie nástroje a procesy.
  • Pracovný produkt je nad komplexnou dokumentáciou.
  • Spolupráca s klientom je najdôležitejšou harmonizáciou jednotlivých zmluvných podmienok.
  • Pripravenosť tímu na zmenu je dôležitejšia ako postúpenie počiatočných plánov.
  • Aj v Agile Manifestu boli uvedené nasledujúce zásady činnosti vývojára:
  • Splnenie požiadaviek klientov v dôsledku nepretržitého skorého doručenia cenných.
  • Blahoželáme k zmenám požiadaviek aj po ukončení projektu. Koniec koncov to môže zvýšiť jeho konkurencieschopnosť.
  • Časté dodávkypracovný softvér - každý týždeň-mesiac.
  • V projekte sa využívajú motivovaní jednotlivci, ktorí poskytujú pohodlné pracovné podmienky, dôveru a podporu.
  • Denná úzka interakcia medzi tímom zákazníkov a vývojárov.
  • Softvér bude najlepším meradlom pokroku.
  • Užívatelia, sponzori a vývojári musia udržiavať zvolené tempo na dobu neurčitú.
  • Neustála pozornosť k zlepšeniu návrhu výrobku, technickým požiadavkám.
  • Jednoduchosť je umenie nezúčastňovať sa nadbytočnej práce.
  • Neustále prispôsobovanie meniacim sa podmienkam činnosti. Vývojári by mali neustále nájsť spôsoby, ako zlepšiť ich výkon, neskôr ich sledovať.
    Model vodopádu
    Z flexibilného manifestu metodológie vývoja softvéru sa presúvame na nový typ. Model vodopádu - vodopád alebo kaskádový model. Jedna z najstarších metodológií. Zahŕňa postupné prebiehanie fáz vývoja softvéru, z ktorých každá by mala skončiť skôr, než začne ďalší.

    Z dôvodu takejto rigidity je ľahké riadiť projekt podľa tejto metodiky. Náklady a načasovanie vývoja sú predurčené, prečo je práca rýchla. Je však tiež dôležité mať na pamäti tento aspekt: ​​kaskádový model prináša vynikajúci výsledok iba v projektoch s vopred definovanými jasne definovanými požiadavkami a metódami ich implementácie. Špecialisti nemajú šancu "vrátiť sa", keďže testovanie začína až po dokončení fázy. Ak nie je výber takéhoto modelu opodstatnenýpre výrobok je výstup viditeľný so značnými nevýhodami. Koniec koncov, ich prítomnosť bude známa po dokončení práce kvôli prísnemu sledu činností. Oprava chyby tu je dosť drahá. Ak chcete spustiť náplasť, musíte čakať na ukončenie vývoja.
    Odborníci odporúčajú používať metodiku vodopádov v týchto prípadoch:
  • Požiadavky na projekt sú známe, chápané a stanovené. Medzi nimi neexistujú žiadne protirečenia.
  • Nie je problém získať programátorov požadovanej kvalifikácie.
  • Projekt je pomerne malý.
  • V-Model

    Fázy vývoja softvéru sú tiež konzistentné. Tento prvok V-model "zdedil" z "vodopádu". Zvlášť dobré pre tie systémy, kde je potrebná hladká prevádzka. Dobrým príkladom je vytvorenie aplikačného softvéru pre kliniky používané na nepretržité sledovanie pacientov. Alebo softvér, ktorý ovláda mechanizmy airbagov vo vozidlách. Alebo žiadosť o mobilný operátor, ktorá je určená na záchranu užívateľských výdavkov za roaming na cestách do zahraničia. Projekt sa realizuje zároveň v jasných bodoch tvorivej úlohy. Významnú úlohu však prináša aj včasné testovanie: funkčné, integračné, načítavacie a užívateľsky prívetivé rozhranie. Ak je potrebné túto metodológiu použiť na vývoj:
  • V prípadoch, keď sa vyžaduje dôkladné testovanie výrobku.
  • Pre malé a stredné projekty s presne vymedzenými požiadavkami.
  • Vpodmienky, keď disponujú inžinieri, testeri s určitou kvalifikáciou.
  • Prírastkový model

    V tejto technológii vývoja softvéru sú komplexné požiadavky systému rozdelené na kompiláciu. Inými slovami, ide o opis postupnej zostavy. Niekoľko cyklov vývoja projektu sa nachádza v komplexe nazývanom "multi-vodopád". Cyklus je zase rozdelený do samostatných ľahko použiteľných modulov. Každá z nich prechádza etapami definovania požiadaviek, návrhu, implementácie, testovania, kódovania. Zvláštnosťou je, že na prvom veľkom štádiu sa vydáva základný model vývoja. A potom sa pridajú prírastky - nové funkcie. Takýto proces pokračuje až do vytvorenia úplného komplexu. Ďalší model je dobrý, keď sú jednotlivé žiadosti o zmenu jasné, môžu byť jednoducho formalizované a implementované. Opíšte prípady, v ktorých je použitie prírastkového modelu odôvodnené:
  • Jasne definované a zrozumiteľné požiadavky na konečný výrobok.
  • Je možné upresniť niektoré podrobnosti v priebehu času.
  • Existuje niekoľko riskantných cieľov.
  • Na trhu je potrebné rýchle uzavretie.
  • Model RAD

    Bezprostredne si všimnite, že model RAD je jednou z odrôd prírastkového modelu. Komponenty alebo funkcie programu sú vyvíjané súčasne viacerými tímami odborníkov. Výsledkom je niekoľko mini-projektov. Čas na vytvorenie každého z nich je prísne obmedzený. Všetky moduly sú vo všeobecnom pracovnom prototype. Systém je dobrý, pretože pomáha rýchlo prezentovať zákazníkoviSkontrolujte pracovný produkt, ktorý potom môžete vykonať sériu zmien. Proces vývoja softvéru zahŕňa niekoľko krokov:
  • Business simulation. Toto je definícia informačných tokov medzi spektrom jednotiek.
  • Simulácia informácií. Údaje zhromaždené v prvej fáze sa používajú na identifikáciu subjektov potrebných na šírenie informácií.
  • Modelovanie procesov. Počas tejto fázy informačné toky spájajú určité objekty, aby dosiahli cieľ rozvoja.
  • Vypracovanie programu. Tu používame automobilové zostavy na konverziu návrhových vzorov na kód.
  • Testovanie. Kontrola nových komponentov a rozhraní.
  • Použite túto metódu vývoja softvéru iba vtedy, keď sú v tíme k dispozícii vysoko kvalifikovaní a "úzke" špecialisti. Rozpočet projektu je určite veľký: je potrebné zaplatiť prácu profesionálov, náklady na hotové nástroje automatizovaného zhromaždenia. Model je vybraný s dôvernou znalosťou cieľovej firmy v prípadoch, keď je potrebné krátkodobé predloženie konečného produktu - po 2-3 mesiacoch.

    Iteračný model

    Nasledujúci príklad organizácie na vývoj softvéru je iteračný (alebo iteračný model). Zvláštnosť projektu spočíva v tom, že nevyžaduje úplnú špecifikáciu požiadaviek na začatie jeho realizácie. Vytvorenie začína návrhom databázy, ktorý by mal byť základom pre stanovenie ďalších požiadaviek. Verzia v tomto prípade môže byť úplne nevhodná. Hlavnou požiadavkou je, že funguje.Vývojár chápe a vidí konečný cieľ práce. Musí sa snažiť zabezpečiť, aby bol každý krok jeho činnosti produktívny a každá vytvorená verzia je funkčná. Z nejakého dôvodu sa vytváranie tu podobá vytvoreniu obrázka: najskôr sa nakreslí náčrt, potom sa naplní kvety, pridajú sa detaily, sýtosť, odtiene prechodu, posledné dotyky - a proces je dokončený. Niečo sa podobá prírastkovému modelu? Pozrime sa na rozdiel. Podľa prírastkovej metodiky sa výrobok skladá z častí a funkčný softvér sa skladá z bitov. Ale súčasne je každá časť už integrálnou súčasťou. A "kusy" v iteračnom modeli nemajú autonómiu. Ďalším živým príkladom vývoja softvéru z tejto metodológie je zariadenie na rozpoznávanie hlasu. Všetko začalo s prípravou vedeckej základne. Potom sa zhromaždila potrebná dokumentácia. Pri každom novom vývoji sa zvýšila kvalita zariadenia. Ale dosiaľ nedosiahla ideálnu úroveň. Takže projekt ešte nebol dokončený. Použitie iteračného modelu je odôvodnené v nasledujúcich prípadoch:
  • Požiadavky na konečnú verziu vývoja sú jasné a jasne definované.
  • Projekt je veľmi veľký.
  • Hlavná úloha je vopred určená. Ale zlepšíme jeho detaily, zmenu v procese práce.
  • Spirálový model

    Špirálový model sa vo veľkej miere podobá predchádzajúcemu modelu. Zameriava sa však na ďalšiu úlohu vývoja softvéru - hodnotenie rizík. Väčšina tejto metodológie sa môže použiť na riešenie kritických otázokobchodné úlohy, keď zlyhanie projektu môže vážne poškodiť podnikanie spoločnosti. Špirálový model sa vo veľkej miere používa pri vydávaní nových softvérových línií, ak je to potrebné, na vykonávanie vedeckých výskumných projektov, praktických testov. Každý z "oblúkov špirály" prechádza štyrmi fázami:
  • Plánovanie.
  • Analýza rizík.
  • Výstavba.
  • Odhad výsledkov. Ak je pozitívny, potom sa vývojár presunie na nový "závit" projektu.
  • Špirálový model by sa nemal používať pri malých rozpočtových projektoch. Naopak, je vhodnejšie pre veľké a drahé. Skvelý príklad použitia metodiky na vytvorenie systému pre cirkuláciu bankoviek. Tu sa veľa pozornosti venuje nielen samotnému programovaniu, ale analýze každého už vytvoreného "otáčky".

    LD

    Takzvaný sofistikovaný vývoj softvéru. Je to jedna z oblastí flexibilnej metodológie, ktorú sme rozobrali vyššie. Hlavná výhoda LD: udržanie vysokého morálneho a funkčného stavu odborníkov. Jedná sa najmä o tieto skutočnosti:
  • Povzbudzovanie každého zamestnanca pre mimoriadne úspešnú činnosť.
  • Aktuálne ciele projektu sa menia iba v prípade mimoriadnej potreby alebo na žiadosť zákazníka.
  • Prísna implementácia plánu. Super práce je považovaná za znak straty času aj zdrojov.
  • Realizácia všeobecného konceptu činnosti: "Široké myslenie, rýchla chyba, malá práca, rýchle učenie".
  • XP

    Veľmi zaujímavým príkladom je metodika takzvaného extrémuprogramovanie. Čo je tu skryté? Ide o vývoj v podmienkach neustále sa meniacich požiadaviek na výrobok. Smerovanie metodiky má tieto charakteristické črty:
  • "plánovaciu hru". Na začiatku práce je uvedený len približný plán. Pri každej obrátke vývoja sa zvyšuje jeho ostrosť.
  • Vysoká frekvencia uvoľňovania. To znamená, že nová verzia bude mať len malý rozdiel od predchádzajúceho, ale jeho vydanie bude trvať minimálne.
  • Kontakt s klientom. Pre nasledujúcu metodiku je dôležité rýchlo splniť všetky požiadavky zákazníka - okamžite reagovať na všetky jeho pripomienky a želania.
  • Refactoring. Kvalita kódu sa zlepšuje bez zníženia jeho funkčnosti.
  • Štandardné spustenie kódu. Na tvári alebo podľa všeobecných pravidiel alebo nedostatku rozdielov v procese vývoja.
  • Kolektívna zodpovednosť. Takže každý člen tímu je zaneprázdnený určitou oblasťou práce. Ale za celkový výsledok je už celý tím zodpovedný.
  • FDD

    A posledná metodológia v našom článku. Poskytuje škálovateľnosť a opakovateľnosť. Súčasne však podporovali tvorivý prístup, uplatnenie v práci inovácií. Hlavné princípy metodológie sú nasledovné:
  • Vývoj každého významného projektu je systematickou činnosťou.
  • Všetky procesy by mali byť jednoduché a dobre navrhnuté.
  • Logika a hodnota každého procesu by mal pochopiť každý člen tímu.
  • Výhody sú krátke cykly vývoja softvéru. To vám umožní znížiť sumuchyby pri súčasnom zvyšovaní funkčnosti.
  • Hodnota metodológie a skutočnosť, že jasne upravuje dĺžku procesov. V tomto prípade by organizačné otázky v každom cykle nemali byť vyčerpané viac ako 25% času. Zvyšných 75% je výlučne na vývoj, zostavovanie a testovanie funkčných. Ukončíme základný vývoj softvéru. Ako ste videli, vlastnosti každého z nich umožňujú vybrať vhodnú metodiku úspešnej implementácie najrôznejších projektov.

    Súvisiace publikácie