topic 1 what is software engineering? · 2011. 3. 27. · ewsd: electronic dial system digital 1960...

28
1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac Version: Oct. 27, 2005 (D Sep. 22, 2003) DAAD Project “Joint Course on Software Engineering” Topic 1 What is Software Engineering? DAAD project „Joint Course on Software Engineering“ © 2 1. What is Software Engineering ? a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering in practice - problems of software development c) On the size of software d) History of software engineering e) Several definitions of software engineering f) Problems of introducing software engineering in education g) Differences between software development in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

Upload: others

Post on 01-Sep-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

1

Humboldt University Berlin, University of Novi Sad, University of Plovdiv,University of Skopje, University of Belgrade, University of Niš, University of Kragujevac

Version: Oct. 27, 2005 (D Sep. 22, 2003)

DAAD Project“Joint Course on Software Engineering”

Topic 1What is Software Engineering?

DAAD project „Joint Course on Software Engineering“ © 2

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

Page 2: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

2

DAAD project „Joint Course on Software Engineering“ © 3

The subject of ...

compiler construction

database

software engineering

translation of higher-level programminglanguages to machine-level languages

management of complex and structured

volumes of data

?

DAAD project „Joint Course on Software Engineering“ © 4

Areas of software engineering:What belongs to it ?

„Programming is a comparatively small component of the softwareengineering field. Some of the other parts (including for example, software specification and design) are equally important.“

Project Management

Softwarespecification

User documentation

User interfacedesign

Softwaredesign

Programming Testing

Hardwareconsiderations

Software EngineeringThe World

M. Pont: Software Engineering with C++ and CASE Tools, Addison-Wesley 1996

Page 3: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

3

DAAD project „Joint Course on Software Engineering“ © 5

Areas of software engineering:from textbooks, research subjects, conferences:

(unordered, partly overlapping)

life cycle modelssoftware processes (CMM, ISO 9000)configuration managementeffort estimationproject managementquality managementcleanroom software engineeringreverse engineeringprogram comprehension(program understanding)software metricssoftware architecturesoftware maintenance

requirements engineeringsoftware specificationreuseprogram verificationsoftware documentationknowledge-based SEsystematic testingprototypingCASE toolsprogramming languages for SE object-orientation (analysis, design, programming, test)extreme programmingpair programming

DAAD project „Joint Course on Software Engineering“ © 6

Computer-Zeitung 25/96 (20. June 96)

Software DevelopmentRemains a Mixture of MethodsSoftware development as science and as a practical activity have something in common: heterogeneity.

Software DevelopmentRemains a Mixture of MethodsSoftware development as science and as a practical activity have something in common: heterogeneity.

Page 4: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

4

DAAD project „Joint Course on Software Engineering“ © 7

Software Engineeringpreliminary definitions

„Software engineering ... aims at the economical development of high-quality software“

(Pagel / Six 1994, p. 49)

„SE is an engineering discipline concerned with the practical problems of developing large software systems“

(Sommerville 1992, 4. ed., p. v)

DAAD project „Joint Course on Software Engineering“ © 8

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

Page 5: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

5

DAAD project „Joint Course on Software Engineering“ © 9

Questioning of young computer scientists working in practiceby the German Society of Informatics in 1993

importance of subareas of informatics (most important areas first)

3.593.353.263.103.103.092.99 2.962.812.602.562.502.422.412.362.362.322.312.271.871.681.641.641.581.531.371.301.271.151.131.061.040.880.850.810.810.810.63

team workproject managementsoftware engineeringleadershipdatabasesrhetoricscommunication systems / computer netsquality assurancedata structures and efficient algorithmsoperating systemssoftware ergonomicsbusiness management algorithmic fundamentals / complexitymathematical and logical fundamentalsdistributed systemsscientific work methodsdata securityinformation systemsconcepts of programming languagescomputer architecturelegal fundamentalsdisposition systemsanalysis and assessment of computer systemsgraphics and visualization systemsmodeling and simulationformal languages and automatonreal-time systemsmultimediainformatics and societyfundamentals of electronicsmachine-level programmingCIMexpert systemsfundamentals of artificial intelligenceelectrical measurementimage processingapplications of artificial intelligencepattern recognition

scoresubareas of informatics

DAAD project „Joint Course on Software Engineering“ © 10

Questioning in 1993 (detail)

3.593.353.263.103.103.092.99 2.962.812.602.562.502.422.412.362.362.322.312.271.87

team workproject managementsoftware engineeringleadershipdatabasesrhetoricscommunication systems / computer netsquality assurancedata structures and efficient algorithmsoperating systemssoftware ergonomicsbusiness management algorithmic fundamentals / complexitymathematical and logical fundamentalsdistributed systemsscientific work methodsdata securityinformation systemsconcepts of programming languagescomputer architecture

scoresubareas of informatics

activities duringsoftware development

subareas of software engineering

Page 6: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

6

DAAD project „Joint Course on Software Engineering“ © 11

Süddeutsche Zeitung No. 120 /page V1/1

25.5.1996

Tasks of software engineers in the mirror of job offers

Project manager

As a project manager you are responsible of the realization of complex application projects for our customers in industry and management.

The major goal is a satisfied customer based on an economically accomplished project ...

Project manager

As a project manager you are responsible of the realization of complex application projects for our customers in industry and management.

The major goal is a satisfied customer based on an economically accomplished project ...

DAAD project „Joint Course on Software Engineering“ © 12

3

Computer Zeitung 16.10.97

Your tasks:

• analysis of technical requirements• design of the application• programming• test and quality assurance• installation in the target environment

Your tasks:

• analysis of technical requirements• design of the application• programming• test and quality assurance• installation in the target environment

Your profile:

• experience in COBOL• knowledge of:

UNIX, Open VMS, OS/400• SQL and Database, e.g. Oracle• commercial knowledge

Your profile:

• experience in COBOL• knowledge of:

UNIX, Open VMS, OS/400• SQL and Database, e.g. Oracle• commercial knowledge

Page 7: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

7

DAAD project „Joint Course on Software Engineering“ © 13Süddeutsche Zeitung 15.12.96

Software developerYour tasks are:• analysis of requirements of a given system• feasibility analysis and effort estimation• technical specification• extension of existing software modules• regression testing and software update procedures

Software developerYour tasks are:• analysis of requirements of a given system• feasibility analysis and effort estimation• technical specification• extension of existing software modules• regression testing and software update procedures

DAAD project „Joint Course on Software Engineering“ © 14

Software

software =

properties of software:• no wastage during the operation of software• aging (software is permanently updated)

after 10 years of usage and update there is no more original line (Pagel, Six p. 35)

• long-run usagein the average 10 - 15 years (Wallmüller 90, p. 3)up to 30 years (Hausi Müller)

• easy to copy ( errors too)

• hard to measure (metrics: quality, quantity)

• rather complex

programs, data, documentation

Page 8: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

8

DAAD project „Joint Course on Software Engineering“ © 15

Complexity of software

The distinguishing characteristics of industrial-strength software is that it is intensely difficult, if not impossible, for the individual developer to comprehend all the subtleties of its design. Stated in blunt terms, the complexity of such systems exceeds the human intellectual capacity.

(Booch, Object-oriented Analysis and Design, p. 4)

DAAD project „Joint Course on Software Engineering“ © 16

Increasing complexity of software

MOI: millions of object-code instructionsEWSD: electronic dial system Digital

1960 1970 1980 1990 200060 MOI

50 MOI

40 MOI

30 MOI

20 MOI

10 MOI

EWSD forBB-ISDN

SPACESHUTTLE

APOLLOEWSD-APSWM4.2

LUNARMISSIONCONTROL

GEMINI

MERCURY

EWSD-APSDBP-14

7% annual increaseof productivity

Page 9: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

9

DAAD project „Joint Course on Software Engineering“ © 17

But: „software solutions demandhigh precision“ (Denert, p. 4)

software is …

• error prone• behaves in another way than expected

• finished too late• more expensive than planned

• not applicable

very often: project breakup

DAAD project „Joint Course on Software Engineering“ © 18

Examples of software problems

Denver airport: could not be inaugurated (not opened) in 1994 –the software for the luggage transport system did not work Siemens: account software for medicaments developed for health insurance funds was not ready in time (consequential costs of 1 billion DM - Berliner Zeitung 22.05.96)Deutsche Telekom: wrong calculation of phone rates for 1.1.96(software error: no holiday rate – damage: hundreds of millions of DM)F18 warplane: during an exercise in 1983 with new developed plane software – crossing the equator the plane turned to the head. The reason was a sign error in the program (Wallmüller 1990, p. 1).

Page 10: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

10

DAAD project „Joint Course on Software Engineering“ © 19

Examples of software problems – contd.

First space rocket to the Venus: in 1979 did not find the target:in a Fortran program they used a point instead of a comma.The loss: several hundreds millions of dollar (Wallmüller 1990, p. 1).Therac 25 - computer-controlled radiation therapy machine: between June 1985 and January 1987 6 people were overdosed (5 of them died) as a result of missing software safety lock that should prevent overdose (Berry, D.M., “Myths and realities of software development”).

DAAD project „Joint Course on Software Engineering“ © 20

Questions: statistics concerning software development (1): (Mynatt: Software Engineering, p. 1)

1. The typical software development project takes a) 1 - 5 b) 6 - 11 c) 12 - 23 d) 24 - 48 month.

2. For a medium-sized software system,a) less than 10 b) 10 - 20 c) 21 - 30 d) more than 30lines of executable source code are typically produced per day per person during the entire period of development of the system.

3. The approximate number of errors found in every 1000 lines of executable source code during development of a software system is:a) less than 30 b) 30 - 40 c) 40 - 50 d) 50 - 60

4. The approximate number of errors found in every 1000 lines of executable source code in a delivered software system is:a) less than 4 b) 4 - 8 c) 8 - 12 d) more than 12

5. Approximately what percentage of software systems that begin development are finally completed?a) 90 - 100% b) 80 - 90% c) 70 - 80% d) 60 - 70%

Page 11: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

11

DAAD project „Joint Course on Software Engineering“ © 21

Questions: statistics concerning software development (2): (Mynatt: Software Engineering, p. 1)

6. The cost of owning and maintaining of software is typically a) one half b) just c) twice times as expensive as developing the software.

7. Most errors found by users in software are the result ofa) programmer errorb) problems in the problem statement or understanding

the problem statement c) clerical errorsd) errors in the design

8. What is the amount of programming during software development ? a) 99% b) 70% c) 50% d) 20% e) 10%

9. In software development today, a system would be considered large if it contained at least a) 10.000 b) 30.000 c) 50.000 d) 100.000 Mynatt,

1990

DAAD project „Joint Course on Software Engineering“ © 22

Question: defect rate

Defect rate = number of errors in 1000 lines of code

Due to the increasing complexity of software, the defect rate developed from 1977 to 1994 in the following way:a) increase to 10 timesb) increase to 2 timesc) unchanged

Page 12: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

12

DAAD project „Joint Course on Software Engineering“ © 23

Importance of software industry

3000

2500

2000

1500

1000

500

world-wide volume in billion US$

800 8001100

13201620

2850 2900

military &

defense

engine

building

carindustry

chemical

industry

textile

industry

IT&T

Source: G.Koch, European IT Conference (EITC), Brüssel, June 1994

tourism

DAAD project „Joint Course on Software Engineering“ © 24

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

Page 13: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

13

DAAD project „Joint Course on Software Engineering“ © 25

How large is software ?classification of software according to its size:small: up to 2000 lines of codemiddle: 2000 – 100.000large: 100 000 – 1.000.000very large: > 1 Mio.(A. Macro, p. 70)

average size of software in each of the 100 largest US companies:35 Mio. lines of code(Hausi Müller, p. 3-12)

e.g. USA, DoD:1,4 billion lines of code(distributed to 1.700 data centers)operating costs for these systems:9 billion dollar / year(CACM, 5, 1994, p. 26)

DAAD project „Joint Course on Software Engineering“ © 26

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

Page 14: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

14

DAAD project „Joint Course on Software Engineering“ © 27

Historysoftware crisis:notion since the middle of the 60th in the middle of the 60thsoftware costs become larger than hardware costs (picture)

NATO conferences 1968, 69:definition of the notion software engineering

big advantagesbut: also today we have a software crisessoftware costs (world-wide)1985: 140 billion of dollars1995: 435(comparison: budget of Germany 1992: 430 billions of DM)(Balzert, Yourdon)

DAAD project „Joint Course on Software Engineering“ © 28

Hardware costs and software costs100

80

60

40

20

1955 1960 1969 1976 1985

Hardware

Software

Page 15: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

15

DAAD project „Joint Course on Software Engineering“ © 29

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

DAAD project „Joint Course on Software Engineering“ © 30

Definitions of software engineering1. „Software engineering ... aims at the economical

development of high-quality software“(Pagel / Six 1994, page 49)

2. „SE is an engineering discipline concerned with the practical problems of developing large software systems“(Sommerville 92, p. v).

3. „SE is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software“ (IEEE Standard Glossary of Software Engineering Terminology, 1990).

4. „Software engineering is a defined, step-by-step process that facilitates the specification, design, implementation, and testing of a software solution for a set of stated requirements in the most expeditious and cost-effective manner possible“ (Kehoe: ISO 9000-3, 1995, S. 11).

Page 16: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

16

DAAD project „Joint Course on Software Engineering“ © 31

Software engineering is not a special field of computer science

What it is not

compiler construction

computer communication

database

artificial intelligence

.

.

.

software engineering

Ludewig, SEUH 97, p. 11 f.

software-engineering

compiler construction

computer

communica

tion

data

base

artif

icia

l int

ellig

ence

..

.

What it really is

DAAD project „Joint Course on Software Engineering“ © 32

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

Page 17: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

17

DAAD project „Joint Course on Software Engineering“ © 33

Student software development

„Normal“ student view of software life cycle

Modesitt, LNCS 750, p 42

Read theproblem

(day 1)

Code

(day 1 ... n - 2)

Debug

(day n - 1)

Document

(day n - ε)

Hand in

(day n)

DAAD project „Joint Course on Software Engineering“ © 34

Distribution of project activities as a function of project size

0%10%20%30%40%50%60%70%80%90%

100%

1024

051

2025

6012

80 640

320

160 80 40 20 10

project size (function points)

coding

defect removal

paperwork

management andsupport

Yourdon, 1993, p. 151

Page 18: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

18

DAAD project „Joint Course on Software Engineering“ © 35

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

DAAD project „Joint Course on Software Engineering“ © 36

Software development in practicereal customerbefore programming: negotiations with customers to clarify requirements often changes of wishes of the customers misunderstandingscomplex task - complex program error-prone software high-pressure deadlinesteam workbig volume of documents:see next slideprogramming only 20 % of all activities of a project long-run usage (10 ... 25 years) modifications of software after delivery (new wishes, new hardware ...)

Page 19: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

19

DAAD project „Joint Course on Software Engineering“ © 37

Software documents(Sommerville, Software Engineering, 5th ed., p. 17)

Final system plus documentationAcceptance testingSystem test reportSystem testing

Integration test reportFinal user manual

Integration testingModule test reportModule testingUnit test reportUnit testingProgram codeCoding

Design specificationUnit test plan

Detailed design

Interface specificationIntegration test plan

Interface design

Architectural specificationSystem test plan

Architectural design

Functional specificationAcceptance test planDraft user manual

System specificationRequirements documentRequirements definition

Feasibility studyOutline requirements

Requirements analysisOutput documentsActivity

DAAD project „Joint Course on Software Engineering“ © 38

Software documents(IEEE standards)

Software Validation and Verification Plan (SVVP) Software Quality Assurance Plan (SQAP) Software Configuration Management Plan (SCMP) Software Project Management Plan (SPMP)

Software Requirements Specification (SRS) (customer oriented and developer oriented) Software Design Document (SDD) (architecture and detailed design) Source code Software Test Documentation (STD) User's manual

Page 20: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

20

DAAD project „Joint Course on Software Engineering“ © 39

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

DAAD project „Joint Course on Software Engineering“ © 40

Goals of this course(...and what we do not offer)

1. Introduction to SE 2. Overview of SE

notions, methods, tools 3. Interrelations between subareas (help for orientation) 4. Illustrating examples: continuous case study5. To go into depth: assignments6. Awareness of problems of SE7. Current problems of SE

(metrics, reverse engineering, CMM, cleanroom SE, extreme programming ...)

8. Experience with SW-tools

We do not offer: large project, customer,negotiation, change of wishes, high-pressure deadlines ...

Page 21: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

21

DAAD project „Joint Course on Software Engineering“ © 41

Software engineering in special coursesPart I: Introduction to SEPart II: Requirements engineering11. Basic concepts of state-oriented

view12. Basic concepts of scenario-based

view13. Object-oriented analysis14. Formal specification and program

verificationPart III: Design17. Object-oriented designPart IV: Implementation and testing19. Systematic testingPart VI: Advanced problems21. Software metrics23. Reverse engineering24. Quality of software development

process and its standardization

24. Software ergonomics25. Project management

Requirements Engineering (SEI, Pittsburgh, USA)Petri nets (Reisig, HU)

Formal methods of SWdevelopment (SEI, Pittsburgh, USA)

Object oriented SW development(with UML) (Fischer, HU; DMI - NS)

Software architecture (SEI)Software test methods (Spillner, Bremen)CAME-Tools (Dumke, Magdeburg)Software reengineering (Koschke, Stuttgart)PSP (SEI)CMM (SEI)Software ergonomics (Wandtke, Inst. of psychology, HU)Project Management (SEI, Pittsburgh, USA; DMI, Novi Sad, SCG)

DAAD project „Joint Course on Software Engineering“ © 42

1. What is Software Engineering ?

a) Areas of software engineering (i.e., what belongs to it) b) The importance of software engineering

in practice - problems of software development c) On the size of softwared) History of software engineeringe) Several definitions of software engineeringf) Problems of introducing software engineering in education g) Differences between software development

in educational environment and in practice h) Goals of this course i) Literature, articles, papers, ...

Page 22: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

22

DAAD project „Joint Course on Software Engineering“ © 43

Literature (1)Textbooks: • I. Sommerville: Software Engineering (742 pages),

6. ed. Addison-Wesley, 2001• H. Balzert: Lehrbuch der Software-Technik,

Spektrum-Verlag, Vol. 1: 1996, Vol. 2: 1998 (769 pages),Vol. 1 (2nd ed.): 2001 (1136 pages)

• B.-U. Pagel, H.-W. Six: Software Engineering.Addison-Wesley (895 pages), 1994 (in German)

• E. Braude: Software Engineering, An Object-Oriented Perspective, Wiley & Sons, 2001

• R. Pressman: Software Engineering, A Practitioner‘s Approach, European Adaptation (840 pages), McGraw-Hill, 5th ed., 2000

• J. Marciniak: Encyclopedia of Software Engineering, Vol. 1, 2 (1453 pages), Wiley & Sons, 1994

• IEEE Standards Collection, Software Engineering, 1994 Edition

DAAD project „Joint Course on Software Engineering“ © 44

Parts of this presentation use material from the textbook Helmut Balzert, Software Technik(Vol. 1), 2nd edition, Spektrum Akademischer Verlag, Heidelberg 2001.

In particular, topics 4 to 13 and 15 to 18 are concerned.

Page 23: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

23

DAAD project „Joint Course on Software Engineering“ © 45

Literature (2)

Journals:• IEEE Transactions on Software Engineering• IEEE Software• ACM Software Engineering Notes• ACM Transactions on Software Engineering and Methodology

Conferences: • International Conference on Software Engineering• Conference on Software Engineering Education• Software Metrics Symposium • and many others

DAAD project „Joint Course on Software Engineering“ © 46

most importantinternational conference

Page 24: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

24

DAAD project „Joint Course on Software Engineering“ © 47

DAAD project „Joint Course on Software Engineering“ © 48

Page 25: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

25

DAAD project „Joint Course on Software Engineering“ © 49

DAAD project „Joint Course on Software Engineering“ © 50

Page 26: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

26

DAAD project „Joint Course on Software Engineering“ © 51

DAAD project „Joint Course on Software Engineering“ © 52

SEI: Software Engineering Institute(Homepage: http://www.sei.cmu.edu)

About the SEI - Welcome

The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defensethrough the Office of the Under Secretary of Defense for Acquisition, Technology, and Logistics [OUSD (AT&L)]. The SEI contract was competitively awarded to Carnegie Mellon University in December 1984. The SEI staff has extensive technical and managerial experience from government, industry, and academia.

Mission

The U.S. Department of Defense established the Software Engineering Institute to advance the practice of software engineering because quality software that is produced on schedule and within budget is a critical component of U.S. defense systems.[...]

Page 27: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

27

DAAD project „Joint Course on Software Engineering“ © 53

SEI: Software Engineering InstituteDetail: Management Practices

DAAD project „Joint Course on Software Engineering“ © 54

ESI: European Software Institute(Homepage: http://www.esi.es)

Page 28: Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN

28

DAAD project „Joint Course on Software Engineering“ © 55

Joint MSc studies in SE - perun.im.ns.ac.yu/msc-se/