This Article 
 Bibliographic References 
 Add to: 
SPARTACAS Automating Component Reuse and Adaptation
September 2004 (vol. 30 no. 9)
pp. 587-600
A continuing challenge for software designers is to develop efficient and cost-effective software implementations. Many see software reuse as a potential solution; however, the cost of reuse tends to outweigh the potential benefits. The costs of software reuse include establishing and maintaining a library of reusable components, searching for applicable components to be reused in a design, as well as adapting components toward a proper implementation. In this paper, we introduce SPARTACAS, a framework for automating specification-based component retrieval and adaptation that has been successfully applied to synthesis of software for embedded and digital signal processing systems. Using specifications to abstractly represent implementations allows automated theorem-provers to formally verify logical reusability relationships between specifications. These logical relationships are used to evaluate the feasibility of reusing the implementations of components to implement a problem. Retrieving a component that is a complete match to a problem is rare. It is more common to retrieve a component that partially satisfies the requirements of a problem. Such components have to be adapted. Rather than adapting components at the code level, SPARTACAS adapts the behavior of partial matches by imposing interactions with other components at the architecture level. A subproblem is synthesized that specifies the missing functionality required to complete the problem; the subproblem is used to query the library for components to adapt the partial match. The framework was implemented and evaluated empirically, the results suggest that automated adaptation using architectures successfully promotes software reuse, and hierarchically organizes a solution to a design problem.

[1] P. Alexander, D. Barton, and C. Kong, Rosetta Usage Guide. The Univ. of Kansas, ITTC, 2000.
[2] R. Allen and D. Garlan, Formalizing Architectural Connection Proc. 16th Int'l Conf. Software Eng., pp. 71-80, May 1994.
[3] Y. Chen and B.H.C. Cheng, Facilitating an Automated Approach to Architecture-Based Software Reuse Proc. 12th IEEE Int'l Conf. Automated Software Eng., pp. 238-245, Nov. 1997.
[4] D. Eichmann and K. Srinivas, Neural Network-Based Retrieval From Software Reuse Repositories Neural Networks and Pattern Recognition in Human Computer Interaction, R. Beale and J. Findlay, eds., pp. 215-228, Mar. 1992.
[5] B. Fischer and J. Schumann, NORA/HAMMR: Making Deduction-Based Software Component Retrieval Practical Proc. CADE-14 Workshop Automated Theorem Proving in Software Eng., July 1997.
[6] B. Fischer and J. Schumann, SETHEO Goes Software Engineering: Application of ATP to Software Reuse Proc. la Conferencia Anual de Ejecutivos (CADE-14), July 1997.
[7] W. Frakes and C. Terry, Software Reuse: Metrics and Models ACM Computing Surveys, vol. 28, no. 2, pp. 415-435, June 1996.
[8] W.B. Frakes and C.J. Fox, Sixteen Questions About Software Reuse Comm. ACM, vol. 38, no. 6, pp. 75-87, June 1995.
[9] J.H. Gennari and M. Ackerman, Extra-Technical Information for Method Libraries Proc. 12th Workshop Knowledge Acquisition, Modeling and Management (KAW'99), Oct. 1999.
[10] M.R. Girardi and B. Ibrahim, Using English to Retrieve Software The J. System and Software, vol. 30, no. 3, pp. 249-270, Sept. 1995.
[11] A. Goldberg, Reusing Software Developments Proc. Fourth ACM SIGSOFT Symp. Software Development Environments, R.N. Taylor, ed., pp. 107-119, Dec. 1990.
[12] R.J. Hall, Generalized Behavior-Based Retrieval Proc. 15th Int'l Conf. Software Eng., pp. 371-380, May 1993.
[13] C.A.R. Hoare, An Axiomatic Basis for Computer Programming Comm. ACM, vol. 12, pp. 576-580, 583, 1969.
[14] J.-J. Jeng and B.H.C. Cheng, Specification Matching for Software Reuse: A Foundation Proc. ACM SIGSOFT Symp. Software Reuse, pp. 97-105, Apr. 1995.
[15] C. Jones, Economics of Software Reuse Computer, vol. 27, pp. 106-107, July 1994.
[16] D.B.L.A. Kinley and D. Wilson, Case-Based Reasoning: Experiences, Lessons, and Future Directions, chapter Learning to Improve Case Adaptation by Introspective Reasoning and CBR, AAAI Press/MIT Press, 1996.
[17] C.W. Krueger, Software Reuse Computing Surveys, vol. 24, pp. 131-183, June 1992.
[18] A. Mili, S. Yacoub, E. Addy, and H. Mili, Toward an Engineering Discipline of Software Reuse IEEE Software, vol. 16, no. 5, pp. 2-11, Sept./Oct. 1999.
[19] H. Mili, F. Mili, and A. Mili, Reusing Software: Issues and Research Directions IEEE Trans. Software Eng., vol. 21, no. 6, pp. 528-562, June 1995.
[20] B. Morel and P. Alexander, A Slicing Approach for Parallel Component Adaptation Proc. 10th IEEE Int'l Conf. and Workshop the Eng. of Computer-Based Systems, pp. 108-114, Apr. 2003.
[21] M. Patil, Soccer A Specification Matching-Based Component Retrieval System master's thesis, Univ. of Kansas, 2000.
[22] J. Penix and P. Alexander, Toward Automated Component Adaptation Proc. Ninth Int'l Conf. Software Eng. and Knowledge Eng., pp. 535-542, June 1997.
[23] J. Penix and P. Alexander, Efficient Specification-Based Component Retrieval Automated Software Eng., vol. 6, pp. 139-170, 1999.
[24] J. Penix, P. Baraona, and P. Alexander, Classification and Retrieval of Reusable Components Using Semantic Features Proc. 10th Knowledge-Based Software Eng. Conf., pp. 131-138, Nov. 1995.
[25] R. Prieto-Díaz and P. Freeman, Classifying Software for Reusability IEEE Software, vol. 4, no. 1, pp. 6-16, Jan. 1987.
[26] J.M. Purtilo and J.M. Atlee, Module Reuse by Interface Adaptation Software: Practice&Experience, vol. 21, no. 6, pp. 539-556, June 1991.
[27] G. Sindre, R. Conradi, and E.-A. Karlsson, The REBOOT Approach to Software Reuse The J. Systems and Software, vol. 30, no. 3, pp. 201-212, Sept. 1995.
[28] D.R. Smith, KIDS: A Semiautomatic Program Development System IEEE Trans. Software Eng., vol. 16, no. 9, pp. 1024-1043, 1990.
[29] B. Smyth and M.T. Keane, Experiments on Adaptation-Guided Retrieval in Case-Based Design Technical Report TCD-CS-94-17, Trinity College, Dublin, Dec. 1994.
[30] M. Weiser, Program Slices: Formal, Psychological, and Practical Investigations of an Automatic Program Abstraction Method PhD thesis, Univ. of Michigan, Ann Arbor, 1979.
[31] A. Zaremski and J. Wing, Signature Matching: A Key to Reuse ACM SIGSOFT Symp. the Foundations of Software Eng., Dec. 1993.
[32] A.M. Zaremski and J.M. Wing, Specification Matching of Software Components Proc. Third ACM SIGSOFT Symp. the Foundations of Software Eng., Oct. 1995.
[33] J. Zhao, A Slicing-Based Approach to Extracting Reusable Software Architectures Proc. Fourth European Conf. Software Maintenance and Reeng., pp. 215-223, 2000.

Index Terms:
Reuse models, formal methods, programmer workbench, reuse library.
Brandon Morel, Perry Alexander, "SPARTACAS Automating Component Reuse and Adaptation," IEEE Transactions on Software Engineering, vol. 30, no. 9, pp. 587-600, Sept. 2004, doi:10.1109/TSE.2004.53
Usage of this product signifies your acceptance of the Terms of Use.