A Slicing-Based Approach to Extracting Reusable Software Architectures

Dept. of Comput. Sci. & Eng., Fukuoka Inst. of Technol.
01/2000; DOI: 10.1109/CSMR.2000.827330
Source: DBLP

ABSTRACT An alternative approach to developing reusable components from scratch is to recover them from existing systems. Although numerous techniques have been proposed to recover reusable components from existing systems, most have focused on implementation code, rather than software architecture. In this paper, we apply architectural slicing to extract reusable architectural elements (i.e., components and connectors) from the existing architectural specification of a software system. Unlike traditional program slicing, which operates on the source code of a program to provide the low-level implementation details of the program, architectural slicing directly operates on the architectural specification of a software system, and therefore can provide useful knowledge about the high-level architecture of the system. 1 Introduction Software reusability is widely accepted as the key to improving both the quality of software and the productivity of software engineers. Software reuse can take man...

  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: In a software project, outsourcing the development of a particular functionality, reusing a part in another software, or handing-over a part of the code to a new team member requires the extraction of an independent subset of the software-a component. This paper describes and analyzes the process of extracting such a component. We introduce an automated approach based on optimizing the cut between the new component and the remaining system. A visual development tool implements our approach and interactively supports the extraction. Finally, we look at the results of a thinking aloud user study and discuss the lessons learned about the extraction tool as well as the extraction process.
    17th Working Conference on Reverse Engineering, WCRE 2010, 13-16 October 2010, Beverly, MA, USA; 01/2010
  • Source
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: However, most of these tools have strict limitations on the programming languages that can be processed. In the context of component-based systems, this typically means that information from configuration artifacts can not be included, effectively inhibiting system-wide analysis and confining it to the boundaries defined by the source code of a single component. We address this issue with an approach that allows crossing the boundaries between components, enabling system-wide analysis of component-based systems. The contributions of this paper are the following: We present a method that combines model-driven engineering with program analysis techniques to support analysis across the components of a component-based system. In partic- ular, we build upon the foundations laid out by OMG's Knowledge Discovery Metamodel (KDM) (4) to reverse en- gineer a homogeneous system-wide dependence model from a software system's heterogeneous source- and configuration artifacts, and use this model as the basis for our analysis. We have implemented and evaluated our approach by building a prototype tool which has been successfully used to track in- formation flow in a component-based system using program slicing. Finally, we add a point of reference to the use and extension of KDM in an industrial setting, extending an area of literature that is currently underdeveloped. The remainder of the paper is organized as follows: Sec- tion II describes the background of this study. We describe our approach in Section III, and report on our prototype implementation in Section IV. We evaluate our approach and prototype implementation in Section V, discuss the related work in Section VI, and conclude in Section VII.
    IEEE 27th International Conference on Software Maintenance, ICSM 2011, Williamsburg, VA, USA, September 25-30, 2011; 01/2011

Full-text (2 Sources)

Available from