8.1.2003Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.

Slides:



Advertisements
Similar presentations
Software Engineering 2003 Jyrki Nummenmaa 1 A BASIC OO SOFTWARE DEVELOPMENT PROCESS Earlier, we saw a number of different software lifecycle models.
Advertisements

Chapter 4 Design Approaches and Methods
Introduction to Software Engineering Dr. Basem Alkazemi
CSC 402 Requirements Engineering 1. 2 Problem Definition Requirements Definition informal statement of need for system natural language statement of what.
8/28/2005ECEN5543 Req Elicitation1 Targets of Requirements Engineering ECEN 5543 SW Engineering of Standalone Programs University of Colorado, Boulder.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
1 Software Requirements Specification Lecture 14.
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
Requirements Gathering : Determining the scope of the system 1. Elicitiation – fact finding 2. Specification 3. Validation.
S R S S ystem R equirements S pecification Specifying the Specifications.
THE SYSTEMS LIFE CYCLE ANALYSE DESIGN IMPLEMENT MAINTENANCE IDENTIFY/INVESTIGATE.
Problem Solving Methodology
The Software Development Life Cycle: An Overview
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
S/W Project Management
Software Requirements Specification (SRS) Complete description of external behavior of software system Complete description of external behavior.
Typical Software Documents with an emphasis on writing proposals.
Requirements specification Copyright, 2001 © Jerzy R. Nawrocki Quality Management.
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.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
ITEC224 Database Programming
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
Requirements Engineering How do we keep straight what we are supposed to be building?
ECE450 – Software Engineering II
OHTO -99 SOFTWARE ENGINEERING LECTURE 5 Today: - An overview to OO Analysis and OO Design - Introduction of Assignment 2.
1 Chapter 15 Methodology Conceptual Databases Design Transparencies Last Updated: April 2011 By M. Arief
Standard SRS Copyright, 2001 © Jerzy R. Nawrocki Requirements Engineering Lecture.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
Some Sub-Activities within Requirements Engineering 1.Prototyping 2.Requirements Documentation 3.Requirements Validation 4.Requirements Measurements 5.Requirements.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Lecture 7: Requirements Engineering
9/01RUT1 NASA OSMA SAS '01 R equirements U se case T ool James R. McCoy SRS Information Services NASA Software Assurance Technology Center
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 systems analysis 1 what is systems analysis? preparation of the system’s requirements/definition,
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
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,
(SRS) SOFTWARE REQUIREMENT SPECIFICATION(SRS) 1. Topics to be discussed.. What is an SRS? Purpose of an SRS Who reads the SRS? Who writes the SRS? Characteristics.
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
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Engineering 2003 Jyrki Nummenmaa 1 SOFTWARE ENGINEERING - SOFTWARE LIFECYCLE MODELS These slides contain a few different software lifecycle.
Software Requirements Specification (SRS)
Winter 2007SEG2101 Chapter 31 Chapter 3 Requirements Specifications.
System Requirements Specification
Software Requirements Specification Document (SRS)
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
CSC480 Software Engineering Lecture 7 September 16, 2002.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 12 Exploring Information System Development.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Unit F451 Computer Fundamentals Components of a Computer System Software Data: Its representation, structure and management in information.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
An Overview of Requirements Engineering Tools and Methodologies*
Software Requirements and the Requirements Engineering Process
Fundamentals of Information Systems, Sixth Edition
Requirements Engineering (continued)
SYSTEM ANALYSIS AND DESIGN
OO TESTING Module testing -> Class testing Integration testing
Systems Analysis and Design
CSC480 Software Engineering
System Requirements Specification
Software Requirements Specification Document
Lecture # 7 System Requirements
Requirements Document
Requirement Analysis.
Requirements Engineering Lecture 6
Presentation transcript:

Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should do - not how it should do it. Requirements are independent of the implementation tools, programming paradigm, etc. However, the requirements are then analysed with the intended implementation methodology in mind.

Software Engineering 2003 Jyrki Nummenmaa 2 The Basic Waterfall Model Requirements specification Maintenance Testing Implementation Analysis & Design

Software Engineering 2003 Jyrki Nummenmaa 3 Prototyping Requirements spec. - V&V Maintenance - V&V Testing - V&V Quick Implementa- tion - V&V Design - V&V V&V = Verification and Validation Quick Analysis & Design - V&V Implementation - V&V

Software Engineering 2003 Jyrki Nummenmaa 4 Requirement specification – motivation and basics Requirement specification is generally the most crucial phase of an average software project - if it succeeds then a complete failure is unlikely. The requirements specification can be used as a basis for a contract. The requirements specification can (and should) also be eventually used to evaluate if the software fulfills the requirements. As users generally can not work with formal specifications, natural language specifications must or should often be used.

Software Engineering 2003 Jyrki Nummenmaa 5 Typical Documents Basic textual document, e.g. according to the ANSI/IEEE Standard 830 – will be discussed later. A conceptual model of the domain, which may be already available or built separately. A description of the processes, e.g. a data flow diagram. A textual description of the use cases – will be discussed later.

Software Engineering 2003 Jyrki Nummenmaa 6 Formal Languages? Usually much too difficult to understand even for an above average user. You may be able to verify the system, but how can you verify the requirements? They are usually used for critical well-defined systems and/or concurrent processing, which is notoriously difficult to handle.

Software Engineering 2003 Jyrki Nummenmaa 7 Graphical Languages? Examples: - Entity-Relationship (ER) model for conceptual description - Data Flow diagrams for process description Simple languages (like the above) work well in practice In requirement specification, they should be used to model the application domain and the processes.

Software Engineering 2003 Jyrki Nummenmaa 8 Good Requirements Specification Qualities Complete Accurate Unambiguous Verifiable (How can you verify ”user friendliness”?) Consistent Modifiable (also the requirements change) Traceable (where has each requirement come from?)

Software Engineering 2003 Jyrki Nummenmaa 9 Overall Structure For Req. Spec. (Ansi/IEEE Standard 830) 1. Introduction 1.1. Purpose 1.2. Scope 1.3. Definitions, Acronyms and Abbreviations 1.4. References 1.5. Overview 2. General Description 2.1. Product Perspective 2.2. Product Functions 2.3. User Characteristics 2.4. General Constraints 2.5. Assumptions and Dependencies 3. Specific Requirements

Software Engineering 2003 Jyrki Nummenmaa 10 ANSI/IEEE: Specific requirements 3. Specific requirements 3.1. Functional Requirements 3.2. External Interface Requirements 3.3. Performance Requirements 3.4 Design Constraints Standards Compliance Hardware Limitations … 3.5. Attributes Security Maintainability … 3.6. Other Requirements Data Base …

Software Engineering 2003 Jyrki Nummenmaa 11 ANSI/IEEE: Specific requirements 3. Specific requirements 3.1. Functional Requirements 3.2. External Interface Requirements 3.3. Performance Requirements 3.4 Design Constraints Standards Compliance Hardware Limitations … 3.5. Attributes Security Maintainability … 3.6. Other Requirements Data Base … 4. Extensions (acceptance criteria, other material...)

Software Engineering 2003 Jyrki Nummenmaa 12 ANSI/IEEE: Functional Requirements 3.1. Functional Requirements Functional Requirement Introduction Inputs Processing Outputs Functional Requirement 2 … 3.1.n Functional Requirement n A typical way to express the requirements is ”The system shall” – ”Järjestelmän on...” Use cases (coming later) describe functionalities

Software Engineering 2003 Jyrki Nummenmaa 13 An Alternative Template Go to Pressman’s book’s web pages ( and from their choose ”professional resources” and then and from there you can find work product templates. The one we are looking for is called ”System specification”. Ok, you can go to rspa pages directly as well, but it may be a good idea to check up pressman’s pages as well.

Software Engineering 2003 Jyrki Nummenmaa 14 Techniques For Getting The Requirements From Users Asking - Interview - Questionnaire - ”Brainstorming” sessions Analysing an existing system - We must understand how the new system will differ from any old such system Analysing the environment - e.g. process analysis Prototyping - Gives best feedback and more formal specifications but can be expensive

Software Engineering 2003 Jyrki Nummenmaa 15 What can go wrong? / 1 Missing specifications - Happens often - Experience helps - Sometimes it is impossible to notice Contradictions - Do not document the same thing many times - Integrate different users’ views with the users - Sometimes the users disagree strongly. Noise - Do not include material which does not contain relevant information

Software Engineering 2003 Jyrki Nummenmaa 16 What can go wrong? / 2 Documenting a solution rather than the problem - If the users know some information technology, they want to start solving the problem as they express it. - Many formal (also graphical) methods tend to direct the process into this. Unrealistic requirements - Although we model the problem rather than the solution, it is good to have some idea of what is possible.

Software Engineering 2003 Jyrki Nummenmaa 17 Who should do requirement specification? Someone who can communicate with the users Someone who has experience Someone who knows similar systems and/or the application area Someone who knows what is possible and how (and how much work is roughly needed).