0% found this document useful (0 votes)
40 views12 pages

Chapter No 2 SDLC

The document discusses the system development life cycle (SDLC), including its importance, objectives, stakeholders, and phases. The key phases discussed are planning, feasibility study, analysis, requirement engineering, design, coding, testing/verification, deployment/implementation, and maintenance/support.

Uploaded by

labkhan054
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)
40 views12 pages

Chapter No 2 SDLC

The document discusses the system development life cycle (SDLC), including its importance, objectives, stakeholders, and phases. The key phases discussed are planning, feasibility study, analysis, requirement engineering, design, coding, testing/verification, deployment/implementation, and maintenance/support.

Uploaded by

labkhan054
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
You are on page 1/ 12

Chapter No 2

System
Development
Life Cycle

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
2.1 Introduction
• System are created to solve problems. Nowadays, systems are so big and complex that
teams of architects, analysts, programmers, testers and users must work together to
create the millions of lines of custom-written code that drive our enterprises.
• To manage this, a number of system development life cycle (SDLC) models have been
created.
• This unit is focused on SDLC, its importance, objectives, stakeholders and logical phases
that are followed for the development of software product.

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

• 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.

2.1.2 System development life cycle and its 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.

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
• It delivers quality software which meet or exceed customer expectations.
• It provides the basic framework for the development of quality software.
• SDLC help the project managers to establish a project management structure to be
followed strictly during the system development.
• SDLC clearly defines and assigns the roles and responsibilities of all the involved parties.
• It ensures that the requirement for the development of the software system are well
defined and subsequently satisfied.

2.1.3 Objectives of SDLC

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.

2.1.4 Stakeholders of SDLC


• Those entities which are either within the organization or outside of the organization that
sponsor a project, or have an interest or have the intention to get it after its successful
completion, or may have a positive or negative influence in the project completion are
called stakeholders.
• Project stakeholders include the customers, the user group, the project manager, the
development team and the testers.
• All those who have some interest in the project can be considered as stakeholders of that
project.
• The individuals as well as the organization that are actively involved in the project, or
whose interest may be affected as a result of project execution or project completion are
the part of stakeholders.

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.

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
• The stakeholders should be specific and precise about the requirements.
• Make timely decisions.
• Respect a developer’s assessment of cost and feasibility.
• Set requirement priorities.
• Review and provide timely feedback.
• Promptly communicate changes to requirements.

2.1.5 System development life cycle phases

The most commonly used phases of SDLC are given below.


1. Planning
2. Feasibility Study
3. Analysis
4. Requirement Engineering
5. Design
6. Coding
7. Testing/Verification
8. Deployment/Implementation
9. Maintenance/Support

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.

Activities of planning phase


• Define business problem or opportunity
• Define project scope and constraints
• Produce detailed project schedule (time) and cost
• Define project benefits
• Write a report to management

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

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
i.Technical feasibility
o It refers to the technical resources needed for the development of the proposed
software system.
ii.Economic feasibility
o This refers to the cost of the project. Here, it tries to determine; total cost of
ownership (TCO), tangible benefits and intangible benefits.
iii.Operational feasibility
o In this type of feasibility, it is determined that whether the proposed system will
be used effectively after it has been developed. It means whether the organization
has much experienced personals to operate the system or not?
iv.Schedule feasibility
o It means that a project can be implemented in an acceptable time frame.

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?

Activities of the analysis phase


• Gather information to learn problem domain
• Define system requirements
• Prioritize requirements
• Build prototypes for feasibility and discovery of requirements.
• Generate and evaluate alternative solutions for the problem in hand.
• Review recommendations with top level management to decide about the project.

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.

ii. Non-functional requirements


• Non-functional requirements are those requirements which specify criteria for the
judgment of the operations of a system.
• It describes that how well the system performs its duties.
• Non-functional requirements are often called qualities of a system.
• These requirements depend upon the nature of the software.
• Different types of non-functional requirement are:
o Accessibility requirements
o Accuracy requirements
o Backup and recovery requirements
o Memory capacity requirements
o Compatibility requirements
o Error-handling requirements
o Maintainability requirements
o Performance requirements
o Security requirements

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

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
what to build, in a manner that ensure a common understanding across the project team
and among the stakeholders.
• The validation differs from verification in the sense that verification occurs after
requirement have been accepted.
• In requirement validation, the requirement elicited are reviewed to check that
requirements are complete, correct, unambiguous, consistent, prioritized, modifiable and
traceable.

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

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. Flowcharts
• A flowchart is a type of diagram that represent an algorithm or a process.
• It shows the steps of the algorithm with the help of boxes and their order by arrows
connecting the boxes.
• This diagrammatic representation of the algorithm gives a step-by-step solution to a given
problem.
• The operations are represented in these boxes, and the flow of control on the arrows.
• These flowcharts are used for analyzing, designing, documenting or managing a process
or program in various fields.
Start

Read
A,B,C,D,E

Sum=A+B+C+D+E
Average=Sum/5

Print Average

Flowchart symbols and flow chart example


End
iii. Pseudo code
• Pseudo code is an outline of a program, written in a form that can easily be converted
into real programming statements.
• Pseudo code neither is compiled nor executed, and there is no specific formatting and
syntax rules for it.
• Pseudo code is beneficial in the sense that it enables the programmer to focus on the
algorithms without worrying about all the details of a particular programming language.
• In fact, one can write pseudo code without even knowing what programming language
will be used for the final implementation.
• The following example shows a pseudo code to display the result of a student as “Pass” if
the percentage is greater than or equal to 60% and “Fail” otherwise.
If percentage>= 60%
Print “Pass”
Else
Print “Fail”

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
6. Coding
• Coding is the process of designing, writing, testing, debugging and maintaining the source
code of computer programs.
• This source code is written in programming languages.
• The purpose of coding is to create a program that shows a certain desired behavior.
• For coding some other specialties are also needed.
• These include knowledge of the application domain, specialized algorithms and formal
logic.
• Coding is also called computer programming.
• For coding computer programming languages are used.
• There are different types of programming languages such as procedural languages and
object-oriented programming (OOP) languages.
• Nowadays, object-oriented programming languages are the most commonly used
languages C++, Java, C#.net and VB.net etc. are the examples of this group of languages.
Example
#include<iostream.h>
#include<conio.h>
Int main()
{
Float percentage;
Cout<<”Enter percentage”;
Cin>>percentage;
If(percentage>= 60%)
Cout<<”Pass”;
Else
Cout<< “Fail”;
getch();
return 0;
}

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.

2.1.6 Role of the Personnel involved in SDLC

• 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.

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
• Reduce risks associated with the project.
• Minimize scope creep by providing a process for managing changes.

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.

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
4) Programmer
• A programmer is a technical person that write computer programs in computer
programming languages to develop software.
• A programmer writes, test, debug and maintain the detailed instruction that are executed
by the computer to perform their function.
• Other names for programmer are coder and developer.
• The roles of programmer are:
o Writing, testing and maintaining the instructions of computer programs.
o Updating, repairing, modifying and expanding existing programs.
o Testing the code by running to ensure its correctness.
o Developing new methods and approaches to computer programming.
o Consultancy with outside parties in relation to the construction of computer
programming methods and the program themselves.
o Supervision of the information systems (in some cases)
o Maintenance of computer databases is another type of specific duty which a
computer programmer may find himself/herself responsible.
o Preparing graphs, tables, analytical data displays which show the progress of a
computer program.

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy