Software Engineering
SWE1002
Module 1
An Overview of Software Engineering
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 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 element
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 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
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 3
Types of software
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 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
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 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.
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 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).
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 7
Software development phases
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 8
Importance of Software Engineering
To minimize Software
Effectiveness
Cost
Importance
Handling Large Projects
Reduce the time Effort of Software
Engineering
Reduces complexity
Reliable Software
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 9
Is software development an Art or systematic
engineering approach??
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 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.
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 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
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 12
Evaluation of SE methodologies
03-09-2023 Dr. Tauseef Khan, Assistant Professor (Senior grade 1), SCOPE 13