Object-oriented software reusability through formal specifications
Software reusability has two main purposes: to increase the reliability of software and to reduce the cost of software development. Most current approaches to object-oriented reusability are based on empirical methods focussing on reuse of implementation code. However the most effective forms of reuse are generally found at more abstract levels of software design. A model for the definition of the structure of a reusable component allowing descriptions of object class hierarchies at different levels of abstraction is presented. This model integrates algebraic specification and concrete classes in an object-oriented language. An object-oriented programming method with reuse, based on the model, is described. Our approach reconciles formal specifications with their concrete implementations.
KeywordsReusability object-oriented programming algebraic specification formal methods.
- Biggerstaff, T. and Perlis, A., Eds (1989). Software Reusability Volume 1: Concepts and Models. ACM Press.Google Scholar
- Carbajo, M., Diez, G. and Palomeque, C. (1997) Undergraduate Thesis, Departamento de Computación, Universidad Nacional del Centro de la Pcia. de Buenos Aires, Argentina.Google Scholar
- Clerici, S. and Orejas, F. (1990). The Specification Language GSBL. Recent Trends in Data Type Specification.Google Scholar
- Clerici, S. (1989). Ph.D. Thesis, LSI Department. Universidad Politécnica de Catalunya, Espana.Google Scholar
- Favre, L., Diez, G., Carbajo, M. and Palomeque, C. (1997). Object-oriented Software Reusability: A Rigorous Method, in Proceedings SEKE′97, Knowledge System Institute, USA.Google Scholar
- Favre, L. (1997). Formal Methods and Object-oriented Reusability, Research Report 35, Isistan, UNCPBA, Argentina.Google Scholar
- Hennicker, R. and Wirsing, M. (1992). A Formal Method for the Systematic Reuse of Specification Components in Lecture Notes in Computer Science 544, Springer-Verlag.Google Scholar
- Wirsing, M. (1995). Algebraic Specification Languages: An Overview in Lecture Notes in Computer Science 906 (eds. E. Astesiano, G. Reggio and A. Tarlecki) Springer-Verlag, Germany.Google Scholar