Formal extreme (and extremely formal) programming

  • Authors:
  • Ángel Herranz;Juan José Moreno-Navarro

  • Affiliations:
  • Univ. Politécnica de Madrid, Boadilla del Monte, Spain;Univ. Politécnica de Madrid, Boadilla del Monte, Spain

  • Venue:
  • XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper is an exploratory work were the authors study how the technology of Formal Methods (FM) can interact with agile process in general and with Extreme Programming (XP) in particular. Our thesis is that most of XP practices (pair programming, daily build, the simplest design or the metaphor) are technology independent and therefore can be used in FM based developments. Additionally, other essential pieces like test first, incremental development and refactoring can be improved by using FM. In the paper we explore in a certain detail those pieces: when you write a formal specification you are saying what your code must do, when you write a test you are doing the same so the idea is to use formal specifications as tests. Incremental development is quite similar to the refinement process in FM: specifications evolve to code maintaining previous functionality. Finally FM can help to remove redundancy, eliminate unused functionality and transform obsolete designs into new ones, and this is refactoring.