1,656 research outputs found

    Improving Reuse of Distributed Transaction Software with Transaction-Aware Aspects

    Get PDF
    Implementing crosscutting concerns for transactions is difficult, even using Aspect-Oriented Programming Languages (AOPLs) such as AspectJ. Many of these challenges arise because the context of a transaction-related crosscutting concern consists of loosely-coupled abstractions like dynamically-generated identifiers, timestamps, and tentative value sets of distributed resources. Current AOPLs do not provide joinpoints and pointcuts for weaving advice into high-level abstractions or contexts, like transaction contexts. Other challenges stem from the essential complexity in the nature of the data, operations on the data, or the volume of data, and accidental complexity comes from the way that the problem is being solved, even using common transaction frameworks. This dissertation describes an extension to AspectJ, called TransJ, with which developers can implement transaction-related crosscutting concerns in cohesive and loosely-coupled aspects. It also presents a preliminary experiment that provides evidence of improvement in reusability without sacrificing the performance of applications requiring essential transactions. This empirical study is conducted using the extended-quality model for transactional application to define measurements on the transaction software systems. This quality model defines three goals: the first relates to code quality (in terms of its reusability); the second to software performance; and the third concerns software development efficiency. Results from this study show that TransJ can improve the reusability while maintaining performance of TransJ applications requiring transaction for all eight areas addressed by the hypotheses: better encapsulation and separation of concern; loose Coupling, higher-cohesion and less tangling; improving obliviousness; preserving the software efficiency; improving extensibility; and hasten the development process

    Attribute based component design: Supporting model driven development in CbSE

    Get PDF
    In analysing the evolution of Software Engineering, the scale of the components has increased, the requirements for different domains become complex and a variety of different component frameworks and their associated models have emerged. Many modern component frameworks provide enterprise level facilities and services, such as instance management, and component container support, that allow developers to apply if needed to manage scale and complexity. Although the services provided by these frameworks are common, they have different models and implementation. Accordingly, the main problem is, when developing a component based application using a component framework, the design of the components becomes tightly integrated with the framework implementation and the framework model is embedded in the component functionality, and hence reduces reusability. Another problem arose is, the designers must have in-depth knowledge of the implementation of a component framework to be able to model, design and implement the components and take advantages of the services provided. To address these problems, this research proposes the Attribute based Component Design (AbCD) approach which allows developers to model software using logical and abstract components at the specification level. The components encapsulate the provided functionality, as well as the required services, runtime requirements and interaction models using a set of attributes. These attributes are systemically derived by grouping common features and services from light weight component frameworks and heavy weight component frameworks that are available in the literature. The AbCD approach consists of the AbCD Meta-model, which is an extension of the บML meta-model, and the Component Design Guidelines (CDG) that includes core Component based Software Engineering principles to assist the modelling process for designers. To support the AbCD approach, an implementation has been developed as a set of plug-ins, called the AbCD tool suite, for Eclipse IDE. An evaluation of the AbCD approach is conducted by using the tool suite with two case studies. The first case study focuses on abstraction achieved by the AbCD approach and the second focuses on reusability of the components. The evaluation shows that the artefacts produced using the approach provide an alternative architectural view to the design and help to re-factor the design based on aspects. At the same time the evaluation process identified possible improvements in the AbCD meta-model and the tool suite constructed. This research provides a non-invasive approach for designing component based software using model driven development

    Graphic frameworks for managing component oriented graphic systems

    Full text link
    This thesis presents a model graphic framework. It uses traditional graphic principles such as display file concepts to generate frameworks. It implements object oriented patterns such as inheritance polymorphism etc. to reuse the graphic framework for the object oriented graphic applications; This thesis suggests component technology such as Microsoft COM technology to make the frameworks effective. The thesis identifies the advantage of Component Oriented Technology over Object Oriented Technology. The procedure for development of a Component is complex. Even the client procedure for using the component is also complex. This thesis presents a model procedure for the development of a simple beeper component and its client program to demonstrate the complexity of the component technology; The thesis adopts some of the existing pattern frames to make the implementation graphic components simple. It also presents some techniques to make the client procedures for using a component simple; The advantages of the model graphic frameworks presented in this thesis are as follows: (1) The Graphic application developer can develop Graphic Components (graphic COM objects) like simple C++ objects using the frameworks. (2) The client who uses these components for the development of the graphic applications can use these components (COM object) like simple C++ objects; That means the components (COM objects) behave like simple C++ objects for development and for usage but they are COM objects; The models presented in this thesis can be views in two layers. The first layers focus on increasing the degree of reusability of graphic objects to minimize cost. In this connection the model is tested by implementing PCB (Printed circuit board) Graphic Application for representing several graphic elements of different types minimizing the number of component. This enables graphic applications run on lower-end systems; The second layers try to implement graphic COM components like simple C++ objects. Abstract COM object framework is created and several graphic COM objects are created for testing this model. Client side wrapper component is also implemented and tested for using complex graphic COM object like simple C++ objects; Chapter three and five will presents detailed description of these models. Output Screen of graphic Applications is presented in Appendix B. (Abstract shortened by UMI.)

    Distributed Real-Time Emulation of Formally-Defined Patterns for Safe Medical Device Control

    Full text link
    Safety of medical devices and of their interoperation is an unresolved issue causing severe and sometimes deadly accidents for patients with shocking frequency. Formal methods, particularly in support of highly reusable and provably safe patterns which can be instantiated to many device instances can help in this regard. However, this still leaves open the issue of how to pass from their formal specifications in logical time to executable emulations that can interoperate in physical time with other devices and with simulations of patient and/or doctor behaviors. This work presents a specification-based methodology in which virtual emulation environments can be easily developed from formal specifications in Real-Time Maude, and can support interactions with other real devices and with simulation models. This general methodology is explained in detail and is illustrated with two concrete scenarios which are both instances of a common safe formal pattern: one scenario involves the interaction of a provably safe pacemaker with a simulated heart; the other involves the interaction of a safe controller for patient-induced analgesia with a real syringe pump.Comment: In Proceedings RTRTS 2010, arXiv:1009.398

    Extended Bridge Software Design Pattern

    Get PDF
    Software engineers are taught that they should separate form and function. This allows a user interface or front-end to be designed and implemented independently of the engine or back-end. Using an abstracted interface class provides the opportunity to develop different user interfaces for the same back-end, as each new user interface will all be derived from this agreed upon abstracted interface. Using the Bridge pattern allows the user to also decouple the abstraction from its implementation, providing additional flexibility as they developed multiple user interfaces. However, user interfaces are typically designed as a single unit, the renderer, even the Bridge pattern refers to it as the ConcreteImplementor. This thesis concentrated on the implementation of the renderer and merged the Bridge pattern with another design pattern, the Presentation Model. The Extended Bridge pattern also includes support for the Single Responsibility principle; a construct that improves upon the Presentation Model by decoupling the logic and the data from the rendering code. In short the Extended Bridge is an object oriented pattern that provides an abstract interface, an abstract implementation with decoupled logic, data and rendering, that is flexible, maintainable, reusable and highly testable

    NiftyNet: a deep-learning platform for medical imaging

    Get PDF
    Medical image analysis and computer-assisted intervention problems are increasingly being addressed with deep-learning-based solutions. Established deep-learning platforms are flexible but do not provide specific functionality for medical image analysis and adapting them for this application requires substantial implementation effort. Thus, there has been substantial duplication of effort and incompatible infrastructure developed across many research groups. This work presents the open-source NiftyNet platform for deep learning in medical imaging. The ambition of NiftyNet is to accelerate and simplify the development of these solutions, and to provide a common mechanism for disseminating research outputs for the community to use, adapt and build upon. NiftyNet provides a modular deep-learning pipeline for a range of medical imaging applications including segmentation, regression, image generation and representation learning applications. Components of the NiftyNet pipeline including data loading, data augmentation, network architectures, loss functions and evaluation metrics are tailored to, and take advantage of, the idiosyncracies of medical image analysis and computer-assisted intervention. NiftyNet is built on TensorFlow and supports TensorBoard visualization of 2D and 3D images and computational graphs by default. We present 3 illustrative medical image analysis applications built using NiftyNet: (1) segmentation of multiple abdominal organs from computed tomography; (2) image regression to predict computed tomography attenuation maps from brain magnetic resonance images; and (3) generation of simulated ultrasound images for specified anatomical poses. NiftyNet enables researchers to rapidly develop and distribute deep learning solutions for segmentation, regression, image generation and representation learning applications, or extend the platform to new applications.Comment: Wenqi Li and Eli Gibson contributed equally to this work. M. Jorge Cardoso and Tom Vercauteren contributed equally to this work. 26 pages, 6 figures; Update includes additional applications, updated author list and formatting for journal submissio

    Applying constraint solving to the management of distributed applications

    Get PDF
    Submitted to DOA08We present our approach for deploying and managing distributed component-based applications. A Desired State Description (DSD), written in a high-level declarative language, specifies requirements for a distributed application. Our infrastructure accepts a DSD as input, and from it automatically configures and deploys the distributed application. Subsequent violations of the original requirements are detected and, where possible, automatically rectified by reconfiguration and redeployment of the necessary application components. A constraint solving tool is used to plan deployments that meet the application requirements.Postprin
    corecore