Requirements Engineering

Slides:



Advertisements
Similar presentations
Design Validation CSCI 5801: Software Engineering.
Advertisements

Information System Design IT60105 Lecture 3 System Requirement Specification.
Chapter 14 Requirements and Specifications. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Software Engineering The implementation.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 8 Requirements I.
Software Requirements
People Technical AdvisorsAcademic AdvisorFinal Project By Prof. Shlomi Dolev Prof. Ehud Gudes Boaz Hilemsky Dr. Aryeh Kontorovich Moran Cohavi Gil Sadis.
Software Requirements
Overview of Software Requirements
Requirements Specifications Today: Homework #1 due For next class: Pressman 11; SRD Team Status Reports Requirements Process (continued) Bio Break ( 5.
SE 555 – Software Requirements & Specifications Introduction
CS 501: Software Engineering
1 Case Study: Starting the Student Registration System Chapter 3.
Generic Simulator for Users' Movements and Behavior in Collaborative Systems.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
N-Tier Architecture.
CSCI 5801: Software Engineering
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
Software Requirements Presented By Dr. Shazzad Hosain.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Topic Cafeteria Management System
Software Requirements Engineering: What, Why, Who, When, and How
INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.
Requirements Documentation CSCI 5801: Software Engineering.
Process Oriented Requirements Engineering Professor Keith Phalp.
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
Requirements Validation CSCI 5801: Software Engineering.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
IS550: Software requirements engineering Dr. Azeddine Chikh 2. Functional and non-functional requirements.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
MADALINA CROITORU Software Engineering week 3 Madalina Croitoru IUT Montpellier.
SWE 513: Software Engineering
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Software Requirements
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CS223: Software Engineering Lecture 6: Requirement Engineering.
Chapter 4 – Requirements Engineering Lecture 1 The hardest part of the software task is arriving at a complete and consistent specification, and much of.
Chapter 4 Requirements Engineering (1/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Company: Amdocs Academic advisor: Ehud Gudes Technical advisor :Gabby Shimony Team: Uzi Lewin Elina Shlangman.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
CS628 - Object Oriented Analysis And Design. The Four Pillars of Successful Software Development -Avoid Classic Mistakes -Apply Development Fundamentals.
CS 160 and CMPE/SE 131 Software Engineering February 18 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
Requirements Elicitation CSCI 5801: Software Engineering.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Project May07-14: Restaurant Automation April 24, 2007.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Requirement Classification Nisa’ul Hafidhoh Teknik Informatika
Non Functional Testing. Contents Introduction – Security Testing Why Security Test ? Security Testing Basic Concepts Security requirements - Top 5 Non-Functional.
Getting Ready for the NOCTI test April 30, Study checklist #1 Analyze Programming Problems and Flowchart Solutions Study Checklist.
Classifications of Software Requirements
CMPE 280 Web UI Design and Development August 29 Class Meeting
Non Functional Requirements (NFRs)
Chapter 4 – Requirements Engineering
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
N-Tier Architecture.
Introduction to Operating System (OS)
Chapter 6: Principles of Requirements Analysis
Information system analysis and design
Presentation transcript:

Requirements Engineering CSCI 5801: Software Engineering

Requirements Engineering

What are Requirements? The services that the customer needs a system to perform The constraints under which the system operates and is developed

Standish survey of software development projects (1994) Factors Reported for Failure 13.1% - Incomplete Requirements 10.6% - Lack of Resources 9.9 % - Unrealistic expectations 9.3 % - Lack of Executive support 8.7 % - Changing requirements and specification 8.1 % - Lack of Planning 7.5 % - System no longer Needed Most common cause of project failure!

Major Activities Requirement Elicitation Requirement Documentation Identify stakeholders Communicate with them to attempt to understand their requirements Requirement Documentation Creating representation of requirements understood and agreed to by all Requirement Validation Making sure requirements correct May involve negotiation with stakeholders

Major Activities May be handled differently in different models Waterfall  Requirement Specification Document Extreme Programming  User stories Usually cyclical Elicitation Validation Documentation

What Must be Specified? Functional requirements Interactions between system and environment independent of implementation Most common way to think of requirements Nonfunctional requirements Constraints on how system performs its functional requirements (speed, reliability, usability, etc.) Context in which constraints must be met Often as important as functional requirements

Functional Requirements Can be treated like mapping between system inputs and outputs Example: password system User enters name, password (name, password) found in database  go to main menu Otherwise  Error message and re-prompt User input, sensor readings, data in databases… System Output displays, reports, updated data in databases…

FURPS+ One definition of major requirement types Functional Usability Reliability Performance Sustainability + (anything else)

Usability Ease of user: Based on user knowledge Operation of system Acquiring and entering inputs Interpreting outputs Learning to use Based on user knowledge Knowledge of domain Expertise in computing in general “Enter patient TH level” “Error: improper TH level entered” context

Reliability Doing specified tasks while minimizing error Durability: Errors do not exceed specified level Mean time to failure, % of transactions with error, … Security: Ability to resist given types of attack Robustness: Ability to handle illegal input Safety: Avoidance of catastrophic results to environment (erasure of database, etc.) Negative number? 100 digits (overflow) SQL injection… “Enter patient TH level”

Performance Ability to perform specified tasks within time/ space constraints Response time “Must show available courses within 5 seconds” Throughput “Must process 50 requests/second” Memory usage Context: Must specify conditions under which system operates for constraints to be meaningful …when running on X hardware and Y operating system …with Z users running simultaneously

Sustainability Ease with which specified types of expected maintenance can be done Expected future increments to system “May need to be able to enforce prerequisite constraints” Portability Hardware (PC  Mac) Software (MySQL  Oracle, JSP  ASP, etc.) Internationalization English  Spanish, Chinese, …

All Others (the “+”) Organizational requirements What your organization requires/usually does “Implemented in Java using RAD and standard UI” Interface requirements External entities in customer environment Existing databases Legacy software Legal requirements “Must meet FERPA and ADA requirements”

Measurable Requirements Must have some way to verify that delivered system meets requirements Waterfall: has company met contract? XP/Agile: how can test be created with customer? Functional requirements: System generally does or does not give desired response

Measurable Requirements Nonfunctional requirements: Many must be quantifiable in some way Otherwise have no way of proving have been met! Examples of bad requirements “The interfaces must be user-friendly” “The system must rarely crash” “Student records must be stored securely” “The system must respond within 1 second” Why is this last one bad?

Requirements in Context Quantified requirements must be defined in terms of rest of system Hardware and software (OS, etc.) Load on system (other programs, number of users) Knowledge levels of users

Usability Requirements Average errors/task “On average a student who has registered for one semester previously should make mo more than 3 mistakes during an entire session… Average time to complete task …and should be able to add all of their courses within 15 minutes” Training time “Registration personnel should require no more that 2 hours of training to reach 99% correctness rate” Can test with user focus groups

Reliability Requirements Mean time to failure “The system should be able to run for at least 100 consecutive hours on average without failure, under expected load of 50 simultaneous registrations” Transactions per error “There shall be no more than 1 failure per 1000 transactions on average” Algorithm security “Student information will be encrypted with AES-128”

Performance Requirements Response Time “For requests for open sections, the system response time should be less than 2 seconds in 90% of cases under normal load” Throughput “The server should be able to handle 100 requests per second on a Dell T-130 running Windows 7 and Apache Tomcat” Can usually test empirically