SE-200
Software Engineering
Dr. Qurat-ul-Ain
Recap
❖ Essential software product attributes are
maintainability, dependability and
security, efficiency and acceptability.
❖ Software engineering is an engineering
discipline that is concerned with all
aspects of software production.
○ software processes
○ challenges
2
Recap Product
Public
Ethical Principles
Judgement
Client &
Employer
Management
Profession
Colleagues
Self
3
Activity: Case I
❖ John, a programmer, is writing a large program needed
by his company. After months of programming, Jhon
found himself stuck on several parts of the program. His
manager wants the job completed within the next few
days. John remembers that a co-worker gave him code
from his current work and from an early version of a
commercial software package developed at another
company. Studying these programs, John sees code
which could be directly incorporated into his program.
He uses code from his co-worker and the commercial
software but does not tell anyone or mention it in the
documentation. He completes the project on time.
4
Case I: Solution
❖ violated professional ethics in two areas:
Failure to give credit for another's work
Using code from a commercial package
that presumably was copyrighted or in
another way protected by law.
❖ Clause 2 of Client & Employer
❖ Clause 3 of Colleagues Principle
https://ethics.acm.org/code-of-ethics/software-engineering-code/
5
Activity: Case II
❖ A software company has produced a new software that
incorporates the new tax laws. The president of the company
knows that the program has a number of errors (bugs). He also
believes that the first company to put this software on the
market will capture the largest market share. When the
company actually ships the software, it includes a disclaimer of
responsibility for errors resulting from the use of the program.
The company expects it will receive a number of complaints
and suggestions for modification. The company plans to use
these to make changes and eventually issue updated,
improved, and debugged versions. The president argues that
this is a general industry policy and that a customer who buys
version 1.0 of a program knows this and he will take proper
precautions. Because of errors (bugs), a number of customers
sent incorrect tax returns to the government and were
penalized.
6
Case II: Solution
❖ Sincehe was aware of errors (bugs) in the
product, he did not strive to achieve the
highest quality
❖ Clause 2 and 4 from Public principle!
https://ethics.acm.org/code-of-ethics/software-engineering-code/
7
Objectives
✓ Software Process
Models – Software
Developments Life
Cycle
✓ Process Activities
Software Process
❖A structured set of activities required to
develop a software system.
❖ All software processes involve:
Meet customer’s
How will it do? changing need
Design & Validation Evolution
Specification
Implementation
What will system Does it do what
do? customers want? 9
Software Process Descriptions
❖ Process descriptions may also include:
○ Products, which are the outcomes of a
process activity;
○ Roles, which reflect the responsibilities of
the people involved in the process;
○ Pre- and post-conditions, which are
statements that are true before and after a
process activity has been enacted or a
product produced.
10
Software Process Model
“
A software process model is an abstract
representation of a process. It presents a
description of a process from some particular
perspective.
11
Plan-driven & Agile processes
❖ Plan-driven processes are processes where
all of the process activities are planned
in advance and progress is measured
against this plan.
❖ In agile processes, planning is
incremental and it is easier to change the
process to reflect changing customer
requirements.
12
Software Process Model
❖ The waterfall model
○ Plan-driven model. Separate and distinct
phases of specification and development.
❖ Incremental development
○ Specification, development and validation
are interleaved. May be plan-driven or
agile.
❖ Integration and configuration
○ The system is assembled from existing
configurable components. May be plan-
driven or agile.
13
The Waterfall Model
Waterfall Model Phases
❖ There are separate identified phases
in the waterfall model
15
a phase must be
complete before
moving onto the
next phase
Waterfall Model Problems
❖ Inflexible partitioning of the project into
distinct stages makes it difficult to
respond to changing customer
requirements.
○ requirements are well-understood and
changes will be fairly limited during the
design process.
○ Few business systems have stable
requirements.
❖ The waterfall model is mostly used for
large systems engineering projects where
a system is developed at several sites. 17
Waterfall Model
Advantages Disadvantages
1. linear and segmental 1. define all
model requirements in the
2. easy to understand beginning
3. non-existing 2. no accommodation
interdependencies for change
lead to no 3. working version not
complicated team available until late
coordination in the project’s life
4. Documentation
available 18
When to use Waterfall Model?
This model is used only when the requirements are very
well known, clear and fixed.
Product definition is stable.
Technology is understood.
There are no ambiguous requirements
Ample resources with required expertise are available
freely
19
Rather than deliver
the system as a single
delivery, the
development and
delivery is broken
down into increments
with each increment
delivering part of the
required
functionality
“
Incremental
Development
21
Incremental Model
22
Incremental Model Benefits
The cost of accommodating changing
customer requirements is reduced.
It is easier to get customer feedback
on the development work that has
been done.
More rapid delivery and deployment
of useful software to the customer is
possible. 23
Incremental Model Problems
The process is not visible.
System structure tends to degrade
as new increments are added.
24
Incremental Model
Advantages Disadvantages
1. generates working 1. needs good planning
software quickly and and design.
earlier 2. needs clear and
2. Useful when staff is complete definition
unavailable of whole system
3. More flexible 3. total cost higher
4. Easier to test and than waterfall
debug
5. Easier to manage
risk 25
When to use Incremental Model?
A new technology is being used
Resources with needed skill set are not available
There are some high-risk features and goals which
may change in the future
Major requirements must be defined; however, some
details can evolve with time.
There is a need to get a product to the market early.
26
Summary
❖ Process models describe a sequence of
activities:
○ Waterfall model,
○ incremental development
27
Thanks!
Any comment/questions?
28