SURVEY AND PROPOSAL OF A METHOD FOR BUSINESS RULES IDENTIFICATION IN LEGACY SYSTEMS SOURCE CODE AND EXECUTION LOGS

Author(s):  
Carlos Arévalo Maldonado ◽  
M. Teresa Gómez-López ◽  
Antonia M. Reina Quintero ◽  
Isabel Ramos

The business rules that govern the behaviour of a business process can be hardcoded in different ways in a software application. The modernization or improvement of these applications to a process-oriented perspective implies typically the modification of the business rules. Frequently, legacy systems are not well documented, and almost always the documentation they have is not updated. As a consequence, many times it is necessary to analyze the source code and databases structures to transform them into a business language more understandable by the business experts involved in the modernization process. Database triggers are one of the artefacts in which business rules are hardcoded. The authors focus on this kind of artefact, having in mind to avoid the manual analysis of the triggers by a database expert and bringing it closer to business experts. To achieve this, they need to discover business rules that are hardcoded in triggers and translate them into vocabularies that are commonly used by business experts. In this chapter, the authors propose an ADM-based architecture to discover business rules and rewrite them into a language that can be understood by the business experts.


Author(s):  
Liliana María Favre

Reverse Engineering is the process of analyzing available software artifacts such as requirements, design, architectures, code or byte code, with the objective of extracting information and providing high-level views on the underlying system. A common idea in reverse engineering is to exploit the source code as the most reliable description both of the behavior of a software system and of the organization and its business rules. However, reverse engineering is immersed in a variety of tasks related to comprehending and modifying software such as re-documentation of programs and relational databases, recovering of architectures, recovering of alternative design views, recovering of design patterns, building traceability between code and designs, modernization of interfaces or extracting the source code or high level abstractions from byte code when the source code is not available. Reverse engineering is hardly associated with modernization of legacy systems that were developed many years ago with technology that is now obsolete. These systems include software, hardware, business processes and organizational strategies and politics. Many of them remain in use after more than 20 years; they may be written for technology which is expensive to maintain and which may not be aligned with current organizational politics. Legacy systems resume key knowledge acquired over the life of an organization. Changes are motivated for multiple reasons, for instance the way in which we do business and create value. Important business rules are embedded in the software and may not be documented elsewhere. The way in which the legacy system operates is not explicit (Brodie and Stonebraker, 1995) (Sommerville, 2004).


Author(s):  
Minh Ngoc Ngo

Due to the need to reengineer and migrating aging software and legacy systems, reverse engineering has started to receive some attention. It has now been established as an area in software engineering to understand the software structure, to recover or extract design and features from programs mainly from source code. The inference of design and feature from codes has close similarity with data mining that extracts and infers information from data. In view of their similarity, reverse engineering from program codes can be called as program mining. Traditionally, the latter has been mainly based on invariant properties and heuristics rules. Recently, empirical properties have been introduced to augment the existing methods. This article summarizes some of the work in this area.


Author(s):  
Gleison S. Do Nascimento ◽  
Cirano Iochpe ◽  
Lucineia Thom ◽  
Andre C. Kalsing ◽  
Gleison S. do Nascimento

2006 ◽  
Vol 35 (3) ◽  
Author(s):  
Bronius Paradauskas ◽  
Aurimas Laurikaitis

This article discusses the process of enterprise knowledge extraction from relational database and source code of legacy information systems. Problems of legacy systems and main solutions for them are briefly described here. The uses of data reverse engineering and program understanding techniques to automatically infer as much as possible the schema and semantics of a legacy information system is analyzed. Eight step data reverse engineering algorithm for knowledge extraction from legacy systems is provided. A hypothetical example of knowledge extraction from legacy information system is presented.


Author(s):  
Steve McRobb ◽  
Richard Millham ◽  
Jianjun Pu ◽  
Hongji Yang

This chapter presents a report of an experimental approach that uses WSL as an intermediate language for the visualisation of COBOL legacy systems in UML. Key UML techniques are identified that can be used for visualisation. Many cases were studied, and one is presented in detail. The report concludes by demonstrating how this approach can be used to build a software tool that automates the visualisation task. Furthermore, understanding a system is of critical importance to a developer who must be able to understand the business processes being modeled by the system along with the system’s functionality, structure, events, and interactions with external entities. Such an understanding is of even more importance in reverse engineering. Although developers have the advantage of having the source code available, system documentation is often missing or incomplete, and the original users, whose requirements were used to design the system, are often long gone.


Author(s):  
Aqueo Kamada ◽  
Adriana Figueiredo ◽  
Marcos Rodrigues

Nowadays, the relationships among people, governments and organizations are subject to fast changes. The increasing demand for new services conducts to the need to create services from scratch and by integrating disparate and heterogeneous legacy systems. The problem is that the monolithic form as most of the systems were implemented turns the change excessively slow and expensive. Considering that some business logic portions are quite volatile and susceptible to changes and other portions are quite stable and less susceptible to changes, this paper proposes ontology based integrated development environment (IDE) that can capture business changes and quickly implement them into computational systems. The volatile portions are externalized as business rules and the stable portions as SOA based services. Business rules’ facts and conditions are linked to services, which are discovered in the business rules development or maintenance time. The IDE aggregates a set of tools to automate the modeling of business rules in the business people‘s terminology and to automate the integration of services. It is based on a set of ontologies to deal with metadata related to services, vocabularies and business rules. Business rules are modeled according to OMG’s Semantics of Business Vocabularies and Business Rules Metamodel.


Author(s):  
Youcef Baghdadi ◽  
Naoufel Kraiem

Reverse engineering techniques have become very important within the maintenance process providing several benefits. They retrieve abstract representations that not only facilitate the comprehension of legacy systems but also refactor these representations. Business process archaeology has emerged as a set of techniques and tools to recover business processes from source code and to preserve the existing business functions and rules buried in legacy source code. This chapter presents a reverse engineering process and a tool to retrieve services from running databases. These services are further reused in composing business processes with respect to Service-Oriented Architecture, a new architectural style that promotes agility.


Author(s):  
W. ERIC WONG ◽  
JENNY LI

Object-oriented languages support many modern programming concepts such as information hiding, inheritance, polymorphism, and dynamic binding. As a result, software systems implemented in OO languages are in general more reusable and reliable than others. Many legacy software systems, created before OO programming became popular, need to be redesigned and updated to OO programs. The process of abstracting OO designs from the procedural source code has often been done with limited assistance from program structural diagrams. Most reengineering focuses on the functionality of the original program, and the OO redesign often results in a completely new design based on the designers' understanding of the original program. Such an approach is not sufficient because it may take a significant amount of time and effort for designers to comprehend the original program. This paper presents a computer-aided semi-automatic method that abstracts OO designs from the original procedural source code. More specifically, it is a method for OO redesign based on program structural diagrams, visualization, and execution slices. We conducted a case study by applying this method to an inventory management software system. Results indicate that our method can effectively and efficiently abstract an appropriate OO design out of the original C code. In addition, some of the code from the original system can be automatically identified and reused in the new OO system.


Sign in / Sign up

Export Citation Format

Share Document