SDLC:
SDLC stands for software development life cycle.
SDLC is a process used by software companies to plan, design, develop, and test high-quality software .
SDLC is also called software development [Link] is a framework that defining task and activities
perform at each step in software development process
Or
SDLC is a process followed for a software project within a software organization.
SDLC consists of a detailed plan that explains:
How to develop the software ( writing code, designing, testing)
How to maintain it ( fix bugs, update feature's,o)
How to improved performance.
In short it create a road map for creating and maintaining a software.
the life cycle also define methodology for improving the quality of software and the overall
development process
Main purpose of SDLC
To produce high quality software
To complete project on time in within budget
To reduce error and risk
To make software easy to maintain.
A typical software development life cycle consist of the following steps and
Planning and Requirement Analysis
Planning and Requirement Analysis is the first and most important stage of the Software Development
Life Cycle (SDLC). In this stage, the main goal is to clearly understand what the customer wants from the
software. Senior team members collect requirements by communicating with customers, the sales team,
conducting market surveys, and consulting domain experts to gather complete and accurate information
about the system. If this stage is not done properly, the whole project can fail later.
Requirement Analysis
Requirement Analysis is the process of understanding, collecting, and clearly defining what the customer
wants from a software system.
In this stage, the development team identifies:l
What the software should do
What features are required
Who will use the system
How the system should behave
The goal is to make sure that all requirements are clear, complete, and correct before starting
development.
Who is Involved in this Stage?
This stage is handled by experienced (senior) team members.
Project Planning
After gathering all the requirements, the team plans how the project will be carried out. This includes
deciding the timeline, required resources, team members, and the overall approach to develop the
software efficiently and successfully.
Feasibility a Study
In this part, the team checks whether the project is possible or not. This includes economic feasibility
(cost and budget), technical feasibility (availability of tools and technology), and operational feasibility
(whether the system will work effectively in real-world conditions).
Risk Identification
The team identifies possible risks that may occur during the project, such as technical issues, budget
problems, or delays. Planning is done to reduce or manage these risks.
Quality Planning
Quality standards and methods are decided in this stage to ensure that the final software will be
reliable, efficient, and meet customer expectations.
Defining Requirements
Defining Requirements is the second stage of the Software Development Life Cycle (SDLC). In this stage,
all the requirements collected during requirement analysis are clearly written, organized, and finalized
to remove confusion and ensure a clear understanding between the development team and the
customer. These requirements are documented in a structured form called the Software Requirement
Specification (SRS), which includes complete details of the software such as its features, functions,
system behavior, and constraints, and acts as a blueprint for the entire project. Once the SRS document
is prepared, it is reviewed by the customer or market analysts, and if everything is correct, it is
approved; otherwise, necessary changes are made. This stage is important because it ensures that all
requirements are clear and agreed upon, reducing errors and confusion in later stages, and its final
outcome is an approved SRS document that guides the next phases of software development.
Stage 3: Designing the Product Architecture
In this stage, the SRS (Software Requirement Specification) is used to plan how the software will be
[Link] product architects use the requirements in the SRS. To proposed more than one design
approach .These designs approach are documented in a Design Document Specification (DDS).The DDS
is then reviewed by all important stakeholders. Considering factors like risk, product strength, modular
design, budget, and time, the team selects the best design approach for the [Link] it.
Stage 4: Building or Developing the Product
In this stage, the actual software is built by writing the programming code based on the design in the
DDS. If the design is clear and organized, coding becomes easier. Developers follow their organization’s
coding guidelines and use tools like compilers, interpreters, and debuggers. Different programming
languages such as C, C++, Java, PHP, etc., are used depending on the type of software being developed.
Stage 5: Testing the Product : This stage is usually a subset of all the stages as in the modern
SDLC models, the testing activities are mostly involved in all the stages of SDLC. However this
stage refers to the testing only stage of the product where products defects are reported,
tracked, fixed and retested, until the product reaches the quality standards defined in the SRS.
Deployment in the Market and Maintenance
After the software is tested and ready, it is formally released in the market for users. Sometimes, the
product is launched in stages according to the organization’s business strategy. For example, it may first
be released to a small group of users to test it in a real environment, called User Acceptance Testing
(UAT).
Based on feedback from this testing, the product may be released as it is or with improvements and
enhancements in the target market.
Once the product is available to all users, maintenance begins. This includes fixing any issues that arise,
updating the software, and making improvements to ensure it continues to work well for existing
customers.
Successful Project Requirements
A project can be considered successful only if it is:
Completed within the estimated cost – It should not exceed the budget planned for the project.
Completed within the estimated time – The project should meet the deadlines set for its completion.
High quality – The final product should meet all requirements and satisfy the customer.
Software Security Principles
In software development, security is very important. Every aspect of security should be considered to
protect data and users. One widely used framework for security is CIA, which stands for Confidentiality,
Integrity, and Availability:
Confidentiality – Data should only be accessible to authorized users. Unauthorized people should not be
able to view or access the data.
Integrity – Data must remain accurate and reliable. Only authorized users should be able to modify it. If
an unauthorized person changes the data, its integrity is lost.
Availability – Data should be available at all times to authorized users whenever they need
What is Secure SDLC?
Secure SDLC (Secure Software Development Life Cycle) is an approach in software engineering where
security is considered at every step of the SDLC, rather than being added at the end. Its goal is to build
software that is safe, reliable, and resistant to attacks from the beginning.
Green Software
Green competing
Sustainable software:
Green Software is software that is designed and developed to be energy-efficient and environmentally
friendly. Its goal is to minimize the negative impact on the environment by using less energy, generating
less heat, and efficiently using hardware resources
Key Features of Green Software
Energy Efficiency – Uses minimal electricity while running, reducing power consumption.
Resource Optimization – Uses CPU, memory, and storage efficiently without wasting hardware
resources.
Environmentally Friendly – Minimizes heat generation and reduces carbon footprint.
Hardware Management – Automatically puts unused hardware components to sleep or reduces their
activity.
Sustainability – Designed to run efficiently for a long time without harming the environment.
Carbon Footprint refers to the total amount of carbon dioxide (CO₂) and other greenhouse gases
released into the environment as a result of human activities, products, or services..
Green Disposable Software
Green Disposable Software refers to software that is safely retired, deleted, or disposed of at the end of
its lifecycle in a sustainable and eco-friendly way. Its source code is made open, so others can reuse,
modify, or adapt it for their own purposes.
Key Points:
When the software reaches the end of its lifecycle, it can be safely discontinued without harming users
or the environment.
The source code is made open, so anyone can reuse it, modify it, or adapt it for their own purposes.
This approach promotes sustainability because the software is not wasted — it can be recycled and
reused.
Example:
A company finishes a software project and releases its source code on an open-source platform. Other
developers can take it, make small changes, and use it for their own projects.
Software outsourcing:
Software Outsourcing is when one software company hires another software company to develop
software for them. This is usually done through a formal contract that clearly specifies the work,
timeline, and payment.
After the contract is signed, the outsourcing company begins project planning. A team is formed,
leadership is assigned, and the team size is determined. A Gantt chart is created to outline main tasks,
milestones, and deadline They also create diagrams to show how activities flow in the project. Finally,
the team works on requirement engineering, which means they carefully write down and confirm what
the software should do before development begins.
Types of Software Outsourcing
Offshore
Off shore Outsourcing is an agreement between two software companies located in different countries,
these countries is for away from each other .a company in the USA may hire a company in India to
develop software.
Onshore Outsourcing
Onshore Outsourcing is a type of software outsourcing where a company hires another company within
the same country to handle software development tasks.
Nearshore Outsourcing
Nearshore Outsourcing is a type of software outsourcing where a company hires another company in a
nearby or neighboring country to develop software.A company in the USA hires a software company in
Canada to develop an application.
Software Modularity
Software Modularity is the practice of dividing a software system into smaller, independent, and
manageable parts called modules. Each module performs a specific task and can be developed, tested,
and maintained separately.
Key Points:
Independent Modules: Each module works independently but contributes to the overall system.
Easy Maintenance: Bugs or changes can be fixed in one module without affecting the others.
Reusability: Modules can be reused in other software projects.
Better Understanding: Smaller modules are easier to understand and manage than a large, complex
system.
Software reusability
Software Reusability is the practice of reusing software or software modules from an existing software in
a new software project. This helps save time, reduce cost, and increase efficiency.
Software Modularization
Software Modularization is the process of dividing a software system into smaller, independent
modules. Once the software is divided into modules or components, these modules can be assigned to
different teams or groups for development, making the process more organized and efficient.
Software Integration
Software Integration is the process of combining different modules or components of a software system
into a single, unified system so that they work together correctly.
Grantt chart
A Gantt Chart is a chart that shows all the activities to be performed during a software development
project, including when each activity will start, how long it will take, and when it will be completed
Software speciation document:
Software Requirement Specification (SRS) is a document that contains the detailed requirements of a
software system. It is used as a reference for designing, developing, and testing the software..
Design Document Specification (DDS)
A Design Document Specification (DDS) is a detailed document that describes how a software system
will be built. It serves as a blueprint for developers, showing the system’s architecture, modules,
components, and how they interact.