Download presentation
Presentation is loading. Please wait.
1
MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 1 Madalina Croitoru IUT Montpellier
2
MADALINA CROITORU croitoru@lirmm.fr 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).
3
MADALINA CROITORU croitoru@lirmm.fr 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.
4
MADALINA CROITORU croitoru@lirmm.fr Software engineering has a wide scope Mathematics Computer science Economics Management Ethics
5
MADALINA CROITORU croitoru@lirmm.fr Famous engineering failures
6
MADALINA CROITORU croitoru@lirmm.fr Tacoma bridge 1940
7
MADALINA CROITORU croitoru@lirmm.fr 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
8
MADALINA CROITORU croitoru@lirmm.fr Complexity The main problem is complexity UNIX contains 4 million lines of code WINDOWS 2000 – 10 18 lines of code Software engineering is about managing this complexity
9
MADALINA CROITORU croitoru@lirmm.fr 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
10
MADALINA CROITORU croitoru@lirmm.fr Software crisis Survey of outcomes from Standish Group 280,000 development projects 1.Successful 2.Cancelled 3.Late, over budget, incomplete
11
MADALINA CROITORU croitoru@lirmm.fr 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.
12
MADALINA CROITORU croitoru@lirmm.fr 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.
13
MADALINA CROITORU croitoru@lirmm.fr Goals of software engineering Satisfy user requirements High reliability Low maintenance costs Deliver on time Low production cost High performance Ease of reuse
14
MADALINA CROITORU croitoru@lirmm.fr 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
15
MADALINA CROITORU croitoru@lirmm.fr 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
16
MADALINA CROITORU croitoru@lirmm.fr 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
17
MADALINA CROITORU croitoru@lirmm.fr 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
18
MADALINA CROITORU croitoru@lirmm.fr Production costs US Software production 1985: 70 billion $ US Software production 2000: 700 billion$ US Software production 2015: ???
19
MADALINA CROITORU croitoru@lirmm.fr 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.)
20
MADALINA CROITORU croitoru@lirmm.fr
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.