Seminar „Software aus Komponenten“ Software comprehension Patrick Plieth Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/

Slides:



Advertisements
Ähnliche Präsentationen
Vorlesung zur Lehrveranstaltung „Internet-Learning“ im SS 2004
Advertisements

Wir wünschen viel Erfolg
Links Normen und Standards zum Qualitätsmanagement
Links Normen und Standards zum Qualitätsmanagement
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Elodie Legros, Tobias Rötschke, Andy Schürr Fachgebiet Echtzeitsysteme
Qualitätsmanagement von Atena Engineering in der Automobilindustrie Vorstellung von Kompetenzen und Projektbeispielen Gianni Murgia
Das „Vorgehensmodell“
Freie Universität Berlin Institut für Informatik
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Prüfung von Simulationsprogrammen – Integrations- und Funktionstests Inhalt Vom Einzeltest.
Software „Unter Software versteht man die Gesamtheit oder auch einen Teil der Programme für Rechensysteme. Diese Programme ermöglichen zusammen mit den.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Zusammenfassung Risiken sind Bestandteil jeder Projektarbeit
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links Links sind im Text angegeben. Weitere Links werden kontinuierlich eingefügt.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Testing Frameworks im Internet Testing Framework (xUnit, unit testing)
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Folie 1LE 3.1 Prozessqualität LM 2 Prozessqualität und Produktqualität Links Normen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links Links sind im Text angegeben. Weitere Links werden kontinuierlich eingefügt.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme RUP in der Praxis Zum RUP existiert eine online Version. Mit dieser Version können.
Zertifizierung von Software: CMM oder ISO 9000
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links V-Modell –Glossar mit Zuordnung zu Modellen
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE 3.1-4V - Modell Überblick Links zum Kapital V- Modell Glossar mit Zuordnung.
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Seminar Software Agenten Agenten als Informationsfilter Referent.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Gliederung der Vorlesung Software Engineering WS 2001/2002
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
Grundlegende Analysen & Zwischendarstellungen
Vortrag 11: Reengineering - Refactoring
Professionelles Projektmanagement in der Praxis
1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen 2. Übungsblatt Änderungen am ersten Entwurf und Entwurfsparadigmen 4. Mai 2006.
Einführung von Groupware
Workshop: Qualifizierung für Groupware 7. September 1999 Dortmund Herzlich willkommen zum.
Arbeitsgruppe Wissensmanagement
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
Meta-Analyse Forschungsmethoden und Evaluation
Vorlesung Gestaltung von soziotechnischen Informationssystemen - Grenzen soziotechnischer Modellierung - Gst-IS Thomas Herrmann Lehrstuhl Informations-
Vorabinformationen zum Experteninterview
Spatial Decision Support Systems (SDSS)
Forschung & Technologie Seminar: Entwicklung verteilter eingebetteter Systeme 1. Meeting: , 14:00-15:30, Raum tbd, Themenvergabe 2. Meeting 1.11.,
Simulation komplexer technischer Anlagen
Vorgehensmodelle: Schwergewichtige Modelle
Software Engineering WS 2009
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Organisatorisches Vorlesungstermine: –dienstags, 14:00h, A125 –freitags,
Übersicht Motivation Konzeption Umsetzung/ Implementierung
Andreas Pichler IT-Consulting
Binde & Wallner Engineering GmbH
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Überblick/Kommentierung Kommentierung Self-documenting code Arten von Kommentaren.
Definitionen der SWT (1)
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Hauptseminar SS 2006 Hinweise für Autoren.
Arbeitsbereich „Rechnernetze und verteilte Systeme“
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Software Engineering Grundlagen
Testvorbereitungen, Unit Test
Echtzeitsimulation einer Gasturbine Real-Time-Simulation of a Gas-Turbine Till Hoffmann -Diplomarbeit - September 2000.
Psychologische Aspekte einer bemannten Mars-Mission
Analyse der Laufzeit von Algorithmen
Lernmodelle und Experimentelle Untersuchungen
Knowledge Management.
Omniscient Debugging und Slicing für Java
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Vergleichende Analyse verbreiteter und neuester Software-Projekt-Management-Werkzeuge unter besonderer Berücksichtigung studentischer Software-Projekte.
Requirements Engineering Universität zu Köln Medienkulturwissenschaften/Medieninformatik Kurzreferat in Planung von Softwareprojekten bei Herrn Christoph.
 Präsentation transkript:

Seminar „Software aus Komponenten“ Software comprehension Patrick Plieth Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Motivation Kognitives Modell Verstehensmodelle Experimentelle Ergebnisse Fazit Patrick Plieth, plieth@inf.fu-berlin.de 1

Motivation Softwareverständnis 75.000 Anwendungen laufen auf Großcomputern, davon sind mehr als 80% in Cobol programmiert. Mehr als drei Viertel davon sind unstrukturiert, monolithisch und vor 1980 entstanden. Deutsche Cobol-Programme sind zu 77% unstrukturiert, zu 80% monolithisch und enthalten zu 93% überflüssige, redundante Daten. Ein Wartungsprogrammierer benötigt 47% seiner Zeit für die Programmanalyse, 15% für die Programmierung, 28% für den Test und 9% für die Dokumentation. Bei der US Air Force kostet die Änderung einer einzelnen Quellcodezeile zwischen 2.500 und 3.000 Dollar (1990). Softwareverständnis zentrale Aufgabe bei Wartung, Weiterentwicklung und Wiederverwendung Patrick Plieth, plieth@inf.fu-berlin.de 2

Motivation (2) Probleme: Software-Altlasten ungenügend fachkundiges Personal Wartungskosten mangelnde oder fehlende Dokumentationen Ziele: Schaffung besserer Software durch bessere Werkzeuge Richtlinien Dokumentationen Notwendigkeit: Erkenntnisse über Codeverstehensprozess Patrick Plieth, plieth@inf.fu-berlin.de 3

Elemente des kognitiven Modells „Programmverständnis ist ein Prozess, der bestehendes Wissen verwendet, um neues Wissen zu erlangen, das schließlich zum Ziel einer Codeverständnisaufgabe führt.“ Wissen allgemeines spezifisches Verstehensprozess: Abgleich von allg. Wissen mit spez. Wissen Menge der Übereinstimmungen ist mentales Modell Mentales Modell gegenwärtige interne Repräsentation besteht aus statischen Elementen dynamischen Elementen Patrick Plieth, plieth@inf.fu-berlin.de 4

mentales Modell statische Elemente (Entitäten) Textstrukturen Chunks Pläne Hypothesen Beacons Stilregeln dynamische Elemente (Verhaltensweisen) Strategien Aktionen Episoden Prozesse Patrick Plieth, plieth@inf.fu-berlin.de 5

Letovsky-Modell Patrick Plieth, plieth@inf.fu-berlin.de 6

Shneiderman-Modell Patrick Plieth, plieth@inf.fu-berlin.de 7

Brooks-Modell Patrick Plieth, plieth@inf.fu-berlin.de 8

Top-Down-Modell (Soloway und Ehrlich) Patrick Plieth, plieth@inf.fu-berlin.de 9

Bottom-Up-Modell (Pennington) Patrick Plieth, plieth@inf.fu-berlin.de 10

Integrated Metamodel Patrick Plieth, plieth@inf.fu-berlin.de 11

Experimentelle Ergebnisse Stilregeln Layout mnemonische Namensvergabe Verwendung üblicher Daten- und Kontrollstrukturen Algorithmen Muster Konsistenz Kommentare!! und Dokumentationen GOTO ist tabu! Patrick Plieth, plieth@inf.fu-berlin.de 12

Experimentelle Ergebnisse Werkzeuge IDEs „syntaxhighlighting“ „pretty prints“ ausblenden einzelner Programmteile browsing im Programmcode strukturelle Programmdarstellungen Analyse aufspüren von Duplikaten lokalisieren von „totem“ Code erkennen kritischer Funktionsaufrufe oder Laufzeitbedingungen Regenerierung und Visualisierung des Entwurfs Patrick Plieth, plieth@inf.fu-berlin.de 13

Experimentelle Ergebnisse Experten erkennen mehr Probleme finden mehr Lösungen kennen spezialisierte (effizientere) Problemlösungen besitzen ausgeprägteres Bewusstsein über Neben-bedingungen, Konsequenzen und Zusammenhänge greifen auf früher konstruierte Lösungen ähnlicher Probleme zurück sind konsequenter im Umgang mit fraglichen Hypothesen und „aufgeschobener“ Arbeitsschritte beschaffen sich groben Gesamtüberblick bevor Problem weiter zerlegt wird Patrick Plieth, plieth@inf.fu-berlin.de 14

Verständisprobleme Dokumentation entspricht nicht der aktuellen Implementierung Muster Umsetzung unterliegt keinem explizitem Standard Diskrepanz zwischen Bezeichnung und Funktionalität Patrick Plieth, plieth@inf.fu-berlin.de 15

Fazit bisherige Erfahrungen: noch nicht vielfältig genug beziehen sich auf statische Eigenschaften  weitere Untersuchungen nötig Was hilft? Einhalten von Konventionen Verwenden von Werkzeugen ausreichend dokumentieren Erfahrung! Patrick Plieth, plieth@inf.fu-berlin.de 16

Quellen Advances in Computers, M. Yovitz, M. Zelkowitz, 1995, Vol.40, p. 1-38: A. v. Mayrhauser, A. M. Vans, Program Understanding: Models and Experiments IEEE Transactions on Software Engineering, 1999, Vol.25, No.4: A. v. Mayrhauser, S. Lang, A Coding Scheme to Support Systematic Analysis of Software Comprehension VSEK/025/D, 2004, M. Bennicke, H. Rust, Programmverstehen und statische Analysetechniken im Kontext des Reverse Engineering und der Qualitätssicherung Spektrum Akademischer Verlag, Heidelberg, Berlin, 1998, Prof. Dr.-Ing. habil. H. Balzert, Lehrbuch der Software-Technik, Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung Patrick Plieth, plieth@inf.fu-berlin.de 17

Danke! Patrick Plieth, plieth@inf.fu-berlin.de 18