MADALINA CROITORU [email protected] Software Engineering week 1 Madalina Croitoru IUT Montpellier.

20
MADALINA CROITORU [email protected] Software Engineering week 1 Madalina Croitoru IUT Montpellier
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    220
  • download

    0

Transcript of MADALINA CROITORU [email protected] Software Engineering week 1 Madalina Croitoru IUT Montpellier.

MADALINA [email protected]

Software Engineeringweek 1

Madalina CroitoruIUT Montpellier

MADALINA [email protected]

What is Software Engineering?

• The IEEE Computer Society defines software engineering as:

– The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

– The study of approaches as in (1).

MADALINA [email protected]

Engineering (a definition)• The application of applied science

and mathematics to produce solutions to problems or produce a product.

• In software engineering, we produce software; programs, documentation and configuration.

• There are two types of software: generic and bespoke.

MADALINA [email protected]

Software engineering has a wide scope

• Mathematics• Computer science• Economics• Management• Ethics

MADALINA [email protected]

Famous engineering failures

MADALINA [email protected]

Tacoma bridge 1940

MADALINA [email protected]

The day the phones stopped ringing

• A single missing “break” statement in a C program resulted in the loss of a long distance telephone service in the USA

• Economic damage was about $100,000,000

• Use of formal methods– Link a model to a software implementation– UML B

MADALINA [email protected]

Complexity

• The main problem is complexity• UNIX contains 4 million lines of code• WINDOWS 2000 – 1018 lines of code• Software engineering is about

managing this complexity

MADALINA [email protected]

Difficulties

• Software development is hard• Easy case: one developer, one user

vs hard case: multiple developers, multiple users

• One person techniques do not scale up

MADALINA [email protected]

Software crisisSurvey of outcomes

from Standish Group

280,000 development projects

1. Successful

2. Cancelled

3. Late, over budget, incomplete

128%

223%

349%

MADALINA [email protected]

Whittaker paper common reasons

• Poor project planning. Specifically, inadequate risk management and a weak project plan. Risk management becomes more important as the organization gets bigger, so larger organizations need to pay more attention to this area.

• A weak business case. The need for the system should be justified in ways that relate directly to the organization's business needs.

MADALINA [email protected]

More reasons

• Lack of top management involvement and support. This often dooms the project to failure before it starts. Securing buy-in from the top, often by a strong business case backed up with a realistic project plan, is an essential step.

MADALINA [email protected]

Goals of software engineering

• Satisfy user requirements

• High reliability• Low maintenance costs• Deliver on time• Low production cost• High performance• Ease of reuse

MADALINA [email protected]

Satisfying user requirements

• Large-scale commissioned systems:– 45% delivered but not used– 27% paid for but not delivered– 17% abandoned– 6% used after changes– 5% used as delivered

• Users find it hard to articulate what they want

• Developers find it hard to understand what users say

MADALINA [email protected]

Low maintenance costs

• Maintenance: what is done to the software after it starts being used – 65% of overall project cost

• Corrective: fixing bugs• Adapting: altering software to

adapt to changing software• Perfective: new requirements• Preventative: prevents further

maintenance

MADALINA [email protected]

Reliability

• You can prove bugs are there but cannot prove they are not

• Bugs are expensive in terms of:– Human lives– Money– Poor customer relations

MADALINA [email protected]

Delivery on time• Relationship person-

months vs development time is not linear:– Adding person-months of

effort to a project usually has no effect

– Sometimes makes the project slower

• It is really hard to predict when a project will complete and how much effort will require

MADALINA [email protected]

Production costs

• US Software production 1985: 70 billion $

• US Software production 2000: 700 billion$

• US Software production 2015: ???

MADALINA [email protected]

Ease of reuse

• Goal of system reuse: use same software in different systems:– Reduce development cost– Increase reliability

• Most software has two parts:– Environment independent

part– Environment dependent (GUI

etc.)

MADALINA [email protected]