Reengineering the Booch component library

Component-based software construction heavily relies on the ability of reusing components from a library with as little effort as possible. Among others, valuable features for reusing from a component library are: adaptability to many contexts, extensibility, abstraction and high level of robustness...

Descripción completa

Detalles Bibliográficos
Autores: Marco Gómez, Jordi|||0000-0002-0078-7929, Franch Gutiérrez, Javier|||0000-0001-9733-8830
Tipo de recurso: informe técnico
Fecha de publicación:1999
País:España
Institución:Universitat Politècnica de Catalunya (UPC)
Repositorio:UPCommons. Portal del coneixement obert de la UPC
Idioma:inglés
OAI Identifier:oai:upcommons.upc.edu:2117/93093
Acceso en línea:https://hdl.handle.net/2117/93093
Access Level:acceso abierto
Palabra clave:Component-based software
Components reusing
Component library
Container-classes family
Àrees temàtiques de la UPC::Informàtica::Sistemes d'informació
Descripción
Sumario:Component-based software construction heavily relies on the ability of reusing components from a library with as little effort as possible. Among others, valuable features for reusing from a component library are: adaptability to many contexts, extensibility, abstraction and high level of robustness with respect to changes in some of their components. In this paper we study one of the most widely used component library for Ada 95, the Grady Booch?s one, mainly with respect to these features. The hierarchy of the Booch component library is organised into three main super-classes: Containers, Support and Graphs, which have a common parent-class. Our study focuses on the Container-classes family, which present some drawbacks mainly due to the fact that some parent-classes depend on the concrete form of their children-classes. We state first the problems and we propose next a solution centred on changing the Containers base class. This new version of the Containers class offers a new concept, namely shortcut, that not only allows avoiding the dependencies between parent-classes and their children classes but also offers some additional advantages, for instance improving the efficiency of componenets and increasing the possibilities of reusing from the library in contexts with strong efficiency requirements. Most of the ideas of this work can be generalised to other component libraries.