Formal Refactoring for UML Class Diagrams - Massoni, Tiago; Gheyi, Rohit; Borba, Paulo (Anais do Simpósio Brasileiro de Engenharia de Software (SBES), 2005)
Refatorar modelos UML para evolução é normalmente uma atividade realizada de forma ad hoc. Estas transformações podem apresentar problemas, já que é difícil assegurar que a semâtica dos modelos é mantida. Desta forma, propomos um conjunto de transformações que preservam a semântica de diagramas de classe UML com OCL. Ao aplicar as transformações propostas, projetistas de software podem, de forma segura, definir transformações maiores, além de detectar problemas sutis ao refatorar modelos. Refatoração de modelos podem ser úteis tanto em MDA quanto para introduzir padrões de projeto. A corretude das transformações propostas é garantida através de um modelo semântico para UML baseado em Alloy, uma linguagem de modelagem formal. Como Alloy permite a realização de análises automáticas de modelos, nossa abordagem pode trazer benefícios similares para diagramas de classe.