Software Change Contracts (SCC)


About Software Change Contract | Change Contract Experiments | Survey | Publications | Contact | Resources


Change contract is a language used to specify intended effect of program changes. Change contract focuses only on the program changes and their intended semantic effect. Program behavior that is unchanged across version does not need to be captured.

Back to Top

Change Contract Experiments

We conducted experiments with Ant and Jodatime subjects - on describing the actual changes in their version histories via change contracts. The change contracts written can be downloaded HERE.

 


 

Survey

We conducted a survey of 16 final year undergraduate students in a senior year course (formal verification of embedded software) at the National University of Singapore in 2012. The survey can be downloaded here.


The responses we obtained from the survey can be downloaded from the table below:

student1 student2 student3 student4
student5 student6 student7 student8
student9 student10 student11 student12
student13 student14 student15 student16

Survey Questionnaire:

We asked the following three types of questions. Sample answers for the survey questionaire can be downloaded here.

  1. Read-Modify (RM) type questions. With this type of questions, we show a program and its change contract and then ask respondents to modify the program in a way to reflect the change contract. This type of questions measures how easy it is to comprehend change contracts.
  2. Read-Describe (RD) type questions. Similarly to the previous type questions, we first show a program and its change contract. Unlike before, however, we then ask respondents to describe the change contract in plain English. This type of questions doublechecks the comprehensibility of change contracts.
  3. Write (W) type questions. With this type of questions, we ask respondents to write a proper change contract that they think can reflect a given verbal description of desired changes. This type of questions measures how easy it is to write change contracts.

Tutorial Session:

We offered a single tutorial session about change contract to the survey participants. Tutorial materials can be downloaded here: (tutorial document), (slides)

Survey Result

survey_result
Distribution of correct answer rates depending on the criterion used to categorize questions

The table above shows the results of our survey, i.e., the distribution of correct answer rates depending on the criterion used to categorize questions. The correct answer rate is high throughout all categories, forming the overall correct answer rate at 92%.

Overall, our survey results indicate that the participants reasonably easily learned and used change contracts. Also notice in the results that the correct answer rate was not affected by whether a subject program is artificially made or extracted from a real-life program (i.e., AspectJ). It is also interesting that structural changes were more easily handled than behavioral changes were (97% vs 85%).

Back to Top

Publications

Back to Top

Contact

People Involved

Feedback

We are very interested in getting feedback on how to improve Software Change Contract. Feedback will be welcomed by any of us.

Back to Top