Conference PaperPDF Available

Managing Software Reuse - An Experience Report.

Authors:
A preview of the PDF is not available
... La conception formalise les étapes préliminaires du développement afin de rendre ce développement plus fidèle aux besoins du client [Hoffer et al., 2001]Devanbu et al., 1990] [Fichman and Kemerer, 1997]. Il a été prouvé que réutiliser des composants pouvait apporter un gain en temps et en coût aux industries [Isoda, 1995] [Rosenbaum and du Castel, 1995]. Pour cela, il s'est avéré nécessaire de proposer des bases de composants [Henninger, 1996] [Pan et al., 2004][Qureshi and Hussain, 2008] dynamiquement. ...
Article
In the software life cycle we have mainly (1) the pre-development (requirements, specification and design), (2) the development (implementation, prototyping, testing) and (3) the post-development (deployment) activities. Software deployment encompasses all post-development activities that make an application operational. These activities, identified as deployment life cycle, include: i) software packaging, ii) loading and installation of software on client sites, iii) instance creation, iv) configuration and v) updating. The development of system-based components made it possible to better highlight this part of the global software lifecycle, as illustrated by numerous industrial and academic studies. However these are generally developed ad hoc, and consequently platform-dependent. Deployment systems, such as supported by middleware environments (CCM, .Net and EJB), specifically develop mechanisms and tools related to pre-specified deployment strategies. Our work, related to the topic of distributed component-based software applications, aims at specifying a generic deployment framework independent of the target environments. Driven by the meta-model approach, we first describe the abstractions used to characterize the deployed software. We then specify the deployment infrastructure and processes, highlighting the activities to be carried out and the support for their execution.Keywords
... Furthermore, awareness of the known challenges will be valuable in order to maximize the benefits of CBSE in the organization. The overall challenges with reusing software components have been subject for many investigations, e.g., [74,31,85,18,35,60,23,87,54,29,80,78,24,21]. Below follows a summary of the challenges, mixing different types of challenges as technical and business challenges: ...
... For example, Staples et al. [25] showed how this process was undertook in the HP Company. Moreover, literature not directly related to software product line adoption [23,13] can inspire this research for a better approximation to the existing problem in the company. ...
Conference Paper
Full-text available
Software product line adoption is a challenging task in software development organisations. There are some reports in the literature of how software product line engineering has been adopted in several companies using different variability management techniques and patterns. However, to the best of our knowledge, there are no empirical reports on how variability management is handled in companies that do not know about software product line methods and tools. In this paper we present an experience report observing variability management practices in a software development company that was unaware of software product line approaches. We briefly report how variability management is performed in different areas ranging from business architecture to software assets management. From the observation we report some open research opportunities for the future and foster further similar and more structured empirical studies on unaware software product line companies.
... These goals bear an interesting resemblance to the "software reuse" challenges that have been faced in other areas of computing, typically at the scale of individual organizations. For example, Rosenbaum and du Castel report that the most important factors for success in their environment were [12]: ...
Article
Full-text available
The High Productivity Computing Systems (HPCS) program seeks a tenfold productivity increase in High Performance Computing (HPC). A change of this magnitude in software development and maintenance demands a transformation similar to other great leaps in industrial productivity. By analogy, this requires a dramatic change to the "infrastructure" and to the way software developers use it. Software tools such as compilers, libraries, debuggers and analyzers constitute an essential part of the HPC infrastructure, without which codes cannot be efficiently developed nor production runs accomplished.The underappreciated "HPC software infrastructure" is not up to the task and is becoming less so in the face of increasing scale, complexity, and mission importance. Infrastructure dependencies are seen as significant risks to success, and significant productivity gains remain unrealized. Support models for this infrastructure are not aligned with its strategic value.To achieve the potential of the software infrastructure, both for stability and for productivity breakthroughs, a dedicated, long-term, client-focused support structure must be established. Goals for tools in the infrastructure would include ubiquity, portability, and longevity commensurate with the projects they support, typically decades. The strategic value of such an infrastructure necessarily transcends individual projects, laboratories, and organizations.
... This kind of behavior is also observed as typical among the four complies investigated in [9]. From the experience of promoting reuse, Rosenbanm and DuCastel [34] conclude that making components known to developers is a key factor for successful reuse. Developers will reuse those components repeatedly once they have reused them once [24]. ...
Conference Paper
Full-text available
Although software reuse can improve both the quality and productivity of software development, it will not do so until software developers stop believing that it is not worth their effort to find a component matching their current problem. In addition, if the developers do not anticipate the existence of a given component, they will not even make an effort to find it in the first place. Even the most sophisticated and powerful reuse repositories will not be effective if developers don't anticipate a certain component exists, or don't deem it worthwhile to seek for it. We argue that this crucial barrier to reuse is overcome by integrating active information delivery , which presents information without explicit queries from the user, and reuse repository systems. A prototype system, CodeBroker , illustrates this integration and raises several issues related to software reuse.
Article
Full-text available
We define a metric space to measure the contributions of individual programmers to a software development project. It allows us to measure the distance between the contributions of two different programmers as well as the absolute contribution of each individual programmer. Our metric is based on an action function that provides a picture of how one programmer's approach differs from another at each instance of time during the project. We apply our metric to data we collected from students taking a course in parallel programming. We display the pictures for two students who showed approximately equal contributions but who followed very different paths through the course.
Conference Paper
Software reuse is a promising solution to the software crisis. Reuse repositories are the basic infrastructure for software reuse. During the past decade, various academic, commercial, governmental, and industrial organizations have developed many Internet-enabled reuse repositories to provide access to software components and related resources. It has necessitated semantic interoperation to allow distributed maintenance and management of these repositories while enabling users to efficiently and conveniently access resources from multiple reuse repositories via a single representation view. In this paper, we have proposed an approach to enhancing the semantic interoperability of reuse repositories, called the improved relevancy matching and ranking (IRMR) method, based on analyzing the correlation of terms in representation methods of the repositories. A prototype system, the Virtual Repository supporting Semantic Interoperation (VRSI), is presented to illustrate the application of this approach to support the semantic interoperation of reuse repositories. Experimental results on real world reuse repositories demonstrated significant improvement in terms of searching effectiveness.
Conference Paper
Software component-based reuse is difficult for software developers to adopt because first they must know what components exist in a reuse repository and then they must know how to retrieve them easily. This paper describes the concept and implementation of active reuse repository systems that address the above two issues. Active reuse repository systems employ active information delivery mechanisms to deliver potentially reusable components that are relevant to the current development task. They can help software developers reuse components they did not even know existed. They can also greatly reduce the cost of component location because software developers need neither to specify reuse queries explicitly, nor to switch working contexts back and forth between development environments and reuse repository systems.
Article
Portability is becoming universally recognized as a desirable attribute for most software products, and porting is a recognized technique for extending the value and life of a software unit. However, most porting is still done by ad hoc techniques. Portability is not addressed explicitly either by software engineering curricula or by common software development methodologies. Moreover, there are few reports in the literature of academic research focused on portability issues. Many studies deal with reuse issues, and porting is a special case of reuse. However, these studies have not addressed the specialized problems of reuse across substantially different operating environments. A portability research group has been established at West Virginia University to help meet this need. Our overall goal is to develop improved methodologies for addressing portability in a cost-effective way for a wide range of software. A major obstacle to meeting this goal is the lack of established mechanisms to specify and measure portability. In this presentation we propose some initial approaches to the development of such mechanisms. We first describe briefly the issues that arise in developing portable software, and in reimplementing or porting existing software. This analysis is used to identify specification types and metrics that may aid in making effective portability-related decisions when performing these activities. We argue the need for specifications to describe interfaces and environmental attributes and to characterize the "degree of portability" of a software unit. Some approaches to formalizing these concepts are discussed. Cost metrics for software development and porting activities are also discussed, and we consider their use in comparing development and implementation alternatives. A formal definition for degree of portability is proposed, and some relevant software quality measures are briefly considered. Some simple examples are also presented to illustrate these concepts.
Conference Paper
The author discusses a reuse capability model that is being developed by the Software Productivity Consortium to serve as a basis for understanding and improving an organization's reuse capability. Companies apply the reuse capability model in conjunction with the consortium's reuse adoption process and reuse economics model to aid the organization in making an intelligent business decision on how to practice reuse. The reuse capability model includes an assessment model for identifying an organization's strengths and improvement opportunities and an implementation model to serve as a framework for establishing goals and selecting strategies for evolving an organization's reuse practice. An initial model is described along with the rationale and steps taken in developing it
The Management of Reuse; Software Reuse and Reverse Engineering in Practice
  • P P A V Walton
  • Hall