Figure 9: Assigning a function to the scenario.
4 DISCUSSION AND
CONCLUSIONS
This paper presented an experiment on the
verification of security requirements for the source
code of an existing system. The experiment showed
that we could verify whether the existing system
satisfied the security requirements. Generally, source
code verification is difficult and time consuming.
There are several different approaches to source
code verification (
Beyer
et al., 2004,
Thompson
et al.,
2008). A tester needs to analyze the details of the
target source code and insert assertion statements. In
this case, requirements specification implementation
will be dependent on the document.
To optimize the approach shown in Figure 1, we
solved the following problems through
experimentation:
• RA Models are an effective approach for
specifying functional requirements. Security
requirements are a kind of non-functional
requirement related to functional
requirements; they can be specified through
the systematic method shown in Figure 3. It
is important to design and manage concepts
such as Cross-Cutting Concerns and Context
Awareness modularly so that we can formally
verify them. Furthermore, such designs need
to be implemented in a clear and consistent
manner for the duration of the project.
• In this paper, RA Models were defined
manually. We are planning the development
of a support tool for these manually defined
RA Models to improve their
comprehensiveness and accuracy.
• Several problems impede the creation of a
correspondence table through static analysis
of the source code. Various different
technologies such as programming languages,
platforms, and application frameworks are
used to implement a software system.
Because analysis methods depend on the
technologies used, an analysis tool can be
very expensive to develop. It is also common
that developers do not comply with standard
coding conventions during the project and
team members can vary during the course of
the project. This causes inconsistency in
definition of operations and fields.
REFERENCES
OMG, “UNIFIED MODELING LANGUAGE”,
http://www.uml.org/
Y. Aoki and S. Matsuura, Verifying Security
Requirements using Model Checking Technique for
UML-Based Requirements Specification, Proc. of 1st
International Workshop on Requirements Engineering
and Testing, pp.18-25, September,2014.
Y. Aoki, S. Ogata, H. Okuda and S. Matsuura, Data
Lifecycle Verification Method for Requirements
Specifications Using a Model Checking Technique,
Proc. of The Eighth International Conference on
Software Engineering Advances (ICSEA 2013),
pp.194-200, 2013.
UPPAAL, http://www.uppaal.com/, 2016.
S. Ogata and S. Matsuura, “A UML-based Requirements
Analysis with Automatic Prototype System
Generation,” Communication of SIWN, Vol. 3,
pp.166-172, 2008.
Common Criteria, “CC/CEM v3.1 Release4”,
http://www.commoncriteriaportal.org/cc/
Y. Aoki, S. Matsuura, “Verifying Business Rules Using
Model-Checking Techniques for Non-specialist in
Model-Checking.” IEICE TRANSACTIONS on
Information and Systems, Vol. E97-D, No. 5,
pp.1097-1108, May, 2014.
S. Matsuura, Y. Aoki, and S. Ogata, Practical Behavioral
Inconsistency Detection between Source Code and
Specification using Model Checking, ISSRE 2014,
pp.124-125, 2014.
LUMINOUS, https://lmns.sayo.se.shibaura-it.ac.jp/
D. Beyer, T.A. Henzinger, R. Jhala, and R. Majumdar, An
Eclipse Plug-in for Model Checking, Proceedings.
12th IEEE International Workshop on Program
Comprehension, pp. 251-255, 2004.
S. Thompson and G. Brat, Verification of C++ Flight
Software with the MCP Model Checker, Aerospace
Conference 2008 IEEE, pp.1-9, 2008.