Návrh softwarových systémů - úvod, motivace

Podobné dokumenty
Návrh softwarových systém. Návrh softwarových systémů

ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ

Vývoj informačních systémů. Jak vyvíjet v týmu

SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Agile Software Development

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

Zuzana Šochová MFF Modelování a realizace softwarových projektů

Softwarový proces. Bohumír Zoubek, Tomáš Krátký

SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů

Ročníkový projekt. Jaroslav Žáček

Softwarové inženýrství 01. doc. Ing. František Huňka, CSc.

Ročníkový projekt. Jaroslav Žáček

POČÍTAČE A PROGRAMOVÁNÍ

Softwarový proces Martin Hlavatý 4. říjen 2018

TREND POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE

2 Životní cyklus programového díla

CASE. Jaroslav Žáček

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

Manažerská informatika - projektové řízení

Novinky v UML 2.5 a agilní modelování

Unifikovaný proces vývoje

Informační systémy ve strojírenství

2. Začlenění HCI do životního cyklu software

Úvod do softwarového inženýrství a týmového vývoje

CASE nástroje. Jaroslav Žáček

Agile. nejžádanější způsob vývoje software. Tomáš Tureček. Business consultant, Lean&Agile coach Tieto

Y13ANW ÚVOD DO WEBOVÝCH METODIK. Ing. Martin Molhanec, CSc.

METODIKY VÝVOJE SOFTWARE STUDIJNÍ OPORA PRO KOMBINOVANÉ

Řízení reálných projektů, agilní metodiky

SOFT-ENG ACADEMY 2017/2018

XINF1. Jaroslav Žáček

POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ

Životní cyklus vývoje SW. Jaroslav Žáček

4IT445 - AGILNÍ VÝVOJ WEBOVÝCH APLIKACÍ AGILNÍ METODIKY VÝVOJE SW ING. JAN ČERNÝ

TÉMATICKÝ OKRUH Softwarové inženýrství

Základy analýzy. autor. Jan Novotný února 2007

Objektová tvorba SW, Analýza požadavků 2006 UOMO 53

Improving Effectiveness of ICT Integration Process in University Education

Přehled rolí v jednotlivých metodikách

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

Životní cyklus produktu (IS / IT služby) Životní cyklus projektu Životní cyklus řízení projektu. Vývoje produktu Implementace produktu

Vývoj IS. Vladimíra Zádová, KIN, EF TUL- ISN3

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Fakulta elektrotechnická

Agilní metodiky a techniky. analýza a vývoj IS

Metodiky pro efektivní vývoj software (agilní programování)

Metodika analýzy. Příloha č. 1

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: AVTK. Úvod. strana 1

PŘÍLOHA C Požadavky na Dokumentaci

Softwarový proces Bohumír Zoubek 1. říjen 2018

Vývoj informačních systémů. Přehled témat a úkolů

Metodika SCRUM. pro malé IT projekty

3 Inženýrství systémů založených na počítačích (Computer-based System Engineering)

Vývoj informačních systémů. Přehled témat a úkolů

3 Inženýrství systémů založených na počítačích (Computer-based System Engineering)

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

6INF2. RNDr. Jaroslav Žáček, Ph.D.

Agilní metodiky vývoje softwaru

BI-TIS Případová studie

MODULU BUSINESS MODELOVÁNÍ

AGILNÍ METODIKY VÝVOJE SOFTWARE

RUP - Motivace, principy. Jaroslav Žáček

RUP - MOTIVACE, PRINCIPY JAROSLAV ŽÁČEK

Informační systémy. Jaroslav Žáček

Custom Code Management. Přechod na S/4HANA

ZÁKLADY DOPRAVNÍHO INŽENÝRSTVÍ

Prezentace 2. Slide 1. Slide 2. Slide 3. Slide 4. Prezentace pdf. nazev projektu jmena atd.. Obsah

Korporátní systém řízení ÚSC přístup v Liberci. Ing. Jaroslav Bureš

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy

Úvod do softwarového inženýrství IUS 2009/2010 p.1/40

Ing. Jiří Fejfar, Ph.D. Geo-informační systémy

Přednáška. Sběr požadavků na SW s použitím metody C.C a nástroje Craft.CASE. e-fractal, s.r.o.

Návrh softwarových systémů - softwarové metriky

End-to-end testování. 26. dubna Bořek Zelinka

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Co se chcete dozvědět?

Vzdělávací portál a e-learning, online testy, online dotazníky v terciárním vzdělávání. NET University s.r.o.

Agilní přístupy k vývoji SW. Jaroslav Žáček

SOFTWAROVÉ INŽENÝRSTVÍ 1

Semestrální práce ke kurzu 4IT421 Zlepšování procesů budování IS

Analýza a Návrh. Analýza

Testování a verifikace softwaru

Efektívne projektové riadenie v zohratom tíme

Informační systémy. Jaroslav Žáček

Semestrální práce z předmětu 4IT421 Téma: CMMI-DEV v.1.3 PA Project Monitoring and Control

Vedení projektů, Odhadování, historie

Michal Oškera (50854)

Rozvoj a údržba systémů

Česká letecká servisní a. s.

01 Teoretické disciplíny systémové vědy

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Experience of the Integration of ICT into University Education

1. VYMEZENÍ ODBORNÉ STÁŽE

Agenda. Docházka Odhadování Neohlášený test Vedení projektů Historie projektů

PROJEKTOVÁNÍ A KOMUNIKACE

Srovnávací analýza metodik vývoje software

Normy kvality softwaru a jejich podpora v metodikách budování informačních systémů

Přípravné činnosti projektu. Mgr. Lenka Svrčinová Ing. Jan Ministr, Ph.D.

Datová věda (Data Science) akademický navazující magisterský program

Transkript:

Návrh softwarových systémů - úvod, motivace Jiří Šebek, Martin Tomášek Návrh softwarových systémů (B6B36NSS)

Obsah Motivace Integrace s ostatními obory SI Kdo / co ovlivňuje cílový SW Modely, metodiky SI Verzování SW 2

Cíl předmětu Podobné jako u jiných SI předmětů Spolupracovat v týmu Prezentovat výsledky práce Komunikovat Samostatně studovat Analyzovat projekt a následně řešit problémy... 3

Cíl předmětu Specifické Seznámení s SI architekturami a jejich návrhem Různé druhy implementací Umět rozeznat správnou analýzu a návrh architektur.. 4

Organizace Stránky : https://cw.fel.cvut.cz/wiki/courses/b6b36nss/start Požadavky pro absolvování: Předmět je ukončen zápočtem a zkouškou (viz stránky předmětu) 5

Organizace Zápočet: Odevzdat semestrální úlohu Progress Presentation(~ 7.týdnu ) 5b Oponent review (~ 8.týdnu ) 5b Final Presentation(~ 14.týdnu ) 5b Odevzdání na gitlab 20b (min 10b) Zůčastnit se 1 testu: midterm testu v 6. týdnu 5b Účast na cvičeních je povinná. Tolerovány budou nejvýše 3 neomluvené absence. 6

Organizace Zkouška: Zkouška se bude skládat ze 2 částí: návrhová 30b (min 15b) analytická 30b (min 15b) K účasti na zkoušce je nutné mít zápočet. Zkouška studentů kombinovaného studia bude probíhat za stejných podmínek, jako zkouška studentů prezenčního studia. 7

Softwarové inženýrství Softwarové inženýrství je systematický, disciplinovaný a kvalifikovaný přístup k vývoji, tvorbě a údržbě softwaru. definice IEEE, 1993 Důležitý proces pro střední a velké projekty (malé projekty se dají odevzdat bez nějakého procesního plánování, ale mají pak problémy s udržovatelností, škálovatelností apod.) 8

Proč SI? Motivace SI Velké projekty Údržba, škálovatelnost, modifikovatelnost Lidé přicházejí a odcházejí, ale firma zůstává Udržování know-how Předcházení chybám Komunikace v týmu je základ úspěchu A další 9

Softwarové inženýrství Využívá modely, metodiky... Model popisuje fáze životního cyklu softwaru a vztahy mezi nimi Metodika určuje postupy každé fáze (co se má dělat) určuje také vstupy a výstupy Dělení : Tradiční agilní 10

Softwarové inženýrství Využívá modely, metodiky... Model popisuje fáze životního cyklu softwaru a vztahy mezi nimi Metodika určuje postupy každé fáze (co se má dělat) určuje také vstupy a výstupy Dělení: Tradiční: čas + cena = funkcionalita UP Agilní: funkcionalita => cena + čas XP 11

Kdo / co ovlivňuje finální produkt Zadavatel Právní oddělení Oddělení architektury Vývojové oddělení Testovací oddělení Oddělení bezpečnosti Provozní oddělení Cílová infrastruktura Doba životnosti SW 12

Kdo / co ovlivňuje finální produkt Technické omezení Časové omezení (doba dodávky) Výkonové požadavky Změny ve vedení firmy Globální politika, směřování a skandály Cena Konkurence A mnoho dalších 13

Pouhé SI nestačí SI není Silver Bullet ale nabízí nástroje a metodiky, které ve vývoji SW pomáhají Důležitá je komunikace a plánování Dodržování směrování projektu Umění říci NE, umění prioritizovat požadavky a přizpůsobit se změně Určení správného vývojového modelu a řízení dodávky Určení zodpovědné osoby, která má produkt ve správě a je zodpovědná za rozvoj a směrování produktu 14

Modely Vodopád (sekvenční) Spirála (iterativní) Prototype (iterativní) Inkrementální (agilní) Paralelní (agilní) 15

16 Model vodopád

Model vodopád vlastnosti Jeden z nejznámějších modelů je vodopád (existují různé adaptace) Jedná se o posloupnost fází, které na sebe navazují V základu tohoto modelu se postupuje vždy o jeden krok dopředu nebo dozadu Nevýhody: Velký časový úsek mezi zadáním a prvním releasem definice všech požadavků už zezačátku vývoje Při změně zadání je potřeba schválit výstupy všech fází 17

18 Model spirála

Model spirála vlastnosti cyklické opakování jednotlivých kroků vývoje iterativní typ modelu Je odpovědí na nevýhody vodopádu Duležitá vlastnost modelu je analýzu rizik v každém cyklu 19

20 Model prototype

Model prototype popis Prvotní sběr a analýza požadavků. Rychlý návrh. Tvorba prototypu. Vyhodnocení prototypu zákazníkem. Pokud je zákazník spokojen, posun Zpracování připomínek zákazníka a posun Specifikace systému na základě prototypu. Návrh a implementace systému. 21

Model prototype U UI softwaru dělíme prototypy na : Low fidelity High fidelity 22

Model prototype U UI softwaru dělíme prototypy na : Low fidelity 23

Model prototype U UI softwaru dělíme prototypy na : High fidelity 24

Metodiky Tradiční Funkcionalita čas + peníze Agilní čas + peníze Funkcionalita Příklady : Unified Proces (UP), Rational Unified Proces (RUP) placená verze podobná UP, Extrémní programování (XP), SCRUM, test driven development (TDD), Model driven development (MDD) 25

26 UP - Unified Proces

UP - Unified Proces 4 fáze: zahájení projektování realizace předání Každá fáze obsahuje: sběr/revize požadavků analýza návrh implementace 27 Zdroj:https://en.wikipedia.org/wiki/Unified_Process

XP - Extrémní programování Extrémní programování (XP) je agilní metodologie vývoje software 4 hodnoty: Komunikace Jednoduchost Zpětná vazba Odvaha Párové programování, testování, návrh modulů, jednoduchost, architektura, integrace, iterace, 28 Zdroj: https://cs.wikipedia.org/wiki/extr%c3%a9mn%c3%ad_programov%c3%a1n%c3%ad

XP - Extrémní programování 12 praktik: Business praktiky Plánování hry Zákazník na pracovišti Vydávání malých verzí Metafora Týmové praktiky Párové programování Společné vlastnictví kódu Standardy kódu Udržitelné tempo = 40 hodin týdně Programovací praktiky 29 Zdroj: https://cs.wikipedia.org/wiki/extr%c3%a9mn%c3%ad_programov%c3%a1n%c3%ad Neustálá integrace

TDD - test driven development Definice funkcionality napsat test implementace Cyklus : Napsat test Spustit testy a ujistit se, že všechny neprojdou Napsat vlastní kód Kód automatickými testy prochází Refaktorace 30 Zdroj: https://cs.wikipedia.org/wiki/programov%c3%a1n%c3%ad_%c5%99%c3%adzen%c3%a9_testy

Verzování softwaru Čísla verzí se skládá většinou z 3 čísel : X.Y.Z První číslo je hlavní (X), druhému se říká vedlejší (Y) a třetímu se číslo revize (Z) Pokud se zvýší nějaké číslo tak čísla nižší se resetují (př. : 1.0.1 se zvýší na 1.1.0) Číslo revize se zvyšuje po pár commitech (opravy menších chyb) Pokud už je velké množství revizí, tj. zásahů, při kterých se pouze opravuje kód, přijde doba, kdy je kód potřeba celý přepsat, zpřehlednit a něco málo upravit zde se zvyšuje vedlejší číslo Hlavní číslo se zvyšuje při kompletně přepracované programu, který již ma odlišnou podobu od předchozí verze 31 Zdroj: http://programujte.com/clanek/2005070702-teorie-programovani-verze-softwaru/

Děkuji za pozornost Jiří Šebek, Martin Tomášek 32