Sotware modularization using requirements attributes

Due to the increasing complexity of today's software applications, design methodologies are of great concern to the software community. The design phase of the software lifecycle is a major factor to the success of a software system. Some studies have shown that the majority of errors detected during the testing phase are related to design. Therefore, it is very critical to assess the quality of the design. The correct top-level modularization of the software is critical to the design quality.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 has been 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 will illustrate how requirements scenarios can be clustered based on attributes identified in the scenarios. The technique uses heuristic clustering methods that cluster scenarios so that those scenarios within a cluster have a strong functional relationship with one another and weak relationships to the 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]  Robert L. Glass,et al.  Measuring software design quality , 1990 .

[2]  David Budgen,et al.  Software design , 2020, International computer science series.

[3]  Harsha Rao,et al.  Writing Effective Use Cases and Introducing Collaboration Cases , 1998, J. Object Oriented Program..

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

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

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

[7]  Jiawei Han,et al.  Data Mining: Concepts and Techniques , 2000 .

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

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

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

[11]  Alistair Cockburn,et al.  Writing Effective Use Cases , 2000 .

[12]  Emden R. Gansner,et al.  Bunch: a clustering tool for the recovery and maintenance of software system structures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[13]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[14]  D. E. Goldberg,et al.  Genetic Algorithms in Search , 1989 .

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

[16]  Emden R. Gansner,et al.  Using automatic clustering to produce high-level system organizations of source code , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

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

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

[19]  Melanie Mitchell,et al.  An introduction to genetic algorithms , 1996 .