UNIVERSITI PUTRA MALAYSIA INCORPORATING OBJECT-ORIENTED METRICS INTO A REVERSE ENGINEERING TOOL NIDAL BASHIR ESHAH FSKTM

Similar documents
DEVELOPMENT OF AN AUTOMATED SELECTION SYSTEM FOR CUTTING TOOLS AND MACHINING PARAMETERS OF MILLING OPERATIONS

AN OPTICAL WAVELENGTH MEASUREMENT TECHNIQUE USING ERBIUM-DOPED FIBER ATTENUATION NORHAYATI BINTI AFFANDI

SOFTWARE PROCESS FOR INTEGRATED PATTERN ORIENTED ANALYSIS AND DESIGN (POAD) AND COMPONENT ORIENTED PROGRAMMING (COP) ON EMBEDDED REAL-TIME SYSTEMS

MICROCONTROLLER BASED ADJUSTABLE SPEED CLOSED-LOOP DC MOTOR DRIVE

IMPROVING THE DOCUMENTATION OF USER S REQUIREMENTS FOR E-SERVICE SYSTEMS USING SERVICE RESPONSIBILITY TABLE IBRAHIM SALIHU ANKA

ARDUINO-BASED TEMPERATURE MONITOR- ING AND CONTROL VIA CAN BUS MOHAMMAD HUZAIFAH BIN CHE MANAF UNIVERSITI MALAYSIA PAHANG

IMAGE IMPROVEMENT TECHNIQUE USING FEED FORWARD NEURAL NETWORK

BANDWIDTH ENHANCEMENT OF MICROSTRIP ANTENNA FOR WIRELESS LOCAL AREA NETWORK APPLICATIONS

HAND GESTURE RECOGNITION SYSTEM FOR AUTOMATIC PRESENTATION SLIDE CONTROL LIM YAT NAM UNIVERSITI TEKNOLOGI MALAYSIA

AN IMPROVED ACCURACY OF WEB SERVICE SELECTION BASED ON MULTI-CRITERIA DECISION MAKING AND WEB SERVICE MODELING ONTOLOGY

MODELING, SIMULATION AND DESIGN OF AN IMPROVED HIGH POWER FACTOR BRIDGELESS SEPIC CONVERTER IZNI BINTI MUSTAFAR UNIVERSITI TEKNOLOGI MALAYSIA

A MALAY LANGUAGE-BASED VISUAL PROGRAMMING ENVIRONMENT FOR PERSONAL DIGITAL ASSISTANT

ARDUINO BASED WATER LEVEL MONITOR- ING AND CONTROL VIA CAN BUS TUAN ABU BAKAR BIN TUAN ISMAIL UNIVERSITI MALAYSIA PAHANG

UNIVERSITI TEKNOLOGI MARA THE PERFORMANCE MEASURES OF SUPPLY CHAIN MANAGEMENT FOR INFRASTRUCTURE PROJECT

OBJECT CLASSIFICATION USING DEEP LEARNING FONG SOON FEI

STRESS DETECTION USING GALVANIC SKIN RESPONSE SHAHNAZ SAKINAH BINTI SHAIFUL BAHRI UNIVERSITI MALAYSIA PAHANG

PRODUCT DESIGN IMPROVEMENT USING DESIGN FOR MANUFACTURE AND ASSEMBLY (DFMA) METHODOLOGY

FINAL YEAR PROJECT REPORT TITLE: MODELING AND PSO-BASED LQR CONTROLLER DESIGN FOR COUPLED TANK SYSTEM FIONA SERINA DAUD B

UNIVERSITI PUTRA MALAYSIA PSYCHOLOGICAL STUDY OF THEMES IN DOYLE S PADDY CLARKE HA HA HA AND MCCABE S THE BUTCHER BOY THROUGH STREAM OF CONSCIOUSNESS

PRODUCT DESIGN EVALUATION OF LUCAS HULL DFMA METHOD MOHD NAFIS BIN MOHAIZI

ADOPTION OF COMPUTERIZED ACCOUNTING INFORMATION SYSTEM (CAIS) AMONG MALAYSIAN SMEs

THERMAL ANALYSIS OF H.V INSULATION OIL DURING PARTIAL DISCHARGE DETECTION RASOOL ABDELFADIL GATEA UNIVERSITI TEKNOLOGI MALAYSIA

A NEW RECTANGULAR DIELECTRIC WAVEGUIDE TECHNIQUE FOR RIPENESS DETERMINATION OF PALM FRUITS

MESOPYME-IEMA SOFTWARE PROCESS EVALUATION MODEL FOR SMALL AND MEDIUM SOFTWARE INDUSTRIES IMRAN BASHA

DEVELOPMENT OF REMOTELY OPERATED UNDERWATER VEHICLE AFIQ FIKRI BIN HAMID UNIVERSITI MALAYSIA PAHANG

PUMP SCHEDULING OPTIMIZATION FOR WATER SUPPLY SYSTEM USING ADAPTIVE WEIGHTED SUM GENETIC ALGORITHM FOLORUNSO TALIHA ABIODUN

BORANG PENGESAHAN STATUS TESIS

DESIGN AND DEVELOPMENT OF SOLAR POWERED AERATION SYSTEM WU DANIEL UNIVERSITI MALAYSIA PAHANG

ARDUINO BASED SPWM THREE PHASE FULL BRIDGE INVERTER FOR VARIABLE SPEED DRIVE APPLICATION MUHAMAD AIMAN BIN MUHAMAD AZMI

THE DEVELOPMENT OF INTENSITY DURATION FREQUENCY CURVES FITTING CONSTANT AT KUANTAN RIVER BASIN

VALVE CONDITION MONITORING BY USING ACOUSTIC EMISSION TECHNIQUE MOHD KHAIRUL NAJMIE BIN MOHD NOR BACHELOR OF ENGINEERING UNIVERSITI MALAYSIA PAHANG

18V TO 1000V BOOST CONVERTER BENNEDICT BALLY ANAK NAROK UNIVERSITI MALAYSIA PAHANG

FREQUENCY RECONFIGURABLE ARCHIMEDEAN SPIRAL ANTENNA MASMURNI BINTI ABDUL RAHMAN

PINEAPPLE DISTRIBUTION CLASSIFICATION USING RGB AND FUZZY EZRIN TASNIM BIN ABDUL GANI

DEVELOPMENT OF DYNAMIC EQUIVALENTS FOR INTERCONNECTED POWER SYSTEMS USING IDENTIFICATION APPROACHES KOK BOON CHING UNIVERSITI TEKNOLOGI MALAYSIA

UNIVERSITI TEKNOLOGI MARA AN INTERCHANGEABLE TURNING SPRUE BUSHING (ITSB) SYSTEM IN A FAMILY MOULD

UNIVERSITI TEKNIKAL MALAYSIA MELAKA FACULTY OF ELECTRICAL ENGINEERING FINAL YEAR PROJECT II (FYP II) BEKU 4973

UNIVERSITI PUTRA MALAYSIA NON-INVERTIBLE ONLINE SIGNATURE BIOMETRIC TEMPLATE PROTECTION VIA SHUFFLING AND TRIGONOMETRY TRANSFORMATION

PREDICTION OF TOTAL CONCENTRATION FOR SPHERICAL AND TEAR SHAPE DROPS BY USING NEURAL NETWORK NORHUSNA BINTI SAHARUN UNIVERSITI TEKNOLOGI MALAYSIA

ADAPTIVE CROSS WIGNER-VILLE DISTRIBUTION FOR PARAMETER ESTIMATION OF DIGITALLY MODULATED SIGNALS CHEE YEN MEI

HIGH-PERFORMANCE DIGITAL FILTER IN FPGA SITI SUHAILA MOHD YUSOF UNIVERSITI TEKNOLOGI MALAYSIA

DEVELOPMENT OF COMPUTER-AIDED MATERIALS AND MANUFACTURING PROCESS SELECTION SOFTWARE USING BOOTHROYD-DEWHURST METHODOLOGY ZAEIME BIN ZAKARIA

FABRICATION OF PERPETUAL MOTION WATER DRINKING TOY BIRD CHEE SAI HOW UNIVERSITI MALAYSIA PAHANG

WIRELEES VIBRATION MONITORING SYSTEM (WVMS) WONG YOON KHANG APRIL 2007

UNIVERSITI TEKNOLOGI MARA IDENTIFYING AND DETECTING UNLAWFUL BEHAVIOR IN VIDEO IMAGES USING GENETIC ALGORITHM

NURSYAHIDA ASHIKIN BINTI NOR IZLANIN

THE ESTIMATION OF EVAPOTRANSPIRATION IN KUANTAN USING DIFFERENT METHODS NUR AIN BINTI MOHAMMAH FUZIA B. ENG (HONS.) CIVIL ENGINEERING

SOCIAL NETWORK SITE APPROPRIATION PROCESSES BASED ON FAMILY TYPES YUZI BINTI MAHMUD

ANALYSIS OF MARINE INCIDENTS IN MALAYSIA SURHAN JAMIL BIN HARON

UNIVERSITI PUTRA MALAYSIA DEVELOPMENT OF POWER SEMICONDUCTOR DEVICES DATABASE FOR KNOWLEDGE-BASED SYSTEMS GHASSAN MOHAMMED SHAHEEN FK

INTEGRATING COOPERATIVE USERS TO DEVELOP FRAMEWORK FOR AN EFFECTIVE MOBILE PHYSIOTHERAPY YOUCEF BENFERDIA

DETERMINATION OF LEAKAGE IN AN OIL AND GAS PIPELINE NOR AZIAN BINTI MOHIDEEN ABDUL KADIR

UNIVERSITI PUTRA MALAYSIA DEVELOPMENT OF A WIRELESS PC-CONTROLLED MOBILE ROBOT SYSTEM AND MULTIMEDIA BASED LEARNING MODULE TARIQ SAAD MUJBER

ON-LINE ENERGY-USE BENCHMARKING SYSTEM FOR INDUSTRIES IN MALAYSIA

THE COMMERCIALISATION OF RESEARCH BY PUBLIC- FUNDED RESEARCH INSTITUTES (PRIs) IN MALAYSIA

DESIGN AND FABRICATE A FLEXIBLE TOILET HOSE WITH SPOOL ABDULLAH MUNZIR BIN ZUL SAFARUDDIN UNIVERSITI MALAYSIA PAHANG

Signature. Supervisor :.. ~.~H-.~.~0~P..?.j.~H~~~.. ~.~.~ Date :...?./!!./~~ ~

UNIVERSITI PUTRA MALAYSIA PERFORMANCES ANALYSIS OF LINEAR AND CIRCULAR MICROSTRIP METHODS FOR DETERMINATION OF MOISTURE CONTENT IN RUBBER LATEX

TWO DIMENSIONAL DIRECT CURRENT RESISTIVITY MAPPING FOR SUBSURFACE INVESTIGATION USING COMPUTATIONAL INTELLIGENCE TECHNIQUES

A COMPLEMENTARY METAL OXIDE SEMICONDUCTOR LOW NOISE AMPLIFIER USING INTEGRATED ACTIVE INDUCTOR RAFIQ SHARMAN BIN ROSLEE

iii I hereby declare that this report is the result of my own work except for quotes as cited in the references

MOHD ZUL-HILMI BIN MOHAMAD

CONTINUOUS INDIVIDUAL PLOT CURVES TECHNIQUE FOR SIMULTANEOUS TARGETING AND DESIGN OF A MASS EXCHANGE NETWORK YANWARIZAL UNIVERSITI TEKNOLOGI MALAYSIA

Planning of the implementation of public policy: a case study of the Board of Studies, N.S.W.

BORANG PENGESAHAN STATUS TESIS

COMPARISON BETWEEN PIEZOELECTRIC AND CAPACITIVE SENSORS FOR PD DETECTION AND SIGNAL MONITORING IN PALM OIL

UNIVERSITI TEKNOLOGI MARA MODELING THE HUMAN CENTERED DESIGN THROUGH HCI CAPABILITY

FUZZY-BASED FROST FILTER FOR SPECKLE NOISE REDUCTION OF SYNTHETIC APERTURE RADAR (SAR) IMAGE ARDHI WICAKSONO SANTOSO

EXPECTED LIFE CYCLE COST FOR SYSTEMS WITH REPAIRABLE COMPONENTS AMIRHOSSEIN EBRAHIMI

SPDT SWITCH DESIGN USING SWITCHABLE RESONATOR AT 5GHZ FOR WIRELESS COMMUNICATIONS MOHD HAIDIL BIN ZURAIMI UNIVERSITI TEKNIKAL MALAYSIA MELAKA

A STUDY ON THE CAUSES OF DESIGN CHANGES EFFECTING THE CONSTRUCTION PROJECT PERFORMANCE NUR ARFAHANEM BT MOHAMAD UMPANDI (AA12204)

c Indian Institute of Technology Delhi (IITD), New Delhi, 2013.

UNIVERSITI PUTRA MALAYSIA CODE HERO IN ERNEST HEMINGWAY S A FAREWELL TO ARMS AND THE SUN ALSO RISES

A DESIGN METHODOLOGY FOR A SELF-OSCILLATING ELECTRONIC BALLAST AMIRA BINTI MUSTAPA

FIR FILTER FOR MAKHRAJ RECOGNITION SYSTEM AIMI NADIA AZMI

ANTENNA ARRAY (DESIGN AT 28 GHz FOR 5G MOBILE NETWORK BASIL JABIR SHANSHOOL. A project submitted in partial fulfilment of the

THREE-DIMENSIONAL FINITE-DIFFERENCE TIME-DOMAIN SIMULATION OF COAXIAL TRANSMISSION LINE FOR BROADBAND DIELECTRIC CHARACTERIZATION

ENERGY ANALYSIS AND OPTIMIZATION OF PUBLIC BUILDING USING BUILDING INFORMATION MODELING APPLICATION

A 10-BIT 50 MEGA-SAMPLES-PER-SECOND PIPELINED ANALOG-TO-DIGITAL CONVERTER YUZMAN BIN YUSOFF UNIVERSITI TEKNOLOGI MALAYSIA

THE APPLICATION OF TERRESTRIAL LASER SCANNING AND WEB-BASED GEOGRAPHICAL INFORMATION SYSTEM FOR INDOOR ASSET MANAGEMENT

INTELLIGENT HOME AUTOMATION SYSTEM (IHAS) WITH SECURITY PROTECTION NEO CHAN LOONG UNIVERSITI MALAYSIA PAHANG

PWM PIC16F877A DIMMING ELECTRONIC BALLAST FOR HPS LAMP NATRA BINTI ISMAIL

SELF-TUNING PID CONTROLLER FOR ACTIVATED SLUDGE SYSTEM HUONG PEI CHOO

CONTRIBUTION OF HUMAN FACTORS TO SHIPPING SAFETY ARFENA DEAH LESTARI

UNIVERSITI TEKNOLOGI MARA ACCEPTANCE AND CONTINUED USE OF DIGITAL LIBRARIES BY POSTGRADUATE STUDENTS IN MALAYSIAN INTENSIVE RESEARCH UNIVERSITIES

BIMODAL RECOGNITION BASED ON THUMBPRINT AND THUMB IMAGE USING BAYESIAN CLASSIFIER LOW ZHI WEI UNIVERSITI TEKNOLOGI MALAYSIA

PATTERN AND FREQUENCY RECONFIGURABLE ANTENNA FOR WIRELESS APPLICATIONS DELPHINE ABIJURU. requirements for the award of the degree of

CLASSIFICATION OF ABNORMAL CROWD BEHAVIOR USING IMAGE PROCESSING AND STATE MACHINES NG TZE JIA

DESIGN A WIDEBAND LOW-NOISE AMPLIFIER FOR WIRELESS COMMUNICATION USING 0.35-µm CMOS TECHNOLOGY MOHD HAFIZ BIN ABU

SMART BOOST CONVERTER FOR DC ENERGY SOURCE APPLICATION MUNIRAH BT AYUB

Nur Athykah binti Basiran

PRODUCTIVITY IMPROVEMENTS USING LEAN PRACTICES AT JAPANESE ELECTRICAL AND ELECTRONICS MANUFACTURING AFIF AIMADUDDIN BIN PARNON

ASSESSING CLOUD COMPUTING SECURITY LEVEL OF AWARENESS AMONG IT AND NON IT STUDENTS IN UTM ALWUHAYD MUTEB MOHAMMED UNIVERSITI TEKNOLOGI MALAYSIA

OPTIMUM ANALYSIS OF OFFSHORE STRUCTURES LIFTING PADEYES USING FINITE ELEMNT METHOD ABDELRAHIM MUSA MAHGOUB HAMADELNIL

OPTIMAL HEAT TRANSFER OF HEAT SINK DESIGN BASED ON ELECTRONIC PACKAGE THERMAL DISTRIBUTION USING COMSOL PACKAGE SOFTWARE

SIMULATION AND OPTIMIZATION OF ELECTRICAL DISCHARGE MACHINING PROCESS USING MATLAB ELNAZ KARIMPOUR UNIVERSITI TEKNOLOGI MALAYSIA

LEARNING ENHANCEMENT OF THREE-TERM BACKPROPAGATION NETWORK BASED ON ELITIST MULTI-OBJECTIVE EVOLUTIONARY ALGORITHMS ASHRAF OSMAN IBRAHIM ELSAYED

DEMODULATION AND MODULATION OF HIGH BIT DATA TRANSMISSION IN LOW VOLTAGE SUPPLY SYSTEM ROSMADI BIN ABDULLAH UNIVERSITI TEKNOLOGI MALAYSIA

SURVEILLANCE ROBOT MUHAMMAD BUKHARI BIN KAMAROZAMAN

STUDY ON THE CHARACTERISTICS OF CAPILLARY PLASMA ANTENNA ARRAY IN RADIO WAVE NOOR FADHILAH BINTI RAMLI

Transcription:

UNIVERSITI PUTRA MALAYSIA INCORPORATING OBJECT-ORIENTED METRICS INTO A REVERSE ENGINEERING TOOL NIDAL BASHIR ESHAH FSKTM 2003 3

INCORPORATING OBJECT-ORIENTED METRICS INTO A REVERSE ENGINEERING TOOL By NIDAL BASHIR ESHAH Thesis Submitted to the School of Graduate Studies, Universiti Putra Malaysia, in Fulfilment of the Requirements for the Degree of Master of Science April 2003

INCORPORATING OBJECT-ORIENTED METRICS INTO A REVERSE ENGINEERING TOOL By NIDAL BASHIR ESHAH Thesis Submitted to the School of Graduate Studies, Universiti Putra Malaysia, in Fulfilment of the Requirements for the Degree of Master of Science April 2003

To my parents II

Abstract of thesis presented to the Senate of University Putra Malaysia in fulfillment of the requirements for the degree of Master of Science INCORPORATING OBJECT-ORIENTED METRICS INTO A REVERSE ENGINEERING TOOL By NIDAL BASHIR ESHAH April 2003 Chairman: Associate Professor Abdul Azim Abdul Ghani, Ph.D. Faculty: Computer Science and Information Technology This work explains the use of object-oriented software product metrics with their thresholds and how they could be incorporated into a reverse engineering tool that visualizes the architectural components of a software system. Visualizing. Object-Oriented C++ ( VOO++), reverse engineering tool that visualizes C++ objectoriented source code, is enhanced and reproduced to become a Visualizing and Measuring C++ ( VMCPP) tool that visualizes and measures object-oriented C++ files. VMCPP assists the software developer in extracting and interpreting the components of a software system. Unified Modeling Language (UML) class diagrams are produced to graphically represent the classes involved in implementing a software system. Thresholds are used within VMCPP to separate the extracted metrics values into normal values and critical values. III

Abstrak tesis dipersembahkan kepada Senat Universiti Putra Malaysia sebagai memenuhi syarat keperluan untuk ijazah Master Sains PENGGABUNGAN METRIK OBJECT-ORIENTED KEPADA SATU ALAT KEJURUTERAAN SONGSANG Daripada NIDAL BASHIR ESHAB April 2003 Pengerusi: Profesor Madya Abdul Azim Abdul Ghani, Ph.D. Fakulti: Sains Komputer dan Teknologi Maklumat Tesis ini menerangkan penggunaan metrik perisian berorientasi objek melalui penggunaan takat dan bagaimana ia dapat digabungkan dengan kejuruteraan songsang untuk membolehkan pengarnatan komponen dalarn sistem perisian. Memperlihatkan berorientasi objek C++ (VOO++), satu alat kejuruteraan songsang yang memperlihatkan kod sumber berorientasi objek C++, dipertingkat dan dibangunkan semula untuk menghasilkan, penganatan dan mengukur fail C++ berorientasi objek (VMCPP) yang membolehkan penganatan dan mengukur fail C++ berorientasi objek. VMCPP membantu pembangun perisian dalarn mengarnbil dan mentafsir komponen sistem perisian. Kelas diagram, UML dihasilkan untuk mewakilkan secara graftk kelas yang terlibat dalam melaksanakan sesuatu sistem perisian. Takat digunakan dalam VMCPP untuk mengasingkan nilai-nilai metrik kepada nilai-nilai normal dan kritikal. IV

ACKNOWLEGEMENTS In the name of Allalr., Most Gracious, Most Merciful I would like to take this opportunity to convey my sincere thanks and deepest gratitude to my supervisor Assoc. Prof. Dr. Abdul Azim bin Abd. Ghani for his advises, comments, suggestions, help, and invaluable guidance throughout my research. I am also indebted to Assoc. Prof. Hj. Mohd Hasan bin Selamat and Ms. Hazura ZulzaIil, members of the supervising committee, for their technical support and suggestions. Their insights were priceless. I am greatly indebted to the Libyan Ministry of Education for the fmancial support during my study. Also, the contribution of the Libyan Embassy staff in Kuala Lumpur is highly appreciated. Special thanks to the School of graduate studies staff at UPM, especially Mr. Rustam who without his help this thesis wouldn't be finished in time. I am very Thankful to Mr. Ali Mresa who kept helping me understanding the source code of VOO++. v

I certify that an Examination Committee met on 21 st April, 2003 to conduct the final examination of Nidal Bashir Eshah on his Master of Science thesis entitled "Incorporating Object-oriented Metrics into a Reverse Engineering Tool" in accordance with Universiti Pertanian Malaysia (Higher Degree) Act 1980 and Universiti Pertanian Malaysia (Higher Degree) Regulation 1981. The Committee recommends that the candidate be awarded the relevant degree. Members of the Examination Committee are as follows: Hamidah Ibrahim, Ph.D. Faculty of Computer Science and Information Technology Universiti Putra Malaysia (Chairperson) Abdul Azim bin Abd. Ghani, Ph.D. Associate Professor Faculty of Computer Science and Information Technology Universiti Putra Malaysia (Member) Mohd Hasan bin Selamat Associate Professor Faculty of Computer Science and Information Technology Universiti Putra Malaysia (Member) Hazura bt Zulzalil, M.Se. Faculty of Computer Science and Information Technology Universiti Putra Malaysia (Member) GULAMRUS Professor / Deputy School of Graduate Studies Universiti Putra Malaysia Date: VI

This thesis submitted to Senate of the Universiti Putra Malaysia has been accepted as fulfillment of the requirement for the degree of Master of Science. The members of the Supervisory Committee are as follows: Abelul Azim bin Abel. Ghani, Ph.D. Associate Professor Faculty of Computer Science and Information Technology Universiti Putra Malaysia (Chairman) Mohd Basan bin Selamat Associate Professor Faculty of Computer Science and Information Technology Universiti Putra Malaysia (Member) Bazara bt Zulzalil, MoSc. Faculty of Computer Science and Information Technology Universiti Putra Malaysia (Member) AINI IDERIS, Ph.D. Professor I Dean School of Graduate Studies Universiti Putra Malaysia Date: If 5 AUG 2003 VII

DECLARA TION I hereby declare that the thesis is based on my original work except for quotations and citations which have been duly acknowledged. I also declare that it has not been previously or concurrently submitted for any other degree at UPM or other institutions. Name: Nidal Bashir Eshah Date: L1/ b' 2.. vm C) C)

TABLE OF CONTENTS Page DEDICATION ABSTRACT ABSTRAK ACKNOWLEDGEMENTS APPROVAL SHEETS DECLARATION LIST OF TABLES LIST OF FIGURES LIST OF ABBREVIATIONS II III IV V VI VIII XIII XIV XVI CHAPTER 1 INTRODUCTION 1.1 Background 1.2 Reverse Engineering 1.3 Software Measurement 1.4 Problem Statement 1.5 Research Objectives 1.6 Thesis Organization 1 1 2 2 3 4 5 2 SOFfWARE MEASUREMENT: METRICS, THRESHOLDS AND REVERSE ENGINEERING TOOLS 6 2.1 Software Measurement 6 2.2 Classification of Software Metrics 7 2.3 Object-Oriented Product Metrics 7 2.4 Henry and Kafura's Metrics 9 2.5 Chidamber and Kemerer's Metrics 10 2.6 Li and Henry's Metrics IS 2.7 Lorenz and Kidd's Metrics 15 2.8 Other Metrics 17 2.9 Reverse Engineering Tools 20 2.9.1 Visualizing Object-Oriented C++ Applications (VOO++) 20 2.9.2 C-Metrics 21 2.9.3 IntegriSoft 22 2.9.4 Cantata++ IPL 22 2.9.5 Metrics4C 23 IX

2.9.6 Resource Standard Metrics (RSM) 23 2.10 Thresholds 24 2.10.1 Lorenz Guidelines 2.10.2 NASA Thresholds 26 2.10.3 Schroeder Benchmarks 26 2.11 Reverse Engineering 27 2.11.1 Reverse Engineering Tasks 27 2. I I. I. I Information Extraction 27 2.11.1.2 Information Abstraction 27 2.11.2 Reverse Engineering Purposes 27 2.12 Summary 28 3 THE UNIFIED APPROACH 29 3.1 Introduction 29 3.2 Inputs 31 3.2.1 Customer Interviews 31 3.2.2 Information from other Tools 31 3.3 Unified Approach Analysis Phase Activates 31 3.3.1 Identifying the Actors 32 3.3.2 Developing Use-cases 32 3.3.3 Developing Interaction Diagrams 34 3.3.4 Classifying System Objects 35 3.4 Unified Approach Design Phase Activates 37 3.4.1 Refming the UML Static Class Diagram 37 3.4.2 Designing the Access Layer 39 3.4.3 Designing the View Layer 39 3.4.3.1 Macro-level UI Design Process 39 3.4.3.2 Micro-level UI Design Activities 41 4 VMCPP ANALYSIS, DESIGN, AND IMPLEMENTATION 42 4.1 Introduction 42 4.2 Business Phase 42 4.2.1 Prerequisites 42 4.2.2 Activities 42 4.2.2.1 Identity and Document Types of Users 42 4.2.2.2 VMCPP Functional Requirements Description 43 4.2.2.3 VMCPP Non-functional Requirements 44 4.3. Analysis Phase 45 4.3.1 Prerequisites 45 4.3.2 Use-cases 45 4.3.3 Developing Interaction Diagrams 50 25 x

4.3.4 Classification 51 4.4 VMCPP Design 57 4.4.1 Refming UML Static Class Diagram 57 4.4.1.1 Refining Attributes 62 4.4.1.2 Designing Methods using UML Activity Diagram 62 4.4.2 View Layer Design 63 4.4.2.1 Macro-Level UI Design Process 63 4.4.2.2 Micro-Level UI Design Activities 63 4.5 VMCPP Implementation 4.5.1 VMCPP Platfonn 65 4.5.2 VMCPP Data Structures and Classes 65 4.5.2.1 The Analyzer Package Components 65 4.5.2.2 The Database Package Components 66 4.5.2.3 The Measurer Package Components 68 4.5.2.4 The Charter Package Components 69 4.5.3 User Interface 70 4.5.4 Hungarian Notation 75 4.5.5 Incorporating Object-oriented Metrics into VOO++ 77 5 RESULTS AND DISCUSSION 78 5.1 Introduction 78 5.2 GA, Sales-man Problem Case Study 79 5.2.1 GA System Metrics 80 5.2.2 GA Module Metrics 81 5.2.3 GA Class Metrics 83 5.2.4 GA Method Metrics 85 5.3 ZIP Case Study 88 5.3.1 ZIP System Metrics 88 5.3.2 ZIP Module Metrics 89 5.3.3 ZIP Class Metrics 90 5.3.4 ZIP Method Metrics 92 5.4 Validating the Hungarian Notation Metric 93 6 CONCLUSION AND FUTURE WORK 96 6.1 Conclusions 96 6.2 Future Work 97 65 REFERENCES 99 APPENDICES A VMCPP Static Structure using UML 101 XI

B Metrics Values Collected From GA and ZIP Case Studies 123 BIODATA OF AUTHOR 146 XII

LIST OF TABLES Table Page 2.1 Lorenz Guidelines 25 2.2 NASA Thresholds 26 2.3 Schroeder Benchmarks 26 2.4 Metrics: Objective, Threshold, and Applying Level 28 4.1 The Hungarian Notation 76 5. 1 List of Files Involved in Implementing GA 80 5.2 List of Classes Involved in Implementing random.h 82 5.3 List of Methods Involved in Implementing CTooIlnfo Class 84 5.4 Manually Calculated Values of Method RandomTest::end 87 5.5 The Percentage of Hungarian Notation Applied in Each Module 88 5.6 List of ZIP Modules Depend on autobuffer.h 90 5.7 CCentralDir Class Methods with Their TFC 91 5.8 The Relation between the Identifiers Type Understandability and 94 the Hungarian Notation xm

LIST OF FIGURES Figure 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4. 1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 Software Metrics Fan-in Class Dependency Fan-out Class Dependency Class Hierarchy Sample NOC for Class Marine Mammals Control Flow Graph of Method CcExample The Possible Paths of Method CcExample VOO++ User Interface C-Metrics: Module And Class Metrics IntegriSoft Module Dependency Diagram Using Thresholds with Measurement Tools Processes and Components of the Unified Approach Analysis Phase Activities in the Unified Approach Representing Use-cases in UML Representing Sequence Diagrams in UML Representing Collaboration Diagrams in UML Design Phase Activities in the Unified Approach Representing Class Diagrams in UML Representing Activity Diagrams in UML Macro-level UI Design Process Analysis Phase Prerequisites and Deliverables VMCPP Use-cases Basic Components for Reverse Engineering Restructuring and Reengineering Tools Basic Components for VMCPP Sequence Diagram for "Open File" Use-case Sequence Diagram for "Show Metrics" Use-case Collaboration Diagram for "Show Charts" Use-case Key Classes of VMCPP and Their Relationships Attributes and Methods Captured for CAnalyzer and CThresholdsDialog Classes Attributes and Methods Captured for CChartsDialog Class Attributes and Methods Captured for CMetricsViewDialog Class Attributes and Methods Captured for CAttributesList and CClassesList Classes Attributes and Methods Captured for CModulesList and CMethodsList Classes Page 8 9 10 II 14 18 19 20 21 22 25 30 32 33 34 34 37 38 39 40 45 46 48 49 50 50 51 52 54 55 55 56 56 XIV

4. 14 Analyzer Package Components and Relations 57 4. 15 Database Package Components and Relations 58 4.16 Measurer Package Components and Relations 60 4.11 Thresholder Package Components and Relations 61 4.18 Charter Package Components and Relations 62 4.19 Activities of the CChartsDialog Constructor Method 62 Microsoft DocumentlView Framework Components and 4.20 Relations 64 4.21 VMCPP Main Window 64 4.22 CTokensList and STokensNode 66 4.23 CSpecifiers and SSpecifiersNode 66 4.24 CAttributesList and SAttributesNode 67 4.25 CClassesList and SClassesNode 67 4.26 SMetricINT 68 4.27 SClass Values 69 4.28 SChartsMetricsList 69 4.29 Metrics Window - Project Metrics Property Page 71 4.30 Metrics Window - Module Metrics Property Page 71 4.31 Metrics Window - Class Metrics Property Page 72 4.32 Metrics Window - Method Metrics Property Page 73 4.33 Charts Window 73 4.34 Thresholds Window 74 4.35 VMCPP about Window 74 5.1 Thresholds Set Used to Evaluate the Two Case Studies 79 5.2 GA Application Metrics Calculated by VMCPP 81 5.3 random.h Module Metrics Calculated by VMCPP 82 5.4 The Dependence of stdafx.h on random.h 82 5.5 The Dependence of random.cpp on random.h 83 5.6 A Source Code Fragment of CToolInfo Class Declaration 84 5.7 CToolIn/o Class Metrics Values Calculated by VMCPP 85 5.8 The Source Code of Method RandomTest::end 86 5.9 Metrics Values for Method RandomTest::end 81 5.10 The Percentage of Hungarian Notation in ZIP System 89 5.11 Fan-in of autobuffer.h Module 90 5.12 RFC for Class CCentralDir 91 5.13 Source Code of Method CCentralDir::Locate 92 The Number of Local Variables Declared in 5.14 CCentralDir: :Locate 5.15 The Dependence of Source Code Understandability on the Hungarian Notation 93 95 xv

LIST OF ABBREVIATIONS CASE HN LOC LCOM DIT RFC WMC CC CP NOM NOA NOPA NOPM Fan-In Fan-out TFC NOC NRP NOI VOO++ VMCPP Computer Aided Software Engineering Hungarian Notation Lines of Code Lack of Cohesion between methods Depth of inheritance in the inheritance tree Response for Class Weighted Methods per Class Cyclomatic Complexity Comment Percentage Number of Methods in Class Number of Attributes in Class Number of Public Attributes in Class Number of Public Methods in Class Flow of Information In, Module, Class, or Method Flow of Information Out of, Module, Class, or Method Total of Function Calls Number of Children for Class Number of Return Points in a Method Number of Instances for Class A reverse engineering tool that visualizes object-oriented C++ source code A reverse engineering tool that visualizes and measures object-oriented C++ source code XVI

CHAPTER 1 INTRODUCTION "The degree to which you can express something in numbers is the degree to which you really understand it." Lord Kelvin 1.1 Background The concepts of object-oriented paradigm like encapsulation, inheritance and polymorphism made the object-oriented paradigm is more desirable by software developers than the traditional programming. Many of the traditional programming problems have been solved using the object-oriented paradigm (Pressman, 1997). This technology requires not only new programming languages but also new approaches and techniques to refine it. For example software metrics applied to the traditional programming languages are no longer useful for the object-oriented approach because of some fundamentally different issues (encapsulation, inheritance, and polymorphism). As a result, new metrics have been introduced and applied to measure the products of the object-oriented approach.

1.2 Reverse Engineering Reverse engineering for software is the process of analyzing a program in an effort to create a representation of the program at a higher level of abstraction than the source code (Pressman, 1997). The key to reverse engineering is its ability to abstract specifications from the detailed source code implementation (Pfleeger, 1998). Most of the software reverse engineering tools extracts data and architectural design from software products to increase the understanding of the subject system (Rausi et al, 2ooo). The purpose of software reverse engineering product tools is to extract the architectural components, to explore and visualize, to measure, and to redocument existing software systems. 1.3 Software Measurement A key element of any engineering process is measurement. We use measurements to better understand the attributes of the models that we create, but most important, we use measurement to assess the quality of the engineered products or systems that we build (Pressman, 1997). In software engineering, software measurement tools gather software metrics to understand the subject software, to provide guidelines that recommend an action to improve the quality of software components, and to estimate a software product quality. 2

1.4 Problem Statement The aim of developing reverse engineering software product tools that visualize software products is to graphically represent software attributes and components to the software developer by extracting them from the subject software. In object-oriented world the software components are classes, and visualizing the classes involved in implementing a specific software system will allow the software developer to explore the subject software classes and their relationships to each other. Such tools are built to assist software developers to make good decisions when evaluating the subject software by producing a graphical view of the architectural components of a software system. As a resuh a high-level of abstraction of the subject software will be produced showing the subject software system as a whole ignoring the low-level entities that in fact, makes the subject software system works. On the other hand, software measurement tools treat the software products as a source of data that needs to be collected and then presented in terms of numbers. These tools lack the ability of representing software system components at a higher level of abstraction. Up to now there are no available tools that would deal with the subject software on both levels. If software metrics are useful in a forward software engineering environment, then they are quite vital in a reverse engineering environment (Zhou et. ai, 1999). Incorporating software metrics with their thresholds into reverse engineering software tools that visualize software products will be the ultimate solution to this problem (evaluating subject software system on both levels), which in 3 turn will

enrich the knowledge of the software developer graphically and numerically about the subject software for better decisions. 1.5 Research Objectives The objectives ofthis research are: To extend the functionality of a reverse engineering tool by incorporating software metrics with their thresholds. The chosen tool for this purpose is the available VOO++, Visualizing object-oriented C++ files. This tool has been developed by Mresa (2000) to explore and visualize the architectural components of object-oriented C++ program files. VOO++ developer has recommended that measurement techniques can be incorporated into VOO++ to estimate the quality of software systems and monitor its progress (Mresa, 2000). To introduce a new object-oriented metric that measures the understandability from the perspective of identifiers names. For this, a new version of the reverse engineering VOO++ tool will be developed and named VMCPP, Visualizing and Measuring C++ files. This tool will help the software developer understand the subject software system by: Separating the metrics values of the subject software system components into critical values and nonnal values. Visualizing the architectural components of a subject software system using the Unified Modeling Language (UML). 4

1.6 Thesis Organization The remainder of this thesis is structured into five chapters. Chapter 2 explores the object-oriented metrics in general with emphasis on product metrics. Various object-oriented product metrics are discussed and explained in detail with examples to show their use. After that some thresholds have been collected with focusing on object-oriented product metrics. Chapter 3 explains the methodology chosen for building VMCPP. Chapter 4 presents the design, development, and usage of the VMCPP tool. Chapter 5 shows the validation of VMCPP and the results of applying the thresholds on real software projects. In chapter 6, the conclusions are discussed and the areas of future research as well as extensions to VMCPP are identified. 5

CHAPTER 1 SOFTWARE MEASUREMENT: METRICS, THRESHOLDS AND REVERSE ENGINEERING TOOLS "You can't control what you can't measure" Tom DeMacro. 1.1 Software Measurement Measurement can be defined as the process by which numbers or symbols are assigned to attributes of entities in the real world, in such a way as to describe them according to clearly defined rules (Fenton & Ptleeger, 1 996). We use measurement equipments in our daily life to measure time, weight temperature...etc. These equipments provide us with very valuable information. For example, one could look at the home thermometer to decide whether the weather is suitable for out-door picnic or not. So, he may describe that day's temperature as "nice day," the word "nice" used to represent that day's temperature. People naturally have some kind of scaling in their minds, so they can imagine the weather without even going out and examine the weather by themselves. In software engineering, software measurement tools are the equipments that measure software systems. These tools gather software metrics to understand the software system under developing, to provide guidelines that suggest a specific action to improve the quality of different system components, and to estimate quality of a software product 6

2.2 Classificatioa of Software Metrics Software metrics are classified into two categories. The first one is the process metrics, those metrics deal with the developing process phases; they are used to estimate cost, time, and effort needed to complete a specific software project. The second category is the product metrics, which is divided into two sections, internal product metrics, and external product metrics. While the internal product metrics deals mostly with the size, complexity, and style of the software under developing, the external product metrics deals with functionality, usability, and performance of the software. Figure 2.1 shows software metrics classifications. 2.3 Objed-Orieated Product Metrics Because of its flexibility, object technology has been widely adopted in the first half of the nineties. Since then, object technology becomes the ultimate choice for many software product builders. New engineering approaches have been introduced in every phase of the software life cycle for this new technology. For software measurement professionals, the need for new metrics to measure object-oriented systems was raised dramatically, many new metrics have been proposed to specifically evaluate and quantify the object-oriented process and its products. 7