33
1 Uma introdução sobre MDD Model Driven Design e projeto “Oslo” Waldemir Cambiucci Arquiteto de Soluções Microsoft Brasil twitter.com/wcamb blogs.msdn.com/wcamb

Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

1

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

Waldemir CambiucciArquiteto de SoluçõesMicrosoft Brasil

twitter.com/wcambblogs.msdn.com/wcamb

Page 2: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

2

Agenda

Modelos e Linguagens

Projeto “Oslo”

Linguagem “M”

Conclusões

Recursos

Publicação: Outubro/2009

Page 3: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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.

Page 4: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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.

Page 5: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 6: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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.

Page 7: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

7

Exemplo: Metrô

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

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

Page 8: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

8

Exemplo: Processos

call

calendarmonth

CallRecord

call length

base rate: £/s

call length

friend discount rate: £/sstore

friends calls

-

bill

billing period

store

+-

Page 9: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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.

Page 10: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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>

Page 11: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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.

Page 12: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 13: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

13

OsloUMA PLATAFORMA PARA MODEL-DRIVEN APPLICATIONS

“M”Linguagem de Modelagem

“Quadrant”Ferramenta de Modelagem

RepositórioArmazenamento de Modelos

Page 14: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

14

Conceitos chaves

MODELOS

DSLs TEXTUAISDSLs ViISUAIS

RUNTIMES

Page 15: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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 , …

Page 16: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 17: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

17

Instalando SamplesQuadrant Samples…

Set PATH

Loader MX.EXE

Page 18: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

18

Quadrant

Page 19: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

19

Domínios alvos

Page 20: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 21: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 22: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 23: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 24: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

24

“M” Specification Community

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

Page 25: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 26: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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.

Page 27: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 28: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

28

Page 29: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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.

Page 32: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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

Page 33: Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download › 8 › 2 › 8 › 828313a8-585e...Uma introdução sobre MDD –Model Driven Design

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.