CS 5150 Software Engineering

Slides:



Advertisements
Similar presentations
Chapter 2 – Software Processes
Advertisements

Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Alternate Software Development Methodologies
1 SWE 513: Software Engineering Requirements II. 2 Details in Requirements Requirements must be specific Examples -- university admissions system Requests.
CS 5150 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
Software Engineering General Project Management Software Requirements
CS 5150 Software Engineering
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 7 Requirements I.
CS 501: Software Engineering
Information Systems Development Lecture 2: the idea of the Life Cycle.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 7 Requirements I.
Overview of Software Requirements
CS 501: Software Engineering Fall 2000
CS 501: Software Engineering Fall 2000 Lecture 5 (a) Documentation (b) Requirements Analysis.
CS 501: Software Engineering
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 7 Requirements I.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
Software Life Cycle Model
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
S/W Project Management
المحاضرة الثالثة. 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.
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.
CEN rd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Phases of Software.
Software Requirements Presented By Dr. Shazzad Hosain.
©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
© Mahindra Satyam 2009 Configuration Management QMS Training.
Systems Life Cycle A2 Module Heathcote Ch.38.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 3 Feasibility Studies.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 8 Requirements Analysis and Specification.
Chapter 4 Software Requirements
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.
Systems Development Life Cycle
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CS CS 5150 Software Engineering Lecture 5 Feasibility Studies.
CS SE370 Software Engineering Lecture 5 Feasibility Studies.
Week 3: Requirement Analysis & specification
Requirements Engineering Process
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 Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
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
Exam 0 review CS 360 Lecture 8.
Presentation on Software Requirements Submitted by
CS 501: Software Engineering
CS 5150 Software Engineering
CS 501: Software Engineering Fall 1999
Requirements Analysis
Unit 6: Application Development
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

CS 5150 Software Engineering Lecture 8 Requirements 1

Administration Assignment 1: see the Assignments page on the web site Due Friday at 11:00 p.m. Submit by email. • Feasibility study (group assignment) Remember to send a copy to your client • Survey (individual assignment) Test 1 Uncollected answer books are at the reception at 301 College Avenue

Administration Assignment 2 Presentations will be on October 14 to 16. See the available times on the home page of the web site. • Sign up now. • Client must be able to attend. • Not all members of the project team need attend. More information about the presentations will be given in a later class.

Test 1: Visibility Question: How does your process provide visibility? Objective: Keep everybody informed of the progress • client, management (instructor + TA), colleagues in team Visibility has many aspects • sequential processes have intermediate deliverables; iterative processes have visible products after each iteration • presentations and reports are visible milestones • schedules, progress reports, and team meetings keep track of progress between major milestones

From Test 1: Process Steps A company that maintains airplane wishes to provide every technician with a hand held computer and software. (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 a Panasonic Toughbook with Windows Mobile?

Test 1: Process Steps (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.

Test 1: Process Steps (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 performs various functions, e.g., collects certain data, saves it, displays it, performing calculations, etc. The decision to use specific equipment or software is usually not a requirement of the client. It comes later, as part of the design.

Test 1: Process Steps (answer) At what stage should the decision be made to use a Panasonic Toughbook with Windows Mobile? This is a design decision. It is part of the system design.

Why are Requirements Important? Causes of failed software projects (Standish Group study, 1994) Incomplete requirements 13.1% Lack of user involvement 12.4% Lack of resources 10.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.

Requirements in Iterative Refinement Evaluation/acceptance Requirements Design Implementation

Requirements in the Modified Waterfall Model The requirements need continual updating as the project continues. Feasibility study Requirements System design Program design Implementation (coding) Testing Acceptance & release Operation & maintenance

Goals during the Requirements Phase • Understand the requirements in detail. • Specify the requirements in a manner that is clear to the client. Ensure that the client understands the description of the requirements and their implications. • Specify the requirements in a manner that is clear to the people who will design and implement the system. The list of requirements in the Requirements Documentation may be the basis for acceptance testing of the final system

Stages in the Requirements Phase Requirements define the function of the system from the client's viewpoint. This phase can be divided into: • Analysis to establish the system's services, constraints and goals by consultation with users. Modeling to organize the requirements in a systematic and comprehensible manner. Specification in a manner and level of detail that is understandable by both client and development staff.

The Requirements Process Analysis Feasibility Study Requirements Modeling Requirements Specification Feasibility Report Work with the client to understand the requirements Organize the requirements in a systematic and comprehensible manner Documentation of Requirements Analysis Report (optional)

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 report for consultation with the client. "Our understanding of your requirements is that ..."

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

Requirements Analysis: Stakeholders 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)

Requirements Analysis: Stakeholders & Viewpoint Analysis Viewpoint Analysis. Analyze the requirements as seen by each group of stakeholders Example: University Admissions System • Applicants • University administration Admissions office Financial aid office Special offices (e.g., athletics, development) • Academic departments • Computing staff Operations and maintenance

Requirements Analysis: Understand the Requirements Understand the requirements in depth: • Domain understanding Example: Philips light bulbs • Understanding of the real requirements of all stakeholders Stakeholders may not have clear ideas about what they require, or they may not express requirements clearly. They are often too close to the old way of doing things. • Understand the terminology Clients often use specialized terminology that they think you understand.

Requirements Analysis: Understand the Requirements Understanding the requirements may need studies: Market research focus groups, surveys, competitive analysis, etc. Example: Windows XP T-shirt Technical evaluation experiments, prototypes, etc. Example: Windows XP boot faster

Requirements Analysis: Understand the Requirements 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.

Requirements Analysis: Conflicts Recognize and resolve conflicts (e.g., functionality v. cost v. timeliness) Example: Dartmouth general ledger system

Requirements Analysis: Conflicts 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 suggest other approaches. Before the requirements phase is completed the client and development team must resolve these questions.

Functional Requirements Functional requirements describe the functions that the system must perform. They are identified by analyzing the use made of the system: • Functionality • Data • User interfaces Analyzing and specifying the functional requirements is the theme of the next two lectures.

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 client (the National Science Foundation) wanted a system that could be demonstrated by the end of 2002

Example of Non-Functional Requirements Example: Library of Congress Repository Use technology 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, accessibility to people with disabilities, etc. Importance of developing a system that will be respected by other major libraries

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.

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.

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).