170 likes | 494 Views
SOFTWARE ENGINEERING. Today - motivation: - Software Engineering: Why? - Software Engineering: What?. WHY SOFTWARE ENGINEERING?. High failure rate of software projects. Expensive or dramatic failures
E N D
SOFTWARE ENGINEERING • Today - motivation:- Software Engineering: Why?- Software Engineering: What?
WHY SOFTWARE ENGINEERING? • High failure rate of software projects. • Expensive or dramatic failures • http://www.csc.calpoly.edu/~jdalbey/205/Resources/resources.html has, in addition to an also otherwise good set of links, also links to descriptions of failed software projects. • Also the partially succesfull software projects have problems. • A belief that systematic work could improve things.
HOW TO IDENTIFY SOFTWARE PROJECT SUCCESS • The product is accepted or sells • Economical profit • Low error rate • Schedule and budget are kept
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
MAJOR ERRORS • Too optimistic design • Over-emphasizing technology • Management problems • No profitability pre-evaluation • Unrealistic resources • Communication problems
SUCCESS STUDIES - ONNI’88 (Finland) • Over 100 projects • Good success: 33% • Questionable: 42% • Failure: 25%
ONNI’88 -REASONS FOR FAILURE • Inabilities of the Software Engineering personnel • Insufficient resources • Management problems
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%
USA’82 -REASONS FOR FAILURE • Organisational problems • New work methods and salary policies • Unexpected changes in business
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%
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
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 was considered to imply several different kinds of risks, but all went reasonably well
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
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
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.
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.