You are on page 1of 12

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) is a process used by the


software industry to design, develop and test high quality software. The
SDLC aims to produce a high-quality software that meets or exceeds
customer expectations, reaches completion within times, cost estimates
and less resources.

System Development Life Cycle (SDLC)

1. System Study: This stage is the fundamental process of understanding the


importance and need of information system. This is a brief investigation of
the system under consideration and gives a clear picture of what actually
the physical system is? The initial study involves preparation of a system
proposal which lists the problem definition, objectives of the study,
constraints, expected benefits of the new system, etc in the light of user
requirements. Development team studies the current system, interact with
users and identifies drawbacks and strength of current system and propose
a new system along with its benefits. The management may accept the proposal
and the cycle proceeds to the next stage. The management may also reject the
proposal or request some modifications in the proposal.

2. Analysis: System analysis is a problem solving technique that sub-divides a


system into its components pieces to study how those components parts
work and how to complete their function. In other word, system analysis is
the process of studying a procedure or process in order to identify
functional and non-functional requirement. In this stage, collection of fact
data, understanding the process, indentification of problems and
recommendation of feasible suggestions for improving system are
undertaken. System analyst has to interact with management level
personnel or user to know the requirement and achieve logical and correct
perception of the system.

3. Feasibility study: Feasibility is the measure of how beneficial or practical


the development of an information system will be for an organization.
Feasibility study is the process by which feasibility of the system is
measured. the feasibility study or survey is done in order to determine
whether the new system will be feasible or not on the basis of time, cost,
technical and operational, legal and behavioural aspects. Finally a feasibility
survey report is prepared and submitted to management for consideration.

4. Design and coding: System design is the process of defining the elements
of a system such as architecture, modules and components that satisfy the
specified requirements by using different designing tools. In this stage, it
determine how the system will operate in terms of hardware, software and
network infrastructure. A number of technical, organizational and
managerial considerations, along with user preferences and resources
constraint (limitation) should be taken into considerations before designing
a system. In this stage, each requirement is analyzed and determines the
way to convert system requirements into system features. The programming
code is generated by following coding guidelines defined by their
organization and programming tools like compilers, interpreters, debuggers,
etc are used to generate the code. Different high level programming
languages such as C, C++, Pascal, Java, etc are used for coding.

5. Testing: System testing is the process of executing a program under positive


or negative conditions by manual or automated means to find out and remove
errors in the system. It checks for specification, functionality and
performance of system. System testing is necessary to check whether users
needs are satisfied or not. Effective system testing delivers quality software
products satisfying user's requirements, needs and expectations. System
testing include input, output, processing, database, etc. We can test the
newly developed system in two ways. They are:

a. White box testing: In white box testing method, internal working of the
system, code are visible. The tester uses programming knowledge to
examine outputs. In this method, tester can test cases that guaranteed
that every individual part in a program has been exercised(executed) at
least once. This can be done by an expert who has good programming
skills.

b. Black box testing: In black box testing, internal working of the system are
hidden. The tester is only concerned with the outcomes from the system
when some specific inputs are given. This is user-oriented to find
whether system functions according to the requirement of user or not.
Good knowledge about the subject matter can make a black box testing.

6. Implementation: First system is tested to make sure it performs as the


requirement of user or manager, then installation of the system is done and
collects the lacks. In this stage, user start using the system.

Implementation of software can be done in three ways.They are as follows:

a.Direct implementation:When an old system was removed completly and


replaced by a new system then it is known as direct implementation.Direct
implementation takes less time and effort as new system is completely
implementated.The main drawbacks is if new system fails there is no
backup systyem so data can be loss.

b.Parallel implementation: Parallel implementation is the way of


implementating a new system along with existing system until the new
system is proved to be reliable, then old system will be replaced by new
system. During the implementation of new system, new system and existing
system run side by side to input same data ,perform the same processess,
compare their output and prove the reliablity of the new system. In parallel
implementation if new system fails old system works as a backup. The main
drawbacks is entering data into two system and running two system
together takes alot of extra time and effort.

c.Phased implementation: In phase implementation, new system is


gradually(step by step) replaced the old system until new system has
completely implemented. In phase implementation,training to the user can
be given in stages and allow users to gradually get used to the new system.

7. Maintenance: After bringing the system into practice, the users may face
various difficulties. This stage ensures that it continues to meet the
increasing and changing needs of users through system modification as and
when required. Maintenance is the key to continuing to drive the maximum
benefits from a system.

Feasibility study:
Feasibility is the measure of how beneficial or practical the development of an information system
will be for an organization. Feasibility study is the process by which feasibility of the system is
measured. the feasibility study or survey is done in order to determine whether the new system will
be feasible or not on the basis of time, cost, technical and operational, legal and behavioural
aspects. Finally a feasibility survey report is prepared and submitted to management for
consideration.
Different levels of feasibility study areTEBLOS which are describe below:
i. Technical Feasibility: This study determines whether the proposed system can be developed
and implement using existing technology. It determines the devices necessary for the new
system and finds whether all the devices are available or not. This study also determines
hardware, software and network requirements and also determine whether the organization can
afford all those technical requirements to implement new developing system.
iii. Economic feasibility: This study evaluates the economic and financial aspects of the project
that whether an organization can afford the cost of the system or not. It also find worth of the
system for investing money. Cost-benefit analysis is carried out to find the new system is
economically feasible or not.
vi. Behavioral feasibility: Behavioral feasibility study behavior of user, person or surroundings on
the enhancement of new system. It study how they respond to the new system and how can they
adopt the new system or how to make them to adopt the new system.
iv. Legal feasibility: Legal feasibility evaluates the proposed system conflicts with legal
requirements. It determines whether the system is feasible according the law of that location. It
also determines the legal issues such as trademark, copyright, ownership, etc.
(source code duplication, IT and cyber law policy hindrance)
ii. Operational Feasibility: It determines whether the system is feasible (suitable) with relate to
human skill and social aspects. It studies whether the user can operate the new system 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.
v. Schedule/Time feasibility: This study addresses the time to complete the project with available
resources and additional resources. It finds whether the time will be feasible for the
organization. For example: if an organization needs a new system within 1 month but it takes
more than 1 year, then new system will not be feasible on the basis of time.

System Analyst
System analyst is a person who is responsible for analyzing, designing and implementing of the
business procedure to the computer. The system analyst studies the problems and needs of an
organization determining and solving business problem using computer technology. System analyst
helps an organization to realize the maximum benefit from its investment in equipment, person and
business processes.
The major roles of system analyst are:
i. Defining requirement: The most important and difficult task of an analyst is to understand
user’s requirements. The system analyst has to communicate with users and find out
information they use in current system and how they use it and then asked what information
they feel they lack. The analyst has to determine how such information can be generated.
ii. Prioritizing requirement by agreement: In any organization, there are many users and every
user has some special requirements. It is not possible to satisfy everyone due to limited
computing capacity or lack of manpower. So, system analyst must be diplomatic and able to
convince all users about the priority of requirement.
iii. Analysis and evaluation: The system analyst analyzes the working system of current
information system in the organization and collects the facts and opinions. On the basis of facts
and opinions, system analyst has to find the best characteristics of the new or modified system
that will meet the user’s requirement.
iv. Solving problem: System analyst has to study the problem in depth and suggest alternate
solution to the management with relative's difficulties while implementing each of the
alternatives and benefits so that user can choose best alternatives.
v. Drawing up functional specifications: System analyst has to obtain the functional and
procedural specifications for the system to be designed. The specifications must be in non-
technical so that user and managers can understand it.
vi. Designing and evaluating system: Once the specification accepted by the user or manager,
analyst design a system. The system must be understandable by the implementer. System must
be designed so that latest tools and techniques could be used. After designing analyst critically
evaluate system after it has been applied by the user for certain period of time.

System
System is collection of interrelated parts that work together to achieve one or more common
objectives. It is also a set of processes and procedures that transform data into information and
knowledge. System is a group of interrelated elements forming a complete unit.

Input Processing Output

Storage

Feedback

There are five types of component of a system. They are:


i. Control: This component of system is used to find the requirement of the system and control
the limitations while collecting raw materials to create useful information.
ii. Input: The raw fact and information are then applied in to the system by feeding it to the
system.
iii. Process: After applying raw fact and information, this component is used to define the types of
data and carry out the target of the system.
iv. Feedback: After processing or before controlling feedbacks are taken with related person.
v. Output: This component of system gives the physical layout to the system.

System Development Models


Waterfall model/Classical model/Linear model
 Most software engineering texts presents waterfall model as the source of the conventional
software process.
 This model was introduced by Royce in 1970.
 Because of cascade from one phase to another this model is known as waterfall model.
 The waterfall model is a sequential (non-iterative) design process used in software development
process, in which progress is seen as flowing steadily downwards like waterfall.
 Waterfall model follows the SDLC approach and states that the phases are organized in a linear
order and the output of one phase becomes the input for next phase.
 This model is also called classic life cycle because it suggests a systematic, sequential approach
in software development that begins with customer specifications of requirements and grow up
through planning, modeling, construction, etc.
 Documentation is produced at every stage of a waterfall model allowing people to understand
what has been done.
 Waterfall model is a plan driven process where you must plan and schedule all of the process
activities before starting work on them.
 The following phase should not start until the previous phase has finished.

Advantages:
 This model is simple and easy to understand and use.
 It is easy to manage due to the rigidity of the model – each phase has specific deliverables and
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:
 It is difficult to define all requirements at the beginning of a project
 Not suitable for accommodating any change.
 Working version of system is not seen until late in project’s life.
 It involves heavy documentation.
 There is no risk analysis
 We cannot go in backward direction. Once an application is in 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 amount of risk and uncertainty.
 Not a good model for complex and object oriented projects.
 Not suitable for projects where requirements are at a moderate to high risk of changing.

Prototype model:
 A prototype model is a working model based on interaction between analyst and user.
 It is the iterative process of system development where modification can be made until the
user is satisfied.
 In waterfall model intermediate changes in user's requirements cannot be accommodated
one the system development process begins, so an alternative method has been developed
called prototyping model which is based on the assumption that it is difficult to know all the
requirement of user in advance.

Advantages
 When prototype is shown to the user, s/he gets proper concept and feel of the functionality
of the software and he can suggest changes and modifications.
 Feedbacks from customer are received periodically and the changes don't come as a last
minute surprise.
 When client is not confident about the developer's capabilities, s/he asks for a small
prototype to be built. Based on this model, s/he judges capabilities of the developer.
Disadvantages
 Prototyping is done at the cost of the developer. So, it should be done using minimal
resources.
 Once we get proper requirements from client after showing prototype model, it may be of
no use. So it is also called as throw-away prototype.
 Too much involvement of client is not always preferred by the developer.
 Too many changes can disturb the rhythm of the development team.
iii. Spiral model:
 The spiral model of the software process was originally proposed by Boehm in 1988.
 It is the method of system development in a looping structure where system planning, risk
analysis, software development and user evaluation are repeatedly processed until the
maturity of the program occurs.
 This method combines the features of both waterfall as well as prototype model in order to
minimize almost every possible/known risk factor from it.
 Each loop in spiral is split into four sectors:
a. Determine objectives
b. Identify and resolve risks
c. Software Development and validation
d. Planning next phase

This model is most convincing method of system development because it uses multi-dimensional
approach for software designing.

Documentation:
Documentation refers to keep records of all system information in the system development process.
A well written document provides a great tool and means of information respository necessary to
know about software process as well as how to use the product. 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 responsibilities within this structure. In some
systems, it can includes the program themselves. There are different types of documentation but
most commonly used are as follows:
i. Requirement Document: This documentation works as key tool for software designer, designer
and test team to carry out their respective tasks. This document contains all the functional,
non-functional and behavioral description of the intended software.
ii. Program documentation: Documentation of a program provides written information about the
program. Using them the programmer can easily recall actions to be performed during the
testing of programs while modifying, maintaining and designing the program. The programmer’s
responsibility in documentation is to provide information to enable them to make necessary
changes. It contains
a. Description of program
b. Input/output forms associated with the program.
c. Detail flowchart of the program
d. Explanation of common error message
e. Information regarding the input data
f. Expected output of the program
g. Logical design of a program.
iii. Operation Documentation: A well designed system may fail if user of the system lack of detail
knowledge about to run the program so, proper documentation is needed to run any system
effectively. It includes:
a. Instructions to execute the program
b. Description of the procedural to start the program
c. Listing of the programmed error and their solution
d. Detailed description of the file used for I/O process.
e. Accuracy standard for data in the system.
iv. System documentation: Documentation which is related to the system analysis and design
process is called system documentation. System documentation contains:
a. File specifications
b. Use and meaning of variable names
c. A written description of the program
d. Transaction specification
e. Output specification
v. Management documentation: The system designer must know the requirement of the
management and provide documentation to enable management to perform the function. It
provides:
a. Monitoring to the existing system
b. Evaluating the progress of the system.

System Design Tools


1. Context diagram: Context diagram is used to give an overview of an entire system. This
is the higher level of DFD which contains only one process The external entities are
represented by rectangle and process is represented by a circle and arrow is used to
represent the flow of data. Context diagram represents the system with a single process
and then shows the external agents with which the system interacts. Context diagram
defines the boundary between system or part of a system and its environment showing the
entities that interact with it. The purpose of this diagram is to display the expecting
inputs and outputs from the system to and from external entities. It is a data flow
diagram which describes the scope of a more detailed data flow.
By creating the context model first the system analyst focuses on the outward
communication and exchanges and later the inward communication and exchanges.
After context model is created the process is exploded to the next level to show the
major processes in the system. Depending upon the complexity of the system each of
these processes can also be exploded into their own process model. This continue until
the goal of each process accomplishing a single function is reached. Due to this
approach it is also referred to as Level 0 DFD.
2. Data flow diagram(DFD): Data flow diagram is a pictorial representation of information
flow inside and outside from the system. It is a system designing tool used by system
analyst for designing system that graphically shows the flow of data in a system. It shows
the flow of data from external entities into the system. The main component of DFD is:
process, data store, data flow, external entities or sources.
Process: An is an activity or function that is performed for some specific reason, that
can be manual or digitized is a process. Each process in the system should perform
only one activity. Process is represented by a circle and it transforms an input data flow
into an output data flow.
Data flow: A data flow is indicated by a line with an arrow which shows the input or
output of data or information into or output from a process. Data flow must start or end
at a process.
Data store: Collection of data that is permanently stored. A data stored is hown as
open ended rectangle or slant line.
External Entity: A person, organization or system that is external to the system but
interacts with it. External entities are represented through rectangle. It is the
presentation of source and destination.
3. Decision table and decision tree:
Decision table:
Decision table is used to find the exact technique to perform the action for certain
conditions. Decision tables provide correct decisions for a good program design. A decision
table consist of two parts: condition and action. Decision table make it easy to see all posible
combinations of conditions and choose the suitable actions according to condition.

Decision tree: Decision tree is similar to decision table. It follows the tree structure and
each branch of tree denotes conditions. It is simple tools which are easy to understand since
it provides graphical hierarchical diagram of conditions and its actions. Example to find
smallest number among 3 different number:

Decision tree

4. Data Dictionary: A structured repository of data about data in database is called data
dictionary. Data dictionary stores information about the structure of the database. The
data dictionary stores the data item’s name, description and other details about each
data item. The system analyst creates the data dictionary during detailed analysis. And
in later phases of the SDLC, system analyst refers to and updates the data dictionary.
Data dictionary provides the definition of data items, how they fit into the data
structure and how they relate to other entities in the database. DBA uses data
dictionary in every phase of database cycle. So data dictionary should include
everything a DBA wants to know about the database.
5. UML (Unified Modeling Language): UML was developed by Grady Booch, Ivar
Jacobson and James Rumbaugh at Rational software in 1990’s. It was adopted by the
Object Management Group (OMG) in 1997 and has been managed by this organization
ever since. It is a standardized, general purpose modeling language in the field of
software engineering.

You might also like