software engineering lecture # 1. what is software? 2 software is a set of items or objects that...

30
Software Engineering Lecture # 1

Upload: amberly-gibson

Post on 30-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Software EngineeringLecture # 1

Page 2: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

What is Software?

2

Software is a set of items or objects that includes:

• programs • data • documents

Page 3: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Why is it important?

Page 4: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Importance of Software• Software in everyday life• Business decisions• Products and services• Technology and innovations• Industry and entertainment• Economic significance

4

Page 5: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Importance of Software …

•Software acts as basis for:

• Control of computer – operating systems

• Communication of information – internet

• Creation and control of other programs – software tools and environments

5

Page 6: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Hardware Vs. Software

Hardware• Wears out• Replaceable spare parts

Software• Does not wear out• No spare parts

6

Software characteristics:

• Intangible

• Exhibits aging

• Complex

• Deteriorates (Decline, Depreciate)

• Defect prone

Page 7: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Hardware Vs. Software …

7

Fai

lure

Rat

e

Time

Infant MortalityWear out

Hardware Failure Curve

Page 8: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Wear Vs. Deterioration

8

idealized / theoretical curve

change

actual curve

Failurerate

Time

increased failure rate

due to side effects

Software deteriorates and becomes complex

Page 9: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

The source of inherent complexity in software

The difference between a software system and a

car !!

Page 10: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Complexity in Software• Complexity of software arises from

• Complexity of problem domain• Difficulty in managing development process• Software evolution

• Direct consequence of software change is software defects

10

The complexity of software is an essential property, not an accidental one

Page 11: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Cost of Software• Software costs often dominate system costs. The costs of

software on a PC are often greater than the hardware cost

• Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs

11

Page 12: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

The Cost of Change

12Definition Development After release

1x

1.5-6x

60-100x

Page 13: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

13

The name of the game is continuous change and evolution

in all dimensions!

Page 14: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Engineering

The study concerned with putting scientific knowledge

to practical useWebster’s

Dictionary

14

Page 15: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Engineering…• A way of approaching a problem• An approach to productively use scientific knowledge• Examples:

• Electrical Engineering• Mechanical Engineering• Civil Engineering

15

Physics as basic science

Page 16: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Difference between Computer Science and Software Engineering

16

Software Engineering uses knowledge from Computer Science to effectively build

software

Page 17: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Software Crisis

• A Historical Perspective (1950’s)• The advent of more powerful and cheaper hardware

resulted in more complex applications. • The tools and technologies for primitive computer

systems were inadequate for newer systems• Resulted in

• Prolonged schedule slippages• Astronomical development and maintenance costs• Unreliable software systems• Disappointment !!!

Software was in Crisis17

Page 18: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

The Birth of Software Engineering

• Born in 1960 in a conference on Software Crisis• Software Crisis resulted in realization that:

18

“Coding” alone was not enough!!

New techniques and methods were required to control the complexity

inherent in “LARGE” software systems

Page 19: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

The Birth of Software Engineering…

• Decision There should be some engineering principles applied for the

development of successful software

19

The Term ‘Software Engineering’ was coined

Page 20: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Software Engineering-Definitions

IEEE

The application of a systematic, disciplined, quantifiable approach to

the development, operation, and maintenance of software; that is, the

application of engineering to software

20

Page 21: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Software Engineering-Definitions

Ian Sommerville- All aspects of software production:Software engineering is not just concerned with the technical processes of software development, but also with activities such as software project management and with the development of tools, methods and theories to support software production

21

Page 22: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Software Engineering

22

Software Engineering is not just about producing software, but about

producing software in a COST-EFFECTIVE manner.

The set of processes and tools to develop software

Page 23: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Software Engineering: Points to Remember

• SE is has a wide scope and is concerned with anything that has something to do with software

• SE is concerned with cost effective software development

• SE is NOT just coding; there is a lot more to it

23SE is nothing but a disciplined and systematic

approach to developing software

Page 24: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

No Silver Bullet• Fred Brooks, “The Mythical Man-month”• There is no short cut to software development• Software can be disastrous to managers in the form of:

• Schedule slippages• High costs• Delivery of unreliable systems

24Begin upright and upfront with a systematic approach to building software

Page 25: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Characteristics of a Well Engineered Software

• Provides the required functionality

• Maintainable

25

· Efficient· User-friendly· Cost-effective• Reliable

Page 26: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

A software engineer is challenged to produce high-quality software with a finite amount of resources, within

predicted schedule and budget

26

Page 27: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

The Balancing Act

• Software requirements may be conflicting

• Cost vs. Efficiency• Cost vs. Reliability• Efficiency vs. User-interface

27

Page 28: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Challenge is to balance these requirements

28

Page 29: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Effort Breakdown Breakdown of activities involved in software development (Caper Jones)

• Project Management 8.08%• Requirements 14.43%• Design 11.36% • Coding 13.50%• SQA 30.64%• SCM 13.02%• Integration 6.54%• Miscellaneous ~3%

29SE is NOT just Coding !!

Page 30: Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents

Software Engineering is nothing but a disciplined and systematic approach to software development!

(In a cost effective manner)30