Software information leaks: a complexity perspective

Software development can be thought of as the evolution of abstract requirements into a concrete software system. The evolution, achieved through a successive series of transformations, is inherently a complex process. The inherent complexities, that often make these transformations sub-optimal, are further aggravated by inefficient capture and usage of requisite information during transformation. While some understanding of software may be reasonably clear at a given time, the future dependencies may not be fully understood or accessible. The clarifications obtained over time make the system more concretely understood, but there may be software information leaks (SILs) as some relevant information is lost. Some key SILs may be due to failure to be fully acquainted with dependencies between various software artifacts. In this paper, our objective is to define SILs as concept, codify an essential set of canonical leaks, and introduce solutions for dealing with some of them.

[1]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[2]  Carl K. Chang,et al.  Event-Based Traceability for Managing Evolutionary Change , 2003, IEEE Trans. Software Eng..

[3]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[4]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[5]  Stuart M. Charters,et al.  Visualisation for informed decision making; from code to components , 2002, SEKE '02.

[6]  A.M. Davis,et al.  System Phenotypes , 2003, IEEE Softw..

[7]  B. Ramesh,et al.  Issues in the development of a requirements traceability model , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[8]  B. Curtis Three Problems Overcome With Behavioral Models Of The Software Development Process , 1989, 11th International Conference on Software Engineering.

[9]  Timothy C. Winkler,et al.  Approximate Reasoning About the Semantic Effects of Program Changes , 1990, IEEE Trans. Software Eng..

[10]  Rubén Prieto-Díaz,et al.  A faceted approach to building ontologies , 2003, Proceedings Fifth IEEE Workshop on Mobile Computing Systems and Applications.

[11]  Rubén Prieto-Díaz,et al.  DARE: Domain analysis and reuse environment , 1998, Ann. Softw. Eng..

[12]  Norman Wilde,et al.  Maintenance Support for Object-Oriented Programs , 1992, IEEE Trans. Software Eng..

[13]  Robert S. Arnold,et al.  Software Change Impact Analysis , 1996 .

[14]  Alexander L. Wolf,et al.  Architecture-Level Dependence Analysis for Software Systems , 2001, Int. J. Softw. Eng. Knowl. Eng..

[15]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[16]  Matthias Jarke,et al.  Toward Reference Models of Requirements Traceability , 2001, IEEE Trans. Software Eng..