0% found this document useful (0 votes)
9 views30 pages

Software Process Model

The document outlines the software development process, focusing on the Software Development Life Cycle (SDLC), which includes stages such as system study, analysis, design, development, testing, implementation, and maintenance. It emphasizes the importance of SDLC in providing a structured approach to software development, ensuring quality, and facilitating effective project management. Additionally, it discusses various methods for requirement gathering, system design tools, and the significance of documentation in the software development process.

Uploaded by

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

Software Process Model

The document outlines the software development process, focusing on the Software Development Life Cycle (SDLC), which includes stages such as system study, analysis, design, development, testing, implementation, and maintenance. It emphasizes the importance of SDLC in providing a structured approach to software development, ensuring quality, and facilitating effective project management. Additionally, it discusses various methods for requirement gathering, system design tools, and the significance of documentation in the software development process.

Uploaded by

abelholicabby
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Process Model

After going through this unit, you will be able :


 Define information system and software project.
 Know about SDLC and its importance in software development
 Know about the key difference between system analyst and software Engineer.
 Know about various methods of requirement collections in SDLC.
 Know about various types of system design tools such as DFD, ERD, Decision table, Decision
tree, Use case etc.
 Know about various methods of system development
 Know about documentation and its importance.
260

Concept of Software Project


The word 'System' is derived from the Greek word 'Systema' which means 'an organized
relationship among components'. A collection of components or elements that work together to
perform a specific task is called system.
You must have heard different types of system even in your own body such as 'Skeleton
System', 'Nervous System', 'Muscular System' etc. in which different components are organized
in proper way so that they can function a specific task in our body.
Similarly, 'computerized information system' is an organized set of hardware, software and different
people to transform given data resources into meaningful and useful information for end users.
Software is a set of instructions, data or programs used to operate computers and execute
specific tasks.
A project is well-defined task, which is a collection of several operations done in order to
achieve a goal (for example, software development and delivery).Every project creates a unique
product or service.
A Project can be characterized as:
 Every project may have a unique and distinct goal.
 Project is not day-to-day operations.
 Project comes with a start time and end time.
 Project ends when its goal is achieved.
 Project needs sufficient resources in terms of time, manpower, finance, material and
knowledge-bank.
The term software project can be defined as the complete procedure of software development
from requirement gathering to testing and maintenance, carried out according to the execution
methodologies, in a specified period of time to achieve intended software product.

Concept of Software Development Process


A software development process is the process of creating a computer software product. It is a
systematic operation that includes designing, preparing the specifications, programming,
testing, bug fixing and documentation. These stages are also referred to as the software
development lifecycle.
The SDLC provides an international standard that software companies can use to build and
improve their computer programs. It offers a defined structure for development teams to
follow in the design, creation and maintenance of high-quality software. The aim of the IT
software development process is to build effective products within a defined budget and
timeline.

Approved by Curriculum Development Centre (CDC), Nepal


261

SDLC Life Cycle


Computerized information systems play very important roles in the modern society as it gives
us the right information at right time so that we can make right plan for future. All
organizations either small or big, private or public, academic institution or business enterprise
all need accurate and up to date information for their smooth running in such competitive
environment. They have to collect, analyze and process a large volume of data in order to get
the valuable information to make right decision for the organization.
Similar to other system, an information system too has a life cycle. SDLC stands for Software
Development Life Cycle which consists of a detailed plan describing how to develop, maintain,
replace and alter or enhance specific software. The life cycle defines a methodology for
improving the quality of software and the overall development process. Every phase of the
SDLC life Cycle has its own process and output that feed into the next phase.
Phases/Stages of SDLC:
 System Study
 System Analysis
 System Design
 System Coding
 System Testing
 System Implementation
 System maintenance and Reviews

Importance and the Necessity of SDLC


The purpose of SDLC is to specify a set of well-defined steps or phases, coupled with a set of
clear, measurable exit criteria, for solving a complex problem (such as developing an
information system). The system development life cycle (SDLC) is a set of steps that serves as
the basis for most system analysis and design methodologies.
SDLC acts as a memory aid by imposing discipline, thus reducing the risk that key details will
be overlooked. Communication is enhanced because the SDLC imposes a consistent set of
documentation standards. The steps in the SDLC enhance management control, providing a
framework for scheduling, budgeting, and project management. The tools associated with
SDLC make it easier to solve the problem. Finally, SDLC increases the possibility that a number
of errors are detected early.
The importance of SDLC can be list out as follows:
 It breaks down the entire life cycle of software development process which makes easier to
evaluate and debug programs
 It provides guideline to complete each activity systematically for quality system development
 It gives clear idea to developer and save time and cost
 It provides proper documentation so designer can set and use functions, modularity
 It allows to set primarily flexibility and contain a lot of innovation
Approved by Curriculum Development Centre (CDC), Nepal
262

Phases of SDLC
In manual system, it is very difficult to collect large volume of data, process them rapidly and
acquire specific information necessary for making the right decision. However, these are easily
possible in computerized information system. The current information system must be
consistent and up-to-date otherwise it has to be updated or replaced with new system.
The process of software development is not an easy task and does not get completed in a single
stage. Rather, it is a complex task which requires several stages involving many people who are
expert in different areas. These different stages as in life cycle are called SDLC. SDLC is a
systematic process of developing a software system. Generally, the SDLC consists of the
following stages in order:

System
Study
System
Maintenance
System
Analysis

System
Implementation System
Design

System System
Testing Coding

1. System Study
System study is the preliminary investigation or the first phase of system development life
cycle. This is the brief study about what actually the physical system is and provides the clear
picture of newly developing system. The initial system study involves the preparation of a
System proposal which lists the Problem Definition, Objectives of the Study, and Terms of
reference for Study, Constraints, Expected benefits of the new system, requirements. The system
proposal is prepared by the System Analyst (who studies the system).
In this stage, the development team studies the present system and defines the problems
accurately. They interact with the users and gathers information from different sources to
recognize the problems of the present system. After collecting the different information of an
organization, the system development team proposes the new system with its benefits.

Approved by Curriculum Development Centre (CDC), Nepal


263

Feasibility Study
After the development team proposes the new system, the feasibility study or survey is
performed in order to determine whether the new system will be feasible or not. The testing is
done on the basis of time, cost, technical and operational aspects. After the feasibility study is
completed, a report is made which is called 'feasibility survey report' and it is submitted to the
management for consideration.
Basically, feasibility study is done on the different aspects based on the system requirements.
Some of the widely used feasibility studies are as follows:
a. Time Feasibility / Schedule Feasibility: It is concerned with the time required for the
development of new system is feasible for the organization or not. For example, if the
organization needs the new system within 6 months and the time required for developing a
new system is more than 2 years, then the new system will not be feasible due to time factor.
b. Cost Feasibility: It concerns with the total cost for the development of new system and the
returns from the investment in a project. It determines whether the organization can afford
the total cost or not. Then it also determines whether it is worthwhile to invest the money
for new system or not.
c. Technical Feasibility: It is concerned with specifying different devices and software for
the new system. It determines the required devices, which is necessary for the
development of new system and also available or not. It searches for the current
technology, which includes hardware and software, are able to develop the proposed
system or not. If all the technical requirements for the new system can be fulfilled, then
the development of new system will be feasible.
d. Operational Feasibility: It is mainly related with human skill and political aspects. The
current staffs can work in the new system after training or not. If the whole staffs need very
long time and more cost to be trained in the new system, then the new system will not be
feasible. But generally the project will not be rejected simply because of operational feasibility.
e. Legal Feasibility: It is mainly focus to analyze any violation of government laws or not.
The rules and regulations may bind to develop the current system because of the illegal
activities. This feasibility includes foreign money transaction violation, illegal system
design, criminal activities on system etc.
f. Economic Feasibility: This feasibility study is performs whether the developing system is
economic during the operation time on the client side. Cost-benefit analysis is carried out
to analyze the economic feasibility. If operation cost, manpower cost and other costs are
within the limit then the new system is considered economically feasible.
g. Behavioral Feasibility: This feasibility study is related to the behavior of the user, person
or of the society. The main focus on this feasibility study is how the user response to the
new system. It is the behavioral study of the persons in the organization after the arrival
of the system. The new system may cause to lose the employment, how employee reacts
and other employee related behavior are studied on this feasibility study.

Approved by Curriculum Development Centre (CDC), Nepal


264

2. System Analysis
Systems analysis is a process of collecting accurate 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.
In this stage, the development team once again goes to the organization and studies very
minutely to collect all the drawbacks and details of information from the users, management
and data processing personnel. Then the system analyst performs the following activities:
 Gather, analyze, and validate the information.
 Define the requirements and prototypes for new system.
 Evaluate the alternatives and prioritize the requirements.
 Examine the information needs of end-user and enhances the system goal.
 A Software Requirement Specification (SRS) document, which specifies the software,
hardware, functional, and network requirements of the system, is prepared at the end of this
phase.

3. System Design
Based on the user requirements and the detailed analysis of a new system, the new system must
be designed. It is the most crucial phase in the development of a system. The logical system
design arrived at as a result of system analysis and is converted into physical system design. In
the design phase the SDLC process continues to move from the questions of the analysis phase
to the how .The logical design produced during the analysis is turned into a physical design - a
detailed description of what is needed to solve original problem. Input, output, databases,
forms, coding 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 the system design. These tools are: Flowchart,
Data flow diagram (DFD), Data dictionary, Structured English, Decision table and Decision tree.

Types of System Design


The types of system design are:
a. Logical Design: Theoretically designing of the system is called logical design. The system
could be designed on the basis of the requirements. The logical requirement of the system
is defined for the further designing of the proposed system. The main idea of this part is
just the creation of the logic part of the program.
b. Physical Design: The conversion of logical design into designing tools and techniques is
called physical design. It is more detail and complex jobs describing the solution of the
Approved by Curriculum Development Centre (CDC), Nepal
265

problem. Most of the time it is designed on paper based and sometimes it is designed on
computer system by using particular software. It uses algorithms, flowcharts, pseudo
codes, decision table, decision tree, E-R Diagram, Data Flow Diagram, context diagram.

4. System Development
After the design stage is complete, the final program specification and the file design are
handed over to the programmer. Then the programmers begin to develop the program by using
a suitable HLL. In this stage, the programmer has to choose suitable programming language so
that the program will be robust and it will be convenient to him. During this stage, the
programmer has to detect al the syntax and logical errors and debug them. This stage is
considered to be complete when the program can be compiled and executed.

5. System Testing
Once the program modules are ready, each of the program modules is tested independently as
per the specifications of the users and debugged. When the modules are bug free, they are
integrated as a single system and this system is tested entirely. If the entire system is bug free
and can fulfill the requirements, then it is ready to implement.

Methods of System Testing


There are two types of testing methods:
1. White Box Testing / Glass Box Testing: The testing is performed with viewing all internal
details are called white box testing. In white box testing, the internal source code of a
program is tested such as operators, expression, control statement, variables, constant
functions etc. Programmer involves doing this job. The testing is done at source level of the
software. This types of testing is time consuming and costly.
2. Black Box Testing/Functional Testing: The testing is performed without viewing all
internal details are called black box testing. Instead of testing the coding part of the
software, a program is tested to verify the desire outputs as per the given inputs. Different
sample data is used to verify this kind of testing. Any user or person with testing tables
can perform this testing. This type of testing is less time consuming and less costly.

Types of Software Testing


1. Unit Testing: Unit testing performed on each module or block of code during
development. Unit Testing is normally done by the programmer who writes the code.
2. Integration testing: Integration testing done before, during and after integration of a new
module into the main software package. This involves testing of each individual code
module. One piece of software can contain several modules which are often created by
several different programmers. It is crucial to test each module's effect on the entire
program model.

Approved by Curriculum Development Centre (CDC), Nepal


266

3. System testing: System testing done by a professional testing agent on the completed
software product before it is introduced to the market.
4. Acceptance testing: Acceptance testing of the product is done by the actual end users.

System Implementation
After the new system is ready, then it is implemented in the organization. Then the new system
becomes a part of the daily activities of an organization. During this stage, application is
installed or loaded on existing or new hardware and users are introduced to new system and
trained. Installation of the new system can be done in the following three ways.
1. Direct Implementation: In this type of implementation, the software is directly installed at
user's site by replacing the old system. It is brute one, if the problem persists on the new
system the use may faces different problems.
2. Parallel Implementation: In this type of implementation, both the old and new systems
are run in parallel for some time. After monitoring the new system for a reasonable period
of time, if it is performing well, then the new system is used by replacing the old one.
3. Phased Implementation: In this type of implementation, the system is installed module by
module. If one module works efficiently then only another module is installed otherwise
modification of first module is performed.

System Maintenance and Reviews


Maintenance: When the system is operating in an organization, users sometimes find problems
with how it works and often think of better way to perform its functions. When the time
changes, the requirements of the organization also get changes and the system can no longer
fulfill it. During maintenance, programmers make changes that users ask for and modify the
system to reflect and support changing business condition. These changes are necessary to keep
the system running and useful. The maintenance is not a separate phase but a repeated
correction of testing phase implements the needed changes.

Types of Maintenance
There are three types of maintenance, which is used to maintain systems:
1. Corrective Maintenance: It corrects the source code of the system for omitting errors. It is
mainly used to remove errors as corrective measures. The main aim of this maintenance is
to remove bugs for system. Hence, the corrective maintenance is the process of diagnosing
and correcting system after they occur.
2. Adaptive Maintenance: If the surrounding environment for the system is changed then
certain changes should be made. These types of changes in adaptation from rules and
regulations changed, policy of organization changed and from other factors is called
adaptive maintenance.

Approved by Curriculum Development Centre (CDC), Nepal


267

3. Perfective Maintenance: It makes the system perfect, up-to-date and improve the life of
the system. The maintenance is performed to make the system perfect is called perfective
maintenance.
4. Preventive Maintenance: It makes the system prevent form failure in future. The
preventive measurement is applied to the system. Its main concern activities are aimed on
increasing system maintainability and prevent problems in future.
Review: A software review is a process or meeting during which a software product is
examined by project personnel, managers, users, customers, user representatives or other
interested parties for comment or approval. In this context, software product means any
technical document or produced as a software development activity like designs, source code
and user documentation.
As a general principle, a technical document is produced showing the progresses and activities
involved in software development. The review process is conducted according to market plan,
contract signed and on the basis of requirement specifications. Researchers and practitioners
have shown the effectiveness of reviewing process in finding bugs and security issues related to
software.

System Analysts | Software Engineer


Both computer system engineers and computer systems analysts do work that is critical for
businesses and other organizations. However, they do different types of work and often work
in different industries. Computer systems engineers create new types of computer software,
and are usually employed by software publishers and electronic device manufacturers.
Computer system analysts make sure that computer systems work, and support IT departments
in a variety of industries. However there are some different responsibilities of system Analyst
and Software Engineer.
Computer system engineers, or systems software developers, work to develop new programs
that allow computers to function properly. Unlike applications software developers, systems
software developers don't spend their time inventing new games. Instead, they build the
operating systems that run computers, such as Windows and Mac OS. Systems software
developers also design the interface systems that allow users to interact with programs on the
computer. Of course, systems software developers don't only work with computers; they also
design systems for mobile phones and video game consoles.
However Computer systems analysts study the specific IT needs of the organization they work
for or are consulting for, and take steps to meet those needs either by restructuring or
reorganizing an organization's existing resources or by integrating new technology. In certain
cases, system analysts may also be involved in training employees how to use new
technologies. Some analysts specialize in certain areas of IT analysis. For example, programmer
analysts write code to ensure that computer systems work properly, and system Quality
Assurance (QA) analysts test an organization's system to search for possible weaknesses.
Approved by Curriculum Development Centre (CDC), Nepal
268

Responsibilities of System Analyst


Being the main person in the system development team, the system analyst has to complete
many responsibilities. The key responsibility of the system analyst is to coordinate the efforts of
all the members of the development team to effectively develop and operate computer based
information system. The major responsibilities of a system analyst are as follows:
1. Defining Requirements: Defining requirements means to know the reasons why the users
need the new information system. It is the most important and difficult duty of an analyst
is to understand the user's requirements. The system analyst may use different fact finding
techniques such as interview, questionnaire, filed visit, observation etc. in order to define
the requirements of the users.
2. Prioritizing Requirements: After the requirements of users have been identified, there is a
need to set priority among the requirements of various users. Even the new information
system may not fulfill all the requirements of all users at once. The system analyst can
prioritize the requirements by having common meeting with all the user sand arriving at a
consensus. The system analyst must be able to convince the users about the priority of
requirements.
3. Analysis and Evaluation: The system analyst has to find out the drawbacks as well as
strength of the current information system. S/he also has to identify and collect the
requirements of all the users for new information system. S/he has to analyze the working
method of the current information system in the organization and find out its drawbacks and
strength. On the basis of the collected information, the system analyst has to evaluate and find
the best features of the new information system which will fulfill the user's requirements. The
new information system also eliminates the drawbacks of the present system.
4. Solving Problems: System analyst is basically a problem solver as s/he is a team leader in
software development process. Being the team leader, s/he has to solve all the problems
that may occur during the software development process. The analyst must study the
problem in depth and suggest the most appropriate solutions to it.
5. Drawing up Functional Specification: The functional specification refers to the ways of
using and handling the new information system in the organization. It is the key duty of
system analyst is to obtain functional specifications of the system to be designed. The
specification must be non-technical so that even the users and managers understand it.
6. Designing System: Designing the new information system is another main duty of system
analyst. After specifications are accepted, the system analyst designs the system. Designing
includes two types: logical design and physical design. The design must be
understandable to the system implementer. The design must be modular and flexible so
that it can easily accommodate changes easily. The system analyst must know the latest
design also to assist implementer in his/her task.

Approved by Curriculum Development Centre (CDC), Nepal


269

7. Evaluating System: After the information system has been implemented in the
organization, the system analyst must critically evaluate it in order to find out its
drawbacks especially for a reasonable period of time. The system analyst must decide
when to do evaluation, how to do evaluation, and how to collect user's comments
regarding the working methods of the new information system.

Characteristics of System Analyst


The characteristics/ qualities/ attributes of system analyst are as follows:
1. Knowledge of organizations: A system analyst must have the sound knowledge of
‗working mechanism‘, ‗management structure‘ &‗Functional relationship among
departments, staffs for which the system should be developed. S/he should understand
the organizational and its functional structure, relationship among the departments, daily
operations, rules and regulation of the particular system.
2. Computer system/ Technical Knowledge: A system analyst must be familiar and well
trained in recent relevant areas of computing technologies and enough knowledge about
recently developed (updated) system to advice development team which addresses user‘s
need with higher level of efficiency.
3. Good inter-personal relation: A system analyst must be good listner, diplomat & able to
influence & to resolve conflicting, understand needs & motivates.S/he must be able to
resolve conflicting requirements.
4. Interpersonal Communication skills: Effective and efficient communication is vital to the
success of any team work and system. So, system analyst must be able to talk intelligently
with high level management, technical and other staffs and programmers and influence
them and change their mind and attitudes.
5. Analytical skill: A system analyst must be able to perceive the core problem & discard
duplicate data. S/he is required to find solution of problem using appropriate analytical tools
6. Breadth of knowledge: A system analyst should have knowledge about verious types of
peoples, their jobs, perception etc. to handle in team.
7. Character and Ethics: Ethics is personal character quality. Successful analyst must be
professional, resourceful, inventive and creative. A system analyst requires a strong
character and sense of ethics.
8. Problem Solving Skill: System is developed to solve the problems. The skills of defining
and analyzing the problems, considering, evaluating and selecting the alternatives is
known as problem solving skills.

Requirement collection Methods


Software development life cycle (SDLC) is the process used as the framework for software
development. Project managers and business organizations use the SDLC as a blueprint for
completing each step of the lifecycle for software development. Each step of the SDLC is called
a phase. The requirements gathering and analysis phase is the first phase of the SDLC.
Approved by Curriculum Development Centre (CDC), Nepal
270

Requirement Analysis, also known as Requirement Engineering, is the process of defining user
expectations for new software being built or modified. Various requirement collection methods
are as follows:
 Interviews: Interviews of stakeholders and users are critical to creating the great software.
Without understanding the goals and expectations of the users and stakeholders, we are
very unlikely to satisfy them. We also have to recognize the perspective of each interviewee,
so that, we can properly evaluate and address their inputs. Listening is the skill that helps a
great analyst to get more value from an interview than an average analyst.
 Questionnaires or surveys: Questionnaires, or surveys, allow an analyst to collect
information from many people in relatively short amount of time. This is especially helpful
when stakeholders are spread out geographically, or there are dozen to hundreds of
respondents whose input will be needed to help establish system requirements. When using
questionnaires, the questions should be focused and organized by a feature or project
objective. Questionnaires should be not be too long, to ensure that users will complete them.
When constructing the questionnaire, general guideline to determine the questions would
be to ask ―how, where, when, who, what, and why.
 User Observation: To get a better understanding of a user in their in current work
environment, the analyst may observe the user themselves. User observation is helpful in
assisting the analyst by getting a full grasp of how the user interacts with the system,
firsthand. When the objective is to improve a task, the analyst can observe the user and how
their surroundings affect their interaction with the system. User observation may also be
useful in validating data that had been previously collected.
 Analyzing Existing Documents: Reviewing the current process and documentation can
help the analyst understand the business, or system, and its current situation. Existing
documentation will provide the analyst the titles and names of stakeholders who are
involved with the system. This will help the analyst formulate questions for interviews or
questionnaires to ask of stakeholders, in order to gain additional requirements.
 Prototyping: Prototyping is a relatively modern technique for gathering requirements. In
this approach, Analyst gather preliminary requirements that he/she use to build an initial
version of the solution - a prototype and show this to the client, who then gives additional
requirements. Analyst changes the application and cycle around with the client again. This
repetitive process continues until the product meets the critical mass of business needs or for
an agreed number of iterations.

Concept of System Design


System design is the construction of a technical, computer based solution for the business
requirements identified during system analysis phase. During system design, the system
analyst converts the description of the recommended alternative solution into logical and then
physical system specification. The different tools used for system design are as follows:
Approved by Curriculum Development Centre (CDC), Nepal
271

Data Flow Diagram


The diagram that allows you to model how data flow through an information system, the
relationships among the data flows, and how data come to be stored at specific location is
known as data flow diagram. It also shows the process that changes or transforms data. Because
DFDs concentrate on the movement of data between processes, these diagrams are also called
process models.
As the name indicates, DFD is a graphical tool that allows analysts to depict the flow of data in
an information system. DFD is a picture of the movement of data between external entities and
the processes and data stores within a system.
DFD can be categorized in the following forms:
1. Context Diagram: The diagram that shows the scope of the system, indicating which
elements are inside and which are outside the system is known as context diagram. A
single process represents the whole system in context diagram. It is an overview of an
organizational system that shows the system boundaries, external entities that interact
with the system and the major information flows between the entities and the system. It is
also called zero level DFD.

Book Record College Requests Book


Book Record Library Student
Recieves Book
System

Library
Staffs

2. First Level DFD: A data flow diagram that represents a system's major processes, data
flows, and data stores at a high level of details is called First Level DFD. The First Level
DFD is jut further expansion of Context Diagram. The external entities and external
entities are further classified in between data flows of DFD. Hence, it is further refinement
of the Context Diagram.
The various symbols used in DFD are as follows:
There are two different standard sets of data flow diagram symbols. Each set consists of four
symbols that represent the same things: data flows, data stores, processes, and sources/sinks
(external entities).

Approved by Curriculum Development Centre (CDC), Nepal


272

Symbols by DeMarco& Yourdon Purpose Symbols by Gane&Sarwon

Process

Data store

Source/Sink

Data Flow

The key terms used in DFD construction are described as follows:


1. Process: It is the work or actions performed on data so that they are transformed, stored or
distributed. During process, the input data is acted upon by various instructions whose
result is transformed data. The transformed data may be stored or distributed after
finishing processing.
2. Data Store: A data store is data at rest, which may represent one of many different
physical locations for data for example, a file folder, one or more computer bases files etc.
They are referenced by the process in the system. A data store might contain data about
customers, students, customer orders etc.
3. Source / Sink: It refers to the origin and /or destination of data. Sometimes they are
referred as external entities as they are outside the system. These external entities may be
people, programs, organization or other entities that interact with the system. Once
processed, data or information leave the system and go to some other place. The terms
source and sink are interchanged with origin and destination respectively.
4. Data Flow: In information system, data should move from one place to another in order to
be processed for different purpose. It may be understood as data in motion, moving from
one place in a system to another. Data moves in a specific direction from a point of origin
to point of destination in the form of document, letter, telephone call or any other medium.

Rules for Drawing Data Flow Diagram


1. For process
 No process can have only outputs.
 No process can have only inputs.
 A process has a verb phrase label.

Approved by Curriculum Development Centre (CDC), Nepal


273

2. For data store


 Data cannot move directly from one data store to another data store. Data must be
moved through a process.
 Data cannot move directly from an outside source to data store. Data must be moved
by a process that receives data from the source and places the data into the data store.
 Data cannot move directly to an outside sink from a data store. Data must be moved by
a process.
 A data store has a noun phrase label.
3. For source/sink
 Data cannot move directly from a source to a sink. It must be moved by a process.
 A source/sink has a noun phrase label.
4. For data flow
 A data flow has only one direction of flow between symbols. It may flow in both
directions between a process and a data store to show a read operation before an
update.
 A data flow cannot go directly back to the same process it leaves. There must be at least
one other process which handles the data flow, produces some other data flow and
returns the original data flow to the beginning process.
 A data flow to a data store means update (delete or change).
 A data flow from a data store means retrieve or use.
 A data flow has a noun phrase label.

E-R Diagram
Entity Relationship data model is a technique for detailed and logical representation of the
system's data. E-R Diagram is a graphical representation of ER data model. ERD shows the data
entities, their attributes and relationship among the entities used in the system.
1. Entities: In information system, an entity is a physical or conceptual object like person,
place, event, job etc. about which the organization needs to store data. One entity is related
to another entity. For example, in a college, student and teacher are two different types of
entities but they are linked with each other. Example: student, teacher, school, vehicle etc.
It is denoted by following shape in ER Diagram

<Entity Name>

2. Attribute: An attribute is a descriptive property or characteristics of an entity. It is also


referred by 'element', 'property' or 'field'. Example: attributes of student entity may be Roll
no., Name, Address, Photo, Date of birth, Gender etc.
Approved by Curriculum Development Centre (CDC), Nepal
274

Attribute Key Valued Attribute

3. Relationship: A relationship is a natural business link that exists between one or more
entities. The relationship may represent an event that links the entities.

<Name>

An ERD for 'Customer' and 'Goods' entity

Customer Purchases Goods

System Flow Chart


Flowchart is a pictorial representation of an algorithm to solve a particular problem in a
computer system. A set of symbols are used for graphical map of control or data path
throughout the program. These symbols such as squares, diamonds, circles, rectangles
parallelogram and other shapes are used to represent various operations. These symbols are
connected by a line with arrowhead to indicate the flow of data or control from one point to
another. Flowcharts are used to show the control flow within program execution. Generally,
flowcharts are divided into two types: System flowchart and program flowchart.
System flowchart is a type of flowchart that shows the flow of data through a system. This type
of flowchart is used to construct working system having memory, storage, input, output and
some portion for documentation. This process is the logical design of the working system
module. Hence, it explains how a system works by using a diagram.

Approved by Curriculum Development Centre (CDC), Nepal


275

Some symbols used to draw system flow chart are as follows:


You can find the details about the shapes used in flow chart in Microsoft Word Insert
TabShapes (Under Flowchart Topic) in Office 2007.
Symbols Purpose

Input/Output

Process

File stored on tape

Storage Disk

File stored on disk

Document

Decision Table
Decision table is a technique to represent logic in program development in computer. When
several different conditions are involved for specifying complex policies and decision making
rules, then decision table becomes very handy.
Decision table is a tabular representation of the logic of a decision, which specifies the possible
conditions for the decision and the resulting actions. Decision table uses a standard format and
handle combinations of conditions in a very concise manner. There are 3 parts in the decision
table: Condition Stub, Action Stub and Rules.
Condition Stub: This part of table contains the various conditions that apply in the situation the
table is modeling.
Action Stub: This part of table lists the actions that result for a given set of conditions.

Approved by Curriculum Development Centre (CDC), Nepal


276

Rules: This part of table specifies which actions are to be followed for a given set of conditions.
Process Name Rules

Conditions

Actions

An example of decision tree to show the calculation of discount policy in a departmental store
as follows:
 If the customer is 'Regular' and purchase amount>=1000, then 10% discount.
 If the customer is 'Regular' and purchase amount<1000, then 5% discount.
 If the customer is not 'Regular' and purchase amount>=1000, then 5% discount.
 If the customer is not 'Regular' and purchase amount<1000, then no (0%) discount.
Process Name Rules
Is Customer Regular? Y Y N N
Conditions Is Purchase amount>=1000 Y N Y N
10% discount X - - -
Actions 5% discount - X X -
No discount - - - X

Decision Tree
Decision tree is also a technique to represent condition and actions in a diagrammatic form in
computer. Thus, it shows which conditions to consider first and the relationship between each
condition and permissible subsequent action to be followed. The diagram resembles the
branches on a tree. Hence, it is named decision tree. The root of the tree is the starting point of
the decision sequence and progression from the left to right along a particular branch is the
result of making a series of decisions.
An example of decision tree to show the calculation of discount policy in a departmental store
as follows:
 If the customer is 'Regular' and purchase amount>=1000, then 10% discount.
 If the customer is 'Regular' and purchase amount<1000, then 5% discount.
 If the customer is not 'Regular' and purchase amount>=1000, then 5% discount.
 If the customer is not 'Regular' and purchase amount<1000, then no (0%) discount.

Approved by Curriculum Development Centre (CDC), Nepal


277

Calculate 10% discount


Yes
Is purchase
Amount
> = 1000
No
Yes Calculate 5% discount

Is Customer
Regular Calculate 5% discount
No Yes
Is purchase
Amount
> = 1000
No
Calculate No discount

UML
Object Oriented Analysis and Design is a new approach in software development and it is
becoming more popular because of its ability to thoroughly represent complex relationships as
well as to represent data and data processing with consistent notation. There are wide varieties
of techniques such as Use Cases, Class Diagrams, State Diagrams and Sequence Diagram that
system analyst can use for object oriented analysis and design. All these techniques and
associated notations are incorporated into a standard object-oriented language called Unified
Modeling Language (UML). Actually, it is the outcome of the efforts of 3 leading computer
experts, Grady Booch, Ivar Jacobson and James Rumbaugh who have defined the object
oriented modeling language.
Thus, UML is a language for specifying, visualizing, and constructing the artifacts of software
system, as well as for business modeling. The UML notation is useful for graphically depicting
object-oriented analysis and design models. It not only allows you to specify the requirements
of a system and capture the design decisions, but is also promotes communication among key
persons involved in the development effort.

Use Case
Use case is a technique that is incorporated in UML. A use case model is developed in the
analysis phase of the object-oriented system development life cycle. It helps the analyst to
capture the functional requirements of a system. Thus, it focuses on what the new information
system should do rather than how it does. It is done in the early stage of system development to
help developers to get a clear understanding of the functional requirements of the new
information system without worrying about how these requirements will be implemented.
During the requirement analysis stage, the analyst wits with the intended users of the new
information system and makes a thorough analysis of what function they desire in the new
information system and all these expected functions are represented as use cases.

Approved by Curriculum Development Centre (CDC), Nepal


278

It consists of actors and actions. An actor is an external entity that interacts with the system. It is
someone or something that exchanges information with the system. An action represents a
sequence of related tasks initiated by an actor to accomplish a specific goal. It is specific way of
using the system.
The diagram that depicts the use case and actors for a system is called use case diagram.

Order Food

Service Person
Customer

Prepare Bill

Bill Offices
Pay Bill

SOFTWARE Quality
Quality software refers to software which is reasonably bug or defect free, is delivered in time
and within the specified budget, meets the requirements and/or expectations, and is
maintainable. The quality of software can be defined as the ability of the software to function as
per user requirement. Software quality is a field of study and practice that describes the
desirable attributes of software products.

Software Quality Include


 Good design: It‘s always important to have a good and beautiful design to satisfy users.
 Reliability: It should be able to perform the functionality perfectly without issues
 Durability: Durability means the ability of the software to work without any issue for a long
period of time.
 Consistency: Software should be able to perform consistently over platform and devices
 Maintainability: Bugs associated with any software should be able to capture and fix
quickly and news tasks and enhancement must be added without any trouble
 Security: Poor coding and architectural weaknesses often lead to software vulnerabilities.
Data must be protected against unauthorized access.
 Performance: Performance efficiency refers to an application‘s use of resources and how that
affects its scalability, customer satisfaction, and response times
 Portability: Software must be able to work in various environments. The software should be
possible to continue using the same basic software in different situations.

Approved by Curriculum Development Centre (CDC), Nepal


279

Software Development Model


A software development methodology/model or system development methodology/model in
software engineering is a framework that is used to structure, plan and control the process of
developing an information system. The different types of most popular system development
model are as follows:

Waterfall Model
The waterfall model is the basis for most systems analysis and design methodologies as it the
simplest and the most popular model of SDLC. It is called the waterfall because the model
visually suggests work cascading from step to step like a series of waterfalls. It is a sequential
software development process, in which progress is seen as flowing steadily downwards (like a
waterfall), through the following phases in order:

Problem Definition

Analysis

Feasibility Study

Design

Development

Testing

Maintence

Implementation

In this model, the stages of SDLC are organized in a linear order. The new stage of SDLC begins
only after the completion of the previous stage. This model is most suitable for doing routine
types of job in program in which all the problems are already known. The documentation is
done after the completion of every stage.
Due to its linear order, some people argue that it is a bad idea to follow waterfall model in
practice. This is mainly because of their belief that it is impossible for any non-trivial project to
get one phase of a software product's lifecycle perfected, before moving on to the next phases.
The fundamental processes of waterfall model are as follows:
1. Requirements analysis and definition: It is the first stage of waterfall model. In this stage,
the developer should identify the actual requirements of the given problem.

Approved by Curriculum Development Centre (CDC), Nepal


280

2. System design: I n this stage the systems design process partitions the requirements to
either hardware or software systems.
3. Implementation and unit system: During this stage, the system design is realized and
tested as a complete system to ensure that the software requirements have been met.
4. Operation and maintenance: I n this stage, the system is installed to the desire location.
The maintenance involves correcting errors which were not discovered in earlier stages of
the life cycle, improving the implementation of system units and enhancing the system's
service as new requirements are discovered.

Advantages of Waterfall Model


This model is simple and easy to understand and use.
 Simple to use and understand
 It is easy to manage due to the rigidity of the model –each phase has specific deliverables
and a review process.
 In this model phases are processed and completed one at a time .Phases do not overlap.
 Waterfall model 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 .

Prototype Model
Designing and building a scaled-down but functional version of a desired system is known as
prototyping. A prototyping can be built with any computer language or development tools to
simplify the process. Prototyping is an iterative process of system development in which
requirements are converted to a working system that is continually revised through close work
between the system analyst and users.
Software prototyping is the process of creating sample versions of the software program. The
creation of a working model of a new computer system or program for testing and refinement is
called prototyping. It is used to develop new system and software. This model is much
suitable for the development of such new system where there is no clear idea of the
requirements, inputs and outputs. Instead of developing a full and complete system, a small
prototype (sample) is developed at first. This prototype is discussed with the clients and after
getting their feedbacks, the complete system is developed later.
Approved by Curriculum Development Centre (CDC), Nepal
281

Initial Requirements
Identify Problems Develop Prototype

New Requirements

Problems
Implement & Use Revise & Enhance
Prototype Prototype
Next Version

Nowadays, prototype can be developed with some 4GL, with query and screen and report
design tools of a database management system and with tools called Computer Aided Software
Engineering (CASE) tools.

Advantages of Prototyping
 Communications between the systems analyst and user are improved .

 The expert system can do a better job of determining the user's needs.
 The user plays a more active role in system development.
 The expert and the user spend less time and effort in developing the system.
 Implementation is much easier because the user knows what to expect.
 A system is developed through operational prototyping is capable of easy adaptation.

Disadvantages of Prototyping
 Because of the iterative nature of prototyping, there is no definite deliverable or competition
deadline.

 Code inefficiencies may be a drawback in terms of functionality.


 The computer-human interface provided by certain prototyping tools may not reflect good
design techniques.

Agile Model
"Agile process model" refers to a software development approach based on iterative
development. This method break tasks into smaller iterations, or parts do not directly involve
long term planning. The project scope and requirements are laid down at the beginning of the
development process. Plans regarding the number of iterations, the duration and the scope of
each iteration are clearly defined in advance.
Each iteration is considered as a short time "frame" which typically lasts from one to four weeks.
The division of the entire project into smaller parts helps to minimize the project risk and to

Approved by Curriculum Development Centre (CDC), Nepal


282

reduce the overall project delivery time requirements. Each and every iteration involves a team
working through a full software development life cycle including planning, requirements
analysis, design, coding, and testing before a working product is demonstrated to the client.

Phases of Agile Model


Following are the phases in the agile model are as follows:
 Requirements gathering
 Design the requirements
 Construction/ iteration
 Testing/ Quality assurance
 Deployment
 Feedback
1. Requirements gathering: In this phase, you must define the requirements. You should
explain business opportunities and plan the time and effort needed to build the project.
Based on this information, you can evaluate technical and economic feasibility.
2. Design the requirements: When you have identified the project, work with stakeholders
to define requirements. You can use the user flow diagram or the high-level UML diagram
to show the work of new features and show how it will apply to your existing system.
3. Construction/ iteration: When the team defines the requirements, the work begins.
Designers and developers start working on their project, which aims to deploy a working
product. The product will undergo various stages of improvement, so it includes simple,
minimal functionality.
4. Testing: In this phase, the Quality Assurance team examines the product's performance
and looks for the bug.
5. Deployment: In this phase, the team issues a product for the user's work environment.
6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.

Approved by Curriculum Development Centre (CDC), Nepal


283

Advantages of Agile Model


 Frequent Delivery
 Face-to-Face Communication with clients.
 Efficient design and fulfils the business requirement.
 Anytime changes are acceptable.
 It reduces total development time.

Disadvantages of Agile Model


 Not suitable for handling complex dependencies.
 Depends heavily on customer interaction, so if customer is not clear, team can be driven in
the wrong direction.
 Transfer of technology to new team members may be quite challenging due to lack of
documentation.

Documentation and its Importance


As we know that software development process is not an easy task. Rather it is very complex
and time consuming process, it involves many persons who are expert in different areas and it
goes through the different stages before the final product is delivered to the user.
Documentation plays very important roles in software development process and it provides the
basic guide lines for the modification and enhancement of the software in future.
Similarly when the task of one stage is completed, then team members involved in that stage
hand over the documentation to the next team members who are involved in another stage so
that they can communicate well about the stages of the system.
Documentation may be defined as the process of communicating about the system. It is one of
the most important parts of software development. It explains the system. It helps to those who
use and maintain software so that it becomes easy to extend, re-design and debug.
Documentation is carried out at every state as a part of SDLC. The different tools used in
documentation are flow chart, in line comments, data flow diagram, entity relation diagram,
class/object diagram etc.
Documentation is a process to help users of software and other people to use and interact with
system. Documentation becomes part of each step of system development throughout the process
of system development. Software documentation or source code documentation is written text
that accompanies computer software. It either explains how it operates or how to use it.
Documentation is an important part of software engineering. Document communicates the details
about the system targeted at different audience. It explains the system. Hence documentation can
be defined as a supporting activity to record information produced by a SDLC process.
Documentation refers to keeping records of all project information in the system development
process. The information includes any models of the system components, detailed description
of these components as well as information such as the organizational structure and user

Approved by Curriculum Development Centre (CDC), Nepal


284

responsibilities within this structure. In some systems, it can include the program themselves.
The different types of documentation techniques are printed manuals, user manuals or guides,
reference manuals, technical reference guides, installation guides, configuration guides,
administration guides, online documentation and help system etc.
Similarly documentation plays very key roles for the end user who uses the program for doing
the different types of task in their daily life situation as when the end user wants to know more
about the system, then the documentation come in use.
Documentation is needed because of the following reasons.
 It is a means for transfer of knowledge and details about description of the system.
 To help corporate audits and other requirements of the organization.
 It is needed for IT infrastructure management and maintenance.
 It is needed for migration to a new software platform.
The types of documentation are:
 Program manual: It is written by the system programmer during development process. It is
written in the line of source code within program. It is very useful for the program
modification and maintenance of the system. These types of documentation are not visible
for the general users.
 System manual: System manual is a physical description of a system, device or process. This
technical description is used by expert users and designers as guidelines to maintain and
modify various elements of the system. These descriptions are all intended for experts, who
must make informed decisions about the installation, capabilities, modifications, and
applications of the software.

Approved by Curriculum Development Centre (CDC), Nepal


285

 User manual: User documentation includes the product guidelines addressed to the general
user who needs to know basic requirements for getting the best use of software system. User
documentation includes the manuals for software product use.

Points to Remember
 Software is a set of instructions, data or programs used to operate computers and execute
specific tasks.
 A software development process is the process of creating a computer software product.
 SDLC provides an international standard that software companies can use to build and
improve their computer programs.
 SDLC has seven different stages.
 Feasibility study is performed in order to determine whether the new system will be feasible
or not.
 DFD is a graphical tool that allows analysts to depict the flow of data in an information
system.
 A software development methodology in software engineering is a framework that is used
to structure, plan and control the process of developing an information system.

Approved by Curriculum Development Centre (CDC), Nepal


286

 Multiple Choice Questions


1. Which of the following are valid step in SDLC 8. Feasibility study is carried out by
framework? a. managers of the organization
a. Requirement Gathering
b. system analyst in consultation with managers
b. System Analysis
c. Software Design of the organization
d. All of the above c. users of the proposed system
2. The goal of requirement engineering is to develop d. systems designers in consultation with the
and maintain sophisticated and descriptive prospective users of the system
________ document. 9. Final specifications are drawn up by
a. Feasibility Study a. system analyst in consultation with the
b. Requirement Gathering management of the organization
c. Software Requirement Validation b. the managers of user organization
d. System Requirements Specification c. system analyst in consultation with
3. It is the process in which developers discuss with programmers
the client and end users and know their d. system designers along with users
expectations from the software. 10. The final specifications are arrived at:
a. Requirements gathering a. after feasibility study
b. Organizing Requirements b. during feasibility study
c. Negotiation & discussion c. just before implementation phase
d. Documentation d . when the system is being designed
4. It is the process in which developers discuss with 11. System design is carried out:
the client and end users and know their a. as soon as system requirements are
expectations from the software. determined
a. Requirements gathering b. whenever a system analyst feels it is urgent
b. Organizing Requirements c. after final system specifications are approved
c. Negotiation & discussion by the organization
d. Documentation d. whenever the user management feels it should
be done
5. Which one is not considered during Technical
Feasibility? 12. The primary objective of system design is to
a. Expandability a. design the programs, databases and test plan
b. Existence of technology b. design only user interfaces
c. Suitability of technology c. implement the system
d. Human resource to use the echnology d. find out how the system will perform

6. Which of the following is an example of Black Box 13. The primary objective of system implementation is
and Functional Processing? a. to train users to operate the system
a. First Generation Language b. to implement designed system using computers
b. Second Generation Language c. write programs, create databases and test with
c. Third Generation Language live data
d. Fourth Generation Language d. both a and c
7. System study involves 14. During system implementation the following are done
a. study of an existing system a. programs are written and tested with
operational data
b. documenting the existing system
b. user documentation is created and users
c. identifying current deficiencies and establishing trained
new goals c. the system is tested with operational data
d. All of the above d. All of the above

Approved by Curriculum Development Centre (CDC), Nepal


287

15. System evaluation is carried out 22. Among the attributes of a systems analyst the
a. after the system has been operational for a following are most important
reasonable time a. knowledge of computer systems and currently
b. during system implementation available hardware
c. whenever managers of user organization want b. good interpersonal relations
it c. broad knowledge about various organizations
d. whenever operational staff want it d. All of the above
16. Systems are modified whenever 23. Changes made periodically to a system, after its
a. user’s requirements change implementation, is known as system
b. new computers are introduced in the market a. Analysis b. design
c. new software tools become available in the c. development d. maintenance
market 24. During what phase, the requirement analysis is
d. other similar organization modify these system performed?
17. System analysts have to interact with a. system design phase
a. managers of organizations b. system development phase
b. users in the organization c. system analysis phase
c. programming team d. system investigation phase
d. all of the above 25. A feasibility study
18. The primary responsibility of a systems analyst is to a. includes a statement of the problems
a. specify an information system which meets the b. considers a single solutions
requirements of an organization c. both (a) and (b)
b. write programs to meet specifications d. a list of alternative solution considered
c. maintain the system 26. The make-or-buy decision is associated with the
d. meet managers of the organization regularly ____________ step in the SDLC.
19. The responsibilities of a system analyst include a. Problem/Opportunity Identification
a. defining and prioritizing information requirement b. Design
of an organization c. Analysis
b. gathering data, facts and opinions of users in d. Development and Documentation
an organization 27. Actual programming of software code is done
c. drawing up specifications of the system for an during the _________ step in the SDLC.
organization a. Maintenance and Evaluation
d. all of the above b. Design
20. The most important attribute of a systems analyst is c. Analysis
a. excellent programming skills d. Development and Documentation
b. very good hardware designing skills 28. The main ingredient of the report documenting the
c. very good technical management skills ……………… is the cost benefit analysis.
d. very good writing skills a. System Analysis b. Feasibility Study
21. Among the attributes of a good systems analyst the c. System Analyst d. System Design
following are essential Answer Key
a. knowledge of organization 1.d 2.d 3.a 4.b 5.d 6.d 7.d 8.b 9.a 10.a
11.c 12.a 13.d 14.d 15.a 16.a 17.d 18.a 19.d 20.c
b. analytical mind
21.d 22.d 23.d 24.c 25.a 26.b 27.d 28.b
c. ability to communicate orally
d. all of the above

Approved by Curriculum Development Centre (CDC), Nepal


288

 Exercise
1. Define the term 'Information System‘ and ‗Software Project‘.
2. What is SDLC? Why is it important in system development?
3. What is the difference between system Analyst and Software Engineer?
4. What are the different methods of Requirements Collection in software development?Explain.
5. List out the different phases of SDLC. Explain each of them.
6. What are the different models of system development? Explain them.
7. List out the different phases of SDLC. Explain each of them.
8. What are the different tools used in system design? Describe each of them with suitable
example.
9. What is feasibility study? Explain the different levels of feasibility study.
10. Define program logic. Explain different types of program logic tools.
11. What is documentation? Why is it important?
12. What are documentation techniques? Explain with examples.
13. What is feasibility study? Why feasibility study is important in system analysis phase? Explain.
14. What is system analysis? What are the major objectives of system analyst? Explain.
15. Explain about the different testing techniques during the system development.
16. Describe the Agile model to explain the SDLC with advantages and disadvantages.
17. Explain the Prototype model for SDLC with advantages and disadvantages.
18. Explain the concept of system design with different tools.
19. Write short notes on:
a. Decision Support System (DSS)
b. Waterfall Model
c. System Analyst
d. Software engineer
e. DFD
f. ERD
g. Use Case
h. UML

Project Work
1. Create a Data Flow Diagram, ER Diagram and Use case diagram for a project- Book Store
Management system
2. Visit to any Software company near you and find out among the different software project
model which model is used most of the time and why?

Approved by Curriculum Development Centre (CDC), Nepal

You might also like