-
Notifications
You must be signed in to change notification settings - Fork 4
/
main.tex
230 lines (189 loc) · 9.99 KB
/
main.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
\documentclass[11pt, oneside]{amsart}
\pdfoutput=1
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{color}
\usepackage{dcolumn}
\usepackage{float}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{subfigure}
\usepackage{psfrag}
\usepackage{tabularx}
\usepackage[hyphens]{url}
\usepackage{wrapfig}
\usepackage{longtable}
\usepackage{verbatim}
\usepackage{booktabs,multicol}
% The following three lines are used for displaying footnote in tables.
\usepackage{footnote}
\makesavenoteenv{tabular}
\makesavenoteenv{table}
\usepackage{enumitem}
\setlist{leftmargin=7mm}
%\setcounter{secnumdepth}{3}
%\setcounter{tocdepth}{3}
\usepackage[bookmarks, bookmarksopen, bookmarksnumbered]{hyperref}
\usepackage[all]{hypcap}
\urlstyle{rm}
\definecolor{orange}{rgb}{1.0,0.3,0.0}
\definecolor{violet}{rgb}{0.75,0,1}
\definecolor{darkgreen}{rgb}{0,0.6,0}
\definecolor{cyan}{rgb}{0.2,0.7,0.7}
\definecolor{blueish}{rgb}{0.2,0.2,0.8}
\definecolor{darkblue}{rgb}{0.1,0.1,0.9}
\newcommand{\todo}[1]{{\color{blue}$\blacksquare$~\textsf{[TODO: #1]}}}
\newcommand{\note}[1]{ {\textcolor{blueish} { ***Note: #1 }}}
% Don't use tt font for urls
\urlstyle{rm}
% 15 characters / 2.5 cm => 100 characters / line
% Using 11 pt => 94 characters / line
\setlength{\paperwidth}{216 mm}
% 6 lines / 2.5 cm => 55 lines / page
% Using 11pt => 48 lines / pages
\setlength{\paperheight}{279 mm}
\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry}
% You can use a baselinestretch of down to 0.9
\renewcommand{\baselinestretch}{0.96}
\sloppypar
\begin{document}
\title[]{Best Practices for Developing Sustainable Scientific Software}
\author{Sandra Gesing$^{(1)}$,
Abani Patra$^{(2)}$,
Daniel S.\ Katz$^{(3)}$,
Kyle E.\ Niemeyer$^{(4)}$,
Suresh Marru$^{(5)}$,
Dan Gunter$^{(6)}$,
Tom Crick$^{(7)}$,
Jeffrey C. Carver$^{(8)}$,
Alexander Konovalov$^{(9)}$,
Neil Chue Hong$^{(10)}$,
Miguel de~Val-Borro$^{(11)}$,
Frank Löffler$^{(12)}$,
Francisco Queiroz$^{(13)}$,
Hans Fangohr$^{14}$,
Derek Groen$^{15}$
}
%
\thanks{{}$^{(1)}$ Center for Research Computing, University of Notre Dame, Notre Dame, IN, USA; [email protected]}
%
\thanks{{}$^{(2)}$ Mechanical and Aerospace Engineering, University at Buffalo, Buffalo, NY, USA; [email protected]}
%
\thanks{{}$^{(3)}$ National Center for Supercomputing Applications (NCSA), School of Information Sciences, and Electrical and Computer Engineering, University of Illinois Urbana-Champaign, Urbana, IL, USA; [email protected]}
%
\thanks{{}$^{(4)}$ School of Mechanical, Industrial, and Manufacturing Engineering, Oregon State University, Corvallis, OR, USA; [email protected]}
%
\thanks{{}$^{(5)}$ Pervasive Technology Institute, Indiana University, USA; [email protected]}
%
\thanks{{}$^{(6)}$ Lawrence Berkeley National Laboratory, Berkeley, CA, USA; [email protected]}
%
\thanks{{}$^{(7)}$ Department of Computing, Cardiff Metropolitan University, UK; [email protected]}
%
\thanks{{}$^{(8)}$ Department of Computer Science, University of Alabama, USA; [email protected]}
%
\thanks{{}$^{(9)}$ Centre for Interdisciplinary Research in Computational Algebra, School of Computer Science,
University of St Andrews, St Andrews, Fife, KY16 9SX, UK; [email protected]}
%
\thanks{{}$^{(10)}$ Software Sustainability Institute, EPCC, University of Edinburgh, Edinburgh, UK; [email protected]}
%
\thanks{{}$^{(11)}$ NASA Goddard Space Flight Center, Astrochemistry Laboratory, Code 691.0,
Greenbelt, MD 20771, USA; \href{mailto:[email protected]}{[email protected]}}
%
\thanks{{}$^{(12)}$ Center for Computation and Technology, Louisiana State University, LA; [email protected]}
%
\thanks{{}$^{(13)}$ Tecgraf Institute and Arts and Design Dept., Pontifical Catholic University of Rio de Janeiro, Brazil; [email protected]}
%
\thanks{{}$^{(14)}$ University of Southampton, United Kingdom; [email protected]}
%
\thanks{{}$^{(15)}$ Department of Computer Science, Brunel University London, United Kingdom; @}
\begin{abstract}
\end{abstract}
\maketitle
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction} \label{sec:intro}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Scientific software is an integral part of research in a plethora of areas such as applied natural sciences, science of management and humanities - not only increasing the efficiency to find answers to research questions but also enhancing methods to answer some research questions at all. While the importance of developing scientific software is evident in the large number of software package, methods and algorithms applied in science, sustaining it and thus make it easily usable and re-usable for the user communities entails challenges immanent in being part of the highly dynamic environment in research.
\note{Need rewording - copied from the report}
Reviewing multiple past articles and talks at different meetings like WSSSPEx
\cite{WSSSPE1, WSSSPE2, 5069157, Blatt_WSSSPE, Ahern_WSSSPE} and analyzing and
promoting sustainable scientific software makes it clear that there are several
common and recurring ideas that underpin success in developing sustainable
software. However, outside of a small community, this knowledge is not widely
shared. This is especially true for the large community of scientists who
generate most of the software used by scientists but are not primarily software
developers. In this scenario, a clear and precise exposition of these best
practices collected from many sources and open collaboration among all in the
community in a single source (e.g., journal paper, tutorial) that can be widely
disseminated is necessary and likely to be very valuable.
Core questions that will need to be explored are in reproducibility,
reliability, usability, extensibility, knowledge management, as well as continuity
(transitions between people). Answers to these questions will guide us on how a software
tool becomes part of the core workflow of well identified users (stakeholders)
relating to tool success and hence sustainability.
%\katznote{prev sentence is complex and awkward} % see fix
Ideas that may need to be explored include:
\begin{itemize}
\item Requirements engineering to create tools with immediate uptake;
\item When should software ``die''?
\item Catering to disruptive developments in environment (e.g., new hardware,
new methodology);
\item Dimensions of sustainability: economic, technical, environmental and
obsolescence.
%\katznote{not sure what the prev. comment goes with} %social.
\end{itemize}
Sustainability requires community participation in code development and/or a
wide adoption of software. The larger the community base is using a piece of
software, the better are the funding possibilities and thus also the
sustainability options. Additionally, developer commitment to an application is
essential and experience shows that software packages with an evangelist
imposing strong inspiration and discipline are more likely to achieve
sustainability. While a single person can push sustainability to a certain
level, open source software also needs sustained commitment from the developer
community. Such sustained commitments include diverse tasks and roles, which can
be fulfilled by diverse developers with different knowledge levels. Besides
developing software and appropriate software management with measures for
extensibility and scalability of the software, active (expertise) support for
users via a user forum with a quick turnaround is crucial. The barrier to entry
for the community as users as well as developers has to be as low as possible.
\note{End of the copied text}
Sustainability of software can be investigated under many diverse aspects and dimensions:
economic, technical, environmental and social are only a few. The scope of this paper will focus
on scientific environments and their implications and the target group are especially developer
and project manager of scientific software. To set the stage, we pick case studies that have been
successful to some degree, and analyze why they have been successful. In Section~\ref{sec:comm}
practices are described, which are partly resulting of the means available in and demands resulting of a scientific environment.
The subsequent section focus on the social aspects of governing and managing sustainable software,
while Section~\ref{sec:funding} is concerned with economic aspects. To be able to measure sustainability of
software, it is important to define metrics as reference and guideline to be able to create such
software. Additionally, we will present characteristics of available tools (see Section~\ref{sec:tools})
for managing software but also for analyzing and delivering metrics of sustainability. Finally,
we will conclude with an outlook and suggestion to improve sustainability in a scientific context.
\note{Leading author for Related Work: Kyle Niemeyer, contributors: ...}
\input{related_work}
\input{case_studies}
\note{Leading author for Community Related Practices: Derek Groen, contributors: Miguel de Val-Borro...}
\input{community_related_practices}
\note{Leading author for Government and Management: ..., contributors: ...}
\input{government_and_management}
\note{Leading author for Funding: Neil Chue Hong (potentially), contributors: Sandra Gesing, Abani Patra, Daniel S. Katz, ...}
\input{funding}
\note{Leading author for Metrics: Dan Katz, contributors: Neil Chue Hong}
\input{metrics}
\note{Leading author for Tools: Hans Fangohr (potentially) ..., contributors: ...}
\input{tools}
\note{Leading author for Usability: Francisco Queiroz, contributors: Dan Gunter,...}
\input{usability}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Conclusion} \label{sec:conclusion}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Acknowledgments} \label{sec:acks}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{vancouver}
\bibliography{wssspe}
\end{document}