Structured Analysis and Design
Structured Analysis and Design
In Object-oriented methodologies that model real-world systems, processes and data are
so closely related that it is difficult to pick one or the other as the primary focus.
Therefore, the representation of the system is in the form of objects that contains
both data and processes.
ANALYSIS OBJECTIVES
The analysis must achieve three primary objectives:
ANALYSIS PRINCIPLES
All analysis methods are related by a set of operational principles:
Information domain
The first operational analysis principle requires an examination of the information
domain and the creation of a data model. The information domain contains three
different views of the data and control as each is processed by a computer program:
Information content: represents the individual data and control objects that
constitute some larger collection of information
transformed by the software. For example, the data object,
paycheck is a composite of a number of important pieces of
data: the payee's name, the net amount to be paid, the
gross pay, deductions, and so forth.
Information flow: represents the manner in which data and control change as
each move through a system.
Models
The second and third operational analysis principles require that we build models of
function and behavior.
Behavioral models most software responds to events from the outside world.
This stimulus/response characteristic forms the basis of
the behavioral model. A computer program always exists in
some state—an externally observable mode of behavior (e.g.,
waiting, computing, printing, polling) that is changed only
when some event occurs. e.g., a mouse movement
Roles of models
English narrative descriptions of a system are inefficient because:
1. The model aids the analyst in understanding the information, function, and behavior
of a system, thereby making the requirements analysis task easier and more
systematic.
2. The model becomes the focal point for review and, therefore, the key to a
determination of completeness, consistency, and accuracy of the specifications.
3. The model becomes the foundation for design, providing the designer with an
essential representation of software that can be "mapped" into an implementation
context.
Partitioning
The information, functional, and behavioral domains of software can be partitioned. In
essence, partitioning decomposes a problem into its constituent parts. Conceptually,
we establish a hierarchical representation of function or information and then
partition the uppermost element by:
The most widely used structured methodology is SSADM. (SSADM – Structured Systems
Analysis and Design Method)
Structured analysis has the following attributes:
Environment It calls for a rigorous study of the user area, a commitment that
is often taken lightly in the traditional approach to systems
analysis.
Interleaved Certain tasks that are normally carried out late in the system
processes development life cycle are moved to the analysis phase. For
example, user procedures are documented during rather than later
in implementation.
Requirements Determination
6.2.1 Activities in requirement Determination
6.2.1.1 Requirements Anticipation
6.2.1.2 Requirements Investigation
6.2.1.3 Requirements Specifications
6.2.2 Basic Requirements
6.2.3 Understand the Process
6.2.4 Identify data used and information produced
6.2.5 Determine process timing and volume
6.2.6 Identity controls
6.2.7 User transaction Requirements
6.2.8 User decision Requirements
6.3 Fact – Finding Techniques
6.3.1 Interview
6.3.2 Questionnaire
6.3.3 Record Review
6.3.4 Observation
Requirement analysis
Requirements classification and organization
Requirements prioritization and negotiation
Requirement Definition and specification
Requirement Documentation
Requirement validation and verification
Requirement management
REQUIREMENT ENGINEERING
REQUIREMENTS
The manner in which a systems investigation is conducted will determine whether the
appropriate information is gathered. In turn, having the right information influences
the quality of the application that follows. In other words, good system design,
whether developed through the SDLC method, prototyping, or structured methods, begins
by documenting the current system and properly diagnosing systems requirements.
Requirements elicitation and analysis This is the process of deriving the system
requirements through observation of existing
systems, discussions with potential users and
procurers, task analysis, and so on. This may
involve the development of one or more system
models and prototypes that will help
understand the system to be specified.
The activities in the requirements process are not simply carried out in a strict
sequence. Requirements analysis continues during definition and specification and new
requirements come to light throughout the process. Therefore, the activities of
analysis, definition, and specification are interleaved. In agile methods, such as
extreme programming, requirements are developed incrementally according to user
priorities and the elicitation of requirements comes from users who are part of the
development team.
FEASIBILITY
CHARACTERISTICS OF REQUIREMENTS
TYPES OF REQUIREMENTS:
One way of categorizing them is described as the FURPS+ model, using the
acronym FURPS to describe the major categories of requirements with subcategories as
shown below.
Functionality
Usability
Reliability
Performance
Supportability
Reliability
Performance
Documentation:
Required quantity & quality of documentation
Documentation format: online, book or both
Type of documentation
Audience
Design
constraints
Implementation
requirements
LEVELS OF REQUIREMENTS
External This broad heading covers all requirements that are derived from
requirements factors external to the system and its development process. These
may include regulatory requirements that set out what must be
done for the sys-tem to be approved for use by a regulator, such
as a central bank; legislative requirements that must be
followed to ensure that the system operates within the law; and
ethical requirements that ensure that the system will be
acceptable to its users and the general public.
Operational The physical and technical The system should be able to fit
environments in which the in a pocket or purse.
system will operate The system should be able to
integrate with the existing
inventory system
The system should be able to work
on any Web browse
Performance The speed, capacity, and Any interaction between the user
reliability of the system and the system should not exceed 2
seconds
The system should receive updated
inventory information every 15
minutes
The system should be available for
use 24 hours per day, 365 days per
year v
Security Who has authorized access to Only direct managers can see
the system under what personnel records of staff.
circumstances Customers can only see their order
history during business hours.
Property Measure
Size Mbytes
Number of ROM chips
It must be noted that during the requirement process, we are in the definition phase
of the software development where the focus is on what and not how. Therefore,
requirements must not include design or implementation details
Policy concerns Related to the overall policies that governs the use of a
system. Policy concerns include security and safety
concerns and concerns related to business rules.
In addition to core concerns, large systems also have secondary functional concerns.
These may involve functionality that shares information with the core concerns, or
which is required so that the system can satisfy its non-functional requirements.
In addition to these secondary concerns, other concerns such as quality of service and
organizational policies reflect essential system requirements. In general, these are
system concerns—they apply to the system as a whole rather than to individual
requirements or to the realization of these requirements in a program. These are
called cross-cutting concerns to distinguish them from core concerns. Secondary
functional concerns may also be cross-cutting although they do not always cross-cut
the entire system; rather, they are associated with groupings of core concerns that
provide related functionality.
Programming language abstractions, such as procedures and classes, are the mechanism
that you normally use to organize and structure the core concerns of a system.
However, the implementation of the core concerns in conventional programming languages
usually includes additional code to implement the cross-cutting, functional, quality
of service, and policy concerns. This leads to two undesirable phenomena: tangling and
scattering
The code supporting the primary concern (in this case, putting a record into the
buffer), is tangled with code implementing synchronization. Synchronization code,
which is associated with the secondary concern of ensuring mutual exclusion, has to be
included in all methods that access the shared buffer. Code associated with the
synchronization concern is shown as shaded code
The figure illustrated this: This diagram shows examples of three classes that might
be included in a patient record system along with some of the core methods for
managing patient information. The shaded area shows the methods that are required to
implement the secondary statistics concern. You can see that this statistics concern
is scattered throughout the other core concerns.
Problems with scattering and tangling occur when the initial system requirements
change. For example, say new statistical data had to be collected in the patient
record system. The changes to the system are not all located in one place and so you
have to spend time looking for the components in the system that have to be changed.
You then have to change each of these components to incorporate the required changes.
This may be expensive because of the time required to analyze the components and then
make and test the changes. There is always the possibility that you will miss some
code that should be changed and so the statistics will be incorrect.
Furthermore, as several changes have to be made, this increases the chances that you
will make a mistake and introduce errors into the software.
This diagram shows that viewpoints may be of different types but cross-cutting
concerns (such as regulation, dependability, and security) generate requirements that
may impact on all of the system viewpoints.
The extensions to the core system reflect additional stakeholder concerns, which must
be integrated with the core system. For example, it is important that a medical
information system maintains the confidentiality of patient information, so one
extension might be concerned with access control, another with encryption, etc.
Extensions always add some kind of functionality or additional features to the core
system. Aspects are a way to implement these extensions and they can be com-posed with
the core system functionality using the weaving facilities in the aspect-oriented
programming environment
Types of extensions
QoS extensions These add functional capabilities to help attain the quality of
service requirements that have been specified for the system.
For example, an extension might implement a cache to reduce the
number of database accesses or automated backups for recovery
in the event of a system failure.
To develop a system that is organized in the style shown in Figure above, you should
identify requirements for the core system plus the requirements for the system
extensions.
For example, imagine that you are developing a software system to keep track of
specialized equipment used by the emergency services. Equipment is located at
different places across a region or state and, in the event of an emergency such as a
flood or earthquake; the emergency services use the system to discover what equipment
is available close to the site of the problem. The table below outlines requirements
from three possible viewpoints for such a system
You can see from this example that stakeholders from all of the different view-points
need to be able to find specific items of equipment, browse the equipment available at
each location, and check in/check-out equipment from the store. These are therefore
requirements for the core system.
The secondary requirements support the more specific needs of each viewpoint. There
are secondary requirements for system extensions supporting equipment use, management,
and maintenance. The secondary functional requirements that are identified from any
one viewpoint do not, necessarily, cross-cut the requirements from other viewpoints.
For example, only the maintenance viewpoint is interested in completing maintenance
records. These requirements reflect the needs of that viewpoint and those concerns may
not be shared with other viewpoints.
C.1 The system shall allow authorized users to view the description of
any item of equipment in the emergency services inventory.
As a general rule, you should avoid having too many concerns or extensions to the
system. These simply confuse the reader and may lead to premature design. This limits
the freedom of designers and may result in a system design that cannot meet its
quality of service requirements.
PRACTICALS
Requirement Documentation
Requirement management
ANALYSIS STRATEGY DEVELOPMENT
Before the project team can determine what requirements are appropriate for a given
system, they need to have a clear vision of the kind of system that will be created,
and the level of change that it will bring to the organization.
Sometimes the first step (i.e., understanding the as-is system) is skipped or done in
a cursory manner. This happens when no current system exists, if the existing system
and processes are irrelevant to the future system, or if the project team is using a
RAD or agile development methodology in which the as-is system is not emphasized.
The choice of technique used is based on the amount of change the system is meant to
create in the organization.
To move the users “from here to there,” an analyst needs strong critical thinking
skills. Critical thinking is the ability to recognize strengths and weaknesses and
recast an idea in an improved form, and they are needed to really understand issues
and develop new business processes. These skills are needed to thoroughly examine the
results of requirements gathering, to identify business requirements, and to translate
those requirements into a concept for the new system.
Business Process Automation
Business process automation (BPA) means leaving the basic way in which the
organization operates unchanged, and using computer technology to do some of the work.
BPA can make the organization more efficient but has the least impact on the business.
BPA projects spend a significant time understanding the current as-is system before
moving on to improvements and to-be system requirements. Problem analysis and root
cause analysis are two popular BPA techniques.
BPA techniques
Problem analysis
It is an act of reasoning and analysis to find "the problem behind the problem". It
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. Problem analysis is done to understand
problems, initial stakeholder needs, and propose high-level solutions.
During problem analysis, agreement is gained on the real problem(s), and who the
stakeholders are. Also, you define what from a business perspective are the
boundaries of the solution, as well as business constraints on the solution.
You should also have analyzed the business case for the project so that there is a
good understanding of what return is expected on the investment made in the system
being built.
Most users have a very good idea of the changes they would like to see, and most will
be quite vocal about suggesting them. Most changes tend to solve problems rather than
capitalize on opportunities, but this is possible, too. 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. However, it often provides only minor improvements in business value—the new
system is better than the old, but it may be hard to identify significant monetary
benefits from the new system
In the business world, the challenge lies in identifying the root cause. The solutions
that users propose (or systems that analysts think of) may either address symptoms or
root causes, but without a careful analysis, it is difficult to tell which one.
Root cause analysis focuses on problems, not solutions. The analyst starts by having
the users generate a list of problems with the current system, and then prioritize the
problems in order of importance. Then starting with the most important, the users
and/or the analysts generate all the possible root causes for the problems. Each
possible root cause is investigated (starting with the most likely or easiest to
check) until the true root cause(s) are identified. If any possible root causes are
identified for several problems, those should be investigated first, because there is
a good chance they are the real root causes influencing the symptom problems.
In our light bulb example, there are several possible root causes. A decision tree
sometimes helps with the analysis. As the Figure shows, there are many possible root
causes, so buying a new fixture may or may not address the true root cause. In fact,
buying a light-bulb changer may actually address the root cause. The key point in root
cause analysis is to always challenge the obvious.
Business Process Improvement
Business process improvement (BPI) means making moderate changes to the way in which
the organization operates to take advantage of new opportunities offered by technology
or to copy what competitors are doing. BPI can improve efficiency (i.e., doing things
right) and improve effectiveness (i.e., doing the right things).
BPI projects also spend time understanding the as-is system, but much less time than
BPA projects; their primary focus is on improving business processes, so time is spent
on the as-is only to help with the improvement analyses and the to-be system
requirements.
BPI techniques
Three popular BPI activities are:
1. Duration analysis,
2. Activity-based costing
3. Information benchmarking
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, etc.) 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.
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. For example in the mortgage
application example, there is probably no reason that the
credit check cannot be performed at the same time as the
appraisal and title check
Activity-Based Costing
Activity-based costing is a similar analysis that 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 most costly processes, and focus their improvement efforts on them.
Assigning costs is conceptually simple. You just examine the direct cost of labor and
materials for each input. Materials costs are easily assigned in a manufacturing
process, while labor costs are usually calculated based on the amount of time spent on
the input and the hourly cost of the staff. However, as you may recall from a
managerial accounting course, there are indirect costs such as rent, depreciation, and
so on that also can be included in activity costs.
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 have
the potential to add value.
BPR projects spend little time understanding the as-is, because their goal is to focus
on new ideas and new ways of doing business.
BPR techniques
1. Outcome analysis
2. Technology analysis
3. Activity elimination
Outcome Analysis
Outcome analysis focuses on understanding the fundamental outcomes that provide value
to customers. It determines what the organization’s products and services enable the
customers to do and what effective and efficient ways they could enable the customer
to do such things.
Technology Analysis
Many major changes in business over the past decade have been enabled by new
technologies. Technology analysis therefore starts by having the analysts and managers
develop a list of important and interesting technologies. Then the group
systematically identifies how each and every technology could be applied to the
business process and identifies how the business would benefit.
This is done when no current system exists, if the existing system and processes are
irrelevant to the future system, or if the project team is using a RAD or agile
development methodology in which the as-is system is not emphasized.
Three different architectures must be analyzed and designed within the context of
business objectives and goals:
1. Data architecture
2. Applications architecture
3. Technology infrastructure
The technology infrastructure: provides the foundation for the data and application
architectures. The infrastructure encompasses the
hardware and software that are used to support the
application and data. This includes computers,
operating systems, networks, telecommunication links,
storage technologies, and the architecture (e.g.,
client/server) that has been designed to implement
these technologies.
BPE techniques
1. Information strategy planning (ISP)
2. Business area (domain) analysis (BAA)
3. Business system design (BSD)
4. Construction and integration
As the system engineer begins BAA, the focus narrows to a specific business domain.
BAA views the business area as an entity and isolates the business functions and
procedures that enable the business area to meet its objectives and goals. BAA, like
ISP, defines data objects, their relationships, and how data flow. But at this level,
these characteristics are all bounded by the business area being analyzed. The outcome
of BAA is to isolate areas of opportunity in which information systems may support the
business area.
SOFTWARE ENGINEERING:
Element INFORMATION SYSTEM SYSTEM ARCHITECTURE
COMPONENTS
view BUSINESS SYSTEM DESIGN Data architecture
(BSD)
Data objects Applications architecture
Relationships between Technology infrastructure
data objects
Data flow
Business functions and
procedures
SOFTWARE ENGINEERING:
Detailed INFRASTRUCTURE
view CONSTRUCTION AND New Information System
INTEGRATION
Database
Internal Data Structures
Applications
Technology Infrastructure
Product engineering
The goal of product engineering is to translate the customer’s desire for a set of
defined capabilities into a working product. To achieve this goal, product engineering
—like business process engineering—must derive architecture and infrastructure. The
architecture encompasses four distinct system components: software, hardware, data
(and databases), and people. A support infrastructure is established and includes the
technology required to tie the components together and the information (e.g.,
documents, CD-ROM, video) that is used to support the components
PE techniques
1. Requirements engineering
2. Component engineering
3. Analysis & design modeling
4. Construction & integration
Requirements engineering
The world view is achieved through requirements engineering. The overall requirements
of the product are elicited from the customer. These requirements encompass
information and control needs, product function and behavior, overall product
performance, design and interfacing constraints, and other special needs. Once these
requirements are known, the job of requirements engineering is to allocate function
and behavior to each of the four components noted earlier.
DESIGN:
Data designs
Architectural designs
Interface designs
Software component-level
designs
REQUIREMENT ENGINEERING:
REQUIREMENTS DETERMINATION
Requirements determination involves studying the current business system to find out
how it works and where improvements should be made. The purpose of the requirements
determination step is to turn the very high-level explanation of the business
requirements stated in the system request into a more precise list of requirements
than can be used as inputs to the rest of analysis. This expansion of the requirements
ultimately leads to the design phase. Systems studies result in an evaluation of how
current methods are working and whether adjustments are necessary or possible. These
studies consider both manual and computer methods, they are not merely computer
studies
REQUIREMENTS ANTICIPATION
Having had experience in a particular business area or having encountered systems in
an environment similar to the one currently under investigation will influence systems
analysts study. They may foresee the likelihood of certain problems or features and
requirements for a new system. As a result, the features they investigate for the
current system, questions they raise, or methods employed may be based on this
familiarity.
Requirements anticipation can be a mixed blessing. On the one hand, experience form
previous studies can lead to investigation of areas that would otherwise go unnoticed
by an inexperienced analyst. Having the background to know what to ask or which aspect
to investigate can be a substantial benefit to the organization.
On the other hand, if a bias is introduced or shortcuts are taken in conducting the
investigation, requirements anticipation is a problem. We will point out guidelines
for structuring an investigation around basic questions to avoid the undesirable
consequences of requirements anticipation.
REQUIREMENTS INVESTIGATION
This involves using a variety of tools and skills to study the current system and
document its features for further analysis. This relies heavily on fact-finding
techniques and includes methods for documenting and describing system features.
Understand the Process: Begin with the basics. Analysts must raise questions
that, when answered, will provide a background of
fundamental details about the system and describe it.
Finding answers to the following questions will help
acquire the necessary understanding.
Suppose you are reinvestigating an inventory reordering system, something about which
you know very little. Where should you begin? Listed below are brief answers to basic
questions about the inventory reordering system. These are the kinds of answers you
would need to seek for any system you were studying
What is the purpose of To ensure that adequate quantities of stock and materials are
inventory reordering? on hand and available for use without carrying an excessive
and therefore costly quantity.
Who perform them? Purchasing manages approve all orders. Stock managers
assemble buying instructions and write orders.
How long does this The process may take a few minutes for simple and routine
take? high – prices item or other special circumstance.
How often is it done? This is a continuous process. Different items are always
being ordered.
Notice how quickly answers to these questions provide a broad understanding of what
inventory reordering is all about and show that the objective of inventory reordering
is more than just buying stock. But analysts cannot stop here. There is not yet enough
information to fully understand inventory reordering. Instead, the background acquired
enables to raise more detailed questions.
Identify data used and Analysts next need to find out what data are used to
information produced perform each activity for example, to reorder
inventory, the buyer might require data describing
the quantity of an item of hand, expected demand for
the item, supplier name, and item cost. To know when
to place an order, the buyer would also consider the
necessary lead-time (how far in advance the item
should be ordered to be on hand when needed).
Determine process timing and The frequency of business activities varies greatly.
volume For example, some activities, such as paying taxes,
occur only a few times a year, whereas paying
employees is a weekly activity. Therefore, analysts
should learn how often the activity is repeated.
Knowing whether an activity occurs frequently may
lead the analyst to raise many additional and
important questions to determine the reason for the
frequency and its effect on business activities.
Analysts assigned to work on an order entry system would want to know more about how
these transactions are processed. To understand these transaction requirements they
would undoubtedly ask questions such as the following:
Executive management
TOP LEVEL Business Purpose DSS
Middle management and professional staff User decision Requirements
MIDDLE LEVEL Policies Goals and Objectives MIS
Supervisory staff
Clerical and service staff Basic business activities that fulfill purpose, goals, objectives & policies User transaction Requirements
LOWER TPS
Decision systems may focus on the past, the present, or the future. Some may support
recurring decisions (such as merchandise pricing, while others are unique and do not
recur). They may used data that originate inside the firm, such as through transaction
processing, or outside, for example form trade associations or commercial sources
(such as marketing research firms who sell information to organizations).
In some cases, transaction data are processed to provide new information for decision
making. For instance, summarized sales transaction data tell managers which products
sell and which do not.
Analysts investigating decision support systems should raise the same questions about
timing and frequency discussed previously. But other questions should also be posed to
determine decision requirements:
These questions also point out the relationship between transaction and decision
systems. If transaction systems do not capture and store the data needed for decision,
important information will be unavailable. Inventory systems capture details about
ongoing ordering, receipt, sale, and shipment of items, the data they store are
further processed to produce information periodically to analyze sales, determine
pricing policy, or decide on marketing plan for product lines.
This means:
1. That analysts investigating decision systems must be aware of supporting
transaction systems and
2. That effective decision systems require suitable transaction processing
procedures to be place first
Of course, this information rarely provides enough to build the system in question.
Usually the customer will later volunteer more demands (or change existing
ones) and provide clarifications to the gray areas when a developer needs it.
REQUIREMENT ELICITATION
The word “elicit” means to draw forth or bring out (something latent or potential)
Hence the need to actively engage stake holders in defining requirements. It is taken
for granted that users are ever willing to pour out a list of their requirement at the
slightest opportunity but in actual fact there is need in most cases to employ certain
methods that would ensure successful elicitation of requirements.
Elicitation is not an isolated activity but one that is required to be carried out
continuously throughout the requirement analysis and review cycle.
1. Brainstorming
Brainstorming works by focusing on a topic or problem, and then coming up with many
radical, haphazard or even absurd solutions to it. The suggested solutions are
documented, re-arranged reviewed afterwards. It is observed that new and excellent
discoveries would e made. It is a technique that promotes diversion type of thinking-
those team activities that produce a broad or diverse set of options. it is an
excellent way of elicitating many creative ideas for an area of interest. Structured
brainstorming produces numerous ideas about any given "central question" or "topic".
It is best applied as a group as it draws on the experience and creativity of all
members of the group, one could brainstorm on one's own to spark new ideas.
2. Document Analysis
Project teams often use document analysis to understand the as-is system. Under ideal
circumstances, the project team that developed the existing system will have produced
documentation, which was then updated by all subsequent projects. In this case, the
project team can start by reviewing the documentation and examining the system itself.
Unfortunately, most systems are not well documented because project teams fail to
document their projects along the way, and when the projects are over—there is no time
to go back and document. Therefore, there may not be much technical documentation
about the current systems available, or it may not contain updated information about
recent system changes. However, there are many helpful documents that do exist in the
organization: paper reports, memorandums, policy manuals, user training manuals,
organization charts, and forms
Documents (forms, reports, policy manuals, organization charts) only tell part of the
story. They represent the formal system that the organization uses. Quite often, the
“real” or informal system differs from the formal one, and these differences,
particularly large ones, give strong indications of what needs to be changed. For
example, forms or reports that are never used likely should be eliminated. Likewise,
boxes or questions on forms that are never filled in (or are used for other purposes)
should be rethought
The most powerful indication that the system needs to be changed is when users create
their own forms or add additional information to existing ones. Such changes clearly
demonstrate the need for improvements to existing systems. Thus, it is useful to
review both blank and completed forms to identify these deviations. Likewise, when
users access multiple reports to satisfy their information needs, it is a clear sign
that new information or new information formats are needed.
Many kinds of documents and reports can provide analysts with valuable information
about organizations and operations. In document reviews, analysts examine information
that has been recorded about the system and user. Document inspection can be performed
at the beginning of the study, as an introduction, or later in the study, as a basis
for comparing; actual operations with the records indicate should be happening.
Sample Questions:
e.g.
o Who is behind the request for this work?
o Who will use the solution?
o What will be the economic benefit of a successful solution?
o Is there another source for the solution that you need?
Selecting Interviewees
1. Create an interview schedule that lists all of the people who will be interviewed,
when, and for what purpose (
2. The people who appear on the interview schedule are selected based on the analyst’s
3. 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.
5. 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.
Like most other things about systems analysis, this is an iterative process—
starting with senior managers, moving to mid-level managers, then staff members,
back to mid-level man-agers, and so on, depending upon what information is needed
along the way
Open-ended questions Open-ended questions are those that leave room for
elaboration on the part of the interviewee. They are
similar in many ways to essay questions that you might find
on an exam.
Probing question Probing questions follow-up on what has just been discussed
in order to learn more, and they often are used when the
interviewer is unclear about an interviewee’s answer. They
encourage the interviewee to expand on or to confirm
information from a previous response, and they are a signal
that the interviewer is listening and interested in the
topic under discussion.
Unstructured interviews: interviews that seek a broad and roughly defined set of
information. In this case, the interviewer has a general
sense of the information needed, but few close-ended
questions to ask. These are the most challenging interviews
to conduct because they require the interviewer to ask
open-ended questions and probe for important information as
the need arises.
Top-down with the top-down interview, the interviewer starts with broad,
general issues and gradually works towards more specific ones. The
top-down approach is an appropriate strategy for most interviews
(it is certainly the most common approach). The top-down approach
enables the interviewee to become accustomed to the topic before
he or she needs to provide specifics. It also enables the inter-
viewer to understand the issues before moving to the details
because the interviewer may not have sufficient information at the
start of the interview to ask very specific questions. Perhaps
most importantly, the top-down approach enables the interviewee to
raise a set of “big picture” issues before becoming enmeshed in
details, so the interviewer is less likely to miss important
issues.
Bottom-up with the bottom-up interview, the interviewer starts with very
specific questions and moves to broad questions. 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. Or, bottom-up may be
appropriate if lower-level staff members are threatened or unable
to answer high-level questions. For example, “How can we improve
customer service?” may be too broad a question for a customer
service clerk, whereas a specific question is readily answerable
(e.g., “How can we speed up customer returns?”).
In any event, all interviews should begin with noncontroversial questions first, and
then gradually move into more contentious issues after the interviewer has developed
some rapport with the interviewee.
1. Have a general interview plan that lists the questions that you will ask in the
appropriate order; anticipates possible answers and provides how you will
follow up with them; and identifies segues between related topics
2. Confirm the areas in which the interviewee has knowledge so you do not ask
questions that he or she cannot answer.
3. Review the topic areas, the questions, and the interview plan, and clearly
decide which have the greatest priority in case you run out of time.
5. Prepare the interviewee as well. When you schedule the interview, inform the
interviewee of the reason for the interview and the areas you will be
discussing far enough in advance so that he or she has time to think about the
issues and organize his or her thoughts.
1. Build rapport with the interviewee, so that he or she trusts you and is willing
to tell you the whole truth, not just give the answers that he or she thinks
you want.
3. The interview should start with an explanation of why you are there and why you
have chosen to interview the person, and then move into your planned interview
questions.
4. Carefully record all the information that the interviewee provides. Recording
ensures that you do not miss important points, but it can be intimidating for
the interviewee. Most organizations have policies or generally accepted
practices about the recording of interviews, so find out what they are before
you start an interview. If you are worried about missing information and cannot
tape the interview, then bring along a second person to take detailed notes.
7. Separate facts from opinion. The interviewee may say, for example, “we process
too many credit card requests.” This is an opinion, and it is useful to follow
this up with a probing question requesting support for the statement (e.g.,
“Oh, how many do you process in a day?”). It is helpful to check the facts
because any differences between the facts and the interviewee’s opinions can
point out key areas for improvement.
8. As the interview draws to a close, be sure to give the interviewee time to ask
questions or provide information that he or she thinks is important but was not
part of your interview plan
9. Make sure that the interview ends on time (if necessary, omit some topics or
plan to schedule another interview).
10. As a last step in the interview, briefly explain what will happen next to
reassure the interviewee that his or her time was well spent and very helpful
to the project.
Post-Interview Follow-up
1. 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.
3. Often, the interview report is sent to the interviewee with a request to read
it and inform the analyst of clarifications or updates. Make sure the
interviewee is convinced that you genuinely want his or her corrections to the
report
4. 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
6. Focus Groups
A focus group is a means to elicit ideas and attitudes about a specific product,
service or opportunity in an interactive group environment. The Participants share
their impressions, preferences and needs, guided by a moderator.
7. Observation
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. Even though normal
practice may be to break formal organizational rules, the observer is unlikely to see
this. Thus, what you see may not be what you get.
In most cases, observation will support the information that users provide in
interviews. When it does not, it is an important signal that extra care must be taken
in analyzing the business system.
This technique is appropriate when documenting details about the current processes or
if the project intends to enhance or change current processes.
2 basic approaches:
Active/Visible: Here while the analyst observes the current process and
takes notes he/she may dialog with the worker. The analyst
can ask questions right away even if it breaks the routine
of the person being observed. The analyst might even
participate in the work to gain an immediate appreciation
of how the current system works.
8. Prototyping
2 categories exist:
Functional Scope: A horizontal prototype models a shallow and wide view of the
system functionality while the vertical prototype models a deep
but a narrow view of the system functionality.
9. Requirement Workshop:
10. Survey/Questionnaire
Selecting Participants:
1. Select the individuals to whom the questionnaire will be sent. The standard
approach is to select a sample, or subset, of people who are representative of the
entire group
2. Not everyone who receives a questionnaire will actually complete it. On aver-age,
only 30 to 50 percent of paper and e-mail questionnaires are returned. Response
rates for Web-based questionnaires tend to be significantly lower (often only 5 to
30 percent).
2. Questions on questionnaires must be very clearly written and leave little room
for misunderstanding, so closed-ended questions tend to be most commonly used
3. Questions must clearly enable the analyst to separate facts from opinions.
Opinion questions often ask the respondent the extent to which they agree or
disagree (e.g., “Are network problems common?”), while factual questions seek
more precise values (e.g., “How often does a network problem occur: once an
hour, once a day, once a week?”)
8. Have several colleagues review the questionnaire and then pretest it with a few
people drawn from the groups to whom it will be sent.
2. clearly explain 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.
3. Personally hand out the questionnaire and personally contacting those who have
not returned them after a week or two, as well as requesting the respondents’
supervisors to administer the questionnaires in a group meeting.
Questionnaire Follow-up
The facilitator: The facilitator is a person who sets the meeting agenda and
guides the discussion, but does not join in the discussion
as a participant. He or she does not provide ideas or
opinions on the topics under discussion to remain neutral
during the session.
The facilitator must be an expert in both group process
techniques and systems analysis and design techniques.
The meeting room: The meeting room is usually arranged in a U shape so that
all participants can easily see each other. At the front of
the room (the open part of the “U”), there is a whiteboard,
flip chart and/or overhead projector for use by the
facilitator who leads the discussion. In an e-meeting room,
each participant uses special software on a networked
computer to send anonymous ideas and opinions to everyone
else. In this way, all participants can contribute at the
same time, without fear of reprisal from people with
differing opinions.
Frequency of meeting: The group meets for several hours, several days, or several
weeks until all of the issues have been discussed and the
needed information is collected.
Selecting Participants
1. Participants are selected based on the information they can con-tribute, to
provide a broad mix of organizational levels, and to build political support
for the new system.
1. Sessions can run from as little as a half day to several weeks, depending upon
the size and scope of the project. Meeting sessions are structured—they must
be carefully planned. In general, closed-ended questions are seldom used
because they do not spark the open and frank discussions. In our experience, it
is better to proceed top-down in the sessions when gathering information.
Prepare the analysts and participants for the JAD session. Because the sessions can go
beyond the depth of a typical interview and are usually conducted off-site,
participants can be more concerned about how to prepare. It is important that the
participants understand what is expected of them.
Follow a formal agenda, and most have formal ground rules that define
appropriate behavior
The facilitator records the group’s input on a public display area, which can
be a whiteboard, flip chart, or computer display. He or she structures the
information that the group provides and helps the group recognize key issues
and important solutions. Under no circumstance should the facilitator insert
his or her opinions into the discussion. However, this does not mean that the
facilitator should not try to help the group resolve issues.
The preparation for requirement gathering largely depends on what tools are
being used for requirement modeling. The most important part of this
preparation is capturing and categorizing all information provided by the
customer in its raw form - this is what requirement modeling will work with.
In the scope of our approach we use the term project document library to refer to a
collection of raw information provided by the customer for the specific
project. The individual documents in this library are project visions,
relevant standards, customer interview logs, etc. The main idea here is that
a project document library will contain all raw information relevant for the
project and nothing else.
The process of gathering raw requirements basically involves going through the project
document library, finding such constraints and creating a separate requirement
for each constraint found. At this point we do not care about things like classifying
these requirements or whether they conflict with each other. All we need to do is
to collect the requirements and tag each one with the importance / urgency
(Must, Should, Could, Must not, etc.).
To help overcome the above problems, the approach of requirements gathering activity
must be organized.
Project scope defines the concept and range of the proposed solution, and limitations
identifying certain capabilities that the product will not include. Guard against
scope creep by tracing requirements back to the project goals/objectives and Assessing
the business and technical feasibility for the proposed system. This helps to validate
whether a requirement should be included.
2. Prioritize requirements
Documenting requirements attributes such as the requirement source, value and priority
will aid managing each requirement throughout its life cycle.
4. Identify constraints
Define one or more requirements elicitation methods (e.g., interviews, focus groups,
team meetings)
Identify the people who will help specify requirements and understand their
Organizational bias. It is important to solicit participation from many people so that
requirements are defined from different points of view; be sure to identify the
rationale for each requirement that is recorded. Create usage scenarios to help
customers/users better identify key requirements
7. Identify ambiguity
Tracking elicitation participation and the actual time spent eliciting the
requirements provides a basis for future planning.
REQUIREMENT ANALYSIS
1. Discovery
REQUIREMENT DISCOVERY
Requirements discovery is the process of distilling user and system requirements from
gathered information about the required system and existing systems.
Interviewing
Scenarios
Use cases
Ethnography
Interviewing
Formal or informal interviews with system stakeholders are part of most requirements
engineering processes. In these interviews, the requirements engineering team puts
questions to stakeholders about the system that they currently use and the sys-tem to
be developed. Requirements are derived from the answers to these questions.
Merits
People like talking about their work so are usually happy to get involved in
interviews.
Demerits:
1. However, interviews are not so helpful in understanding the requirements from the
application domain. It can be difficult to elicit domain knowledge through
interviews for two reasons:
(1) All application specialists use terminology and jargon that are specific
to a domain. It is impossible for them to discuss domain requirements
without using this terminology. They normally use terminology in a
precise and subtle way that is easy for requirements engineers to
misunderstand.
2. Interviews are also not an effective technique for eliciting knowledge about
organizational requirements and constraints because there are subtle power
relationships between the different people in the organization. Published
organizational structures rarely match the reality of decision making in an
organization but interviewees may not wish to reveal the actual rather than the
theoretical structure to a stranger. In general, most people are generally
reluctant to discuss political and organizational issues that may affect the
requirements.
Scenarios
Scenarios are real-life examples rather than abstract descriptions of interactions.
People usually find it easier to relate to real-life examples rather than
abstract descriptions. They can understand and criticize a scenario of how they might
interact with a software system. Requirements engineers can use the information gained
from this discussion to formulate the actual system requirements.
Each scenario usually covers one or a small number of possible interactions. Different
forms of scenarios are developed and they provide different types of information at
different levels of detail about the system. The stories used in extreme programming
are a type of requirements scenario.
A scenario starts with an outline of the interaction. During the elicitation process,
details are added to this to create a complete description of that interaction. At its
most general, a scenario may include:
1. A description of what the system and users expects when the scenario starts.
2. A description of the normal flow of events in the scenario.
3. A description of what can go wrong and how this is handled.
4. Information about other activities that might be going on at the same time.
5. A description of the system state when the scenario finishes
Use cases
Use cases are a requirements discovery technique that were first introduced in the
Use cases are documented using a high-level use case diagram. Actors in the process,
who may be human or other systems, are represented as stick figures. Each class of
interaction is represented as a named ellipse. Lines link the actors with the
interaction. Optionally, arrowheads may be added to lines to show how the interaction
is initiated.
There is no hard and fast distinction between scenarios and use cases. Some people
consider that each use case is a single scenario; others encapsulate a set of scenarios
in a single use case. Each scenario is a single thread through the use case.
Therefore, there would be a scenario for the normal interaction plus scenarios for
each possible exception. Each use case should be documented with a textual
description.
Scenarios and use cases are effective techniques for eliciting requirements from
stakeholders who interact directly with the system. Each type of interaction can be
represented as a use case. However, because they focus on interactions with the
system, they are not as effective for eliciting constraints or high-level business and
non-functional requirements or for discovering domain requirements.
The UML is a de facto standard for object-oriented modeling, so use cases and use
case–based elicitation are now widely used for object oriented requirements
elicitation.
Ethnography
Systems do not exist in isolation. They are used in a social and organizational
context and system requirements may be derived or constrained by that context.
Satisfying these social and organizational requirements is often critical for the
success of the system.
One reason why many systems are delivered but never used is that their requirements do
not take proper account of how the social and organizational context affects the
practical operation of the system.
People often find it very difficult to articulate details of their work because it is
second nature to them. They understand their own work but may not understand its
relationship to other work in the organization. Social and organizational factors that
affect the work, but which are not obvious to individuals, may only become clear when
noticed by an unbiased observer.
1. Requirements that are derived from the way in which people actually work,
rather than the way in which process definitions say they ought to work. For
example, air traffic controllers may switch off a conflict alert
system that detects aircraft with intersecting flight paths, even
though normal control procedures specify that it should be used. They
deliberately put the aircraft on conflicting paths for a short time to help
manage the airspace. Their control strategy is designed to ensure that these
aircrafts are moved apart before problems occur and they find that the
conflict alert alarm distracts them from their work.
2. Requirements that are derived from cooperation and awareness of other people’s
activities. For example, air traffic controllers may use an awareness of other
controllers’ work to predict the number of aircrafts that will be entering
their control sector. They then modify their control strategies depending on
that predicted workload. Therefore, an automated ATC system should allow
controllers in a sector to have some visibility of the work in adjacent
sectors.
Ethnography can be combined with prototyping. The ethnography informs the development
of the prototype so that fewer prototype refinement cycles are required. Furthermore,
the prototyping focuses the ethnography by identifying problems and questions that can
then be discussed with the ethnographer
Ethnographic studies can reveal critical process details that are often missed by
other requirements elicitation techniques. However, because of its focus on the end-
user, this approach is not always appropriate for discovering organizational or domain
requirements. They cannot always identify new features that should be added to a
system. Ethnography is not, therefore, a complete approach to elicitation on its own
and it should be used to complement other approaches, such as use case analysis.