Software Engineering
Software:
It is a collection of integrated program
Engineering:
It is the application of scientific & practical
knowledge to invent,design,build maintain & improve
framework,process etc
Software Engineering:
It is a Engineering branch related to the
evolution of software product using well-defined
scientific principles,techniques and procedure
Needs for software Engineering/characterstics
1. Adaptability
Software engineering is needed to make software
adaptable to changes. In real life, user requirements
and technology keep changing, so the software must
be flexible. With proper design and development
practices, software can be easily modified or updated
without affecting its performance.
2. Cost
Cost is an important factor in software development.
Software engineering helps in proper planning,
estimation, and resource management. This reduces
unnecessary expenses and ensures that the software is
developed within the given budget and time.
3. Dynamic Nature
Software is dynamic, meaning it keeps evolving over
time. New features, updates, and improvements are
regularly required. Software engineering provides a
structured approach to handle these changes
efficiently without creating major issues in the
system.
4. Quality Management
Quality management ensures that the software is
reliable, efficient, and error-free. Software
engineering includes testing, debugging, and
maintenance processes to improve software quality.
This helps in delivering a high-quality product that
satisfies user requirements.
[Link]
Maintainability refers to how easily software can be
maintained and updated after deployment. Software
engineering practices ensure that the code is well-
structured and documented, making it easier to fix
bugs, add new features, and improve performance
over time.
Importance of Software Engineering
1. Reduce Complexity
Software engineering helps in breaking down
complex problems into smaller, manageable parts. By
using proper design methods and structured
approaches, large and complicated systems become
easier to understand, develop, and maintain.
2. Minimize Software Cost
It helps in reducing the overall cost of development
by proper planning, resource management, and
efficient use of tools. This avoids unnecessary work,
reduces errors, and saves both time and money.
3. Decrease Development Time
Software engineering provides systematic processes
and models (like SDLC) which help complete projects
faster. Proper scheduling, teamwork, and planning
ensure that the software is delivered on time.
4. Handling Big Projects
Large-scale software projects involve many
developers and complex tasks. Software engineering
provides structure, clear roles, and proper
coordination, making it easier to manage and
successfully complete big projects.
5. Reliable Software
Software engineering helps in developing reliable
software that works correctly under different
conditions. Through proper testing, debugging, and
validation, it ensures the software produces accurate
results and performs consistently without failures.
6. Effectiveness
Software engineering ensures that the software meets
user requirements effectively. It focuses on building
systems that solve real-world problems efficiently,
improve productivity, and deliver the desired results
with good performance.
Software Process
A software process is a structured set of activities
used to develop, deliver, and maintain software. It
defines how software is planned, created, tested, and
improved over time. The goal is to produce high-
quality software in a systematic and efficient way.
Four Key Activities of Software Process
1. Software Specification
This activity involves defining what the software
should do.
Requirements are gathered from users and
stakeholders.
Functional and non-functional requirements are
clearly documented.
It acts as a blueprint for development.
2. Software Development
This is the process of designing and coding the
software.
System design is created based on requirements.
Developers write code and build the application.
Different modules are developed and integrated.
3. Software Validation
This ensures the software works correctly.
Includes testing, debugging, and verification.
Checks whether the software meets user
requirements.
Ensures quality and reliability.
4. Software Evolution
Software continues to change after deployment.
Updates, bug fixes, and new features are added.
Helps the software adapt to new requirements and
technologies.
Maintains long-term usefulness.
Software Crisis
Software crisis refers to the set of
problems faced in software development
when systems became large, complex, and
difficult to manage. In the early days of
computing (1960s–1970s), many software
projects failed because they were not
completed on time, exceeded budget, and did
not work properly. This situation created a
“crisis” in software development and led to
the introduction of systematic software
engineering methods.
OR
Software crisis refers to the problems faced in
developing software systems, especially when the
size and complexity of software increased. In
earlier days, many software projects failed due to
poor planning, high cost, low quality, and delayed
delivery. This situation led to the introduction of
software engineering to solve these issues.
1. Size Problem
As software systems increase in size, they
become more complex and harder to control.
Large systems contain many modules,
functions, and dependencies
Difficult to understand, debug, and maintain
Requires coordination among many
developers
Example:
A small program like a calculator is simple, but a
banking system handling accounts, loans, online
transactions, and security becomes very large and
complex, making it difficult to manage.
2. Quality Problem
Maintaining high quality is a major challenge in
software development.
Software may have bugs, errors, or security
vulnerabilities
Lack of proper testing leads to system failures
Poor quality reduces user trust and satisfaction
Example:
If a payment application crashes during a
transaction or transfers money incorrectly, it
shows poor software quality and can cause
serious problems.
3. Cost Problem
Software development often exceeds the planned
budget.
Poor estimation and planning increase costs
Frequent changes in requirements lead to
rework
Fixing errors after development is very
expensive
Example:
A project planned for ₹4 lakh may end up costing
₹10 lakh due to repeated changes, bugs, and
maintenance efforts.
4. Delayed Delivery Problem
Many software projects are not completed within
the expected time.
Poor scheduling and lack of proper
management
Technical issues and requirement changes
cause delays
Delays affect business performance and user
satisfaction
Example:
An e-commerce website planned for launch in 5
months may take 12 months, resulting in loss of
customers and market opportunities.