An approach to feature‐based software construction for enhancing maintainability

While the way we build software affects significantly its maintenance in terms of the effort and cost, the experience level of the maintainer in a software acquirers' organization is also one of concern. In this context, often the maintainer is the user of the system. Unfortunately, it is quite possible to lose the trustworthiness of the software due to the inexperience of the maintainer, especially when the maintainer is without the help of the original developers. One remedy for providing security against the effects of the maintainer's software modifications is to restrict the access to software parts (modules) relative to the experience level of the maintainers. For such a remedy to be successful, the software should be constructed in such a way that its parts under maintenance affect others as little as possible. We propose an approach to software construction aligning the dependencies among software parts in one direction so that they are allocated to maintainers based on their experience level. Our approach decomposes the software into parts based on functionality and orders the parts by essentiality, which indicates how difficult it is to change each part. Then, we align the dependencies in such a way that the less essential functionality is dependent on the more essential functionality. Consequently, any modification on less essential functionality does not affect the essential functionalities. To demonstrate the feasibility of our proposed approach, we applied it to a military application and found that the constructed software enables us to confine maintainers' activity within a limited working area, and thus the software is safer against maintainers' modification. Copyright © 2006 John Wiley & Sons, Ltd.

[1]  Warren Harrison From the Editor: Propaganda and Software Development , 2004, IEEE Softw..

[2]  Martin E. Nordberg Aspect-Oriented Dependency Inversion , 2001 .

[3]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[4]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[5]  Stephen S. Yau,et al.  Some Stability Measures for Software Maintenance , 1979, IEEE Transactions on Software Engineering.

[6]  James J. Reed Data and Analysis Center for Software , 1993 .

[7]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[8]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[9]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[10]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[11]  Penny Grubb,et al.  Software Maintenance: Concepts and Practice , 2003 .

[12]  George P. Van Kirk,et al.  Adapting the defense information infrastructure common operating environment (DII COE) for weapon-system-embedded computing , 1999, Defense, Security, and Sensing.

[13]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[14]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[15]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[16]  Sang-Il Lee,et al.  Developing a common operating environment for military application , 2003, The Ninth IEEE Workshop on Future Trends of Distributed Computing Systems, 2003. FTDCS 2003. Proceedings..

[17]  David Chenho Kung,et al.  Change impact identification in object oriented software maintenance , 1994, Proceedings 1994 International Conference on Software Maintenance.

[18]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[19]  Siobhán Clarke,et al.  Object Metrics for Aspect Systems : Limiting Empirical Inference Based on Modularity , 2000 .

[20]  Gordon S. Blair,et al.  On the Separation of Concerns in Program Families , 2004 .

[21]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[22]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[23]  Vijay K. Vaishnavi,et al.  Predicting Maintenance Performance Using Object-Oriented Design Complexity Metrics , 2003, IEEE Trans. Software Eng..

[24]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[25]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[26]  Don S. Batory,et al.  Achieving extensibility through product-lines and domain-specific languages: a case study , 2000, TSEM.

[27]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[28]  Malcolm Munro,et al.  An improved method of selecting regression tests for C++ programs , 2001, J. Softw. Maintenance Res. Pract..

[29]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[30]  A. Jefferson Offutt,et al.  A software metric system for module coupling , 1993, J. Syst. Softw..

[31]  James M. Coggins,et al.  Subject-Oriented Programming , 1996 .

[32]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[33]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[34]  Siobhán Clarke,et al.  Theme: an approach for aspect-oriented analysis and design , 2004, Proceedings. 26th International Conference on Software Engineering.

[35]  Yannis Smaragdakis,et al.  Building Product-Lines with Mixin-Layers , 1999, ECOOP Workshops.

[36]  Richard Lai,et al.  Measuring the Maintainability of a Communication Protocol Based on Its Formal Specification , 2003, IEEE Trans. Software Eng..

[37]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[38]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).