Autores

4557
230,461
4558
230,461

Informações:

Publicações do PESC

Título
Reestruturando Especificações de Restrições de Modelos Elaboradas em OCL
Linha de pesquisa
Engenharia de Software
Tipo de publicação
Tese de Doutorado
Número de registro
Data da defesa
8/5/2006
Resumo

A OCL (Object Constraint Language) é uma linguagem que pode ser utilizada para especificar, de forma precisa, elementos que as notações gráficas da UML não são capazes de representar, como, por exemplo, restrições, expressões associadas a atributos derivados, expressões de consulta e definições contratuais de operações. Embora a OCL tenha sido definida com o objetivo de ser uma linguagem de uso mais fácil, se comparada às linguagens formais tradicionais, especificações produzidas com a OCL podem apresentar problemas de legibilidade e manutenibilidade.

A partir de um estudo realizado em diversas especificações, identificamos e catalogamos construções potencialmente problemáticas ao entendimento e à manutenção de especificações que empreguem a OCL. Um conjunto de reestruturações foi proposto com o objetivo de apoiar a substituição dessas construções por outras mais adequadas. Um estudo experimental foi realizado para avaliar a viabilidade de aplicação destes conceitos. Em particular, foi feita uma avaliação preliminar de como a compreensão de restrições especificadas em OCL pode ser afetada pela estrutura das expressões que a compõem. Finalmente, este trabalho propõe uma abordagem e um software para apoiar a automação de reestruturações e a verificação da preservação da semântica do modelo no caso de reestruturações realizadas manualmente. 

Abstract

OCL (Object Constraint Language) is a specification language that can be used to precisely specify elements that can not be represented by the graphical elements of UML. Constraints, derivation rules, query expressions, operation contracts are some examples of such elements. Although OCL has been designed to be a simpler language when compared to traditional formal specification languages, OCL specifications may be difficult to understand and evolve.

From a study performed on several OCL specifications, we have identified a set of constructions that are hints that some part of an OCL specification, or even of the underlying model, should be refactored in order to make it easier to understand and maintain. A set of refactorings has been proposed in order to replace such constructions by more adequate ones. An experimental study has been performed to evaluate the applicability of those concepts. This study presents the results of a preliminary evaluation of the effects of the structure of OCL expressions on its understandability. Moreover, we present an approach and tool support for refactoring automation and to manually performed refactorings.

Arquivo
Topo