20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 1 (Rational) Unified Process © 2008 Radek Ošlejšek FI MU Brno oslejsek@fi.muni.cz http://www.fi.muni.cz/~oslejsek/PA103 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 2 Vývojové procesy UML je pouze sada modelovacích nástrojů (syntaxe + sémantika), na jejichž správné použití potřebujeme vědět: • co modelovat v analytickém modelu? • co modelovat v modelu architektury systému? • co modelovat v modelu detailního návrhu? • jak vzájemně souvisí tyto modely (upřesňování, rozsah, mapování)? • kdy a v jakém pořadí vytvářet tyto modely? • které techniky/diagramy použít v které etapě? WHAT - WHY - WHO - WHEN - HOW 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 3 Osvědčené principy z praxe • Praxe přinesla šest principů, které se vyplatí dodržovat: – Iterativní vývoj – Správa požadavků – Používání komponentové architektury – Grafické modelování (UML) – Kontrola kvality – Řízení změn 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 4 Iterativní vývoj • Iniciální návrh většinou nesplňuje všechny klíčové požadavky • Odhalení chyb návrhu až v pozdějších etapách vývoje má za následek prodražení projektu a/nebo jeho selhání. • Čas a peníze věnované na implementaci chybného návrhu jsou nenávratné • Výhody: – Snadnější řízení rizik (rizika jsou rozpoznána včas) – Iniciální iterace umožňují včasnou zpětnou vazbu od uživatelů – Testování a integrace jsou průběžné – Zaměření na krátkodobější cíle v rámci jedné iterace – Vývoj je lépe měřitelný – Neúplné implementace mohou být postupně doplňovány 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 5 Správa požadavků • Vyhodnocení, organizace a dokumentace požadované funkcionality a omezení. • Sledování změn a dokumentace kompromisů a rozhodnutí • Požadavky firemních procesů (business requirements) jsou snadno zachytitelné pomocí případů užití. • Případy užití jsou důležité nástroje pro plánování. • Případy užití řídí celý proces vývoje, od analýzy až po testování. 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 6 Použití komponentové architektury • Navrhujte, implementujte a testujte svoji architekturu předem. • Systematická cesta jak vytvořit „dobrou“ architekturu – odolnost proti změnám díky dobře definovaným rozhraním – (znovu)použití komponent – odvození z případů užití 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 7 Grafické modelovaní • Zachycení struktury a chování architektur a komponent • Zobrazení, jak k sobě elementy „pasují“ (konzistence modelů) • Schování/ukázání detailů podle potřeby • Udržování konzistence mezi návrhem a implementací • Podpora jednoznačné komunikace • Grafické modelování zvyšuje schopnost uřídit složitost => UML 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 8 Kontrola kvality • Vytváření testů pro každý primární scénář, abychom si byli jisti, že všechny požadavky jsou správně implementovány • Kontrola spolehlivosti SW – memory leaks, úzká místa, ... • Nepřijatelný výkon aplikace je stejný problém jako chybějící funkcionalita nebo nepřijatelná spolehlivost • Testování každé iterace – automatizované testy! • Je 100 až 1000-krát dražší najít a opravit chybu v softwaru až po jeho uvedení do provozu 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 9 Řízení změn • rozdělení do subsystémů pro jednotlivé týmy • stanovení „secure workspaces“ • zachycení požadavků na změny od různých zdrojů (nové požadavky od uživatelů, opravy chyb od testerů, ...) • počet uzavřených změn za den • počet nových změn za den 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 10 (Rational) Unified Process • Unified Process (UP) – Jacobson, Booch, Rumbaugh – otevřený, obecný koncept • Rational Unified Process (RUP) – komerční implementace UP od IBM – rozšiřuje UP – liší se v detailech – UP i RUP mají mnohem více společného než rozdílného • Proces (R)UP považujte za kostru, do které přidáváte a ze které odvozujete projektově specifickou, přizpůsobenou a podrobnou definici procesu 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 11 (R)UP: worker • Role, pracovník (worker) – modeluje „kdo“ v procesu vývoje softwaru – role v projektu pro jednotlivce nebo tým – každý worker může být realizovaný několika jednotlivci nebo týmy a každý jednotlivec nebo tým může vystupovat v několika workers. – v RUPu se používá termín role namísto worker, význam je ale stejný 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 12 (R)UP: activity • Aktivita (activity) – modeluje „co“ v procesu vývoje softwaru – úkol v projektu vykonávaný jednotlivci nebo týmy – jednotlivci a týmy musí při provádění aktivity vždy přijmout konkrétní roli; UP i RUP proto s aktivitami asociuje role (workers) – aktivity mohou být dekomponovány na podrobnější úrovně 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 13 (R)UP: artifact • Artefakt (artifact) – modeluje „co“ v procesu vývoje softwaru – vstupy a výstupy projektu • zdrojový kód, spustitelný program, standardy, dokumentace, ... – mohou být znázorněny různými ikonami v závislosti na tom, co představují 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 14 (R)UP: workflow • Tok práce (workflow) – modeluje „kdy“ v procesu vývoje softwaru – sekvence aktivit vykonávaných pracovníky (workers) – mohou být dekomponovány na jeden a více detailnějších modelů – detailnější toky práce jsou pouze odkazovány ikonou 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 15 Notace UP a RUP 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 16 RUP: Dvě dimenze procesu vývoje Dynamický aspekt procesu (čas): cykly, fáze, iterace a milníky. Statický aspekt procesu (obsah): jak je popsaný z pohledu aktivit, artefaktů, pracovníků a toků práce. 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 17 RUP: Cykly a fáze x Výrobek prochází různými cykly (= inkrementy v inkrementálním vývoji)  každý cyklus produkuje novou verzi systému (release) x Každý cyklus má následující fáze: - Zahájení (Inception): potvrzení konceptu, proveditelnost, cíle - Rozpracování (Elaboration): detailní požadavky, scénáře použití, architektura, komponenty, vzory interakce na vysoké úrovni - Konstrukce (Construction): zdokonalení architektury, implementační iterace řízené rizikem - Předání (Transition): uživatelské přijetí, ... time Inception Elaboration Construction Transition Vision Baseline Architecture Initial Capability Product Release 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 18 Iterace x Každá fáze může být dále rozdělena do různých iterací. x Každá iterace obsahuje analýzu, návrh a implementační aktivity. x Každá iterace produkuje spustitelnou verzi (release), buďto interní nebo externí Arch Iteration ... Dev Iteration Dev Iteration ... Trans Iteration ... Release Release Release Release Release Release Release Release Prelim Iteration ... Inception Elaboration Construction Transition 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 19 Fáze zahájení (Inception Phase) x Cíl  ustanovení obchodního případu u nového systému  specifikace rozsahu x Výstup  obecný přehled o požadavcích na projekt, tj. klíčové požadavky • iniciální model případů užití a iniciální model domény (hotovo z 10-20%) • popis případů užití a aktérů jednou větou  iniciální obchodní případ, včetně: • kritérií úspěšnosti • iniciální posouzení rizik • odhad potřebných zdrojů x Milník  definice cílů životního cyklu 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 20 Fáze rozpracování (Elaboration Phase) x Cíl  analyzovat problémovou oblast  ustanovit základy architektury  určit nejrizikovější části projektu  vytvořit kompletní plán pro dokončení projektu x Výstup  model případů užití a model domény z 80% hotové • seznam aktérů, dokumentace případů užití  realizovatelná architektura a její průvodní dokumentace  aktualizovaný obchodní případ, vč. aktualizace posouzení rizik  plán vývoje celého projektu • rozdělený do iterací, odhad ceny pro jednotlivé iterace x Milník  architektura životního cyklu 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 21 Fáze konstrukce (Construction Phase) x Cíl  inkrementálně vyvíjet a dokončit softwarový produkt, který bude připravený k předání zákazníkovi x Výstup  kompletní model případů užití a návrhový model tříd  spustitelné verze s novými funkcemi  uživatelská dokumentace  dokumentace nasazení (administrace)  hodnotící kritéria pro každou iteraci  popisy verzí  aktualizovaný vývojový plán x Milník  iniciální provozuschopný systém 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 22 Plánování konstrukčních iterací Co se dělá během 1.iterace ? • základní funkcionalita • buď implementovaná (pokud je vysoce riziková) nebo jako protézy (v případě nízkého rizika) • případy užití s nejvyšším rizikem • úprava seznamu rizik podle stávající situace (složité problémy, které jsou rozhodující a pro které dosud není známé řešení) • stanovení priority rizik a rozhodnutí, které bude řešeno nejdříve • primární scénáře případů užití • prvním cílem je vyřešení vysoce rizikových výzev, plná funkcionalita přijde na řadu později Každá iterace vytváří proveditelnou, testovatelnou, a v dalších iteracích dokonce nasaditelnou verzi systému. • protézy, simulátory, přidané testovací komponenty • testováno jinými lidmi než autory implementací 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 23 Fáze předání (Transition Phase) x Cíl  předat software uživatelům x Výstup  spustitelné verze  aktualizovaný model systému  hodnotící kritéria pro každou iteraci  popisy verzí  aktualizovaná uživatelská dokumentace  aktualizovaná administrátorská dokumentace  “post-morten” analýza systému x Milník  nová verze (product release) 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 24 RUP: Workflows 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 25 Workflow: Requirements (I) • Zachycení uživatelských požadavků • Etapy: – Modelování případů užití (use case modeling) • nalezení prvotní hranice systému • nalezení aktérů nalezení případů užití • základní specifikace případů užití (hlavní toky událostí) – Pokročilé modelování případů užití (advanced use case modeling, detail a use case) • gen/spec aktérů a případů užití • <> a <> – vyhněte se funkční dekompozici! 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 26 Workflow: Requirements (II) tasks for the UP requirements workflow 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 27 Workflow: Requirements (III) activity Find actors and use cases 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 28 Workflow: Requirements (IV) activity Detail a use case 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 29 Workflow: Analysis • Model doménové oblasti • Nalezení základních objektů a tříd • Nalezení asociací a závislostí • Dědičnost • Vytvoření analytických balíčků • Realizace případů užití – modelování p.u. jako spolupráci objektů 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 30 Workflow: Analysis UP analysis workflow 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 31 Workflow: Analysis UP activity Analyze a use case (classes interaction) 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 32 Workflow: Design (I) • Detailní model • Vytvoření návrhových tříd – všechny potřebné detaily, viditelnost, ... • Upřesnění analytických vztahů – agregace a kompozice – implementace M:N asociací – asociační třídy – směr asociace • Rozhraní a komponenty • Návrhové vzory 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 33 Workflow: Design (II) UP workflow for design 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 34 Workflow: Design (III) UP activity Architectural design 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 35 Workflow: Design (IV) UP activities Design a class and Design a use case occure concurently and iteratively 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 36 Workflow: Implementation (I) • Rozmístění (deployment) • Implementace (kódování) • Testování 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 37 Workflow: Implementation (II) Implementation workflow 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 38 Toky práce a modely Requirements Design Implementation Test Analysis Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model UML diagramy poskytují pohledy na jednotlivé modely Každý tok práce je je popsaný jedním nebo více modely 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 39 Use Case Model Use Case Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Statechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model Requirements Design Implementation Test Analysis 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 40 Analysis & Design Model Use Case Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Statechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model Includes subsystems and packages Requirements Design Implementation Test Analysis 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 41 Deployment and Implementation Model Use Case Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Statechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model Incl. active classes and components Requirements Design Implementation Test Analysis 20. 4. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU Brno 42 Test Model Use Case Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Statechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model Test model refers to all other models and uses corresponding diagrams Requirements Design Implementation Test Analysis