Systems Analysis and Design
INTRODUCTION:
Systems Analysis and Design is the process of investigating an
existing system (often a manual system) and designing a new replacement system
(usually a computerized system) to carry out the same functions. Systems
projects are complex and can last for many months, or even years. People who
work in this area are known as Systems Analysts or Systems Designers. In these
notes, we will use the term "Systems Analyst", or simply "Analyst"
to refer to the person who carries out both Analysis and Design.
SYSTEM
A system is simply set of components that interact
to accomplish some purpose . Systems are all around us . For ex: you experience
physical sensations by means of complex nervous system , a set of parts ,
including your brain , spinal cord,and special sensitive cells under you skin that
work to gether to make you feel hot,cold ,itchy and so on.
A business is also a sytem . Its components –
marketing , manufacturing, sales , research , shipping , accounting and
personnel all work to gerher to create a profit that befits the employee and
stock holders of the firm.
Important systems characteristics :
Ø Systems have structure, defined by parts and their
composition;
Ø Systems have behavior, which involves inputs,
processing and outputs of material, energy or information;
Ø Systems have interconnectivity: the various parts
of a system have functional as well as structural relationships between each
other.
Ø Systems have by themselves functions or groups of
functions.
( Informational System Categories )CLASSIFICATION
OF SYSTEM
An information system (IS) is any combination of information
technology and people's activities using that technology to support operations,
management, and decision-making.
Classification of systems can be done in many ways.
Physical or Abstract 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. Static parts don't change. The dynamic systems are
constantly changing. Computer systems are dynamic system
Open Closed System
Systems interact with their environment to achieve their
targets. Things that are not part of the system are environmental elements for the system. Depending upon the
interaction with the environment, systems can be divided into two categories,
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.
Computer Base System:
A system of one or more computers and associated
software with common storage called system.A computer is a programmable machine
that receives input, stores and manipulates data, and provides output in a
useful format. The computer elements described thus far are known as "hardware."
Information System( Business Information System ):
An information system (IS) is any combination of
information technology and people's activities using that technology to support
operations, management, and decision-making. Information system deals with data
of the organizations. The purposes of Information system are to process input,
maintain data, produce reports, handle queries, handle on line
transactions,generate reports, and other output. These maintain huge databases,
handle hundreds of queries etc. The transformation of data into information is
primary function of information system. Three major information systems are
1. Transaction processing systems
2. Management information systems
3. Decision support systems
Transaction
Processing Systems
TPS processes business transaction of the organization.
Transaction can be any activity of the organization. Transactions differ from
organization to organization. For example, take a railway
Reservation system. Booking, cancelling, etc are
all transactions. Any query made to it is a transaction.
Management Information Systems:
These systems assist lower management in problem solving
and making decisions. They use the results of transaction processing and some
other information also. It is a set of information processing functions. It
should handle queries as quickly as they arrive.
Decision
Support Systems:
These
systems assist higher management to make long term decisions. These type of
systems handle unstructured or semi structured decisions. A decision is
considered unstructured if there are no clear procedures for making the
decision and if not all the factors to be considered in the decision can be
readily identified in advance.
SYSTEM ANALYST
The system analyst is the person (or persons) who guides
through the development of an information system. In performing these tasks the
analyst must always match the information system objectives with the goals of
the organization.
Role & Need of System Analyst:
Role of System Analyst differs from organization to
organization. Most common responsibilities of System Analyst are following:
1) System analysis
It includes system's study in order to get facts
about business activity. It is about getting information and determining
requirements. Here the responsibility includes only requirement determination,
not the design of the system.
2) System analysis and design:
Here apart from the analysis work, Analyst is also responsible
for the designing of the new system/ application.
3) Systems analysis, design, and programming:
Here Analyst is also required to perform as a programmer,
where he actually writes the code to implement the design of the proposed
application. Due to the various responsibilities that a system analyst requires
to handle, he has to be multifaceted person with varied skills required at
various stages of the life cycle. In addition to the technical know-how of the
information system development a system analyst should also have the following
knowledge.
Ø Business
knowledge: As the analyst
might have to develop any kind of a business system, he should be familiar with
the general functioning of all kind of businesses.
Ø Interpersonal
skills: Such skills are
required at various stages of development process for interacting with the
users and extracting the requirements out of them.
Ø Problem
solving skills: A system
analyst should have enough problem solving skills for defining the alternate
solutions to the system and also for the problems occurring at the various stages
of the development process.
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC),
OR
SOFTWARE DEVELOPMENT LIFE CYCLE
In systems engineering, information systems and software
engineering, is the process of creating or altering systems, and the models and
methodologies that people use to develop these systems. The concept generally
refers to computer or information systems.
Systems and Development Life Cycle (SDLC) is a process
used by a systems analyst to develop an information system, including
requirements, validation, training, and user (stakeholder) ownership. Any SDLC
should result in a high quality system that meets or exceeds customer
expectations, reaches completion within time and cost estimates, works
effectively and efficiently in the current and planned Information Technology
infrastructure, and is inexpensive to maintain and cost-effective to enhance.
For ex. Computer systems are complex and often (especially with the recent rise
of Service-Oriented Architecture) link multiple traditional systems potentially
supplied by different software vendors.
To manage this level of complexity, a number of SDLC models have been created:
"waterfall"; "fountain"; "spiral"; "build and
fix"; "rapid prototyping"; "incremental"; and
"synchronize and
stabilize.
The systems development life cycle (SDLC) is a type
of methodology used to describe the process for building information systems, intended to develop information
systems in a very deliberate, structured
and methodical way, reiterating each stage of the life cycle.
System Development Phases:
SDLC Phases:
·
Problem
Definition
·
Design
·
Analysis
·
Validation
·
Implementation
·
Evaluation
Explanation of the SDLC Phases:
Requirements gathering and analysis
The goal of system analysis is to determine where
the problem is in an attempt to fix the system. This step involves "breaking
down" the system in different pieces to analyze the situation, analyzing
project goals, "breaking down" what needs to be created and
attempting to engage users so that definite requirements can be defined
(Decomposition computer science). Requirements Gathering sometimes requires
individuals/teams from client as well as service provider sides to get detailed
and accurate requirements....
Design:
In systems, design functions and operations are
described in detail, including screen layouts, business rules, process diagrams
and other documentation. The output of this stage will describe the new system
as a collection of modules or subsystems. The design stage takes as its initial
input the requirements identified in the approved requirements document.
Build or coding:
Modular and subsystem programming code will be accomplished
during this stage. Unit testing and module testing are done in this stage by the developers. This
stage is intermingled with the next in that individual modules will need
testing before integration to the main project.
Testing:
The code is tested at various levels in software
testing. Unit, system and user acceptance testings are often performed. This is
a grey area as many different opinions exist as to what the stages of
testing are and how much if any iteration occurs.
Below are the following types of testing:
Ø Data set testing.
Ø Unit testing
Ø System testing
Ø Integration testing
Ø Black box testing
Ø White box testing
Ø Regression testing
Ø Automation testing
Ø User acceptance testing
Ø Performance testing
Ø Production
Operations
and maintenance
The
deployment of the system includes changes and
enhancements before the decommissioning or sunset of the system. Maintaining the system is an
important aspect of SDLC. As key personnel change positions in the
organization, new changes will be
implemented, which will require system updates.
DATA FLOW DIAGRAMS
A data-flow diagram (DFD) is a
graphical representation of the
"flow" of data through an information system. DFDs can also be used for the visualization of data processing
(structured design). On a DFD, data
items flow from an external data source or
an internal data store to an internal data store or an external data sink, via an internal process. A DFD provides
no information about the timing of processes, or about whether processes will
operate in sequence or in parallel.
OVERVIEW OF
DFD:
It is common practice to draw a context-level data
flow diagram first, which shows the interaction between the system and external
agents which act as data sources and data sinks. On the context diagram (also known as the 'Level 0
DFD') the system's interactions with the outside world are modeled purely in
terms of data flows across the system boundary. The context diagram shows
the entire system as a single process, and gives no clues as to its internal
organization. This context-level DFD is next "exploded", to produce a
Level 1 DFD that shows some of the detail of the system being modeled. The
Level 1 DFD shows how the system is divided into sub-systems (processes), each
of which deals with one or more of the data flows to or from an external agent,
and which together provide all of the functionality of the system as a whole.
It also identifies internal data stores that must be present in order for the system to do its job, and shows the flow of
data between the
various parts of the system.
How to develop Data Flow Diagram:
1. The system designer makes a context level DFD or
Level 0, which shows the "interaction" (data flows) between "the
system" (represented by one process) and "the system
environment"
(represented by terminators).
2. The system is "decomposed in lower-level
DFD (Level 1)" into a set of "processes, data stores, and the data
flows between these processes and data stores".
3. Each process is then decomposed into an
"even-lower-level diagram
containing its sub processes".
4. This approach "then continues on the
subsequent sub processes", until a
necessary and sufficient level of detail is reached which is called the
primitive process (aka chewable in one bite).
___________________________________________________________________________
SYSTEM DESIGN
Systems design is the process or art of defining the
architecture, components, modules, interfaces, and data for a system to satisfy
specified requirements. One could see it as the application of systems theory
to product development. There is some overlap with the disciplines of systems
analysis, systems architecture and systems engineering. System design is divided into two types:
1) Logical
Design
The logical design of a system pertains to an
abstract representation of the data flows, inputs and outputs of the system. This is often conducted via modeling, which
involves a simplistic
(and sometimes graphical) representation of an
actual system.
Ø Data flow diagrams
Ø Entity Life Histories
Ø Entity Relationship Diagrams
2) Physical Design
The physical design relates to the actual input and
output processes of the system. This is
laid down in terms of how data is inputted
into a system, how it is verified/authenticated, how it is processed, and how
it is displayed as output.
Requirements analysis - analyzes the needs of the end users or customers
Benchmarking — is an effort to evaluate how current
systems are used
Systems architecture - creates a blueprint for the
design with the necessary specifications
for the hardware, software, people and
data resources. In many cases, multiple architectures are evaluated before one
is selected.
Design — designers will produce one or more
'models' of what they see a system eventually looking like, with ideas from the analysis section either used or discarded. A
document will be produced with a description of the system, but nothing is specific — they might say 'touch screen' or
'GUI operating system', but not mention any specific brands;
Computer programming and debugging in the software
world, or detailed design in the consumer, enterprise or commercial world specifies the final system components.
System testing - evaluates the system's actual
functionality in relation to expected or
intended functionality, including all integration aspects.
SYSTEM IMPLEMENTATION
Systems implementation is the construction of the new
system and its delivery into ‘production’ or day-to-day operation. The key to understanding the implementation
phase is to realize that there is a lot
more to be done than programming. During implementation you bring your process,
data, and network models to life with technology. This requires programming,
but it also requires database creation
and population, and network installation and testing. You also need to make
sure the people are taken care of with effective training and documentation.
Finally, if you expect your development skills to improve over time, you need to
conduct a review of the lessons learned.
Process of
Implementation which involves the following steps:
• Internal or outsourcing (trend is
"outsourcing")
• Acquisition: purchasing software, hardware, etc.
• Training: employee (end-users) training,
technical staff training. SQL training
in 5 days costs around $2000, + airplane, hotel, meals, rental car ($3000 to
5000); evaluation
• Testing:
• a bigger system requires more testing time
• a good career opportunity for non-technical
people who wish to get in the door in the IT jobs.
• Documentation:
• backup
• knowledge management system
• Actual Installation
• Conversion: Migration from the old system to a
new system
• Maintenance: very important; if you don't
maintain the new system properly, it's
useless to develop a new system.
• monitor the system,
• Upgrade,
• Trouble-shooting,
• Continuous improvement
SYSTEM MAINTENANCE
Once the system is installed, the MIS job has just
begun. Computer systems are constantly changing. Hardware upgrades occur continually, and commercial software
tools may change every year. Users change jobs. Errors may exist in the system.
The business changes, and management and
users demand new information and
expansions. All of these actions mean the system needs to be modified. The job of overseeing
and making these modifications is called
software maintenance.
The pressures for change are so great that in most organizations today as much as 80 per cent of
the MIS staff is devoted to modifying
existing programs. These changes can be time consuming and difficult. Most
major systems were created by teams of programmers and analysts over a long
period. In order to make a change to a program, the programmer has to
understand how the current program works. Because the program was written by
many different people with varying styles, it can be hard to understand.
Finally,
when a programmer makes a minor change in one location, it can affect another
area of the program, which can cause additional errors or necessitate more
changes. One difficulty with software maintenance is that every time part of an
application is modified, there is a risk of adding defects (bugs). Also, over time the application
becomes less structured and more
complex, making it harder to understand. These are some of the main reasons why
the year 2000 alterations were so expensive and time consuming. At some point,
a company may decide to replace or
improve the heavily modified system.