Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

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

You might also like