  In recent years, blockchain has been growing rapidly from a niche technology
to a promising solution for many sectors, due to its unique properties that
empower the design of innovative applications. Nevertheless, the development of
blockchain applications is still a challenge. Due to the technological novelty,
only a few developers are familiar with blockchain technologies and smart
contracts. Others might face a steep learning curve or difficulties to reuse
existing code to build blockchain applications. This study proposes a novel
approach to tackle these issues, through software product line engineering. To
support the approach, a web platform to configure and generate a blockchain
application for on-chain traceability is introduced. First, a feature model has
been designed to model core features of the chosen domain, based on the
existing literature. Then, a configurator has been implemented to support the
feature selection phase. Finally, a generator is able to ingest such
configurations to generate on-the-shelf blockchain products. The
generalizability of the contribution is validated by reproducing on-chain
traceability applications proposed in the literature by using the platform.
This work provides the first evidence that the implementation of blockchain
applications using software product lines enhances the quality of produced
applications and reduces the time to market.
