Chapter No 2 SDLC
Chapter No 2 SDLC
System
Development
Life Cycle
2.1.1 A System
• The term system is originated from the Greek term systema, which means to “place
together”.
• It can be defined as a set of interrelated components having a clearly defined boundary
that work together to achieve a common set of objectives.
• A system can be developed by applying a set of methods, procedures and routines in a
proper sequence to carry out some specific task.
• When all these functions are applied to build software then the system will be called as a
software system.
• System development life cycle (SDLC) is a conceptual model used in project management
that describes the stages involved in an information system development project from an
initial feasibility study through maintenance of the completed application.
• System development life cycle (SDLC) is a step wise process of creating computer
systems.
• It is also known as information system development or application development.
• It is a conceptual model which represents the necessary steps used for the development
process of a software system.
• The SDLC is a problem-solving process through which series of steps helps to produce a
new computer information system.
• The entire steps conducted in a sequence should provide the answers to a problem or
opportunity.
• This step-wise procedure to build a system has a lot of importance.
Importance of SDLC
The following points summarize the importance of the use of SDLC.
• SDLC is important because it breaks down the entire life cycle of software development
into phases thus making it easier for the development team members to easily evaluate
each part of software development.
• SDLC make it easier for programmers to work concurrently on each phase.
• It provides a rough time estimate that when the software will be available for use.
The objectives of the System Development Life Cycle (SDLC) are as follow:
• Delivery of quality software that meet the customer expectations.
• Delivery of inexpensive and cost-effective software which are easily maintainable.
• Maximize productivity in terms of the software systems delivered.
• One of the major objectives of SDLC is to establish an appropriate level of management of
authority to direct, coordinate, control, review and approve the software development
project.
• SDLC should ensure the project management accountability.
• Proper documentation of all the requirements needed for the development of the new
software system.
• Ensuring that projects are developed within the current and planned information
technology infrastructure.
• SDLC should identify the potential project risks in advance so that proper planning should
be done.
Role of Stakeholders
The basic roles of stakeholders are:
• For the development of a software system, resources such as time, money and
equipment etc. are needed which should be provided to the project team by
stakeholders.
• Stakeholders educate the developers about their business.
• They spend more time to provide information and clarify requirements to the analysis
and developers.
1. Planning phase
• Planning phase is the first phase of System Development Life Cycle.
• During this phase the group that is responsible for creating the software system must first
determine what the system needs to do for the organization.
• Often the planning phase tries to find answers for the questions such as:
o What do we need this system for?
o What the new software system will do for the organization?
o How this new software system will be developed?
• In this initial phase of SDLC, all the resources, both human and technology resources are
put together and a project plan is devised by the project manager.
2. Feasibility
• Analysis and evaluation of a proposed project or system, to determine, whether it is
technically, economically and operationally feasible within the estimated cost and time is
called feasibility study.
• Feasibility study is one of the important steps in SDLC. It is divided into
3. Analysis phase
• In this phase, the in charge of the project team must decide if the project should go
ahead with the available resources or not.
• Analysis is also looking at the existing system to see what and how it is doing its job.
• The project team asks the following questions during the analysis.
o Can the proposed software system be developed with the available resources and
budget?
o Will this system significantly improve the organization?
o Does the existing system even need to be replaced?
4. Requirement engineering
• Requirements Engineering (RE) is a set of activities used to identify and communicate the
purpose of a software system, and the context in which it will be used.
• Requirement engineering consists of the following steps.
o Requirement gathering
o Requirement validation
o Requirement management
o Requirement gathering
• Requirement gathering is usually the first part of any software product.
• In this phase meetings with the customers or prospective customers are arranged; the
market requirements and features that are in demand are analyzed.
• It is also to find out if there is a real need in the market for the software product that is
proposed to be developed.
• These requirements are of two types:
i. Functional requirements
Sangeen Muhammad, Lecturer in Computer Science, Quaid-e-Azam Group of College, Mardan
Cell #: +92 346 900 8379/ +92 332 923 0231 Email: Sangeen.mhd@gmail.com
ii. Non-functional requirements
i. Functional requirements
• Functional requirements are those requirements of a software system which describe a
function of a software system or its component.
• It includes calculations, technical details, data manipulation and processing and other
specific functionality that define what a system is supposed to accomplish.
• Example of functional requirements are:
a) Interface requirements
• Field accepts numeric data entry.
• Field only accepts dates before the current date.
• Screen can print on-screen data to the printer.
b) Business requirements
• Data must be entered before a request can be approved.
c) Regularity/Compliance requirements
• The database will have a functional audit trail.
• The system will limit access to authorized users.
• The spreadsheet can secure data with electronic signatures.
d) Security requirements
• Members of the Data entry group can enter requests but not approve or delete requests.
• Members of the managers group can enter or approve a request, but not delete requests.
• Members of the administrator’s group cannot enter or approve requests, but can delete
requests.
o Requirement validation
• Requirement validation is concerned with examining the requirements to certify that they
meet the intentions of the stakeholders, and to ensure that they define the right system,
the essence of the agreement and understanding between developer and acquirer about
o Requirements management
• Requirement management is performed to ensure that the software continues to meet
the expectations of the acquirer and users.
• The requirement document should always accurately reflect those expectations, as
changes occur, in order to communicate to the development team.
• Requirements management, therefore, needs to gather new requirements that arise from
changing expectations, new regulations, or other sources of change.
• It needs to analyze the impact of those changes on the project.
• The conflicts that arise among the acquirer and the user needs to be addressed and
changes should be negotiated and validated before such requirements are added to the
baseline.
5. Design phase
• During this phase, the system is designed to satisfy the functional requirements identified
in the previous phase.
• Since problems in the design phase can be very expensive to solve in later stages of the
software development, therefore, a variety of elements are considered in the design to
minimize the risk.
• These include:
o Identifying potential risks and defining mitigating design features.
o Performing a security risk assessment.
o Developing a conversion plan to migrate current data to the new system.
o Determining the operating environment.
o Defining major subsystems and their input and output.
o Allocating processes to resources.
• The design phase normally consists of three different architectures. These are:
i. Algorithms
ii. Flow chart
iii. Pseudo code
i. Algorithms
• An algorithm is a specific set of instruction for carrying out a procedure or solving a
problem.
• For example, the following algorithm will find average of the 5 numbers.
1) Sum = 0, Average = 0
2) Read a,b,c,d,e
3) Sum = a+b+c+d+e
4) Average = sum/5
5) Print Average
Read
A,B,C,D,E
Sum=A+B+C+D+E
Average=Sum/5
Print Average
7. Testing/Verification
• The execution of a program to find its errors is called testing.
• The bugs are identified in the programmed modules.
• The purpose of testing is to evaluate an attributes or capability of a program or system
and determine that whether it meets its required results.
• It is the process of checking the items for consistency by evaluating the results against
pre-specified requirements.
8. Deployment / Implementation
• Software deployment is a set of activities that are used to make the software system
available for use.
• Deployment is also called implementation.
• Its activities occur at the producer site or at the consumer site or both.
• Because every software system is unique, the precise processes or procedures within
each activity are different from other and thus cannot be clearly defined.
• The main activities that are involved during deployment are:
o Installation and activation of the equipment's and software.
Sangeen Muhammad, Lecturer in Computer Science, Quaid-e-Azam Group of College, Mardan
Cell #: +92 346 900 8379/ +92 332 923 0231 Email: Sangeen.mhd@gmail.com
o In some cases, the users and the computer operation personals are trained on the
developed software system.
o Conversion: The process of changing from the old system to the new one is called
conversion.
9. Maintenance / Support
• Keeping a system in its proper working condition is called maintenance.
• In other words, it can also be defined as the modification of a software product after
delivery to correct faults, to improve performance.
• Maintenance is an important activity that take place throughout the life of software in
both the computer equipment's and computer software.
• Programmers spend more time in maintaining programs than writing them.
• In SDLC, the system maintenance is an ongoing process.
• The system is monitored continually for performance in accordance with user
requirements and needed system modifications are incorporated,
• When modification is identified, the system may reenter the planning phase.
• This process continue until a complete solution is provided to the customer.
• Maintenance can be either be repairing or modification or some enhancement in the
existing system.
• The activities of all the phases of software development life cycle are being performed by
different groups of people and individual personnel.
• These personnel are professionals in performing their particular jobs and include:
1) Management
2) Project Manager
3) System Analyst
4) Programmer
5) Software Tester
6) Customer
1) Management
• Organizing, coordinating an controlling the activities of a software development by the
manager and executives in accordance with certain standard procedures is called
management.
• A strong management has the ability to satisfy the customers and acquirers of the
software system.
• Also, a proposed project or a product will only meet its objectives if managed properly
otherwise will result in failure.
• The role of a good management is to:
• Provide consistency of success of the software with regard to Time, Cost and Quality
objectives.
• Ensure the customer expectations are met.
• Collect historical information and data for future use.
• Provide a method of thought for ensuring all requirements are addressed through a
comprehensive work definition process.
2) Project Manager
• A project manager is a professional in the field of project management responsible for
planning, execution and closing of any project.
• Apart from management skills, a software project manager will typically have an
extensive background in software development.
• Project manager is also expected to be familiar with the whole software development
cycle process.
• The specific responsibilities of the project manager vary depending on the company size,
the company maturity and the company culture.
• The role of project manager is to manage:
o Project plan
o Project stakeholders
o Project team
o Project risk
o Project schedule
o Project budget
o Project conflicts
3) System Analyst
• A system analyst is a professional in the field of software development that studies the
problem, plan solutions for them, recommend software systems, and coordinates
development to meet business or other requirements.
• System analyst has expertise in a variety of programming languages, operating systems,
and computer hardware platforms.
• Because they often write user requests into technical specifications, the system analyst is
the contact person between vendor an information technology professional.
• Analyst may be responsible for developing cost analysis, design consideration and
implementation time.
• The role of system analyst is to:
o Plan a system flow from ground up.
o Interact with customers to learn and document requirements that are then used
to produce with business requirement documents.
o Write technical requirements from a critical phase.
o Interact with designers to understand software limitations.
• Help programmers during system development, e.g. provide use cases, flowcharts or
even database design.
• Manage system testing.
• Document requirement and contribute to user manuals.
• Whenever a development process is conducted, the system analyst is responsible for
designing components and providing that information to the developer.
5) Software Tester
• A software tester is a computer programmer having specialty in testing the computer
programs using different testing techniques.
• Software tester is responsible for understanding requirements, creating test scenarios,
test scripts, preparing test data, executing test scripts, reporting defects and reporting
results to test lead.
• The roles of a software tester are:
o Create test scenarios, test conditions and expected results and test cases.
o Run and maintain automated test scripts.
o Create test deliverables as per testing standards followed by the company or project.
o Execute test scripts and document test results.
o Inform testing team leader on any issues that could potentially impact quality,
schedule or budget of the project.
6) Customer
• A customer is an individual or organization that is a current or potential buyer or user of
the software product.
• Customers usually purchase software from software manufacturer companies (software
houses), user groups and individuals.
• Customers are also called clients but the only difference between the two is that the
customers purchase the software products and the clients purchase services.
• Customers are the real evaluators of a software product by using it and identifying its
merits and demerits
The End
Sangeen Muhammad, Lecturer in Computer Science, Quaid-e-Azam Group of College, Mardan
Cell #: +92 346 900 8379/ +92 332 923 0231 Email: Sangeen.mhd@gmail.com