The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.04 - July/August (2009 vol.35)
pp: 573-591
Stéphane Ducasse , INRIA, Lille Nord Europe
Damien Pollet , University of Lille 1, Francr
ABSTRACT
To maintain and understand large applications, it is important to know their architecture. The first problem is that unlike classes and packages, architecture is not explicitly represented in the code. The second problem is that successful applications evolve over time, so their architecture inevitably drifts. Reconstructing the architecture and checking whether it is still valid is therefore an important aid. While there is a plethora of approaches and techniques supporting architecture reconstruction, there is no comprehensive software architecture reconstruction state of the art and it is often difficult to compare the approaches. This paper presents a state of the art in software architecture reconstruction approaches.
INDEX TERMS
Software architecture reconstruction.
CITATION
Stéphane Ducasse, Damien Pollet, "Software Architecture Reconstruction: A Process-Oriented Taxonomy", IEEE Transactions on Software Engineering, vol.35, no. 4, pp. 573-591, July/August 2009, doi:10.1109/TSE.2009.19
REFERENCES
[1] J. Aldrich, C. Chambers, and D. Notkin, “Architectural Reasoning in ArchJava,” Proc. European Conf. Object-Oriented Programming, pp. 334-367, 2002.
[2] M. Anastasopoulos, J. Bayer, O. Flege, and C. Gacek, “A Process for Product Line Architecture Creation and Evaluation—PuLSE-DSSA Version 2.0,” Technical Report 038.00/E, Fraunhofer IESE, http://publica.fraunhofer.de/documentsN-1463.html , 2000.
[3] N. Anquetil and T. Lethbridge, “Experiments with Clustering as a Software Remodularization Method,” Proc. Working Conf. Reverse Eng., pp. 235-255, 1999.
[4] N. Anquetil and T.C. Lethbridge, “Recovering Software Architecture from the Names of Source Files,” J. Software Maintenance, vol. 11, pp. 201-221, 1999.
[5] G. Antoniol, R. Fiutem, and L. Cristoforetti, “Design Pattern Recovery in OO Software,” Proc. Int'l Workshop Program Comprehension, pp. 153-160, 1998.
[6] G. Arévalo, F. Buchli, and O. Nierstrasz, “Detecting Implicit Collaboration Patterns,” Proc. Working Conf. Reverse Eng. (WCRE), pp. 122-131, 2004.
[7] S. Bassil and R.K. Keller, “Software Visualization Tools: Survey and Analysis,” Proc. Int'l Workshop Program Comprehension, pp. 7-17, 2001.
[8] K. Beck and R. Johnson, “Patterns Generate Architectures,” Proc. European Conf. Object-Oriented Programming, pp. 139-149, 2004.
[9] F. Bergenti and A. Poggi, “Improving UML Designs Using Automatic Design Pattern Detection,” Proc. Int'l Conf. Software Eng. and Knowledge Eng., pp. 336-343, 2000.
[10] D. Bojic and D. Velasevic, “A Use-Case Driven Method of Architecture Recovery for Program Understanding and Reuse Reengineering,” Proc. Conf. Software Maintenance and Reeng., pp.23-33, 2000.
[11] I. Bowman and R. Holt, “Software Architecture Recovery Using Conway's Law,” Proc. Conf. Centre for Advanced Studies on Collaborative Research, pp. 123-133, 1998.
[12] I.T. Bowman, R.C. Holt, and N.V. Brewster, “Linux as a Case Study: Its Extracted Software Architecture,” Proc. Int'l Conf. Software Eng., pp. 555-563, 1999.
[13] R.J. Bril and A. Postma, “An Architectural Connectivity Metric and Its Support for Incremental Re-Architecting of Large Legacy Systems,” Proc. Int'l Workshop Program Comprehension, pp.269-280, 2001.
[14] R. Brooks, “Towards a Theory of the Comprehension of Computer Programs,” J. Man-Machine Studies, vol. 18, pp. 543-554, 1983.
[15] K. Brown, “Design Reverse-Engineering and Automated Design Pattern Detection in Smalltalk,” master's thesis, North Carolina State Univ., http://www.ksccary.comkbrown.htm, 1996.
[16] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stad, Pattern-Oriented Software Architecture—A System of Patterns. Wiley & Sons, 1996.
[17] I. Carmichael, V. Tzerpos, and R.C. Holt, “Design Maintenance: Unexpected Architectural Interactions,” Proc. Int'l Conf. Software Maintenance, pp. 134-140, 1995.
[18] M. Ceccato, M. Marin, K. Mens, L. Moonen, P. Tonella, and T. Tourwe, “A Qualitative Comparison of Three Aspect Mining Techniques,” Proc. Int'l Workshop Program Comprehension, pp. 13-22, 2005.
[19] K. Chen and V. Rajlich, “Case Study of Feature Location Using Dependence Graph,” Proc. Int'l Conf. Software Maintenance, pp.241-249, 2000.
[20] A. Christl, R. Koschke, and M.-A. Storey, “Equipping the Reflexion Method with Automated Clustering,” Proc. Working Conf. Reverse Eng., pp. 89-98, 2005.
[21] A. Cimitile and G. Visaggio, “Software Salvaging and the Call Dominance Tree,” J. Systems and Software, vol. 28, pp. 117-127, 1995.
[22] M.E. Conway, “How Do Committees Invent?” Datamation, vol. 14, no. 4, pp. 28-31, 1968.
[23] S. Demeyer, S. Tichelaar, and S. Ducasse, “FAMIX 2.1—The FAMOOS Information Exchange Model,” technical report, Univ. of Bern, 2001.
[24] L. Ding and N. Medvidovic, “Focus: A Light-Weight, Incremental Approach to Software Architecture Recovery and Evolution,” Proc. Working IEEE/IFIP Conf. Software Architecture, pp.191-201, 2001.
[25] The FAMOOS OO Reengineering Handbook, D. Ducasse and S.Demeyer, eds. Univ. of Bern, 1999.
[26] S. Ducasse and S. Tichelaar, “Dimensions of Reengineering Environment Infrastructures,” J. Software Maintenance, vol. 15, pp. 345-373, 2003.
[27] S. Ducasse, M. Lanza, and R. Bertuli, “High-Level Polymetric Views of Condensed Run-Time Information,” Proc. Conf. Software Maintenance and Reeng., pp. 309-318, 2004.
[28] S. Ducasse, T. Gîrba, M. Lanza, and S. Demeyer, “Moose: A Collaborative and Extensible Reengineering Environment,” Tools for Software Maintenance and Reengineering, pp. 55-71, RCOST/Software Tech nology, 2005.
[29] S. Ducasse, T. Gîrba, and A. Kuhn, “Distribution Map,” Proc. IEEE Int'l Conf. Software Maintenance, pp. 203-212, 2006.
[30] S. Ducasse, D. Pollet, M. Suen, H. Abdeen, and I. Alloui, “Package Surface Blueprints: Visually Supporting the Understanding of Package Relationships,” Proc. IEEE Int'l Conf. Software Maintenance, pp. 94-103, 2007.
[31] J. Duenas, W.L. de Oliveira, and J. de la Puente, “Architecture Recovery for Software Evolution,” Proc. Conf. Software Maintenance and Reeng., pp. 113-120, 1998.
[32] A. Dunsmore, M. Roper, and M. Wood, “OO Inspection in the Face of Delocalisation,” Proc. Int'l Conf. Software Eng., pp. 467-476, 2000.
[33] J. Ebert, B. Kullbach, V. Riediger, and A. Winter, “Gupro-Generic Understanding of Programs,” Electronic Notes in Theoretical Computer Science, vol. 72, no. 2, pp. 47-56, 2002.
[34] A.H. Eden, “Visualization of OO Architectures,” Proc. Int'l Conf. Software Eng. Workshop Software Visualization, 2001.
[35] T. Eisenbarth, R. Koschke, and D. Simon, “Locating Features in Source Code,” Computer, vol. 29, no. 3, pp. 210-224, Mar. 2003.
[36] W. Eixelsberger, M. Ogris, H. Gall, and B. Bellay, “Software Architecture Recovery of a Program Family,” Proc. Int'l Conf. Software Eng., pp. 508-511, 1998.
[37] E. Löhr, “Sab—The Software Architecture Browser,” Proc. IEEE Int'l Workshop Visualizing Software for Understanding and Analysis, 2005.
[38] J.-M. Favre, “Meta-Model and Model Co-Evolution within the 3D Software Space,” Proc. Workshop Evolution of Large-Scale Industrial Software, 2003.
[39] J.-M. Favre, “Cac Opho Ny: Metamodel-Driven Software Architecture Reconstruction,” Proc. Working Conf. Reverse Eng., pp. 204-213, 2004.
[40] L. Feijs and R. De Jong, “3D Visualization of Software Architectures,” Comm. ACM, vol. 41, no. 12, pp. 73-78, 1998.
[41] L. Feijs, R. Krikhaar, and R. van Ommering, “A Relational Approach to Support Software Architecture Analysis,” Software: Practice and Experience, vol. 28, no. 4, pp. 371-400, 1998.
[42] P. Finnigan, R. Holt, I. Kalas, S. Kerr, K. Kontogiannis, H. Mueller, J. Mylopoulos, S. Perelgut, M. Stanley, and K. Wong, “The Software Bookshelf,” IBM Systems J., vol. 36, no. 4, pp. 564-593, 1997.
[43] R. Fiutem, G. Antoniol, P. Tonella, and E. Merlo, “Art: An Architectural Reverse Engineering Environment,” J. Software Maintenance, vol. 11, no. 5, pp. 339-364, 1999.
[44] R. Fiutem, P. Tonella, G. Antoniol, and E. Merlo, “A Cliché-Based Environment to Support Architectural Reverse Engineering,” Proc. Int'l Conf. Software Maintenance, 1996.
[45] K. Gallagher, A. Hatch, and M. Munro, “A Framework for Software Architecture Visualization Assessment,” Proc. Third Int'l Workshop Visualizing Software for Understanding and Analysis, pp.76-81, 2005.
[46] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable OO Software. Addison Wesley, 1995.
[47] G. North, “An Open Graph Visualization System and Its Applications to Software Engineering,” Software: Practice and Experience, vol. 30, no. 11, pp. 1203-1233, 2000.
[48] D. Garlan, “Software Architecture: A Roadmap,” Proc. Int'l Conf. Software Eng., pp. 91-101, 2000.
[49] D. Garlan, R. Allen, and J. Ockerbloom, “Architectural Mismatch: Why Reuse Is So Hard,” IEEE Software, vol. 12, no. 6, pp. 17-26, Nov. 1995.
[50] D. Garlan, R.T. Monroe, and D. Wile, “Acme: Architectural Description of Component-Based Systems,” Foundations of Component-Based Systems, chapter 3, pp. 47-67, Cambridge Univ. Press, 2000.
[51] J.-F. Girard and R. Koschke, “Finding Components in a Hierarchy of Modules: A Step Towards Architectural Understanding,” Proc. Int'l Conf. Software Maintenance, 1997.
[52] O. Greevy and S. Ducasse, “Correlating Features and Code Using a Compact Two-Sided Trace Analysis Approach,” Proc. Conf. Software Maintenance and Reeng., pp. 314-323, 2005.
[53] J. Grundy and J. Hosking, “High-Level Static and Dynamic Visualisation of Software Architectures,” Proc. Symp. Visual Languages, pp. 5-12, 2000.
[54] Y.-G. Guéhéneuc and H. Albin-Amiot, “Using Design Patterns and Constraints to Automate the Detection and Correction of Inter-Class Design Defects,” Proc. Int'l Conf. and Exhibition Technology of Object-Oriented Languages and Systems, pp.296-305, 2001.
[55] Y.-G. Guéhéneuc, H. Sahraoui, and F. Zaidi, “Fingerprinting Design Patterns,” Proc. Working Conf. Reverse Eng., pp.172-181, 2004.
[56] Y.-G. Guéhéneuc, K. Mens, and R. Wuyts, “A Comparative Framework for Design Recovery Tools,” Proc. Conf. Software Maintenance and Reeng., 2006.
[57] Y. Guo, J. Atlee, and R. Kazman, “A Software Architecture Reconstruction Method,” Proc. Working IFIP Conf. Software Architecture, pp. 15-34, 1999.
[58] A. Hamou-Lhadj, E. Braun, D. Amyot, and T. Lethbridge, “Recovering Behavioral Design Models from Execution Traces,” Proc. Conf. Software Maintenance and Reeng., pp. 112-121, 2005.
[59] A. Hamou-Lhadj and T. Lethbridge, “A Survey of Trace Exploration Tools and Techniques,” Proc. Centers for Advanced Studies Conf., pp. 42-55, 2004.
[60] D.R. Harris, H.B. Reubenstein, and A.S. Yeh, “Reverse Engineering to the Architectural Level,” Proc. Int'l Conf. Software Eng. (ICSE), 1995.
[61] A.E. Hassan and R.C. Holt, “Using Development History Sticky Notes to Understand Software Architecture,” Proc. Int'l Workshop Program Comprehension, pp. 183-193, 2004.
[62] A. Hatch, “Software Architecture Visualisation,” PhD thesis, Research Inst. in Software Eng., Durham Univ., 2004.
[63] D. Heuzeroth, T. Holl, G. Högström, and W. Löwe, “Automatic Design Pattern Detection,” Proc. Int'l Workshop Program Comprehension, pp. 94-104, 2003.
[64] C. Hofmeister, R.L. Nord, and D. Soni, Applied Software Architecture. Addison Wesley, 2000.
[65] H. Schürr and S. Winter, “GXL: A Graph-Based Standard Exchange Format for Reengineering,” Science of Computer Programming, vol. 60, no. 2, pp. 149-170, 2006.
[66] R. Holt, “Sofware Architecture as a Shared Mental Model,” Proc. ASERC Workshop Software Architecture, 2001.
[67] R. Holt, “Structural Manipulations of Software Architecture Using Tarski Relational Algebra,” Proc. Working Conf. Reverse Eng., pp.210-219, 1998.
[68] K. De Hondt, “A Novel Approach to Architectural Recovery in Evolving OO Systems,” PhD thesis, Vrije Univ. Brussel, 1998.
[69] G. Huang, H. Mei, and F.-Q. Yang, “Runtime Recovery and Manipulation of Software Architecture of Component-Based Systems,” Automated Software Eng., vol. 13, no. 2, pp. 257-281, 2006.
[70] IEEE “Recommended Practice for Architectural Description for Software Intensive Systems,” technical report, Architecture Working Group, 2000.
[71] I. Ivkovic and M. Godfrey, “Enhancing Domain-Specific Software Architecture Recovery,” Proc. Int'l Workshop Program Comprehension, pp. 266-276, 2003.
[72] D. Jerding and S. Rugaber, “Using Visualization for Architectural Localization and Extraction,” Proc. Working Conf. Reverse Eng., pp.56-65, 1997.
[73] R. Kazman and L. Bass, “Categorizing Business Goals for Software Architectures,” technical report, Carnegie Mellon Univ., SEI, 2005.
[74] R. Kazman and S.J. Carrière, “Playing Detective: Reconstructing Software Architecture from Available Evidence,” Automated Software Eng., vol. 6, no. 2, pp. 107-138, 1999.
[75] R. Kazman and S.J. Carrière, “View Extraction and View Fusion in Architectural Understanding,” Proc. Int'l Conf. Software Reuse, 1998.
[76] R. Kazman, L.J. Bass, M. Webb, and G.D. Abowd, “SAAM: A Method for Analyzing the Properties of Software Architectures,” Proc. Int'l Conf. Software Eng., pp. 81-90, 1994.
[77] R. Kazman, M.H. Klein, M. Barbacci, T.A. Longstaff, H.F. Lipson, and S.J. Carrière, “The Architecture Tradeoff Analysis Method,” Proc. Int'l Conf. Eng. of Complex Computer Systems, pp. 68-78, 1998.
[78] R. Kazman, L. O'Brien, and C. Verhoef, “Architecture Reconstruction Guidelines,” technical report, Carnegie Mellon Univ., SEI, 2001.
[79] R. Kazman, L. O'Brien, and C. Verhoef, “Architecture Reconstruction Guidelines,” technical report, third ed., Carnegie Mellon Univ., SEI, 2003.
[80] A. Kellens, K. Mens, and P. Tonella, “A Survey of Automated Code Level Aspect Mining Techniques,” Trans. Aspect-Oriented Software Development, vol. 4, no. 4640, pp. 143-162, 2007.
[81] R.K. Keller, R. Schauer, S. Robitaille, and P. Pagé, “Pattern-Based Reverse Engineering of Design Components,” Proc. Int'l Conf. Software Eng., pp. 226-235, 1999.
[82] J. Knodel, I. John, D. Ganesan, M. Pinzger, F. Usero, J.L. Arciniegas, and C. Riva, “Asset Recovery and Their Incorporation into Product Lines,” Proc. Working Conf. Reverse Eng., pp.120-129, 2005.
[83] J. Knodel, D. Muthig, M. Naab, and M. Lindvall, “Static Evaluation of Software Architectures,” Proc. Conf. Software Maintenance and Reeng., pp. 279-294, 2006.
[84] R. Koschke, “Atomic Architectural Component Recovery for Program Understanding and Evolution,” PhD thesis, Univ. of Stuttgart, 2000.
[85] C. Kramer and L. Prechelt, “Design Recovery by Automated Search for Structural Design Patterns in OO Software,” Proc. Working Conf. Reverse Eng., pp. 208-216, 1996.
[86] R. Krikhaar, “Software Architecture Reconstruction,” PhD thesis, Univ. of Amsterdam, http://www.cs.vu.nl/x/sarsar.pdf, 1999.
[87] P. Kruchten, H. Obbink, and J. Stafford, “The Past, Present, and Future for Software Architecture,” IEEE Software, vol. 23, no. 2, pp.22-30, Mar./Apr. 2006.
[88] P.B. Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, vol. 12, no. 6, pp. 42-50, Nov. 1995.
[89] A. Kuhn, S. Ducasse, and T. Gîrba, “Semantic Clustering: Identifying Topics in Source Code,” Information and Software Technology, vol. 49, no. 3, pp. 230-243, 2007.
[90] D. Lange and Y. Nakamura, “Interactive Visualization of Design Patterns Can Help in Framework Understanding,” Proc. Ann. Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 342-357, 1995.
[91] G. Langelier, H.A. Sahraoui, and P. Poulin, “Visualization-Based Analysis of Quality for Large-Scale Software Systems,” Proc. Int'l Conf. Automated Software Eng., pp. 214-223, 2005.
[92] M. Lanza and S. Ducasse, “Polymetric Views—A Lightweight Visual Approach to Reverse Engineering,” IEEE Trans. Software Eng., vol. 29, no. 9, pp. 782-795, Sept. 2003.
[93] M. Lehman and L. Belady, Program Evolution: Processes of Software Change. London Academic Press, 1985.
[94] T. Lethbridge, S. Tichelaar, and E. Plödereder, “The Dagstuhl Middle Metamodel: A Schema for Reverse Engineering,” Electronic Notes in Theoretical Computer Science, vol. 94, pp. 7-18, 2004.
[95] Q. Li, H. Chu, S. Hu, P. Chen, and Z. Yun, “Architecture Recovery and Abstraction from the Perspective of Processes,” Proc. Working Conf. Reverse Eng., pp. 57-66, 2005.
[96] J. Lundberg and W. Löwe, “Architecture Recovery by Semi-Automatic Component Identification,” Electronic Notes in Theoretical Computer Science, vol. 82, no. 5, pp. 98-114, 2003.
[97] M. Lungu, A. Kuhn, T. Gîrba, and M. Lanza, “Interactive Exploration of Semantic Clusters,” Proc. IEEE Int'l Workshop Visualizing Software for Understanding and Analysis, pp. 95-100, 2005.
[98] M. Lungu, M. Lanza, and T. Gîrba, “Package Patterns for Visual Architecture Recovery,” Proc. Conf. Software Maintenance and Reeng., pp. 185-196, 2006, doi:10.1109/CSMR.2006.39.
[99] J. Magee, N. Dulay, S. Eisenbach, and J. Kramer, “Specifying Distributed Software Architectures,” Proc. European Software Eng. Conf., pp. 137-153, 1995.
[100] S. Mancoridis and B.S. Mitchell, “Using Automatic Clustering to Produce High-Level System Organizations of Source Cods,” Proc. Int'l Workshop Program Comprehension, 1998.
[101] A. Marcus, L. Feng, and J.I. Maletic, “3D Representations for Software Visualization,” Proc. ACM Symp. Software Visualization, p.27, 2003.
[102] A. Marcus, A. Sergeyev, V. Rajlich, and J. Maletic, “An Information Retrieval Approach to Concept Location in Source Code,” Proc. Working Conf. Reverse Eng., pp. 214-223, 2004.
[103] N. Medvidovic and R.N. Taylor, “A Classification and Comparison Framework for Software Architecture Description Languages,” IEEE Trans. Software Eng., vol. 26, no. 1, pp. 70-93, Jan. 2000, doi:10.1109/32.825767.
[104] N. Medvidovic and V. Jakobac, “Using Software Evolution to Focus Architectural Recovery,” Automated Software Eng., vol. 13, no. 2, pp. 225-256, 2006, doi:10.1007/s10515-006-7737-5.
[105] N. Medvidovic, A. Egyed, and P. Gruenbacher, “Stemming Architectural Erosion by Architectural Discovery and Recovery,” Proc. Int'l Workshop from Software Requirements to Architectures, 2003.
[106] N.C. Mendonça and J. Kramer, “Requirements for an Effective Architecture Recovery Framework,” Proc. Int'l Software Architecture Workshop, pp. 101-105, 1996.
[107] N.C. Mendonça and J. Kramer, “An Approach for Recovering Distributed System Architectures,” Automated Software Eng., vol. 8, nos. 3/4, pp. 311-354, 2001, ISSN 0928-8910.
[108] K. Mens, “Automating Architectural Conformance Checking by Means of Logic Meta Programming,” PhD thesis, Vrije Univ. Brussel, 2000.
[109] K. Mens, A. Kellens, F. Pluquet, and R. Wuyts, “Co-Evolving Code and Design with Intensional Views—A Case Study,” J. Computer Languages, Systems and Structures, vol. 32, no. 2, pp. 140-156, , 2006.
[110] M. Meyer, T. Gîrba, and M. Lungu, “Mondrian: An Agile Visualization Framework,” Proc. ACM Symp. Software Visualization, pp. 135-144, http://prog.vub.ac.be/Publications/2005/ vub-prog-tr-05-26.pdfhttp://www.iam.unibe.ch/ ~scg/Archive/PapersMeye06aMondrian.pdf , 2006, doi:10.1145/1148493. 1148513.
[111] P. Miodonski, T. Forster, J. Knodel, M. Lindvall, and D. Muthig, “Evaluation of Software Architectures with Eclipse,” technical report, Fraunhofer IESE, 2004.
[112] B.S. Mitchell and S. Mancoridis, “On the Automatic Modularization of Software Systems Using the Bunch Tool,” IEEE Trans. Software Eng., vol. 32, no. 3, pp. 193-208, Mar. 2006.
[113] H.A. Müller, K. Wong, and S.R. Tilley, “Understanding Software Systems Using Reverse Engineering Technology,” OO Technology for Database and Software Systems, pp. 240-252, World Scientific, 1995.
[114] G. Murphy, D. Notkin, and K. Sullivan, “Software Reflexion Models: Bridging the Gap between Source and High-Level Models,” Proc. SIGSOFT, pp. 18-28, 1995.
[115] G.C. Murphy, “Lightweight Structural Summarization as an Aid to Software Evolution,” PhD thesis, Univ. of Washington, 1996.
[116] M. Naab, “Evaluation of Graphical Elements and Their Adequacy for the Visualization of Software Architectures,” master's thesis, Fraunhofer IESE, 2005.
[117] J. Niere, J.P. Wadsack, and L. Wendehals, “Design Pattern Recovery Based on Source Code Analysis with Fuzzy Logic,” Technical Report tr-ri-01-222, Software Eng. Group, Univ. of Paderborn, 2001.
[118] B. Nora, G. Said, and A. Fadila, “A Comparative Classification of Aspect Mining Approaches,” J. Computer Science, vol. 4, no. 2, pp.322-325, 2006.
[119] L. O'Brien, C. Stoermer, and C. Verhoef, “Software Architecture Reconstruction: Practice Needs and Current Approaches,” Technical Report CMU/SEI-2002-TR-024, Carnegie Mellon Univ., 2002.
[120] L. O'Brien, D. Smith, and G. Lewis, “Supporting Migration to Services Using Software Architecture Reconstruction,” Proc. Int'l Workshop Software Technology and Eng. Practice, pp. 81-91, , 2005, doi:10.1109/STEP.2005.29.
[121] M. Pacione, “A Novel Software Visualisation Model to Support OO Program Comprehension,” PhD thesis, Univ. of Strathclyde, 2005.
[122] T. Panas, “A Framework for Reverse Engineering,” PhD thesis, Vajjo Univ., 2005.
[123] I. Pashov and M. Riebisch, “Using Feature Modelling for Program Comprehension and Software Architecture Recovery,” Proc. IEEE Int'l Conf. and Workshop Eng. of Computer-Based Systems, 2004.
[124] D.E. Perry and A.L. Wolf, “Foundations for the Study of Software Architecture,” ACM SIGSOFT Software Eng. Notes, vol. 17, no. 4, pp. 40-52, http://portal.acm.org/citation.cfm?id=1158338.1158738http:/ /www.bell-labs.com/user/ dep/work/papersswa-sen.ps, 1992.
[125] I. Philippow, D. Streitferdt, and M. Riebisch, “Design Pattern Recovery in Architectures for Supporting Product Line Development and Application,” Proc. European Conf. Object-Oriented Programming Workshop-Modeling Variability for OO Product Lines, pp. 42-57, 2003.
[126] M. Pinzger, “ArchView—Analyzing Evolutionary Aspects of Complex Software Systems,” PhD thesis, Vienna Univ. of Tech nology, 2005.
[127] M. Pinzger and H. Gall, “Pattern-Supported Architecture Recovery,” Proc. Int'l Workshop Program Comprehension, pp. 53-61, 2002, doi:10.1109/WPC.2002.1021318.
[128] M. Pinzger, M. Fischer, H. Gall, and M. Jazayeri, “Revealer: A Lexical Pattern Matcher for Architecture Recovery,” Proc. Working Conf. Reverse Eng., pp. 170-178, 2002, doi:10.1109/WCRE.2002.1173075.
[129] M. Pinzger, H. Gall, J.-F. Girard, J. Knodel, C. Riva, W. Pasman, C. Broerse, and J.G. Wijnstra, “Architecture Recovery for Product Families,” Proc. Int'l Workshop Product Family Eng., pp.332-351, http://www.infosys.tuwien.ac.at/Cafe/doc mp-ar_for_families.pdf, 2004.
[130] M. Pinzger, H. Gall, and M. Fischer, “Towards an Integrated View on Architecture and Its Evolution,” Electronic Notes in Theoretical Computer Science, vol. 127, no. 3, pp. 183-196, 2005.
[131] T. Reenskaug, Working with Objects: The OOram S.E. Method. Manning Publications, 1996.
[132] T. Richner and S. Ducasse, “Recovering High-Level Views of OO Applications from Static and Dynamic Information,” Proc. Int'l Conf. Software Maintenance, pp. 13-22, 1999, doi:10.1109/ICSM.1999.792487.
[133] T. Richner and S. Ducasse, “Using Dynamic Information for the Iterative Recovery of Collaborations and Roles,” Proc. Int'l Conf. Software Maintenance, pp. 34-43, 2002, doi:10.1109/ICSM.2002.1167745.
[134] C. Riva, “View-Based Software Architecture Reconstruction,” PhD thesis, Technical Univ. of Vienna, 2004.
[135] C. Riva and J.V. Rodriguez, “Combining Static and Dynamic Views for Architecture Reconstruction,” Proc. Conf. Software Maintenance and Reeng., p. 47, 2002.
[136] J.E. Robbins and D.F. Redmiles, “Software Architecture Critics in the Argo Design Environment,” Knowledge-Based Systems, vol. 11, no. 1, pp. 47-60, 1998, doi:10.1016/S0950-7051(98)00055-0.
[137] M. Salah and S. Mancoridis, “A Hierarchy of Dynamic Software Views: From Object Interactions to Feature Interacions,” Proc. Int'l Conf. Software Maintenance, pp. 72-81, 2004, doi:10.1109/ICSM.2004.1357792.
[138] N. Sangal, E. Jordan, V. Sinha, and D. Jackson, “Using Dependency Models to Manage Complex Software Architecture,” Proc. Conf. Object-Oriented Programming Systems Languages and Applications, pp. 167-176, 2005.
[139] K. Sartipi, “Software Architecture Recovery Based on Pattern Matching,” PhD thesis, School of Computer Science, Univ. of Waterloo, 2003.
[140] M. Sefika, “Design Conformance Management of Software Systems: An Architecture-Oriented Approach,” PhD thesis, Univ. of Illi nois, 1996.
[141] M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996.
[142] F. Shull, W.L. Melo, and V.R. Basili, “An Inductive Method for Discovering Design Patterns from OO Software System,” Technical Report CS-TR-3597, Univ. of Maryland, 1996.
[143] M. Siff and T. Reps, “Identifying Modules via Concept Analysis,” IEEE Trans. Software Eng., vol. 25, no. 6, pp. 749-768, Nov./Dec. 1999.
[144] S.E. Sim, C.L.A. Clarke, R.C. Holt, and A.M. Cox, “Browsing and Searching Software Architectures,” Proc. IEEE Int'l Conf. Software Maintenance, pp. 381-390, 1999, doi:10.1109/ICSM.1999. 792636.
[145] D. Simon and T. Eisenbarth, “Evolutionary Introduction of Software Product Lines,” Proc. Software Product Lines Conf., pp.272-282, 2002.
[146] K. Smolander, K. Hoikka, J. Isokallio, M. Kataikko, T. Mäkelä, and H. Kälviäinen, “Required and Optional Viewpoints—What Is Included in Software Architecture?” technical report, Univ. of Lappeenranta, 2001.
[147] P. Sochos, M. Riebisch, and I. Philippow, “The Feature-Architecture Mapping (FArM) Method for Feature-Oriented Development of Software Product Lines,” Proc. Ann. IEEE Int'l Symp. and Workshop Eng. of Computer Based Systems, pp.308-318, 2006.
[148] D. Soni, R.L. Nord, and C. Hofmeister, “Software Architecture in Industrial Applications,” Proc. Int'l Conf. Software Eng., pp.196-207, 1995.
[149] C. Stoermer and L. O'Brien, “Map—Mining Architectures for Product Line Evaluations,” Proc. Working IEEE/IFIP Conf. Software Architecture, pp. 35-41, 2001.
[150] C. Stoermer, L. O'Brien, and C. Verhoef, “Moving Towards Quality Attribute Driven Software Architecture Reconstruction,” Proc. Working Conf. Reverse Eng., pp. 46-56, 2003, doi:10.1109/WCRE.2003.1287236.
[151] C. Stoermer, A. Rowe, L. O'Brien, and C. Verhoef, “Model-Centric Software Architecture Reconstruction,” Software: Practice and Experience, vol. 36, no. 4, pp. 333-363, 2006, doi:10.1002/spe.v36:4.
[152] M.-A.D. Storey and H.A. Müller, “Manipulating and Documenting Software Structures Using SHriMP Views,” Proc. Int'l Conf. Software Maintenance, pp. 275-284, 1995.
[153] M.-A.D. Storey, F.D. Fracchia, and H.A. Müller, “Cognitive Design Elements to Support the Construction of a Mental Model During Software Exploration,” J. Software Systems, vol. 44, pp. 171-185, 1999.
[154] K.J. Sullivan, W.G. Griswold, Y. Cai, and B. Hallen, “The Structure and Value of Modularity in Software Design,” Proc. European Software Eng. Conf./Symp. Foundations of Software Eng., 2001.
[155] D. Svetinovic and M. Godfrey, “A Lightweight Architecture Recovery Process,” Proc. Working Conf. Reverse Eng., 2001.
[156] T. Systä, “On the Relationships between Static and Dynamic Models in Reverse Engineering Java Software,” Proc. Working Conf. Reverse Eng., pp. 304-313, 1999.
[157] T. Systä, K. Koskimies, and H. Müller, “Shimba—An Environment for Reverse Engineering Java Software Systems,” Software: Practice and Experience, vol. 31, no. 4, pp. 371-394, 2001, doi:10.1002/spe.386.
[158] A. Telea, A. Maccari, and C. Riva, “An Open Visualization Toolkit for Reverse Architecting,” Proc. Int'l Workshop Program Comprehension, pp. 3-13, 2002, doi:10.1109/WPC.2002.1021303.
[159] S.R. Tilley, D.B. Smith, and S. Paul, “Towards a Framework for Program Understanding,” Proc. Int'l Workshop Program Comprehension, p. 19, 1996, doi:10.1109/WPC.1996.501117.
[160] T. Tilley, R. Cole, P. Becker, and P. Eklund, “A Survey of Formal Concept Analysis Support for Software Engineering Activities,” Proc. Int'l Conf. Formal Concept Analysis, 2003.
[161] P. Tonella, “Concept Analysis for Module Restructuring,” IEEE Trans. Software Eng., vol. 27, no. 4, pp. 351-363, Apr. 2001.
[162] J. Tran and R. Holt, “Forward and Reverse Repair of Software Architecture,” Proc. Conf. Centre for Advanced Studies on Collaborative Research, 1999.
[163] A. Trifu, “Using Cluster Analysis in the Architecture Recovery of OO Systems,” PhD thesis, Univ. of Karlsruhe, 2001.
[164] Q. Tu and M.W. Godfrey, “The Build-Time Software Architecture View,” Proc. Int'l Conf. Software Maintenance, pp. 398-407, 2001.
[165] A. van Deursen, C. Hofmeister, R. Koschke, L. Moonen, and C. Riva, “Symphony: View-Driven Software Architecture Reconstruction,” Proc. Working IEEE/IFIP Conf. Software Architecture, pp.122-134, 2004.
[166] A. Vasconcelos and C. Werner, “Software Architecture Recovery Based on Dynamic Analysis,” Proc. Brazilian Symp. Software Eng., 2004.
[167] R.J. Walker, G.C. Murphy, J. Steinbok, and M.P. Robillard, “Efficient Mapping of Software System Traces to Architectural Views,” Proc. Conf. Centre for Advanced Studies on Collaborative Research, p. 12, 2000.
[168] L. Wendehals, “Improving Design Pattern Instance Recognition by Dynamic Analysis,” Proc. Int'l Conf. Software Eng. Workshop Dynamic Analysis, 2003.
[169] T. Wiggerts, “Using Clustering Algorithms in Legacy Systems Remodularization,” Proc. Working Conf. Reverse Eng., pp.33-43, 1997.
[170] N. Wilde and R. Huitt, “Maintenance Support for OO Programs,” IEEE Trans. Software Eng., vol. 18, no. 12, pp. 1038-1044, Dec. 1992.
[171] N. Wilde and M. Scully, “Software Reconnaisance: Mapping Program Features to Code,” J. Software Maintenance, vol. 7, no. 1, pp. 49-62, 1995.
[172] N. Wilde, M. Buckellew, H. Page, V. Rajlich, and L. Pounds, “A Comparison of Methods for Locating Features in Legacy Software,” J. Systems and Software, vol. 65, no. 2, pp. 105-114, 2003, doi:10.1016/S0164-1212(02)00052-3.
[173] K. Wong, “The Rigi User's Manual-Version 5.4.4,” technical report, Univ. of Victoria, 1998.
[174] W.E. Wong, J.R. Horgan, S.S. Gokhale, and K.S. Trivedi, “Locating Program Features Using Execution Slices,” Proc. IEEE Symp. Application-Specific Systems and Software Eng. and Technology, pp.194-203, 1999, doi:10.1109/ASSET.1999.756769.
[175] S.G. Woods, S. Jercarrière, and R. Kazman, “The Perils and Joys of Reconstructing Architectures,” SEI Interactive, The Architect, vol. 2, no. 3, 1999.
[176] L. Wu, H. Sahraoui, and P. Valtchev, “Program Comprehension with Dynamic Recovery of Code Collaboration Patterns and Roles,” Proc. Conf. Centre for Advanced Studies on Collaborative Research, pp. 56-67, 2004.
[177] X. Wu, A. Murray, M.-A. Storey, and R. Lintern, “A Reverse Engineering Approach to Support Software Maintenance: Version Control Knowledge Extraction,” Proc. Working Conf. Reverse Eng., pp. 90-99, 2004.
[178] R. Wuyts, “Declarative Reasoning about the Structure OO Systems,” Proc. Technology of Object-Oriented Languages and Systems, pp. 112-124, 1998.
[179] R. Wuyts, “A Logic Meta-Programming Approach to Support the Co-Evolution of OO Design and Implementation,” PhD thesis, Vrije Universiteit Brussel, 2001.
[180] H. Yan, D. Garlan, B. Schmerl, J. Aldrich, and R. Kazman, “DiscoTect: A System for Discovering Architectures from Running Systems,” Proc. Int'l Conf. Software Eng., pp. 470-479, 2004.
[181] A.S. Yeh, D.R. Harris, and M.P. Chase, “Manipulating Recovered Software Architecture Views,” Proc. Int'l Conf. Software Eng., 1997.
15 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool