The future of library specification

Programming language technology has started to achieve one of the dreams of software engineering -- large scale utilization of reusable components. This is due to the standardization of large libraries and frameworks in popular programming languages such as C++, Java, C#, and Python. This standardization and widespread use of libraries will continue to make module specification more and more important. Yet most libraries and frameworks are only specified informally using natural language. This position paper explores research questions related to the specification of such libraries and frameworks.

[1]  Nikolai Tillmann,et al.  Parameterized unit tests with unit meister , 2005, ESEC/FSE-13.

[2]  Emily Hill,et al.  Exploring the neighborhood with dora to expedite software maintenance , 2007, ASE '07.

[3]  Gary T. Leavens,et al.  Modular verification of higher-order methods with mandatory calls specified by model programs , 2007, OOPSLA.

[4]  Thomas Ball,et al.  Testing, abstraction, theorem proving: better together! , 2006, ISSTA '06.

[5]  David Lorge Parnas,et al.  Generating a test oracle from program documentation: work in progress , 1994, ISSTA '94.

[6]  Robert J. Simmons,et al.  Proofs from Tests , 2008, IEEE Transactions on Software Engineering.

[7]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[8]  Albert L. Baker,et al.  Enhancing the Pre- and Postcondition Technique for More Expressive Specifications , 1999, World Congress on Formal Methods.

[9]  Mary Campione,et al.  The Java Tutorial, Second Edition: Object-Oriented Programming for the Internet (Book/CD) , 1998 .

[10]  Michael D. Ernst Static and dynamic analysis: synergy and duality , 2003 .

[11]  B. Eng,et al.  GENERATING A TEST ORACLE FROM PROGRAM DOCUMENTATION , 1995 .

[12]  Matthew M. Geller Test data as an aid in proving program correctness , 1976, POPL.

[13]  Doron A. Peled,et al.  Model checking, testing and verification working together , 2005, Formal Aspects of Computing.

[14]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[15]  Nils Klarlund,et al.  Software Model Checking: Searching for Computations in the Abstract or the Concrete , 2005, IFM.

[16]  Robert Cartwright,et al.  Soft typing , 2004, SIGP.

[17]  Gary T. Leavens,et al.  A Simple and Practical Approach to Unit Testing: The JML and JUnit Way , 2002, ECOOP.