se lecture1 ch1 software and sw engineering

Post on 04-Jan-2016

234 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Software Engineering

TRANSCRIPT

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.

2

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?

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

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

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)

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

8

What is Software?What is Software?

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

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

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

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

12

Maintenance AspectsMaintenance Aspects

Software Life Cycle The way we produce software, including

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

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

14

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

15

Comparative Relative Cost Comparative Relative Cost of Each Phaseof Each Phase

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%]

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]

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

19

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

20

The Cost of ChangeThe Cost of Change

Definition Development After release

1x

1.5-6x

60-100x

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

22

Software Idealized CurveSoftware Idealized CurveFa

ilure

Rat

e

Time

Idealized Curve

23

Software Actual Failure CurveSoftware Actual Failure CurveFa

ilure

Rat

e

Time

Idealized CurveChange

Actual Curve

Increased failure ratesdue to side effects

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

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

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.

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.

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.

top related