39,068 research outputs found
Towards automation of user interface design
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
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
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
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
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.
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
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
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
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
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
- …