Seminar by Santonu Sarkar

Modular Design - New Metrics for Software that Ceases to be Modular

Santonu Sarkar
Accenture Technology Labs, Bangalore

Date:    Monday, August 31, 2009   
Time:    11:00 AM   
Venue:   CS101.

Abstract:

Does the world really need yet another article on software metrics? Hasn't enough been said already? Software systems consisting of millions of lines of code (Object Oriented software being more recent vintage) are being written and maintained in an ad-hoc manner leading to deterioration of its overall structure. However we are still unable to characterize such software and its deterioration with the passage of time using the existing metrics.
It is well known that the system should be "modular" in nature in order to be maintainable. We do not believe that there exists a single commercial case of a large software system (OO and Non OO alike) that was successfully characterized from modular design perspective with the metrics known today. The metrics formulated to date for characterizing the modularization quality of OO software have considered module and class to be synonymous concepts. But a typical class in OO programming exists at too low a level of granularity in large OO software consisting of millions of lines of code. A typical module (sometimes referred to as a superpackage) in a large OO software system will typically consist of a large number of classes. Even when the access discipline encoded in each class makes for *clean* class-level partitioning of the code, the intermodule dependencies created by associational, inheritance-based, and method invocations may still make it difficult to maintain and extend the software.
We do not diminish the significance of the great body of published literature related to metrics and modularization. In particular, we are referring to the foundations laid down by the works of Parnas, Halstead, Weyuker, Offutt et al, Chidamber and Kemerer, Abreu et al, Chen, Kitchenhaum et al, Briand et al, Arisholm, Briand, and Foyen, Andritsos and Tzerpos, among many others.
This said, the talk provides an overview of a new set of metrics that measure the modular design quality of a software (OO as well as non OO) with respect to a set of enunciated modular design principles. Thus, the metrics we present here characterize the software from a variety of perspectives: structural, size, architectural, and notions such as the similarity of purpose and commonality of goals (By structural, we are referring to intermodule coupling-based as caused by function/method calls, data dependency, inheritance, associational notions, and by architectural, we mean the horizontal layering of modules). The notion of API is an important as the basis for our structural metrics. Some of the important support metrics include those that characterize each module on the basis of the similarity of purpose of the services offered by the module. These metrics are based on information-theoretic principles.

Back to Seminars in 2009-10