Reusing design experiences to materialize software architectures into object-oriented designs

  • Authors:
  • Germán Vazquez;J. Andres Diaz Pace;Marcelo Campo

  • Affiliations:
  • ISISTAN Research Institute, Facultad de Cs. Exactas, UNCPBA Campus Universitario, Paraje Arroyo Seco, Tandil 7000, Argentina and CONICET, Comisión Nacional de Investigaciones Cientıficas ...;Software Engineering Institute, Carnegie Mellon University, 4500 Fifth Ave., Pittsburgh, PA 15232, USA;ISISTAN Research Institute, Facultad de Cs. Exactas, UNCPBA Campus Universitario, Paraje Arroyo Seco, Tandil 7000, Argentina and CONICET, Comisión Nacional de Investigaciones Cientıficas ...

  • Venue:
  • Information Sciences: an International Journal
  • Year:
  • 2014

Quantified Score

Hi-index 0.07

Visualization

Abstract

Software architectures capture early design decisions about a system in order to fulfill relevant quality attributes. When moving to detailed design levels, the same architecture can accept many different object-oriented implementations. A common problem here is the mismatches between the quality-attribute levels prescribed by the architecture and those realized by its object-oriented materialization. A significant step towards reducing those mismatches is the provision of tool support for assisting developers in the materialization of software architectures. Prerequisites to develop materialization tools are the organization of a body of design knowledge and the definition of quality-driven reasoning procedures. Since materialization activities are mainly driven by past developers' experiences, we propose a Case-based Reasoning (CBR) approach that, through the codification of design experiences, permits to establish links between software architecture structures and object-oriented counterparts. This approach is supported by an Eclipse-based tool, called SAME (Software Architecture Materialization Environment), which is a reuse-oriented assistant to the developer. SAME is able to recall and adapt successful architecture materializations for particular quality attributes, in order to help the developer to derive an appropriate object-oriented design for his/her architecture.