Abstract
Reusing existing code instead of reinventing it is considered a good development practice. However, current software search engines often deliver merely somewhat similar results that usually need to be adapted when they should be integrated into an existing system. Since adaptation is a tedious and error-prone activity it has been the target of automation approaches for numerous years, but only recently the use of test-driven adaptation, based on ordinary JUnit test cases, was able to provide a working prototype for this purpose. Unfortunately, the adaptater creation lacks acceptable runtime behavior because it is based on a brute force algorithm, which significantly hinders the usability of test-driven adaptation in a test-driven reuse context where numerous, potentially complex candidates need to be adapted. Hence, in this paper, we present an optimized algorithm for this purpose that works in a branch-and-bound manner and demonstrate its capability by an “invitro” evaluation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Autili, M., Inverardi, P., Navarra, A., Tivoli, M.: Synthesis: A tool for automatically assembling correct and distributed component-based systems. In: Proceedings of the 29th International Conference on Software Engineering, pp. 784–787 (2007)
Bajracharya, S., Ossher, J., Lopes, C.: Sourcerer: An internet-scale software repository. In: Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation. SUITE 2009, pp. 1–4. ICSE (2009)
Beck, K.: Test-Driven Development by Example. Addison-Wesley (2003)
Beck, K., Andres, C.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley Professional (2004)
Becker, S., Brogi, A., Gorton, I., Overhage, S., Romanovsky, A., Tivoli, M.: Towards an engineering approach to component adaption. In: Reussner, R., Stafford, J.A., Ren, X.-M. (eds.) Architecting Systems with Trustworthy Components. LNCS, vol. 3938, pp. 193–215. Springer, Heidelberg (2006)
Bertolino, A., Inverardi, P., Pelliccione, P., Tivoli, M.: Automatic synthesis of behavior protocols for composable web-services. In: ESEC/SIGSOFTFSE, pp. 141–150 (2009)
Booch, G.: Object-oriented development. IEEE Transactions on Software Engineering 12(2), 211–221 (1986)
Bracciali, A., Brogi, A., Canal, C.: A formal approach to component adaptation. Journal of Systems and Software 74, 45–54 (2005)
Canal, C., Poizat, P., Salauen, G.: Model-based adaptation of behavioral mismatching components. IEEE Transactions on Software Engineering 34, 546–563 (2008)
Euzenat, J., Shvaiko, P.: Ontology Matching, 1st edn. Springer Publishing Company, Incorporated (2010)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley (2003)
Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)
Hummel, O.: Semantic Component Retrival in Software Engineering. Phd thesis, Fakueltaet fuer Mathematik und Informatik, Universitaet Mannheim (2008)
Hummel, O., Atkinson, C.: The managed adapter pattern: Facilitating glue code generation for component reuse. In: Edwards, S.H., Kulczycki, G. (eds.) ICSR 2009. LNCS, vol. 5791, pp. 211–224. Springer, Heidelberg (2009)
Hummel, O., Atkinson, C.: Automated creation and assessment of component adapters with test cases. In: Grunske, L., Reussner, R., Plasil, F. (eds.) CBSE 2010. LNCS, vol. 6092, pp. 166–181. Springer, Heidelberg (2010)
Hummel, O., Janjic, W., Atkinson, C.: Code conjurer: Pulling reusable software out of thin air. IEEE Computer 25, 45–52 (2008)
Hummel, O., Janjic, W.: Test-driven reuse: Key to improving precision of search engines for software reuse. In: Sim, S.E., Gallardo-Valencia, R.E. (eds.) Finding Code on the Web for Remix and Reuse, vol. 1. Springer (2013)
Kell, S.: A survey of practical software adaptation techniques. Journal of Universal Computer Science 14, 2110–2157 (2008)
Kell, S.: Component adaptation and assembly using interface relations. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2010, pp. 322–340. ACM, New York (2010) ISBN 978-1-4503-0203-6
Kredel, H.: Fostering the interoperability in java-based computer algegra systems. In: International Conference on Advanced Information Networking and Applications Workshops, vol. 26, pp. 443–447 (2012)
Martin, J.A., Pimentel, E.: Automatic generation of adaptation contracts. In: Proceedings of the 7th International Workshop on the FOCLASA 2008. Electronic Notes in Theoretical Computer Science, pp. 115–131 (2009)
McIlroy, M.D.: In software-engineering: Report of a conference sponsored by the nato science commitee, germisch, germany. In: Mass-Produced Software Components (1968)
Meyer, B.: Applying design by contract. IEEE Computer Society Press 25, 40–51 (1992)
Nita, M., Notkin, D.: Using twinning to adapt programs to alternative apis. In: 2010 ACM/IEEE 32nd International Conference on Software Engineering, vol. 1, pp. 205–214 (May 2010)
Rahm, E., Bernstein, P.A.: A survey of approaches to automatic schema matching. The VLDB Journal 10, 334–350 (2001) ISSN 1066-8888
Rosen, K.H.: Discrete Mathematics and Its Applications, 2nd edn. McGraw-Hill (1991)
Seiffert, D.: Automating the wrapping of software building blocks with test cases. In: Proceedings of the 17th International Doctoral Symposium on Components and Architecture, pp. 19–24 (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Seiffert, D., Hummel, O. (2013). Improving the Runtime-Processing of Test Cases for Component Adaptation. In: Favaro, J., Morisio, M. (eds) Safe and Secure Software Reuse. ICSR 2013. Lecture Notes in Computer Science, vol 7925. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38977-1_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-38977-1_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38976-4
Online ISBN: 978-3-642-38977-1
eBook Packages: Computer ScienceComputer Science (R0)