Toward software requirements modularization using hierarchical clustering techniques

Software modularity is not a new concept in the software engineering field; it has been a design issue since the earliest days of software development. Because the software designer cannot be expected to conceptualize a complex software application as a whole, it is usual to create a top-level design which is decomposed into a set of modules. The degree of modularization is a subjective concept that is difficult to measure; however, coupling and cohesion are two well-known concepts that are used to characterize software modularization.In this paper we illustrate how requirement scenarios can be clustered, based on attributes identified in the scenarios to quantitatively assess software modularization. Our technique uses a data mining clustering method that clusters scenarios, so that those scenarios within a cluster have a strong functional relationship with one another and weak relationships with scenarios in other clusters. Hence, cohesion within clusters is maximized while coupling between clusters is minimized. Consequently, software modularization based on these clusters should provide a good initial design.

[1]  Ellen M. Voorhees,et al.  Implementing agglomerative hierarchic clustering algorithms for use in document retrieval , 1986, Inf. Process. Manag..

[2]  David Lorge Parnas,et al.  Software design , 2001 .

[3]  H. Charles Romesburg,et al.  Cluster analysis for researchers , 1984 .

[4]  D. Defays,et al.  An Efficient Algorithm for a Complete Link Method , 1977, Comput. J..

[5]  Russ Abbott Program design by informal English descriptions , 1983, CACM.

[6]  Jean-Marc Nerson,et al.  Object-Oriented Analysis and Design , 1992, TOOLS.

[7]  N. H. Lassing,et al.  Using UML in Architecture-Level Modifiability Analysis , 2001 .

[8]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

[9]  T. A. Wiggerts,et al.  Using clustering algorithms in legacy systems remodularization , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[10]  Robin Sibson,et al.  SLINK: An Optimally Efficient Algorithm for the Single-Link Cluster Method , 1973, Comput. J..

[11]  Robert L. Glass,et al.  Measuring software design quality , 1990 .

[12]  Geri Schneider,et al.  Applying Use Cases: A Practical Guide , 1998 .

[13]  James Martin,et al.  Object-oriented analysis and design , 1992 .

[14]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[15]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process , 2001 .

[16]  Christopher Alexander Notes on the Synthesis of Form , 1964 .

[17]  Mordechai Ben-Menachem,et al.  Writing effective use cases , 2001, SOEN.

[18]  Petra Perner,et al.  Data Mining - Concepts and Techniques , 2002, Künstliche Intell..