CSC 402 Requirements Engineering 1. 2 Problem Definition Requirements Definition informal statement of need for system natural language statement of what.

Slides:



Advertisements
Similar presentations
Lecture 5: Requirements Engineering
Advertisements

Team Skill 5: Refining the Use Cases Lecture 11. Advantages of Use Cases They are easy to write Written in users language Provide cohesive, related threads.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Introduction to Software Engineering Dr. Basem Alkazemi
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Requirements Analysis CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology January 7, 2003.
Requirements Acquisition
Introduction to Software Engineering
1 / 26 CS 425/625 Software Engineering Software Requirements Based on Chapter 5 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Capturing the requirements
Software Requirements
CS351 © 2003 Ray S. Babcock Requirements What not How “The Pizza Experiment” 1994, 350 companies, 8000 software projects. 31% were canceled before they.
Software Requirements
1 To introduce the concepts of user and system requirements To introduce the concepts of user and system requirements To describe functional and non- functional.
CSC Software Engineering I 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 1 (cont ’d) Title : Client requirements (Review) Mandatory reading: I.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Overview of Software Requirements
1 CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7 th ed., Chap.: 7.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
[ §4 : 1 ] 4. Requirements Processes II Overview 4.1Fundamentals 4.2Elicitation 4.3Specification 4.4Verification 4.5Validation Software Requirements Specification.
The Software Development Life Cycle: An Overview
S/W Project Management
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
Requirements Analysis
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
Writing requirements specifications. Why we need requirements specifications To give structure to your desires To avoid waste of resources To avoid slippage.
Requirements Engineering Overview Senior Design Don Evans.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Chapter 4 Software Requirements
CT1404 Lecture 2 Requirement Engineering 1 1. Today's Lecture Definition of a Software Requirement Definition of Software Requirements Management Characteristics.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
Systems Development Life Cycle
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
Requirements Validation
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Software Engineering Lecture # 1.
Software Requirements Specification (SRS)
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Software Requirements Specification Document (SRS)
Requirements Analysis
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Software Requirements. Objectives: l To introduce the concepts of user and system requirements l To describe functional / non-functional requirements.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Chapter 4 Requirements Engineering (1/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Chapter 4 – Requirements Engineering
SYSTEM ANALYSIS AND DESIGN
Systems Analysis and Design
Requirements Elicitation and Elaboration
UNIT II.
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

CSC 402 Requirements Engineering 1

2 Problem Definition Requirements Definition informal statement of need for system natural language statement of what system is to provide Requirements Specification notational and/or formal description of a software system Requirements Analysis and Specification

CSC 402 Requirements Engineering 3 Requirements purposes review Develop a contract between customer and developer – Enables both sides to be clear about what is to be done Understand and specify requirements based on customer’s needs – Not on what the developer thinks the customer needs Provide basis for definitive testing and verification – System is acceptable if its passes the “acceptance” test

CSC 402 Requirements Engineering 4 Goals for a requirements specification Identify the functional capabilities of the system Identify desired responses to undesired events Identify non-functional and environmental constraints to be satisfied – “My users will submit input in the form of Microsoft Word documents” – “It has to run on a ‘386 under Win 3.1!” Avoid specifying “how” focus simply on “what” – but recall Michael Jackson’s thoughts about “machines” Serve as a guide to the development team

CSC 402 Requirements Engineering 5 Desirable Characteristics of a Requirements Specification Abstract – one model, many realizations Complete – to the extent required Consistent – no contradictions Unambiguous – concrete acceptance test Precise – uniquely interpretable Testable Concise – no extraneous details Feasible – realistic constraints Even – consistent level of detail Modifiable – living document Reference Tool – readable by all stakeholders No implementation bias

CSC 402 Requirements Engineering 6 Common Problems Incompleteness – customer may be unavailable or inaccessible – customer asks for too little – customer doesn’t think of everything – the world changes – (sometimes incompleteness is okay (as long as its noted!)) Inconsistency – customer may be a group that disagrees – different people may negotiate different parts Ambiguity – customer may be a group where noone sees the whole picture – difficult to spot ambiguity in large, complex applications

CSC 402 Requirements Engineering 7 Common Problems - 2 Imprecision – customer may be a group with a different vocabulary – precision easiest in mature application areas (e.g. accounting) – precision difficult in new disciplines Infeasibility – customer asks for too much ¤ no conceivable algorithm ¤ unrealistic requests Unevenness – different sources of information – different people write different parts – different parts of specification are more difficult than others

CSC 402 Requirements Engineering 8 Basic Techniques Customer teaches; developer learns and organizes – Developer applies discipline to process and helps discover ambiguity, inconsistency, and incompleteness Interviews, investigations, questionnaires Develop glossaries to aid communication Describe in a (semi-)formal notation Hierarchical decomposition System modeling – Dataflow diagrams, E-R Diagrams, Finite state machines, Petri nets, UML diagrams

CSC 402 Requirements Engineering 9 Informal Requirements Specification Typical method – useful first attempts during problem definition Structured Natural Language – Extended, more detailed form of requirements definition Advantage – Uses expressiveness and understandability of natural language Problems – Inherent ambiguity of natural language – Requirements are not partitioned effectively by the language itself (difficult to find related requirements)

CSC 402 Requirements Engineering 10 Typical contents of a textual Req. Spec. (check the many templates available!) Description – restatement of problem definition Functionality – “what” the system does Data – “what” the system processes Environment – “where” the system operates Robustness – “what“ is expected of the system when an error occurs Security – “who” has access to “what” Safety – Can this system harm anyone Performance – “what” constraints are placed on the system’s performance Resources – “what” information/other systems is/are available to help the system accomplish its job

CSC 402 Requirements Engineering 11 Rapid Prototyping A means to understand and acquire requirements Most often – a mockup of (some aspect of) a software product ¤ serves as a communication device with the user “I don’t know what I want, but I don’t want THAT!” ¤ facilitates technical exploration “Is this possible?” ¤ aids the development and assessment of specifications “I want that...”

CSC 402 Requirements Engineering 12 Rapid Prototyping - See Schach, pg. 71 Rapid Prototype Verify Retirement Operations Test Implementation Verify Design Req. Change

CSC 402 Requirements Engineering 13 Understanding user needs... A prototype can help understand user needs – Is the proposed service/system adequate? – Is the user-interface usable? – Are the requirements complete? – Which alternative should we take? ¤ e.g. present the user with multiple “throw-away” prototypes

CSC 402 Requirements Engineering 14 “Rapid” is key The prototype must be constructed quickly! – Thus, inconsequential problems are minor as long as main aspect of the prototype functions correctly A prototype should be designed to be rapidly changed – This supports iteration in the process ¤ If the user doesn’t like it, incorporate the feedback and try again! To support these requirements, fourth-generation languages or interpreted languages are often used to generate prototypes

CSC 402 Requirements Engineering 15 Rapid Prototypes as specifications... Instead of discarding the prototype, use it to serve as the specification – Saves time having to write a specification document! Generally considered a bad idea... – because ¤ a rapid prototype can’t serve as a legal contract ¤ a rapid prototype does not make for good documentation It can’t serve as a reference tool for maintenance, for example. Prototypes should be used to elicit requirements and then discarded, next comes design...

CSC 402 Requirements Engineering 16 Rapid Prototypes as the finished product! Also considered a bad idea... – Same problems as previous slide... – Plus ¤ Its too easy to slip into the build-and-fix lifecycle!

CSC 402 Requirements Engineering 17 Training the client... Customer and/or users may confuse a prototype with the operational system – “Why do we have to wait so long for the system, didn’t you have it working three months ago?” Customer may request more features than originally intended – “Hey that’s great! Can you add this...and this?” Thus...client should be informed as to the purpose of the prototype and be aware of the position of requirements in the life-cycle...