Software
Engineering
MOHAMMAD SALIM HAMDARD
07/06/2025 1
INTRODUCTIO
N… The software?
Computer programs and associated
documentation.
Major Software Categories
1. Generic Products: it is sold on the open market to
any customer who can buy it. The developing
organization controls the software specification.
( Developer Driven)
2. Customized Products: it is commissioned by a
particular customer and is developed for that
particular customer ONLY. The specification is
developed and is controlled by the customer & the
developer must work to that specification
( Customer Driven)
07/06/2025 2
Software Cost
Software costs often dominate (controls) system costs. The costs of
software on a PC are often greater than the hardware cost
Software costs more to maintain than it does to develop. For systems with
a long life, maintenance costs may be several times development costs
Software engineering is concerned with cost-effective software
development
07/06/2025 3
Computer Science Vs S/W Engineering
When we use physics in making machines like engines or cars then it is
called mechanical engineering.
And when we apply the knowledge of physics in developing electronic
devices then the process is called electrical engineering.
The relation of computer science with software engineering is similar
as the relation of physics with the electrical, mechanical or civil
engineering or for that matter the relation of any basic science with
any engineering field.
07/06/2025 4
Cont..
So in this context we can define software engineering as:
”This is the process of utilizing knowledge of computer science in
effective production of software systems.”
07/06/2025 5
Software Engineering Vs System
Engineering
System engineering is concerned with all aspects of computer-based
systems development including hardware, software engineering.
Software engineering is part of this process concerned with the
development of software and databases in the system.
System engineers are involved in system specification, architectural design.
07/06/2025 6
Software Crises
Computer systems were very new in early fifties and the use of software
was also very limited at that time.
In 1960s a great amount of rapid improvement was made in
Hardware
More powerful hardware resulted into the development of more powerful
and complex software
Those very complex software was very difficult to write.
So the tools and techniques that were used for less complex software
became inapplicable for the more complex software
07/06/2025 7
Cont..
This thing resulted in to the following consequences:
◦ In most of the cases that software which was tried to be build using those old
tools and techniques were not complete.
◦ Most of the times it was delivered too late.
◦ Most of the projects were over-budgeted.
◦ And in most of the case systems build using these techniques were not
reliable –
meaning that they were not be able to do what they were expected to do.
07/06/2025 8
Cont..
As a result of these problems a conference was held in 1969 in which
the term software crisis was introduced.
And the term of Software Engineering was also coined in the same
conference
Software engineering is the result of software crisis when people realized
that it is not possible to construct complex software using the techniques
applicable in 1950s.
An important result of this thing was that people had realized that
just coding is not enough
07/06/2025 9
Professional and Ethical Responsibility
Software engineering involves wider responsibilities than simply
the application of technical skills.
Software engineers must behave in an honest and ethically
responsible way if they are to be respected as professionals.
Ethical behaviour is more than simply upholding the law.
07/06/2025 10
Cont..
Confidentiality
◦ Engineers should normally respect the confidentiality of their employers or
clients irrespective of whether or not a formal confidentiality agreement has
been signed.
Competence
◦ Engineers should not misrepresent their level of competence. They should not
knowingly accept work which is outside their competence.
Intellectual property right
◦ You should be careful to ensure the intellectual property of your employers and
clients .
Computer Misuse
◦ You should not use your technical skills to misuse other people’s computer.
Misuse ranges
from game playing on employers computer, and the dissemination of viruses
07/06/2025 11
Software
Process
07/06/2025 12
TOPICS TO BE
DISCUSSED
What is “The Process”
Who does “This
Process”
Why is “The Process” Important
What are the “The Process” steps
How do I ensure that I have done
“The Process” right
Software Engineering: A Layered Technology
Process, Activity, Task
Process Framework
Framework Activities
07/06/2025 13
What is it?
When you build a product or system, it’s important to go through a
series of predictable steps—a road map that helps you create a timely,
high-quality result.
The road map that you follow is called a
‘software process.’
07/06/2025 14
Who does it?
Software engineers and their managers adapt the process to their needs
and then follow it.
In addition, the people who have requested the software play a role in the
software process.
07/06/2025 15
Why it is important?
Because it provides stability, control, and organization to an
activity that can, if left uncontrolled, become quite chaotic.
07/06/2025 16
What are the steps?
At a detailed level, the process that you adopt depends on the software
you’re building.
One process might be appropriate for creating software for an aircraft
avionics system, while an entirely different process would be indicated for
the creation of a Web site.
07/06/2025 17
How do I ensure that I have done it right?
A number of software process assessment mechanisms enable
organizations to determine the “maturity” of a software process.
However, the quality, timeliness, and long-term viability of the product you
build are the best indicators of the efficiency of the process that you use.
07/06/2025 18
Software Engineering: A
Layered Technology
Software engineering is a fully layered technology.
To develop a software, we need to go from one layer to another.
All these layers are related to each other and each layer demands the
fulfillment of the previous layer.
07/06/2025 19
Methods
The method provides the answers of all 'how-to' that are asked during the
process.
It provides the technical way to implement the software.
It includes collection of tasks starting from communication, requirement
analysis, analysis and design modelling, program construction, testing and
support.
07/06/2025 20
Tools
The software engineering tool is an automated support for the software
development.
The tools are integrated i.e the information created by one tool can be used
by the other tool.
For example: The Microsoft publisher can be used as a web designing tool.
07/06/2025 21
Process, Activity and Task
Process: A process is a documented set of activities that are performed
to meet a defined objective.
Activity: is a major unit of work to be completed in achieving
the objectives of a process.
An activity has precise starting and ending dates, incorporates a set
of tasks to be completed, consumes resources
Task: A task is the smallest unit of work
A task is a well-defined work assignment usually assigned to one
person
07/06/2025 22
Process, Activity and Task
Processes are Partitioned into Activities and Tasks
Sequence of Process
Major alternatives
In this course, we will look at three categories of software development
processes:
• Sequential:
As far as possible, complete each process step before beginning the
next. Waterfall model.
• Iterative:
Go quickly through all process steps to create a rough system, then
repeat them to improve
the system. Iterative refinement.
• Incremental:
An variant of iterative refinement in which small increments of software
are placed in
07/06/2025 24
production
Heavyweight and Lightweight
Software Development
In a heavyweight process, the development team works through the
process steps slowly and systematically, with the aim of fully completing
each process step and delivering a complete software product that will
need minimal changes and revision.
Example: Modified Waterfall Model
In a lightweight process, the development team releases working
software in small increments, and develops the plans incrementally,
based on experience. Each increment includes all the process steps.
There is an expectation that changes will be made based on
experience.
Example: Agile Software Development
07/06/2025 25
Cont..
Heavyweight Lightweight
Processes and tools Individuals & interactions
Specification Working software
Client Client collaboration
negotiation Responding to change
Following a plan
Based on the Manifesto for Agile
Software
Developmen
07/06/2025 26
t: h:
Process Framework Activities
A generic process framework for software engineering encompasses
five activities:
Communication
Planning
Modelling
Construction
Deployment
07/06/2025 27
Communication
Before any technical work can commence, it is critically important to
communicate and collaborate with the customer (and other stakeholders
The intent is to understand stakeholders’ objectives for the project and to
gather requirements that help define software features and functions.
07/06/2025 28
Planning
Any complicated journey can be simplified if a map exists.
A software project is a complicated journey, and the planning activity creates
a “map” that helps guide the team as it makes the journey.
The map—called a software project plan—defines the software engineering
work by describing the technical tasks to be conducted, the risks that are
likely, the resources that will be required, the work products to be produced,
and a work schedule.
07/06/2025 29
Modeling
Whether you are a bridge builder an aeronautical engineer, a carpenter, or
an architect, you work with models every day.
A software engineer does the same thing by creating models to better
understand software requirements and the design that will achieve
those requirements.
07/06/2025 30
Construction
This activity combines code generation and the testing that is required
to uncover errors in the code.
07/06/2025 31
Deployment
The software (as a complete entity or as a partially completed increment) is
delivered to the customer who evaluates the delivered product and provides
feedback based on the evaluation.
07/06/2025 32
Communication Deployment
Communication
& Planning
Planning
Modelling
Construction
Deployment
Construction Modelling
07/06/2025 33
What is software Development Life Cycle (SDLC)?
The Software Development Life Cycle (SDLC) is a linear sequential model
that begins with requirements definition and ends with regular system
operation and maintenance.
Software Development Life Cycle (SDLC) aims to produce a high-quality
system that meets customer expectations, works effectively and efficiently
in the current technology, and is inexpensive to maintain and cost-effective
to enhance.
07/06/2025 34
SDLC 1
Diagram
6 2
5 3
07/06/2025 4 35
Thank You
07/06/2025 36