Abstract
Modular software design is characterized by partitioning the system into discrete scalable, reusable modules consisting of isolated, self-contained functional elements. Software architects use modularity to allow independent offerings and reuse. Moreover, modularity allows dealing with changing customer demands, as it offers software architectures that are stable and more adaptive to changes. There have been some attempts at automatic partitioning of object-oriented classes into modules (i.e., packages). However, all these attempts are based on source code, i.e., they occur late in the development process at the implementation stage. In this paper, we present a metric and a search-based mechanism to allow automatic functionality-based system partitioning during the architecture design phase using requirements conceptual sequence diagrams. The metric is validated against applicable theoretical properties and also experimentally against hypothetical and real-case studies using different search techniques. Results suggest that the metric together with the partitioning mechanism is promising and can be used in effectively partitioning system conceptual classes into packages.
Original language | English |
---|---|
Pages (from-to) | 453-481 |
Number of pages | 29 |
Journal | Software Quality Journal |
Volume | 23 |
Issue number | 3 |
DOIs | |
State | Published - 1 Sep 2015 |
Bibliographical note
Publisher Copyright:© 2014, Springer Science+Business Media New York.
Keywords
- Automatic software packaging
- Package functionality
- Packaging metric
- Search-based software engineering
- Software architecture
- Software modularization
ASJC Scopus subject areas
- Software
- Safety, Risk, Reliability and Quality