Formal extreme (and extremely formal) programming (2003) [7 citations — 2 self]
Abstract:
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.
Citations
| 3620 | Design Patterns. Elements of Reusable Object-Oriented Software – Gamma, Helm, et al. - 1998 |
| 993 | The Z notation: a reference manual – Spivey - 1992 |
| 732 | Refactoring–improving the design of existing code – Fowler - 1999 |
| 675 | Extreme Programming Explained, Embrace Change, Addison-Wesley Professional; 1st edition – Beck - 2000 |
| 592 | Systematic Software Development Using VDM – Jones - 1986 |
| 55 | Software Development with Z – Wordsworth - 1992 |
| 6 | On the design of an object-oriented formal notation – Herranz, Moreno - 2002 |
| 4 | Declarative Reflection and its Application as a Pattern Language – Herranz, Moreno, et al. - 2002 |
| 4 | Generation of and debugging with logical pre and post conditions – Herranz, Moreno - 2000 |
| 1 | Relevance, intergration and classification of specification formalism and formal specification techniques – Ehrig, Orejas, et al. - 1999 |

