Academic journal article Informatica Economica

An Ecological View on Software Reuse

Academic journal article Informatica Economica

An Ecological View on Software Reuse

Article excerpt

1 Introduction

Reuse is a component of the 3Rs (Reduce, Reuse and Recycle) promoted by environmental organizations around the world, such as the United States' Environmental Protection Agency (US EPA 2014) and the United Kingdom's Waste and Resources Action Programme (WRAP); it is also part of China's Circular Economy [1]. Human consumption has increased significantly both in terms of products as well as services. Most of products and services are designed, manufactured and delivered by using hardware and software products or they are hardware and software products. The explosion of these technologies brings new challenges for humanity [2] [3]. They influence climate change, biodiversity loss, and mineral scarcity, but their reuse could reduce waste and new production. In the case of software, in order to efficiently exploit the opportunities its reuse in multiple projects, it is very important to explicitly define this concept and its place in life cycle phases [4]. Software reuse is the use of previously results from all phases of their life cycle: product line requirements, functions, architecture, design patterns and codes [5] [6] [7] [8]. These practices should be anticipated from the conception and initiation phases of the project. Morisio et al. defined software reuse as "the systematic practice of developing software from a stock of building blocks, so that similarities in requirements and/or architecture between applications can be exploited to achieve substantial benefits in productivity, quality and business performance". Using existing components for building new applications reduces the effort of development [9]. This includes not only the development of new software, but also the extraction of reusable parts of existing applications [10]. The existence of the same requirements in more software project allows these practices. The availability of large numbers of open source projects is also a valuable source of reusable assets [11] and offers new possibilities for software reuse. The expected results are: increased productivity, reduced costs, better and easier maintenance, decreased development lead times and improved quality of software products. Software reuse is influenced by a wide variety of technical and non-technical factors. Projects evolve in order to meet new requirements or for maintenance reasons. In these circumstances, some changes will influence other projects that reuse the same components, especially in the case of library upgrades. According to Constantinou and Stamelos [11], software reuse is a recursive process that supposes the selection of reusable assets, upgrading libraries to the newest versions and fixing bugs. A feasibility and suitability analysis should be performed to ensure compatibility with the new application and compliance with customer requirements. Software reuse has important benefits for both companies and society. It would reduce negative environmental effects because companies would use less hardware and software resources in comparison with developing software from scratch. In order to ensure this, reusable components must satisfy quality criteria specifically for sustainable software.

The rest of this paper is organized as follows. Section 2 reviews the related work on software reuse; section 3 presents the recent approaches regarding green and sustainable software and its contribution to environmental protection; section 4 describes ecological dimension of software reuse. Finally, section 5 concludes the paper and provides future research directions.

2Related work

Various studies on reusing software are presented in the literature [7] [10] [11] [12] [13] [14]. Additionally, software quality has been receiving a lot of attention, especially since the introduction of the concept of domain engineering, a component of software engineering [12]. The other component is application engineering. According to Harsu, the domain engineering has "to provide the reusable core assets that are exploited during application engineering when assembling or customizing individual applications" [13]. …

Search by... Author
Show... All Results Primary Sources Peer-reviewed

Oops!

An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.