A descrição geral da ferramenta ArcStyler se baseia em (ARCSTYLER, 2006) e na análise da ferramenta realizada para o presente trabalho.
3.1.3.1 Descrição Geral
A ArcStyler (ARCSTYLER, 2006) é outra ferramenta comercial, mas assim como a AndroMDA, ela trabalha utilizando plugins, aqui também chamados de cartuchos. Os cartuchos são pacotes que contêm todos os elementos e mecanismos necessários para automatizar, configurar, modelar e gerenciar várias atividades de desenvolvimento. Nos cartuchos podem estar incluídas regras de transformação, gabaritos para formatação, modelos de padrões, tipos de dados, estereótipos, etc. A escolha dos cartuchos também define a plataforma na qual o sistema será construído, dado que os cartuchos possuem os mapeamentos para as plataformas.
A ArcStyler também utiliza a UML como linguagem de modelagem. Ela possui apenas um modelo, chamado de modelo de domínio, utilizado como entrada para as transformações e geração direta de código. Esse modelo é composto de diagramas de classes, de atividade e de componentes. Os diagramas de classes e componentes definem a estrutura do sistema, e o diagrama de atividade modela os processos do sistema. Para criar esse modelo, os cartuchos escolhidos disponibilizam tipos de dados e estereótipos
que os cartuchos requerem para serem utilizados no modelo. Além de tipos de dados e estereótipos, os cartuchos também podem conter regras de modelagem que devem ser seguidas ao criar o modelo.
A ArcStyler pode transformar o modelo de entrada em outro modelo ou código. A norma é gerar código a partir do modelo, dado que é o cartucho que define se será gerado um modelo ou código, e a maioria dos cartuchos existentes faz mapeamento para código. Os mapeamentos da ferramenta são feitos nos cartuchos. As regras de mapeamento mapeiam tipos, valores de instâncias e estereótipos a gabaritos no modelo ou código a ser gerado. As transformações da ferramenta são baseadas principalmente em mapeamentos de instâncias. A linguagem na qual esses mapeamentos são escritos é JPython. JPython é uma implementação da linguagem Python completamente escrita em Java e integrada na plataforma Java (JYTHON, 2007).
Para utilizar a ArcStyler, primeiro deve-se definir quais cartuchos serão utilizados, e para definir os cartuchos é necessário saber qual a plataforma alvo. Além de definir os cartuchos, é necessário configurar a ferramenta para utilizar esses cartuchos. Com os cartuchos definidos e configurados, deve-se criar o modelo do sistema utilizando os tipos e estereótipos providos nos cartuchos escolhidos. Com o modelo pronto, basta executar as transformações que o código, ou um modelo, será gerado.
A ArcStyler utilizada neste trabalho foi a ArcStyler 5.5 (ARCSTYLER, 2006).
3.1.3.2 Conceitos MDA na ArcStyler
A ArcStyler utiliza apenas um modelo que pode ser classificado tanto como PIM quanto PSM, dependendo do aspecto analisado. A maior parte da modelagem é feita com tipos independentes de plataforma, mas existem alguns casos em que tipos específicos de plataforma são usados como, por exemplo, a
modelagem de componentes EJB. A ferramenta permite isso, pois alguns cartuchos provêm tipos de dados específicos de plataforma que podem ser utilizados para que os mapeamentos possam ser realizados. Dessa maneira, a ArcStyler viola uma das principais idéias da MDA que é a separação do sistema e da plataforma que fornece suporte a algumas de suas transformações. Apesar disso, é possível criar um cartucho MDA em que existem apenas tipos independentes de plataforma, tornando o modelo da ferramenta aderente ao PIM da MDA. A MDA prega que o PSM deve ser gerado a partir do PIM, portanto, o modelo de entrada da ArcStyler pode ser classificado como PIM com alguns aspectos de PSM, pois ele é usado como o modelo de entrada para as transformações. Um resumo de como os modelos da MDA são relacionados aos modelos da ArcStyler é mostrado na Tabela 5.
Tabela 5: Cobertura de modelos MDA com modelos da ArcStyler.
MDA ArcStyler
CIM Não implementa
PIM Modelo de domínio
PSM Não implementa
Código Código
A ArcStyler define uma plataforma como sendo uma tecnologia ou arcabouço, assim como a AndroMDA. A ArcStyler pode transformar o PIM diretamente em código ou em outro modelo. Essa transformação é baseada na plataforma escolhida. Nessa ferramenta também não é gerado registro da transformação, como preconizado pela MDA.
Na ArcStyler são utilizados mapeamentos de tipos, subtipos, tipos com valores instâncias e de instâncias de modo equivalente à AndroMDA. Os tipos utilizados na modelagem são mapeados pelas regras de mapeamento para tipos ou gabaritos no modelo alvo. A ArcStyler possibilita o uso de
mapeamentos de tipos com valores de instâncias através de propriedades em cada elemento do modelo que podem ser configuradas com os valores necessários.
Além de mapeamentos por tipos, são utilizados mapeamentos de instâncias. As marcas são providas pelo mapeamento incluso em um cartucho, e por isso são utilizadas em apenas um mapeamento. Para utilizá-las, o elemento escolhido deve ser anotado com um estereótipo, que irá marcar o elemento com as marcas associadas ao estereótipo. As marcas utilizadas na ferramenta possuem parâmetros cujos valores podem indicar valores de algumas propriedades do código, como descrito pela MDA. Esses parâmetros são configurados como propriedades, de mesma maneira que os valores de instâncias.
As transformações que a ArcStyler utiliza são as transformações baseadas em marcas, as transformações de meta-modelos, transformações de modelos e aplicação de padrões. A ferramenta executa todas as transformações de uma vez, não sendo feitas transformações incrementais. O produto é apenas o código. A ArcStyler realiza apenas a transformação do modelo PIM para o código ou para outro modelo, deixando de lado conceitos como registro da transformação ou CIM.