An Effortless Approach for Migrating from Legacy Software Systems to Web Services

Author(s):  
K. Velmurugan ◽  
M.A. Maluk Mohamed

One of the vital reasons for reverse engineering legacy software systems is to make it inter-operable. Moreover, technological advancements and changes in usability also motivate reverse engineering to exploit new features and incorporate them in legacy software systems. In this context, Web services are emerging and evolving as solutions for software systems for business applications in terms of facilitating interactions between business to business and business to customers. Web services are gaining significance due to inherent features like interoperability, simple implementation, and exploiting the boom in Internet infrastructure. Thus, this work proposes a framework based strategy using .net for effortless migration from legacy software systems to Web services. Further, this work also proposes that software metrics observed during the process of reverse engineering facilitate design of Web services from legacy systems.

Author(s):  
Cameron J. Turner ◽  
John M. MacDonald ◽  
Jane A. Lloyd

Ideally, quality is designed into software, just as quality is designed into hardware. However, when dealing with legacy systems, demonstrating that the software meets required quality standards may be difficult to achieve. Evolving customer needs, expressed by new operational requirements, resulted in the need to develop a legacy software quality assurance program at Los Alamos National Laboratory (LANL). This need led to the development of a reverse engineering approach referred to as software archaeology. This paper documents the software archaeology approaches used at LANL to demonstrate the software quality in legacy software systems. A case study for the Robotic Integrated Packaging System (RIPS) software is included to describe our approach.


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.


Author(s):  
Shang Zheng ◽  
Feng Chen ◽  
Hongji Yang ◽  
Jianzhi Li

Cloud computing is a new paradigm for the intent of distributed resources sharing and coordinated problem solution. Affected by the Cloud trend and Service-Oriented need, many existing software systems will become legacy systems. These legacy software systems will need Cloud Oriented reengineering, which can facilitate the legacy systems reusable in Cloud Oriented architecture and allow the integration of legacy resources with Cloud features. This research focuses on establishing a general framework to assist with the evolution of legacy systems into Cloud environments. The methodology includes various phases, which use reverse engineering techniques to comprehend and decompose legacy systems, represent legacy resources by XML as Cloud component and integrate these Cloud components into Cloud environment. In this research, a legacy banking system has been chosen as a case study to prove the feasibility of the proposed approach. The legacy banking system can be transformed to run as a Service-Oriented Cloud application, which illustrates the proposed approach is powerful for utilising reusable legacy resources into Cloud environment.


Author(s):  
Алексей Геннадьевич Массель ◽  
Тимур Габилович Мамедов

В статье рассматривается адаптация методики реинжиниринга унаследованных систем. Приводится обзор подходов к реинжинирингу. Несмотря на то, что термин «реинжиниринг» в первую очередь относится к изменению бизнес процессов, он удачно подходит и к модернизации программного обеспечения. Обосновывается необходимость адаптации методики. В статье описывается применение адаптированной методики на примере реинжиниринга программного комплекса для прогнозных исследований ТЭК. Приведен исторический обзор версий ПК «ИНТЭК» и описаны поэтапно все шаги проведения его реинжиниринга на основе агентно-сервисного подхода The article presents an adaptation of the legacy systems reengineering technique. An overview of approaches to reengineering is given. Although the term “reengineering” primarily refers to changing business processes, it is well suited to software development. The necessity of adapting the method has been substantiated. The article describes the application of the described methodology on the example of software complex reengineering for predictive research of the fuel and energy complex. A historical overview of the current problem is given and all stages of INTEC PC reengineering are described step by step


Author(s):  
M. P. WARD ◽  
K. H. BENNETT

There is a vast collection of operational software systems which are vitally important to their users, yet are becoming increasingly difficult to maintain, enhance, and keep up to date with rapidly changing requirements. For many of these so-called legacy systems, the option of throwing the system away and rewriting it from scratch is not economically viable. Methods are therefore urgently required which enable these systems to evolve in a controlled manner. The approach described in this paper uses formal proven program transformations, which preserve or refine the semantics of a program while changing its form. These transformations are applied to restructure and simplify the legacy systems and to extract higher-level representations. By using an appropriate sequence of transformations, the extracted representation is guaranteed to be equivalent to the code. The method is based on a formal wide spectrum language, called WSL, with an accompanying formal method. Over the last ten years we have developed a large catalog of proven transformations, together with mechanically verifiable applicability conditions. These have been applied to many software development, reverse engineering, and maintenance problems. In this paper, we focus on the results of using this approach in the reverse engineering of medium scale, industrial software, written mostly in languages such as assembler and JOVIAL. Results from both benchmark algorithms and heavily modified, geriatric software are summarized. We conclude that formal methods have an important practical role in software evolution.


Author(s):  
Feidu Akmel ◽  
Ermiyas Birihanu ◽  
Bahir Siraj

Software systems are any software product or applications that support business domains such as Manufacturing,Aviation, Health care, insurance and so on.Software quality is a means of measuring how software is designed and how well the software conforms to that design. Some of the variables that we are looking for software quality are Correctness, Product quality, Scalability, Completeness and Absence of bugs, However the quality standard that was used from one organization is different from other for this reason it is better to apply the software metrics to measure the quality of software. Attributes that we gathered from source code through software metrics can be an input for software defect predictor. Software defect are an error that are introduced by software developer and stakeholders. Finally, in this study we discovered the application of machine learning on software defect that we gathered from the previous research works.


Author(s):  
Maria Ulan ◽  
Welf Löwe ◽  
Morgan Ericsson ◽  
Anna Wingkvist

AbstractA quality model is a conceptual decomposition of an abstract notion of quality into relevant, possibly conflicting characteristics and further into measurable metrics. For quality assessment and decision making, metrics values are aggregated to characteristics and ultimately to quality scores. Aggregation has often been problematic as quality models do not provide the semantics of aggregation. This makes it hard to formally reason about metrics, characteristics, and quality. We argue that aggregation needs to be interpretable and mathematically well defined in order to assess, to compare, and to improve quality. To address this challenge, we propose a probabilistic approach to aggregation and define quality scores based on joint distributions of absolute metrics values. To evaluate the proposed approach and its implementation under realistic conditions, we conduct empirical studies on bug prediction of ca. 5000 software classes, maintainability of ca. 15000 open-source software systems, and on the information quality of ca. 100000 real-world technical documents. We found that our approach is feasible, accurate, and scalable in performance.


Sign in / Sign up

Export Citation Format

Share Document