Unit 1: SYSTEM DEVELOPMENT CONCEPT
Information
System
The word 'system' is
widely used. It has become fashionable to attach the word 'system' to add a
contemporary flair when referring to things or processes. People speak of
exercise systems, investment systems, delivery systems and information systems.
In terms of computer, in this section, we will discuss general system's
concepts of analyzing and designing information systems.
The word 'system' is
derived from the Greek word system, which means an organized relationship among
the functioning units or components. In our daily life, we come into contact
with transposition of a system, the communication system, the accounting
system, the production system, the economic system and the computer system for over
three decades. We are more concerned with computer systems.
Note: An information
system is an organized combination of people, hardware, software, communication
networks and data resources that collects, transforms and disseminates
information in an organization.
A system can be
categorized into the following groups.
·
Physical or abstract systems
The physical system
is tangible entities that may be static or dynamic, e.g. building whereas the
abstract system is conceptual entity, e.g. company.
·
Open or closed systems
An open system is a
system which continuously interacts with its environment. The interaction can
take the form of information, energy or material transfers into or out of the
system boundary, depending on the discipline which defines the concept. An open
system should be contrasted with the concept of an isolated system which
exchanges neither energy, matter nor information with its environment.
A closed system
refers to software in which the specifications and detail of implementation
(typically source code) are kept secret, as opposed to open source system.
·
Deterministic or probabilistic systems
A deterministic
system is a conceptual model of the philosophical doctrine of determinism,
applied to a system for understanding everything that has and will occur in the
system, based on the physical outcomes of causality. In a deterministic system,
every action or cause, produces a reaction or effect and every reaction, in
turn, becoming the cause of subsequent reactions.
A deterministic
system has a single result or a set of results given a set of input parameters,
while a probabilistic system will have results that vary. Often, a
probabilistic system (also called stochastic model, process or system) is
solved with the Monte-Carlo method. In this case, a computer program uses a
pseudo-random number generator to provide values of the attributes in the
system, which may vary.
The program provides
an assessment of the uncertainty of results. Typically, a large number of runs
(also called trials or iterations) are made. Summary statistics may include the
value that occurs most frequently (mode), the mean value, and low and high
range, for instance, the 10% and 90% percentile. The standard deviation and
histogram of results may also be part of the summary information. There is no
single standard presentation as this will depend on the application.
The alternative
Monte-Carlo methods are to solve the problems using the mathematics of
probability. This can be very complicated to do in some cases. Monte-Carlo method
is available in Excel as functions. For example, and between () for uniform
discrete distribution and rand () for uniform continuous distribution from 0.
·
Man-made information systems
The systems developed
and engineered by human are a man-made system. In this section, we are more
concerned about man-made information systems, which are further classified as:
1. Formal
Information System
This system defines
very clearly about the workflow system, communication flow-down, and the
authority. The information flows in terms of policies, goals, strategies, rules
and regulations from the top level management to the bottom level of
management. The information also flows from the bottom level management to the
top level in terms of feedback, results of work done, etc.
2.
Informal Information System
The informal
information system should be employee based and cater to their development and
solve their work related problem. Employee co-operation and the knowledge of
the informal communication should help one to get good informal information
systems in place.
3.
Computer-based Information system
The third category of
an information system depends mainly on the computer for handling business
applications. System analysts develop several different types of information system
to meet a variety of business needs. There is a class of systems collectively
known as Computer Based Information Systems.
As we have different
types of transportation system such as highway systems, railway systems, and
airline systems; computer-based information systems are also of too many types.
They are classified as:
1. Transaction
Processing Systems (TPS)
A Transaction Process System (TPS) is a type of information system that
collects, stores, modifies and retrieves the data transaction of an enterprise.
A transaction is any event that passes the ACID (Atomicity, Consistency,
Isolation, and Durability) test in which data is generated or modified before
storing in an information system.
2. Management
Information System (MIS)
A Management Information System (MIS) is a system or process that provides the
information necessary to manage an organization effectively. MIS and the
information it generates are generally considered essential components of
prudent and reasonable business decisions.
3. Decision Support
Systems (DSS)
Decision Support System (DSS) is computerized information system that helps in
the decision-making process of an organization. In other words, DSS are a
specific class of computerized information system that supports business and
organizational decision-making activities.It helps to analyze the business
information and data for making better and suitable decisions.
4. Office Automation
Systems (OAS)
Office automation refers to the varied computer machinery and software used to
digitally create, collect, store, manipulate and relay information needed to
office for accomplishing basic tasks and goals. Raw data storage, electronic
transfer and the management of electronic business information comprise the
basic activities of an office automation system. Office automation helps in
optimizing or automating existing office procedures. The backbone of office
automation is a LAN, which allows users to transmit data, mail and even voice
across the network.
Sub System
and Super System
Every system except the
super system is a part of larger system. The super system contains all the
other systems. Since every system is a part of larger system, it is also a
subsystem of the larger system. For example, a sales department is a sub-system
of an organization. In larger systems, each sub-system is interlinked and forms
closed deterministic system.
System
Study
The system study may
be defined as a study of the operations of a set of connected elements and of
the interconnections between these elements. It is a step-by-step process used
to identify and then develop specific improvements in an organization's
information system. It shows clearly that one cannot ignore any part or element
of a system without first finding out the effect that element has on the
operation of the system as a whole.
System is a
collection or arrangement of entities or things, related or connected in such a
way that they form a unity on the whole. In system, the entities are designed
and controlled by people, the entities are generally arranged so that they
interact to accomplish one or more objectives. For example, the entities of an
educational system consist of students, faculty, administrators, textbooks,
buildings, equipment and many other entities. The entities of the system
interact (e.g. faculty teach students, students read textbooks, administrators
schedule classroom facilities), and ultimately, the primary objective of the
system, learning is accomplished. Anything external to the system is referred
to as the environment of the system.In any system, a number of entities are
interrelated. The following transformation process exemplifies the interwoven
relationships among many entities.
INTRODUCTION
TO SYSTEM ANALYST
Information system analysts are people who are involved in analyzing, designing, implementing and evaluating computer-based information systems to support the decision making activities and operations of an organization. They are ostensibly a boundary spanner between computers and management as illustrated in the following circle graph.
As the graph shows,
system analysts must understand the technology, the organization and the skill
of their trade. To refine this future, the key ingredients that makes a good
system analyst are:
1.
Understanding and commitment to the organization
2.
People skills
3.
Conceptual skills and
4.
Technical skills
A system analyst is
information specialist. To be a system analyst, one must be knowledgeable about
the technical aspects of analyzing, designing and implementing computer-based
systems. A system analyst is a person who conducts a study, identifies
activities and objectives and determines a procedure to achieve the objectives.
Designing and
implementing systems to suit organizational needs are the functions of the
systems analyst. One plays a major role in seeing the business benefits from
computer technology. An analyst is a person with unique skills. One uses these
skills to coordinate the efforts of different types of persons in an
organization to achieve business goals.
Responsibility
of System Analyst
A system analyst
carries out the following jobs:
·
The first and perhaps the most difficult task of system analyst
is problem definition. Business problems are quite difficult to define.
It is also true that problems cannot be solved until they are precisely and
clearly defined.
·
Initially, a system analyst does not know how to solve a
specific problem. One must consult managers, users and other data processing
professionals in defining problems and developing solutions. One uses various
methods for data gathering to get the correct solution of a problem.
·
Having gathered the data relating to problems the system analyst
analyzes those data and thinks of the plan to solve it. One may not come up
personally with the best way of solving a problem but pulls together other
people’s ideas and refines them until a workable solution is achieved.
·
Systems analyst coordinates the process of developing
solutions. Since, many problems have a number of solutions, the system
analyst must evaluate the merit of such proposed solution before recommending
one to the manager.
·
System analysts are often referred to as planners. A key
part of the system analyst job is to develop a plan to meet the management
objectives.
·
When the plan has been accepted, a system analyst is responsible
for designing it so that management’s goal could be achieved. System
design is time-consuming, complex and requires precise task.
·
System must be thoroughly tested. The system analyst often coordinates
the testing procedures and helps in deciding whether or not the new system
is meeting standards established in the planning phase.
Characteristics
of System Analyst
·
Knowledge of People:Since, a system analyst works with
others so closely, he or she must understand their needs and what motivates
them to develop systems properly.
·
Knowledge of Business Function:A system analyst must
know the environment in which he or she works. One must be aware of the
peculiarities of management and the users at this installation and realize how
they react to systems analysis. A working knowledge of accounting and marketing
principles is a must since so many systems are built around these two areas.
One must be familiar with one’s company’s product and services and management’s
policies in areas concerning them.
·
Knowledge of Data processing Principles:Most systems today
are computer based. The system analyst must be fully aware about the potential
and limitations of computers.
·
Ability to Communicate:As a coordinator, a system analyst
must communicate properly with people of different levels within an
organization. A system analyst must listen carefully to what others say and
integrate the thoughts of others into the system's development process.
·
Flexibility:System analysts must be flexible in their
thinking and they often do not get their own way. Different fractions in an
organization have conflicting needs and most systems are the result of
compromise. The analyst’s goal is to produce the system that will be the best
for this organization. This requires an open mind and flexibility in one’s
ideas.
·
An Analytical Mind:It takes an unusual person to see
through problems facing by an organization and develop solutions that will
work. System analysts often find themselves with more data than they can cope
with. It requires an analytical mind to select pertinent data and concentrate
on them in defining problems and forming solutions.
·
Well Educated with Sharp Mind:Systems analyst is
called upon to work with people at all levels virtually in every aspect of
business. They must know how to work with all of them and gain their confidence.
Analysts must have the sharp mind to learn quickly how people do their jobs and
develop ways for them to do it better.
# Specialization
of Basic Data Processing Positions
In large software development project, various specialists are employed to solve problems of different nature. Targeting to different divisions, a number of system analysts work together. Various system analysts and their job descriptions are given below:
# Position
Description
In the software development organizations, there
are various positions and job descriptions. The basic data processing and
information system personnel are as follows:
Development Personnel |
Position Description |
System Analyst |
Analyzes, design, implements and evaluates
computer-based processing systems to process transactions and provide
informations to meet organizational requirements. |
Programmer |
Design codes tests and debugs computer
programs which are consistent with systems design specifications. |
Computer Operator |
Monitors and controls the operations of
computer equipment. |
Data Entry Operator |
Operator microprocessor terminal to
directly enter data into a computer system. |
Production Controller |
Records, maintains and control information
on the receipt and processing of a transaction, and the subsequent
distribution of generated reports. |
# Programming
It is necessary for a
user to understand the mechanism of preparing the programs and how they differ
from software that we use. A program is prepared using programming language.
For writing a particular program or solution for a problem, the programmers
choose a suitable programming language.
A programming
language is set of codes for writing programs. It contains statements, commands,
built-in functions, data declaration mechanisms, repetition mechanism, giving
an output of processing and much more that makes it a programming language.
# Characteristics
of Good Programming
Now, we have come to
know how the program should look like and how it could be prepared. We also
discussed various methods of development programs. But, for a long programmer,
a program must be very effective. A good program possesses the following
characteristics:
1.
It should be portable. It means the software can support various
platforms.
2.
It should be easily understandable by the users and must form
the menu driven system.
3.
It should be very efficient in calculations and use.
4.
It should be structural. Various programs should have been
broken into separate programs.
5.
It should be flexible so that small changes which are necessary
could be made by writing small module instead of writing an entire program.
6.
The program should be documented at the user level and
programmer level in easily understandable language.
# System
Development Life Cycle (SDLC)
System Development
Life Cycle (SDLC), which is also known as Application Development Life Cycle,
is a term used in system that describes the process of planning, creating,
testing and deploying an information system.
All organizations
have several types of information systems. At any point of time, varying
degrees of these information systems may be computer based. For example, an
organization’s payroll information system may be computer based, but its
strategic planning information system may be processed manually.As the time
passes, organizational processes change. The organization’s information systems
must change in response to the changing needs of an organization. When this
occurs, management usually initiates some form as systems development life
cycle (SDLC) to address the problem.
# System
Development Life Cycle Models
During software
development or system development for organizations, a common process framework
is established, defining a small number of framework activities that are
applicable to all software projects, regardless of their size complexity. For a
better paradigm of a software process, several models are designed and
implemented. It is the choice of system analyst which model is used to achieve
the goal. The different models are:
·
Linear Sequential Model or Classic or Waterfall Model
We are going to discuss waterfall model or linear sequential or classic mode in this section. The original waterfall model was proposed by Winston Royce. Although, it made provisions for feedback loops, the vast majority of an organization that applies this process model treats it as if it was strictly linear. The various steps are illustrated by the following diagram.
·
Prototyping Model
The prototyping Model
is a System Development Method (SDM) in which a prototype (an early
approximation of final system or product) is built, tested and then reworked as
necessary until an acceptable prototype is finally achieved from which the
complete system or product can now be developed.
This model works best
in scenarios where not all of the project requirements are known in detail
ahead of time. It is an iterative, trial-and-error process that takes between
the developers and the users.
·
Incremental Model
Incremental model is
an evolution of waterfall model. The product is designed, implemented,
integrated and tested as a series of incremental builds. It is a popular model
software evolution used by many commercial software companies and system
vendor.
Incremental software
development model may be system vendor.
1.
Software requirements are well defined, but realization may be
delayed.
2.
The basic software functionality is required early.
·
Spiral Model
The spiral model is a
system development life cycle methodology that combines feature of prototyping
with the waterfall methodology. The spiral model is often favored for large,
complex projects.
Iterates cycle of
these project phases:
1.
Requirements definition
2.
Risk analysis
3.
Prototyping
4.
Simulate, benchmark
5.
Design, implement, test
6.
Plan next cycle (if any)
Steps in the spiral
model include:
1.
The new system requirements are defined. This usually involves
interviewing a number of users representing all the end users of the system.
2.
A preliminary system design is created.
3.
An initial prototype of the new system is constructed from the
preliminary design. This is usually a scaled-down system and represents an
approximation of the final product’s characteristics.
4.
After evaluating the strengths, weaknesses and risks of the
first prototype, a second prototype is developed and tested.
5.
If the risk considered is being too great, the client may choose
to terminate the project at this point. Risk factors to be considered include
development cost over runs, operating-cost miscalculations, etc.
6.
Subsequent prototypes are developed until the customer is
satisfied, until the customer get assured that the latest prototype represents
the desired product.
7.
The system is constructed based on the final prototype.
8.
The final system is evaluated and tested. Routine maintenance is
carried out continually to prevent large-scale failures and to minimize
downtime.
When to use Spiral
Model
1.
When creating a prototype is appropriate.
2.
When costs and risk evaluation is important.
3.
For medium to high-risk projects
4.
Long –term project commitment unwise because of potential
changes to economic priorities
5.
Users are unsure of their needs
6.
Requirements are complex
7.
New product line
8.
Significant changes are expected (research and exploration)
Since, there are possibilities
of repetition in the system development as a new problem may arise. This
situation can be represented diagrammatically below:
# New
Problems or Opportunities Arise:
The initial step of
system development cycle is the identification of new problems. In some cases,
it can be considered as new opportunities. For example, a wholesale distributor
receives customer complaints concerning late deliveries of goods. These late
delivery result in loss of customer goodwill. The action is necessary to implement.
To clearly understand the exact nature of the problem requires a thorough
analysis and understanding of the existing system.
# Analyze
and Document Existing Systems:
In the above example,
the management may initiate a project team or task force to analyze the
existing order-processing system. This project is headed by a team leader
called system analyst. Analysis of the existing system consists:
1.
Review workflow
2.
Define decision making associated with workflow
3.
Review current information available to support decision-making
4.
Isolate deficiencies of the information system
# Design
Information Requirements:
As soon as the
deficiencies in the information system have been determined, solutions to those
deficiencies can be designed. It is important that the solutions relate to
improving workflow and the decisions being made must be related to the
solutions. In other words, solutions should improve productivity.
# Design
Technology and Personnel Requirements:
The design of
information and processing requirements establishes the criteria for
identifying alternative means for solution achievement. That is, the previous
step defines what is desired. This step defines how to do it.
Variable technologies
and personnel are identified that, if included in the system, it can be
structured to support the solution defined in the previous step. Generally,
several alternatives offering varying degrees of solution achievement are
available.
# Develop,
Test and Validate System:
At this point, the
desired solutions and the means of achieving them have been identified.
Specifically, inclusion and structure decisions are established for the
information and technology of the new system. The actual structuring or
development and testing of the system are now possible. This step consists of
installing an additional hardware or software required and coding and testing
computer programs where necessary.
# Implement
System:
After a new system
has been developed and tested, conversion from the old system to the new system
is required. The actual implementation process can be expressed in terms of the
continum that ranges from parallel to discrete. In a parallel system, the old
and new systems are concurrently processed until the new system stabilizes. The
parallel implementation reduces risk when implementing a new system.
# Evaluate
and Maintain System:
After a new system has been implemented, it
is important to review how effectively and efficiently the solutions to the new
problems and opportunities have been achieved. Evaluation, therefore, consists
of accessing the degree of variation between planned and actual system
performance.
# SYSTEM
DEVELOPMENT PROCEDURE
System development
procedure is a process consisting of the major steps of system analysis and
design. It starts when management or sometimes system development personnel
felt that a new system or an improvement in the existing system is required.
The systems
development lifecycle is classically thought of as the set of activities that
analysts, designers and users carry out to develop and implement an information
system. The System development life cycle consists of the following activities.
1.
Problem Definition ( Preliminary Investigation/Recognition)
2.
System Analysis (Determination of the System requirements)
3.
System Design
4.
Programming Analysis (Development of software)
5.
Program Preparation and Testing
6.
System Implementation
7.
System Evaluation
8.
System Maintenance
1. Problem
Definition (Preliminary Investigation)
To create a new
program of the system or to improve or modify an existing one, people have to
recognize that a problem or need exists at the very beginning. This problem or
need may result from changing operation conditions.
Managers, employees
of departments are affected by changing conditions, and data processing personnel
often participate in requirements sessions, until the problem has been defined
and specified study goals have been outlining.
These goals should
then be put in writing and approved by all concerned employees. This step
cannot be bypassed. In this session, the requests are clarified and then,
technical feasibility, economic feasibility, operational feasibility studies
are made.
After a project
request is approved, its cost, priority, completion time and personnel
requirements are estimated and used to determine where to add it to any
existing project list.
Problem definition is
not a single task. It integrates various components which need to be detailed
and processed using suitable tools. The major functional definitions include
need technical feasibility, economical feasibility, behavioral feasibility
study, etc.
2. System
Analysis (Determination of the System Requirements)
After the users and
specialists have identified the need for specific changes, a study team gathers
and then analyzes data about current processing operations. At least one member
usually represents (the person has a knowledge of the information needs) the
departments affected by the study.
Another is a system
analyst – Information specialist who’s knowledgeable about the technical aspects
of analyzing, designing and implementing computer based processing systems. And
a third may be an author who can see that proper accuracy and security controls
are built into a new system. The following are the major issues of system
analysis:
1.
Data collection
2.
Flow Chart preparation (a system study)
3.
Analyzing the findings.
At this level, the
programmers, the designers and system analyst sit together and perform the
major tasks such as entity analysis, functional analysis, preparing data flow
diagram (DFD), designing data dictionary, etc. The major activities related to
the system analysis is the feasibility study.
The details of
feasibility studies are:
·
Technical Feasibility – determines whether project is
technically feasible
·
Economical Feasibility – determines whether project is
financially healthy
·
Operational Feasibility – determines whether the project can be
operated successfully.
3. System
Design
System design is the
process of creating alternative solutions to satisfy the study goals,
evaluating the choices and then drawing up the specifications for the chosen
alternative. Design begins after the study team has analyzed the current
procedure. Since, many factors have a bearing on the design process, it can be
a challenging task.
It must be considered
how changes made in one application department will affect related
applications. After analyzing the current system and studying the flowchart,
the study team prepares alternative way also. The job of the designers is to
decide if the benefits and possible savings expected from design alternative
outweigh the costs.
System analyst begins
the design process by identifying reports and then other outputs system will
produce. Then, the specific data on each are pinpointed. The system design also
describes the data to be input, calculated or stored. Individual data items and
calculation procedures are written in detail. Designers select file structures
and storage devices, such as magnetic disk, magnetic tape, etc.
The procedures, they
write say how to process the data and produce the output. Designers are
responsible for providing programmers with complete and clearly outlined
software specifications.
The system design is
not a single task. The functional system design should have elaborative –Output
design, Input design, Files design and storing mechanism inside the computer
system, data and program processing and general program flow design.
4.
Programming Analysis (Development of Software)
After top managers
give their approval to create custom made software, the design specifications
provide the input for the programming analysis phase of the study process.
Programming analysis is the process of breaking down the design specification
into the specific input/output, text manipulation/calculation, logic / comparison
and storage/ retrieval operations which are required to satisfy the study
goals.
Analysis tools such
as program flowcharts (is the detailed program showing how individual
processing steps will be performed within the computer to convert input data
into the desired output) is used.
During programming
analysis or software development phase, the programmers and designers prepare
the flowcharts, write the pseudopodia in structured English and select the
programming language for wiring the program code.
5. Program
Preparation and Testing
The detailed
input/output, text manipulation/ calculation, logic/ comparison, and
storage/retrieval operations identified during the programming analysis stage
provide the input for program preparation. One or more programmers concert
these operations into a program of instruction written in a language and form
acceptable to the computer hardware.
During system
testing, the system is used experimentally to ensure that the software does not
fail. In other words, we can say that it will run according to its
specifications and in the way users expect. Especially, test data are input for
processing and the results examined.
Before the program is
delivered to the market, the system designers use the program in a virtual
system which testifies the system and helps draw inferences for system
conversion.
After the program
preparation is completed, the new system must be checked for errors and tested
before it can be used on a routine basis. When the software appears to be
running properly, changeover is made. During this period, those who prepare
input data and use output results must cooperate with data processing
specialists if the new system is to be successful.
Finally, systems and
programs, that have been successfully implemented are usually subject to
continual change. A first class maintenance effort requires the co-operation of
those people served by the system / program and those responsible for
maintaining it. Of course, the need for a major change could trigger a new system
study i.e. big change in current system evolves a new system.
Elimination of
errors, adding modules, removing unnecessary modules, maker more user-friendly,
etc. are some considerations of maintenance of a software product.
6. System
Implementation
Implementation is the
process of having systems personnel check out and put new equipment into use,
train users, install the new application and construct any files of data needed
to use it. This phase is less creative than system design.
Depending on the size
of the organization that will be involved in using the application and the risk
involved in its use, system developers may choose to test the operation in only
one area of the firm with only one or two persons.
Sometimes, they will
run both old and new system in a parallel way to compare the results. In still
other situations, system developers stop using the old system one day and start
using the new one the next.
7. System
Evaluation
Evaluation of the
system is performed to identify its strengths and weaknesses. The actual
evaluation can occur along any of the following dimensions.
1.
Operational Evaluation
2.
Organizational Impact Evaluation
3.
User Manager Assessment Evaluation
4.
Development performance Evaluation
8. System
Maintenance
Maintenance is
necessary to eliminate errors in the working system during its working life and
to tune the system to any variations in its working environment. Often small
system deficiencies are found as a new system is brought into operations and
changes are made to remove them.
From the above, we
can conclude that the following steps determine the software development
sequence.
# Concept of
System Design Tools (Application Modeling Techniques)
System analysis can be complex and confusing work. The analyst
should be able to deal with a large amount of highly detailed and often
conflicting information. The analyst needs a way to organize the information,
determine where there are gaps in understanding and identify areas of
conflicting. Modeling techniques provide solutions for the system analyst.
The modeling techniques used in system development are:
- Context diagram
- Data Flow Diagram (DFD)
- E-R diagrams
Pseudo code and
Algorithm
Programming
Tools
During programming
analysis and system design, the programmers, system engineers and system
designers work together to build a successful program or a computer-based
information system. Various ideas, components and program modules are
integrated to accomplish the task.
System analysts and
designers perform the following tasks during these steps.
1.
Selection of programming language
2.
Selection of the programming tools
3.
Design and virtual testing of the program.
The programming tools
give the idea how the flow should take place in order to accomplish a task.
Several programming tools are used in this context. Some of the most common
programming tools are:
1.
Pseudo code
2.
Algorithm
3.
Flowchart
Pseudo
code
Pseudo code is a
combination of two words: Pseudo and Code. 'Pseudo' means imitation and 'code'
refer to instruction written in the programming language. Pseudo code is not a
real programming code. It is the generic way of describing an algorithm without
using any specific programming language-related notations.
The features of
pseudocode are:
·
It uses plain english statements.
·
It emphasizes on the design of the computer program.
·
It uses structured english.
·
It is detailed and readable to draw an inference.
·
It enables the programmers to concentrate on the algorithms.
The pseudo code
cannot be compiled. It cannot be executed and there are no real formatting or
syntax rules for writing pseudo codes.
It is simply an
important step in producing the final code. Some important terms used in pseudo
code for different activities are:
·
Input: Read, Obtain, Get and Prompt
·
Output: Print, Display, and Show
·
Computer: Computer, Calculate, and Determine
·
Initialize: Set and Initialize
·
Add one: Increment
The two major
constructions in pseudo code structures are: Sequence and Selection (decision).
Sequence indicates the continuous flow of the program, whereas selection uses
logical comparison or conditional check for making decisions.
Example:
…………… IF (condition> THEN List of Actions ELSE List of Different Actions END IF ……………… ………………… |
Example:
READ A, B, AND C IF A is greater than C THEN DISPLAY A ELSE DISPLAY C END IF ELSE IF B is greater than C THEN DISPLAY B ELSE DISPLAY C END IF END IF STOP |
Example:
INITIALIZE Count to zero DO WHILE Count is greater than or equal to
10 ADD 1 to Count PRINT Count ENDDO STOP |
Advantages of Pseudo
code:
1.
Since, it is language independent, it can be used by most
programmers.
2.
It helps to design in plain natural language.
3.
It is easier to develop the program from pseudo code than with a
flowchart.
4.
It is easy to translate to the programming language.
5.
Its simple structure and readability makes it easier to modify
as well.
Disadvantages of
Pseudo code:
1.
It does not provide the visual representation of the program
logic.
2.
There are no accepted standards for writing pseudo code.
Algorithm
An algorithm is
defined as a finite sequence of explicit instructions that produces an output
with the set of input values. The steps in the algorithm are never ambiguous.
It terminates after a finite number of steps.Algorithms can have repetitions
and logical decisions until a specific task is completed. Algorithms are not
computer programs. They cannot be executed by the computer.
Properties of
Algorithm
An algorithm must
have the following properties.
1.
There should not be any ambiguity in instructions.
2.
The instructions should be specific to the task.
3.
The description of an algorithm must be finite. It cannot be
open-ended.
4.
The algorithm must be general enough for writing programs.
5.
As far as practicable, program codes should not be included in
algorithms.
Example: Write an algorithm to make a
telephone call.
Step 1: Remember or read the telephone
number. Step 2: Lift the receiver Step 3: Is there a dial tone? If yes, then dial telephone, go to step 4. { If no, then put down the receiver. Go to step 2} Step 4: Speak Step 5: Put down the receiver. |
Example: Write an algorithm to find the
largest number among three input numbers.
Step 1: Start Step 2: Read 3 numbers say: A, B, C Step 3: Find the largest number between A
and B and store it in MAXAB Step 4: Find the largest number between
MAXAB and C and store it in MAX Step 5: Display MAX Step 6: Stop |
Write the algorithm to calculate the interest
on principle amount in N number of Years.
Step 1: Start Step 2: Read principle, Rate and Time Step 3: Multiply principle * Rate * Time Step 4: Divide by 100 Step 5: Write the answer Step 6: Any more calculations? { If yes, then go to step 2 If No } Step 7: Stop |
Write algorithm to calculate the total and
average marks of 10 students for 7 subjects.
Step 1: Start Step 2: Subject = 1 Step 3: Input mark for this Subject Step 4: Add marks and store into a variable Step 5: Are all subjects (7 subjects) done? { If No, then increase the subject number
and go to step 3. If yes, then go to step 6 Step 6: Print the sum Step 7: Find average (divide by 7) Step 8: Print the sum and average Step 9: Are all (10 students done)? { If No, then increase the student number
and go to step 2 If yes, then go to step 9} Step 9: End |
Flowchart
INTRODUCTION
A flowchart is a
diagram showing a sequence of events that describes the activities necessary to
the solution to a problem. It is drawn using a set of conventional symbols. The
symbols are connected by the arrowhead that indicates the order in which
activities will occur. The different types of symbols that are used in
flowchart are:
Features
of Flowchart
Flowcharts have some
basic features. The basic of a flowchart is its origination from where it
begins.
·
Origination: Flowchart starts from the source of the
collection of data. The data are the information to the computer. The original
documents or manuscripts are the source documents that are the sources of
information. The data goes to the second step.
·
Input: The data information is given to the
computer so that the computer understands. The input section of the flowchart
shows a process of getting data and instruction through a suitable device.
·
Processing: The data is processed by the computer for
which instructions are necessary. The processed results are stored or used in
further calculations. The processing symbols contain the information about the
processing mechanism.
·
Output: The output of the processing may go for
further processing cycle or the next step while data are processed in the
computer.
·
Storage: The data is stored in the disks. The data and
information are stored in the computer’s memory for further reference.
Types of
Flowchart
The major two types
of flowcharts are:
1.
System flowchart and
2.
Program flowchart
1. System Flowchart
System flowcharts
give the direction of a program so that programs or modules are controlled.
They display all the codes to be used in the main program and different
modules. Such flowcharts give detail information to the programmer. This is
like a processing machine. For example, information processing cycle,
manufacturing industry, etc.
The above structure
is a master block diagram of system flowchart. Each and every item is
sub-divided into different modules and every module consists of numerous
programs.
2. Program Flowchart
A flowchart which is
used to process or solve a problem through a program is called program
flowchart. The natures of problem differ from time to time. Use of different
signs and symbols for developing different programs represent program flowchart.
So, the size of a program determines flowchart.
Advantages of
Flowchart
1.
They are clear graphical representations of the various paths
that must be followed to perform the acts to accomplish the goal of the
program.
2.
They provide help to make later modifications.
3.
It is very convenient to write algorithm and flowchart followed
by the program codes instead of writing the programs directly.
4.
The advancement result of the algorithm is flowchart.
5.
Flowcharts enable to read the program very easily.
6.
With the help of flowchart, programs can be written in any
language.
Disadvantages of
Flowchart
1.
Flowcharts are new to the beginning programmer.
2.
It is a time-consuming task for the programmer.
3.
It is a tedious task to make modifications in flowchart after
completing the program when required.
4.
Sometimes, the flowcharts are not clear to another programmer
except the one who had designed it.
Flowchart
Structures
Flowcharts can be
very simple where few symbols can depict the logic. They can be complex too.
There are three constructs of a flowchart. They are:
1.
Sequence:where the information can flow in straight
line
2.
Selection:where the decision is made according to some
predefined condition.
3.
Repetition:where the logic can repeat in a loop, i.e.,
where a sequence of steps is repeated until the desired output is obtained.
Flowchart Examples
1.
Write an algorithm and flowchart to make a telephone call.
Algorithm
Step 1: Remember or read the telephone
number. Step 2: Lift the receiver Step 3: Is there a dial tone? If yes, then dial telephone, go to step 4. { If no, then put down the receiver. Go to step 2} Step 4: Speak Step 5: Put down the receiver. |
Flowchart
2. Algorithm and flowchart to calculate the interest of principal
amount in N number of years.
Algorithm
Step 1: Start Step 2: Read principle, Rate and Time Step 3: Multiply principal * Rate * Time Step 4: Divide by 100 Step 5: Write the answer Step 6: Any more calculations? { If yes, then go to step 2 If No } Step 7: Stop |
Flowchart
3. Write an algorithm, flowchart and program to find the total and
average marks of 10 students for 7 subjects and print the result.
Algorithm
Step 1: Start Step 2: Subject = 1 Step 3: Input mark for this Subject Step 4: Add marks and store into a variable Step 5: Are all subjects (7 subjects) done? { If No, then increase the subject number
and go to step 3. If yes, then go to step 6 Step 6: Print the sum Step 7: Find average (divide by 7) Step 8: Print the sum and average Step 9: Are all (10 students done)? { If No, then increase the student number
and go to step 2 If yes, then go to step 9} Step 9: End |
Flowchart
Program
Structures
A program is
initiated with a declaration of data types, definition of function procedures,
subprograms or sub-procedures. As soon as the program is initiated, the data types
are declared in the program. After the data are defined, the data are processed
in different order. The order at which the program codes are written can be
classified in the following categories.
1.
Sequence
2.
Control Structures
3.
Selection
4.
Repetition
Sequence: When a program is
written in linear fashion, the program is in a sequence. The program initiates
at a certain level and continues till the last command or statement. Such
fashion is useful when the program is small and less logical.
Control structures: The program which
contains certain logic, jumps from one point to another and certain repetition
possesses control structures. The control structures mostly used are:
1.
use of goto ... statement
2.
use of on … goto … statement
3.
user of if … then, if … then … else statement
4.
use of embedded if …else if … else if … else … end if statement.
Selections: A selection is
choosing options. The program provides different options. The user can choose
an option as required. The common statements used for this activity are:
1.
Select
2.
Case
3.
Switch
These statements
provide choices for menu driven programs. Although the syntax and users in the
different programming language are similar, we cannot rule out the variation.
Therefore, the reader will have to consult the necessary manual referred to the
particular programming language for the complete idea of these selections.
Repetitions (Loops): When a program goes
through a loop for certain times repeatedly, it is known as repetition. There
are two types of loops. They are; finite loop and infinite loop. The infinite
loop stops after executing certain program codes or repetitions.
An infinite loop
never ends. The loops are constructs of programs. The first value that
initiates program loop is called initial value and the last value reached in a
finite loop is known as a sentinel value. When the sentinel value is obtained,
the program stops looping. The different methods of creating loops are:
1.
Do loop
2.
While loop
3.
For loop
·
Context Diagram
In keeping with the top-down approach to requirement
determination, the first graphic that is produced using structured technique is
the context diagram. It gives a broad overview of the information system
environment including the data flows into and out of the system.
Context Diagrams serve three
important purposes
1.
Context diagrams support a data-oriented approach to system
design.
2.
Context diagrams help to investigate the output and process
requirements of the organization.
3.
Context diagrams defines the boundaries of the proposed system.
Levels of Context
Diagram
There are three levels of context diagrams:
1.
Level 1: A user-level diagram
describes one functional area’s operational activity.
2.
Level 2: A combined user-level
diagram provides an overall view of the activities of related user groups.
3.
Level 3: An organizational
level diagram reflects a consolidated view of the activities of the
organization.
Context diagram for order
processing
Problem Narrative
The customer sends a list of items required, which is processed
by the customer handling department. A copy of the list is sent to the stores.
Based on the item price, an estimated value of goods is prepared and sent to
the client. At the end of the month, consolidated list of the customer requests
are prepared and sent to the manager of the sales department.
Draw the context diagram based on above narrative.
·
Data Flow
Diagram
A Data Flow Diagram (DFD) is a pictorial representation of the
path which data takes from its initial interaction with the system until it
completes any interaction. The diagram will describe the logical data flows
without detailing the movements of any physical items.
The DFD also gives insight into the data that is used in the
system. It does not show a sequence of steps. It shows only what the different
processes in a system are and what data flows between them. Preparing context
diagram is a preliminary step in creating a data flow diagram (DFD).
Based on context diagram, data flow diagrams identify the major
data flows within the system boundaries, the process and the data storage.
Levels of Data
Flow Diagram
The complexity of business system means that it is impossible to
represent the operations of any system by means of single data flow diagram. At
the top level, an overview of the different systems in any organization is
shown by way of context analysis diagram. When exploded into DFD, they are
represented by:
Level 0: System Input and
output
Level 1: Subsystem level data
flow – Functional Level
Level 2: File level detail
data flow
The input and output data were shown should be consistent from
one level to the next.
Level 0: System Input/output:
A
level-0 DFD describes the system-wide boundaries detailing inputs to and
outputs from the system and major processes. This diagram is similar to the
combined user-level context diagram.
Level 1: Subsystem level data
flow: A level-1 DFD describes the next level of detail within the
system detailing the data flows between subsystems, which make up the whole.
Level 2: File level detail
data flow: A level-2 DFD details the files to which the data is applied in
the system and from which data is obtained. Each individual process is shown in
detail.
Order Tracking System
Level 0
Level 1
Level 2
Entity
Relationship Diagrams (E-R Diagram)
Entity Relationship Diagrams (ERD) are graphic illustration used
to display object or events within a system and their relationships to one
another. E-R diagrams model data is much the same way as DFD's model processes
and data flows.
Purpose of ER Diagram
1.
Verify accuracy and thoroughness of data design, current and
new, with users.
2.
Organize and record organizational data entities, relationships
and scope through decomposition and layering.
3.
Enhance the overall communication between development project
team member’s system technicians, management and users with the use of graphic
models.
4.
Generally, simplify and bolster the creative data design
process.
·
Decision Tree
Decision Tree provide a graphic representation of decision logic
that helps non-computer people easy to understand. The principles for the
development of decision tree are relatively forward.
1.
Identify all conditions
2.
Find out values these conditions may take or assume
3.
List all possible outcomes
Decision Tree are graphical representations of the decision
table. These are also available and aid the construction of decision tables.
A decision tree helps to show the paths that are possible in a
decision following an action or decision by the user. A decision tree helps
prefer the easier-to-follow mapping of a complex design. This mapping should
show branch point forks, but not the details of the user dialogue.
Example:Decision trees help
designer visualize how the user will move through the design to reach the
desired location.
Decision Tables
Using decision tables, decision trees conditions and outcomes
are listed in the form of two-dimensional tables. A decision table, as compared
to a decision tree, checks all the possible combinations that might arise for
all conditions.
General Format of Decision
Tables
List of
conditions |
Columns
representing logical combinations of conditional value |
Lit of
outcomes |
Resulting
outcome for each set of conditions |
Decision table is a tabular method for describing the logic of
the decisions to be taken. Decision table accompanies the flowcharts defining
the possible contingencies that may be considered with the program and
appropriate course of action for each contingency.
Decision tables can be divided into four parts:
1….Condition-Stub:
It
consists of a list of all the conditions that are to be taken account of.
Condition entries that complete the condition statements. They are tabular
representation of the combination of the conditions that are to be satisfied,
for each of particular action, that is given a “Y” of “N” or ___x____’ mark is
placed to indicate whether a particular condition is to be considered or
ignored.
2….Action-Stub:
It
consists of all the possible actions that are to be taken.
3……Action-Entries:
Action
entries are entries that complete the action statements.
4……Data-Dictionaries:
Data
dictionary defines each term called data element, encountered during the
analysis and design of the new system. Data elements can describe files, data
flows or processes. For example, you want to print the vendor’s name and
address at the bottom of the cheque. The dictionary might define vendor’s name
and address as flows:
Vendor_name +
Street +
City +
State +
Phone +
Fax +
Email
This identification becomes a part of the data dictionary that
ultimately will list all key terms used to describe various data flows and
files.
Major Symbols:
The symbols used white preparing data dictionaries are:
= equivalent to
+ and
[] either/or
() optional entry
.