Sie sind auf Seite 1von 14

System Analysis and Design (SAD)

Introduction to System Analysis and Design (SAD)


Systems are created to solve Problems. One can think of the systems approach as an organised way
of dealing with a problem. In , the subject system analysis and design, mainly deals with the
software development activities.
this dynamic world

What is System?
A collection of components that work together to realize some objectives forms a system. Basically there
are three major components in every system, namely input, processing and output.

In a system the different components are connected with each other and they are interdependent. For
example, human body represents a complete natural system. We are also bound by many national
systems such as political system, economic system, educational system and so forth. The objective of
the system demands that some output is produced as a result of processing the suitable inputs. A
well-designed system also includes an additional element referred to as control that provides a
feedback to achieve desired objectives
of the system.
SYSTEM LIFE CYCLE
System life cycle is an organizational process of developing and maintaining systems. It helps in
establishing a system project plan, because it gives overall list of processes and sub-processes
required for developing a system.
System development life cycle means combination of various activities. In other words we can say
that various activities put together are referred as system development life cycle. In the System
Analysis and Design terminology, the system development life cycle also means software
development life cycle.
Following are the different phases of system development life cycle:

Preliminary Study
Feasibility study
Detailed system study

System analysis
System design
Coding
Testing
Implementation
Maintenance

The different phases of system development life cycle is shown in this diagram

Phases of System Development Life Cycle

PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE

The different phases and related activities of system development life cycle are as follows:
(a) Preliminary System Study
Preliminary system study is the first stage of system development life cycle. This is a brief
investigation of the system under consideration and gives a clear picture of what actually the physical
system is? In practice, the initial system study involves the preparation of a
System Proposal which lists the Problem Definition, Objectives of the Study, Terms of reference for
Study, Constraints, Expected benefits of the new system, etc. in the light of the user requirements.
The system proposal is prepared by the System Analyst (who studies the system) and places it before
the user management. The management may accept the proposal and the cycle proceeds to the next
stage. The management may also reject the proposal or request some modifications in the proposal.
In summary, we would say that system study phase passes through the following steps:

Problem identification and project initiation


Background analysis
Inference or findings (system proposal)

(b) Feasibility Study


In case the system proposal is acceptable to the management, the next phase is to examine the
feasibility of the system. The feasibility study is basically the test of the proposed system in the light of
its workability, meeting users requirements, effective use of resources and of course, the cost
effectiveness. These are categorized as technical, operational, economic and schedule feasibility.
The main goal of feasibility study is not to solve the problem but to achieve the scope. In the process

of feasibility study, the cost and benefits are estimated with greater accuracy to find the Return on
Investment (ROI). This also defines the resources needed to complete the detailed investigation. The
result is a feasibility report submitted to the management. This may be accepted or accepted with
modifications or rejected. The system cycle proceeds only if the management accepts it.
(c) Detailed System Study
The detailed investigation of the system is carried out in accordance with the objectives of the
proposed system. This involves detailed study of various operations performed by a system and their
relationships within and outside the system. During this process, data
are collected on the available files, decision points and transactions handled by the present system.
Interviews, on-site observation and questionnaire are the tools used for detailed system study. Using
the following steps it becomes easy to draw the exact boundary of the new system under
consideration:

Keeping in view the problems and new requirements


Workout the pros and cons including new areas of the system

All the data and the findings must be documented in the form of detailed data flow diagrams (DFDs), data
dictionary, logical data structures and miniature specification. The main points to be discussed in this
stage are:

Specification of what the new system is to accomplish based on the user requirements.
Functional hierarchy showing the functions to be performed by the new system and their
relationship with each other.
Functional network, which are similar to function hierarchy but they highlight the functions
which are common to more than one procedure.
List of attributes of the entities these are the data items which need to be held about each
entity (record)

(d) System Analysis


Systems analysis is a process of collecting factual data, understand the processes involved,
identifying problems and recommending feasible suggestions for improving the system functioning.
This involves studying the business processes, gathering operational data, understand the
information flow, finding out bottlenecks and evolving solutions for overcoming the weaknesses of the
system so as to achieve the organizational goals. System Analysis also includes subdividing of
complex process involving the entire system, identification
of data store and manual processes.
The major objectives of systems analysis are to find answers for each business process: What is
being done? How is it being done, Why is it being done and How can it be improved? It is more of a
thinking process and involves the creative skills of the System Analyst. It attempts to give birth to a
new efficient system that satisfies the current needs of the user and has scope for future growth within
the organizational constraints. The result of this process is a logical system design. Systems analysis
is an iterative process that continues until a preferred and acceptable solution emerges.
(e) System Design
Based on the user requirements and the detailed analysis of the existing system, the new system
must be designed. This is the phase of system designing. It is the most crucial phase in the
developments of a system. The logical system design arrived at as a result of systems analysis is
converted into physical system design. Normally, the design proceeds in two stages:

Preliminary or General Design: In the preliminary or general design, the features of the new
system are specified. The costs of implementing these features and the benefits to be derived
are estimated. If the project is still considered to be feasible, we move to the detailed design
stage.
Structured or Detailed Design: In the detailed design stage, computer oriented work begins
in earnest. At this stage, the design of the system becomes more structured. Structure design
is a blue print of a computer system solution to a given problem having the same components

and inter-relationships among the same components as the original problem. Input, output,
databases, forms, codification schemes and processing specifications are drawn up in detail.
In the design stage, the programming language and the hardware and software platform in which the new
system will run are also decided. There are several tools and techniques used for describing the
system design of the system. These tools and techniques are:

Flowchart
Data flow diagram (DFD)
Data dictionary
Structured English
Decision table
Decision tree

The system design involves:


i. Defining precisely the required system output
ii. Determining the data requirement for producing the output
iii. Determining the medium and format of files and databases
iv. Devising processing methods and use of software to produce output
v. Determine the methods of data capture and data input
vi. Designing Input forms
vii. Designing Codification Schemes
viii. Detailed manual procedures
ix. Documenting the Design

(f) 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 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.
(g) 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 a
part of implementation process.
Using the test data following test run are carried out:

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 analysed. 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.

(h) 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 users 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.
(i) 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.
(ii) 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:

Manual results can be compared with the results of the computerized system.
The operational work is doubled.
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.

(iii) Pilot run: 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. 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:

User or Operator Documentation


System Documentation

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. 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.

(i) 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.

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.

What are the Software Development Models?


The development models are the various processes or methodologies that are being selected
for the development of the project depending on the projects aims and goals. There are many
development life cycle models that have been developed in order to achieve different
required objectives. The models specify the various stages of the process and the order in
which they are carried out.
The selection of model has very high impact on the testing that is carried out. It will define
the what, where and when of our planned testing, influence regression testing and largely
determines which test techniques to use.
There are various Software development models or methodologies. They are as follows:
1.
2.
3.
4.
5.
6.
7.

Waterfall model
V model
Incremental model
RAD model
Agile model
Iterative model
Spiral model

What is Waterfall model- advantages, disadvantages and when to use it?


The Waterfall Model was first Process Model to be introduced. It is also referred to as a linearsequential life cycle model. It is very simple to understand and use. In a waterfall model,
each phase must be completed fully before the next phase can begin. At the end of each
phase, a review takes place to determine if the project is on the right path and whether or not
to continue or discard the project. In waterfall model phases do not overlap.

Diagram of Waterfall-model:

Advantages of waterfall model:

Simple and easy to understand and use.


Easy to manage due to the rigidity of the model each phase has specific deliverables and a
review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.

Disadvantages of waterfall model:

Once an application is in the testing stage, it is very difficult to go back and change
something that was not well-thought out in the concept stage.
No working software is produced until late during the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high risk of changing.

When to use the waterfall model:

Requirements are very well known, clear and fixed.


Product definition is stable.
Technology is understood.
There are no ambiguous requirements
Ample resources with required expertise are available freely
The project is short.

What is Agile model advantages, disadvantages and when to use it?


Agile development model is also a type of Incremental model. Software is developed in
incremental, rapid cycles. This results in small incremental releases with each release
building on previous functionality. Each release is thoroughly tested to ensure software
quality is maintained. It is used for time critical applications. Extreme Programming (XP) is
currently one of the most well known agile development life cycle model.
Diagram of Agile model:

Advantages of Agile model:

Customer satisfaction by rapid, continuous delivery of useful software.


People and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
Working software is delivered frequently (weeks rather than months).
Face-to-face conversation is the best form of communication.
Close, daily cooperation between business people and developers.
Continuous attention to technical excellence and good design.
Regular adaptation to changing circumstances.
Even late changes in requirements are welcomed

Disadvantages of Agile model:

In case of some software deliverables, especially the large ones, it is difficult to assess
the effort required at the beginning of the software development life cycle.
There is lack of emphasis on necessary designing and documentation.
The project can easily get taken off track if the customer representative is not clear
what final outcome that they want.
Only senior programmers are capable of taking the kind of decisions required during
the development process. Hence it has no place for newbie programmers, unless
combined with experienced resources.

When to use Agile model:

When new changes are needed to be implemented. The freedom agile gives to change
is very important. New changes can be implemented at very little cost because of the
frequency of new increments that are produced.
To implement a new feature the developers need to lose only the work of a few days,
or even only hours, to roll back and implement it.
Unlike the waterfall model in agile model very limited planning is required to get
started with the project. Agile assumes that the end users needs are ever changing in
a dynamic business and IT world. Changes can be discussed and features can be
newly affected or removed based on feedback. This effectively gives the customer the
finished system they want or need.
Both system developers and stakeholders alike, find they also get more freedom of
time and options than if the software was developed in a more rigid sequential way.
Having options gives them the ability to leave important decisions until more or better
data or even entire hosting programs are available; meaning the project can continue
to move forward without fear of reaching a sudden standstill

What is Spiral model- advantages, disadvantages and when to use


it?
The spiral model is similar to the incremental model, with more emphasis placed on risk
analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations (called
Spirals in this model). The baseline spiral, starting in the planning phase, requirements are
gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.
Requirements are gathered during the planning phase. In the risk analysis phase, a process
is undertaken to identify risk and alternate solutions. A prototype is produced at the end of
the risk analysis phase. Software is produced in the engineering phase, along with testing at
the end of the phase. The evaluation phase allows the customer to evaluate the output of the
project to date before the project continues to the next spiral.

Diagram of Spiral model:

Advantages of Spiral model:

High amount of risk analysis hence, avoidance of Risk is enhanced.


Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Software is produced early in the software life cycle.

Disadvantages of Spiral model:

Can be a costly model to use.


Risk analysis requires highly specific expertise.
Projects success is highly dependent on the risk analysis phase.
Doesnt work well for smaller projects.

When to use Spiral model:

When costs and risk evaluation is important


For medium to high-risk projects
Long-term project commitment unwise because of potential changes to economic
priorities
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration)

What is Prototype model- advantages, disadvantages and when to use


it?
The basic idea here is that instead of freezing the requirements before a design or coding can
proceed, a throwaway prototype is built to understand the requirements. This prototype is
developed based on the currently known requirements. By using this prototype, the client can
get an actual feel of the system, since the interactions with prototype can enable the client
to better understand the requirements of the desired system. Prototyping is an attractive idea
for complicated and large systems for which there is no manual process or existing system to
help determining the requirements. The prototype are usually not complete systems and many
of the details are not built in the prototype. The goal is to provide a system with overall
functionality.
Diagram of Prototype model:

Advantages of Prototype model:

Users are actively involved in the development


Since in this methodology a working model of the system is provided, the users get a
better understanding of the system being developed.
Errors can be detected much earlier.
Quicker user feedback is available leading to better solutions.
Missing functionality can be identified easily
Confusing
or
difficult
functions
can
be
identified
Requirements
validation,
Quick
implementation
of,
incomplete,
but
functional, application.
Disadvantages of Prototype model:

Leads to implementing and then repairing way of building systems.


Practically, this methodology may increase the complexity of the system as scope of
the system may expand beyond original plans.
Incomplete application may cause application not to be used as the
full
system
was
designed
Incomplete or inadequate problem analysis.

When to use Prototype model:

Prototype model should be used when the desired system needs to have a lot of
interaction with the end users.
Typically, online systems, web interfaces have a very high amount of interaction with
end users, are best suited for Prototype model. It might take a while for a system to be
built that allows ease of use and needs minimal training for the end user.
Prototyping ensures that the end users constantly work with the system and provide a
feedback which is incorporated in the prototype to result in a useable system. They
are excellent for designing good human computer interface systems.

CASE TOOLS
CASE tools reduce the time and cast of software development and ensure the quality of
software. The objective of introducing Computer Aided Software Engineering (CASE)
tools was the reduction of the time, cost of software development and for the
enhancement of the quality of the systems developed (Diane Lending et al. 1998).

CASE technologies are tools that provide automated assistance for software development to
the developers. The goal of introducing CASE tools is to reduce the time of development,
reduce the cost of software, and the enhancement of the quality of the software. Upper
CASE tools are used to capture, analyze and organize the models of system. These models
help designers to focus on the systems linear behaviour. Lower CASE tools are used for
development and software maintenance phases. Using these tools developers classify the
scope and boundaries, describe current system, model requirements, prototyping, prepare
design, etc. Integrated CASE tools provide support for Upper CASE and Lower CASE tool
activities. Integrated CASE tools helps specifically in Analysis & Design, Maintenance and
system planning. Integrated CASE tools provide the support throughout whole development
lifecycle.
Software developers always looking for such CASE tools that help them in many different
ways during the different development stages of software, so that they can understand the
software and prepare a good end product that efficiently fulfill the user requirements. CASE
tools provide the ways that can fulfill this requirement of software developers. These tools
provide computerized setting to software developers to analyze a problem and then design its
system model.

They provides better perceptive of system.


Case tools enable better communication among team members.
Tools are more effective for large scale systems and immense projects.
CASE tools provide visibility of processes and logic.
CASE tools improve quality and productivity of software.
CASE tools reduce the time for error correction and maintenance.
CASE tools provide clear readability and maintainability of the system.
Though CASE tools are helpful for the developer but do not assure that the design
is according to the requirements.
Good quality CASE tools are very expensive and prove costly for the
development.
CASE tools also required training for the user that increase the overall cast of
development.
Almost every tool has its limitation that decreases its use and popularity.
Some tools may have very limited functionality and may not address all possible
domain activities.
Every tool has a specific methodology for designing and modeling of the system.
Due to this youre bound to follow them that decrease the flexibility which
decrease the use of CASE tools.

CASE is not being used as it was expected; there are many factors that affect the use of
CASE tools.
Cost
Many tools are costly and most companies are unwilling to implement these CASE tools by
the fact that it increases the overall cost of the project. And second thing if a company does
not get any extra by using CASE tools then why should they use CASE tools, which are
expensive for it in the end.

Time Limitation
There is always a time limit for every software project for development. Most of developers
do not adopt CASE because it requires a lot of time to train developers and perform all CASE
activities and there are always deadlines to complete the project. You have too meet
deadlines of the company but if you use CASE tools you cannot finish your project on time,
which is also a factor in less use of CASE tools.
Training
Training is a big concern while any company going to use a new tool, which is quite costly
procedure. They have to train there developer for the efficient use of that particular tool. Most
of the companies avoid using CASE tools because of this fact that they would have to train a
large number of staff and it is expensive and as well as time consuming.
Lack of Concern
Most of the developers who use CASE tools are not fully satisfied from the CASE tools,
which are why they are quite neutral about the usefulness of the CASE tools. The developer
does not fully enjoy using CASE tools and if some of them do so, they use only limited
functionality of the CASE tool. Many developers use CASE tools as a requirement of
organization only. Developers do not seem motivated to use CASE tools and this lack of
interest is one of the big reasons for less usage of CASE tools.
Technical Limitations
Every CASE tool follows a methodology for the model the system. People who use any
specific CASE tool for a longer period of time get used with the methodology of that tool and
they try to apply the same methodology for other projects.
Most of the tools have their hardware and software requirements. These requirements should
meet to use that tool. This is another hurdle in CASE tool adoption for those companies who
does not meet hardware or software requirements to use CASE tools. Tool should not be plate
form dependent either of software or hardware.
Technology Transfer and Insertion
One of the main challenges in CASE adoption is technology change. CASE depends on
planning, managing and early experiences and it cannot be guaranteed even by experienced
people that CASE can easily be incorporated.
Environment
Environment is another factor that plays important role in the failure of CASE tools. Is there
any practice exists in the organization to adopt new technology and effectively learn it,
opposition is always there for the new emerging technology and public dont like to change
the existing technology, because they have to learn it before using it. Behavior of people
towards change in organization is also very important, if developers and other related people
in an organization are willing to implement and adopt new technology, then there are fewer
problems.

Selection of CASE Tool


It is also a big concern that an organization must choose a appropriate CASE tool that suite
there organization, but unfortunately most of the time developer are not consulted and
management use to select the CASE tool that is a big hurdle in the way of CASE tool
penetration. Before selecting any new technology, people who uses them must be consulted
because they can better argue that how they can effectively use the CASE tool. As there are
many tools for same problem in the market tool selection is a big concern as well.

__________________________________________________________