4 CASE STUDY
During the EAMS-CBALM development the non-
functional requirements were defined according to 5
qualitative design criteria: Performance, Interoper-
ability, Portability, Responsiveness and Security. The
functional requirements of this system were orga-
nized into 19 modules: Authentication, General Set-
tings, Access Profiles, Users, Course, User Registra-
tion in Class, Calendar, Programming, Groups, Ped-
agogical Planning, Evaluation Management, Trajec-
tory, Repository of Group Documents, Repository of
Individual Documents, Forums, Meetings, Frequency,
Evaluations, and Performance Record.
The Evaluation Management module generated
the most controversies between POs and developers,
since the CBALM student evaluation is different and
more complex than the traditional one. This module
is composed of 14 functional requirements, and al-
though the scenarios of Evaluation Instrument Reg-
ister requirement have been redone several times, its
final implementation did not fully satisfy the POs.
Therefore, we selected this module in this case study,
by focusing on the CBALM student evaluation pro-
cess. Furthermore, one of the POs that was involved
in the EAMS-CBALM development participated in
this case study. By keeping regular meetings with this
PO, we developed new source code for the Evaluation
Instrument Register requirement by combining BDD
with Scrum. This new source code was presented to
the PO and compared with the implementation origi-
nally produced by TokenLab.
4.1 Behaviour-Driven Development
Test Driven Development (TDD) (Beck, 2002) is
a software evolutionary development methodology,
based on short development cycles, in which auto-
mated tests are described previously to the functional
code. Acceptance Test Driven Development (ATDD)
(Koskela, 2008) extends TDD by using acceptance
tests to represent stakeholders requirements.
Behaviour-Driven Development (BDD) is a soft-
ware agile development methodology, originally pro-
posed by Dan North (North, 2006) and considered
an evolution of TDD and ATDD, whose fundamen-
tal principle is: “stakeholders and developers should
refer to the same system in the same way”. For
achieving this goal, an ubiquitous language is re-
quired that is understandable by all those involved
in system development and that enables executable
granular specifications of the system’s behaviour and
testing (Diepenbeck and Drechsler, 2015).
Six main characteristics of BDD were identi-
fied in (Solis and Wang, 2011): ubiquitous lan-
guage; iterative decomposition process; user story
and scenario templates; automated acceptance test-
ing with mapping rules; readable behaviour-oriented
specification code; and behaviour-driven at different
phases. Using these characteristics, (Solis and Wang,
2011) also analyses seven of the main BDD tools:
NBehave (NBehave, 2014) and JBehave (JBehave,
2015); MSpec (MSpec, 2016) and RSpec (RSpec,
2016); StoryQ (StoryQ, 2010); Cucumber (Cucum-
ber, 2016); and SpecFlow (SpecFlow, 2016).
BDD is an evolving methodology that does not
have a clear definition and unanimous understanding,
and the existing support tools focus mainly on the im-
plementation phase, providing limited support to the
requirements gathering, analysis, and design phases
of software life cycle. Starting from (Solis and Wang,
2011), we did a systematic review of BDD-related
work, and an analysis of the current BDD toolkits.
Figure 4 shows the BDD process depicted using the
Structured Analysis and Design Technique (SADT)
diagrammatic notation.
The purpose of this case study has been to ex-
periment with the combination of BDD and Scrum,
aiming at exploiting the benefits of this combina-
tion. During a Scrum sprint planning meeting in-
volving POs and the development team, requirements
are listed according to their priority and added as
user stories to the product backlog. The develop-
ment team then decides which stories are tackled
during the sprint, and creates a sprint backlog with
the tasks to be performed in the sprint. In order to
avoid rework, a clear understanding of these require-
ments and the corresponding functional behaviour is
necessary. According to (Chauhan, 2016) BDD can
be used for this purpose if it takes a central role in
some Scrum artefacts and rituals: the product back-
log and the sprint backlog; the daily scrum meeting;
and the sprint meeting. In addition, according to (Ma-
lik, 2013) BDD can also be applied in backlog refine-
ment. In the sequel, we discuss how we combined
BDD and Scrum in our case study by discussing each
of the stages of the BDD process in Figure 4.
4.2 Ubiquitous Language
A ubiquitous language is essential in BDD. It must
have a structure derived from a business domain
model, offer a terminology that is understandable to
both clients and developers, be used in all system de-
velopment phases (Evans, 2004). Therefore, a ubiq-
uitous language had to be created for the communica-
tion between the POs and developers.
Most of the ubiquitous language terminology
ICEIS 2017 - 19th International Conference on Enterprise Information Systems
452