Practical issues Docent: Software engineering (2IP25) Software - - PowerPoint PPT Presentation

practical issues
SMART_READER_LITE
LIVE PREVIEW

Practical issues Docent: Software engineering (2IP25) Software - - PowerPoint PPT Presentation

Practical issues Docent: Software engineering (2IP25) Software engineering (2IP25) Prof.dr. Mark van den Brand (m.g.j.v.d.brand@tue.nl), HG5.59 P f d M k d B d ( j d b d@t l) HG5 59 Meer informatie over SE (2IP25):


slide-1
SLIDE 1

Software engineering (2IP25) Software engineering (2IP25)

Prof.dr. Mark van den Brand

Practical issues

  • Docent:

P f d M k d B d ( j d b d@t l) HG5 59

  • Prof.dr. Mark van den Brand (m.g.j.v.d.brand@tue.nl), HG5.59
  • Meer informatie over SE (2IP25):
  • http://www win tue nl/~mvdbrand/courses/se/0910/
  • http://www.win.tue.nl/~mvdbrand/courses/se/0910/

− slides − opdrachten − achtergrond artikelen g

  • boek (verplicht):

− Software Engineering van Hans van Vliet, 3de editie, Wiley

/ Faculteit Wiskunde en Informatica

PAGE 1 3-2-2010

Practical issues

  • Examen:
  • Schriftelijk examen (70%)

− Materiaal: lid − slides − artikelen − boek boe

  • Praktische opgave: analyseren van URD (30%)

/ Faculteit Wiskunde en Informatica

PAGE 2 3-2-2010

Why Software Engineering in general?

  • The nature of software …
  • Software is everywhere

− dependable − robust

  • Software is intangible

− hard to understand development effort

  • Software is easy to reproduce

− cost is in its development − in other engineering products, manufacturing is the costly stage

  • The industry is labor-intensive

− hard to automate

/ Faculteit Wiskunde en Informatica

PAGE 3 3-2-2010

slide-2
SLIDE 2

Why Software Engineering?

  • The nature of software …
  • Untrained people can hack something together

− quality problems are hard to notice S ft i t dif

  • Software is easy to modify

− people make changes without fully understanding it

  • Software does not ‘wear out’

So t a e does

  • t

ea out − it deteriorates by having its design changed: − erroneously, or − in ways that were not anticipated, thus making it complex

/ Faculteit Wiskunde en Informatica

PAGE 4 3-2-2010

Why Software Engineering?

  • The nature of software …
  • Conclusions

− Much software has poor design and is getting worse D d f ft i hi h d i i − Demand for software is high and rising − We are in an ever lasting ‘software crisis’ − We have to learn to ‘engineer’ software e a e to ea to e g ee so t a e

/ Faculteit Wiskunde en Informatica

PAGE 5 3-2-2010

Why Software Engineering?

  • Types of software …

y

  • Custom

− For a specific customer G i

  • Generic

− Sold on open market − Often called O te ca ed − COTS (Commercial Off The Shelf) − Shrink-wrapped

  • Embedded

− Built into hardware − Hard to change

/ Faculteit Wiskunde en Informatica

PAGE 6 3-2-2010

Hard to change

Why Software Engineering?

  • Within 30 years the amount of software in cars went

y from 0 lines of code to more than 10,000,000 lines of code

  • More than 2000 functions are controlled by software
  • More than 2000 functions are controlled by software

in high-end cars

  • 50/70% of the development costs of hard/software

p are software costs

/ Faculteit Wiskunde en Informatica

PAGE 7 3-2-2010

slide-3
SLIDE 3

Why Software Engineering?

  • Embedded Software as Innovation Driver
  • Software is today the most crucial innovation driver for

technical systems, in general

  • By software
  • By software

− we realize innovative functions, − we find new ways of implementing known functions with reduced costs, less weight or higher quality, − we save energy and, what is, in particular, important, − we combine functions and correlate them into multi- − we combine functions and correlate them into multi- functional systems

/ Faculteit Wiskunde en Informatica

PAGE 8 3-2-2010

What is Software Engineering?

  • Software engineering is the establishment and use
  • f sound engineering principles in order to obtain
  • f sound engineering principles in order to obtain

economically software that is reliable and works efficiently on real machines

  • Other definitions:
  • The process of solving customers’ problems by the systematic
  • The process of solving customers problems by the systematic

development and evolution of large, high-quality software systems within cost, time and other constraints

  • IEEE: (1) the application of a systematic, disciplined, quantifiable

( ) pp y , p , q approach to the development, operation, maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).

/ Faculteit Wiskunde en Informatica

PAGE 9 3-2-2010

What is Software Engineering?

  • Software engineering concerns the development of

large programs large programs

  • Moving from programming-in-the-small to programming-in-

the-large

  • Mastering complexity
  • Evolution

Effi i f ft d l t

  • Efficiency of software development
  • Cooperation between people is an integrated part
  • f programming-in-the-large

p g g g

  • Software has to supports its users effectively

/ Faculteit Wiskunde en Informatica

PAGE 10 3-2-2010

What is Software Engineering?

  • Solving customers’ problems

g

  • This is the goal of software engineering
  • Sometimes the solution is to buy, not build

Addi f t d t h l l th

  • Adding unnecessary features does not help solve the

problem

  • Software engineers must communicate effectively to

identify and understand the problem

/ Faculteit Wiskunde en Informatica

PAGE 11 3-2-2010

slide-4
SLIDE 4

What is Software Engineering?

  • Systematic development and evolution

y

  • An engineering process involves applying well

understood techniques in an organized and disciplined way way

  • Many well-accepted practices have been formally

standardized b h IEEE ISO − e.g. by the IEEE or ISO

  • Most development work is evolution

/ Faculteit Wiskunde en Informatica

PAGE 12 3-2-2010

What is Software Engineering?

  • Large, high quality software systems
  • Software engineering techniques are needed because
  • Software engineering techniques are needed because

large systems cannot be completely understood by

  • ne person
  • Identification of missing quality aspects before

building

  • Teamwork and co-ordination are required

q

  • Key challenge: dividing up the work and ensuring that

the parts of the system work properly together

  • The end product must be of high quality
  • The end-product must be of high quality

/ Faculteit Wiskunde en Informatica

PAGE 13 3-2-2010

What is Software Engineering?

  • Cost, time and other constraints
  • Finite resources
  • The benefit must outweigh the cost
  • Others are competing to do the job cheaper and faster
  • Inaccurate estimates of cost and time have caused many

project failures

  • Quality attributes:
  • Usability, efficiency, reliability, maintainability, reusability
  • The different qualities can conflict

− increasing efficiency can reduce maintainability − increasing usability can reduce efficiency

/ Faculteit Wiskunde en Informatica

PAGE 14 3-2-2010

Stakeholders in Software engineering

  • 1. Users
  • Those who use the software
  • 2. Customers
  • Those who pay for the software
  • 3. Software developers

4 Development Managers

  • 4. Development Managers

/ Faculteit Wiskunde en Informatica

PAGE 15 3-2-2010

slide-5
SLIDE 5

Software Quality...

  • Usability
  • Users can learn it and fast and get their job done easily
  • Users can learn it and fast and get their job done easily
  • Efficiency
  • It doesn’t waste resources such as CPU time and memory
  • Reliability
  • It does what it is required to do without failing

M i t i bilit

  • Maintainability
  • It can be easily changed
  • Reusability
  • Its parts can be used in other projects, so reprogramming

is not needed

16

Software Quality and the Stakeholders

User:

easy to learn;

Customer:

solves problems at an acceptable cost in efficient to use; helps get work done an acceptable cost in terms of money paid and resources used QUALITY SOFTWARE

Developer:

easy to design;

Development manager:

sells more and pleases customers easy to maintain; easy to reuse its parts pleases customers while costing less to develop and maintain

17

Software Quality: Conflicts and Objectives Objectives

  • The different qualities can conflict
  • Increasing efficiency can reduce maintainability or

reusability

  • Increasing usability can reduce efficiency

g y y

  • Setting objectives for quality is a key engineering

activity

  • You then design to meet the objectives
  • Avoids ‘over-engineering’ which wastes money

O ti i i i l ti

  • Optimizing is also sometimes necessary
  • E.g. obtain the highest possible reliability using a fixed

budget

18