Abstract
Concurrent concerns commonly scatter among multithreaded software and tangle with core functionalities, which will make the concurrent software difficult to be maintained. Separation of concurrent concerns will benefit to improve the design of concurrent software and to manage the concurrency uniformly. This paper presents a refactoring framework to separate concurrent concerns from core functionalities using aspect-oriented approach. The refactoring framework illustrates in detail how to transform thread-related operations including threads, synchronization, barriers, and thread communications, into aspects that are designed to be reused. The refactoring framework is evaluated on SPECjbb2005 benchmark and several benchmarks in JGF benchmark suite by presenting the detailed refactoring process. Experimental results show that the framework is effective to refactoring these benchmarks.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Rashid, A.: Metalevel Architectures and Separation of Crosscutting Concerns, pp. 231–249. Springer, Berlin, Heidelberg (2001)
Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. Commun. ACM 44(10), 43–50 (2001)
Vidala, S.A., Marcosa, C.A.: Toward automated refactoring of crosscutting concerns into aspects. J. Syst. Softw. 86, 1482–1497 (2013)
Santosa, A.E., Ramirez, R.: A framework for separation of concerns in concurrent programming. In: International Computer Software and Applications Conference, pp. 619–628. IEEE Computer Society (2007)
Netinant, P.: Separation of concerns for multithreads object-oriented programming. In: 6th International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology, pp. 718–721 (2009)
Sobral, J.L.: Incrementally developing parallel applications with AspectJ. In: International Parallel and Distributed Processing Symposium, p. 95. IEEE Computer Society (2006)
Kiczales, G., Lamping, J., Mendhekar, A., et al.: Aspect-oriented programming. In: Ecoop97 — Object Oriented Programming (1997)
Smith, L.A., Bull, J.M., Obdrizalek, J.: A parallel Java grande benchmark suite. In: ACM/IEEE Conference of Supercomputing, p. 6. IEEE (2001)
Adamson, A., Dagastine, D., Sarne, S.: SPECjbb2005—ayear in the life of a benchmark. In: Proceedings of 2007 SPEC Benchmark Workshop, pp. 151–160. Austin, USA (2007)
Dig, D., Marrero, J., Ernst, M.D.: Refactoring sequential Java code for concurrency via concurrent libraries. In: Proceedings of IEEE 31st International Conference on Software Engineering, pp. 397–407 (2009)
Dig, D.: A refactoring approach to parallelism. Softw. IEEE 28(1), 17–22 (2011)
Schafer, M., Dolby, J., Sridharan, M., Torlak, E., Tip, F.: Correct refactoring of concurrent Java code. In: Proceedings of 24th European Conference of Object-Oriented Programming, pp. 225–249. Maribor, Slovenia (2010)
Brown, C., Hammond, K., Danelutto, M., Kilpatrick, P., Schöner, H., Breddin, T.: Paraphrasing: generating parallel programs using refactoring. In: Boer, F.S., Bonsangue, M.M., Beckert, B., Damiani, F. (eds.) FMCO 2011. LNCS, vol. 7542, pp. 237–256. Springer, Heidelberg (2012)
Larsen, P., Ladelsky, R., Lidman, J., McKee, S.A., Karlsson, S., Zaks, A.: Parallelizing more loops with compiler guided refactoring. In: Proceedings of 42nd International Conference on Parallel Processing, pp. 410–419 (2012)
Tao, B.X., Qian, J.: Refactoring Java concurrent programs based on synchronization requirement analysis. In: IEEE International Conference on Software Maintenance and Evaluation, pp. 361–370. IEEE Computer Society (2014)
Chen, N., Johnson, R.E.: JFlow: Practical refactorings for flow-based parallelism. In: IEEE/ACM 28th International Conference on Automated Software Engineering (ASE), pp. 202–212, 11–15 November 2013
Tran, T., Steffen, M.: Design issues in concurrent object-oriented languages and observability. In: 2011 Third International Conference on Knowledge and Systems Engineering (2011)
Zhang, Y.: Java Parallel Programming. Tsinghua University Press, Beijing (2015)
Zhang, Y., Ji, W.: A scalable method-level parallel library and its improvement. J. Supercomputing 61(3), 1154–1167 (2012)
Soares, S., Borba, P., Lima, R.: Concurrency control modularization with aspect-oriented programming. In: International Computer Software and Applications Conference, pp. 295–300. IEEE Computer Society (2007)
Acknowledgments
This work is partially supported by National Nature Science Foundation of China under grant No. 61440012 and No. 61300120, the top-notch young talent Foundation of Hebei Province of China under Grant No. BJ2014023, and Nature Science Foundation of Hebei Province under Grant No. F2012208016. The authors also gratefully acknowledge the insightful comments and suggestions of the reviewers, which have improved the presentation.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Zhang, Y., Zhang, D., Ji, W., Wang, Y. (2015). Refactoring for Separation of Concurrent Concerns. In: Wang, G., Zomaya, A., Martinez, G., Li, K. (eds) Algorithms and Architectures for Parallel Processing. ICA3PP 2015. Lecture Notes in Computer Science(), vol 9530. Springer, Cham. https://doi.org/10.1007/978-3-319-27137-8_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-27137-8_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-27136-1
Online ISBN: 978-3-319-27137-8
eBook Packages: Computer ScienceComputer Science (R0)