Abstract
In the past 10 years, the research community has produced a significant number of design notations to represent security properties and concepts in a design artifact. These notations are aimed at documenting and analyzing security in a software design model. The fragmentation of the research space, however, has resulted in a complex tangle of different techniques. Hence, practitioners are confronted with the challenging task of scouting the right approach from a multitude of proposals. Similarly, it is hard for researchers to keep track of the synergies among the existing notations, in order to identify the existing opportunities for original contributions. This paper presents a systematic literature review that inventorizes the existing notations and provides an in-depth, comparative analysis for each.
1 Introduction
Dealing with security right from the start in a software development project has the potential of avoiding higher costs related to fixing security flaws later on. Ideally, security concerns should be tackled as early as the software design phase. This is the central tenet of security by design, which is advocated by both industry and academia.
To ensure that the security considerations of a design do not remain in the head of the designer, thereby evaporating over time, and also that analysis and verification tasks can be performed at the design level, the security aspects need to be explicitly represented within the design of the software system. This implies that a designer needs to have access to a concrete technique that supports the recording of security-relevant information in relation to the design. This paper focuses on approaches that enable this, by offering support for explicitly representing and/or analyzing security concepts and properties in a software design model, which we will henceforth refer to as notations for security. For example, an approach that includes a graphical convention for the designer with the purpose of indicating which parts of the software system are subject to access control is considered as a notation. Clearly, notations are only one aspect of security by design. We acknowledge that, besides notations, design methodologies are equally important, as well as design support tools, such as security patterns and the like. However, these are outside the scope of our work.