38,446 research outputs found

    Towards automation of user interface design

    Get PDF
    This paper suggests an approach to automatic software design in the domain of graphical user interfaces. There are still some drawbacks in existing user interface management systems (UIMS's) which basically offer only quantitative layout specifications via direct manipulation. Our approach suggests a convenient way to get a default graphical user interface which may be customized and redesigned easily in further prototyping cycles

    Attempto - From Specifications in Controlled Natural Language towards Executable Specifications

    Full text link
    Deriving formal specifications from informal requirements is difficult since one has to take into account the disparate conceptual worlds of the application domain and of software development. To bridge the conceptual gap we propose controlled natural language as a textual view on formal specifications in logic. The specification language Attempto Controlled English (ACE) is a subset of natural language that can be accurately and efficiently processed by a computer, but is expressive enough to allow natural usage. The Attempto system translates specifications in ACE into discourse representation structures and into Prolog. The resulting knowledge base can be queried in ACE for verification, and it can be executed for simulation, prototyping and validation of the specification.Comment: 15 pages, compressed, uuencoded Postscript, to be presented at EMISA Workshop 'Naturlichsprachlicher Entwurf von Informationssystemen - Grundlagen, Methoden, Werkzeuge, Anwendungen', May 28-30, 1996, Ev. Akademie Tutzin

    Software process modelling as relationships between tasks

    Get PDF
    Systematic formulation of software process models is currently a challenging problem in software engineering. We present an approach to define models covering the phases of specification, design, implementation and testing of software systems in the component programming framework, taking into account non-functional aspects of software (efficiency, etc.), automatic reusability of implementations in systems and also prototyping techniques involving both specifications and implementations. Our proposal relies on the identification of a catalogue of tasks that appear during these phases which satisfy some relationships concerning their order of execution. A software process model can be defined as the addition of more relationships over these tasks using a simple, modular process language. We have developed also a formal definition of correctness of a software development with respect to a software process model, based on the formulation of models as graphs.Peer ReviewedPostprint (published version

    Prototyping and Specifying: Principles and Practices of a Mixed Approach

    Get PDF
    Which approaches to software development should be used in which situations? This fundamental question is explored based on experiences from nine comparable small-scale software projects using prototyping and specifying. An empirical interpretation suggests that mixed approaches to software development will benefit from the strengths of both specifying and prototyping. On functionality, robustness, ease of use, and ease of learning mixed approaches led to products of a quality that was at least comparable to the products of specialized approaches based on either specifying or prototyping. Moreover, the Spiral Model was experienced as a useful framework for combining specifying and prototyping approaches to software development. A theoretical interpretation relates these practical lessons to The Principle of Limited Reduction. This principle suggests that effective software development must cope with both complexity and uncertainty. This requires a systematic effort combining analytical and experimental approaches, independently of whether specifications or prototypes are used

    Using non-functional requirements in component-based software construction

    Get PDF
    The main concern of this paper is to present the author's approach to support software development in the component programming framework taking functional and non-functional requirements into account. Functional requirements are written as algebraic specifications, while non-functional information is bound to specifications and implementations by means of ad hoc modules: the nonfunctional information is used to select automatically the most appropriate implementations of software components (the selection algorithm is not presented here). The existence of multiple type implementations is supported by a process model based on the prototyping paradigm. Prototyping is achieved by means of a mixed execution mechanism being able to operate in the context of incremental software development process allowing the execution of incomplete (partially implemented) systems. The ideas we present here are not bound to any particular programming language, giving rise to a method of wide applicability.Peer ReviewedPostprint (published version

    Rapid prototyping of software specifications in Z.

    Get PDF
    by Wu Chun Pong.Thesis (M.Phil.)--Chinese University of Hong Kong, 1993.Includes bibliographical references (leaves 86-[91]).Chapter 1 --- Introduction --- p.1Chapter 1.1 --- Formal Specification Methods --- p.1Chapter 1.2 --- The Z notation --- p.2Chapter 1.3 --- Overview of Thesis --- p.3Chapter 2 --- The Specification Language Z --- p.5Chapter 2.1 --- Background --- p.5Chapter 2.2 --- Structure and Characteristics --- p.6Chapter 2.3 --- Object Orientation in Z --- p.10Chapter 2.3.1 --- Hall's style --- p.11Chapter 2.3.2 --- Schuman and Pitt's variant --- p.11Chapter 2.3.3 --- Object-Z --- p.12Chapter 2.4 --- Execution in Z --- p.13Chapter 2.5 --- Animation of Z Specifications --- p.15Chapter 2.5.1 --- Prolog --- p.15Chapter 2.5.2 --- Translation Z into Prolog --- p.18Chapter 2.5.3 --- Related Works --- p.19Chapter 3 --- Incorporating Real Numbers in Z --- p.22Chapter 3.1 --- Dedekind Cut --- p.23Chapter 3.2 --- Cantor's definition --- p.23Chapter 3.3 --- Practical approach --- p.24Chapter 4 --- Constraint Logic Programming and CLP(R) --- p.26Chapter 4.1 --- Constraint Logic Programming --- p.26Chapter 4.2 --- CLP(R) --- p.27Chapter 4.3 --- Example of CLP(R) --- p.29Chapter 5 --- The ZCLP(R) Animation System --- p.31Chapter 5.1 --- Design Philosophy --- p.31Chapter 5.2 --- Implementation Strategy --- p.34Chapter 5.3 --- Z editor (ZEDIT) --- p.36Chapter 5.4 --- Prolog Library for set operation (ZCLIB) --- p.37Chapter 5.4.1 --- Basic needs for the Library --- p.37Chapter 5.4.2 --- Rules for the library --- p.38Chapter 5.4.3 --- Limitation of the Library --- p.43Chapter 5.5 --- Z to CLP(R) Translator (ZCGEN) --- p.44Chapter 5.5.1 --- Procedure for translation --- p.45Chapter 5.5.2 --- Demonstration --- p.47Chapter 5.5.3 --- Rules for translation --- p.48Chapter 5.5.4 --- Limitations of the Translator --- p.50Chapter 5.6 --- Z to LATEX translator (ZLATEX) --- p.52Chapter 6 --- Examples --- p.54Chapter 6.1 --- A Simple Banking System --- p.54Chapter 6.1.1 --- Bags --- p.54Chapter 6.1.2 --- Specifications --- p.56Chapter 6.2 --- A Graphics Example --- p.61Chapter 6.2.1 --- Defining a Rectangle --- p.62Chapter 6.2.2 --- Drawing a Rectangle --- p.63Chapter 6.2.3 --- Defining a Circle --- p.63Chapter 6.2.4 --- Specifications --- p.64Chapter 6.3 --- Specifications Writing Experience --- p.76Chapter 7 --- Conclusion --- p.79Chapter 7.1 --- Contributions --- p.79Chapter 7.2 --- Difficulties --- p.83Chapter 7.3 --- Further Works --- p.84Bibliography --- p.8

    Animation prototyping of formal specifications

    Get PDF
    At the present time one of the key issues relating to the design of real-time systems is the specification of software requirements. It is now clear that specification correctness is an essential factor for the design and implementation of high quality software. As a result considerable emphasis is placed on producing specifications which are not only correct, but provably so. This has led to the application of mathematically-based formal specification techniques in the software life-cycle model. Unfortunately, experience in safety-critical systems has shown that specification correctness is not, in itself, sufficient. Such specifications must also be comprehensible to all involved in the system development. The topic of this thesis—Animation Prototyping—is a methodology devised to make such specifications understandable and usable. Its primary objective is to demonstrate key properties of formal specifications to non-software specialists. This it does through the use of computer-animated pictures which respond to the dictates of the formal specification. [Continues.

    ComProLab: A component programming laboratory

    Get PDF
    We present here an approach to component programming which defines languages and tools at both the product and the process levels. At the product level, we allow the use of already existing languages to write functional specifications and implementations of components; also, we provide a notation to state their non-functional specifications, which involve operational attributes as efficiency. Functional specifications can be employed to perform prototyping in a mixed execution framework, which allows the combination of algebraic specifications and imperative code, while non-functional specifications are used to select automatically the best implementation of every component appearing in a software system. At the process level, we have introduced a set of basic program development tasks and we have defined a process language to formulate software process models as particular combinations of these tasks. A process assistant can be used to guide software development following any model defined with this language.Peer ReviewedPostprint (author's final draft

    Architectural prototyping: from ccs to .net

    Get PDF
    Over the last decade, software architecture emerged as a critical issue in Software Engineering. This encompassed a shift from traditional programming towards software development based on the deployment and assembly of independent components. The specification of both the overall systems structure and the interaction patterns between their components became a major concern for the working developer. Although a number of formalisms to express behaviour and to supply the indispensable calculational power to reason about designs, are available, the task of deriving architectural designs on top of popular component platforms has remained largely informal. This paper introduces a systematic approach to derive, from CCS behavioural specifications the corresponding architectural skeletons in the Microsoft .Net framework, in the form of executable C and C# code. The prototyping process is fully supported by a specific tool developed in Haskell. Keywords: Software architecture; prototyping; CCS; Net framework, in the form of executable C# and Cω code. The prototyping process is fully supported by a specific tool developed in Haskell.Fundação para a Ciência e a Tecnologia (FCT

    Software Evolution Approach for the Development of Command and Control Systems

    Get PDF
    2000 Command and Control Research and Technology Symposium (CCRTS), June 11-13, 2000, Naval Postgraduate School, Monterey, CAThis paper addresses the problem of how to produce reliable software that is also flexible and cost effective for the DoD distributed software domain. DoD software systems fall into two categories: information systems and war fighter systems. Both types of systems can be distributed, heterogeneous and network-based, consisting of a set of components running on different platforms and working together via multiple communication links and protocols. We propose to tackle the problem using prototyping and a “wrapper and glue” technology for interoperability and integration. This paper describes a distributed development environment, CAPS (Computer- Aided Prototyping System), to support rapid prototyping and automatic generation of wrapper and glue software based on designer specifications. The CAPS system uses a fifth-generation prototyping language to model the communication structure, timing constraints, I/O control, and data buffering that comprise the requirements for an embedded software system. The language supports the specification of hard real-time systems with reusable components from domain specific component libraries. CAPS has been used successfully as a research tool in prototyping large war-fighter control systems (e.g. the command-and-control station, cruise missile flight control system, missile defense systems) and demonstrated its capability to support the development of large complex embedded software.This research was supported in part by the U. S. Army Research Office under contract/grant number 35037-MA and 40473-MA
    corecore