David Lorge Parnas and Paul C

Slides:



Advertisements
Ähnliche Präsentationen
Benutzerorientierte Designprinzipien für die Microsoft-Guidelines
Advertisements

Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Das V - Modell - Überblick
V - Modell Anwendung auf große Projekte
Vorgehensmodell & Wasserfallmodell in der Programmierung
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Von David Keß, Heinrich Wölk, Daniel Hauck
On the Criteria to Be Used in Decomposing Systems into Modules
Designing Software for Ease of Extension and Contraction
Die Softwarelebenszyklen
Das „Vorgehensmodell“
Gliederung der Ausführungen: Einleitung, Hauptteil, Schluss
IT-Projektmanagement
Projektplanung für Softwareprojekte
Systemanalyse In der Systemanalyse wird aus den fachspezifischen Anforderungen das Systemmodell erstellt; im Systemmodell ist spezifiziert, was das System.
Konzeption und prototypische Implementierung eines zentralen Informationssystems für Systemmanagement Motivation Oft wird es schwierig, die benötigten.
Erschließen von semantischen Referenzen mit Ontology-Reasoning-Werkzeugen Das Ziel dieser Masterarbeit war die Erweiterung des ORBI Systems um ein Inferenz-System.
On a Buzzword: Hierachical Structure David Parnas.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Das V - Modell - Überblick
Sortierverfahren Richard Göbel.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Rational Unified Process (RUP) - Definitionen
Access 2000 Datenbanken.
DVG Klassen und Objekte
UML Begleitdokumentation des Projekts
Vorgehensmodelle: Schwergewichtige Modelle
Spezifikation von Anforderungen
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Externe Bewertung in IB-Biologie
Fünf-Fünf-Zwei der 3. Vorlesung/Übung Requirements Engineering WS 10/11 Marin Zec.
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
EXCEL PROFESSIONAL KURS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Wie schreibe ich eine Diplom- bzw. Masterarbeit ?
Die Struktur von Untersuchungen
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Geschäftsprozessmodellierung mit SiSy
Wasserfallmodell und Einzelbegriffe
IKP Uni Bonn Medienpraxis EDV II Internet-Projekt
PRO:CONTROL Ziel des Moduls Arbeitspakete
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 Klausurschwerpunkte Hilfe.
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
GIS Design: A Hermeneutic View (Michael D. Gould)
Software Engineering Strukturierte Analyse
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Karsten Risseeuw Filemaker Module FileMaker Konferenz 2014 Winterthur Filemaker Module Einführung in die Vorteile modularer.
Objektorientierte (OO) Programmierung
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Referent Elmar Borgmeier, Stuttgart, 05. Mai 2006
Forschendes Lernen Wie sehen forschungsorientierte Aufgabenstellungen in der Mathematik aus? Modul IE-2: Offene und geschlossene Aufgaben (Problemstellungen)
Basierend auf den Arbeiten von
Digital Repository Auffindbare Publikationen. Was sind Repositorien ? Als Repositorium bezeichnet man eine Struktur in der Dokumente Organisiert abgelegt.
© Till Hänisch, 2002 BA Heidenheim Vorgehensmodelle Wie entsteht Software ?
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Institut für Verkehrssystemtechnik Dipl.-Psych. David Käthner Telefon:0531 / Ein kognitives Fahrermodell:
 Präsentation transkript:

David Lorge Parnas and Paul C David Lorge Parnas and Paul C. Clements A Rational Design Process: How and Why to Fake It

Der ideale Design-Prozess Studien: Design subjektiv nicht Top-Down eher zufällig Gesucht: Design-Prozess als systematische Ableitung  rationaler Design-Prozess Parnas/Clements: nicht real umsetzbar, aber Dokumentation des idealen Prozesses möglich „Fake“: Dokumentation so, als ob sie aus dem idealen Prozess entstanden wäre

Schritte zum rationalen Design-Prozess Warum ein rationaler Design-Prozess? Was ist ein rationaler Design-Prozess? Welche Phasen hat der Design-Prozess, und welche Dokumente entstehen dabei? Warum einen idealen Prozess vortäuschen?

Warum ein rationaler Design-Prozess? SW-Design irrational gewünschtes Verhaltens unklar Beschränkungen für die Implementation unklar Design-Entscheidungen ohne Begründung Gewünscht: Ableitung aus Anforderungen wie Theoreme aus Axiomen (Beweis)  Top-Down-Methoden rationalen Design-Prozess vortäuschen Entwicklung und Wartung leichter

Idealisierter Design-Prozess SW-Projekte nie auf rationale Art: Auftraggeber weiß nicht genau, was er will und kann nicht alles mitteilen. Details werden erst während der Entwicklung klar. Einteilung von Aufgabenbereichen „Human errors can only be avoided if one can avoid the use of humans.“  immer Fehler Design belastet mit früheren Ideen Wiederverwendung anderer Projekte

Nutzen des rationalen Design-Prozesses kein reales System rational entwickelt Design-Methoden: Design logisch vollziehen realer Prozess so nah wie möglich am idealen Prozess  „fake a rational design process“ Reihenfolge: idealer Prozess sagt, womit man beginnen soll besser als ad-hoc: Wissenslücken identifizieren Standard-Prozedur: Austausch möglich Messen von Fortschritt, Review einfacher

Der rationale Design-Prozess für jede Phase: Welches Produkt soll entstehen? Kriterien, Beteiligte, Referenzinformationen Anforderungen: Requirements Document Architektur: Module Guide Schnittstellen: Module Interface Specification Hierarchie: Uses Hierarchy Interne Struktur: Module Design Document Implementation Wartung und Pflege

Requirements Document I vom User gewünschtes Verhalten (Review) alle Entscheidungen über Anforderungen hier Konsistenz: Fragen der Designer, Programmierer und Reviewer beantworten Aufwandsabschätzung schwierigster Teil: gesuchte Information finden soll genau das enthalten, was nötig ist, um für User akzeptable SW zu entwickeln keine Implementationsdetails fehlende Information explizit kennzeichnen Referenz-Dokument, keine Erzählung

Requirements Document II Autor: ideal User, real Entwickler (Entwurf) mathematisches Modell : hybrider Computer analog: kontinuierlicher Input  kont. Output digital: diskrete Änderung des Output Hauptteil des Requirement Document: mathematische Funktionen (Output als Funktion externer Zustandsvariablen Organisation des Requirement Document: Zielrechner, I/O-Schnittstellen, Ausgabe, Zeit- und Genauigkeitsanforderungen, Änderungswahrscheinlichkeit, Fehlerfall

Module Guide Aufgaben: Design-Entscheidungen für jedes Modul Submodule: Guide für Substruktur Anzahl der Module: Baum-Struktur, am Ende kleine Module enthält gesamtes Design: besonders für Wartung

Module Interface Specification unabhängige Implementation: module interface specification „black box“: andere können die Funktionen des Moduls nutzen, mehr nicht Autor: Designer, Review durch Programmierer Inhalt: rufbare Funktionen – „access programs“ Parameter und äußere Effekte Zeit- und Genauigkeitsanforderungen unerwünschte Ereignisse

Uses Hierarchy Module und access programs: Abhängigkeit binäre Matrix: Position (A, B) true gdw. Programm A nur dann korrekt, wenn korrektes Programm B im System existiert Mengen von Modulen, die ohne andere Module funktionsfähig sind stückweise Fertigstellung fail-soft-Systeme Programmfamilien Autor: Designer

Module Design Document Hauptanliegen des Moduls beschreiben effizientes Review vor der Implementation beschreibt Submodule oder interne Datenstruktur und Auswirkung der Funktionen darauf unerwünschte Ereignisse Verifikation: Programm mit diesen Eigenschaften erfüllt Module Specification falls keine lesbare Hochsprache verwendet wird, zusätzlich Pseudocode-Notation

Implementation und Pflege Anforderungen: Requirements Document Architektur: Module Guide Schnittstellen: Module Interface Specification Hierarchie: Uses Hierarchy Interne Struktur: Module Design Document  Code erstellen, schnell und flüssig keine redundanten Kommentare (Gefahr der Inkonsistenz) Pflege ist Redesign: Prinzipen beibehalten, Änderungen in allen betroffenen Dokumenten

Bedeutung der Dokumentation meist: schwer zu verwenden, nicht gelesen notwendiges Übel, wegen Bürokratie hinterher dazu Stil: „stream of consciousness“, „stream of execution“  Information nicht auffindbar langweilige Erzählung: viele Worte statt einer Anweisung, Formel oder Grafik Terminologie konfus und inkosistent falscher Inhalt: gut Vertraute dokumentieren Details

Ideale Dokumentation Bedürfnisse aller Beteiligten (vom Projektbeginn bis zur Wartung) Referenz-Dokumente (Reifung) für jedes Detail genau eine Stelle in der Dokumentation erst Struktur der Dokumente, dann Inhalt erstellen typisierte Terminologie (!+Variable+!, %Wert%, #Funktion#)

Faking the Ideal Process Dokumente so erstellen, wie man sie erstellt hätte, wenn der Entwicklungsprozess ideal verlaufen wäre keine Design-Entscheidung ohne Dokumentation egal, wie oft man in Sackgassen landet, endgültige Dokumentation ist genau und rational dokumentiert nicht reale Entstehung, aber der Leser will auch das Programm verstehen, nicht die Entwicklung nachvollziehen wenn Dokumentation vernünftig, ist sie lebenslang verwendbar und nützlich, und wenn sie lange verwendet wird, sollte sie gut sein

Schlussfolgerung (Parnas und Clements) Es ist schwer, ein rationaler Designer zu sein, auch das Vortäuschen ist nicht leicht. Aber es entsteht ein Ergebnis, das verstanden, gewartet und wiederverwendet werden kann. Wenn das Projekt es wert ist, durchgeführt zu werden, sind auch die beschriebenen Methoden es wert, angewandt zu werden.

Diskussion Die von Parnas und Clements entwickelte Vorgehensweise ist eigentlich nur ein Wasserfallmodell. Der rationale Design-Prozess hat keinen Nutzen, weil jeder Entwickler ihn wieder subjektiv interpretiert. Er bedeutet nur zusätzlichen Aufwand, der sich nicht lohnt.