Explicit Object-Oriented Program Representation for Effective Software Maintenance
Abstract
Today, object-oriented (OO) technology is a de facto approach in software development and several OO software applications are presently in use. For these systems to remain useful, they have to be effectively and efficiently maintained. As changes are both important and risky, Change impact analysis (CIA) is used to preserve the quality of the software system. OO software have complex dependencies and change types that often affect their maintenance in terms of ripple-effects identification or may likely introduce some faults which are hard to detect. Existing CIA proffers little or no clear information to represent the software for effective change impact prediction and components’ fault-proneness is not considered. Consequently, changes made where dependencies and fault-proneness are not understood may have some undesirable effects elsewhere in the system or may increase its risks to fail. Therefore, this paper proposes an approach called OO Component Dependency Networks (OOComDN) which explicitly represent the software and allow its structural complexity to be quantified using complex networks. The objective is to enhance static CIA and facilitate program comprehension. To assess the effectiveness, a controlled experiment was conducted using students’ project with respect to maintenance duration and correctness. The results obtained were significant, indicating OOComDN is practicable for impact analysis.
Keywords
Impact Analysis; Software Change; Complex Networks; Faults