1. CHAPTER FOUR: Requirements Engineering.
    1. Functional and non-functional requirements
      1. Functional requirements
        1. * For a system describe what the system should. * Depend on the type of software being developed *Written in natural language in elicitation.
      2. Non-functional requirements
        1. Classification
          1. Product requirements: Specify or constrain the runtime behavior of the software
          2. Usability requirements
          3. Efficiency requirements
          4. Dependability requirements
          5. Security requirementes
          6. Organizational requirements: Are broad system requirements derived from policies and procedures in the customer's and developer's organization
          7. Environmental requirements
          8. Operational requirements
          9. Developments requirements
          10. External requirements: This broad heading covers all requirements process.
          11. Regulatory requirements
          12. Ethical requirements
          13. Legislative requirements
    2. Requirements engineering processes
      1. Elicitation and analysis: Discovering requirements by interacting with stakeholders.
      2. Specification: Converting these requirements into a standard form.
      3. Validation: Checking that the requirements actually define the system that customer wants.
      4. The activities are organized as an iterative process around a spiral
        1. SPIRAL MODEL
          1. Accommodates approaches to development where the requirements are developed to different level of delail.
          2. The number of iterations around the spiral, can vary so that the spiral can be exited after some or all of the user requirements have been elicited.
          3. Agile developments can be used instead of prototyping so that the requirements and the system implementation are developed together.
    3. Requirements elicitation
      1. Requirements elicitation techniques
      2. Stories and scenarios
    4. Requirements specification
      1. Natural language specification
      2. Structured specification
      3. Use cases
      4. The software requirements document
    5. Requirements validation
    6. Requirements change
      1. Requirements management planning
      2. Requirements change management
  2. Requirements
    1. Are a descriptions of the services that a system should provide and the constraints on its operation.
  3. Requirements Engineering
    1. Are the process of finding out, analyzing, documenting, and checking the needs of customers for a system.
  4. Are requirements that are not directly concerned with the specific services delivered by the system to its users.
  5. New requirements have to be established and changes made to the system. This delays system delivery and increases COSTS.
  6. Are statements of services the system should provide. The functional requirements may also explicitly state what the system should not do.