slide 1.1 © the mcgraw-hill companies, 2002 object-oriented and classical software engineering...

29
Slide 1. 1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach [email protected]

Post on 21-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Slide 1.1

© The McGraw-Hill Companies, 2002

Object-Oriented and Classical Software

Engineering

Fifth Edition, WCB/McGraw-Hill, 2002

Stephen R. [email protected]

Slide 1.2

© The McGraw-Hill Companies, 2002

CHAPTER 1

SCOPE OF SOFTWARE ENGINEERING

Slide 1.3

© The McGraw-Hill Companies, 2002

Outline

Historical aspects Economic aspects Maintenance aspects Specification and design aspects Team programming aspects The object-oriented paradigm Terminology

Slide 1.4

© The McGraw-Hill Companies, 2002

Scope of Software Engineering

Historical Aspects– 1968 NATO Conference, Garmisch– Aim: to solve the “Software Crisis”– Software is delivered

» Late» Over budget» With residual faults

Slide 1.5

© The McGraw-Hill Companies, 2002

Scope of Software Engineering (contd)

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

Slide 1.6

© The McGraw-Hill Companies, 2002

Conclusion

Software Engineering is not “Engineering”

Slide 1.7

© The McGraw-Hill Companies, 2002

Economic Aspects

Economically viable techniques Coding method CMnew is 10% faster than currently

used method CMold. Should it be used?– Common sense answer

» Of course!

– Software Engineering answer » Consider the effect of CMnew on maintenance

Slide 1.8

© The McGraw-Hill Companies, 2002

Maintenance Aspects

Software Life Cycle– The way we produce software, including

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

Slide 1.9

© The McGraw-Hill Companies, 2002

Life-cycle model

1. Requirements phase

2. Specification phase

3. Design phase

4. Implementation phase

5. Integration phase (in parallel with 4)

6. Maintenance phase

7. Retirement

Slide 1.10

© The McGraw-Hill Companies, 2002

Approximate Relative Cost of Each Phase

1976–1981 data Maintenance constitutes 67% of total cost

Slide 1.11

© The McGraw-Hill Companies, 2002

Comparative Relative Cost of Each Phase

Slide 1.12

© The McGraw-Hill Companies, 2002

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

Effect of CMnew on maintenance

Slide 1.13

© The McGraw-Hill Companies, 2002

Specification and Maintenance 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]

Slide 1.14

© The McGraw-Hill Companies, 2002

Specification and Maintenance 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

Slide 1.15

© The McGraw-Hill Companies, 2002

Cost to Detect and Correct a Fault

Slide 1.16

© The McGraw-Hill Companies, 2002

Team Programming Aspects

Hardware is cheap– We can build products that are too large to be written

by one person in the available time Teams

– Interface problems– Meetings

Slide 1.17

© The McGraw-Hill Companies, 2002

The Object-Oriented Paradigm

The structured paradigm had great successes initially– It started to fail with larger products (> 50,000 LOC)

Maintenance problems (today, up to 80% of effort)

Reason: structured methods are – Action oriented (finite state machines, data flow

diagrams); or – Data oriented (entity-relationship diagrams,

Jackson’s method);– But not both

Slide 1.18

© The McGraw-Hill Companies, 2002

The Object-Oriented Paradigm (contd)

Both data and actions are of equal importance Object:

– Software component that incorporates both data and the actions that are performed on that data

Example:– Bank account

» Data: account balance

» Actions: deposit, withdraw, determine balance

Slide 1.19

© The McGraw-Hill Companies, 2002

Structured versus Object-Oriented Paradigm

Information hiding Responsibility-driven design Impact on maintenance, development

Slide 1.20

© The McGraw-Hill Companies, 2002

Key Aspects of Object-Oriented Solution

Conceptual independence– Encapsulation

Physical independence – Information hiding

Impact on development– Physical counterpart

Impact on maintenance– Independence effects

Slide 1.21

© The McGraw-Hill Companies, 2002

Responsibility-Driven Design

Also called “Design by Contract” Send flowers to your aunt in Iowa City

– Call 1-800-FLOWERS– Where is 1-800-FLOWERS?– Which Iowa City florist does the delivery?– Information hiding

Object-oriented paradigm– “Send a message to a method [action] of an object“

Slide 1.22

© The McGraw-Hill Companies, 2002

Transition From Analysis to Design

Structured paradigm:– Jolt between analysis (what) and design (how)

Object-oriented paradigm:– Objects enter from very beginning

Slide 1.23

© The McGraw-Hill Companies, 2002

Analysis/Design “Hump”

Systems analysis– Determine what has to be done

Design– Determine how to do it– Architectural design—determine modules– Detailed design—design each module

Slide 1.24

© The McGraw-Hill Companies, 2002

Removing the “Hump”

Object-oriented analysis– Determine what has to be done– Determine the objects

Object-oriented design– Determine how to do it– Design the objects

Slide 1.25

© The McGraw-Hill Companies, 2002

In More Detail 

Objects enter here

Slide 1.26

© The McGraw-Hill Companies, 2002

Warning

Do not use the object-paradigm to enhance a product developed using the structured paradigm– Water and oil do not mix

Exception: if the new part is totally disjoint– Example: adding a GUI (graphical user interface)

Slide 1.27

© The McGraw-Hill Companies, 2002

Terminology

Quality  Program, system, product  Methodology, paradigm Method and technique Client, developer, user Bug

– “A bug crept into the code”

instead of

– “I made a mistake”

Slide 1.28

© The McGraw-Hill Companies, 2002

Object-Oriented Terminology

Data component of an object– State variable– Instance variable (Java)– Field (C++)– Attribute (generic)

Action component of an object– Member function (C++)– Method (generic)

Slide 1.29

© The McGraw-Hill Companies, 2002

Object-Oriented Terminology (contd)

C++: A member is either an– Attribute (“field”), or a– Method (“member function”)

Java: A field is either an– Attribute (“instance variable”), or a– Method