Metodiky vývoje softwaru: koncepce, zásady, metody a vývojové fáze

Jak vytvořit software? Jaké jsou odborníci vedeni v jejich činnostech? V této oblasti jsou důležité důležité postupy pro vývoj softwaru. Některé z nich budeme diskutovat v tomto článku a podrobně se zaměříme na úkoly, fáze, důležité zásady a odlišnosti těchto metodik.

Co to je?

Začněme s článkem definice. Metodika vývoje softwaru je soubor zásad, systém myšlenek, konceptů, metod, metod a nástrojů, které nakonec určují styl vývoje softwaru. Jinými slovy, zde je metodika implementace určitého standardu. Co je důležité poznamenat, normy jsou zde doporučovány, ne objednané, jak by měly být. Proto se před tvůrcem zachovává svoboda volby, adaptace teorie. Specifické produkty jsou implementovány pomocí metodiky vývoje softwaru. Určí, jak odborník vykoná svou práci. Dnes existuje mnoho takových metodologií - hlavními, které zvážíme v průběhu materiálu. Jaký vliv má na jejich výběr? Velikost týmu, složitost a specifičnost konkrétního projektu, zralost a stabilita procesů ve společnosti-zaměstnavateli, osobní preference tvůrce jsou rozlišovány.


Metodika je tedy jádrem teorie řízení vývoje jakéhokoli softwaru. V minulosti použili klasifikaci, která rozdělila všechny metodiky na dva typy: iterativní a vodopád (založené naaplikované modely životního cyklu). Dnes je používána moderní obecná klasifikace a je rozdělena do dvou skupin: předvídatelná a adaptivní. Seznamte se s nimi podrobněji.

Metodika předpovědi

Jaké jsou údaje metodiky vývoje softwaru? Jedná se o odrůdy, které jsou zaměřeny na podrobné plánování budoucnosti. Úkoly a zdroje jsou známy po celou dobu trvání projektu. Pracovní tým bude tedy obtížné reagovat na neočekávané změny.


Plán se skládá ze složení nezbytných prací, požadavků na ně. Proto změna požadavků vede ke změně celého plánu, designového návrhu. Pro předvídané metodiky je typicky vytvoření zvláštního výboru, který řídí změny tak, aby projekt zohledňoval pouze nejdůležitější požadavky.

Adaptivní metodologie

Jaká jsou zvláštnost těchto metodik pro vývoj počítačového softwaru? Jsou již zaměřeny na překonání očekávané nedokonalosti, neúplnosti požadavků a neustálé změny těchto požadavků. Proto bude změna požadavků nahrazena týmem vývojářů projektů. Přesný plán adaptivní metodiky se vyvíjí až v blízké budoucnosti. Plány, které jsou vzdálenější od události, existují ve formě prohlášení o účelu práce, jejích výsledcích a očekávaných nákladech.

Flexibilní metodologie

Flexibilní metodologie pro vývoj softwaru - angličtina. Agilní vývoj softwaru. Druhý název: agilní metody. Flexibilní metodiky vývoje softwaru jsoukomplexní přístupy k vývoji softwaru, zaměřené na využití iterativního vývoje, dynamické vytváření požadavků na projekt, zajištění realizace konce neustálého vzájemného působení v rámci fungujících samoorganizovaných skupin složených ze specialistů různých profilů.
Především je to efektivní praxe práce malých týmů zapojených do téhož tvůrčího díla. V kombinaci s kombinovanou (demokratickou a liberální) metodou řízení. Flexibilní metodologie pro vývoj softwaru jsou zaměřeny na minimalizaci rizik spojením společného projektu s komplexem krátkých cyklů (tzv. Opakování), z nichž každá trvá až 2-3 týdny. Iterace zde je malý programový projekt, který zahrnuje všechny úkoly pro zajištění funkčního mini-růstu. Jako takové: plánování, analýza požadavků, návrh, programování, testování vývoje, dokumentace. Samozřejmě, samostatná iterace zde nestačí k uvolnění konečného produktu. Zde je další význam. Na konci každé iterace je připraven flexibilní softwarový produkt. Také na konci období musí tým provést přehodnocení rozvojových priorit. Během každé iterace (fáze vývoje softwaru) je kladen důraz na přímou komunikaci specialistů "tváří v tvář". Většina týmů se nachází v jedné kanceláři. Ujistěte se, že máte "zákazníka" - zástupce zplnomocněného zástupce, který vytváří požadavky na vývoj. Tuto roli spravuje správceprojekt, klient-zákazník, obchodní analytik. Kancelář může také zahrnovat testery, technické spisovatele, designéry rozhraní atd.
Hlavním ukazatelem je konečný produkt. Navíc přímá komunikace specialistů spočívá v poměrně malém množství doprovodné písemné dokumentace.

Agile Manifesto

Podívejme se na základní standardy vývoje softwaru. První je soubor vývojových procesů nazvaný Agile. Je definován Agilem Manifest. Je důležité říci, že Agile nezahrnuje některé praktické tipy, ale obsahuje hodnoty a zásady, které by měl vést tým vývojářů v jejich práci. Agile Manifesto bylo vyvinuto a přijato 1. - 13. února 2001 v lyžařském středisku v Utahu. Obsahuje 4 hlavní myšlenky a 12 principů týmové práce bez jedné praktické rady. Představte si základní myšlenky moderní metodiky vývoje softwaru:
  • Interakce a lidé jsou nejdůležitějšími nástroji a procesy.
  • Pracovní produkt je nad komplexní dokumentací.
  • Spolupráce s klientem je nejdůležitější harmonizací jednotlivých smluvních podmínek.
  • Připravenost týmu změnit je důležitější než předání původních plánů.
  • Také v Agile Manifestu byly uvedeny následující principy činnosti developera:
  • Uspokojování požadavků klientů v důsledku nepřerušeného předčasného doručení hodnotných.
  • Gratulujeme k měnícím se požadavkům i po dokončení projektu. Koneckonců to může zvýšit jeho konkurenceschopnost.
  • Časté dodávkypracovní software - každý týden-měsíc.
  • Projekt zaměstnává motivované jedince, poskytované s pohodlnými pracovními podmínkami, důvěrou a podporou.
  • Denní úzká spolupráce mezi týmem zákazníků a vývojářů.
  • Software bude nejlepším měřítkem pokroku.
  • Uživatelé, sponzoři a vývojáři musí udržovat vybrané tempo na dobu neurčitou.
  • Neustálá pozornost ke zlepšení návrhu výrobku, technickým požadavkům.
  • Jednoduchost je umění nevyužívat nadbytečnou práci.
  • Neustálé přizpůsobení měnícím se podmínkám činnosti. Vývojáři by měli neustále hledat způsoby, jak zlepšit svoji výkonnost, následovat je později.
    Model vodopádu
    Z flexibilního manifestu metodiky vývoje softwaru se přesouváme do nového typu. Model vodopádu - "vodopád" nebo kaskádový model. Jedna z nejstarších metodik. Zahrnuje postupné procházení fází vývoje softwaru, z nichž každá by měla skončit před zahájením dalšího.

    V důsledku této rigidity je snadné řídit projekt v rámci této metodiky. Náklady a načasování vývoje jsou předurčené, proč je práce rychlá. Je však také důležité pamatovat na tento aspekt: ​​kaskádový model dává vynikající výsledek pouze v projektech s předem definovanými jasně definovanými požadavky a metodami jejich implementace. Zde specialisté nemají šanci "vrátit se", protože testování začíná až po dokončení fáze. Není-li volba takového modelu opodstatněnápro produkt je výstup viditelný se značnými nevýhodami. Koneckonců, jejich přítomnost bude známá po ukončení práce kvůli přísnému sledování činností. Opravy chyb zde jsou poměrně drahé. Chcete-li spustit náplast, musíte počkat na konec vývoje.
    Odborníci doporučují metodiku "vodopádu" v následujících případech:
  • Požadavky na projekt jsou známy, srozumitelné a pevné. Mezi nimi neexistují žádné rozpory.
  • Neexistuje problém při získávání programátorů požadované kvalifikace.
  • Projekt je poměrně malý.
  • V-Model

    Fáze vývoje softwaru jsou také konzistentní. Tato funkce V-model "zdědil" od "vodopádu". Zvláště dobré pro systémy, kde je vyžadován hladký provoz. Dobrým příkladem je vytvoření aplikačního softwaru pro kliniky používané pro průběžné sledování pacientů. Nebo software, který řídí mechanismy airbagů ve vozidlech. Nebo žádost o mobilní operátor, která je určena k úspoře uživatelských výdajů za roaming na cestách do zahraničí. Projekt se provádí současně na jasných místech tvůrčího úkolu. Významnou roli však přináší i včasné testování: funkční, integrační, nakládací, uživatelsky příjemné rozhraní. Pokud je nutné tuto metodiku použít pro vývoj:
  • V případech, kdy je vyžadováno pečlivé testování produktu.
  • Pro malé a střední projekty s dobře definovanými požadavky.
  • Vpodmínky, kdy jsou k dispozici zkušení inženýři, testeři určité kvalifikace.
  • Přírůstkový model

    V této vývojové technologii jsou komplexní požadavky systému rozděleny do kompilace. Jinými slovy je to popis stagnující sestavy. Několik cyklů vývoje projektu se nachází v komplexu nazvaném "multi-vodopád". Cyklus je dále rozdělen do samostatných modulů, které lze snadno vytvořit. Každá z nich prochází fázemi definicních požadavků, návrhu, implementace, testování, kódování. Zvláštností je, že na první velké etapě je vydán základní model vývoje. A pak se přidávají přírůstky - nové funkce. Takový proces pokračuje až do vytvoření úplného komplexu. Další model je dobrý, pokud jsou jednotlivé žádosti o změnu jasné, mohou být jednoduše formalizovány a implementovány. Pojďme popsat případy, kdy je použití přírůstkového modelu odůvodněné:
  • Jasně definované a srozumitelné požadavky na konečný produkt.
  • Je možné upřesnit některé podrobnosti v průběhu času.
  • Existuje několik riskantních cílů.
  • Na trhu je zapotřebí brzké uzavření.
  • Model RAD

    Bezprostředně si uvědomte, že model RAD je jednou z odrůd přírůstkového modelu. Komponenty nebo funkce programu jsou vyvíjeny současně několika týmy odborníků. Výsledkem je několik miniprojektů. Doba k vytvoření každého z nich je přísně omezena. Všechny moduly jsou v obecném pracovním prototypu. Systém je dobrý, protože pomáhá rychle představit zákazníkoviZkontrolujte pracovní produkt, který můžete provést sérii změn. Proces vývoje softwaru zahrnuje několik kroků:
  • Business simulation. Jedná se o definici informačních toků mezi spektrem jednotek.
  • Simulace informací. Údaje shromážděné v první fázi se používají k identifikaci subjektů nezbytných k šíření informací.
  • Modelování procesů. Během této fáze informační toky spojují určité objekty za účelem dosažení cíle vývoje.
  • Vypracování programu. Zde používáme automobilové sestavy ke konverzi návrhových vzorů na kód.
  • Testování. Kontrola nových komponent a rozhraní.
  • Použijte tuto metodu vývoje softwaru pouze tehdy, když v týmu existují vysoce kvalifikovaní a "úztí" specialisté. Rozpočet projektu je jistě velký: je třeba zaplatit práci odborníků, náklady na hotové nástroje automatizovaného shromáždění. Model je vybrán s jistou znalostí cílové firmy v případech, kdy je nutné krátkodobě předložit konečný produkt - za 2-3 měsíce.

    Iterativní model

    Následující příklad organizace pro vývoj softwaru je iterativní (nebo iterativní model). Zvláštnost projektu spočívá v tom, že nevyžaduje úplnou specifikaci požadavků na zahájení jeho realizace. Tvorba začíná vytvořením databáze, která by měla být základem pro stanovení dalších požadavků. Verze v tomto případě může být zcela nevhodná. Hlavním požadavkem je, aby fungoval.Vývojář chápe a vidí konečný cíl práce. Musí usilovat o to, aby byl každý krok jeho činnosti produktivní a každá vytvořená verze je funkční. Z nějakého důvodu se zde vytváření podobá vytváření obrázku: nakreslíme nejprve náčrtek, pak se naplní květinami, přidáme detaily, saturace, odstíny přechodu, poslední dotyky - a proces je dokončen. Něco se podobá přírůstkovému modelu? Podívejme se na rozdíl. Podle přírůstkové metodiky se výrobek skládá z částí a funkční software je složen, který se nazývá v bitech. Současně však každá část je již nedílnou součástí. A "kusy" v iteračním modelu nemají autonomii. Dalším živým příkladem vývoje softwaru z této metodologie je zařízení pro rozpoznávání hlasu. Všechno začalo příprava vědecké základny. Pak byla shromážděna potřebná dokumentace. Při každém novém vývoji se zvýšila kvalita zařízení. Ale nedosáhla dosud ideální úrovně. Takže projekt ještě nebyl dokončen. Použití iteračního modelu je oprávněné v následujících případech:
  • Požadavky na konečnou verzi vývoje jsou jasné a jasně definované.
  • Projekt je velmi velký.
  • Hlavní úkol je předem určen. Ale zlepšíme jeho detaily, změnu v procesu práce.
  • Model spirály

    Spirální model se velmi podobá předchozímu modelu. Zaměřuje se však na další úkol rozvoje softwaru - hodnocení rizik. Většina této metodologie může být použita k řešení kritických otázekpodnikové úkoly, kdy selhání projektu může vážně poškodit podnikání společnosti. Spirální model je široce využíván při vydávání nových softwarových linek, je-li to nutné, pro provádění vědeckých výzkumných projektů, praktických testů. Každý z "otáček spirály" prochází čtyřmi fázemi:
  • Plánování.
  • Analýza rizik.
  • Výstavba.
  • Odhad výsledků. Pokud je to pozitivní, pak se vývojář přesune na nový "podproces" projektu.
  • Spirální model by neměl být používán pro malé rozpočtové projekty. Naopak, je vhodnější pro velké a nákladné. Velkým příkladem použití metodiky pro vytvoření systému pro oběh bankovních dokumentů. Zde se hodně pozornosti věnuje nejen samotnému programování, ale i analýze každého již vytvořeného "obratu".

    LD

    Tzv. Sofistikovaný vývoj softwaru. Jedná se o jednu z oblastí pružné metodiky, kterou jsme rozložili výše. Hlavní výhodou LD je udržení vysokého morálního a funkčního stavu odborníků. Jedná se zejména o následující:
  • Povzbuzení každého zaměstnance za zvlášť úspěšnou činnost.
  • Současné cíle projektu se mění pouze v případě mimořádné potřeby nebo na žádost zákazníka.
  • Přísná implementace plánu. Super práce je považována za znamení ztráty jak času, tak zdrojů.
  • Realizace obecného pojetí aktivity: "Široké myšlení, rychlá chyba, málo práce, učení rychle".
  • XP

    Velmi zajímavým příkladem je metodika takzvaného extrémuprogramování Co je tu ukryto? Jedná se o vývoj v podmínkách neustále se měnících požadavků na produkt. Směr metodiky má tyto charakteristické rysy:
  • "Plánovací hra". Na začátku práce je uveden pouze přibližný plán. Při každé změně vývoje se zvyšuje jeho ostrost.
  • Vysoká frekvence uvolnění. To znamená, že nová verze bude mít jen malý rozdíl od předchozí verze, ale jeho vydání bude trvat minimálně.
  • Kontakt s klientem. Pro následující metodiku je důležité rychle splnit všechny požadavky zákazníka - okamžitě reagovat na všechny jeho připomínky a přání.
  • Refactoring. Kvalita kódu se vylepšuje bez snížení jeho funkčnosti.
  • Standardní kódování. Na obličeji nebo na základě obecných pravidel nebo nedostatek nesrovnalostí v procesu vývoje.
  • Kolektivní odpovědnost. Takže každý člen týmu je zaneprázdněn určitou oblastí práce. Ale za celkový výsledek je celý tým zodpovědný.
  • FDD

    A poslední metodika v našem článku. Poskytuje škálovatelnost a opakovatelnost. Současně však podpořil tvůrčí přístup, uplatnění v inovacích. Hlavní principy metodiky jsou následující:
  • Vývoj každého významného projektu je systematickou činností.
  • Všechny procesy by měly být jednoduché a dobře navržené.
  • Logika a hodnota každého procesu by měl být chápán jakýmkoli členem týmu.
  • Výhody jsou krátké cykly vývoje softwaru. To vám umožní snížit částkuchyb při zvyšování funkčnosti.
  • Hodnota metodiky a skutečnost, že jednoznačně upravuje délku procesů. V tomto případě by organizační záležitosti v každém cyklu neměly být vynakládány více než 25% času. Zbylých 75% je výlučně pro vývoj, kompilaci a testování funkčních. Ukončíme základní vývoj softwaru. Jak jste viděli, funkce každého z nich umožňují zvolit vhodnou metodiku pro úspěšnou realizaci nejrůznějších projektů.

    Související publikace