46 research outputs found

    Formal or informal, practical or impractical: towards integrating formal methods with informal practices in software engineering education

    Get PDF
    Two conflicting schools of thought have been dominating software engineering education. One school stresses on the popular software development methodologies, but horror stories on poorly designed systems are not uncommon. The other school advocates formal methods, but most practitioners regard them as impractical. We recommend that we should bridge the gap between the formal and informal by bringing theory to existing practice. The formalism should be used as a working tool behind popular software development methodologies. Students should not be trained as craftsmen who consider software development as an art and learn only from past mistakes. Nor should they be trained as mathematicians who are more comfortable with theory than applications. Software engineers must be educated as real 'engineers' who are competent with industrial practices as well as the mathematical foundation directly supporting them.postprin

    A Fuzzy Logic-Based Foundation for Analyzing Imprecise Conflicting Requirements

    Get PDF
    Imprecise requirements are represented by the canonical form in test-score semantics. The concepts of feasibility, satisfiability, and specificity are formalized based on the fuzzy sets. The relationships between requirements are classified to be conflicting and cooperative. A feasible overall requirement can thus be formulated based on the tradeoff analysis of the conflicting requirements by using fuzzy multi-criteria optimization techniqu

    Reengineering using a data abstraction based specification language

    Get PDF
    Thesis (M.S.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1992.This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.Includes bibliographical references (leaves 86-88).by Randall E. Duran.M.S

    On the Specification of Components - the JavaBeans Example

    Get PDF
    Rapport interne.We specify the JavaBean component model and concrete beans using a combination of UML class diagrams, an extension of Object-Z, and life sequence charts. We extend Object-Z by keywords that allow one to concisely describe the interface of a bean by an Object-Z class specification. The component model specification provides specification templates consisting of class diagrams, Object-Z fragments, and life sequence charts that precisely capture the functional behavior of beans in general, including the interaction of beans that cooperate in a system. The new keywords used for specifying concrete beans translate to instances of the component model specification templates, showing that our extension of Object-Z is syntactical sugar only

    A specification language design for the Java Modeling Language (JML) using Java 5 annotations

    Get PDF
    Design by contract specification languages help programmers write their intentions for a piece of code in a formal mathematical language. Most programming languages do not have built-in syntax for such specifications, so many design by contract languages place specifications in comments. The Java Modeling Language (JML) is one such specification language for Java that uses comments to specify contracts. However, starting with version 5, Java has introduced annotations, a syntactical structure to place metadata in various places in the code. This thesis proposes an initial design to writing JML contracts in the Java 5 annotation syntax and evaluates several criteria in the areas of specification languages and Java language design: whether these annotations are expressive enough to take advantage of annotation simplicity and tool support, and whether the annotation syntax is expressive enough to support handling a large specification language such as JML

    A Specification Language Design for the Java Modeling Language (JML) Using Java 5 Annotations

    Get PDF
    Design by contract specification languages help programmers write their intentions for a piece of code in a formal mathematical language. Most programming languages do not have built-in syntax for such specifications, so many design by contract languages place specifications in comments. The Java Modeling Language (JML) is one such specification language for Java that uses comments to specify contracts. However, starting with version 5, Java has introduced annotations, a syntactical structure to place metadata in various places in the code. This thesis proposes an initial design to writing JML contracts in the Java 5 annotation syntax and evaluates several criteria in the areas of specification languages and Java language design: whether these annotations are expressive enough to take advantage of annotation simplicity and tool support, and whether the annotation syntax is expressive enough to support handling a large specification language such as JML

    Designing precise and flexible graphical modelling languages for software development

    Get PDF
    Model-driven approaches to software development involve building computerized models of software and the environment in which it is intended to operate. This thesis offers a selection of the author’s work over the last three decades that addresses the design of precise and flexible graphical modelling languages for use in model-driven software development. The primary contributions of this work are: • Syntropy: the first published object-oriented analysis and design (OOAD) method to fully integrate formal and graphical modelling techniques. • The creation of the Object Constraint Language (OCL) and its integration into the Unified Modeling Language (UML) specification. • The identification of requirements and mechanisms for increasing the flexibility of the UML specification. • The design and implementation of tools for implementing graphical Domain Specific Languages (DSLs). The starting point was the author’s experience with formal specification techniques contrasted with the lack of precision of published object-oriented analysis and design methods. This led to a desire to fully integrate these two topics – formal specification and object-orientation - into a coherent discipline. The Syntropy approach, created in 1994 by this author and John Daniels, was the first published complete attempt to do this. Much of the author’s subsequent published work concerns the Unified Modeling Language (UML). UML represented a welcome unification of earlier OOAD approaches, but suffered badly from inflexibility and lack of precision. A significant part of the work included in this thesis addresses the drawbacks of the UML and proposes improvements to the precision of its definition, including through the invention of Object Constraint Language (OCL) and its incorporation into the UML specification, and the consideration of UML as source material for the definition of Domain Specific Languages (DSLs). Several of the author’s published works in this thesis concern mechanisms for the creation of DSLs, both within a UML framework and separately
    corecore