Recovering business processes from business applications

A business process, such as the process followed when ordering a book, describes the order of executing tasks (e.g., check inventory, verify credit card, and ship book). Business applications implement the business processes for the daily operations of an organization. Organizations must continuously modify their business applications to accommodate changes to business processes. However, business applications are often designed and developed without referring to the documented definitions of business processes. Modifying business applications is a time-consuming and error-prone task. To correctly perform this task, developers require an in-depth understanding of multi-tiered applications and the definitions of the business processes which they implement. In this paper, we present an approach which automatically recovers business process definitions from multi-tiered business applications. Given the starting UI screen of a particular business process, the approach recovers the process definition by tracing the flow of control throughout the different tiers of the business application. We demonstrate the effectiveness of our approach through a case study using 15 business applications from three large open-source projects. Our case study demonstrates that our approach can recover business process definitions from the implementation with high precision and recall.

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

[2]  Johannes Koskinen,et al.  Constructing Usage Scenarios for API Redocumentation , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[3]  Giuliano Antoniol,et al.  Design pattern recovery in object-oriented software , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[4]  Giuseppe A. Di Lucca,et al.  WARE: a tool for the reverse engineering of Web applications , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[5]  H. M. Sneed,et al.  Inverse transformation of software from code to specification , 1988, Proceedings. Conference on Software Maintenance, 1988..

[6]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[7]  Boudewijn F. van Dongen,et al.  Business process mining: An industrial application , 2007, Inf. Syst..

[8]  Andrian Marcus,et al.  Recovering documentation-to-source-code traceability links using latent semantic indexing , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[9]  Danny C. C. Poo Explicit representation of business policies , 1998, Proceedings 1998 Asia Pacific Software Engineering Conference (Cat. No.98EX240).

[10]  Lutz Prechelt,et al.  Design recovery by automated search for structural design patterns in object-oriented software , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[11]  Giuseppe A. Di Lucca,et al.  Abstracting business level UML diagrams from Web applications , 2003, Fifth IEEE International Workshop on Web Site Evolution, 2003. Theme: Architecture. Proceedings..

[12]  Rudolf K. Keller,et al.  Pattern-based reverse-engineering of design components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[13]  Arie van Deursen,et al.  Rapid system understanding: Two COBOL case studies , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[14]  Ying Zou,et al.  Model-driven business process recovery , 2004, 11th Working Conference on Reverse Engineering.

[15]  Lionel C. Briand,et al.  Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software , 2006, IEEE Transactions on Software Engineering.

[16]  Melody Moore Jackson,et al.  Migrating legacy user interfaces to the Internet: shifting dialogue initiative , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[17]  Eleni Stroulia,et al.  User Interface Reverse Engineering in Support of Interface Migration to the Web , 2003, Automated Software Engineering.

[18]  Harry M. Sneed Software Renewal: A case Study , 1984, IEEE Software.

[19]  Michele Risi,et al.  Design pattern recovery by visual language parsing , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[20]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[21]  Daniel Sinnig The complicity of patterns and model-based UI development , 2004 .

[22]  Aniello Cimitile,et al.  Identifying objects in legacy systems using design metrics , 1999, J. Syst. Softw..

[23]  C. J. Pound,et al.  Extracting Business Rules from Information Systems , 1999 .

[24]  David A. Carr,et al.  A pattern-supported approach to the user interface design process , 2001 .

[25]  Václav Rajlich,et al.  Case study of feature location using dependence graph , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[26]  Paolo Tonella,et al.  Understanding and Restructuring Web Sites with ReWeb , 2001, IEEE Multim..

[27]  R. E. Kurt Stirewalt,et al.  Model based user-interface reengineering , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[28]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[29]  Paolo Tonella,et al.  Reverse engineering of the interaction diagrams from C++ code , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[30]  Ying Zou,et al.  A Framework for Exacting Workflows from E-Commerce Systems , 2005 .

[31]  Stéphane Ducasse,et al.  Using dynamic information for the iterative recovery of collaborations and roles , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[32]  Yann-Gaël Guéhéneuc,et al.  Feature identification: a novel approach and a case study , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[33]  Boudewijn F. van Dongen,et al.  Process Mining and Verification of Properties: An Approach Based on Temporal Logic , 2005, OTM Conferences.

[34]  Giuliano Antoniol,et al.  An approach for reverse engineering of web-based applications , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[35]  Barry W. Boehm,et al.  Value-based software engineering: reinventing , 2003, SOEN.

[36]  Harry M. Sneed,et al.  Extracting business rules from source code , 1996, WPC '96. 4th Workshop on Program Comprehension.

[37]  Eleni Stroulia,et al.  Understanding the Evolution and Co-evolution of Classes in Object-oriented Systems , 2006, Int. J. Softw. Eng. Knowl. Eng..

[38]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[39]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[40]  Spencer Rugaber,et al.  Knowledge-based user interface migration , 1994, Proceedings 1994 International Conference on Software Maintenance.

[41]  Harry M. Sneed,et al.  Extracting object-oriented specification from procedurally oriented programs , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[42]  Harry M. Sneed Extracting business logic from existing COBOL programs as a basis for redevelopment , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[43]  Boudewijn F. van Dongen,et al.  Workflow mining: A survey of issues and approaches , 2003, Data Knowl. Eng..

[44]  Giuseppe A. Di Lucca,et al.  Migrating legacy systems towards object-oriented platforms , 1997, 1997 Proceedings International Conference on Software Maintenance.

[45]  Suzanne M. Embury,et al.  A method for the manual extraction of business rules from legacy source code , 2002 .

[46]  Lionel C. Briand,et al.  Towards the reverse engineering of UML sequence diagrams , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..