Visualizing code variabilities for supporting reuse decisions

Research output: Contribution to journalConference articlepeer-review

Abstract

Software reuse is the practice of using artifacts from existing systems to build new ones. It has been shown effective for improving quality and maintainability and for reducing cost and development time. Human factors have been identified as significant barriers to a wider adoption of reuse practices in industry. In this paper we consider a tool-supported approach for systematic reuse of object-oriented programs (written in Java) based on polymorphism-inspired mechanisms. The suggested tool gets as input implementations of multiple products, and produces a visual representation of the similarities and variabilities between their classes in terms of exhibits behaviors, as well as presents possible reuse options. We discuss the suitability of this approach for educational and training settings, and specifically for supporting reuse decisions of novice developers.

Original languageEnglish
Pages (from-to)25-34
Number of pages10
JournalCEUR Workshop Proceedings
Volume1954
StatePublished - 2017
Event5th Symposium on Conceptual Modeling Education and the 2nd International iStar Teaching Workshop, SCME-iStarT 2017 - Valencia, Spain
Duration: 6 Nov 20179 Nov 2017

Bibliographical note

Funding Information:
Acknowledgment. The authors thank Jonathan Liberman for his help in the implementation of the VarMeR tool. We also thank Alex Kogan and Asaf Mor for their assistance in the initial steps of the development. The first author was supported by the Israel Science Foundation under grant agreement 817/15.

Keywords

  • Decision Support
  • Education
  • Polymorphism
  • Software Product Line Engineering
  • Software reuse
  • Variability Analysis
  • Variability Mechanisms

ASJC Scopus subject areas

  • General Computer Science

Fingerprint

Dive into the research topics of 'Visualizing code variabilities for supporting reuse decisions'. Together they form a unique fingerprint.

Cite this