1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 7 Requirements I.

Slides:



Advertisements
Similar presentations
Chapter 2 – Software Processes
Advertisements

Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
1 SWE 513: Software Engineering Requirements II. 2 Details in Requirements Requirements must be specific Examples -- university admissions system Requests.
SWE Introduction to Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 8 Requirements I.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 8 Requirements II.
CS 501: Software Engineering
CS 5150 Software Engineering
CS 501: Software Engineering
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 7 Requirements I.
Overview of Software Requirements
CS 5150 Software Engineering
CS 501: Software Engineering Fall 2000
CS 501: Software Engineering Fall 2000 Lecture 5 (a) Documentation (b) Requirements Analysis.
CS 501: Software Engineering
CS 5150 Software Engineering
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 7 Requirements I.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
Lecture Outline 11 The Development of Information Systems Chapter 8 page 390+
S/W Project Management
CS 4310: Software Engineering Lecture 3 Requirements and Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
1 Phases in Software Development Lecture Software Development Lifecycle Let us review the main steps –Problem Definition –Feasibility Study –Analysis.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS 360 Lecture 5.  Requirements define the function of the system from the client’s viewpoint.  They establish the system's functionality, constraints,
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Feasibility Study.
Software Requirements Presented By Dr. Shazzad Hosain.
Requirements Elicitation. Who are the stakeholders in determining system requirements, and how does their viewpoint influence the process? How are non-technical.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Engineering Management Lecture 1 The Software Process.
Software Requirements Engineering: What, Why, Who, When, and How
Systems Life Cycle A2 Module Heathcote Ch.38.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 3 Feasibility Studies.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 8 Requirements Analysis and Specification.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
CS 5150 Software Engineering Lecture 7 Requirements 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Systems Development Life Cycle
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CS SE370 Software Engineering Lecture 5 Feasibility Studies.
Week 3: Requirement Analysis & specification
Requirements Engineering. Requirements engineering processes The processes used for RE vary widely depending on the application domain, the people involved.
SWE 513: Software Engineering
CS CS 5150 Software Engineering Lecture 8 Requirements 1.
CS CS 5150 Software Engineering Lecture 8 Requirements 1.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
CS 501: Software Engineering Fall 1999 Lecture 4 (a) Documentation (b) Requirements Analysis.
Software Requirements. Objectives: l To introduce the concepts of user and system requirements l To describe functional / non-functional requirements.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 7 Requirements I.
REQUIREMENTS ANALYSIS CONCEPTS & PRINCIPLES. Requirement  IEEE defines Software Requirements as:  A condition or capability needed by user to solve.
Software Engineering Management
Classifications of Software Requirements
Exam 0 review CS 360 Lecture 8.
Presentation on Software Requirements Submitted by
CS 501: Software Engineering
CS 501: Software Engineering Fall 1999
Software Requirements analysis & specifications
Requirements Analysis
Unit 6: Application Development
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 7 Requirements I

2 CS 501 Spring 2007 Administration Assignment 1: Due Friday at 5:00 p.m. Submit by . Feasibility study (group assignment) Remember to send a copy to your client Survey (individual assignment) Sending to All mail to this address must be sent from an address in the cornell.edu domain. To block spam, all mail from outside Cornell is rejected.

3 CS 501 Spring 2007 Quiz 1 -- Part of Question 1 What are the visibility requirements of your project? How does your process provide visibility? Visibility is an aspect of the software development process -- keeping everybody informed of the progress, e.g. with schedules, milestones, presentations, reports, etc. What risks do you see for your project? How does your process manage risk? Risks can be categorized by (a) function, (b) timeliness, (c) resources.

4 CS 501 Spring 2007 Lectures on Requirements Analysis and Specification Requirements I: Requirements Analysis Requirements II: Models -- Scenarios and Use Cases Requirements III: Informal Methods of Specification Requirements IV: Formal Methods of Specification

5 CS 501 Spring 2007 Requirements Analysis and Definition The requirements analysis and definition establish the system's services, constraints and goals by consultation with users. They are then defined in a manner that is understandable by both users and development staff. This phase can be divided into: Requirements analysis Requirements definition Requirements specification Requirements define the function of the system from the client's viewpoint.

6 CS 501 Spring 2007 Why are requirements important? Causes of failed software projects (Standish Group study, 1994) Incomplete requirements13.1% Lack of user involvement12.4% Lack of resources10.6% Unrealistic expectations 9.9% Lack of executive support 9.3% Changing requirements & specifications 8.8% Lack of planning 8.1% System no longer needed 7.5% The commonest mistake is to build the wrong system.

7 CS 501 Spring 2007 Requirements in Software Development Requirements Operation and Maintenance Implementation Design Feasibility and Planning All process models include a requirements activity

8 CS 501 Spring 2007 Requirements in the modified Waterfall Model Requirements System design Testing Operation & maintenance Program design Implementation (coding) Acceptance & release Feasibility study

9 CS 501 Spring 2007 Requirements in iterative refinement Requirements Design Implementation Evaluation/acceptance

10 CS 501 Spring 2007 Requirements in Iterative Refinement Outline Description Concurrent Activities Requirements Design Implementation Initial Version Intermediate Versions Final Version

11 CS 501 Spring 2007 Goals during the requirements phase Understand the requirements in detail (analysis). Describe the requirements in a manner that is clear to the client. Ensure that the client understands the description of the requirements and their implications. Describe the requirements in a manner that is clear to the people who will design and implement the system. The Requirements Documentation is the defining document that describes the goals of the system that is being built. It may form a legal contract between client and software developers.

12 CS 501 Spring 2007 The requirements process Feasibility Study Requirements Analysis Requirements Model Requirements Specification Feasibility Report Documentation of Requirements Work with the client to understand the requirements Organize the requirements in a systematic and comprehensible manner Requirements Analysis (optional)

13 CS 501 Spring 2007 Requirements analysis High-level abstract description of requirements: Specifies external system behavior Comprehensible by customer, management and users Should reflect accurately what the client wants: Services that the system will provide Constraints under which it will operate Often described in a separate document for consultation with the client. "Our understanding of your requirements is that..."

14 CS 501 Spring 2007 Requirements analysis: interviews with clients Client interviews are the heart of the requirements analysis and definition. Clients may have only a vague concept of requirements. Allow plenty of time. Prepare before you meet with the client Keep full notes If you do not understand, delve further, again and again Repeat what you hear Small group meetings are often most effective

15 CS 501 Spring 2007 Requirements analysis 1. Identify the stakeholders: Who is affected by this system? Client Senior management Production staff Computing staff Customers etc., etc., etc., Example: Andrew project (Carnegie Mellon and IBM) Who can disrupt this project?

16 CS 501 Spring 2007 Viewpoint analysis Example: University Admissions System Applicants University administration Admissions office Financial aid office Special offices (e.g., athletics, development) Computing staff Operations Software development and maintenance Academic departments

17 CS 501 Spring 2007 Requirements analysis 2. Understand the requirements in depth: Domain understanding Examples: Philips light bulbs Understanding of the real requirements of all stakeholders

18 CS 501 Spring 2007 Requirements analysis 3. Organize the requirements: Classification into coherent clusters (e.g., legal requirements) Recognize and resolve conflicts (e.g., functionality v. cost v. timeliness) Example: Dartmouth general ledger system

19 CS 501 Spring 2007 Realism and verifiability Requirements must be realistic, i.e., it must be possible to meet them. Wrong: The system must be capable of x (if no known computer system can do x at a reasonable cost). Requirements must be verifiable, i.e., it must be possible to test whether a requirement has been met. Wrong: The system must be easy to use. Right: After one day's training an operator should be able to input 50 orders per hour.

20 CS 501 Spring 2007 New and old systems In requirements analysis it is important to distinguish: features of the current system proposed new features Clients often confuse the current system with the underlying requirement. A new system is when there is no existing system. A replacement system (or subsystem) is when a system is built to replace an existing system. A legacy system is an existing system that is not being replaced, but must interface to the new system.

21 CS 501 Spring 2007 Requirements analysis: negotiation with the client Sometimes the client will request some functionality that is very expensive or impossible. What do you do? Talk through the requirement with the client. Why is it wanted? Is there an alternative that is equivalent? Explain the reasoning behind your concern. Explain the technical, organizational, and cost implications. Be open to suggestions. Is there a gap in your understanding? Perhaps a second opinion might show other approaches. Before the requirements phase is completed the client and development team must resolve these questions.

22 CS 501 Spring 2007 Functional requirements Requirements about the functions that the system must perform that will be identified by analyzing the use made of the system Functionality Data User interfaces Understanding and specifying the functional requirements is the theme of the next three lectures.

23 CS 501 Spring 2007 Non-functional requirements Requirements that are not directly related to the functions that the system must perform Product requirements performance, reliability, portability, etc... Organizational requirements delivery, training, standards, etc... External requirements legal, interoperability, etc... Marketing and public relations Example: In the NSDL, the NSF wanted a system that could be demonstrated by the end of 2002

24 CS 501 Spring 2007 Example of non-functional requirements Example: Library of Congress Repository Use systems that the client's staff are familiar with: Hardware and software systems (IBM/Unix) Database systems (Oracle) Programming languages (C and C++) Recognize that the client is a federal library: Regulations covering government contracting Importance of developing a system that will be respected by other major libraries

25 CS 501 Spring 2007 Unspoken requirements Examples: Resistance to change Departmental friction Management strengths and weaknesses Discovering the unspoken requirements is often the most difficult part of developing the requirements.

26 CS 501 Spring 2007 Requirements documentation (continued on next slide) The form of documentation varies, but is likely to contain the following: General Purpose and scope of system Objectives and criteria for success List of terminology, organizations involved, etc. Description of current system(s)

27 CS 501 Spring 2007 Requirements documentation (continued) Requirements of proposed system Overview Functional Requirements Usability requirements Non-functional requirements System models Scenarios Use cases Models used during analysis

28 CS 501 Spring 2007 Requirements documentation (continued) Detailed specifications Business rules, specifications, etc. (e.g., reference to an accounting standard) Data flow, sources of data, data validation etc., A common fault in requirements documentation is to gloss over the details. This results in misunderstandings between the client and the developers.

29 CS 501 Spring 2007 Evolution of requirements If the requirements definition is wrong, the system will be wrong. With complex systems, understanding of requirements always continues to improve. Therefore... The requirements definition must evolve. Its documentation must be kept current (but clearly identify versions).

30 CS 501 Spring 2007 From an old exam question An online information system is being developed using a modified version of the Waterfall model. It is likely to be based on Web technology. (i)How much should the choice of technology be considered during the feasibility study? (ii) In how much detail should the choice of technology be specified during the requirements phase of the project? (iii) At what stage should the decision be made to use an Apache Web Server 2.0 with Tomcat 4.1?

31 CS 501 Spring 2007 From an exam question (answer) How much should the choice of technology be considered during the feasibility study? During the feasibility study it is important to know that the project is technically feasible. This can be achieved by identifying one possible technical approach and analyzing it sufficiently to show that it is capable of fulfilling the requirements of the system. It can also be used to estimate costs of hardware, software, etc. However, this is only a possible approach. When the system design is carried out in detail, totally different technology may be chosen (e.g., not Web-based).

32 CS 501 Spring 2007 From an exam question (answer) In how much detail should the choice of technology be specified during the requirements phase of the project? A requirement is a statement of need as expressed by a client. The client's requirements are that the system collects certain data, saves it, and carries out specified processes, e.g., displaying it, performing calculations, etc. The decision of how to store and manipulate the data (e.g., using specific Web technology) is usually not a requirement of the client. It comes later, as part of the design.

33 CS 501 Spring 2007 From an exam question (answer) At what stage should the decision be made to use an Apache Web Server 2.0 with Tomcat 4.1? This is part of the System Design *