Computer Studies
Computer Studies
• Requirement Determination
• Requirements Analysis Strategies
• Requirement Gathering Techniques
• Business Process and Functional Modeling (Use cases and Activity Diagrams)
• Business Process Documentation with Use Cases and Use-Case Descriptions
Referral material: Systems Analysis and Design-An Object-Oriented Approach with UML-2015.
Introduction
In many ways, because it is here that the major elements of the system first emerge, the requirements-
determination step is the single most critical step of the entire system development process. During
requirements determination, the system is easy to change because little work has been done yet. As
the system moves through the system development process, it becomes harder and harder to return
to requirements determination and to make major changes because of all of the rework that is
involved. Several studies have shown that more than half of all system failures are due to problems
with the requirements. This is why the iterative approaches of object-oriented methodologies are so
effective—small batches of requirements can be identified and implemented in incremental stages,
allowing the overall system to evolve over time.
REQUIREMENT DETERMINATION
The purpose of requirements determination is to turn the very high-level explanation of the business
requirements stated in the system request into a more precise list of requirements that can be used as
inputs to the rest of analysis (creating functional, structural, and behavioral models). This expansion
of the requirements ultimately leads to the design of the system.
1
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
1. Defining a Requirement
A requirement is simply a statement of what the system must do or what characteristic it must have.
During analysis, requirements are written from the perspective of the businessperson, and they focus
on the “what” of the system. Because they focus on the needs of the business user, they are usually
called business requirements (and sometimes user requirements). Later in design, business
requirements evolve to become more technical, and they describe how the system will be
implemented. Requirements in design are written from the developer’s perspective, and they are
usually called system requirements.
We want to stress that there is no black-and-white line dividing a business requirement and a system
requirement—and some companies use the terms interchangeably. Requirements evolve from detailed
statements of the business capabilities that a system should have to detailed statements of the technical
way the capabilities will be implemented in the new system.
Requirements can be either functional or nonfunctional in nature. A functional requirement relates
directly to a process a system has to perform or information it needs to contain. For example,
requirements stating that a system must have the ability to search for available inventory or to report
actual and budgeted expenses are functional requirements. Functional requirements flow directly into
the creation of functional, structural, and behavioral models that represent the functionality of the
evolving system.
Nonfunctional requirements refer to behavioral properties that the system must have, such as
performance and usability. The ability to access the system using a Web browser is considered a
nonfunctional requirement. Nonfunctional requirements can influence the rest of analysis (functional,
structural, and behavioral models) but often do so only indirectly; nonfunctional requirements are
used primarily in design when decisions are made about the database, the user interface, the hardware
and software, and the system’s underlying physical architecture.
Nonfunctional requirements describe a variety of characteristics regarding the system: operational,
performance, security, and cultural and political. Performance requirements address issues related to the
speed, capacity, and reliability of the system. Security requirements deal with issues with regard to
who has access to the system and under what specific circumstances. Cultural and political
requirements deal with issues related to the cultural, political factors and legal requirements that affect
the system.
2
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
2. Requirements Definition
straightforward text report that simply lists the functional and nonfunctional requirements in an
outline format. Figure 1 shows a sample requirements definition for an appointment system for a
typical doctor’s office. Notice it contains both functional and nonfunctional requirements.
The most obvious purpose of the requirements definition is to provide the information needed by the
other deliverables in analysis, which include functional, structural, and behavioral models, and to
support activities in design. The most important purpose of the requirements definition, however, is
to define the scope of the system. The document describes to the analysts exactly what the system
needs to end up doing. When discrepancies arise, the document serves as the place to go for
clarification.
3. Determining Requirements
Determining requirements for the requirements definition is both a business task and an information
technology task. In the early days of computing, there was a presumption that the systems analysts, as
experts with computer systems, were in the best position to define how a computer system should
operate. Many systems failed because they did not adequately address the true business needs of the
users. Gradually, the presumption changed so that the users, as the business experts, were seen as
being the best position to define how a computer system should operate.
3
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
Therefore, the most effective approach is to have both business people and analysts working
together to determine business requirements. Sometimes, however, users don’t know exactly what
they want, and analysts need to help them discover their needs. A set of strategies has become popular
to help analysts do problem analysis, root cause analysis, duration analysis, activity-based costing,
informal benchmarking, outcome analysis, technology analysis, and activity elimination. Analysts can
use these tools when they need to guide the users in explaining what is wanted from a system. These
strategies work similarly. They help users critically examine the current state of systems and processes
(the as-is system), identify exactly what needs to change, and develop a concept for a new system (the
to-be system).
Although these strategies enable the analyst to help users create a vision for the new system, they are
not sufficient for extracting information about the detailed business requirements that are needed to
build it. Therefore, analysts use a portfolio of requirements-gathering techniques to acquire
information from users. The analyst has many techniques from which to choose: interviews,
questionnaires, observation, joint application development (JAD), and document analysis.
The information gathered using these techniques is critically analyzed and used to craft the
requirements definition report.
This process continues throughout analysis, and the requirements definition evolves over time as
new requirements are identified and as the project moves into later phases of the Unified Process. The
project team cannot keep adding to the requirements definition, or the system will keep growing
and growing and never get finished. Instead, the project team carefully identifies requirements and
evaluates which ones fit within the scope of the system. When a requirement reflects a real business
need but is not within the scope of the current system or current release, it is either added on a list of
future requirements or given a low priority. The management of requirements (and system scope)
is one of the hardest parts of managing a project.
1. Problem Analysis
The most straightforward (and probably the most commonly used) requirements-analysis technique
is problem analysis. Problem analysis means asking the users and managers to identify problems with the
as-is system and to describe how to solve them in the to-be system.
Improvements from problem analysis tend to be small and incremental (e.g., provide more space in
which to type the customer’s address; provide a new report that currently does not exist). This type
of improvement often is very effective at improving a system’s efficiency or ease of use.
3. Duration Analysis
Duration analysis requires a detailed examination of the amount of time it takes to perform each
process in the current as-is system. The analysts begin by determining the total amount of time it
takes, on average, to perform a set of business processes for a typical input. They then time each of
the individual steps (or subprocesses) in the business process. The time to complete the basic step is
then totaled and compared to the total for the overall process.
For example, suppose that the analysts are working on a home mortgage system and discover that on
average, it takes thirty days for the bank to approve a mortgage. They then look at each of the basic
steps in the process (e.g., data entry, credit check, title search, appraisal) and find that the total amount
of time actually spent on each mortgage is about eight hours. This is a strong indication that the overall
process is badly broken, because it takes thirty days to perform one day’s work.
These problems probably occur because the process is badly fragmented. Many different people
must perform different activities before the process finishes. Processes in which many different people
6
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
work on small parts of the inputs are prime candidates for process integration or parallelization. Process
integration means changing the fundamental process so that fewer people work on the input, which
often requires changing the processes and retraining staff to perform a wider range of duties. Process
parallelization means changing the process so that all the individual steps are performed at the same
time.
4. Activity-Based Costing
Activity-based costing is a similar analysis; it examines the cost of each major process or step in a
business process rather than the time taken. The analysts identify the costs associated with each of the
basic functional steps or processes, identify the costliest processes, and focus their improvement
efforts on them.
Assigning costs is conceptually simple. Analysts simply examine the direct cost of labor and
materials for each input. Materials costs are easily assigned in a manufacturing process, whereas labor
costs are usually calculated based on the amount of time spent on the input and the hourly cost of the
staff.
5. Informal Benchmarking
Benchmarking refers to studying how other organizations perform a business process in order to learn
how your organization can do something better. Benchmarking helps the organization by introducing
ideas that employees may never have considered but that have the potential to add value.
Informal benchmarking is fairly common for customer-facing business processes (i.e., processes
that interact with the customer). With informal benchmarking, the managers and analysts think about
other organizations or visit them as customers to watch how the business process is performed.
6. Outcome Analysis
Outcome analysis focuses on understanding the fundamental outcomes that provide value to
customers. Although these outcomes sound as though they should be obvious, they often are not. For
example, consider an insurance company. One of its customers has just had a car accident. What is
the fundamental outcome from the customer’s perspective? Traditionally, insurance companies have
answered this question by assuming the customer wants to receive the insurance payment quickly. To
the customer, however, the payment is only a means to the real outcome: a repaired car. The insurance
company might benefit by extending its view of the business process past its traditional boundaries to
7
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
include not paying for repairs but performing the repairs or contracting with an authorized body shop
to do them.
7. Technology Analysis
Many major changes in business since the turn of the century have been enabled by new
technologies. Technology analysis starts by having the analysts and managers develop a list of
important and interesting technologies. Then the group systematically identifies how every
technology could be applied to the business process and identifies how the business would
benefit.
It is important to note the technology analysis in no way implies adopting technology for technology’s
sake. Rather the focus is on using new technologies to meet the goals of the organization.
8. Activity Elimination
Activity elimination is exactly what it sounds like. The analysts and managers work together to identify
how the organization could eliminate each activity in the business process, how the function could
operate without it, and what effects are likely to occur. Initially, managers are reluctant to conclude
that processes can be eliminated, but this is a force-fi t exercise in that they must eliminate each activity.
8
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
gathering process. The stakeholders might include managers, employees, staff members, and even
some customers and suppliers.
There are many techniques for gathering requirements that vary from asking people questions to
watching them work. In this section, we focus on the five most commonly used techniques:
• Interviews,
• JAD sessions (a special type of group meeting),
• Questionnaires,
• Document analysis, and
• Observation.
Each technique has its own strengths and weaknesses, many of which are complementary, so most
projects use a combination of techniques.
1. Interviews
An interview is the most commonly used requirements-gathering technique. After all, it is natural—if
you need to know something, you usually ask someone. In general, interviews are conducted one-on-
one (one interviewer and one interviewee), but sometimes, owing to time constraints, several people
are interviewed at the same time. There are five basic steps to the interview process:
a) Selecting interviewees,
b) Designing interview questions,
c) Preparing for the interview,
d) Conducting the interview, and
e) Post-interview follow-up
a) Selecting interviewees
The first step in interviewing is to create an interview schedule listing who will be interviewed, when,
and for what purpose. The schedule can be an informal list that is used to help set up meeting times
or a formal list that is incorporated into the workplan. The people who appear on the interview
schedule are selected based on the analyst’s information needs. The project sponsor, key business
users, and other members of the project team can help the analyst determine who in the organization
can best provide important information about requirements. These people are listed on the interview
schedule in the order in which they should be interviewed.
9
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
People at different levels of the organization have varying perspectives on the system, so it is important
to include both managers who manage the processes and staff who actually perform the processes to
gain both high-level and low-level perspectives on an issue.
It is common to begin by interviewing one or two senior managers to get a strategic view and then to
move to midlevel managers who can provide broad, overarching information about the business
process and the expected role of the system being developed. Once the analyst has a good
understanding of the big picture, lower-level managers and staff members can fill in the exact details
of how the process works.
10
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
There are two fundamental approaches to organizing the interview questions: top down or bottom up.
With the top-down interview, the interviewer starts with broad, general issues and gradually works
toward more-specific ones. With the bottom-up interview, the interviewer starts with very specific
questions and moves to broad questions. In practice, analysts mix the two approaches, starting with
broad, general issues, moving to specific questions, and then returning to general issues.
The top-down approach is an appropriate strategy for most interviews. This enables the interviewee
to become accustomed to the topic before he or she needs to provide specifics. One case in which
the bottom-up strategy may be preferred is when the analyst already has gathered a lot of information
about issues and just needs to fill in some holes with details.
e) Post-interview follow-up
After the interview is over, the analyst needs to prepare an interview report that describes the
information from the interview. The report contains interview notes, information that was collected
over the course of the interview and is summarized in a useful format.
11
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
Often, the interview report is sent to the interviewee with a request to read it and inform the analyst
of clarifications or updates. Th e interviewee needs to be convinced that the interviewer genuinely
wants his or her corrections to the report. Usually there are few changes, but the need for any
significant changes suggests that a second interview will be required. Never distribute someone’s
information without prior approval.
12
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
d) Conducting a JAD Session: Most JAD sessions follow a formal agenda, and most have formal ground
rules that define appropriate behavior. Common ground rules include following the schedule,
respecting others’ opinions, accepting disagreement, and ensuring that only one person talks at a time.
e) Post-JAD Follow-up: As with interviews, a JAD post-session report is prepared and circulated among
session attendees.
3. Questionnaires
A questionnaire is a set of written questions used to obtain information from individuals.
Questionnaires are often used when there is a large number of people from whom information and
opinions are needed. In our experience, questionnaires are a common technique with systems intended
for use outside the organization (e.g., by customers or vendors) or for systems with business users
spread across many geographic locations. Most people automatically think of paper when they think
of questionnaires, but today more questionnaires are being distributed in electronic form, either via
e-mail or on the Web. Electronic distribution can save a significant amount of money as compared
to distributing paper questionnaires. A good process to use when using questionnaires follows four
steps:
a) Select Participants: As with interviews and JAD sessions, the first step is to identify the individuals
to whom the questionnaire will be sent. However, it is not usual to select every person who could
provide useful information. The standard approach is to select a sample, or subset, of people
who are representative of an entire group.
b) Designing a Questionnaire: Because the information on a questionnaire cannot be immediately
clarified for a confused respondent, developing good questions is critical for questionnaires.
Questions on questionnaires must be very clearly written and leave little room for
misunderstanding, so closed-ended questions tend to be most commonly used.
c) Administering the Questionnaire: The key issue in administering the questionnaire is getting
participants to complete the questionnaire and send it back. Dozens of marketing research
books have been written about ways to improve response rates. Commonly used techniques
include clearly explaining why the questionnaire is being conducted and why the respondent has
been selected, stating a date by which the questionnaire is to be returned, offering an inducement
to complete the questionnaire (e.g., a free pen), and offering to supply a summary of the
questionnaire responses.
13
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
5. Observation
Observation, the act of watching processes being performed, is a powerful tool for gathering
information about the as-is system because it enables the analyst to see the reality of a situation,
rather than listening to others describe it in interviews or JAD sessions. Observation is a good way
to check the validity of information gathered from indirect sources such as interviews and
questionnaires.
The goal is to keep a low profile, to not interrupt those working, and to not influence those being
observed. Nonetheless, it is important to understand that what analysts observe may not be the
normal day-to-day routine because people tend to be extremely careful in their behavior when they
are being watched.
14
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
Introduction
Functional models describe business processes and the interaction of an information system with
its environment. In object-oriented systems development, two types of models are used to describe
the functionality of an information system: Use cases and Activity diagrams. Both can be used to
describe the current as-is system and the to-be system being developed.
We have discussed popular requirements-gathering techniques, such as interviewing, JAD, and
observation. Using these techniques, the analyst determined the requirements and created a
requirements definition. The requirements definition defined what the system is to do.
In this section, we discuss how the information that is gathered using these techniques is
organized and presented in the form of use-case and activity diagrams and use case
descriptions. Because Unified Modeling Language (UML) has been accepted as the standard notation
by the Object Management Group (OMG), almost all object-oriented development projects today use
15
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
these models to document and organize the requirements that are obtained during the analysis
workflow.
• A use case is a formal way of representing the way a business system interacts with its
environment. Essentially, a use case is a high-level overview of the business processes in a business
information system.
• Activity diagrams are typically used to augment our understanding of the business processes and
our use-case model. Technically, an activity diagram can be used for any type of process-modeling
activity.
Process models depict how a business system operates. They illustrate the processes or activities
that are performed and how objects (data) move among them. A process model can be used to
document a current system (i.e., as-is system) or a new system being developed (i.e., to-be system),
whether computerized or not.
Activity diagrams and use cases are logical models—models that describe the business domain’s
activities without suggesting how they are conducted. Reading a use-case or activity diagram, in
principle, should not indicate if an activity is computerized or manual, if a piece of information is
collected by paper form or via the Web, or if information is placed in a filing cabinet or a large
database. These models provide information that is needed to ultimately build the system.
An analyst can employ use cases and the use-case diagram to better understand the functionality of
the system at a very high level. Typically, because a use-case diagram provides a simple,
straightforward way of communicating to the users exactly what the system will do. A use-
case diagram is drawn when gathering and defining requirements for the system.
Use-case diagram illustrates in a very simple way the main functions of the system and the different
kinds of users that will interact with it. Figure 2 describes the basic syntax rules for a use-case diagram.
Figure 3 presents a use-case diagram for the doctor’s office appointment system.
16
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
17
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
18
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
3. Use Case
A use case, depicted by an oval in the UML, is a major process that the system performs and that
benefits an actor or actors in some way (see Figure 3); it is labeled using a descriptive verb–noun
phrase. We can tell from Figure 3 that the system has three primary use cases: Manage Appointments,
Produce Schedule, and Record Availability.
There are times when a use case includes, extends, or generalizes the functionality of another use
case in the diagram. These are shown using include, extend, and generalization relationships. It
may be easier to understand these relationships with the help of examples.
Let’s assume that every time a patient makes an appointment, the patient is asked to verify payment arrangements.
However, it is occasionally necessary to actually make new payment arrangements. Therefore, we may want to have a use
case called Make Payment Arrangements that extends the Manage Appointments use case to include this additional
functionality. In Figure 5, an arrow labeled with extend was drawn from the Make Payment
Arrangements use case to the Manage Appointment use case to denote this special use-case
relationship. The Make Payment Arrangements use case was drawn lower than the Manage
Appointments use case.
Similarly, there are times when a single use case contains common functions that are used by other use cases. For example,
suppose there is a use case called Manage Schedule that performs some routine tasks needed to maintain the doctor’s
office appointment schedule, and the two use cases Record Availability and Produce Schedule both perform the routine
tasks. Figure 5 shows how we can design the system so that Manage Schedule is a shared use case that is used by others.
An arrow labeled with include is used to denote the include relationship, and the included use case is drawn
below the use cases that contain it. Notice that the arrows are drawn from the Record Availability and
Produce Schedule use cases to the common Manage Schedule use case.
Finally, there are times when it makes sense to use a generalization relationship to simplify the individual use
cases. For example, in Figure 5, the Manage Appointments use case has been specialized to include a use case for an
Old Patient and a New Patient. The Make Old Patient Appt. use case inherits the functionality of the Manage
Appointments use case (including the Make Payment Arrangements use-case extension) and extends its own
functionality with the Update Patient Information use case. The Make New Patient Appt use case also inherits all the
functionality of the generic Manage Appointments use case and calls the Create New Patient use case, which includes
the functionality necessary to insert the new patient into the patient database. The generalization relationship
is represented as an unlabeled hollow arrow with the more general use case being higher than
the lower use cases. Also, notice that we have added a second specialized actor, Old Patient, and
that the Patient actor is now simply a generalization of the Old and New Patient actors.
19
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
4. Subject Boundary
The use cases are enclosed within a subject boundary, which is a box that defines the scope of the
system and clearly delineates what parts of the diagram are external or internal to it (see Figure 2). A
subject boundary can be used to separate a software system from its environment, a subsystem from
other subsystems within the software system, or an individual process in a software system. They also
can be used to separate an information system, including both software and internal actors, from its
environment. Care should be taken to decide what the scope of the information system is to be.
Identifying the Major Use Cases and Drawing the Use Case Diagram
1) The first step is to review the requirements definition
2) The second step is to identify the subject’s boundaries. This helps the analyst to identify the
scope of the system. However, as we work through the development process, the boundary of the
system most likely will change.
20
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
3) The third step is to identify the primary actors and their goals. The primary actors involved
with the system come from a list of stakeholders and users. Recall that a stakeholder is a person,
group, or organization that can affect (or will be affected by) a new system, whereas an actor is a
role that a stakeholder or user plays, not a specific user (e.g., doctor, not Dr. Jones).
4) The fourth step is to simply identify the business processes and major use cases. Rather than
jumping into one use case and describing it completely at this point, we only want to identify the
use cases.
5) The fifth step is to carefully review the current set of use cases. It may be necessary to split
some of them into multiple use cases or merge some of them into a single use case. Also,
based on the current set, a new use case may be identified. You should remember that identifying
use cases is an iterative process, with users often changing their minds about what a use case is
and what it includes. It is very easy to get trapped in the details at this point, so you need to
remember that the goal at this step is to only identify the major use cases.
21
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
22
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
23
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
24
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
say that the receptionist should look up the available dates on the calendar using Google Calendar to
determine if the requested appointment times were available.
The primary difference is that essential use cases are implementation independent, whereas real
use cases are detailed descriptions of how to use the system once it is implemented. Thus, real
use cases tend to be used only in the design, implementation, and testing.
25
System Analysis & Design (CSC 3307) | Jeremiah Isuwa
Assignment.
Refer to assignment document and submit on or before set dateline. Prepare for presentation
of assignment as well.
26