On managing classes for evolving software
Liwu Li · 2003
The evolution of object oriented software involves addition, deletion, and replacement of classes. Maintenance of classes requires detect and resolve inconsistency between classes. The Unified Modeling Language (UML) is becoming the de facto standard modeling language. We present a UML based model of class interrelations for evolving object oriented software. The model is based on notions contract and protocol. A contract can be used by a class designer to express services and requirements of the class, a protocol to register cooperations between classes. Founded on the UML extension mechanisms, we present an infrastructure for class designers to express contracts and register protocols. The infrastructure lays the foundation for class designers, implementers, and maintainers to validate class changes in software evolution. It makes automated validation possible.