Software Development Fundamentals: Requirements Management, Study notes of Software Project Management

Project Management is the art of maximizing the probability that a project delivers its goals on Time, to Budget and at the required Quality. This lecture handout was provided by Sir Debashis Koppale. It includes: Software, Project, Managment, Development, Technical, Consultant, Active, System, Role, Quality

Typology: Study notes

2011/2012

Uploaded on 08/07/2012

angana
angana 🇮🇳

4.4

(52)

158 documents

1 / 4

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Software Project Management (CS615)
92
LECTURE # 13
2. Software Development Fundamentals
Technical Fundamentals
2.11 Requirements Management
Preview
Software requirements engineering is a process of discovery, refinement,
modeling and specification. The system requirements and role allocated to
software-initially established by the system engineer-are refined in detail.
Models of the required data information and control flow and operational
behavior are created. Alternative solutions are analyzed and a complete
analysis model is created.
Requirements engineering is the systematic use of proven principles,
techniques, languages, and tools for the cost effective analysis,
documentation, and on-going evolution of user needs and the specification
of the external behavior of a system to satisfy those user needs. Notice that
like all engineering disciplines, requirements engineering is not conducted
in a sporadic random or otherwise haphazard fashion, but instead is the
systematic use of proven approaches.
Both the software engineer and customer take an active role in software
requirements engineering-a set of activities that is often referred to as
analysis. The customer attempts to reformulate a sometimes nebulous
system-level description of data, function and behavior into concrete
detail. The developer acts as interrogator, consultant, problem solver and
negotiator.
The overall role of Software in a larger system is identified during system
engineering. However, it's necessary to take a harder look at software's
role-to understand the specific requirements that must be achieved to build
high-quality software. That's the job of software requirements analysis. To
perform the job properly, you should follow a set of underlying concepts
and principles. Generally, a software engineer performs requirements
analysis However, for complex business applications a 'system analyst’
trained in the business aspects of the application domain may perform the
task. If you don't analyze, it's highly likely that you'll build a very elegant
software solution that solves the wrong problem. The result is wasted time
and money, personal frustration and unhappy customers.
docsity.com
pf3
pf4

Partial preview of the text

Download Software Development Fundamentals: Requirements Management and more Study notes Software Project Management in PDF only on Docsity!

LECTURE # 13

2. Software Development Fundamentals

Technical Fundamentals

2.11 Requirements Management

 Preview

Software requirements engineering is a process of discovery, refinement, modeling and specification. The system requirements and role allocated to software-initially established by the system engineer-are refined in detail. Models of the required data information and control flow and operational behavior are created. Alternative solutions are analyzed and a complete analysis model is created.

Requirements engineering is the systematic use of proven principles, techniques, languages, and tools for the cost effective analysis, documentation, and on-going evolution of user needs and the specification of the external behavior of a system to satisfy those user needs. Notice that like all engineering disciplines, requirements engineering is not conducted in a sporadic random or otherwise haphazard fashion, but instead is the systematic use of proven approaches.

Both the software engineer and customer take an active role in software requirements engineering-a set of activities that is often referred to as analysis. The customer attempts to reformulate a sometimes nebulous system-level description of data, function and behavior into concrete detail. The developer acts as interrogator, consultant, problem solver and negotiator.

The overall role of Software in a larger system is identified during system engineering. However, it's necessary to take a harder look at software's role-to understand the specific requirements that must be achieved to build high-quality software. That's the job of software requirements analysis. To perform the job properly, you should follow a set of underlying concepts and principles. Generally, a software engineer performs requirements analysis However, for complex business applications a 'system analyst’ trained in the business aspects of the application domain may perform the task. If you don't analyze, it's highly likely that you'll build a very elegant software solution that solves the wrong problem. The result is wasted time and money, personal frustration and unhappy customers.

docsity.com

Data, functional, and behavioral requirements are identified by eliciting information from the customer. Requirements are refined and analyzed to assess their clarity, completeness, and consistency.

 Requirements analysis

Requirements analysis is a software engineering task that bridges the gap between system level requirements engineering and software design (Figure 1). Requirements engineering activities result in the specification of software's operational characteristics (function, data; and behavior), indicate software's interface with other system elements, and establish constraints that software must meet. Requirements analysis allows the software engineer (sometimes called analyst in this. role) to refine the software allocation and build models of the data, functional, and behavioral domains that will be treated by software. Requirements analysis provides the software designer with a representation of information, function, and behavior that can be translated to data, architectural, interface, and component-level designs. Finally, the requirements specification provides the developer and the customer with the means to assess quality once software is built.

Figure 1: a bridge between system engineering and software design

Software requirements analysis may be divided into five areas of effort:

(1) Problem recognition, (2) Evaluation and synthesis, (3) Modeling (4) Specification, and (5) Review

System Engineerin g

Software Design

Software Requirement s Analysis

docsity.com

customer feel confident that software can be adequately specified for subsequent development steps.

Throughout evaluation and solution synthesis, the analyst's primary focus is on "what, not "how." What data does the system produce and consume what functions the system must perform. What behaviors do the system exhibit, what interfaces, are defined and what constraints apply?

During the evaluation and solution synthesis activity, the analyst creates models of the system in an effort to better understand data and control flow, functional processing, operational behavior, and information content. The model serves as a foundation for software design and as the basis for the creation of specifications for the Software. The customer may be unsure of precisely what is required. The developer may be unsure that a specific approach will properly accomplish function and performance. For these, and many other reasons, an alternative approach to requirements analysis, called Prototyping, may be conducted.

docsity.com