SEPARAÇÃO DE CÓDIGO JAVA ANOTADO

Propaganda
VIII CONGRESSO DE INICIAÇÃO CIENTÍFICA DA UNIVERSIDADE FEDERAL DE CAMPINA GRANDE
PIBIC/CNPq/UFCG-2010
PRINCÍPIOS DE PROJETO PARA DESIGN BY CONTRACT COM JAVA MODELING
LANGUAGE
José Laerte P. X. Júnior1, Tiago Lima Massoni2
RESUMO
A abordagem de Design by Contract (DBC) promove a formalização dos relacionamentos entre módulos
(classes) através de contratos. Entretanto, a preservação dos fatores de modularidade não é trivial, uma
vez que anotações podem obstruir propriedades como extensibilidade e reusabilidade. Assim, os
contratos podem prejudicar a divisão modular original, desencorajando sua utilização devido ao seu alto
custo de evolução. Neste artigo, apresentamos e discutimos princípios de projeto para sistemas
Orientados a Objeto especificados com a linguagem Java Modeling Language (JML). Com o intuito de
avaliar os princípios apresentados, efetuamos um estudo de caso qualitativo em uma grande base de
código JML (a API JMLModels).
Palavras-chave: Evolução, Design by Contract, princípios de design.
PROJECT PRINCIPLES FOR DESIGN BY CONTRACT WITH JAVA MODELING
LANGUAGE
ABSTRACT
The Design by contract (DBC) approach promotes the formalization of relationships between modules
(classes) through contracts, determining utilization rules for objects and methods. Nevertheless, the
preservation of modularity is not a natural consequence of contracts, since annotations bring extra
design issues that may hinder properties such as extensibility and reusability. The contracts may
damage original modular division and tend to be abandoned due to high cost of evolution. In this paper
we present and discuss design principles for Object Oriented systems specified with the Java Modeling
Language (JML). We performed a qualitative case study on a large JML codebase (the JMLModels API),
showing the trade-offs of DBC design.
Keywords: Evolution, Design by Contract, design principles.
1
Aluno do Curso de Ciência da Computação, Unidade Acadêmica de Sistemas Computacionais, UFCG, Campina
Grande, PB, E-mail: [email protected]
2
Cientista da Computação, Professor. Doutor, Unidade Acadêmica de Sistemas Computacionais, UFCG, Campina
Grande, PB, E-mail: [email protected]
Download