Klasické metodiky softwarového inženýrství ING MARTIN MOLHANEC, CSC. Y13ANW
Osnova přednášky Co to je softwarové inženýrství Softwarový proces Metodika a metoda
Evoluce softwarových metodik a metod Vyhodnocení Odkazy
Co je to softwarové inženýrství
Co je to softwarové inženýrství Je to technický obor, který se zabývá naukou o
vytvářený softwarových produktů
Programy Databáze Informační systémy Webové aplikace,...
Vznikl přibližně v 70 letech, při vzniku prvních
opravdu rozsáhlých programových produktů. Wikipedie Softwarové inženýrství je činnost zahrnující inženýrství, informatiku a management, jejímž cílem je návrh, tvorba a údržba počítačových programů.
Co je to softwarové inženýrství Dnes se rozlišuje Computer Science Počítačová
věda – teoretické základy informatiky, grafy, algebry, kompilátory, teorie operačních systémů
Computer Engineering HW
i SW, programování, programovací jazyky, zejména jejich užití a znalosti
Software Engineering Věda
o tom, jak vytvářet programové produkty a informační systémy. Zejména metody a metodiky.
Wikipedie
Softwarové inženýrství je činnost zahrnující inženýrství, informatiku a management, jejímž cílem je návrh, tvorba a údržba počítačových programů.
Softwarové inženýrství Jeho základy Filozofie Ontologie,
Matematika Formální
konceptuální modelování
popis systémů
Management Zejména
projektový management, dále management lidských zdrojů, ekonomický management,…
Technika Metody, metodiky,
diagramy,…
Softwarové inženýrství a webové metodiky Softwarové inženýrství Jeho cílem je softwarový produkt Program Informační
Způsob, jak toho docílíme je popsán pomocí Metodik
systém
softwarového inženýrství
Jeho cílem je softwarová produkt Webový
informační systém, webový portál, webové sídlo Softwarový produkt využívající webové technologie a existující v kontextu webu
Způsob, jak tento produkt vytvoříme je popsán pomocí Webových
metodik softwarového inženýrství
Softwarový proces
Co je to softwarový proces? Způsob vytváření softwarových produktů Programů Informačních systémů Webových sídel … Softwarový proces udává posloupnost jednotlivých
kroků, jak vytvořit softwarový produkt
Metodika = softwarový proces Dnes zahrnuje celý životní cyklus produktu
Evoluce softwarových procesů
Sériový vývoj (vodopád) Nevýhodou je malá pružnost Inkrementální (spirálový) U velkých projektů je náročný na zdroje
Iterativní Vývoj se děje po kouskách Paralelní Vývoj se děje současně
Bude podrobněji
Vodopád Analýza
Návrh Implementace
Testování
Hlavní nevýhoda. Nedá se vracet.
Hlavní nevýhoda. Každá iterace musí být celá aplikace.
Testování
Implementace
Iterace
Analýza
Návrh
Inkrementální vývoj Hlavní výhoda. Aplikace se nabaluje postupně novými vlastnostmi. Modul C Modul B
Modul A
Jádro
Paralelní vývoj Hlavní výhoda. Aplikace se složí z nezávislých částí. Modul A
Modul B
Modul C
Evoluce softwarových procesů
Sériový vývoj (vodopád) Nevýhodou je malá pružnost Inkrementální (spirálový) U velkých projektů je náročný na zdroje
Iterativní Vývoj se děje po kouskách Paralelní Vývoj se děje současně
Dobrá cesta
Agilní metodiky
Softwarový proces a webové metodiky Existují dva přístupy
Některé webové metodiky, které se primárně soustřeďují na analýzu a návrh doplňují jejich autoři tak, aby pokrývali celý životní cyklus vývoje webového softwarového produktu.
Jiné webové metodiky se dají použít v rámci daného softwarového procesu, například: RUP, OOSP,…
Metodika a metoda
Metodika a metoda Metodologie Je věda o metodách Metodika Je postup, jak něco udělat. Využívá různé metody. Říká, jak tyto metody spolu souvisí a v jakém pořadí je máme vykonávat. Metoda Je jeden konkrétní postup. Můžeme také mluvit o technice. V oblasti modelování se jedná většinou o různé diagramy, například konceptuální, datový, aktivity, stavový,... Ale jsou i metody (techniky) negrafické, například normalizace, matice afinit, formální popis predikátovou logikou, aj.
Evoluce softwarových metod a metodik
Evoluce softwarových metod a metodik Datové metody 60 léta Metoda entitně-vztahového diagramu podle Chena Metoda relačního databázového modelu podle Codda Metoda datové normalizace Metoda funkčních vztahů Žádná ucelená metodika nebyla vlastně vytvořena. Jednotlivé metody se soustřeďovaly na hlavní problém tehdejší doby. Správný návrh složité databáze. Programovací jazyky tehdejší doby, byly například COBOL a FORTRAN
Evoluce softwarových metod a metodik Datové metody 60 léta Metoda entitně-vztahového diagramu podle Chena Metoda relačního databázového modelu podle Codda Metoda datové normalizace Metoda funkčních vztahů
POZOR! Relation-Ship = vztah Relation = relace
Evoluce softwarových metod a metodik Strukturované metodiky 70 léta Moderní strukturovaná metodika podle Yourdona Zahrnuje
celou řadu metod ERD - entitně vztahový diagram DFD - diagram datových toků STD - stavový diagram SCH - diagram struktury programu DD - datový slovník Strukturované metodiky se soustředily na komplexní minispecifikace
analýzu a návrh softwarového produktu z jeho různých stránek - datových i funkčních. Odrážejí dobu dávkového zpracování na mainframech a vzniku strukturovaného programování – Pascal, PL/I, ADA, Modula, aj.
Evoluce softwarových metod a metodik Objektové metodiky 90 léta OOA/OOD – Coad-Yourdona OMT – Rumbough OOSE – Jacobson Booch
Zahrnují celou řadu metod Diagram
tříd Stavový diagram Aktivity diagram …
Objektové metodiky reflektují vznik objektově orientovaného programování, respektive objektově orientovaného paradigmatu. Nástup objektově orientovaných jazyků: Smalltalk, C++, Object Pascal, aj.
Evoluce softwarových metod a metodik Objektové metodiky 90 léta OOA/OOD – Coad-Yourdona OMT – Rumbough Výsledkem snahy o co nejdokonalejší a OOSE – Jacobson standardní grafickou modelovací techniku Booch vzniká UML.
Zahrnují celou řadu metod Diagram
tříd Stavový diagram Aktivity diagram …
Objektové metodiky reflektují vznik objektově orientovaného programování, respektive objektově orientovaného paradigmatu. Nástup objektově orientovaných jazyků: Smalltalk, C++, Object Pascal, aj.
Agilní metodiky Klasické metodiky byly sice propracované, ale výsledkem
byla jejich rigidnost a jejich důsledné uplatnění celý vývojový proces zpomalovalo a zdražovalo
AGILE MANIFESTO
2001 – proklamace 17 významných softwarových odborníků, ve kterém definovaly nové agilní principy softwarového procesu. Výsledkem je vznik celé řady nových agilních metodik, které odtraňují nevýhody klasických metodik. Jsou pružné, méně nákladné a dovolují rychlejší vývoj softwarového produktu.
Příklady Agilních metodik
XP – eXtrémní programování OOSP – Objektově orientovaný softwarový proces a další….
Odkazy Softwarové inženýrství na Wikipedii http://cs.wikipedia.org/wiki/Softwarov%C3%A9_in%C5%BEe n%C3%BDrstv%C3%AD http://en.wikipedia.org/wiki/Software_engineering Unified Process http://en.wikipedia.org/wiki/Unified_process RUP (Rational unified process) http://en.wikipedia.org/wiki/Rational_Unified_Process Agile manifesto http://en.wikipedia.org/wiki/Agile_Manifesto