1,741 research outputs found

    The AutoProof Verifier: Usability by Non-Experts and on Standard Code

    Get PDF
    Formal verification tools are often developed by experts for experts; as a result, their usability by programmers with little formal methods experience may be severely limited. In this paper, we discuss this general phenomenon with reference to AutoProof: a tool that can verify the full functional correctness of object-oriented software. In particular, we present our experiences of using AutoProof in two contrasting contexts representative of non-expert usage. First, we discuss its usability by students in a graduate course on software verification, who were tasked with verifying implementations of various sorting algorithms. Second, we evaluate its usability in verifying code developed for programming assignments of an undergraduate course. The first scenario represents usability by serious non-experts; the second represents usability on "standard code", developed without full functional verification in mind. We report our experiences and lessons learnt, from which we derive some general suggestions for furthering the development of verification tools with respect to improving their usability.Comment: In Proceedings F-IDE 2015, arXiv:1508.0338

    Metamodel-based model conformance and multiview consistency checking

    Get PDF
    Model-driven development, using languages such as UML and BON, often makes use of multiple diagrams (e.g., class and sequence diagrams) when modeling systems. These diagrams, presenting different views of a system of interest, may be inconsistent. A metamodel provides a unifying framework in which to ensure and check consistency, while at the same time providing the means to distinguish between valid and invalid models, that is, conformance. Two formal specifications of the metamodel for an object-oriented modeling language are presented, and it is shown how to use these specifications for model conformance and multiview consistency checking. Comparisons are made in terms of completeness and the level of automation each provide for checking multiview consistency and model conformance. The lessons learned from applying formal techniques to the problems of metamodeling, model conformance, and multiview consistency checking are summarized

    Designing a Programming Contract Library for Java

    Get PDF
    Programmers are now developing large and complex software systems, so it’s important to have software that is consistent, efficient, and robust. Programming contracts allow developers to specify preconditions, postconditions, and invariants in order to more easily identify programming errors. The design by contract principle [1] was first used in the Eiffel programming language [2], and has since been extended to libraries in many other languages. The purpose of my project is to design a programming contract library for Java. The library supports a set of preconditions, postconditions, and invariants that are specified in Java annotations. It incorporates contract checking for objects of classes following the bean notation [3]. The library also supports checking for user-defined functions as contract conditions. This feature allows the user to check for complex contract conditions. In addition to these, the library supports contracts using lambdas in Java 8 [4], which to our knowledge has not been done in previous works on Java contracts. While the results show us that enabling contracts lowers the performance of the system, especially when lambda contracts are used, we also demonstrate how careful design can significantly reduce the overhead

    Designing a Programming Contract Library for Java

    Get PDF
    Programmers are now developing large and complex software systems, so it’s important to have software that is consistent, efficient, and robust. Programming contracts allow developers to specify preconditions, postconditions, and invariants in order to more easily identify programming errors. The design by contract principle [1] was first used in the Eiffel programming language [2], and has since been extended to libraries in many other languages. The purpose of my project is to design a programming contract library for Java. The library supports a set of preconditions, postconditions, and invariants that are specified in Java annotations. It incorporates contract checking for objects of classes following the bean notation [3]. The library also supports checking for user-defined functions as contract conditions. This feature allows the user to check for complex contract conditions. In addition to these, the library supports contracts using lambdas in Java 8 [4], which to our knowledge has not been done in previous works on Java contracts. While the results show us that enabling contracts lowers the performance of the system, especially when lambda contracts are used, we also demonstrate how careful design can significantly reduce the overhead

    Structural Engineering Heroes and their Inspirational Journey

    Full text link
    [EN] In the nineteenth century, civil and structural engineers received much public acclaim for their built works (e.g. Brooklyn Bridge, Eiffel Tower). One hundred years later, the engineer was perceived by many as "out" or as not requiring much skill. This paper examines how this erroneous perception of structural engineering can change by presenting structural engineers as heroes. Using parallels to the monomythical hero, and examples of engineers, the authors present the journey and characteristics of the structural engineering hero. The journey, which has many paths, begins with the engineer leaving the comfortable "Ordinary World" of design into a "Special World", where new forms, new materials, and/or scale for projects is needed. For underrepresented groups of people such as women and minorities, the heroic journey could be simply becoming an engineer and developing a career in conditions of equality and equity. As structural engineering heroes enter the Special World, they may face trials of nature and criticism, and face constraints of economy, time and knowledge. In the final Act of the journey, they return to the Ordinary World wiser, disseminating their knowledge and inspiring others. The authors define the characteristics of structural engineering heroes by four "P"s: they are prepared, they are planners, they have (super) powers and they are persona grata. The education of the structural engineer should train and inspire future engineers using the lessons learned from the heroes and their diversity. By doing so, what seems exceptional today can become common in the future.Paya-Zaforteza, I.; Garlock, MEM. (2021). Structural Engineering Heroes and their Inspirational Journey. Structural Engineering International (Online). 31(4):584-597. https://doi.org/10.1080/10168664.2021.1919038S58459731
    • …
    corecore