0% found this document useful (0 votes)
2 views

WS11 EiSE 03 What is Software Engineering

The document provides an overview of software engineering, defining software and its properties, and discussing the historical context and evolution of the discipline. It highlights the challenges faced in software projects, including the 'software crisis' and the importance of systematic approaches to software development. Additionally, it addresses various areas of software engineering, such as requirements, design, testing, and maintenance, while also presenting a critical view on the control and measurement of software projects.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

WS11 EiSE 03 What is Software Engineering

The document provides an overview of software engineering, defining software and its properties, and discussing the historical context and evolution of the discipline. It highlights the challenges faced in software projects, including the 'software crisis' and the importance of systematic approaches to software development. Additionally, it addresses various areas of software engineering, such as requirements, design, testing, and maintenance, while also presenting a critical view on the control and measurement of software projects.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Dr.

Michael Eichberg
Software Engineering
Department of Computer Science
Technische Universität Darmstadt

Introduction to Software Engineering

What is
Software Engineering?
What is
Software Engineering?
• What is Software?

What is Software? | 3

“Software” - The programs and other


operating information used by a computer.

New Oxford American Dictionary; 2005



What is Software? | 4

[...] software is not just the programs but also all


associated documentation and configuration
data that is needed to make these programs
operate correctly.

I. Sommerville
Software Engineering Eighth Edition; Pearson Education,
2007

What is Software? | 5

The term software refers to a program and all of


the associated information and materials needed
to support its…
installation,
operation,
repair and
enhancement.

W. S. Humphrey
The Software Engineering Process: Definition and Scope;
ACM SIGSOFT Software Engineering Notes, Vol. 14, Issue 4,
1989
Software is more than just code.
What is Software? | 6

• An executable program and its data


• Configuration files
• System documentation
(e.g. architectural and analysis model, a design document,...)
• User documentation
• A website
(To inform about issues, download updates,...)
• ...
What is
Software Engineering?
• Properties of Software
Software has unique properties when compared to any
hardware.
Properties of Software | 8

• No “real” physical borders


• Software doesn’t wear out / there are no spare-parts
Nevertheless, Software has to be constantly updated to cope with
changing environments; otherwise the software will become
obsolete (software aging).
• Software is hard to “measure”
How to define the quality of software?
Are those things (e.g. the lines of code) that can be measured
correlated to the quality? How can we measure progress?

“To Code is to Design”...


Several types of software can be distinguished.
Properties of Software | 9

• Generic products (shrink-wrapped software)


e.g. Microsoft Word, Open Office, Acrobat,…
to shrink-wrap =dt. einschweißen; in Schrumpffolie verpacken
• Customized products
(individual software, build-to-order software)
e.g. TUCaN (Campusnet), an Air Traffic Control System, …

The borders are blurring (e.g. Enterprise Resource Planning (ERP)


software is often customized to match the workflows in a
particular company).

Properties of Software | 10

Application software lifetime

System software lifetime

Hardware lifetime

time

Balzert
Lehrbuch der Softwaretechnik; Spektrum Akademischer
Verlag, 1996
What is
Software Engineering?

What is Engineering? | 12

(Hardware) “Engineering”
The branch of science and technology concerned
with the design, building, and use of engines,
machines, and structures.

New Oxford American Dictionary; 2005


The term “Software Crisis” was coined in the 60’s and
refers to multiple problems.
What is Software Engineering? | 13

• The costs for hardware were falling, but the costs for
software were rising significantly
• Software projects were not in-time, were not in-budget and
contained too many errors
• Technological issues
• Lack of suitable programming languages
• Lack of methods
• Lack of tool support
• ...
The term “Software Engineering” was coined at the
end of the sixties and is often attributed to F.L. Bauer.
What is Software Engineering? | 14

The NATO Software Engineering Conference


(Garmisch, Germany, 7-11 Oct 1968)
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/N1968/index.html

(Software Engineering ~ dt. Softwaretechnik / Softwaretechnologie)



What is Software Engineering? | 15

Software Engineering refers to the disciplined


application of engineering, scientific, and
mathematical principles and methods to the
economical production of quality software.
[…] quality refers to the degree to which a product
meets its users’ needs.

W. S. Humphrey
The Software Engineering Process: Definition and Scope;
ACM SIGSOFT Software Engineering Notes, Vol. 14, Issue 4,
1989

What is Software Engineering? | 16

“Software Engineering”
(1) The application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of software; that
is, the application of engineering to software.
(2) The study of approaches as in (1).

IEEE Standards Board


IEEE Standard Glossary of Software Engineering Terminology
Std. 610.12-1990, 1990

What is Software Engineering? | 17

“Software Engineering”
Software engineering is a systematic and
disciplined approach to developing software. It
applies both computer science and engineering
principles and practices to the creation,
operation, and maintenance of software
systems.

[Computer Science is concerned with the theories and methods that


underlie computers and software systems, software engineering is
concerned with the practical problems of producing software.]

University of Waterloo
http://www.softeng.uwaterloo.ca/ (since 2007)

What is Software Engineering? | 18

[…] Der Begriff Software-Engineering steht für die


Auffassung, dass die Erstellung, Anpassung und
Wartung von Programmsystemen kein
“künstlerischer”, sondern vorwiegend ein
ingenieurmäßig verlaufender Prozess ist...

Duden Informatik; 1993



What is Software Engineering? Is the Software Crisis still with us? | 19

This year's [2009] results show a marked decrease


in project success rates, with 32% of all projects
succeeding which are delivered on time, on
budget, with required features and functions.
44% were challenged which are late, over budget,
and/or with less than the required features and
functions and 24% failed which are cancelled prior
to completion or delivered and never used.
These numbers represent a downtick in the
success rates from the previous study, as well as a
significant increase in the number of failures[...]

Standish Group, Boston, Massachusetts, April 23, 2009


CHAOS Summary 2009
New Standish Group report shows more project failing and less successful
projects.
Software projects fail due to several different reasons.
(A software project is considered to have failed as soon as the
project is not on-time and in-budget).
What is Software Engineering? Is the Software Crisis still with us? | 20

• The requirements and system dependencies are not well-


defined
• Changing the requirements during the development is
much, much easier for software than for hardware;
(Software has to accommodate for hardware “issues”.)
• Lack of tools, methods, education, planning, ...

However, other complex and innovative hardware systems are


also often behind schedule (e.g. the Airbus A380, the Boeing
Dreamliner, the white iPhone).
Engineering Software is about getting the design right
and less about building the 42nd A380.

What is Software Engineering? Is the Software Crisis still with us? | 21

In the just-released report, CHAOS Manifesto


2011, The Standish Group's shows a marked
increase in project success rates from 2008 to
2010. These numbers represent an uptick in the
success rates from the previous study, as well as a
decrease in the number of failures. […]
This year's results represent the highest success
rate in the history of the CHAOS Research.
[…] "We clearly are entering a new understanding
of why projects succeed or fail." This
understanding is spelled out in the CHAOS
Manifesto research report.

Standish Group, Boston, Massachusetts, March 3, 2011


CHAOS Manifesto 2011
New Standish Group report shows more projects are successful and less projects
failing.
Software engineering encompasses several areas.
What is Software Engineering? | 22

• Software Requirements
The requirements define what the system is expected to do.

• Software Design
How the system is designed.

• Software Testing
The systematic identification (and elimination) of errors.

• Software Maintenance
• Software Configuration Management
The management of different versions and configuration of a software.

• Software Engineering Process


Definition and improvement of software development processes.

• Software Engineering Tools and Methods


• Software Quality
Software engineering encompasses several areas.
What is Software Engineering? | 23

• Software Requirements
The requirements define what the systems is expected to do.

• Software Design
How the system is designed.

• Software Testing
Primary focus
The systematic elimination of errors.
of this lecture.
• Software Maintenance
• Software Configuration Management
The management of different versions and configuration of a software.

• Software Engineering Process


Definition and improvement of software development processes.

• Software Engineering Tools and Methods


• Software Quality
Systems Engineering ↔ Software Engineering
What is Software Engineering? | 24

• System related activities, such as defining the overall


system objectives and requirements, allocating system
functions between hardware and software, defining
hardware / software interfaces, full system acceptance
tests are essential, but they are part of systems
engineering
• Software Engineering is a part of systems engineering

We will not talk about systems engineering in this lecture.


What is
Software Engineering?
• A Critical View of Software Engineering

A Critical View of Software Engineering | 26

viewpoints
C o n t a c t E d i t o r : D e n n i s Tay l o r N dtaylor @computer.org
1982
Software Engineering:
An Idea Whose Time Has Come and Gone?
Tom DeMarco

W
e’re now just past the 40th anniver- Compelled to Control
sary of the NATO Conference on The book’s most quoted line is its first sentence:
Software Engineering in Garmisch, “You can’t control what you can’t measure.” This
Germany, where the discipline of soft- line contains a real truth, but I’ve become increas-
ware engineering was first proposed. ingly uncomfortable with my use of it. Implicit in
Because some of my early work be- the quote (and indeed in the book’s title) is that
came part of that new discipline, this seems like control is an important aspect, maybe the most im-
an appropriate moment for reassessment. portant, of any software project. But it isn’t. Many
My early metrics book, Con- projects have proceeded without much control but
trolling Software Projects: Man- managed to produce wonderful products such as
agement, Measurement, and GoogleEarth or Wikipedia.
Estimation (Prentice Hall/Your- To understand control’s real role, you need to
don Press, 1982), played a role distinguish between two drastically different kinds
in the way many budding soft- of projects:
ware engineers quantified work
and planned their projects. In N Project A will eventually cost about a mil-
my reflective mood, I’m wonder- lion dollars and produce value of around $1.1
ing, was its advice correct at the million.
time, is it still relevant, and do I N Project B will eventually cost about a million
still believe that metrics are a must for any suc- dollars and produce value of more than $50
cessful software development effort? My answers million.
are no, no, and no.
The book for me is a curious combination of What’s immediately apparent is that control is re-
generally true things written on every page but ally important for Project A but almost not at all
We welcome combined into an overall message that’s wrong. important for Project B. This leads us to the odd
your letters. It’s as though the book’s young author had never conclusion that strict control is something that
Send them to met a metric he didn’t like. The book’s deep mes- matters a lot on relatively useless projects and
software@ sage seems to be, metrics are good, more would much less on useful projects. It suggests that the
computer.org. be better, and most would be best. Today we all more you focus on control, the more likely you’re
Include your full understand that software metrics cost money and working on a project that’s striving to deliver
name, title, time and must be used with careful moderation. something of relatively minor value.
affiliation, and In addition, software development is inherently To my mind, the question that’s much more im-
email address. different from a natural science such as physics, portant than how to control a software project is,
Letters are edited

2009
and its metrics are accordingly much less precise why on earth are we doing so many projects that
for clarity in capturing the things they set out to describe. deliver such marginal value?
and space. They must be taken with a grain of salt, rather
than trusted without reservation. Continued on p. 95

96 IEEE SOFT WARE Published by the IEEE Computer Society 0 74 0 -74 5 9 / 0 9 / $ 2 5 . 0 0 © 2 0 0 9 I E E E

Tom DeMarco
IEEE Software, July/August 2009 (vol. 26 no. 4)
Freely available at:
http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/
2009/0709/rW_SO_Viewpoints.pdf

A Critical View of Software Engineering | 27

“You can’t control what you can’t measure.”


1982
Read: “You can’t control
software projects without
taking extensive
quantitative data..…”

Tom DeMarco
Controlling Software Projects: Management, Measurement, and
Estimation; Prentice Hall/Yourdon Press, 1982

A Critical View of Software Engineering | 28

“[…] My early metrics book,[…]. I’m


wondering, was its advice correct at the 1982
time, is it still relevant, and do I still believe
that metrics are a must for any successful
software development effort?
My answers are no, no, and no.
The book for me is a curious combination of
generally true things written on every page
but combined into an overall message
that’s wrong.[…]”

2009
Tom DeMarco
Software Engineering
An Idea Whose Time Has Come and Gone?

A Critical View of Software Engineering | 29

“[…] the more you focus on control, the


more likely you’re working on a project 1982
that’s striving to deliver something of
relatively minor value.
[...] we need to reduce our expectations for
exactly how much we’re going to be able to
control […].”
E.g., the value of a
project where the goal
is to “just” replace a
legacy technology is
often very limited.

2009
Tom DeMarco
Software Engineering
An Idea Whose Time Has Come and Gone?

A Critical View of Software Engineering | 30

“So, how do you manage a project without


controlling it? Well, you manage the people 1982
and control the time and money.
[...] Your job is to go about the project
incrementally, adding pieces to the whole
in the order of their relative value, and
doing integration and documentation and
acceptance testing incrementally as you
go.”

2009
Tom DeMarco
Software Engineering
An Idea Whose Time Has Come and Gone?

A Critical View of Software Engineering | 31

“I still believe it makes excellent sense to


engineer software. But that isn’t exactly 1982
what software engineering has come to
mean.
The term encompasses a specific set of
disciplines including defined process,
inspections and walkthroughs, requirements
engineering, traceability matrices, metrics,
precise quality control, rigorous planning
and tracking, and coding and
documentation standards.”

2009
Tom DeMarco
Software Engineering
An Idea Whose Time Has Come and Gone?

A Critical View of Software Engineering | 32

[...] Software development is and always


will be somewhat experimental. 1982
The actual software construction isn’t
necessarily experimental, but its conception
is.

2009
Tom DeMarco
Software Engineering
An Idea Whose Time Has Come and Gone?
What is
Software Engineering?
• Fifteen Principles of Software Engineering

Software Quality | 34

1. Make quality number 1


2. High-quality software is possible
3. Give products to customers early 1994
4. Determine the problem before writing the
requirements (...before starting to code)
5. Evaluate design alternatives
6. Use an appropriate process model
7. Use different languages for different phases
8. ...

Alan M. Davis
Fifteen Principles of Software Engineering; IEEE Software
1994

Software Quality | 35

The distance between the


7. ... real-wold problem and the
computerized solution to the
8. Minimize intellectual distance problem..

9. Put technology before tools


(Before you use a tool, you should understand and be able to
follow appropriate software technique.)

10. Get it right before you make it faster


11. Inspect code
(… Sometimes code inspections are claimed to be more effective
than testing …)

12. ...

Alan M. Davis
Fifteen Principles of Software Engineering; IEEE Software
1994

Software Quality | 36

11. ...
12. Good management is more important than
good technology
(… Management style must be adapted to the situation…)

13. People are the key to success


14. Follow with care
(Just because everybody is doing it, does not make it right for
you…)

15. Take responsibility

Alan M. Davis
Fifteen Principles of Software Engineering; IEEE Software
1994
Goal of the Lecture | 37

The goal of this lecture is to enable you to


systematically carry out small(er) commercial
or open-source projects.

Engineering software is hard; this lecture teaches you why


and (to some extent) how to tackle common problems.

Software engineering is about designing software and not


about building software.

You might also like