Software Requirements Analysis and Specification C.Eng 491 Fall 2009-2010.

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
CS 411W - Notes Product Development Documentation.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Requirements Specification
Requirements Analysis & Requirements Specification Originally developed by Michael Madigan StorageTek Manager, PAL Engineering Software Engineering of.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
Requirements (recap)‏
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Systems Development Life Cycle
SE 555 – Software Requirements & Specifications Introduction
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
SE 555 Software Requirements & Specification Requirements Analysis.
S R S S ystem R equirements S pecification Specifying the Specifications.
Lecture Outline 11 The Development of Information Systems Chapter 8 page 390+
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
Requirements Engineering How do we keep straight what we are supposed to be building?
Prepared by Afra`a Sayah. Introduction. Weekly Tasks. Plane Phase. Analysis Phase. Design Phase. Report Rules. Conclusion. 2.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Requirements Engineering ments_analysis.
Approaching a Problem Where do we start? How do we proceed?
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Chapter 7 System models.
Lecture 7: Requirements Engineering
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
1 Modeling System Requirements with Use Cases. 2 Why Do We Need Use Cases? Primary challenge in a system design process –ability to elicit correct and.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
Formal Methods.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
System Requirements Specification
Requirements Engineering ments_analysis.
Prof. Hany H. Ammar, CSEE, WVU, and
Software Requirements Specification Document (SRS)
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Software Engineering Lecture 10: System Engineering.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 12 Exploring Information System Development.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
Prepared by Amira Selim 31 st October 2009 Revised by Dahlia Biazid Requirements Analysis.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
TA: Shreya Rawal.  A use case is a description of a system’s behavior as it responds to a request that originates from outside of that system (Usually.
 System Requirement Specification and System Planning.
Software Requirements Analysis and Specification
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Daniel Amyot, University of Ottawa Based on slides by Gunter Mussbacher (2009) and Stéphane Somé (2008) with material from these standards: IEEE ,
Systems Development Life Cycle
Requirements Engineering
System Requirements Specification
Systems Development Life Cycle
UNIT No- III- Leverging Information System ( Investing strategy )
Presentation transcript:

Software Requirements Analysis and Specification C.Eng 491 Fall

Requirements Engineering Requirements Elicitation Requirements Analysis Requirements Specification Requirements Verification Requirements Management Requirements Engineering

Stakeholder identification Stakeholder identification Stakeholder interviews Stakeholder interviews Contract-style requirement lists Contract-style requirement lists Measurable goals Measurable goals Prototypes Prototypes Use cases Use cases

Requirements Engineering Eliciting requirements: the task of communicating with customers and users to determine what their requirements are. This is sometimes also called requirements gathering. Eliciting requirements: the task of communicating with customers and users to determine what their requirements are. This is sometimes also called requirements gathering. Eliciting requirements Eliciting requirements Analyzing requirements: determining whether the stated requirements are unclear, incomplete, ambiguous, or contradictory, and then resolving these issues. Analyzing requirements: determining whether the stated requirements are unclear, incomplete, ambiguous, or contradictory, and then resolving these issues. Recording requirements (specification): Requirements might be documented in various forms, such as natural-language documents, use cases, user stories, or process specifications. Recording requirements (specification): Requirements might be documented in various forms, such as natural-language documents, use cases, user stories, or process specifications.use casesuser storiesuse casesuser stories

Eliciting Requirements Analysts can employ several techniques to elicit the requirements from the customer. Analysts can employ several techniques to elicit the requirements from the customer. interviews, interviews, interviews focus groups (requirements workshops) and creating requirements lists. focus groups (requirements workshops) and creating requirements lists. focus groups focus groups prototyping, and use cases. prototyping, and use cases. prototypinguse cases prototypinguse cases combination of these methods combination of these methods

Software Requirement Analysis Determining the needs or conditions to meet for a new or altered product, Determining the needs or conditions to meet for a new or altered product, In other words, process of studying and analyzing the customer and the user/stakaholder needs to arrive at a definition of software reqiurements. In other words, process of studying and analyzing the customer and the user/stakaholder needs to arrive at a definition of software reqiurements. Requirements must be actionable, measurable, testable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design. Requirements must be actionable, measurable, testable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design. Requirements Requirements can be functional and non-functional. Requirements can be functional and non-functional.functionalnon-functionalfunctionalnon-functional

Types of Requirements Functional requirements Functional requirements Performance requirements Performance requirements Speed, accuracy, frequency, throughput Speed, accuracy, frequency, throughput External interface requirements External interface requirements Design constraints Design constraints Requirements are usually about “what”, this is a “how”. Requirements are usually about “what”, this is a “how”. Quality attributes Quality attributes i.e. reliability, portability, maintainability, supportability i.e. reliability, portability, maintainability, supportability

Requirements vs. Design RequirementsDesign Describe what will be delivered Describe how it will be done 3 Primary goal of analysis: UNDERSTANDING Primary goal of design: OPTIMIZATION There is more than one solution There is only one (final) solution Customer interested Customer not interested (Most of the time) except for external

Software Quality Attributes Correctness Correctness Reliability Reliability Rating = 1 – (Num Errors/ Num LOC) Rating = 1 – (Num Errors/ Num LOC) Can be allocated to subsystems Can be allocated to subsystems Efficiency Efficiency Integrity Integrity Usability Usability Survivability Survivability Maintainability Maintainability Verifiability Verifiability Flexibility Flexibility Portability Portability Reusability Reusability Interoperability Interoperability Expandability Expandability

Requirements Analysis Defining Stakeholder profiles Description - brief description of the stakeholder type Description - brief description of the stakeholder type Type - Qualify s-h’s expertise, technical background, degree of sophistication Type - Qualify s-h’s expertise, technical background, degree of sophistication Responsibilities - List s-h’s key responsibilities with regard to the system being developed - why a stakeholder? Responsibilities - List s-h’s key responsibilities with regard to the system being developed - why a stakeholder? Success Criteria - How does the stakeholder define success? How rewarded? Success Criteria - How does the stakeholder define success? How rewarded? Involvement - involved in the project in what way? Requirements reviewer, system tester,... Involvement - involved in the project in what way? Requirements reviewer, system tester,... Deliverables* - required by the stakeholder Deliverables* - required by the stakeholder Comments/Issues - Problems that interfere w/ success, etc. Comments/Issues - Problems that interfere w/ success, etc.

Requirements Analysis Defining User Profiles Description - of the user type Description - of the user type Type - qualify expertise, technical background, degree of sophistication Type - qualify expertise, technical background, degree of sophistication Responsibilities - user’s key resp.’s w.r.t. system being developed Responsibilities - user’s key resp.’s w.r.t. system being developed Success Criteria - how this user defines success? rewarded? Success Criteria - how this user defines success? rewarded? Involvement - How user involved in this project? what role? Involvement - How user involved in this project? what role? Deliverables - Are there any deliverables the user produces? For whom? Deliverables - Are there any deliverables the user produces? For whom? Comments/Issues - Problems that interfere w/ success, etc. Comments/Issues - Problems that interfere w/ success, etc. This includes trends that make the user’s job easier or harder This includes trends that make the user’s job easier or harder

Requirements Analysis Defining User Work Environment Number of people involved in doing this now? Changing? Number of people involved in doing this now? Changing? How long is a task cycle now? Changing? How long is a task cycle now? Changing? Any unique environmental constraints: mobile, outdoors, in-flight, etc. Any unique environmental constraints: mobile, outdoors, in-flight, etc. Which system platforms are in use today? future? Which system platforms are in use today? future? What other applications are in use? Need to integrate? What other applications are in use? Need to integrate?

Requirements Analysis Product Overview Put the product in perspective to other related products and the user’s environment. Independent? Component of a larger system? How do the subsystems interact with this? How do the subsystems interact with this? Known interfaces between them and this component? Known interfaces between them and this component? Block diagram Block diagram

Requirements Analysis Other Product Requirements hardware platform requirements -- hardware platform requirements -- system requirements -- supported host o.s.’s, peripherals, companion software system requirements -- supported host o.s.’s, peripherals, companion software environmental requirements -- temperature, shock, humidity, radiation, usage conditions, resource availability, maintenance issues, type of error recovery environmental requirements -- temperature, shock, humidity, radiation, usage conditions, resource availability, maintenance issues, type of error recovery applicable standards -- legal, regulatory, communications applicable standards -- legal, regulatory, communications

Software Requirement Specification A software requirements specification (SRS) is a complete description of the behavior of the system to be developed A software requirements specification (SRS) is a complete description of the behavior of the system to be developedsoftware requirements specificationsoftware requirements specification A document that clearly and precisely describes, each of the essential requirements of the software and the external interfaces. A document that clearly and precisely describes, each of the essential requirements of the software and the external interfaces. (functions, performance, design constraint, and quality attributes) (functions, performance, design constraint, and quality attributes) Each requirement is defined in such a way that its achievement is capable of being objectively verified by a prescribed method; for example inspection, demonstration, analysis, or test. 2 Each requirement is defined in such a way that its achievement is capable of being objectively verified by a prescribed method; for example inspection, demonstration, analysis, or test. 2

Requirements Analysis Fundamental Techniques (Views) functional view hierarchy -  function tree process  use cases information ow  data flow diagram (DFD) data oriented view data structures  data dictionary (DD), syntax diagram, Jackson diagram relations between entities  entity relationship diagram (ER) object-oriented view class structure  class diagram

Requirements Analysis algorithmic view control structures pseudo code, structogram, flow diagram, Jackson diagram conditions  rules, decision table state-oriented view state machines Petri nets sequence charts

Use Case use case is a description of a system’s behavior as it responds to a request that originates from outside of that system. use case is a description of a system’s behavior as it responds to a request that originates from outside of that system. it describes "who" can do "what" with the system in question it describes "who" can do "what" with the system in question

Use Case Diagram A use case diagram A use case diagram in the Unified Modeling Language (UML) in the Unified Modeling Language (UML)Unified Modeling LanguageUnified Modeling Language a type of behavioral diagram defined by and created from a Use-case analysis. a type of behavioral diagram defined by and created from a Use-case analysis. Use-case analysis Use-case analysis Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies between those use cases. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies between those use cases.actorsuse casesactorsuse cases The main purpose The main purpose to show what system functions are performed for which actor. to show what system functions are performed for which actor. Roles of the actors in the system can be depicted. Roles of the actors in the system can be depicted.

Use Case Diagram

Data Flow Diagram (DFD) graphical representation of data ow (classical technique) nodes: function  labeled circle store name  between two horizontal lines interface to environment  labeled rectangle directed edges: represent data flow properties of DFDs easy to create easy to read and understand

Data Dictionary A data dictionary is a collection of data about data. A data dictionary is a collection of data about data. It maintains information about the definition, structure, and use of each data element that an organization uses. It maintains information about the definition, structure, and use of each data element that an organization uses.

Software requirements specification Functional and Non-functional SRS Functional and Non-functional SRS IEEE IEEE

IEEE Std IEEE Recommended Practice for Software Requirements Specifications -Description Abstract: The content and qualities of a good software requirementsspecification (SRS) are described and several sample SRS outlines are presented. This recommended practice is aimed at specifying requirements of software to be developed but also can be applied to assist in the selection of in-house and commercial software products. Guidelines for compliance with are also provided. Abstract: The content and qualities of a good software requirementsspecification (SRS) are described and several sample SRS outlines are presented. This recommended practice is aimed at specifying requirements of software to be developed but also can be applied to assist in the selection of in-house and commercial software products. Guidelines for compliance with are also provided. Keywords: contract, customer, prototyping, software requirements specification, supplier, system requirements specifications Keywords: contract, customer, prototyping, software requirements specification, supplier, system requirements specifications

SRS Customer Requirements Customer Requirements Functional Requirements Functional Requirements Non-functional Requirements Non-functional Requirements Performance Requirements Performance Requirements Design Requirements Design Requirements Derived Requirements Derived Requirements Allocated Requirements Allocated Requirements