Softwarové inženýrství
Metodiky budování IS
Existují různé metodiky vývoje softwaru, které se liší ve svém přístupu a zaměření. Následující seznam přináší přehled některých z těchto metodik:
Rigorózní metodiky
Rigorózní metodiky se zaměřují na přesné specifikování požadavků a procesů předem a snaží se minimalizovat změny během vývoje. Klíčové charakteristiky rigorózních metodik zahrnují:
- Detailní specifikace požadavků a procesů předem
- Důraz na formalitu, dokumentaci a direktivní řízení
- Používání standardních a velkých projektů
- Příklady rigorózních metodik zahrnují OPEN, RUP a EUP
Agilní metodiky
Agilní metodiky kladou důraz na pružnost, spolupráci a dodávku provozuschopného softwaru s hodnotou pro zákazníka. Hlavní rysy agilních metodik zahrnují:
- Individualita a pozitivní přístup ke změnám
- Důraz na dodávku software a přidanou hodnotu pro zákazníka
- Častá komunikace a spolupráce se zákazníkem
- Využití silných stránek jednotlivců a osobní komunikace
Deset hlavních principů agilních metodik zahrnuje:
- Včasná a kontinuální dodávka softwaru s hodnotou pro zákazníka
- Možnost změny požadavků i během vývoje
- Denní spolupráce mezi uživateli a vývojáři
- Podpora motivovaných jedinců
- Důraz na osobní komunikaci
- Zaměření na fungující software
- Průběžné zlepšování a učení se
- Kvalitní technické řešení a návrh
- Jednoduchost řešení a minimalizace nevykonané práce
- Samoorganizující se týmy
Rigorózní a agilní metodiky jsou dva odlišné přístupy k řízení projektů a vývoji software. Zde jsou hlavní rozdíly mezi těmito metodikami:
Rigorózní metodiky:
Vodopádový model: Vodopádový model je jedním z nejznámějších příkladů rigorózních metodik. Projekt je rozdělen do sekvenčních fází, jako je analýza, návrh, implementace, testování a nasazení. Každá fáze musí být dokončena, než se přejde na další.
- Významné vlastnosti: Plánování a dokumentace jsou důležité, silná kontrola kvality, přísné dodržování plánu.
Spiralový model: Spiralový model kombinuje aspekty vodopádu a prototypování. Projekt je rozdělen do opakujících se cyklů, které se nazývají spirály. Každá spirála zahrnuje činnosti analýzy rizik, vývoje, testování a hodnocení.
- Významné vlastnosti: Zahrnuje analýzu a řízení rizik, iterativní přístup, silná kontrola a hodnocení.
Agilní metodiky:
Scrum: Scrum je jednou z nejpopulárnějších agilních metodik. Projekt je rozdělen do krátkých iterací nazývaných "sprinty", které trvají obvykle 1-4 týdny. Na začátku každého sprintu je vytvořen backlog úkolů a tým pracuje na jejich splnění.
- Významné vlastnosti: Flexibilita, silná komunikace a spolupráce, adaptabilita na změny.
Kanban: Kanban je založen na vizuálním zobrazení práce na "kanbanové desce". Úkoly jsou reprezentovány kartami a posouvají se po fázích desky (např. "čeká na zpracování", "v procesu", "hotovo").
- Významné vlastnosti: Vizuální sledování práce, omezení pracovního postupu, pružnost v prioritizaci úkolů.
Hlavní rozdíly mezi rigorózními a agilními metodikami:
Přístup k plánování: Rigorózní metodiky se zaměřují na předem stanovený plán a dodržování jeho fází, zatímco agilní metodiky klade důraz na flexibilitu a schopnost reagovat na změny.
Flexibilita: Rigorózní metodiky mají tendenci být méně flex
ibilní, zatímco agilní metodiky se přizpůsobují měnícím se podmínkám a požadavkům.
Spolupráce a komunikace: Agilní metodiky kladou důraz na týmovou spolupráci a komunikaci, zatímco rigorózní metodiky se více zaměřují na individuální úkoly a dodržování postupů.
Změnový management: Agilní metodiky jsou lépe vybaveny pro řízení změn a rizik, zatímco rigorózní metodiky se spíše zaměřují na minimalizaci rizik a dodržování plánu.
Je důležité si uvědomit, že existuje mnoho různých metodik v rámci každé kategorie, a každá z nich má své vlastní specifické vlastnosti a přístupy k řízení projektů a vývoji software.
Dynamic Systems Development Method (DSDM)
DSDM kombinuje přístup rychlého vývoje aplikací (RAD) s objektově orientovaným vývojem. Metodika DSDM je postavena na devíti principech, které zahrnují:
- Aktivní zapojení uživatele
- Tým s rozhodovací pravomocí
- Časté dodávky produktů
- Podpora podnikových cílů jako klíčového kritéria pro přijetí dodávky
- Iterativní a inkrement
ální vývoj
- Změny v průběhu vývoje
- Definice požadavků na hrubé úrovni
- Testování v průběhu celého životního cyklu
Adaptive Software Development (ASD)
ASD představuje filosofické zázemí pro agilní metodiky a je silně ovlivněna teorií komplexních adaptivních systémů. Klíčové rysy ASD zahrnují:
- Přizpůsobení se změnám a adaptace na ně
- Dynamický cyklus "Speculate-Collaborate-Learn" s důrazem na učení
Lean Development (LD)
LD aplikuje principy známé z Lean Manufacturing a Total Quality Management na vývoj softwaru. Klíčové prvky LD jsou:
- Schopnost rychle a efektivně reagovat na požadavky
- Vytváření stabilních a neustále se zlepšujících vnitřních procesů
- Tolerance ke změnám s minimálním vynaložením zdrojů
Feature Driven Development (FDD)
FDD je agilní metodika, která zdůrazňuje modelování a procesní řízení ve vývoji. Hlavní rysy FDD zahrnují:
- Iterativní vývoj řízený funkcemi (feature-driven)
- Důraz na detailní modelování produktu
Crystal metodiky
Crystal metodiky jsou rodinou metodik určených pro různé typy projektů. Výběr konkrétní metodiky z rodiny Crystal závisí na velikosti projektu, důležitosti systému a dalších hlediscích, jako je produktivita nebo trasovatelnost. Jednotlivé metodiky jsou pojmenovány podle barev.
Scrum
Scrum je framework pro řízení projektů. Na rozdíl od přesně definovaných procesů, je Scrum empirickým procesem, který vyžaduje pravidelnou inspekci a adaptaci. Klíčové role v Scrumu zahrnují Product Ownera, Team a ScrumMastera. Průběh Scrumu zahrnuje vytvoření product backlogu, plánování sprintu, denní Scrum meeting, review a retrospektivu sprintu.