Skip to main content

Lightweight, Semi-automated Enactment of Pragmatic-Reuse Plans

  • Conference paper
High Confidence Software Reuse in Large Systems (ICSR 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5030))

Included in the following conference series:

Abstract

Reusing source code in a manner for which it has not been designed (which we term a pragmatic-reuse task) is traditionally regarded as poor practice. The unsystematic nature of these tasks increases the likelihood of a developer pursuing one that is infeasible or choosing not to pursue a feasible one. In previous work, we demonstrated that these risks can be mitigated by providing support to developers to help them systematically investigate and plan pragmatic-reuse tasks. But planning is only a small part of performing a pragmatic-reuse task; to enact a plan, the developer would have to manually extract the code they want to reuse and resolve any errors that arise from removing it from its originating system. This paper describes an approach that semi-automates the process of pragmatic-reuse plan enactment, automatically extracting the reused source code and resolving the majority of compilation errors for the developer through lightweight (i.e., computationally simple but analytically unsound) transformations. By reducing the number of low-level compilation issues (which are typically trivial but copious) that the developer must resolve, they are able to focus on the higher-level semantic and conceptual issues that are the main barrier to the successful completion of the reuse task. The efficacy of our approach to save developer effort is evaluated in a small-scale, controlled experiment on non-trivial pragmatic-reuse tasks. We find that our approach improves the likelihood of a pragmatic reuse task being successful, and decreases the time required to complete these tasks, as compared to a manual enactment approach.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Sen, A.: The role of opportunism in the software design reuse process. IEEE Transactions on Software Engineering 23(7), 418–436 (1997)

    Article  Google Scholar 

  2. Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: Why reuse is so hard. IEEE Software 12(6), 17–26 (1995)

    Article  Google Scholar 

  3. Garnett, E.S., Mariani, J.A.: Software reclamation. Software Engineering Journal 5(3), 185–191 (1990)

    Article  Google Scholar 

  4. Krueger, C.W.: Software reuse. ACM Computing Surveys 24(2), 131–183 (1992)

    Article  MathSciNet  Google Scholar 

  5. Holmes, R., Walker, R.J.: Supporting the investigation and planning of pragmatic reuse tasks. In: Proceedings of the International Conference on Software Engineering, pp. 447–457 (2007)

    Google Scholar 

  6. Neighbors, J.M.: Draco: A method for engineering reusable software systems. In: Biggerstaff, T.J., Perlis, A.J. (eds.) Software Reusability. Concepts and Models of ACM Press Frontier. ACM Press Frontier, vol. 1, pp. 295–319. Addison–Wesley, Boston, United States (1989)

    Google Scholar 

  7. Bassett, P.G.: The theory and practice of adaptive reuse. In: Proceedings of the Symposium on Software Reusability, pp. 2–9 (1997)

    Google Scholar 

  8. Mezini, M., Ostermann, K.: Integrating independent components with on-demand remodularization. In: Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 52–67 (2002)

    Google Scholar 

  9. Estublier, J., Vega, G.: Reuse and variability in large software applications. In: Proceedings of the Foundations of Software Engineering, pp. 316–325 (2005)

    Google Scholar 

  10. Feather, M.S.: Reuse in the context of a transformation-based methodology. In: Biggerstaff, T.J., Perlis, A.J. (eds.) Software Reusability. Concepts and Models, vol. 1, pp. 337–359. Addison-Wesley, Reading (1989)

    Google Scholar 

  11. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. In: Adapter design pattern, Addison-Wesley, Reading (1994)

    Google Scholar 

  12. Gouda, M.G., Herman, T.: Adaptive programming. IEEE Transactions on Software Engineering 17(9), 911–921 (1991)

    Article  MathSciNet  Google Scholar 

  13. Yellin, D.M., Strom, R.E.: Protocol specifications and component adaptors. ACM Transactions on Programming Languages and Systems 19(2), 292–333 (1997)

    Article  Google Scholar 

  14. Johnson, R.E., Foote, B.: Designing reuseable [sic] classes. Journal of Object-Oriented Programming 1(2), 22–35 (1988)

    Google Scholar 

  15. Jackson, D., Rinard, M.: Software analysis: a roadmap. In: Proceedings of the Conference on The Future of Software Engineering, pp. 133–145 (2000)

    Google Scholar 

  16. Lanubile, F., Visaggio, G.: Extracting reusable functions by flow graph-based program slicing. IEEE Transactions on Software Engineering 23(4), 246–259 (1997)

    Article  Google Scholar 

  17. Caldiera, G., Basili, V.R.: Identifying and qualifying reusable software components. Computer 24(2), 61–70 (1991)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hong Mei

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Holmes, R., Walker, R.J. (2008). Lightweight, Semi-automated Enactment of Pragmatic-Reuse Plans. In: Mei, H. (eds) High Confidence Software Reuse in Large Systems. ICSR 2008. Lecture Notes in Computer Science, vol 5030. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68073-4_35

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-68073-4_35

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-68062-8

  • Online ISBN: 978-3-540-68073-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics