Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download ›...
Transcript of Uma introdução sobre MDD Model Driven Design e projeto …download.microsoft.com › download ›...
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.
30
Recursos
Site do Oslo:http://msdn.microsoft.com/en-us/oslo
Oslo Connect site:https://connect.microsoft.com/oslo
Oslo SDK documentation at MSDN Online:http://msdn.microsoft.com/en-us/library/cc709420.aspx
Quadrant:http://msdn.microsoft.com/en-us/library/dd857491(VS.85).aspx
M tools: http://msdn.microsoft.com/en-us/library/dd129517(VS.85).aspx
Oslo Language Specification:http://msdn.microsoft.com/en-us/library/dd285282.aspx
31
Recursos
Microsoft "Oslo" - May 2009 CTP http://www.microsoft.com/downloads/details.aspx?FamilyID=827122a5-3ca0-4389-a79e-87af37cbf60d&displaylang=en
Wcamb’s Blog / Tag [OSLO] http://blogs.msdn.com/wcamb/archive/tags/OSLO/default.aspx
LINGUAGENS FORMAIS Teoria Modelagem e Implementação
by Marcus Vinícius Ramos, João J. Neto e Ítalo Santiago Vega
Editora BOOKMAN / ISBN 857780453-4
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.