1. Uma introdução sobre
MDD – Model Driven Design e
projeto “Oslo”
Waldemir Cambiucci
Arquiteto de Soluções twitter.com/wcamb
Microsoft Brasil blogs.msdn.com/wcamb
1
2. Agenda
Modelos e Linguagens
Projeto “Oslo”
Linguagem “M”
Conclusões
Recursos
Publicação: Outubro/2009
2
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.
3
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.
4
5. Gramáticas de Chomsky
Enumeráveis
Recursivamente ou
Gramáticas com
Aumentando a restrição da linguagem
Tipo 0
Estruturas de Frase
Gramáticas
Sensíveis ao
Sensíveis ao Contexto
Contexto
Gramáticas ou Tipo 1
Livres de Contexto
Livres de Contexto ou
Tipo 2
Gramáticas
(autômatos de pilhas)
Regulares
Linguagens Regulares ou
Ref.: Tipo 3
http://pt.wikipedia.org/wiki/Hierarquia_de_Chomsky
5
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.
6
7. Exemplo: Metrô
Tão importante quanto a
simplificação é sua capacidade
de abstração e o que um
modelo esconde!!!
7
8. Exemplo: Processos
Call
Record base rate: £/s
call length
call
store
friend discount rate: £/s
friends calls
- +
-
call length
calendar
month
store
bill
billing period
8
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.
9
10. Linguagens de Modelagem
C(x) h2 2C(x) Declarativas
ih = –
t 2m x2
a>b && c==d
jo biscuits 24 green
pat cakes 32 pink
<CallRecord>
<caller><number>07713248</number>
Employee Job
Textuais name
address 0..*
description
pay
Pictóricas
promote assign
Call
Record base rate: £/s
class Magnox : NuclearPowerStation
{
call length
public void dropRods () call store
10 Procedurais
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.
11
12. Visão Oslo
Analista Neg Arquiteto Desenv IT Pro
Ferramentas de Modelagem
Linguagem de Modelagem
Repositório de Modelos
Servidor de Processos
Barramento de Serviços
Serviços na Nuvem
12
13. Oslo
UMA PLATAFORMA PARA MODEL-DRIVEN APPLICATIONS
“M”
Linguagem de Modelagem
“Quadrant”
Ferramenta de Modelagem
Repositório
Armazenamento de Modelos
13
15. Arquitetura Oslo
Q “QUADRANT”
[Sua DSL Visual [Sua DSL Textual
EDITOR LANGUAGE
FRAMEWORK FRAMEWORK
Composição MSchema
RUNTIMES
Viewers Genéricos MGrammar
Fluxo de Dados MGraph [Seu Runtime]
XML, Formatos Customizados , …
“Dublin”
ASP.NET
ADO .NET WF
WCF
SQL/EDM
REPOSITORY Windows
REPOSITORY
SQL SERVER
REPOSITORY
SQL SERVER
Runtimes de 3s
[Your Models]
SQL SERVER
[Your Models]
Base Models
[Seus Modelos] SQL, XML, Formatos Customizados, …
OUTRAS Base Models
FERRAMENTAS “M”Modelos .Net
Runtime
(VSTS, EXCEL, …) “M” Runtime
Repositório de Modelos
15
16. Recursos
Microsoft "Oslo" - May 2009 CTP
http://www.microsoft.com/downloads/details.aspx?FamilyID=82712
2a5-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
16
20. Domínios de Desenvolvimento
VISUAL DSLs TEXTUAL DSLs RUNTIMES
“Quadrant”
“MWeb” ASP.NET WEB
Web Editor
“Quadrant”
“MService” WCF/WF (“Dublin”) SERVICES
Service Editor
“Quadrant”
“MEntity” EF ENTITIES
Entity Editor
“Quadrant”
“MSchema” SQL DATABASE
Schema Editor
20
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
21
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
22
23. Especificação “M”
“M” Specification Community
Garante 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 Promise
Garante que qualquer um possa implementar “M”
LanguageSpecification20090506 - May 2009 CTP.pdf
23
25. A Família “M”
DSL Point.m DSLX DomainX.m DSLY DomainY.m
Domain Model Domain Model Domain Model
GPSLanguage.mg DomainX.mg DomainY.mg
Domain Grammar Domain Grammar Domain Grammar
"M"
Domain-specific data models type Point {
X : Integer where X < 100;
Y : Integer?;
DistanceFromOrigin() { SQRT(X*X + Y*Y) }
MSchema }
Domain-specific grammars language GPSLanguage {
syntax Main = h:Integer ("," v:Integer)?
=> Point { X { h }, Y { v }};
}
MGrammar
Abstract data model Point { X { 100 }, Y { 200 } }
MGraph
25
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.
26
27. Ferramentas do SDK hoje
c:Program FilesMicrosoft Oslo1.0bin
Modelo.m Modelo.mx SQL
Server
M.exe MX.exe
Compilador Domain Model
para Domain Loader
Model
27
29. Conclusões
Oslo é uma visão de um universo de TI Dirigido a
Modelos integrando TI (SOA) e Nuvem (Cloud
Computing).
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.
29
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
30
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
31
32. Recursos (cont.)
ArqBR.Groups
http://arqbr.groups.live.com/
ArqCasts no Channel9/Brasil
http://channel9.msdn.com/brasil/
ebook Arquitetura de Soluções
http://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-
sobre-arquitetura-de-solu-es.aspx
Centro de Arquitetura MSDN
http://msdn.microsoft.com/pt-br/architecture/default.aspx
32