integrated guiding tool for developers of IT solutions
(Ruff and Horch, 2018). The overall goal of the
assistant is to support developers, who are typically
already experts in the IT security field, build on their
foundation with assistance to integrate other
disciplines (usability and socio-economics) in order
to establish a secure but also market friendly software
(Hofer and Sellung, 2016). The assistant guides the
developers through the whole software development
process and on each phase, it presents a specifically
defined set of questions to identify the status of the
process and possible problems of the current phase.
Having defined the problems encountered by the
developers, the assistant presents solutions based on
the expert knowledge that will help at a particular
state of the development process. This knowledge
was collected from experts in the fields of IT security,
usability and socio-economics through several
workshops and is stored in the assistant in the form of
questions, problem identifiers, and solutions from
three abovementioned fields.
This paper describes the methodology and lessons
learned from the experimental evaluation of a
software assistant. Two methods were used for the
assessment and one of them, an experimental
evaluation through a case study is presented in this
paper in detail. More information on the previous
development stages of the assistant has already been
published and is thus out of scope of this paper. It can
be found in the following papers: (Hofer and Sellung,
2016) present the selection process of the methods
and standards from the fields of usability,
socioeconomics, and IT-security used by the
assistant; the description and method of construction
of the semantic data model that structures the
knowledge base of the wizard can be found in (Horch,
et al., 2017); and (Ruff and Horch, 2018) provides
information on the overall functionality of the
software assistant.
The organization of the paper is as follows.
Section 2 presents the software assistant and
introduces its structure and core model. In Section 3,
the evaluation methods of the assistant are described
and the conclusion is given in Section 4.
2 THE CUES ASSISTANT
The CUES assistant is a tool that contributes to
improving the software development process. It
guides the developers of IT security solutions through
the whole process following a comprehensive
approach that includes such aspects as IT security,
usability and socio-economics. By including more
disciplines in the development process, the assistant
makes the whole development process more
comprehensive and inclusive (Hofer and Sellung,
2016). This way it helps to address a technical bias
that often leads to drawbacks or blind spots that could
have been avoided had the development process
included more disciplines.
The assistant comprises a semantic database
(Horch, et al., 2017) built on expert knowledge on
common problems and challenges that software
developers may encounter in the development
process as well as adequate and comprehensive
solutions to tackle them. Moreover, in order to
identify potential problems, the assistant provides
specific questions and related information by letting
the users of the assistant fill out a questionnaire.
The CUES assistant allows for two cases of use.
In the case where the software developers are already
aware of the problems they face in the current
development process and have identified them, they
can directly search for solutions. In cases where the
developers do not know whether they might
encounter a problem or cannot define the type of issue
they encounter, the developers enter the following
meta-data for the project:
Project name
Short description of the project
Incorporated phases (e.g. test, development,
evaluation, etc.)
Start date of the project and each phase
End date of the project and each phase
Type of software to be developed (e.g. web
application, mobile app, etc.)
Budget of the project
Number of software developers and
security/usability/economics experts.
Further, the assistant asks them a set of specific
questions, which will help identify present or possible
problems and will then offer the most adequate
solutions in the form of methods, best practices or
heuristics.
The expert knowledge stored in the assistant
includes different types of information such as, for
example, current processes for software development
and embedded phases, common problems of software
development projects, questions that help identify
these problems, and relevant solutions for possible
problems (Ruff and Horch, 2018). The knowledge
base was acquired through numerous workshops on
three topics (usability, socioeconomics and IT-
security) involving experts from the respective
domains – industry practitioners as well as
researchers. During these workshops, teams of
A Methodology for Experimental Evaluation of a Software Assistant for the Development of Safe and Economically Viable Software
235