Maintaining legacy system using reverse engineering approach

Dissertant

al-Shraah, Muhammad

Thesis advisor

al-Fawarih, Hamid J.
al-Khalidi, Jihad O.

University

Al albayt University

Faculty

Prince Hussein Bin Abdullah Faculty for Information Technology

Department

Department of Computer Science

University Country

Jordan

Degree

Master

Degree Date

2010

Arabic Abstract

الهندسة العكسية هي الفكرة الرئيسية لإعادة بناء أي نظام قائم.

و في هذه الرسالة فإننا نقترح استخدام الهندسة العكسي على شفرة المصدر للكشف عن أنماط التصاميم (Design patterns).

أن النموذج المقترح يعتبر منهج لصيانة الأنظمة القديمة باستخدام تقنية الهندسة العكسية من خلال الكشف عن أنماط التصاميم عن طريق الجمع بين تحليلات التراكيب و التحليلات الديناميكية.

في مرحلة التحليلات للتراكيب نأخذ ملف الشيفرة المصدرية و نستخرج منه الحقائق الثابتة من البرمجية و تشمل النتائج أسماء فئات التراكيب و العلاقات بينها و هذه الحقائق يتم تجهيزها لإيجاد الرسم المقابل لها في (UML) و هنا (Class diagram) و من ثم مرحلة التحليل الديناميكي و يتم فيها التحقق من أنماط السلوك الديناميكي للتصميم.

و يتم خلق حقائق ديناميكية و يتم تجهيز هذه الحقائق لإيجاد الرسم المقابل لها في (UML) و هنا نستخدم (Sequence diagram).

و بعد عمليتي التحليل للتراكيب و التحليل الديناميكي ندمج الناتج من هاتين العمليتين على شكل ملف امتداده XMI)) و يتم جمع النتائج من عملية التحليل السابقة للكشف عن أنماط التصاميم.

و في مرحلة التتبع لأنماط التصاميم نقوم باختبار النتائج من خلال أنماط التصاميم المقترحة في كتاب (.(GoF و هذه الرسالة تقدم نهجا جديدا في الكشف عن أنماط التصاميم من خلال الجمع بين التحليل للتراكيب و التحليل الديناميكي للكشف عن أنماط التصاميم في تطبيقات الجافا و فهم البنية الأساسية و القصد من نظام البرمجيات و سوف تعطي المطور للنظام القديم لمحه أسرع عن النظام برمته من دون الخوض في تفاصيل شفرة المصدر.

و سوف نقترح نهجا لاسترداد الاحتياجات (Requirements) من أنماط التصاميم من خلال دمج هذه النتيجة في فهم متطلبات النظام الجديدة.

English Abstract

Large organizations are not only faced with the problem of replacing their information system with completely new ones, but they have to maintain their legacy systems because it's important in the business environment.

Maintaining legacy systems is the most important phase of usual life-cycle of each software system and the architecture of many large software systems is rarely documented and if documented it is usually out of date.

Reverse engineering might seem to be a subtask of the software maintenance for instance and a key idea for reconstruction of any existing system; it is focused on the challenging task of understanding legacy program code without having suitable documentation.

It’s a methodology that greatly reduces time and effort in solving the program comprehension problems.

The proposed approach helps to understand software through detecting design patterns and recovering requirements from the reversed design patterns by integrating detected patterns in the requirements phase of software life cycle.

The detection of design pattern provides a better understanding of the software system.

There are many researches applied in the area of reverse engineering concerned in performing static and dynamic analysis and returns from source code into design, without benefiting from the detected patterns in the process of requirements engineering.

Also, a large number of testing environment are needed which increased time complexity.

This approach benefits from techniques and tools for source code analysis, design pattern detections and the earliest done in applying a reverse engineering process to object-oriented systems, by returns from source code into design, through the static and dynamic analysis and combine the result of analysis into a single input in the process of detection of design patterns.

During static analysis, class files were used and static facts were extracted, results include class names, relationships between classes and attributes of the classes.

These facts were then processed to find possible candidate instances that match the UML notation of a design pattern (class diagram) During dynamic analysis, validate the found candidate instances using the dynamic behavior of design patterns, UML sequence diagram used to create the dynamic design pattern definition.

GoF design patterns classification used to make easy identification of any requirement, understanding the structure and intent of the software system, gives the developer a faster overview of the whole system without going into details of the source code.

Main Subjects

Information Technology and Computer Science

Topics

No. of Pages

68

Table of Contents

Table of contents.

Abstract.

Chapter one : Introductions.

Chapter two : Theoretical background.

Chapter three : Proposed approach.

Chapter four : Evaluations and result.

Chapter five : Conclusion and future work.

References.

American Psychological Association (APA)

al-Shraah, Muhammad. (2010). Maintaining legacy system using reverse engineering approach. (Master's theses Theses and Dissertations Master). Al albayt University, Jordan
https://search.emarefa.net/detail/BIM-302936

Modern Language Association (MLA)

al-Shraah, Muhammad. Maintaining legacy system using reverse engineering approach. (Master's theses Theses and Dissertations Master). Al albayt University. (2010).
https://search.emarefa.net/detail/BIM-302936

American Medical Association (AMA)

al-Shraah, Muhammad. (2010). Maintaining legacy system using reverse engineering approach. (Master's theses Theses and Dissertations Master). Al albayt University, Jordan
https://search.emarefa.net/detail/BIM-302936

Language

English

Data Type

Arab Theses

Record ID

BIM-302936