Uma extensão do diagrama de classe em Aspect-Oriented Design Model (AODM) para modelagem de Design by Contract
Ano de defesa: | 2017 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Pernambuco
UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | https://repositorio.ufpe.br/handle/123456789/32393 |
Resumo: | Com a evolução da técnica de desenvolvimento de Design by Contract (DbC), muitas implementações vem surgindo e em diversas linguagens de programação. Os contratos são elementos importantes para a validade dos métodos e com a implementação de DbC em Aspectos, os contratos passam a ser elementos importantes também para os advice. Com isso, o registro e a visualização dos contratos, tanto as premissas quanto as validações de saída, em fase de análise de projeto ganham uma devida importância. Porém, com as técnicas existentes para se diagramar classes e aspectos, esta não é uma atividade possível. Nesta pesquisa está descrita uma extensão do artefato de "Diagrama de Classes" com suporte a Aspectos provido pela técnica AODM, com o objetivo específico de expressar contratos estabelecidos na técnica Design by Contract em classes e aspectos, sem ferir os princípios da UML. Para auxiliar no desenvolvimento da pesquisa e criar exemplos que pudessem ser modelados com a técnica desenvolvida nesta dissertação, optou-se pelo uso das sintaxes AspectJ/@AspectJ (para aspectos), JML (para DbC) e AspectJML (para DbC sobre Aspectos). Como resultado foi desenvolvido uma técnica que estende a AODM para se modelar contratos tanto em classes quanto em aspectos, se utilizando de artifícios já suportados pela UML através de estereótipos e propriedades. Esta técnica proporciona que todos estes elementos possam ser representados em apenas um único modelo visando oferecer uma visão ampla do sistema que está sendo desenvolvido. |