se lecture1 ch1 software and sw engineering

28
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 1 Chapter 1 Software and Software Engineering Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use.

Upload: meev-hassan

Post on 04-Jan-2016

227 views

Category:

Documents


2 download

DESCRIPTION

Software Engineering

TRANSCRIPT

Page 1: SE Lecture1 Ch1 Software and SW Engineering

These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 1

Chapter 1

Software and Software Engineering

Slide Set to accompany

Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman

Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman

For non-profit educational use only

May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author.

All copyright information MUST appear if these slides are posted on a website for student use.

Page 2: SE Lecture1 Ch1 Software and SW Engineering

2

Page 3: SE Lecture1 Ch1 Software and SW Engineering

3

Scope of Software Scope of Software EngineeringEngineering

always with complaints like why does it take so long to get software

finished? why are development costs so high? why can’t we find all the errors before we give

to customers? why do we continue to have difficulty in

measuring progress as software is being developed?

why we always need to restart during installation?

Page 4: SE Lecture1 Ch1 Software and SW Engineering

4

Scope of Software Scope of Software Engineering (contd)Engineering (contd)

Why cannot bridge-building techniques be used to build operating systems? Attitude to collapse Imperfect engineering Complexity Maintenance

Page 5: SE Lecture1 Ch1 Software and SW Engineering

5

Bridge Collapse vs. S/W Bridge Collapse vs. S/W Failure Failure

Frequency

bridges sometimes collapse, but considerably less often than OS

Attitude to the problems

when a bridge collapses, redesign and rebuild from scratch, and,

in the same time, other bridges to be carefully inspected or even

redesigned and rebuilt

when an OS crashes, only simply to reboot in the hope that the set

of circumstances that caused the crash will not recur and there

is usually no evidence as to the cause of the crash

Page 6: SE Lecture1 Ch1 Software and SW Engineering

6

Bridge Collapse vs. S/W Bridge Collapse vs. S/W Failure (Cont.)Failure (Cont.)

Maintenance bridges: with restricted maintenance activities

software: more than 50% of the source codes rewritten over 5

years usually changed due to the changes of customers’ needs

Complexity bridges: continuous (analog) systems (time-variant)

software: discrete systems (state transition)

Page 7: SE Lecture1 Ch1 Software and SW Engineering

7

What is Software?What is Software?

an information transformer that produces, manages, acquires, modifies, displays, or transmits information

both a product and a vehicle for delivering a product the basis for the control of the computer (OS), the

communication of information (networks), the creation and control of other programs (S/W tools)

instructions (computer programs) that when executed provide desired function and performance

data structures that enable the programs to adequately manipulate information

documents that describe the operation and use of the programs

Page 8: SE Lecture1 Ch1 Software and SW Engineering

8

What is Software?What is Software?

Software is a set of items or objects that form a “configuration” that includes • programs • documents • data ...

Page 9: SE Lecture1 Ch1 Software and SW Engineering

9

Software CharacteristicsSoftware Characteristics

software is engineered software doesn’t wear out software is complex software is a ‘differentiator’ software is like an ‘aging factory’ Software is intangible

Page 10: SE Lecture1 Ch1 Software and SW Engineering

10

Software CharacteristicsSoftware Characteristics a logical rather than a physical system

element being developed or engineered, but not being

manufactured software cost concentrating in engineering, not

in materials software not “wearing out” but “deteriorating” without “spare parts” in software maintenance most software continuing to be custom built

Page 11: SE Lecture1 Ch1 Software and SW Engineering

11

CS vs SECS vs SE

Differences b/w computer science and software engineering CS: to investigate a variety of ways to produce

S/W, some good and some bad SE: to be interested in only those techniques that

make sound economic sense

Page 12: SE Lecture1 Ch1 Software and SW Engineering

12

Maintenance AspectsMaintenance Aspects

Software Life Cycle The way we produce software, including

• The life-cycle model• The individuals• CASE tools

Page 13: SE Lecture1 Ch1 Software and SW Engineering

13

Life-cycle modelLife-cycle model

1. Requirements phase2. Specification phase3. Design phase4. Implementation phase5. Integration phase (in parallel with 4)6. Maintenance phase7. Retirement

Page 14: SE Lecture1 Ch1 Software and SW Engineering

14

Approximate Relative Cost Approximate Relative Cost of Each Phaseof Each Phase Maintenance constitutes 67% of total cost

Page 15: SE Lecture1 Ch1 Software and SW Engineering

15

Comparative Relative Cost Comparative Relative Cost of Each Phaseof Each Phase

Page 16: SE Lecture1 Ch1 Software and SW Engineering

16

Good and Bad SoftwareGood and Bad Software

Good software is maintained—bad software is discarded

Different types of maintenance Corrective maintenance [about 20%] Enhancement

• Perfective maintenance [about 60%]• Adaptive maintenance [about 20%]

Page 17: SE Lecture1 Ch1 Software and SW Engineering

17

Specification and Specification and Maintenance FaultsMaintenance Faults

60 to 70 percent of faults are specification and design faults

Data of Kelly, Sherif, and Hops [1992] 1.9 faults per page of specification 0.9 faults per page of design 0.3 faults per page of code

Data of Bhandari et al. [1994]

Page 18: SE Lecture1 Ch1 Software and SW Engineering

18

Specification and Maintenance Specification and Maintenance Faults (contd.)Faults (contd.)

Faults at end of the design phase of the new version of the product 13% of faults from previous version of product 16% of faults in new specifications 71% of faults in new design

Page 19: SE Lecture1 Ch1 Software and SW Engineering

19

Cost to Detect and Correct a FaultCost to Detect and Correct a Fault

Page 20: SE Lecture1 Ch1 Software and SW Engineering

20

The Cost of ChangeThe Cost of Change

Definition Development After release

1x

1.5-6x

60-100x

Page 21: SE Lecture1 Ch1 Software and SW Engineering

21

Product Bathtub Curve ModelProduct Bathtub Curve ModelFa

ilure

Rat

e

Time

“Infant Mortality” --due to design or manufacturing defects

“Wear Out” --due to cumulative affects of environments

Page 22: SE Lecture1 Ch1 Software and SW Engineering

22

Software Idealized CurveSoftware Idealized CurveFa

ilure

Rat

e

Time

Idealized Curve

Page 23: SE Lecture1 Ch1 Software and SW Engineering

23

Software Actual Failure CurveSoftware Actual Failure CurveFa

ilure

Rat

e

Time

Idealized CurveChange

Actual Curve

Increased failure ratesdue to side effects

Page 24: SE Lecture1 Ch1 Software and SW Engineering

24

What is software What is software engineering? engineering?

Software Engineering: -- technologies that make it easier, faster, and less expensive

to build high-quality computer programs

-- a discipline aiming to the production of fault-free software,

delivered on time and within budget, that satisfies the

users’ needs

-- an engineering-like activity in software production

-- the philosophy and paradigm of established engineering

disciplines to solve what are termed software crisis

Page 25: SE Lecture1 Ch1 Software and SW Engineering

25

Software ApplicationsSoftware Applications

system software real-time software business software engineering and scientific software embedded software personal computer software web-based software artificial intelligence software

Page 26: SE Lecture1 Ch1 Software and SW Engineering

26

Software Myths Software Myths (Management)(Management)

Myth1: We already have a book that’s full of standards and procedures for building s/w, won’t that provide my people with everything they need to know?

Myth2: My people have state-of-the-art software development tools, after all, we buy them the newest computers.

Myth3: If we get behind schedule, we can add more programmers and catch up.

Myth4: If I decide to outsource the software project to a third party, I can just relax and let that firm build it.

Page 27: SE Lecture1 Ch1 Software and SW Engineering

27

Software Myths Software Myths (Customer)(Customer)

Myth1: A general statement of objectives is sufficient to begin writing programs – we can fill in the details later.

Myth2: Project requirements continually change, but change can be easily accommodated because software is flexible.

Page 28: SE Lecture1 Ch1 Software and SW Engineering

28

Software Myths (Practitioner)Software Myths (Practitioner)

Myth1: Once we write the program and get it to work, our job is done. Fact: the sooner you begin writing code, the longer it

will take you to get done. Myth2: Until I get the program “running,” I have no way

of assessing its quality. Myth3: The only deliverable work product for a

successful project is the working program. Myth4: Software engineering will make us create

voluminous and unnecessary documentation and will invariable slow us down.