Softwarové inženýrství

Slides:



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

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.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
S YTÉMOVÁ INTEGRACE Ing. Jiří Šilhán. S YSTÉMOVÁ INTEGRACE Jedná se o přístup, který přispívá k integraci nesourodých výpočetních systémů. Vyplývá ze.
Scia - Nemetschek Postavení SCIA v holdingu Nemetschek
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 
Řízení jakosti Číslo předmětu: Na cvičení je nutno nosit: - vlastní přezůvky, -kalkulačku se základní statistikou Cvičení budou v laboratoři.
METODOLOGIE PROJEKTOVÁNÍ NÁVRH IS PRO TECH. PROCESY Roman Danel VŠB – TU Ostrava HGF Institut ekonomiky a systémů řízení.
METODOLOGIE PROJEKTOVÁNÍ
Architektura IS.
IS V EKONOMICKÝCH SUBJEKTECH Ing. Jiří Šilhán. IS IS – data+lidi+HW, prvky + relace mezi uživateli, které splňují nějaké cílové chování – tak aby byly.
LABORANT Analytická štúdia. Dátový model Funkčný model Sekvenčný diagram Diagram spolupráce Dynamický model.
Agilní Softwarové Procesy
Audit administrativních činností
Kvalita administrativních procesů. TQM Podniková strategie Přínos kvality procesů Systém a důsledné uplatňování Odpovědnost zaměstnanců Modelování procesů.
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.
Aukro.cz – projektový management v e-commerce Tereza Kabrdová.
3. Životní cyklus a procesy projektu
Geo-informační systémy
Výhody užití architektury ITS ve veřejné osobní dopravě
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.
Auditorské postupy Činnosti před uzavřením smlouvy
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.
13AMP 9. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled ADA ADA Java Java.
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
ITIL Information Technology Infrastructure Library.
Agilní metodiky vývoje softwaru
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
4. Lekce Dílčí procesy funkčního testování
Principy posuzování kvality software podle ČSN ISO/IEC Praha Ing
Možnosti modelování požadavků na informační systém
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Dokumentace informačního systému
Vývoj výrobku Firmy musí pružně reagovat na změny ( v lidských potřebách, technologii, technice, v počtu a síle konkurence,…) a vyvíjet nové výrobky. Novými.
Realizační tým ICZ duben 2005
Přednáška č. 1 Proces návrhu databáze
Prototypování, testování prototypů Lenka Němečková Komunikace člověk-počítač KISK FF MUNI
EKO VY_32_INOVACE_EKO_12 MARKETINGOVÉ ŘÍZENÍ. Autor: Ing. Hana Motyčková „Autor je výhradní tvůrce materiálu.“ Datum vytvoření: Klíčová slova:
Projekt z PA104 Richard Benkovský (139912, Jan Horák (143443, Miroslav Ligas (139542, Tomáš.
1 Řízení implementace IS a SS* Šablony. 2 Vzorové postupy.
Softwarové inženýrství semestrální projekt
Troubleshooting Hledání příčin poruch Metody pro určení proč něco nepracuje správně, nebo neposkytuje očekávané výsledky.
2. Životní cyklus a procesy projektu
YOUR SYSTEM, spol. s r. o. Ing
Detekce a odstraňování chyb Vývoj informačních systémů.
Metodika řízení projektů
Základní problémy realizace eLearningového systému Roman Malo Ústav informatiky PEF MZLU v Brně.
Helios Orange - Implementace systému
Ekonomika malých a středních podniků Přednáška č. 10: Personální řízení v MSP.
PRINCeGON – metodika řízení projektů Ministerstva vnitra
INFORMAČNÍ SYSTÉMY PRO KRIZOVÉ ŘÍZENÍ POUŽITÍ INFORMAČNÍCH SYSTÉMŮ PRO MODELOVÁNÍ A SIMULACE KRIZOVÝCH SITUACÍ - T3 ING. JIŘÍ BARTA Operační program Vzdělávání.
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
Jištění kvality technologických procesů
ŘEMESLO - TRADICE A BUDOUCNOST
PROJEKT SYSTÉMU ŘÍZENÍ PODNIKU ZÁKLADNÍ POŽADAVKY A DOPORUČENÍ
Tradiční metodiky vývoje softwaru
Tradiční metody vývoje softwaru
Ekonomika malých a středních podniků
Sytémová integrace Ing. Jiří Šilhán.
METODOLOGIE PROJEKTOVÁNÍ
Základy projektování informačních systémů Jaroslav Šmarda
Technická Evidence Zdravotnických Prostředků 2
Transkript prezentace:

Softwarové inženýrství Definice (Fritz Bauer, 1968): Softwarové inženýrství je zavedení a používání řádných inženýrských principů tak, abychom dosáhli ekonomické tvorby softwaru, který je spolehlivý a pracuje účinně na dostupných výpočetních prostředcích. Ekonomická tvorba SW: Zahrnuje vhodné sestavení vývojového týmu, vhodnou volbu správného vývojového nástroje, zvážit, zda „vyvinout nebo koupit“ knihovnu, komponentu, nalézt společnou řeč se zadavatelem, zvážit budoucí údržbu a rozšiřování programu. Vznik v 70. létech, první aplikace umožňující interakci s uživatelem, produkty šité na míru, první chyby, nedokončené projekty,… 80. léta masivní rozvoj softwarového inženýrství, silný nástup metodik, OO přístupu, standardizace, rozvoj produktových řad, komponent, architektur a modelů 1997 je softwarové inženýrství uznáno jako obor s certifikátem v USA.

Softwarová krize Charakteristickým znakem SW krize bylo neúnosné prodlužování a prodražování projektů, nízká kvalita programů a jejich špatná údržba a inovace. Příčiny proč došlo ke krizi: Špatná komunikace Nesprávný přístup Nesprávné odhady Špatné plánování Nízká produktivita práce Neznalost základních pravidel Podcenění hrozeb a rizik Nezvládnuté technologie

Program, produkt, systém? Program – SW výrobek splňující nějakou konkrétní funkci (přesná definice: pod pojmem program budeme chápat smysluplnou posloupnost příkazů vložených do počítače, která má předem stanovený význam, která sleduje nějaký plán a jejímž výsledkem je provedení nějakého úkolu nebo výpočtu). Softwarový produkt – podobný jako program, v průběhu jeho vývoje byly uplatněny některé inženýrské techniky, např. analýza, testování, existuje dokumentace, uživatelská podpora či nápověda. Programový systém – soubor navzájem propojených SW produktů pro uplatnění v některé oblasti, obsahuje interakci s okolím. Hranice mezi těmito třemi pojmy není ostrá ani vymezená.

Vývoj IS/IT Softwarové inženýrství vychází z pěti principů 1. princip modelování 2. princip iterace 3. princip strukturování 4. princip životního cyklu 5. princip automatizace Všechny tyto základní principy tvoří komplex metodologií pro řízení a výstavbu IS.

Základní pojmy Metodika (metodologie) - doporučený souhrn etap, přístupů, zásad, postupů, metod, technik a nástrojů pro tvůrce IS, určuje kdo, kdy, co a jak má dělat během vývoje a provozu IS Metoda - určuje CO je třeba dělat v určité fázi, je spojená s přístupem Technika - určuje JAK dosáhnout výsledku, je přesnější a konkrétnější než metoda Nástroj - je svázán s technikou, je to prostředek k uskutečnění nějaké činnosti, ČÍM dosáhnout výsledku

Životní cyklus softwarového díla Začíná prvotním nápadem něco řešit nebo vylepšit pomocí IS/IT v souladu s informační strategií podniku, končí likvidací produktu a výměnou za jiný. ŽC SW obsahuje zhruba tyto etapy: Specifikace problému Analýza Návrh Implementace Zavedení a testování produktu, dokumentace Provoz, údržba a rozvoj produktu

Modely ŽC Modely určují postup při tvorbě SW a zvolená podoba modelu je závislá na osobnosti manažera projektu a charakteru celého týmu. Modely jsou jádrem metodik a určují posloupnosti aktivit v metodikách. Model vodopád, Model spirálový, Model prototyp, Model iterativní a přírustkový. Vodopádový model životního cyklu (není to metodika), pro rozsáhlé projekty je nevhodný, přinesl však základní členění softwarového procesu a jejich logickou posloupnost, ve své době převratný, dnes má stále zvuk. Všechny podstatné fáze jsou prováděny ve stanoveném pořadí s žádnými nebo minimálními iteracemi. Viz obr.

Vodopádový model životního cyklu

Fáze vodopádového životního cyklu Definice problému – (výsledkem je dokument Úvodní studie , tj. hrubý, základní, přibližný popis požadavků na systém) Analýza a specifikace požadavků – (výsledkem je dokument Specifikace požadavků, existuje standard pro specifikaci požadavků IEEE 830-1998, dokument je odsouhlasen a podepsán zákazníkem) Návrh a tvorba architektury – obsahuje tyto podfáze Určení implementačního prostředí, vývojového nástroje, pgmovacího jazyka, technologií Vytvoření architektury systému, logické rozdělení na subsystémy a další funkční celky Namapování logického návrhu do fyzické struktury Definice chování modulů, specifikace práce s daty Implementace (naprogramování návrhu) Integrace a testování Provoz a údržba (nekončící proces úprav, oprav, vylepšování a ladění aplikace).

Spirálový model životního cyklu Barry Boehm (1985) Do procesu vývoje zavádí klíčové koncepty, iterativní přístup a opakovanou a důslednou analýzu rizik. Model náleží do skupiny riziky řízených přístupů (v závislosti na výsledcích rizikových analýz se rozhoduje o dalším směru vývoje, na konkrétním postupu). Spirála ukazuje jakými kroky vyvíjený produkt prochází, velikost spirály (radiální rozměr) ukazuje časové a finanční náklady. Základní pojmy jsou rizika, prototyp, plánování a cyklický iterativní vývoj.

Spirálový model životního cyklu Vývoj složený z jednotlivých cyklů (všechny obsahují povinné plánování, ověření a analýzu rizik) 1. cyklus - nalezení globálních rizik, zpracování základního konceptu a rozhodnutí o použitých metodách 2. cyklus - konstrukce a ověření specifikace požadavků 3. cyklus - vytvoření a ověření detailního designu 4. cyklus - implementace, testování a integrace Viz obr. Z tohoto modelu se vyvinuly další modely např. model Win-Win 1994 (je detailnější, obsahuje konkrétní náplň). V současnosti se již spirálový model nevyvíjí, na základě těchto principů ale vzniká mnoho dalších propracovaných metodologií, např. Rational Unified Process, obecně iterativní metoda vývoje (viz dále a také Doplněk k přednášce 5).

Spirálový model životního cyklu

Model prototypování Prototyp IS je dočasná verze systému, která ukazuje základní rysy systému, který bude později implementován Prototyp musí být vytvořen rychle - speciální prostředky Na prototypu se odzkouší schůdnost, účinnost řešení, obrazovky atd. Používají se RAD nástroje (Rapid Application Development) Typy prototypu Ilustrativní prototyp (důraz je kladen na vzhled a uživatelské rozhraní, vhodný při dialogu se zákazníkem, RAD nástroje, vyhazovací prototyp) Funkční prototyp ( implementuje se jádro systému, minimální počet funkcí a postupně se přidávají, tzv. vývojový prototyp) Ověřovací prototyp (implementuje se jen část systému aby se ověřilo, zda vyhovuje požadavkům nebo technologii)

Model prototypování Model prototyp Vylepšení návrhu prototypu Rychlý návrh Sběr a analýza požadavků Vytvoření prototypu Vyhodnocení zákazníkem Specifikace systému Návrh a implementace Model prototyp Prototyp je částečnou implementací produktu, nebo části produktu, v logické nebo fyzické formě, která prezentuje všechna vnější rozhraní. Kritickým faktorem úspěšného prototypování je rychlost obrátky při návrhu a tvorbě prototypů. Většinou se tento model hodí při vývoji menších systémů a na úrovni subsystémů.

Model prototypování Jiná klasifikace prototypů Podle toho co prozkoumává Prototyp chování (např. prototyp UI, storyboard – prototyp na výkresu) Prototyp struktury vysvětluje architektonické nebo technologické souvislosti Podle výsledků a pozdějšího využití Výzkumný prototyp (Exploratory Prototyp), aby vývojář pochopil chování nebo technický požadavek, většinou vyhazovací prototyp Evoluční prototyp (Evolutionary Prototyp), je přepracováván a vylepšován do finálního produktu Proof of Concept Prototyp (prototyp dokazující koncept – vyhazovací, pouze se jím dokáže, že řešení je možné nebo že algoritmus existuje a může být realizován.)

Iterativní metoda vývoje Vodopádový životní cyklus vývoje SW platí pouze za těchto předpokladů: požadavky budou stálé systém lze navrhnout “na papíru” integrace se dá provést v krátkém čase integrace nevnese nové chyby do systému Pro současné velké projekty v období neustálých změn je vhodnější iterativní metoda, kde iterace = malý vodopád.

Iterativní metoda vývoje Obecně platí: první iterace odhalí největší rizika, každá iterace produkuje spustitelnou verzi, každá iterace obsahuje integraci a testování. Výhody iterativní metody včasná eliminace rizik jednodušší řízení (a akceptovatelnost) změn znovupoužití školení týmu během celého projektu lepší kvalita produktu První hrubé rozdělení životního cyklu je na fáze, každá fáze má několik iterací, a každá fáze končí milníkem.

Iterativní metoda vývoje Fáze počátek (asi 10% celkového času) vize projektu definice obchodního případu definice rozsahu projektu milník Rozsah projektu (souhlas zadavatele s rozsahem systému a odhadem nákladů, porozumnění požadavkům, definice rizik a priorit) elaborace (asi 30% celkového času) funkční požadavky základní linie architektury plán pro další fáze a další iterace milník Architektura (stabilní architektura, její popis, model use case, dodatečné požadavky, revidovaný seznam rizik a priorit, plán pro zbytek projektu).

Iterativní metoda vývoje Fáze konstrukce (asi 50% celkového času) výroba produktu tzv. beta verze příprava nasazení milník Úvodní funkčnost (funkční a stabilní verze systému, pokrytí požadavků, eliminace rizik, uživatelská dokumentace) zavedení (asi 10% celkového času) nasazení produktu do rutinního provozu výroba médií a dokumentace instalace školení a podpora milník Nasazení produktu (systém v rutinním provozu, vyškolení uživatelé, fungující podpora, vyladěný výkon, vyhodnocení projektu a doporučení jak dál)

Iterativní metoda vývoje Každá iterace obsahuje Základní pracovní postupy: správa požadavků analýza a návrh implementace testování vyhodnocení plánu. Podpůrné pracovní postupy řízení projektu konfigurace prostředí konfigurační řízení. Další pracovní postupy (pouze v první nebo poslední iteraci) obchodní modelování úvodní plánování dodání.

RUP Konkrétní metodika založená na iterativní metodě Viz obr. RUP Klíčové pojmy Iterativní vývoj SW Správa a řízení požadavků Použití komponentové architektury Vizuální modelování Průběžné zjišťování a ověřování kvality SW Řízení změn Elementy metodiky Pracovníci a role Aktivity Artefakty Pracovní procesy Viz obr. RUP Pozn. Unified Software Development Process je podobná RUP, ale je bezplatně dostupná.

RUP

Agilní metodiky vývoje SW Cílem těchto metodik je zajistit vytvoření SW produktu rychleji a efektivněji a snáze tak splnit požadavky dnešní doby. Základní principy Iterativní a inkrementální vývoj s krátkými iteracemi Důraz na přímou, osobní komunikaci v týmu Nepřetržité sepětí se zadavatelem resp. uživatelem Rigorózní, opakované průběžné automatizované testování. Nejsilnější důraz je zde kladen na zdrojový kód. Vhodné pro projekty s nejasným, nečistým nebo často se měnícím zadáním.

Agilní metodiky vývoje SW Skupina moderních metodik, které vycházejí z toho, že jedinou cestou, jak prověřit správnost navrženého systému, je rychle ho (nebo jeho část) navrhnout, předložit zákazníkovi k vyzkoušení a mít zpětnou vazbu. Usnadnit změnu je mnohem efektivnější než se snažit jí zabránit a je třeba se učit reagovat na nepředvídatelné události. Dává se přednost: individualitám a komunikaci před procesy a nástroji, provozuschopnému SW před obsažnou dokumentací, spolupráci se zákazníkem před sjednáváním kontraktu, reakci na změnu před plněním plánu.

Agilní metodiky vývoje SW Manifest agilního vývoje Dokument se základními principy Konkrétní metodiky Extrémní programování SCRUM Developmet Process Crystal metodiky (princip „síly komunikace a lehkosti produktu“, metodiky se vyvíjí na míru projektu) Testy řízený vývoj Adaptive Software Development (ASD) Feature Driven Development (FDD)

Agilní metodiky vývoje SW Extrémní programování (XP) 5 základních hodnot XP (komunikace, jednoduchost, zpětná vazba, odvaha a respekt). 12 základních postupů (např. malé verze, jednoduchý návrh, párové programování, nepřetržitá integrace, atd.) 4 základní činnosti (testování, psaní kódu, poslouchání a navrhování). Vhodná metodika pro menší týmy, kteří pracují na měnících se nebo nejasných zadáních, nebo tam, kde je jednoduchá zpětná vazba.