Product Backlog and Requirements Engineering for Enterprise Application Development

Product Backlog and Requirements Engineering for Enterprise Application Development

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

Abstract

The combination of software engineering and agile development process can bring great benefits to the development and maintenance of enterprise applications. This chapter introduces the engineering of requirements in an agile Scrum development process. In Scrum, requirements are usually defined as user stories in a product backlog. Since many enterprise applications do not have intensive user actions, stories cannot be linked to users. Topics such as user and enabler stories, non-functional requirements, considerations of architecture and business components, business workflow, and breakdown of user stories are addressed. The requirements engineering of PBIs is illustrated by practical examples. Using UML use cases and collaboration models is recommended to transform the stories in the product backlog into formal requirements specifications. The proposed approach can be part of the agile development framework for flexible software products that are easy to customize and maintain.
Chapter Preview
Top

Background

As background, the following subsections discuss software engineering and the traditional and agile development process lifecycle.

Key Terms in this Chapter

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.

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

UML Activity Diagram: Graphical representations of workflows of stepwise activities and actions with support for choice, iteration, and concurrency.

Product Backlog: An ordered list of everything that is known to be needed in the product.

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

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

UML Collaboration: An illustration of the relationships and interactions among software objects.

User Story: A short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system.

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

PBI (Product Backlog Item): An item in the Product Backlog such as a feature, defect, or technical work that is valuable from the product owner's perspective.

Use Case: A representation of a user's interaction with the system that shows the relationship between the user and the different use cases in which the user is involved.

INVEST: A mnemonic for agile software projects as a reminder of the characteristics of a good quality Product Backlog Item commonly written in user story format.

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

Software Development Life Cycle (SDLC): The process, methods or a set of methodologies applied to create or alter software projects.

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

Scrum: An agile process framework for managing knowledge work, with an emphasis on software development.

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

Sprint: A time-box of one month or less during which a “Done”, useable, and potentially releasable product increment is created.

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

Complete Chapter List

Search this Book:
Reset