The document discusses the importance of requirements engineering in software development. It notes that deciding what to build is the hardest part of building a software system, and if done wrong, it can cripple the system. Requirements engineering is concerned with acquiring, analyzing, specifying, validating, and managing software requirements. Proper requirements engineering involves systematically handling requirements to express the needs and constraints of the software product.
The document discusses the importance of requirements engineering in software development. It notes that deciding what to build is the hardest part of building a software system, and if done wrong, it can cripple the system. Requirements engineering is concerned with acquiring, analyzing, specifying, validating, and managing software requirements. Proper requirements engineering involves systematically handling requirements to express the needs and constraints of the software product.
The document discusses the importance of requirements engineering in software development. It notes that deciding what to build is the hardest part of building a software system, and if done wrong, it can cripple the system. Requirements engineering is concerned with acquiring, analyzing, specifying, validating, and managing software requirements. Proper requirements engineering involves systematically handling requirements to express the needs and constraints of the software product.
“The hardest single part of building a software system
is deciding what to build. No part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.” Fred Brooks
2 What Are the Real Problems? the customer has only a vague idea of what is required
the developer is willing to proceed with the
"vague idea" on the assumption that "we'll fill in the details as we go"
the customer keeps changing requirements
the developer is "dragged" by these changes,
making errors in specifications and development
and so it goes ...
Dr. Arshad A Shahid FAST-NU Islamabad Spring 2009 3
Software Requirements knowledge area is concerned with the acquisition, analysis, specification, validation and management of software requirements. Its importance has led to the widespread use of the term ‘requirement engineering’ to denote the systematic handling of requirement. Express the needs and constraints that are placed upon a software product that contribute to the satisfaction of some real world application [Kot00] Except where the problem is motivated by technology, it is an artifact of the problem domain and is generally technology-neutral. Dr. Arshad A Shahid FAST-NU Islamabad Spring 2009 4