Reuse in Agile Development Process

Reuse in Agile Development Process

Chung-Yeung Pang (Seveco AG, Switzerland)
Copyright: © 2020 |Pages: 24
DOI: 10.4018/978-1-7998-2531-9.ch007


Reusability is a clear principle in software development. However, systematic reuse of software elements is not common in most organizations. Application programmers rarely design and create software elements for possible future reuse. In many agile software development processes, the project teams believe that the development of reusable software elements can slow down the project. This can be a misconception. This chapter examines various ways to reuse software. Three approaches to developing reusable software artifacts from 15 years of experience in the agile development process are presented. The first approach is to create generic programs or configurable frameworks that support similar solutions for a variety of use cases and environments. The reuse of patterns is the second approach presented. Another effective way is to use a model-driven approach with model patterns. These approaches help to speed deployment software. The final product is flexible and can easily be adapted to changes. This is one of the main goals of an agile approach.
Chapter Preview


In the background, the first subsection deals with the history of software development and the agile approach. Following is a subsection on reuse based software engineering.

Key Terms in this Chapter

NoSQL: A non-SQL database that provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.

MDA (Model-Driven Architecture): An approach to structuring software specifications that are expressed as models for software design, development, and implementation.

Agile Software Development Process: An evolutionary and iterative approach to software development with focuses on adaptation to changes.

Service-Oriented Architecture (SOA): A technical software architecture that allows client applications to request services from service provider type applications in a host system.

Document-Oriented Database: A database designed for storing, retrieving and managing document-oriented information, also known as semi-structured data.

COBOL: The programming language designed for commercial business data processing used for applications that often form the backbone of the IT structure in many corporations since 1960.

UML (Unified Modeling Language): A general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.

Design Pattern: A reusable solution to a common problem in a particular software design context.

JSON (JavaScript Object Notation): An open-standard file format that uses human-readable text to transmit data objects consisting of attribute–value pairs and array data type.

Software Reuse: The process of creating software systems from predefined software components.

Spring Framework: An application framework and inversion of control container for the Java platform.

Generic Programming: An implementation of an algorithm with elements that have more than one interpretation, depending on parameters representing types.

XML (Extensible Markup Language): A markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.

Software component: A software unit of functionality that manages a single abstraction.

Plain Old Java Object (POJO): An ordinary Java object, not bound by any special restriction and not requiring any class path.

Model-Driven Approach to Software Development: A model centric rather than a code centric approach to software development with code generated from models.

CRUD (Create, Read, Update, and Delete): Basic functions of a computer database.

Software Engineering: The application of engineering to the development of software in a systematic method.

Complete Chapter List

Search this Book: