399 research outputs found

    Improving design and implementation of OO container-like component libraries

    Get PDF
    Object-oriented design is usually driven by three main reusability principles: step-by-step design, design for reuse and design with reuse. However, these principles tend to be just partially applied to the subsequent object-oriented implementation, often because they conflict with other quality criteria (remarkably, efficiency). So, there is a gap between design and implementation: due to these conflicts developers use to give up design level abstractions during the implementation. In this paper we present a framework for bridging this gap for a concrete domain, the design and implementation of object-oriented container-like component libraries, such as JCF, STL, Booch Components, LEDA, etc. At the core of the framework we propose a new design pattern called emph{Shortcut} together with its corresponding implementation. The Shortcut pattern, introduced in a generic base class container, provides a secure and efficient access to items in a container decoupled from the implementation details of concrete containers. Shortcut enhances applying the same principles that drive the design process to the implementation process of these libraries: step-by-step implementation, implementation with reuse and implementation for reuse without penalising other quality criteria. Our framework not only supports the design and implementation of new libraries but also the reengineering of existing ones to overcome some of their drawbacks. We show by a case study, reengineering the Booch Components in Ada95, the application and benefits of our framework.Postprint (published version

    Bridging the gap between design and implementation of components libraries

    Get PDF
    Object-oriented design is usually driven by three main reusability principles: step-by-step design, design for reuse and design with reuse. However, these principles are just partially applied to the subsequent object-oriented implementation, often due to efficienc y constraints, yielding to a gap between design and implementation. In this paper we provide a solution for bridging this gap for a concrete framework, the one of designing and implementing container-like component libraries, such as STL, Booc h Components, etc. Our approach is based on a new design pattern together with its corresponding implementation. The proposal enhances the same principles that drive the design process: step-by--step implementation (adding just what is needed in every step), implementation with reuse (component implementations are reused while library implementation progresses and component hierarchies grow) and implementation for reuse (intermediate component implementations can be reused in many different points o f the hierarchy). We use our approach in two different manners: for building a brand-new container-like component library, and for reengineering an existing one, Booch Components in Ada95.Postprint (published version

    Adding efficient and reliable access paths to the JCF

    Get PDF
    The Java Collections Framework (JCF) is the standard Java library for representing and manipulating collections (i.e., objects that represent a group of objects, such as sets, lists, etc.). Although JCF provides adequate functionality for many purposes, it does not offer any mechanism for accessing directly the objects stored in collections apart from the standard Java references. This absence is a crucial functionality exhibited by many other widespread Java and non-Java collection libraries. In this paper, we carry out a reengineering process on the JCF to add this kind of alternative access paths, which we give the name of shortcuts. This process relies on a framework called Shortcut-Based Framework, which has been defined as library- independent. We present this framework and then we show how it may be tailored to the specific case of the JCF. The resulting JCF with shortcuts library is fully compatible with the original one (i.e., programs using the original JCF are not required to be modified), and exhibits good behaviour with respect to efficiency, reliability and internal quality. As an additional benefit of the framework, we mention that it can be applied to other collection libraries, as we have done before with an Ada95 one.Postprint (published version

    Shortcuts: abstract "pointers''

    Get PDF
    In this work we present the specification and the implementation of a new abstract data type (ADT) called STORE. This new ADT allows the storage of a given collection of elements offering an abstract mechanism that supplies a direct access to them, alternative to the method defined by the standard operations of usual ADTs. The interest of the new mechanism stems from the efficiency of pointers, while avoiding the loss of modularity that usually occurs when pointers are used. The implementation of the operations offered by the new ADT is done by derivation from the equational specification. The representation chosen for the implementation of the new ADT makes the efficiency previously mentioned possible, even when the representation strategy requires the movement of the elements.Postprint (published version

    The Alternative Migratory Pathways of the Drosophila Tracheal Cells Are Associated with Distinct Subsets of Mesodermal Cells

    Get PDF
    AbstractThe Drosophila tracheal system is a model for the study of the mechanisms that guide cell migration. The general conclusion from many studies is that migration of tracheal cells relies on directional cues provided by nearby cells. However, very little is known about which paths are followed by the migrating tracheal cells and what kind of interactions they establish to move in the appropriate direction. Here we analyze how tracheal cells migrate relative to their surroundings and which tissues participate in tracheal cell migration. We find that cells in different branches exploit different strategies for their migration; while some migrate through preexisting grooves, others make their way through homogeneous cell populations. We also find that alternative migratory pathways of tracheal cells are associated with distinct subsets of mesodermal cells and propose a model for the allocation of groups of tracheal cells to different branches. These results show how adjacent tissues influence morphogenesis of the tracheal system and offer a model for understanding how organ formation is determined by its genetic program and by the surrounding topological constraints

    Reconciliando modularidad y eficiencia mediante atajos

    Get PDF
    Se presenta en este artículo una propuesta para el desarrollo de programas eficientes en el marco de la programación con tipos abstractos de datos (TAD), con el objetivo de respetar la estructura modular de los programas propia de este ámbito. La propuesta se centra en el concepto de atajo como camino eficiente de acceso a los datos, alternativo al acceso mediante las operaciones propias del TAD, y se desarrolla sobre un TAD concreto, el almacén de elementos. La definición de los atajos es altamente formal, mediante especificaciones algebraicas interpretadas con semántica inicial, de manera que el resultado tiene un significado bien definido y encaja sin problemas en el marco de la programación con TAD. La eficiencia se asegura mediante una implementación adecuada del tipo, que proporciona acceso constante a los datos siguiendo los atajos sin penalizar las otras operaciones del TAD. Se ilustra la utilidad de la propuesta mediante un ejemplo concreto.Peer ReviewedPostprint (author's final draft

    How do software architects consider non-functional requirements: an exploratory study

    Get PDF
    © 2012 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes,creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.Dealing with non-functional requirements (NFRs) has posed a challenge onto software engineers for many years. Over the years, many methods and techniques have been proposed to improve their elicitation, documentation, and validation. Knowing more about the state of the practice on these topics may benefit both practitioners' and researchers' daily work. A few empirical studies have been conducted in the past, but none under the perspective of software architects, in spite of the great influence that NFRs have on daily architects' practices. This paper presents some of the findings of an empirical study based on 13 interviews with software architects. It addresses questions such as: who decides the NFRs, what types of NFRs matter to architects, how are NFRs documented, and how are NFRs validated. The results are contextualized with existing previous work.Peer ReviewedPostprint (author’s final draft

    HiME: Hierarchical i* Modeling Editor

    Get PDF
    In this paper, we present HiME, a tool for editing i* models. Thedistinguishing characteristic of HiME is its ability to deal with inheritance. It includes specific operations for declaring an actor as heir of another and then stating the relationships between the intentional elements of both actors

    Reengineering the booch component library

    Get PDF
    Component-based software development heavily relies on the ability of reusing components from a library with as little effort as possible. Among others, valuable features for reusing from a component library are: adaptability to many contexts, extensibility, abstraction and high level of robustness with respect to changes in some of their components. In this paper we study one of the most widely used component library for Ada 95, the Grady Booch’s one, mainly in relation to these features. Our study focuses on the Container-classes family, which present some drawbacks mainly due to the fact that some parent-classes depend on the concrete form of their children-classes. We propose a solution centred on changing the Containers base class. This new version of the Containers class offers a new concept, namely shortcut, that allows not only to avoid the dependencies between parent-classes and their children classes, but also offers some additional advantages, remarkably improving the efficiency of components.Peer ReviewedPostprint (author's final draft

    A quality model for the Ada standard container library

    Get PDF
    The existence of a standard container library has been largely recognized as a key feature for improving the quality and effectiveness of Ada programming. In this paper, we aim at providing a quality model for making explicit the quality features (those concerning functionality, suitability, etc.) that determine the form that such a library might take. Quality features are arranged hierarchically according to the ISO/IEC quality standard. We tailor this standard to the specific context of container libraries, by identifying their observable attributes and establishing some tradeoffs among them. Afterwards, we apply the resulting model to a pair of existing container libraries. As main contribution of our proposal, we may say that the resulting quality model provides a structured framework for (1) discussing and evaluating the capabilities that the prospective Ada Standard Container Library might offer, and (2) analyzing the consequences of the decisions taken during its design.Peer ReviewedPostprint (author's final draft
    corecore