Chapter 6. Software Requirements


It seems obvious that we need to know what software is supposed to do before we build it. Nevertheless, many projects are delayed (or fail completely) because development begins before anyone on the project team really understands how the software should behave. The solution to this problem is to take the time to gather and verify the software requirements documentation that completely describes the behavior that is required of the softwarebefore the software is designed, built, and tested.

When starting a new project, programmers are often tempted to just dive in, beginning to build the software as soon as they have the general gist of what it is supposed to do. It's not hard to see why people do this: many programmers develop advanced programming skills without ever having to figure out and write down the requirements for even a simple software project. For example, many good programmers hone their craft by building software that they intend to use themselves. In these projects, the programmer does not need to take time to understand the behavior of the softwareshe intuitively knows what the software is supposed to do from the beginning of the project.

However, most software is built to meet the needs of someone other than the programmer. If those needs are going to be satisfied, the behavior of the software must be planned before the software is built. Software requirements engineering is the art and science of developing an accurate and complete definition of the behavior of software that can serve as the basis for software development. Like project management, programming, and testing, software requirements engineering encompasses a set of skills that require training and practice.

Software requirements engineering tasks are usually performed by skilled requirements analysts (who sometimes have the title "Business Systems Analyst"). If a project manager does not have a requirements analyst on his team, he may be able to rely on existing team members to fill this role. There is a good deal of overlap between the skills required for design, programming, and testing, and those required for software requirements engineering. A team member willing to spend time learning new skills (and a team willing to work with him and help him through this task) will often be able to build software requirements that are sufficient for building and testing. This chapter covers some of the most important practices that a requirements analyst uses.



Applied Software Project Management
Applied Software Project Management
ISBN: 0596009488
EAN: 2147483647
Year: 2003
Pages: 122

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net