Software Engineering
SWE1002
Module 1
An Overview of Software Engineering
13/12/2025 1
What is software
Software is a collection of programs to acquire inputs and
generates desired output after execution in terms of
functions and performance as determined by users.
It also includes set of documents, user manual in order to
enable users to understand its functionality and usage.
Data
Rules Software Procedure
Documentation Programs
Software is a logical rather than a physical system
13/12/2025 element 2
Characteristics of Software
• Intangible
• Software is developed using engineering approach
• Reliability
• Portability (easy to alter/modify)
• Non-perishable (may obsolete, but doesn’t wear out)
• Operational in specific environment, end user, etc.
• Maintainability
• Reusability
13/12/2025 3
Types of software
13/12/2025 4
Causes of software
crisis
Increasing user requirements
Expensive (cost overrun)
Difficult to alter, debug or enhancement
Delayed delivery
Non-optimal resource utilization
Sales
28
49
23
succesful project completion cancelled project
challenged project
13/12/2025 5
What is Software Engineering?
• The term software engineering is the product of two words,
software, and engineering.
• Software, when made for a specific requirement is called a
software product.
• Engineering, on the other hand, is all about developing
products, using well-defined, scientific principles and
methods.
13/12/2025 6
Definition
• Software Engineering is an engineering, technological and managerial
discipline that provides systematic approach to the development,
operation, maintenance and retirement of software product. The result
of software engineering is an effective and reliable software product.
• IEEE(Institute of Electrical and Electronics Engineers) definition:
• Software Engineering: (1) The application of a systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of
software; that is, the application of engineering to software.
• The study of approaches as in (1).
13/12/2025 7
Software development
phases
13/12/2025 8
Importance of Software Engineering
To minimize
Effectiveness
Software Cost
Importance Handling Large
Reduce the time
Effort
of Software Projects
Engineering
Reduces complexity
Reliable Software
13/12/2025 9
Is software development an Art or systematic
engineering approach??
13/12/2025 10
Layers of software engineering
Tools provides
“self operational
system”
“how to execute” the
phases
•Communication
•Planning
•Modeling or
prototyping
•Development and
testing
•Deployment
Ensure usage of
product by only
authorized users
The foundation for software engineering is the process
layer.
13/12/2025 11
Challenges of SE
Problem understanding
Product quality and productivity (productivity measurement unit KLOC
PPM)
Cycle time and cost
Reliability
Maintainability
Usability and reusability
Estimation and planning
13/12/2025 12
Evaluation of SE methodologies
13/12/2025 13