Requirements Engineering (continued)

Slides:



Advertisements
Similar presentations
Requirements Validation
Advertisements

Software Requirements
CS 411W - Notes Product Development Documentation.
Introduction to Software Engineering Dr. Basem Alkazemi
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Introduction to Software Engineering
WKES 3202 SOFTWARE REQUIREMENTS ENGINEERING SEMESTER 1 SESSION 2004/2005.
1 / 26 CS 425/625 Software Engineering Software Requirements Based on Chapter 5 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Software Requirements
CS 425/625 Software Engineering Software Requirements
Software Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements 2.
Software Requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Requirements Engineering
The Software Development Life Cycle: An Overview
S/W Project Management
Lecture 18: Specifications
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Requirements Engineering CSE 305 Lecture-2.
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.
Requirements Engineering Requirements Elicitation Process Lecture-9.
Lecture 7: Requirements Engineering
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Chapter 4 Software Requirements
Requirements Validation
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Software Requirements Specification Document (SRS)
Requirements Analysis
1 Specification A broad term that means definition Used at different stages of software development for different purposes Generally, a statement of agreement.
CSC480 Software Engineering Lecture 7 September 16, 2002.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
1 Requirements Analysis Lecture # Recap of Requirements Elicitation - 1 Requirements elicitation deals with discovering requirements for a software.
Chapter 4 – Requirements Engineering Lecture 2 1Chapter 4 Requirements engineering.
Daniel Amyot, University of Ottawa Based on slides by Gunter Mussbacher (2009) and Stéphane Somé (2008) with material from these standards: IEEE ,
Software Engineering, COMP201 Slide 1 Software Requirements.
Pepper modifying Sommerville's Book slides
Chapter 4 Requirements Engineering (2/3)
Chapter 4 – Requirements Engineering
Software Prototyping.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Software Requirements
Chapter 5 – Requirements Engineering
Requirements Validation – II
Requirements Engineering (continued)
Requirements Engineering
Software Requirements
Chapter 4 Software Requirements
CSC480 Software Engineering
Software Requirements analysis & specifications
UNIT II.
SE-565 Software System Requirements III. Requirements Elicitation
Requirements Reference: Software Engineering, by Ian Sommerville, 6th edition, Chapters 5, 6, & 8.
Software Requirements
Requirements Analysis
Software Requirements Specification Document
Chapter 6: Principles of Requirements Analysis
Software Requirements Specification (SRS) Template.
Lecture # 7 System Requirements
SE-565 Software System Requirements VII. Requirements Validation
Requirements Document
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Requirements Engineering Lecture 6
Presentation transcript:

Requirements Engineering (continued)

Requirements Engineering Activities Requirements Development Requirements Management Elicitation Analysis Specification Validation

Requirements Analysis To discover problems, incompleteness and inconsistencies in the elicited requirements. These are then fed back to the stakeholders to resolve them through the negotiation process Analysis is interleaved with elicitation as problems are discovered A checklist may be used to support analysis. Each requirement may be assessed against the checklist

Analysis Checklists Premature design Combined requirements Does the requirement include premature design or implementation information? Combined requirements Does the description of a requirement describe a single requirement or could it be broken down into several different requirements? Unnecessary requirements Is the requirement ‘gold plating’? That is, is the requirement a cosmetic addition to the system which is not really necessary. Use of non-standard hardware Does the requirement mean that non-standard hardware or software must be used? (To make this decision, you need to know the computer platform requirements.)

Analysis Checklists Conformance with business goals Is the requirement consistent with the business goals defined in the introduction to the requirements documents? Requirements ambiguity Could the requirement be understood differently by different people? Requirements realism Is the requirement realistic given the technology which will be used to implement the system? Requirements testability (verifiability) Is the requirement testable, that is, is it stated in such a way that test engineers can show if the system meets that requirement?

Requirements Engineering Activities Requirements Development Requirements Management Elicitation Analysis Specification Validation

Specifications (Generally) A broad term that means definition From our textbook, The invention and definition of a behavior of a solution system such that it will produce the required effects in the problem domain A statement of agreement (contract) between producer and consumer of a service

Specifications (Generally) Document many aspects of projects: What the users need (requirements) The features offered by a system (functional spec) The performance characteristics The design of the software (e.g. architecture) External behavior of a module Internal structure of a module

Requirements Specifications Statement of user requirements Major failures occur through misunderstandings between the producer and the user Client: “But I expected that the system would be able to handle that.” Developer: “Well, that’s not the impression you gave me. I thought that you wanted it to operate like this.”

Specification Qualities Consistent Complete Verifiable Traceable Precise, clear, unambiguous

Consistency Requirements shouldn’t contradict each other Especially problematic when multiple types of requirements documents are used E.g., natural language for customers, semi-structured models for engineers

Completeness Internal completeness External completeness The specification must define any new concept or terminology that it uses Glossary helpful for this purpose External completeness The specification must document all the needed requirements Difficulty: when should one stop?

Dealing with Incompleteness Lacking a piece of information about a specific requirement? Need to consult with customers Need to check an external interface description Need to build a prototype Use TBD (To Be Determined) to flag all knowledge gaps Resolve all TBDs before signing off on a set of requirements

Verifiable, Traceable Verifiable: it is possible to verify that requirements have been met Traceable: requirements can be linked to subsequent design, code, and test artifacts

Precise, Clear, Unambiguous Example (from a real safety-critical system) The message must be triplicated. The three copies must be forwarded through three different physical channels. The receiver accepts the message on the basis of a two-out-of-three voting policy. Q: Can a message be accepted as soon as we receive 2 out of 3 identical copies of message or do we need to wait for receipt of the 3rd?

Guidelines for Writing Requirements Find a standard format and use it for all requirements. Use language in a consistent way. Use text highlighting to identify key parts of the requirements. Avoid the use of jargon.

Requirements Readability Label sections, subsections, and individual requirements consistently Use white space liberally Use visual emphasis (e.g., bold, underline, italics, and different fonts) consistently Include a table of contents and possibly an index to help readers find information they need Number all figures and tables, give them captions, and refer to them by number

IEEE Requirements Standard Defines a generic structure for a requirements document that must be instantiated for each specific system. Introduction Overall description Specific requirements Appendices Index Main body of the document Supporting information

1. Introduction Purpose Scope Definitions, acronyms, and abbreviations Identify the problem (application) domain Definitions, acronyms, and abbreviations Reference documents Overview Describe the structure of the SRS (Software Requirements Specification)

2. Overall Description Presents a high-level overview of the product and the environment in which it will be used, the anticipated product users, and known constraints, assumptions, and dependencies

2. Overall Description Product perspective Product functions Describe all external interfaces (system, hardware, software, user, communication interfaces, etc.) Product functions Summary of major functions that the software will perform User characteristics General characteristics of the intended users Constraints General description of items that will limit the developer’s options Assumptions and dependencies

3. Specific Requirements The main body of the document Contains all the software requirements in detail External interface Functional requirements Performance requirements Design constraints Software system attributes Other requirements

3. Specific Requirements (Example) 3.1 External interfaces 3.1.1 User interfaces 3.1.2 Hardware interfaces 3.1.3 Software interfaces 3.1.4 Communication interfaces 3.2 System features 3.2.1 System feature 1 3.2.1.1 Purpose of feature 3.2.1.2 Associated functional requirements 3.2.3.1 Functional requirement 1 … 3.2.3.n Functional requirement n 3.2.2 System feature 2 3.2.m System feature 3 3.3 Performance requirements 3.4 Design constraints 3.5 Software system attributes 3.6 Other requirements Page 23: Template of SRS organized by feature

Prototyping Prototypes may be implementations or mockups Prototypes for requirements validation demonstrate the requirements and help stakeholders discover problems Validation prototypes should be reasonably efficient and robust It should be possible to use them in the same way as in the required system (within their limits) User documentation and training may need to be provided

Prototyping Activities Choose prototype evaluators The best evaluators are users who are fairly experienced and who understand the nature of prototypes. End-users who do different jobs should be involved so that different areas of system functionality will be covered. Develop test scenarios Careful planning is required to draw up a set of evaluation scenarios that provide broad coverage of requirements. End-users shouldn’t just play around with the system as this may never exercise critical system features.

Prototyping Activities Execute scenarios The users of the system may work, on their own, to try the system by executing the planned scenarios. Alternatively, some form of observational or think-aloud protocol can be used Document problems It is usually best to define some kind of electronic or paper problem report form which users fill in when they encounter a problem.

Prototyping Benefits Misunderstandings between software users and developers are exposed Missing services may be detected Confusing services may be identified Prototyping can also be used in the Requirements Analysis phase The prototype may serve as a basis for preparing a precise system specification

Prototyping Drawbacks Prototypes may lead users to think that system construction will be easier than anticipated There may be a temptation to morph the prototype into the delivered solution. Don’t do this! (“Plan to throw one away” – Brooks).

Paper Prototypes (Interface Mockups) Paper prototype of an interface Can be similar to “storyboards” (illustrations or images used to pre-visualize things like films or animations) Allow the reader to “walk through” the interface, seeing the different screens and layouts provided Use captions to explain what is shown