Requirements

Slides:



Advertisements
Similar presentations
Understanding Requirements Unit II
Advertisements

Beyond “The System Shall...” A Journey from Good to Great Requirements.
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
Evaluating Requirements
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 R&D SDM 1 Software Project Management Requirements Analysis 2010 Theo Schouten.
Chapter 5 Understanding Requirements
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
Android programming club Thursdays 5-7pm Info… Ryley Herrington iOS programming club Info… Ben Lanegan or.
Diagram Notations
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
1 R&D SDM 1 Software Project Management Requirements Analysis 2009 Theo Schouten.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Requirements
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
Evaluating Requirements
1 College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 2 Chapter 6 & 7 System.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 7 Requirements Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Chapter 4 Requirements Engineering
S/W Project Management
RUP Requirements RUP Artifacts and Deliverables
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.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Requirements Engineering How do we keep straight what we are supposed to be building?
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
IS 466 ADVANCED TOPICS IN INFORMATION SYSTEMS LECTURER : NOUF ALMUJALLY 22 – 10 – 2011 College Of Computer Science and Information, Information Systems.
Software Requirements (Advanced Topics) “Walking on water and developing software from a specification are easy if both are frozen.” --Edward V Berard.
Requirements Documentation CSCI 5801: Software Engineering.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Chapter 7 Requirements Engineering
Chapter 9 요구사항 모델링: 시나리오 기반 방법론 Requirements Modeling: Scenario-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim.
Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com.
Approaching a Problem Where do we start? How do we proceed?
Lecture 7: Requirements Engineering
Lecture-3.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Lecture 2 Developing Requirements
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Systems Development Life Cycle
By Germaine Cheung Hong Kong Computer Institute
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirements Engineering Requirements Elicitation Overview of Requirements Analysis.
Requirements
Evaluating Requirements
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirement Engineering
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
UML - Development Process 1 Software Development Process Using UML.
Software Engineering Lecture 10: System Engineering.
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.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
 System Requirement Specification and System Planning.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Recall The Team Skills Analyzing the Problem (with 5 steps)
Requirements Elicitation and Elaboration
Software Requirements analysis & specifications
Chapter 7 Requirements Engineering
Chapter 5 Understanding Requirements
Chapter 7 Requirements Engineering
Requirements Engineering Tasks
Chapter 5 Understanding Requirements
Chapter 5 Understanding Requirements.
Use Case Modeling Part of the unified modeling language (U M L)
Requirements
Presentation transcript:

Requirements

Just Right? Or “all kinds of wrong”? It depends on the system’s purpose.

What is it? Before beginning any technical work it’s a good idea to apply a set of requirements engineering tasks. These tasks lead to an understanding of what the business impact of the software will be, what the customer wants, and how end users will interact with the software.

Who does it? Software engineers termed as analysts. Other stakeholders also participate in this process

Why is it important? Designing and building a program that solves the wrong problem serves noone’s need. Its important to understand what the customer wants before you design and build a system (Its great to come up with idea and then contact potential customers)

What are the steps? Inception : scope and nature of problem to be solved. Elicitation: a task that helps stakeholders define what is required Elaboration: basic reqts are modified and refined. Negotiation: based on priorities Validation: ensure what you understood is right

What is the work product? The intent is to provide all parties with a understanding of the problem. This can be achieved through a number of work products: usage scenarios, functions, feature list, requirements models or a specification document!

Requirements analysis Ways to figure out what the system should do: – Get the customers to write down what they want – Talk with customers and make some diagrams – Watch users in “daily life” to see what they need – Look up the requirements from a standards body – Gather with customer & users to discuss, argue, and negotiate Any combination, variation, or extension of the above

Standish survey of software development projects (1994) Factors Reported for Failure – 13.1% - Incomplete Requirements – 10.6% - Lack of Resources – 9.9 % - Unrealistic expectations – 9.3 % - Lack of Executive support – 8.7 % - Changing requirements and specification – 8.1 % - Lack of Planning – 7.5 % - System no longer Needed

SEVEN TASKS : INCEPTION how does a project get started? a) sometimes it could just be a conversation wit a consumer b) most times its an actual business need

SEVEN TASKS: INCEPTION At this stage you establish a basic understanding of the problem the people who want solution nature of solution desired and the effectiveness of preliminary collaboration between stakeholders and software team

ELICITATION It seems simple ask the customer, the users and others the objective for the system what is to be accomplished and how the system or product fits into needs and finally produce system! But not so easy.

ELICITATION A number of problems are encountered: – Problem of scope: users specification may confuse rather than clarify the system objectives. – Understanding: poor understanding of capabilities and LIMITATIONS : ambiguous or un-testable. – Volatility: requirements change over time.

ELABORATION The info obtained during inception and elicitation is expanded and refined in this phase. Focuses on developing a refined requirements model (software function behavior info). Its driven by creation and refinement of USER SCENARIOS that describe how the end user will interact with the system. Class, collaboration, relationship, attributes : identified.

NEGOTIATION It isn’t unusual for customers and users to ask for more than can be achieved given limited business resources. Its also common for different customers to propose conflicting requirements. Eg grocery online

NEGOTIATION You have to reconcile these conflicts through a process of negotiation. One way of achieving this would be to rank requirements (customers/users/stakeholders) and then discuss conflicts in priority Using an iterative approach that prioritize requirements, assesses their cost and risk and address internal conflicts: requirements are eliminated, combined or modified!

SPECIFICATION Specification can mean different things to different people: written document, set of graphical models, mathematical model, collection of scenarios, prototype or a combination of these. There are some std templates SRS document( software reqts specification) : which makes it more consistent and understandable. However sometimes have to be flexible

VALIDATION Requirements validation: examines the specification to ensure that all software requirements have been state unambiguously ; that inconsistencies omissions and errors have been detected and corrected. Its like a technical review by the review team!

REQUIREMENTS MANAGEMENT Set of activities that help the project team identify, control and track requirements and changes to requirements at any time

Requirements Requirements state the purpose of the system Very helpful for – Communicating with customers and co-workers – Keeping track of everything that needs to get done – Helping you and the customer decide what really needs to get done, anyway Hint: customers often don’t know what they really need! Discussing requirements helps them to understand their needs.

Good requirements are… Correct: They have to say the right things. Consistent : They can’t contradict each other. Unambiguous: Each must have 1 interpretation. Complete: They cover all the important stuff. Relevant: Each must meet a customer need. Testable: There must be a way to tell if they are satisfied. Traceable: There must be a way to determine their origin.

Typical parts of requirements documentation Functional requirements – Unstructured text – Use cases Non-functional requirements – Unstructured text Fit criteria Diagrams – Class diagrams and entity-relationship diagrams – Dataflow, sequence, and state diagrams

Functional vs nonfuntional Functional requirements are typically phrased with subject/predicate constructions, or noun/verb. "The system prints invoices." Non- functional requirements may be found in adverbs or modifying clauses, such as "The system prints invoices *quickly*" or "The system prints invoices *with confidentiality*".

Functional vs nonfuntional From a mathematical point of view, a "function" takes an input(s) and yields an output(s). "Functional" refers to the set of functions the system it to offer, while "non- functional" refers to the manner in which such functions are performed.

Functional requirements: tell what the system should do Can be written as unstructured text – Can be written from External viewpoint (requirements definition) System viewpoint (requirements specification) Can be written as structured use cases

Unstructured text… external vs system viewpoint A requirements definition is stated from the viewpoint of somebody outside the system: – The system is a black box with some interface – The emphasis is on the role of the system A requirements specification is stated from the viewpoint of somebody inside the system: – The environment is accessed via inputs & outputs – The emphasis is on how the system works

External vs system viewpoint, example External, stated from the viewpoint of somebody outside the system boundary: e.g.: “The sprinkler never runs on rainy days” Internal, stated from the viewpoint of somebody inside the system boundary: e.g.: “The controller will not engage the water pump any time the ambient water sensor is triggered.”

Which of these are definitions? Which are specifications? “If the system detects that the drawbridge is down at noon, then it will raise the bridge for 10 minutes by activating the lift actuators.” “The bridge will open 12:00-12:10pm daily.” “Web sites will be spidered every day” “The pilot can retract the landing gear by pressing a button” “When it receives an http DELETE operation, the system will mark the record as deleted.”

Use cases: structured requirements definitions Each use case describes an activity supported by the system – Put another way, each use case describes a way to use the system – Each use case is like a “bundle of scenarios” that are all the same except for very minor details Being structured, use cases are a little more formal and precise than unstructured text.

What’s in a (basic) use case? Use case name: succinct and meaningful Actor: who “does” the activity? Preconditions: what is true before the activity? Postconditions: what is true after the activity? Flow of events: what steps do the actor and the system perform during the scenario?

Example Use case #1: Report repression Actor: Citizen in repressive country Preconditions: -User has a cell phone connectivity -User has Twitter account Postconditions: -System has recorded information about a repressive event, including location & details

Example continued… Use case #1: Report repression Flow of events: -User posts a tweet giving city & country name, description of repression, and tag #repression -System periodically retrieves all #repression tweets via Twitter API -System parses tweet and geocodes locations -If location is ambiguous, system asks user to clarify (UC #2: Clarify tweet) -System records location and event in database

Example Use case #2: Clarify tweet Actor: Citizen in repressive country Preconditions: - User sent a tweet with ambiguous location Postconditions: - System has gotten clarification of location

Example continued… Use case #2: Clarify tweet Flow of events: -System replies to user, asking for user to clarify the city and country of the initial post -User edits and re-tweets the original message -Repeat above two steps until system can determine the location of the tweet

Non-functional requirements Describe how well the system should do stuff – Can be written as unstructured text – Often written in terms of fit criteria Exactly how good does the system need to be? Tightly related to important quality attributes Fit criteria should not be “imagined”, but instead driven by customer needs

Non-functional requirements usually relate to quality attributes The “quality attributes” of great software: Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability

Examples: What quality attribute? “The system must ask for tweet clarification within 5 minutes.” – so the user is probably still online “The drawbridge must rise within 1 minute.” – so traffic stops only ~ 5 minutes ( for ship) “At least 95% of the code must be Java.” – because porting such applications to Linux has proven to cost only $XXXX in the past

Typical parts of requirements documentation Functional requirements – Unstructured text – Use cases Non-functional requirements – Unstructured text Fit criteria Diagrams – Class diagrams and entity-relationship diagrams – Dataflow, sequence, and state diagrams

Overview of diagrams Use case diagram : shows supported activities UML class and entity-relationship diagrams : show entities, attributes, relationships Dataflow diagram : shows flow of information Message sequence diagram : shows flow of control State chart : shows change over time

What’s next for you? Your HW on requirements is due Friday which will be explained in detail tomorrow. ( Meet with your customer Thursday and Friday) Use case scenarios, feature list! (second homework on requirements) – Get organized today in teams 1)Known's, unknowns 2)Each of your roles 3)Potential consumers 4)Start with inception READINGS: Sections