Reestruturando Especificações de Restrições de Modelos Elaboradas em OCL
Autores
4557 |
230,461
|
|
4558 |
230,461
|
Informações:
Publicações do PESC
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.
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.