Methoden des Software Engineering

Ähnliche Dokumente
Einführung und Übersicht. Methoden des Software Engineering. Martin Wirsing. Nora Koch, Martin Wirsing WS 2006/07

Methoden des Software Engineering

Methoden des Software Engineering

Vorlesung: Methoden des Software Engineering

Softwaretechnologie II

Seminar Softwareentwicklung in der Wissenschaft

ORGANISATORISCHES. So#ware Technik Prof. Dr. Wolfgang Schramm

Softwareprozessmodelle

Software Engineering 1. Einführung und Begriffe

Grundlagen des Datenschutzes und der IT-Sicherheit (9) Vorlesung im Sommersemester 2005 von Bernhard C. Witt

Organisatorisches. Software Engineering 1 WS 2012/13. Prof. Dr.-Ing. Ina Schaefer. Institut für Softwaretechnik und Fahrzeuginformatik TU Braunschweig

Was kennzeichnet qualitativ hochwertige Software Systeme? Wie kann hohe Software Qualität erreicht werden?

Aufgabe 3 Erstellt am: Softwaretechnik Praktikum SS06 Verantwortliche: Irina Justus

Grundlagen Software Engineering

Benutzerorientierte Entwicklung mobiler Anwendungen

Softwarequalität und -test

0 Allgemeines. Prof. Dr. Rolf Dornberger

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015

Softwareentwicklung und Projektmanagement

Software-Engineering

Inhaltsverzeichnis. Teil I Grundlagen 1

Software Systems Engineering

Software Engineering

Requirements Engineering I. Nicht-funktionale Anforderungen

Praktikumsvorbesprechung: Software Engineering WS 07/08

Qualität, Fehler un Testvorgehen

Software Engineering (1)

Realisierung von Software-Projekten

Modellgetriebene Entwicklung von Webanwendungen: eine erste Analyse

Software Engineering

Software- und Systementwicklung

Software Factories WS 2018/19. Prof. Dr. Dirk Müller. 1 Einführung

Womit wir uns beschäftigen

Vorlesung Software Engineering I

Semester: -- Workload: 150 h ECTS Punkte: 5

Softwarequalitätsmanagement. 24. April 2013

Software Engineering 1

Jochen Ludewig Horst Lichter. Software Engineering. Grundlagen, Menschen, Prozesse, Techniken. dpunkt.verlag

Softwareentwicklung in der Wissenschaft. Planet Simulator. Enno Köster. Enno Köster / 24

ARCHITEKTUR KATA als Trainingsform für agile Teams

Grundlagen der Informatik II

8. Softwareentwicklung

Kundenstamm öffnen. Artikelstamm öffnen 50,86 50,86 50,86 50,86 52,00 50, , ,86 52,00 52,00

Informatik Allgemeines Einführung

Agile Software Entwicklung. Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski

Ziele und Tätigkeiten von Architekten

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

Qualitätsmanagement von Software und Systemen

Prof. Dr. Liggesmeyer, 1. Einführung und Überblick. Systemen. Qualitätsmanagement von Software und

Einführung in die Softwaretechnik 1. Einführung und Begriffe

Software-Engineering in der industriellen Praxis

Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase)

Systematisches Requirements Engineering und Management

Software Engineering (Softwaretechnik) --- Entwicklung von (Anwender-)Software

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Software Factories WS 2016/17. Prof. Dr. Dirk Müller. 1 Einführung

Software Engineering

Software Engineering. Ziele und Qualität. Wintersemester 2005/06. Kapitel 2. Universität Zürich Institut für Informatik

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung I/ Software Engineering I Modulnummer

Software-Engineering in der industriellen Praxis

Software Engineering. Ziele und Qualität. Kapitel 2. Universität Zürich Institut für Informatik

Softwarequalität erhöhen durch DevOps

Softwaretechnik WS 2013/14. Fomuso Ekellem

Die Wissensgebiete der Simulationstechnik Durak, U., Gerlach, T.

So#ware Engineering 1. Einführung und Begriffe

Softwarequalität. Gabriele Taentzer Philipps-Universität Marburg. Sommersemester 2016

Systematisches Requirements Engineering

Modul Softwareentwicklung

1. Grundbegriffe der Softwaretechnik. 1.1 Herausforderungen

Prozess-Modelle für die Softwareentwicklung

Grundlagen der Wirtschafts informatik

Modellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg

Requirements Engineering I. Nicht-funktionale Anforderungen

Projektmanagement und Softwareentwicklung. Nina Stodolka, WS2017/2018

Requirements Engineering I. Nicht-funktionale Anforderungen

Das Entwicklungsteam im agilen Prozess. Aufgaben der Software Architektur. Best Practices & Scrum Integration. Zusammenfassung & Ausblick

Inhalte des Moduls Programmieren 1

Inhalt. 1 Einführungsveranstaltung. 2 Pflichtenheft ANFORDERUNGSSPEZIFIKATION - GROBPLANUNG ANFORDERUNGSSPEZIFIKATION - SOLLKONZEPT

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP

Software Architecture Discovery

Softwarequalität: Einführung. 15. April 2015

8. Softwareentwicklung

Vorlesung Softwaretechnik - Vorgehensmodelle, V-Modell XT -

Methoden der agilen Softwareentwicklung für eingebettete Systeme

Formale Verifikation von Software. 10. Juli 2013

Advanced Topics of Software Engineering. Organisatorische Hinweise

Block R (Rahmen): SE Aktivitäten Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung

Für Hängebrücken gibt es keine Bastler-Bausätze.

Vorlesung Softwaretechnologie

SWE Einordnung, Qualitätskriterien und Vorgehensmodelle. A. Deinzer/U. Göhner, FH Kempten Sommersemester 2004, 1.1.1

Software Engineering

AUTOMOTIVE SOFTWARE ENGINEERING

Software Engineering. Validierung und Verifikation. Martin Glinz Harald Gall. Kapitel 7. Universität Zürich Institut für Informatik

Department of Computer Science Chair of Software Engineering Faculty of Engineering. Grundlagen der Softwarearchitektur (im Softwarepraktikum)

Softwaretechnik 2 Prolog

Transkript:

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 Std. 610.12 (1990) Methoden des Software Engineering Prof. Dr. Christian Prehofer Unter Verwendung von Materialien von Nora Koch und Martin Wirsing WS 2012/13

Vorlesung: Methoden des Software Engineering Block A Einführung und Übersicht Christian Prehofer 15.10.2012

Einführung, 3 4. Juni 1996: Erster Start der "Ariane-5" Während des Flugs läuft ein unnötiges Kalibrierungsprogramm für die Trägheitssensoren. Die gemessenen Werte der Ariane-5 überschreiten die in der Ariane-4-Software vorgesehenen Bereiche. Die dadurch ausgelöste (Ada-)Exception wird durch Anhalten des Steuerungscomputers behandelt, um auf ein zweites redundantes System umzuschalten. Im zweiten System tritt der gleiche Software-Fehler auf und wird identisch behandelt. Kosten des Ariane-5-Programms bis 1996 ca. 7 Milliarden US-$ Wert des zerstörten Satelliten: ca. 500 Millionen US-$

Einführung, 4 Software-Katastrophe: Kein Einzelfall Technik-Katastrophen: September 1999: Verlust der Sonde "Mars Climate Orbiter" wegen falscher Einheitenumrechnung 1985-1987 Therac 25 (Strahlengerät zur Krebsbehandlung): Fehlerhafte Programmierung führt zu Verbrennungen und Todesfällen Finanzielle Katastrophen: 1990 AT&T Telefonverbindung zwischen Ost- und Westküste der USA wg eines SW- Fehlers für mehr als 24 Std unterbrochen: ca. 1 Mia US-$ 1992: Integration des Reservierungssystems SABRE mit anderen Reservierungssystemen abgebrochen: 165 Mio. US-$ Terminkatastrophen: 1994: Eröffnung des Denver International Airport um 9 Monate verzögert wegen Softwareproblemen im Gepäcktransport-System 2003: Einführung des LKW-Mautsystems in Deutschland verzögert sich um 18 Monate Ausführliche Liste von Software Bugs und deren Auswirkungen http://wwwzenger.informatik.tu-muenchen.de/persons/huckle/bugse.html

Einführung, 5 Permanente Software-Krise? 1965: Der Begriff der Softwarekrise etabliert sich in Industrie und Wissenschaft. Fehler in Computersystemen sind fast immer auf Softwarefehler zurückzuführen Software wird nicht termingerecht und/oder zu höheren Kosten als geschätzt fertiggestellt Software entspricht oft nicht den Anforderungen ihrer Benutzer Studie von 1979 zu Softwareprojekten (USA): 75% der Ergebnisse nie eingesetzt 19% der Ergebnisse stark überarbeitet 6% benutzbar. Studie von 1994 zu Software-Großprojekten (IBM Consulting): 55% Kostenüberschreitung 68% Terminüberschreitung 88% Bedarf für starke Überarbeitung

Einführung, 6 Was ist Software Engineering? Eine naive Sicht: Problem Kodierung Programm Aber... Wie spezifiziere ich das Problem? Woher weiß man, dass die Spezifikation die Nutzerbedürfnisse erfüllt? Wie wurde die Struktur des Programms bestimmt? Woher weiß man, dass das Programm die Spezifikation erfüllt? Woher weiß man, dass das Programm immer zuverlässig arbeiten wird? Wie organisiere ich die Aufgaben, wenn ein Team von Entwicklern zur Verfügung steht?

Einführung, 7 Software ist immateriell. Besonderheiten von Software Software unterliegt keinem Verschleiß. Es gibt keine Software-Ersatzteile: Defekte sind immer Konstruktionsfehler. Software ist schwer zu vermessen ( Technische Daten von Software?). Software gilt als relativ leicht änderbar (im Vergleich zu materiellen technischen Produkten). Software unterliegt einem ständigen Anpassungsdruck. Software altert. Software is a hybrid, halfway between an abstract idea and a physical, tangible thing. Software is neither land nor sea, but swamp: a hybrid too thin for the army (software engineering) and too thick for the navy (computer science). Brad Cox

Einführung, 8 Einige Definitionen und Aspekte Software Engineering (I) The establishment and use of sound engineering principles in order to obtain economically software that is reliable and runs on real machines. F.L. Bauer, NATO-Konferenz Software-Engineering 1968 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 Std. 610.12 (1990) Also: Bereitstellung und systematische Anwendung von Methoden,Verfahren und Werkzeugen zur Entwicklung, Betrieb und Wartung von Software.

Einführung, 9 Software Engineering (II) state of the art of developing quality software on time and within budget Trade-off zwischen Perfektion und physischen Grenzen SE muss sich mit Problemen der realen Welt auseinandersetzen Stand der Kunst! Die Gemeinschaft entscheidet über Beste Praxis Lebenslange Weiterbildung

Einführung, 10 Software Engineering (III) multi-person construction of multi-version software Teamarbeit David L.Parnas Aspekt der Größenordnung ( Gut programmieren ist nicht genug) Kommunikationsaspekt Erfolgreiche Softwaresysteme müssen sich weiterentwickeln oder sie werden verschwinden Änderung ist die Norm, nicht die Ausnahme

Einführung, 11 Software-Produktqualität (ISO 9126/DIN 66272) Funktionalität Angemessenheit Sicherheit Genauigkeit der Berechnung Interoperabilität Konformanz zu Standards Zuverlässigkeit Reife Fehlertoleranz Wiederherstellbarkeit Benutzbarkeit Verständlichkeit Erlernbarkeit Bedienbarkeit Effizienz Zeitverhalten Verbrauchsverhalten Änderbarkeit Analysierbarkeit Modifizierbarkeit Stabilität Prüfbarkeit Übertragbarkeit Anpassbarkeit Installierbarkeit Konformanz zu Standards Austauschbarkeit

Einführung, 12 Anforderungen für Qualitätssicherung Sicherheitsstandard ISO WD 26262 (2009-2011) Sicherheitskritische Systeme sind nach dem Stand der Technik zu entwickeln. Anderfalls drohen Haftungsansprüche ggü. den verantwortlichen Entwicklern. Für alle Phasen des Produktlebenszyklus legen sie in Abhängigkeit von der Kritikalität des Systems Rahmenbedingungen für die durchzuführenden Prozesse fest. Kritikalitätsstufen in ISO WD 26262: ASIL A-D (Automotive Safety Integrity Level) Einstufung hängt ab von potentieller Unfallschwere, Eintretenswahrscheinlichkeit und Beherrschbarheit bei einer Fehlfunktion. ASIL A = geringste Stufe, ASIL D = höchste Stufe

Einführung, 13 Methoden des Software Engineering: WS 2011/12 Dozenten: Prof. Dr. Christian Prehofer ECTS-Punkte: 6 Folien normal am Vorabend der Vorlesung im Netz Prüfungen / Note 4 Kurztests in den Übungen, je ca. 15min Die besten 3 davon zählen 30% Klausur, 70%, Klausurtermin In Vorbereitung

Einführung, 14 Übungen zur Vorlesung Voraussetzungen: Anmeldung in Uniworx Übungsbetrieb: Wöchentliche Übungen ab 16.10 Dienstag 9-12 Uhr, Richard-Wagner-Strasse 10, Raum 110 Hinweis: Exkursionen / Industrievorträge geplant (s. Folie 16)

Einführung, 15 Literatur Ian Sommerville: Software Engineering, 9th edition, Addison-Wesley 2010. Helmut Balzert: Lehrbuch der Software-Technik (3 Bände), Spektrum Akademischer Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering, 2009 Lehrbuch der Softwaretechnik: Softwaremanagement, 2008 Lehrbuch der Softwaretechnik: Entwurf, Implementierung, Installation und Betrieb (2011) Leider decken diese (Standard-)Bücher die Vorlesung nicht komplett ab V.a. Agile Methoden, Formale Verifikation Weitere Literatur bei den einzelnen Modulen

Einführung, 16 Vorlesungsüberblick Themenblock Thema A) Einführung Einführung, Überblick B) Prozeß Wasserfall, V-Modell, Iterativ Agile Methoden / Scrum Projektmanagement C) Anforderungen Anforderungsanalyse Zielorientierte Methoden Anforderungsspezifikation D) Architekur Systemarchitektur Muster E) Test, Validierung Qualitätsmanagement, SW-Test Black-Box, White-Box test F) Formale Methoden Einführung Formale Methoden Modellprüfung

Einführung, 17 Geplante Industriebeiträge 30.10: Aufwandsschätzung für Software Exkursion zur Firma MSG 6.11: Projektmanagement Vortrag Firma Accenture Qualitätssicherung (in Planung) Firma BMW Architecture Review (in Planung) Firma Siemens

Einführung, 18 Exkursion zur Firma MSG Aufwandsschätzung für Software Termin: Dienstag, 30. Oktober 2012, 09:15 13:15 Uhr Ort: msg systems ag, Robert-Bürkle-Str. 1, 85737 Ismaning Teilnehmer: Anmeldung über C. Kroiss/Uniworks; Laptops mitbringen Programm 09:15 09:45 Begrüßung & Vorstellung msg systems ag 09:45 11:15 Aufwandsschätzung in der industriellen Praxis 11:15 13:15 Fallstudie Aufwandsschätzung mit msg Werkzeugen am echten Case Optionales Programm der Firma MSG 13:15 14:00 - Mittagessen mit Mitarbeitern der msg - 14:00 14:30 Berufseinstieg als Informatiker ein persönlicher Erfahrungsbericht 14:30 15:00 FAQ Berufsbild Informatiker, am Beispiel der msg

Einführung, 19 Übersicht über die Vorlesung

Einführung, 20 Anforderungsanalyse Anforderungserwerb Konzeptuelle Modellierung Anforderungsvalidierung

Einführung, 21 Prozess und Projektmanagement Vorgehensmodelle Prozessverbesserung Projektmanagement Empirisches Software-Engineering Systemanforderungen Softwareanforderungen Beispiel: Wasserfallmodell - vereinfachte Darstellung Analyse Design Codierung Test Betrieb

Einführung, 22 Software-Architektur Architekturentwurf Systemarchitektur Middleware Entwurfsmuster & Komponenten Beispiel: Architektur einer Java- Entwicklungsplattform (informell)

Einführung, 23 Validierung und Test Testplanung Blackbox- und Whiteboxtest Modultest Testüberdeckung Alle Tests erfolgreich!

Einführung, 24 Beispiel Formale Methoden: Zugangskontrolle für eine Brücke 24 Stopable Area [10,20] [3,5] Crossing [7,15] River

Einführung, 25 Modellierung und Automatische Verifikation(mit Uppaal) 25

Einführung, 26 Zusammenfassung Software-Produktqualität umfasst die Aspekte Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit, Übertragbarkeit Software Engineering bedeutet die Bereitstellung und systematische Verwendung von Methoden,Verfahren und Werkzeugen zur Entwicklung, Betrieb und Wartung von Software Feedback Stellen Sie viele Fragen während der Vorlesung! Ohne Rückmeldung können wir nichts verändern! Durchführung: Am Besten konstruktiv & offline.