12 research outputs found

    Reuse in Practice: Learning Objects and Software Development

    Get PDF

    Modeling Software Product Lines Using Feature Diagrams

    Get PDF
    The leading strategies for systematic software reuse focus on reuse of domain knowledge. One such strategy is software product line engineering. This strategy selects a set of reusable software components that form the core around which software products in a domain are built. Feature modeling is a process that enables engineers to identify these core assets, in particular the com(e.g., shared) and variable features of products. The focus of this thesis is to give an overview of the feature modeling process by introducing feature diagrams. Feature diagrams capture and represent comand variable properties (features) of the software products in a domain, focusing on properties that may vary, which are further used to produce different software products. We present practical examples that show how feature models are used to represent a set of valid composition of features (configurations), in which each configuration can be considered as a specification of a software system instantiated from a software product line

    Un environnement de spécification et de découverte pour la réutilisation des composants logiciels dans le développement des logiciels distribués

    Get PDF
    Notre travail vise à élaborer une solution efficace pour la découverte et la réutilisation des composants logiciels dans les environnements de développement existants et couramment utilisés. Nous proposons une ontologie pour décrire et découvrir des composants logiciels élémentaires. La description couvre à la fois les propriétés fonctionnelles et les propriétés non fonctionnelles des composants logiciels exprimées comme des paramètres de QoS. Notre processus de recherche est basé sur la fonction qui calcule la distance sémantique entre la signature d'un composant et la signature d'une requête donnée, réalisant ainsi une comparaison judicieuse. Nous employons également la notion de " subsumption " pour comparer l'entrée-sortie de la requête et des composants. Après sélection des composants adéquats, les propriétés non fonctionnelles sont employées comme un facteur distinctif pour raffiner le résultat de publication des composants résultats. Nous proposons une approche de découverte des composants composite si aucun composant élémentaire n'est trouvé, cette approche basée sur l'ontologie commune. Pour intégrer le composant résultat dans le projet en cours de développement, nous avons développé l'ontologie d'intégration et les deux services " input/output convertor " et " output Matching ".Our work aims to develop an effective solution for the discovery and the reuse of software components in existing and commonly used development environments. We propose an ontology for describing and discovering atomic software components. The description covers both the functional and non functional properties which are expressed as QoS parameters. Our search process is based on the function that calculates the semantic distance between the component interface signature and the signature of a given query, thus achieving an appropriate comparison. We also use the notion of "subsumption" to compare the input/output of the query and the components input/output. After selecting the appropriate components, the non-functional properties are used to refine the search result. We propose an approach for discovering composite components if any atomic component is found, this approach based on the shared ontology. To integrate the component results in the project under development, we developed the ontology integration and two services " input/output convertor " and " output Matching "

    Proposition d'une approche à base de cas pour la réutilisation des unités de programmes

    Get PDF
    L'amélioration constante de la qualité des logiciels et des processus de développement logiciel est depuis plusieurs décennies, au coeur des préoccupations et de nombreux travaux de recherche dans le domaine de l'ingénierie des systèmes d'information. Parmi les multiples solutions proposées, la réutilisation apparaît pour bien des chercheurs comme l'une des pistes les plus prometteuses pour la réduction du coût de production et l'amélioration de la qualité de systèmes [MILl 1999]. Plusieurs formes de réutilisation ont été introduites: la réutilisation des spécifications, la réutilisation des composants, la réutilisation des codes, la réutilisation des expériences, etc. [R.P. Diaz, 87], [Kruger 92], [NKambou et al. 2003, 2004]. Le but du projet CIAO-SI est de construire et de maintenir une mémoire d'expérience pour l'organisation pouvant supporter tout le cycle de développement. À ce jour, les travaux du projet CIAO-SI [NKambou et al. 2003, 2004] initié par le Groupe Infotel Inc et le laboratoire GDAC se sont limités aux phases d'analyse et de conceptions. Nous nous proposons dans notre travail de recherche d'étendre la réflexion à la phase d'implantation ('codage'). Ce volet vise à doter le système CIAO-SI d'un module permettant de rechercher et d'indexer les unités de programmes éprouvées, validées et stockées dans le but de leur réutilisation pour des nouveaux projets de développement logiciel. La plupart des outils recensés utilisent des approches d'indexation qui se limitent à l'aspect descriptif du problème (caractéristique du problème, le contexte d'élaboration pour filtrer les résultats, utilisation des concepts pour définir les ontologies) et non à l'intégration de la solution proposée; ce qui n'est pas approprié dans la réutilisation des codes. Nous avons proposé et implémenté une approche de réutilisation des unités de programmes basée sur le CBR et la classification à facettes. L'implantation de cette approche dans le contexte de CIAO-SI, une plateforme de réutilisation dans les phases en aval de la réalisation, nous a permis d'obtenir des résultats encourageants. Finalement nous avons effectué une évaluation expérimentale par la méthode de Salton et cela nous a permis d'évaluer la pertinence de nos résultats. ______________________________________________________________________________ MOTS-CLÉS DE L’AUTEUR : Réutilisation des codes, Développement logiciel, Indexation des codes, Ontologie, CIAO-SI, Raisonnement à base de cas

    Strategies for the intelligent selection of components

    Get PDF
    It is becoming common to build applications as component-intensive systems - a mixture of fresh code and existing components. For application developers the selection of components to incorporate is key to overall system quality - so they want the `best\u27. For each selection task, the application developer will de ne requirements for the ideal component and use them to select the most suitable one. While many software selection processes exist there is a lack of repeatable, usable, exible, automated processes with tool support. This investigation has focussed on nding and implementing strategies to enhance the selection of software components. The study was built around four research elements, targeting characterisation, process, strategies and evaluation. A Post-positivist methodology was used with the Spiral Development Model structuring the investigation. Data for the study is generated using a range of qualitative and quantitative methods including a survey approach, a range of case studies and quasiexperiments to focus on the speci c tuning of tools and techniques. Evaluation and review are integral to the SDM: a Goal-Question-Metric (GQM)-based approach was applied to every Spiral

    An investigation into the application of systematic software reuse in a project-centric organisation

    Get PDF
    The software development continues to become more competitive and demanding, placing pressure on developers. Changes in the international political climate have resulted in shrinking military budgets, putting developers of defence software under further pressure. At present, systematic reuse is probably the most realistic way of addressing this pressure by improving software development productivity and quality. Software product line (SPL) engineering provides a comprehensive approach to systematic software reuse and is becoming widely accepted. The focus of this interpretive case study was ground station software development in a small multidisciplinary project-centric company which produces avionics systems for military aircraft. The purpose of the study was to investigate the potential implementation of systematic software reuse in the company. The study consisted of three phases, a literature study, a contextualisation and a set of field interviews, and used elements of the Carnegie-Mellon Software Engineering Institute (SEI) Product Line Practice Framework to examine the suitability of SPL engineering for the company. The findings of the study highlight the potential challenges that SPL engineering poses for the company, and emphasise how the company's project-centric structure could impede its implementation of systematic software reuse.ComputingM.Sc. (Information Systems

    A dependency-aware, context-independent code search infrastructure

    Full text link
    Over the last decade many code search engines and recommendation systems have been developed, both in academia and industry, to try to improve the component discovery step in the software reuse process. Key examples include Krugle, Koders, Portfolio, Merobase, Sourcerer, Strathcona and SENTRE. However, the recall and precision of this current generation of code search tools are limited by their inability to cope effectively with the structural dependencies between code units. This lack of “dependency awareness” manifests itself in three main ways. First, it limits the kinds of search queries that users can define and thus the precision and local recall of dependency aware searches (giving rise to large numbers of false positives and false negatives). Second, it reduces the global recall of the component harvesting process by limiting the range of dependency-containing software components that can be used to populate the search repository. Third, it significantly reduces the performance of the retrieval process for dependency-aware searches. This thesis lays the foundation for a new generation of dependency-aware code search engines that addresses these problems by designing and prototyping a new kind of software search platform. Inspired by the Merobase code search engine, this platform contains three main innovations - an enhanced, dependency aware query language which allows traditional Merobase interface-based searches to be extended with dependency requirements, a new “context independent” crawling infrastructure which can recognize dependencies between code units even when their context (e.g. project) is unknown, and a new graph-based database integrated with a full-text search engine and optimized to store code modules and their dependencies efficiently. After describing the background to, and state-of-the-art in, the field of code search engines and information retrieval the thesis motivates the aforementioned innovations and explains how they are realized in the DAISI (Dependency-Aware, context-Independent code Search Infrastructure) prototype using Lucene and Neo4J.DAISI is then used to demonstrate the advantages of the developed technology in a range of examples

    A reutilização de requisitos no desenvolvimento e adaptação de produtos de software

    Get PDF
    Tese de doutoramento. Engenharia Electrotécnica e de Computadores. 2006. Faculdade de Engenharia. Universidade do Port
    corecore