Requirements analysis and specification

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
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.
Actors and use cases Use-case diagram Brief notation Prioritization Fully dressed notation Requirements Functional requirements  Use-cases.
Use cases.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Requirements and Design
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Object Oriented Analysis Process
Copyright ©2004 Cezary Z Janikow 1 Use Cases n Within Requirements discipline/workflow n Verbal descriptions of important functional (behavioral, transactional,
1 Software Requirements Specification Lecture 14.
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
Multimedia software life cycle
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Slide 1 Requirements Workflow. Slide 2 The Phases/Workflows of the Unified Process Figure 3.1 l Phase is Business context of a step Workflow is Technical.
The first step in getting what you want is to decide what you want.
Chapter 7: The Object-Oriented Approach to Requirements
The Software Development Life Cycle: An Overview
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
S/W Project Management
Requirements Management with Use Cases Module 6: Define the System Requirements Management with Use Cases Module 6: Define the System.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Requirements Analysis
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
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 Requirements (Advanced Topics) “Walking on water and developing software from a specification are easy if both are frozen.” --Edward V Berard.
Requirements Artifacts Precursor to A & D. Objectives: Requirements Overview  Understand the basic Requirements concepts and how they affect Analysis.
1 Unified Modeling Language Michael K. Wildes University of California, Riverside – Extension Program Presentation 2.
INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.
1 Analysis Extracting from Use Cases to Create Diagrams.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
 Development is organized in a series of short, fixed-length mini-projects called iterations  Iterations are also incremental  Successive enlargement.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
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.
2131 Structured System Analysis and Design By Germaine Cheung Hong Kong Computer Institute Lecture 8 (Chapter 7) MODELING SYSTEM REQUIREMENTS WITH USE.
Use Case Driven Analysis Requirements Use Case Use Case Description System Sequence Diagram Chapter 5.
1 Modeling System Requirements with Use Cases. 2 Why Do We Need Use Cases? Primary challenge in a system design process –ability to elicit correct and.
Information Systems Analysis and Management Modeling Sys. Requirements with Use Cases Arnie Lund, Jeffrey Kim May 5, 2009 INFO380.
Gerhard Dueck -- CS3013Requirements Capture 1  From Vision to Requirements  Why it is difficult?  Developers are not users  Inadequate requirements.
Requirements specification CSE432 Object-Oriented Software Engineering.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Requirements specification Why is this the first major stage of software development? –Need to understand what customer wants first Goal of requirements.
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
22 August, 2007Information System Design IT60105, Autumn 2007 Information System Design IT60105 Lecture 8 Use Case Diagrams.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Writing Use Cases: Requirements in Context.
Task Analysis Lecture # 8 Gabriel Spitz 1. Key Points  Task Analysis is a critical element of UI Design  It describes what is a user doing or will.
Task Analysis Lecture # 8 Gabriel Spitz 1. Key Points  Task Analysis is a critical element of UI Design  It specifies what functions the user will need.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
Chapter 6: Structuring Requirements: Use Case Description and Diagrams Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Chapter 3: Software Design –Use case Diagram Nouf Alghanmi.
Software Engineering Developing Requirements. © Lethbridge/Laganière 2001 Chapter 4: Developing requirements2 4.1 Domain Analysis The process by which.
 System Requirement Specification and System Planning.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Evolutionary requirements
User-centred system design process
Recall The Team Skills Analyzing the Problem (with 5 steps)
Unified Modeling Language
CS 790M Project preparation (I)
UNIT II.
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Software Requirements
Use cases Dr. X.
Presentation transcript:

Requirements analysis and specification CSE432 Object-Oriented Software Engineering

Requirements analysis and system specification Why is it one of first activities in software life cycle? Need to understand what customer wants first! Goal is to understand the customer’s problem Though customer may not fully understand it! Requirements analysis says: “Make a list of the guidelines we will use to know when the job is done and the customer is satisfied.” AKA requirements gathering or requirements engineering System specification says: “Here’s a description of what the program will do (not how) to satisfy the requirements.” Distinguish requirements gathering & system analysis? A top-level exploration into the problem and discovery of whether it can be done and how long it will take

Evolutionary requirements Requirements are capabilities and conditions to which the system and the project must conform A prime challenge of requirements analysis is to find, communicate, and remember what is really needed, in the form that clearly speaks to the client and development team members.

Functional (what behaviors it does) and non-functional (how it does them) Functional requirements describe system behaviors Priority: rank order the features wanted in importance Criticality: how essential is each requirement to the overall system? Risks: when might a requirement not be satisfied? What can be done to reduce this risk? Non-functional requirements describe other desired attributes of overall system— Product cost (how do measure cost?) Performance (efficiency, response time? startup time?) Portability (target platforms?), binary or byte-code compatibility? Availability (how much down time is acceptable?) Security (can it prevent intrusion?) Safety (can it avoid damage to people or environment?) Maintainability (in OO context: extensibility, reusability)

"Editor with undo" A very simple, initial requirements spec Why might a small and concise initial spec be a good idea? Fosters initial buy-in and agreement by everyone on team Traditional real-world specs are usually much longer What’s the purpose of a purpose or vision statement? Why is scope important? Why a glossary of terms and definitions? Business case and user perspective: Business context and case: Who wants it and why? User characteristics: profile of user community, expected expertise with system & domain User objectives: “wish list” from user’s perspective Interface requirements: GUI, API, communication interfaces, software interfaces

FURPS+ model (Grady 1992) FURPS is a checklist for requirements: Functional (features, capabilities, security) Usability (human factors, help, documentation) Reliability (frequency of failure, recoverability, predictability) Performance (response time, throughput, accuracy, availability, resource usage) Supportability (adaptability, maintainability, internationalization, configurability)

What’s with the + in FURPS+? And don’t forget…. Implementation (resource limitation, language and tools, hardware) Interface (constraints posed by interfacing with external systems) Operations (system management in its operational setting) Packaging (for example, a physical box) Legal (licensing)

Desiderata for a requirements specification Should say what, not how. Why? Correct: does what the client wants, according to specification Like motherhood and apple pie—how to accomplish it? Ask the client: keep a list of questions for the client Prototyping: explore risky aspects of the system with client Verifiable: can determine whether requirements have been met But how do verify a requirement like “user-friendly” or “it should never crash”? Unambiguous: every requirement has only one interpretation Consistent: no internal conflicts If you call an input "Start and Stop" in one place, don't call it "Start/Stop" in another Complete: has everything designers need to create the software Understandable: stakeholders understand enough to buy into it Tension between understandability and other desiderata? Modifiable: requirements change! Changes should be noted and agreed upon, in the spec!

Use cases First developed by Ivar Jacobson Now part of the UML (though not necessarily object-oriented) Emphasizes user’s point of view Explains everything in the user’s language A "use case" is a set of cases or scenarios for using a system, tied together by a common user goal Essentially descriptive answers to questions that start with “What does the system do if …” E.g., “What does the auto-teller do if a customer has just deposited a check within 24 hours and there’s not enough in the account without the check to provide the desired withdrawal?” Use case describes what the auto-teller does in that situation Use case model = the set of all use cases Why are use cases good for brainstorming requirements?

Brief Use Case format Brief format narrates a story or scenario of use in prose form, e.g.: Rent Videos. A Customer arrives with videos to rent. The Clerk enters their ID, and each video ID. The System outputs information on each. The Clerk requests the rental report. The System outputs it, which is given to the Customer with their videos.

Fully dressed Use Case (from Fowler & Scott, UML Distilled) Use Case: Buy a Product (Describe user’s goal in user’s language) Actors: Customer, System (Why is it a good idea to define actors?) Customer browsers through catalog and selects items to buy Customer goes to check out Customer fills in shipping information (address; next-day or 3-day delivery) System presents full pricing information, including shipping Customer fills in credit card information System authorizes purchase System confirms sale immediately System sends confirming email to customer (Did we get the main scenario right?) Alternative: Authorization Failure (At what step might this happen?) 6a. At step 6, system fails to authorize credit purchase Allow customer to re-enter credit card information and re-try Alternative: Regular customer (At what step might this happen?) 3a. System displays current shipping information, pricing information, and last four digits of credit card information 3b. Customer may accept or override these defaults Return to primary scenario at step 6

Scenario, use case and goal A scenario is a specific sequence of actions and interactions in a use case. One path through the use case E.g., The scenario of buying a product A use case is a collection of success and failure scenarios describing an actor using a system to support a goal.

Heuristics for writing use case text Avoid implementation specific language in use cases, such as IF-THEN-ELSE or GUI elements or specific people or depts Which is better: “The clerk pushes the OK button.” or: “The clerk signifies the transaction is done.”? The latter defers a UI consideration until design. Write use cases with the user’s vocabulary, the way a users would describe performing the task Use cases never initiate actions; actors do. Actors can be people, computer systems or any external entity that initiate an action. Use case interaction produces something of value to an actor Create use cases & requirements incrementally and iteratively Start with an outline or high-level description Work from a vision and scope statement Then broaden and deepen, then narrow and prune

More use case pointers Add pre-conditions and post-conditions in each use case: What is the state of affairs before and after use case occurs? Why? Some analysts distinguish between business and system use cases: System use cases focus on interaction between actors within a software system Business use cases focuses on how a business interacts with actual customers or events Fowler prefers to focus on business use cases first, then come up with system use cases to satisfy them Note iterative approach in developing use cases, too

Text and Diagrams Use case text provides the detailed description of a particular use case Use case diagram provides an overview of interactions between actors and use cases

Use case diagram Bird’s eye view of use cases for a system Stick figures represent actors (human or computer in roles) Ellipses are use cases (behavior or functionality seen by users) What can user do with the system? E.g., Trader interacts with Trader Contract via a Trade Commodities transaction <<include>> relationship inserts a chunk of behavior (another use case) <<extend>> adds to a more general use case

Advantages of use cases What do you think? Systematic and intuitive way to capture functional requirements? Facilitates communication between user and system analyst: Text descriptions explain functional behavior in user’s language Diagrams can show relationship between use case behaviors When should we bother with diagrams? Use cases can drive the whole development process: Analysis understand what user wants with use cases Design and implementation realizes them How can use case help with early design of UI prototype? How can use cases set up test plans? How can use cases help with writing a user manual?

Use cases assignment Develop a set of use cases and a use case diagram for a simple ATM (simple means you can just consider two kinds of accounts, savings and checking, and two transactions, deposits and withdrawals) Due anytime Sunday, September 7 on Blackboard

Requirements Assignments By Monday, September 8, email me a tentative project title, customer and level of commitment to the project, and other team members their roles. By Monday, September 15, email me a link to a web site containing the above (perhaps revised), plus: Write a high-level requirements specification Write uses cases describing crucial system behavior Preliminary estimates (person-hours) for project, including rest of analysis design, implementation & testing Assess any risks associated with the project