Requirements Engineering and Management INFO 627

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
CS 411W - Notes Product Development Documentation.
Project Scope Management
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
UI Standards & Tools Khushroo Shaikh.
Requirements Specification
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
SE 555 – Software Requirements & Specifications Introduction
1 Software Requirements Specification Lecture 14.
Chapter 5: Project Scope Management
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Systems Analysis I Data Flow Diagrams
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
INFO 355Week #61 Systems Analysis II Essentials of design INFO 355 Glenn Booker.
The Software Development Life Cycle: An Overview
S/W Project Management
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Typical Software Documents with an emphasis on writing proposals.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Supplementary Specifications (Chapters 20,22 - Requirements Text) Question 1 by Steve & Chandan (Along with others in the past! - See notes, below)
INFO 637Lecture #61 Software Engineering Process II Designing with Teams INFO 637 Glenn Booker.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
An Introduction to Software Architecture
Software engineering lec4 Requirements. Developing requirements Start thinking about particular problem Understand the problem  Domain analysis Gather.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Supplementary Specifications (Chapters 20,22 - Requirements Text) 1.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
INFO 424 Team Project Practicum Week 3 – Software Requirements Specification Glenn Booker Notes mostly from Prof. Hislop and INFO.
Feasibility Study.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Software Requirements (Advanced Topics) “Walking on water and developing software from a specification are easy if both are frozen.” --Edward V Berard.
INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.
Approaching a Problem Where do we start? How do we proceed?
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
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.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
1 Quality Attributes of Requirements Documents Lecture # 25.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Smart Home Technologies
Prof. Hany H. Ammar, CSEE, WVU, and
Software Requirements Specification Document (SRS)
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
SCOPE DEFINITION,VERIFICATION AND CONTROL Ashima Wadhwa.
CSC480 Software Engineering Lecture 7 September 16, 2002.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
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.
Information Technology Project Management, Seventh Edition.
 System Requirement Specification and System Planning.
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.
Classifications of Software Requirements
Requirements Elicitation and Elaboration
Software Documentation
Software Requirements Specification Document
Software Requirements
Lecture # 7 System Requirements
Requirements Document
Presentation transcript:

Requirements Engineering and Management INFO 627 Refining the System Definition Glenn Booker INFO 627 Lecture #6

Requirements Now that we have a good idea of the customer needs, have defined the main features for our system, and selected a structure for managing the implementation of those features… *whew* We can now work on refining requirements to guide development and testing INFO 627 Lecture #6

Requirements As we define and refine requirements, it must be clear that the written description of those requirements is the only authority as to what we are creating And changes in scope or intent need to be reflected immediately We started by defining features vaguely – now we add details INFO 627 Lecture #6

Requirements The system must fulfill user needs The system requirements must be complete and consistent, and fit in the environment where it will live Definition of requirements also supports detailed feasibility study, to ensure we are making a wise investment INFO 627 Lecture #6

Requirements How precise requirements need to be depends on the type of application and the industry it supports We hope that aircraft flight control software is designed more carefully than Microsoft Word Goal is to produce understandable requirements to support meeting user needs INFO 627 Lecture #6

Requirements Many methods or models can be used to express requirements Use Cases Natural language Formal methods (Z or Larch) Storage and management of those requirements could be in a spreadsheet or database INFO 627 Lecture #6

Requirements Requirements need to be: Understood by all parties concerned Specific enough to be verified and demonstrated From the beginning, think of requirements in terms of being able to prove whether they have been fulfilled (“Trust but verify”) INFO 627 Lecture #6

Software Requirements Software requirements are generally related to some capability the user needs to have, or some capability the systems needs for some other reason Inputs and outputs are good places to start looking for requirements Don’t forget non-functional requirements! INFO 627 Lecture #6

Software Requirements Think of the system as a black box, and focus on what needs to go into and leave the system Five major classes of things can describe a system (per Davis) Inputs to the system, in terms of content, format, and source INFO 627 Lecture #6

Software Requirements Outputs from the system, including the type of output device, and format of the outputs Functions of the system, to accept inputs and/or create outputs Attributes of the system, such as the “–ilities”, throughput, and performance Attributes of the system environment, such as where it is used, and compatibility with other systems INFO 627 Lecture #6

Software Requirements Using this kind of breakdown helps ensure completeness of requirements Also can use these categories to help determine if something really is a requirement Features lead to one or more requirements So requirements help to define the scope and exact capabilities of features INFO 627 Lecture #6

Mapping Features to Requirements 1E p. 231 We need to trace the origin of requirements from their corresponding features This traceability helps ensure we define complete requirements All features result in one or more requirements [Side note: Microsoft products don’t recognize “traceability” as a word…does that tell us something about their products?] INFO 627 Lecture #6

What Requirements Are Not The challenge in writing requirements is to avoid things which shouldn’t impersonate requirements Project management information Unneeded design or implementation details Testing information Requirements should focus on system behavior, not its inner workings INFO 627 Lecture #6

Project Management Information Requirements should not include Budget, staffing, or schedule information Configuration management plans Testing plans (except maybe hints for very unusual cases) Put these in separate Program Management Plan, CM Plan, etc. INFO 627 Lecture #6

Unneeded Design Details Do not define the system design or architecture as requirements Reduces the creativity of the developers to use an even better approach Includes specifying development language, tools, design methodology (e.g. OO vs. relational database) INFO 627 Lecture #6

Design Constraints If an aspect of the system design is artificially constrained BY THE CUSTOMER, make it a design constraint Only if the customer mandated it Other design decisions should only appear in design documents, not hiding among requirements E.g. if using VB is the best language INFO 627 Lecture #6

Testing Plans Requirements do not include Test plans Verification and validation plans Test cases In very rare cases, a testing approach may be hinted at or suggested if a suitable approach may not be obvious INFO 627 Lecture #6

Implied Requirement Details Beware of stating assumptions about the form or format of an input or output E.g. an output might be assumed to be on paper, but why not a web page or PDF file? Be clear what assumptions are made about the environment the user will have Don’t necessarily have a keyboard and mouse INFO 627 Lecture #6

Requirements vs. Design Requirements (what the system does) should be determined before design Requirements are determined by the users and customers, since they (generally) know their needs best Design (how) is done by technical experts, because they know the options available INFO 627 Lecture #6

Requirements vs. Design Yet trying to implement requirements may lead to a design which alters the req’ts Hence in reality, design and requirements are iterative, feeding off each other until an acceptable balance is achieved Changes in technology can drastically affect requirements (client/server vs. web) INFO 627 Lecture #6

Types of Requirements A basic breakdown of requirements may include: 1E p. 237 A basic breakdown of requirements may include: Functional software requirements Non-functional software requirements Design constraints Functional requirements focus on actions (user does x, system does y) See also lecture 2, INFO 620 for the FURPS+ model INFO 627 Lecture #6

Non-Functional Requirements Non-functional requirements typically include: Usability Time needed for training Time to perform task Usability compared to other systems Availability of help Compliance with HCI standards (Windows, Mac) INFO 627 Lecture #6

Non-Functional Requirements Reliability Availability (%) Mean time between failures (MTBF, hours) Mean time to repair (MTTR, hours) Accuracy (numeric precision, number of decimals) Defect rate (defects/1000 lines of code) Bugs per type (number of bugs by severity) INFO 627 Lecture #6

Non-Functional Requirements Performance Response time for a transaction – average, maximum, some % below some value Throughput (transactions per second) Capacity (number of simultaneous users) Degraded modes of operation (what are performance expectations if system is partially offline) INFO 627 Lecture #6

Non-Functional Requirements Supportability Expected implementation time for minor, medium, and major enhancements Planned or possible future enhancements mostly affect design decisions INFO 627 Lecture #6

Design Constraints We generally want to define requirements so that several design approaches might be used to implement them Constraints might need to be imposed such as the development language, use of corporate reuse libraries, coding standards, or external standards such as FDA, DOD or FCC regulations INFO 627 Lecture #6

Design Constraints Should distinguish constraints from requirements, such as using a “DC” prefix, and isolate them from the true requirements Identify the source of each constraint, and why it was imposed (if known) INFO 627 Lecture #6

Parent-Child Requirements A child requirement specifies details about its parent Could look on as the parent is a requirement, and the child a specification Don’t go crazy with lots of grandchildren and great-grandchildren – usually not worth the effort INFO 627 Lecture #6

Use Case Refinement Use cases make sense particularly when a system has lots of functions to perform, and you’re using an OO methodology If there are few users or interfaces, or extensive non-functional requirements, might not be the best choice INFO 627 Lecture #6

Use Case Refinement Use cases focus on who does something (actor), how they interact with the system, and what the system does in response (including tasks like saving data, displaying a report, etc.) Use case must be of value to the actor Name each use case clearly and concisely INFO 627 Lecture #6

Use Case Refinement Refinement of use cases may include: The basic flow, or main success scenario Variants or alternative flows – such as different methods of payment, processing personal versus business orders, or error conditions Preconditions – what happens before this use case may be used? Postconditions – what has changed as a result of this use case? INFO 627 Lecture #6

Software Requirements Specification (SRS) A Software Requirements Specification (SRS) defines the conceptual model of what the system will be Main standard is IEEE 830:1998 SRS isn’t always a single document, but a collection of documents and models Is a living package; evolves with the system INFO 627 Lecture #6

SRS Purpose The SRS serves to communicate among the developers and various stakeholders Represents an agreed contract as to what will and won’t be in the system Provides a basis for tracking completion of the system Feeds design, testing, training, etc. INFO 627 Lecture #6

SRS Ownership The SRS is owned by the developers Often each part may have a separate owner who is responsible for that part All are overseen by the Vision champion, chief architect, and the program manager INFO 627 Lecture #6

SRS Format There are many ways to arrange the contents of an SRS Text provides one structure (1E pp. 266-267), which assumes you are using use cases IEEE 830 provides another (p. 11 therein), which is more generalized Not all sections apply to every system; use “Not Applicable” if that’s the case INFO 627 Lecture #6

SRS Contents Some parts of the SRS look like Vision contents – purpose, scope, constraints, interfaces, documentation and help – but here the latter are described in more detail Other issues are now addressed – licensing and legal issues, purchased components (implying some design concept), and all requirements are identified (not just key) INFO 627 Lecture #6

SRS Contents The main body of the SRS is a detailed description of the functional and non-functional requirements Functional requirements can be broken down many ways INFO 627 Lecture #6

Functional Requirements Functional requirements may be organized (IEEE 830, App. A) by: Mode of operation of the system; best used for software-intensive mechanical systems, each mode’s functional requirements are detailed (scanning mode, editing mode, acquisition mode, etc.) If needed, each mode’s interfaces, functional, and performance requirements can be addressed INFO 627 Lecture #6

Functional Requirements User class; where each type of user of the system has well defined activities they must perform, then their functional requirements are listed Class; for object oriented systems; each class is described in terms of its attributes, methods, and messages INFO 627 Lecture #6

Functional Requirements Feature; similar to use case descriptions, identify when and how each feature is to be used, and the functional requirements for each feature Stimulus; useful when the system’s responses (functional requirements) are based on what kind of specific stimulus or message it receives INFO 627 Lecture #6

Functional Requirements Functional hierarchy; break the requirements down by information flow, process, or data construct, and provide a data dictionary to specify each data element’s format; good for reengineering legacy information systems Or any combination of the above methods (multiple organizations), such as mixing user class then stimulus and response INFO 627 Lecture #6

Non-Functional Requirements Non-functional requirements can be documented according to the structure already outlined Usability Reliability Performance Supportability INFO 627 Lecture #6

Balancing Requirements We need to review requirements for Consistent level of detail throughout the system Adequate level of detail to guide implementation, without over constraining that implementation Most of the SRS is text; graphics can be helpful but beware of adding implied design INFO 627 Lecture #6