115,656 research outputs found

    Component-based software engineering

    Get PDF
    To solve the problems coming with the current software development methodologies, component-based software engineering has caught many researchers\u27 attention recently. In component-based software engineering, a software system is considered as a set of software components assembled together instead of as a set of functions from the traditional perspective. Software components can be bought from third party vendors as off-the-shelf components and be assembled together. Component-based software engineering, though very promising, needs to solve several core issues before it becomes a mature software development strategy. The goal of this dissertation is to establish an infrastructure for component-based software development. The author identifies and studies some of the core issues such as component planning, component building, component assembling, component representation, and component retrieval. A software development process model is developed in this dissertation to emphasize the reuse of existing software components. The software development process model addresses how a software system should be planned and built to maximize the reuse of software components. It conducts domain engineering and application engineering simultaneously to map a software system to a set of existing components in such a way that the development of a software system can reuse the existing software components to the full extent. Besides the planning of software development based on component technology, the migration and integration of legacy systems, most of which are non-component-based systems, to the component-based software systems are studied. A framework and several methodologies are developed to serve as the guidelines of adopting component technology in legacy systems. Component retrieval is also studied in this dissertation. One of the most important issues in component-based software engineering is how to find a software component quickly and accurately in a component repository. A component representation framework is developed in this dissertation to represent software components. Based on the component representation framework, an efficient searching method that combines neural network, information retrieval, and Bayesian inference technology is developed. Finally a prototype component retrieval system is implemented to demonstrate the correctness and feasibility of the proposed method

    Promoting Component Reuse by Separating Transmission Policy from Implementation

    Get PDF
    In this paper we present a methodology and set of tools which assist the construction of applications from components, by separating the issues of transmission policy from component definition and implementation. This promotes a greater degree of software reuse than is possible using traditional middleware environments. Whilst component technologies are usually presented as a mechanism for promoting reuse, reuse is often limited due to design choices that permeate component implementation. The programmer has no direct control over inter-address-space parameter passing semantics: it is fixed by the distributed application's structure, based on the remote accessibility of the components. Using traditional middleware tools and environments, the application designer may be forced to use an unnatural encoding of application level semantics since application parameter passing semantics are tightly coupled with the component deployment topology. This paper describes how inter-address-space parameter passing semantics may be decided independently of component implementation. Transmission policy may be dynamically defined on a per-class, per-method or per-parameter basis.Comment: Submitted to ICDCS 200

    A model for developing dependable system using component-based software development approach / Hasan Kahtan Khalaf Al-Ani

    Get PDF
    Component-based software development (CBSD) is an emerging technology that focuses on building systems by integrating existing software components. The software industry has adopted CBSD to rapidly build and deploy large and complex software systems with enormous savings despite minimal engineering effort, cost, and time. CBSD provides several benefits, such as improved ability to reuse existing codes, reduced development costs of high-quality systems, and shorter development time. However, CBSD encounter issues in terms of security trust mainly in dependability attributes. A system is considered dependable when it can be depended on to produce the consequences for which it was designed, with no adverse effect in its intended environment. Dependability comprises several attributes that imply availability, confidentiality, integrity, reliability, safety, and maintainability. Embedding dependability attributes in CBSD is essential for developing dependable component software

    Support for collaborative component-based software engineering

    Get PDF
    Collaborative system composition during design has been poorly supported by traditional CASE tools (which have usually concentrated on supporting individual projects) and almost exclusively focused on static composition. Little support for maintaining large distributed collections of heterogeneous software components across a number of projects has been developed. The CoDEEDS project addresses the collaborative determination, elaboration, and evolution of design spaces that describe both static and dynamic compositions of software components from sources such as component libraries, software service directories, and reuse repositories. The GENESIS project has focussed, in the development of OSCAR, on the creation and maintenance of large software artefact repositories. The most recent extensions are explicitly addressing the provision of cross-project global views of large software collections and historical views of individual artefacts within a collection. The long-term benefits of such support can only be realised if OSCAR and CoDEEDS are widely adopted and steps to facilitate this are described. This book continues to provide a forum, which a recent book, Software Evolution with UML and XML, started, where expert insights are presented on the subject. In that book, initial efforts were made to link together three current phenomena: software evolution, UML, and XML. In this book, focus will be on the practical side of linking them, that is, how UML and XML and their related methods/tools can assist software evolution in practice. Considering that nowadays software starts evolving before it is delivered, an apparent feature for software evolution is that it happens over all stages and over all aspects. Therefore, all possible techniques should be explored. This book explores techniques based on UML/XML and a combination of them with other techniques (i.e., over all techniques from theory to tools). Software evolution happens at all stages. Chapters in this book describe that software evolution issues present at stages of software architecturing, modeling/specifying, assessing, coding, validating, design recovering, program understanding, and reusing. Software evolution happens in all aspects. Chapters in this book illustrate that software evolution issues are involved in Web application, embedded system, software repository, component-based development, object model, development environment, software metrics, UML use case diagram, system model, Legacy system, safety critical system, user interface, software reuse, evolution management, and variability modeling. Software evolution needs to be facilitated with all possible techniques. Chapters in this book demonstrate techniques, such as formal methods, program transformation, empirical study, tool development, standardisation, visualisation, to control system changes to meet organisational and business objectives in a cost-effective way. On the journey of the grand challenge posed by software evolution, the journey that we have to make, the contributory authors of this book have already made further advances

    A case-based reasoning approach to intelligent retrieval in reusable software libraries

    Get PDF
    Software Reuse is the technique of reusing software components previously developed in order to reduce the effort required to develop new software. It is generally accepted that software reuse can improve the rate of software development, reduce the costs and increase reliability, However, software reuse is only effective if it is easier to locate and adapt a reusable software component than to write it from scratch. There are many issues and problems that need to be resolved before the benefits of software reuse become widespread. These involve philosophical issues such as the encapsulation of experience and the formation of organizational structures to support it, and also technical issues such as the identification, classification, retrieval and adaptation of reusable components. This paper is concerned with the automated retrieval of software components from a reusable software library using case-based reasoning. Current automated retrieval is generally adapted from conventional text retrieval methods which are based on matching lexical and semantic attributes of software components. While these methods are easily implemented, they have serious limitations that arise out of the fact that the words and phrases used to describe software components and their functions are usually obscure, ambiguous and imprecise. Case-based reasoning is an artificial intelligence technique that makes use of a stored set of previously solved problems (cases) in order to solve new ones. It is an effective method of applying the experience and problem solving knowledge gained in the past to bear on current problems. Case-based systems find solutions to problems by examining an input situation or problem and searching a case base to find a case or situation that matches its characteristic features. If the match is identical, the problem is solved. Case-based reasoning shells are inexpensive and their retrieval mechanisms are complex. This together with the fact that the attribute based classification of cases can be used to classify reusable components, affords the opportunity of efficient intelligent retrieval of reusable components. This paper shows how both attribute and faceted based classification schemes can be accommodated by a case-based reasoning shell and examines various methods of retrieval

    On the development of a component model for the realization of Industry 4.0

    Get PDF
    “© © 2020 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.”The fourth industrial revolution promotes Industrial Cyber Physical Systems (ICPS) as the key to achieve smart, efficient, flexible and self-organizing production plants. In a shop floor there are heterogeneous physical and logical assets that form the ICPS. But without proper communication and composition techniques the integration of these assets in ICPS is compromised. Component Based Software Engineering (CBSE) is a discipline of growing relevance for ICPS because integration and composition issues have been extensively researched in the software domain. Under the Reference Architecture for Industry 4.0 (RAMI 4.0), the Industry 4.0 Component Model inherits aspects of CBSE to specify how several industrial plant assets can form an ICPS. The technological aspects for physical assets digitalization and integration have been explored, but the I4.0 Component model lacks proposals and use cases for dealing with industrial software components. In this work we discuss the development of the Smart Component Model as a proposal for integration of software components in ICPS. Furthermore, we focus on how prediction and monitoring applications could be converted in I4.0 Components and integrated in ICPS. To sustain our proposals, we describe a real industrial case study where these developments are being applied.info:eu-repo/semantics/publishedVersio

    Software Reuse in Agile Development Organizations - A Conceptual Management Tool

    Get PDF
    The reuse of knowledge is considered a major factor for increasing productivity and quality. In the software industry knowledge is embodied in software assets such as code components, functional designs and test cases. This kind of knowledge reuse is also referred to as software reuse. Although the benefits can be substantial, software reuse has never reached its full potential. Organizations are not aware of the different levels of reuse or do not know how to address reuse issues. This paper proposes a conceptual management tool for supporting software reuse. Furthermore the paper presents the findings of the application of the management tool in an agile development organization
    corecore