Skip to content

spgroup/theory-pl-refinement

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Theory of Software Product Line Refinement

This repository contains the PVS specification files for the theory of Software Product Line Refinement and Partial Refinement.

The Partial Refinement theories are built on the Refinement theories and start with Partial.

In the Documentation folder, you can find a summary of the theories and also information regarding templates.

To view the theory structure, please follow this link. There, you can navigate through the theories and understand the dependencies (imports and instantiations) among them.

We list the templates and steps for performing the experiment below.

Templates

General Templates

Change Asset Template

Change Asset

Transform Optional Feature to Mandatory Template

Transform Optional Feature to Mandatory

Move Feature Template

Move Feature to its Parent

Move Feature Template

Move Feature to its Sibling

Compositional Templates

Add Assets Template

Add Assets

Add CK Lines Template

Add CK Lines

Add CK Lines Template

Change CK Line

Remove Feature Template

Remove Feature



Transformational Templates

Add Assets Template

Add Assets

Add CK Lines Template

Add CK Lines

Add CK Lines Template

Change CK Line

Remove Feature Template

Remove Feature

Experiment

To run the experiment, the following steps are necessary:

  • Clone project repositories. Linux and Soletta are available at: https://github.com/torvalds/linux/ and https://github.com/solettaproject/soletta/, respectively.
  • Download and setup FEVER, which is available at https://github.com/NZR/SPLR-FEVER-Tool/tree/master/fever. Please follow the instructions specified in the FEVER repository.
  • Inform FEVER the repository and commits/versions to be analyzed. In our experiment, we analyzed versions 3.11 to 3.16 from Linux and versions v1_beta0 to v1_beta18 from Soletta. The databases generated by FEVER for these versions are available in the EmpiricalStudy folder.
  • After generating the Neo4j database for the specific versions/commits, it is necessary to query the database to find patterns. All queries used in our experiment are also available in the Queries.pdf file in the EmpiricalStudy folder.

We also make available the Java program used to create txt files with the commit messages in the EmpiricalStudy folder. To use it, you should first download a JSON file in Neo4j containing the querie result. Then, our script creates a .txt file for each message, so that they can be used later by a natural language tool such as Lucene (http://lucene.apache.org/). You can also find the Lucene jar file used, but you can check their website for latest versions if preferred.

If you have any further questions, please contact Gabriela Sampaio ([email protected]) or Leopoldo Teixeira ([email protected])

This repository contains the PVS specification files for the theory of Software Product Line Refinement

For the development branch of the theory (work in progress), refer to the dev branch.

For the feature extractions scenarios, part of a current SBCARS'16 submission, refer to the sbcars branch.

About

PVS specification files for the theory of Software Product Line Refinement

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published