Software Requirements

Slides:



Advertisements
Similar presentations
Slide 1 Shall Lists. Slide 2 Shall List Statement Categories  Functional Requirements  Non-Functional Requirements.
Advertisements

Chapter 05: Evolutionary Requirements Definition : Requirements  “Requirements are capabilities and conditions to which the system, and more broadly.
© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Object-Oriented Analysis and Design
COMP 350: Object Oriented Analysis and Design Lecture 3 Case Studies, Inception & Use Cases References: Craig Larman Chapters 3-6.
Fall 2009ACS-3913 Ron McFadyen1 Use Cases Used to capture functional requirements – there are other requirements categories such as usability, reliability,
Solving the Problem Analysis & Design.
Use Cases & Requirements Analysis By: Mostafa Elbarbary.
Understanding Requirements
Copyright ©2004 Cezary Z Janikow 1 Use Cases n Within Requirements discipline/workflow n Verbal descriptions of important functional (behavioral, transactional,
Software engineering Olli Alm Lecture 2: requirements, modelling & representation.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 More on use cases System sequence.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Use cases: deciding what you want.
Requirements Engineering
The first step in getting what you want is to decide what you want.
Object-Oriented Analysis - Instructor Notes
Rational Unified Process (Part 1) CS3300 Fall 2015.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Software Architecture in Practice Architectural description (The reduced version)
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 20. Review Software Requirements Requirements Engineering Process.
Inception Is there a project in there? What’s the vision, scope & business case?
USE CASE Bayu Adhi Tama, MTI Faculty of Computer Science, University of Sriwijaya Slides are adapted from Petrus Mursanto
Object-Oriented Analysis and Design Jan 14, 2009.
Jan 7, A UP project organizes the work and iterations across four major phases: – Inception -- approximate vision, business case, scope, vague estimates.
OOSE Use Case. Requirement Functional: –Features, capabilities, and security Non Functional: –Usability: Human factors, help, and documentation –Reliability:
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
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.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
OO Methodology Inception Phase.
Business Analysis with For PG MDI, Gurgaon Kamna Malik, Ph.D.
R R R CSE870: Advanced Software Engineering: UML-- Use Cases1 Use Cases and Scenarios.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Sept Ron McFadyen1 Use Cases Introduced by Ivar Jacobson in 1986 literal translation from Swedish ”usage case” Used to capture and describe.
PRESENTATION ON USE CASE. Use Case Modeling Use case diagrams describe what a system does from the standpoint of an external observer. The emphasis is.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Writing Use Cases: Requirements in Context.
1 Software Requirements Engineering (CS 708) Dr. Ghulam Ahmad Farrukh.
Requirements capture: Using UML Use Cases David Millard and Yvonne Howard {dem,
Jan Ron McFadyen1 Use Cases Used to capture functional requirements – there are other requirements categories such as usability, reliability,
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Software Requirements Engineering (CS 708)
Elaboration popo.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Use Cases and Scenarios
Security Management: Successes and Failures
Use Cases Discuss the what and how of use cases: Basics Benefits
Evolutionary requirements
(Professional Business Analyst Training organisation)
System Sequence Diagrams and Operation Contracts
Recall The Team Skills Analyzing the Problem (with 5 steps)
Architecture Concept Documents
Software Requirements
Software Requirements
Webapp Design with System Sequence Diagrams
Use Case Model Use case diagram.
UML Use Case Diagrams.
Writing Use Cases.
Software Requirements
Unified Process(UP) popo.
Requirements Analysis
Evolutionary Requirements
Software Requirements Specification Document
Requirements Management
Requirements Very High level specification of what system should do
Software Requirements
Object-Oriented Software Engineering
Software Requirements
Software Requirements
Use cases Dr. X.
Presentation transcript:

Software Requirements

Iterative Development Process Requirements Planning Implementation Analysis Design Deployment Testing Evaluation Initial Planning We are here

Problems Need to figure out what customer wants Not make false/incorrect assumptions Need to chunk work into bite-sized pieces So work can be divided up So system can be built incrementally So estimates are remotely accurate

What are software requirements? Capabilities and conditions to which the system must conform

What are software requirements? Come in many different flavors High-level, low-level User, system Functional, non-functional Implementation details

What are software requirements? Functional Services the system provides How the system reacts to inputs How the system behaves in situations What the system does not do Non-functional Constraints on the services the system provides E.g., timing, standards, development process

FURPS+ Classification of Requirements Functional: features, capabilities, security Usability: human factors, help, documentation Reliability: frequency of failure, recoverability, predictability Performance: response times, throughput, accuracy, availability, resource usage Supportability: adaptability, maintainability, internationalization, configurability

And here’s the + Implementation: resource limitations, languages and tools, hardware Interface: constraints imposed by interfacing with external systems Operations: system management in its operational setting Packaging: for example, a physical box Legal: licensing, etc.

Lists of definitions like this can be a bit tedious (SE is certainly full of them) Their main benefit is as a checklist, so you don’t forget anything important

Functional requirements Functional: features, capabilities, security Usability: human factors, help, documentation Reliability: frequency of failure, recoverability, predictability Performance: response times, throughput, accuracy, availability, resource usage Supportability: adaptability, maintainability, internationalization, configurability Often most attention gets put here and non-functional are fogotten

Non-functional Functional: features, capabilities, security Usability: human factors, help, documentation Reliability: frequency of failure, recoverability, predictability Performance: response times, throughput, accuracy, availability, resource usage Supportability: adaptability, maintainability, internationalization, configurability

Lets try it! List out a few bullets for each… Functional: features, capabilities, security Usability: human factors, help, documentation Reliability: frequency of failure, recoverability, predictability Performance: response times, throughput, accuracy, availability, resource usage Supportability: adaptability, maintainability, internationalization, configurability

Ok, so lets look at ways to gather and manage requirements

“Plan using units of customer-visible functionality.” User stories (USs) “Plan using units of customer-visible functionality.” Quote from Kent Beck’s Extreme Programming Explained (2005). http://flic.kr/p/884GBP

Flight-Booking System Example

Flight-Booking System Example

Flight-Booking System Example Two parts: title and description

User Story Dos and Don’ts USs should … USs should not … describe one thing that the software needs to do for the customer be written using language that the customer understands be written by the customer (figuratively speaking) be short. Aim for no more than three sentences be a long essay use technical terms that are unfamiliar to the customer mention specific technologies mention implementation details Principle: Keep requirements customer-oriented

Helpful US-Description Template Template: “As a <who>, I want <what> <why>.” Can be rearranged as long as it includes who, what, why Example: “As a dog, I want to order food online, so I don’t have to rely on people anymore.” “Why” is optional, but helpful Don’t be afraid to have multiple whos, each with their own why Who: user, admin, car buyer, car seller

US-Description Examples: Who and What

Helpful US-Title Template: Verb + Noun

Let’s write some user stories! Title: <verb> <noun> Description: As a <who>, I want <what> <why>.

Software Requirements Specification (SRS) IEEE Std 830-1993 Very formal, very long… template is 30 pages! Won’t be covering it, just be aware of its existence

Unified Modeling Language Won’t be studying this either Used to be popular, still used

Use Cases Text stories of an actor using a system to meet goals Can be either formal/structured or informal

Example: Processing a sale at a grocery store Process Sale: A customer arrives at a checkout counter. The cashier uses the POS system to record each purchased item. The system presents a running total and line-item details. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a receipt from the system and then leaves with the items.

Actor: something with behavior, such as a person, computer, organization Scenario: specific sequence of actions and interactions between actors and the system Use case: collection of related success and failure scenarios that describe an actor using a system to support a goal

Example: Processing a sale at a grocery store Process Sale: Main success scenario: A customer arrives at a checkout counter. The cashier uses the POS system to record each purchased item. The system presents a running total and line-item details. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a receipt from the system and then leaves with the items. Alternative scenarios: If the customer paid by credit, and the reimbursement transaction to their credit account is rejected, inform the customer and pay them with cash. If the item identifier is not found in the system, notify the cashier and suggest manual entry of the identifier code (perhaps it is corrupted). If the system detects failure to communicate with the external accounting system…

Example: Processing a sale at a grocery store Process Sale: Main success scenario: A customer arrives at a checkout counter. The cashier uses the POS system to record each purchased item. The system presents a running total and line-item details. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a receipt from the system and then leaves with the items. Preconditions: Cashier is identified and authenticated Customer has nonzero items Alternative scenarios: If the customer paid by credit, and the reimbursement transaction to their credit account is rejected, inform the customer and pay them with cash. If the item identifier is not found in the system, notify the cashier and suggest manual entry of the identifier code (perhaps it is corrupted). If the system detects failure to communicate with the external accounting system…

Structure of a Use Case Preconditions Main success scenario Assumptions for a Use Case to happen Avoid obvious ones… user is alive, computer is plugged in Main success scenario Story of a user achieving a goal using a system Alternative scenarios Things that could go wrong Other choices the user could make E.g., customer doesn’t want an item at checkout E.g., credit card is rejected

Aha! Why create use cases? Easy to understand/contribute Help communication Emphasize user goals Keep the requirements focused on the customer Avoid working on tasks with no use case Identify unthought of features http://flic.kr/p/5dFxK2 Aha!

Which UCs to write/refine first? High value I.e.: Represent system’s core functionality High risk Architecturally significant http://en.wikipedia.org/wiki/File:Iterative_development_model_V2.jpg

User stories, use cases, and issues How to apply this to your project? Use US and UC to plan iterations Break them down into smaller Issues Aim to complete a US by a specific iteration

Activity: Creating use cases http://en.wikipedia.org/wiki/File:Barclayscyclehire.jpg

Structure of a Use Case Preconditions Main success scenario Assumptions for a Use Case to happen Avoid obvious ones… user is alive, computer is plugged in Main success scenario Story of a user achieving a goal using a system Alternative scenarios Things that could go wrong Other choices the user could make E.g., customer doesn’t want an item at checkout E.g., credit card is rejected