A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvimento Automático de Sistemas Coordenador: Prof. Alberto Silva João Saraiva, Nº 49673 Apresentação do TFC.

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento Automático de Sistemas Coordenador: Prof. Alberto Silva João Saraiva, Nº 49673 Apresentação do TFC."— Transcrição da apresentação:

1 Desenvolvimento Automático de Sistemas Coordenador: Prof. Alberto Silva João Saraiva, Nº 49673 jmss@rnl.ist.utl.pt Apresentação do TFC

2 IST, 28/07/2005Desenvolvimento Automático de Sistemas 2 Sumário Apresentação do ProjectIT, do ProjectIT-MDD e do ProjectIT-Studio O problema da integração de ferramentas do ProjectIT- Studio 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 ProjectIT- Studio

3 IST, 28/07/2005Desenvolvimento Automático de Sistemas 3 ProjectIT

4 IST, 28/07/2005Desenvolvimento Automático de Sistemas 4 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

5 IST, 28/07/2005Desenvolvimento Automático de Sistemas 5 Âmbito do ProjectIT (1/2)

6 IST, 28/07/2005Desenvolvimento Automático de Sistemas 6 Âmbito do ProjectIT (2/2)

7 IST, 28/07/2005Desenvolvimento Automático de Sistemas 7 ProjectIT-Studio

8 IST, 28/07/2005Desenvolvimento Automático de Sistemas 8 ProjectIT-Studio Um dos objectivos do ProjectIT Orientada à produtividade Tem muitos sistemas (e ferramentas correspondentes): ProjectIT-MDD, ProjectIT- RSL, etc. De modo a elevar o nível de produtividade, estas ferramentas devem poder trabalhar juntas

9 IST, 28/07/2005Desenvolvimento Automático de Sistemas 9 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...)

10 IST, 28/07/2005Desenvolvimento Automático de Sistemas 10 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

11 IST, 28/07/2005Desenvolvimento Automático de Sistemas 11 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

12 IST, 28/07/2005Desenvolvimento Automático de Sistemas 12 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.)

13 IST, 28/07/2005Desenvolvimento Automático de Sistemas 13 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.

14 IST, 28/07/2005Desenvolvimento Automático de Sistemas 14 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-View- Controller) 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

15 IST, 28/07/2005Desenvolvimento Automático de Sistemas 15 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)

16 IST, 28/07/2005Desenvolvimento Automático de Sistemas 16 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

17 IST, 28/07/2005Desenvolvimento Automático de Sistemas 17 Os Módulos da plataforma Eclipse

18 IST, 28/07/2005Desenvolvimento Automático de Sistemas 18 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

19 IST, 28/07/2005Desenvolvimento Automático de Sistemas 19 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

20 IST, 28/07/2005Desenvolvimento Automático de Sistemas 20 Adaptação para o ProjectIT-Studio O Eclipse.NET foi adaptado para obtermos o ProjectIT- Studio: –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)

21 IST, 28/07/2005Desenvolvimento Automático de Sistemas 21 Visão do futuro ProjectIT-Studio (Os pontos de extensão não são representados, para simplicidade da figura)

22 IST, 28/07/2005Desenvolvimento Automático de Sistemas 22 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

23 IST, 28/07/2005Desenvolvimento Automático de Sistemas 23 ProjectIT-MDD

24 IST, 28/07/2005Desenvolvimento Automático de Sistemas 24 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

25 IST, 28/07/2005Desenvolvimento Automático de Sistemas 25 ProjectIT-MDD Conceitos: Arquitecturas (Architecture) –Camadas de arquitectura (ArchitectureLayer) Processos de Geração (GenerativeProcess) –Passos de geração (GenerativeStep) Templates Modelos (SystemModel)

26 IST, 28/07/2005Desenvolvimento Automático de Sistemas 26 Conceitos do ProjectIT-MDD

27 IST, 28/07/2005Desenvolvimento Automático de Sistemas 27 ProjectIT-MDD – Abordagem (1/2)

28 IST, 28/07/2005Desenvolvimento Automático de Sistemas 28 ProjectIT-MDD – Abordagem (2/2)

29 IST, 28/07/2005Desenvolvimento Automático de Sistemas 29 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!

30 IST, 28/07/2005Desenvolvimento Automático de Sistemas 30 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)

31 IST, 28/07/2005Desenvolvimento Automático de Sistemas 31 Mapa de conceitos

32 IST, 28/07/2005Desenvolvimento Automático de Sistemas 32 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


Carregar ppt "Desenvolvimento Automático de Sistemas Coordenador: Prof. Alberto Silva João Saraiva, Nº 49673 Apresentação do TFC."

Apresentações semelhantes


Anúncios Google