Lecture Requirement engineering Chapter 1 Introdution of software requirement. This chapter presents the following content Software life cycle process, what is requirement? Requirement engineering, types of requirements.
Software Life Cycle Process What is Requirement? Requirement Engineering Types of requirements [1] Ralph R Young - The Requirements Engineering Handbook- 2004 Artech House, Inc [2] Karl E Wiegers, Software requirement, Second Edition- Microsof t Press © 2003(ebook) [3] Brian Berenbach, Daniel J Paulish, Juergen Kazmeier, Arnold Rudorfer - Software & Systems Requirements Engineering: In Practice- Mc GrawHill, 2009 [4] Ian Alexander, Ljerka Beus-Dukic – Discovering Requirements - John Wiley and Sons, Ltd., Publication Systems development life cycle (SDLC) The series of steps used to mark the phases of development for an information system The SDLC has a set of five fundamental phases: Planning Analysis Design Implementation Test A phase = a series of steps, which rely upon techniquesthat produce deliverables 28/4/2014 Structured design Waterfall Parallel Development RAD Phased Developmen Prototyping RUP Agile Development extreme programming (XP), Scrum Dynamic Systems Development Method (DSDM) 28/4/2014 28/4/2014 28/4/2014 28/4/2014 28/4/2014 Software requirements include four distinct levels: Business requirements User requirements Functional requirements Non-Functional requirements Business requirements User requirements Functional requirements Non-functional requirements Represent high-level objectives of the organization or customer who requests the system Come from the funding sponsor for a project, the acquiring customer, the manager Describe why the organization is implementing the system—the objectives the organization hopes to achieve record the business requirements in a vision and scope document, sometimes called a project charter or a market requirements document Describe user goals or tasks that the users must be able to perform with the system Valuable ways to represent user requirements include use cases, scenario descriptions, and event-response tables An example of a use case: "Make a Reservation" using an airline, a rental car, or a hotel Web site Specify the software functionality that the developers must build into the product to enable users to accomplish their tasks Describe what the system should What inputs the system should accept What outputs the system should produce What data the system should store other systems might use What computations the system should perform The timing and synchronization of the above Example: The user shall be able to search either all of the initial set of databases or select a subset from it Every order shall be allocated a unique identifier (ORDER_ID) which the user shall be able to copy to the account’s permanent storage area 35 A requirement that is not functional Include many different kinds of requirements: Performance requirements Design constraints (also called process requirements) Commercial constaints Performance requirements characterize system properties such as expected performance, capacity, reliability, robustness, usability, etc reflecting: usability, efficiency, reliability, maintainability and reusability Design constraints (also called process requirements) providing constraints on how the system should be designed and built – related to development process, documentation, programming language, maintainability, etc Categories constraining the environment and technology of the system Platform (minimal requirements, OS, devices…) Technology to be used (language, DB, …) Commercial constaints: Categories constraining the project plan and development methods Development process (methodology) to be used Cost and delivery date Often put in contract or project plan instead Example: Any interaction between the user and the system should not exceed seconds Only direct managers can see personnel records of staff Complete Correct Feasible Necessary Prioritized Unambiguous Verifiable Requirement Specification is a description of how a system should behave or a description of system properties or attributes It can alternatively be a statement of “what” an application is expected to ... Software Life Cycle Process What is Requirement? Requirement Engineering Types of requirements [1] Ralph R Young - The Requirements Engineering Handbook- 2004 Artech House,... Wiegers, Software requirement, Second Edition- Microsof t Press © 2003(ebook) [3] Brian Berenbach, Daniel J Paulish, Juergen Kazmeier, Arnold Rudorfer - Software & Systems Requirements Engineering: ... accepted Software requirements include four distinct levels: Business requirements User requirements Functional requirements Non-Functional requirements Business requirements User requirements