By Topic

Software, IEE Proceedings -

Issue 2 • Date Apr-Jun 1998

Filter Results

Displaying Results 1 - 7 of 7
  • Java's reliability: an analysis of software defects in Java

    Page(s): 41 - 50
    Save to Project icon | Click to expandQuick Abstract | PDF file iconPDF (1164 KB)  

    The authors consider Java's claim to be a safe and reliable language. First, Java and the aims of the language are introduced and its relationship with C++ is briefly considered. The results of analysing a selection of the software bugs, limitations, weaknesses and flaws that have been found in Java (generically described as Java related defects) are then presented. This analysis is based on reports made available by the World Wide Web, on developmental experiences and on analysis of the Java Language Specification. The results obtained indicate that the Java-related defects can be categorised into 12 different categories (not all of which will be relevant to every software project). However, an understanding of these categories can be used to reduce the potential impact that such defects (including those yet to be identified) may have on a particular piece of software. The intention is that a developer who is forewarned is forearmed. A set of strategies is proposed which can be used to minimise the effect of identified defects in the Java language and environment. Such strategies may, of course, have implications for the whole development cycle. It is therefore necessary to consider these effects. In addition, the strategies may have limited applicability and consideration is given to this. Finally, the results of these studies in the light of previous experiences with other object oriented languages are considered and determine the extent to which the Java language developers achieved their aim View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Visualising action contracts in object-oriented modelling

    Page(s): 70 - 78
    Save to Project icon | Click to expandQuick Abstract | PDF file iconPDF (1320 KB)  

    In recent years a number of OO methods have been enhanced with textual, mathematical languages for specifying invariants and action contracts (pre and post conditions). This paper builds on a recent proposal for constraint diagrams, a diagrammatic notation allowing the expression of such assertions. Constraint diagrams essentially provide a pictorial representation of navigation expressions, specifically the sets of objects they define, and, using Venn diagrams and other techniques, constraints on the cardinalities of and relationships between those sets. The original proposal focused on the use of constraint diagrams for depicting invariants. This paper focuses on their use in depicting action contracts View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Incremental language design

    Page(s): 85 - 91
    Save to Project icon | Click to expandQuick Abstract | PDF file iconPDF (632 KB)  

    Formal methods for describing programming language semantics are not widely used since they are not modular, extensible and reusable. In the paper, a new extensible and reusable approach for specifying programming languages with attribute grammars is presented. The concepts from object-oriented programming, templates and multiple inheritance, are integrated with attribute grammars. A template in attribute grammar is an abstraction of a semantic rule parameterised with attribute occurrences. Conversely, the whole attribute grammar is a subject of multiple inheritance and specialisation. With the proposed approach a language designer has the opportunity to design incrementally a language or reuse some fragments from other programming language specifications. Templates and multiple inheritance have been implemented in the compiler generator tool LISA version 2.0 View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Plastic transformations: a method for building dependable distributed applications

    Page(s): 51 - 59
    Save to Project icon | Click to expandQuick Abstract | PDF file iconPDF (944 KB)  

    Distributed algorithms and the heuristics used by program derivation methods represent a large repository of fundamental knowledge that has been acquired over the years by the distributed computing community. Attempts to make this body of knowledge available to the broader community have been frustrating to say the least. The main thesis of the paper is that plastic transformations (a specialisation of standard program deviation techniques) are a viable mechanism by which distributed computing know-how can impact the practical development of dependability-minded distributed applications. However, to do so, application design must be viewed in a new perspective, more formal in style but intuitive in its application. This paper provides a possible characterisation of the notion of a plastic transformation and discusses ways in which well-established, correct distributed algorithms can be transformed into specific applications. An airport baggage delivery system with distributed control is used for illustration purposes View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Full text access may be available. Click article title to sign in or learn about subscription options.
  • Constraint-oriented style for object-oriented formal specification

    Page(s): 61 - 69
    Save to Project icon | Click to expandQuick Abstract | PDF file iconPDF (968 KB)  

    The authors propose a specification style which combines the features and advantages of object-oriented and constraint-oriented system decomposition. A system description is decomposed into data handling objects, which usually reflect objects and individual operations in the real system, and temporal-ordering constraints, which capture aspects of functionality as behavioural sequences, with a possibility to also introduce entities which blur the distinction between these two extreme cases. Composition is achieved via synchronisation on shared operations: different objects/constraints insisting on an operation express different views on the enabling conditions and effects of that operation. Objects, constraints, and their composition can be formally specified in Object-Z, an object-oriented extension of the Z notation, with pure temporal ordering constraints equivalently expressed as transition graphs. However, expressing object/constraint compositions in Object-Z is cumbersome. This problem is solved by proposing a natural textual notation, called co-expression, which is a most direct description of an object/constraint interconnection graph, and we define a mapping from co-expressions to Object-Z. Thus, specifications in an object/constraint-oriented style can be conveniently written using transition graphs and interconnection diagrams mixed with Object-Z text, and then translated into this language View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • COO approach to support cooperation in software developments

    Page(s): 79 - 84
    Save to Project icon | Click to expandQuick Abstract | PDF file iconPDF (640 KB)  

    The COO system proposes a framework to organise the cooperation between developers of complex software systems. The key idea of COO is to base software process correctness on a safe transaction model: COO promotes an original advanced transaction model which integrates some general properties that define a very permissive core synchronisation protocol, and process specific knowledge that allows the gearing of the core protocol towards process characteristics View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.