Requirements Engineering in an Agile Environment

Post on 09-Dec-2014

154 views 4 download

Tags:

description

 

Transcript of Requirements Engineering in an Agile Environment

Requirements Engineering in an Agile Environment

Introduction

IntroductionO “Requirements engineering is defined as the

branch of Software Engineering concerned with the real‐world goals for, functions of, and constraints on software systems.”

O  “Agile software development is a group of software development methodologies iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross functional teams.”

Problem description

Problem descriptionO Traditional RE inapplicable to the

quick and changeable work under an agile environment.

O AMs seem to manage effectively requirements in small projects but not in large ones.

O The teams lack a good, lean and agile way to collect requirements.

Purposes

Purposes This project aims to Investigate the working process of

the two teams in the test tools section at SEMC.

Find out the problems the teams have in working with the current requirements.

Design some possible improvements based on the discovered problems.

Purposes Try out the improvements in one

pilot for each team. Evaluate the effects of the pilots in

order to propose a suggestion on the future work of the teams.

Delimitations

DelimitationsO The goal of this project is to find out

an effective way to conduct a Requirements Engineering process in an agile environment. The newly‐found methodology will only be tried out within some small pilots and the tools used in the teams will not be evaluated.

Feasibility Study

Feasibility StudyO The Feasibility Study gives the

overview of the target system and decides whether or not the proposed system is worthwhile.

Feasibility Study Does the system contribute to the

high level objectives and the critical requirements of the organization?

Is your organization ready for the AD?

Can the system be implemented within given budget?

How to integrate the agile activities with traditional organizational activities already in place?

System Design

Agile Development Methods

• Agile development is less document-centric and more code-oriented.

• Agile methods were developed to adapt and thrive on frequent changes.

• Agile methods are people-oriented rather than process oriented.

Agile Development Methods

O Extreme Programming (XP) is based on values of simplicity, communication, feedback, and courage.

O XP uses story cards for elicitation. O XP is based on frequent small

releases.

Agile development process VS. Waterfall process

First iteration in an agile development process

Context Models

Background of Test Tools & Support Section

Organization of SEMC

Product process

Working process of BRAT Team and QC Team

Tools for Requirements Engineering in Agile Method (AM)

O UML Modeling ToolsO Requirements Negotiation ToolsO Instant Messaging ToolsO Project Management Tools

Conclusions

ConclusionsO While advances in software

technologies and development tools have helped launch new generations of software products, it is also the case that new generations of software products drive the development of more sophisticated development Empirical data comparing the effectiveness and limitations of agile and non-agile approaches

Thank You!!!