##  Contents

**1 Data Set Description** **1**

**2 Making Data Findable** **1**

**3 Making Data Openly Accessible** **2**

**4 Making Data Interoperable** **2**

**5 Increase Data Re-use** **2**

**6 Allocation of Resources and Data Security** **3**

**A MIT License** **4**

iv

#  Data Set Description

The project will produce software prototypes and will collect experimental
data when applying the testing techniques under investigation to existing
software systems. Hence, the following types of data items will be managed in
the project:

  1. **software prototypes** , implementing the testing techniques investigated in the project; 

  

  2. **systems under test** , mostly open source systems, but possibly also closed source industrial systems; 

  

  3. **train and test sets** , used to train the systems under test, as well as the **trained models** ; 

  

  4. **test scenarios** generated for the systems under test; 

  

  5. **metrics** collected for the systems under test to quantify the effectiveness and efficiency of the proposed testing techniques. 

  

  

Items of type (2) may be available as open source projects from public
software repositories, such as GitHub, or may be not publicly available,
because of confidentiality restrictions imposed by the owners of such systems.
In both cases, the involved artefacts are not under the control of this
project. If publicly available, the project will reference the public
repositories where they can be obtained. In any case, it is not the project’s
responsibility to manage such data.

Similarly, items of type (3) may or may not be publicly available. Usually,
train and test sets are provided with the software systems that use them in
the training/testing phase, so they undergo the same availability restrictions
as the systems under test (see item (2)). Open source systems that need data
for training are usually accompanied by train and test set, which are stored
in the same repository as the software itself. On the other hand, industrial
systems that need data for training/testing may not come with publicly
accessible data sets. Whenever public data sets are available for
training/testing, the project will reference them explicitly, but clearly it
is not the project’s responsibility to manage also these data.

Items of type (1), (4), (5) are produced by the project and their management
is described in the following sections. To satisfy the FAIR principles, this
project intends to create a public repository in GitHub for each research
prototype developed during the project. The repository will store the software
implementing the prototype, as well as the replication package needed to
reproduce the experimental results, including the generated test scenarios and
the collected metrics.

Table 1 summarizes the features of the data managed by the project. The
estimated volume is per experiment. The estimation was obtained based on
comparable experiments conducted in the past.  
  
<table>  
<tr>  
<th>

**Type**

</th>  
<th>

**Origin**

</th>  
<th>

**Format**

</th>  
<th>

**Volume**

</th> </tr>  
<tr>  
<td>

Software prototype

</td>  
<td>

Precrime

</td>  
<td>

source code (text)

</td>  
<td>

100MB

</td> </tr>  
<tr>  
<td>

Systems under test

</td>  
<td>

reused (third party)

</td>  
<td>

source code

</td>  
<td>

N/A

</td> </tr>  
<tr>  
<td>

Train and test sets

</td>  
<td>

reused (third party)

</td>  
<td>

system dependent

</td>  
<td>

N/A

</td> </tr>  
<tr>  
<td>

Test scenarios

</td>  
<td>

Precrime

</td>  
<td>

source code (text)

</td>  
<td>

100MB

</td> </tr>  
<tr>  
<td>

Metrics

</td>  
<td>

Precrime

</td>  
<td>

CSV (text)

</td>  
<td>

10MB

</td> </tr> </table>

Table 1: Main features of the managed data; volumes estimated per
system/experiment

#  Making Data Findable

The main source of metadata information for Precrime’s software prototypes,
test scenarios and metrics will be the README file created inside the
corresponding GitHub repository, where data is stored. Such README file will
be in the markdown (md) format and will include the following information:

  * acronym and name of the prototype tool; 

  

  * instructions for tool users, including (1) prerequisites, (2) installation instructions, (3) execution instructions; 

  

  * versioning, authorship and licensing information; 

  

  * steps for the reproduction of the experimental results, including instructions for the reexecution of test scenarios; 

  

  * description of the metrics collected to assess the performance of the tool in the experiments. 

  

#  Making Data Openly Accessible

All data generated by the Precrime project will be made openly accessible by
storing them into the Precrime’s GitHub repository. GitHub
(https://github.com) is a commercial hosting service mostly used to store
source code. It offers free accounts, often used to host open source projects,
and it supports distributed version control, source code management, access
control, issue tracking, feature requests and wiki pages. In the software
engineering research community it is widely used for the permanent storage of
research prototypes and of experimental packages. Hence, it is the ideal data
repository to give maximum visibility to the project’s outcome.

The data reused from third parties – namely, systems under test and train/test
data sets – are not under the control of the project. If publicly available,
they will be referenced in the README file of the Precrime repository storing
the experiments based on such systems/data. However, we anticipate that
industrial systems and industrial train/test data sets may not be publicly
available. On the other hand, for the validation of the project’s outcome it
is quite important to apply the resulting research prototypes to both open
source, publicly available systems, as well as industrial, possibly closed
source, systems, because the target end users of Precrime’s research consists
of software developers, possibly working within commercial software companies.

#  Making Data Interoperable

Research prototypes and test scenarios will be published in source code
format. In Precrime we intend to adopt widely used programming languages, such
as Java and Python, for which wellestablished standards and compilers are
freely available. This ensures maximum interoperability at the code level.

For what concerns the metrics collected in the experiments, we will represent
such data in the CSV format. This format is accepted by most spreadsheet
applications and can be read by many data processing tools and libraries, such
as those available in R and Python.

#  Increase Data Re-use

All the software and data produced by the project will be made available under
the MIT License, so as to ensure ample opportunities of reuse and modification
to other researchers. The MIT License enables other scientists to copy and
modify the licensed software, making it easily reusable in the public domain.
Scientists can freely build upon, enhance and reuse the software for any
purposes with the only key restriction that the software is attributed to its
creators via inclusion of the license itself in all copies. The MIT License
adopted by Precrime is reported in Appendix A.

BSc and MSc students involved in the Precrime research will be asked to sign a
copyright transfer agreement to let Precrime publish their work in accordance
with the project’s open data policy. In particular, the software prototypes
produced by BSc and MSc students that contribute to the project’s research
will be released under the MIT License as any other software produced by the
project.

#  Allocation of Resources and Data Security

GitHub ensures long-term, secure data preservation at no cost. In addition to
such data storage, Precrime performs periodic (weekly) backup of all (private
and public) project data, using the cloud storage device provided by USI.
Hence, project data will be securely stored both on GitHub and on USI’s cloud
storage device, thus ensuring data replication and geographic distribution,
for a time span that can be estimated as at least a few decades past the end
of the project.

#  A MIT License

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES

OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT

HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,

WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.