Professional Documents
Culture Documents
Software
Engineering
LECTURE-02
Sara Afzal
MS Computer Science
Fast NUCES
3
Reference Material
Software
Engineerin
g
▶ As defined in IEEE Standard
610.12:
▶ The application of a
disciplined, quantifiable approach
systematic,
to the development, operation, and
maintenance of software; that is,
application
the of engineering to
What is software.
▶ Your opinion?
Software ▶ This definition is descriptive,
Engineering prescriptive
not
? ▶ It does not say how to do anything
7
8
“Let’s write
“The sooner
begin writing c ode,
you
the longer it’ll take
code, so we’ll
the to
60 80% of effort is
be done with our job”expended after
first delivery
Software
Engineering “Until I finish it, Software and design
reviews are more
I effec tive than
“There is no
time for But is there time
to redo the
software
software?
engineering"
9
my people
need?”
Software
“Adding people
Engineering “If we fall
to a late
software project,
Management programmers.”
Month)
12
Always (usually) Late
Exceeds cost
Doesn't satisfy specifications
Software
Not understandable or
Development modifiable
Problems
Unreliable
Inefficient (time, memory, disk)
Not portable
Not secure
13
1
6
Why
Software
Engineering?
9 SOFTWARE
PROJECTS TOTALING
$ 96 . 7 M ILLIO N :
WHERE THE MONEY
WENT
Software Production has a Poor 1
Track Record Example: Space 7
Software
Shuttle
Conclusion
2
What is 1
software?
▶ Computer programs and associated documentation
▶ Software products may be developed for a
particular customer or may be developed for a
general market
▶ Software products may be:
Generic - developed to be sold to a range of
▶
different customers (developed as a product)
▶ Bespoke (custom) - developed for a single customer
according to their specification (developed as a
project)
2
What is software 2
engineering?
▶ Software engineering is an engineering
discipline which is concerned with all aspects
of software production.
▶ Software engineers should adopt a systematic
and organized approach to their work and use
appropriate tools and techniques depending
on the problem to be solved, the development
constraints and the resources available.
2
Difference between 3
software
engineering and computer science?
▶ First law of
software
engineering
▶ Software engineer is willing
to learn the problem
domain (problem cannot
be solved without
understanding it first)
2
Second Law of Software 7
Engineering
▶ Software should be written for people first
▶ (Computers run software, but hardware quickly becomes
outdated)
▶ Useful + good software lives long
▶ To nurture software, people must be able to understand it.
2
8