25
Ch 10: Requirements CSCI 4320

Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Embed Size (px)

Citation preview

Page 1: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Ch 10: Requirements

CSCI 4320

Page 2: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Requirements Workflow1. Acquire basic understanding of the application

domain (banking, automobile manufacturing)2. Identify Customer Impact3. Identify Constraints (deadlines, costs, existing

hardware, software)

• Written in Language of Client• Problem: Sometimes the client does not know

what is going on in his organization.

GOAL: Assist client in gaining understanding of system

Page 3: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Requirements Workflow

1. Gain an understanding of the application domain (or domain, for short)– The specific environment in which the target product

is to operate

2. Build a business model– Model the client’s business processes– UML Diagrams (use cases)

3. Use the business model to determine the client’s requirements

Iterate the above steps

Page 4: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Understanding the Domain

• Maintain a glossary of technical words used in the domain, together with their meaning

Page 5: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Building a Business Model

• Business Model – Description of business processes of an organization– Banking ( accepting deposits, loaning money,

making investments)

Page 6: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Gathering Information• Interviewing is the Primary Technique

– Open-ended Questions• Encourage person to speak out• Why is your current software unsatisfactory?

– Closed-ended Questions• requires specific answer• How many employees?

– Structured Interview• Preplanned questions, (frequently closed-ended)

– Unstructured Interview• Questions are posted in response to answers received

Page 7: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Gathering Information• Interviewing is not easy

– Interview must be familiar with application domain

– Interviewer must not have already made up his mind regarding client needs

– Listen carefully, suppress preconceived notions

• After interview prepare a written report outlining the results of the interview

• Let interviewee see the report

Page 8: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Gathering Information

• Questionnaire– Many individuals can participate

• Examine Forms In Use– Various fields shed light of importance of

information in use

• Direct Observations– Modern Version :Videotape camera

• Long time to analyze tapes

– Employees may see it as an invasion of privacy

Page 9: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Building A Model

• Model– Set of UML diagrams that represent system

functions

• Use Cases– Model interaction between the software

product and the users of the software (actors)– Show interaction between software product

and the environment– Stick Figures

Page 10: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

10.4.3 Use Cases

Example:

Figure 10.1

Page 11: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Identifying Actors

• An actor is a member of the world outside the software product– User– Initiator

• Someone who plays a critical part in the user case

Page 12: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Identifying Actors (cont)

Actors are not necessarily Human. They can be software products.

• When building an E-Commerce Information System you should allow purchasers to pay with credit cards

• Your system interacts with the credit card company information system.

Thus, the credit card company information system is an actor

Page 13: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Identifying Actors (cont)

• Potential Problem– Overlapping Actors– Too Specific

Example:

Don’t prepare different use cases for Physicians and Nurses when one use case for Medical Staff is appropriate.

Page 14: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

10.5 Initial Requirements

• The initial requirements are based on the initial business model

• Then they are refined

• The requirements are dynamic — there are frequent changes– Maintain a list of likely requirements, together

with use cases of requirements approved by the client

Page 15: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Initial Requirements (contd)

• There are two categories of requirements• A functional requirement specifies an action that

the software product must be able to perform– Often expressed in terms of inputs and outputs

• A nonfunctional requirement specifies properties of the software product itself, such as – Platform constraints– Response times– Reliability

Page 16: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Initial Requirements (contd)

• Functional requirements are handled as part of the requirements and analysis workflows

• Some nonfunctional requirements have to wait until the design workflow– The detailed information for some

nonfunctional requirements is not available until the requirements and analysis workflows have been completed

Page 17: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Rapid Prototype

• Hastily built software• Exhibits key functionality of the target

product• Omits hidden aspects such as file

updating• Effective when developing user interface• Clients can experiment and give feedback

to developers• Must be built for change

Page 18: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Human Factors

If screens are confusing or product is difficult to use software product will not be used.

•Human Computer Interface (HCI)•User Friendliness

– Ease for humans to communicate with software– Menus– Graphical User Interface (windows, icons, pull-down

menu)

Page 19: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Human Factors (cont)

• Size of letters

• CAPITALIZATION

• Color

• Line length

• Number of lines on screen

Page 20: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Human Factors (cont)

• Limit # of Preceding Menus– Lengthy sequence of menus to reach goal

makes users angry

• Design for different skill levels– Short cuts for advanced – As users become more familiar with product,

streamline screens

• Uniformity of appearance reduces learning time

Page 21: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Reusing the Rapid Prototype

• Discard the prototype – don’t fall into code-and-fix model

• Resulting code of hurriedly put together prototype can be confusing and is difficult to maintain

• Use a different language from that of product

Page 22: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Reusing the Rapid Prototype

• When is it permissible to reuse portions of the rapid prototype?– When CASE tools such as screen generators

and report generators have been used. (Ex. Software Through Pictures Section 5.5, pg 123)

• Management decides BEFORE the rapid prototype is built to reuse portions

• High quality code passes design and code inspections

Page 23: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

CASE Tools for the Requirements Workflow

• Drawing tools to draw diagrams

• Documentation can be kept up-to-date

• Weakness– Sometimes CASE Tools are not user friendly– Spend time tweaking layouts

• ArgoUML– Open Source CASE tool for drawing UML

diagrams

Page 24: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Metrics for The Requirements Workflow

• The goal is to rapidly determine client’s needs• How frequently do the requirements change?

– During requirements workflow– During the rest of the software development process

• Who initiated the change? (client, developer)– Client: moving target possibility– Developer: need for revising requirements elicitation

Page 25: Ch 10: Requirements CSCI 4320. Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify

Challenges of the Requirements Workflow

• Wholehearted cooperation of potential users– job security– misleading information

• Negotiation– Persuade client to accept less that what he wants

(compute cost and benefits)– Compromise among managers regarding functionality

• Time for in-depth discussions• Flexibility and Objectivity

– Interviewer should not make assumptions about requirements