68
1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

Embed Size (px)

Citation preview

Page 1: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

1

SYS366

Week 5 - Lecture 1Systems Requirements Gathering:

Identifying Software Requirements

Page 2: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

2

Agenda

Identifying Software Requirements – Functional Requirements– Technical Requirements– Data Requirements

Fact Finding Methods

Page 3: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

3

Identifying Requirements

Objective of the requirements capture and analysis phases is to understand business processes and develop requirements for the new system

Page 4: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

4

Page 5: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

5

Identifying System Requirements

“A requirement is a desired feature, property or behavior of a system.” *

* Unified Modeling Language

Page 6: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

6

Page 7: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

7

Identifying System Requirements

“Features can be functional or

non-functional.” *

* Use Case Modeling, by Bittner & Spence, page 75.

Page 8: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

8

Identifying System Requirements

Software Requirements – “Individual statements of conditions and capabilities

to which the system must conform.” *

* Use Case Modeling, by Bittner & Spence, page 6.

Page 9: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

9

Identifying System Requirements

Each Software Requirement Is the specification of an externally observable behavior of the system– Inputs to the system– Outputs from the system– The processing of the system– Attributes of the system– Attributes of the system environment

Use Case Modeling, by Bittner & Spence, page 5.

Page 10: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

10

What is Software Development?

Software Development implies developing some software – but it does not involve simply coding programs

Software is developed to turn manual processes into automated processes or to improve/enhance existing automated processes.

Page 11: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

11

What does this have to do with Systems?

Software Development entails understanding the problem to be solved, understanding how a business operates and understanding that the solution to be developed will be of value to the business

Page 12: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

12

Identifying System Requirements

“Software Requirements specify the things that the software does on behalf of the user or another

system.” *

* Use Case Modeling, by Bittner & Spence, page 6.

Page 13: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

13

Requirements Gathering

Analyst needs to find out what the user requires in the new system or what the user requires to be changed in an existing system– Gather the requirements by doing fact finding– Document the requirements

Page 14: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

14

Requirements Gathering

For an existing system, analyst needs to find out:– Functionality

Some of the functionality of the existing system will be included in the new system (can be acquired from existing documentation and code)

– Data needs Some of the data of the existing system will need

to be migrated into the new system

Page 15: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

15

Requirements Gathering

For a new system, analyst needs to find out:– Functionality

What are the activities the system needs to perform?

How is the user to interact with the system?Are other systems to interact with the system?

– Data needsWhat information is needed?

Page 16: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

16

Requirements Gathering

Scope of the System

Functional Technical DataRequirements Requirements Requirements

Page 17: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

17

Functional Requirements

Describe what a system does or is expected to do “Specify the input and output behavior of a system”*

*Use Case Modeling, by Bittner & Spence, page 8.

Page 18: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

18

Functional Requirements

Include– Descriptions of the processing which the system will be

required to carry out– Details of the inputs into the system from paper forms

and documents or the interactions between people and the system or transfers from other systems

– Details of the outputs that are expected from the system in the form of printed documents and reports, screen displays and transfers to other systems

:

Page 19: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

19

Technical Requirements

“Specify the other qualities that the system must have, such as those related to the usability, reliability, performance and supportability of the system”*

Describe the aspects of the system that are concerned with how well it provides the functional requirements.

Include:– Performance criteria– Anticipated volumes of data– Security requirements

*Use Case Modeling, by Bittner & Spence, page 8.

Page 20: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

20

Data Requirements

Describe what information the system is going to need or produce – really a part of Functional and Technical Requirements

Include– Details of the data that must be held in the system

Page 21: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

21

Themes To Guide Investigation

What are business processes and operations? How should the business processes be performed? What are the information requirements?

Understand the Users’ Needs!

Page 22: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

22

Today

Identifying System Requirements – Functional Requirements– Technical Requirements– Data Requirements

Fact Finding Methods

Page 23: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

23

Fact Finding Methods

Conduct interviews and discussion with users Distribute and collect stakeholder questionnaires Review existing reports, forms, and procedure

descriptions Observe business processes and workflows Build prototypes Conduct JAD sessions

Page 24: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

24

Fact Finding Methods

– Interviews– Questionnaires– Review Documentation– Observation– Prototypes– JAD sessions– RAD

Page 25: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

25

Interviews

We are going to concentrate on interview techniques; the rest of the slides explain the other methods for fact finding

Page 26: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

26

Interviews

Primary technique for fact finding and information gathering

Most effective way to understand business functions and business rules

Usually requires multiple sessions Usually conducted with customers/clients/users Clients are not always able to express their

requirements clearly it is up to the analyst to ask the right questions to help the client express their requirements

Page 27: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

27

Conducting effective interviews

– Determine who you are going to interview– Know what information that stakeholder can provide

for you– Prepare for the interview– Conduct the interview– Follow up on the interview

Page 28: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

28

Determine who you are going to interview

Can be business or technical stakeholders– Business stakeholders provide the functional and

data requirements– Technical stakeholders provide the technical and

data requirements

Page 29: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

29

Determine who you are going to interview

Executives– Will provide information related to strategic issues

about the business – Need statistical and summary information

Management– Will provide a broad perspective about the business

as well as information about the system being developed

– Need statistical and summary information

Page 30: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

30

Determine who you are going to interview

Operational staff – will provide information about how the work is

actually done– Domain experts

Page 31: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

31

Types of interviews

Structured Interview– Formal style– Requires significant preparation

Unstructured Interview– Informal– No pre-determined questions or objectives

Page 32: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

32

Structured Interview

Preparing for the interview– Establish the objectives for the interview– Have a clear agenda– Prepared in advance with a list of open and closed

ended questions– Set the time and location for the interview– Inform all participants of the objective, time and

location

Page 33: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

33

Structured Interview

Questions– Questions should allow you to keep on track and

avoid getting off topic during the interview– Keep length of questions reasonable (15-20 words

or less)

Page 34: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

34

Structured Interview

Questions can be prepared from any of the following:– Observations made when existing form and reports

may have been reviewed– Observations made when reviewing the strategic,

tactical or operational plans– Observations made when observing employees

doing current job tasks

Page 35: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

35

Structured Interview

Phrase questions to avoid misunderstandings - use simple terms and wording

Do not ask questions that give clues to expected answers

Avoid asking two questions in one Do not ask questions that can raise concerns about job

security or other negative issues

Page 36: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

36

Structured Interview

Questioning Strategies

How canorder processing

be improved?

How can wereduce the number

of times that customersreturn items they’ve ordered?

How can we eliminate shipping the wrong products?

High-level: very general

Medium-level: moderatelyspecific

Low-level: very specific

Top Down

Bottom UP

Page 37: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

37

Structured Interview

Open ended questions– Encourages unstructured responses and generates discussion– Useful when you need to understand a larger process or to

draw out opinions or suggestions from the person being interviewed

– Examples What do you think about the current system? How do you decide what type of marketing campaigns to

run?

Page 38: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

38

Structured Interview

Closed ended questions– Limited or restricted response – a simple definitive

answer– Used to get information that is more specific or

when you need to verify facts– Examples:

How do customers place orders?How many orders to you receive a day?

Page 39: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

39

Structured Interview

How to conduct the interview– Dress appropriately; Arrive on time– Welcome the participants; introduce the attendees;

state the objective and agenda– Ask permission if you want to tape record the

interview– Ask questions from script

Page 40: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

40

Structured Interview

How to conduct the interview– Listen closely to the interviewee and encourage

them to expand on key points– Take thorough notes– Identify and document unanswered questions– At end of interview, review outstanding questions

that require follow up– Set date and time for the next, follow-up interview

Page 41: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

41

Fact Finding Methods

– Interviews– Questionnaires– Review Documentation– Observation– Prototypes– JAD sessions– RAD

Page 42: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

42

Questionnaires

A document which contains a number of questions Can be paper form or electronic form (email or web-

based) Allows the analyst to collect information from a large

number of people– People outside the organization (I.e. customers)– Business users spread across a large geographic

area

Page 43: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

43

Questionnaires

Limited and specific information from a large number of stakeholders

Preliminary insight Not well suited for gathering detailed information Open-ended questions vs. close-ended questions

Page 44: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

44

Questionnaires

Similar process to interviewing– Determine who will receive the questionnaire– Design the questionnaire

Determine objective of questionnaire Design questions

– Follow up questionnaire

Page 45: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

45

Questionnaires

Determine who will receive the questionnaire– Select a sample audience who are representative of

an entire group– Assume 30-50% return rate for paper and email

questionnaires– Assume a 5-30% return rate for web-based

questionnaires

Page 46: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

46

Questionnaires

Design the Questionnaire– Clearly state the following in the questionnaire:

The purpose of the questionnaireWhy the respondent was selected to receive the

questionnaireWhen the questionnaire is to be returned

Page 47: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

47

Questionnaires

Design the Questionnaire– Let the respondent know when/where they can see

the accumulated questionnaire responses– Consider providing an inducement to have the

respondent complete the questionnaire (I.e. a pen)

Page 48: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

48

Questionnaires

Design the Questionnaire– Keep the questionnaire brief and user friendly– Provide clear instructions on how to complete the

questionnaire– Arrange the questions in a logical order; going from

easy to more complex topics

Page 49: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

49

Questionnaires

Design the Questionnaire– Phrase questions to avoid misunderstandings, use

simple terms and wording– Do not ask questions that give clues to expected

answers– Avoid asking two questions in one– Limit the use of open ended questions that will be

difficult to tabulate

Page 50: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

50

Questionnaires

Design the Questionnaire– Do not ask questions that can raise concerns about

job security or other negative issues– Include a section at the end of the questionnaire for

general comments– Test the questionnaire whenever possible on a

small test group before finalizing it

Page 51: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

51

Fact Finding Methods

– Interviews– Questionnaires– Review Documentation– Observation– Prototypes– JAD sessions– RAD

Page 52: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

52

Review Existing Reports, Forms, and Procedure Descriptions

Purposes– Preliminary understanding of processes– Guidelines / visual cues to guide interviews

Identify business rules, discrepancies, and redundancies

Be cautious of outdated material

Page 53: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

53

Reviewing existing documentation

Most beneficial to new employees or consultants hired to work on a project

Types of documentation that is reviewed:– Company reports– Organization charts– Policy and Procedures manuals– Job Descriptions– Documentation of existing systems

Page 54: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

54

Reviewing existing documentation

Allows the analyst to get an understanding of the organization prior to meeting with employees

Allows the analyst to prepare questions for either interviews or questionnaires (other fact finding techniques)

Page 55: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

55

Fact Finding Methods

– Interviews– Questionnaires– Review Documentation– Observation– Prototypes– JAD sessions– RAD

Page 56: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

56

Observation

An effective way to gather requirements if obtaining complete information was not effective through other fact finding techniques (I.e. interviews and questionnaires)

Or An effective way to verify information gathered from

other fact finding sources (such as interviews)

Page 57: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

57

Observation

Observation can be done by having the analyst observe the client from a distance (without actually interrupting the client) or by actually doing the work of the client

Page 58: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

58

Observation

Should be carried out for a period of time and at different time intervals, not just once, so that the analyst can observe different workloads and to ensure that what the client does is consistent over different periods of time

Page 59: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

59

Observation

Allows the analyst to follow an entire process from start to finish

Can upset the client if they feel threatened by new activity going on around them – the client may behave differently from what they normally do

Page 60: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

60

Fact Finding Methods

– Interviews– Questionnaires– Review Documentation– Observation– Prototypes– JAD sessions– RAD

Page 61: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

61

Prototypes

A demonstration system– Represents a graphical user interface– Simulates system behavior for various events– Any data displayed on a GUI screen is hard-coded; not

retrieved from a database Constructed to visualize the system Allows the customer to provide feedback An effective way to gather requirements for a new

system Supports JAD or RAD type sessions

Page 62: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

62

Fact Finding Methods

– Interviews– Questionnaires– Review Documentation– Observation– Prototypes– JAD sessions– RAD

Page 63: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

63

Other Methods

Joint Application Development (JAD)– A series of workshops that bring together all

stakeholders (users and systems personnel)

Page 64: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

64

Other Methods

Joint Application Development (JAD)– Consists of the following types of attendees:

Facilitator: the person who conducts the meeting and keeps it on track (generally the analyst)

Note taker: the person who records the information for the session

Clients/Customers/Users: the people who communicate the requirements, take decisions and approve the project

Developers: the people who are part of the development team and need to gather information

Page 65: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

65

Other Methods

Joint Application Development (JAD)– Takes advantage of the group dynamics– Increased productivity– May require more than one session– One session may last a few hours, several days or

several weeks

Page 66: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

66

Fact Finding Methods

– Interviews– Questionnaires– Review Documentation– Observation– Prototypes– JAD sessions– RAD

Page 67: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

67

Other Methods

Rapid Application Development (RAD)– An approach to software development where the

system solution is delivered – fast– Most appropriate for systems which are not the

organization’s core business

Page 68: 1 SYS366 Week 5 - Lecture 1 Systems Requirements Gathering: Identifying Software Requirements

68

Other Methods

Rapid Application Development (RAD)– Can result in:

Inconsistent GUI designsPoorly documented systemsSoftware that is difficult to maintain