Software Process Model
Software Process Model
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
Process
Data store
Source/Sink
Data Flow
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>
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>
Input/Output
Process
Storage 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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
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?