Fundamentals of Software Engineering 1



Ähnliche Dokumente
Abschnitt 16: Objektorientiertes Design

Prozess-Modelle für die Softwareentwicklung

Software- Entwicklungsaktivitäten und Vorgehensmodelle. Lebenszyklusmodell

Einführung in die Informatik

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Softwaretechnik. Fomuso Ekellem WS 2011/12

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

Dokumentation für die Software-Wartung

1. Grundbegriffe des Software-Engineering

T1 - Fundamentaler Testprozess

Einführung in die Softwareentwicklung

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

Software Engineering

T2 Fundamentaler Testprozess

Übungen zur Softwaretechnik

Wirtschaftsinformatik I Teil 2. Sommersemester Übung

Was versteht man unter einem Softwareentwicklungsmodell?

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

Kapitel 2: Der Software-Entwicklungsprozess

Some Software Engineering Principles

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

Die Softwareentwicklungsphasen!

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Softwaretechnik (Allgemeine Informatik) Überblick

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

Software-Entwicklung

Zusammenfassung der Testarten

Datenschutzfreundliches Projektmanagement Sven Thomsen Unabhängiges Landeszentrum für Datenschutz Schleswig-Holstein

Praktikum Software Engineering: Verfahren und Werkzeuge

SysInventor. Jakobstr. 64 D Konstanz. Kontakt: Phone +49 (0) Fax +49 (0)

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

IT-Projekt-Management

Übungsaufgaben zum Software Engineering: Management

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

Vorgehensmodelle zur Softwareentwicklung

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Validierung und Verifikation!

6. Programmentwicklung

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

BSSE. Innovation & Fortschrittliche Software-Technologie Fähigkeiten & Dienstleistungen

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

Software Projekt 2 / Gruppe Knauth Lernziele:

Grundlagen Software Engineering

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

3.2,,Eichung von Function Points (Berichtigte Angabe)

,$ -. "+0 *+*+ ! / -#$%$. #$%'' $ () 1 2$ #$%$! 1 2$3 )!

SPI-Seminar : Interview mit einem Softwaremanager

Integration von ITIL in das V-Modell XT

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Das Wasserfallmodell - Überblick

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

2. Workshop: Vorgehensmodelle in der Praxis Reife und Qualität

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

9.6 Korrekturmaßnahmen, Qualitätsverbesserung

Angepasste Software Standards für DLR- Eigenentwicklungen - Die DLR Software Basisstandards -

Software-Engineering

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System


Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Integrative Entwicklungsprozesse am Beispiel einer automotiven Anwendung

Fallbeispiel. Auswahl und Evaluierung eines Software- Lokalisierungstools. Tekom Herbsttagung 2004 Angelika Zerfaß

Requirements-Traceability in der industriellen Praxis Ziele und Einsatz

Vorlesung Embedded Software-Engineering im Bereich Automotive

PROJEKTMANAGEMENT GRUNDLAGEN_2

your engineering partner boost your development

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

16 Architekturentwurf Einführung und Überblick

Kapitel 10: Dokumentation

A Domain Specific Language for Project Execution Models

Klausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement

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

Klausur Software Engineering für WI (EuI)

Systemdenken und Gestaltungsmethodik Einführung und Grundlagen II

Leseauszug DGQ-Band 14-26

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

17 Architekturentwurf Vorgehen und Dokumentation

Qualitätssicherung im Lebenszyklus des itcs. Anspruch und Wirklichkeit.

Softwaretechnik. Fomuso Ekellem WS 2011/12

16.4 Wiederverwendung von COTS-Produkten

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Klausur Software-Engineering SS 2005 Iwanowski

So#ware Engineering 1. Einführung und Begriffe

SEA. Modellgetriebene Softwareentwicklung in der BA

6 Vorgehensbausteine. <Datum> <Organisation> <Veranstaltungsort> <Vortragender> <Organisation>

T3 Testen im Software- Lebenszyklus

SWE12 Übungen Software-Engineering

ITIL und Entwicklungsmodelle: Die zwei Kulturen

Das chronische Problem der Anforderungsanalyse und die Frage: Fehler vermeiden oder früh entdecken? Oral Avcı ZU KÖLN

Software - Testung ETIS SS05

Qualitätsmanagement im Projekt

Validierung und Verifikation

6 Produktqualität Systeme: Integrationstest [sehr stark gekürzt]

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

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Professionelles Projektmanagement in der Praxis. Veranstaltung 7 Teil 1 ( ):

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

Übungen Softwaretechnik I

Transkript:

Folie a: Name Fundamentals of Software Engineering 1 1 Sommersemester 2006 University Duisburg-Essen Abteilung Elektrotechnik und Informationstechnik Inhaltsverzeichnis 1. 1.1 Geschichte der Software Entwicklung 1.3 Systematische Projektplanung 2. Allgemeine Modellbildung 2.1 Funktionale Modelle 2.2 Automatenmodelle 5. Benutzersschnittstellen 6. Softwaretest 7. Software Projektmanagement 3 Strukturierte Analyse 3.1 Datenflussdiagramme 3.2 Detailspezifikation von Prozessen und Daten 3.3. Datenmodellierung 4. Strukturierter Entwurf (SE) 4.1 Aufbau der Modellierungsphasen nach Ward/Mellor 4.2 Modellierung von Transformationen 4.3 Modellierung des Systemverhaltens 4.4 Zusammenfassung der Aufgaben bei der Erstellung des essentiellen Modells 4.5 Implementierungsmodell 4.6 Prozesse und Prozessverwaltung 4.7 Vorgehensweise bei der Erstellung des Implementierungsmodells 4.8 Prozeßverwaltung durch ein Betriebssystem 4.9 Universität Prozeßverwaltung Duisburg-Essen durch Programmiersprachen

1. Software Engineering (Definition) Software-Engineering ist eine Disziplin, die mit ingenieurmäßigen Mitteln und ökonomischem Vorgehen dem Entwickler hilft, qualitative hochwertige Software zu erstellen und zu pflegen, [Wallmüller in Kne93]. 1. Software Engineering (Definition) Prinzipien, Methoden und Techniken zur Entwicklung großer Softwaresysteme: Analysemethoden: Bestimmung der fachlichen Anforderungen an das System Designmethoden Entwicklung einer technischen Systemarchitektur Implementierungstechniken Testverfahren

1.1 Geschichte der Software Entwicklung Die Anfänge (1/2) 60er Jahre: Software wird größtenteils unstrukturiert und ohne Unterteilung in überschaubare Phasen erstellt. fehlende Möglichkeiten zur Leistungskontrolle erst seit Ende der 60er Jahre Ansätze zur Verbesserung der Arbeitsweise 1968 erste Software-Engineering-Konferenz in Garmisch Begriff Software Engineering eingeführt. Erste Definition des Begriffs Software Engineering The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines [F.L.Bauer] 1.1 Geschichte der Software Entwicklung Die Anfänge (2/2) 70er Jahre Phasenmodelle, Vorgehensmodelle zeitliche und organisatorische Strukturierung des Entwicklungsprozesses eindeutig definierbare Hierarchien und Zuständigkeiten Aufteilung in unabhängig arbeitende Projektgruppen

1.1 Geschichte der Software Entwicklung Das heutige Software Engineering (1/3) [Pagel and Six]: Das typische Softwareprojekt dauert etwa ein bis zwei Jahre Ein großes Softwarepaket besteht aus mindestens 50.000 Zeilen Quellcode Nur zwischen 70 und 80 Prozent aller Projekte werden erfolgreich abgeschlossen Jeder Projekmitarbeiter produziert pro Tag weniger als zehn Zeilen ausführbares Programm (über die gesamte Entwicklungszeit betrachtet) Während der Entwicklung werden in 1.000 Zeilen Quellcode durchschnittlich zwischen 50 und 60 Fehler entdeckt Nach der Auslieferung werden in den 1.000 Zeilen noch bis zu 4 Fehlern gefunden Die meisten von Benutzern gefundenen Fehler gehen auf Fehler in der Analyse und Design Phase zurück 1.1 Geschichte der Software Entwicklung Das heutige Software Engineering (2/3) nur 2% aller Produkte aus Software-Projekten werden ohne größere Probleme eingesetzt. die meisten Problem sind nicht technischer Natur nichts beeinflusst die Kosten eines Softwareprojektes so nachhaltig negativ, wie ein schlechtes, planloses Management und ständig wechselnde Anforderungen. [Boehm 1981] [Ergebnisse einer Studie der US Regierung]

1.1 Geschichte der Software Entwicklung Das heutige Software Engineering (3/3) Grundvoraussetzungen guter Programmierstil, effizienter Einsatz leistungsfähiger Programmiersprachen aufgabenangemessene Entwicklungswerkzeuge Darüber hinaus: Projekt Management präzise Erfassung und Erreichung von Kunden- und Marktanforderungen Effizienzsteigerung in der Softwareentwicklung Sicherstellung eines hohen Qualitätsniveaus Berücksichtigung von Wartbarkeit und existierenden Altsystemen 1.1 Geschichte der Software Entwicklung Die 10-Fehler der heutigen Software Entwicklung 1. Es wird mit der Codierung sofort angefangen 2. Es wird nicht systematisch bzw. unzureichend getestet 3. Eine Festlegung der Anforderungen/Qualitätsmerkmale fehlt 4. Standards und Richtlinien werden nicht beachtet 5. Die Dokumentation fehlt bzw. ist veraltet, unzureichend oder nicht adäquat 6. Ein Vorgehensmodell fehlt, bzw. wird nicht verfolgt 7. Eine Abnahme der Phasenergebnisse erfolgt nicht 8. Schlecht Namensvergabe wie z.b. File-, Klassen-, Methoden- und Variablennamen 9. Die Systemarchitektur ist nicht oder nur sehr umständlich erweiterbar (fehlende Datenkapselung, fehlende Modularität) 10. Die Schulung für die Software-Ersteller und -Anwender wird vernachlässigt oder als nicht notwendig angesehen 11. Die Terminvorgaben sind unrealistisch 12. Begriffe werden nicht definiert 13. Die Auswahl der Werkzeuge/Methoden ist unzureichend vorbereitet

1.1 Geschichte der Software Entwicklung SWE und Fatal Errors Example- 4. Juni 1996: First Start of "Ariane-5 Costs of the Ariane-5-Sotfware until 1996: approx.. 8 billion US-$ Worth the destroyed satellite: approx.. 500 million US-$ During the flight an unnecessary calibration program for the inertia sensors runs. The measured values of the Ariane-5 exceed the values of the Ariane-4-Software. => Fault 1: undetected The (Ada) Exception causes the stop of the control computer, in order to switch to a second redundant system. In the second system the same software error arises and is identically treated. Product, Process, Project Idee Design Prozess Projekt Produkt: Erzeugnis, Ergebnis eines Tätigkeitsvorhabens, Output: Software, Schriftstück (Studie), Dienstleistung. Nutzen für Kunden, Vermarktbarkeit. Projekt: Zielorientiertes Vorhaben zur Herstellung des Produkts Prozess: Vorgehen im Projekt zur Herstellung des Produkts, Planungsund Realisierungsablauf. Test Anforderungsanalyse Spezifikation Implementierung Systemintegration Produkt (vs. Ziel) Wartung Pflege

Projekteinflussparameter Personal Methoden/Tools Kosten (Entwicklungskosten Wartungskosten, etc.) Funktionsumfang Zeit (Dauer für Entwicklung, Nutzung, Wartung, etc.) Qualität (Wartbarkeit Zuverlässigkeit, Effizienz, etc.) Projektorganisation Unternehmen Kostenentwicklung in Rechnersystemen Prozentanteile bei Systementwicklung Hardware Rembold Seite 268 Software 3% Anforderungsanalyse 3% Spezifikation 5% Entwurf 7% Codierung 8% Modultest Softwareentwicklung Softwarewartung Zeit 7% Integrationstest 67% Wartung

Verhältnis zwischen geplanten und tatsächlichen Kosten Zeit (Monate) tatsächlich Kosten (TDM) projektiert SW 1500 SW SW + 53 % 1000 SW + 72% 5 HW + 17 % HW 500 HW + 15% HW Software Qualitätssicherung Software-Qualitätssicherung Tätigkeiten, die dazu dienen, den Nachweis zu erbringen, dass die Qualitätsanforderungen an die Software erfüllt sind. Software-Projektmanagement Wahrnehmung der klassischen Managementaufgaben: Ziele setzen, Planen, Entscheiden, Realisieren Kontrollieren

Sequential Life-Cycle Model (1/3) Vorstudie Anforderungsanalyse Spezifikation der Anforderung Sequentielles Life-Cycle Model [W.Royce 1970] Unterteilung des Entwicklungsprozesses in Phasen sequentielle Abarbeitung der einzelnen Phasen Systementwurf Codierung Zeit Modultest Integration Systemtest Betrieb und Wartung Sequential Life-Cycle Model (2/3) Vorstudie Anforderungsanalyse Spezifikation der Anforderung Systementwurf Codierung Modultest Integration Systemtest Betrieb und Wartung Vorstudie: informale Darstellung einer Idee Anforderungsanalyse: Definition globaler Ziele Spezifikation: Festlegen der Solleigenschaften Systementwurf: Festlegung von Software-Architektur Schnittstellen Datenstrukturen Codierung: Umsetzung in maschinenlesbaren Code Modultest: Überprüfung und Fehlerbeseitigung. Integration: Zusammenfügen des Gesamtsystem. Systemtest: Überprüfung und Fehlerbeseitigung des Gesamtsystems. Betrieb und Wartung: Einsatz beim Kunden Änderungen und Reparaturen Sonderleistungen, z.b. Anwenderschulung

Sequential Life-Cycle Model (3/3) Nachteile: zu scharfe Trennung der Phasen (einzelne Phasen können ineinander verzahnen) keine Validation an den Phasenübergängen Erste Verbesserung: Das Wasserfallmodell nach Boehm Das Wasserfallmodell Verbesserungen: Befolgen führt zu einem detaillierten Ablauf Erstellung und Pflege von Dokumenten betont. Vorstudie Anforderungsanalyse Spezifikation der Anforderung Nachteile: dokumentenorientierte Software- Entwicklung Reviews zu aufwendig Risikofaktoren eines Projekts werden zu wenig beachtet Systementwurf Codierung Modultest Integration Systemtest Betrieb und Wartung Betrieb und Wartung

Das V-Modell Testfälle Anforderungsvalidierunvalidierung Entwurfs- Testvalidierung Systemdurchfürbarkeitskonzept Anforderungsdefinition Testfälle Systemkonzeptvalidierung Betrieb Pilotbetrieb/ Validierung konstruktive Aktivitäten Systemspezifikation/ Produktentwurf Komponentenentwurf Testfälle Testfälle Akzeptanztest/ Systemtest Integrationstest Verifikation prüfende Aktivitäten Modulentwurf/ Code Testfälle Einzeltest V-Modell berücksichtigt: Zeit Fehler werden am einfachsten auf der Abstraktionsstufe gefunden, auf der sie begangen wurden. Das Spiral Modell Bestimme Ziele, Alternativen, Restriktionen kumulierte Kosten Bewerte Alternativen, identifiziere und beseitige Risiken Risikoanalyse Risikoanalyse Fortschritt Zustimmung durch Reviews Plane die nächste Phase Feinentwurf Anforderungsplan, Lebenszyklusplan Entwicklungsplan Integration und Testplan Verbesserungsplan Risikoanalyse Risikoanalyse P1 Prototyp 2 Entwurfsprüfung Konzept Soft- für den ware- Betrieb Anforddefinition Anforderungsprüfung Abnahmetest und Integration und Test Prototyp 3 Software Produktentwurf Betriebsfähiger Prototyp Modultest Modul codieren Entwickle, prüfe die nächste Produkstufe

Entwurfsverfahren im Überblick (1/2) Strukturierte-Entwurfsverfahren erleichtern den Umgang mit dem System Top-Down-Verfahren (Hierarchisierung und Modularisierung) Datenflußdiagramme Zustandsübergangsdiagramme Modul-, Prozessor- und Taskmodelle erstellt Bekannte Vertreter: DeMarco [DeM79], Yourdon und Constantine [YoC79] Gane und Sarson [GaS79] Objektorientierte Entwurfsverfahren Schwerpunkt beim Entwurf der zu verarbeitenden Daten Hauptziel: Identifizierung und Modellierung von Objekten und Klassen. In der Analysephase objektorientierter Systeme können auch strukturierte Methoden eingesetzt werden. Entwurfsverfahren im Überblick (2/2) Design methods DeMarco Ward & Mellor Object Oriented Petri nets JSD / JSP ERM Used basis methods and charts Top-Down-design Bottom-Up-design Data flow chart Jackson chart entity & relations () Object oriented charts Data-Dictionary Decision table Pseudocode Finite state machines / finite automation Direction of orientation Function oriented Data oriented () Objekt oriented. () State oriented ()

1.3 Systematische Projektplanung 1.3 Systematische Projektplanung Projektplanung warum? Effekte von Fehlern im Herstellungsprozess

1.3 Systematische Projektplanung Fehler und Kosten Fehler in SW Ursprung Kosten Anforderung 56% 82% Entwurf 27% 13% Implementation 7% 1%