Identification of Core Architecture Classes for Object-Oriented Software Systems
|Published in:||Issue 2, (Vol. 10) / 2016|
|Author(s):||KAMRAN Muhammad, ALI Mubashir, AKBAR Bilal|
|Abstract.||The new member of the software development team needs to understand the software prior making modifications to the unknown system. The core classes that constitute the system architecture can reveal important structural properties of the system. Hence they can be used to catch an initial glimpse of the system during preliminary phase of program comprehension. An efficient approach to pinpoint core architecture classes of object-oriented software has been suggested. A variant of dynamic coupling metric has also been introduced. A comparative evaluation of our approach with the similar experiments performed on the same guinea pig systems is presented. The results demonstrate that precision and recall of our approach matches the best performing approach in other similar experiments.|
|Keywords:||Program Comprehension, Dynamic Coupling, Core Architecture Classes, Most Important Classes|
1. Stroulia E., & Systä T. Dynamic analysis for reverse engineering and program understanding. ACM SIGAPP Applied Computing Review, 10(1), 8-17. 2002.
2. Ng D., Kaeli D. R., Kojarski S., & Lorenz D. H. Program comprehension using aspects. In ICSE Workshop WoDiSEE’2004.
3. Corbi TA. Program understanding: Challenge for the 90s. IBM Systems Journal; 28(2), 294–306. 1990.
4. Lakhotia, A. Understanding someone else's code: analysis of experiences. Journal of Systems and Software, 23(3), 269-275. 1993.
5. Zayour I., & Lethbridge T. C. Adoption of reverse engineering tools: a cognitive perspective and methodology. In Program Comprehension, 2001. IWPC 2001. Proceedings. 9th International Workshop on (pp. 245-255). IEEE, 2001.
6. Storey M-AD, Kenny W., and H. Müller. "How do program understanding tools affect how programmers understand programs?." In Reverse Engineering. Proceedings of the Fourth Working Conference on, pp. 12-21. IEEE, 1997.
7. Von M, Anneliese. Program comprehension during software maintenance and evolution. Computer, 28(8), 44-55. 1995.
8. Pennington, Nancy. "Comprehension strategies in programming." Empirical studies of programmers: second workshop. Ablex Publishing Corp. 1987.
9. Demeyer S, Ducasse S, Nierstrasz O. Object-oriented reengineering patterns. Elisver, 2003.
10. Eisenbarth, Thomas, Rainer Koschke, and Daniel Simon. "Aiding program comprehension by static and dynamic feature analysis." Software Maintenance. Proceedings. IEEE International Conference on. IEEE, 2001.
11. Jahnke, Jens H., and Andrew Walenstein. "Reverse engineering tools as media for imperfect knowledge." Reverse Engineering. Proceedings. Seventh Working Conference on. IEEE, 2000.
12. Arisholm, Erik, Lionel C. Briand, and Audun Foyen. "Dynamic coupling measurement for object-oriented software." Software Engineering, IEEE Transactions on 30.8: 491-506. 2004.
13. Zaidman, Andy, et al. "Applying webmining techniques to execution traces to support the program comprehension process." Software Maintenance and Reengineering. CSMR 2005. Ninth European Conference on. IEEE, 2005.
14. Zaidman A, and Demeyer S. "Automatic identification of key classes in a software system using webmining techniques." Journal of Software Maintenance and Evolution: Research and Practice 20.6: 387-417. (2008)
15. Wang, Yu-ying, et al. "Dynamic fan-in and fan-out metrics for program comprehension." Journal of Shanghai University (English Edition) 11: 474-479. 2007.
[16. Chawla, Anil, and Alessandro Orso. "A generic instrumentation framework for collecting dynamic information." ACM SIGSOFT Software Engineering Notes 29.5: 1-4. 2004.
17. Meyer P., H. Siy, and S. Bhowmick. "identifying important classes of large software systems through k-core decomposition." Advances in Complex Systems 17.07n08 (2014): 1550004.
18. Daniela S., Hummel B., and Juergens E. "Using network analysis for recommendation of central software classes." Reverse Engineering (WCRE), 19th Working Conference on. IEEE, 2012.
19. Ferdian T., et al. "Condensing class diagrams by analyzing design and network metrics using optimistic classification." Proceedings of the 22nd International Conference on Program Comprehension. ACM, 2014.
20. Sora, Ioana. "A PageRank based recommender system for identifying key classes in software systems." Applied Computational Intelligence and Informatics (SACI), IEEE 10th Jubilee International Symposium on. IEEE, 2015.
21. Maen H., Collard M.L., and Maletic J. "Measuring class importance in the context of design evolution." Program Comprehension (ICPC), IEEE 18th International Conference on. IEEE, 2010.
22. Kamran M., Azam F., and Khanum A. "Discovering core architecture classes to assist initial program comprehension." Proceedings of the International Conference on Information Technology and Software Engineering. Springer Berlin Heidelberg, 2013.
23. Kamran M. An Efficient Approach to Identify Key Classes of Software to Assist Initial Program Comprehension. Published MS thesis, LAMBERT Academic Publishing. ISBN-13: 978-3-659-51036-6. National University of Sciences and Technology, Islamabad, Pakistan. 2014.
24. Şora, Ioana. "Helping Program Comprehension of Large Software Systems by Identifying Their Most Important Classes." International Conference on Evaluation of Novel Approaches to Software Engineering. Springer International Publishing, 2015.
25. Sora, Ioana, and Doru Todinca. "Using Fuzzy Rules for Identifying Key Classes in Software Systems."
26. I. Şora, "Finding the right needles in hay helping program comprehension of large software systems," Evaluation of Novel Approaches to Software Engineering (ENASE), 2015 International Conference on, Barcelona, 2015, pp. 129-140.
27. Ding, Yi, Bing Li, and Peng He. "An Improved Approach to Identifying Key Classes in Weighted Software Network." Mathematical Problems in Engineering 2016.
|Back to the journal content|
This article is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.