Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

20 February 2013

Introduction to Requirement Engineering Who, What, Where, When and Why?

What, Who
A requirement is a necessary attribute in a system, a statement that identifies a capability, characteristic, or quality factor of a system in order for it to have value and utility to a customer or user. Participants: Software engineers, designers, managers, customers and end users

When
Requirements engineering is a software engineering action that begins very early in the software lifecycle, mostly during the communication activity and continues late into the development activity.

Why
Software is being used as a differentiating factor for a number of technologies. For example: iPad Versus Samsung Tablets Both look similar but their software is entirely different. Hence the software is a dominating factor

Why
Requirements of a system can change during a software lifecycle. The customer does not know what he wants. (Then what is he paying for) The way we do things is not according to the laws of an organization. Hence the requirements can never be collected from the Standard Operating Procedures (SOP).

Why is RE so important?
Can we build a software without RE? Yes we can but it is a risky game. How? Suppose you have a 3 year long development project. The software will cost 10 Million dollars. Software is domain specific and mission critical. Requirements are critical and can cause serious problems if misunderstood. Do you want to proceed without the formal knowledge of requirement engineering. Hopefully No !

Misunderstanding the problem and hence the solution is a very common problem

The hardest single part of building a software system is deciding precisely what to build. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.

Development phases and cost of correcting mistakes

Advantages of High Quality Requirements


Fewer requirements defects Reduced development rework Fewer unnecessary features Lower enhancement costs Faster development Fewer miscommunications Reduced project chaos More accurate system-testing estimates Higher customer and team member satisfaction Final result is a good and complete project

You might also like