Practical Aspects of Software ReEngineering and Code Transformation.

 

A One Day Tutorial at CAiSE 2005

 

June 13th, 2005 – Porto, Portugal

 

Georgios Koutsoukos and Mohammad El-Ramly

Introduction

According to Hammer and Champey [1] the progression of events in the New Economy follows the following pattern: “customer takes control, competition intensifies and change becomes constant. There is an urgent need for transformation”. For all modern business organizations, business transformation, i.e., opening new markets, delivering through new channels, creating services of added value to the customers, is a critical success factor. Moreover, through the advent of the Internet and Wireless Applications, business is, more and more, directly driven through software-based solutions. However, according to analysts such as Gartner and IDC, 80% of the world's business runs on COBOL and each manually re-written line costs $6 – $23. More than 75% of e-business solutions reuse existing systems and 60% – 80% of an average company’s IT budget is spent on maintaining existing mainframe systems. Operating at such costs and having hundreds of thousands of lines of code under market pressure makes almost every organization to seriously think about software reengineering solutions.

Software reengineering is an umbrella that covers a range of activities: from techniques that aim to provide valuable information to maintenance and redevelopment teams, to automatic or semi-automatic support for transforming software artefacts to different forms at various levels of abstraction. This tutorial aims to introduce the audience to the field of software reengineering in general and the area of software transformation in particular. It provides an overview of available software reengineering techniques and their applicability in practice scenarios. Emphasis is given on code transformation by presenting some of the state-of-the-art techniques and supporting technologies complemented by a number of industry case studies that provide a “flavour” of the applicability, potential and issues of transformation solutions.  A very special and also very important, transformation scenario, the Web-enabling of legacy systems, will also be discussed and the potential solutions will be presented. The tutorial will conclude by providing a survey and categorization of available industry and academic reengineering tools.

Learning Outcomes: By the end of the tutorial, participants will have good understanding of software reengineering and its techniques, challenges, practical scenarios and tools. They will understand what code transformation is, what it is used for in practice and what code transformation tools can do. They will understand what Web-enabling is, why it is needed, and what technology supports it.

The Target Audience: Software practitioners and academics and postgraduate students interested in software reengineering.

Required Level of Expertise: The tutorial requires general background in software development and familiarity of the terminology in the field.

Duration: Full Day – 6 hours.

Tutorial Background: This is a new tutorial, developed specifically for CAiSE’05

Registration

Tutorial Outline:

1.      Introduction To Reengineering (2 hours)

 

1.1      What is Software Reengineering? Why is it Useful? – A Brief Market Analysis.

 

1.2      Reengineering Techniques

 

1.2.1        Overview and Categorization.

1.2.2        Terminology and (some) underlying theory.

 

1.3 Reengineering practice scenarios and symptoms.

 

2.      Code Transformation (2 ½ hours)

 

2.1      Techniques and Technologies

2.2      Code Transformation industrial case studies (COBOL code transformation live tool demonstration)

 

3.      Approaches to Web-Enabling Legacy Systems (1 hour)

 

3.1      Web-enabling via Data Access

3.2      Web-enabling via Logic Access

3.3      Web-enabling via Presentation Access

 

4.      Survey and Categorization of Reengineering Tools. (1/2 hour)

 

4.1      Tools Categories and Features.

4.2      Tools architecture(s).


References

[1]   M.Hammer and J.Champey. Reengineering The Corporation: A Manifesto for Business Revolution. Nicholas Brealey Publishing, 1998.

Presenters’ Biography

Georgios Koutsoukos is a Senior Solutions Analyst at ATX Software, an IT company specialized in application’s development, software architectures and reengineering solutions. His professional experience spans a variety of roles: object-oriented developer, engineering process coach, software solutions designer, instructor, and solutions innovation researcher. He has published and presented several papers on the modelling, design and implementation of software systems, with emphasis on the methodological aspects and tool support for architecture-based software evolution and systems’ reengineering. He holds an MSc in Enterprise Information Systems from King’s College London.

 

Dr. Mohammad El-Ramly is a lecturer in the Department of Computer Sciences, University of Leicester, UK, where he teaches a postgraduate module on software reengineering besides other software engineering subjects. His research interests include software reengineering, reverse engineering and evolution and the application of data mining methods to software data, particularly the practical aspects of these topics. He invented a process for interaction pattern mining, which he applied in light user interface reengineering, while doing his PhD at University of Alberta, Canada (2003), in a joint project with an industrial partner, Celcorp. His research results were published in major software engineering and data mining conferences and journals. He is currently involved in Leg2Net, an EU-funded project for research and technology transfer between University of Leicester and ATX Software. He is researching the invention of practical software architecture recovery methods suitable for integration in industrial reengineering tools.