Measure the reusability of object oriented interfaces in uml diagrams
In recent years, computer software is the single most important technology in the world. Software developers have continually attempted to develop new technologies due to the growing importance of computer software. In these developments some of them focused on a technology domain i.e. object oriented system/programming . Metrics are difficult to collect and may not really measure the intended quality measures of software. Empirical validation is must to verify the usefulness of a metric in practical applications.
A. Software Engineering
Software engineering started with a humble beginning and it has slowly come into existence. Now, software engineering is the best solution to the software problems. Most of the programmers/developers view the software engineering as an engineering approach to develop the software .
B. Software Measurement
“If you can’t measure it’s not Engineering community” – is a common quote by the engineering community . Measurement is the basis for all science and engineering. Good measurements are necessary for successful process. Software measurement is still considerably less than optimal in terms of measurement techniques and the volume and reliability of published data .
Software measurement plays an important role for finding the quality and reliability of software products. The measurement activities require appropriate tools to calculate relevant metric values. At present large number of metric tools are available for software measurement . The main objective of this paper is to find the reusability of interfaces in object oriented programming.
2. MEASUREMENTS AND METRICS
Measurement is the technology that allows the software professional to make visible progress for improving the software related factors. Measurement is not only a performance factor that leads to behavioural changes but it is used to improve the factors that are being measured . It is a clear note that measurement is necessary for the software development process to be successful.
A. Traditional Metrics
From 1976 traditional metrics have been used in software measures for measuring the software complexity. Nowadays, a large number of software metrics has been proposed to measure effort and quality. Traditional metrics are important to measure non object oriented programs . Metrics are used as a controlling method in development and to measure either the process of development or various aspects of the product . Traditional metrics are used to measure the complexity of the program and comment percentage of the program.
B. Object Oriented Programming and Metrics
Object oriented software is a more recent and important quality software than that of the old-style procedural software/program . With the wide spread object oriented technology the subject of software engineering has received much attention over the last two decades . Object oriented design and development are very important and popular concepts in today’s development environment. Object oriented design and development requires a different approach to design, implementation and to the software metrics compared to standard set of metrics.
Metrics are very essential and important to measure object oriented software programming . The development of software metrics for object oriented technology / programming has received more attention. A large number of metrics have been developed by researchers and numerous tools are available to help assess design quality and to collect metrics from software programs, designs, quality and maintenance etc . Many object oriented metrics proposed in literature survey lack theoretical proof and some have not been validated. The metrics that evaluate the object oriented programming concepts are: methods, classes, coupling and cohesion. Very few metrics are presented for object oriented interfaces. In this paper, a measurement has been proposed to calculate the reusability of interfaces in object oriented programming.
3. OBJECT ORIENTED INTERFACES
The concept of an interface is old. Software engineering has been using interfaces for more than 25 years. Nowadays interfaces are heavily used in all disciplines especially in object oriented programming . With interface construct, object oriented programming features a good concept with high potential code reusability. Interfaces are used to organize code and provide a solid boundary between the different levels of abstraction  .
It is good to use interfaces in large type of applications because interfaces make the software/program easier to extend, modify and integrate new features.
An interface is a prototype for class. With the construct of an interface java allows a concept of high potential for producing a reusable code. Interfaces in object oriented programming just contain names and signatures of methods and attributes, but no method implementations. Interfaces are implemented by classes. The inheritance hierarchy of interfaces is independent than that of class inheritance tree. Therefore object oriented languages like java gives higher potential to produce reusable code than abstract classes   .
Reusability is always an interesting topic with shining promise. Reusable code is an effective combination 2 concept.
* Properly defined interface definitions and
* Efficiently defined class structure and inheritance.
In this paper, the authors followed the first concept of reusability and measured the metric for interface reusability by giving a new formula. One benefit of defining interface is that every class that implements an interface must be inline with the interface’s functional requirements. Large amount of code sharing occurs within each implementation classes. Based on the class structure designed at the development time the implementation classes are organized according to their interface group type and inheritance allowed to access common logic.
Reusability is an important factor for the software community people because it is the ability to reuse a number of software artefacts in terms of requirements, architecture, plans, cost estimates, designs, source code, data elements, interfaces, screens, user manuals, test plans and test cases. Software reusability is an experimental one under the impact of new tools and programming languages. The measurement of software/program and the software development process are much needed for software professionals attempting to improve their software process. Reusability of software increase productivity and quality and reduce the cost . So in this paper, the reusability is measured for object oriented programming interfaces using the new formula.
5. BACK GROUND SUPPORT & PROPOSED APPROACH
Measurement is not just a software activity. A good measurement process is an effective method for demonstrating new tools and process improvements. An accurate measurement is a prerequisite process for all engineering disciplines and software engineering is not an exceptional one for calculating the accurate results. There is no significant work on the design of human computer interfaces. In literature, relatively little information has been published on metrics. Those metrics would provide limited insight into the quality and usability of the interface .
So the proposed approach is to derive a formula for calculating the reusability of interfaces accurately . Deeper an interface in hierarchy leads to greater the reusability of inherited methods. When the depth of inheritance (DIT) of an interface increases the reusability of an interface also increases. So DIT of an interface has positive impact with the reusability of an interface. Reusability of interfaces are calculated by the following two ways:
1. Reusability of interfaces is calculated by using the formula:
(RI) = Total No. of links to interfaces – No. of interfaces.
RI – Total Reusability of interface diagram.
2. The reusability of interfaces in a diagram is calculated by using the formula:-
Total Reusability of a diagram:
RI = R (I1) + R (I2) +….R (In);
R- Reusability and I1…..In are Interfaces
In each diagram the reusability of an interface is calculated by using the formula and all interface reusability must be added to find the total reusability of interface diagram. In both ways i.e. according to formula 1 and 2 the values are equal. This is shown in table 1, 2 and 3.
6. EMPIRICAL STUDY
To validate the formula empirically three object-oriented diagrams are used to calculate the values for reusability of an interface for each diagram.
Figure 1 shows object oriented design diagram shapes interfaces. Table 1 shows the values of reusability of each interface and total reusability of interfaces using the above formula.
TABLE 1. REUSABILITY OF INTERFACES FOR SHAPES
RI = Total Reusability of a diagram
L-I = Reusability of an interface
I=1 since reusability is calculated for each interface. No. of interfaces = 1.
In the above table 1 RI is calculated by using the formula 1 and 2.
TABLE 2. VALUES OF INTERFACE REUSABILITY
Many simplistic metrics do not capture the importance of whatever it is that it has to measure. Many developers and software engineers are experiencing the benefits and uses of reusability in completion of the project with in the time and cost. Many other programmers and developers believe that software reuse will help in reducing cost and provide other benefits in software development. Object oriented programming software is more reusable than functionally decomposed software. Software reuse increases production and quality of software and reduces software development cost and time. Reusability is an attribute of software quality. By measuring reusability we can measure software quality. The authors have proposed a new metric to measure the reusability of interfaces in object oriented programming. As software is being developed, it is very good and important to keep an eye on the various parameters. The authors used three UML object oriented diagrams to validate the formula. Hence, this approach is an eye-opener to measure reusability of interface diagram.
 Bakar N.S.A.A. & Boughton .C,”Using a Combination of Measurement Tools to Extract Metrics from Open Source Projects”, Proceedings of Software Engineering and Applications of 2008.
 Capers Jones,” Applied Software Measurement-Global Analysis and Productivity Quality”, 3rd Edition.
 Christopher L. Brooks, Christopher G.Buell, “A Tool for Automatically Gathering Object-Oriented Metrics”, IEEE, 1994.
 Dirk Riehle and Erica Dubach,”Working With Java Interfaces and Classes-How to Separate Interfaces from Implementations”, P.No:35-46, Published in Java Report 4, 1999
 El Hachemi Alikacem, Houari A. Sahraoui, “Generic Metric Extraction Framework”,IWSM/Metrickon, Software Measurement Conference 2006.
 Etzkorn W.E., Hughes, Jr W.E. and Davis C.G. ,”Automated reusability quality analysis of OO legacy software”, Information and Software Technology, Volume 43 , Issue 5, April 2001,P.No:295-308.
 FriedRich Steimann, Philip Mayer, Andreas MeiBner,”Decoupling Classes with Inferred Interfaces “, Proceedings of 2006 ACM, Symposium on Applied Computing, Pg.No:1404-1408.
 Hector M. Olague , Letha H. Etzkorn, Senior Member, IEEE, Sampson Gholtson and Stephen Quattlebaum ,”Empirical Validation of Three Software Metrics Suites to Predict Fault-Proneness of Object-Oriented Classes Developed Using Highly Iterative or Agile Software Development Processes”,IEEE Transactions on Software Engineering, Vol. 33,No.6,June 2007.
 ISRD GROUP,”Introduction to Object Oriented Programming through JAVA”,TATA Mc Graw Hill, Pg.No:109.
 Ivar Jacobson, Magnus Christerson, Patrick Johnson,
Gunnar OverGarrd,”Object Oriented Software
Engineering-A Use Case Driven Approach”,
P.NO:468, Pearson Education @ 2001.
 Ken Pugh,” Object Oriented Design”, Chapter 5,
Inheritance and Interfaces, The Pragmatic
Programmers, LLC, 2005.
 Khan R.A., K.Mustafa And S.A.Ahson, “Software
Quality – Concepts And Practices”, P.No:140.
 Linda H. Rosenberg,”Applying and Interpreting
Object Oriented Metrics”, Presented at the Software
Technology Conference, Utah, April 1998.
 Madumathi I. & B.Palaniappan,”A Tool for Extracting Object Oriented Metrics”,International Journal of Computing and Applications ,2007.
 Markus Mohenen, “Interfaces with Default Implementations in Java”, Aachen University of Technology.
 Markus Mohnen,”Interfaces with Default Implementations in Java”,Technical Report, RWTH Aachen,April 2002.
 Matthew Cochran,”Coding Better: Using Classes Vs. Interfaces”, January 18th, 2009.
 Nachiappan Nagappan, Thomas Ball and Andreas Zeller,” Mining Metrics to Predict Component Failures”, Verification and Measurement Group , Microsoft Research, 2005, Redmond, Washington.
 Neville I. Churcher, Martin J. Sheppered, ACM Software Engineering Notes, Vol.20, Issue 2, P.No:69-75, April 1995.
 Pradeep Kumar Bhatia, Rajbeer Mann,” An Approach to Measure Software Reusability of OO Design “, Proceedings of 2nd International Conference on Challenges & Opportunities in Information Technology,COIT-2008,RIMT-IET,March 29,2008.
 Rajib Mall ,”Fundamentals of Software Engineering”, Chapter 1, Pg.No:1-18,2nd Edition, April 2004.
 Roger S. Pressman,”Software Engineering a Practitioner’s Approach”, 6th Edition.
 Rudiger Lincke, Jonas Lundberg and Welf Lowe,”Comparing Software Metrics tools”,ISSTA ’08,July 20-24,2008.
 Santonu Sarkar, Member, IEEE, Avinash C. Kak, and Girish Maskeri Rama,” Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software, IEEE Transactions on Software Engineering, Vol. 34, No. 5, Sep-Oct 2008.
 Terry .C. and Dikel .D.,”Reuse Library Standards Aid Users in Setting up Organizational Reuse Programs”,Embedded System Programming Product News,1996.
 Victor Laing and Charles Coleman,”Principal Components of Orthoganal Object-Oriented Metrics”, Nov.20th 2008,