Od zadání k architektuře aplikace

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.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Management Ing. Jan Pivoňka.
Databázové systémy Přednáška č. 3 Proces návrhu databáze.
HISTORICKÝ VÝVOJ 1900 Výrobková normalizace, vojenský průmysl
Diagramy případů užití.
Informační systémy Analýza systému. Sestavení týmů a potvrzení téma projektu.
13. Koordinace projektů Realizace změn Koordinace projektů
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 
Architektura IS.
Metody zpracování vybraných témat (projektů)
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ů.
PODPURNÉ PROCESY V ORGANIZACI
Informační systémy podnikové systémy CRM
Analýza a popis pracovního místa
Lenka Fialová Martina Procházková Ondřej Soukup Martin Valenta Cyril Vojáček 1.
Proces řízení projektu
X13PMT 2. seminář Ing. Martin Molhanec, CSc. Garant předmětu ČVUT – FEL, K13113.
Aukro.cz – projektový management v e-commerce Tereza Kabrdová.
3. Životní cyklus a procesy projektu
Geo-informační systémy
Analýza informačního systému
Didaktické prostředky
Semestrální práce z předmětu Projektový management
Outsourcing jako strategický nástroj řízení nejen v komerční sféře
12. OPERATIVNÍ MANAGEMENT
11. Trendy ve vývoji aplikací, podporujících podnikové procesy
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
Modelovací jazyk UML. Jazyk UML je víceúčelový modelovací jazyk, který byl vyvinut speciálně pro účely softwarového inženýrství. Obsahuje formalizovaný.
Relační databáze.
Význam informací a dat a znalostí
Podpora a rozvoj komunikační infrastruktury ISVS Ing. Lubomír Moravčík
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
Dokumentace informačního systému
Tvorba informačních systémů
Přednáška č. 1 Proces návrhu databáze
NÁRODNÍ DIGITÁLNÍ ARCHIV
Databázové modelování
PLÁN DLOUHODOBÉ OCHRANY DIGITÁLNÍCH DOKUMENTŮ V PRAXI Mgr. Andrea Fojtu, Mgr. Eliška Pavlásková ÚVT UK, ÚISK UK
State Transition Diagram a model řízení 5.Cvičení IS/IT.
Ing. Daniel Kardoš Systém ManagementDesk – nástroj řízení kvality a bezpečnosti podle ISO 9 001, ISO , ISO , ISO a ISO Ing.
Proces řízení kvality projektu Jaromír Štůsek
Analýza informačního systému. Podrobně zdokumentovaný cílový stav Paramentry spojené s provozem systému – Cena – Přínosy – Náklady a úspory – …
1 Řízení implementace IS a SS* Šablony. 2 Vzorové postupy.
Softwarové inženýrství semestrální projekt
6. Koncepce řízení projektů
2. Životní cyklus a procesy projektu
YOUR SYSTEM, spol. s r. o. Ing
Metodika řízení projektů
Helios Orange - Implementace systému
Důvody sestavování podnikatelského piánu Struktura podnikatelského plánu poskytuje podnikateli užitečný kontrolní prostředek pro zpracování informací.
PROCESNÍ MODELOVÁNÍ AGEND VEŘEJNÉ SPRÁVY Rámcový návrh projektu.
ANALÝZA IS. Životní cyklus IS Specifikace problému, požadavků (studijní fáze) Analýza Návrh Implementace (realizace) Zavedení (instalace) a testová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.
Didaktické prostředky
Návrh, požadavky, implementace
Assessment centrum.
Budování Integrovaného informačního systému Národního památkového ústavu Petr Volfík, NPÚ ÚP
PROJEKT SYSTÉMU ŘÍZENÍ PODNIKU ZÁKLADNÍ POŽADAVKY A DOPORUČENÍ
Tradiční metodiky vývoje softwaru
Městská část Praha 6 Postup příprav GDPR Ing. Jan Holický, MBA
Tradiční metody vývoje softwaru
Návrh, požadavky, implementace
KPV/PIS Websol s.r.o. Jaroslav Plzák Lukáš Choulík Tomáš Kraus.
METODOLOGIE PROJEKTOVÁNÍ
Transkript prezentace:

Od zadání k architektuře aplikace Požadavky na SW Od zadání k architektuře aplikace

Specifikace požadavků Specifikace požadavků je 1. fáze návrhu IS (po podnikovém modelování) a je nástrojem poznání potřeb budoucího uživatele. Cílem je vymezit systém z hlediska požadavků na funkcionalitu, technologie, bezpečnost atd. Je to základ pro veškeré práce na projektu. Modelování podnikových procesů Specifikace požadavků zákazníka Analýza a návrh Implementace Poznání reality Nové potřeby Návrh řešení Realizace

Inženýrství požadavků Před začátkem OOA (objektově orientovaná analýza) nebo OOD (objektově orientovaný návrh, design) je třeba vytvořit alespoň rámcový přehled o tom, co má systém dělat a jaký je smysl požadavků a jaká je jejich specifikace (vše v terminologii, které rozumí uživatel). Tzv. Inženýrství požadavků (Requirements Engineering) spočívá ve stanovení služeb, které by měl vyvíjený systém poskytovat, včetně různých omezení. Jediný způsob zachycení požadavku v OOA je případ užití, toto ale neplatí pro nefunkční požadavky. Základem jsou interview s pověřenými zástupci zadavatele, nebo studium podnikových norem zákazníka, BPM (Business Process Model), studium standardů problémové oblasti, ..

Specifikace požadavků Při analýze požadavků je nutno uvažovat tyto faktory: Zaměření podnikových činností Okolí podniku Legislativa Strategické a podnikatelské plány Omezení zdrojů (personální a technické) Finanční omezení Termínová omezení Platí obecně, nejen u OOA (resp. OOD).

RUP (Rational Unified Process) a požadavky V analýze a návrhu nás zajímají následující činnosti: Vyhledání aktorů a případů užití Detail případu užití (scénáře) Struktura modelu případu užití Pracovní postup v RUP je rozšířen o následující procesy Vyhledání funkčních požadavků Vyhledání nefunkčních požadavků Prioritizace jednotlivých požadavků Sledování požadavků k případům užití

Formát požadavků Požadavek lze definovat stručně jako „specifikaci toho, co by mělo být implementováno”. Funkční požadavky (functional req.) určují, jaké chování nebo jaké služby bude systém nabízet Nefunkční požadavky (non-functional req.) specifikují vlastnosti nebo omezující podmínky daného systému (kvalita, technologie, dokumentace, řízení projektu, ..) (Požadavek vyjadřuje CO? nikoliv JAK?) Formát pro vyjádření požadavků <id><systém>bude<funkce>, kde id jedinečný identifikátor název systému „bude” – klíčové slovo vykonávaná funkce

Klasifikace požadavků (taxonomie) Nefunkční požadavky Výkon Kapacita Dostupnost Shoda se standardy Zabezpečení Dokumentace Organizace projektu Technologie Funkční požadavky Zákazníci Produkty Objednávky Prodejní kanály Platby Veškeré požadavky na funkce a služby od zadavatele

Modelování nefunkčních požadavků Nefunkční požadavky je třeba zaznamenat a neustále je promítat do návrhu řešení. Použít katalogový záznam Identifikační číslo Datum poslední změny Kdo ho požaduje, kdo ho přijímá Priorita požadavků Stručný název požadavku Detailní popis požadavku Návaznost na další požadavky Komplexnost/složitost požadavku

Příklady nefunkčních požadavků Realizace projektu v přírůstcích Pouze jedna zodpovědná osoba na straně dodavatele Realizace kontrolních dnů každý měsíc Podpora hotového produktu po dobu 7 let Provoz na platformách Linux/Unix Podpora uložení dat v DB ORACLE Odezva systému do 3 sekund při všech operacích …

Záznam požadavku Atributy požadavků (pro dodatečné informace) Status Význam Riziko Stabilita resp. cílová verze Termín, datumSplatnosti Zdroj Priorita (Must have, Should have, Could have, Want to have) Odpovědná osoba (kdo požadavek požaduje a kdo ho přijímá) Dále datum vytvoření požadavku a datum poslední změny, detailní popis, návaznosti na jiné požadavky, komplexnost/složitost požadavku (pokud je možné toto určit).

Získání požadavku Získávání požadavků (mapa pracovního modelu pracovníků). Pro co nejpodrobnější zachycení požadavků a jejich nejhlubší analýzu se používá Vyřazení Deformace Zobecnění. Nejlepší způsob je konzultace a pohovor se zainteresovanými osobami, dotazník, spontánní diskuze. Správně formulované požadavky by měly být vyjádřeny strukturovaným jazykem, aby bylo možné využít nástroje pro podporu požadavků.

Modelování případů užití Je jedna z forem inženýrství požadavků, skládá se z aktivit (viz. cvič.) Nalezení hranic systému (ohraničení zobrazené kolem případů užití, jež je vyznačením hranic modelovaného systému – v UML 2 subjekt Vyhledání aktorů Nalezení případu užití Tvorba slovníku pojmů (terminologie v dané oblasti, pozor na synonyma a homonyma) Tento use case model je hlavním zdrojem objektů a tříd a prvotním vstupem k modelování tříd. Zdroje pro model případu užití Podnikový model Model požadavků (seznam funkčních a nefunkčních požadavků) Seznam vlastností (v souladu s vizí podniku)

Specifikace případu užití Specifikace případu užití (doporučeno používat jednotný a konzistentní standard v rámci celého projektu) Název + jedinečný identifikátor Stručný popis Aktoři (hlavní – spouští UC, vedlejší- jsou v interakci s UC po jeho spuštění) Vstupní (co musí být PRAVDA předtím, než se spustí UC) a výstupní podmínky (stav systému po skončení UC) Hlavní scénář Alternativní scénáře Vše ve srozumitelné strukturované češtině Ostatní viz. cvičení

Softwarový projekt Účastníci SW projektu Zákazníci, uživatelé, analytici, vývojáři, testeři, dokumentátoři, vedoucí projektu, právníci, lidé z výroby, prodeje, marketingu, technické podpory Typy požadavků ještě jednou - vztahy mezi různými typy požadavků Viz Obr.

Vývoj a správa požadavků Základní discipliny práce s požadavky viz Obr. Vývoj požadavků jako proces Doporučeno postupné upřesňování, iterativní postup, správnost svých analýz ověřovat s uživateli. Správa požadavků jako proces Definice požadavků, posouzení navrhovaných změn, zpracování změn, aktualizace plánů vývoje podle změn, vyjednávání, sledování požadavků od návrhu po implementaci a testování.

Hranice mezi vývojem a správou požadavků

Výhody kvalitního zpracování požadavků Méně chyb v požadavcích Snížení objemu přidělávané práce Méně nepotřebných funkcí Nižší náklady na vylepšování Rychlejší vývoj Méně nedorozumění Menší pravděpodobnost tichého rozšiřování rozsahu , menší chaos v projektu Přesnější odhady Spokojenější zákazník i vývojář

Vlastnosti požadavků a celé specifikace Vlastnosti dobře popsaných požadavků Úplnost Správnost Proveditelnost Nepostradatelnost Priorita Jednoznačnost Ověřitelnost Vlastnost celé specifikace Jednotnost Přizpůsobitelnost Dohledatelnost

Vztah mezi zákazníkem a vývojáři Základní práva a povinnosti softwarového zákazníka viz tab 1 a tab.2 dále. Faktem je, že na začátku projektu všechny požadavky nemohou být známy a budou se v průběhu času měnit. Podepsaná směrná verze specifikace = závazná podoba požadavků v daném čase. Další úpravy se budou provádět kontrolovaným způsobem (analýza důsledků na termín, cenu a další faktory).

Aktivity vývoje požadavků Etapy : Sbírání, analýza, specifikace, kontrola. Sbírání (popsat rozsah a jeho vizi, najít třídy uživatelů a klíčovou osobu pro každou třídu uživatelů, vybrat skupinu typických uživatelů, najít jejich UC, najít systémové události a odpovědi na ně, uspořádat workshop, sledovat uživatele při práci, hledat nápady na zlepšení…) Analýza (vytvořit kontextový diagram, vytvořit prototyp GUI, analyzovat proveditelnost požadavků, prioritizovat požadavky, modelovat požadavky (ERD, STD, DFD, diagram tříd, mapa dialogů, SD, rozhodovací tabulky, rozhodovací stromy,..), vytvořit DD, rozdělit požadavky do subsystémů,…) Specifikace (psát podle šablony, najít zdroje požadavků, ID, zapsat pravidlo, popsat kvalitativní parametry jako je výkon, efektivita, spolehlivost, použitelnost,…) Kontrola (provést revizi, testovat požadavky) Proces vývoje požadavků viz Obr.

Aktivity správy požadavků Stanovit postup verzování změnového řízení včetně zřízení komise Pro každou změnu provést analýzu Verzovat i dokumentaci požadavků Vést historii změn (datum, změna, autor a důvod) Sledovat stav každého požadavku Používat nástroj pro správu požadavků Vytvořit spojovací matici (požadavek X odkaz na implementační kód, testy)

Analytik požadavků Úkoly (definovat uživatele, sbírat a analyzovat požadavek, psát specifikace, modelovat požadavek, kontrolovat, prioritizovat, spravovat požadavky) Analytické dovednosti (umění naslouchat, ptát se, vést hovor,moderovat diskuze, pozorovací schopnost, vyjadřovací schopnost, organizační schopnost, modelovací schopnost, sociální inteligence, nápaditost). Většina znalostí s získá zkušenostmi (soft kills znalosti se týkají spíše lidí než technologií). Viz Obr.

Dokumentace požadavků Tři způsoby psaní požadavků Dobře strukturovaným dokumentem v přirozeném jazyce Grafickými modely Formální specifikace pomocí matematického a formálního jazyka Šablona pro specifikaci požadavků ze standardu IEEE 830 viz Obr. Dále Modelování požadavků „Jeden obrázek vydá za 1024 slov“ Zákazníkův hlas X modely Podstatné jméno X datastore, aktor, entity, atribut, třída Sloveso X proces, use case, vztah v ERD, přechod v STD, aktivita v AD

Šablona pro specifikaci požadavků ze standardu IEEE 830

Kvalitativní parametry SW systémů Důležité pro uživatele Dostupnost (poměr plánované doby provozu systému a doby, kdy je systém skutečné k dispozici a plně funkční) Efektivita (jak systém nakládá s časem procesoru, místem na disku, pamětí a komunikačními prostředky) Flexibilita (jak snadno se do hotového systému přidávají nové funkce) Integrita (neautorizovaný přístup k systému, ztráta informací, ochrana před viry, …) Kompatibilita (jak snadno dokáže systém vyměňovat data nebo služby s jinými systémy) Spolehlivost (pravděpodobnost, se kterou bude systém pracovat bez chyby, např. průměrný čas mezi chybami) Odolnost (míra do jaké systém odolá chybám vstupu nebo nečekaným provozním podmínkám) Použitelnost (patří sem uživatelská přívětivost).

Kvalitativní parametry SW systémů Důležité pro vývojáře Udržovatelnost (jak snadno se SW upravuje a jak rychle se v něm hledají a opravují chyby) Přenositelnost (úsilí, které je třeba k přenosu SW z jednoho provozního prostředí do druhého) Znovu použitelnost (recyklovatelnost, úsilí pro vytvoření komponenty pro použití v jiných aplikacích) Testovatelnost (úsilí, které je potřeba pro hledání chyb). Výkonnostní požadavky (jak dobře nebo rychle musí systém zvládat zadané funkce Rychlost a odezva, propustnost (počet transakcí za sekundu, kapacita (schopnost zvládat souběžnou zátěž), časování (schopnost vyřídit požadavky v daném čase). Různé části systému vyžadují různé kombinace kvalitativních parametrů, pro některé je kritická efektivita, pro jiné použitelnost,…

Rozdělení priorit požadavků Důležité nejen pro určení pořadí implementace, ale pomáhá to také vyjasnit zákazníkova očekávání. Tradičně požadavky s vysokou (důležité a naléhavé kvůli smluvním nebo právním požadavkům nebo z podnikatelských důvodů), střední (důležité ale ne naléhavé, mohou počkat do další verze) a s nízkou prioritou (nespěchají).

Kontrola požadavků V - model SW vývoje naznačuje, že testování přijetí SW vychází z uživatelských požadavků, systémové testování z funkčních požadavků a integrační testování z architektury systému. viz Obr. dále Provádí se neformální (popis si přečte někdo jiný než autor) a formální recenze (probíhá podle jasně definovaného procesu se vstupy, recenzenty a výstupy, shrnutím všech chyb a problémů, které z nich plynou. Typem recenzního řízení je inspekce požadavkové dokumentace. Fáze inspekce viz Obr. dále