Skip to main content

An Exploratory Study for Identifying and Implementing Concerns in Integer Programming

  • Chapter
Transactions on Aspect-Oriented Software Development V

Part of the book series: Lecture Notes in Computer Science ((TAOSD,volume 5490))

  • 254 Accesses

Abstract

In this paper, we analyze the suitability of refactoring the integer programming algorithms Branch and Bound and Branch and Cut with aspects implemented in Computational Infrastructure for Operations Research (COIN-OR), an open source library for Operations Research. For identifying the concerns in the code, we propose a classification of concerns in terms of requirements. We transformed the rules of an existing Aspect-Oriented Programming (AOP) refactoring catalog for Java to a corresponding catalog for AspectC++ and developed a refactored version of the implemented algorithms using our transformed rules. The execution time of Branch and Bound and Branch and Cut was measured and the impact of using AOP was analyzed. The results are very encouraging and we assess that besides a customizable code, the execution time did not degrade with AOP.

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 74.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.00
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. Elrad, T., Aksit, M., Kiczales, G., Lieberherr, K., Ossher, H.: Discussing Aspects of AOP. Communications of the ACM 44(10), 33–38 (2001)

    Article  Google Scholar 

  2. Dijkstra, E.: On the Role of Scientific Thought. EWD 447. Springer, New York (1974); Selected Writings on Computing: A Personal Perspective, pp. 60–66. Springer, Heidelberg (1982)

    Google Scholar 

  3. Parnas, D.: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  4. Elrad, T., Filman, R., Bader, A.: Aspect-Oriented Programming. Communications of the ACM 44(10), 29–32 (2001)

    Article  Google Scholar 

  5. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  6. Opdyke, W.: Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks. Ph.D. thesis. University of Illinois at Urbana-Champaign (1992)

    Google Scholar 

  7. Tourwé, T., Mens, T.: Identifying Refactoring Opportunities Using Logic Meta Programming. In: Proceedings 7th European Conference on Software Maintenance and Re-engineering (CSMR), pp. 91–100. IEEE Computer Society, Los Alamitos (2003)

    Google Scholar 

  8. Fowler, M., Beck, K., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (2000)

    Google Scholar 

  9. Monteiro, M., Fernandes, J.: Towards a Catalog of Aspect-Oriented Refactoring. In: Proceedings Conference on Aspect-Oriented Software Development (AOSD), Chicago Illinois, USA, pp. 111–122. ACM Press, New York (2005)

    Google Scholar 

  10. Geoffrion, A., Marsten, R.: Integer Programming Algorithms: A Framework and State-of-the-Art Survey. Management Science 18(9), 465–491 (1972)

    Article  MathSciNet  MATH  Google Scholar 

  11. Salkin, H., Mathur, K., Robert, H.: Foundations of Integer Programming. North-Holland, Amsterdam (1989)

    MATH  Google Scholar 

  12. COmputational INfrastructure for Operations Research (COIN-OR) (2005), http://www.coin-or.org/index.html

  13. https://projects.coin-or.org/Cbc/wiki/FAQ

  14. Scientific Toolworks, Inc.: Understand for C++: User Guide and Reference Manual Version 1.4 (2005)

    Google Scholar 

  15. http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html

  16. AspectC++ (2003), http://www.aspectc.org

  17. Crema, A.: A contraction algorithm for the multiparametric integer linear programming problem. European Journal of Operational Research 101, 130–139 (1997)

    Article  MATH  Google Scholar 

  18. Carnahan, J.: rng.cc Based on original C code by Steve Park & Dave Geyer (2003), http://www.cs.virginia.edu/~jcc5t/projects/oo_random/rng.cc

  19. Lohmann, D., Scheler, F., Tartler, R., Spinczyk, O., Schröder-Preikschat, W.: A Quantitative Analysis of Aspect in the eCos Kernel. In: EuroSys Conference, Leuven, Belgium, April, pp. 191–204. ACM, New York (2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Niño, N., Metzner, C., Crema, A., Correa, E. (2009). An Exploratory Study for Identifying and Implementing Concerns in Integer Programming. In: Rashid, A., Ossher, H. (eds) Transactions on Aspect-Oriented Software Development V. Lecture Notes in Computer Science, vol 5490. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02059-9_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-02059-9_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-02058-2

  • Online ISBN: 978-3-642-02059-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics