ohto -99 ohjelmistojen toteutus - software engineering today - motivation: - software engineering:...

16
OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING • Today - motivation: - Software Engineering: Why? - Software Engineering: What?

Upload: quentin-sharp

Post on 21-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

OHJELMISTOJEN TOTEUTUS- SOFTWARE ENGINEERING

• Today - motivation:

- Software Engineering: Why?- Software Engineering: What?

Page 2: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

WHY SOFTWARE ENGINEERING?

• High failure rate of software projects.

• Also the partially succesfull software projects have problems.

• A belief that systematic work could improve things.

Page 3: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

HOW TO IDENTIFY SOFTWARE PROJECT SUCCESS

• The product is accepted or sells

• Economical profit

• Low error rate

• Schedule and budget are kept

Page 4: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

SUCCESS FACTORS

• Good project management• Understanding the needs and freezing the

requirements• Controlled implementation and delivery• Skilled project personnel• Sufficient resources• Good communication between groups

Page 5: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

MAJOR ERRORS

• Too optimistic design• Over-emphasizing technology• Management problems• No profitability pre-evaluation• Unrealistic resources• Communication problems

Page 6: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

SUCCESS STUDIES - ONNI’88 (Finland)

• Over 100 projects

• Good success: 33%• Questionable: 42%• Failure: 25%

Page 7: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

ONNI’88 -REASONS FOR FAILURE

• Inabilities of the Software Engineering personnel

• Insufficient resources

• Management problems

Page 8: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

SUCCESS STUDIES:USA’82 - Gibson & Singer

• 18 projects

• Good success: 17%• Partly usable/in use: 28%• Satisfactory (just about?) 11%• Failure: 22%• No evaluation: 11%

Page 9: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

USA’82 -REASONS FOR FAILURE

• Organisational problems

• New work methods and salary policies

• Unexpected changes in business

Page 10: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

FORSMAN’S STUDIES (FINLAND)

• From Forsman’s book ”ATK-projektin läpivienti”, Suomen ATK-kustannus Oy, 1995

• 17 projects

• Good success: 18%• Partially usable/in use: 29%• Satisfactory (just about?): 29%• Failure: 24%

Page 11: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

FORSMAN -REASONS FOR FAILURE

• Problems in organisation and attitudes• The customer could not decide what it wants• Problems with customer and software producer

communication• Inexperience of the software producer

Page 12: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

EXAMPLES OF FAILING SOFTWARE RISKS:

• Nuclear war• General technical device malfunction

(e.g. failing life-support devices)• Economical transaction failures• Economical losses in business• Personal tragedies from faulty information• Y2K - ?

Page 13: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

A BELIEF IN SYSTEMATIC WORK AND METHODS

• There is no way to guarantee success• Sometimes also the not so good practices seem to

bring some success• However, the studies suggest that the way

software is made is meaningful for the success, at least statistically

• Practical observations support the belief

Page 14: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

LARGE SYSTEMS

• Some problems grow with the size of the software, below we give example sizes:

• Dutch KLM airline reservation system (1993), 2 000 000 assembler loc (lines of code)

• Unix System V, relese 4.0 with Xnews and X11, over 3 700 000 loc

• Nokia NMS/2000 network management system, over 2 400 000 loc

• NASA Space Shuttle software, 40 000 000 lines of object code

• IBM OS360: 5000 man years of development

Page 15: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

SOFTWARE ENGINEERING - WHAT

• IEEE: Software engineering is the systematic approach to the development, operation, maintenance, and retirement of software

• An earlier definition: Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

Page 16: OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?

OHTO -99

SOFTWARE ENGINEERING - WHAT (observations)

• Software engineering concerns the construction of large programs.

• Mastering complexity is essential.• Regular co-operation between people is an integral

part of the process.• Software evolves.• Software development efficiency is important• The software has to serve its purpose and users.