Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download ›...

Preview:

Citation preview

1

Uma introdução sobre MDD – Model Driven Design e projeto “Oslo”

Waldemir CambiucciArquiteto de SoluçõesMicrosoft Brasil

twitter.com/wcambblogs.msdn.com/wcamb

2

Agenda

Modelos e Linguagens

Projeto “Oslo”

Linguagem “M”

Conclusões

Recursos

Publicação: Outubro/2009

3

Importância de linguagens e gramáticas

Diversas aplicações:análise léxica e análise sintática de linguagens de programação;

modelagem de circuitos lógicos ou redes lógicas;

modelagem de sistemas biológicos;

modelagem de processos de negócio;

tratamento/interação com dispositivos diversos, etc.

4

Gramáticas de Chomsky

A Hierarquia de Chomsky classifica as linguagens de gramáticas de acordo com sua complexidade e restrição.

Chomsky, Noam (1956). Three models for the description of language. IRE Transactions on Information Theory (2): 113-124.

5

Gramáticas de Chomsky

Gramáticas com Estruturas de Frase

Gramáticas Sensíveis ao Contexto

Gramáticas Livres de Contexto

GramáticasRegulares

Linguagens Regulares ou Tipo 3

Livres de Contexto ou Tipo 2 (autômatos de pilhas)

Sensíveis ao Contexto ou Tipo 1

Enumeráveis Recursivamente ou Tipo 0

Ref.: http://pt.wikipedia.org/wiki/Hierarquia_de_Chomsky

Au

men

tan

do

a r

estr

ição

da

lingu

agem

6

Modelos

São representações físicas, matemáticas ou lógicas de sistema de entidades, fenômenos ou processos.

Fornecem uma visão abstrata e simplificada de uma realidade mais complexa.

Os modelos também empregam regras e restrições em suas abstrações.

7

Exemplo: Metrô

Tão importante quanto a simplificação é sua capacidade

de abstração e o que um modelo esconde!!!

8

Exemplo: Processos

call

calendarmonth

CallRecord

call length

base rate: £/s

call length

friend discount rate: £/sstore

friends calls

-

bill

billing period

store

+-

9

Linguagens de Modelagem

Linguagem de Modelagem é toda linguagem artificial que pode ser usada para expressar informações, conhecimento ou sistemas numa estrutura que é definida por um conjunto consistente de regras.

As regras são usadas para a interpretação do significado dos componentes na estrutura.

10

Linguagens de Modelagem

C(x) h2 2C(x)

t 2m x2ih = –

Textuais Pictóricas

Declarativas

Procedurais

class Magnox : NuclearPowerStation{

public void dropRods ()

jo biscuits 24 green

pat cakes 32 pink

Employee

name

address

promote

Job

description

pay

assign0..*

a>b && c==d

call

CallRecord

call length

base rate: £/s

store

<CallRecord>

<caller><number>07713248</number>

11

Linguagens de Modelagem

Linguagem Específica de Domínio (DSL)é uma linguagem de programação ou de especificação dedicada a um domínio de problemas em particular.

12

Barramento de Serviços

Repositório de Modelos

Serviços na Nuvem

Ferramentas de Modelagem

Servidor de Processos

Linguagem de Modelagem

Analista Neg Arquiteto Desenv IT Pro

Visão Oslo

13

OsloUMA PLATAFORMA PARA MODEL-DRIVEN APPLICATIONS

“M”Linguagem de Modelagem

“Quadrant”Ferramenta de Modelagem

RepositórioArmazenamento de Modelos

14

Conceitos chaves

MODELOS

DSLs TEXTUAISDSLs ViISUAIS

RUNTIMES

15

“QUADRANT”

Composição

Viewers Genéricos

Fluxo de Dados

EDITORFRAMEWORK

[Sua DSL Visual [Sua DSL Textual

MSchema

MGrammar

MGraph

LANGUAGEFRAMEWORK

Q

Arquitetura Oslo

[Your Models]

Base Models

“M” Runtime

REPOSITORYSQL SERVER

[Your Models]

Base Models

“M” Runtime

REPOSITORYSQL SERVER

RUNTIMES

[Seu Runtime]

“Dublin”

ASP.NET

WF

WCF

SQL/EDM

Windows

Runtimes de 3s

ADO .NET

SQL, XML, Formatos Customizados, …[Seus Modelos]

Modelos .Net

Repositório de Modelos

REPOSITORYSQL SERVER

OUTRAS FERRAMENTAS

(VSTS, EXCEL, …)

XML, Formatos Customizados , …

16

Recursos

Microsoft "Oslo" - May 2009 CTP http://www.microsoft.com/downloads/details.aspx?FamilyID=827122a5-3ca0-4389-a79e-87af37cbf60d&displaylang=en

Sample Model Data for Microsoft code name "Quadrant“

http://download.microsoft.com/download/2/8/9/289A2F7D-CCAC-4B0B-BFAD-F1544DE34A44/QuadrantSamples.msi

17

Instalando SamplesQuadrant Samples…

Set PATH

Loader MX.EXE

18

Quadrant

19

Domínios alvos

20

Domínios de Desenvolvimento

TEXTUAL DSLsVISUAL DSLs RUNTIMES

“Quadrant” Web Editor

“MWeb” ASP.NET WEB

“Quadrant” Service Editor

“MService” WCF/WF (“Dublin”) SERVICES

“Quadrant” Entity Editor

“MEntity” EF ENTITIES

“Quadrant” Schema Editor

“MSchema” SQL DATABASE

21

Por que “M”?

Criação e interação com modelos de forma simples e natural

Ter uma experiência visual de design é importante

Ter uma experiência textual complementar é igualmente importante

“M” é a ferramenta para conseguir a experiência textual

22

O que é “M”?

“M” é uma linguagem para definir modelos de domínios e linguagens especificas de domínios

Define esquemas e pesquisas sobre dados estruturados

Valores, Restrições (Constraints) e Visões (Views)

Projeção natural para o SQL

Define projeções de texto Unicode para dados estruturados

Transformações baseadas em regras

23

Especificação “M”

“M” Specification CommunityGarante um forte suporte da indústria para a “M”Melhora o design da “M”Provê um caminho para a eventual padronização

Inscreva-se através do link:http://msdn.microsoft.com/en-us/oslo/msc.aspx

Open Specification PromiseGarante que qualquer um possa implementar “M”

LanguageSpecification20090506 - May 2009 CTP.pdf

24

“M” Specification Community

Evolução da especificação da linguagem “M”

25

A Família “M”

DSL

"M"

Domain-specific grammars

Abstract data model

Domain-specific data models

language GPSLanguage {

syntax Main = h:Integer ("," v:Integer)?

=> Point { X { h }, Y { v }};

}

type Point {X : Integer where X < 100;Y : Integer?;DistanceFromOrigin() { SQRT(X*X + Y*Y) }

}

Point { X { 100 }, Y { 200 } }

Point.mDomain Model

DSLY

DomainY.mgDomain Grammar

DSLXDomainX.mDomain Model

DomainY.mDomain Model

DomainX.mgDomain Grammar

GPSLanguage.mgDomain Grammar

MSchema

MGrammar

MGraph

26

Conceitos básicos da M

Linguagem: coleção de regras para reconhecimento de texto.

Dados: representação textual de um modelo para ser armazenada.

Restrições:regras para as estruturas dos dados.

Transformações:mapeamento entre dados fonte e destino.

27

Ferramentas do SDK hoje

M.exeCompilador

para Domain Model

MX.exeDomain Model

Loader

Modelo.m Modelo.mx SQLServer

c:\Program Files\Microsoft Oslo\1.0\bin

28

29

Conclusões

Oslo é uma visão de um universo de TI Dirigido a Modelos integrando TI (SOA) e Nuvem (CloudComputing).

Nesta visão, são essenciais as ferramentas de modelagem visuais e textuais assim como seu repositório.

“M” é uma linguagem para definir modelos de domínios e DSLs textuais no Oslo.

Repositório e “M” são a base para um conjunto de Linguagens, Modelos e Ferramentas visuais destinadas a vários domínios.

32

Recursos (cont.)

ArqBR.Groupshttp://arqbr.groups.live.com/

ArqCasts no Channel9/Brasilhttp://channel9.msdn.com/brasil/

ebook Arquitetura de Soluçõeshttp://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-sobre-arquitetura-de-solu-es.aspx

Centro de Arquitetura MSDNhttp://msdn.microsoft.com/pt-br/architecture/default.aspx

33

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Recommended