• Nenhum resultado encontrado

5. UM METAMODELO PARA O DOMÍNIO DE MPS

6.1 Tecnologias adotadas

Para o desenvolvimento da linguagem de modelagem especificada pelo SPIM e do protótipo de ferramenta de edição de modelos que faz uso da mesma foram utilizados várias tecnologias integradas. A base para este trabalho foi a Plataforma Eclipse de desenvolvimento. Este plataforma é composta por uma série de frameworks e ferramentas que permitem o desenvolvimento de ambientes integrados de desenvolvimento de software sob a forma de plug-ins interligados. Dentre os diversos frameworks disponíveis nesta plataforma que foram aqui utilizados, apenas três serão descritos nas próximas seções: a Plataforma Eclipse, o Eclipse Modeling Framework (EMF) e o OCLinEcore Editor. Os demais não serão descritos por serem inerentes ao uso da plataforma em si, tais como os plug-ins que compõem o ambiente de desenvolvimento em Java. Maiores detalhes sobre os demais componentes podem ser obtidos diretamente no site da Fundação Eclipse1.

6.1.1 Plataforma Eclipse

A Plataforma Eclipse é uma plataforma extensível para a construção de ambientes de desenvolvimento integrados. A Plataforma Eclipse provê os frameworks principais sobre os quais todos os plug-ins são desenvolvidos. Provê também o ambiente de execução no qual os plug-ins são carregados, integrados e executados. O propósito desta plataforma é permitir que desenvolvedores de ferramentas consigam construir e distribuir suas ferramentas com facilidade2.

A Plataforma Eclipse é a base sobre a qual opera o Projeto Eclipse. Este projeto teve seu desenvolvimento iniciado pela IBM em 2001 e foi financiado por um consórcio de empresas desenvolvedoras de software. Posteriormente, em 2004, foi criada a Fundação Eclipse para administrar o projeto. A Fundação Eclipse é uma entidade sem fins lucrativos que tem o propósito de dar suporte a uma comunidade de usuários e

1http://www.eclipse.org/

desenvolvedores de ferramentas de forma transparente e independente de empresas de software específicas.

A Fundação Eclipse também é responsável pelo gerenciamento de propriedade intelectual do projeto, uma vez que incentiva o desenvolvimento de ferramentas, inclusive comerciais, com o uso de software livre. Isto é possível porque todos os softwares oferecidos são licenciados sob a Eclipse Public License (EPL)3, que é

o acordo de licenciamento que permite que todos os softwares do projeto sejam utilizados, estendidos, copiados e distribuídos livremente e sem custos. É este acordo de licenciamento que permitiu, do ponto de vista legal, que esta plataforma fosse utilizada no desenvolvimento da linguagem de modelagem especificada pelo SPIM e do protótipo de ferramenta de edição de modelos que faz uso da mesma.

Os softwares oferecidos pelo projeto Eclipse são organizados em projetos. Cada projeto oferece algum plug-in ou algum framework construído com múltiplos plug- ins. Um plug-in, no contexto da Plataforma Eclipse, é um componente de software que provê algum tipo de serviço para a plataforma. Um princípio básico envolvido neste conceito de componente é que os plug-ins possam permitir sua configuração em tempo de distribuição e não durante sua programação. A Plataforma Eclipse, por sua vez, constitui- se de uma base responsável pela integração de múltiplos plug-ins em um único ambiente integrado de desenvolvimento de software4. O protótipo de ferramenta de edição de

modelos desenvolvido para fins de avaliação desta tese de doutorado, por exemplo, é um plug-in desenvolvido para ser executado na Plataforma Eclipse.

6.1.2 EMF

O Eclipse Modeling Framework (EMF) é um framework para a construção de ferramentas e aplicações baseadas em um modelo estruturado de dados. A partir de uma especificação de modelo descrito no formato XMI o EMF provê ferramentas e suporte em tempo de execução para a produção de um conjunto de classes em Java para o modelo. Estas classes representam as interfaces dos elementos do modelo, a implementação do modelo e também um conjunto de adaptadores que facilitam o desenvolvimento de ferramentas que permitam a visualização e edição do modelo. O framework provê também uma série de funcionalidades úteis no desenvolvimento de ferramentas, tais como

3http://www.eclipse.org/org/documents/epl-v10.php

notificações de alterações nos modelos, suporte a persistência de modelos através da serialização em XMI e um framework para validação de modelos5.

O EMF foi inicialmente desenvolvido como uma implementação da especificação do metamodelo MOF da OMG, evoluindo posteriormente para um framework completo. A implementação do pacote Core do MOF é chamado, no EMF, de Ecore. A especificação do SPIM foi realizada utilizando esta implementação e resultou em um modelo do tipo Ecore. Além disto, também foi implementado no framework um modelo chamado de Essential MOF (EMOF) que é responsável pela leitura e gravação de modelos no formato especificado no MOF. O modelo Ecore criado com o EMF neste trabalho pode ser eventualmente convertido para EMOF caso outros pesquisadores desejem integrá-lo a outras tecnologias especificadas pela OMG através do uso do metamodelo MOF.

O framework de validação de modelos que compõem o EMF é uma das vantagens obtidas com sua adoção. Ele permite que o desenvolvedor implemente as restrições pertinentes ao seu modelo e submeta a verificação das mesmas através do sistema de validação presente na Plataforma Eclipse. As restrições podem ser implementadas tanto em Java quanto em OCL. No desenvolvimento do SPIM e da ferramenta de edição de modelos em SPIM optou-se pela implementação da validação em OCL, tendo em vista que a definição das restrições do metamodelo foi feita nesta linguagem. Para isto foi utilizado um plug-in específico para edição de regras em OCL chamado OCLinEcore.

6.1.3 OCLinEcore

A linguagem utilizada em modelos Ecore do EMF permite a implementação de restrições em OCL embutidas diretamente nos modelos Ecore. Isto pode ser feito de duas formas. Uma é através de anotações em propriedades do modelo. A outra é através do uso do plug-in OCLinEcore. Este plug-in provê funcionalidades de edição de código diretamente sobre o modelo Ecore. Para isto, o plug-in transforma dinamicamente o modelo Ecore em código baseado em OCL.

Com o uso deste plug-in, obteve-se algumas vantagens extras, além do fato de possibilitar a implementação das restrições diretamente em OCL. Uma destas

vantagens é a checagem automática de sintaxe durante a edição das restrições. A outra é a possibilidade de integração de um console OCL ao protótipo de editor de modelos em SPIM para execução de expressões OCL diretamente sobre o modelo, de forma ad-hoc, que permite que as expressões sejam testadas facilmente. A implementação das restrições em OCL pode levar a redação de sentenças de código complexas, favorecendo assim a incidência de erros. Com o uso destas facilidades oferecidas por este plug-in foi possível testar todas as expressões OCL do SPIM e garantir a correção da implementação das mesmas. Além disto, o uso do plug-in também permite que inferências sejam realizadas sobre modelos implementados com o SPIM dentro do protótipo de editor de modelos. Assim, um usuário do SPIM poderia realizar sobre seu modelo inferências não previstas nesta tese e implementar consultas dinâmicas sobre o modelo.