Next: 2.7 Example
Up: 2 Position
Previous: 2.5 Extensibility
Role inheritance can be easily extended to components. A child component inherits its roles from its parents, while redefinition is restricted by the conditions defined for role inheritance. Since role inheritance ensures the maintenance of compatibility, we can replace a component in an architecture with any other component which inherit from the former, maintaining deadlock freedom. Notice that if we found that a certain component B inherits from another component A, we can safely replace A with B in any system that contains it with no need of checking the compatibility of the modified attachments. This gives place to a mechanism of architecture instantiation, by which a software architecture can be considered as a generic framework [NM95] which can be partially instantiated and reused as many times as needed. Component frameworks derive from the idea of design patterns, and they represent the highest level of reusability in software development: not only source code and single components, but also architectural design is reused in applications built on top of the framework [Pre96]. Since our specifications can be verified for compatibility, this promotes both software reusability and quality.
Carlos Canal, Ernesto Pimentel, and Jose M. Troya