Software Engineering (SE) - HS Augsburggori/sue/1_SEuUE_WiBac4_Einfuehrung...Bernd Oestereich: Die...

Preview:

Citation preview

Software Engineering (SE)

1) Einführung

Prof. Dr. Anja MetznerHochschule Augsburg, Fakultät für Informatik

Kontakt: anja.metzner@hs-augsburg.de

Studiengang WiBac 4 (Stand: 15.03.2014)

© Prof. Dr. A. Metzner, Hochschule Augsburg, 2014

Prof. Dr. A. Metzner2

Literatur� Begleitend zum Unterricht

� Ian Sommerville: Software Engineering, 6. Auflage, Pearson Studium, Addison-Wesley, 2001

� Bernd Oestereich: Die UML-Kurzreferenz für die Praxis, Oldenbourg, 2001

� Literatur� Roger S. Pressman: Software Engineering, A Practitioner‘s Approach, 4. Auflage,

The McCraw-Hill Companies Inc., 1997� Helmut Balzert: Lehrbuch der Software-Technik (Band 1): Software-Entwicklung,

Spektrum Akademischer Verlag, 2000� Helmut Balzert: Lehrbuch der Software-Technik (Band 2): Software-Management,

Software-Qualitätssicherung, Unternehmensmodellierung, Spektrum Akademischer Verlag (1998)

� Christine Rupp et al.: Requirements-Engineering und –Management, 3.Auflage, Hanser, 2004

� Jeckle, Rupp, Hahn, Zengler, Queins: UML 2 glasklar, 1.Auflage, Hanser, 2003� Rumbaugh/Jacobson/Booch: The Unified Modeling Language Reference Manual,

Auflage: Bk&CD-Rom, Addison-Wesley Professional, 1998� Peter Liggesmeyer: Software-Qualität: Testen, Analysieren und Verifizieren von

Software, Spektrum Akademischer Verlag, 2002

Prof. Dr. A. Metzner3

Literatur

Prof. Dr. A. Metzner4

GliederungEinführung

1. Überblick und Terminologie

2. Geschichtlicher Überblick und Software Krise

3. Modellbildung

4. Software Ingenieur

5. Ziele der Vorlesung

Prof. Dr. A. Metzner5

1. Überblick und Terminologie

� Aufgabe 1

Ziel ist es einen Turm zu erstellen.

Verwendet werden dürfen alle Materialien, die Ihnen derzeit zur Verfügung stehen. Insbesondere Papier, Stifte, Schere, Tesafilm und was Sie sonst so dabei haben. Auftraggeber ist Ihre Professorin.Für diese Aufgabe haben Sie ab jetzt 15 Minuten Zeit.

Wichtig: Wer die Lösung der Aufgabe schon kennt, der meldet sich bitte und setzt aus, ohne den anderen Kommilitonen die Lösung zu verraten!

Prof. Dr. A. Metzner6

1. Überblick und Terminologie

Prof. Dr. A. Metzner7

1. Überblick und Terminologie� Was ist Software Engineering?

� „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

� Gegenstand des Software Engineering ist dieingenieurmäßige Entwicklung komplexerSoftwaresysteme hoher Qualität unter Berücksichtigung der einzusetzenden Arbeits- und Zeitressourcen

Prof. Dr. A. Metzner

1. Überblick und Terminologie

� Der Software Lebenszyklus

8

Planungsphase

Definitionsphase

Designphase

Implementationsphase

Abnahme- und Einführungsphase

Wartungsphase

zeitlicher Ablauf

• Problemdefinition

• Anforderungen• Spezifikation

• Entwurf (Modell)• System Design

• SW Entwicklung

• Verifkation und Testen

Prof. Dr. A. Metzner9

1. Überblick und Terminologie� Software (SW)

� „computer programs, procedures, rules, and possiblyassociated documentation and data pertaining to theoperation of a computer system“

IEEE Standard Glossary of Software Engineering

� Softwaresystem:� Ein System dessen Subsysteme und

Komponenten aus Software bestehen

� Software-Produkt:� Ein Produkt ist ein in sich abgeschlossenes, i. A. für

einen Auftraggeber bestimmtes Ergebnis eines erfolgreich durch-geführten Projekts (oder Herstellungsprozesses).

� SW-Produkt: Produkt, das aus Software besteht

Main(){…}

Microsoft Office

Prof. Dr. A. Metzner10

1. Überblick und Terminologie

Ingenieur-wissenschaften

Grundlagen-wissenschaften

Hilfs-wissenschaften

Software EngineeringElektrotechnik

Maschinenbau

Physik

Mathematik

Informatik

Betriebswirtschaft

Psychologie

...

...

...

M. Broy, D. Rombach: Software Engineering. Wurzeln, Stand und Perspectiven, in: Informatik Spektrum 25:6, pp. 438 - 451, 2002

Gebietseinordnung

Prof. Dr. A. Metzner11

1. Überblick und Terminologie� SW Eigenschaften

� Welche Eigenschaften erschweren die Erstellung von SW?

Prof. Dr. A. Metzner12

1. Überblick u. Terminologie� Schwierigkeiten bei der SW Entwicklung gibt es

viele; Diese sind unter anderem:

� Kommunikationsprobleme mit Usern� Arbeitsabläufe werden durch SW oft verändert� SW Varianten� SW Einsatz in verschiedenen Umgebungen

Abhilfe: Standards, Methoden und Werkzeuge

Beispiel: Beispiel: Beispiel:

Prof. Dr. A. Metzner13

1. Überblick u. Terminologie� CASE Tools

� CASE: (engl.) Computer Aided SW Engineering� Tools: Einsatz von Werkzeugen� Beispiele

� Visual Paradigm (Visual Paradigm International) � Rational Rose (Rational)� Enterprise Architekt (Sparx)

...

� Inhalte: im Mittelpunkt steht die Modellierung� UML (Unified Modeling Language)� Transformation in verschiedene Programmiersprachen� Datenstrukturen� Reverse Engineering� Generierung von Prototypen

Prof. Dr. A. Metzner14

2. Geschichtlicher Überblick und SW Krise

Wasserfallmodell, Spiralmodell

V-Modell

agile Modelle

Prof. Dr. A. Metzner15

2. SW-Krise � Phänomen: tratt erstmals Mitte der 60er auf

� Erstmalig: Kosten für SW > Kosten der HW

� Folge: erste große SW-Projekte scheiterten

� Grund: die bisher genutzten Techniken konnte nicht mit dem Umfang und der Komplexität der SW mithalten

� Auf einer NATO Tagung (1968) wurde das Phänomen diskutiert und als Reaktion der Begriff des Software Engineering eingeführt

Prof. Dr. A. Metzner16

2. SW-Krise

http://www.standishgroup.com

� Standish Group CHAOS Studie über 40.000 IT-Projekte, 1994-2000� Kostenüberschreitungen bleiben die Regel

Prof. Dr. A. Metzner17

2. SW-Krise

� Schlussfolgerungen aus der Software-Krise

� Früher war SW-Entwicklung ähnlich wie der Bau von Häusern OHNE Architekten, Pläne und Maschinen, .

� SW-Entwicklung ist keine (nicht nur) kreative Kunst

� SW-Entwicklung ist hauptsächlich eine ingenieurmäßige Wissenschaft mit wohldefinierter Vorgehensweise

=> Aus Fehlern anderer Lernen!

Prof. Dr. A. Metzner18

3. Modellbildung

Girl and globe Quibeldey-Cirkel, Objekt-Paradigma, 1994, S. 15

Prof. Dr. A. Metzner19

3. Modellbildung

� Poppers 3 Welten

Sir Karl Raimund Popper (*1902; †1994) war ein österreichisch-britischer Philosoph, der mit seinen Arbeiten u.a. zur Erkenntnistheorie beitrug

Prof. Dr. A. Metzner20

3. Modellbildung� Bedeutung von Modellen für SE

� Terminologische Unterscheidung zwischen Realität und Modellen ist wichtig

� Reales Objekt und Modell-Objekt (z.B. repräsentiert durch OO Klasse) wird unterschieden

� Modelle sind nötig damit wir Menschen komplexe Abläufe verstehen

� Vereinfachung, Abstraktion

� Je ähnlicher ein Modell einem realem Objekt wird, desto besser ist das Modell

� Abwägungen zwischen Kosten/Zeit und Nutzen sind notwendig

Prof. Dr. A. Metzner21

3. Modellbildung

� Überblick UML (Unified Modeling Language)� Diagrammarten

UML-Diagramme

Strukturdiagramme

Klassen-diagramme

Objekt-diagramme

Komponenten-diagramme

Kompositionsstruktur-diagramme

Paket-diagramme

Verteilungs-diagramme

Use Case-diagramme

Aktivitäts-diagramme

Zustands-diagramme

Verhaltensdiagramme

Interaktionsdiagramme

Kommunikations-diagramme

Sequenz-diagramme

Zeit-diagramme

Interaktions-übersicht

Prof. Dr. A. Metzner22

4. Der Software Engineering Spezialist

� Bezeichnung für einen Menschen der systematischSW entwirft und implementiert

� SW-Produkt:� Anwendungsgebiet

� Bedienung u Ergonomie

� (Zukunfts-) Pläne

� SW-Prozess:� Prozessablauf

� Methoden

� SW-Entwicklung

� Wiederverwendung

� Ressourcen:� Team

� HW/SW Plattformen

� Hilfsmittel (Tools)

� Projekt:� Projektformen

� Projektmanagement

� Schätzverfahren

Aufgaben und Kenntnisse des SW-Ingenieurs:

Prof. Dr. A. Metzner23

5. Ziele der Vorlesung

Vorschau Vorlesung

� Kapitel 2: Phasenübergreifendes

� Kapitel 3: Planungsphase

� Kapitel 4: Definitionsphase

� Kapitel 5: Designphase

� Kapitel 6: Implementierungsphase

� Kapitel 7: Abnahme- und Einführungsphase

� Kapitel 8: Wartungs- und Pflegephase SW

Leb

en

szyklu

s

Prof. Dr. A. Metzner24

5. Ziele der Vorlesung� Was ist Software Engineering und warum ist die Erstellung

von qualitativ hochwertiger Software so schwer?� Ingenieurstätigkeit zur Softwareerstellung� SW ist immateriell und die Modellbildung schwierig

� Verstehen und beherrschen der einzelnen Phasen bei der Entstehung von Software� Phasen: Problemanalyse, Anforderungsdefinition, System- und

Softwareentwurf, Implementierung, Integration und Systemtests, Betrieb und Wartung

� Studieren einer breiten Auswahl wichtiger und nützlicher Verfahren die dazu beitragen Software mit Qualität zu produzieren� Beispiele: Vorgehensmodelle, Requirement Engineering, UML,

SW-Architekturen, Testverfahren, Managementmethoden, Wartung und Weiterentwicklungstechniken...

Recommended