+ All Categories
Home > Documents > Praktický modelem řízený vývoj softwaru

Praktický modelem řízený vývoj softwaru

Date post: 19-Mar-2016
Category:
Upload: henrik
View: 33 times
Download: 0 times
Share this document with a friend
Description:
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 - PowerPoint PPT Presentation
43
Praktický modelem řízený vývoj softwaru Bc. Michal Jakubec MCSE, MCSD, MCDBA, MCTS http://www.jakubec.cz/ 1
Transcript
Page 1: Praktický modelem řízený vývoj  softwaru

Praktickýmodelem řízenývývoj softwaruBc. Michal JakubecMCSE, MCSD, MCDBA, MCTShttp://www.jakubec.cz/

1

Page 2: Praktický modelem řízený vývoj  softwaru

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

2

Page 3: Praktický modelem řízený vývoj  softwaru

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

3

Page 4: Praktický modelem řízený vývoj  softwaru

Problémy softwarových projektů

Požadavky zákazníka

Aplikační řešení

?

Obrázky: http://www.projectcartoon.com 4

Page 5: Praktický modelem řízený vývoj  softwaru

TransformaceTransformace

Transformace Transformace

Transformace

Možné řešení problémů?Modelem řízený přístup

Požadavky zákazníka

Aplikační řešení

5

Page 6: Praktický modelem řízený vývoj  softwaru

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

6

Page 7: Praktický modelem řízený vývoj  softwaru

Porovnání MDA a MDSDMDA 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

MDSD 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

7

Page 8: Praktický modelem řízený vývoj  softwaru

Hierarchie prostředků softwarového vývoje

Doménově-specifické jazyky (DSL)

Návrhové vzory

Objektově-orientovaný přístup

Generování kódu Interpretace jazyka

8

Page 9: Praktický modelem řízený vývoj  softwaru

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

9

Page 10: Praktický modelem řízený vývoj  softwaru

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ů

10

Page 11: Praktický modelem řízený vývoj  softwaru

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í

11

Page 12: Praktický modelem řízený vývoj  softwaru

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

12

Page 13: Praktický modelem řízený vývoj  softwaru

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

13

Page 14: Praktický modelem řízený vývoj  softwaru

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

14

Page 15: Praktický modelem řízený vývoj  softwaru

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

15

Page 16: Praktický modelem řízený vývoj  softwaru

Prvky generativní infrastruktury Založena na strandardech

XML jako DSL jazyk doménového modeluXSD schéma pro validaci modeluXSLT pro prevod modelu na artefakty

Generátor artefaktů pro generování a distribuci výsledných souboruvyužívá .NET Framework verze 3.5

16

Page 17: Praktický modelem řízený vývoj  softwaru

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

17

Page 18: Praktický modelem řízený vývoj  softwaru

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

18

Page 19: Praktický modelem řízený vývoj  softwaru

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

19

Page 20: Praktický modelem řízený vývoj  softwaru

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>

20

Page 21: Praktický modelem řízený vývoj  softwaru

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> <item> <value name="Id">2</value> <value name="Name">Žena</value> <value name="Mark">Z</value> <value name="Rank">200</value> <value name="Disabled">False</value> </item> </data> </module></domainModel>

21

Page 22: Praktický modelem řízený vývoj  softwaru

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

22

Page 23: Praktický modelem řízený vývoj  softwaru

DEMO (1/4)

Definice entit a záznamůTransformační šablony

23

Page 24: Praktický modelem řízený vývoj  softwaru

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

24

Page 25: Praktický modelem řízený vývoj  softwaru

Generátor artefaktů (2/2)

Sloučení modelových

definic

Transformace modelových

definic

Distribuce vygenerovaných

artefaktů

sdfsdfsdfsdfSoubory definicmodelu

Souborkonfig. profilu

sdfsdfsdfsdfSoubory artefaktů

Souborzměn.

manifestu

sdfsdfsdfsdfSoubory

transform.šablon

25

Page 26: Praktický modelem řízený vývoj  softwaru

DEMO (2/4)

Konfigurační profil generátoruZměnový manifest

26

Page 27: Praktický modelem řízený vývoj  softwaru

Proces transformace modelu

27

Sloučenýdefiniční

dokument

Transformace 1

Transformace 2

Transformace 4

Transformace 3

Transformace 5

Sloučení sady generovaných

artefaktůSloučenýdistribučnídokument

Page 28: Praktický modelem řízený vývoj  softwaru

Slučování dokumentů XML

28

<?xml version="1.0"/><book> <info> <title>A</title> </info></book>

<?xml version="1.0"?><book> <preface> <title>B</title> <para>C</para> </preface></book>

<?xml version="1.0"?><book> <info> <title>A</title> </info> <preface> <title>B</title> <para>C</para> </preface></book>

Dokument 1 Dokument 2 Sloučený dokument

Page 29: Praktický modelem řízený vývoj  softwaru

DEMO (3/4)

Slučování dokumentůExpanze modelu

29

Page 30: Praktický modelem řízený vývoj  softwaru

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

30

Page 31: Praktický modelem řízený vývoj  softwaru

31

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ů

Page 32: Praktický modelem řízený vývoj  softwaru

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

32

Page 33: Praktický modelem řízený vývoj  softwaru

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

33

Page 34: Praktický modelem řízený vývoj  softwaru

Architektura webové aplikace

Databázový server

Aplikační server

SlužbaMS SQL Server

Relační databáze

Klientský počítač

Webový prohlížeč

RozhraníNHibernate

Vrstva objektového přístupuk datovému úložišti

RozhraníADO.NET

Doménové entity

Obchodní logika

Prezentační logika

Dynamické webové stránky

Webové služby

Služba MS IIS a ASP.NET

34

Page 35: Praktický modelem řízený vývoj  softwaru

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

Analýza

Generátor artefaktů

Doménovýmodel aplikace

Obecně použitelný

kód

Specifickýkód

Schematicky opakovatelný

kód

Platforma řešení

Generovaný kód

Manuální kód

Referenční implementace aplikace

ovládá

generuje

Předpisy transformací

řídí

Separace

35

Page 36: Praktický modelem řízený vývoj  softwaru

Ukázka UI (1/2)

příklad pohledu typu seznam

36

Page 37: Praktický modelem řízený vývoj  softwaru

Ukázka UI (2/2)

příklad pohledu typu detail

37

Page 38: Praktický modelem řízený vývoj  softwaru

DEMO (4/4)

Přidání a odebrání atributuPřidání nové entityVytvoření výchozích záznamůÚprava existující šablony

38

Page 39: Praktický modelem řízený vývoj  softwaru

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

39

Page 40: Praktický modelem řízený vývoj  softwaru

Alternativní využití generátoru

40

Transformace dokumentu DocBook

Sloučení kapitol do společného

dokumentusdfsdfsdfsdf

Souborys textykapitol

sdfsdfsdfsdfSouboryobrázků

DokumentDocBook

Zpracování pomocí nástroje

pdfLaTeXDokument

HTMLDokument

TeX

Výslednýdokument

PDF

Page 41: Praktický modelem řízený vývoj  softwaru

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)

41

Page 42: Praktický modelem řízený vývoj  softwaru

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!

42

Page 43: Praktický modelem řízený vývoj  softwaru

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?

43


Recommended