0% found this document useful (0 votes)
45 views53 pages

Mcqs Unit-3 3 Merged

A queue is a first-in, first-out (FIFO) data structure where new elements are added to the rear of the queue and existing elements are removed from the front. It can be implemented using arrays or linked lists. Operations on a queue include insertion, which adds an element to the rear, and deletion, which removes an element from the front. Simple queues using arrays have limitations when elements are repeatedly inserted and deleted, but a circular queue addresses this by wrapping around to the front of the array when the rear reaches the end.

Uploaded by

M Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views53 pages

Mcqs Unit-3 3 Merged

A queue is a first-in, first-out (FIFO) data structure where new elements are added to the rear of the queue and existing elements are removed from the front. It can be implemented using arrays or linked lists. Operations on a queue include insertion, which adds an element to the rear, and deletion, which removes an element from the front. Simple queues using arrays have limitations when elements are repeatedly inserted and deleted, but a circular queue addresses this by wrapping around to the front of the array when the rear reaches the end.

Uploaded by

M Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

Introduction:

A queue is logically a First-In First-Out (FIFO) type of list. In our day to day life we come across
situations where we have to wait in a line for our turn. A new customer joins the queue from the rear end
whereas the ones who are done with the work leave the queue from the front end. This means that the
customers are attended in the order in which they arrive at the service center. i.e. first come first serve
(FCFS) type of service). This waiting queue is a Queue. Queue means a line. The above mentioned
characteristic applies to a Queue.

Thus, a queue is a non-primitive linear data structure. It is an ordered collection of homogeneous


elements in which new elements are added at one end called the REAR end, and the existing elements
are deleted from other end called the FRONT end. This linear data structure represents a linear list and
permits deletion to be performed at one end of the list and the insertion at the other. The information in
such a list is processed in the same order as it was received. A normal queue can be represented by one-
dimensional array in C.

An example of a queue can be found in a time-sharing computer system where many users share the
system simultaneously. Since such a system typically has a single central processing unit (called the
processor) and one main memory, these resources must be shared by allowing one user’s program to
execute for a short time, followed by the execution of another user’s program, etc., until there is a return
to the execution of the initial user’s program. The user programs that are waiting to be processed form a
waiting queue. This queue may not strictly operate on a strictly first-in first-out basis, but on some
complex priority scheme based on such factors as what compiler is being used, the execution time
required, the number of print lines desired, etc. The resulting queue is sometimes called a priority queue.

Suppose that at a service center, t1 units of time is needed to provide a service to a single customer and
on an average a new customer arrives at service center in t2 units of time. Then there are following
possibilities that may arise:
1. If t1<t2 then the service counter will be free for some time before a new customer arrives at the
service counter. Hence there will be no customer standing at a particular time in the queue, or the
queue will be empty.
2. If t1>t2 then the service counter will be busy for some time even after the arrival of a new
customer. Therefore the new customers have to wait for some time. This procedure when
continues for some time gives rise to a queue.
3. If t1=t2 then as one customer leaves the counter other will arrive at the same instant, hence queue
will be single element long.

Example (Graphical) of Addition in a 5 element Queue using Array:

Stage-1
F/R=-1 0 1 2 3 4

Stage-2 5
F/R=-0 0 1 2 3 4

Stage-3 5 9
0 1 2 3 4
F=0 R=1

Stage-4 5 9 3
0 1 2 3 4
F=0 R=2
Stage-5 5 9 3 7
0 1 2 3 4
F=0 R=3

It is clear from the above example that whenever we insert an element in the queue, the value of REAR
is incremented by one i.e. Rear=Rear+1
Only during the insertion of the first element in the queue, we will always increment the FRONT by one
i.e. Front=Front+1. Thereafter the FRONT will not be changed during the entire addition operation.
Hence two pointers namely FRONT and REAR are used to indicate the two ends of the queue. For the
insertion of the next element, the pointer REAR will be the consultant and for deletion the pointer
FRONT will be the consultant.

Example (Graphical) of Deletion from a 5 element Queue using Array:

Stage-1 5 9 3 7
0 1 2 3 4
F=0 R=3

Stage-2 9 3 7
0 1 2 3 4
F=1 R=3

Stage-3 3 7
0 1 2 3 4
F=2 R=3

Stage-4 7
0 1 2 3 4
F=3
R=3

Stage-5
F/R=-1 0 1 2 3 4

Implementation of Queue:
Queues can be implemented in two ways:
1. Static implementation using Arrays
2. Dynamic implementation using Pointers

If Queue is implemented using Arrays, we must be sure about the exact number of elements we want to
store in the Queue, because we have to declare the size of the array at design time or before the
processing starts. In this case, the beginning of the array will become the FRONT and the last location of
the array will be REAR for the queue. The total number of elements will be calculated as
FRONT-REAR+1
If Queue is implemented using pointers, the main disadvantage is that a node in a linked representation
occupies more memory space than a corresponding element in the array representation. The reason is
that there are at least two fields in each node, the data field and a field to store the address of next node
in the linked list. Whereas in an Array, only data field is there. It must be understood that the memory
space occupied by a node in a linked representation is not exactly twice the space used by an element of
array representation. The advantage is linked representation makes an effective utilization of memory.
Another advantage would be when an element is needed to be inserted/deleted from in between two
elements. In case of arrays, insertion/deletion in between two elements will require to shift the elements.
Also there is no space restriction with linked representation compared to Arrays where a fixed number
of elements are allowed.
Hence linked representation allows us to stress on our primary aim i.e. addition or deletion and not on
the overheads related to these processes, So the amount of work required is independent of the size of
the list.
For a linked representation, the addition of new node requires creating a new node, inserting in the
required position by adjusting two pointers and deletion requires adjusting pointers and pointing the
node to be deleted and free it.

Operations on a Queue:
There are two basic operations that can be performed on a Queue:
1. Insert an element in a Queue
2. Delete an element from the Queue

ALGORITHM TO INSERT AN ELEMENT IN QUEUE (using Arrays)


Procedure QINSERT(Q, F, R, N, Y)
Given F and R pointers to the front and rear elements of a queue, a queue Q consisting of N elements,
and an element Y, this procedure inserts Y at the rear of the queue. Prior to the first invocation of the
procedure, F and R have been set to zero.
1. [Overflow?]
If R ≥ N
then Write(‘OVERFLOW’)
Return
2. [Increment rear pointer]
R R + 1
3. [Insert element]
Q[R] Y
4. [Is front pointer properly set?]
If F = 0
then F � 1
Return

ALGORITHM TO DELETE AN ELEMENT FROM THE QUEUE (using Arrays)


Procedure QDELETE(Q, F, R)
Given F and R, the pointers to the front and rear elements of a queue respectively, and the queue Q to
which they correspond, this function deletes and returns the last element of the queue. Y is a temporary
variable.
1. [Underflow?]
If F=0
Then Write(‘UNDERFLOW’)
Return(0) (0 denotes an empty queue)
2. [Delete element]
Y Q[F]
3. [Queue empty?]
If F=R
then F R 0
else F F + 1
4. [Return element]
Return(Y)
Limitations of Simple Queues:
There is a problem associated with a simple queue when implemented using Arrays. When we perform
the insertions and deletions multiple times, we would reach a stage where Rear will point to last location
of Array. If there are no elements in the array, due to the multiple insertions and deletions, there may not
be any element in the array and Rear might be pointing to the last location. Hence if we try to insert and
element, it will show the message “Queue is Full” though it is empty. To remove this problem, one
solution will be whenever an element is deleted, shift all remaining elements to the left by one position.
But if the queue is too large then it will be difficult and time consuming.
Also after multiple insertions and deletions, the front would have moved beyond the size of the array,
pointing to a non-existent location. To take this pointer again pointing to the right position in the queue,
we always reset/check both the pointer Front and Rear in the Deletion algorithm using Arrays above.
Also this pair of algorithms can be very wasteful of storage if the front pointer F never manages to catch
up to the rear pointer. This method of performing operations on a queue should only be used when the
queue is emptied at certain intervals.
The solution to above issues would be to use a Circular Queue.

CIRCULAR QUEUE
A circular queue is one in which the insertion of a new element is put at the very first location of the
queue if the last location of the queue is full. In other words if we have a queue Q of n elements, then
after inserting an element last i.e. in the n-1th location of the array, the next element will be inserted at
the very first location i.e. location with subscript 0 of the array. It is possible to insert new elements if
and only if those locations are empty. A circular queue is one in which the first element comes just after
the last element. This technique essentially allows the queue to wrap around upon reaching the end of
the array. It can be viewed as a mesh or loop of wire, in which the two ends of the wire are connected
together. The circular queue is implemented by visualizing the one-dimensional array as circular queue.

A circular queue overcomes the problem of unutilized space in linear queues implemented as arrays. A
circular queue also has a Front and Rear to keep the track of the elements to be deleted and inserted and
therefore to maintain the unique characteristic of the queue. The following assumptions are made:

Fig. 1

1. Front will always be pointing to the first element (as in the linear queue)
2. If Front = Rear the queue will be empty
3. Each time a new element is inserted into the queue, the Rear is incremented by one.
Rear=Rear+1
4. Each time an element is deleted from the queue the value of Front is incremented by one.
Front=Front+1

Insertion in a Circular Queue


The insertion in a queue shown in the picture above (Fig. 1) is same as insertion in a linear queue. We
only have to keep track of Front and Rear with some extra logic.
A 5-element Circular Queue with 3 data (5, 10, 20)
is shown in this figure (Fig. 2).
If more elements are added to this queue, it looks
like the figure below (Fig. 3).
Now the queue will be full. If we now try to add
another element to the queue, as the new element
is inserted from the Rear end, the position of the
element to be inserted will be calculated by the
relation:
Fig. 2 Rear = (Rear + 1) % MAXSIZE
Queue[Rear] = Value
For the Figure (Fig. 3), the value of Rear is 4,
value of MAXSIZE is 5, hence
Rear = (Rear + 1) % MAXSIZE
Rear = (4 + 1) % 5
=0

Note that Front is pointing to Q[0] (Front=0) and


Rear also comes out to be 0 i.e. Rear is also
pointing to Q[0]. Since Rear=Front, the Queue
Overflow condition is satisfied, and our try to add
Fig. 3 new element will flash message “Queue
Overflow”.
In Figure (Fig. 4), Consider the situation when we
add an element to the queue. The Rear is
calculated as below:
Rear = (Rear + 1) % 5
Rear = (5 + 1) % 5
=0

The new element will be added to Q[Rear] or Q[0]


location of the array and Rear is increased by one
i.e. Rear = Rear + 1 = 0 + 1. So the next element
Fig. 4 will be added to location Q[1] of the array.

Deletion in a Circular Queue


The deletion method for circular queue also requires some modification as compared to linear queues.
In Fig. 5 the queue is full. Now if we delete one
element from the queue, it will be deleted from the
front end. After deleting the front element, the
front should be modified according to position of
Front i.e. if Front indicates to the last element of
the circular queue then after deleting that element
Front should be again reset to 0 (Front=0).
Otherwise after every deletion the new position
which Front should indicate will be:
Front = (Front + 1) % MAXSIZE
Fig. 5

ALGORITHM TO INSERT AN ELEMENT IN A CIRCULAR QUEUE (using Arrays)


Procedure CQINSERT(F, R, Q, N, Y)
Given pointers to the front and rear of a circular queue F and R, a vector Q consisting of N elements and
an element Y, this procedure inserts Y at the rear of the queue. Initially F and R are set to zero.
1. [Reset rear pointer?]
If R=N
then R 1
else R R + 1
2. [Overflow?]
If F=R
then Write(‘OVERFLOW’)
Return
3. [Insert element]
Q[R] Y
4. [Is front pointer properly set?]
If F=0
then F 1
Return

ALGORITHM TO DELETE AN ELEMENT FROM A CIRCULAR QUEUE (using Arrays)


Procedure CQDELETE(F, R, Q, N)
1. [Underflow?]
If F=0
then Write(‘UNDERFLOW’)
Return(0)
2. [Delete element]
Y Q[F]
3. [Queue empty?]
If F=R
then F R 0
Return(Y)
4. [Increment front pointer]
If F=N
then F 1
else F F + 1
Return(Y)

Double Ended Queues (Deque)


It is a homogeneous linear list of elements in which insertion and deletion operations are performed
from both ends i.e. we can insert elements from the rear end or from the front end. Hence it is called
double-ended queue. It is commonly referred to as deque.
There are two types of deques. These two types are due to the restrictions put to perform either the
insertions or deletions only at one end. They are:
1. Input-restricted deque: It allows insertions at only one end.
2. Output-restricted deque: It permits deletions from only one end.

Front Rear

deletion insertion
10 20 30 40 50
insertion deletion
Dq[0] Dq[1] Dq[2] Dq[3] Dq[4]

Since both insertion and deletion are performed from either end, it is necessary to design an algorithm to
perform the following four operations:
1. Insertion of an element at the Rear end of the queue
2. Deletion of an element From the Front end of the queue
3. Insertion of an element at the Front end of the queue
4. Deletion of an element from the Rear end of the queue

For an input-restricted deque only the operations specified in 1, 2, 3 and 4 are valid.
For an output-restricted deque only the operations specified in 1, 2 and 3 are valid.

Priority Queues
A priority queue is a collection of elements such that each element has been assigned a priority and the
order in which elements are deleted and processed comes from the following rules:
1. An element of higher priority is processed before any element of lower priority
2. Two elements with the same priority are processed according to the order in which they were
added to the queue
A queue in which we are able to insert items or remove items from any position based on some property
(such as priority of the task to be processed) is often referred to as a priority queue.
A prototype of priority is processed first, and programs with the same priority form a standard Queue.
Insertions in a Priority Queue need not occur at the absolute rear of the queue. Hence it is clear that an
array implementation may require moving a substantial number of data when an item is inserted at the
rear of one of the higher priorities. To avoid this, you can use a linked list to great advantage when
implementing a priority queue.

There can be two types of implementations of priority queue:


1. Ascending Priority Queue
2. Descending Priority Queue

A collection of items into which items can be inserted arbitrarily and from which only the smallest item
can be removed is called Ascending Priority Queue.

In Descending Priority Queue only the largest item is deleted. The elements of Priority Queue need not
be numbers or characters that can be composed directly. They may be complex structures that are
ordered by one or several fields. Sometimes the field on which the element of a Priority Queue is
ordered is not even part of the elements themselves.
The Priority Queue is a data structure in which intrinsic ordering of the elements determines the result of
its basic operations.
An Ascending Priority Queue is a collection of items into which items can be inserted arbitrarily and
from which only the smallest item can be removed. On the other hand a Descending Priority Queue
allows only the largest item to be removed.
Insertion: The insertion in Priority Queues is the same as in non-priority queues.
Deletion: Deletion requires a search for the element of highest priority and deletes the element with
highest priority. The following methods can be used for deletion/removal from a given Priority Queue:
● An empty indicator replaces deleted elements
● After each deletion, elements can be moved up in the array decrementing the Rear
● The array in the queue can be maintained as an ordered circular array

Applications of Queues
1. Round robin technique for processor scheduling is implemented using queues.
2. All types of customer services (like railway ticket reservation) center software are designed
using queues to store and service customers information.
3. Printer server routines are designed using queues. A number of users share a printer using printer
server
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design
Unit-3
Input / Output Design and Fact Gathering Techniques
Reference Book : System Analysis and Design (S.Parthasarathy, B.W. Khalkar)

Input Design:
• Input design involves capturing (Catching) of data and inputting it to the computer.
• Input design consists,
1) Data capture
2) Data validation

What is Data and Information?


• To understand the meaning of Data Capture, one can know about the “Data”.
• Data are the facts that describes events and entities. Various symbols, such as letters of
alphabets, numbers, speech patterns, dots and dashes, pictures etc. can used to represent
a Data.
• The processed data with specific purpose, known as Information.

What is Data Capture?


• The computer is not accept data (Input) in human readable form but only accept it into
machine sensible form. Data Capture is the process of collecting data that will be
processed (data collection in machine sensible form) and used later to fulfill certain purpose.
• Data Capture covers all the stages from the recording of basic data to the feeding of this
data into the computer for processing.

Objectives for Data Capture:


• Reduction in the data volume of input
• Lesser manual preparation
• Reduce the work and make it easy to prepare Input for those who involved in process of
Input design
• Minimizing the steps involved for Data Capture Process

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 1 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

 Basic Steps involved in Data Capture:


• The basic steps of Data Capturing are:
1. Original recording
2. Data transmission
3. Data preparation
4. Verification
5. Sorting
6. Control
7. Computer Input

1. Original Recording: This is the collection of data at its source. This involves clerical
preparation of source documents including manual checks.
For example: preparing an examination mark sheet.
2. Data Transmission: The data moves from the point of origin to the data processing center.
For example: the group of related mark list are bunched into batches and sent to data
processing center.
3. Data Preparation: The transcription (Record) of source document on to an input media
such as magnetic tape, magnetic disk etc is data preparation.
For example: in the offline system the transfer of data from mark list to magnetic floppy
disk is the case of data preparation.
4. Data Verification: It is a verification of transcription (Record), has been done correctly.
This is vital (essential) because if it can mislead, it can result in wrong output.
5. Sorting: Sorting is the process of arranging data into some desired sequence. Sorting may
be done manually or mechanically.
6. Control: Throughout all the stages listed above it is essential that checking, verifying and
validity controls are maintained. This is to ensure that all the data collected, transmitted
and input are correct.
7. Computer Input: The data is read by the input device like magnetic disk drive and
transferred to the internal store where it undergoes validity checks. Invalid data will pass
back to go through the entry stages again.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 2 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

Data Validation:
• The objective of a data validation system is to detect errors at the earliest possible stage before
costly activities are performed on invalid data. Some data validation is done by way of manual
verification in data capture stage itself.
• In spite of this, still there may be incorrect batches of input data, missing data, duplicate data
and incorrect file records etc. It is necessary that before data is first input to the computer for
processing different checks are carried out.
• This check will classify valid and invalid data.
• This is generally done with the help of a DATA VET program. This is often referred to as DATA
VELIDATION Or DATA VET.

Validation Checks:
There are various categories of checks which can be applied to during a validation run.
A) Field Check: includes the following
1) Limit check: May be applied to each field (data item) of a record to ensure that its content
lie within predefined size. (For Example: the amount of salary can be form 00000.00 to
15000.00 for an employee. If the amount is beyond these limits then further corrections
becomes necessary.)
2) Picture check: May be applied to each field to detect entry of incorrect characters in the
field. (For Example: PIC of employ-no is AAA 9999. an EMPLOY-NO PRD24NG would be
rejected as there is a letter in the sixth position and this should be only numeric)
3) Valid code check: To validate input against predefined transaction codes. These predefined
codes may either be embedded in the programs or stored in files. (For Example: Contents
EMPLOYEE-CATEGORY field A, B, C, D, E are only valid and any other letter coming inthat
field will be rejected)
4) Check digit: It is used to detect transposition errors when recording “key” fields.
(For Example: 54786 is entered as 54768)
5) Arithmetic checks: It is used to ensure the validity of the results by performing arithmetic
operations in different ways.
6) Cross checks: It may be applied to verify fields appearing in different files to verify that
result fully.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 3 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design
B) Transaction Check:
1) Sequence check: It is applied to detect any missing transaction. (e.g off serially numbered
vouchers).
2) Format completeness: It is used to check the presence and position of all fields in
transaction.
3) Redundant check: are employed to check the validity of codes with reference to
description.
4) Combination check: may be applied on various fields of a file.
5) Probability check: It is used to avoid unnecessary rejection of data.
6) Passwords: It may be exercised to check entry of data by unauthorized person in online
system.
7) Checks: It may be incorporated to ensure that transaction pertains (related) current period.
8) Batch total: Can be used to ensure that transaction have been transcribed (copy out)
correctly.
9) Hash total: A control totals i.e. the sum of values in a particular field or record area of a
file, to ensure that transactions have been transmitted currently.

Design of Output:
What is Design Output?
• The output generally refers to the result and information that are generated by the system.
• One of the most important features of an information system from the point of view of user is the
output it produces.
• If the output is of poor quality, the whole system is in peril (danger) because the users will then
avoid using it. Hence, the design of output assumes greater importance.
• In any system the output is largely dependent on input.

Design Principles of Output:


1) Principle of starting with output: Before we start the designing or the development of
system the output objective must be clear.
2) Principle of acceptability of reports: The reports which are created should be acceptable
by the users and they must be as per the requirements of the users.
3) Principle of timely output: The report should be created in time that is whenever the user
required report.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 4 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

4) Principle of enhancing Decision making: All the necessary information should be


provided in the report with the format so that user can take the decision easily by using that
report.
5) Principle of practicing “Management by Exception”: The exception report is created to
show the deviation difference between the actual plans and the current status of the
system. It submitted to management.
6) Principle of Duplication of Reduction in report: Duplicate or unnecessary information in
the report should be minimized. This automatically reduces the cost of processing.
7) Principle of simplicity in reports: Report should be concise, simple and self explanatory.

Output Objectives:
• Before designing output, the objectives of the output must be clear.
• The output reports are the attractive format and are produced by using latest technology.
• It must accomplish one or more of the following objectives.
An output must,
1) Convey information about
a. Past activity like personnel file, vendor history.
b. Current status like inventory on hand, cash on hand.
c. Future projections like sales or cost of manufacturing a new item.
2) Confirm task
It is used to know about the current status of given task.
3) Trigger an alarm
It is used whenever the market loss is there.
4) Signal Events
With the report provide the information lurking opportunities.

Types of Output:
There are various output required by most systems. The main types of output are as below:
1) External outputs: The report which are used outside the user’s organization. E.g.
Invoices Pay slips Tax returns etc.
2) Internal outputs: The output report used within the user’s organization.
e.g Inventory Report.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 5 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

3) Operational Outputs: The use of this is in general within computer department.


e.g Program listing.
4) Interactive Outputs: This involves the user communicating directly with the system.
e.g. Video conferencing.
5) Turnaround Outputs: The data will be added to the document before they are returned
to the computer for further processing.

 Output Considerations:
While designing output systems analyst must consider the following points:
1) Determine what information is to be present.
2) Decide whether to display, print the information and select the output medium.
3) Arrange the presentation of information in acceptable form.
4) Decide how to distribute the output to users.

Output Media:
There are different types of output media like
1) Printed output: The devise use for printed output may be line printer, dot matrix
printer, laser printer.
2) Visual outputs: Sometimes it is necessary used to show the output to the user through
the devices which can used CRT (Cathode Ray Tube).
For example, Airline and Hotel Reservation System.
3) Turnaround Document output: Based on the one created report decisions are taken
for the next report. E.g employee time cards.
4) Secondary storage output: The reports which are provided through magnetic disk,
magnetic tape.
5) Microfilm output: Microfilms are photographically reduced documents on films. Here
output is return on to the magnetic tape which is then fed into a machine called
Microform recorder.
6) Audio Response Outputs: Sometimes it is necessary to provide the output in the form
of sound. E.g. In the banking system customers can get balance in their accounts.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 6 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

Fact Finding Techniques (Fact Gathering Methods):


• Information gathering in large and complex organizations is not easy task.
• It has to be gathered in an organized way.
• There are some search methods or fact gathering techniques which are commonly used for data
gathering which are,
1. Interviewing
2. Questionnaires
3. Record inspection (Record Review)
4. Observation
These techniques are used in system analysis, design or even during implementation stage.
1. Interviewing:
• This technique is used to collect information from the individual or from groups.
• It is an art that prove, “better learned from practice than from books”.
• It is an invaluable technique to gather qualitative information, opinions, policies,
suggestions, underlying problems etc.
• However, there are certain points to be remembered in conducting interviews:
1. Put yourself in other’s place and pose your questions.
2. Maintain a neutral attitude. However, show genuine interest so that the other
person can come out with his problems, thoughts and ideas.
3. Ask specifics.
4. Notice what he does not say.
5. Do not allow your mind to wander. It is usually reflected to your face. If the
interviewer leaves the core subject, bring him back to the track tactfully.
6. Don’t show you are in hurry.
7. Be prepared for disagreement.
8. Always be polite.

Advantages of Interview:
• Face to face Communication, many things are reveal through eye contacts and body
gesture.
• Quick response and collection of sufficient primary information
• Selection based process so less costly
• The questionnaires and forms can be filled at the time of interviews if so desired.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 7 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

• The interviewee gets a sense of belonging to the proposed system if handled


properly
• Explore cause behind the problem
• Maintain relationship and also provides solution for labour problem if any
• The greatest advantage is that the underlying problems come to surface.

Disadvantages of Interview:
• No record maintenance
• Incomplete process
• Lack of attention
• Time consuming and costly
• Possibilities of biasness of Interviewer
• Not suitable for personal matters and may worse result if Interviewer has insufficient
knowledge of the matter or related subjects

2. Questionnaires:
• Questionnaires may be used as a supplement (enhancement) to interviews.
• More people can be reached and answers can be corroborated.
• The questionnaires can have open ended question like – what is the average value of
invoice in your department?
a) Less than Rs. 3000
b) Rs. 3000 to Rs. 5000
c) Rs. 5000 to Rs. 10000
d) Rs. 10000 and above.
• A respondent are selected carefully, and received responses are analyzed very carefully
without any bias
• A questionnaire can be considered as a structured interview form.
• Since the cost involved in developing and distributing is very high,
• The following points must be kept in mind while designing questionnaires:
1. The objective of the questionnaire must be clear.
2. The structure must be useful for the study.
3. Question must be easily and unambiguously understood.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 8 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

Questionnaires are useful for: (Need of Questionnaires)


1. Gathering numerical data.
2. Getting relatively simple opinion from a large number of people.
3. Obtaining collective (group) opinion etc.
Advantages of Questionnaire
• Relatively less costly
• Fast Result
• Easy analysis and comparative study is possible
• Standardize and no pressure on respondents

Disadvantages of Questionnaire:
• Possibilities of dishonest answers
• Non-attempting of questions and interpretation problems
• Analysis issue
• Survey fatigue
• Accessibility issue
• Lack of Personalization

3. Record Review: (Record Inspection):


• A record speaks open truth then the people.
• Thus a good analyst always gets facts from documents.
• An existing system can be better understood by examining existing documents, forms
and files.
• This record review can take place at the beginning of the system study or later in the
study for comparing actual operations with what the record indicate.
Records may include:
1) Written policy manuals.
2) Rules and regulations.
3) Standard operating procedures used in the organization.
4) 4) Forms and documents.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 9 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

The following questions may be useful in analysis of forms:


1) Who uses these forms?
2) Do they include all the information?
3) How readable and easy to follow is the form?
4) Is it ideal for analysis and inference? etc.

Advantages of Record Review:


• It enables easy collection of information which is routinely recorded.
• It minimizes recall bias for an event in the past.
• It also reduces the need for interruption in routine working process.
• Great source of background knowledge and data experience
• Don’t attract too much attention
• Noticing issues that have been overlooked or missed by other
• Reasonably inexpensive

Disadvantages of Record Review:


• Information may not be up-to-date, unorganized
• Might be biased due to selective existing files or records
• The information gathered may be inaccurate or half-finished
• Relatively time-consuming

4. Observation:
• An analyst must always keep themselves alert
• Observation can bring in missed facts; new ways to improve the existing procedures,
duplicate work done in inadvertently etc.
• Observation can bring in what other fact finding methods cannot!
• This task is delicate because people do not like to be observed when they work.

Observation can look for:


1. operational inefficiencies
2. Alternate routes and procedures.
3. Interruptions in the normal flow of work.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 10 of 11
Shree P.M.Patel College of Computer Science & Technology, Anand
BCA Semester-III
US03CBCA27 – System Analysis and Design

4. The usage of files and documents.


5. Informal communication channels etc.
Onsite observation provides close view of the working of the real system. He can observe
people, objects, documents and occurrences of events.

Advantages of Observation:
• Simple and Universal method.
• Great accuracy in data collection
• Suitable tool in specific conditions like, collection of data from dumb, shy, illiterate person or
for whom those who does not understand the language of researchers.
• Very direct method for collecting data or information – best for the study of human
behavior.
• Data collected is very accurate in nature and also very reliable.
• Improves precision of the research results.

Disadvantages of Observation:
• Problems of the past cannot be studied by means of observation.
• Having no other option one has to depend on the documents available.
• Observations like the controlled observations require some especial instruments or tools for
effective working, which are very much costly
• One cannot study opinions by this means.
• Attitudes cannot be studied with the help of observations.
• Sampling cannot be brought into use.
• Time Consuming
• Complete answer to any problem or any issue cannot be obtained by observation alone.

Note:
This material is prepared for study purpose only. For detail study student have to refer
reference books.

US03CBCA27 : Unit-3 Input Output Design and Fact Gathering Techniques


Prepared By: Ms. Amisha Desai
Page 11 of 11

You might also like