ABSTRACT
We propose an approach for component candidate identification as a first step towards the extraction of component-based architectures from object-oriented programs. Our approach uses as input dynamic call graphs, built from execution traces corresponding to use cases. This allows to better capture the functional dependencies between classes. The component identification is treated as a clustering problem. To this end, we use formal concept analysis and design heuristics.
We evaluate the feasibility of our approach on two programs. The obtained results are very satisfactory from both the performance and qualitative points of view.
- Johannes Bohnet and Jürgen Döllner. Visual exploration of function call graphs for feature location in complex software systems. In SOFTVIS, pages 95--104, 2006. Google ScholarDigital Library
- Sylvain Chardigny, Abdelhak Seriai, Dalila Tamzalit, and Mourad Oussalah. Quality-driven extraction of a component-based architecture from an object-oriented system. In CSMR, pages 269--273, 2008. Google ScholarDigital Library
- Thomas Eisenbarth, Rainer Koschke, and Daniel Simon. Locating features in source code. IEEE Trans. Software Eng., 29(3):210--224, 2003. Google ScholarDigital Library
- Robert Godin, Guy W. Mineau, Rokia Missaoui, Marc St-Germain, and Najib Faraj. Applying concept formation methods to software reuse. International Journal of Software Engineering and Knowledge Engineering, 5(1):119--142, 1995.Google ScholarCross Ref
- Orla Greevy and Stéphane Ducasse. Correlating features and code using a compact two-sided trace analysis approach. In 9th European Conference on Software Maintenance and Reengineering (CSMR 2005), 21--23 March 2005, Manchester, UK, Proceedings, pages 314--323. IEEE Computer Society, 2005. Google ScholarDigital Library
- Réda Kadri, Franois Merciol, and Salah Sadou. CBSE in Small and Medium-Sized Enterprise: Experience Report. In CBSE, 2006.Google ScholarDigital Library
- P. Kruchten. The 4+1 view model of architecture. IEEE Software, 12(6):42--50, 1995. Google ScholarDigital Library
- Dapeng Liu, Andrian Marcus, Denys Poshyvanyk, and Vaclav Rajlich. Feature location via information retrieval based filtering of a single scenario execution trace. In R. E. Kurt Stirewalt, Alexander Egyed, and Bernd Fischer, editors, ASE, pages 234--243, 2007. Google ScholarDigital Library
- D. H. Lorenz and J. Vlissides. Designing components versus objects: a transformational approach. In ICSE, May 2001. Google ScholarDigital Library
- Mark W. Maier, David Emery, and Rich Hilliard. Ansi-ieee 1471 and systems engineering. System Engineering, 7(3):257--270, 2004. Google ScholarDigital Library
- Nenad Medvidovic and Vladimir Jakobac. Using software evolution to focus architectural recovery. Automated Software Engineering, 13(2):225--256, 2006. Google ScholarDigital Library
- Brian S. Mitchell and Spiros Mancoridis. On the evaluation of the bunch search-based software modularization algorithm. Soft Comput., 12(1):77--93, 2008. Google ScholarDigital Library
- Denys Poshyvanyk, Yann-Gal Guhneuc, Andrian Marcus, Giuliano Antoniol, and Vclav Rajlich. Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval. volume 33, pages 420--432, 2007. Google ScholarDigital Library
- Roger S. Pressman. Software Engineering: A Practitioner's Approach. McGraw-Hill, 6th edition, 2004. Google ScholarDigital Library
- Houari A. Sahraoui, Hakim Lounis, Walcélio Melo, and Hafedh Mili. A concept formation based approach to object identification in procedural code. Automated Software Engineering, 6(4):387--410, 1999. Google ScholarDigital Library
- Houari A. Sahraoui, Walcélio Melo, Hakim Lounis, and Francois Dumont. Applying concept formation methods to object identification in procedural code. In ASE, pages 210--218, 1997. Google ScholarDigital Library
- Michael Siff and Thomas W. Reps. Identifying modules via concept analysis. IEEE Transaction on Software Engineering, 25(6):749--768, 1999. Google ScholarDigital Library
- Allier Simon, Grollemund Natan, Lalluque Renaud, and Delfour Kevin. http://naitan.free.fr/logo/.Google Scholar
- Petko Valtchev, David Grosser, Cyril Roume, and Mohamed Rouane Hacene. Galicia: an open platform for lattices. In ICCS, pages 241--254. Shaker Verlag, 2003.Google Scholar
- Arie van Deursen and Tobias Kuipers. Identifying objects using cluster and concept analysis. In ICSE, pages 246--255, Los Alamitos, CA, USA, 1999. Google ScholarDigital Library
- Hironori Washizaki and Yoshiaki Fukazawa. A technique for automatic component extraction from object-oriented programs by refactoring. Sci. Comput. Program., 56(1--2):99--116, 2005. Google ScholarDigital Library
Index Terms
- Identifying components in object-oriented programs using dynamic analysis and clustering
Recommendations
Identifying software components from object-oriented APIs based on dynamic analysis
ICPC '18: Proceedings of the 26th Conference on Program ComprehensionThe reuse at the component level is generally more effective than the one at the object-oriented class level. This is due to the granularity level where components expose their functionalities at an abstract level compared to the fine-grained object-...
Clustering of dependent components: a new paradigm for fMRI signal detection
Exploratory data-driven methods such as unsupervised clustering and independent component analysis (ICA) are considered to be hypothesis-generating procedures and are complementary to the hypothesis-led statistical inferential methods in functional ...
A Framework for Identifying Reusable Software Components Using Formal Concept Analysis
ITNG '09: Proceedings of the 2009 Sixth International Conference on Information Technology: New GenerationsComponent-based development (CBD) is concerned with enabling the design of software systems by reusing predeveloped components. One important activity in CBD is to analyze the business domain and identify potential reusable domain components. ...
Comments