Requirements engineering

Similar documents
Ch 4: Requirements Engineering. What are requirements?

Software specification and modelling. Requirements engineering

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 6 Slide 1

Requirement Analysis

Lecture 6: Requirements Engineering

Lecture 8 Requirements Engineering

UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION

Requirements Engineering. Establishing what the customer requires from a software system. Requirements Engineering. What is a Requirement?

Requirements. Requirements. Types of Requirement. What Is a Requirement?

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

Software Engineering Unit 4- Requirement Analysis and Specification

SE351a: Software Project & Process Management. 11 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

Requirements Engineering Process

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

Lecture 9 Requirements Engineering II

Requirements Engineering: Specification & Validation. Software Requirements and Design CITS 4401 Lecture 18

Requirements Engineering. Version October 2016

ATTENTION TO COME/ISE 491/492 STUDENT

Requirements Engineering

Requirements Engineering

Software Engineering. Lecture 10

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/17/2015

CIS 890: Safety Critical Systems

Recommended Practice for Software Requirements Specifications (IEEE)

System Requirements Specification

Chapter 4 Objectives

SE351a: Software Project & Process Management. 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

Software Requirements and the Requirements Engineering Process. Chapters 5 and 6

Chapter 5 System modeling

Requirements. CxOne Standard

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

350 Index 2005 GOAL/QPC

Introduction to Software Specifications and Data Flow Diagrams. Neelam Gupta The University of Arizona

Software Requirements Specification (SRS) Software Requirements Specification for <Name of Project>

Sofware Requirements Engineeing

Chapter 4 Requirements Elicitation

Lesson 06. Requirement Engineering Processes

REQUIREMENTS. Michael Weintraub Spring, 2016

CS3205: Task Analysis and Techniques

RE Process. Lawrence Chung Department of Computer Science The University of Texas at Dallas

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development

Automated Medical Patient Evaluation System - Phase 2 Design Report

Software Requirements Specification

Chapter 8 Software Testing. Chapter 8 Software testing

Individual Project. Agnieszka Jastrzębska Władysław Homenda Lucjan Stapp

Integration With the Business Modeler

The software lifecycle and its documents

Introduction to Software Engineering

Requirements Engineering process

[Product] MTM Program Product Software Requirements Specification

Scenario-Based Analysis. Scenario-Based Analysis (example) Form analysis

Lecture 4: Goals and Scenarios. System context. Usage facet. IT system facet. Core activities. Negotiation. Requirements artefacts

VANCOUVER Chapter Study Group. BABOK Chapter 9 Techniques

Purpose and Structure of Requirements Specifications (following IEEE 830 Standard)

Requirements Analysis. Requirement analysis. Requirements analysis 3/11/14. Advanced Programming

Mathematics and Computing: Level 2 M253 Team working in distributed environments

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Lecture 8: Goals and Scenarios. Pohl K., Requirements Engineering: Fundamentals, Principles, and Techniques, Springer, 2010, 814p.

Lecture 5: Requirements Specifications

Delimited. Interfaced. Readable. Modifiable. Verifiable. Prioritized* Endorsed

FINAL Design Control Inspectional Strategy Revised February, 1998 All Previous Editions Are Obsolete Effective through May 31, 1998

Quality Software Requirements By J. Chris Gibson

Requirements Engineering. Materials: Pressman (chapters 8,9, 10, 11) Sommerville (Chapters 4, 5)

CS3500: Object-Oriented Design Fall 2013

Model-Based Requirements Engineering. Tutorial by Kristian Sandahl

Introduction To Systems Engineering CSC 595_495 Spring 2018 Professor Rosenthal Midterm Exam Answer Key

User interface design. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 16 Slide 1

1: Specifying Requirements with Use Case Diagrams

Human Error Taxonomy

Software Engineering I (02161)

Vragen. Use case analysis. Use-Cases: describing how the user will Use cases

Progress Report. Object-Oriented Software Development: Requirements elicitation and analysis. Object-oriented analysis, design, implementation

Intro to Software Requirements

Quality Software Requirements By J. Chris Gibson

Elements of Requirements Style

NextMD Patient Portal

Requirements. Chapter Learning objectives of this chapter. 2.2 Definition and syntax

Chapter 8 Software Testing. Chapter 8 So-ware tes0ng

Requirements Elicitation

Software Engineering - I

Basics : the Requirements Engineering Process

Requirements Gathering

ehepqual- HCV Quality of Care Performance Measure Program

Introduction to Software Engineering: Requirements

Standard Development Timeline

SISO-ADM Policy for Product Identification. 03 May 2018

TEXAS DEPARTMENT OF INFORMATION RESOURCES. Test Scenario. Instructions. Version DEC 2006

IHE Pharmacy Technical Framework Supplement. Rev. 1.7 Trial Implementation

EXAM PREPARATION GUIDE

Chapter 10 Formal Specification

Based on the slides available at book.com. Graphical Design

Joint Application Design & Function Point Analysis the Perfect Match By Sherry Ferrell & Roger Heller

Requirements Specifications & Standards

Business Modelling. PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e. Early phase of development Inputs: Activities: informal specification

Darshan Institute of Engineering & Technology for Diploma Studies

CMPT E100 Introduction to Software Engineering Spring Assignment 2 (9%) - Requirements and Initial Design 1

Software Requirements Specification for Peer Tutoring Record Keeping

UNIVERSITY OF CALGARY. Requirements Engineering for Software Product Lines. By Chethana Kuloor

Transcription:

engineering Chapter 4 1 Engineering in the textbook 4.1 Functional and non-functional 4.2 The software document 4.4 engineering processes 4.5 elicitation and analysis 4.3 specification 4.6 validation 4.7 management 2 What are? Sommerville: The descriptions of what the system should do: - the services that the customer requires - the constraints on its operation IEEE standard glossary of software engineering terminology - A condition or capability needed by a user to solve a problem or achieve an objective. (Wiegers, Software 2): A property that a system must have to provide value to a stakeholder the system = the software system to be developed 3 What is engineering? The process of - finding out - analyzing - documenting - and checking (elicitation) (analysis) (specification) (validation) the required services and constraints of the system to be developed Result: software specification document. This is the traditional approach to handling. 4

Relationship of several types of System Requirement 5 Levels of specification Business - High level goals of the stakeholders for the system - Provides vision and scope User - in terms of tasks the users must be able to perform with the system. - including the constraints under which the system must operate - Expressed in natural language and diagrams System - even more detailed descriptions of the system s functions, services and constraints. - What the developers must implement 6 Example: User and system level Set up a league for a Fantasy Football website USER LEVEL: This function allows a user to set up a league that other players may join. The user who sets up the league is called the league manager, and decides who is able to join the league, and when the league draft will occur. SYSTEM LEVEL: 1. The system shall provide a way for the user to enter the name of the league 2. The system shall verify that the league name is unique. If not, the system shall ask the user to re-enter (or cancel). 3. The system shall provide a way for the user to enter a password. 4. If the password does not pass the, the system shall ask the user to re-enter (or cancel to exit). 5. The system shall prompt the user for a time and date for the draft 6. The date must occur at least 24 hours before the first game of the regular season (and sometime after the current time). If the date does not meet this criteria, the system shall prompt the user to reenter (repeat until there is a valid date). 7 4.1 Functional and non-functional Functional - Specific services or functions the system must provide. - how the system reacts to certain inputs - Software functionality that the developers must build into the product to enable users to accomplish their tasks. Non-functional - Constraints on the services or functions offered by the system. - these often apply to the system as a whole rather than individual features or services. - How the system must function. - Example: performance, security, or availability. 8

4.1.1 Functional Describe functionality or system services. Functional user may be high-level statements of what the system should do. Functional system should describe the system services in detail, at the level a developer could use to implement the feature. See slide 7 for an example of these Example: User level Functional for a system used to maintain information about patients receiving treatment for mental health problems. 1. The system shall generate each day, for each clinic, a list of patients who are expected to attend appointments that day. 2. A user shall be able to search the appointments lists for all clinics. 3. Each staff member using the system shall be uniquely identified by his or her 8-digit employee number. 9 10 4.1.2 Non-functional Define system properties and constraints. - performance - reliability - security - usability - must run on certain platform or operating system - must be written in a certain programming language Non-functional may be more critical than functional. Types of non-functional Usability Performance Efficiency Space Product Dependability Environmental Security Non-functional Organizational Operational Regulatory Development Accounting External Ethical Legislative Safety/security categories described on next slide 11 12

Non-functional classifications Product - How fast is must execute, how much memory it can use - Acceptable failure rate - How access will be controlled, how easy it must be to use Organizational (developer+customer) - hardware+software systems it must work with - what operational process it must fit into - language+ide+process that must be used External (outside factors) - what it must do to be approved by a regulator - what legislation it must follow to be legal - what it must do to be ethical it = the system being developed 13 Examples of nonfunctional Product(requirement The$system$shall$be$available$to$all$clinics$during$normal$working$hours$ (Mon Fri,$08.30 17.30).$DownDme$within$normal$working$hours$shall$ not$exceed$five$seconds$in$any$one$day. Organiza2onal(requirement Users$of$the$system$shall$authenDcate$themselves$using$their$health$ authority$idendty$card. External(requirement The$system$shall$implement$paDent$privacy$provisions$as$set$out$in$ HStanL03L2006Lpriv.$ 14 Non-functional implementation Non-functional may affect the overall architecture of a system rather than the individual components. - For example, to ensure that performance are met, you may have to organize the system to minimize communications between components. A single non-functional requirement, such as a security requirement, may generate a number of related functional that define system services that are required. - It may also generate that restrict existing. 15 Characteristics of excellent Correct - They should reflect the actual needs of the stakeholders (no gold plating). Unambiguous - They should not be able to be interpreted in different ways by different people. Complete - All services required by the user(s) must be defined. - Each requirement must fully describe the functionality to be delivered. Consistent - There should be no conflicts or contradictions in the descriptions of the system facilities. Verifiable - They should be written in a way so that the completed system could be tested against them. 16

Ambiguous Capable of being interpreted in different ways by different people (it has more than one interpretation). Consider this requirement from a previous example: A user shall be able to search the appointments lists for all clinics. - User intention given a name, search across all appointments in all clinics; - Developer interpretation given a name and a clinic, search in the individual clinic only. User chooses clinic then search. must be verifiable Must be able to determine if finished system meets the requirement(s). May be difficult for non-functional For example: Easy to use cannot be measured or tested. 17 18 Non-verifiable vs. verifiable requirement [non-verifiable] The system should be easy to use by medical staff and should be organized in such a way that user errors are minimized. Metrics for specifying nonfunctional A few examples from Table 4.5: Property Measure [verifiable] Medical staff shall be able to use all the system functions after four hours of training. After this training, the average number of errors made by experienced users shall not exceed two per hour of system use. Speed Ease$of$Use Reliability Processed$transacDons/second User/event$response$Dme Training$Dme Mean$Dme$to$failure Rate$of$failure$occurrence 19 20

4.2 The software document Software Specification (SRS) - Official statement of - What will be implemented Should include: - User - Detailed system - Including functional and non-functional It is NOT a design document. - Should not indicate HOW the features will be implemented 21 Software Doc Users/Uses Set of users (readers): - System customers - Project managers - System developers - System test engineers - System maintenance engineers Uses: - Understand scope of system - Project planning - Design and implementation - System testing - User documentation 22 document variability Level of detail, length, and format depends on: - Type of system being developed - Size of system - Development process (software process) used - Presence of safety-critical features (formal notation) Incremental development: Incremental SRS. - Revise SRS at beginning of each iteration - Reviewed and approved document: Baseline SRS - Must have a baseline SRS for each iteration/cycle - Changes to the baseline during development must have special approval 23 IEEE Standard SRS template Table of Contents 1. Introduction 1.1. Purpose 1.2. Scope 1.3. Definitions, acronyms, and abbreviations 1.4. References 1.5. Overview 2. Overall Description 2.1. Product perspective 2.2. Product functions 2.3. User characteristics 2.4. Constraints 2.5. Assumptions and dependencies 2.6. Apportioning of 24 3. Specific 3.1.External Interface 3.2.Functional 3.3.Performance 3.4.Logical Structure of the Data 3.5.Design Constraints 3.6.Software System Attributes Appendices Index IEEE Std 830-1998 (on TRACS)

SRS writing: good practices Label sections, subsections, consistently - Don t ever renumber/relabel - Use sequential numbers OR - Hierarchical numbers or labels (1.1.2.3 or ship.table.col.sort) Use TBD as a placeholder for missing info - Resolve before accepting as baseline SRS Cross reference other documents (avoid duplication) User interface elements - Don t include screenshots in SRS (they are design specifications) 25 4.4 engineering processes 26 development Sub-disciplines Fig 2.4 The development process Elicitation - Interview and observe users to identify - Hold facilitated elicitation workshops Analysis - Organize (into groups) - Use models to depict the Specification - Carefully record in a repository (document) - Uniquely label, and record source of requirement Validation - Inspect the - Verify the quality of the Feasibility study Feasibility report elicitation and analysis System models specification User and system validation document 27 28

A spiral view of the development process (figure 4.12) specification System specification and modeling User specification Actors in Development Analyst (or Engineer) - Work with customers to gather, analyze, and document elicitation System req. elicitation User elicitation Business specification Start Feasibility study Prototyping validation - Developer may work in this role Stakeholders - customers, end users, legal staff - maybe members of developer organization Reviews System document 29 30 Stakeholders in MHC-PMS 4.5.1 Elicitation Patients whose information is recorded in the system. Doctors who are responsible for assessing and treating patients. Nurses who coordinate the consultations with doctors and administer some treatments. Medical receptionists who manage patients appointments. IT staff who are responsible for installing and maintaining the system. A medical ethics manager who must ensure that the system meets current ethical guidelines for patient care. Health care managers who obtain management information from the system. Medical records staff who are responsible for ensuring that system information can be maintained and preserved, and that record keeping procedures have been properly implemented. What is the goal of this discipline? Identify needs and constraints of stakeholders What methods are used to carry it out? - Interviews: meet with stakeholders one on one - Elicitation workshops: panel or forum of stakeholders - Ethnography: observation/immersion in user environment What are some tools that the analyst can use? - Scenarios: stories that describe specific interactions - Use Cases: generalized descriptions of interactions 31 32

Scenarios and Use cases What is a scenario? - Description of one (or more) specific interaction(s) between a specific user and the system - A narrative, a story, in language the user understands What is a use case? - Description of a single general interaction of an actor (or role) with the system. - Includes all alternatives that may occur during the interaction What is a use case diagram? - Consists of an actor (stick figure) and the name of the use case in an oval - Description of each use case is documented elsewhere Scenario for collecting medical history in MHC-PMS John, the patient, meets with Rita the receptionist. Rita searches for John's record in the system by family name ("Doe"). There's already a Doe in the system so she uses his first name and birthdate to find his record. Rita chooses to add medical history to John's record. Rita follows the prompts from the system and enters information about John's previous consultation with a psychiatrist that he had because he had been feeling suicidal. She also enters information about his existing medical conditions (he has diabetes) and the medication he is currently taking (Metformin). He has no allergies, so she leaves that blank. She fills in information about his home life (he is single, recently divorced, living alone). John's record is then entered into the database, and this fact is recorded into the system log showing the start and end time of the session and Rita's name. 33 34 Use case for collecting medical history in MHC-PMS, page 1 Initial assumption: The patient has seen a medical receptionist who has already created a record in the system containing his/her personal information (name, address, age, etc.). A nurse is logged into the system. Normal Interaction: The nurse searches for the patient by family name. If there is more than one patient with the same surname, the first name and date of birth are used to identify the patient. The nurse chooses an option to add medical history. The nurse then follows a series of prompts from the system to enter information about consultations elsewhere on mental health problems (free text input), existing medical conditions (selected from a list), medication currently taking (selected from a list), allergies (free text) and home life (filling out a form). 35 Use case for collecting medical history in MHC-PMS, page 2 What can go wrong: The patient's record cannot be found: The nurse should create a new record containing the patient's personal information. The patient conditions or medication are not on the list: The nurse should choose the 'other' option and describe the condition/medication (free text). The patient cannot/will not provide information on medical history: The nurse should enter a description of the patient's inability/unwillingness to provide information. The system should print the standard exclusion form stating that the lack of information may mean that treatment will be limited or delayed. This should be signed by the patient, and a copy given to the patient. Other activities: Record may be consulted but not edited by other staff members while information is being entered. System state on completion: The patient record, including the medical history is entered into the database. This fact is recorded in the system log, along with the start and end time of the session and the name of the nurse involved. 36

Use case diagram for the MHC-PMS Analysis Register patient Export statistics What is the goal of this discipline? Develop good quality, detailed Medical receptionist View personal info. Manager Generate report What methods are used to carry it out? Nurse Collect medical history View record Edit record Setup consultation 37 Doctor Each oval represents a single use case. Each one should also have a textual description. - Modeling: represent in a model, refine models user interactions with system and/or the problem space - Prototypes: use to clarify and explore with users What are some tools that the analyst can use? - Use cases and scenarios - Various UML models (ch. 5) 38 4.3 Specification What is the goal of this discipline? Translate collected user needs and constraints into written What format can the specifications take? - Natural language sentences - Structured specifications (forms/templates) - Graphical notations (UML diagrams, etc.) - Mathematical specifications: clear, but not universal Specifying user and system Both User and System level must be specified - See slide 7 User have to be understandable by endusers and customers who do not have a technical background. - Natural language is good for user - Be careful to avoid technical jargon or formal notation. System are more detailed and may include more technical information. 39 40

Natural language specification Natural language is expressive, intuitive and universal. - The can be understood by users and customers. Natural language is vague and ambiguous. - Assumed meaning often depends on the background of the reader. What are good guidelines for writing specifications in natural language? - Use a standard format (see next page) - Use active voice (the system shall...) Example for the insulin pump software system 3.2$The$system$shall$measure$the$blood$sugar$and$deliver$insulin,$if$ required,$every$10$minutes.!(changes!in!blood!sugar!are!rela1vely! slow!so!more!frequent!measurement!is!unnecessary;!less!frequent! measurement!could!lead!to!unnecessarily!high!sugar!levels.) 3.6$The$system$shall$run$a$selfLtest$rouDne$every$minute$with$the$ condidons$to$be$tested$and$the$associated$acdons$defined$in$table$1.! (A!self>test!rou1ne!can!discover!hardware!and!so?ware!problems! and!alert!the!user!to!the!fact!the!normal!opera1on!may!be! impossible.) These are user Each is one sentence, along with a rationale statement 41 42 Structured specifications An approach to writing using templates to write them in a standard way. A structured specification of a requirement for an insulin pump (p1) Insulin Pump/Control Software/SRS/3.3.2 Works well for some types of but is often too rigid for writing business system. - Name and description of the function or entity. - Description of inputs and where they come from. - Description of outputs and where they go to. - Description of the action to be taken. - Information about the information needed for the computation and other entities used. - Pre and post conditions (if appropriate). - The side effects (if any) of the function. Function Description Inputs Source Outputs Destination Compute insulin dose: safe sugar level. Computes the dose of insulin to be delivered when the current measured sugar level is in the safe zone between 3 and 7 units. Current sugar reading (r2); the previous two readings (r0 and r1). Current sugar reading from sensor. Other readings from memory. CompDose the dose in insulin to be delivered. Main control loop. 43 44

A structured specification of a requirement for an insulin pump (p2) CompDose is zero if the sugar level is stable or falling or if the level is increasing but the rate of increase is decreasing. If the level is increasing and the rate of increase is increasing, then CompDose is computed by dividing the difference between the current sugar level and the previous level by 4 and rounding the result. If the result, is rounded to zero then CompDose is set to the minimum dose that can be delivered. Action Two previous readings so that the rate of change of sugar level can be computed. Pre-condition The insulin reservoir contains at least the maximum allowed single dose of insulin. Post-condition r0 is replaced by r1 then r1 is replaced by r2. Side effects None. 4.6 Validation What is the goal of this discipline? Ensure demonstrate desired quality characteristics What are the desired characteristics? What methods are used to carry it out? - See slide 16 reviews (inspections): analyzed formally by stakeholders and developers Test case generation: can reveal problems in : ambiguity, vagueness, omissions How successful is this process? - This is a system requirement Somewhat, it s a very difficult problem. 45 46 Development 4.7 Management Problem: the specification document will need to change after development begins. - What are the effects of changing the set of during development? - 47 Errors may be found in the Users needs change Business needs change Rework: re-do design and implementation, if already started. Rewrite part of the specification doc 48

Management Who should decide what changes should be accepted? - Developers? - Customers/Users? - Project managers? - Analyst? Change Control board How do they decide? - change is proposed, validated against existing - proposal is evaluated for impact and cost - if approved, doc, design and implementation are updated 49 Management summary Includes all activities that maintain the integrity, accuracy, and currency of the document as the project progresses. - Controlling changes to baseline (Change control board) - Controlling versions of the document (revision control/version control/source control software) 50