JOURNAL OF COMPUTER SCIENCE AND ENGINEERING, VOLUME 9, ISSUE 2, OCTOBER 2011 30

An Empirical Investigation of the Influence of Object Oriented Design Quality Metrics on the Package Maintainability of Open Source Software K.G. Madhwaraj and Chitra Babu ———————————————————— Abstract—Software maintenance is an important issue for both proprietary and free/open source software. Since Object Oriented methodology is predominantly used in developing the open source software, it is increasingly important to study this issue in the context of Object Oriented paradigm. Many empirical studies have been conducted in the recent past to indicate that software design metrics help in better prediction of maintainability when compared to measuring it during later stages of the software development life cycle. The objective of this paper is to empirically analyze the design quality metrics obtained from different versions of four open source software using the JDepend tool and to understand their influence on software maintainability. Index Terms—Maintainability, Metrics.

1 INTRODUCTION

M

aintainability is defined by IEEE standard glossary of software engineering as “The ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment”.Maintainability is one of the important external quality attributes that needs to be taken care while designing software. Software Maintenance has been an important issue with proprietary software development and has become an even more serious concern with the rise of free and open source software. Since the advent of the object oriented methodology, lots of open source software are being developed using this paradigm. There has been lots of research work towards maintainability estimation of open source software. Most of them have predicted maintainability depending on measures taken after the coding phase. At this stage, it becomes difficult to improve maintainability. Instead, the measurement of maintainability during early phases of SDLC (Software Development Life Cycle) of an OO system, especially during design phase would help in reducing the maintenance effort to a larger extent. At present, there are no proper measures for software maintainability[1]. The design quality of a software system has a strong impact on software maintainability which cannot be estimated directly and thus code-level and design-

levelmetrics are two ways by which the maintainability can be evaluated. Several empirical research studies to investigate the maintainability of open source software are increasingly gaining significance. These studies are primarily focusing on three important aspects[2]. a) Whether Open Source Software has better maintainability than its closed counterparts ? b) How maintainability evolves with versions & c) Relationships between design metrics and maintainability. The first two aspects are concerned with the overall maintainability of open source software and the third aspect focuses on using design metrics and measuring maintainability. This research work focuses on the third aspect i.e the relationship between design metrics and maintainability. For this purpose, certain design-level metrics like Abstractness, Instability, Efferent and Afferent Coupling dependencies from different versions of four open source software systems are extracted using the JDepend tool. These metrics measure the structural properties of a package. The open source software systems taken for analysis were purely built with Java language (completely Object-Oriented language). The performed empirical validation demonstrates the relationships between the design quality metrics extracted using the JDepend tool ———————————————— and package maintainability The design quality metrics K.G. Madhwaraj is with the Department of Master of Computer Applications at SSN College of Engineering, Kalavakkam, Tamilnadu, India – 603 used in this study were proposed by Martin [3]. 110. The rest of the paper is organized as follows. Section II Chitra Babu is with the Department of Computer Science and Engineering, surveys the related work. Section III describes good prinSSN College of Engineering, Kalavakkam, Tamilnadu, India – 603 110. ciples of Object Oriented Design. Section IV discusses the © 2011 JCSE www.journalcse.co.uk

31

selected design metrics. Section V describes the empirical study that has been conducted. Section VI highlights the important observations and Section VII gives conclusions derived from the study and future directions.

2 RELATED WORK Several research works have been done in the past related to packages using package-level design metrics. Kaur et al.[4] have proposed a maintainability index using package metrics, Briand et al.[5] define ratio-scale metrics for cohesion and coupling and their usefulness to the quality of software especially the maintainability. Several new software tools are being developed and readily available to check the package dependencies to avoid degeneration of package designs. Wilhelm et al.[6] proposed a dependency viewer, a tool that computes design quality metrics like stability and abstractness for each java package and further generates a graph that shows packages that were built by violating the design principles. Atole et al.[7] have performed a case study to extract cohesion and coupling metrics from package architectures and have used them to predict the quality of software. Roubtsov et al.[8] studied an important object oriented metric called “Normalized distance from the main sequence”, denoted by Dn and proposed a statistical model that can perform a Dn-based assessment to commercial java applications. Several metrics have been proposed by researchers and there is not enough work in literature that empirically validates these metrics. In a recent paper, Mahmoud O. Elish[9], has performed a case study to explore the relationship between design metrics and package understandability. There is no study that explores the influence of design metrics on package maintainability which is the motivation for the current research work.

A package should only depend upon packages that are more stable than it is”. The above principle clearly states that dependencies between packages, both efferent and afferent dependencies should be in line with the stability of the package design. Dependencies should not lead to a situation where it leaves the system instable. Moreover, packages should depend on much more stable packages yielding better stability. This, in turn, would result in better maintainability. 3.2 The Stable Abstractions Principle ( SAP ) “Packages that are maximally stable should be maximally abstract. Instable Packages tend to be concrete. The abstraction of a package should be in proportion to its stability” When more packages are found to be stable in a package design, the design becomes more abstract in the sense that it could be extended further. High abstractness is also a good indicator for better software maintainability. d) Instability ( I ) This metric is defined as the ratio of efferent coupling (Ce) to total coupling ( Ca + Ce ). The range of values are between 0 and 1. When I=0, it is a completely stable package and when I=1, it is a completely unstable package. The package com.steadystate.css has an Instability value 1 and a package org.w3c.dom has an instability value of 0.07 which means that the former package is highly unstable and the latter one stable. Figure (i) shows the process of extracting design quality metrics from the four open source software using the JDepend tool.

3 GOOD PRINCIPLES OF OBJECT ORIENTED DESIGN Less interdependency between packages and more stability are two factors that need to be taken care while creating good package design structures. It is believed that such design structures are better maintainable. Designs that have more interdependency become rigid, not reusable and unmaintainable[10]. Dependencies can be classified into two types, namely desirable and undesirable dependencies, and it becomes essential to limit the overall undesirable dependencies in the software system. On the other hand, Stability is a quality that every design looks for. Packages that are depended upon are independent and responsible packages and thus very stable. On the contrary, packages depending on other packages are more dependent and irresponsible and thus move towards instability. Both these principles have been used in the empirical analysis. These principles have also been associated with creation of better object oriented software designs which in turn results in better maintainability. 3.1 The Stable Dependencies Principle ( SDP ) “The dependencies between packages in a design should be in the direction of the stability of the packages.

Figure ( i ) – The Extraction Process The four package-level design quality metrics defined earlier were collected and categorized into two groups “Dependable Packages” & “Non-dependable Packages”. Packages that had abstractness metric (A = 0) and Instability metric (I = 1) were both dependent and irresponsible and hence were categorized as Dependable Packages and packages that had efferent coupling (Ce = 0) and Instability metric (I = 0) were both independent and responsible and thus were categorized as Non-Dependable packages. For packages that had the range of metric val-

32

ues between 0 to 0.5, the values were roundedto 0 and the other range of metric values i.e. between 0.5 to 1 were rounded to 1. The count of dependable and nondependable packages over different versions of several open source software were taken for analysis and was verified to satisfy the following three important criteria. a) There should always be a decrease in the count of non-dependable packages across different versions i.e. during system evolution. b) Presence of more dependable packages across different versions of the software system and this should be steadily increasing from one version to the other. c) Within every version of a software system, there should be a dominance of dependable packages to non-dependable packages. For this, we took the ratio of dependable to non-dependable packages. The Open Source Software Systems that satisfied all the above three criteria were considered to be the best maintainable.

5 EMPIRICAL STUDY The study aims to understand the influence of four package-level design metrics on the maintainability of open source software. For this purpose, different versions of four open source software were taken for study : a) The GPS (Geographical Positioning System) b) Lobo Web Browser (A web browser) c) dAmnArt (Messaging software used at the client side) & d) FreeNet (Software that allows sharing of files, chats etc). The significance behind the selection is that while all the software systems were purely developed using the Java language, they belong to different categories of open source software. Apart from less interdependency and more stability as previously discussed, abstractness has also been associated with maintainability since Object Oriented software development came into existence. A higher degree of abstractness or having more abstract classes or packages in a software system has resulted in better maintainability of the software over time. Further, a higher degree of package abstractness indicates that it is capable of being extended to accommodate new implementations without being modified i.e supports extensibility too. The evidence to this can be found in the Stable Abstractions Principle which says that packages that are maximally stable should be maximally abstract. Presence of more stable packages across different versions of the software system during software evolution can be taken as a candidate for better software maintainability. Tables (i-iv) show the metric values extracted from different versions of open source software as identified above. A graphical representation of the same is also shown to clearly understand the metric values and their implications on the maintainability of software.

6 IMPORTANT OBSERVATIONS Results in Table (i) show the percentage of de-

pendable and non-dependable packages in the four versions of Lobo browser. With respect to non-dependable packages, the first two versions maintain the same percentage, and in the subsequent two versions, it is seen to decrease which is a good sign as far as the count of nondependable packages are concerned. With respect to dependable packages, the first three versions see a rise in dependable packages except the last version where it seems to come down drastically which is not a good sign. Within every version of Lobo Browser, the dependable packages are dominating over non-dependable packages. This system clearly satisfies criterion (a) and (c) but does not satisfy criterion (b). In the case of the GPS system, results from Table (ii) show a different trend. In the three versions of GPS, the second version sees a drastic decrease in the nondependable packages and a slight increase in the third version. The dependable packages also show a different trend i.e. a big increase from the first to the second version. This coincides with the big decrease in nondependable packages which was seen earlier. In this case also, we see the domination of dependable to nondependable packages, thus satisfying only the criterion (c). Table (iii) shows the metric values of dAmnArt that indicates a trend that satisfies all the three criteria. The non-dependable packages are seen to decrease gradually right from the first version to the fourth version. With respect to dependable packages, there is an increasing trend right from the first to the fourth version. It is again observed that there is a very good domination of dependable packages to non-dependable packages within every version. This seems to be an ideal open source software system where dependable packages seem to increase, non-dependable packages seem to decrease over different versions of software and within every version of the software the percentage difference of dependable to non-dependable packages is very high which clearly would result in better maintainability over time. Results from Table (iv) show another trend i.e. there is a decreasing trend in the non-dependable packages and an increasing trend similar to dAmnArt but within versions, there seems to be a dominance of nondependable packages to Dependable packages in the first two versions, and later in the next two versions, the dominance of dependable packages are seen thus satisfying criterion (a) & (b) and not (c). Figure (v) shows the ratio of dependable to nondependable packages for all versions of open source software taken for study. It is evident that dAmnArt software shows a very high ratio of dependable packages.

33

Table

(i)

Table ( ii )

Table ( iii )

34

Table ( iv )

Table - v Shows the different open source software and the criterion they satisfy or not √ - satisfies; X – does not satisfy

Figure ( ii ) Graphical Representation for values extracted in Table ( i )

35

Figure ( iii ) Graphical Representation for values extracted in Table ( ii )

Figure ( iv ) Graphical Representation for values extracted in Table ( iii )

Figure ( v ) Graphical Representation for values extracted in Table ( iv )

36

Figure ( vi ) Ratio of Dependable to Non-dependable packages

An important observation based on the empirical study is that software systems need to be developed the way dAmnArt has been designed i.e. increase in the count of dependable packages across multiple versions, decrease in the count of non-dependable packages over versions and increase in the ratio of dependable packages to non-dependable packages within a version. It is also evident that in the case of criterion c, dAmnArt shows a very high ratio of dependable packages to nondependable packages within every version. Designing such open source software would definitely facilitate better software maintenance.

VII CONCLUSIONS AND FUTURE WORK This paper has studied the relationships between four package-level design metrics and their influence on the maintainability of a software system. Several versions of four open source software were taken and an empirical study has been conducted to prove our claim that

stability contributes to the maintainability of a package and to the maintainability of an entire software system. The maintainability of a software system would be better if all the three criteria are satisfied i.e. Presence of increasing number of dependable, decreasing number of non-dependable packages as the versions of the software system evolve and a dominance of dependable packages compared to non-dependable packages within every version of the software system built. As lots of open source software are being developed, there is a need to give attention to the package design and ensure that the maintainability is at acceptable levels. It was found that most of the packages which were dependable were system packages and there were less number of dependable user-defined packages in almost all versions of open source software. In future work, we would like to investigate whether this is true for all open source software i.e. by empirically studying several versions of another set of open source software. Currently, the open source software has been

37

selected from different domains. We would also be interested in checking whether open source software from the same domain would possibly satisfy the above criteria.

REFERENCES [ 1 ] M. Dagpinar and J. Jahnke,“Predicting Maintainability with OO Metrics – An Empirical Comparison”, Proc 10th Working Conference on Reverse Engineering ( WCRE’03 ), 13-17 Nov, 2003, pp 155-164, 2003. [ 2 ] Y. Zhou, X.U. Baowen,“Predicting the Maintainability of Open Source Software using Design Metrics”, Wuhan University Journal of Natural Sciences, Vol 13, No 1, 014-020, 2008. [ 3 ] R. Martin,“Agile Software Development Principles : Principles, Patterns and Practices”, Prentice Hall, 2003. [ 4 ] KulwantKaur, HardeepSingh,“Determination of Maintainability Index for Object Oriented Systems”,ACM SIGSOFT Software Engineering Notes, Volume 36,Issue 2,March 2011. [ 5 ] Lionel Briand,SandroMorasca, Victor R. Basili,“Defining and Validating High-Level Design Metrics”,Computer Science Department, University of Maryland. [ 6 ] M. Wilhelm, S. Diehl, “Dependency Viewer - A Tool for Visualizing Package Design Quality Metrics”, vissoft, pp.34, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis, 2005. [ 7 ] Atole C.S., Kale K.V,“Assessment of Package Cohesion and Coupling Principles for Predicting the Quality of Object Oriented Design”, Ist International Conference on Digital Information Management, Pages 1-5, 2006. [ 8 ] Roubtsov S, Serebrenik A, Van den Brand M,“Dn-based Design Quality Comparison of Industrial Java Applications”, 5th Central and Eastern European Software Engineering Conference in Russia ( CEE-SECR ), Oct 28-29, 2009. [ 9 ] Mahmoud O. Elish,“Exploring the Relationships between Design Metrics and Package Understandability : A Case Study”,18th International Conference on Program Comprehension, IEEE DOI 10.1109/ICPC.2010.43. [ 10 ] Robert C Martin,“UML 0.9 Lexicon”, B Class, Citeseer.

K.G. Madhwaraj obtained an M.Phil ( Master of Philisophy in Computer Science ) from Manonmaniam Sundaranar University, India, an MCA ( Master of Computer Applications ) from the University of Madras, India, a B.Sc bachelors degree in Computer Science from the Bharathidasan University, India and a DISM ( Diploma in Information and Systems Management ) from Aptech Computers. He is a research scholar working in the areas of open source software maintenance and design metrics. He has 15 years of teaching experience and is currently working as an Assistant Professor in the Department of Master of Computer Applications at SSN College of Engineering, Chennai, India. A member of the IEEE and conducts several workshops and faculty development programmes for the benefit of the academic community. His research interests are in the areas related to software engineering and software maintenance.

Chitra Babu received her Ph.D from the Indian Institute of Technology, Madras ( IITM ), an ME in Computer Science and Engineeringfrom College of Engineering, Guindy, an MS in Computer and Information Systems from the Ohio State University, Columbus, Ohio, USA and a BE from PSG College of Technology, India. She is

currently a Professor and Head of the Department of Computer Science and Engineering at SSN College of Engineering. She has 20 years of teaching and research experience. Her areas of interests are Object and Aspect Oriented Software Engineering, ServiceOriented Architecture and Cloud Computing. She has worked in AT&T Bell Labs at Columbus, Ohio, USA and has also worked as a consultant in the area of Document Imaging and management at Michigan, USA. She is a member of IEEE, ACM, Life member of CSI and ISTE.

Transactions Template

JOURNAL OF COMPUTER SCIENCE AND ENGINEERING, VOLUME 9, ISSUE 2, OCTOBER 2011. 30 ... levelmetrics are two ways by which the maintainability .... A higher degree .... 20 years of teaching and research experience. Her areas ...

914KB Sizes 1 Downloads 133 Views

Recommend Documents

Transactions Template
Published results show that these strategies effectively improve both the data rate and .... ed estimates to the decoder for error correction. Unlike the Viterbi decoding .... Error Probability for Data Services in a Terrestrial DAB Single Fre-.

Transactions Template
INTERNATIONAL JOURNAL OF ELECTRICAL, ELECTRONICS AND COMPUTER SYSTEMS (IJEECS),. Volume 1, Issue 2, April 2011. .... system integrates both graphical and textual password scheme and has high level security. .... and the list of grid cells of these th

Transactions Template - IJEECS
INTERNATIONAL JOURNAL OF ELECTRICAL, ELECTRONICS AND COMPUTER SYSTEMS (IJEECS),. Volume ... ployed to validate the present theory for various .... Journal of Radio and Space Physics, vol. 35, pp. 293-. 296, 2006.(Journal).

Transactions Template
In this paper we evolve a signature based intrusion detection system based on Neural ... Training and testing data we obtain from the real network traffic by using ...

Transactions Template
using sensors, 3G cell phone network and social media to be applied to the design of small ..... Systems, Computer Networks acting on the following themes:.

Transactions Template
http://sites.google.com/site/journaloftelecommunications/. Model for remote data ... analysis of these sensors can be acquired and transmitted remotely through the 3G network, directly to an operations room, or also be made available on the .... (pre

Transactions Template
overcome this problem is to have a good management and control of signal traffic lights. For this ... programmable logic controller and wireless sensors for a real time implementation. ... interested in managing urban traffic areas and road net-.

Transactions Template
tion of Internet Banking, as it reduces the customer‖s re- quirements to just a .... Taiwan launched a trial on over 5000 Visa payWave stores, in mid-2008.

Transactions Template
JOURNAL OF COMPUTER SCIENCE AND ENGINEERING, VOLUME 2, ISSUE 1, JULY 2010. 32 ... Arjan Singh is with the Baba Banda Singh Bahadur College of Engi- neering ... ranking of the V-N collocations based on their relative.

Transactions Template
dresses to the honeypot template (bind 10.3.0.2 Linux & bind 10.3.0.3 Linux). .... service, email platform, etc. the impact would be high and the image of the ...

Transactions Template
sit fleet by way of internet-enabled mobile devices. WAP- ... transit region is sent to the user mobile phone. From the ... converting the plate number into text file, and finally (4) running the .... If number at the free box is uncompleted or wrong

Transactions Template
puters are in the data processing classrooms and its use continues being ... Habib M. Fardoun is with the Institute of Computer Science Research. Institute of Albacete and .... which we can specify and use educational activities to allow work ...

Transactions Template
an Intranet and Internet, servers and workstations for operations, ... tion of new business models, and changes in the bounda- .... optical fibre or radio.

Transactions Template
JOURNAL OF COMPUTER SCIENCE AND ENGINEERING, VOLUME 4, ISSUE 1, NOVEMBER ... audio and video data separately, this research presents a.

Transactions Template
Abstract— The Semantic Web presents new opportunities for enabling modeling, sharing and reasoning with knowledge available on the web. These are made possible through the formal representation of the knowledge domain with ontologies. Ontology is a

Transactions Template
fined by the distance to the nearest training pattern. ... set cs(yj) j=1…m , cs(yj) ϵ { 0 1 ….9} which defines .... B.E. degree in 2007 from Rajasthan University.

Transactions Template - arXiv
registered with respect to the centre of the fingerprint image. The dimensionality of .... tions are then normalized into the domain from 0 to , and the certain values ...

Transactions Template
and integrating multiple telecommunication services into single device. The typical sierpinski gasket antenna has been introduced by [3]. Recently various ...

Transactions Template
by analyzing both audio and visual data. ... As tools and systems for producing and disseminating action data improve significantly, the amount of human action.

Transactions Template
We focused on intersections as a traffic scene to be covered by the system. At some blind ...... C. Sugimoto received the B.S. degree in Engineering, and the M.S..

Transactions Template
models and propose QoS in WSNs considering the packet to be small in size so that it can travel faster through the network by avoiding collision. In this way we ...

Transactions Template - IJEECS
ISSN: 2221-7258(Print) ISSN: 2221-7266 (Online) www.ijeecs.org. Modified ..... vanced Information Networking and Applications Workshops. (AINAW 07), vol. 2.

Transactions Template
present, there are no proper measures for software main- tainability[1]. ..... AT&T Bell Labs at Columbus, Ohio, USA and has also worked as a consultant in the ...

Transactions Template
The MANETs are also suitable when network setup is difficult, costly and required to be done quickly ... hop fashion without any centralized administration [1]. Significant examples of ..... Aircraft Ad-hoc networks, Network Security & VLSI Design.