Modelování moderních aplikací v SELECT Enterprise Analýza a návrh moderních aplikací Modelování moderních aplikací v SELECT Enterprise Jaromír Šveřepa sverepa@lbms.cz Projektový postup
Evoluce vývojových postupů Analýza a návrh moderních aplikací Evoluce vývojových postupů monolitické systémy strukturované programování Strukturovaný vývoj minimalizace vazeb v systému seskupení zodpovědností „low-level“ opakované použití lepší podpora pro inkr. postup vyšší úroveň opak. použití časová stabilita rozhraní Vývoj založený na komponentách Objektově orientovaný vývoj Perspective/LEAD Rychlý vývoj (RAD) prototypování inkrementální postup Projektový postup
Analýza a návrh moderních aplikací Perspective Stuart Frost a Paul Allen poprvé publikováno 1991 Široce uplatňovaný standard před UML Hlavní prvky: Kombinuje Jacobson & Rambaugh Obsahuje vývojový postup Definuje softwarovou architekturu Definuje postup vytváření komponent Výhody: Podpora RAAD Podpora vícevrstevné softwarové architektury Podpora postupu vývoje z komponent Notace založená na UML Projektový postup
Analýza a návrh moderních aplikací LEAD metodika pro objektově orientovaný vývoj aplikací ucelená hierarchie činností včetně popisu integrace výkonných a řídících aktivit odkazy na vstupy a výstupy specifikace rolí a technik vzory vybraných produktů vytvořen pro prostředí MS Project 98/2000 k dispozici ve dvou verzích Standard Enterprise - zahrnuje technologii pro další vývoj dodáván včetně metodiky pro vývoj tradičních aplikací klient/server Projektový postup
Analýza a návrh moderních aplikací Projektový postup MODELOVÁNÍ PROCESŮ ÚVODNÍ STUDIE NÁVRH TECHNOLOGICKÉ ARCHITEKTURY ANALÝZA PLÁNOVÁNÍ PŘÍRŮSTKŮ NÁVRH & TVORBA INSTALACE UŽIVATELSKÁ PŘEJÍMKA PROTOTYP Projektový postup
Modelování firemních procesů Analýza a návrh moderních aplikací Modelování firemních procesů MODELOVÁNÍ PROCESŮ Model firemních procesů ÚVODNÍ STUDIE NÁVRH TECHNOLOGICKÉ ARCHITEKTURY ANALÝZA PLÁNOVÁNÍ PŘÍRŮSTKŮ NÁVRH & TVORBA INSTALACE UŽIVATELSKÁ PŘEJÍMKA PROTOTYP Projektový postup
Modelování firemních procesů Analýza a návrh moderních aplikací Modelování firemních procesů Cíle identifikace procesních řetězců vymezení rozsahu zkoumání Modely Model firemních procesů Procesní řetězce Aktivity Techniky BPM/BPR Projektový postup
Analýza a návrh moderních aplikací Úvodní studie MODELOVÁNÍ PROCESŮ Model firemních procesů ÚVODNÍ STUDIE NÁVRH TECHNOLOGICKÉ ARCHITEKTURY Model typových úloh ANALÝZA PLÁNOVÁNÍ PŘÍRŮSTKŮ NÁVRH & TVORBA INSTALACE UŽIVATELSKÁ PŘEJÍMKA PROTOTYP Projektový postup
Analýza a návrh moderních aplikací Úvodní studie Cíle rozsah projektu zmapování kdo/co bude interagovat se systémem rozhodnutí, které elementární firemní procesy budou podporovány systémem Modely Model typových úloh (Konceptuální model tříd) Techniky Modelování typových úloh Modelování tříd Projektový postup
Analýza a návrh moderních aplikací MODELOVÁNÍ PROCESŮ Model firemních procesů ÚVODNÍ STUDIE NÁVRH TECHNOLOGICKÉ ARCHITEKTURY Model typových úloh ANALÝZA PLÁNOVÁNÍ PŘÍRŮSTKŮ NÁVRH & TVORBA Model tříd Model interakcí Dynamický model Model typových úloh INSTALACE UŽIVATELSKÁ PŘEJÍMKA PROTOTYP Projektový postup
Analýza a návrh moderních aplikací Primární cíl být si jist, že víme co chtějí uživatelé Sekundární cíl zajistit základ pro inkrementální vývoj vytříbit odhady pracnosti Modely Model typových úloh Model aplikačních tříd Model interakcí sekvenční (spolupráce) Dynamický model Techniky Modelování typových úloh Modelování tříd Modelování interakcí Dynamické modelování Projektový postup
Analýza a návrh moderních aplikací Objektový systém Objekt Objekt Objekt Objekt Objekt Objekt Naším cílem je vytvořit systém, kde je inteligence rovnoměrně distribuována mezi objekty. Mezi inteligencí objektu a jeho složitostí je totiž přímá závislost (na obrázku vyjádřeno velikostí kuliček). Příliš inteligentní objekt je totiž složitý a proto i obtížně modelovatelný a udržovatelný. Navíc se u něho uplatňuje Murphyho zákon: „Co je složité v tom jsou chyby.“ včetně dodatku „Závislost mezi složitostí a počtem chyb je exponenciální.“ Z těchto poznatků (o jejichž platnosti se opakovaně přesvědčujeme v běžné praxi) plyne: „Složitou věc nelze udělat dobře!“ Z požadavku na rovnoměrnou distribuci inteligence také vyplývá: „Každý objekt má jedinečnou zodpovědnost (dovednost)“. Objek Projektový postup
Styčná místa vyžadují integraci a kontrolu Analýza a návrh moderních aplikací Styčná místa vyžadují integraci a kontrolu Události (Typové úlohy) Typové úlohy F E D G EA EB Třídy Operace Atributy Objekty Všimněte si, že Atributy tříd se kromě Diagramu tříd vlastně nikde jinde přímo neobjevují. Je to celkem pochopitelné vzhledem k jejich zapouzdření, ale někdy bývá problém s tím, kdy definovat atributy tříd. Tipy pro definování atributů: důležité atributy tříd definujte již na úvodním modelu tříd další atributy doplňujte při vytváření sekvenčních diagramů (když přidáváte novou zprávu) po vytvoření všech analytických modelů je nutné atributy prověřit Operace Atributy Projektový postup
Návrh technologické architektury Analýza a návrh moderních aplikací Návrh technologické architektury MODELOVÁNÍ PROCESŮ Model firemních procesů ÚVODNÍ STUDIE NÁVRH TECHNOLOGICKÉ ARCHITEKTURY Model tříd Model interakcí Dynamický model Model typových úloh Model typových úloh ANALÝZA PLÁNOVÁNÍ PŘÍRŮSTKŮ NÁVRH & TVORBA Model tříd Model interakcí Dynamický model Model typových úloh INSTALACE UŽIVATELSKÁ PŘEJÍMKA PROTOTYP Projektový postup
Analýza a návrh moderních aplikací „Dvouvrstevný“ model Stejné přístupy jako Klient/Server Typické znaky: všechny závislosti v databázi komunikace přes databázi každý klient „hraje“ za sebe komplikované SQL dotazy uložené procedury, triggery Realizace: skriptování (ASP, PHP …) „udělátka“ (datacontrols, formuláře …) Strukturovaný přístup Projektový postup
Provázání přes datovou vrstvu Analýza a návrh moderních aplikací Provázání přes datovou vrstvu Prezentační vrstva Klient Klient Klient Aplikační vrstva Aplikační skript Aplikační skript Aplikační skript Datová vrstva Projektový postup
Analýza a návrh moderních aplikací „Třívrstevný“ model Aplikační logika je na aplikačním serveru Typické znaky: roztříštěná databáze (ostrůvky dat) omezené využití ulož. procedur a triggerů komunikace v aplikační vrstvě komponentový přístup (zapouzdření) Realizace: aplikační server + (TM) tvorba EJB/DCOM komponent Komponentový přístup Projektový postup
Provázání přes aplikační vrstvu Analýza a návrh moderních aplikací Provázání přes aplikační vrstvu Prezentační vrstva Klient Klient Klient Aplikační vrstva Aplikační Komponenta Aplikační Komponenta Aplikační Komponenta Datová vrstva Projektový postup
Analýza a návrh moderních aplikací Vrstvy architektury Interakce: Horní vrstvy vystupují jako klienti vůči spodním vrstvám Spodní vrstvy vystupují jako servery vůči horním vrstvám Závislosti: Objekty by neměly znát objekty vyšších vrstev PREZENTAČNÍ SLUŽBY PREZENTAČNÍ OBJEKTY APLIKAČNÍ SLUŽBY APLIKAČNÍ OBJEKTY lokální externí DATOVÉ SLUŽBY OBJEKTY ULOŽENÍ Projektový postup
Analýza a návrh moderních aplikací Plánování přírůstků MODELOVÁNÍ PROCESŮ ÚVODNÍ STUDIE NÁVRH TECHNOLOGICKÉ ARCHITEKTURY ANALÝZA PLÁNOVÁNÍ PŘÍRŮSTKŮ NÁVRH & TVORBA INSTALACE UŽIVATELSKÁ PŘEJÍMKA PROTOTYP Projektový postup
Analýza a návrh moderních aplikací Plánování přírůstků Cíle definování plánu přírůstků, které budou navrženy, implementovány a dodány Modely plán dodání přírůstků Techniky Modelování typových úloh Projektové odhadování 100% z 20 % systému ke lepší než 20% z celého systému Projektový postup
Přírůstky vycházejí z typových úloh Analýza a návrh moderních aplikací Přírůstky vycházejí z typových úloh Use Case #1 This is just some crazy text to fill in a gap. Don’t take it seriously, or else your sanity is in danger. Přírůstek 1 Use Case #2 This is just some crazy text to fill in a gap. Don’t take it seriously, or else your sanity is in danger. Přírůstek 2 Use Case #n This is just some crazy text to fill in a gap. Don’t take it seriously, or else your sanity is in danger. Přírůstek se skládá z jedné či více typových úloh Přírůstek n Projektový postup
Analýza a návrh moderních aplikací Návrh & tvorba MODELOVÁNÍ PROCESŮ Model firemních procesů ÚVODNÍ STUDIE NÁVRH TECHNOLOGICKÉ ARCHITEKTURY Model typových úloh ANALÝZA PLÁNOVÁNÍ PŘÍRŮSTKŮ NÁVRH & TVORBA Model tříd Model interakcí Dynamický model Model typových úloh INSTALACE UŽIVATELSKÁ PŘEJÍMKA PROTOTYP Projektový postup
Analýza a návrh moderních aplikací Návrh & tvorba Primární cíle vyvinout použitelnou funkcionalitu pro uživatele co nejrychleji Sekundární cíle uspokojit vedení, že jsme schopni uspokojit požadavky uživatelů vytříbit odhady pracnosti pro další přírůstky Modely Model tříd SOM Dynamický model Model interakcí Modely Model tříd prezentační aplikační Model obj. uložení Model interakcí Dynamický model Techniky Modelování tříd Modelování interakcí Dynam. modelování Mapování do relačního modelu Projektový postup
Analýza a návrh moderních aplikací Popis komponenty Rozhraní Definuje množinu služeb, které zapouzdřují funkcionalitu komponenty. Může jich být několik. Komponenta Specifikace Služby určují funkcionalitu komponenty. Služba má jméno, seznam parametrů. Implementace Implementace (zdrojový kód) definuje jak jsou spouštěny služby. Pro různé platformy může být různá implementace. Spustitelné soubory Pro každou implementaci může být několik spustitelných souborů pro vlastní použití, příklady, či ladění. .DLL .EXE .OCA /OCX Projektový postup
Analýza a návrh moderních aplikací Component Factory SELECT Enterprise SELECT Synchronizers SELECT Enterprise SELECT Synchronizers Tvorba komponent Vývoj řešení Vývoj nových metodika Perspective BPM Obalení stávajících systémů Návrh Aplikace Nákup Tvorba Aplikace SELECT Repository Řízení komponent Plná integrace prostřednictvím škálovatelné technologie repository řízení & komunikace publikace & katalog. hledání & dodávka SELECT Component Manager Projektový postup
Analýza a návrh moderních aplikací Otázky? Projektový postup