ACM Home Page
Please provide us with feedback. Feedback
Agile specifications
Full text PdfPdf (417 KB)
Source
Conference on Object Oriented Programming Systems Languages and Applications archive
Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications table of contents
Orlando, Florida, USA
SESSION: Onward! short papers session 4: the mad tea party table of contents
Pages 999-1006  
Year of Publication: 2009
ISBN:978-1-60558-768-4
Authors
Derek Rayside  MIT, Cambridge, MA, USA
Aleksandar Milicevic  MIT, Cambridge, MA, USA
Kuat Yessenov  MIT, Cambridge, MA, USA
Greg Dennis  MIT, Cambridge, MA, USA
Daniel Jackson  MIT, Cambridge, MA, USA
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 13,   Citation Count: 0
Additional Information:

abstract   references   index terms  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1639950.1640070
What is a DOI?

ABSTRACT

Traditional formal methods and modern agile methods are separated more by limitations of current technology than by fundamental intellectual differences. A mixed interpreter that executes mixed programs, comprising both declarative specification statements and regular imperative statements, might bridge the gap. This paper explores how such an interpreter might be used, showing by example how it might support a variety of development activities.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Peter Amey and Roderick Chapman. Static verification and extreme programming. In SIGAda'03, December 2003. URL http://www.praxis-his.com/sparkada/publications_confs.asp.
 
2
Ralph-Johan Back. On the Correctness of Refinement Steps in Program Development. PhD thesis, University of Helsinki, 1978. Report A-1978-4.
 
3
Kent Beck. Test-Driven Development. Addison-Wesley, 2003.
 
4
Kent Beck. Extreme Programming Explained. Addison-Wesley, 1999.
 
5
Jon Louis Bentley. Programming Pearls. ACM Press, 1986.
 
6
Joshua Bloch. Effective Java. Addison-Wesley, 2001.
 
7
Joshua Bloch. Nearly all binary searches and mergesorts are broken. Official Google Research Blog, June 2006. URL http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html.
 
8
Joshua Bloch. Response to discussion of [7], June 2006. URL http://lambda-the-ultimate.org/node/1549.
 
9
Chandrasekhar Boyapati, Sarfraz Khurshid, and Darko Marinov. Korat: Automated Testing Based on Java Predicates. In Phyllis Frankl, editor, Proc.ISSTA, Rome, Italy, July 2002.
 
10
Steve Christey and Robert A. Martin. Vulnerability type distributions in cve, May 2007. URL http://cwe.mitre.org/documents/vuln-trends/index.html. Version 1.1.
 
11
Brian Demsky and Martin C. Rinard. Goal-directed reasoning for specification-based data structure repair. TSE, 32 (12): 931--951, December 2006.
 
12
Greg Dennis. A Relational Framework for Bounded Program Verification. PhD thesis, MIT, 2009. Advised by Daniel Jackson.
 
13
Edsgar W. Dijkstra. A constructive approach to the problem of program correctness. BIT Numerical Mathematics, 8 (3): 174--186, September 1968.
 
14
Edsgar W. Dijkstra. Notes on structured programming. In O.-J. Dahl, C.A.R. Hoare, and E.W. Dijkstra, editors, Structured Programming. Academic Press, New York, 1972.
 
15
Jonathan Edwards. Example centric programming. In Doug Schmidt, editor, Proc.19th OOPSLA, October 2004.
 
16
Jonathan Edwards. Subtext: Uncovering the simplicity of programming. In Richard P. Gabriel, editor, Proc.20th OOPSLA, October 2005. ISBN 1-59593-031-0.
 
17
Jonathan Edwards. No ifs, ands, or buts: Uncovering the simplicity of conditionals. In Proc. 22nd OOPSLA, pages 639--658, Montréal, Canada, October 2007.
 
18
B. Elkarablieh, I. Garcia, Y. Suen, and S. Khurshid. Assertion-based repair of complex data structures. In Alexander Egyed and Bernd Fischer, editors, Proc. 22nd ASE, Atlanta, GA, November 2007.
 
19
Martin Fowler. Mocks aren't stubs, January 2007. URL http://martinfowler.com/articles/mocksArentStubs.html.
 
20
Norbert E. Fuchs. Specifications are (preferably) executable. Software Engineering Journal, 7 (5): 323--334, September 1992.
 
21
Donald C. Gause and Gerald M. Weinberg. Exploring Requirements. Dorset House, 1989.
 
22
Dorothy Graham. Requirements and testing: Seven missing-link myths. IEEE Software, 19 (5): 15--17, 2002.
 
23
Ian Hayes and Cliff B. Jones. Specifications are not (necessarily) executable. phSoftware Engineering Journal, 4 (6): 330--338, 1989. ISSN 0268-6961.
 
24
E. Hehner. Do considered od: a contribution to the programming calculus. Acta Informatica, 11: 287--304, 1979.
 
25
C. A. R. Hoare. Proof of correctness of data representations. Acta Informatica, 1 (4): 271--281, December 1972.
 
26
C. A. R. Hoare. An overview of some formal methods for program design. IEEE Computer, 20 (9): 85--91, 1987.
 
27
Daniel Jackson and Jeanette Wing. Lightweight formal methods. IEEE Computer, pages 21--22, April 1996.
 
28
Michael Jackson. Software Specifications and Requirements: a lexicon of practice, principles and prejudices. Addison-Wesley, 1995. ISBN 0-201-87712-0.
 
29
Clifford B. Jones. The early search for tractable ways of reasoning about programs. IEEE Annals of the History of Computing, 25 (2): 26--49, 2003.
 
30
Donald E. Knuth. Notes on the van Emde Boas construction of priority deques: An instructive use of recursion. Letter to Peter van Emde Boas, March 1977. URL http://www-cs-faculty.stanford.edu/knuth/faq.html.
 
31
Ben Krause and Tim Wahls. jmle: A tool for executing jml specifications via constraint programming. In L. Brim, editor, Formal Methods for Industrial Critical Systems (FMICS'06), volume 4346 of LNCS, pages 293--296. Springer-Verlag, August 2006.
 
32
Gary T. Leavens, Albert L. Baker, and Clyde Ruby. Preliminary design of JML: A behavioral interface specification language for Java. Technical Report 98-06u, Iowa State University, April 2003. URL http://www.jmlspecs.org.
 
33
Barbara Liskov and John Guttag. Abstraction and Specification in Program Development. MIT Press, 1986.
 
34
Tim Mackinnon, Steve Freeman, and Philip Craig. Endo-testing: Unit testing with mock objects. In eXtreme Programming and Flexible Processes in Software Engineering (XP2000), 2000.
 
35
Darko Marinov and Sarfraz Khurshid. TestEra: A Novel Framework for Automated Testing of Java Programs. In Proc. 16th ASE, pages 22--31, November 2001.
 
36
Robert C. Martin and Grigori Melnik. Tests and Requirements, Requirements and Tests: A Möbius Strip. IEEE Software, 25 (1): 54--59, 2008.
 
37
Gerard Meszaros. xUnit Test Patterns: Refactoring Test Code. Addison-Wesley, 2007.
 
38
Carroll Morgan. The specification statement. TOPLAS, 10 (3), 1988.
 
39
Carroll Morgan. Programming from Specifications. Prentice-Hall, Inc., 2nd edition, 1998. First edition 1990.
 
40
J. Morris. A theoretical basis for stepwise refinement and the programming calculus. Science of Computer Programming, 9 (3), December 1987.
 
41
Rick Mugridge and Ward Cunningham. Fit for Developing Software: Framework for Integrated Tests. Prentice-Hall, Inc., 2005.
 
42
Martin Odersky, Lex Spoon, and Bill Venners. Programming in Scala. Artima, November 2008.
 
43
Committee on Certifiably Dependable Software Systems, editor. Summary of a Workshop on Software Certification and Dependability. The National Academies Press, 2004. ISBN 978-0-309-09429-0. URL http://books.nap.edu/catalog.php?record_id=11133.
 
44
Derek Rayside, Zev Benjamin, Rishabh Singh, Joseph P. Near, Aleksandar Milicevic, and Daniel Jackson. Equality and hashing for (almost) free: Generating implementations from abstraction functions. In Joanne Atlee and Paola Inverardi, editors, Proc. 31st ICSE, 2009.
 
45
Filippo Ricca, Marco Torchiano, Massimiliano Di Penta, Mariano Ceccato, and Paolo Tonella. Using acceptance tests as a support for clarifying requirements: A series of experiments. Information and Software Technology, 51 (2): 270--283, 2009.
 
46
Mandana Vaziri, Frank Tip, Stephen Fink, and Julian Dolby. Declarative object identity using relation types. In Erik Ernst, editor, Proc. 21st ECOOP, volume 4609 of LNCS, pages 54--78, Berlin, Germany, July 2007. Springer-Verlag.
 
47
Tim Wahls, Gary T. Leavens, and Albert L. Baker. Executing formal specifications with concurrent constraint programming. Automated Software Engineering Journal, 7: 315--343, 2000.
 
48
Niklaus Wirth. Program development by stepwise refinement. CACM, 14 (4): 221--227, April 1971.
 
49
Kuat Yessenov. A light-weight specification language for bounded program verification. Master's thesis, MIT, May 2009. Advised by Daniel Jackson.