4,504 research outputs found

    Designing Software Architectures As a Composition of Specializations of Knowledge Domains

    Get PDF
    This paper summarizes our experimental research and software development activities in designing robust, adaptable and reusable software architectures. Several years ago, based on our previous experiences in object-oriented software development, we made the following assumption: ‘A software architecture should be a composition of specializations of knowledge domains’. To verify this assumption we carried out three pilot projects. In addition to the application of some popular domain analysis techniques such as use cases, we identified the invariant compositional structures of the software architectures and the related knowledge domains. Knowledge domains define the boundaries of the adaptability and reusability capabilities of software systems. Next, knowledge domains were mapped to object-oriented concepts. We experienced that some aspects of knowledge could not be directly modeled in terms of object-oriented concepts. In this paper we describe our approach, the pilot projects, the experienced problems and the adopted solutions for realizing the software architectures. We conclude the paper with the lessons that we learned from this experience

    Tracing the Biological Roots of Knowledge

    Get PDF
    The essay is a critical review of three possible approaches in the theory of knowledge while tracing the biological roots of knowledge: empiricist, rationalist and developmentalist approaches. Piaget's genetic epistemology, a developmentalist approach, is one of the first comprehensive treatments on the question of tracing biological roots of knowledge. This developmental approach is currently opposed, without questioning the biological roots of knowledge, by the more popular rationalist approach, championed by Chomsky. Developmental approaches are generally coherent with cybernetic models, of which the theory of autopoiesis proposed by Maturana and Varela made a significant theoretical move in proposing an intimate connection between metabolism and knowledge. Modular architecture is currently considered more or less an undisputable model for both biology as well as cognitive science. By suggesting that modulation of modules is possible by motor coordination, a proposal is made to account for higher forms of conscious cognition within the four distinguishable layers of the human mind. Towards the end, the problem of life and cognition is discussed in the context of the evolution of complex cognitive systems, suggesting the unique access of phylogeny during the ontogeny of human beings as a very special case, and how the problem cannot be dealt with independent of the evolution of coding systems in nature

    Realizing live sequence charts in SystemVerilog.

    Get PDF
    The design of an embedded control system starts with an investigation of properties and behaviors of the process evolving within its environment, and an analysis of the requirement for its safety performance. In early stages, system requirements are often specified as scenarios of behavior using sequence charts for different use cases. This specification must be precise, intuitive and expressive enough to capture different aspects of embedded control systems. As a rather rich and useful extension to the classical message sequence charts, live sequence charts (LSC), which provide a rich collection of constructs for specifying both possible and mandatory behaviors, are very suitable for designing an embedded control system. However, it is not a trivial task to realize a high-level design model in executable program codes effectively and correctly. This paper tackles the challenging task by providing a mapping algorithm to automatically synthesize SystemVerilog programs from given LSC specifications

    ImageJ2: ImageJ for the next generation of scientific image data

    Full text link
    ImageJ is an image analysis program extensively used in the biological sciences and beyond. Due to its ease of use, recordable macro language, and extensible plug-in architecture, ImageJ enjoys contributions from non-programmers, amateur programmers, and professional developers alike. Enabling such a diversity of contributors has resulted in a large community that spans the biological and physical sciences. However, a rapidly growing user base, diverging plugin suites, and technical limitations have revealed a clear need for a concerted software engineering effort to support emerging imaging paradigms, to ensure the software's ability to handle the requirements of modern science. Due to these new and emerging challenges in scientific imaging, ImageJ is at a critical development crossroads. We present ImageJ2, a total redesign of ImageJ offering a host of new functionality. It separates concerns, fully decoupling the data model from the user interface. It emphasizes integration with external applications to maximize interoperability. Its robust new plugin framework allows everything from image formats, to scripting languages, to visualization to be extended by the community. The redesigned data model supports arbitrarily large, N-dimensional datasets, which are increasingly common in modern image acquisition. Despite the scope of these changes, backwards compatibility is maintained such that this new functionality can be seamlessly integrated with the classic ImageJ interface, allowing users and developers to migrate to these new methods at their own pace. ImageJ2 provides a framework engineered for flexibility, intended to support these requirements as well as accommodate future needs

    Integrated Reasoning and Proof Choice Point Selection in the Jahob System – Mechanisms for Program Survival

    Get PDF
    In recent years researchers have developed a wide range of powerful automated reasoning systems. We have leveraged these systems to build Jahob, a program specification, analysis, and verification system. In contrast to many such systems, which use a monolithic reasoning approach, Jahob provides a general integrated reasoning framework, which enables multiple automated reasoning systems to work together to prove the desired program correctness properties. We have used Jahob to prove the full functional correctness of a collection of linked data structure implementations. The automated reasoning systems are able to automatically perform the vast majority of the reasoning steps required for this verification. But there are some complex verification conditions that they fail to prove. We have therefore developed a proof language, integrated into the underlying imperative Java programming language, that developers can use to control key choice points in the proof search space. Once the developer has resolved these choice points, the automated reasoning systems are able to complete the verification. This approach appropriately leverages both the developer’s insight into the high-level structure of the proof and the ability of the automated reasoning systems to perform the mechanical steps required to prove the verification conditions. Building on Jahob’s success with this challenging program verification problem, we contemplate the possibility of verifying the complete absence of fatal errors in large software systems. We envision combining simple techniques that analyze the vast majority of the program with heavyweight techniques that analyze those more sophisticated parts of the program that may require arbitrarily sophisticated reasoning. Modularity mechanisms such as abstract data types enable the sound division of the program for this purpose. The goal is not a completely correct program, but a program that can survive any remaining errors to continue to provide acceptable service

    Small

    Get PDF
    Screening functional phenotypes in small animals is important for genetics and drug discovery. Multiphase microfluidics has great potential for enhancing throughput but has been hampered by inefficient animal encapsulation and limited control over the animal's environment in droplets. Here, a highly efficient single-animal encapsulation unit, a liquid exchanger system for controlling the droplet chemical environment dynamically, and an automation scheme for the programming and robust execution of complex protocols are demonstrated. By careful use of interfacial forces, the liquid exchanger unit allows for adding and removing chemicals from a droplet and, therefore, generating chemical gradients inaccessible in previous multiphase systems. Using Caenorhabditis elegans as an example, it is demonstrated that these advances can serve to analyze dynamic phenotyping, such as behavior and neuronal activity, perform forward genetic screen, and are scalable to manipulate animals of different sizes. This platform paves the way for large-scale screens of complex dynamic phenotypes in small animals.P40 OD010440/CD/ODCDC CDC HHSUnited States/P40 OD010440/OD/NIH HHSUnited States/R01 AG056436/AG/NIA NIH HHSUnited States/R01NS096581/National Institute of Health/R01AG056436/National Institute of Health/ECCS-1542174/National Science Foundation/National Nanotechnology Coordinated Infrastructure/R01 NS096581/NS/NINDS NIH HHSUnited States/NIH R21NS117066/National Institute of Health/R21 NS117066/NS/NINDS NIH HHSUnited States

    Modelling Reactive Multimedia: Design and Authoring

    Get PDF
    Multimedia document authoring is a multifaceted activity, and authoring tools tend to concentrate on a restricted set of the activities involved in the creation of a multimedia artifact. In particular, a distinction may be drawn between the design and the implementation of a multimedia artifact. This paper presents a comparison of three different authoring paradigms, based on the common case study of a simple interactive animation. We present details of its implementation using the three different authoring tools, MCF, Fran and SMIL 2.0, and we discuss the conclusions that may be drawn from our comparison of the three approaches
    corecore