INFORMAČNÍ SYSTÉMY SOFTWAROVÉ INŽENÝRSTVÍ Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta.

Slides:



Advertisements
Podobné prezentace
Software Development Conference 2007 Vztah dodavatele a odběratele Zdeněk Borůvka.
Advertisements

Harmonogram implementace IS v běžné praxi - informatika ZMVS.
Stručný úvod do UML.
Projektové řízení Modul č.1.
Jan Syrovátka Jiří Hradský.  Výrobní program orientovaný na výrobu knih pro české i zahraniční nakladatele  Nabízí kompletní výrobu knihy od grafického.
Roman Danel VŠB – TU Ostrava HGF Institut ekonomiky a systémů řízení
Databázové systémy Přednáška č. 2 Proces návrhu databáze.
Historie UML Bc. Lukáš Ščurek. Historie UML 70. léta Vznik prvních objektově orientovaných jazyků První objektově orientové metody anylýzy a návrhu Polovina.
Hodnotový management Teorie rozhodování
Zefektivňování, zvyšování výkonnosti a kvality Kaizen.
Informační systémy Analýza systému. Sestavení týmů a potvrzení téma projektu.
Přínosy metodik  Větší produktivita a kooperace týmů  Komunikační standard  Specializace projektových týmů  Nezávislost na konkrétních řešitelích 
METODOLOGIE PROJEKTOVÁNÍ
Nabídka personálních služeb
Analýzy administrativních procesů. Analýzy ve 2 krocích Analýza dokumentů Analýza administrativních procesů.
LABORANT Analytická štúdia. Dátový model Funkčný model Sekvenčný diagram Diagram spolupráce Dynamický model.
Agilní Softwarové Procesy
Softwarové inženýrství
Informační systémy podnikové systémy CRM
Audit IT procesů ve FNOL
Definování prostředí pro provozování aplikace dosud jsme řešili projekt v obecné rovině aplikace bude ovšem provozována v konkrétním technickém a programovém.
ÚČEL AUTOMATIZACE (c) Tralvex Yeap. All Rights Reserved.
Projekt – úkoly, zdroje, vazby úkolů, náklady Ing. Jiří Šilhán.
Aukro.cz – projektový management v e-commerce Tereza Kabrdová.
3. Životní cyklus a procesy projektu
Troška idealismu nezaškodí.... celá řada přístupů metodika vývoje by se měla vždy přizpůsobovat konkrétním podmínkám nejedná se o normu, absolutní pravdu.
Outsourcing jako strategický nástroj řízení nejen v komerční sféře
12. OPERATIVNÍ MANAGEMENT
Ověřování kvality řízení informačních systémů a kvality informačních produktů není alternativou, ale nutností Eva Horáková, MZČR.
Tradiční metodiky vývoje softwaru
Hodnocení, realizace a kontrolní etapa. Hodnotí se tři skupiny kriterií: A)Prospěšnost – žádoucnost 1. Jak navržená strategie pomáhá dosažení cílů? 2.
Metody modelování požadavků na IS Vývoj informačních systémů.
Informační strategie. řešíte otázku kde získat konkurenční výhodu hledáte jistotu při realizaci projektů ICT Nejste si jisti ekonomickou efektivností.
Jaromír Skorkovský ESF MU KAMI
Stipendijní informační portál - Informační Strategie.
Agilní metodiky vývoje softwaru
Zavádění a údržba informačních systémů
Nové trendy v projektovém řízení:
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
4. Lekce Dílčí procesy funkčního testování
Možnosti modelování požadavků na informační systém
INFORMAČNÍ SYSTÉMY Semestrální projekt 2013/2014 Podmínky udělení zápočtu Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení.
Dokumentace informačního systému
Ivo Novotný Jak vybrat dodavatele vzdělávání JAK SI SPRÁVNĚ VYBRAT... Dodavatele vzdělávání.
Přednáška č. 1 Proces návrhu databáze
Rozhodovací proces, podpory rozhodovacích procesů
Týmové dovednosti 2 Marie Blahutková. Tým – základ dobré spolupráce Neustálý růst týmů a jejich výkonnosti Zlepšování klíčových postupů Schopnost efektivně.
1 NÁKLADOVÉ ÚČETNICTVÍ (MU_305). 2 Ing. Jaroslav Wagner, PhD. Katedra manažerského účetnictví Místnost: 285 NB KH: Pondělí 15,00 – 17,00 hod.
Projekt z PA104 Richard Benkovský (139912, Jan Horák (143443, Miroslav Ligas (139542, Tomáš.
Na cestě k ASP Jiří Voříšek VŠE - KIT publikováno: červen 2002.
Projektový cyklus, analýza SWOT
INFORMAČNÍ SYSTÉMY CVIČENÍ: Semestrální projekt Podmínky udělení zápočtu Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení.
1 Řízení implementace IS a SS* Šablony. 2 Vzorové postupy.
Softwarové inženýrství semestrální projekt
2. Životní cyklus a procesy projektu
Metodika řízení projektů
Helios Orange - Implementace systému
Teambuilding 2 Posouzení potřeby Podávání zpětné vazby
aneb Assessment Centre a Development Centre
BSC 1992 Robert S. Kaplan a David P. Norton článek navrhující měření výkonnosti organizací – BSC – Vyrovnaný přehled výsledků kniha The Balanced.
Digitální učební materiál Název projektu: Inovace vzdělávání na SPŠ a VOŠ PísekČíslo projektu: CZ.1.07/1.5.00/ Škola: Střední průmyslová škola a.
Digitální učební materiál Název projektu: Inovace vzdělávání na SPŠ a VOŠ PísekČíslo projektu: CZ.1.07/1.5.00/ Škola: Střední průmyslová škola a.
Logistické procesy ve stavebnictví Autor diplomové práce: Bc. Lukáš Hlaváč Vedoucí diplomové práce: Ing. Terezie Vondráčková, Ph.D. České Budějovice, červen.
Bohumír Zoubek, Tomáš Krátký
Agilní metodiky vývoje softwaru
Didaktické prostředky
Tradiční metodiky vývoje softwaru
Tradiční metody vývoje softwaru
METODOLOGIE PROJEKTOVÁNÍ
PROJEKTOVÉ ŘÍZENÍ V NEZISKOVÝCH ORGANIZACÍCH
Transkript prezentace:

INFORMAČNÍ SYSTÉMY SOFTWAROVÉ INŽENÝRSTVÍ Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta

Literatura Guckenheimer, S. – Perez, J.: Efektivní softwarové projekty. Zoner Press, Brno 2007 Paleta, P.: Co programátory ve škole neučí. Computer Press, 2003 Kadlec, V.: Agilní programování – metodiky efektivního vývoje softwaru. ComputerPress, Brno 2004.

O čem je tato přednáška? 1.Pohled do historie vývoje SW. 2.Softwarová krize a dnešní pohled na problémy softwarové krize 3.Odlišnosti vývoje SW oproti jiným oborům. 4.Metodiky vývoje SW 1.Klasické 2.Agilní

Metodiky vývoje software Vývoj prvních programů: Nadšenci Programy šité na míru Žádná metodika neexistuje Vývoj SW = výzkum Na přelomu 60. a 70. let 20. století se začalo mluvit o tzv. „softwarové krizi“.

Softwarová krize Neúnosné prodražování projektů Neúnosné prodlužování projektů Nízká kvalita programů Nízká produktivita programátorů Neefektivita vývoje Nejistota výsledku

Jak vypadají problémy „softwarové krize“ z dnešního pohledu?

Problém: špatná komunikace Jedním z hlavních problémů při vývoji SW je špatná komunikace. Zákazník jedná přímo s programátorem. Dnes: tendence k oddělení funkce analytika od vývojáře (kodéra)

Problém: nesprávný přístup Problém přístupu lidí k vývoji. Programátoři občas sklouzávají k tendenci předvést se, seberealizovat, „vyřádit se“. Dnes: zaměření na týmovou spolupráci, důležitá je spokojenost zákazníka

Problém: špatné plánování Je obtížné vypracovat plán vývoje, který je přijatelný pro zákazníka a realizovatelný pro vývojáře. Představa typu „ nějak se to stihne“. Po zadání projektu někdy následovalo bezprostřední „bušení do klávesnice“. Dnes: metodiky vývoje software

Problém: nízká produktivita Programátoři se zabývali vším možným jen ne tím, co bylo potřeba. Tendence psát kód okamžitě, vychrlit čím jak nejvíce řádků kódu. Dnes: Tým s přidělenými rolemi. Důraz na koordinaci vývoje. Vývoj podle předem stanovených specifikací.

Problém: podcenění hrozeb a rizik Problémy, které by mohly být vyřešeny hned na začátku, byly přehlíženy. „To vyřešíme nakonec“, „to nebude problém“, „to se nepozná“. Dnes: snaha odhalit chyby na začátku. Metodiky na provádění analýzy rizik (rozbor potenciálních hrozeb). Metodiky, které berou riziko jako základní jednotku.

Pravidla vývoje softwaru Čím je vývoj softwaru specifický oproti ostatním oborům?

Pravidlo první Kvalita odborných pracovníků je pro úspěch rozhodující. V klasických oborech je strůjcem úspěchu management, pracovníci na nižší úrovni jsou považováni za snadno zastupitelné a nahraditelné. Programování není jen o zvládnutí programovacího jazyka, ale i o zkušenostech. Rozdíly dané vzděláním, zkušenostmi, talentem.

Pravidlo druhé Odborní pracovníci se musí neustále zdokonalovat a vzdělávat. Nové technologie přicházejí cca co tři roky. Školení a vzdělávání je nutnost.

Pravidlo třetí Výhodný je jiný způsob práce. Programování není o 8 hodinové pracovní době. Programátory často práce baví a je výhodné pracovní dobu pružně měnit. V týmu prodchnutém nadšením lze dosáhnout značné produktivity. (nesmí ale jít o práci ve stresu a období zvýšeného úsilí musí být časově omezeno)

Pravidlo čtvrté Nejproduktivnější jsou malé, pozitivně motivované týmy. Vývoj software je tvůrčí práce. Manažer vývoje by neměl vývoj řídit svými příkazy, jestliže tým úspěšně funguje. Při vzniku problémů by naopak měl zasáhnout čím jak nejdříve.

Pravidlo páté Chyba je zákonitou součástí vývojového procesu. –Vývoj SW je tvůrčí a kreativní činnost, nelze ji naplánovat jako stavbu budovy. –I v nejlépe řízených projektech se vyskytnou chyby. –Je třeba ale stanovit takové postupy, aby se chyby maximálně eliminovaly.

Pravidlo šesté Prudký technologický rozvoj přináší nové příležitosti. Rutinéři na vedoucích místech je často neumí rozpoznat. Iniciativa může přicházet zdola. Říká vám něco jméno Digital Equipment Corporation (DEC)?

Nejčastější problémy vývoje SW! Zpoždění Vysoká chybovost Neplnění požadované funkčnosti Nedostatečná výkonnost Složité uživatelské rozhraní Obtížná udržovatelnost programu

Základní příčiny problémů při vývoji IS Podcenění projektu a špatný odhad (čas, náklady) Špatné zadání Nedostatečná analýza Přílišná složitost projektu Přehnaný důraz na technologii (použití novinek bez zkušeností) Špatná kvalita programového kódu (chybový, nesrozumitelný, pomalý, nedostatečně komentovaný) Nevhodné metodiky, postupy, technologie Nedostatečné testování Špatné projektové řízení

Co je „softwarové inženýrství“?

Softwarové inženýrství Softwarové inženýrství je zavedení a používání inženýrských principů tak, abychom dosáhli ekonomické tvorby softwaru. Takto vytvořený software je spolehlivý a pracuje na dostupných výpočetních prostředcích.

Podmínky úspěšné tvorby SW Vhodné sestavení vývojového týmu Volba správných nástrojů Úvaha koupit/vyvíjet Nalézt společnou řeč se zadavatelem Řešení budoucí údržby/rozšiřování

Co je to metodika? Metodika vývoje SW - všechny etapy řešení Proč? Kdo? Kdy? Co? Souhrn postupů vedoucích k dodání funkčního software.

Metodiky vývoje SW Tradiční metodiky –Model „napiš – oprav“ (Build and Fix) –Striktní posloupnost fází (Stagewise) –Vodopádový model (Waterfall) –Spirálový model –Další metodiky: RUP, USDP, … Agilní metodiky –Extrémní programování –Crystal –SCRUM –Aspect Oriented Programming –Test Driven Development

Model „napiš – oprav“ (Build and Fix) Implementace -> Dodání -> Opravy chyb

Stagewise model Definován 1957 Založen na striktní posloupnosti fází –Definice problému –Analýza –Specifikace požadavků –Návrh –Architektura –Implementace (+testování) –Provoz

Stagewise model Absence zpětné vazby Neprovádí se revize žádné fáze Nerevidují se požadavky Nehledají se rizika.

Model vodopád (Waterfall) 1970 Winston Royce Každá etapa má stanovený přesný cíl a dokumenty, které musí v jejím průběhu vzniknout Na konci každé etapy dochází k jejímu vyhodnocení a případně přepracování nebo opravení Možnost vrátit se zpět do předchozí etapy Pokračuje se teprve tehdy, je-li etapa zcela dokončena a schválena (pak již návrat není možný)

Model „vodopád“ Definice požadavků Systémový návrh Implementace Testování Provoz A údržba Specifikace požadavků

Model „Vodopád“ Výhody: -Jednoduchý -Ideální pro řízení -Vnáší disciplínu do vývoje

Model „vodopád“ Nevýhody: - Dodávka formou „velkého třesku“ -Určitá nepružnost -V době mezi analýzou a nasazením se mohou změnit požadavky „Začnu-li padat, nezastavím se dříve, než se rozbiji o kámen zvaný předvedení“

Spirálový (iterakční) model 1985, Barry Boehm Zavádí iterativní přístup a opakovanou (důslednou) analýzu rizik Rizika – situace nebo události, které mohou způsobit nesplnění cílů projektu. Vychází se z předpokladu, že na začátku je obtížné nebo až nemožné přesně specifikovat všechny funkce.

Spirálový model

Výhody: Vytváří prostředí pro vývoj znovupoužitelných komponent Je komplexní a vhodný i pro složité projekty (díky důrazu na plánování) Včasné vyloučení nevhodných řešení

Spirálový model Nevýhody: Celková komplikovanost Software není uvolněn před dokončením posledního cyklu Změna požadavků je možná pouze po dokončení cyklu Pro nové druhy aplikací (např. internetové) je nepružný Je vhodnější pro rozsáhlé projekty!

Další metodiky RUP – Rational Unified Process Iterace; dělí se na 4 fáze: zahájení, projektování, realizace, předání (zákazníkovi nebo do další fáze vývoje). Robustní, propracovaná metodika, vhodná pro větší projekty a rozsáhlejší týmy. Komerční produkt

Klíčové principy metodiky RUP Iterativní vývoj softwaru (vychází ze spirálového modelu, průběžná detekce rizik) Správa a řízení požadavků (požadavky se v čase mění) Použití komponentové architektury Vizuální modelování softwaru (za účelem porozumění systému; UML) Průběžné zajišťování a ověřování kvality (po předání je nalezení problému dražší) Řízení změn (počítáme s tím, že změny nastanou, neřízení změn vede k chaosu)

Výhody RUP Obecnost a mohutnost Iterativní přístup – včasné odhalení rizik Snazší správa změn Provázanost s notací UML, dokumentace Výrobce průběžně pracuje na zlepšování metodiky Existence doplňkových nástrojů

Nevýhody RUP Komerční, placený produkt Rozsáhlost RUP může být na škodu u malých týmů – tým stráví spoustu času implementací metodiky Její použití vyžaduje hluboké studium, týká se i projektových manažerů

RUP Existuje i open source varianta

Shrnutí Tradiční metodiky jsou tedy založeny na striktní definici postupů a projektovém řízení.

Agilní metodiky Postupy předchozích metodik, založené na důsledné analýze a propracovaném návrhu jsou obecně nejlepší. Ale… „Děláte web půl roku? Konkurence mezitím spustila dva…“

Problém vývoje SW Zdánlivě to může vypadat tak, že neexistence zákazníkovy představy, co vlastně chce je výhodou – „něco“ mu dodáme a zákazník bude spokojen. Zákazník sdělí na konci projektu, že výsledek není to, co chtěl. Chce projekt dodělat/předělat – za původně dohodnutou cenu.

Svět se mění – zákazník očekává kvalitu, ale není ochoten na ni dlouho čekat. Tento rozpor se snaží řešit agilní metody snahou o užší sepětí zákazníka s vývojovým týmem.

Manifest agilního softwaru 2004 „Manifest agilního vývoje softwaru“ Jedinou cestou, jak prověřit správnost navrženého systému, je co nejrychleji jej vyvinout, předložit zákazníkovi a na základě zpětné vazby upravovat.

Tradiční x agilní metodiky Tradiční přístup - požadavky jsou stanoveny na začátku vývojového procesu a jsou neměnné. Proměnné jsou zdroje a čas. Agilní přístup považuje za neměnné zdroje a čas, předmětem změn je funkcionalita. Na počátku projektu se stanoví nejdelší možný čas a náklady. Tým v průběhu zakázky komunikuje se zákazníkem a průběžně přehodnocuje priority.

Teze agilního manifestu Přijmout a umožnit změnu je efektivnější než se změně bránit Je třeba být připraven na nepředvídané události – „jedinou jistotou na projektu je změna“.

Tradiční x agilní Tradiční přístupAgilní přístup Důraz na procesy a nástroje Komunikace, individualita (kreativita) Obsáhlá dokumentaceProvozuschopný software Uzavírání smluv s restrikcemi Spolupráce se zákazníkem Striktní plnění plánuReakce na změnu

Tým agilního vývoje Do 10 členů: –Kouč –Programátoři –Časoměřič –Stále přítomný pracovník uživatele Programátoři pracují ve dvojicích, které se mění Prvý programátor – vymýšlí a píše Druhý programátor – oponuje, kontroluje, spoluvymýšlí Místnost pro odpočinek a jednání Důraz na využití kreativity Dokumentace – jen přehledný zdrojový kód Přesčasy dlouhodobě nezvyšují produktivitu práce

Agilní vývoj omezuje rizika spojená s nepřesným zadáním nebo se složitostí budovaného systému rizika spojená s fluktuací členů týmu, rizika spojená s tím, že neexistuje dokumentace v obvyklém rozsahu, rizika spojená s nedodržováním termínů a překračováním rozpočtů.

Kdy není agilní vývoj vhodný Kritické systémy, kde je nutné přesně dodržovat dohodnuté (technologie) Rozsáhlé systémy, které se nedají dobře dekomponovat Nejsou k dispozici kvalitní řešitelé Není ochota se domlouvat o cíli za pochodu (jak uzavřít smlouvu, jak sankce za neplnění)

Agilní metodiky Adaptivní vývoj softwaru Extrémní programování Lean development SCRUM Crystal metodiky Test-Driven Development

SCRUM Krátké denní meetingy -> úkoly Vývoj po etapách („sprinty“) Flexibilní harmonogram a dodání Malé týmy, časté revize Blacklog – informace o vlastnostech, funkcích a činnostech, které je třeba implementovat

Lean Development Toyota: –odstranění všeho zbytečného a minimalizace zásob Šest druhů plýtvání: –nadvýroba –čas tracený čekáním –plýtvání související s –plýtvání související se zpracováním –nefektivní práce –defekty ve výrobcích

Feature Driven Development Hlavní roli mají vlastnosti produktu – řídí vývoj „Vlastnost“ (feature) – malý výsledek (funkčnost) užitečná z pohledu zákazníka –Měřitelnost –Srozumitelnost –Realizovatelnost Vhodné pro menší projekty

Test Driven Development Základní myšlenka: testovací kód musí být připraven a dokončen před začátkem psaní kódu Výhoda – kvalitní software Nevýhoda – problematické řízení

Extrémní programování K. Beck, 90.léta Čtyři hodnoty: komunikace, jednoduchost, zpětná vazba, odvaha Myšlenka: to co se osvědčilo, používáme v maximální možné míře

Crystal metodiky Základní myšlenka – metodiku je třeba přizpůsobit projektu Prvním krokem projektu je tedy vytvořit metodiku Kritéria pro výběr metodiky: –velikost projektu –velikost vývojového týmu –kritičnost projektu

Shrnutí Po této přednášce byste měli vědět, s jakými problémy se můžeme setkat při řízení vývoje informačního systému Co je to „softwarová krize“ a jaká je dnešní reakce na tuto krizi? Jaké existují metodiky pro řízení vývoje SW? (klasické a agilní) –Klasické metodiky jsou založené na principech projektového řízení, zatímco agilní jsou zaměřeny na využití kreativity a na první místo staví přínos pro zákazníka