About
27
Publications
4,416
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,398
Citations
Introduction
Skills and Expertise
Publications
Publications (27)
This article provides a formalization of the W3C Draft Core SHACL Semantics
specification using Z notation. This formalization exercise has identified a
number of quality issues in the draft. It has also established that the
recursive definitions in the draft are well-founded. Further formal validation
of the draft will require the use of an execut...
An RDF data shape is a description of the expected contents of an RDF
document (aka graph) or dataset. A major part of this description is the set of
constraints that the document or dataset is required to satisfy. W3C recently
(2014) chartered the RDF Data Shapes Working Group to define SHACL, a standard
RDF data shape language. We refer to the ab...
Timesheets are an important instrument used to track time spent by team members in a software project on the tasks assigned to them. In a typical project, developers fill timesheets manually on a periodic basis. This is often tedious, time consuming and error prone. Over or under reporting of time spent on tasks causes errors in billing development...
Are your software projects on schedule? Is your productivity improving? Which modules are most likely to cause trouble in the next release? How do you know?
Software development tools often fail to deliver on inflated promises. Rather than the predicted progression toward ever-increasing levels of abstraction, two simple trends have driven the evolution of currently available software development tools: integration at the source-code level and a focus on quality. Thus source code has become the bus tha...
Software design methods are often taught informally and supported by CASE tools that do not make their underlying rules, or theory, explicit. The user of such a method is concerned with constructing a model of the system being built that satisfies the theory of this method. We suggest that it is useful to make the underlying design theory explicit,...
This document describes the Web Services Description Language Version 2.0 (WSDL 2.0), an XML language for describing Web services. This specification defines the core language which can be used to describe Web services based on an abstract model of what the service offers. It also defines the conformance criteria for documents in this language.
This paper presents visual constraint diagrams (VCD), an extension to UML (Unified Modeling Language) object diagrams for expressing constraints over object models. VCD allows designers to express well-formedness constraints that cannot be expressed using class diagrams alone; an example of such a constraint is that a linked list data structure can...
Web services have recently emerged as a powerful technology for integrating heterogeneous applications over the Internet. The widespread adoption of Web services promises to usher in an exciting new generation of advanced distributed applications. These will support a new and growing set of specifications, such as Simple Object Access Protocol (SOA...
Rosetta is a tool that supports the creation of objectoriented design documents, and automatically checks the conformance of Java implementations to those designs. Rosetta is based on a novel WWW architecture, supporting collaborative use with heterogeneous development tools under a coevolutionary development process. Rosetta has been used extensiv...
Rosetta is a tool that supports the creation of object-oriented
design documents, and which automatically checks the conformance of Java
implementations to those designs. Rosetta is based on a novel World Wide
Web (WWW) architecture, supporting collaborative use with heterogeneous
development tools under a coevolutionary development process. Rosett...
This paper introduces the IBM VisualAge® for Java™ product, a robust, visual suite of tools designed for rapid prototyping and enterprise application development. The paper outlines the development-time benefits of using VisualAge for Java.
Literate Programming is a documentation method that attempts to maintain consistency among the various design and program documents of a software system. Unfortunately the majority of the literate programming tools do not have appropriate user interfaces and require the users to learn complicated and cryptic tagging languages. SGML is a metalanguag...
Introduction What kinds of tools should we build to give software engineers better ways of designing, maintaining, and generally understanding large software systems? We claim that software engineers need (among other things) database facilities that support query, exploration, and visualization of software system structure and behaviour. Furthermo...
The Hy<sup>+</sup> system is a generic visualization tool that supports a novel visual query language called GraphLog. In Hy<sup>+</sup>, visualizations are based on a graphical formalism that allows comprehensible representations of databases, queries, and query answers to be interactively manipulated. This paper describes the design, architecture...
A software specification is a description of what a system is to compute, and as such, it serves as an essential communication vehicle between the customers of the system and its implementers. The overriding concern in writing a specification is therefore one of clarity.Traditionally, specifications have been written in a procedural style known as...
4Thought, a prototype design tool, is based on the notion that design artifacts are complex, formal, mathematical objects that require complementary textual and graphical views to be adequately comprehended. This paper describes the combined use of EntityRelationship modelling and GraphLog to bridge the textual and graphical views. These techniques...
Software engineering problems often involve large sets of objects and complex relationships among them. This report proposes that graphical visualization techniques can help engineers understand and solve a class of these problems. To illustrate this, two problems are analyzed and recast using the graphical language GraphLog. The first problem is t...
Image applications require complex processing on large amounts of data. The application designer is presented with difficult challenges that are exacerbated on personal systems which have limited processor speed and constrained memory. This paper discusses the problems relevant to personal systems image application architecture and how these proble...