Chapter 3 - Gathering Requirements
Chapter 3 - Gathering Requirements
Chapter 3
Basic objectives of the chapter
Define requirement and related concepts?
Understand requirement collection techniques
– Interview , observation, questionaries….
Understand requirement identification techniques
– Essential use case modeling
– CRC modeling
– Essential user interfaces modeling
Being familiar with validating, organizing and documenting
requirements in the form of SRS
Basic Stages of Developing any Software Product
Requirement gathering
Analysis
Design
Implementation
Testing
Maintenance
What are Requirement?
• A requirement is a statement or brief description of the
services and qualities a customer would like included in a
product.
11
Use Case Diagram for a Simple University
Input Marks
Grade Administrator
Enroll in
Semester
Distribute
Transcripts
Student
Registrar
Identifying Actors
• Anything or anyone that interact with your system
• Including people, external systems, and other organizations
• Never part of the system
• Questions help to find actors
– Customer?
– Who obtains information?
– Who provides information?
– Who installs the system?
– Who operates the system?
– Who shuts down the system?
– What other system interacts with our system?
– Does anything happen automatically at preset time?
– Who will supply, use or remove information?
– Where does the system get information?
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?
Essential Use Case Description
• Sections
– Name – purpose of the use case
– Description – summary of a use case
– Actors (optional) – associated with the use case
– Status (optional) – work in progress etc…
– Precondition – conditions that must be met
– Post condition – effect of a use case action
– Extension Points (optional) – covered later
– Included Use Cases (optional) – covered later
– Basic Course of Action – logic followed
– Alternate Course of Action – Infrequently used path
– Change History (optional) – when, who, why
modified use cases
Essential Use Case Description Example
Name: Enroll in Semester
Description: Enroll an existing student in a seminar for which she is eligible
Preconditions: The Student is registered at the university
Post conditions: The Student will be enrolled in the course she wants if she is eligible and room is available
Basic course of Action:
1. A Students wants to enroll in a seminar
2. The Student submits his name and student number to the registrar
3. The registrar verifies the student is eligible to enroll in semesters at the university according to some
rule
4. The student indicates, from the list of available seminars, the seminar in which he wants to enroll
5. The registrar validates the student is eligible to enroll in the semester according to the business rule
6. The registrar validates the semester fits into the existing schedule of the student
7. The registrar calculates the fees for the seminar,
8. The registrar informs the student of the fees
9. The registrar verifies the student still wants to enroll in the seminar
10. The student indicates he wants to enroll in the seminar
11. The registrar enrolls the student in the seminar
12. The registrar adds the appropriate fees to the students bill
13. The registrar provides the student with a confirmation that he is enrolled
14. The use case ends
Alternate Course of Action
• Infrequently used path of logic in a use case
• Exception or error condition that must be handled
• Style issues
1. Includes the descriptions of actions that must be met to
invoke the alternate course
2. Identification and numbering scheme is used
3. Each step starts with the letter of the alternate course,
followed by the number of the step in the basic course of
the use case it replaces
4. The last step in each alternate course of should indicate
either that the use case ends or goes to the last step of the
Basic Course of Action
Example of Courses of Actions
Alternate course A: The student is Not Eligible to Enroll in Seminars
A.3. The registrar determines that student is not Eligible to Enroll in Seminar
A.4 The registrar informs the student she is not eligible to enroll
A.5 The use case ends
Alternate Course B: The Student Does Not Have the Prerequisites
B.5 The registrar determines the student is not eligible to enroll in the seminar
she chose
B.6 The registrar informs the student she does not have the prerequisite
B7. The registrar informs the student of the prerequisites she needs
B8. The use case continues at Step 4 in basic course of action
Alternate Course C: The student decides not to enroll in an available seminar
C4. The student views the list of seminars and does not see one in which she
wants to enroll
C5. The use case ends
Requirement Elicitation using CRC
CLASS NAME
Responsibilities Collaborators
Finding a CLASS
• Recall definitions of a class and an object
• A Class represents a collection of similar objects.
• Person, Place, Thing, Event or Concept
• Eg. University System
– Students, professors, seminars
• Objects are things of interest in the system being
modelled.
• Class is a Singular noun or singular noun phrase
• Class names should also be simple
• The Class name appears across the top of the
CRC card.
Finding Classes
Bank System
Responsibilities Collaborators
Validate PIN
Get Balance
Card Reader
Responsibilities Collaborators
Detect card inserted
Tell User Menu to ask for PIN User Menu
Eject card
Essential User Interface Prototyping
• Place where user directly interacts with systems
• Low fidelity model, or prototype of the UI for your
system
• It represents the general ideas behind the UI, but
not the exact details
• Represents the initial stage of the UI
requirement in a technology independent
manner, just like essential use case model.
Essential User Interface Prototyping
is an iterative development technique in which
users are actively involved in the mocking-up of
the UI for a system.
• It is represented by various rectangles enclosed in
a bigger one.
• Grouping of smaller rectangles can be done by
larger ones.
Differentiating facts about essential UI
prototyping
• Focus on your users and their usage of the
system, not system features
• Simple tools including whiteboards, flip chart
paper and sticky notes
• Don’t focus on the design
o HTML, JAVA, Window Based
Tools to be used
• For all essential modeling's the tool to be used is
simple:
– Paper, whiteboard, sticky papers….
• The purpose is to focus on the major issues (the
actual task) rather than technology or
implementation details.
Example for essential UI
Student Information
Student Help
Enroll Students in Seminar
Number Requester
Student Name
Course Enrollment
Course Searcher Name Requester
Course
Number Course
Description
Course
Name
Student Information
Student Number Student Phone Number Student Address Student Full Name
Amount Owed