Concerns-Based Reverse Engineering for Partial Software Architecture Visualization

Hind Alamin M - Sudan University of Science and Technology (SUST) University, Sudan
Hany H Ammar - West Virginia University, USA


Citation Format:



DOI: http://dx.doi.org/10.30630/joiv.4.2.357

Abstract


Recently, reverse engineering (RE) is becoming one of the essential engineering trends for software evolution and maintenance. RE is used to support the process of analyzing and recapturing the design information in legacy systems or complex systems during the maintenance phase. The major problem stakeholders might face in understanding the architecture of existing software systems is that the knowledge of software architecture information is difficult to obtain because of the size of the system, and the existing architecture document often is missing or does not match the current implementation of the source code. Therefore, much more effort and time are needed from multiple stakeholders such as developers, maintainers and architects for obtaining and re-documenting and visualizing the architecture of a target system from its source code files. The current works is mainly focused on the developer viewpoint. In this paper, we present a RE methodology for visualizing architectural information for multiple stakeholders and viewpoints based on applying the RE process on specific parts of the source code. The process is driven by eliciting stakeholders’ concerns on specific architectural viewpoints to obtain and visualize architectural information related these concerns. Our contributions are three fold: 1- The RE methodology is based on the IEEE 1471 standard for architectural description and supports concerns of stakeholder including the end-user and maintainer; 2- It supports the visualization of a particular part of the target system by providing a visual model of the architectural representation which highlights the main components needed to execute specific functionality of the target system, 3- The methodology also uses architecture styles to organize the visual architecture information. We illustrate the methodology using a case study of a legacy web application system.


Keywords


Reveres Engineering; Software Architecture visualization; Extracting Architectural Information; Visualizing Architectural Information

Full Text:

PDF

References


M. Garg and M. K. Jindal, "Reverse Engineering Roadmap to Effective Software Design," International Journal of Recent Trands in Engineering, vol. 1, no. 2, May. 2009.

E. J. Chikofsky and H. C. James, "Reverse Engineering and Design Recovery: A Taxonomy," IEEE Software, vol. 7, no. 1, 13-17 Jan.1990.

L. H. Rosenberg and E. H. Lawrence, "Software re-engineering," Software Assurance Technology Center, 1996. [Online]. Available: http://www.scribd.com/doc/168304435/Software-Re-Engineering1.

H. Alamin M. and H. H Ammar, "Reverse Engineering for Documenting Software Architectures, a Literature Review," International Journal of Computer Applications Technology and Research, vol. 3, no. 12, pp. 785 - 790, Dec 2014.

M. Harman, W. B. Langdon, and W. Weimer, "Genetic Programming for Reverse Engineering," in Working Conference on Reverse Engineering (WCRE'13), Koblenz, Germany, 2013.

P. Clements, F. Bachmann, L. Bass and D. Ga, "Prologue: Software Architectures and Documentation," 2010. [Online]. [Accessed 26 April 2014].

R.Hilliard, D. Emery, M. Maier, "All About IEEE Std 1471," 2007. [Online]. Available: http://www.csee.wvu.edu/~ammar/CU/swarch/lectureslides/slidesstandards/all-about-ieee-1471.pdf.

Institute of Electrical and Electronics Engineers, "IEEE Recommended Practice for Architectural Description of Software Intensive Systems," 2000. [Online]. Available: http://cabibbo.dia.uniroma3.it/ids/altrui/ieee1471.pdf. [Accessed 9 July 2014].

P. Kruchten, "Architectural Blueprints: The “4+1†View Model of Software Architecture," IEEE Software, vol. 6, no. 12, p. 42–50, 1995.

N. Rozanski and E. Woods, Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, 2nd ed., Addison Wesley, 2005

N. Rozanski and E. Woods, "Applying viewpoints and views to software architecture," 2011. [Online]. Available: http://www.viewpointsandperspectives.info/vpandp /wpcontent/themes/secondedition/doc/VPandV_WhitePaper.pdf. [Accessed 14 June 2015].

M. Nicholas, "A survey of Software Architecture Viewpoint Models," in In Proceedings of 6th Australasian Workshop on Software and System Architectures, 2005.

E. Woods, "Experiences Using Viewpoints for Information Systems Architecture: An Industrial Experience Report".

K. Henk and H. V. Vliet, "A method for defining IEEE Std 1471 viewpoints," Journal of Systems and Software, ELSEVIER, vol. 79, no. 1, pp. 120-131, January 2006.

C. Riva and Y. Yang, "Generation of architectural documentation using XML," IEEE Computer Society Press, vol. 9, no. In Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE02), pp. 161-169, 2002.

P. Clements , "Comparing the SEI’s Views and Beyond Approach for Documenting Software Architectures with ANSI-IEEE 1471-2000," Software Engineering Institute, Carnegie Mellon University, July 2005.

N. Rozanski and E. Woods, "Viewpoints and Perspectives Reference Card," [Online]. Available: http://www.viewpoints-and-perspectives.info/home/viewpoints/functional-viewpoint/. [Accessed 10 November 2015].

N. Rozanski and E. Woods, "Viewpoints and Concerns," 2011. [Online]. Available: http://www.viewpoints-andperspectives.info/home/viewpoints. [Accessed 10 November 2015].

MySQL 5.7 Reference Manual Document, "MySQL 5.7 Reference Manual Document/Full-Text Search Functions/Natural Language Full-Text Searches," MySQL, [Online]. Available: https://dev.mysql.com/doc/refman/5.7/en/fulltext-natural-language.html. [Accessed 25 March 2017 at 8:00AM].

MySQL Reference Manual, "MySQL Reference Manual/Important Algorithms and Structures/10.7-Full-Text Search," [Online]. Available: https://dev.mysql.com/doc/internals/en/full-text-search.html. [Accessed 1 April 2017 at 05:30PM].

Doxygen Tool website and Doxygen Documentation. [Online]. Available: http://www.doxygen.org/download.html

MI C R O S O F T ® Architecture guide, "MI C R O S O F T ® Application Architecture Guide(patterns & practices Developer Center), Application ArcheTypes, Chapter 20: Choosing an Application Type," 2009. [Online]. Available: https://msdn.microsoft.com/en-us/library/ee658104.aspx.

C. Stringfellow, C. D. Amory and D. Potnur, "Comparison of software architecture reverse engineering methods," In Proceedings of Information and Software Technology, vol. 7, no. 48, pp. 484-497, July 2006.

C. Meiru, "An Approach to Documenting and Evolving Architectural Design Decisions," in International Conference on Software Engineering (ICSE'13), San Francisco, CA, USA, 2013.

R. K. Len Bass and P. Celements, Software Architecture in Practice, 2nd ed., Addison Wesley Professional, 2003.

K. Lau and C. M. Tran, "X-man: An mde tool for Component based System Development," in Software Engineering and Advanced Applications (SEAA), and EUROMICRO Conference, IEEE, 2012.

T. Panas , W. Lowe and U. Aßmann , "Towards the Uniï¬ed Recovery Architecture for Reverse Engineering," [Online]. Available: https://ai2-s2-pdfs.s3.amazonaws.com/b8e1/c9bd8cf3360b82de68e8049b281a1e2f4a25.pdf. [Accessed 30 October 2017].

G. C. Penta and D. Massimiliano , "Frontiers of Reverse Engineering: a Conceptual Model," pp. 38-47, 2008.

A. Razavizadeh , H. Verjus, S. Cˆımpan and S. Ducasse, "Multiple Viewpoints Architecture Extraction," in IEEE, 2009.

S. Demeyer, S. Ducasse and O. Nierstrasz, "Object Oriented Reengineering Patterns," Switzerland, Square Bracket Associates, 2008, p. 338.

M. Shahin , P. Liang and M. Khayyambashi, "Architectural Design Decision: Existing models and tools," in European Conference on Software Architecture, 2009.

G. Starke and P. Hruschka, "Arc24 Template for documentation of software and system architecture," 3 May 2017. [Online]. Available: http://www.arc24.de.

G. Liang and L. Yu, "Quality Driven Re-engineering Framework," Blekinge Institute of Technology, Sweden, December, 2013.

R. Arshad and K. K. Lau , "Extracting Executable Architecture From Legacy Code Using Static Reverse Engineering," in International Conference on Software Engineering Advances(ICSEA 2017), 2017.

J. Maras, M. Å tula and I. Crnkovic, "PHPModeler- a Web Model Extractor," in IEEE/ACM International Conference on Automated Software Engineering, (Nov2009), IEEE Computer Society, 2009.

W. Kim, S. Chung and B. Endicott Popovsky, "Software Architecture Model Driven Reverse Engineering Approach to Open Source Software Development," in The 3rd annual conference on Research in information technology, Atlanta, Georgia, USA, October 15–18, 2014, ACM.

A. Razavizadeh, H. Verjus, S. Cimpan and S. Ducasse, "Multiple Viewpoints Architecture Extraction," 2009 IEEE/IFIP WICSA/ECSA, pp. 329-332, 2009, IEEE.