Entwurfsvarianten in der Software-Konstruktion
|
|
- Helmut Abel
- vor 6 Jahren
- Abrufe
Transkript
1 Fachhochschule Köln Cologne University of Applied Sciences Forschungsschwerpunkt Software-Qualität Am Sandberg 1 D Gummersbach Telefon+49(0) oder -107 (Sek.) Telefax +49(0) fsq@gm.fh-koeln.de Entwurfsvarianten in der Software-Konstruktion Von den Bedingungen der en Uwe Poborski uwe.poborski@fh-koeln.de FSQ-Bericht Nr Januar 2007
2 Bedingungen beschreiben exakt en einer Schnittstelle durch Aussagen über die System- Zustände vor bzw. nach der Operation. Unterschieden werden dementsprechend Vorbedingungen und Nachbedingungen. Es gibt mehrerlei Aspekte, unter denen die en und deren Bedingungen zu betrachten sind: * die Metapher eines Vertrages, wobei die Vorbedingungen die Voraussetzungen, unter denen die Leistungen erbracht werden, und die Nachbedingungen die Leistungen, für die der verantwortlich zeichnet, beschreiben * als deklarative Beschreibungen der Systemzustände vor bzw. nach Ausführung des s, das heißt es werden Aussagen über die Ausprägungen von Merkmalen involvierter Dinge gemacht * die Interpretation 1 der Vorbedingungen obliegt dem Aufrufer des s * die Interpretation der Vorbedingungen obliegt der Implementierung des s * die Nachbedingungen bedürfen keiner Interpretation; es gibt keinen Misserfolg bzw. die Handlung kann nicht scheitern * die Nachbedingungen müssen interpretiert werden; bei Falsifizierung gilt die Handlung als gescheitert * die Interpretation der Bedingungen erfolgt ausschließlich mit Hilfe der zur Verfügung stehenden en Dabei stehen die genannten Betrachtungsweisen nicht im Gegensatz zueinander, sondern lassen sich in geeigneter Weise kombinieren. 1 Mit Interpretation ist die Auswertung bzw. Berechnung des Wahrheitwerts der Aussagen gemeint 2/11
3 Untersuchungsgegenstand der Beispiele sei hierbei ein System, das zwei Personen ermöglicht Schach zu spielen, wobei die Regelkonformität der Züge überwacht werde. Kontext Schach, Handlung Ziehen. Handlungsschemata des Beispiels Schach Handlungsschema weiße Dame zieht auf Feld involvierte Dinge betroffene weiße Dame benötigte weißer König alle weißen Figuren auf dem Brett alle schwarzen Figuren auf dem Brett Feld, auf dem die weiße Dame steht Zielfeld, auf das die weiße Dame gestellt werden soll Vorbedingungen weiße Figuren am Zug weißer König nach dem Zug nicht im Schach Zielfeld ist frei Zielfeld gehört zur Gangart Weg zwischen aktueller Position und Zielfeld ist frei Nachbedingungen weiße Dame steht auf Zielfeld schwarze Figuren sind am Zug 3/11
4 Handlungsschema steht weißer König im Schach involvierte Dinge betroffene benötigte Vorbedingungen --- Nachbedingungen weißer König alle weißen Figuren auf dem Brett alle schwarzen Figuren auf dem Brett Feld, auf dem der weiße König steht ja, wenn es eine schwarze Figur gibt, zu deren Gangart die aktuelle Position des weißen König, gehört und der Weg von aktueller Position der schwarzen Figur zu aktueller Position des weißen König frei ist, respektive die schwarze Figur ein Springer ist nein, sonst 4/11
5 Für die Handlungsschemata weiße Dame zieht auf Feld ergeben sich zur Spezifikation der Vorund Nachbedingungen nachfolgend genannte en. Im Vorgriff auf anderweitig zu begründende Entwurfsentscheidungen und, um das Beispiel klein zu halten, sind diese rundimentären 2 Schnittstellen zugeordnet. 1. (Figur). zieht(zielfeld). wegzufeld(feld) : {Feld}. amzug() : bool. aktuelleposition() : Feld. figurengleicherfarbe() : {Figur}. figurenandererfarbe() : {Figur}. königgleicherfarbe() : König. königandererfarbe() : König 2. König : Figur Schnittstellen-Vererbung. imschach() : bool 3. Feld. frei() : bool 2 Für Schachexperten sei hier der Hinweis gegeben, dass einige Details in diesem Beispiel weggelassen wurden, was nicht mit Abstraktion zu verwechseln ist! 5/11
6 Schnittstellen des Beispiels weiße Dame zieht auf Feld Schnittstelle Figur wegzufeld(zielfeld) : Set(Feld) -- liefert die Menge der Felder, die auf dem Weg zum zielfeld überschritten werden gehoertzurgangart(feld) : bool -- prüft, ob Feld je nach Figuren(Gang)art erreichbar ist zieht(zielfeld) precondition self.amzug() = true and zielfeld.frei() = true and self.gehoertzurgangart(feld) and self.wegzufeld(zielfeld)->forall(f f.frei() = true) and -- Problematisch(1): if self.aktuelleposition() = zielfeld then!königgleicherfarbe().imschach() -- bezieht sich auf Zustand durch Leistung des s postcondition self.aktuelleposition() = zielfeld and self.amzug() = false and -- Problematisch(2):!königGleicherFarbe().imSchach() -- gehört nicht zur Leistung des s postcondition -- alternativ zur Vorherigen if!königgleicherfarbe().imschach() then self.aktuelleposition() = zielfeld and self.amzug() = false else -- Problematisch(3): self.aktuelleposition() = self.aktuelleposition()@pre and self.amzug() = true -- im Falle des Scheiterns muss Aktion rückgängig gemacht werden weitere en wie oben 6/11
7 Um die Probleme, die in den Ausdrücken der Vor- bzw. Nachbedingungen auftreten zu erkennen, muss der König:imSchach() näher expliziert werden. Der einfache Fall einer zirkulären Abhängigkeit von Bedingungen ist, wenn die Nachbedingung die Vorbedingung eines s darstellt: zirkulärabhängig() precondition involviertesding.merkmalsausprägung() = WertNach postcondition involviertesding.merkmalsausprägung() = WertNach Die zirkuläre Abhängigkeit stellt im Entwurf ein geringeres Problem dar als bei der Umsetzung, zumal sich das Ergebnis des s durch Angabe geeigneter weiterer en oder durch Rückgriff auf Meta-Informationen berechnen lässt. In der Implementierung eines solchen s müssen die weiteren Unterstützung-en versteckt werden und die Systemzustände durch diese vorweg hergestellt und anschließend wieder zurück genommen werden, da Meta-Informationen dem System nicht zur Verfügung stehen. Noch interessanter, weil schwieriger zu entdecken, in diesem Zusammenhang zu betrachten ist der Fall, wenn zwei oder mehr en sich wechselseitig bedingen, wie er im oben genannten Beispiel weiße Dame zieht auftritt. 7/11
8 Schnittstellen des Beispiels weiße Dame zieht auf Feld Schnittstelle König imschach() : bool -- überprüft, ob durch die aktuelle Konstellation der Figuren -- der König im nächsten Halbzug der anderen Farbe geschlagen werden kann -- bzw. das Feld auf dem der König steht von einer anders farbigen Figur bedroht ist precondition -- postcondition result = self.figurenandererfarbe()->exists(figur figur.gehoertzurgangart(self.aktuelleposition()) and figur.wegzufeld(self.aktuelleposition())->forall(f f.istfrei() ) -- Problematisch Schnittstelle Feld istfrei() : bool precondition -- postcondition result =!exists(figur self = figur.aktuelleposition()) -- Problematisch: hier schließt der Kreis Die Problematik lässt sich über den Zustandsraum der beteiligten Komponenten deutlicher aufzeigen. Ziel des Systems ist es, die Benutzerhandlungen zu unterstützen, indem sichergestellt wird, dass die Konstellation der Figuren vor jedem Zug konsistent zu den Schachregeln ist. Das bedeutet, es kann zu jeder Zeit bestimmt werden, ob es einen weiteren Zug bei einer bestimmten, gültigen Stellung gibt oder die Partie beendet ist. Der zieht(zielfeld) und damit letztlich der frei() setzt voraus, dass die aktuelleposition() einer Figur für die Überprüfung einer Schachstellung des Königs unabhängig von den sonst zu beachtenden Regeln manipuliert wird 8/11
9 und das System somit in einen inkonsistenten Zustand gebracht werden könnte. Im Weiteren ist die Fragestellung zu erörtern, ob eine bestimmte Anordnung der eingangs benannten Aspekte von Vor- und Nachbedingungen Abhilfe schaffen kann und, ob die Problematik überhaupt die Entscheidungen betrifft, die im Entwurf getroffen werden müssen. Die spezifizierten en des Systementwurfs mit ihren Vor- und Nachbedingungen entsprechen einer algebraischen Spezifikation eines Abstrakten Datentyps. Es gilt also, alle Funktionen des Systems mit entsprechenden en nach außen sichtbar zu machen und gleichzeitig nach innen als Realisierungsvorgabe fest zu halten. Wenn man nun einige der oben erwähnten Aspekte der Vor- und Nachbedingungen als maximale Autonomie des s kombiniert: * die Interpretation der Vorbedingungen obliegt der Implementierung des s * die Nachbedingungen beschreiben die Leistungen, für die der verantwortlich zeichnet * die Nachbedingungen bedürfen keiner Interpretation; es gibt keinen Misserfolg bzw. die Handlung kann nicht scheitern und die Sichtbarkeit nach außen in den Vordergrund stellt, löst sich die Problematik, zumindest im Entwurf, auf. In Bezug auf die Realisierung kann auf geeignete Design Pattern 3 verwiesen werden, die genau zur Beantwortung solcher Fragestellungen gesammelt und kategorisiert wurden. Will man hingegen eine Vorgabe für die Realisierung herstellen, die auf Vollständigkeit der Axiome des Abstrakten Datentyps bedacht ist, und zudem die eingangs aufgeführten Aspekte der Vorund Nachbedingungen als minimale Komplexität des s kombiniert: * die Interpretation der Vorbedingungen obliegt dem Benutzer des s * die Nachbedingungen müssen interpretiert werden; bei Falsifizierung gilt die Handlung als gescheitert * die Interpretation der Bedingungen erfolgt ausschließlich mit Hilfe der zur Verfügung stehenden en ist es unumgänglich, das Geheimnisprinzip, genauer gesagt die Datenkapselung in Komponenten, auf zu weichen um, wenn auch nur kurz, oder zwischenzeitlich, den Zustandsraum, der durch deren Datenbereich repräsentiert wird, zu manipulieren. 3 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Entwurfsmuster, Addison-Wesley, /11
10 Daraus folgt, dass zwischen Vollständigkeit und Datenkapselung ein Kompromiss gefunden werden muss, da beide Forderungen nicht gleichzeitig zu erfüllen sind. Für das Beispiel weisse Dame zieht auf Feld ergibt sich, mit einer Kombination der Aspekte der Vor- und Nachbedingungen zu rationale Abwägung von Autonomie und Komplexität eines s, der zieht(zielfeld) wie folgt: Schnittstelle Figur zieht(zielfeld) precondition -- der Benutzer des s könnte diesen Teil der Bedingungen prüfen self.amzug() = true and zielfeld.frei() = true and self.gehoertzurgangart(feld) and self.wegzufeld(zielfeld)->forall(f f.frei() = true) postcondition -- der Benutzer des s muss mit dem eventuellen Scheitern umgehen if!königgleicherfarbe().imschach() then self.aktuelleposition() = zielfeld and self.amzug() = false else -- im Falle des Scheiterns muss Aktion rückgängig gemacht werden self.aktuelleposition() = self.aktuelleposition()@pre and self.amzug() = true weitere en wie oben 10/11
11 Als Empfehlung leitet sich daher die Kombination der Aspekte der Vor- und Nachbedingungen zu rationale Abwägung von Autonomie und Komplexität eines s : * die Metapher eines Vertrages, wobei die Vorbedingungen die Voraussetzungen, unter denen die Leistungen erbracht werden, und die Nachbedingungen die Leistungen und eventuellen Misserfolg, für die der verantwortlich zeichnet, beschreiben * die Interpretation der Vorbedingungen obliegt der Implementierung des s * im Fall der Falzifizierung einer Vorbedingung wird der nicht ausgeführt * die Nachbedingungen bedürfen keiner Interpretation; die Handlung kann scheitern und der der Fall des Misserfolges ist zu behandeln * die Interpretation der Bedingungen erfolgt überwiegend mit Hilfe der zur Verfügung stehenden en und der Verzicht auf Vollständigkeit zugunsten des Geheimnisprinzips ab. Die Lösung der aufgezeigten Problematik an zirkulären Abhängigkeiten obliegt damit der Realisierung. Da es eine Vielzahl möglicher Realisierungen gibt und die technische Umsetzung im Entwurf gar keine Rolle spielen soll, ist die Implementierung der adäquate Platz für kreative Ansätze und den eventuellen Einsatz an Mustern. 11/11
Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrUniversität Karlsruhe (TH) Framework for Integrated Tests (FIT)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Framework for Integrated Tests (FIT) Motivation Erleichterung der Erstellung des Akzeptanztest für den Benutzer Benutzer beschreibt die Eingaben
MehrÜbungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6
Prof. Dr. Wilhelm Schäfer Paderborn, 24. November 204 Christian Brenner Tristan Wittgen Besprechung der Aufgaben:. - 4. Dezember 204 Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester
MehrSoftwarequalitätssicherung
Softwarequalitätssicherung Seminarvortrag Peter Winkelhane 1 Agenda Motivation Taxonomie zur Einordnung von Verfahren im Bereich kontraktbasiertem Testen Drei kontraktbasierte Verfahren Vergleich der drei
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrBitte wenden. Name: KURSARBEIT NR. 4 (10 DIFF GA) 18.06.2002. Seite 1
Aufgabe 1: Gegeben ist das folgende Programm: PR figur :n :Länge WH 3 [ VW :Länge WENN :n>1 DANN ( RE 90 figur :n-1 :Länge/2 RW :Länge Seite 1 Zeichne das Bild, welches beim Aufruf der Prozedur mit figur
Mehr1. Ziehe zu Beginn des Spiels möglichst nur einmal mit jeder Figur.
Einsteiger 1. Ziehe zu Beginn des Spiels möglichst nur einmal mit jeder Figur. Begründung: Alle Figuren wollen am Spiel teilhaben, stehen sie nur in der Grundposition ist ihr Aktionsbereich begrenzt. 2.
MehrRefaktorisierung des Eclipse- Plugins Saros für die Portierung auf andere IDEs. Verteidigung der Bachelorarbeit von Arndt Tigges
Refaktorisierung des Eclipse- Plugins Saros für die Portierung auf andere IDEs Verteidigung der Bachelorarbeit von Arndt Tigges Überblick Einleitung Saros Refaktorisierung Durchführung Analysen Anwendung
MehrEntwurfsmuster (Design Pattern) ETIS SS05
Entwurfsmuster (Design Pattern) ETIS SS05 Gliederung Motivation Pattern allgemein Proxy-Pattern Zusammenfassung 2 Motivation I Wie gut sind eure Programme strukturiert? Wartbarkeit? - Verständlichkeit
MehrProseminar: Geschichte des Computers Schachprogrammierung Die Digitale Revolution
Die Digitale Revolution Internet 3D-Drucker Quants Singularität 27.02.14 Johannes Polster Das Spiel der Könige Sehr altes Spiel: Entstehung vor 1500 Jahren Weltberühmt Strategisches Spiel Kein Glück, Intelligenz,
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrDESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens
November DESIGN'PATTERN'2011 INHALT Intent Motivation Applicability Structure Consequences Implementation Sample Code [1] BEARBEITET VON Christoph Süsens Abstract Factory & Factory Method Inhaltsverzeichnis
MehrSoftware-Architektur Design Patterns
Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:
MehrBetragsgleichungen und die Methode der Fallunterscheidungen
mathe online Skripten http://www.mathe-online.at/skripten/ Betragsgleichungen und die Methode der Fallunterscheidungen Franz Embacher Fakultät für Mathematik der Universität Wien E-mail: franz.embacher@univie.ac.at
MehrNachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen
Nachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen Diplomarbeit Martin Pitt martin@piware.de Technische Universität Dresden 11. November 2004 1 Aufgabenstellung
MehrGuten Morgen und Willkommen zur Saalübung!
Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei
MehrKonstruktive Software-Architektur
!!!!!!!!!!!!!!!!!!!!!!! Fachhochschule Köln Cologne University of Applied Sciences Forschungsschwerpunkt Software-Qualität Konstruktive Software-Architektur Grundzüge einer Methodenlehre für Softwarearchitekten
Mehr5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
Mehr173108 Großbrettspiel- Spielesammlung
Produktinformation 173108 Großbrettspiel- Spielesammlung Mit dem Großbrettspiel haben sie gleich eine ganze Ansammlung an tollen und bekannten Brettspielen. Alle Spiele sind auch für Blinde geeignet, da
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrSuche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20
Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:
MehrDialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen
Dialognetze Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen Dialogabläufe auf Fensterebene "grobe Dialogabläufe" d.h. Wechsel zwischen
MehrDie wichtigsten Tipps und Infos zu Faxvorlagen sowie allgemeine Muster
Die wichtigsten Tipps und Infos zu Faxvorlagen sowie allgemeine Muster Trotz aller modernen Entwicklungen und technischen Neuerungen ist das gute alte Fax bis heute nicht wegzudenken. Dabei ist ein Fax
MehrKommunikation in Change-Prozessen Mitarbeiter erreichen und Verhalten ändern
Kommunikation in Change-Prozessen Mitarbeiter erreichen und Verhalten ändern von Bernd Glazinski, Josef Kramer In Change-Prozessen wird immer wieder die Frage gestellt, wie die Strategie des Unternehmens
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck { Selektoren
MehrData Mining-Projekte
Data Mining-Projekte Data Mining-Projekte Data Mining stellt normalerweise kein ei nmaliges Projekt dar, welches Erkenntnisse liefert, die dann nur einmal verwendet werden, sondern es soll gewöhnlich ein
MehrDER SCHLÜSSEL IN DER STRATEGIE
DER SCHLÜSSEL IN DER STRATEGIE Das Geheimnis im Schachspielen von Keykhosrow Mansouri 1. Auflage DER SCHLÜSSEL IN DER STRATEGIE Mansouri schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG
MehrProjekt: Leben in der Stadt (City) Sommersemester 2008
Projekt: Leben in der Stadt (City) Sommersemester 2008 Anforderungsermittlung zum Thema: Straßen- U-Bahnfahrt 1 Nutzungskontext des Systems 1.1 Zu unterstützende Nutzeraufgaben Die Anforderungsermittlung
MehrSoftware-Engineering
FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 2: Grundbegriffe und Prinzipien FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 2 Grundbegriffe
MehrMusterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9
Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung
MehrDr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
Mehrwww.wiesl.net SPIELPLAN: weisser Raster mit 36 eingezeichneten Feldern
HALLO UND WILLKOMMEN! DRUCKEN: Am besten weisses Papier verwenden, Papierformat Din A4, Hochformat. Schwarz/weiss oder Farbdruck. (Das Spielmaterial sieht in Farbe natürlich schöner aus.) Spielfiguren
MehrProgrammierung und Modellierung
Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:
MehrVermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D
Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D 1 1. EINLEITUNG... 3 2. ZWECK... 3 3. MOTIVATION... 3 4. ANWENDBARKEIT... 6 5. STRUKTUR... 6 6. TEILNEHMER... 7 7. INTERAKTION...
MehrDie Ausstattung. Plateau Copyright Jim Albea, 1984, 1986, 1991, 1992, 1995, 1997, 2003 All rights reserved. Deutsche Übersetzung von Frank Kronmueller
Plateau Copyright Jim Albea, 1984, 1986, 1991, 1992, 1995, 1997, 2003 All rights reserved. Deutsche Übersetzung von Frank Kronmueller Version 1.5 Die Ausstattung...1 Vor dem ersten Spiel...2 Ziel des Spieles...2
MehrSoftware-Engineering
SWE5 Slide 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 5: Systementwurf SWE5 Slide 2 Systemanalyse vs. Softwareentwurf Systemanalyse beschreibt das System der Anwendung, für das eine Aufgabe
MehrWiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
MehrSPRECHENDE SCHACHSCHULE. Bedienungsanleitung
SPRECHENDE SCHACHSCHULE Bedienungsanleitung BATTERIEN EINLEGEN: Legen Sie das Gerät mit der Rückseite nach oben auf eine flache Unterlage (z.b. einen Tisch). Öffnen Sie das Batteriefach, indem Sie mit
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 29 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen Einführung:
MehrSoftwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel
Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungsblatt 10 - Lösungshilfe Aufgabe 1. CRC-Karten (7 Punkte) Es geht um die Modellierung der folgenden Bibliotheks-Anwendung:
MehrSoftware Engineering Übung 4 Architektur, Modulentwurf
software evolution & architecture lab Software Engineering Übung 4 Architektur, Modulentwurf 1 Informationen 1.1 Daten Ausgabe Di 27.10.2009 Abgabe So 08.11.2009 bis 23:59 Uhr Besprechung am Di 17.11.2009
MehrZentrales Webmailsystem der FH Köln (Horde) Anleitung, Stand: 2006-09-15, Ver.: 1.3, op
Fachhochschule Köln University of Applied Sciences Cologne Zentrales Webmailsystem der FH Köln (Horde) Anleitung, Stand: 2006-09-15, Ver.: 1.3, op CampusIT Tel. +49 221 / 8275-2661 Fax +49 221 / 8275-2660
Mehr6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.
6. Modellierung von Informationssystemen Spezialseminar Matr. FS 2000 1/10 Volker Dobrowolny FIN- ITI Quellen: Oscar Pastor, Jaime Gomez, Emilio Insfran, Vicente Pelechano The OO-Method approach for information
MehrVorlesung Programmieren
Vorlesung Programmieren Software Design Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Software Design Wie schreibe ich gute Software?
MehrWhitepaper ONTIV-Sonderfahrt. Sonderfahrten im Industriebereich planen und überwachen
Whitepaper ONTIV-Sonderfahrt Sonderfahrten im Industriebereich planen und überwachen Einleitung Sonderfahrten sind in vielen Unternehmen, die mit einem externen Dienstleister zusammenarbeiten, ein Thema.
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrBrowser Grid Funktionalitäten
Browser Grid Funktionalitäten Die Browser Grid Funktionalitäten können durch rechts Klick auf dem Grid eines Browsers aufgerufen werden. Fig. 1 Die erste Option Gruppe (bis zur ersten linie in Fig.1) enthält
MehrPROJEKTCOACHING Thomas Kettner thomas@kettner-consulting.com www.kettner-consulting.com
PROJEKTCOACHING Thomas Kettner thomas@kettner-consulting.com www.kettner-consulting.com AGENDA Ausgangslage Konsequenzen Lösungsansatz Projektcoaching Grundregeln des Projektcoachings Wann kommt Projektcoaching
MehrSoftware-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht
Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Das Programm Mensch ärgere Dich nicht ermöglicht das Spielen des gleichnamigen Spieles über Netzwerke. Jeder Spieler verfügt dabei über einen Clienten,
MehrObjektorientierte Programmierung (OOP) in Python
Objektorientierte Programmierung (OOP) in Python Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20090901 Überblick Einführungsbeispiel Basiskonzepte der OOP OOP in Python Beispiele
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 18: Undo/Redo Chair of Software Engineering Weiterführe Referenzen Kapitel 21 von Object-Oriented Software
MehrSOMA Reverse Engineering
SOMA Reverse Engineering Univ.Prof. Dr. Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt Was versteht man unter Reverse Engineering? Techniken/Methoden Probleme VU Software Maintenance
MehrKlausur "OOAD" im SS 2009. Name, Vorname: Matrikel-Nr:
Klausur "OOAD" im SS 009 Name, Vorname: Matrikel-Nr:.... Bitte tragen Sie zuerst Ihren Namen und Ihre Matrikelnummer ein. Lesen Sie jeweils vor Erarbeitung der Lösung die ganze Aufgabenstellung durch.
Mehr29.01.2013. Vorlesung Programmieren. Software Design. Software Design. Entwurfsmuster
Vorlesung Programmieren Software Design Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Software Design Wie schreibe ich gute Software?
MehrProbeklausur. Lenz Belzner. January 26, 2015. Lenz Belzner Probeklausur January 26, 2015 1 / 16
Probeklausur Lenz Belzner January 26, 2015 Lenz Belzner Probeklausur January 26, 2015 1 / 16 Definieren Sie Software Engineering in Abgrenzung zu Individual Programming. Ingenieursdisziplin professionelle
MehrAlgorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.
Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte
MehrSemantische Analyse. Prof. Dr. Helmut Kromrey FU Berlin http://userpage.fu-berlin.de/~kromrey - email: kromrey@zedat.fu-berlin.de
Semantische Analyse Aufgabe: semantische Interpretation von Begriffen = Ermittlung der Dimensionen, auf denen die Begriffe Bedeutungen tragen können; Klärung, WELCHE Bedeutungen in welchen sprachlichen
MehrAuktion name adresse pseudonym emailadresse /bewertungszahl. Gebot. höhe zeitpunkt bieter. initiiert
Software Engineering I Musterlösungen zur Klausur vom 2.8.2003 Aufgabe a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Daher verzichten wir auf Klassen wie Sofortkauf,
MehrKonzepte des Requirements- Engineering
Otto- von- Guericke- Universität SS 2004 Fakultät für Informatik Doz. Dr. V. Dobrowolny Konzepte des Requirements- Engineering 0. Einführung Requirements- Engineering (im weiteren Sinne) ist eine Disziplin
MehrErgebnisse der Umfrage zum V-Modell XT bei VMEA 2009
Ergebnisse der Umfrage zum V-Modell XT bei VMEA 2009 Dr. Karl Kollischan, Arbeitsgruppe Projektmanagement WEIT e.v. April 2010 Bei der VMEA am 17. November 2009 in München hat der ANSSTAND e.v. zusammen
Mehr1. Positionieren Textfelder. 1.1. Textfelder einfügen und bearbeiten. 1.2. Größe und Position des Textfeldes verändern
1. Positionieren Textfelder 1.1. Textfelder einfügen und bearbeiten Textfelder können auf zwei Arten eingefügt werden. Entweder Textfeld einfügen und dann den Text hineinschreiben, oder zuerst den Text
MehrKollegiale Praxisberatung (Intervision)
Kollegiale Praxisberatung (Intervision) Das Prinzip Intervision ist eine Form der kollegialen Praxisberatung. Die Mitglieder einer Intervisionsgruppe stehen in einem kollegialen Verhältnis zu einander
MehrDie Ergonomen Usability AG Dr. Christopher H. Müller 06. Mai 2014 +41 44 849 29 29 www.ergonomen.ch
Die Ergonomen Usability AG Dr. Christopher H. Müller 06. Mai 2014 +41 44 849 29 29 www.ergonomen.ch 1. Umgang mit Information 2. Innensicht ist nicht gleich Aussensicht 3. Vor dem Schreiben: Was wollen
MehrTesten. SEPR Referat: Testen - Oliver Herbst
Testen Inhalt 1. Grundlagen des Testens 2. Testen im Softwarelebenszyklus 3. Statischer Test 4. Dynamischer Test 5. Besondere Tests 2 1. Grundlagen des Testens 3 Grundlagen des Testens Motivation erfüllt
MehrDSL Entwicklung und Modellierung
DSL Entwicklung und Modellierung Dipl. Inform. Rolf Hänisch Übersicht DSL, was bedeutet das für uns? Eine Anwendung aus der Automatisierungstechnik Sprachen und Werkzeuge Ergebnisse und Erfahrungen GI
MehrZug Bart Borg Bart Borg Bart Borg Bart. Bart 2 1 1 1 Borg 1 1 2 verloren. Stand 8 7 6 5 4 2 1. Zug Bart Borg Bart Borg Bart Borg
. Das. Einführung Deep Blue Kasparow, Philadelphia 996 Deep Blue, der Supercomputer schlägt Garry Kasparow. So oder ähnlich lauteten die Schlagzeilen 996. Die 6 Partien waren insgesamt ausgeglichen, zum
MehrObjektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation
Objektorientierte Konzepte und Notation in UML Objekt Klasse Attribut Operation Objekt Wodurch zeichnet sich ein Objekt aus? - Zustand - Verhalten - Identität Objektdiagramm - Notationsregeln :Kuh Elsa:Kuh
Mehrvon Anja Austermann Drag and Drop
von Anja Austermann Drag and Drop »Drag and Drop«ist die Bezeichnung für den Datentransfer zwischen unterschiedlichen Anwendungen mit grafischer Benutzeroberfläche. Zur Zeit arbeitet Drag and Drop in Java
MehrIn der Kürze liegt die Würze. Metaphern systemischer Praxis. Systemische Praxis als Perspektivenwechsel
In der Kürze liegt die Würze Supervisionswalzer, Coaching-Rumba und andere systemische Kurzzeitpraktiken Dipl. Psych. Andrea Ebbecke-Nohlen Lehrtherapeutin/ Lehrende Supervisorin/Lehrender Coach Helm Stierlin
MehrConstraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9
Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Prof. Dr. W. Conen Version 1.0c Januar 2009 Genereller Ablauf der Suche Gegeben: Variablen X, Domains D, Constraints R (explizit
Mehr13 OOP MIT DELPHI. Records und Klassen Ein Vergleich
13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,
MehrHandbuch Datenpunktliste - Auswerte - Tools
Handbuch Datenpunktliste - Auswerte - Tools zur Bearbeitung von Excel Datenpunktlisten nach VDI Norm 3814 für Saia PCD Systeme alle Rechte bei: SBC Deutschland GmbH Siemensstr. 3, 63263 Neu-Isenburg nachfolgend
MehrTechniken der Projektentwicklung
diagramme Termin 6 Denken in Schnittstellen Was nun? Einführung Bisher kennengelernt: Modellierung auf Konzeptlevel Usecase-Diagramme Domänenmodelle Jetzt: Übergang zu Spezifikation und Implementierung!
MehrZum Einsatz von Operatoren im Informatikunterricht
Friedrich-Schiller-Universität Jena Fakultät für Mathematik und Informatik Professur für Didaktik der Informatik/Mathematik Claudia Strödter E-Mail: claudia.stroedter@uni-jena.de Zum Einsatz von Operatoren
MehrKI und Sprachanalyse (KISA)
Folie 1 KI und Sprachanalyse (KISA) Studiengänge DMM, MI (B. Sc.) Sommer Semester 15 Prof. Adrian Müller, PMP, PSM1, CSM HS Kaiserslautern e: adrian.mueller@ hs-kl.de Folie 2 ADVERSIALE SUCHE Spiele: Multi-Agenten
MehrAuswertung qualitativer Interviews
Auswertung qualitativer Interviews Problem: umfangreiche Texte in eine Form zu bringen, die als Erzählung, als Leseangebot für den Leser dienen können Texte müssen eingedickt werden, sie müssen im Rahmen
MehrMethodische objektorientierte Softwareentwicklung
Methodische objektorientierte Softwareentwicklung Eine Integration klassischer und moderner Entwicklungskonzepte von Mario Winter 1. Auflage Methodische objektorientierte Softwareentwicklung Winter schnell
MehrPHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54
PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten
MehrNeue Wege zur sicheren Betriebsartenwahl. EUCHNER GmbH + Co. KG Jens Rothenburg Kohlhammerstr. 16 D-70771 Leinfelden-Echterdingen
Neue Wege zur sicheren Betriebsartenwahl EUCHNER GmbH + Co. KG Jens Rothenburg Kohlhammerstr. 16 D-70771 Leinfelden-Echterdingen 1 Forderung aus der EN ISO 23125:2010 Drehmaschinen Sicherheitseinstufung
Mehr2. Spielbäume und Intelligente Spiele
2. Spielbäume und Intelligente Spiele Arten von Spielen 2. Spielbäume und Intelligente Spiele Kombinatorische Spiele als Suchproblem Wie berechnet man eine gute Entscheidung? Effizienzverbesserung durch
MehrSoftware Engineering
Literatur Gliederung Software Engineering Herbert Kuchen Universität Münster Di+Fr 14:15-15:45, M2 Wintersemester 2009/2010 1 Literatur Gliederung Basis-Literatur H. Balzert: Lehrbuch der Software-Technik,
MehrWinter der Toten FAQ Version 1.2
Winter der Toten FAQ Version 1.2 Inhaltsverzeichnis 1.0.0 Überlebende-karten 1.1.0 John Price... 2 1.2.0 Loretta Clay... 3 1.3.0 Edward White... 3 2.0.0 Schicksalskarten 2.1.0 Schicksalskarten Auslöser...
MehrDISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 374
DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN Nr. 374 Eignung von Verfahren der Mustererkennung im Process Mining Sabrina Kohne
MehrFlexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl, www.joposol.com)
Flexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl, www.joposol.com) Kapselung Was ist das? Auszug aus Wikipedia Kapselung ist auch ein wichtiges
MehrIdeensammlung zur Durchführung von Ratespielen und Quiz
Ideensammlung zur Durchführung von Ratespielen und Quiz Quiz sind eine beliebte Methode, um Kinder aktiv werden zu lassen, Gelerntes motivierend zu überprüfen oder in ein neues Thema einzusteigen. Ein
MehrFassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
Mehr- Prüfung - Prüfprotokoll für Anforderungen (Lastenheft)
- Prüfung - Prüfprotokoll für Anforderungen (Lastenheft) Projektbezeichnung Projektleiter Verantwortlich WiBe 4.0 Beispielprojekt Odysseus pollon Erstellt am 11.03.2005 10:11 Zuletzt geändert 18.05.2005
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrAnleitung Basisspiel (ohne App)
Anleitung Basisspiel (ohne App) Autor: Projekt Team III, Michael Schacht Design: Felix Harnickell, KniffDesign, DE Ravensburger Illustration: Franz Vohwinkel, Torsten Wolber Anleitung: DE Ravensburger
MehrMaintenance & Re-Zertifizierung
Zertifizierung nach Technischen Richtlinien Maintenance & Re-Zertifizierung Version 1.2 vom 15.06.2009 Bundesamt für Sicherheit in der Informationstechnik Postfach 20 03 63 53133 Bonn Tel.: +49 22899 9582-0
MehrMod_com.lib. Inhalt. WAGO-I/O-PRO 32 Bibliothek
Anhang A Weitere Bibliotheken WAGO-I/O-PRO 32 Bibliothek Mod_com.lib Inhalt ADD_DESC (Datentyp)...2 ADD_PI_INFORMATION...4 CRC16...6 FBUS_ERROR_INFORMATION...7 GET_DIGITAL_INPUT_OFFSET...8 GET_DIGITAL_OUTPUT_OFFSET...10
MehrRTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen
RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen Thorsten Keuler (thorsten.keuler@iese.fraunhofer.de) IESE Fraunhofer Institut Experimentelles Software
MehrSystematisches Testen von Software
Programmierung Systematisches Testen von Software Markus Eckstein Systematika Information Systems GmbH Kurfürsten-Anlage 36 69115 Heidelberg markus.eckstein@systematika.com Zusammenfassung Die wichtigsten
MehrVorlesung 30.03.2009 1) Einführung
Vorlesung 30.03.2009 1) Einführung Was versteht man unter dem Begriff Datenbank? - Eine Datenbank ist eine Struktur zur Speicherung von Daten mit lesendem und schreibendem Zugriff - Allgemein meint man
MehrSEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
Mehr