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 [email protected], [email protected] Maintainable SoFware Prac$ces in eScience eScience 2012

The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Embed Size (px)

Citation preview

Page 1: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

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  [email protected],  [email protected]  

Maintainable  SoFware  Prac$ces  in                        e-­‐Science  

e-­‐Science  2012  

Page 2: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Introduc$on  

•  SoFware  is  used  to:  – Avoid  dangerous/expensive  experiments  

– Process  large  amounts  of  data  

•  Why  not  have  soFware  engineers  develop  the  code?  

2  

Page 3: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

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  

Page 4: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

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  

Page 5: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

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  

Page 6: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

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  

Page 7: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Defini$ons  

Yes  95%  

No  5%  

Respondents  overwhelmingly  agreed  with  our  defini$ons  

7  

Page 8: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Programming  Languages  

0%   10%   20%   30%   40%   50%   60%   70%  

Other  

Perl  

Python  

Matlab  

C  

Fortran  

C++  

C++  most  common,  not  Fortran  

8  

Page 9: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Self  ra$ng  of  SE  Knowledge  vs  Familiarity  with  SE  topics  

0%  

5%  

10%  

15%  

20%  

25%  

30%  

35%  

40%  

45%  

Somewhat  Sufficient  

Moderately  Sufficient  

Mostly  Sufficient  

Fully  Sufficient  

None  

Low  

Medium  

High  

Very  High  

Most  people  had  a  medium  knowledge  of  SE  topics  

9  

Page 10: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Rework  

•  Most  frequent  problem  •  What  would  help?  

•  Research  developers:  low-­‐medium  level  

•  Produc$on  developers:  high  level  

10  

Page 11: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Rework  

0%  

5%  

10%  

15%  

20%  

25%  

30%  

35%  

Research  

Use  

Relevance  

0%  

5%  

10%  

15%  

20%  

25%  

30%  

35%  

Produc(on  

Use  

Relevance  

High  Relevance  and  Use  from  Produc$on  Developers  

11  

Page 12: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Performance  

•  Least  severe  problem  •  What  can  help?  

•  Research  Developers:  low-­‐medium  

•  Produc$on  Developers:  high  

12  

Page 13: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Performance  

0%  

5%  

10%  

15%  

20%  

25%  

30%  

35%  

40%  

Research  

Use  

Relevance  

0%  

5%  

10%  

15%  

20%  

25%  

30%  

35%  

40%  

Produc(on  

Use  

Relevance  

High  Relevance  comes  from  Produc$on  Developers  

13  

Page 14: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Regression  Errors  

•  More  important  to  produc$on  than  research  developers  

•  What  can  help?  

•  Research  developers:  random  

•  Produc$on  developers:  very  high  

14  

Page 15: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Regression  Errors  

0%  5%  10%  15%  20%  25%  30%  35%  40%  45%  50%  

Research  

Use  

Relevance  

0%  5%  10%  15%  20%  25%  30%  35%  40%  45%  50%  

Produc(on  

Use  

Relevance  

High  Use  and  Relevance  among  Produc$on  developers  

15  

Page 16: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

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  

Page 17: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

Forgedng  to  Fix  Bugs  

0%  

5%  

10%  

15%  

20%  

25%  

30%  

Research  

Use  

Relevance  

0%  

5%  

10%  

15%  

20%  

25%  

30%  

Produc(on  

Use  

Relevance  

High  Relevance,  medium-­‐low  use  

17  

Page 18: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

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  

Page 19: The Relationship Between Development Problems and Use of Software Engineering Practices in Computational Science

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  [email protected],  [email protected]  

Maintainable  SoFware  Prac$ces  in                        e-­‐Science  

e-­‐Science  2012