@Article{, title={اقتراح أداة في الهندسة العكسية لتحليل الشفرة المصدرية للبرمجيات المكتوبة بلغة الجافا}, author={آلاء ياسين طاقة and توفيق مقداد توفيق}, journal={AL-Rafidain Journal of Computer Sciences and Mathematics مجلة الرافدين لعلوم الحاسوب والرياضيات}, volume={10}, number={1}, pages={385-407}, year={2013}, abstract={Reverse engineering has presented solution to a major problem in the development and maintenance of the legacy software which is the process of understanding these software types, It is a difficult task because most of legacy software lacked a proper documentation or a correct design model. Unified Modeling Language has an important and great role in determine (extract) the specifications of the software in accordance with the principles of the reverse engineering and modeling it using one of its types which is a Class Diagram. Reverse Engineering Class Diagram is an abstract representation gives an overview of the software structure and it does not give full information about the internal details and the relationships of software components.In this research a computer aided software engineering tool has been constructed which is called RMDT (Relational Meta Data Table). It bases on constructing an interpreter of an entered software source code analyzing to extract an information that assist in understanding the structure of the software and to clarify its components and the relationships that bind its parts (internal structural of the entered software).The RMDT tool represents the information in tables which have been designed in a highly flexible manner and be suitable for use in the future when applying software re-engineering on the entered software. Furthermore ,the research has studied and tested several of most common software engineering tools which used to implement reverse engineering like (Reverse, ArgoUML, Rational rose, Enterprise Architecture (EA), class2uml, Together). The analysis focused on these tools to produce class diagram of the software source code written in Java. The produced class diagram includes the number of classes, relationship types among classes and the common classes.However, the obtained results from the RMDT tool has been compared with those obtained from others. The produced tables from RMDT tool includes all the information required to recover the design, as they used to produce a class diagram, due to the availability of class, method, variables names, method parameter names, interface, relationships (association, dependency and Generalization) and identify visibility while no such details found in a class diagram that produced by other tools.

قدمت الهندسة العكسية حلاً للمشكلة الرئيسية في تطوير وصيانة البرمجيات القديمة وهي عملية فهم هذه البرمجيات، والتي تعد مهمة صعبة وذلك لأنها تفتقر إلى التوثيق الملائم أو التصميم الأنموذجي الصحيح. تلعب لغة النمذجة الموحدة دوراً كبيراً ومهماً في تحديد مواصفات البرمجيات بما يتفق مع مبادئ الهندسة العكسية واحد أنواعها هو مخطط الصنف. مخطط صنف الهندسة العكسية هو تمثيل مجرد يعطي نظرة عامة عن هيكلية البرمجيات ولا يعطي معلومات كاملة عن التفاصيل الداخلية وعلاقة مكونات البرمجيات.تم في هذا البحث بناء أداة هندسة البرمجيات بمساعدة الحاسوب أطلق عليها (Relational Meta Data Table-RMDT) والتي تعتمد على بناء مفسر للشفرة المصدرية للبرمجيات المدخلة وتحليلها من اجل استخلاص معلومات تساعد على فهم بنية البرمجيات وتوضيح مكوناته والعلاقات التي تربط أجزاءه (الهيكلية الداخلية للبرمجيات المدخلة). تمثل الأداة RMDT المعلومات على شكل جداول مصممة بطريقة عالية المرونة وتكون مناسبة لاستخدامها في المستقبل عند تطبيق إعادة هندسة البرمجيات على البرمجيات المدخلة. كما وتم دراسة واختبار مجموعة من أدوات هندسة البرمجيات الأكثر انتشاراً التي تعمل على تنفيذ الهندسة العكسية(Reverse, ArgoUML, Rational rose, Enterprise Architecture (EA), Together, class2uml). تركز التحليل لهذه الأدوات على توليد مخطط الصنف من الشفرة المصدرية للبرمجيات المكتوبة بلغة الجافا. يشمل هذا المخطط عدد الأصناف وأنواع العلاقات التي تستخلص وإمكانية استخراج الواجهات.وتمت مقارنة النتائج المستحصلة من الأداة RMDT مع النتائج المستحصلة من هذه الأدوات، فالجداول التي توفرها الأداة RMDT شملت جميع المعلومات المطلوبة لاسترجاع التصميم، إذ يتم تحويلها إلى مخطط الصنف وذلك نظراً لتوفر أسماء الأصناف والعمليات والمتغيرات وأسماء معاملات العمليات والواجهات والعلاقات (التشاركية association والاعتمادية dependency والعمومية Generalization) وتمثيل الحالة، في حين لا تتضمن مخططات الصنف الناتجة من الأدوات المذكورة جميع هذه المعلومات.} }