z-logo
Premium
Special issue on software reuse
Author(s) -
Kim DaeKyoo,
Song Eunjee,
Ryoo Jungwoo,
Reddy Y. Raghu
Publication year - 2017
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.2504
Subject(s) - computer science , software engineering , reuse , software development , component based software engineering , software quality , software construction , domain analysis , traceability , domain engineering , systems engineering , software , engineering , operating system , waste management
Reuse is a common practice in software development, and it is critical for both cost savings and quality assurance. When properly done, reuse of artifacts (e.g., design patterns and source code) often improves productivity, in turn leading to cost savings. More importantly software reuse improves the quality of software, because of the reuse of quality code components, and makes it possible to leverage the collective wisdom of numerous seasoned software engineers who faced similar challenges and found optimal solutions widely accepted by the software developer community. Types of reusable software artifacts vary ranging from those found in the requirements phase to the design phase, and to the implementation and testing phases. They include domain requirements, architectural and design patterns, Commercial Off-The-Shelf, code, reusable tests, and so on. The compatibility of different types of reusable artifacts needs to be studied and analyzed as a basis of reuse-based development, which also establishes traceability throughout the development process. Systematic approaches that facilitate not only reuse of the artifacts of a single type but also the combinatorial use of multiple types of reusable artifacts are necessary. Non-functional aspects such as security, reusability, and maintainability in the context of software reuse are also of increasing research interest. Reuse practices have rapidly expanded to emerging areas such as mobile computing, cloud computing, and service-oriented development, which has gained significant attention of the research community. This special issue solicited papers related to topics including process reuse, requirements reuse, architecture and design reuse, component reuse, code reuse, test reuse, domain modeling, aspectoriented development, metrics for software reusability, industrial experience with software reuse, reuse-driven software process, pattern-based software development, product-line engineering, reuse of non-functional aspects, tools supporting software reuse, barriers to reuse, and business perspectives of reuse. The call for the special issue received 17 submissions of which seven high-quality papers were accepted after a rigorous three-phase peer review process. The first paper titled Synergies and Tradeoffs in Software Reuse – a Systematic Mapping Study by Denise Bombonatti, Miguel Goulão, and Ana Moreira reports a study on systematic mapping of how reusability relates to other non-functional requirements and how different contextual factors influence the success of a reuse initiative. The authors conclude that the relationships are discussed rather informally, and people, organizational, and domain factors are very relevant as well as the technological constraints that apply to a particular reuse context. They highlight the need for further research to better understand how exactly the different non-functional requirements and context factors affect reusability. The second paper titled Variability Management of Plugin-Based Systems Using Feature Models by André Santos presents an automated approach for mapping the artifacts of plugin-based component frameworks to feature models. Their approach is designed to capture the variability and configurability of the architecture of a plugin-based system in feature models. They implemented the proposed approach in the Eclipse Equinox component framework to visualize the variability of a plugin-based system and generate system variants. They carried out an experiment where they developed a small plugin-based product line on top of Equinox in the context of an advanced software development course. The third paper titled Perils of Opportunistically Reusing Software Module by Naveen Kulkarni and Vasudeva Varma discusses mismatches between the software under development and reused external modules in opportunistic reuse practices and the lack of methods to pro-actively identify and resolve mismatches. To address the concerns, they argue that there should be some support for

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here