PSPVDC: An Adaptation of the PSP that Incorporates Verified Design by Contract

Abstract

The Personal Software Process (PSP) promotes the use of careful procedures during all stages of development with the aim of increasing an individual's productivity and producing high quality final products. Formal methods use the same methodological strategy as the PSP: emphasizing care in development procedures as opposed to relying on testing and debugging. They also estab-lish the radical requirement of proving mathematically that the programs produced satisfy their specifications. Design by Contract (DbC) is a technique for designing components of a software system by establishing their conditions of use and behavioral requirements in a formal language. When appropriate techniques and tools are incorporated to prove that the components satisfy the established requirements, the method is called Verified Design by Contract (VDbC). In this paper we present a proposal for integrating VDbC into PSP in order to reduce the amount of defects present at the Unit Testing phase, while preserving or improving productivity. The resulting adaptation of the PSP, called PSPVDC, incorporates new phases, modifies others, and adds new scripts and checklists to the infrastructure. Specifically, the phases of Formal Specification, Formal Specification Review, Formal Specification Compile, Test Case Construct, Pseudo Code, Pseudo Code Review, and Proof are added.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 2013
Accession Number
ADA610477

Entities

People

  • Alvaro Tasistro
  • Diego Vallespir
  • Silvana Moreno
  • William R. Nichols

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Engineered Resilient Systems

DTIC Thesaurus Topics

  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Construction
  • Contracts
  • Debugging
  • Engineering
  • Formal Languages
  • Language
  • Productivity
  • Programming Languages
  • Software Development
  • Software Testing
  • Specifications
  • Standards

Fields of Study

  • Computer science
  • Engineering

Readers

  • Database Systems and Applications
  • Software Engineering.
  • Systems Analysis and Design