Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1"

Transkript

1 Vorlesung 1 Fundamentals of Software Engineering 1 Sommersemester 2013 Inhaltsverzeichnis 1. Allgemeine Begriffsbidlung 1.1 Einleitung 1.2 Geschichte der Software-Entwicklung 1.4 Der Software Lebenszyklus Vorgehensmodelle Kostenentwicklung in Rechnersystemen 1.4 Systematische Projektplanung 1

2 1.1 Einleitung Software-Komplexität Quelle: Christof Ebert Einleitung Software: Was ist das eigentlich? Software ist soviel mehr als nur der Quellcode 2

3 1.1 Einleitung Verschiedene Sichten auf das Produkt SOFTWARE 1.2 Geschichte der Software Entwicklung Dijkstra 1972: "Als es noch keine Rechner gab, war auch das Programmieren noch kein Problem; als es dann ein paar Rechner gab, war das Programmieren ein kleines Problem; und nun, wo wir gigantische Rechner haben, ist auch das Programmieren zu einem gigantischen Problem geworden" 3

4 1.2 Geschichte der Software Entwicklung - Begriffsdefinitionen: Software Engineering - Parnas 1974: Software -Engineering ist die Programmierung unter mindestens einer der zwei Bedingungen: Mehr als eine Person schreibt und benutzt das Programm Mehr als eine Fassung des Programms wird erzeugt. Dennis 1975: "Software Engineering ist die Anwendung von Prinzipien, Fähigkeiten und Kunstfertigkeiten auf den Entwurf und die Konstruktion von Programmsystemen Boehm 1979: "Software Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse auf den Entwurf und die Konstruktion von Programmsystemen." 1.2 Geschichte der Software Entwicklung - Definitionen: Software Engineering - Sommerville 1985: "Software Engineering befasst sich mit dem Bau von Software-Systemen, die nicht von einem Entwickler alleine hergestellt werden können. Software-Engineering beruht auf der Anwendung ingenieursmäßiger Prinzipien und umfasst sowohl technische als auch nichttechnische Aspekte." IEEE-Standard The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering g to software. Booch 1998: The goal is to efficiently and predictable deliver a software product that meets the needs of the business 4

5 1988: Airbus downing during Iran-conflict. 1991: Sleipner Offshore Platform. Sinking caused by the wrong use of FEcode NASTRAN, : Ariane 5, Explosion; data conversion of a too large number 1999: Mars ClimateOrbiters, Loss; Mixture of pounds and kilograms 2002: Geldautomaten Aufgrund eines Softwareproblems konnten bei allen anderen Geldinstituten außer der Postbank selbst mit beliebigen Pincodes Euro abgehoben werden, ohne dass das Sparkonto mit der abgehobenen Summe belastet wurde. 2003: Deutsches Mautsystem 2004: The Role of Software in Spacecraft Accidents, Nancy Leveson, Ariane 5 Absturz 4. Juni 1996: First Start of "Ariane-5 Schaden Satelliten verloren: M Euro 2 Jahre Verzug im Entwicklungsprogramm: > 500 M Euro 2 zusätzliche Erprobungsstarts bei Gesamtkosten des Projekts von 1987 bis 1998 von M Euro 5

6 Die Software für das Trägheitsnavigationssystem wird unverändert von der Ariane 4 übernommen. Alle Systeme der Rakete werden komponentenweise gründlich getestet. Ein gemeinsamer Test der gesamten Steuerungssoftware unterbleibt aus Kosten- und Machbarkeitsgründen. In der Software für das Trägheitsnavigationssystem gibt es eine Abgleichs-funktion, deren Werte eigentlich nur sinnvoll sind, solange die Rakete noch nicht fliegt. Diese Funktion arbeitet programmgemäß bis ca. 40 s nach Abheben (HO) weiter, weil das bei der Ariane 4 im Fall eines Countdownabbruchs kurz vor dem Abheben sinnvoll war. Flug 501 startet am 4. Juni Die Triebwerke zünden um HO=9:33:59 Ortszeit. Die ersten 36 Sekunden des Flugs verlaufen normal. Da die Ariane 5 eine andere Flugbahn hat als die Ariane 4, berechnet die Abgleichsfunktion einen Wert, der wesentlich größer ist als erwartet. Bei der Konvertierung dieses Werts von einer 64 Bit Gleitkommazahl in eine 16-Bit Festkommazahl tritt ein Überlauf ein; der Rechner erzeugt eine Ausnahmebedingung. Die Ausnahmebedingung wird nicht behandelt (obwohl dies in der verwendeten Programmiersprache Ada möglich wäre). Der Trägheitsnavigationsrechner setzt eine Fehlermeldung an den Steuerrechner der Rakete ab und schaltet sich 36,75 s nach H0 ab. Das Trägheitsnavigations-system ist aus Sicherheitsgründen doppelt ausgelegt. Ein Umschalten auf das zweite System schlägt fehl, da dieses System das gleiche Problem hatte und sich vor 0,0505 s ebenfalls abgeschaltet hat. Die Software des Steuerrechners ist auf den Ausfall beider Trägheitsnavigationssysteme nicht ausgelegt und interpretiert die gemeldeten Fehlercodes als Flugbahndaten. 6

7 Dies führt zu völlig unsinnigen Berechnungen und als Folge davon zu unsinnigen Stellbefehlen an die Steuerdüsen der Rakete: Diese werden bis zum maximal möglichen Anstellwinkel ausgeschwenkt. Aufgrund der resultierenden Scherkräfte zerbricht die Rakete, worauf der Selbstzerstörungsmechanismus ordnungsgemäß anspricht. Dieser sprengt Rakete und Nutzlast und verhindert damit, dass größere Trümmerteile auf den Boden fallen. -Was können wir aus dem Absturz der Ariane5 lernen?- Spezifikation: Bestehende Software darf nicht unbesehen für eine neue Aufgabe wiederverwendet werden. Vorher muss geprüft werden, ob ihre Fähigkeiten den Anforderungen der neuen Aufgabe entsprechen. Dokumentation: Die Fähigkeiten einer Software sowie alle Annahmen, die sie über ihre Umgebung macht, müssen dokumentiert t sein. Andernfalls ist die Prüfung auf Wiederverwendbarkeit extrem aufwendig. Design by Contract: Kooperieren zwei Software-Komponenten miteinander, so müssen eindeutige Zusammenarbeitsregeln definiert, dokumentiert und eingehalten werden: Wer liefert wem was unter welchen Bedingungen. Fehlerbehandlung: Jede potentielle Fehlersituation in einer Software muss entweder behandelt werden oder die Gründe für die Nichtbehandlung müssen so dokumentiert werden, dass die Gültigkeit der dabei getroffenen Annahmen überprüfbar ist. Software & Hardware: Mehrfache identische Auslegung von Systemen hilft nicht gegen logische Fehler in der Software. Sicherheit: Bei Störungen in sicherheitskritischen Systemen ist Abschalten nur dann eine zulässige Maßnahme, wenn dadurch wieder ein sicherer Zustand erreicht wird. 7

8 1.2.1 Software bedingte Katastrophen -Was können wir aus dem Absturz der Ariane5 lernen?- Qualitätsmanagement Test: Bei der Prüfung von Software, die aus mehreren Komponenten besteht, genügt es nicht, jede Komponente nur isoliert für sich zu prüfen. Umfangreiche Systemtests unter möglichst realistischen Bedingungen sind notwendig. Review: Jedes Programm muss - neben einem sorgfältigen Test - durch kompetente Fachleute inspiziert werden, weil insbesondere die Erfüllbarkeit und Adäquatheit von Annahmen und Ergebnissen häufig nicht testbar ist. Effektivität: Software, die nicht benötigt wird, sollte auch nicht benutzt werden. Projektführung Risikomanagement: Die Risiken erkennen, angemessene technische Maßnahmen (siehe oben) planen, durchsetzen und überprüfen. 8

Warum ist Ariane 5 beim Erstflug explodiert?

Warum ist Ariane 5 beim Erstflug explodiert? Warum ist Ariane 5 beim Erstflug explodiert? Was geschah mit Flug 501? Software Engineering I Fallstudie Ariane Flug 501 1998 by Martin Glinz 1 Chronik der Ereignisse Die Software für das Trägheitsnavigationssystem

Mehr

Software Engineering. Ariane Flug 501! Fallstudie

Software Engineering. Ariane Flug 501! Fallstudie Martin Glinz Thomas Fritz Software Engineering Fallstudie Ariane Flug 501! 2005-2013 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen Gebrauch

Mehr

Software Engineering I Prof. Dr. Martin Glinz. Fallstudie: Ariane Flug 501. Universität Zürich Institut für Informatik

Software Engineering I Prof. Dr. Martin Glinz. Fallstudie: Ariane Flug 501. Universität Zürich Institut für Informatik Software Engineering I Prof. Dr. Martin Glinz Fallstudie: Ariane Flug 501 Universität Zürich Institut für Informatik Was geschah mit Flug 501? So hätte es aussehen sollen......und so sah es tatsächlich

Mehr

Software Engineering Vorlesung für Medieninformatik

Software Engineering Vorlesung für Medieninformatik Software Engineering Vorlesung für Medieninformatik Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung

Mehr

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1 Vorlesung 2 Fundamentals of Software Engineering 1 Inhaltsverzeichnis 1. Einführung 1.1 Einleitung 1.2 Geschichte der Software-Entwicklung 1.3 Software-Engineering Today 1.4 Software Projekte und Kosten

Mehr

Softwareprozessmodelle

Softwareprozessmodelle Softwareprozessmodelle jung@cncgmbh.eu Definition Software Engineering The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that

Mehr

Software-Engineering Grundlagen des Software-Engineering 1 Einführung - Was ist Software-Engineering?

Software-Engineering Grundlagen des Software-Engineering 1 Einführung - Was ist Software-Engineering? Software-Engineering Grundlagen des Software-Engineering 1 Einführung - Was ist Software-Engineering? Prof. Dr. Rolf Dornberger Software-Engineering: 1 Einführung - Was ist Software-Engineering? 05.04.2006

Mehr

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

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering mit Übungen Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering 2 Organisation Ort: Seminarraum 05.002, Spiegelgasse 5 Ablauf: 15:15 Vorlesung Prüfung: Schriftlich,

Mehr

Software- und Systementwicklung

Software- und Systementwicklung Software- und Systementwicklung Seminar: Designing for Privacy 11.11.2009 Moritz Vossenberg Inhalt Vorgehensmodelle Wasserfallmodell V-Modell Phasen (Pflichtenheft) UML Klassendiagramm Sequenzdiagramm

Mehr

Einführung in die Softwareentwicklung

Einführung in die Softwareentwicklung Einführung in die Softwareentwicklung Dipl. Wirtsch. Ing. Alexander Werth 1-1 Software Enge Definition von Software: Software ist die Gesamtheit aller Programme Ein Program ist die Umsetzung von Algorithmen

Mehr

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

Ariane 5 - Luftfahrt Berühmt-berüchtigte Software-Fehler

Ariane 5 - Luftfahrt Berühmt-berüchtigte Software-Fehler Ariane 5 - Luftfahrt Berühmt-berüchtigte Software-Fehler Christian Weyand Universität Koblenz - Landau Ariane 5 - Luftfahrt p.1 Das Ariane - Programm Gründung der European Space Agency (ESA) mittlerweile

Mehr

Benutzerorientierte Entwicklung mobiler Anwendungen

Benutzerorientierte Entwicklung mobiler Anwendungen Benutzerorientierte Entwicklung mobiler Anwendungen Prof. Dr.-Ing. Thomas Ritz 30. Juni 2006 Prof. Dr.-Ing. Thomas Ritz Arbeiten für Verlage und Verlags-SW Hersteller Fraunhofer IAO in Stuttgart Medienindustrie

Mehr

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert Vgl. Kapitel 4/5 aus Basiswissen Requirements Engineering, Klaus Pohl,

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert Vgl. Kapitel 4/5 aus Basiswissen Requirements Engineering, Klaus Pohl, Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert Vgl. Kapitel 4/5 aus Basiswissen Requirements Engineering, Klaus Pohl, Chris Rupp Nachdem die Projekt-Vision und die Stakeholder

Mehr

Software-Entwicklung

Software-Entwicklung Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung

Mehr

Methodische Softwareentwicklung (Programmiermethodik)

Methodische Softwareentwicklung (Programmiermethodik) Methodische Softwareentwicklung (Programmiermethodik) Vorlesung im Wintersemester 2003/2004 Prof. Fachgebiet für Software Engineering Wilhelmshöher Allee 71-73 34121 Kassel (Raum 0630 im Neubau) MSEInhalt.fm,1

Mehr

IT-Projekt-Management

IT-Projekt-Management IT-Projekt-Management email: vuongtheanh@netscape.net http: www.dr-vuong.de 2005 by, Bielefeld Seite 1 Vorgehensmodell 2005 by, Bielefeld Seite 2 Was ist ein Vorgehensmodell? Strukturbeschreibung über

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Analyse- und Designmethoden Analyse- & Designmethoden Strukturierte, traditionelle Methoden Objektorientierte Methoden Funktionsorientierte Methoden Datenorientierte

Mehr

1.1 Spezifikation und Entwurf im Software-Lebenslauf Lineares Prozessmodell:

1.1 Spezifikation und Entwurf im Software-Lebenslauf Lineares Prozessmodell: 1 Einführung und Überblick 1.1 Spezifikation und Entwurf im Software-Lebenslauf Lineares Prozessmodell: Anstoß Auftrag Projekt planen Anforderungen spezifizieren Lieferung Architektur entwerfen System

Mehr

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

Agile Software Entwicklung. Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski Agile Software Entwicklung Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski Agenda zum Kurs Software Engineering Wasserfallmodell Agile Entwicklung Wer bin ich Studium der Computerlinguistik

Mehr

Software Engineering II (IB) Testen von Software / Modultests

Software Engineering II (IB) Testen von Software / Modultests Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 21:17 Inhaltsverzeichnis Programm-Tests.................................. 2 Ziele des Testens..................................

Mehr

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 - Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren I. Überblick.  Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Programmieren I Überblick KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Übersicht Programmieren Programmieren I (1. Semester) 4 Vorlesungs- und Übungsstunden / Woche 7,5 (!) Stunden

Mehr

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3 Systems Engineering Systems Engineering ist die gezielte Anwendung von wissenschaftlichen und technischen Ressourcen! zur Transformation eines operationellen Bedürfnisses in die Beschreibung einer Systemkonfiguration

Mehr

Requirement: Klar und testbar!

Requirement: Klar und testbar! Requirement: Klar und testbar! Definitionen, Merkmale, Beispiele Lukas Kraus, Lead QA Engineer www.bbv.ch bbv Software Services Corp. 1 Ich geh mal fragen was die wollen, und ihr beginnt schon mal zu codieren!!!

Mehr

Kapitel 8: Fehlervermeidung

Kapitel 8: Fehlervermeidung Kapitel 8: Fehlervermeidung Inhalt 8.1 Prozesse mit kontinuierlicher Prüfung 8.2 Systematisches Entwerfen und Programmieren 8.3 Dokumentier- und Codierrichtlinien Schlüsselbegriffe Cleanroom, Fehlervermeidung,

Mehr

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren I. Überblick.  Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Programmieren I Überblick KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Übersicht Programmieren Programmieren I (1. Semester) 4 Vorlesungs- und Übungsstunden / Woche 1 Stunde

Mehr

Binäre Darstellung ganzer Zahlen

Binäre Darstellung ganzer Zahlen Vorlesung Objektorientierte Softwareentwicklung Exkurse use Binäre Darstellung ganzer Zahlen Binärdarstellung natürlicher Zahlen Ganze Zahlen im Einerkomplement Ganze Zahlen im Zweierkomplement Elementare

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2009 11. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik quasthoff@informatik.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen

Mehr

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf Nachdem die Projekt-Vision und die Stakeholder bekannt sind,

Mehr

Die Komponenten eines effektiven Projektmanagements. Biel Tabea Wallner Vivien

Die Komponenten eines effektiven Projektmanagements. Biel Tabea Wallner Vivien Die Komponenten eines effektiven Projektmanagements Biel Tabea Wallner Vivien Themen der Präsentation - Was ist ein Projekt? - Was ist Projektmanagement? - 2 Typen von Projektmanagement - Unterschied zwischen

Mehr

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

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP 3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg ARIS meets RUP Der ARIS Unified Information System Development Process Martin Plümicke Berufsakademie

Mehr

Herkömmliche Softwareentwicklungsmodelle vs. Agile Methoden

Herkömmliche Softwareentwicklungsmodelle vs. Agile Methoden vs. Agile Methoden Christoph.Kluck@Student.Reutlingen University.de Medien und Kommunikationsinformatik Agenda Einführung Vorgehensmodelle Herkömmlich agil Resümee Klassische Probleme Nachgereichte Anforderungen

Mehr

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar: KLIPS 2.0 Dozent: Prof. Dr. Thaller Referent:

Mehr

Proseminar Software Desaster. ARIANE 5 Absturz des Flugs 501

Proseminar Software Desaster. ARIANE 5 Absturz des Flugs 501 Proseminar Software Desaster ARIANE 5 Absturz des Flugs 501 Mathias Riedl 4.12.2002 Gliederung: 1. Einleitung: Rückschlag für Raumfahrt 2. Allgemeine Beschreibung des Vorfalls a. Ablauf des Countdowns

Mehr

Software Engineering II (IB) Testen von Software / Modultests

Software Engineering II (IB) Testen von Software / Modultests Testen von Software / Modultests Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Programm-Tests Tests sollen zeigen, dass ein Programm das tut was es tun soll sowie

Mehr

Qualitätsmanagement im Projekt

Qualitätsmanagement im Projekt Software-Engineering Qualitätsmanagement im Projekt Vorlesung im Wintersemester 2008/2009 Fakultät Wirtschaftsinformatik Klaus Mairon, M.Sc. Inhalte Messen und Bewerten: Metriken in der Qualitätssicherung

Mehr

Risikoanalyse in der Nanotechnologie. Ein Ansatz um Risiken in neuen Technologien zu bewerten

Risikoanalyse in der Nanotechnologie. Ein Ansatz um Risiken in neuen Technologien zu bewerten Risikoanalyse in der Nanotechnologie Ein Ansatz um Risiken in neuen Technologien zu bewerten Dipl.-Phys. Thorsten Weidl TÜV SÜD Industrie Service GmbH Westendstr. 199 D-80686 München +49 (0) 89 5791 2701

Mehr

Einführung in die Softwareentwicklung

Einführung in die Softwareentwicklung Einführung in die Softwareentwicklung Thorsten Lemburg Universität Hamburg Seminar: Softwareentwicklung in der Wissenschaft 1 / 53 Einführung in die Softwareentwicklung - Thorsten Lemburg Gliederung 1.

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Kapitel 1 1 Einleitung

Kapitel 1 1 Einleitung Kapitel 1 Einleitung 1 1 1 Einleitung 1 Einleitung Die Informatik begegnet uns im Alltag ständig. Einmal natürlich als Rechenanlagen, die wir in Büros, Arztpraxen und zu Hause sehen. Zum anderen ist sie

Mehr

Risiken auf Prozessebene

Risiken auf Prozessebene Risiken auf Prozessebene Ein Neuer Ansatz Armin Hepe Credit Suisse AG - IT Strategy Enabeling, Practices & Tools armin.hepe@credit-suisse.com Persönliche Vorstellung, kurz 1 Angestellter bei Credit Suisse

Mehr

Testen Prinzipien und Methoden

Testen Prinzipien und Methoden Testen Prinzipien und Methoden ALP 2 SS2002 4.7.2002 Natalie Ardet Definition Im folgenden gilt: Software = Programm + Daten + Dokumentation Motivation Software wird immer mehr in Bereichen eingesetzt,

Mehr

1. Grundbegriffe des Software-Engineering

1. Grundbegriffe des Software-Engineering 1. Grundbegriffe Software Engineering 1 1. Grundbegriffe des Software-Engineering Was ist Software-Engineering? (deutsch: Software-Technik) Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen

Mehr

Qualitätsmanagement & Zertifizierung. Referent Christian Dörner

Qualitätsmanagement & Zertifizierung. Referent Christian Dörner Qualitätsmanagement & Zertifizierung Referent Christian Dörner Überblick Systemarten Qualitätsmanagement Qualitätssicherung Qualitätskontrolle ISO 9000 Zertifizierung Safety Case IEC 61508 DO 178B Schlussfolgerung

Mehr

Variablen und Datentypen

Variablen und Datentypen Programmieren mit Java Modul 1 Variablen und Datentypen Selbstständiger Teil Inhaltsverzeichnis 1 Bremsweg-Berechnung 3 1.1 Einführung.................................. 3 1.2 Aufgabenstellung und Programmanforderungen..............

Mehr

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 Inhalt: Anforderungen an ein Schema Design eines Schemas Schrittweises Vorgehen Strukturierung und Design der Daten in DOORS Voraussetzung für

Mehr

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

Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- Architekturentwicklung von Fahrzeugen Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- entwicklung von Fahrzeugen Martin Jaensch, Dr. Bernd Hedenetz, Markus Conrath Daimler AG Prof. Dr. Klaus D. Müller-Glaser

Mehr

Fehlertoleranz in eingebetteten Systemen

Fehlertoleranz in eingebetteten Systemen Fehlertoleranz in eingebetteten Systemen Ausgewählte Kapitel eingebetteter Systeme (AKES) 19.07.2006 1 / 36 Was ist ein Fehler? Fehlerklassen Überblick Einführung Was ist ein Fehler? Fehlerklassen 2 /

Mehr

Blockpraktikum (theoretische Informatik) Effizientes Programmieren

Blockpraktikum (theoretische Informatik) Effizientes Programmieren Blockpraktikum (theoretische Informatik) Effizientes Programmieren Markus Holzer und Christian Kern und Lorenz Mösenlechner und Michael Tautschnig Institut für Informatik Technische Universität München

Mehr

Whitepaper: Agile Methoden im Unternehmenseinsatz

Whitepaper: Agile Methoden im Unternehmenseinsatz Whitepaper: Agile Methoden im Unternehmenseinsatz Agilität ist die Fähigkeit eines Unternehmens, auf Änderungen in seinem Umfeld zu reagieren und diese zum eigenen Vorteil zu nutzen. Inhaltsverzeichnis

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Proseminar Technische Informatik WS08/09 bei Georg Wittenburg, M.Sc. Zuverlässigkeit und Fehlertoleranz in der Technik

Proseminar Technische Informatik WS08/09 bei Georg Wittenburg, M.Sc. Zuverlässigkeit und Fehlertoleranz in der Technik Proseminar Technische Informatik WS08/09 bei Georg Wittenburg, M.Sc. Zuverlässigkeit und Fehlertoleranz in der Technik Ein Vortrag von Sebastian Oliver Kalwa Berlin, 30.01.2009 1 Was ist Fehlertoleranz?

Mehr

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle Mit Legacy-Systemen in die Zukunft Dr. Roland Schätzle Der Weg zur Entscheidung 2 Situation Geschäftliche und softwaretechnische Qualität der aktuellen Lösung? Lohnen sich weitere Investitionen? Migration??

Mehr

RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen

RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen Thorsten Keuler (thorsten.keuler@iese.fraunhofer.de) IESE Fraunhofer Institut Experimentelles Software

Mehr

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

Results in time. DIE MEHRWERTE DES SAP SOLUTION MANAGER 7.2. Beratung. Support. Ganzheitliche Lösungen.

Results in time. DIE MEHRWERTE DES SAP SOLUTION MANAGER 7.2. Beratung. Support. Ganzheitliche Lösungen. DIE MEHRWERTE DES SAP SOLUTION MANAGER 7.2 Results in time. Beratung. Support. Ganzheitliche Lösungen. BIT.Group GmbH www.bitgroup.de Klassifizierung: Öffentlich Autor: Henry Flack Version: 1.5 Datum:

Mehr

Software Engineering

Software Engineering Literatur Gliederung Software Engineering Herbert Kuchen Universität Münster Di+Fr 14:15-15:45, M2 Wintersemester 2009/2010 1 Literatur Gliederung Basis-Literatur H. Balzert: Lehrbuch der Software-Technik,

Mehr

Programmiermethodik Vorlesung und Praktikum SS 2001

Programmiermethodik Vorlesung und Praktikum SS 2001 Vorlesung und Praktikum SS 2001 Prof. Dr. W. Effelsberg, G. Kühne, Ch. Kuhmünch Universität Mannheim 1. Einführung 1-1 Inhalt 1. Einführung, Vorstellung der Programmieraufgabe 2. Der Software-Entwicklungszyklus

Mehr

Requirements Engineering für die agile Softwareentwicklung

Requirements Engineering für die agile Softwareentwicklung Johannes Bergsmann Requirements Engineering für die agile Softwareentwicklung Methoden, Techniken und Strategien Unter Mitwirkung von Markus Unterauer dpunkt.verlag Inhaltsverzeichnis 1 Einleitung 1 1.1

Mehr

Exkursion zu Capgemini Application Services Custom Solution Development. Ankündigung für Februar 2013 Niederlassung Stuttgart

Exkursion zu Capgemini Application Services Custom Solution Development. Ankündigung für Februar 2013 Niederlassung Stuttgart Exkursion zu Capgemini Application Services Custom Solution Development Ankündigung für Februar 2013 Niederlassung Stuttgart Ein Nachmittag bei Capgemini in Stuttgart Fachvorträge und Diskussionen rund

Mehr

Systematischer Testfallentwurf als zentrales Element der Aufwandsteuerung

Systematischer Testfallentwurf als zentrales Element der Aufwandsteuerung Systematischer Testfallentwurf als zentrales Element der Aufwandsteuerung Q-Event, Luzern 4.9.2014 Hugo Beerli, bbv Software Services AG Senior Testmanager «Nicht das, was wir nicht wissen, bringt uns

Mehr

4. OBDDs und Modellüberprüfung

4. OBDDs und Modellüberprüfung 4. OBDDs und Modellüberprüfung OBDD Ordered Binary Decision Diagrams Geordnete binäre Entscheidungsdiagramme Binäres Entscheidungsdiagramm: in der einfachsten Form ein binärer Entscheidungsbaum, in dem

Mehr

Gemeinsam mehr erreichen.

Gemeinsam mehr erreichen. Gemeinsam mehr erreichen. Microservices, ein Vorgehensmodell zur Softwareentwicklung - Nürnberg - 17. November 2016 "Mit unserer Begeisterung für führende Technologien vernetzen wir Systeme, Prozesse und

Mehr

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

Software Engineering. Validierung und Verifikation. Martin Glinz Harald Gall. Kapitel 7. Universität Zürich Institut für Informatik Martin Glinz Harald Gall Software Engineering Kapitel 7 Validierung und Verifikation Universität Zürich Institut für Informatik 2005, 2006 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe

Mehr

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

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

Mehr

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1 Vorlesung 9 Fundamentals of Software Engineering 1 Inhaltsverzeichnis 1. Einführung 2. Allgemeine Modellbildung 3. Strukturierte Analyse 4. Strukturierter Entwurf (SE) 4.1 Aufbau der Modellierungsphasen

Mehr

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

Software Factories WS 2016/17. Prof. Dr. Dirk Müller. 1 Einführung Software Factories 1 Einführung Prof. Dr. Dirk Müller Überblick Master-Studiengang Angewandte Informationstechnologien Wintersemester 2016/17 2 SWS Vorlesung + 2 SWS Praktikum Prüfungsvorleistung: Belegarbeit

Mehr

LINUX Schulung. FrauenComputerZentrum Berlin. Jutta Horstmann, Mai 2006

LINUX Schulung. FrauenComputerZentrum Berlin. Jutta Horstmann, Mai 2006 LINUX Schulung FrauenComputerZentrum Berlin Jutta Horstmann, Mai 2006 Diskussion Freie Software vs. Open Source F/OSS vs. Proprietäre Software : : : data in transit : : : fczb Linux Schulung : : : Jutta

Mehr

Übersicht über den Studiengang

Übersicht über den Studiengang Inhaltsübersicht - Übersicht über den Studiengang - Modellstudienpläne - Übersicht Vertiefungen (optional) - Modellstudienpläne "Research Track" (optional) Übersicht über den Studiengang Varianten "Ohne

Mehr

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken 1 Java ist... gut erlernbar wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax objektorientiert Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken robust keine Adressen,

Mehr

1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen

1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen 1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen 1.5.1 Situation Manchmal möchte man in Programmen mit Kommazahlen rechnen. In der Mathematik Im der Wirtschaft, im kaufmännischen Bereich

Mehr

Scrum. Agile Software Entwicklung mit. Agile Software Entwicklung mit. Scrum. Raffael Schweitzer 18. November 2003

Scrum. Agile Software Entwicklung mit. Agile Software Entwicklung mit. Scrum. Raffael Schweitzer 18. November 2003 Agile Software Entwicklung mit Raffael Schweitzer 18. November 2003 Agenda Einleitung Was ist? Wie funktioniert? Einsatzbereiche Erfolgsfaktoren Fazit Agenda Einleitung Was ist? Wie funktioniert? Einsatzbereiche

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Inhaltsverzeichnis. Teil I Grundlagen 1

Inhaltsverzeichnis. Teil I Grundlagen 1 xv Teil I Grundlagen 1 1 Modelle und Modellierung 3 1.1 Modelle, die uns umgeben.................................. 3 1.2 Modelltheorie........................................... 5 1.3 Ziele beim Einsatz

Mehr

Systematisches Requirements Engineering und Management

Systematisches Requirements Engineering und Management Christof Ebert Systematisches Requirements Engineering und Management Anforderungen ermitteln, spezifizieren, analysieren und verwalten 2., aktualisierte und erweiterte Auflage ^1 dpunkt.verlag Inhalt

Mehr

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

Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen White Paper Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen Die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen

Mehr

Agiles Projektmanagement

Agiles Projektmanagement Agiles Projektmanagement A B U S I N E S S P E R S P E C T I V E Christian Setzwein Agenda Rahmenbedingungen für Projekte Der Umgang mit Unsicherheit im klassischen PM Agiles PM: Techniken, Prinzipien,

Mehr

Qualitätssicherung von Software

Qualitätssicherung von Software Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST 2.4 OO-Test 26.11.2004 Folie 2 Kapitel 2. Testverfahren 2.1 Testen im SW-Lebenszyklus 2.2

Mehr

Empirisches Software Engineering Methoden und Relevanz

Empirisches Software Engineering Methoden und Relevanz Empirisches Software Engineering Methoden und Relevanz Stefan Wagner Technische Universität München Dr. Stefan Wagner 31.10.2007 Fakultät für Informatik Lehrstuhl für Software & Systems Engineering Definition

Mehr

Software-Engineering

Software-Engineering FH Wedel Prof. Dr. Sebastian Iwanowski SWE1 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 1: Überblick über das Thema und die Vorlesung FH Wedel Prof. Dr. Sebastian Iwanowski SWE1 Folie

Mehr

Erweiterungscurriculum Grundlagen der Informatik

Erweiterungscurriculum Grundlagen der Informatik BEILAGE 3 zum Mitteilungsblatt 15. Stück, Nr. 97.2 2015/2016 04.05.2016 Erweiterungscurriculum Grundlagen der Informatik Datum des Inkrafttretens 1. Oktober 2016 Inhaltsverzeichnis 1 Allgemeines...- 2-2

Mehr

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser Programmierung, Algorithmen und Techniken von Thomas Ohlhauser 1. Begriff Programmierung Entwicklung von Programmen inklusive der dabei verwendeten Methoden und Denkweisen. Ein Programm ist eine eine Zusammensetzung

Mehr

» Qualitätsmanagement

» Qualitätsmanagement » Qualitätsmanagement Juri Urbainczyk IB/K-F Team Workshop 04.05.2010 Inhalt» Wir haben ein Problem» Qualitätsdreieck, Zielunschärfe und Fehlerentstehung» Qualitätsmanagement» Risikomanagement» Anforderungsmanagement»

Mehr

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1 Test Dipl. Wirtsch. Ing. Alexander Werth 9-1 Phasen der Problemdefinition Anforderungsanalyse Spezifikation Entwurf Implementation Erprobung Wartung Methoden der 9-2 Software Test / Erprobung Messen der

Mehr

Prüfung WS 2006/07. Robotik

Prüfung WS 2006/07. Robotik Prüfung WS 26/7 Robotik Anmerkungen: Aufgabenblätter auf Vollständigkeit überprüfen Nur Blätter mit Namen und Matr.Nr. werden korrigiert. Keine rote Farbe verwenden. Zu jeder Lösung Aufgabennummer angeben.

Mehr

Klassische Softwareentwicklung - Software Engineering -

Klassische Softwareentwicklung - Software Engineering - Klassische Softwareentwicklung - Software Engineering - Von: Claus Christofzik, Vincent Strelow Inhaltsverzeichnis: 1. WAS IST SOFTWARE- ENGINEERING 1 2. WORAUS BESTEHT SOFTWARE- ENGINEERING 1 3. VORGEHENSMODELLE.

Mehr

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

Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase) Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase) Prof. Dr. Rolf Dornberger Software-Engineering: 7 Implementierungsphase 27.04.2006 1 7 Implementierungsphase

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++ Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen

Mehr

8. Softwareentwicklung

8. Softwareentwicklung 8. Softwareentwicklung (Software Engineering) Einbettung der Programmierung in der Gesamtprozess der Softwareentwicklung K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 20015/16 Version: 02.11..2015

Mehr

Automotive Software Engineering

Automotive Software Engineering Jörg Schäuffele Thomas Zurawka Automotive Software Engineering Grundlagen, Prozesse, Methoden und Werkzeuge effizient einsetzen 4., überarbeitete und erweiterte Auflage Mit 276 Abbildungen PRAXIS ATZ/MTZ-Fachbuch

Mehr

Ingenieurinformatik. Einführung in die Programmiersprache C

Ingenieurinformatik. Einführung in die Programmiersprache C Ingenieurinformatik Einführung in die Programmiersprache C 1 Das Modul Ingenieurinformatik wird in den Bachelorstudiengängen Maschinenbau, Fahrzeugtechnik, Luft- und Raumfahrt angeboten Teil 1: Grundlagen

Mehr

Softwareentwicklungsumgebungen

Softwareentwicklungsumgebungen Softwareentwicklungsumgebungen Pit Pietsch Dipl.-Wirt.-Inform. Universität Siegen Fachgruppe Praktische Informatik Themen 1. SEU / Eclipse 2. Emf Ecore & Model Driven Engineering 3. Model-Repositories

Mehr

Lehrplan: Grundlagen der industriellen So4ware- Entwicklung. paluno

Lehrplan: Grundlagen der industriellen So4ware- Entwicklung. paluno Lehrplan: Grundlagen der industriellen So4ware- Entwicklung Gliederung 1 Grundlagen der industriellen So4ware- Entwicklung 2 Requirements Engineering (RE) 3 SpezifikaDon 4 Architektur und Design 5 Architektur-

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. Debugging-Aufgaben. Aus Programmfehlern lernen

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. Debugging-Aufgaben. Aus Programmfehlern lernen Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur Debugging-Aufgaben Aus Programmfehlern lernen No Machine is Perfect! 2 1970er-Jahre Der Autopilot von Prototypen des Kampfflugzeug F-16 brachte das Flugzeug

Mehr

Qualitätsmanagement. Grundlagen

Qualitätsmanagement. Grundlagen Grundlagen Historie: Mit industriellen Massenproduktion erforderlich geworden (Automobilindustrie, Anfang des letzten Jahrhunderts); Qualitätsmanagement zunächst nur in der Fertigung Mitte des letzten

Mehr

Kleine BUGs, große GAUs

Kleine BUGs, große GAUs Kleine BUGs, große GAUs Softwarefehler und ihre Folgen Prof. Thomas Huckle 6.3.2002 Murphy s Law Wenn irgendein Teil einer Maschine falsch eingebaut werden kann, so wird sich immer jemand finden, der

Mehr

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg Herzlich willkommen Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg Heike Bickert Software-/Systemingenieurin, Bereich Quality Management Braunschweig // 17.11.2015 1 Agenda ICS AG Fragestellungen

Mehr