Praktický modelem řízený vývoj softwaru

Slides:



Advertisements
Podobné prezentace
PLAYBOY Kalendar 2007.
Advertisements

Podpora personálních procesů v HR Vema Jaroslav Šmarda
© 2000 VEMA počítače a projektování spol. s r. o..
Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
Vyvíjejte webové aplikace nově a lépe
TEORIE ROZHODOVÁNÍ A TEORIE HER
Stručný úvod do UML.
Český Internet po (uši v?) krizi Marek Antoš. snímek |datum |dokument | 1. Internetové prostředí 2.
Jan Syrovátka Jiří Hradský.  Výrobní program orientovaný na výrobu knih pro české i zahraniční nakladatele  Nabízí kompletní výrobu knihy od grafického.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Přednáška č. 5 Proces návrhu databáze
Student: Ing. Olga Minaříková školitel: doc.akad.soch. Miroslav Zvonek, PhD. srpen 2009.
Téma 3 ODM, analýza prutové soustavy, řešení nosníků
Přínosy virtualizace a privátního cloudu
METODOLOGIE PROJEKTOVÁNÍ
Dynamické rozvozní úlohy
Vysoká škola Báňská - Technická univerzita Ostrava Inovace výuky odborných předmětů na bázi řízení projektu Jana Šarmanová Libor Holub Radoslav Fasuga.
Úvod do databází Databáze.
Vizualizace projektu větrného parku Stříbro porovnání variant 13 VTE a menšího parku.
Vzdělávací materiál / DUMVY_32_INOVACE_02B14 Příkazový řádek: obsah souborů PŘÍKLADY AutorIng. Petr Haman Období vytvořeníLeden 2013 Ročník / věková kategorie3.
VY_32_INOVACE_INF_RO_12 Digitální učební materiál
MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA reg. č.: CZ.1.07/1.4.00/ Základní škola, Šlapanice, okres Brno-venkov, příspěvková organizace Masarykovo nám.
Databáze Jiří Kalousek.
VY_32_INOVACE_ 14_ sčítání a odčítání do 100 (SADA ČÍSLO 5)
Audit IT procesů ve FNOL
Dělení se zbytkem 6 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Dělení se zbytkem 5 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
M O R A V S K O S L E Z S K Ý K R A J 1 Vedení správních řízení ve spisové službě a statistika vyřizování dokumentů.
Jazyk vývojových diagramů
pit – CAD 2011 Nové funkce a rozšíření Strana: 1www.pitsoftware.cz /
52_INOVACE_ZBO2_1364HO Výukový materiál v rámci projektu OPVK 1.5 Peníze středním školám Číslo projektu:CZ.1.07/1.5.00/ Název projektu:Rozvoj vzdělanosti.
Dělení se zbytkem 8 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Zásady pozorování a vyjednávání Soustředění – zaznamenat (podívat se) – udržet (zobrazit) v povědomí – představit si – (opakovat, pokud se nezdaří /doma/)
Cvičná hodnotící prezentace Hodnocení vybraného projektu 1.
11. Trendy ve vývoji aplikací, podporujících podnikové procesy
Slide 1 A Free sample background from © 2003 By Default! Jiří Kůsa Testování propustnosti síťového firewallu.
Vývoj aplikací pro SharePoint
Novinky a strategie společnosti Vema, a. s.
MS PowerPoint Příloha - šablony.
Relační databáze.
1 Celostátní konference ředitelů gymnázií ČR AŘG ČR P ř e r o v Mezikrajová komparace ekonomiky gymnázií.
Technické kreslení.
Základní pojmy Systém je abstrakce, kterou si lidé vytvářejí v procesu poznávání jako nástroj zkoumání reálných objektů.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Informatika pro ekonomy II přednáška 10
Krajský rok informatiky České Budějovice 26. –
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
Excelent v EKOSu Ing. Daniela Dufková. Excelent v EKOSu Ing. Daniela Dufková.
DĚLENÍ ČÍSLEM 5 HLAVOLAM DOPLŇOVAČKA PROCVIČOVÁNÍ Zpracovala: Mgr. Jana Francová, výukový materiál EU-OP VK-III/2 ICT DUM 50.
1 Zpráva o výsledcích finančních kontrol ve veřejné správě za rok 2006 – za Liberecký kraj a jím zřízené příspěvkové organizace.
ELearning Snímek 1 eLearning Tomáš Kubálek
Strana: 1 © Vema, a. s. Ucelené řešení pro řízení lidských zdrojů, ekonomiky a logistiky.
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.1 Lucián Piller Intranet HR.
Dokumentace informačního systému
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
organizační struktury Implementace EOS III na Olomouckém kraji Pro:Krajský rok informatiky 2005 Autor:Jan Kadlec Datum:
Databázové modelování
Databázové systémy Informatika pro ekonomy, př. 18.
Sbírky online v novém webu Českého muzea výtvarných umění v Praze Vladimíra Mazačová, Tomáš Psohlavec, AiP Beroun s.r.o.,
1 E - S V Ě T S E T O Č Í S T Á L E R Y C H L E J I. S T A Č Í T E M U ? Fenix II –IS na platformě.NET Michal Varga.
Projekt LISp-Miner Milan Šimůnek. Milan Šimůnek – Projekt LISp-Miner2 Obsah Význam databází a uchovávaných informací Proces dobývání znalostí z databází.
Zahradnická fakulta v Lednici S4U – Seminář o Univerzitním informačním systému 23. – 25. dubna 2008 S 4 U – Seminář o Univerzitním informačním systému.
as4u advanced system for you
Dobývání znalostí z databází znalosti
Budování Integrovaného informačního systému Národního památkového ústavu Petr Volfík, NPÚ ÚP
Interoperabilita ISO 19115, ISO Jan Růžička,
Informatika pro ekonomy přednáška 8
Tradiční metody vývoje softwaru
METODOLOGIE PROJEKTOVÁNÍ
Transkript prezentace:

Praktický modelem řízený vývoj softwaru Bc. Michal Jakubec MCSE, MCSD, MCDBA, MCTS http://www.jakubec.cz/

Obsah Stručně o modelem řízeném vývoji Generativní infrastruktura na bázi XML Ukázka použití na skutečném projektu

Co nás nyní čeká? (1/3) Stručně o modelem řízeném vývoji Generativní infrastruktura na bázi XML Ukázka použití na skutečném projektu

Problémy softwarových projektů Požadavky zákazníka ? Aplikační řešení Obrázky: http://www.projectcartoon.com

Možné řešení problémů? Modelem řízený přístup Požadavky zákazníka Transformace Aplikační řešení

Proč modelem řízený přístup? Je deterministický Ušetří mnoho rutinních činností Usnadňuje údržbu a rozvoj řešení Možnost opakovaného využití na více projektech => Software Factory

Porovnání MDA a MDSD MDA MDSD Model-Driven Software Development Model-Driven Architecture přístup „shora dolů“ definováno sdružením OMG základem UML postupná transformace modelů různých úrovní abstrakce vstupem formalizované požadavky v podobě modelu výsledkem spustitelná aplikace zásadní nedostatky složitá infrastruktura chybí nástrojová podpora praktické potíže s nasazením Model-Driven Software Development přístup „zdola nahoru“ obecný přístup k vývoji aplikací založený na doménovém modelování vstupem může být model i zdrojový kód výstupem zejména zdrojový kód k překladu míra nasazení záleží na potřebách projektu lze vyvíjet souběžně i konvenčním způsobem

Hierarchie prostředků softwarového vývoje Doménově-specifické jazyky (DSL) Generování kódu Interpretace jazyka Návrhové vzory Objektově-orientovaný přístup

Generování kódu Zajišťuje automatizovanou produkci zdrojového kódu odpovídajícího stanoveným pravidlům jako řídících dat lze s výhodou použít informace zachycené pomocí DSL Zachovává konzistenci kódu při výskytu duplicitních údajů v artefaktech např. velikost textového sloupce v tabulce databáze oproti maximální délce v poli formuláře V případě, že je nutné pozměnit implementaci, stačí upravit transformační mechanismus dotčený kód bude následně re-generován či odstraněn

Doménově-specifické jazyky Zjednodušují formální zachycení struktury a/nebo chování z problémové domény Pomáhají překlenout „propast“ mezi abstrakcí problémové domény a její implementací Zajišťují centralizaci klíčových údajů (obchodních pravidel) a jejich oddělení od implementace v kódu programovacích jazyků

Interpretace DSL jazyka Umožňuje získat vysokou tvárnost aplikačního řešení bez nutnosti překladu i uživatel může měnit chování aplikace Efektivní implementace změn není nutný zásah prostřednictvím vývojového prostředí a nová kompilace kódu Vyšší nároky na architekturu aplikace možná bezpečnostní rizika nároky na výkonnost aplikačního prostředí

Mechanismus reflexe Poskytuje možnost dynamické práci s datovými typy za běhu aplikace např. práce s moduly plug-in, add-in Umožňuje datové typy obohacovat o vlastní metadata (tzv. atributy či anotace), jež lze vyhodnocovat za běhu aplikace V kombinaci s generováním kódu a interpretací DSL zvyšuje strukturální tvárnost aplikace

DSL v současné praxi Širšímu uplatnění brání: chybějící poznatky z praxe vysoké nároky na znalosti a zkušenosti vývojářů Použití vlastního DSL jazyka je většině projektů nedostupné návrh gramatiky je náročný na abstrakci složitá kontrola syntaxe problémy s vlastní interpretací jazyka Možné řešení: DSL založený na XML

Shrnutí Vývoj softwaru je rizikový byznys Modelem řízený vývoj může nabídnout pomocnou ruku a možná i východisko Potíže na projektech činí implementace vlastních DSL jazyků Jednou z dostupných alternativ může být DSL na bázi jazyka XML

Co nás nyní čeká? (2/3) Stručně o modelem řízeném vývoji Generativní infrastruktura na bázi XML Ukázka použití na skutečném projektu

Prvky generativní infrastruktury Založena na strandardech XML jako DSL jazyk doménového modelu XSD schéma pro validaci modelu XSLT pro prevod modelu na artefakty Generátor artefaktů pro generování a distribuci výsledných souboru využívá .NET Framework verze 3.5

XML jako základ DSL jazyka Jazykové konstrukce jako prvky XML snadno rozšiřitelné dle aktuálních potřeb Gramatika definována XML schématem validace zajišťuje kontrolu syntaxe Interpretace DSL jazyka prostřednictvím transformačních šablon XSLT generování kódu překlad na jiné DSL

Terminologie Artefakt – součást projektu (zdrojový kód, konfigurační soubor, záznamy dat) Doménový model – zdroj informací o prvcích domény problému/řešení Transformace – převod určitého prvku doménového modelu na sadu artefaktů Distribuce – proces fyzického umístění vygenerovaných artefaktů ve složkové struktuře souborového systému

Doménový model (1/3) Ukládán jako množina dokumentů XML validace pomocí schémat XSD – podpora IntelliSense transformace modelu pomocí XSLT podporuje generické slučování dílčích definic Umožňuje definovat strukturu doménových entit aplikační logiky Možnost specifikace výchozích záznamů pro vybrané entity

Doménový model (2/3) <?xml version="1.0" encoding="utf-8"?> <domainModel xmlns="urn:AsBest-MetaToolkit-DomainModel-1.0"> <module id="System" title="Systém" namespace="AsBest.FlexiCrm„ assembly="AsBest.FlexiCrm.Library.Domain"> <entity id="Choice" title="Číselníková položka" abstract="true" implicit="true" supportsDisabled="true"> <attribute name="Id" type="number" key="true" identifier="true" identity="true" generated="true" title="Identifikátor"/> <attribute name="Code" type="guid" selector="true" unique="true" title="Kód"/> <attribute name="Name" type="text" length="64" label="true" title="Název" entryMode="both"/> <attribute name="Description" type="text" optional="true" position="tail" title="Popis" entryMode="both"/> <attribute name="Rank" type="number" position="tail" title="Pořadí" entryMode="both"/> <attribute name="Mark" type="text" length="64" optional="true" lookup="true" position="tail" title="Značka" entryMode="both"/> <attribute name="Disabled" type="flag" position="tail" title="Zakázáno"/> </entity> </module> </domainModel>

Doménový model (3/3) <?xml version="1.0" encoding="utf-8"?> <domainModel xmlns="urn:AsBest-MetaToolkit-DomainModel-1.0"> <module id="System" title="Systém" namespace="AsBest.FlexiCrm" assembly="AsBest.FlexiCrm.Library.Domain"> <data entity="ContactGender"> <item> <value name="Id">1</value> <value name="Name">Muž</value> <value name="Mark">M</value> <value name="Rank">100</value> <value name="Disabled">False</value> </item> <value name="Id">2</value> <value name="Name">Žena</value> <value name="Mark">Z</value> <value name="Rank">200</value> </data> </module> </domainModel>

Transformační šablony Transformují doménový model na: tabulky, pohledy, referenční omezení, spouště, výchozí záznamy, aj. mapovací soubory O/R vrstvy aplikační třídy doménových entit stránky uživatelského rozhraní typu seznam- detail jednotkové testy pro doménové entity Dosud vytvořeno celkem 30 šablon XSLT některé šablony využívají jazyka JavaScript

Definice entit a záznamů Transformační šablony DEMO (1/4) Definice entit a záznamů Transformační šablony

Generátor artefaktů (1/2) Nástroj pro plně automatizované generování artefaktů dle doménového modelu univerzálně použitelný díky konfiguračním profilům Ukládání generovaných artefaktů přímo do struktury jednotlivých projektů integrováno s MS Visual Studio 2008/2010 podporuje systém pro správu zdrojového kódu Udržuje aktuální sadu artefaktů evidována v tzv. změnovém manifestu nepotřebné artefakty jsou tak vždy odstraněny

Generátor artefaktů (2/2)

Konfigurační profil generátoru Změnový manifest DEMO (2/4) Konfigurační profil generátoru Změnový manifest

Proces transformace modelu

Slučování dokumentů XML

Slučování dokumentů Expanze modelu DEMO (3/4) Slučování dokumentů Expanze modelu

Generované artefakty Databázové schéma a výchozí záznamy Mapovací soubory O/R vrstvy Aplikační třídy doménových entit Uživatelské rozhraní „seznam-detail“ Jednotkové testy pro doménové entity

Shrnutí XML jako základ DSL jazyka Doménový model pro zachycení struktury i výchozích datových záznamů Transformační šablony pro převod prvků modelu do podoby artefaktů Generátor artefaktů načítá definice modelu, transformuje je a provádí distribuci artefaktů

Co nás nyní čeká? (3/3) Stručně o modelem řízeném vývoji Generativní infrastruktura na bázi XML Ukázka použití na skutečném projektu

Vlastnosti reálného řešení Webová aplikace podnikového IS celkem cca 70 entit, 550 atributů nejprve konvenční zakázkový vývoj Použité technologie programovací jazyk C# .NET, platforma .NET Framework 3.5 O/R mapovací vrstva NHibernate 2.0 databáze MS SQL Server 2008 Generativní infrastruktura nasazena během aktivní realizace projektu

Architektura webové aplikace

Adaptace řešení do modelem řízené podoby

Ukázka UI (1/2) příklad pohledu typu seznam

Ukázka UI (2/2) příklad pohledu typu detail

DEMO (4/4) Přidání a odebrání atributu Přidání nové entity Vytvoření výchozích záznamů Úprava existující šablony

Výsledky Generováno přibližně 2300 artefaktů, z toho: 110 webových stránek seznam-detail 70 tříd doménových entit 67 databázových tabulek Jeden běh generování trvá ~30 sekund Všechny artefakty mají produkční kvalitu formátování souborů, platné jmenné konvence, aj. Veškerý generovaný kód ukládán do SVN snadný návrat ke starším revizím

Alternativní využití generátoru

Literatura Model-Driven Software Development: Technology, Engineering, Management (2006) Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools (2004) Praktické využití konceptů generativního programování pro efektivní vývoj podnikových aplikací (Bakalářská práce, 2010)

spousta témat pro bakalářské a diplomové práce! Shrnutí Generativní infrastruktura se v praxi osvědčila došlo ke zkrácení vývojových cyklů Generovaný kód tvoří zhruba 80% kódu minimalizace úsilí Identifikovány nové podněty k dalšímu zkoumání snaha o implementaci plně dynamického IS Potenciál dalšího rozvoje generátor artefaktů, vhodná metodologie, šablony… = spousta témat pro bakalářské a diplomové práce!

Závěr Stručně o modelem řízeném vývoji Generativní infrastruktura na bázi XML Ukázka použití na skutečném projektu Dotazy?