Journal of Computer and Communications, 2013, 1, 32-39
http://dx.doi.org/10.4236/jcc.2013.15006 Published Online October 2013 (http://www.scirp.org/journal/jcc)
Open Access JCC
Smart Devel op men t Proc ess Enact ment Based on Context
Sensitive Seq uen ce Prediction
Andreas Rausch, M ichael Deynet
1Chair of Software Systems Engineering, Department of Computer Science, TU Clausthal, Clausthal-Zellerfeld, Germany; 2Embed-
ded Systems Development, Fraunhofer IESE, Kaiserslautern, Germany.
Email: andreas.rausch@tu-clausthal.de, Michael.Deynet@iese.fraunhofer.de
Received July 2013
ABSTRACT
Actual software development processes define the different steps developers have to perform during a development
project. Usually these development steps are not described independently from each othera more or less formal flow
of development step is an essential part of the development process definition. In practice, we observe that often the
process definiti ons are hardl y used and ver y s e ldom “lived”. One reason is that the pre de fined gene ra l process f l ow does
not reflect the specific constraints of the individual project. For that reasons we claim to get rid of the process flow
definition as part of the development process. Instead we describe in this paper an approach to smartly assist developers
in software process execution. The approach observes the developer’s actions and predicts his next development step
based on the project process history. Therefore we apply machine learning resp. sequence learning approaches based on
a general rule based process model and its semantics. Finally we show two evaluations of the presented approach: The
data of the first is derived from a synthetic scenario. The second evaluation is based on real project data of an industrial
enterprise.
Keywords: Software Engineering; Software Pro ce s s De scription La ng uages; Software Processes; Process
Enactment; Process Improve ment; Machine Learning; Sequence Prediction
1. Introduction
Customers are placing growing demands on the software
industry. They are looking for more complex products
and at the same time that are easier to use, have higher
quality, and are faster produced and shipped. The conti-
nuous increase in size and functionality of those software
systems [1] has now made them among the most com-
plex man-made systems ever devised [2].
Following a statement of Boehm [3], th e ability of any
industry enterprise to survive the rough market condi-
tions will depend more and more on software and hence
the capabilities to deliver in time, budget and quality re-
quired software. For that reasons over the years, a variety
of software process models have been designed to struc-
ture, describe and prescribe the software systems con-
structi o n pr oc ess.
These models range from generic ones, like the w ater-
fall model or the spiral model, to detailed models defin-
ing not only major activities and their order of execution
but also proposing specific notations and techniques of
application, like for instance RUP or V-Mode ll XT—also
called as rich process models. In the last decade agile
process models, like Scrum or Kanban, have become
more and more popular.
Independently what kind of process model you apply,
it can only strengthen your software development capa-
bilities as long as you apply it correctly. But, there is
huge gap between the defined and the applied develop-
ment process [4-7]. As shown in [4-7] one reas on for th is
discrepancy is that a predefined, even organization spe-
cific adapted, development process model cannot reflect
the specific constraints of the individual project. Tom
DeMarco even mentioned about the nature of process
models and methodologies in [8]. It doesn’t reside in a
fat book, but rathe r it is inside the heads of people carry-
ing out the w ork.
Consequently following this idea, we describe in this
paper an approach to smartly assist developers in soft-
ware development process application. The basic idea is
to observe the developer’s actions and thereby collect the
development process knowledge inside the heads of
people carrying out the work. Hence the project process
history provides the process knowledge for our approach.
Based on this process knowledge we predict the next de-
velopment step. Therefore we apply machine learning
Smart Development Process Enactment Based on Context Sensitive Sequence Prediction
Open Access JCC
33
resp. sequence learning approaches based on a general
rule based proces s model and i ts semant i c s .
The rest of the paper is structured as follows: Section 2
contains a shore overview of the related work in the area
of software process languages and sequence learning. In
Section 3 we present an overview of our software process
description language. Our approach for a smart devel-
opment process enactment based on context sensitive
sequence prediction is shown in Section 4. In the follow -
ing Section 5 we show two evaluations of the presented
approach: The data of the first is derived from a synthetic
scenario. The second evaluation is based on real project
data of an industrial enterprise. A short conclusion in
Section 6 rounds the pa per up.
2. Basic Terms, Related Work and
Objectives
As already mentioned the goal of software processes is to
help us to successfully develop and deliver (complex)
software systems. A software process is a set of activities
in a project which is execute d to develop and produce the
desired software system. A software process description
is a textual representation of a software process. To ela-
borate software process description in a well-defined
manner we use software process description language.
Using software process description languages has many
advantages: The clear defined syntax and semantics ena-
ble a tool-based interpretation. Thus, controlling, plan-
ning, and coordination of software projects can be (se-
mi-)automated.
Various software process description languages have
been developed. A good overview of software process
languages provides surveys like [9-13]. We distinguish
between three different language paradigms: rule based
languages (pre-/postconditions), net based languages (pe-
tri nets, state machines), or imperative languages (based
on programming languages). In addition there are lan-
guages using multiple paradigms.
Rule based languag es hav e loosely coupled steps, which
are flexibly combinable. The advantage is that develop-
ers can execute the step in their own manner. The disad-
vantage is that there exists no tool support during process.
Thus, there is a lower benefit for the developer during
process execution.
Imperative and net based languages implement the
step order directly. The step order corresponds to a gen-
erally valid order. Hereby, a tool based process execution
is possible. The problem is that the order of the steps
defined in the process description does not reflect the de-
veloper ’s working method.
For that reason our claim is to define a process de-
scription language which prevents these disadvantages in
a way that
A) the development process model does not prescribe
the order of development steps the developer has to ex-
ecute
B) the process enactment environment guides the de-
veloper during process execution by context sensitive re-
comme ndi ng the next development ste ps.
Therefore we adapt sequence prediction approaches,
which are a subgroup of machine learning approaches, to
process enactment environments. Hartmann and Schrei-
ber describe different sequence prediction algorithms in
[14]. The sequence prediction technique which is adopt-
ed in this paper is based on Davison/Hirsh [15] and Ja-
cobs/Blockeel [16].
3. Overview of the Process Description
Language
In this section we present a short overview of the con-
cepts of our process modeling language. This language
contains only elements which are needed to assist the
user during process enactment. The language does not
contain other elements like phases or roles although these
concepts could be easily added. We have designed a pro-
cess language based on pre-/postcondition. One key ele-
ment in our language is a step which is an activity during
process enactment. For example there are existing steps
like “Map requirement to Component” or “Specify Com-
ponent”.
Every step has pre- and po stconditions , that describe if
the user can start or stop the step execution. Furthermore,
steps can contain a set of contexts. This can be an execu-
tion context which is a subset of the product model (e.g.
all classes within component c are in one execution con-
text) or a “parameter” which describes a certain situation.
This can be for example the implementation language,
the used case tool, framework, the project, and so on.
The number of step types is fix at project execution time;
the number of context instances can vary (e.g. if a new
product is added to the product model, one or more ex-
ecution context instances are created corresponding to
the process description). A more detailed description of
our language can be found here [17-19].
4. Smart Development Process Enactment
Based on Context Sensitive Sequence
Prediction
For user (developer) assistance we have developed an
approach to predict the next step the user wants to start.
Our approach observes the last couple of started steps
(and corresponding contexts) and tries to build a database
where identified sequences are stored.
As already mentioned our work is based on the work
of Davison/Hirsh [15] and Jacobs/Blockeel [16] which
will be presented in more detail in the next subsection.
Smart Development Process Enactment Based on Context Sensitive Sequence Prediction
Open Access JCC
34
4.1. Overview of the Underlying Work
IPAM is the work of Davison/Hirsh and addresses the
prediction of UNIX commands. The approach imple-
ments a first order markov model, so the prediction which
is made is based on the last observed element. IPAM
stores unconditional and conditional probabilities in a da-
tabase. After each observation the entries of the database
are updated as follows:
( )( )
( )
P xyαPxy 1α
=⋅ +−
for x = current observation
and y = last observation. The entries with x current
observation are updated with:
( )( )
P xyαPxy
= ⋅
.
α
is a parameter between 0 and 1. Davison/Hirsh recom-
mend a value of
α0.8
.
The work of Jacobs/Blockeel is based on IPAM but
implements a higher order markov model. If
10
yyx
was observed and the prediction for x was correct (e.g.
( )
210
P xyyy
has highest probability) new entries are
stored to the database. Let C be the set of suffixes of
10
yy with
. Let l be longest
Suffix of
10
yyx
with
( )
P al0>
. The following new
entries are stored to the database:
P(z|cx)P(z|l),for allcCandz= ∈∈
observed ele-
ments.
4.2. Our Approach
The central part of our appro ach is the LookupDB which
stores the experience data Figure 1 (middle box). Each
of the elements of the LookupDB stores, among other
things, a condition (cond), a step prediction , and a proba-
bility (P). This describes th e probability (P) that the next
step (prediction) will be started, given the occurrence of
the step sequence cond. For example: An element of
LookupDB can store the condition 123. When the
steps 123 are observed, the probability that step 1
will be started is 0,9. Further, for each element in the
condition sequence a set of relevant context pro babilities
are stored. Those are these contexts which were observed
in the past.
For prediction (see Figure 1, right) of the next step all
relevant elements of LookupDB are taken and for each of
these elements an “actual probability” is calculated. Here,
our approach considers the learned context relevance in
LookupDB and the actual observed contexts in the cor-
responding w indow.
After prediction and after observation our algorithm
learns this observation by updating the conditional prob-
abilities and context relevance of all matching elements
in the LookupDB (see Figure 1, left). In the following
out approach is specified in a more detailed way.
First, let us define some relevant elements of our meta
model (see [17-19]):
(1) Let S be index set which represents the set of Steps
(2) Let C be index set which represents the set of
Figure 1. Overview of the approach.
Step: 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 ?
ExcutionContext (IN): 4 5 6 4 5 6 7 8 9 7 8 9 4 5 6 7 8 9 4 5 6
4
?
ExecutionContext (OUT): 3 3 3 4 4 4 3 3 3 4 4 4 5 5 5 6 5 6 4 4 3 4
Kontext x: ...................
Kontext y: ...................
....
LookupDB
Learning
After each observation:
For all elements in LookupDB which
condition (Cond) matches to the last
observed steps (without last step
this will be learned) and the Prediction
matches to the last observed step:
1.Update P:
P=alpha*P+(1-alpha) (see [22])
2. Update Context relevance:
For each Index i:
For each line j (e.g. IN, OUT, …):
let a be the actual context
observation in [i,j]
update context relevance
K[a]=#observeda‘s in [i,j] /
#observed contexts in [i,j]
(this is the probability of a)
3. Update Context prediction:
Let cbe the execution context tolearn
(IN of the last observed step).
Let l be a list of elements
[Index:x,line] wherec is observed
in actual context observation
For all l: Update w:
w=alpha*w+(1-alpha)
4. If last prediction was correct:
Add new elements to LookupDB (see [23]
for the algorithm)
Prediction
Let L be a list of (copied) elements
of LookupDB which Cond matches tothe
last observed steps (L contains copies
of LookupDB changes do not modify
LookupDB)
For all l L:
1. For each Index i:
For each line j (e.g. IN, OUT):
let x be the actual context
observation in [i,j]
delete all K[y] in the
Context relevance with y!=x
in [i,j], e.g.:
2. Calcutales overall context
relevance:
ocr=arithmetic mean of all K[*] in
the Context relevance of l
3. Calculate P_actual = P* ocr
Predict the l with the highest
P_actual.
-2
K4=0,6
K4=0,5
-1
K5=0,3
K4=0,4
0
K6=0,3
K4=0,5
Index
IN
OUT
Index: -2 -1 0
IN: 4 5 6
OUT: 4 4 3
e.g. i=-2, j=IN: actual context
observation in [i,j] c = 4
Index: -2 -1 0
Cond : 1 2 3 Prediction: 1
P= 0,9
Context relevance:
Context prediction:
[Index:0,IN] w = 0,9
[Index:0,OUT] w = 0,2
[Index:0,Kontext x] w = 0,2
[Index:1,IN] w = …
-2
K4=0,6
K7=0,5
K3=0,8
K4=0,5
K6=0,1
-1
K5=0,3
K8=0,5
K3=0,1
K4=0,4
K5=0,2
0
K6=0,3
K9=0,7
K3=0,8
K4=0,5
K5=0,3
K6=0,2
Index
IN
OUT
Kontext
x:
Sequence of
Steps and
contexts
startet from
the user
Smart Development Process Enactment Based on Context Sensitive Sequence Prediction
Open Access JCC
35
Contexts
(3) Let CC be index set which represents the set of
Context Classifications.
To address the past observed steps we need an index
set I:
(4) Let I be index set
[ n,,0]−…
.
The function observation returns the observed step at
the index i, where i = 0 means the last observation, i = -1
the last but one observation, et cetera (see Figure 1 top
right):
(5)
:
s DEF
observationI S= →
Furthermore, we need a function which returns the ob-
served context at index i and at the Context Classification
cc:
(6)
( )
2:
DEF
observationI CCC= ×→
In the example in Figure 1, observation 2(0,IN) re-
turns 6.
4.3. LookupDB
We define our LookupD B :
(7) Let
:{0,1,2, }
DEF
LOOKUPDB = …
be Index Set
Each element of LOOKUPDB r epres ents an element of
the LookupDB. Every element of our LookupDB has a
condition cond. We define
(8)
:{ }
DEF
CONDLOOKUPDB IS= ××
COND
is the set of all step sequences of elements of
the LookupDB. For example: The following elements
exist for the LookupDB element shown in Figure 1:
(69,2,1), (69,1,0), and (69,0,3) where 69 is the ID of
the shown LookupDB element. Let
ldb LOOKUPDB
;
,ldb i
cond
describes the step of ldbat position i.
(9) :{ }
DEF
LENCOND LOOKUPDB
= ×
Is the set that describes the length of the condition de-
fined in (8). The following element exists for the Loo-
kupDB element described above: (69,3). The condition
length is 3. Let
ldb LOOKUPDB
;
ldb
lenCond
de-
scribes the condition length of ldb.
The set
PREDICTION
describes the predicted step
of the element of the LookupDB:
(10) :{ }
DEF
PREDICTIONLOOKUPDB S
.
(11)
[ ]
:{0,1 }
DEF
P LOOKUPDB= →
defines the pro-
bability of the element of the LookupDB that the pre-
dicted step occurs. For the element in Figure 1(69,1)
PREDICTION
and
(69,0.9) P
. For easy handling
ldb
p
describes the probability of the LookupDB element
ldb. Theset CONTEXTWEIGHT describes a weight for
each context classification (Figure 1: the lines of the
table, e.g. IN, OUT), index (Figure 1: rows of the table)
and context (number in the fields of the table) for each
element of the LookupDB:
(12)
{}
CONTE XTWEIGHT
LOOKUPDB CCIC∈××× ××
The following elements describe the example in Fig-
ure 1 at index 1, CC=IN:
(69,, 1,5,3,10)IN KCONTEXTWEIGHT−∈
; (3/10) de-
fines the probability that the context K5 at position IN
and index-1 is relevant.
Now, we define a function that returns 1 if a specified
entry of LookupDB corresponds to the last observed
steps:
(1)
(){ }
: 0,1
DEF
match LOOKUPDB= ×→
( )
( )
[ ]
,
,
1if
:for all,0
0 otherwise
ldb qs
ldb
matchldboffset
condobservation q offset
q lenCond
= −
=∈−
Anymore, we define the following function that finds a
specific element from the set CONTEXTWEIGHT:
(2)
:
DEF
getCWLOOKUPDB CCIC
CONTE XTWEIGHT
=× ××
( )
, ,,:getCWldb cci ccw=
with
cw CONTEXTWEIGHT
and
,,
cwcw cwcw
idldbcc cci iandc c== ==
4.4. Prediction
For prediction we define the following functions:
(3)
[ ]
( )
[ ]
:{0,1 }0,1
DEF
getAMCICC C=×××→
( )
{( ,,,)}:with:
arithmetic mean of all(is threshold)
getAMCi ccc wamcamc
w
θθ
= =
>
.
(4)
( )
:{[0,1] }
DEF
fLOOKUPDBICC C=→ ×××
( )()
{ }
[ ]
( )
( )
:,,,with,0 and
:2,for allandand
:/ (,):,,,
ldb
fldbi cc c wilenCondc
observationicciccw
xy withxygetCWldb ccic
= ∈−
=
= =
The function f takes an entry of LOOKUPDB and re-
turns a set of elements (ind ex,cc,c,w). w corresponds to
the context weight of ldb for each index i and cc in ldb
and for the corresponding c found in the observation.
The function getAMC takes a set of elements (in-
dex,cc,c,w) and returns the arithmetic mean of all w. ge-
tAMC(f(ldb))returns a “parameter” that the element of the
LookupDB (and the learned context weights inside) cor-
responds to the observed contexts.
The function getActualP takes an entry of LOO-
KUPDB and calculates an actual P weight dependent on
ldb and the actual observation (this weight is used to se-
lect the best entry of LOOKUPDB for prediction):
(5)
[ ]
: 0,1
DEF
getActualP LOOKUPDB= →
( )( )
( )
:}
ldb
getActualP ldbgetAMCfldbp= ∗
Now, we can describe the function to predict the next
Smart Development Process Enactment Based on Context Sensitive Sequence Prediction
Open Access JCC
36
step:
(6)
:( )
DEF
makepredictionPow LOOKUPDBS= →
(): )makeprediction ldbs with=
( )( )
:for maximalsprediction ldbgetActualP ldb=
To predict the next step we call the function make pre-
diction with a set of all elements ldb of LookupDB with
match(ldb,0) = 1.
4.5. Learning
To update the LookupDB, the following steps are done
(note:
(0)
s
observation
is the step a prediction we made
and we want to learn):
If there exists no
ldb LOOKUPDB
with
( ,1)ldb LENCOND and
((,0),( 1))ldb observationCOND−∈ and
( ,(0))
s
ldb observationPREDICTION a new entry is
added to the LookupDB (the entry with the shortest
cond):
(19)
: {}{}
{ }{}{}
{}{}
{ }{}{}
DEF
addEntryLOOKUPDB COND
LENCOND PREDICTIONP
LOOKUPDB COND
LENCOND PREDICTIONP
= ×
×× ×
→×
×× ×
00, 000
111 11
(,,, ):
( ,,,,
addEntry ldbcondlcprep
ldb condlcprep
=
with:
1 01010
1 010
\, \,\
, \,\)
ldb ldbcondcondlc lc
pre prep p
=∅ =∅=
∅ =∅=∅
01 010
1 0101
1,1,
1, 1 ,1
ldbldbcondcond lc
lc prepre pp
+=+= +
=+= +=
01
andn ldbn ldb
∉∈
01
(, 0,(1))
and ((,0),(1))
n observation
condnobservationcond
−∉
−∈
01
( ,1)and( ,1)n lcn lc∉∈
01
( ,(0))
and( ,(0))
s
s
n observation
pren observationpre
01
( ,1)and( ,1)npnp
αα
−∉ −∈
Let
LDB LOOKUPDB
:
{|LDBldbLOOKUPDB= ∈
( )
( )
,1
1( ,0)}.
s
matchldb
and l observationPREDICTION= ∈
For each element
ldb LDB
the following steps are
done:
(20)
{ }
:{}with:
DEF
updatePP LOOKUPDBP=×→
( )
( )( )
( )
( )
01 0
1 10
, :,,,
,*1andp \{(ldb,pp)}
updatePpldbpwith ldb pppldb pp
p andldbppp
αα
= ∈∉
+− ∈=
1{(, *(1))}
p elbpp
αα
+− (see [15])
(21)
{ }
:
DEF
updateContextweight CONTEXTWEIGHT=
{}LOOKUPDB CONTEXTWEIGHT×→
( )
01
, :withupdateContextweight cwelcw=
For all
( )
0
,,, ,,ldb cc i cxycw
with
1
(,,, ,,)ldbelldb cc i cxycw≠⇒ ∈
For all
( )
0
,,, ,,ldb cc i cxycw
with
ldb el=
and
() ()
11
2,,,, ,,
and (,, ,,1,1)
cobservationi ccldbcci c xy
cwldb cci cxycw
= ⇒∈
+ +∈
For all
0
(,,, ,,)ldb cc i cxycw
with
ldb el=
and
( )()
11
,,, ,,
and (,,,,,1)
s
cobservationildb cc icxy
cwldb cci cxycw
≠⇒ ∉
+∈
This function updates the probabilities of the context
information in ldb.
If the last prediction was correct new entries are added
to the LookupDB according to the work of Jacobs et al.
[16]. Let
Q LOOKUPDB
be a subset of LOO-
KUPDB w ith:
(22)
,
:{ |
DEFq i
QldbLOOKUPDB cond= ∈
( )
1for all
,0 }
s
q
observation ii
lenCond
= −


Let
L LOOKUPDB
be subset of LOOKUPDB
with:
(23)
,
:{ |
DEFl i
LldbLOOKUPDB cond= ∈
( )
[ ]
for all
,0}
s
ldb
observation ii
lenCond
=
Let ll be the element of L with the longest lenCond and
P(ll)>0. The f unc t ion update LOOKUPDB is defined as:
(7)
{}{ }
{} {} {} {}
:
{})({} {}
{ }{}{
})
(
}
{
DEF
updateLOOKUPDBLOOKUPDB Q ll
COND LENCOND PREDICTIONP
CONTEXTWEIGHTLOOKUPDBCOND
LENCOND PREDICTIONP
CONT EXTWEIGHT
=×× ×
× ×××
→ ××
× ××
( )
00000 0
, ,,,,,,:updateLOOKUPDBLDBql clcprepcw=
( )
1111 11
,,,, ,LDB c lcprepcw
with (see [16]):
0
10 1
{0,1, ,}and{0,1, ,,}
||||| |
nLDBn m
LDB withLDBqLDB
… ∈……∈
+=
Let ldiff be
10
\LDB LDB
. For all
there is aninwith:
qqqldiffel lediff
0
1
1
((,), )and((,1), )
for alland;and:((,0),(0))
q iscldiffelis
cisldiffel oberservation
c
∈ −∈
01
(,)and (,1)q llcldiffelllc∈ +∈
01
(,)and(,)for allqs preldiffels pres∈∈
00 1
(, )and(, 2)and(, 2)qppll ppldiffel pp∈∈ ∈
This function adds new entries to LookupDB by taking
the entries which have predicted the observation correctly
Smart Development Process Enactment Based on Context Sensitive Sequence Prediction
Open Access JCC
37
and “extending” the corresponding conditions by adding
the observation (see [16] for detail).
5. Evaluation
5.1. Synthetical Process
For the evaluation of the approach described in Section 4
we derived a synthetic project scenario. In this scenario
the requirements of the system are existent. The goal is to
develop an architecture (components, classes) and a cor-
responding implementation. The process description con-
sists of 4 steps: 1) Identify component, 2) Map require-
ment to Component, 3) Specify component (refine re-
quirement), 4) Implement component.
In the system two types of components exist: a) Com-
plex/hardware related components. Here, the engineer
has a prototypical method to develop the component
(steps 2 - 4 are executed sequentially). b) Components
which classes have a high coupling. Here, the engineer
has a broad design method (step1; all steps 2; all steps 3;
all steps 4).
For evaluation three sequences of steps (with corres-
ponding contexts) were build: i) Development of com-
ponents only of the type a), ii) Development of compo-
nents only of the type b), and iii) random mix of a) and
b).
Our approach is compared with the algorithm from
Jacobs/Blockeel [16] which is the underlying sequence
prediction technique of our approach. The results are
shown in Figure 2. This figure contains two graphs for
each scenario: The first (top) describes the total number
of correct predictions and the second describes the per-
centage distribution of correct prediction after each step
(horizontal axis). The Jacobs Blockeel(JB) approach is
shown in red color and our approach (MD) is shown in
blue color.
In all scenarios our approach predicts equal to or better
than the Jacobs Blockeel algorithm. Remarkable is that in
scenario 3 (the “real world” scenario) our approach pre-
dicts the steps substantially better than the JB approach.
After 2/3 of all steps our algorithm predicts always cor-
rectly. On the other hand the algorithm of JB “drifts” to
53% correct predictions. 81% of correct predictions in
scenario 3 might be an indication that our approach is
more applicable.
5.2. Real Project Process
In addition to the synthetical evaluation (described in
section V.A) we evaluated our approach with real project
data from anindustrial enterprise. Are there differences
between these two evaluations? In the synthetical evalua -
tion we described a process description using the de-
scription language presented in Section 3. This is a rule
based language which is flexibly executable for the en-
gineer. On this basis, we derived three test data sets and
evaluated our approach with these data. The evaluation
of the industrial case study is based on real project data
with 5.600 individual development steps. The underlying
process description language of the industrial case study
was a net based language. Therefore, the process descrip-
tion (and the enacted process) is more stringent than our
process used for evaluation in section V.A.
Like in the synthetically evaluation our approach is
compared with the approach of Jacobs/Blockeel. The
results are shown in Figure 3 . Again, there are two cate-
Figure 2. Results synthe t i c sc enario.
0
20
40
60
80
100
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
MD
JB
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
MD
JB
0
20
40
60
80
100
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
MD
JB
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
MD
JB
0
20
40
60
80
100
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
MD
JB
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
MD
JB
Scenario
Total number correct
predidctions
% correct predictions
1
MD: 85
JB: 78
MD: 77 %
JB: 71 %
2
MD: 103
JB: 103
MD: 93 %
JB: 93 %
3
MD: 89
JB: 59
MD: 81 %
JB: 53 %
Scenario 1
Scenario 2
Scenario 3
Smart Development Process Enactment Based on Context Sensitive Sequence Prediction
Open Access JCC
38
Figure 3. Results of the real project evaluation.
gories shown: the first shows the total number of correct
predictions and the second shows the percentage distri-
bution of correct predictions after each step. Similar to
the synthetic approach our approach generates more ac-
curate predictions than the Jacobs/Blockeel approach.
6. Conclusions, Further Work
Customers are placing growing demands on the software
industry. The ability of any industry to survive the rough
market conditions will depend more and more on soft-
ware and hence the capabilities to deliver in time , budget
and quality required software. For that reasons over the
years, a variety of software process models have been
designed. Software process models can only strengthen
your software development capabilities as long as you
apply it correctly.
But, there is huge gap between the defined and the ap-
plied development process. One reason is that the prede-
fined general process flow does not reflect the specific
constraints of the individual project. For that reasons we
claim to get rid of the process flow definition as part of
the development process. Instead we describe in this pa-
per an approach to smartly assist developers in software
process execution.
The basic idea is to observe the developer’s actions
and thereby collect the development process knowledge
inside the heads of people carrying out the work. Hence
the project process history provides the process know-
ledge for our approach. Based on this process knowledge
we predict the next development step. We apply a se-
quence learning approach to predict the next develop-
ment step with respect to project process knowledge.
We have evaluated our approach on a synthetic and a
real world project setting. In both settings our approach
was able to provide more accurate predictions than clas-
sical non context sensitive approaches. However the re-
sulting accuracy of 75% to 90% is not high enough for a
wide acceptance by developers. However if we present to
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1
73
145
217
289
361
433
505
577
649
721
793
865
937
1009
1081
1153
1225
1297
1369
1441
1513
1585
1657
1729
1801
1873
1945
2017
2089
2161
2233
2305
2377
2449
2521
2593
2665
2737
2809
2881
2953
3025
3097
3169
3241
3313
3385
3457
3529
3601
3673
3745
3817
3889
3961
4033
4105
4177
4249
4321
4393
4465
4537
4609
4681
4753
4825
4897
4969
5041
5113
5185
5257
5329
5401
5473
5545
MD
JB
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
72
143
214
285
356
427
498
569
640
711
782
853
924
995
1066
1137
1208
1279
1350
1421
1492
1563
1634
1705
1776
1847
1918
1989
2060
2131
2202
2273
2344
2415
2486
2557
2628
2699
2770
2841
2912
2983
3054
3125
3196
3267
3338
3409
3480
3551
3622
3693
3764
3835
3906
3977
4048
4119
4190
4261
4332
4403
4474
4545
4616
4687
4758
4829
4900
4971
5042
5113
5184
5255
5326
5397
5468
5539
MD
JB
Total number correct
predictions
% correct predictions
MD: 4215
JB: 3949
MD: 75 %
JB: 70 %
Smart Development Process Enactment Based on Context Sensitive Sequence Prediction
Open Access JCC
39
the developer not only a single development step predic-
tion but instead presenting the best three predictions
similar to Google which presents a result list after a web
query, the prediction accuracy rate would increase to
99.9%. Note, this resulting accuracy has been proved in
the two presented evaluation scenarios.
Based on such a prediction soundness a process en-
actment framework could be widely accepted and applied
by developers. The next step is to set up a broader empi-
rical experiment to validate the applicability of our pro-
cess enactment framework.
Moreover additional research and application direc-
tions of the presented approach are to support novice de-
velopers (e.g. developers works in a new project/new
company) by providing the experience data of other de-
velopers. Using the experience data (of the developers of
one or more projects) for organization-wide process im-
provement (e.g. derive a standard process description of
the available knowledge) could be another interesting
direction to follow.
REFERENCES
[1] L. Northrop, P. Feiler, R. P. Gabriel, J. Goodenough, R.
Linger, T. Longstaff, R. Kazman, M. Klein, D. Schmidt,
K. Sullivan and K. Wallnau, “Ultra-Large-Scale Systems
The Software Challenge of the Future,” Software En-
gineering Institute, Carnegie Mellon, Tech. Rep., 2006.
http://www.sei.cmu.edu/uls/downloads.html
[2] A. W. Brown and J. A. McDermid, “The Art and Science
of Software Architecture,” In: F. Oquendo, Ed., ECSA,
Ser. Lecture Notes in Computer Science, Vol. 4758,
Springer, 2007, pp. 237-256.
[3] B. Boehm, “Some Future Trends and Implications of Sys-
tem and Software Engineering Processes,” Wiley InterS-
cience, 2006.
[4] D. Rombach, “Integrated Software Process and Product
Lines, Unifying the Software Process Spectrum,” 2006.
[5] M. Kabbaj, R. Lbath and B. Coulette, “A Deviation Ma-
nagement System for Handling Software Process Enact-
ment Evolution,” Making Globally Distributed Software
Development a Success Story, 2008, pp. 186-197.
[6] K. Mohamme d , L. Redouane and C. Bernard, “A Devia-
tion-Tolerant Approach to Software Process Evolution,”
Ninth International Workshop on Principles of Software
Evolution in Conjunction with the 6th ESEC/FSE Joint
Meeting, 2007, pp. 75-78.
[7] D. Jean-Claude, K. Badara and W. David, The Human
Dimension of the Software Process. In: Software Process:
Principles, Methodology, and Technology, Lecture Notes
in Computer Science,” Bd. 1500, Springer US, 1999, pp.
165-199.
[8] T. DeMarco and T. Lister, “Peopleware, Productive Pro-
jects and Teams, Second Edition Featuring Eight All-
New Chapters,” Dorset House Publishing Corporation,
1999.
[9] K. Z. Zamli, Process Modeling Languages: A Literature
Review,” Dez-2001.
http://myais.fsktm.um.edu.my/278/
[10] S. T. Acuna, “Software Process Modelling.”
[11] P. Armenise, S. Bandinelli, C. Ghezzi und A. Morzenti,
“A Survey and Assessment of Software Process Repre-
sentation Formalisms,” International Journal of Software
Engineering and Knowledge Engineering, Bd. 3, 1993, pp.
401-401. http://dx.doi.org/10.1142/S0218194093000197
[12] M. I. Kellner, Representation Formalisms for Software
Process Modeling,” Proceedings of the 4th International
Software Process Workshop on Representing and Enact-
ing the Software Process, Devon, United Kingdom, 1988,
pp. 93-96. http://dx.doi.org/10.1145/75110.75125
[13] P. H. Feiler und W. S. Humphre y, “Software Process De-
velopment and Enactment: Concepts and Definitions,”
Software Process, 1993, Second International Conference
on the Continuous Software Process Improvement, 1993,
pp. 28-40.
[14] M. Hartmann und D. Schreiber, “Prediction Algorithms
for User Actions,” Proceedings of Lernen Wissen Adap-
tion, ABIS, 2007, pp. 349-354.
[15] B. D. Davison und H. Hirsh, “Predicting Sequences of
User Actions,” Notes of the AAAI/ICML 1998 Workshop
on Predicting the Future: AI Approaches to Time-Series
Analysis, 1998.
[16] N. Jacobs und H. Blockeel, Sequence Prediction with Mix-
ed Order Markov Chains,” Proceedings of the Belgian/
Dutch Conference on Artificial Intelligence, 2002.
[17] M. Deynet, “User-Centric Process Descriptions,” Pro-
ceedings of the 3rd International Conference on Software
Technology and Engineering, Kuala Lumpur, Malaysia,
2011, pp. 209-214.
[18] M. Deynet, “Kontextsensitiv Lernende Sequenzvorher-
sage zur Erfahrungsbasierten Unterstützung bei der Soft-
wareprozessausführung,” Dr. Hut, 2013.
[19] M. Deynet, Predicting User Actions in Software Pro-
cesses,” 4th Workshop on Intelligent Techniques in Soft-
ware Engineering at the European Conference on Ma-
chine Learning and Principles and Practices of Know-
ledge Discovery in Databases (ECML-PKDD), Athen,
Ägypten, 2011.