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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Elrad, T., Aksit, M., Kiczales, G., Lieberherr, K., Ossher, H.: Discussing Aspects of AOP. Communications of the ACM 44(10), 33–38 (2001)
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)
Parnas, D.: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM 15(12), 1053–1058 (1972)
Elrad, T., Filman, R., Bader, A.: Aspect-Oriented Programming. Communications of the ACM 44(10), 29–32 (2001)
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)
Opdyke, W.: Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks. Ph.D. thesis. University of Illinois at Urbana-Champaign (1992)
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)
Fowler, M., Beck, K., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (2000)
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)
Geoffrion, A., Marsten, R.: Integer Programming Algorithms: A Framework and State-of-the-Art Survey. Management Science 18(9), 465–491 (1972)
Salkin, H., Mathur, K., Robert, H.: Foundations of Integer Programming. North-Holland, Amsterdam (1989)
COmputational INfrastructure for Operations Research (COIN-OR) (2005), http://www.coin-or.org/index.html
Scientific Toolworks, Inc.: Understand for C++: User Guide and Reference Manual Version 1.4 (2005)
http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html
AspectC++ (2003), http://www.aspectc.org
Crema, A.: A contraction algorithm for the multiparametric integer linear programming problem. European Journal of Operational Research 101, 130–139 (1997)
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
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)