The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science
1. The
Rela(onship
between
Development
Problems
and
Use
of
So:ware
Engineering
Prac(ces
in
Computa(onal
Science
&
Engineering
Dus$n
Heaton,
Jeffrey
C.
Carver,
Roscoe
Bartle8,
Kimberly
Oakes,
and
Lorin
Hochstein
dwheaton@crimson.ua.edu,
carver@cs.ua.edu
Maintainable
SoFware
Prac$ces
in
e-‐Science
e-‐Science
2012
2. Introduc$on
• SoFware
is
used
to:
– Avoid
dangerous/expensive
experiments
– Process
large
amounts
of
data
• Why
not
have
soFware
engineers
develop
the
code?
2
3. Previous
Survey
• How
much
SE
knowledge
exists
in
the
CSE
Community?
• 92%
of
respondents
claim
they
have
sufficient
knowledge
of
SE.
• 63%
claim
the
CSE
community
has
sufficient
knowledge
• Specific
Topics
3
4. Previous
Survey
• Research
vs
Produc$on
• Relevance
(almost)
always
higher
than
use
• Top
3
Most
Relevant
Prac$ces:
– Version
Control
– Documenta$on
– Verifica$on
&
Valida$on
4
5. Why
perform
a
new
survey?
• Did
the
respondents
define
the
prac$ces
the
same
way
we
did?
• What
programming
languages
did
the
respondents
use?
• Respondents
repeated
4
problems
– Rework
– Performance
issues
– Regression
errors
– Forgedng
to
fix
bugs
that
were
not
tracked
5
6. Survey
Respondents
• Target
Audience:
– Broad
subset
of
the
CSE
community
– Mailing
lists
from
mul$ple
na$onal
laboratories,
numerical
analysis,
and
other,
more
focused,
CSE
development
lists
• 151
responses
6
7. Defini$ons
No
5%
Respondents
overwhelmingly
agreed
with
our
defini$ons
Yes
95%
7
8. Programming
Languages
C++
Fortran
C++
most
common,
not
Fortran
C
Matlab
Python
Perl
Other
0%
10%
20%
30%
40%
50%
60%
70%
8
9. Self
ra$ng
of
SE
Knowledge
vs
Familiarity
with
SE
topics
45%
40%
35%
30%
None
25%
Low
20%
Medium
15%
High
10%
Very
High
Most
people
had
a
medium
knowledge
of
SE
topics
5%
0%
Somewhat
Moderately
Mostly
Fully
Sufficient
Sufficient
Sufficient
Sufficient
9
10. Rework
• Most
frequent
problem
• What
would
help?
• Research
developers:
low-‐medium
level
• Produc$on
developers:
high
level
10
11. Rework
Research
Produc(on
35%
35%
30%
30%
25%
25%
20%
20%
15%
Use
15%
Use
10%
Relevance
10%
Relevance
5%
5%
High
Relevance
and
Use
from
Produc$on
Developers
0%
0%
11
12. Performance
• Least
severe
problem
• What
can
help?
• Research
Developers:
low-‐medium
• Produc$on
Developers:
high
12
13. Performance
Research
Produc(on
40%
40%
35%
35%
30%
30%
25%
25%
20%
20%
15%
Use
15%
Use
Relevance
Relevance
10%
10%
5%
5%
High
Relevance
comes
from
Produc$on
Developers
0%
0%
13
14. Regression
Errors
• More
important
to
produc$on
than
research
developers
• What
can
help?
• Research
developers:
random
• Produc$on
developers:
very
high
14
15. Regression
Errors
Research
Produc(on
50%
50%
45%
45%
40%
40%
35%
35%
30%
30%
25%
25%
20%
Use
20%
Use
15%
Relevance
15%
Relevance
10%
10%
5%
5%
High
Use
and
Relevance
among
Produc$on
developers
0%
0%
15
16. Forgedng
to
Fix
Bugs
• Least
frequent,
but
most
severe
• What
can
help?
• Unit
Tes$ng:
everybody
uses
it
• Code
Reviews:
moderate
usage
• Issue/Bug
Tracking
soFware:
Produc$on
• Test-‐driven
Development:
Research
16
17. Forgedng
to
Fix
Bugs
Research
Produc(on
30%
30%
25%
25%
20%
20%
15%
15%
Use
Use
10%
10%
Relevance
Relevance
5%
5%
0%
High
Relevance,
medium-‐low
use
0%
17
18. Conclusion
• Produc$on
developers
– More
likely
to
view
a
problem
as
severe
and
frequent
– More
likely
to
use
prac$ces
• Many
prac$ces
have
not
been
adopted
– Respondents
did
not
know
how
to
use
the
prac$ce
or
more
basic
prac$ces
18
19. The
Rela(onship
between
Development
Problems
and
Use
of
So:ware
Engineering
Prac(ces
in
Computa(onal
Science
&
Engineering
Dus$n
Heaton,
Jeffrey
C.
Carver,
Roscoe
Bartle8,
Kimberly
Oakes,
and
Lorin
Hochstein
dwheaton@crimson.ua.edu,
carver@cs.ua.edu
Maintainable
SoFware
Prac$ces
in
e-‐Science
e-‐Science
2012