Eclipse.NET + ProjectIT-Studio

Propaganda
Desenvolvimento Automático
de Sistemas
Apresentação do TFC
Coordenador:
Prof. Alberto Silva
João Saraiva, Nº 49673
[email protected]
Sumário
• Apresentação do ProjectIT, do ProjectIT-MDD e do
ProjectIT-Studio
• O problema da integração de ferramentas do ProjectITStudio
• Proposta de solução: Eclipse.NET
• Adaptação do Eclipse.NET para o ProjectIT-Studio
• Conversão do ProjectIT-MDD para a nova plataforma
• Visão para o futuro do Eclipse.NET e do ProjectITStudio
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
2
ProjectIT
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
3
ProjectIT
• É um programa de investigação do Grupo de
Sistemas de Informação (GSI)
• O objectivo é a análise, integração e suporte de
boas práticas na gestão e implementação de
projectos de TI
• A motivação é: “Como melhorar a qualidade e
produtividade dos projectos de TI?”
• Implementado sobre a plataforma .NET
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
4
Âmbito do ProjectIT (1/2)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
5
Âmbito do ProjectIT (2/2)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
6
ProjectIT-Studio
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
7
ProjectIT-Studio
• Um dos objectivos do ProjectIT
• Orientada à produtividade
• Tem muitos sistemas (e ferramentas
correspondentes): ProjectIT-MDD, ProjectITRSL, etc.
• De modo a elevar o nível de produtividade,
estas ferramentas devem poder trabalhar juntas
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
8
O problema da integração
• Como já foi referido, o ProjectIT-Studio tem
muitas ferramentas
• Elas comunicam umas com as outras
– Por ficheiros (XMI, etc.)
Mas...
• Não colaboram!
– A equipa do ProjectIT não tem uma base comum em
que basear o seu trabalho (excepto, claro, a
plataforma .NET...)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
9
Solução proposta: Eclipse.NET
• Baseada na plataforma Eclipse (em Java)
• Conversão para .NET, com:
– Java Language Conversion Assistant, para converter
código fonte
– IKVM.NET, para converter bytecode (Java) para
MSIL (.NET)
• Porque, em .NET, ainda não existe nenhuma
plataforma para integração de ferramentas
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
10
Eclipse
• O Eclipse não é apenas um IDE: é uma
ferramenta para criar IDEs
– “Tool for creating tools”
• A ideia é: “A aplicação já existe. O que fazemos
é adicionar-lhe comportamento.”
• No caso do ProjectIT-Studio, o comportamento
a adicionar é o das suas ferramentas
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
11
Conceitos da plataforma Eclipse
• Plataforma: base da plataforma. Carrega módulos e
gere todos os aspectos da plataforma;
• Módulo: unidade mais pequena de comportamento que
se pode adicionar à plataforma. A plataforma tem a sua
funcionalidade (IDE Java, C, C++, etc.) devido ao
conjunto de módulos fornecidos;
• Ponto de Extensão e Extensão: serve como interface
entre módulos (i.e., é o mecanismo que permite aos
módulos comunicarem entre si).
• Perfil: Serve apenas para customizar a aparência da
plataforma (com logotipos, imagens, texto para a janela
de About, etc.)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
12
Plataforma
• A Plataforma é responsável por:
– Construir o Registo de Módulos (com toda a
informação sobre todos os módulos disponíveis e
sobre todas as extensões e pontos de extensão)
– Activar módulos, quando estes forem necessários
– Fornece todos os mecanismos para comunicação
entre módulos, armazenamento e carregamento de
preferências de módulos, etc.
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
13
Módulos
• Um módulo é definido por:
– Um ficheiro de manifesto (Plugin.xml)
– 0 ou mais bibliotecas (em MSIL)
• Estas bibliotecas podem fazer tudo, desde aceder a bases
de dados (como o MS SQL Server) a implementar um
modelo de domínio (como uma aplicação Model-ViewController)
• Os módulos podem-se relacionar entre si:
– Um módulo pode importar outros módulos
– Um módulo pode fornecer Extensões para Pontos de
Extensão de outros módulos
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
14
Importações entre Módulos
Este exemplo
ilustra a relação
de importação
entre módulos
(não são representados
Pontos de Extensão, para
simplicidade da figura)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
15
Pontos de Extensão (e Extensões)
Como funcionam os Pontos de
Extensão:
• O Módulo 1 (M1) declara o
Ponto de Extensão (PE) 1
(PE1), PE2 e PE3
• O Módulo 2 (M2) “contribui”
para PE1 e PE2
• M2 declara PE4 e PE5
• Outros Módulos podem
declarar outros PEs, e podem
também contribuir para outros
PEs
• Os Módulos podem também
contribuir para Pontos de
Extensão que tenham sido
declarados por si próprios
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
16
Os Módulos da plataforma Eclipse
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
17
Porque não implementar de raiz?
• O Eclipse é fortemente baseado em padrões de desenho:
– Proxy e Bridge, para aceder ao sistema de ficheiros
– Composite, para representar o sistema de ficheiros e para representar
a hierarquia de widgets do SWT
– Strategy, para posicionar automaticamente os widgets do SWT
– ...
• O Eclipse já existe há algum tempo
– É o resultado do know-how já adquirido pela sua equipa de
desenvolvimento
– Essa equipa já encontrou (e resolvou) muitos problemas
• Não re-inventamos a roda; apenas adaptamo-la a um novo mundo
– Toma-se partido das correcções que já foram feitas à plataforma
– Há muita documentação sobre a versão Java da plataforma na Internet
– A vantagem da utilização de padrões de desenho: os programadores
(novas adições à equipa de desenvolvimento) podem aprender
rapidamente os conceitos da plataforma
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
18
O que foi feito na conversão...
• Adaptação do mecanismo de ClassLoaders (do
Java) para a plataforma .NET
• Correcções ao código que o JLCA não
conseguiu converter correctamente e utilização
das bibliotecas .NET quando possível
• Utilização de Propriedades vs. Getters/Setters
• Utilização da ferramenta Log4NET
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
19
Adaptação para o ProjectIT-Studio
• O Eclipse.NET foi adaptado para obtermos o ProjectITStudio:
– Criou-se um Perfil “ProjectIT.Studio” para alterar a aparência da
plataforma
– Cada uma das suas ferramentas tornar-se-à 1 (ou mais)
módulos
– As ferramentas trabalharão umas com as outras, recorrendo
aos pontos de extensão e à importação de módulos
– Haverá apenas uma aplicação para o utilizador manusear, em
vez de termos n aplicações (das ferramentas)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
20
Visão do futuro ProjectIT-Studio
(Os pontos de extensão não são representados, para simplicidade da figura)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
21
Para além do ProjectIT...
• A plataforma Eclipse.NET pode também ser
utilizada fora do ProjectIT
– O Eclipse é muito utilizado no contexto do Java
– Muitas companhias lançam os seus produtos como
módulos para o Eclipse
• Planeia-se disponibilizar o código para a
comunidade .NET
– Para fazer a plataforma evoluir
• Com novas ideias
• Com novos módulos e actualização dos já existentes
– Para que o esforço de manutenção da plataforma
não recaia sobre a equipa do ProjectIT
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
22
ProjectIT-MDD
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
23
ProjectIT-MDD
• Baseado em dois TFCs anteriores:
– 2003/2004
“The XIS CASE Tool” (Raul Queiroga)
– 2001/2003
“Projecto XIS – Abordagem e Ferramenta de
Desenvolvimento (Case Tool e UML)” (Gonçalo
Lemos e Tiago Matias)
• Ferramenta XIS-Tool
• Desenvolvimento baseado em modelos (MDD),
com o Perfil ProjectIT/UML
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
24
ProjectIT-MDD
Conceitos:
• Arquitecturas (Architecture)
– Camadas de arquitectura (ArchitectureLayer)
• Processos de Geração (GenerativeProcess)
– Passos de geração (GenerativeStep)
• Templates
• Modelos (SystemModel)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
25
Conceitos do ProjectIT-MDD
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
26
ProjectIT-MDD – Abordagem (1/2)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
27
ProjectIT-MDD – Abordagem (2/2)
Final Inf. System
(Software Artifacts)
produces
IS modeling
Software architecture
Template definition
produces
produces
inputs
Models
(XIS/UML and XIS/XML)
inputs
Generative
Programming Techniques
(T3 transformation)
Architecture templates
(e.g., J2EE, .NET)
XIS principles
based on models
specification
XIS and MDA
terms
PIM
IST, 28/07/2005
based on generative
programming techniques
component-based
architecture-centric
PIM2PSM
mappings
PSM
Desenvolvimento Automático de
Sistemas
28
Desenvolvimento do XIS-Tool
• Desenvolvimento da ferramenta XIS-Tool para
WinForms:
– Criação de um modelo UML (no perfil XIS/UML) da
ferramenta
– Criação dos templates para a arquitectura
WinForms.NET
– Com o modelo e os templates, geração automática
da ferramenta
• A ferramenta foi gerada por si própria!
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
29
XIS-Tool para Eclipse.NET
O XIS-Tool foi adaptado para módulo Eclipse.NET
• Foram criados os templates para a arquitectura
“Módulo Eclipse.NET”
– Reaproveitaram-se quase todos os templates da
arquitectura WinForms, excepto a parte da interface
com o utilizador
– Terão ainda que ser melhor desenvolvidos para tirar
total partido da plataforma Eclipse.NET
• A partir do modelo já existente e dos novos
templates, gerou-se o módulo XIS-Tool (agora
ProjectIT-MDD)
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
30
Mapa de conceitos
cd MapaConceitos
migração de
Eclipse
Eclipse.NET
plataforma
para integração de
do
Ferramentas
Proj ectIT-Studio
plataforma
contém
Abordagem XIS
contém
definiu
Perfil XIS/UML
com
Jav a
.NET
como
baseado em
baseado em
resultou em
contém
por exemplo
Conceitos
definiu
Proj ectIT-MDD
como
Perfil
por exemplo
como
gerado por
XIS-Tool
agrega
como
Perfil
Proj ectIT/UML
gerado por
em
Plataforma
contém
como
interage com
Ponto de
Extensão
como
Modelo
como
declara
Módulo
como
para
declara
Conceitos
definido por
como
como
Extensão
como
importa
ASP.NET
como
como
como
definido por
Arquitectura
como
como
como
constituído por
mapeada em
UML2
GEF
WinForms.NET
J2EE
Templates
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
Processo de
Geração
definidos por
Passos de
Geração
31
No futuro
• Espera-se que a plataforma Eclipse.NET
evolua
– Com novas ideias e novos módulos
– Adaptar-se para a plataforma .NET 2.0
– Possivelmente mudar o suporte gráfico para
WinForms, em vez do SWT
• O ProjectIT-Studio vai acompanhar a
evolução da plataforma
IST, 28/07/2005
Desenvolvimento Automático de
Sistemas
32
Download