Components are the building blocks for software achitectures. After a longer period of ad-hoc maintenance changes, components - who may have had a clear narrow interface and a distinct purpose in the beginning - frequently exhibit low cohesiveness and high coupling. Further evolution of these components becomes increasingly difficult.
To repair this state of affairs, the system must be remodularized into cohesive components with little coupling.
The Bauhaus toolkit offers a wide range of component mining techniques for existing systems. Each one is based on specific properties on which basis elements may be grouped into a component.
For instance, an abstract data type is defined as a type and its accessor functions; only the accessor functions are allowed to access internals of this type, all other functions may only call the accessor functions. Hence, you may cluster all function accessing the internals of a data type into an abstract data type component.
Last modified: Wed Aug 27 16:45:55 MET DST 2003