Software Engineering (SE) - HS Augsburggori/sue/1_SEuUE_WiBac4_Einfuehrung...Bernd Oestereich: Die...
Transcript of Software Engineering (SE) - HS Augsburggori/sue/1_SEuUE_WiBac4_Einfuehrung...Bernd Oestereich: Die...
Software Engineering (SE)
1) Einführung
Prof. Dr. Anja MetznerHochschule Augsburg, Fakultät für Informatik
Kontakt: [email protected]
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...