Systems Analysis and Design Overview
Systems Analysis and Design Overview
2023/2024 SESSION
INTRODUCTION
Computers are everywhere today, and microchips impact every part of our lives. We live in a
world not only of ubiquitous computing but of pervasive communication and connectivity. An
incredibly large part of our everyday lives depends on computer chips, connection links, and
application software. You have grown up in this world of high technology. You use
smartphones, laptops, iPads, notepads, electronic game equipment, and so on. Your mobile
devices provide daily (if not hourly) text messages, tweets, videos, snapshots, Internet access,
games, and much more. Many of you will soon begin to develop application software and some
have already developed one or you have a friend who has written applications for laptops,
smartphones, iPads, etc. You have already start taking programming classes; and some of you
have taught yourself how to write computer application programs. Given that we live in this
world of high-tech gadgets, we might ask, “What is systems analysis and design, and why is it
important?” How does the development of new technology and new application software
utilize systems analysis and design? In other words, what role does systems analysis and design
play in the development of high-tech solutions and applications? First, let’s remind ourselves
two important definitions.
CLASSIFICATION OF A SYSTEM
PHYSICAL SYSTEM: Physical systems are tangible entities that we can feel and touch. These may
be static or dynamic in nature. For example, take a computer center. Desks and chairs are the
static parts, which assist in the working of the center. The dynamic systems are constantly
changing. Computer systems are dynamic system. Programs, data, and applications can change
according to the user's needs.
ABSTRACT SYSTEM: Abstract systems are conceptual. These are not physical entities. They may
be formulas, representation or model of a real system.
OPEN SYSTEMS: Systems that interact with their environment. Practically most of the systems
are open systems. An open system has many interfaces with its environment. It can also adapt
to changing environmental conditions. It can receive inputs from, and delivers output to the
outside of system. An information system is an example of this category.
CLOSED SYSTEMS: Systems that don't interact with their environment. Closed systems exist in
concept only.
MAN MADE INFORMATION SYSTEM: The main purpose of information systems is to manage
data for a particular organization. Maintaining files, producing information and reports are few
functions. An information system produces customized information depending upon the needs
of the organization. These are usually formal, informal, and computer based.
Formal Information Systems: It deals with the flow of information from top management to
lower management. Information flows in the form of memos, instructions, etc. But feedback
can be given from lower authorities to top management.
Informal Information systems: Informal systems are employee based. These are made to solve
the day to day work related problems. Computer-Based Information Systems: This class of
systems depends on the use of computer for managing business applications.
System is a set of components working together to achieve some goal. The basic elements of
the system may be listed as:
Resources
Procedures
Data/Information
Intermediate Data
Processes
RESOURCES: Every system requires certain resources for the system to exist. Resources can be
hardware, software or liveware. Hardware resources may include the computer, its peripherals,
stationery etc. Software resources would include the programs running on these computers
and the liveware would include the human beings required to operate the system and make it
functional.
PROCEDURES: Every system functions under a set of rules that govern the system to accomplish
the defined goal of the system.
DATA/INFORMATION: Every system has some predefined goal. For achieving the goal, the
system requires certain inputs, which are converted into the required output. The main
objective of the System is to produce some useful output. Output is the outcome of processing.
Output can be of any nature e.g. goods, services or information.
INTERMEDIATE DATA: Various processes process system's Inputs. Before it is transformed into
Output, it goes through many intermediary transformations. Therefore, it is very important to
identify the Intermediate Data. For example, in a college when students register for a new
semester, the initial form submitted by student goes through many departments. Each
department adds their validity checks on it.
Finally, the form gets transformed and the student gets a slip that states whether the student
has been registered for the requested subjects or not. It helps in building the System in a better
way. Intermediate forms of data occur when there is a lot of processing on the input data. So,
intermediate data should be handled as carefully as other data since the output depends upon
it.
Systems also exhibit certain features and characteristics, some of which are:
Objective
Standards
Environment
Feedback
Boundaries and interfaces
OBJECTIVE: Every system has a predefined goal or objective towards which it works. A
system cannot exist without a defined objective. For example, an organization would have
an objective of earning maximum possible revenues, for which each department and each
individual has to work in coordination.
STANDARDS: It is the acceptable level of performance for any system. Systems should be
designed to meet standards. Standards can be business specific or organization specific.
For example, take a sorting problem. There are various sorting algorithms. But each has its own
complexity. So such algorithm should be used that gives most optimum efficiency. So there
should be a standard or rule to use a particular algorithm. It should be seen whether that
algorithm is implemented in the system.
ENVIRONMENT: Every system whether it is natural or man made co-exists with an environment.
It is very important for a system to adapt itself to its environment. Also, for a system to exist it
should change according to the changing environment. For example, we humans live in a
particular environment. As we move to other places, there are changes in the surroundings but
our body gradually adapts to the new environment. If it were not the case, then it would have
been very difficult for human to survive for so many thousand years.
BOUNDARIES AND INTERFACES: Every system has defined boundaries within which it operates.
Interfaces are another important element through which the system interacts with the outside
world. System interacts with other systems through its interfaces. Users of the systems also
interact with it through interfaces. Therefore, these should be customized to the user needs.
These should be as user friendly as possible.
SYSTEMS DEVELOPMENT LIFE CYCLE
System development can generally be thought of having two major components: systems
analysis and systems design. In System Analysis more emphasis is given to understanding the
details of an existing system or a proposed one and then deciding whether the proposed
system is desirable or not and whether the existing system needs improvements. Thus, system
analysis is the process of investigating a system, identifying problems, and using the
information to recommend improvements to the system.
System design is the process of planning a new business system or one to replace or
complement an existing system. Analysis specifies what the system should do. Design states
how to accomplish the objective. The figure below depicts the process of building system.
New business initiatives and strategies are created and a system is required to enable them.
Feasibility study
It is the measure and the study of how beneficial the development of the system would be to
the organization. This is known as feasibility study. The measurement of feasibility is known as
feasibility study. There are number of aspects which are taken into consideration while the
feasibility studies. Firstly the project team is formed then with the help of flowcharts and other
forms of documentations the characteristics of the system are identified. The system is
evaluated and measured against the expected performance. A suitable candidate is selected for
the job and a final report is made and presented to the management for further evaluations.
There are number of rules to follow in the feasibility study, some of them are:
1) Forming a team for the specific project and appointing a suitable leader.
5) Determining the performance of each candidate system with the standards set.
6) Reviewing the performance of the system and performing the cost analysis.
7) Selecting the best candidate for the system and preparing the final report for the
management.
As noted earlier number of factors determines the feasibility of the system but the 3 prime
factors for the feasibility study are technical, economical and behavioral factors. Feasibility
study is important in all the organizations before setting up any system.
1. Form a Project Team and Appoint a Project Leader: First of all project management
group of the organization forms separate teams for independent projects. Each project
team comprises of one or more systems analysts and programmers with a project
leader. The project leader is responsible for planning and managing the development
activities of the system.
2. Start Preliminary Investigation: The systems analyst of each project team starts
preliminary investigations through different fact finding techniques.
3. Prepare the Current Systems Flowchart: After preliminary investigations, the analysts
prepare the systems flowchart of the current system. These charts describe the general
working of the system in a graphical way.
4. Describe the Deficiencies in the Current System: On studying the systems flowcharts,
the analysts identify and describe the deficiencies in the current system.
5. Determine Objectives of the Proposed System: The major objectives of the proposed
systems are listed by each analyst and are discussed with the project leader.
6. Prepare the Proposed Systems Flowchart: After determining the major objectives of the
proposed system, the analysts prepare their systems flowcharts. Systems flowcharts of
the proposed system are compared with those of current system in order to ensure that
they meet the objectives.
7. Determine the Technical Feasibility: The existing computer systems (hardware and
software) of the concerned department are identified and their technical specifications
are noted down. The analysts decide whether the existing systems are sufficient for the
technical requirements of the proposed system or not.
8. Determine the Economic Feasibility: The analysts determine the costs and benefits of
proposed system in order to ensure that the project is economically feasible.
9. Determine the Operational Feasibility: After determining the economic feasibility, the
analysts identify the responsible users of the system and hence determine the
operational feasibility of the project.
10. Presentation of Feasibility Analysis: During the feasibility study, the analysts also keep
on preparing the feasibility study report. At the end of feasibility analysis, the feasibility
analysis report is given to the management along with the oral presentation.
Types of Feasibility
During feasibility analysis, the analyst considers the three main types of feasibility: technical,
economical and operational feasibility, all of which are interrelated.
Technical Feasibility: During this study, the analyst identifies the existing computer
systems (hardware and software) of the concerned department and determines
whether these technical resources are sufficient for the proposed system or not. If they
are not sufficient, the analyst suggests the configuration of the computer systems that
are required. The analyst generally pursues two or three different configurations which
satisfy the key technical requirements but which represent different costs. During
technical feasibility study, financial resources and budget are also considered. The main
objective of technical feasibility is to determine whether the project is technically
feasible, provided it is economically feasible.
Economic Feasibility: Economic feasibility is the most important study that determines
the cost and benefits of the proposed system and compares with the budget. The cost
of the project should not outweigh the budget. The cost of the project includes the cost
of hardware, software, development and implementation. Cost/benefit analysis is the
common method to determine the benefits that are expected from the proposed
system and compare them with the costs expected to spend on development of the
system. If benefits are found to be more than costs, then the analyst decides to
continue the development of the proposed system otherwise considers it economically
not feasible. The feasibility study presents both tangible (e.g., increased productivity,
low operating cost, etc.) and intangible benefits (e.g., improved organizational planning,
improved asset utilization, etc.) in a formal way Following are some techniques used in
determining economic feasibility.
1) Payback Analysis
2) Return on Investment
4) Profitability Index
1) Development Costs
2) Annual Operating Costs
3) Annual Benefits
Development Costs( D)
Payback Period (T )=
Annual Revenues− Annual Operating Costs( P)
Example 1:
ℵ 4,000,000
Payback period D/P= =2 years
ℵ 2,000,000
Example 2:
ℵ 5,000,000
Payback period D/P= =1.67 years
ℵ 3,000,000
Examples:
Example 1
1.5
year lifetime=0.3=30 % annual IRR
5
Example 2
0.8
year lifetime=0.267=26.7 % annual IRR
3
Operational Feasibility: When it is found that the project is both economic and technical
feasible, the next step is to determine whether it is operationally feasible or not. During
operational feasibility study, it is determined whether the system will operate in the
way that user wants.
Social Feasibility: Social feasibility is a determination of whether a proposed project will
be acceptable to the people or not. This determination typically examines the
probability of the project being accepted by the group directly affected by the proposed
system change.
Management feasibility: It is a determination of whether a proposed project will be
acceptable to management. If management does not accept a project or gives a
negligible support to it, the analyst will tend to view the project as a non-feasible one.
Legal feasibility: Legal feasibility is a determination of whether a proposed project
infringes on known Acts, Statutes, as well as any pending legislation. Although in some
instances the project might appear sound, on closer investigation it may be found to
infringe on several legal areas.
Time feasibility: Time feasibility is a determination of whether a proposed project can be
implemented fully within a stipulated time frame. If a project takes too much time it is
likely to be rejected.
After the feasibility study, a document is prepared that is known as ‘Feasibility Study Report’.
Besides this report, the analyst also gives the oral presentation of feasibility study to the
management.
This report analyses the importance of Feasibility Analysis to businesses when they are deciding
on the viability of a proposed business venture involving the implementation or improvement
of an information system.
It is a systematic approach, which uses graphical tools that analyze and refine the objectives of
an existing system and develop a new system specification which can be easily understandable
by user.
Pseudocode
Data Flow Diagrams (DFD) or Bubble Chart
It is a technique developed by Larry Constantine to express the requirements of system in a
graphical form.
It shows the flow of data between various functions of system and specifies how the
current system is implemented.
It is an initial stage of design phase that functionally divides the requirement
specifications down to the lowest level of detail.
Its graphical nature makes it a good communication tool between user and analyst or
analyst and system designer.
It gives an overview of what data a system processes, what transformations are
performed, what data are stored, what results are produced and where they flow.
DFD is easy to understand and quite effective when the required design is not clear and the
user wants a notational language for communication. However, it requires a large number of
iterations for obtaining the most accurate and complete solution.
The following table shows the symbols used in designing a DFD and their significance –
Types of DFD
DFDs are of two types: Physical DFD and Logical DFD. The following table lists the points that
differentiate a physical DFD from a logical DFD.
Context Diagram
A context diagram helps in understanding the entire system by one DFD which gives the
overview of a system. It starts with mentioning major processes with little details and then goes
onto giving more details of the processes with the top-down approach.
A data dictionary improves the communication between the analyst and the user. It plays an
important role in building a database. Most DBMSs have a data dictionary as a standard
feature. For example, refer the following table −
Decision Trees
Decision trees are a method for defining complex relationships by describing decisions and
avoiding the problems in communication. A decision tree is a diagram that shows alternative
actions and conditions within horizontal tree framework. Thus, it depicts which conditions to
consider first, second, and so on.
Decision trees depict the relationship of each condition and their permissible actions. A square
node indicates an action and a circle indicates a condition. It forces analysts to consider the
sequence of decisions and identifies the actual decision that must be made.
The major limitation of a decision tree is that it lacks information in its format to describe what
other combinations of conditions you can take for testing. It is a single representation of the
relationships between conditions and actions.
Decision Tables
Decision tables are a method of describing the complex logical relationship in a precise manner
which is easily understandable.
It is useful in situations where the resulting actions depend on the occurrence of one or
several combinations of independent conditions.
It is a matrix containing row or columns for defining a problem and the actions.
Condition Stub − It is in the upper left quadrant which lists all the condition to be
checked.
Action Stub − It is in the lower left quadrant which outlines all the action to be carried
out to meet such condition.
Condition Entry − It is in upper right quadrant which provides answers to questions
asked in condition stub quadrant.
Action Entry − It is in lower right quadrant which indicates the appropriate action
resulting from the answers to the conditions in the condition entry quadrant.
The entries in decision table are given by Decision Rules which define the relationships between
combinations of conditions and courses of action. In rules section,
It is best used when sequences and loops in a program must be considered and the
problem needs sequences of actions with decisions.
It does not have strict syntax rule. It expresses all logic in terms of sequential decision
structures and iterations.
It may specify the physical programming logic without actual coding during and after the
physical design.
It is used in conjunction with structured programming.
It replaces the flowcharts of a program.
Use DFD at high or low level analysis for providing good system documentations.
Use data dictionary to simplify the structure for meeting the data requirement of the
system.
Use structured English if there are many loops and actions are complex.
Use decision tables when there are a large number of conditions to check and logic is
complex.
Use decision trees when sequencing of conditions is important and if there are few
conditions to be tested.
Input Design
In an information system, input is the raw data that is processed to produce output. During the
input design, the developers must consider the input devices such as PC, MICR, OMR, etc.
Therefore, the quality of system input determines the quality of system output. Welldesigned
input forms and screens have following properties −
It should serve specific purpose effectively such as storing, recording, and retrieving the
information.
It ensures proper completion with accuracy.
It should be easy to fill and straightforward.
It should focus on user’s attention, consistency, and simplicity.
All these objectives are obtained using the knowledge of basic design principles
regarding −
o What are the inputs needed for the system?
o How end users respond to different elements of forms and screens.
It is important to design appropriate data input methods to prevent errors while entering data.
These methods depend on whether the data is entered by customers in forms manually and
later entered by data entry operators, or data is directly entered by users on the PCs.
Input integrity controls include a number of methods to eliminate common input errors by end-
users. They also include checks on the value of individual fields; both for format and the
completeness of all inputs.
Audit trails for data entry and other system operations are created using transaction logs which
gives a record of all changes introduced in the database to provide security and means of
recovery in case of any failure.
Output Design
The design of output is the most important task of any system. During output design,
developers identify the type of outputs needed, and consider the necessary output controls and
prototype report layouts.
To develop output design that serves the intended purpose and eliminates the
production of unwanted output.
To develop the output design that meets the end users requirements.
To deliver the appropriate quantity of output.
To form the output in appropriate format and direct it to the right person.
To make the output available on time for making good decisions.
External Outputs
Manufacturers create and design external outputs for printers. External outputs enable the
system to leave the trigger actions on the part of their recipients or confirm actions to their
recipients.
Some of the external outputs are designed as turnaround outputs, which are implemented as a
form and re-enter the system as an input.
Internal outputs
Internal outputs are present inside the system, and used by end-users and managers. They
support the management in decision making and reporting.
Detailed Reports They contain present information which has almost no filtering or
restriction generated to assist management planning and control.
Summary Reports They contain trends and potential problems which are categorized
and summarized that are generated for managers who do not want details.
Exception Reports They contain exceptions, filtered data to some condition or standard
before presenting it to the manager, as information.
Output integrity controls include routing codes to identify the receiving system, and verification
messages to confirm successful receipt of messages that are handled by network protocol.
Printed or screen-format reports should include a date/time for report printing and the data.
Multipage reports contain report title or description, and pagination. Pre-printed forms usually
include a version number and effective date.
Forms Design
Both forms and reports are the product of input and output design and are business document
consisting of specified data. The main difference is that forms provide fields for data input but
reports are purely used for reading. For example, order forms, employment and credit
application, etc.
To keep the screen simple by giving proper sequence, information, and clear captions.
To meet the intended purpose by using appropriate forms.
To ensure the completion of form with accuracy.
To keep the forms attractive by using icons, inverse video, or blinking cursors etc.
To facilitate navigation.
Types of Forms
Flat Forms
It is a single copy form prepared manually or by a machine and printed on a paper. For
additional copies of the original, carbon papers are inserted between copies.
It is a simplest and inexpensive form to design, print, and reproduce, which uses less
volume.
These are papers with one-time carbons interleaved into unit sets for either
handwritten or machine use.
Carbons may be either blue or black, standard grade medium intensity. Generally, blue
carbons are best for handwritten forms while black carbons are best for machine use.
These are multiple unit forms joined in a continuous strip with perforations between
each pair of forms.
It is a less expensive method for large volume use.
They use carbonless papers which have two chemical coatings (capsules), one on the
face and the other on the back of a sheet of paper.
When pressure is applied, the two capsules interact and create an image.
Systems Analysis: Is a process of collecting and interpreting facts, identifying the problems, and
decomposition of a system into its components.
Requirements:
The requirements for a system are the descriptions of what the system should do— the services
that it provides and the constraints on its operation. These requirements reflect the needs of
customers for a system that serves a certain purpose such as controlling a device, placing an
order, or finding information. The process of finding out, analyzing, documenting and checking
these services and constraints is called requirements engineering (RE). In some cases, a
requirement is simply a high-level, abstract statement of a service that a system should provide
or a constraint on a system. At the other extreme, it is a detailed, formal definition of a system
function.
Levels of Requirements
There are two levels of requirements: User requirements and System requirements.
User requirements
User requirements are statements, in a natural language plus diagrams, of what services the
system is expected to provide to system users and the constraints under which it must operate.
System requirements
System requirements are more detailed descriptions of the software system’s functions,
services, and operational constraints. The system requirements document (sometimes called a
functional specification) should define exactly what is to be implemented. It may be part of the
contract between the system buyer and the software developers.
Different levels of requirements are useful because they communicate information about the
system to different types of reader. The system requirements provide more specific information
about the services and functions of the system that is to be implemented.
The readers of the user requirements are not usually concerned with how the system will be
implemented and may be managers who are not interested in the detailed facilities of the
system. The readers of the system requirements need to know more precisely what the system
will do because they are concerned with how it will support the business processes or because
they are involved in the system implementation.
Classes of Requirements
There are two classes of requirements-Functional and non-functional requirements
Functional requirements
These are statements of services the system should provide, how the system should react to
particular inputs, and how the system should behave in particular situations. In some cases, the
functional requirements may also explicitly state what the system should not do. When
expressed as user requirements, functional requirements are usually described in an abstract
way that can be understood by system users. However, more specific functional system
requirements describe the system functions, its inputs and outputs, exceptions, etc., in detail.
In principle, the functional requirements specification of a system should be both complete and
consistent. Completeness means that all services required by the user should be defined.
Consistency means that requirements should not have contradictory definitions.
Non-functional requirements
These are constraints on the services or functions offered by the system. They include timing
constraints, constraints on the development process, and constraints imposed by standards.
Non-functional requirements often apply to the system as a whole, rather than individual
system features or services. Non-functional requirements, as the name suggests, are
requirements that are not directly concerned with the specific services delivered by the system
to its users. They may relate to emergent system properties such as reliability, security,
response time, and store occupancy. Alternatively, they may define constraints on the system
implementation such as the capabilities of I/O devices or the data representations used in
interfaces with other systems.
Security
Response time
Store occupancy
Throughput etc.
Requirements specification
Requirements specification is the process of writing down the user and system requirements in
a requirements document. Ideally, the user and system requirements should be clear,
unambiguous, easy to understand, complete, and consistent.. The user requirements for a
system should describe the functional and nonfunctional requirements so that they are
understandable by system users who don’t have detailed technical knowledge. Ideally, they
should specify only the external behavior of the system. The requirements document should
not include details of the system architecture or design.
Feasibility Study-These focus on assessing if the system is useful to the business or not.
Validation - checking that the requirements actually define the system that the customer wants
A process model of the elicitation and analysis process is shown in Figure 8. Each organization
will have its own version or instantiation of this general model depending on local factors such
as the expertise of the staff, the type of system being developed, the standards used, etc. The
process activities are:
1. Requirements discovery
4. Requirements specification
Requirements Discovery
Requirements discovery (sometime called requirements elicitation) is the process of gathering
information about the required system and existing systems, and distilling the user and system
requirements from this information. Sources of information during the requirements discovery
phase include documentation, system stakeholders, and specifications of similar systems. You
interact with stakeholders through interviews and observation and you may use scenarios and
prototypes to help stakeholders understand what the system will be like. Stakeholders range
from end-users of a system through managers to external stakeholders such as regulators, who
certify the acceptability of the system. All stakeholders must be considered during the
requirements elicitation process.
System analysis is conducted for the purpose of studying a system or its parts in order to
identify its objectives. It is a problem solving technique that improves the system and ensures
that all the components of the system work efficiently to accomplish their purpose. Analysis
specifies what the system should do. System analysis includes the following:
Requirement determination
Requirement structuring
Fact finding techniques
Requirements determination is the beginning sub phase of analysis. In this sub phase, analysts
should gather information on what the system should do from as many sources as possible.
There are some traditional methods to help collecting system requirements, such as
interviewing, survey, directly observing users. Is also a collection of information is at the core of
systems analysis. Interviewing, questionnaires, directly observing and analyzing documents are
four main methods adopted by system analysts to collect information.
Interviewing is one of the primary ways to gather information about an information system. A
good system analyst must be good at interviewing and no project can be conduct without
interviewing. There are many ways to arrange an effectively interview and no one is superior to
others. However, experience analysts commonly accept some following best practices for an
effective interview:
Listen carefully and take note during the interview (tape record if possible)
Be neutral
relatively short time and of being less biased in the interpretation of their results. Choosing
right questionnaires respondents and designing effective questionnaires are the critical
issues in this information collection method. People usually are only use a part of functions
of a system, so they are always just familiar with a part of the system functions or
processes. In most situations, one copy of questionnaires obviously cannot fit to all the
users. To conduct an effective survey, the analyst should group the users properly and
design different questionnaires for different group. Moreover, the ability to build good
questionnaires is a skill that improves with practice and experience. When designing
Directly observing users. People are not always very reliable informants, even when they try to
be reliable and tell what they think is the truth. People often do not have a completely accurate
appreciation of what they do or how they do it. This especially true concerning infrequent
events, issues from the past, or issues for which people have considerable passion. Since people
cannot always be trusted to reliably interpret and report their own actions, analyst can
supplement and corroborate what people say by watching what they do or by obtaining
relatively objective measures of how people behave in work situation. However, observation
can cause people to change their normal operation behavior. It will make the gathered
information biased.
Analyzing procedures and other documents. By examining existing system and organizational
documentation, system analyst can find out details about current system and the organization
these systems support. In documents analyst can find information, such as problem with
existing systems, opportunities to meet new needs if only certain information or information
processing were available, organizational direction that can influence information system
requirements, and the reason why current systems are designed as they are.
Requirements Structuring: Is the process to use some kind of systematical and standard, well-
structured methods to model the real world. Traditionally, we use data flow diagram for
process modeling, decision table or decision tree for logic modeling, and Entity-relationship
diagram for data modeling. These modeling tools usually separately model only one face of the
real world.
Structure English, decision tables, and decision trees, they are used for logic modeling
Fact Finding Techniques: Fact finding is process of collection of data and information based on
questionnaires, interviews, prototyping and joint requirements planning. There are seven
1. Sampling of existing documentation, forms and databases: The best way to analyse the
existing system is to collect facts from existing documentation rather than from human
sources. There are various kinds of documents to collect facts from existing documents.
These include: e-mails, customer complaints, suggestion box notes and reports that
document the problem area, problem performance reviews, samples of completed
manual forms and reports and samples of completed computerized forms and report
2. Research and Site visits: Is the process of examining the problems which had previously
solved by other sources that can be either human or documents. To solve the
requirements of problem, the analyst visits to other organization that had previously
experienced for similar problems. In addition, the analyst can also find the information
from database, reference books, case studies and Internet.
3. Observation of the work environment: Another fact finding technique is observation. In
this technique, system analyst participates in the organization, studies the flow of
documents, applies the existing system, and interacts with the users. Observation can
be a useful technique when the system analyst have user point of view. Sampling
technique called work sampling is useful for observation. By using this technique,
system analyst can know how employees spend their days.
5. Interviews: Interview is the most commonly used technique to collect information from
the face-to-face interviews. The purpose of interview is to find, verify, clarify facts,
motivate end-users involved, identify requirements and gather ideas and opinions. The
role of interview includes interviewer who is system analyst and interviewee who are
system owner or user. Interviewing technique needs good communication skills for
interaction between system analyst and user. There are two types of interviews.
SYSTEM DESIGN
System design is the phase that bridges the gap between problem domain and the existing
system in a manageable way. This phase focuses on the solution domain, i.e. “how to
implement?”
It is the phase where the SRS document is converted into a format that can be implemented
and decides how the system will operate.
Logical Design
Logical design pertains to an abstract representation of the data flow, inputs, and outputs of
the system. It describes the inputs (sources), outputs (destinations), databases (data stores),
procedures (data flows) all in a format that meets the user requirements.
While preparing the logical design of a system, the system analyst specifies the user needs at
the level of detail that virtually determines the information flow into and out of the system and
the required data sources. Data flow diagram, E-R diagram modeling are used.
Physical Design
Physical design relates to the actual input and output processes of the system. It focuses on
how data is entered into a system, verified, processed, and displayed as output.
It produces the working system by defining the design specification that specifies exactly what
the candidate system does. It is concerned with user interface design, process design, and data
design.
Specifying the input/output media, designing the database, and specifying backup
procedures.
Planning system implementation.
Devising a test and implementation plan, and specifying any new hardware and
software.
Updating costs, benefits, conversion dates, and system constraints.
Architectural Design
It is also known as high level design that focuses on the design of system architecture. It
describes the structure and behavior of the system. It defines the structure and relationship
between various modules of system development process.
Detailed Design
It is representation of organizational data which includes all the major entities and relationship.
System analysts develop a conceptual data model for the current system that supports the
scope and requirement for the proposed system.
The main aim of conceptual data modeling is to capture as much meaning of data as possible.
Most organization today uses conceptual data modeling using E-R model which uses special
notation to represent as much meaning about data as possible.
It is a technique used in database design that helps to describe the relationship between
various entities in an organization.
ENTITY: It specifies distinct real world items in an application. For example: vendor,
item, student, course, teachers, etc.
RELATIONSHIP: they are the meaningful dependencies between entities. For example,
vendor supplies items, teacher teaches courses, and then supplies and course are
relationship.
ATTRIBUTES: It specifies the properties of relationships. For example, vendor code,
student name.
Below are the following of the symbols used in E-R model and their respective
meanings:
Three types of relationships can exist between two sets of data: one-to-one, one-to-many, and
many-to-many relationships.
CODING/ IMPLEMENTATION
CODING
The system design needs to be implemented to make it a workable system. This demands
the coding of design into computer understandable language, i.e. programming language. This
is also called the programming phase in which the programmer converts the program
specifications into computer instructions, which we refer to as programs. It is an important
stage where the defined procedures are:
Transformed the data into control specifications by the help of a computer language.
The programs coordinate the data movements and control the entire process in a
system.
It is generally felt that the programs must be modular in nature. This helps in fast
development, maintenance and future changes, if required.
IMPLEMENTATION
After having the user acceptance of the new system developed, the implementation phase
begins. Implementation is the stage of a project during which theory is turned into practice. The
major steps involved in this phase are:
Acquisition and Installation of Hardware and Software
Conversion
User Training
Documentation
The hardware and the relevant software required for running the system must be made fully
operational before implementation. The conversion is also one of the most critical and
expensive activities in the system development life cycle. The data from the old system needs
to be converted to operate in the new format of the new system. The database needs to be
setup with security and recovery procedures fully defined. During this phase, all the programs
of the system are loaded onto the user’s computer. After loading the system, training of the
user starts. Main topics of such type of training are:
How to execute the package
How to enter the data
How to process the data (processing details)
How to take out the reports
After the users are trained about the computerized system, working has to shift from manual to
computerized working. The process is called ‘Changeover’. The following strategies are
followed for changeover of the system.
Direct Changeover: This is the complete replacement of the old system by the new
system. It is a risky approach and requires comprehensive system testing and training.
Parallel run: In parallel run both the systems, i.e., computerized and manual, are
executed simultaneously for certain defined period. The same data is processed by both
the systems. This strategy is less risky but more expensive because of the following:
1. Manual results can be compared with the results of the computerized system.
2. The operational work is doubled.
3. Failure of the computerized system at the early stage does not affect the working of the
organization, because the manual system continues to work, as it used to do.
Pilot run: Ii involves implementing the complete new system at a selected location of
the company. The group that uses the new system is called the pilot site. The old system
continues to operate for the entire organization including the pilot site. In this type of
run, the new system is run with the data from one or more of the previous periods for
the whole or part of the system. The results are compared with the old system results. It
is less expensive and risky than parallel run approach. This strategy builds the
confidence and the errors are traced easily without affecting the operations.
System Documentation
System documentation serves as the technical specifications for the information system (IS) and
how the objectives of the IS are accomplished. Users, managers and IS owners need never
reference system documentation. System documentation provides the basis for understanding
the technical aspects of the IS when modifications are made.
Documentation Control
A system overview that clearly describes all major system features, capabilities, and
limitations.
Description of source document content, preparation, processing, and, samples.
Overview of menu and data entry screen options, contents, and processing instructions.
Examples of reports that are produced regularly or available at the user’s request,
including samples.
Security and audit trail information.
Explanation of responsibility for specific input, output, or processing requirements.
Procedures for requesting changes and reporting problems.
Examples of exceptions and error situations.
Frequently asked questions (FAQs).
Explanation of how to get help and procedures for updating the user manual.
Program documentation
System documentation
Operations documentation
User documentation
Program Documentation
It describes inputs, outputs, and processing logic for all the program modules.
The program documentation process starts in the system analysis phase and continues
during implementation.
This documentation guides programmers, who construct modules that are well
supported by internal and external comments and descriptions that can be understood
and maintained easily.
Operations Documentation
Operations documentation contains all the information needed for processing and distributing
online and printed output. Operations documentation should be clear, concise, and available
online if possible..
User Documentation
It includes instructions and information to the users who will interact with the system. For
example, user manuals help guides, and tutorials. User documentation is valuable in training
users and for reference purpose. It must be clear, understandable, and readily accessible to
users at all levels.
The users, system owners, analysts, and programmers, all put combined efforts to develop a
user’s guide. The documentation of the system is also one of the most important activity in the
system development life cycle. This ensures the continuity of the system. There are generally
two types of documentation prepared for any system. These are:
1. The user documentation is a complete description of the system from the users’
point of view detailing how to use or operate the system. It also includes the
major error messages likely to be encountered by the users.
2. The system documentation contains the details of system design, programs,
their coding, system flow, data dictionary, process description, etc. This helps to
understand the system and permit changes to be made in the existing system to
satisfy new user needs.
TESTING
Before actually implementing the new system into operation, a test run of the system is done
for removing the bugs, if any. It is an important phase of a successful system. After codifying the
whole programs of the system, a test plan should be developed and run on a given set of test
data. The output of the test run should match the expected results. Sometimes, system testing
is considered as part of implementation process. Using the test data following test run are
carried out:
Program test
System test
Program test: When the programs have been coded, compiled and brought to working
conditions, they must be individually tested with the prepared test data. Any
undesirable happening must be noted and debugged (error corrections)
System Test: After carrying out the program test for each of the programs of the system
and errors removed, then system test is done. At this stage the test is done on actual
data. The complete system is executed on the actual data. At each stage of the
execution, the results or output of the system is analyzed. During the result analysis, it
may be found that the outputs are not matching the expected output of the system. In
such case, the errors in the particular programs are identified and are fixed and further
tested for the expected output. When it is ensured that the system is running error-free,
the users are called with their own actual data so that the system could be shown
running as per their requirements.
Accessibility. The degree to which a diverse group of people, including individuals who
require adaptive technologies such as voice recognition and screen magnifiers, can
comfortably use the software.
Compatibility. The suitability of the software for use in a variety of environments, such
as with different OSs, devices and browsers.
Efficiency. The ability of the software to perform well without wasting energy,
resources, effort, time or money.
Functionality. Software's ability to carry out its specified functions.
Installability. The ability of the software to be installed in a specified environment.
Localization. The various languages, time zones and other such features software can
function in.
Maintainability. How easily the software can be modified to add and improve features,
fix bugs, etc.
Performance. How fast the software performs under a specific load.
Portability. The ability of the software to be easily transferred from one location to
another.
Reliability. The software's ability to perform a required function under specific
conditions for a defined period of time without any errors.
Scalability. The measure of the software's ability to increase or decrease performance in
response to changes in its processing demands.
Security. The software's ability to protect against unauthorized access, invasion of
privacy, theft, data loss, malicious software, etc.
Testability. How easy it is to test the software.
Usability. How easy it is to use the software.
Quality assurance (QA), quality control (QC), and QA software testing are three aspects of
quality management to ensure that a program works as intended Often used interchangeably,
the three terms cover different processes and vary in their scope, though they have the same
goal to deliver the best possible digital product or service.
What is quality assurance?
Quality assurance is a broad term, explained on the Google Testing Blog, as “the continuous
and consistent improvement and maintenance of process that… gives us confidence the product
will meet the need of customers.” QA focuses on organizational aspects of quality management,
aiming to improve the end-to-end product development life cycle, from requirements analysis
to launch and maintenance.
QA plays a crucial role in the early identification and prevention of product defects. Among its
key activities are
Quality control is a part of quality management that verifies the product’s compliance with
standards set by QA. Investopedia defines it as a “process through which a business seeks to
ensure that product quality is maintained or improved and manufacturing errors are reduced or
eliminated.”
While QA activities aim to prevent issues across the entire development process, QC is about
detecting bugs in the ready-to-use software and checking its correspondence to the
requirements before the product launch. It encompasses code reviews and testing activities
conducted by the engineering team.
Testing is the primary activity of detecting and solving technical issues in the software source
code and assessing the overall product usability, performance, security, and compatibility. It
has a narrow focus and is performed by test engineers in parallel with a development process
or at the dedicated testing stage (depending on the methodological approach to the software
development cycle).
Testing shows the presence of mistakes. Testing aims to detect the defects within a piece of
software. But no matter how hard you try, you’ll never be 100 percent sure there are no
defects. Testing can only reduce the number of unfound issues.
Exhaustive testing is impossible. There is no way to test all combinations of data inputs,
scenarios, and preconditions within an application. For example, if a single app screen contains
ten input fields with three possible value options each, test engineers need to create 59,049
(310) scenarios to cover all possible combinations. And what if the app contains 50+ of such
screens? Focus on more common scenarios to avoid spending weeks creating millions of less
possible ones.
Early testing. As mentioned above, the cost of an error grows exponentially throughout the
stages of the software development life cycle (SDLC). Therefore, it is important to start testing
the code as soon as possible to resolve issues and not to snowball.
Defect clustering. Often called an application of the Pareto principle to software testing, defect
clustering implies that approximately 80 percent of all errors are usually found in only 20
percent of the system modules. If you find a bug in a particular component, there might be
others. So, it makes sense to test this area of the product thoroughly.
Pesticide paradox. Running the same set of tests repeatedly won’t help you find more issues.
As soon as you fix the detected errors, the previous scenarios become useless. Review and
update them regularly to spot hidden mistakes.
Absence-of-errors fallacy. The absence of errors does not necessarily lead to a product’s
success. No matter how much time you have spent polishing the code, the software will fail if it
does not meet user expectations.
Yet the above-listed seven points remain undisputed guidelines for every software testing
professional.
POST IMPLEMENTATION
Post implementation is a tool or standard approach for evaluating the outcome of the project
and determine whether the project is producing the expected benefits to the processes,
products or services. It enables the user to verify that the project or system has achieved its
desired outcome within specified time period and planned cost. The objectives of post
implementation are as follows
To determine the success of a project against the projected costs, benefits, and
timelines.
To identify the opportunities to add additional value to the project.
To determine strengths and weaknesses of the project for future reference and
appropriate action.
To make recommendations on the future of the project by refining cost estimating
techniques.
MAINTENANCE
Maintenance is necessary to eliminate errors in the system during its working life and to tune
the system to any variations in its working environments. It has been seen that there are always
some errors found in the systems that must be noted and corrected. It also means the review of
the system from time to time. The review of the system is done for:
knowing the full capabilities of the system
knowing the required changes or the additional requirements
Studying the performance.
Software quality measures if the software meets both its functional and nonfunctional
requirements.
Functional requirements identify what the software should do. They include technical
details, data manipulation and processing, calculations or any other specific function
that specifies what an application aims to accomplish.
Nonfunctional requirements: also known as quality attributes determine how the
system should work. Nonfunctional requirements include portability, disaster recovery,
security, privacy and usability.
If a major change to a system is needed, a new project may have to be set up to carry out the
change. The new project will then proceed through all the above life cycle phases.
Types of Maintenance
Corrective Maintenance: Enables user to carry out the repairing and correcting leftover
problems. It has to do with repairing that are broken.
Adaptive Maintenance: Enables user to replace the functions of the programs. It consist
pf adapting software to changes in the environment. e.g some programs run on Ubuntu
os.
Perfective Maintenance: Enables user to modify or enhance the programs according to
the users’ requirements and changing needs.
Preventive. These changes are done to keep software from failing and include tasks
such as restructuring and optimizing code.
SOFTWARE LICENSING AND PATENTS
A software license is a legally binding document that restricts the use and distribution of
software.
Typically, software licenses provide users with the right to one or more copies of the software
without violating copyright. The license outlines the responsibilities of the parties that enter
into the agreement and may place restrictions on how the software can be used.
Software licensing terms and conditions generally include fair use of the software, the
limitations of liability, warranties, disclaimers and protections if the software or its use infringes
on the intellectual property rights of others.
Licenses typically are for proprietary software, which remains the property of the organization,
group or individual that created it; or for free software, where users can run, study, change and
distribute the software. Open source is a type of software where the software is developed
collaboratively, and the source code is freely available. With open source software licenses,
users can run, copy, share and change the software similar to free software.
Over the last two decades, software vendors have moved away from selling software licenses
on a one-time basis to a software-as-a-service subscription model. Software vendors host the
software in the cloud and make it available to customers, who pay a subscription fee and access
the software over the internet.
Although copyright can prevent others from copying a developer's code, a copyright cannot
stop them from developing the same software independently without copying. A patent, on the
other hand, enables a developer to prevent another person from using the functional aspects of
the software a developer claims in a patent, even if that other person developed the software
independently.
In general, the more technical software is, the more likely it can be patented. For example, a
software product could be granted a patent if it creates a new kind of database structure or
enhances the overall performance and function of a computer.
1. Waterfall Mode
2. Rapid Application Development (RAD)
i. Iterative development Methodology
ii. System prototyping
iii. Throwaway Prototyping
3. Agile Development
i. Extreme Programming (XP)
ii. Scrum
iii. Dynamic Systems Development Method (DSDM)
Waterfall Model
This model is named “waterfall model” because its diagrammatic representation resembles a
cascade of waterfalls.
With waterfall development, analysts and users proceed sequentially from one phase to the
next (See Figure 2). The key deliverables for each phase are typically voluminous (often,
hundreds of pages) and are presented to the approval committee and project sponsor for
approval as the project moves from phase to phase. Once the work produced in one phase is
approved, the phase ends and the next phase begins. As the project progresses from phase to
phase, it moves forward in the same manner as a waterfall. While it is possible to go backward
through the phases (e.g., from design back to analysis), it is quite difficult.
Advantages:
Iterative development gets a preliminary version of the system to the users quickly so
that business value is provided.
Since users are working with the system, important additional requirements may be
identified and incorporated into subsequent versions.
Disadvantages:
System Prototyping
System prototyping performs the analysis, design, and implementation phases concurrently in
order to quickly develop a simplified version of the proposed system and give it to the users for
evaluation and feedback (See Figure 4). The system prototype is a “quick and dirty” version of
the system and provides minimal features. Following reaction and comments from the users,
the developers reanalyze, redesign, and re-implement a second prototype that corrects
deficiencies and adds more features. This cycle continues until the analysts, users, and sponsor
agree that the prototype provides enough functionality to be installed and used in the
organization.
Advantages:
System prototyping provides a system for early-users evaluation and reassures users
that progress is being made.
It is very useful when users have difficulty expressing requirements for the system.
Disadvantages
Throwaway Prototyping
Throwaway prototyping includes the development of prototypes, but uses the prototypes
primarily to explore design alternatives rather than as the actual new system (as in system
prototyping). As shown in Figure 5, throwaway prototyping has a fairly thorough analysis phase
that is used to gather requirements and to develop ideas for the system concept. A design
prototype is not intended to be a working system. It contains only enough detail to enable
users to understand the issues under consideration. A system that is developed by this type of
methodology probably requires several design prototypes during the analysis and design
phases. Each of the prototypes is used to minimize the risk associated with the system by
confirming that important issues are understood before the real system is built. Once the issues
are resolved, the project moves into design and implementation. At this point, the design
prototypes are thrown away, which is an important difference between this approach and
system prototyping, in which the prototypes evolve into the final system.
Advantages:
Thorough analysis and Design with refining key issues before a system is built.
Disadvantage
Prototypes do not become the final system; therefore it may take longer to deliver the final
system.
Figure 5 Throwaway Prototyping
AGILE DEVELOPMENT
Agile development is a group of programming-centric methodologies that focus on streamlining
the SDLC. Much of the modeling and documentation overhead is eliminated; instead, face-to-
face communication is preferred. A project emphasizes simple, iterative application
development in which every iteration is a complete software project, including planning,
requirements analysis, design, coding, testing, and documentation (See Figure 6). Cycles are
kept short (one to four weeks), and the development team focuses on adapting to the current
business environment. There are several popular approaches to agile development, including:
Extreme programming
Identify, understand and plan for organizational and human impacts of planned systems,
and ensure that new technical requirements are properly integrated with existing
processes and skill sets.
Plan a system flow from the ground up.
Interact with internal users and customers to learn and document requirements that are
then used to produce business requirements documents.
Write technical requirements from a critical phase.
Interact with software architect to understand software limitations.
Help programmers during system development, e.g. provide use cases, flowcharts, UML
and BPMN diagrams.
Document requirements or contribute to user manuals.
Whenever a development process is conducted, the system analyst is responsible for
designing components and providing that information to the developer.
A system analyst is a person who conducts a methodical study and evaluation of various aspects
related to business to identify the desired objectives and work out procedures to attain them.
The system analyst is a person with unique skills; common sense, a structured framework and a
disciplined approach to solving problems are a part of the analysis. Therefore the analyst
requires a combination of skills, experience, personality and common sense. The fact that a
system is designed for a specific user also means that the analyst must have interpersonal skills.
The different interpersonal skills that a system analyst should have are as follows:
1. Communication Skills: System analyst should have the ability to articulate and speak and
knack of working with all levels of managerial positions of the organization.
2. Understanding: System analyst should have the ability to identify problems and assess their
solution, grasping of company goals and objectives, show sensitivity to the impact of the system
on people at work and understanding their problems,
3. Teaching & selling ideas: System analyst should have the skill to educate other people in the
use of computer systems and selling ideas and promoting innovations in problem solving using
computers.
The various technical skills that a system analyst should have are as follows:
1. Creativity: The analyst should be creative to help the users to model ideas into real plans and
developing candidate systems to match user requirements.
2. Problem Solving & project management: System analyst should have the skill of problem
solving, developing alternative solutions, scheduling, overcome constraints, coordinating team
efforts and managing costs and accounts.
3. Dynamic interface: System analyst should be a perfect blend of both technical and non-
technical skills in functional specifications and general design. He should also have a
questioning attitude and inquiring mind.
4. Thorough knowledge of computers: System analyst should have the knowledge of basics of
computers and business functions.
In addition to these personal qualifications, the system analyst should have proper academic
qualifications in system analysis and design or other computer oriented similar degrees
A System Analyst is responsible for maintaining organizations computer systems. They analyze
the computer systems in place, troubleshoot issues and procedures, and create a solution. It is
their job to keep the computer systems safe and secure. They will do security, internet updates,
and all computer systems.
More so, among the roles an analyst performs are change agent, monitor, architect, psychologist,
salesperson, motivator and politician.
ChangeAgent
The analyst may be viewed as an agent of change. A candidate system is designed to introduce
change and reorientation in how the user organization handles information or makes decisions.
It is important, that the user accept change. Analyst can secure user acceptance is through user
participation during design and implementation.
In the role of a change agent, the systems analyst may select various styles to introduce change
to the user organization. The styles range from that of persuader (the mildest form of
intervention) to imposer (the most severe intervention). In between there are the catalyst and
the confronter roles. When the user appears to have a tolerance for change the persuader or
catalyst style is appropriate. On the other hand, when drastic changes are required, it may be
necessary to adopt the confronter or even the imposer style. No matter what style is used, the
goal is same: to achieve acceptance of the candidate system with a minimum of resistance.
In defining a problem, the analyst will collect and put together all the information to determine
why the present system does not work well and what changes will correct the problem. This
work is similar to that of an investigator- extracting the real problems from existing systems and
creating information structures that uncover previously unknown trends that may have a direct
impact on the organization.
Related to the role of investigator is that of monitor. To undertake and successfully complete a
project, the analyst must monitor programs in relation to time, cost, and quantity of these
resources, time is the most important. If time “gets away”, the project suffers from increased
costs and wasted human resources. Implementation will also get delayed.
Architect
As architect an analyst must create detailed physical design of candidate system. He aids users
in formalizing abstract ideas and provides details to build the end product-the candidate
system.
Psychologist
The analyst plays the role of a psychologist in the way he reaches people interprets their
thoughts, assesses their behavior, and draws conclusions from these interactions.
Understanding interfunctional relationships is important. It must be aware of people’s feelings
and be prepared to get around things in a graceful way. The art of listening is important in
evaluating responses and feedback.
Salesperson
Selling change can be crucial as initiating change. Selling the system actually takes place at each
step in the system life cycle. Sales skills and persuasiveness are crucial to the success of the
system.
Motivator
A candidate system must be well designed and acceptable to the user. The analyst role as a
motivator becomes obvious during the first few weeks after implementation and during times
when turn over results in new people being trained to work with the candidate system. The
amount of dedication it takes to motivate users often taxes the analyst’s abilities to maintain
the pace.
Politician
In implementing a candidate system, the analyst tries to appease all parties involves. Diplomacy
and finesse in dealing with people can improve acceptance of the system. In as much as a
politician must have the support of his or her constituency, so is the analyst’s goal to have the
support of the users staff. He or she represents their thinking and tries to achieve their goals
through computerization.
In summary these multiple roles require analysts to be orderly, approach a problem in a logical,
methodical way and pay attention to details.
MIS (management information systems) analysts are individuals who work in an information
systems environment for an organization with the primary responsibility to provide direction
and guidance concerning an organization meeting strategic goals related to processing and
security of data and software application management. The basic requirements for the position
include excellent verbal and written skills and a technical background in systems management.
Among the functions of an analyst in an MIS organization are:
An MIS analyst creates strategies for the deployment of information systems or computer
systems concepts. This includes budgeting for equipment, software and personnel
requirements reflected in the annual strategic plan for the organization. Strategies created by
an MIS analyst also reference how data is processed, a review of data processing agreements in
support of other departments and branches in the organization, risk management assessments
and training objectives for IT (information technology) personnel.
The MIS analyst coordinates with the data security officer to establish system policies regarding
security of data and information through computer networks. Policies are established for the
control and management of user ids and passwords that govern access to files, systems
programs and utilities. In most computer programming environments, the analyst creates
partitioning instructions to separate programs that are in production and active programs on
the system.
Supervises IT Personnel
The MIS analyst is a supervisor of a branch or division with oversight of several positions under
the organizational structure of information systems management. Positions of supervisory
responsibility include computer programmers, data processing operators, data security officers,
project managers and network analysts. The analyst interviews and hires potential employees
for the MIS department and creates or updates job descriptions for positions in an MIS
structure and reviews employee performance reports submitted by supervisors regarding
information technology personnel.
The MIS analyst is responsible for planning and implementing technologies, including
installation of new hardware systems, telecommunications equipment, and network servers
and designing the network topology for an organization. The analyst approves software
versions through program releases to upgrade operating systems and computer programs that
are created in-house by computer programmers.
MIS analysts examine how an organization’s staff uses information, what tools they have
available, and how they want to improve their methods. They then research the best solutions
to existing issues by reading industry literature and consulting with colleagues. Analysts may
recommend simple changes to existing processes so information flow improves. More likely,
however, they implement the latest hardware technology and software applications. They test
their solution to ensure it is working correctly and then train existing staff to work with the new
developments.