KEMBAR78
SE Lec1 | PDF | Science | Software
0% found this document useful (0 votes)
17 views22 pages

SE Lec1

The document outlines the distinctions between science and engineering, emphasizing that engineering applies scientific knowledge to solve practical problems. It discusses software engineering as a systematic process for developing high-quality software systems, contrasting it with hardware and addressing the challenges of legacy software systems. The goal of modern software engineering is to create methodologies that accommodate the continuous evolution of software systems.

Uploaded by

x4102671
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views22 pages

SE Lec1

The document outlines the distinctions between science and engineering, emphasizing that engineering applies scientific knowledge to solve practical problems. It discusses software engineering as a systematic process for developing high-quality software systems, contrasting it with hardware and addressing the challenges of legacy software systems. The goal of modern software engineering is to create methodologies that accommodate the continuous evolution of software systems.

Uploaded by

x4102671
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Software Engineering

1
What is Science
 Science (from the Latin scientia, 'knowledge’): any systematic
knowledge or practice.

 Science refers to a system of acquiring knowledge through research


based on the scientific method,

 It is done through observation of natural phenomena, and/or through


experimentation that tries to simulate natural processes under
controlled conditions.

2
What is Science

3
What is Engineering

• Engineering is applied science.


• Engineering is the application of science for practical
purposes.
• Engineers put theory into practice.
• “Engineering can be defined as the application of practical
and scientific knowledge to the solving of a problem through
the use of methodological process”.

4
Science vs Engineering
 Knowledge  Application of knowledge
 Science seeks to explain  Engineering seeks to
phenomena through apply natural laws to the
theory, hypothesis, and solution of practical
experiment, in an effort problems.
to ascertain natural laws.
 For example, chemistry  For example, chemical
investigates the structure engineering might use the
of chemicals and their results of chemistry to
interactions. come up with a better way
of refining gasoline.

5
Computer Science as a Science
 Theory
 Computability, automata, discrete computational
structures
 Algorithm Analysis
 Hypothesis
 That a certain algorithm will solve a problem
 Experiment
 Run a program implementing the algorithm

6
Computer Science and Software
Engineering (Difference)
Computer Add
Science Customers

Customer

Theory of Algorithms & Programming


Computation Data Languages
Structures
Problem

Software
Engineering

Tools and Techniques


to Solve Problem
7
What is Software?
 It is general term for various kinds of programs
used to operate computers and related devices.

 Program is set of instructions.

 Software is set of programs.

8
Definition of Software Engineering
• The process of solving customers’ problems by
the systematic development and evolution (well
understood techniques in an organized and
disciplined way) of large, high-quality software
systems (Teamwork and co-ordination, division
of work) within cost, time and other constraints
(Finite resources, estimates cost and time).

9
Software Project Success Triangle

Failure

et

Tim
dg
Bu
Success

e
Scope

10
Software Engineering Layers

Software engineering encompasses a process,


methods for managing and engineering
software, and tools.

11
Software vs Hardware
 Software: Intangible  Hardware: Tangible
parts of computer parts of computer
 Software is a logical  Hardware is a physical
system element. system element
 Software is  Hardware is
developed or manufactured in the
engineered. classical sense.

12
Similarities and Differences
 Although some similarities exist between software
development and hardware manufacturing, the two
activities are fundamentally different. In both
activities, high quality is achieved through good
design, but the manufacturing phase for hardware
can introduce quality problems that are nonexistent
or easily corrected) for software.
 Both activities are dependent on people, but the
relationship between people applied and work
accomplished is entirely different.
 Both activities require the construction of a
“product,” but the approaches are different.
 Software costs are concentrated in engineering.
13
Failure curve for hardware
 Hardware wears out with time.
 The relationship shown is called the
“bathtub curve”.

14
Failure rate curve for software
 Software does not “wear out” but it does
deteriorate.
 The relationship shown is shown through
“idealized curve” and “actual curve”.

15
“Wear out” aspect
 When a hardware component wears out, it is
replaced by a spare part. There are no
software spare parts.
 Every software failure indicates an error in
design or in the process through which design
was translated into machine executable code.
 Therefore, the software maintenance tasks
that accommodate requests for change
involve considerably more complexity than
hardware maintenance.

16
Software Application Domains (7
categories)
 System software
 Application software
 Engineering/scientific software
 Embedded software
 Product-line software
 Web applications
 Artificial intelligence software

Read from Software Engineering book in


detail (Roger Pressman)

17
Legacy Software
 Legacy software systems were developed
decades ago and have been continually
modified to meet changes in business
requirements and computing platforms.

 The proliferation of such systems is causing


headaches for large organizations who find
them costly to maintain and risky to evolve.

18
Problems in Legacy systems
 Most legacy systems are of poor quality
(inextensible designs, convoluted code, poor
or nonexistent documentation, poor testing,
poor change management).
 What to do?
 Do nothing, at least until the legacy system
must undergo some significant change.
 If the legacy software meets the needs of its
users and runs reliably, it isn’t broken and
does not need to be fixed.

19
Evolution of Legacy systems
However, as time passes, legacy systems often
evolve for one or more of the following reasons:
 The software must be adapted to meet the needs of new
computing environments or technology.
 The software must be enhanced to implement new
business requirements.
 The software must be extended to make it interoperable
with other more modern systems or databases.
 The software must be re-architected to make it viable
within a network environment.
 When these modes of evolution occur, a legacy
system must be reengineered, so that it
remains viable into the future.

20
Goal of modern Software Engineering

The goal of modern software engineering is to


“devise methodologies that are founded on the
notion of evolution”; that is, the notion that
software systems continually change, new
software systems are built from the old ones,
and . . . all must interoperate and cooperate
with each other” [Day99].

21
BOOKs
 Course Books
 Software Engineering, Ian Sommerville Addison
Wesley, 9th Ed
 Software Engineering: A Practitioner's
Approach, Roger Pressman
 Reference Books
 Software Engineering, Theory and Practice by
Pfleeger, 3rd Edition.
 Applying UML Patterns by Craig Larman

22

You might also like