====== Seminar „Softwareentwicklung in der Wissenschaft“ ====== ===== Beschreibung ===== Im Seminar werden wir die Softwareentwicklung in der Wissenschaft diskutieren. Im Detail der Prozess von der wissenschaftlichen Fragestellung über die Modellierung und Programmierung bis hin zur Analyse der Ergebnisse. Die bestehende Praxis wird analysiert und Softwareentwicklungswerkzeuge und Mechanismen vorgestellt. Dies kann einmal durch persönliche Interviews und durch ausgesuchte Literatur und wissenschaftlichen Veröffentlichungen erfolgen. Die Themen werden sich in zwei Blöcke gliedern, einmal die Wissenschaftliche Praxis und dann die Softwareentwicklung-Theorie. Die Diskrepanz zwischen Theorie und Praxis wird diskutiert und Stärken und Schwächen der Arbeitsansätze besprochen. Beachten Sie auch unsere allgemeinen organisatorischen [[:teaching:organisatorische_hinweise:seminar_proseminar#seminare|Hinweise zu Seminaren]]. ===== Zielgruppe ===== Das Seminar eignet sich für Studierende in den Diplom- und Bachelorstudiengängen mit Bezug zur Informatik. Wir fordern explizit Studierende der angewandten Informatik zur Teilnahme auf beispielsweise Bioinformatik, Wirtschaftsinformatik, Meteorologie. Für Studierende der Informatik wird die Anrechnung innerhalb des Studiums problemlos möglich, Studierende anderer Studiengänge müssen die Anrechnung mit dem jeweiligen Prüfungsausschuss klären. Interessierte Zuhörer sind auch herzlich willkommen. ===== Daten der Veranstaltung ===== || Zeit || Wöchentlich -- nach Absprache || || Ort || [[http://maps.google.com/maps?q=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hl=de&cd=2&ei=BUxYS-GvKIuLOKaotbgJ&sig2=Kv8CBjHeXm8lAVC3XxRrIQ&ie=UTF8&view=map&cid=262423906154203330&ved=0CBsQpQY&hq=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hnear=&z=16&iwloc=A|DKRZ]], Raum 034 || || Beginn || Vorlesungszeit WiSe 2010 || || Vorbesprechung || Freitag 15.10.2010 – 13:30 Uhr im DKRZ, Raum 034 || || Mailingliste || [[http://wr.informatik.uni-hamburg.de/listinfo/siw-1011|SIW-1011]] || ===== Dozenten ===== * [[People:Thomas Ludwig]] * [[People:Hermann Lenhart]] * [[People:Alumni:Julian Kunkel]] * [[People:Externals:Petra Nerge]] ===== Themenliste ===== ==== Wissenschaftliche Praxis ==== * Einführung (Sandra Schröder((Petra Nerge))) * Wissenschaftliche Softwareentwicklung (Steffen Göttsch ((Petra Nerge))) * Praxis in diversen Projekten: An Hand von Interviews soll die Praxis der Softwareentwicklung beispielhaft evaluiert werden. Die Interviewpartner sind von uns ausgesucht und werden euch von uns genannt. Sie gehören den folgenden Einrichtungen der Universität Hamburg an: * Institut für Meereskunde (IfM),(Maxim Holand ((Hermann Lenhart))) * Meteorologische Institut (MI), (Enno Köster ((Hermann Lenhart))) * Exzellenzcluster „Integrated Climate System Analysis and Prediction" (CliSAP), (Alexander Njemz ((Petra Nerge))) * Bioinformatik (Zentrum für Bioinformatik der UHH), Ansprechpartner: [[http://www.zbh.uni-hamburg.de/staff.php?mode=_details&id=torda|Prof. Dr. Andrew Torda]] * WaterGAP - Global modeling of water availability, water use, and water quality (Maral Chimed-Ochir ((Hermann Lenhart))) * Zusätzlich besteht auch die Idee Behörden, die zwar in Produktionsprozessen eingebunden sind, z.B. Sturmflutvorhersage oder Klimareport, aber die sich auch mit wissenschaftlichen Inhalten befassen bzgl. ihrer Softwareentwicklung zu befragen. Als Ansprechpartner sind angedacht: * DKRZ - Gruppe Modelle und Daten * [[http://www.bsh.de/de/index.jsp|BSH - Bundesamt für Schifffahrt und Hydrographie]] ((Hermann Lenhart)) * Im Mittelpunkt der Interviews stehen konkrete Fragen des Was, Wer, Wie und Warum der Softwareentwicklung in der Wissenschaft. Aufbauend auf den persönlichen Kenntnissen und Fähigkeiten im Bereich der Informatik kann als Ausgangspunkt die Einführungspräsentation, die angebene Literatur und eigene Literaturrecherche dienen. Die von uns ausgewählten Interviewpartner werden über eines (oder mehrere) ihrer Projekte mit euch sprechen, euch evtl. Hintergrundinformation in Form von Papern, Dokumentationen oder Links zur Fragestellung geben. Hieraus sind konkrete und gezielte Fragen zum Projekt und der Softwareentwicklung für das Interview zu erarbeiten. * Zu den Interviewfragen haben wir folgende Anregungen: * Wie wird die Theorie der SWE und welche in der Praxis ein- und umgesetzt? * Wie wird SWE im Projekt genutzt, welche Rolle hat SWE im Projekt? * Was versteht der Interviewpartner unter SWE, was gehört zur SWE? * Wie unterstützt SWE den Erkenntnisgewinn? * Als was wird SWE angesehen (notwendig, unterstützend oder notwendiges Übel)? * Wie wird die Software persönlich und nach welchem Standard, z.B. ISO/IEC 9126 bewertet? * Was ist in welcher Reihenfolge wichtig bei der SWE? * Wie sieht der SWE Prozess im Projekt und für den Interviewpartner aus: Test, Verifikation und Validierung, Debugging, Leistungsanalyse und Effizienz, Versionsmanagement, Release Management, Change Management, Risoko Management, Fehlertoleranz, Lebenszyklus, Historie der Software, Anforderungsprofil, Entwicklungswerkzeuge, Auswahl der Programmiersprache und Compiler, Qualität des Codes (Anzahl Codezeilen, aktueller Sprachdialekt, dokumentiert, lesbar, Durchgängigkeit von Genauigkeiten bei Konstanten, Umgang mit Floating Point Operationen (Standards), Auswahl der Numerik und Algorithmen), Nutzergruppen, Kollaborationen, Bedeutung der Informatik, Kenntnisse der Systemarchitektur, systemische und numerische Fehlerquellen ... * Diese Fragen sollen von allen genutzt werden, so dass wir eine einheitliche Basis haben. Daneben sind projektabhängige und von euren Interessen abhängige Schwerpunkte und Fragestellungen von euch zu erstellen. * In euren Präsentationen im Seminar stellt ihr die Fragestellung(en), die behandelte Software, den Projektkontext und die hieraus evaluierte SWE in der Praxis vor. * {{:teaching:siw-fragebogen.pdf|Vortrag: Einführungsfragebogen Softwareentwicklung in der Wissenschaft}} ==== Softwareentwicklung-Theorie ==== * Einführung in Softwareentwicklung (Thorsten Lemburg ((Julian Kunkel))) * Code-Qualität (Johann Weging ((Julian Kunkel))) * Metriken zur Code-Qualität * Maßnahmen zur Sicherung der Code-Qualität * Versionsverwaltung (Robert Wiesner((Julian Kunkel))) * Release-Managment (Sebastian Schulz) * Genauigkeit und Robustheit von Anwendungen (Jan Bolte((Julian Kunkel))) * Numerik und Arithmethik * Verification vs. Validation * Fehlerquellen * Analysemethoden zur Vermeidung von Fehlern * Werkzeuge und Methoden um die Genauigkeit der Lösung zu erhöhen * Tests (Florian Ehmke ((Julian Kunkel))) * Blackbox / Whitebox * IEEE verification & validation standard ===== Zeitplan und Materialien ===== * {{:teaching:wintersemester_2010_2011:swe-einfuehrung.pdf|Vortrag: Einführung in die Softwareentwicklung in der Wissenschaft}} * {{:teaching:wintersemester_2010_2011:seminar-wr-siw-petra.pdf|Vortrag: Beispiel einer Softwareentwicklung in der Wissenschaft}} ==== Termin 09.12. ==== * 14--15 Uhr: **Einführung** -- //Sandra Schröder// -- {{:teaching:wintersemester_2010_2011:siw-1011-schroeder-einfuehrung-praesentation-druckversion.pdf|Präsentation}} - {{:teaching:wintersemester_2010_2011:siw-2010-2011-schroeder-einfuehrung-ausarbeitung.pdf|Ausarbeitung}} * 15--16 Uhr: **Wissenschaftliche Softwareentwicklung** -- //Steffen Göttsch// -- {{:teaching:wintersemester_2010_2011:siw-1011-goettsch-softwareentwicklunginderwissenschaft.pdf|Präsentation}} -- {{:teaching:wintersemester_2010_2011:siw-1011-goettsch-softwareentwicklung_in_der_wissenschaft-ausarbeitung.pdf|Ausarbeitung}} * 16--17 Uhr: **Versionsverwaltung** -- //Robert Wiesner// -- {{:teaching:wintersemester_2010_2011:siw-2010-wiesner-versionsverwaltung-praesentation.pdf|Präsentation}} - {{:teaching:wintersemester_2010_2011:siw-2010-wiesner-versionsverwaltung-druckversion.pdf|Präsentation (Druckversion)}} -- {{:teaching:wintersemester_2010_2011:siw-2010-wiesner-versionsverwaltung-ausarbeitung.pdf|Ausarbeitung}} ==== Termin 20.01.2011 ==== * 14:00 Uhr: **Einführung in Softwareentwicklung** --//Thorsten Lemburg// -- {{:teaching:wintersemester_2010_2011:siw-2011-lemburg-einfuehrung_in_die_softwareentwicklung-praesentation.pdf|Präsentation}} - {{:teaching:wintersemester_2010_2011:siw-2011-lemburg-einfuehrung_in_die_softwareentwicklung-druckversion.pdf|Präsentation (Druckversion)}} - {{:teaching:wintersemester_2010_2011:siw-2011-lemburg-einfuehrung_in_die_softwareentwicklung-ausarbeitung.pdf|Ausarbeitung}} * 15:00 Uhr: **Tests** -- //Florian Ehmke// -- {{:teaching:wintersemester_2010_2011:siw-1011-ehmke-tests-praesentation.pdf|Präsentation}} - {{:teaching:wintersemester_2010_2011:siw-1011-ehmke-tests-ausarbeitung.pdf|Ausarbeitung}} * 16:00 Uhr: Pause * 16:15 Uhr: **Praxis in diversen Projekten: IfM** -- //Maxim Holand// -- ==== Termin 09.02.2011 ==== * 12:00 Uhr: **Release-Managment** -- //Sebastian Schulz// -- {{:teaching:wintersemester_2010_2011:siw-2010-schulz-release-managment-praesentation.pdf|Präsentation}} -- {{:teaching:wintersemester_2010_2011:siw-2010-schulz-release-managment-druckversion.pdf|Präsentation (Druckversion)}} -- {{:teaching:wintersemester_2010_2011:siw-2010-schulz-release-managment-ausarbeitung.pdf|Ausarbeitung}} * 13:00 Uhr: **Code-Qualität** -- //Johann Weging// -- {{:teaching:wintersemester_2010_2011:siw-1011-weging-code_qualitaet-praesentation.pdf|Präsentation}} -- {{:teaching:wintersemester_2010_2011:siw-1011-weging-code-qualitaet.pdf|Ausarbeitung}} * 14:00 Uhr: Pause * 14:15 Uhr: **Praxis in diversen Projekten: Planet Simulator** -- //Enno Köster// -- {{:teaching:wintersemester_2010_2011:siw-1011-koester-planet_simulator-praesentation.pdf|Präsentation}} -- {{:teaching:wintersemester_2010_2011:siw-1011-koester-planet-simulator-ausarbeitung.pdf|Ausarbeitung}} * 15:15 Uhr: **Praxis in diversen Projekten: WaterGAP - Global modeling of water availability, water use, and water quality** -- //Maral Chimed-Ochir// -- {{:teaching:wintersemester_2010_2011:siw-1011-chimed-ochir-water_gap-praesentation.pdf|Präsentation}} -- {{:teaching:wintersemester_2010_2011:siw-1011-chimed-ochir-watergap-ausarbeitung.pdf|Ausarbeitung}} * 16:15 Uhr: Pause * 16:30 Uhr: **Praxis in diversen Projekten: Exzellenzcluster „Integrated Climate System Analysis and Prediction” (CliSAP)** -- //Alexander Njemz// -- {{:teaching:wintersemester_2010_2011:siw-2011-njemz-clisap-praesentation.pdf|Präsentation}} - {{:teaching:wintersemester_2010_2011:siw-2011-njemz-clisap-druckversion.pdf|Präsentation (Druckversion)}} -- {{:teaching:wintersemester_2010_2011:siw-2011-njemz-clisap-ausarbeitung.pdf|Ausarbeitung}} ===== Literaturhinweise ===== * [[http://de.wikipedia.org/wiki/Softwaretechnik|Softwaretechnik in der Wikipedia]] * Scientific Software Engineering in a Nutshell [[http://arxiv.org/abs/0905.1628|Online Dokument]] * Realities of (Scientific Software) Engineering [[http://homepages.cwi.nl/~jurgenv/publications/slides/science-sen.pdf|PDF Dokument]] * Scientific Software Engineering - Basic techniques of creating practical scientific software [[http://www.ita.uni-heidelberg.de/~pmelchior/talks/software_engineering_150410.pdf|PDF Präsentation]] * gitworkflows (Man page) * Versionsmanagement Quellen: [[http://www-gs.informatik.tu-cottbus.de/projektstudium/vortraege/folien_Rotta.pdf|Folien]], [[http://www.nyetwork.org/wiki/SRM.pdf|PDF]] [[http://www.doc.ic.ac.uk/~alw/doc/papers/spe0103.pdf|Paper]] * Release Management in Free Software Projects: Practices and Problems (Springer) * [[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.4861&rep=rep1&type=pdf|Quality Practices and Problems in Free Software Projects]] * [[http://cs.ua.edu/~SECSE08/Papers/Segal.pdf|Models of scientific software development]] * Lustige Anekdote [[http://www.kirit.com/Blog:/2007-12-15/Pseudo%20scientific%20Software%20Engineering|Pseudo scientific Software Engineering]] * Software Entwicklung - Kampf der Altlasten [[http://www.heise.de/newsticker/meldung/Software-Entwicklung-Kampf-den-Altlasten-28106.html|HTML]] * [[http://www.theoinf.tu-ilmenau.de/~riebisch/swqs/fehler.html|Klassische Fehler in der Softwareentwicklung]] * [[http://www.amazon.de/Accuracy-Reliability-Scientific-Computing-Environments/dp/0898715849/|Accuracy and Reliability in Scientific Computing]] * Report from the Second International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE 09) * [[http://www.cse.msstate.edu/~carver/Papers/SEN_32_5.pdf|Post-Workshop report for the Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC 07)]] * [[http://www.citeulike.org/user/pipitone/article/1926401|A Software Chasm: Software Engineering and Scientific Computing]]