Lecture Introduction to software engineering - Week 4: Requirement engineering. In this chapter, you will learn to: Functional and non - functional requirements, requirements engineering processes, requirementselicitationand analysis, . and other contents. | Week 4 Requirement Engineering Nguyễn Thị Minh Tuyền Adapted from slides of Ian Sommerville https tailieudientucntt Requirements Engineering What is it Who does it Why is it important What are the steps What is the work product How do I ensure that I ve done it right 2 https tailieudientucntt Topics covered 1. Functional and non-functional requirements 2. Requirements engineering processes 3. Requirements elicitation and analysis 4. Requirements specification 5. Requirements validation 6. Requirements management 3 https tailieudientucntt Requirements engineering The process of establishing the services that a customer requires from a system and the constraints under which it operates and is developed. The system requirements are the descriptions of the system services and constraints that are generated during the requirements engineering process. 4 https tailieudientucntt What is a requirement It may range from p a high-level abstract statement of a service or of a system constraint to p a detailed mathematical functional specification. Requirements may serve a dual function p May be the basis for a bid for a contract - therefore must be open to interpretation p May be the basis for the contract itself - therefore must be defined in detail p Both these statements may be called requirements. 5 https tailieudientucntt Requirements abstraction Davis If a company wishes to let a contract for a large software development project it must define its needs in a sufficiently abstract way that a solution is not pre-defined. The requirements must be written so that several contractors can bid for the contract offering perhaps different ways of meeting the client organization s needs. Once a contract has been awarded the contractor must write a system definition for the client in more detail so that the client understands and can validate