You are on page 1of 33

1

Fundamentals of
Software Engineering
LECTURE 2: SE MOTIVATION, APPLICATION TYPES AND PROCESSES
2

u Software Engineering: A Practitioner’s Approach,


Pressman, R.S. & Maxim B., 9th Edition, McGraw-
Hill.
Reference Material
Course Books u Software Engineering, Ninth Edition, 2010.
Sommerville, Ian Addison Wesley
u SE and Testing, b. B. Agarwal s. P. Tayal m.
Gupta, Jones and Bartlett Publishers.
3

Software
Engineering
u As defined in IEEE Standard 610.12:
u The application of a systematic,
disciplined, quantifiable approach
to the development, operation, and
maintenance of software; that is, the
application of engineering to
What is software.
u Your opinion?
Software u This definition is descriptive, not
Engineering? prescriptive
u It does not say how to do anything
u It just say what qualities S.E. should
have
u As a result, many people understand
SE differently

4
5
Why Software Engineering

u It is the best way or programs to get the following points:

q To provide the best output of software system.


q To make easy to use the software systems and develop them.
q To improve the rate of production.
q To maintain the budget for development of Software system.
q Job satisfaction of software engineering.
u It is necessary to produce a high-quality
software PRODUCT to fulfill the below
given points.
u Consistency
Why Software u Improved quality
Engineering u Minimum cost
u Within time
u Reliability &
u Fulfill the need of user

6
7
“Let’s write the “The sooner you
begin writing code,

code, so we’ll
the longer it’ll take to
60 80% of effort is

be done expended after first


delivery

Software
Engineering “Until I finish it, I
Software and design
reviews are more
effective than testing

Myths: cannot assess its (find 5 times more


bugs)

Practitioner
“There is no time
for software But is there time to
redo the software?

engineering
8

“We can refine the


requirements
Software
•A recipe for disaster.
Engineering
Myths: “The good thing about
Customer software is that we can
change it later
•As time passes, cost of changes
grows rapidly
9
We have books
with rules. Isn’t that Which book do you
think is perfect for
everything my you?

people need?”

Software
“Adding people to
Engineering “If we fall behind,
a late software
project, makes it

Myths: we add more later” Fred Brooks


(The Mythical Man
Month)

Management
–If you do not know
how to manage
and control it
“We can outsource internally, you will
struggle to do this
with outsiders
10
Software Engineering

l Software Engineering ≠ Programming


l Programming is actually a pretty small part.
l Other aspects
l Determining what to build
- Requirements (what tasks should the Software accomplish?)
- Specifications (exact operating behaviour)
l Determining how to build it (Design)
l Testing (functionality and experience)
l Debugging (functional and performance)
l Maintaining the program (new APIs, platforms, minor features)
l More and more, these are not linear steps.
l Software Engineering is a response to
“Software Crisis”
l What is a “Software Crisis”?
l it refers to the difficulty of writing
correct, understandable, and
verifiable computer programs. The
Software Crisis roots of the software crisis are
complexity, expectations, and
change.
l Does any of the software you use have
problems?
l Does any of the software you use not
have problems?

11
l Always (usually) Late
l Exceeds cost
l Doesn't satisfy specifications
Software l Bad or weak design
Development l Not understandable or modifiable

Problems l Unreliable
l Inefficient (time, memory, disk)
l Not portable
l Not secure

12
13
14

Success,
Challanged
and Failed
Project Ration
Based on
Scale
15

Why Software
Engineering?
9 SOFTWARE
PROJECTS TOTALING
$96.7 MILLION: WHERE
THE MONEY WENT
Software Production has a Poor Track 16
Record Example: Space Shuttle
Software

u Cost: $10 Billion, millions of dollars more than planned


u Time: 3 years late
u Quality: First launch of Columbia was cancelled
because of a synchronization problem with the Shuttle's
5 onboard computers.
u – Error was traced back to a change made 2 years earlier when
a programmer changed a delay factor in an interrupt handler
from 50 to 80 milliseconds.
– The likelihood of the error was small enough, that the error
u
caused no harm during thousands of hours of testing.
Substantial errors still exist. – Astronauts are supplied with a book of
known software problems "Program Notes and Waivers".
17
Ariane 5 Flight 501 – Reusability Failure

u Europe’s newest un-manned satellite-launching rocket reused


working software from its predecessor, the Ariane 4. Unfortunately,
the Ariane 5’s faster engines exploited a bug that was not found in
previous models. Thirty-six seconds into its maiden launch the
rocket’s engineers hit the self destruct button following multiple
computer failures. In essence, the software had tried to cram a 64-
bit number into a 16-bit space. The resulting overflow conditions
crashed both the primary and backup computers (which were
both running the exact same software).

u The Ariane 5 had cost nearly $8 billion to develop and was carrying
a $500 million satellite payload when it exploded.
18
National Health Service

u In the year 2016, it was discovered that the


clinical computer system SystmOne had an
error that since 2009 had been miscalculating
patient’s medicines who were at risk of heart
attack. As a result, many patients suffered heart
attacks or strokes since they were told they
were at low-risk, while other suffered from the
side-effects of taking unnecessary medication
19

End User’s
Conclusion
20
What is a Product?

u A product is something that is produced and sold in large quantities,


often as a result of a manufacturing process.
u Computer software (Apps) is a work product that software
professionals/ practitioners build/ developed and then support over
many years. These work products includes programs that executes
within computers of any size and architecture
u Software Engineering encompasses a process, a collection of
methods and an array of tools that allow professionals to build high
quality computer software product.
u Computer Software product can be used in ATM, Mobile and other
tools.
21
Who is an engineer?

u An engineer is a person who uses


scientific knowledge to design,
construct, and maintain engines and
machines or structures such as roads,
railways, and bridges.
22
What is a software?

u Computer programs and associated documentation


u Software products may be developed for a particular
customer or may be developed for a general market
u Software products may be:
u Generic - developed to be sold to a range of different
customers (developed as a product)
u Bespoke (custom) - developed for a single customer
according to their specification (developed as a project)
23
What is software engineering?

u Software engineering is an engineering


discipline which is concerned with all aspects of
software production.
u 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.
24
What is the work product?

u From the Software engineer’s pint of view,


the work product is the set of programs,
content (data/ docs) and other work
products that support computer software
Apps.
u From the user’s point of view, the work
product is a tool or product that some how
makes the user’s world better.
25
Difference between software
engineering and computer science?

u Computer science is concerned with theory


and fundamentals; software engineering is
concerned with the practicalities of developing
and delivering useful software

u Computer science theories are currently


insufficient to act as a complete underpinning
for software engineering
26
Software Engineers and their
Companions?

u Software Engineers
u Software Developers
u Software Designers
u Database Experts
u Database Administrators
u Quality Assurance Experts
u IT System Network Experts
u IT Supporting Staff
u End Users (Clients)
27
Software is Complex

u Complex ≠ complicated

u Complex = composed of many simple parts


related to one another

u Complicated = not well understood, or


explained
28

Complexity Example: Scheduling Fence Construction Tasks


Setting posts < Nailing, Painting
Cutting < Nailing …
shortest possible completion time = ?
“simple” problem, but hard to solve without a pen and paper
29
The Role of Software Engg.

u First law of software


engineering
u Software engineer is willing to
learn the problem domain
(problem cannot be solved
without understanding it first)
30
Second Law of Software Engineering

u Software should be written for people first


u (Computers run software, but hardware quickly becomes outdated)
u Useful + good software lives long
u To nurture software, people must be able to understand it.
31

Example – ATM Machine (How it works)


32

Cartoon
Strip: How
ATM
Machine
Works
33

You might also like