- Proč modelovat: Vyhnout se chybným metodám řízení projektu, Plnit termíny, Optimalizovat vývojové náklady, Využít plně zdrojů(nepřetěžovat), Využívat předchozích výsledků vývoje, Minimalizovat údržbu. - Tunel: Chybí koncepce vývoje, Neví se kdy má co kdo dělat, nelze určit pokračování, náročnost. Nízká znovupoužitelnost vyvinutého kódu, Nízká transparentnost, Velká složitost, Redundance evidovaných informací, Odmítání nových požadavků, Synergická nestabilita, Příliš velký počet chyb v nasazeném programu, Vývoj doprovází hektičnost prací,Souhrn negativních vlastností se projeví ve zvýšených nákladech. - Tunel vyhnutí: Úrovně abstrakce, Objektový přístup, Dobrý jazyk,Použití vzorů. - Byrokratická metoda: Snaha odstranit nedostatky tunelu. Vytvářením směrnic, zavedení byrokracie zpomalí vývoj, aplikací se většinou zvýší náklady > ztráty. - Proč modelovat: dobré metodiky tvorby softwaru, - Příčný řez: práce rozdělena mezi jednotlivé týmy (oblasti), Analýzu, návrh a kódování si provádí každý sám. Nevznikají dokumenty na jednotlivých úrovních abstrakce. - Úrovně abstrakce:analýza, návrh, kód (předchází se rozdílným slovníkům) - Objektový přístup: Je to určitý náhled na systém - Vzory: problémy hledáme v katalogu (již máme vyřešeny z dřívějška), vývojáři si budují svoje vzory (know-how). - Objektá orientace: přístup založený na několika základních principech. zapouzdřovat, skrývat informace a implementace, zachovat stav, přidělit identitu objektů, zasílat zprávy, definovat třídy, využívat dědičnost, používat mnohotvarost, abstrahovat, asociovat,agregovat. - Zapouzdření: seskupení souvisejících idejí do jedné jednotky. - Skrývání informací a implementací: omezení externí viditelnosti určitých informací. - Zachování stavu: stav po celou dobu života - Identita objektů: vlastnost, podle které lze každý objekt identifikovat. - Zprávy: komunikace objektů mezi sebou. - Třída: šablona, podle které se vytvářejí instance objektů. - Dědičnost: objekt má všechny atributy a operace své třídy. - Polymorfismus/Mnohotvarost: otevřít dveře, otevřít okno, otevřít noviny. - Abstrakce: filtrování vlastností a operací objektu, až zbudou pouze ty, které potřebujeme. - Asociace: jedno/obou směrný vztah mezi objekty. - Násobnost: vlastnost asociace, kolik prvků je ve vztahu (1:N, 1:1) - Agregace: objekt obsahuje jiné objekty (auto - motor) - Kompozice: nerozložitelná agregace (zidle - nohy, židle bez nohou není židle) - UML: univerzální unifikovaný jazyk pro vizuální modelování systémů, není metodika! - Struktura UML: Stavební bloky, Společné mechanismy, Architektura. Předměty (třídy, rozhraní - chování, seskupení), relace (vztahy s šipkama) a diagramy (13 diagramů). - Unifikovaný: Historie metod a notací, Vývojový cyklus, Aplikační domény, Implementační jazyky a platformy, Vývojové procesy, Vlastní interní pojmy. - UP: je metodika, generický proces pro UML, řízení užití a rizik - Iterace: mini-projekt - Plánování, Analýza a návrh, Implementaci (tvorba kódu), Integraci a testování,Interní nebo externí uvedení - Iterace orvky: Požadavky, Analýzy, Návrh, Implementace, Testování - Fáze UP: Zahájení (Stanovení proveditelnosti, obchodní případy, Přínos systému, kritická rizika), Rozpracovaní (spustitelný základ, odhady rizik, případy užití, plán konstrukce, formulace nabídky), Konstrukce (kompletní případy užití, dokončení analýzy a návrhu, revidence rizik, betatestování), Zavedení (oprava chyb, manuály, konzultace s uživateli, konečná revize) - Požadavky (Req): specifikaci toho co má systém dělat, promluva o specifikacích, Specifikace toho, co by mělo být implementováno. - Analýza (A): tvorba analytického modelu (obchodní jazyk) > analytické třídy a realizace případů užití - Návrh (Design): - Implementace: - Testování: - Případy užití (UseCase): požadavky, aktivity:nalezení hranic systému, aktérů, případů užití, slovník - Specifikace UseCase: id, popis, podmínky (vstup, výtup), aktéři, hlavní/vedlejší scénář, stav systému, kroky případu užití, - Slovníček pojmů: pojem - definice,synonyma,hononyma. - Analytická třída: abstrakce dané problematiky, 1 analytická > více návrhových, nejdůležitější atributy, operace klíčových služeb. název reprezentuje obsah, maximálně průhledná a srozumitelná, minimální vazebnost, 3 až 5 odpovědností na třídu - Hledání tříd: podstatná jména a slovesa, CRC (Brainstorming), skryté třídy (podstatná jména), dokumenty, formuláře, známá spojení s okolím, - Realizace případu užití: Diagramy analytických tříd, Diagramy interakce (zprávy, čáry života) - sekvenční/komunikační/interakce/časování, Speciální požadavky