Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
Vorgehensmodell & Wasserfallmodell in der Programmierung
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Prüfungspläne Bachelor-Thesis
Von David Keß, Heinrich Wölk, Daniel Hauck
Henkelmann Rico Schmailzl Toni-Felix
On the Criteria to Be Used in Decomposing Systems into Modules
Designing Software for Ease of Extension and Contraction
Das „Vorgehensmodell“
:33 Architektur Moderner Internet Applikationen – Hard- und Software Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur.
Ontologien- Query 1 Teil2
NATURAL Web-Integration 1 / 27/28-Feb-98 TST NATURAL Web-Integration Arbeitskreis NATURAL Süd Theo Straeten SAG Systemhaus GmbH Technologieberater Stuttgart.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
On a Buzzword: Hierachical Structure David Parnas.
Erfahrungen aus Tests komplexer Systeme
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Java: Objektorientierte Programmierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
DOM (Document Object Model)
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
WS 2012/13 Dozent: Prof. Dr. Thaller Von Mariantonietta Bellia
Universität Paderborn - Softwaretechnikpraktikum im SS Gruppe 11 1 Softwaretechnikpraktikum im SS2001 Projektleiter:Prof. Dr. Wilhelm Schäfer Gruppenleiter:Dr.
ExKurs FormatÜ 1/7 Dr. Barbara Hoffmann LiteraturKompetenz Absatzformatierung: Überschriften Wenn Sie Ihre Arbeit beginnen, tun Sie das sinnvoller.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Entwurfsmuster EDV Entwurfsmuster.
Smartphones im Kanzleinetz Vergleich der technischen Umsetzung COLLEGA - TAG Freitag, 27. November 2009.
Vorgehensmodelle: Schwergewichtige Modelle
Software Engineering WS 2009
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Synergieeffekte durch softwaregestützte Prozessmodelle
Studie Einfluss der Sitzposition in den Vorlesungsräumen auf die studentische Leistung Jochen Jung, Larry Maus und Steffen Brünske.
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Industry goes Mobile – Die Pumpe lernt sprechen Peter Gyger Leiter Technik Biral AG.
Abschlussvortrag zur Studienarbeit
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Portabilität Seminar aus Softwareentwicklung: Programmierstil Christine Schiestl WS 02 / 03.
CGI (Common Gateway Interface)
Archival and Discovery
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Wasserfallmodell und Einzelbegriffe
PRO:CONTROL Ziel des Moduls Arbeitspakete
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Normalisierungsprozess
Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Software Engineering Grundlagen
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
ARBEITSEBENEN IN DER GESTALTUNG. Realisieren Bedingt durch die Notwendigkeit der Herstellung des gestalteten Produkts oder Prototyps dafür ist der Gestalter.
Software Design Patterns
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Unit Testing Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Planung von Softwareprojekten WS 2014/15 Christoph Stollwerk.
Akademie für Lehrerfortbildung Esslingen
BIC, Excel 2007 und Bilder in Dokumenten QIP-Meeting Bremerhaven
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
Karsten Risseeuw Filemaker Module FileMaker Konferenz 2014 Winterthur Filemaker Module Einführung in die Vorteile modularer.
Objektorientierte (OO) Programmierung
Im Rahmen der Abschlussprüfung zum Fachinformatiker Fachrichtung Anwendungsentwicklung Neuentwicklung eines Intranets für die Carano Informationssysteme.
Rechen- und Kommunikationszentrum (RZ) Entwicklung einer Web- Oberfläche mit Apache Wicket am Beispiel des IdentityAdmins Seminarvortrag Melanie.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
Zehn Schritte zu Linux Der Weg in eine andere Welt...
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
Titel des Wissenschaftsprojekts
 Präsentation transkript:

Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers 2 Inhalt 1.David L. Parnas als Software Pioneer 2.ACM-Artikel von Verschiedene Arten von Modularisierungen 2.2. Information Hiding 3.Ein Rückblick nach 30 Jahren 3.1. Verbesserung eines Industriebeispiels durch Information Hiding 3.2. Studie aus einem Programmierseminar 3.3. Heutige Techniken 4.Fazit 5.Quellen

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers 3 1. David L. Parnas als Software Pioneer Am 10. Februar 1941 in Platsburgh, NY als David Lorge Parnas geboren Ist Professor of Software Engineering und Ph.D. in electrical engineering 1972 ACM Artikel zu Dekompositionsverfahren und Information Hiding Entwickelte Modulkonzept, das Grundlage für OOP-Sprachen ist Lehrte unter anderem auch an TH Darmstadt Ist aktuell an der University of Limerick in Irland

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers 4 2. ACM-Artikel von 1972 Titel: On the Criteria to be Used in Decomposing Systems into Modules Artikel gilt als Grundidee für OOP-Sprachen Dekompostionsverfahren helfen, Software zu Modularisieren und somit übersichtlicher zu gestalten Softwareentwicklung in separaten Gruppen Flexible Entwicklung Verständlichkeit Es gibt verschiedene Arten von Modularisierung, die unterschiedliche Ideen verfolgen, 2 Beispiele: Modularisierung ohne Information Hiding Modularisierung mit Information Hiding

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verschiedene Arten von Modularisierungen 1.Modularisierung ohne Information Hiding Hauptziel: Effizienz 5 Module: Modul 1 Input: Liest Datenzeilen ein Erzeugt aus ihnen Kernel-Array 4 Zeichen = 1 Word Erzeugt Index der Startadressen der Datenzeilen Modul 2 Circular Shift: Verwendet direkt Array von Modul 1 erzeugt in Array Index aus erstem Zeichen des Circular Shift und Indexline Array enthält Word-Paar => Zeilennummer + Startadresse

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verschiedene Arten von Modularisierungen 1.Modularisierung ohne Information Hiding 5 Module: Modul 3 Alphabetizing: Input = Arrays von Modul 1 und 2 Erzeugt Array der Art von Modul 2 Sortiert Circular Shifts alphabetisch Modul 4 Output: Verwendet direkt Arrays von Modul 1 und 3 Erzeugt aufbereiteten Output der alphabetischen Circular Shifts Outputlayout ist von den Shifts abhängig Modul 5 Master Control: Kontrolliert direkt über die Module den ordnungsgemäßen Ablauf

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verschiedene Arten von Modularisierungen 1.Modularisierung ohne Information Hiding Kern Modul 1 Daten Modul2 Modul 3 Modul 4 Modul 5

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verschiedene Arten von Modularisierungen 2.Modularisierung mit Information Hiding Hauptziele: Übersichtlichkeit, Austauschbarkeit, gute Wartbarkeit 6 Module, die ihre Funktionen über Interfaces anderen zur Verfügung stellen: Modul 1 Line Storage: Speichert die Daten bietet Funktionsinterface zum Datenverarbeiten an Funktionen: CHAR(r, w, c) indiziert Zeichen in Words SETCHAR(r,w,c,d) ersetzt Zeichen in Words WORDS( r ) zählt Words je Zeile DELINE bzw. DELWRD bieten Löschfunktionen an Error Handling bei fehlerhaften Funktionsaufrufen

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verschiedene Arten von Modularisierungen 2.Modularisierung mit Information Hiding 6 Module, die ihre Funktionen über Interfaces anderen zur Verfügung stellen: Modul 2 Input: Liest Daten ein und gibt sie an Modul 1 zum Speichern Modul 3 Circular Shift: Erzeugt Index von Shifts je Datenzeile Hauptfunktionen sind analog zu Modul 1 2 wichtige Funktionen: CSSETUP bestimmt die Regeln des Shifts CSCHAR(l,w,c) indiziert Character des Words je Shift Shifts erfolgen Zeilenabhängig Je Zeile: 1. Shift Original, 2. One-Word-Rotation

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verschiedene Arten von Modularisierungen 2.Modularisierung mit Information Hiding 6 Module, die ihre Funktionen über Interfaces anderen zur Verfügung stellen: Modul 4 Alphabetizer: Sortiert alphabetisch 2 Hauptfunktionen: ALPH sortiert ITH(i) indiziert sortierte Circular Shifts Modul 5 Output: Erzeugt einen Output der aufbereiteten Daten Modul 6 Master Control: Kontrolliert den ordnungsgemäßen Ablauf der Module

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verschiedene Arten von Modularisierungen 2.Modularisierung mit Information Hiding Modul1 Modul 2 Modul 3 Modul 4 Modul 5 Modul 6

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Information Hiding Vorteile: Unabhängigkeit der Module Veränderbarkeit, da kein Modul direkt auf andere zugreift Ersetzbarkeit, da nur die Schnittstellen konstant bleiben muss Bessere Wartungsmöglichkeiten Geringerer Aufwand, da: Nur Interfacedesign muss abgeklärt werden Nachteile: Schnittstellen müssen zu Beginn eindeutig definiert werden und später auch zwingend eingehalten werden Optimierung für einzelne Probleme nur im Rahmen der Schnittstellendefinition möglich

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Ein Rückblick nach 30 Jahren Modularisierung als Standard etabliert Information Hiding leider noch nicht Altbewährte Vorgehensweisen verhindern Durchbruch Never Change A Running System. Parnas hat Studien in Industrie und Seminaren durchgeführt Information Hiding scheitert meist am Aufwand vor der Umsetzung, nicht an seiner Idee

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verbesserung eines Industriebeispiels Programmierer sollen Projekt entwickeln und planen die Umsetzung in Modulen: Es entsteht eine Modulstruktur ohne Information Hiding

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verbesserung eines Industriebeispiels Probleme hierbei sind: Module werden als Ganzes betrachtet Planung des Gesamtproduktes geht in jedes Detail Änderungen an einzelnen Punkten müssen immer an alle weitergegeben werden Änderungen an einzelnen Modulen können unerwartete Auswirkungen auf andere Module haben Wartbarkeit wird im Vergleich zur Effizienz vernachlässigt Übersichtlichkeit geht verloren

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verbesserung eines Industriebeispiels Besser wäre eine Lösung mittels Information Hiding gewesen: Feste, vordefinierte Schnittstellen erzeugen unabhängige, leicht wartbare Module. INTERFACE

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Verbesserung eines Industriebeispiels Verbesserungen durch Information Hiding wären: Übersichtlichkeit Leichtere Wartung Unabhängigkeit der Module Nutzbarkeit einzelner Module für spätere Projekte

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Studie aus einem Programmierseminar Aufgabenstellung: 5 Module müssen umgesetzt werden Je Modul gibt es 5 Möglichkeiten, dies zu tun Alle Kombinationen sollen funktionieren Modularisierung soll mittels Information Hiding umgesetzt werden Hintergrund: Industriestudien bezüglich Information Hiding Testen, wie Forschung Etablierung vorantreiben kann Schnittstellenumsetzung, ohne direkten Austausch versuchen Erkennen, wo Umsetzungsprobleme sind

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Heutige Techniken Abstrakte Datentypen Verwirklichung von Information Hiding Leider noch zu selten verwendet Objektorientierte Sprachen Größtenteils mit Information Hiding Unterschiedliche Designs der Sprachen erzwingen Kompormisse Irrglaube: Programmieren in objektorientierter Sprache = objektorientiertes Programmieren Overhead durch geladene Module, die nicht verwendet werden Komponentenorientiertes Design Noch nicht ausreichend verwirklicht

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers Fazit Modularisierung ist wichtiger Bestandteil heutiger Softwareentwicklung Information Hiding ist eine sinnvolle Entwicklung Leider noch nicht etabliert, weil: Schnittstellen werden unterschätzt Klassische Strukturen bestimmen Entwicklerdenken Vorhandene Schnittstellen sind oft nicht ausgereift Effizienz wird höher als Wartbarkeit eingeschätzt Never Change A Running System ist noch immer ein Leitspruch der Industrie Neues Designen von Programmen erfordert Anpassungsfähigkeit und Zeit

On The Criteria to be Used in Decomposing Systems into Modules Michael SchneiderSS 06 Proseminar Software Pioneers 21 Ende Vielen Dank für Ihre Aufmerksamkeit