SOFTWARETECHNIK
SOFTWARETECHNIK
Kapitel 1 – Einführung
Vorlesung im Wintersemester 2012/13
FG System- und Software-Engineering
Prof. Dr.-Ing. Armin Zimmermann
Inhalt
 Vorstellung
 Organisation der Lehrveranstaltung
 Softwaretechnik




Software: Besonderheiten, Probleme
Konzepte der Softwaretechnik
Entwicklungsprozess
Themen und Aufbau der Vorlesung
 Literatur
SSE Zimmermann
Softwaretechnik
Einführung – 2
Vorstellung
 Vorlesung


Prof. Dr.-Ing. habil. Armin Zimmermann
FG System- und Software-Engineering (SSE)

Modellbasierter Entwurf, Analyse und Simulation,
Anwendungen im Bereich eingebetteter Systeme

Kontakt




Mail: [email protected]
Sekretariat: (03677) 69 - 2767
WWW: http://www.tu-ilmenau.de/sse
Zusebau, Raum 2054
SSE Zimmermann
Softwaretechnik
Einführung – 3
Vorstellung
 Übungen


M.Sc. Thomas Dietrich
Kontakt



Zusebau, Raum 2061
Mail: [email protected]
Telefon: (03677) 69 - 4146
SSE Zimmermann
Softwaretechnik
Einführung – 4
Organisation
 Umfang

3 SWS (2VL + 1Ü), Benotet
 Anrechenbarkeit





Informatik 3. FS: Pflichtfach
Mathematik: 5. FS Praktische Informatik (Wahlpflicht)
Mathematik: 9. FS Informatik (Wahlpflicht)
Medientechnologie 5. / 9. FS: Wahlmodul 2 Informatik
Wirtschaftsingenieurwesen, Automatisierung und
Biomedizinische Technik 7. FS: Kleines ingenieurwiss.
Wahlpflichtfach
SSE Zimmermann
Softwaretechnik
Einführung – 5
Organisation
 Termine


Vorlesung Dienstag 9:00 – 10:30 Kirchhoff-HS 1
Übungen

Jede 2. Woche, drei Termine werden angeboten

Dienstag (gerade Woche)
07:00 – 08:30 Sr K 2032

Dienstag (gerade Woche)
11:00 – 12:30 Sr H 2509

Donnerstag (ungerade Woche) 11:00 – 12:30 Sr HU 010
Start der Übungen: 25. Oktober

 Aktuelle Informationen, Folien, Zeitplan

http://www.tu-ilmenau.de/sse/lehre/winter-201213/softwaretechnik/
SSE Zimmermann
Softwaretechnik
Einführung – 6
Übungsaufgaben
 Übungen

6 Termine


 Objektorientierung, UML
 Systemmodellierung, Anforderungen
 Grobentwurf
 Feinentwurf
 Wiederverwendung, Muster
 Implementierung

Aufgaben auf den Webseiten




SSE Zimmermann
Softwaretechnik
Einführung – 7
Leistungserfassung
 Übungen

Nicht benotet, aber Lösung sehr empfohlen!
 Schriftliche Prüfung




Fragestunde / Zusammenfassung zur Vorbereitung
90 Minuten
Entscheidet über Benotung
Termin wird bekanntgegeben
SSE Zimmermann
Softwaretechnik
Einführung – 8
Inhalt
 Vorstellung
 Organisation der Lehrveranstaltung
 Softwaretechnik




Software: Besonderheiten, Probleme
Konzepte der Softwaretechnik
Entwicklungsprozess
Themen und Aufbau der Vorlesung
 Literatur
SSE Zimmermann
Softwaretechnik
Einführung – 9
Software
 Warum der ganze Aufwand?

Reicht es nicht, programmieren zu können?
Aufgabe – Algorithmus – Programm – fertig!

Woher kommt die Spezifikation? Ist sie richtig?
Wer macht wann was, wenn die Aufgabe größer ist?
Ist das die Art von Software,
die in technischen Systemen heute eingesetzt wird?

SSE Zimmermann
Softwaretechnik
Einführung – 10
Software
 Spektakuläre Fehlschläge


Zerstörung der Mariner 1 - Trägerrakete 1962
Automobilhersteller kämpfen mit Softwarefehlern




Rückrufaktionen wg. Konfigurationsproblemen
Fahrerlose Abfahrt einer Londoner U-Bahn 1990
Hamburger U-Bahn fällt 1995 für 2 Tage wegen neuem
Siemens-Stellwerk aus (Speicher zu klein)
1994: Eröffnung des Denver International Airport um
neun Monate verzögert wegen Gepäcktransport-System
 Ariane 5


1996 Selbstzerstörung nach Kontrollverlust über Flugbahn
Herstellung 500 Mio €, Entwicklung 7 Mrd $
SSE Zimmermann
Softwaretechnik
Einführung – 11
Software
 Ariane 5

Teil der Kalibrierung für Geschwindigkeitssensoren in Ada
declare
horizontal_veloc_sensor: float;
horizontal_veloc_bias: integer;
pragma suppress(
numeric_error, horizontal_veloc_bias );
begin
sensor_get( horizontal_veloc_sensor );
horizontal_veloc_bias :=
integer( horizontal_veloc_sensor );
exception
when numeric_error => calculate_vertical_veloc( );
when others
=> use_irs1();
end;
SSE Zimmermann
Softwaretechnik
Einführung – 12
Software
 Ariane 5


Code war von Ariane 4 übernommen worden
Ariane 4 hatte kleinere Horizontalgeschwindigkeit



Umwandlung float zu 16-Bit-Integer daher problemlos
Nach statischer Verifikation wurde Fehlerbehandlung aus
Effizienzgründen abgeschaltet (pragma suppress)
Daher wurde Exception bei Ariane 5 mit allgemeiner
Behandlung ausgewertet, die Steuerrechner anhält und
auf redundantes Alternativsystem umschaltet



Anderes System war aber identisch programmiert
Kein Steuerrechner mehr verfügbar
Falsche Flugbahnsteuerung führte zur Überlastung und
Ablösung der Booster
SSE Zimmermann
Softwaretechnik
Einführung – 13
Software
 Was ist Software überhaupt?

Nur ein Programm, also ausführbarer Algorithmus?

Systemdokumentation, Benutzerhandbuch
Konfigurationsdaten
Modelle, Spezifikationen, Glossar
Verträge
Support





„Menge von Programmen oder Daten zusammen mit
begleitenden Dokumenten, die für ihre Anwendung
notwendig oder hilfreich sind“ [Hesse, IEEE ähnlich]
SSE Zimmermann
Softwaretechnik
Einführung – 14
Software
 Arten von Software

Systemsoftware



Betriebssystem, Compiler, Datenbanksystem, Middleware,
Bibliotheken, …
Entwicklungswerkzeuge
Anwendungssoftware

Standardsoftware „COTS“ (Textverarbeitung)
Angepasste Software (z.B. SAP)
Spezialsoftware

Eingebettete SW


SSE Zimmermann
Softwaretechnik
Einführung – 15
Software
 Besonderheiten von Software als Produkt

SW-Pr.: in sich abgeschlossenes Ergebnis eines Projekts
oder Herstellungsprozesses für einen Auftraggeber


Immateriell



SW-System: aus Entwicklersicht
Schwer messbar
Gemeinkosten und Stückkosten
Keine Abnutzung

Aber: Alterung! Portierung, Nutzergewohnheiten, …

Gestaltungsspielraum nicht physikalisch begrenzt

Leicht änderbar (hoffentlich!)
SSE Zimmermann
Softwaretechnik
Einführung – 16
Software
 Wirtschaftliche Bedeutung

Zunehmender Wertanteil in technischen und
Informationssystemen (bis 90%)

Siemens 1992:
Wertschöpfung
durch
SoftwareLeistungen
>50%
Quelle: Balzert, Rumpe
SSE Zimmermann
Softwaretechnik
Einführung – 17
Software – Umfang
 Softwaretechnik –
„Programmieren im Großen“



Ab wann ist Software groß?
„I consider a system to be large if it is
larger than one mind.“ [Jim Coplien]
Komplexität anstelle von Umfang
SSE Zimmermann
Softwaretechnik
Einführung – 18
Software – Umfang
 Umfang industrieller Softwaresysteme
Quelle: Balzert
SSE Zimmermann
Softwaretechnik
Einführung – 19
Software – Qualität
 Gute Software ist schwer herzustellen.



Was heißt gut?
Entspricht Kundenwünschen, Vollständigkeit
Funktioniert korrekt


Erfüllt weitere nicht-funktionale Qualitätsanforderungen







Industrie: ~50% Ausfälle durch SW-Fehler
Benutzerfreundlichkeit, Ergonomie
Sicherheit (safety, security)
Zuverlässigkeit, Fehlertoleranz
Performanz (Durchsatz, Reaktionszeit, Echtzeitfähigkeit)
Ressourcen-Effizienz, Skalierbarkeit, Übertragbarkeit
Wartung, Änder- und Erweiterbarkeit
Kosten- und Termintreue bei der Erstellung
SSE Zimmermann
Softwaretechnik
Einführung – 20
Software – Probleme
 Gute Software ist schwer herzustellen.


Unklare oder sich ändernde Kundenanforderungen
Aufwand, Komplexität, Zeit – mehrere Entwickler

Durchschnittlicher Umfang steigt in 5 Jahren um Faktor 10

Interdisziplinäre Anwendungen und heterogene
Lösungen, verschiedene Aufgabenbereiche –
Spezialisierung, Rollen
Kommunikationsprobleme
Einfluss lokaler Entscheidungen auf globales Verhalten
Lebensdauer, legacy software
Rechtliche Rahmenbedingungen

Ende 60er Jahre: „Softwarekrise“




SSE Zimmermann
Softwaretechnik
Einführung – 21
Software – Einflussfaktoren
 Softwareprojekte sind bestimmt durch

Umfang, Ressourcen, Qualität und Zeit [Beck]
 Abhängigkeit

Größerer Umfang
 mehr Ressourcen oder Zeit bzw. geringere Qualität
SSE Zimmermann
Softwaretechnik
Einführung – 22
Inhalt
 Vorstellung
 Organisation der Lehrveranstaltung
 Softwaretechnik




Software: Besonderheiten, Probleme
Konzepte der Softwaretechnik
Entwicklungsprozess
Themen und Aufbau der Vorlesung
 Literatur
SSE Zimmermann
Softwaretechnik
Einführung – 23
Konzepte der Softwaretechnik
 Wie kann man Software besser entwickeln?









Ingenieurstechniken!
Abstraktion, Modelle, Notation
Systematische Vorgehensweise, Standardkomponenten
Arbeitsteilung, Integration
Umgang mit unvollständigen Problemstellungen
Empirische Methoden, Erfahrung
Werkzeuge
Simulation
Darum geht es in der Softwaretechnik
= Software Engineering
SSE Zimmermann
Softwaretechnik
Einführung – 24
Konzepte der Softwaretechnik
 Softwaretechnik



Technische Disziplin der Software-Herstellung
Fachgebiet der Informatik, das sich mit der Bereitstellung
und systematischen Verwendung von Methoden und
Werkzeugen für die Herstellung und Anwendung von
Software beschäftigt [Hesse]
“state of the art of developing quality software on time
and within budget” [Nierstrasz]


Perfektion vs. Beschränkungen, state of the art
“multi-person construction of multi-version software”
[Parnas]
SSE Zimmermann
Softwaretechnik
Einführung – 25
Konzepte der Softwaretechnik
 Keine „exakte Wissenschaft“!





Persönliche Erfahrung, subjektive Einschätzungen
Kein Algorithmus (Suche nach der „silver bullet“)
Es gibt keine beste Methode für alle Fälle
„weiche Faktoren“
Nicht (voll) automatisierbar
 Softwaretechnik lernen …



Probleme erkennen
Handwerkszeug lernen: Modelle, Notationen,
Herangehensweisen, Methoden, Werkzeuge
Praktische Erfahrungen sammeln, Kommunikation
SSE Zimmermann
Softwaretechnik
Einführung – 26
Konzepte der Softwaretechnik
 Modellieren

Beschreiben und Verstehen komplexer Systeme

Abstrakte Beschreibung realer oder geplanter Systeme

Umgebung und Anforderungen, Systemschnittstellen und
Verhalten, Innerer Systemaufbau

Konzentration auf das Wesentliche

Zergliederung von Problemen

Dokumentation

Grundlage für die Bewertung von Alternativen

Objektorientierte Modellierung, UML
SSE Zimmermann
Softwaretechnik
Einführung – 27
Konzepte der Softwaretechnik
 Probleme lösen

Ingenieurstätigkeit
1. Problem formulieren
2. Problem analysieren
3. Lösungsvarianten suchen
4. Bewerten und Entscheidung treffen
5. Lösung spezifizieren und realisieren
6. Testen und Einführen

Objektorientierte Softwareentwicklung
SSE Zimmermann
Softwaretechnik
Einführung – 28
Konzepte der Softwaretechnik
 Weitere Aktivitäten

Entscheidungen im Kontext begründen

Wissen erwerben

Informationen sammeln und analysieren

System verstehen

Formalisieren
 Vorgehensmodelle
Aber: nichtlinearer Wissenserwerb!
 keine Beschränkung auf sequentielles Vorgehen


Informationen kommunizieren

interdisziplinäre Teamarbeit
SSE Zimmermann
Softwaretechnik
Einführung – 29
Konzepte der Softwaretechnik
 Begriffe

Projekt


Aktivität (oder Phase)



Entwicklung eines Softwaresystems
Satz von Aufgaben
Beispiel: Anforderungsanalyse
Aufgabe


Verbraucht Ressourcen
(z.B. Arbeitskraft, Zeit, Ausrüstung)
Erzeugt Arbeitsergebnis
SSE Zimmermann
Softwaretechnik
Einführung – 30
Konzepte der Softwaretechnik
 Begriffe

Arbeitsergebnis (oder Artefakt)



Notation



Dokument, Modell, System, Programmcode
Lastenheft, Spezifikation, Glossar, Handbuch usw.
intern / zu lieferndes Ergebnis
Regelsatz für Modelldarstellung
Unified Modeling Language (UML), Datenflussdiagramm, …
Teilnehmer und Rollen


Verantwortungsbereich eines Teilnehmers
(z.B. Kunde, Projektmanager, Entwickler, Architekt)
Rolle enthält Satz von Aufgaben
SSE Zimmermann
Softwaretechnik
Einführung – 31
Konzepte der Softwaretechnik
 Begriffe

Methode




Wiederholbare Technik
Schritte zur Lösung eines Problems
Konfigurationsmanagement, Regeln für das Identifizieren von
Klassen, systematische Testanweisung, …
Methodologie


Sammlung von Methoden zur Lösung einer Problemklasse
Objektorientierte Methodologien, OOSE
SSE Zimmermann
Softwaretechnik
Einführung – 32
Konzepte der Softwaretechnik
 Software-Entwicklungsmethode

Softwareentwicklung besser plan- und strukturierbar

Elemente







Darstellung – Notation und Semantik für Modelle,
Diagrammtypen, Dokumentvorlagen (Artefakte)
Vorgehensmodell – Phasen, Arbeitsschritte
Verfahren – Regeln, Anweisungen, Aktivitäten (+Rollen)
Werkzeuge
Industriestandards: RUP + UML
Öffentliche Auftraggeber: V-Modell
Firmenintern: eigene Varianten, evtl. projektabhängig
SSE Zimmermann
Softwaretechnik
Einführung – 33
Inhalt
 Vorstellung
 Organisation der Lehrveranstaltung
 Softwaretechnik




Software: Besonderheiten, Probleme
Konzepte der Softwaretechnik
Entwicklungsprozess
Themen und Aufbau der Vorlesung
 Literatur
SSE Zimmermann
Softwaretechnik
Einführung – 34
Entwicklungsprozess
 Typische Aktivitäten

Analyse



Entwurf





Grober Systementwurf, Architektur
Objektentwurf
Implementierung
Validierung


Anforderungsermittlung
Systemmodellierung
Testen
Einführung
Wartung
SSE Zimmermann
Softwaretechnik
Einführung – 35
Entwicklungsprozess
 Wasserfallmodell

Abhängigkeiten zwischen Teilergebnissen
Quelle: Royce, Rumpe
SSE Zimmermann
Softwaretechnik
Einführung – 36
Entwicklungsprozess
 Iterativer Entwicklungsprozess
Requirements
Testing based on requirements
Collection
Maintenance through iteration
Testing
Analysis
Testing throughout implementation
Validation through prototyping
Implementation
Design
Design through refactoring
Quelle: Nierstrasz
SSE Zimmermann
Softwaretechnik
Einführung – 37
Inhalt
 Vorstellung
 Organisation der Lehrveranstaltung
 Softwaretechnik




Software: Besonderheiten, Probleme
Konzepte der Softwaretechnik
Entwicklungsprozess
Themen und Aufbau der Vorlesung
 Literatur
SSE Zimmermann
Softwaretechnik
Einführung – 38
Themen der Vorlesung
 Modellierungskonzepte




Vorlesung 2 – 3
Sichtweisen, Modellarten
Klassische Modelle
Objektorientierung
UML
Quelle: Balzert
SSE Zimmermann
Softwaretechnik
Einführung – 39
Themen der Vorlesung
 Anforderungsermittlung
Vorlesung 4
(requirements collection)




Verwendungszweck durch Kunde und Entwickler definiert
Möglicherweise erst unvollständig und widersprüchlich
Sind Veränderungen unterworfen
Ergebnis: Beschreibung des Systems, Akteure und
Anwendungsfälle (actors, use cases), Pflichtenheft
Quelle: Balzert
SSE Zimmermann
Softwaretechnik
Einführung – 40
Themen der Vorlesung
 Systemmodellierung (analysis)

Ziel: Systemmodell aus Kundensicht



Vorlesung 5
Korrekt, eindeutig, vollständig
Was macht das System?
Ergebnis: Systemmodell mit Attributen, Operationen und
Verbindungen, Struktur und Verhalten des geplanten
Systems (Spezifikation), Benutzungsschnittstelle
Quelle: Balzert
SSE Zimmermann
Softwaretechnik
Einführung – 41
Themen der Vorlesung
Vorlesung 6 – 11
 Entwurf (design)






Zerlegung in Teilsysteme, Grobentwurf
Festlegung von Architektur und Ablaufplattform
Entwurf von Objekten und Schnittstellen, Feinentwurf
Wiederverwendung, patterns
Simulation
Ergebnisse





Beschreibung der Subsysteme
Hard- und Softwareumgebung
Art der Datenhaltung
globaler Kontrollfluss
Objektmodell
SSE Zimmermann
Softwaretechnik
Einführung – 42
Themen der Vorlesung
Vorlesung 12 – 13
 Implementierung
(implementation)




Objektmodell in Quelltext realisieren
Attribute und Methoden für Klassen implementieren
Integration
Testen, Verifikation
SSE Zimmermann
Softwaretechnik
Einführung – 43
Themen der Vorlesung
 Vorgehensmodelle


Entwicklung, Richtungen
V-Modell XT, RUP, XP
 Projektmanagement



Vorlesung 14
Vorlesung 15
Projektdefinition
Projektplanung
Projektcontrolling, Fortschrittskontrolle
SSE Zimmermann
Softwaretechnik
Einführung – 44
Einbettung / Voraussetzungen
 Umgang mit Sprache
 Algorithmen und Datenstrukturen
 Programmierung


Prozedural
Objektorientiert
 Höhere Programmiersprache

In der Vorlesung: vor allem JAVA
 Softwaretechnik
 Softwareprojekt im Anschluss (jedes Semester)
SSE Zimmermann
Softwaretechnik
Einführung – 45
Inhalt
 Vorstellung
 Organisation der Lehrveranstaltung
 Softwaretechnik




Software: Besonderheiten, Probleme
Konzepte der Softwaretechnik
Entwicklungsprozess
Themen und Aufbau der Vorlesung
 Literatur
SSE Zimmermann
Softwaretechnik
Einführung – 46
Literatur
 Allgemeines

Brügge, Dutoit:
Objektorientierte Softwaretechnik.
Pearson 2004

Balzert:
Lehrbuch der Software-Technik.
Spektrum 2000 (2009: Neuauflage 3bändig)

Sommerville:
Software Engineering.
Pearson 2007
SSE Zimmermann
Softwaretechnik
Einführung – 47
Literatur
 Modellierung


Oestereich: Analyse und Design mit UML 2.1.
Oldenbourg 2006
Störrle: UML 2 für Studenten.
Pearson Studium 2005
 Anforderungen

Rupp: Requirements-Engineering und
-management. Hanser 2007
SSE Zimmermann
Softwaretechnik
Einführung – 48
Literatur
 Entwurf und Programmierung




Wirfs-Brock, McKean: Object Design: Roles,
Responsibilities and Collaborations. Addison-Wesley 2002
Gamma, Helm, Johnson, Vlissides: Entwurfsmuster:
Elemente wiederverwendbarer objektorientierter
Software. Addison-Wesley 2004
Fowler: Refactoring: Improving the Design of Existing
Code. Addison-Wesley 1999
Stark, Krüger: Handbuch der Java-Programmierung
Version 6. Addison-Wesley 2007
SSE Zimmermann
Softwaretechnik
Einführung – 49
Literatur
 Vorgehensmodelle



Höhn, Höppner: Das V-Modell XT. Springer 2008
Kruchten: The Rational Unified Process: An Introduction.
Addison-Wesley 2004
Beck, Andres: Extreme Programming Explained. AddisonWesley 2004
 Liste auch auf den Webseiten
 Bibliothek, z.T. Lehrbuchsammlung
SSE Zimmermann
Softwaretechnik
Einführung – 50
Viel Erfolg – und Spaß!
SSE Zimmermann
Softwaretechnik
Einführung – 51
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement