Das Softwaresystem BASEMENT

Ähnliche Dokumente
Prinzipien der objektorientierten Programmierung (OOP)

Objektorientiertes Programmieren

Einführung in die objektorientierte Programmierung

Objektorientierte Programmierung (OOP)

Software Engineering

Objektorientierte Programmierung

III.1 Prinzipien der funktionalen Programmierung - 1 -

11/2009 Bernhard Gangl. Steuerungen mit OOP entwickeln 11 / Themenübersicht. Übersicht und Begriffsklärung: Objektorientierte Programmierung

Objektorientierte Programmierung II

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

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

4. Mentorium. UML-Modellierung (Lösungshinweise)

Grundlagen des Software Engineering

Aufbau betrieblicher Informationssyteme

Notationen zur Prozessmodellierung

Informationsverarbeitung im Bauwesen

Programmierparadigmen

Modell zur Einflussanalyse Ein Modell zur Einflussanalyse von Methodenänderungen in Entwicklungsprozessen

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

Programmierparadigmen A01 OOP. Programmierparadigmen

Umfrage und Ausblick. David F. Vetsch VAW, ETH Zürich. BASEMENT Anwendertreffen

4.Grundsätzliche Programmentwicklungsmethoden

1. Grundbegriffe der Softwaretechnik. 1.1 Herausforderungen

Objektorientierte Softwareentwicklung

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Objektorientierte Programmierung Teil 1: Einführung

WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER. Advanced Matlab. living knowledge WWU Münster. Mario Ohlberger, Martin Drohmann, Stefan Girke 10/05/2012

Analyse und Entwurf von Softwaresystemen mit der UML

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

Einführung in die Objektorientierung (OO)

Software- und Systementwicklung

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis Grundbegriffe der Programmierung Strukturelle Programmierung

Fach: Softwareentwicklung für technische Systeme (SOFT) Berufsbezogener Lernbereich Schwerpunkt: Informations- und Automatisierungstechnik

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Universität Karlsruhe (TH)

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Kapitel 2 - Die Definitionsphase

Kapitel 4 - Die Implementierungsphase

Inhaltsverzeichnis. Teil I Grundlagen 1

Inhaltsverzeichnis.

Objektorientierte Programmierung OOP

MDRE die nächste Generation des Requirements Engineerings

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Inhalte des Moduls Programmieren 1

Objektorientierte Konzepte

UML (Unified Modelling Language) von Christian Bartl

Software Engineering

7. Zusammenfassung (1)

Quantifizierung nicht-funktionaler Anforderungen JURISTISCHES IT-PROJEKTMANAGEMENT WS1617 DOZENT: DR. FRANK SARRE LMU MÜ NCHEN ZHENHAO LI

2 Grundsätzliches zur objektorientierten Programmierung.. 33

ALGOL 68 im Aspekt einer modernen Programmiersprache???

SHARE_Personas Stimulierungsprojekt FFG Programm Benefit 5. Aussschreibung. Bernhard Wöckl Mai 2010

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

Programmierung in C/C++

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Objektorientierte Programmierung

Softwaremodellierung innerhalb eines SAP ABAP Projekts im agilen Umfeld

FACHHOCHSCHULE MANNHEIM

10. Programmierungs-Phase: Objektorientierung Software Engineering

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

Simulationsmodelle im Gebäudesektor

Software Engineering

Behutsame Modernisierung

BASEmen und die Anwender/innen

PHP OOP, Design Patterns und UML. Marco Skulschus

7. Objektorientierung. Informatik II für Verkehrsingenieure

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

Objektorientierte Analyse (OOA) Inhaltsübersicht

Software-Engineering

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

Objektorientiertes Software-Engineering

Praxisbuch Objektorientierung

Software Engineering. 5. Architektur

IT-Projekt-Management

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Software Design Patterns. Einführung II

Praxis der Softwareentwicklung

Prozesse optimieren und Kosten reduzieren in der Fertigungsindustrie. Modular, Individuell, Einfach

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

Transkript:

Numerische Modellierung von Naturgefahren mit dem Softwaresystem BASEMENT Workshop vom 6. Oktober 2006 an der VAW ETH Zürich Das Softwaresystem BASEMENT David Vetsch

Inhalt 1. Motivation und Entstehungsgeschichte 2. Anwendungsbereiche und Anforderungen 3. Projektschwerpunkte und Ziel 4. Warum ein Software- System 5. Software Engineering 6. Der objektorientierte Ansatz 7. Overhead und Mythos 8. BASEMENT v1.1

Motivation Generell: Verbesserung der Dimensionierungswerkzeuge für flussbauliche Fragestellungen und entsprechende Implementierung in Form eines Software-Tools...

Motivation namens BASEMENT: o modulares Softwaretool zur Simulation von Strömungs- und Transportprozessen in Fliessgewässern o Gemeinsame Infrastruktur für die Implementierung und Anwendung von verschiedenen Modelltypen räumlicher und prozessorientierter Natur (Basis für weitere Submodule, wie z.b. Seitenerosion, Murgang, inverse Modellierung) o Nachhaltigkeit: objektorientierte Vorgehensweise, verbindliche Definition von Schnittstellen und Prozessen, Dokumentation

Entstehungsgeschichte Rhone-Thur Projekt 2001-2006 www.rhone-thur.eawag.ch Nachhaltiger Umgang mit Fliessgewässern am Beispiel der Rhone und Thur

Entstehungsgeschichte Chance für eine neue Basis: Auftragsbezogene Softwareentwicklung an der VAW während der letzten 30 Jahre Mangel an Kontinuität und Dokumentation Rhone-Thur Projekt (BWG als Auftraggeber der VAW) als Möglichkeit zur Entwicklung eines neuen Softwaresystems Zusammenstellung eines Projektteams mit 4-5 Mitarbeitern Start des Projekts Ende 2002

Anwendungsbereiche numerisches Tool zur Simulation von Fliessgewässern mit Sedimenttransport und Naturgefahren für die computergestützte Untersuchung von.... Hochwasserereignissen.. Überschwemmungen.. Geschiebehaushalt.. Flussdeltaentwicklung.. Gerinneaufweitungen.. Flussmorphologie..und entsprechende Erweiterung der numerischen Modelle.

Anforderungen Dammbruch Kolk Zeit Überschwemmung Raum Morphologische Entwicklung

Anforderungen Korndurchmesser Geschiebetrieb Suspensionstransport Murgänge Feststoffanteil

Projektschwerpunkte neues Softwaresystem basiert auf 2dmb und Floris (Reverse- Engineering), Erfahrung und entsprechende Referenzen Behebung Stabilitätsprobleme Auflösung single point of knowledge -> Kontinuität -> Dokumentation Flexibilität des Codes : Erweiterbarkeit und Unterhalt Kombination von verschiedenen Modellen Primärer Projektfokus : Numerik mit Qualität

Projektziel Erstellen einer erweiterbaren und dokumentierten Software-Umgebung zur numerischen Simulation von Fliessgewässern mit Sedimenttransport, als solide Basis für Dissertationen und Projektbearbeitung.

Warum ein Software- System? 1d 2d 3d Grad Grad an an Idealisierung // Effizienz Auflösung der der Prozesse -- Berechnungsaufwand

Warum ein Software- System? BASEMENT Numerical Models Input / Output Pre Processing Post Processing Topography GIS Hydrology Sedimentology and Soil Parameters

Warum ein Software- System? BASEchain 1d BASEplane 2d BASEspace 3d

Warum ein Software- System?

Software Engineering Software-Krise ab Mitte 60iger und in 70iger Jahren bis Anfang 80iger Jahre = Programmieren Junge Ingenieursdisziplin (ca. 25 Jahre alt) Einführung von bewährten Vorgehensweisen und Methoden aus der Praxis ab Anfang 80iger Jahre -> Prozesse Vergleichbar mit Prozessen aus dem Bauingenieurwesen (z.b. Brückenbau)

Software Engineering Erhebung der Standish Group : CHAOS Report 1994 189% über geschätzten Kosten 222% der geplanten Zeit 94 Restarts pro 100 Projekte 42% der spez. Funktionalität

Phasen der Projektorganisation Qualitätssicherung tssicherung Analyse Entwurf Implementierung Test Analyse Projektmanagement Arbeitsorganisation Ermittlung der Anforderungen von zukünftigen Anwendern -> Gewährleisten der Nutzungsbedürfnisse Entwurf Detaillierte Planung des Aufbaus des Programms -> Erstellen des Bauplans Implementierung und Test Programmieren, testen und bereinigen der Fehler -> Realisierung

Der prozedurale Ansatz Prozessorientierte Methoden / prozeduraler Ansatz : Daten bearbeiten und Datenfluss gewährleisten Daten sind überall, d.h. in und ausserhalb von Prozeduren

Der objektorientierte Ansatz Definition: objektorientiert (OO): Eine Technik oder Programmiersprache betreffend, die Objekte, Klassen und Vererbung unterstützt. (ISO) Objektorientierte Methoden: Klare Trennung von Daten und Funktionen Gruppierung von Eigenschaften und Fähigkeiten zu sog. Klassen Zusammenführen durch Programmlogik

Prinzipien der Objektorientierung Abstraktion Umgang mit Komplexität : Zuweisen von Eigenschaften und Fähigkeiten eines Objekts, Deklaration von Beziehungen zu anderen Objekten Objekt Eigenschaften Fähigkeiten Weitere Prinzipien: Datenkapselung, Vererbung, Polymorphismus

Nutzen und Vorteile von OOP Konsequente Abstraktion zuerst denken und skizzieren, dann programmieren Software-Komponenten Zerlegung in Teilprobleme Übersicht bei komplexen Systemen Wartung und Unterhalt Erweiterbarkeit : z.b. Modellanpassungen Dokumentation einerseits vorgegeben durch Prozess andererseits durch OOP (definierte Schnittstellen) Widerverwendbarkeit Selbstständigkeit der Objekte, z.b. 1d und 2d

Nutzen und Vorteile von OOP, jedoch Anwendung einer objektorientierten Methode ist keine Garantie für Qualität (Erfahrung, Konstituierung erst seit Mitte 90iger)

Overhead und Mythos Vetsch sagt: Objektorientierte Programme sind schneller als prozedurale. Vergleichsgrössen Ausführungszeit (statische vs. dynamische Speicherverwaltung) Berechnungszeit (Funktionsaufrufe, Datenzugriff) Programmierung Datenzugriff über Zeiger, resp. Listen von Zeigern ökonomischer Umgang mit Funktionsaufrufen und Vergleichen Compiler Entwicklung von Compilern für OO-Sprachen optimierende Compiler

Overhead und Mythos Vetsch sagt: Objektorientierte Programme sind schneller als prozedurale. Es ist ein Mythos.. ebenso wie derjenige, dass Entwickler von prozeduralen Programmen keine Ahnung von Objektorientierung haben.. und dass man mit prozeduralen Ansätzen zwangsläufig unübersichtliche Programme erstellt.

BASEMENT v1.1 BASEMENT ist ein modulares objektorientiertes Softwaresystem mit folgender Spezifikation: problembezogene Strömungssimulation anhand verschiedener räumlicher Modelle (1d, 2d) Modellierung von Geschiebe- und/oder Suspensionstransport Wahl von verschiedenen numerichen Ansätzen und empirischen Gesetzmässigkeiten je nach Aufgabenstellung Erweiterbarkeit und Nachhaltigkeit durch transparenten obejktorientierten Systemaufbau

BASEMENT v1.1 News, Software und Dokumentation www.basement.ethz.ch Tragen Sie Sich für den Newsletter ein! System Manuals v1.1 im Ordner: CHF 98.-