60,223 research outputs found

    A type-level approach to component prototyping

    Get PDF
    Algebraic theories for modeling components and their interactions offer abstraction over the specifics of component states and interfaces. For example, such theories deal with forms of sequential composition of two components in a manner independent of the type of data stored in the states of the components, and independent of the number and types of methods offered by the interfaces of the combinators. General purpose programming languages do not offer this level of abstraction, which implies that a gap must be bridged when turning component models into implementations. In this paper, we present an approach to prototyping of component-based systems that employs so-called type-level programming (or compile-time computation) to bridge the gap between abstract component models and their type-safe implementation in a functional programming language. We demonstrate our approach using Barbosa’s model of components as generalized Mealy machines. For this model, we develop a combinator library in Haskell, which uses typelevel programming with two effects. Firstly, wiring between components is computed during compilation. Secondly, the well-formedness of the component compositions is guarded byHaskell’s strong type system.Fundação para a CiĂȘncia e a Tecnologia, Portugal, under grant number SFRH/BD/30231/2006

    Adaptive development and maintenance of user-centric software systems

    Get PDF
    A software system cannot be developed without considering the various facets of its environment. Stakeholders – including the users that play a central role – have their needs, expectations, and perceptions of a system. Organisational and technical aspects of the environment are constantly changing. The ability to adapt a software system and its requirements to its environment throughout its full lifecycle is of paramount importance in a constantly changing environment. The continuous involvement of users is as important as the constant evaluation of the system and the observation of evolving environments. We present a methodology for adaptive software systems development and maintenance. We draw upon a diverse range of accepted methods including participatory design, software architecture, and evolutionary design. Our focus is on user-centred software systems

    An Empirical Study of a Software Maintenance Process

    Get PDF
    This paper describes how a process support tool is used to collect metrics about a major upgrade to our own electronic retail system. An incremental prototyping lifecycle is adopted in which each increment is categorised by an effort type and a project component. Effort types are Acquire, Build, Comprehend and Design and span all phases of development. Project components include data models and process models expressed in an OO modelling language and process algebra respectively as well as C++ classes and function templates and build components including source files and data files. This categorisation is independent of incremental prototyping and equally applicable to other software lifecycles. The process support tool (PWI) is responsible for ensuring the consistency between the models and the C++ source. It also supports the interaction between multiple developers and multiple metric-collectors. The first two releases of the retailing software are available for ftp from oracle.ecs.soton.ac.uk in directory pub/peter. Readers are invited to use the software and apply their own metrics as appropriate. We would be interested to correspond with anyone who does so

    Using Counts as Heuristics for the Analysis of Static Models

    Get PDF
    The upstream activities of software development are often viewed as both the most important, in terms of cost, and the yet the least understood, and most problematic, particularly in terms of satisfying customer requirements. Business process modelling is one solution that is being increasingly used in conjunction with traditional software development, often feeding in to requirements and analysis activities. In addition, research in Systems Engineering for Business Process Change, highlights the importance of modelling business processes in evolving and maintaining the legacy systems that support those processes. However, the major use of business process modelling, is to attempt to restructure the business process, in order to improve some given aspect, e.g., cost or time. This restructuring may be seen either as separate activity or as a pre-cursor to the development of systems to support the new or improved process. Hence, the analysis of these business models is vital to the improvement of the process, and as a consequence to the development of supporting software systems. Supporting this analysis is the focus of this paper. Business processes are typically described with static (diagrammatic) models. This paper proposes the use of measures (counts) to aid analysis and comparison of these static process descriptions. The proposition is illustrated by showing how measures can be applied to a commonly used process-modelling notation, Role Activity Diagrams (RADs). Heuristics for RADs are described and measures suggested which support those heuristics. An example process is used to show how a coupling measure can be used to highlight features in RADs useful to the process modeller. To fully illustrate the proposition the paper describes and applies a framework for the theoretical validation of the coupling measure. An empirical evaluation follows. This is illustrated by two case studies; the first based on the bidding process of a large telecommunications systems supplier, and the second a study of ten prototyping processes across a number of organisations. These studies found that roles of the same type exhibited similar levels of coupling across processes. Where roles did not adhere to tentative threshold values, further investigation revealed unusual circumstances or hidden behaviour. Notably, study of the prototyping roles, which exhibited the greatest variation in coupling, found that coupling was highly correlated with the size of the development team. This suggests that prototyping in large projects had a different process to that for small projects, using more mechanisms for communication. Hence, the empirical studies support the view that counts (measures) may be useful in the analysis of static process models

    PROSET — A Language for Prototyping with Sets

    Get PDF
    We discuss the prototyping language PROSET(Prototyping with Sets) as a language for experimental and evolutionary prototyping, focusing its attention on algorithm design. Some of PROSET’s features include generative communication, flexible exception handling and the integration of persistence. A discussion of some issues pertaining to the compiler and the programming environment conclude the pape

    Prototyping Information Visualization in 3D City Models: a Model-based Approach

    Full text link
    When creating 3D city models, selecting relevant visualization techniques is a particularly difficult user interface design task. A first obstacle is that current geodata-oriented tools, e.g. ArcGIS, have limited 3D capabilities and limited sets of visualization techniques. Another important obstacle is the lack of unified description of information visualization techniques for 3D city models. If many techniques have been devised for different types of data or information (wind flows, air quality fields, historic or legal texts, etc.) they are generally described in articles, and not really formalized. In this paper we address the problem of visualizing information in (rich) 3D city models by presenting a model-based approach for the rapid prototyping of visualization techniques. We propose to represent visualization techniques as the composition of graph transformations. We show that these transformations can be specified with SPARQL construction operations over RDF graphs. These specifications can then be used in a prototype generator to produce 3D scenes that contain the 3D city model augmented with data represented using the desired technique.Comment: Proc. of 3DGeoInfo 2014 Conference, Dubai, November 201

    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

    Automatic generation of robot and manual assembly plans using octrees

    Get PDF
    This paper aims to investigate automatic assembly planning for robot and manual assembly. The octree decomposition technique is applied to approximate CAD models with an octree representation which are then used to generate robot and manual assembly plans. An assembly planning system able to generate assembly plans was developed to build these prototype models. Octree decomposition is an effective assembly planning tool. Assembly plans can automatically be generated for robot and manual assembly using octree models. Research limitations/implications - One disadvantage of the octree decomposition technique is that it approximates a part model with cubes instead of using the actual model. This limits its use and applications when complex assemblies must be planned, but in the context of prototyping can allow a rough component to be formed which can later be finished by hand. Assembly plans can be generated using octree decomposition, however, new algorithms must be developed to overcome its limitations

    Semi-automated creation of converged iTV services: From macromedia director simulations to services ready for broadcast

    Get PDF
    While sound and video may capture viewers’ attention, interaction can captivate them. This has not been available prior to the advent of Digital Television. In fact, what lies at the heart of the Digital Television revolution is this new type of interactive content, offered in the form of interactive Television (iTV) services. On top of that, the new world of converged networks has created a demand for a new type of converged services on a range of mobile terminals (Tablet PCs, PDAs and mobile phones). This paper aims at presenting a new approach to service creation that allows for the semi-automatic translation of simulations and rapid prototypes created in the accessible desktop multimedia authoring package Macromedia Director into services ready for broadcast. This is achieved by a series of tools that de-skill and speed-up the process of creating digital TV user interfaces (UI) and applications for mobile terminals. The benefits of rapid prototyping are essential for the production of these new types of services, and are therefore discussed in the first section of this paper. In the following sections, an overview of the operation of content, service, creation and management sub-systems is presented, which illustrates why these tools compose an important and integral part of a system responsible of creating, delivering and managing converged broadcast and telecommunications services. The next section examines a number of metadata languages candidates for describing the iTV services user interface and the schema language adopted in this project. A detailed description of the operation of the two tools is provided to offer an insight of how they can be used to de-skill and speed-up the process of creating digital TV user interfaces and applications for mobile terminals. Finally, representative broadcast oriented and telecommunication oriented converged service components are also introduced, demonstrating how these tools have been used to generate different types of services
    • 

    corecore