Abstract
Software architecture reconstruction techniques aim at recovering software architecture documentation regarding a software system. These techniques mainly analyze coupling/dependencies among the software modules to group them and reason about the high-level structure of the system. Hereby, inter-dependencies among the software modules are mainly represented with design structure matrices or regular directed/undirected graphs. In this paper, we introduce a software architecture reconstruction approach that utilizes hypergraphs for representing inter-module dependencies. We focus on PL/SQL programs that are developed as data access tiers of business software. These programs are mainly composed of procedures that are coupled due to commonly accessed database elements. Hypergraphs are more appropriate for capturing this type of coupling, where an element can relate to more than one procedure. We illustrate the application of the approach with an industrial PL/SQL program from the telecommunications domain. We analyze and represent dependencies among the modules of this program in the form of a hypergraph. Then, we perform modularity clustering on this model and propose a packaging structure to the designer accordingly. We observed promising results in comparison with previous work. The accuracy of the results were also approved by domain experts.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
The number of procedures and tables are slightly different compared to the previous study [2] due to the evolution of the system.
- 5.
The approach is reevaluated for the new version of the subject system.
References
Oracle Database Online Documentation 11g Release developing and using stored procedures. http://docs.oracle.com/. Accessed Mar 2016
Altinisik, M., Sozer, H.: Automated procedure clustering for reverse engineering PL/SQL programs. In: Proceedings of the 31st ACM Symposium on Applied Computing, pp. 1440–1445 (2016)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. Addison-Wesley, Boston (2003)
Callo, T., America, P., Avgeriou, P.: A top-down approach to construct execution views of a large software-intensive system. J. Sof. Evol. Process 25(3), 233–260 (2013)
Çatalyürek, Ü.V., Kaya, K., Langguth, J., Uçar, B.: A partitioning-based divisive clustering technique for maximizing the modularity. In: Proceedings of the 10th DIMACS Implementation Challenge Workshop - Graph Partitioning and Graph Clustering, pp. 171–186 (2012)
Çatalyürek, U., Kaya, K., Langguth, J., Uçar, B.: A partitioning-based divisive clustering technique for maximizing the modularity. In: Graph Partitioning and Graph Clustering. Contemporary Mathematics, vol. 588. American Mathematical Society (2013)
Chaparro, O., Aponte, J., Ortega, F., Marcus, A.: Towards the automatic extraction of structural business rules from legacy databases. In: Proceedings of the 19th Working Conference on Reverse Engineering, pp. 479–488 (2012)
Ducasse, S., Pollet, D.: Software architecture reconstruction: a process-oriented taxonomy. IEEE Trans. Soft. Eng. 35(4), 573–591 (2009)
Eppinger, S., Browning, T.: Design Structure Matrix Methods and Applications. MIT Press, Cambridge (2012)
Guo, G., Atlee, J., Kazman, R.: A software architecture reconstruction method. In: Proceedings of the 1st Working Conference on Software Architecture, pp. 15–34 (1999)
Habringer, M., Moser, M., Pichler, J.: Reverse engineering PL/SQL legacy code: an experience report. In: Proceedings of the IEEE International Conference on Software Maintenance and Evolution, pp. 553–556 (2014)
Qingshan, L., et al.: Architecture recovery and abstraction from the perspective of processes. In: WCRE, pp. 57–66 (2005)
Mitchell, B., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE Trans. Soft. Eng. 32(3), 193–208 (2006)
Murphy, G., Notkin, D., Sullivan, K.: Software reflexion models: Bridging the gap between design and implementation. IEEE Trans. Soft. Eng. 27(4), 364–380 (2001)
Clements, P., et al.: Documenting Software Architectures. Addison-Wesley, Bostan (2002)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
Eick, S., et al.: Does code decay? assessing the evidence from change management data. IEEE Trans. Soft. Eng. 27(1), 1–12 (2001)
Sangal, N., Jordan, E., Sinha, V., Jackson, D.: Using dependency models to manage complex software architecture. In: Proceedings of the 20th Conference on Object-Oriented Programming, Systems, Languages and Applications, pp. 167–176 (2005)
Sangwan, R., Neill, C.: Characterizing essential and incidental complexity in software architectures. In: Proceedings of the 3rd European Conference on Software Architecture, pp. 265–268 (2009)
Sullivan, K., Cai, Y., Hallen, B., Griswold, W.: The structure and value of modularity in software design. In: Proceedings of the 8th European Software Engineering Conference, pp. 99–108 (2001)
Sun, C., Zhou, J., Cao, J., Jin, M., Liu, C., Shen, Y.: ReArchJBs: a tool for automated software architecture recovery of javabeans-based applications. In: Proceedings of the 16th Australian Software Engineering Conference, pp. 270–280 (2005)
Taylor, R., Medvidovic, N., Dashofy, E.: Software Architecture: Foundations, Theory, and Practice. Wiley, Hoboken (2009)
Acknowledgements
We thank the software developers and managers at Turkcell for sharing their code base with us and supporting our analysis.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Ersoy, E., Kaya, K., Altınışık, M., Sözer, H. (2016). Using Hypergraph Clustering for Software Architecture Reconstruction of Data-Tier Software. In: Tekinerdogan, B., Zdun, U., Babar, A. (eds) Software Architecture. ECSA 2016. Lecture Notes in Computer Science(), vol 9839. Springer, Cham. https://doi.org/10.1007/978-3-319-48992-6_24
Download citation
DOI: https://doi.org/10.1007/978-3-319-48992-6_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-48991-9
Online ISBN: 978-3-319-48992-6
eBook Packages: Computer ScienceComputer Science (R0)