Software Engineering 1 - inso.tuwien.ac.at · SWEBOK. SE1 2005W | Vorlesung 1 12 ... Software...

28
SE1 VO Einheit 1 MARIO BERNHART [email protected] [email protected] www.inso.tuwien.ac.at WS0506 - 13. Oktober 2005 INSO - Industrial Software Institut für Rechnergestützte Automation | Fakultät für Informatik | Technische Universität Wien Software Engineering 1

Transcript of Software Engineering 1 - inso.tuwien.ac.at · SWEBOK. SE1 2005W | Vorlesung 1 12 ... Software...

SE1 VO Einheit 1

MARIO [email protected][email protected]

WS0506 - 13. Oktober 2005

INSO - Industrial SoftwareInstitut für Rechnergestützte Automation | Fakultät für Informatik | Technische Universität Wien

Software Engineering 1

2SE1 2005W | Vorlesung 1

Agenda

Geschichte2

Risikoelemente3

Definitionen4

Code of Ethics6

Entwicklung der Disziplin5

Herausforderungen in Software Engineering7

Motivation1

3SE1 2005W | Vorlesung 1

Motivation Software Engineering

Geringe Qualität von Software (Ende der 50er)

¬ SOFTWARE-KRISE.

Keine Methoden, um Projekte wiederholbar erfolgreichdurchführen zu können.

2 NATO-Konferenzen 1968 und 1969.

4SE1 2005W | Vorlesung 1

Gescheiterte Projekte

„Software Runaway“ (Glass 1998):▪Projekt mit mind. doppelten Kosten oder doppelter Dauer

„Crunch Mode“ (Boddi 1987):▪Projekt unter massivem Termindruck

„Death March“ (Yourdon 1997):▪Projekt mit nahezu unmöglichen Terminvorgaben

5SE1 2005W | Vorlesung 1

Top Ten Liste der Risikoelemente im SE

Personalmängel

Unrealistische Zeit- und Kostenpläne

Entwicklung der falschen Funktionalität

Unpassende Benutzerschnittstelle

„Vergolden“ eines Systems

Häufige Änderungen der Anforderungen

Qualitätsmängel bei extern vergebenen Komponenten

Qualitätsmängel bei extern vergebenen Aufgaben

Unzureichende Produktionsleistungen

Projektziele an der Grenze des „State-of-the-Art“

6SE1 2005W | Vorlesung 1

Keine Software Krise ?

Robert Glass:

„I do not believe in the existence of a softwarecrisis.“

▪Falsche Statistiken▪Berater und Hersteller von Tools erhalten Mythos▪Keine wirkliche allgemein gültige Definiton von „Gescheitertem

Projekt“ vorhanden

7SE1 2005W | Vorlesung 1

Was ist Software Engineering NICHT ?

Programmierkurs, Programmier-Know-How

AwenderInnen-Kurs

abstrakte Wissenschaft

„A fool with a tool is still a fool“

8SE1 2005W | Vorlesung 1

Software Engineering Definition

Boehm 1979▪ “The practical application of scientific knowledge in the design

and construction of computer programs and the associateddocumentation required to develop, operate, and maintainthem.”

IEEE Computer Society:▪ (1) The application of a systematic, disciplined, quantifiable

approach to the development, operation, and maintenance ofsoftware; that is, the application of engineering to software.▪ (2) The study of approaches as in (1).

9SE1 2005W | Vorlesung 1

Entwicklung von SE als Ingenieurdisziplin (1)

10SE1 2005W | Vorlesung 1

Entwicklung von SE als Ingenieurdisziplin (2)

11SE1 2005W | Vorlesung 1

Die Profession Software Engineering

Software Engineering Curriculum

Code of Ethics

SWEBOK

12SE1 2005W | Vorlesung 1

Software Engineering Curriculum (1)

Grundlagen der Computertechnologie: Grundlagen der Informatik,Konstruktionstechnologien, Konstruktionswerkzeuge, FormaleKonstruktionsmethoden.

Mathematische & Ingenieurwesen Grundlagen: MathematischeGrundlagen, Ingenieurwesen Grundlagen, WirtschaftlicheGrundlagen des Ingenieurwesens.

Professionelle Praktiken: Gruppendynamik und –psychology,Kommunikationstechniken, Grundlagen einer Profession.

Software Modellierung & Analyse: Grundlagen der Modellierung,Modeltypen, Grundlagen der Analyse, Grundlagen derAnforderungsanalyse, Anforderungsfindung, Spezifikation undDokumentation von Anforderungen, Validierung von Anforderungen.

Software Entwurf: Entwurfskonzepte, Entwurfsstrategien,Architekturentwurf, Entwurf von Anwenderschnittstellen,Detailentwurf, Entwurfswerkzeuge und Evaluierung des Entwurfs.

13SE1 2005W | Vorlesung 1

Software Engineering Curriculum II

Software Verifikation & Validierung: V&V Terminologie undGrundlagen, Reviews, Testen, Anwenderschnittstellen testen undevaluieren, Problemanalyse und –bericht.

Software Evolution: Evolutionsprozess, Evolutionsaktivitäten.

Software Prozess: Prozesskonzepte, Prozessimplementierung.

Software Qualität: Software Qualität Konzepte und Kultur, SoftwareQualität Standards, Software Qualität Prozesse,Prozesssicherung, Produktsicherung.

Software Management: Management Konzepte, Projektplanung,Projekt Personal und Organisation, Projektkontrolle, SoftwareKonfigurationsmanagement.

14SE1 2005W | Vorlesung 1

Software engineers shall commit themselves to

making the analysis, specification, design,

development, testing and maintenance of

software a beneficial and respected profession.

In accordance with their commitment to the

health, safety and welfare of the public,

software engineers shall adhere to the

following Eight Principles:

Code of Ethics (1)

15SE1 2005W | Vorlesung 1

Code of Ethics (2)

1 PUBLIC - Software engineers shall act consistently withthe public interest.

2 CLIENT AND EMPLOYER - Software engineers shall act ina manner that is in the best interests of their client andemployer, consistent with the public interest.

3 PRODUCT - Software engineers shall ensure that theirproducts and related modifications meet the highestprofessional standards possible.

4 JUDGMENT - Software engineers shall maintain integrityand independence in their professional judgment.

16SE1 2005W | Vorlesung 1

Code of Ethics (3)

5 MANAGEMENT - Software engineering managers andleaders shall subscribe to and promote an ethical approach tothe management of software development and maintenance.

6 PROFESSION - Software engineers shall advance theintegrity and reputation of the profession consistent with thepublic interest.

7 COLLEAGUES - Software engineers shall be fair to andsupportive of their colleagues.

8 SELF - Software engineers shall participate in lifelonglearning regarding the practice of their profession and shallpromote an ethical approach to the practice of the profession.

17SE1 2005W | Vorlesung 1

Teilaspekte in Software Engineering

Formale Aspekte in Software Engineering

Technische Aspekte in Software Engineering

Ingenieursaspekte in Software Engineering

Gestalterische Aspekte in Software Engineering

Ökonomische Aspekte in Software Engineering

18SE1 2005W | Vorlesung 1

Was ist ein Software-Entwicklungsprojekt?

Was geschieht in einem Projekt?

Wozu brauche ich einen dokumentierten Software-Entwicklungsprozeß?

Was ist wenigstens erforderlich, um ein vernünftiges Produktzu erstellen?

Was ist der Unterschied zwischen strukturierten undobjektorientierten Ansätzen?

Wie können neue Technologien und Methoden in einenexistierenden Software-Entwicklungsprozeß eingebrachtwerden?

Zentrale Fragen

19SE1 2005W | Vorlesung 1

Ein grundlegendes Modell

AAnalyse

EEntwurf

IImplem.

TTest

Qualitätssicherung QS

Projektmanagement PM

Arbeitsorganisation AO

Produkt

Problem

Betrieb und Wartung

A

QS

E I T

PM

AO

20SE1 2005W | Vorlesung 1

ZeitProjektendeProjektstart

Projektverlauf Ideal

Software Engineering

21SE1 2005W | Vorlesung 1

ZeitProjektendeProjektstart

Projektverlauf Normal

Software Engineering

22SE1 2005W | Vorlesung 1

ZeitProjektendeProjektstart

Projektverlauf mit SE Prozessmodellen

Software Engineering

23SE1 2005W | Vorlesung 1

SE1 Phase B Prozessmodell

24SE1 2005W | Vorlesung 1

PraktischPraktisch

TheoretischTheoretisch

Gesam

tsicht

Gesam

tsicht

Ori

enti

eru

ng

Ori

enti

eru

ng

au

f a

uf

Pro

gra

mie

run

gP

rog

ram

ieru

ng

Sommerville

Ghezzi

Bruegge

Zuser

Einordnung

25SE1 2005W | Vorlesung 1

Key Challenges in Software Engineering

Heterogeneity Challange

Delivery Challange

Trust Challange

(aus Sommerville 7)

26SE1 2005W | Vorlesung 1

Heterogeneity Challenge

Distributed Systems

Other Applications / EAI

Software / Hardware heterogeneity

Agile System Architechtures

27SE1 2005W | Vorlesung 1

Delivery Challenge

Less time and money for more output

More direct requirement implementation

Business responsive and change quickly

No compromise on quality

28SE1 2005W | Vorlesung 1

Trust Challenge

Software in all aspects of life

Software is „responsible“ for providing a trusting view

Internet and distributed architectures have a imminent trustdefecit

Software gets more fine grained and covers more aspects

Humans depend on software