Date Added: Mar 2010
Object-oriented programming laws have been proposed in the context of languages that are not combined with a Behavioral Interface Specification Language (BISL). The strong dependence between source-code and interface specifications may cause a number of difficulties when transforming programs. In this paper, the authors introduce a set of programming laws for object-oriented languages like Java combined with the Java Modeling Language (JML). The set of laws deals with object-oriented features taking into account their specifications. Some laws deal only with features of the specification language. These laws constitute a set of small transformations for the development of more elaborate ones like refactoring.