• Nenhum resultado encontrado

Comparação entre trabalhos sobre metamodelagem

No documento Autoria de artefatos de software (páginas 70-74)

3 Trabalhos Relacionados

5. Regras de boa formação, a linguagem traz consigo regras que definem a boa construção dos ASs de modo formal ou em linguagem natural?

3.2 Comparação entre trabalhos sobre metamodelagem

Nesta Seção, a análise comparativa das abordagens é baseada nos critérios de Tipo de Ex-

tensão da UML, Níveis de formalismo da Linguagem, Modificações feitas no metamodelo UML, Tipos de Modelos existentes e Validação ou Testes. Além disso, cada abordagem será

apresentada conforme sua descrição e relação com o trabalho aqui proposto.

No que se constitui ao Tipo de Extensão da UML, analisamos como as abordagens criam seus metamodelos em relação ao mecanismo de extensão da UML, podendo ser do tipo:

• heavyweight extensibility mechanism, durante a extensão foram criados novos construc-

tors? Houve alteração ou remoção de constructors já existentes no metamodelo da UML?

• lightweight built-in extension, foi feita a criação de um UML Profile com stereótipos para expressar algum domínio específico?

Em relação a Níveis de formalismo da Linguagem, verificamos como as abordagens for- malizam seus metamodelos nos seguintes níveis de linguagem:

• (1) Semântica Estática, existe alguma descrição semântica para utilizar os contrutores do metamodelo?

• (2) Semântica Dinâmica, é definido algum modo de identificar se os construtores pos- suem algum sentido? Existe alguma descrição dos construtores?

• (3) Sintaxe Abstrata, o metamodelo possui alguma notação para faciliar seu uso? existe alguma forma visual de representação gráfica?

• (4) Sintaxe Concreta, a linguagem pode ser representada formalmente? existe alguma representação em XML ou XMI por exemplo?

• (5) Regras de boa formação, a linguagem traz consigo regras que definem a boa cons- trução da abordagem? Existem regras para auxiliar o entendimento?

No tocante a Modificações feitas no metamodelo UML, analisamos o que foi feito para que o metamodelo estendesse a UML a partir do MOF, sendo possível:

• remover construtores existentes para evitar alguma má construção que esteja ocorrendo;

• adicionar algum construtor, diante de alguma herança ou relacionamento para aumentar a especialidade da linguagem;

• alterar construtores existentes, melhorando e tornando o metamodelo mais específico. Finalmente, verificamos como as abordagens são validadas ou quais avaliações são feitas pelos autores dos trabalhos analisados. Partindo deste princípio, tomamos por base os atributos:

• (i) Instanciação, utilização da abordagem a partir de ferramentas externas ou sem apoio computacional;

• (ii) Implementação, implementação da abordagem em alguma linguagem computacional ou implementação de processo de utilização não computacional;

• (iii) Ferramental ou Protótipo, implementação da abordagem criando alguma ferra- menta ou protótipo.

3.2.1 Abordagem (Borsoi & Becerra, 2008)

Descrição: esta abordagem consiste na definição e modelagem de um Processo de Soft-

ware, utilizando UML como linguagem de modelagem. Por se tratar de uma definição, os au- tores percorrem muitos conceitos de Orientação a Objetos e Processos de Software, formando a conceitualização de Processo como um Objeto. Segundo os autores, tal contribuição permite o uso de ferramentas para automatizar a execução do Processo.

Tipo de Extensão da UML: segundo nossas análises, para a conclusão desta abordagem

não foi feita nenhuma extensão da UML.

Níveis de formalismo da Linguagem: neste caso, por não se tratar de uma especialização

da UML, não fica explícita a criação de uma linguagem própria. Entretanto, é definido um domínio com características próprias a partir dos diagramas UML.

Tipos de Modelos existentes: nesta abordagem á apresentada apenas um nível de modela-

gem. O modelo conceitual criado para modelar Processos de Software é um modelo de nível de usuário, que utiliza-se da própria UML.

Validação ou Testes: os autores deste trabalho não apresentam nenhuma implementação

nenhuma verificação, qualquer tipo de teste ou experimento. Ao invés disto, é apresentado um estudo de caso vinculado a um exemplo, não sendo um estudo de caso real.

Relação com a abordagem proposta: os autores trazem um trabalho de modelagem de

PDSs utilizando paralelamente a definição de objetos, assim como nossa abordagem, que se constitui na modelagem de Artefatos de PDSs utilizando Orientação a Objetos. Além disso, em nossa abordagem utilizamos os níveis de formalismo de linguagem abstrata e concreta e também apresentamos regras de boa formação e descrições semânticas. Outro ponto bastante relevante é sobre a representatividade do modelo, uma vez que os autores dessa abordagem utilizam apenas um modelo de usuário UML.

3.2.2 Abordagem (Lee et al., 2002)

Descrição: esta abordagem trabalha com a modelagem e metamodelagem dos conceitos de

política de acesso a tarefas (task assignment policy) de Processos de Software. Neste traba- lho foram explorados os recursos possíveis de executar tarefas diversas, com base em política de acesso conforme três aspectos: organização, com foco sobre papéis organizacionais, assim como Gerente de Projetos e Gerente de Configuração; processo, com foco em algumas fases do ciclo de vida, hierarquia de atividades e os papéis executores; e produto, no intuito de policiar artefatos de entrada e/ou saída, além de controlar os papéis responsáveis por tais artefatos.

Tipo de Extensão da UML: a UML foi especializada utilizando-se o mecanismo extensão heavyweight, caracterizando-se como uma modificação direta em seu metamodelo. Segundo os

autores, tal alteração é bastante sensível e não altera o comportamento inicial da UML. Ao invés disso, esta abordagem apenas adiciona novos construtores de linguagem, tornando este trabalho flexível e com três níveis de modelo: meta, conceitual e de instância.

Níveis de formalismo da Linguagem: quanto aos níveis de formalismo, este trabalho traz

uma metalinguagem baseada em MOF e que estende UML, trazendo consigo notação gráfica. Entretanto, outros níveis de formalismo não foram encontrados.

Tipos de Modelos existentes: são utilizados três diferentes tipos de modelos: meta, que

consiste nos conceitos utilizados para criar metalinguagem; conceitual, definido pelo meta; e instância, que é justamente a instância do modelo conceitual definido pela metalinguagem criada pelos autores.

Validação ou Testes: no tocante a validação, este trabalho traz uma implementação feita

através de softwares de geração de código. Além disso, mostra uma instância da abordagem utilizando modelos em diagramas UML e exemplos. Entretanto, nenhuma ferramenta é apre- sentada e não foram feitos estudos de caso ou experimentos para testar as funcionalidades, além disso, não há exemplos analíticos ou comparativos com casos reais e atuais.

Relação com a abordagem proposta: os autores desta abordagem utilizaram a extensão da

e artefatos em um PDS. Em comparação com nosso trabalho, esta abordagem foi feita a partir do mecanismo heavyweight de extensão da UML, enquanto nossa abordagem utiliza ambos os mecanismos de extensão. Outro ponto de comparação é em relação à falta de definição da semântica e regras de boa formação. Além disso, os autores não trazem nenhuma ferramenta.

3.2.3 Abordagem (Pérez-Martínez, 2003)

Descrição: baseados no fato de UML ser altamente aceita como linguagem de representação

de Softwares, os autores desta abordagem propõem um metamodelo que estende a UML para permitir representação de domínio do estilo arquitetural específico. Como os próprios autores se reservam a afirmar, esta abordagem é bem menos ambiciosa, por se limitar aos conceitos de uma única linguagem específica de arquitetura.

Tipo de Extensão da UML: esta abordagem utiliza-se do mecanismo de extensão da UML,

adicionando novos metaconstrutores e criando uma nova metalinguagem para definir e prover modelagem arquitetural de software. Segundo os autores, a utilização de estereótipos não seria suficiente para representar os elementos arquiteturais.

Níveis de formalismo da Linguagem: esta abordagem só não apresenta a linguagem de

representação concreta. Neste caso, tanto as regras de boa formação quanto uma linguagem abstrata devem estar presentes, além das especificações semânticas.

Tipos de Modelos existentes: apresenta apenas o metamodelo e não dispõe de exemplos. Validação ou Testes: os autores não apresentam nenhuma validação ou teste.

Relação com a abordagem proposta: neste trabalho foi desenvolvido um metamodelo

para noção de Arquitetura de Software de acordo com o estilo C3. Tal abordagem foi desenvol- vida utilizando o mecanismo heavyweight de extensão da UML. Assim como nossa abordagem, este trabalho também apresenta descrição semântica dos construtores da linguagem e uma lin- guagem abstrata, porém não descreve nenhuma linguagem concreta. Os autores não mostram nenhum modelo de instância ou mesmo o modelo conceitual criado a partir do metamodelo constituído. Por fim, não é apresentada nenhuma implementação, teste, ou ferramenta.

3.2.4 Abordagem (Rosener & Avrilionis, 2006)

Descrição: esta abordagem apresenta uma solução de modelo para os elementos que cons-

tituem a disciplina de Engenharia de Software. Os autores utilizaram UML para modelar sua especificação, desde o metamodelo até a instância real da Engenharia de Software. Estes mo- delos identificam os níveis de abstração da disciplina, desde seus pilares filosóficos, caindo por fim, na Engenharia de Software. Desta forma, neste trabalho a Engenharia de Software é uma especialização da Engenharia, que possui seus fundamentos na Ciência, que por sua vez se

baseia na filosofia.

Tipo de Extensão da UML: embora esta abordagem utilize-se de UML para construir os

modelos, definindo vários domínios específicos, não há clara evidência de extensão da UML.

Níveis de formalismo da Linguagem: por não se tratar de uma especialização da UML,

a linguagem descrita pelos autores é apresentada como um modelo UML definido pelos di- agramas. Embora existam os níveis de modelagem previstos para os diferentes aspectos da disciplina de Engenharia de Software, não foi possível identificar como as ligações de instân- cia desses modelos foram restringidas. Em outras palavras, não foi apresentado de forma clara como a Engenharia de Software pode ser uma instância da Ciência.

Tipos de Modelos existentes: embora não tenham sido identificados como modelos de

definição de outros modelos, mas sim diferentes modelos de usuário da UML sem ligação entre si, aparentemente eles se constituem em metamodelo (Filosofia), modelo conceitual e (Ciência) e instância (Engenharia e Engenharia de Software).

Validação ou Testes: esta abordagem apresenta um exemplo para utilização de diferentes

modelos chamados: Functional Solution Model, Technical Problem Model e Technical Solution

Models. Estes modelos foram implementados em linguagem Java, com o banco de dados e seu

acesso gerado em linguagem DDL e interface gráfica em HTML, tudo isto utilizando geradores de código. Em termos de validação ou testes, esta abordagem apresenta um exemplo de utili- zação de um Projeto European Institute, que se compromete em suportar processos de negócio entre os Estados-Membros Europeus e a European Commission.

Relação com a abordagem proposta: este trabalho não utiliza o MOF para criação de

uma meta-linguagem, pois utiliza a própria UML para definir vários níveis de modelos que se instanciam entre si. Neste trabalho também é apresentado implementação, porém nenhuma realização de ferramenta específica ou protótipo foi encontrado.

No documento Autoria de artefatos de software (páginas 70-74)