596,826 research outputs found

    A Platform-Based Software Design Methodology for Embedded Control Systems: An Agile Toolkit

    No full text
    A discrete control system, with stringent hardware constraints, is effectively an embedded real-time system and hence requires a rigorous methodology to develop the software involved. The development methodology proposed in this paper adapts agile principles and patterns to support the building of embedded control systems, focusing on the issues relating to a system's constraints and safety. Strong unit testing, to ensure correctness, including the satisfaction of timing constraints, is the foundation of the proposed methodology. A platform-based design approach is used to balance costs and time-to-market in relation to performance and functionality constraints. It is concluded that the proposed methodology significantly reduces design time and costs, as well as leading to better software modularity and reliability

    Pattern-based model transformation: a metamodel-based approach to model evolution

    Get PDF
    Software systems continue to grow in complexity at a rapid pace, creating systems that are complex to build and evolve. The problems that accompany changes in requirements, system upgrades, and error correction produce a desire for software evolution methods that increase the efficiency and effectiveness of adapting complex software to changes. As software systems evolve, design models must be modified to accommodate the required changes. Techniques that control the changes to models in a systematic manner are a key to model evolution. A process that improves the ability to effectively modify a design, thereby enhancing design qualities, supports the need for improved model evolution techniques. Design patterns are common forms of reusable design experiences. They offer solutions to common design problems, reduce complexity by naming and defining abstractions, and provide a foundation for building reusable software. Well-known pattern solutions are expressed in a natural language as fragments of code which are sometimes difficult to understand and implement by software modelers. With increased focus on development of model-driven approaches, rigorous descriptions of design patterns that capture solutions during design instead of implementation are needed. This research defines an approach for the transformation of models that supports controlled model evolution. More precisely, a process for capturing design patterns in UML class diagrams is defined. This process involves defining a metamodel-level representation which specifies how a software developer can introduce design patterns into existing design models. We defined transformation patterns as an extension of the UML metamodel to characterize source and target model elements. The transformation pattern consists of specialized metamodel elements that specify the structure of source and target metamodels. Transformation patterns were specified for the Abstract Factory, Bridge and Visitor design patterns to show how the model-level transformations can be perform on patterns that represent different functionalities. We developed an action language to specify constructs which add, delete, retrieve and connect model elements. We used the constructs of the action language to define transformation specifications that implement model-level transformations on class diagrams. To determine the potential of this approach we manually implemented the transformation specification on a UML design

    An Adaptive Integration Architecture for Software Reuse

    Get PDF
    The problem of building large, reliable software systems in a controlled, cost-effective way, the so-called software crisis problem, is one of computer science\u27s great challenges. From the very outset of computing as science, software reuse has been touted as a means to overcome the software crisis issue. Over three decades later, the software community is still grappling with the problem of building large reliable software systems in a controlled, cost effective way; the software crisis problem is alive and well. Today, many computer scientists still regard software reuse as a very powerful vehicle to improve the practice of software engineering. The advantage of amortizing software development cost through reuse continues to be a major objective in the art of building software, even though the tools, methods, languages, and overall understanding of software engineering have changed significantly over the years. Our work is primarily focused on the development of an Adaptive Application Integration Architecture Framework. Without good integration tools and techniques, reuse is difficult and will probably not happen to any significant degree. In the development of the adaptive integration architecture framework, the primary enabling concept is object-oriented design supported by the unified modeling language. The concepts of software architecture, design patterns, and abstract data views are used in a structured and disciplined manner to established a generic framework. This framework is applied to solve the Enterprise Application Integration (EM) problem in the telecommunications operations support system (OSS) enterprise marketplace. The proposed adaptive application integration architecture framework facilitates application reusability and flexible business process re-engineering. The architecture addresses the need for modern businesses to continuously redefine themselves to address changing market conditions in an increasingly competitive environment. We have developed a number of Enterprise Application Integration design patterns to enable the implementation of an EAI framework in a definite and repeatable manner. The design patterns allow for integration of commercial off-the-shelf applications into a unified enterprise framework facilitating true application portfolio interoperability. The notion of treating application services as infrastructure services and using business processes to combine them arbitrarily provides a natural way of thinking about adaptable and reusable software systems. We present a mathematical formalism for the specification of design patterns. This specification constitutes an extension of the basic concepts from many-sorted algebra. In particular, the notion of signature is extended to that of a vector, consisting of a set of linearly independent signatures. The approach can be used to reason about various properties including efforts for component reuse and to facilitate complex largescale software development by providing the developer with design alternatives and support for automatic program verification

    Towards epistemic autonomy in adaptive biomimetic middleware for cooperative sensornets

    Full text link
    University of Technology, Sydney. Faculty of Engineering and Information Technology.The importance of studying biomimetic models of software infrastructure for sensornet systems lies in the fact that they are not entirely formal models and thus have to cover a range of issues of epistemic autonomy as well as linguistic and mental adaptation. This adaptation considers the context of software ability to reflect upon the verifiability and validity of its actions and measurements. This research elucidates and explores epistemological consequences of embodying biological autonomic patterns in software architectural models. Autonomy in software systems is a complex issue that raises many fundamental inquiries. The proposal is to initially concentrate on transformations of biological paradigms into epistemological queries and then adapt suitable biomimetic mechanisms into the development of software structure and ethology. Such methodology has proven to be very successful in the design of many engineering systems. The approach leads to a better understanding of the ontology of biomimetic patterns in software as well as a confirmation of requirements validity and design verifiability of autonomous software systems. In a dynamic, cooperative but often hostile environment, a software system infrastructure requires autonomic abilities to execute its normal operations, detect faults and perform necessary recovery actions without the need for external intervention. We approach this problem from the point of view of cognitive and mimetic systems research. The simplest way to make an autonomous and adaptive sensornet system is to include a hierarchy of layers in its middleware, not only to monitor activities of its components but to learn and adapt new behavioural patterns of these components in a changing environment. There are situations, however, where the components will not be able to adapt, learn new behaviour and evolve by themselves. For instance, these may not have yet encountered the new situation while others already have. A solution to this problem is to distribute the new behaviour to neighbouring elements via direct and indirect stigmergy mechanisms so that collaborating components can mutually improve their individual and team performance. The main objective is to disallow distribution of multiple versions of the software components and rather allow each software component to acquire and share with others, new “skills”. The components have to compare/verify these new behavioural patterns against their own set of beliefs, desires and intentions. In this thesis we intend to present simulations to test the learning capability of biomimetic algorithms, build a proof-of-concept middleware solution and demonstrate that such systems can not only adapt and evolve but they are robust and highly interoperable (co-operative). The thesis also assesses the suitability of various biomimetic design patterns and algorithms for building autonomic software infrastructure systems for cooperative networked agents

    Helping Teachers Generate Exercises with Random Coefficients

    No full text
    International audienceFirst, we propose two taxonomies concerning software designed for teaching mathematics, which we call Technology Enhanced Learning (TEL) environments, the first one concerns the teacher's place and role in TEL environments, the second one concerns the activities which are foreseen and provided by TEL environments. Second, we consider TEL environments which provide teachers with tools for building patterns of exercises used in the TEL environment to generate randomly and dynamically exercises or lists of exercises. Our approach is compared to classical approaches (based on standards like IMS-QTI or on Computer Algebra Systems)

    Helping Teachers Generate Exercises with Random Coefficients

    No full text
    International audienceFirst, we propose two taxonomies concerning software designed for teaching mathematics, which we call TEL (Technology Enhanced Learning) environment, the first one is on teacher's place and role in TEL environments, the other one is on the activities which are foreseen and provided by TEL environments. Second, we consider TEL environments which provide teachers with tools for building patterns of exercises used in the TEL environment to generate randomly and dynamically exercises or list of exercises. Our approach is compared to classical approaches (based on standards like IMS-QTI or on Computer Algebra Systems)

    Taming hierarchical connectors

    Get PDF
    Building and maintaining complex systems requires good software engineering practices, including code modularity and reuse. The same applies in the context of coordination of complex component-based systems. This paper investigates how to verify properties of complex coordination patterns built hierarchically, i.e., built from composing blocks that are in turn built from smaller blocks. Most existing approaches to verify properties flatten these hierarchical models before the verification process, losing the hierarchical structure. We propose an approach to verify hierarchical models using containers as actions; more concretely, containers interacting with their neighbours. We present a dynamic modal logic tailored for hierarchical connectors, using Reo and Petri Nets to illustrate our approach. We realise our approach via a prototype implementation available online to verify hierarchical Reo connectors, encoding connectors and formulas into mCRL2 specifications and formulas.publishe
    corecore