Measuring Business Logic Complexity in Software Systems

Many organizations adopt software to support their business process and business logic is embedded in their systems. To meet ever-changing business needs, business logic in software must be continuously changed and renewing the whole system as known as software modernization is performed for systems running for a long time. When modernizing especially large scale system, many developers are involved to deal with large amount of code. To support software modernization, project management is needed and managers use volume information such as software metrics to find hard things, estimate efforts and qualities though when analyzing business logic, existing metrics are not useful because existing metrics do not distinguish business logic from other infrastructure activities. To solve this problem we define business logic complexity to capture business logic from the source code and to quantify how hard it is to understand. First we identify business logic by excluding format checks and by using input and output data in condition and calculation statements. Next, we quantify the degree of complexity of business logic. When making decisions about improving applications, our method makes it possible to prioritize the aspects of the business logic that are complex and hard to understand.

[1]  Jianling Sun,et al.  Business rules extraction from large legacy systems , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[2]  Arie van Deursen,et al.  Realizing service migration in industry—lessons learned , 2011, J. Softw. Evol. Process..

[3]  Harry M. Sneed,et al.  Migrating from COBOL to Java , 2010, 2010 IEEE International Conference on Software Maintenance.

[4]  Philip H. Newcomb,et al.  Information Systems Transformation: Architecture-Driven Modernization Case Studies , 2010 .

[5]  Olegas Vasilecas,et al.  Extracting Business Rules from Existing Enterprise Software System , 2012, ICIST.

[6]  Wei-Tek Tsai,et al.  Business rule extraction from legacy code , 1996, Proceedings of 20th International Computer Software and Applications Conference: COMPSAC '96.

[7]  Keisuke Yano,et al.  Feature-gathering dependency-based software clustering using Dedication and Modularity , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[8]  Patrick Albert,et al.  Extracting business rules from COBOL: A model-based framework , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[9]  Harry M. Sneed A pilot project for migrating COBOL code to web services , 2009, International Journal on Software Tools for Technology Transfer.

[10]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[11]  Chengliang Wang,et al.  Extracting Prime Business Rules from Large Legacy System , 2008, 2008 International Conference on Computer Science and Software Engineering.

[12]  Erik Putrycz,et al.  Connecting Legacy Code, Business Rules and Documentation , 2008, RuleML.

[13]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[14]  Yishai A. Feldman,et al.  Where is the business logic? , 2013, ESEC/FSE 2013.

[15]  F. Wilcoxon Individual Comparisons by Ranking Methods , 1945 .

[16]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[17]  Keisuke Yano,et al.  SArF map: Visualizing software architecture from feature and layer viewpoints , 2013, 2013 21st International Conference on Program Comprehension (ICPC).