Object-Oriented System Analysis and Design Chapter III- Requirement Elicitation Collecting and organizing users requirement- WHAT- User needs.

Slides:



Advertisements
Similar presentations
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Advertisements

Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 4: Developing Requirements.
Chapter 4: Developing Requirements
ACTIVELY ENGAGING THE STAKEHOLDER IN DEFINING REQUIREMENTS FOR THE BUSINESS, THE STAKEHOLDER, SOLUTION OR TRANSITION Requirements Elicitation.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 4: Developing Requirements.
CAP 252 Lecture Topic: Requirement Analysis Class Exercise: Use Cases.
Identifying Needs and Establishing Requirements John Thiesfeld Jeff Morton Josh Edwards.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
SE 555 Software Requirements & Specification Requirements Validation.
7M822 Software Requirements Introduction 7 September 2010.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
Requirements/Systems analyst
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
المحاضرة الثالثة. 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.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Business Analysis and Essential Competencies
Software engineering lec4 Requirements. Developing requirements Start thinking about particular problem Understand the problem  Domain analysis Gather.
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Chapter 4: Developing Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] January 31, 2012.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Object-Oriented Software Engineering Practical Software Development using UML and C++/Java Chapter 4: Developing Requirements.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 4: Developing Requirements.
Approaching a Problem Where do we start? How do we proceed?
Lecture 7: Requirements Engineering
IS2210: Systems Analysis and Systems Design and Change Twitter:
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.
Requirement Elicitation Process Lesson 3. Requirements Elicitation  Is the process to find out the requirements for an intended software system by communicating.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 4: Developing Requirements.
Develop Project Charter
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 4: Developing Requirements.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Lecture 2 Developing Requirements
CSE 240 Lecture 6. © Lethbridge/Laganière 2001 Chapter 5: Modelling with classes2 Overview Discuss Assignment 1(Questions) Chapter 4 - Requirements. Test.
Developing Requirements Adapted after : Timothy Lethbridge and Robert Laganiere, Object-Oriented Software Engineering – Practical Software Development.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Requirements Engineering Process
Module 4: Systems Development Chapter 13: Investigation and Analysis.
Requirements Engineering Processes. Syllabus l Definition of Requirement engineering process (REP) l Phases of Requirements Engineering Process: Requirements.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Developing Requirements. 1. Domain Analysis Domain: The general field of business or technology in which the customers expect to be using software Domain.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
Software engineering lec3 Requirements. Contents Developing Requirements Domain analysis The starting point for software projects Defining the problem.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Information Technology Project Management, Seventh Edition.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
1 Developing Requirements Based on Chapter 4 of Object-Oriented Software Engineering: Practical Software Development using UML and Java.
1 International Institute of Business Analysis Vision: The world's leading association for Business Analysis professionals” Mission: To develop and maintain.
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.
Bernd Bruegge and Allen Dutoit Requirements Process The requirements process consists of two activities: Requirements Elicitation: Definition of the system.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Lecture 2 Developing Requirements
CASE Tools and Joint and Rapid Application Development
UNIT II.
Requirements Analysis
Software Requirements Specification Document
Applied Software Project Management
Presentation transcript:

Object-Oriented System Analysis and Design Chapter III- Requirement Elicitation Collecting and organizing users requirement- WHAT- User needs

Basic objectives of the chapter 2 Define requirement and related concepts? Understand requirement identification and collection techniques using traditional method essential use case modeling CRC modeling essential user interfaces modeling Supplementary specifications Being familiar with validating, organizing and documenting requirements

What is a Requirement ? 9/13/ It is a statement describing either 1) an aspect of what the proposed system must do, or 2) a constraint on the system’s development. In either case it must contribute in some way towards adequately solving the customer’s problem; the set of requirements as a whole represents a negotiated agreement among the stakeholders. A collection of requirements is a requirements document.

Types of Requirements 9/13/ Functional requirements Describe what the system should do Non-functional requirements Quality requirements Constraints on the design to meet specified levels of quality such as availability, performance, usability, etc Pseudo requirements Platform requirements Constraints on the environment and technology of the system Process requirements Constraints on the project plan and development methods

Functional Requirements 9/13/ What inputs the system should accept What outputs the system should produce What data the system should store that other systems might use What computations the system should perform The timing and synchronization of the above

Quality Requirements All must be verifiable Examples: Constraints on ◦ Response time ◦ Throughput ◦ Resource usage ◦ Reliability ◦ Availability ◦ Recovery from failure ◦ Allowances for maintainability and enhancement ◦ Allowances for reusability 9/13/2015 6

Cont.. 9/13/ Requirement elicitation Is about a communication b/n developers and user in defining a new system Failure to do so will lead to “unwanted” system Focus on describing the purpose of the system Results in system specification

Cont.. 9/13/ System specification Vs Analysis model Represent same information Difference only on the language and notation they use Both describe more of external aspect of the system visible to users (users' view) They occur concurrently and iteratively

How to conduct? 9/13/ Through techniques like Traditional methods like interview Essential use case CRC model Identifying initial analysis objects Essential user interface Identification of non-functional requirement All the above techniques will help us in making domain analysis

Domain Analysis 9/13/ The process by which a software engineer learns about the domain to better understand the problem: The domain is the general field of business or technology in which the clients will use the software, e.g. Finance, personnel, marketing, etc A domain expert is a person who has a deep knowledge of the domain e.g. accountant for finance system Benefits of performing domain analysis: Faster development Better system Anticipation of extensions

Defining the Problem and the Scope 9/13/ A problem can be expressed as: A difficulty the users or customers are facing, Or as an opportunity that will result in some benefit such as improved productivity or sales. The solution to the problem normally will entail developing software/system A good problem statement is short and concise

Defining the Scope 9/13/ Narrow the scope by defining a more precise problem List all the things you might imagine the system doing Exclude some of these things if too broad Determine high-level goals if too narrow Example: A university registration system

Cont… 9/13/

Example: Library System 9/13/ Idea: A Library Management System should be designed. Information on books, CDs, DVDs, Journals, etc. can be stored and retrieved Possible Requirements Searching by Title, Author, and/or ISDN should be possible User Interface should be web-based (accessible via WWW Browser) At least 20 transactions per seconds should be possible All services should be available within 10 minutes Users have no access to personal data of other users

Member of Elicitation team? Identify stakeholders (any one who could be affected by the implementation of the system)- customers, end-users. Choose best Subject matter expert (SME) (who knows the business, think logically, communicate well, willing to invest time on the software development) Choose good facilitator or scriber (with good communication skill) 9/13/

Remarks on the process 9/13/ Result in the specification of the system that the client and user can understand (natural language) It should be validated for correctness (according to the user) completeness (all requirements) Consistency (No contradiction) Unambiguousness (clear) realistic (that can be implemented)

Reviewing Requirements 9/13/ Each individual requirement should Have benefits that outweigh the costs of development Be important for the solution of the current problem Be expressed using a clear and consistent notation Be unambiguous Be logically consistent Lead to a system of sufficient quality Be realistic with available resources Be verifiable Be uniquely identifiable Does not over-constrain the design of the system

Requirements documents... 9/13/ The document should be: sufficiently complete well organized clear agreed to by all the stakeholders Traceability:

Difficulties and Risks in Domain and Requirements Analysis guides 9/13/ Lack of understanding of the domain or the real problem Do domain analysis and prototyping Requirements change rapidly Perform incremental development, build flexibility into the design, do regular reviews Attempting to do too much Document the problem boundaries at an early stage, carefully estimate the time It may be hard to reconcile conflicting sets of requirements Brainstorming, JAD sessions, competing prototypes It is hard to state requirements precisely Break requirements down into simple sentences and review them carefully, look for potential ambiguity, make early prototypes

How to Elicit (collect) Requirement) 9/13/ Research/Document Analysis The document Analysis is a method by which the system analyst go through each documents used and relevant to all the processes covered by the system. The documents will give information about the data to be captured and the presentation of the data to the users of the system.

Cont… 9/13/ Direct Observation Direct observation is a method used to verify the already gathered information and to add on to requirement. The method will help to see how users behave and do things in their day to day activity. Questionnaires and Surveys The Survey Method is an electronic or paper based method of soliciting needs or requirements from stakeholders. The survey method is a list of questions, directed at identifying stakeholder needs or requirements.

Cont… 9/13/ Interviews An interview is a conversation with stakeholders to elicit or validate needs and requirements. An interview may include one or more stakeholders. The interview may also involve a question and answer session used to discover other potential stakeholders and any discrepancies between needs; the high-level requirements derived from those needs; and the resulting detailed requirements. Interviews facilitate obtaining approval from stakeholders on their needs, requirements, and any changes to them.

Gathering and Analysing Requirements 9/13/ On Observation Read documents and discuss requirements with users Shadowing important potential users as they do their work ask the user to explain everything he or she is doing Session videotaping On Interviewing Conduct a series of interviews Ask about specific details Ask about the stakeholder’s vision for the future Ask if they have alternative ideas Ask for other sources of information Ask them to draw diagrams

Cont… 9/13/ Joint Application Design (JAD): The Joint Application Development (JAD) technique is an extended, facilitated workshop. It involves collaboration between users, managers and systems analysts and system designers to identify needs or requirements in a concentrated and focused group discussion.

Cont... On Brainstorming Appoint an experienced moderator Arrange the attendees around a table Decide on a ‘trigger question’ Ask each participant to write an answer and pass the paper to its neighbour Joint Application Development (JAD) is a technique based on intensive brainstorming sessions 9/13/

Elicitation – Essential use case Use Cases are used to capture the intended behaviour of the system under development (requirements of a system) In terms of Use case, actors and relationships (use case diagram) and use case documentation 9/13/

Requirement Elicitation tasks (using use case) Identify actors: Hints Actors are external to the system- human or another system Represent roles Question you should ask Which user group are supported by the syetm to perform their task? Which user groups execute the systems major function? Will the system interact with any external hardware or software? 9/13/

Cont… Identify use cases First identify scenarios or examples of system usage and compile or represent some similar scenarios with one case. Question to be asked What are the tasks that the actor wants the system to perform? 9/13/

Cont… 9/13/ Identify relationships To reduce complexity and increase understandability Communication(association), include (use), extend, and generalization Questions to be asked Is there any relationship that needs to be factored out among use cases? If yes ‘include’ will solve it Is there any exceptional or optional cases? If yes “extend” will solve it Is there two or more possibilities for accomplishing a case? If yes “generalization” will solve it

So… 9/13/ Now at this stage you have some understanding about the system/software to be developed from functional point of view What is next should be Again collecting requirements from structural point of view

System Modeling will continue 9/13/