A case‐based reasoning approach to derive object‐oriented models from software architectures - Vázquez, German Leandro (2010)
Software architectures are very important to capture early design decisions and reason about quality attributes of a system. Unfortunately, there are mismatches between the quality attributes prescribed by the architecture and those realized by its object-oriented implementation. The mismatches decrease the ability to reason architecturally about the system. Developing an object-oriented materialization that conforms to the original architecture depends on both the application of the right patterns and the developer´s expertise. Since the space of allowed materializations can be really large, tool support for assisting the developer in the exploration of alternative materializations is of great help. In previous research, we developed a prototype for generating quality-preserving implementations of software architectures, using pre-compiled knowledge about architectural styles and frameworks. In this paper, we present a more flexible approach, called SAME, which focuses on the architectural connectors as the pillars for the materialization process. The SAME design assistant applies a case-based reasoning (CBR) metaphor to deal with connector-related materialization experiences and quality attributes. The CBR engine is able to recall and adapt past experiences to solve new materialization problems; thus SAME can take advantage of developers´ knowledge. Preliminary experiments have shown that this approach can improve the exploration of object-oriented solutions that are still faithful to the architectural prescriptions.