Vorlesung: 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

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

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

Qualitätssicherung. Was ist Qualität?

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

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

Softwareentwicklungsprozesse. 18. Oktober 2012

Software Engineering

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer

16 Architekturentwurf Einführung und Überblick

6 Management der Informationssysteme (2)

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Softwaretechnik. Fomuso Ekellem WS 2011/12

Software Systems Engineering

Methoden des Software Engineering

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Testen in KMU Projekten Bern, November 2013

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Abschnitt 16: Objektorientiertes Design

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen

Qualitätsmanagement. Andreas Bäuml SWT-Projekt WS 07/08

Functional Safety. Systems Engineering als Schlüsseldisziplin in Projekten mit funktionaler Sicherheit

12 Nicht-funktionale Anforderungen

Softwaretechnik WS 2013/14. Fomuso Ekellem

Vorlesung Embedded Software-Engineering im Bereich Automotive

dspace bildet aus! Ausbildung zum Fachinformatiker Anwendungsentwicklung (w/m)

SWE12 Übungen Software-Engineering

Einführung in die Informatik

Architektur und Qualität. Tjard Köbberling

Entwurf. Anwendungsbeginn E DIN EN (VDE ): Anwendungsbeginn dieser Norm ist...

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

Fragebogen ISONORM 9241/110-S

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

FUTURE NETWORK REQUIREMENTS ENGINEERING

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Softwareanforderungsanalyse

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn Inhaltsverzeichnis.

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Pflichtenheft. 1 Zielbestimmungen Musskriterien Wunschkriterien Abgrenzungskriterien... 2

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Softwaretechnik. Fomuso Ekellem WS 2011/12

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

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Übungsklausur vom 7. Dez. 2007

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Einführung in Eclipse und Java

Prozess-Modelle für die Softwareentwicklung

Kapitel 2: Der Software-Entwicklungsprozess

Empirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010

Einführung und Motivation

Software Engineering

Software- Entwicklungsaktivitäten und Vorgehensmodelle. Lebenszyklusmodell

Klausur Softwaretechnik Feb. 2008

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

1. Grundbegriffe des Software-Engineering

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Software Engineering

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Product Line Engineering (PLE)

Fragebogen zur Anforderungsanalyse

Software-Entwicklung

Commerce-Anwendungen. Entwicklung von E- Prof. Dr. Susann Kowalski

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

17 Architekturentwurf Vorgehen und Dokumentation

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Softwareentwicklungsprozess im Praktikum. 23. April 2015

32 Bachelorstudiengang Allgemeine Informatik

Einführung in die Informatik

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Praktikant / Abschlussarbeit im Bereich Softwareentwicklung / Mechatronik (m/w)

FACHHOCHSCHULE MANNHEIM

Markus Pister (Autor) Integration formaler Fehlereinflussanalyse in die Funktionsentwicklung bei der Automobilindustrie

Software Engineering. Dokumentation! Kapitel 21

gallestro BPM - weit mehr als malen...

Validierung von Software-Werkzeugen. Matthias Hölzer-Klüpfel

Informationswirtschaft 2: Überblick

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Microsoft SharePoint 2013 Designer

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

Klausur Software-Engineering SS 2005 Iwanowski

Die Makler System Club FlowFact Edition

Proseminar Technische Informatik A survey of virtualization technologies

Musterfragen ALLGEMEINE Systemlehre

Die Zertifizierungsstelle der TÜV Informationstechnik GmbH bescheinigt hiermit dem Unternehmen

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Informationssystemanalyse Grundlagen 1 1

Professionelle Seminare im Bereich MS-Office

Präsentation Von Laura Baake und Janina Schwemer

Was versteht man unter Softwaredokumentation?

Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- Architekturentwicklung von Fahrzeugen

Grundbegriffe der Wirtschaftsinformatik Informationssystem I

Übungsaufgaben zum Software Engineering: Management

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 tosoftware. IEEE Std. 610.12 (1990) Methoden des Software Engineering Nora Koch, Martin Wirsing mit Beiträgen von Harald Störrle in Zusammenarbeit mit Florian Hacklinger WS 2006/07 Vorlesung: Methoden des Software Engineering Block R (Rahmen) Einführungund Übersicht Martin Wirsing Einheit R1, 17.10.2006

4.Juni 1996: Erster Start der "Ariane-5" Während des Flugs läuft einunnötiges Kalibrierungsprogrammfür die Trägheitssensoren.Die inder Ariane-4-Softwarevorgesehenen gemessenen Werte Bereiche. derariane-5 überschreiten die Die dadurch ausgelöste (Ada-)Exceptionwird durchanhalten des Steuerungscomputersbehandelt, umzuschalten. um auf ein zweitesredundantes System Im zweiten System tritt dergleiche Software-Fehler aufund wird identisch behandelt. Kosten des Ariane-5-Programms bis1996ca. 7 Milliarden US-$ Wert des zerstörten Satelliten:ca. 500 Millionen US-$ Software-Katastrophe: Kein Einzelfall Technik-Katastrophen: Einheitenumrechnung September 1999: Verlust der Sonde "Mars ClimateOrbiter" wegen falscher 1985-1987Therac25 Programmierung führt zu (Strahlengerät Verbrennungen zur und Krebsbehandlung): Todesfällen Fehlerhafte Finanzielle Katastrophen: Fehlers 1990 AT&T für mehr Telefonverbindung als 24 Stdunterbrochen: zwischen ca. Ost-und 1 Mia US-$ Westküste der USA wgeines SW- 1992: Reservierungssystemen Integration des Reservierungssystems abgebrochen: 165 Mio. SABRE US-$ mit anderen 1996 DtscheTelecom: 1. Januar 1996 ist kein Feiertag : >50 MioDM Terminkatastrophen: 1994: Softwareproblemen Eröffnung des im Denver Gepäcktransport-System International Airport um 9 Monate verzögertwegen 2003: Einführung des LKW-Mautsystems in Deutschland verzögert sich um 18 Monate

Permanente Software-Krise? 1965:Der Begriff der Softwarekriseetabliert sich in Industrie und Wissenschaft. Fehler in Computersystemen sind fast immer auf Softwarefehlerzurückzuführen Software wird nicht termingerecht und/oder zu höheren Kosten als geschätztfertiggestellt Software entspricht oft nicht den Anforderungen ihrer Benutzer Studie von 1979zu Softwareprojekten (USA): 75% der Ergebnisse nie eingesetzt 19% der Ergebnisse stark überarbeitet 6% benutzbar. Studie von 1994zu Software-Großprojekten (IBM Consulting): 55% Kostenüberschreitung 68% Terminüberschreitung 88% Bedarf für starke Überarbeitung Was ist Software? Software ist eine Sammlung von Computerprogrammen, Prozeduren, Regeln,zugehöriger Dokumentation und Daten [IEEE Std. 729-83] Software ist eine Menge von Programmen oder Daten zusammen mit begleitenden Dokumenten, die für ihre Anwendung notwendig oder hilfreich sind [Hesse et al. 1984] Verschiedene Sichten auf Software: Innensicht:Software alssystem Außensicht:Software alsprodukt

Block R (Rahmen): Innensicht Einführung der Entwickler: Software als System System Menge von Elementen, zwischen denen bestimmte Beziehungenbestehen [Duden 1974] Softwaresystem Basissoftware: Schnittstelle zur Hardware (insbes. Betriebssystemewie Unix, Windows, ), Datenbanken, Kommunikationsprotokolle Middleware: Plattform insbesondere für verteilte Anwendungen(Workflow- Management, CORBA, Grid-Plattform, ) Anwendungssoftwarezur Lösung kundenspezifischer Aufgaben Software-intensives System System, das Softwarekomponenten enthält und in dem Software eine große Rolle spielt (eingebettete Systeme in Zügen, Autos; verteilte Anwendungen wie virtuelle Firmen, Geschäftsnetzwerke; mobile und ortsbezogene Informationsdienste; Webdienste,...) Block R (Rahmen): Außensicht Einführung der Anwender: Software als Produkt Produkt Ein in sich abgeschlossenes, i.a. für einen Auftraggeberbestimmtes Ergebnis eines erfolgreich durchgeführten Projektsoder Herstellungsprozesses [Balzert 2000] Softwareprodukt Individualsoftwareentwickelt Kundenverwaltung, Hubschraubersteuerung) für einen Auftraggeber (z.b. Standardsoftwareentwickelt Logistik (SAP R/3), für Anwenderklasse, z.b. Büro(MS-Office), Typische Systemarten Informationssysteme (Sachbearbeitung) Eingebettete Systeme (Steuerungen) Produktionsplanung und -steuerung Telekommunikation (Vermittlungssysteme) E-Business(Web-Systeme)

Besonderheiten von Software Software ist immateriell. Software unterliegt keinemverschleiß. 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. Softwarealtert. Software thing. Software isa hybrid, isneitherland halfwaybetweenan norsea, butswamp: abstractideaand a hybrid a toothinforth physical, tan (software engineering) and toothickforthenavy(computerscience). Brad Cox Block R (Rahmen): Software-Produktqualität Einführung (ISO 9126/DIN 66272) Funktionalität Angemessenheit Sicherheit Genauigkeit der Berechnung Interoperabilität Konformanzzu Standards Zuverlässigkeit Reife Fehlertoleranz Wiederherstellbarkeit Benutzbarkeit Verständlichkeit Erlernbarkeit Bedienbarkeit Effizienz Zeitverhalten Verbrauchsverhalten Änderbarkeit Analysierbarkeit Modifizierbarkeit Stabilität Prüfbarkeit Übertragbarkeit Anpassbarkeit Installierbarkeit Konformanzzu Standards Austauschbarkeit

Was ist Software Engineering? Eine naive Sicht: Problem Spezifikation Kodierung Programm Aber... Wo kommt die Spezifikationher? Woher weißman, dass die Spezifikation die Nutzerbedürfnisseerfüllt? Wie wurde die Struktur des Programmsbestimmt? Woher weißman, dass das Programm die Spezifikation erfüllt? Woher weißman, dass das Programm immer zuverlässig arbeitenwird? Was macht man, wenn der Anwender Änderungen benötigt? Wie Team strukturiert von Entwicklernzur man die Verfügung Programmentwicklung steht? in Unteraufgaben, wenn ein Software Engineering (I) Einige Definitionen und Aspekte Theestablishmentand useof soundengineering principlesin order to obtaineconomicallysoftware F.L. Bauer, NATO-Konferenz thatisreliableand Software-Engineering runson real machines. 1968 The application of a systematic, disciplined, quantifiable approach to the application development, of operation, engineering and to maintenance software. of software; that is, the IEEE Std. 610.12 (1990) Also: Bereitstellung und systematischeanwendung von Methoden,Verfahren und Werkzeugen zur Entwicklung, Betrieb und Wartung von Software.

Software Engineering (I) stateof theart of developingqualitysoftware on time and withinbudget 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 Software Engineering (III) multi-personconstructionof multi-versionsoftware David L.Parnas Teamarbeit 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

Software Engineering (IV) software engineering isdifferent fromotherengineering disciplines Ian Sommerville Nicht durch physikalische Gesetze eingeschränkt Die Grenze ist der menschliche Geist Aber beschränkt durch politische Kräfte Interessen der Beteiligten abwägen und ausgleichen Methoden des Software Engineering: WS 2003/04 Dozenten: Dr. Nora Koch, Prof. Dr. Martin Wirsing Übungsleitung: Dipl.Inf. Florian Hacklinger Vorlesungstrukturiert in einzelne Moduln Folienmöglichst am Vorabend der Vorlesung im Netz http://www.pst.informatik.uni-muenchen.de/lehre/ws0607/mse/ Feedback Stellen Sieviele Fragen während der Vorlesung! OhneRückmeldungkönnen wir nichts verändern! Durchführung: Am Besten konstruktiv & offline.

Übungen zur Vorlesung Voraussetzungen: Gute Programmierkentnisse(möglichst Java) Übungsbetrieb: Wöchentliche Übungen, Mi 14-16 Uhr, Oettingenstr. 67, Raum 0.33, Beginn 2. Woche 3 Hausaufgabenblätter Klausur, 10. Februar 2007, 13:00-15:00 Uhr, Hauptgebäude, Raum B 201 Literatur Ian Sommerville: Software Engineering, 6th edition,addison-wesley2000. Helmut Balzert: Lehrbuch der Software-Technik (2 Bände), SpektrumAkademischer Verlag 2000 und 1998. Weitere Literatur bei den einzelnen Moduln

Software-Engineering an der LMU Methoden des Software Engineering SW-Engineering-Praktikum Grundlagen der Systementwicklung Semantik von Programmiersprachen Temporale Logik und Zustandssysteme Modelchecking-Praktikum Entwurf und Implementierung paralleler Programme WS 06/07 Software-Architektur Formale Objekt-orientierte Software- Entwicklung SS07 Objekt-orientierte Software-Entwicklung Inhalt der Vorlesung Block R: Block A: Block B: Block C: Block D: Block E: Block F: Block R: Einführung und Übersicht (MW) Anforderungsentwicklung (MW) Software-Architektur (MW/HS) Formale Methoden (MW) Validierung& Verifikation (MW) Software-Prozess & Projektmanagement (MW/HS) Web-Engineering (NK) Ausblick (MW)

Anforderungsanalyse Anforderungserwerb Konzeptuelle Modellierung Anforderungsvalidierung Software-Architektur Architekturentwurf Systemarchitektur Middleware Entwurfsmuster & Komponenten Beispiel: Architektur einer Java- Entwicklungsplattform (informell)

Funktionale Spezifikation Eigenschaften dynamischer Systeme Formale Methoden Zustandsautomaten Petrinetze interface Konto balance: Integer update(n: Integer) getbalance(): Integer undo() self.getbalance() = self@pre.getbalance() + n self.undo() = obs self@pre Beweisverpflichtung implements Konto balance: Integer update(n: Integer) getbalance(): Integer undo() history History balance: Integer prev balance = balance@pre + n history.oclisnew Validierungund Test Testplanung Blackbox-und Whiteboxtest Modultest mit JUnit Verifikation durch Modelchecking Alle Tests erfolgreich!

Prozess und Projektmanagement Vorgehensmodelle Prozessverbesserung Projektmanagement Empirisches Software-Engineering Systemanforderungen Softwareanforderungen Analyse Design Codierung Test Beispiel: Wasserfallmodell -vereinfachte Darstellung Betrieb Web-Engineering Modellierung von Web Anwendungen Web-Architektur, -Implementierung und Testen Web-Prozessmodelle und Projektmanagement Konzeptuelles Modell Implementierung des Präsentationsmodells

Zusammenfassung Software-Produktqualität umfasst die Aspekte Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit, Übertragbarkeit Software Engineering bedeutet die Bereitstellung und systematischeverwendung von Methoden,Verfahren und Werkzeugen zur Entwicklung, Betrieb und Wartung von Software