Requirements Specification

Slides:



Advertisements
Similar presentations
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Advertisements

Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall Process Specifications and Structured Decisions Systems Analysis and Design, 8e Kendall.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Chapter 9 Describing Process Specifications and Structured Decisions
CSC 402 Requirements Engineering 1 Requirements Techniques, cont. Formal requirements analysis techniques include: – DFD (covered) – ERD (covered) – Finite.
CS351 © 2003 Ray S. Babcock Requirements What not How “The Pizza Experiment” 1994, 350 companies, 8000 software projects. 31% were canceled before they.
Requirements Techniques, cont. Brief review Formal Requirements Techniques –Finite State Machines –Petri Nets.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
© Copyright 2011 John Wiley & Sons, Inc.
Managing Software Quality
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
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.
Chapter 11 Describing Process Specifications and Structured Decisions Systems Analysis and Design Kendall and Kendall Fifth Edition.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
THE FUNCTIONS AND PURPOSES OF TRANSLATORS TOPIC 2 CONTENT: 2.1. Types of translators 2.2. Lexical analysis 2.3. Syntax analysis 2.4. Code generation 2.5.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
1 Quality Attributes of Requirements Documents Lecture # 25.
Software Requirements Specification (SRS)
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.
Copyright © 2011 Pearson Education Process Specifications and Structured Decisions Systems Analysis and Design, 8e Kendall & Kendall Global Edition 9.
From requirements to specification Specification is a refinement of requirements Can be included together as Software Requirements Specifications (SRS)
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini VII. System Specification (I)
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Pepper modifying Sommerville's Book slides
Chapter 4 Requirements Engineering (2/3)
Chapter 4 – Requirements Engineering
An Overview of Requirements Engineering Tools and Methodologies*
Requirements Techniques, cont.
Software Engineering Lecture 4 System Modeling The Analysis Stage.
Software Requirements
Main issues: • What do we want to build • How do we write this down
Recall The Team Skills Analyzing the Problem (with 5 steps)
Formal Techniques (CS340 © John C. Knight 2004)
DATA MODELS.
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
EKT 421 SOFTWARE ENGINEERING
Abstract descriptions of systems whose requirements are being analysed
Compiler Lecture 1 CS510.
By Dr. Abdulrahman H. Altalhi
Syntax-based Testing CS 4501 / 6501 Software Testing
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4th edition, Prentice Hall, Hans Van Vliet, Software Engineering:
Finite Automata.
CS310 Software Engineering Dr.Doaa Sami
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Dynamic Modeling Lecture # 37.
Chapter 11 Describing Process Specifications and Structured Decisions
Department of Computer Science Abdul Wali Khan University Mardan
PPT4: Requirement analysis
Requirements Document
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Requirement Analysis.
Discrete Maths 13. Grammars Objectives
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Lecture 5 Scanning.
Presentation transcript:

Requirements Specification Requirements Specification (CS340 John Knight 2005)

Requirements Specification A Critical Document Focuses Attention On Asking What The System Should Do Provides Communication: User To Developer Between Developers Developers To Management Developers To Software Tools Managers To Regulators Requirements Specification (CS340 John Knight 2005)

Requirements Specification Important Goals For A Specification Document: Completeness Freedom From Ambiguity To The Extent Reasonable, Specify External System Behavior Only Specify Constraints On Implementation Easy To Change Reference Tool Throughout Lifecycle Record Forethought About System Lifecycle Define Acceptable Responses To Unexpected/Unusual Events Be As Formal As Possible Requirements Specification (CS340 John Knight 2005)

Why Are Specifications Important? Requirements Specification (CS340 John Knight 2005)

Problems With Specifications Conventional Specifications: Tend To Be Novels Tend To Be Wrong Tend To Say “How” Do Not Facilitate Communication Generally Take The Wrong View Ignore The Possibility Of Change Are Not Updated During Remainder Of Lifecycle No Workable Development Process Requirements Specification (CS340 John Knight 2005)

What Notation Can Be Used? Key Problem Is Communication Failure: Analyst And User Do Not Talk User Does Not See Specification Delivered System First Source Of Feedback Does This Seem Like A Good Situation? Many Approaches: Natural Language Structured Natural Language (Semi-Formal) Formal Notations Requirements Specification (CS340 John Knight 2005)

Natural Language Great Expressive Power “Understood” By All Many words and phrases have multiple meanings. Used Routinely In Software Development, BUT: Assumes Everybody Shares The Same Meaning Ambiguous Even If Meanings Are Shared No Inherent Structure Too Expressive: Same Thing Can Be Said Many Ways Unsystematic: Hard To Effect Change Can Be A Disaster Waiting To Happen What Are The Alternatives? “Fix” Natural Language Develop Special-Purpose Formal Notations Requirements Specification (CS340 John Knight 2005)

Fixing Natural Language Could Natural Language Be Fixed? There Have Been Many Efforts To Do So Ideas: Restrict Features Used Add Supplementary But Familiar Notation(s) Use Rigid Document Structures Be Very Careful Build Natural Language Analyzers Be As Formal As Possible Within Natural Language In This Class: For Project, We Will Use A Combination Of: Structured Natural Language Simple But Powerful Formalisms Study Formal Specification Notation (Later) Requirements Specification (CS340 John Knight 2005)

Formal Specification Languages Semi-Formal Techniques Turn Out To Be Really Helpful Much Better Than Straight Natural Language Can We Do Better? Formal Languages: Languages With Precise Semantics Based On Mathematics Facilitate Accurate Communication Between Engineers Many Such Languages Developed Usually Based On: Propositional And Predicate Calculus Finite Set Theory Simple Syntax For Composition And Structure Example Formal Specification Languages: Z , VDM, ASLAN, Statecharts, PVS Relatively Unpopular In USA, Relatively Popular In Europe Requirements Specification (CS340 John Knight 2005)

Simple But Very Useful Formalisms Data Flow Diagrams Regular Expressions BNF Finite State Machines Petri Nets Simple Tabular Notations—E.g. Decision Tables: Requirements Specification (CS340 John Knight 2005)

Requirements Specification (CS340 John Knight 2005) Data Flow Diagrams Model Of The Data Flow In The System Documented As A Simple Graph Arcs Show How Data Moves Nodes Show Transformations/Actions On Data Data Sinks And Sources Used For Input And Output Data Dictionary Explains What Data Is For Hierarchic Structure—Refinement And Abstraction Various Simple Analysis Possible Can Be Used To Develop Useful Designs For Simple Systems Core Of A Technique Called Structured Analysis Requirements Specification (CS340 John Knight 2005)

Regular Expressions And BNF Useful For Many Purposes, E.g.: Format Of Inputs/Outputs Formats Of Files Definition Of Command Languages Note: Only Defines Context-Free Syntax Context-Sensitive Syntax Defined Informally Actions Also Defined By Different Mechanism, Often Informal Recognizers Usually Developed Automatically: LEX For Lexical Analysis YACC For Syntax Analysis YACC And LEX Provide Mechanisms For Composition Of All Necessary Elements Use Regular Expressions And BNF For Things That They Support, You Will Get It Wrong Otherwise Requirements Specification (CS340 John Knight 2005)

Finite-State Machines Software Usually Implements A Finite-State Machine Describing Required Actions With FSM Is Very Powerful Approach: Define States Define Transitions Remember That Actions Are Associated With Transitions Remember That Which Transition Is Taken Depends On: Current Input Current State Carefully Check Initial State And Final State(s) Sometimes Subtle Mistakes Remain Much Of The Specification Can Be Tabular Use FSMs Carefully Requirements Specification (CS340 John Knight 2005)

Project Specification Document Follow General Outline In Text Add: Cover Page Signature Page Table Of Contents Other Sections Dictated By Selected Techniques Develop Document In English Supplemented By Parts Of A7E Technique Use Appropriate Techniques Discussed In Class Take Care With: Requirements Analysis - Scheduling Identification Of Risk Areas - Configuration Management Integration Of Document Parts - Apportioning Of Work Validation Of Document Requirements Specification (CS340 John Knight 2005)