Ein O-O Design Beispiel. Ein Reservierungs-Panel. Das Übergangs-Diagramm. Programmierung im Grossen Bertrand Meyer Vorlesung 19
|
|
- Rüdiger Solberg
- vor 7 Jahren
- Abrufe
Transkript
1 Programmierung im Grossen Bertrand Meyer Vorlesung 9 Ein O-O Design Beispiel Letzte Aktualisierung: 8. Juni 004 Ein Reservierungs-Panel -- Enquiry on Flights -- Flight sought from: Santa Barbara Departure on or after: 3 June Preferred airline (s): Special requirements: To: Zurich On or before: 4 June AVAILABLE FLIGHTS: Flt#AA 4 Dep 8:5 Arr 7:45 Thru: Chicago Choose next action: 0 Exit Further enquiry 3 Reserve a seat Das Übergangs-Diagramm Initial 3 3 Confirmation Enquiry_on _flights Reservation Enquiry_on _seats 3
2 Ein erster Versuch PEnquiry_on_flights: output enquiry on flights screen repeat read user s answers and his exit choice C if error in answer then output message until no error in answer process answer inspect C when C0 then goto Exit when C then goto P... when Cm- then goto PReservation... (und ähnlich für jeden Zustand) 4 Was ist mit dem Schema falsch? Komplizierte Verzweigungs-Struktur ( spaghetti bowl ). Erweiterungs-Probleme: Dialog-Struktur in der Programm-Struktur codiert. 5 Eine funktionale, top-wn Lösung Für mehr Flexibilität, stelle die Struktur des Übergangs- Diagramms durch eine Funktion transition (i, k) dar. Diese wird verwet, um das Übergangs-Diagramm, das einer bestimmten interaktiven Anwung zugeordnet ist, zu spezifizieren. Die Funktion transition kann durch eine Datenstruktur, zum Beispiel ein zwei-dimensionales Array, implementiert werden. 6
3 Die Funktion transition 0 (Initial) () (Conf.) 3 (Reserv.) 4 (Seats) 5 (flights) 0 3 Exit Exit Exit Exit Exit Return Das Übergangs-Diagramm Initial 3 3 Confirmation Enquiry_on _flights Reservation Enquiry_on _seats 8 Neue System-Architektur Level 3 session Level initial transition is_final Level display read correct message process 9 3
4 Neue System-Architektur Prozedur session definiert nur die Graphen-Übergänge. Weiss nichts über die einzelnen Schirme einer Anwung. Sollte die selbe für alle Anwungen sein. session is -- Execute full session local current_, choice: INTEGER current_ := initial repeat choice := (current_) current_ := transition (current_, choice) until is_final (current_) 0 Um eine Anwung zu Beschreiben Gib transition Funktion Definiere initial Zustand Definiere is_final Funktion Aktionen in einem Zustand (current_: INTEGER): INTEGER is -- Actions for current_, returning user s exit choice. local answer: ANSWER good: BOOLEAN choice: INTEGER repeat display (current_) [answer, choice] := read (current_) good := correct (current_, answer) if not good then message (current_, answer) until good process (current_, answer) return choice 4
5 Spezifikation der übrigen Routinen display (s) gibt den Schirm für Zustand s zurück. [a, e] := read (s) liest nach a die Benutzerantwort auf den Schirm von Zustand s und nach e die Ausgangs-Wahl des Benutzers. correct (s, a) liefert true dann und nur dann, wenn a eine korrekte Antwort auf die in Zustand s gestellte Frage ist. Falls so, verarbeitet process (s, a) die Antwort a. Falls nicht, gibt message (s, a) die passe Fehlermeldung aus. 3 Objekt- Orientiert: Das Gesetz der Inversion Wie offen ist diese Lösung für Veränderungen und Adaptionen? Neue Transitionen? Neue Zustände? Neue Applikationen? Routine Signaturen: (: INTEGER): INTEGER display (: INTEGER) read (: INTEGER): [ANSWER, INTEGER] correct (: INTEGER; a: ANSWER): BOOLEAN message (: INTEGER; a: ANSWER) process (: INTEGER; a: ANSWER) is_final (: INTEGER) 4 Objekt- Orientiert: Das Gesetz der Inversion Wie offen ist diese Lösung für Veränderungen und Adaptionen? Neue Transitionen? Neue Zustände? Neue Applikationen? Routine Signaturen: (: INTEGER): INTEGER display (: INTEGER) read (: INTEGER): [ANSWER, INTEGER] correct (: INTEGER; a: ANSWER): BOOLEAN message (: INTEGER; a: ANSWER) process (: INTEGER; a: ANSWER) is_final (: INTEGER) 5 5
6 Daten-Übertragung Alle Routinen haben den Zustand als Eingabe-Parameter. Sie müssen nach dem Argument unterscheiden, zb : display (current_: INTEGER) is inspect current_ when then... when then... when n then... Konsequenzen: Lange und komplizierte Routinen. Müssen über eine möglicherweise komplexe Applikation wissen. Um eine Transition oder Zustand hinzuzufügen, muss man alle ändern. 6 Der Kontroll-Fluss Zugrundeliege Ursache, warum die Struktur so inflexibel ist: Zu viel DATEN-ÜBERTRAGUNG. Variable current_ kommt als Argument von session (Level 3) zu allen Routinen auf Level und weiter zu Level Schlimmer: es gibt ein weiteres implizites Argument zu allen Routinen die Anwung. Man kann session, display,,... nicht als Bibliotheks-Komponenten schreiben, weil jede alle interaktiven Anwungen kennen muss. 7 Die sichtbare Architektur Level 3 session Level initial transition is_final Level display read correct message process 8 6
7 Die wahre Geschichte Level 3 session Level initial transition is_final Level display read correct message process 9 Das Gesetz der Inversion Der überall lauernde Zustand Wenn deine Routinen zu viele Daten austauschen, gebe deine Routinen in deine Daten. 0 O-O werden Verwe STATE als den Abstrakten Daten-Typen (ergibt eine Klasse). Unter den Features eines Zustands: Die Routinen von Level (deferred in STATE), wie oben, jech ohne das current_ Argument. 7
8 Groupieren nach Daten-Abstraktionen Level 3 session Level initial transition is_final STATE Level display read correct message process Klasse STATE deferred class STATE feature choice: INTEGER -- User s selection for next step input: ANSWER -- User s answer for this step display is -- Show screen for this step. deferred read is -- Get user s answer and exit choice, -- recording them into input and choice. deferred ensure input /= Void correct: BOOLEAN is -- Is input acceptable? deferred 3 Klasse STATE message is -- Display message for erroneous input. require not correct deferred process is -- Process correct input. require correct deferred 4 8
9 Klasse STATE is local good: BOOLEAN from until good loop display read good := correct if not good then message process choice := input.choice 5 Klassen-Struktur * STATE INITIAL RESERVATION CONFIRMATION 6 Um den Zustand einer Applikation zu beschreiben Führe einen neuen Nachkommen von STATE ein: class ENQUIRY_ON_FLIGHTS inherit STATE feature display is... read is... correct: BOOLEAN is... message is... process is
10 Neuordnung der Module APPLICATION Level 3 session Level initial transition is_final STATE Level display read correct message process 8 Beschreiben einer kompletten Applikation Kein Hauptprogram sondern eine Klasse, die das System darstellt. Beschreibe die Anwung durch die verbleiben Features auf Levels and : Funktion transition. Zustand initial. Boolean Funktion is_final. Prozedur session. 9 Implementierungs-Entscheidungen Stelle Übergänge durch ein Array transition dar: n Reihen (Anzahl an Zuständen), m Spalten (Anzahl an Möglichkeiten), bei der Erzeugung angegeben Zustände von bis n numeriert; Array s gibt den dem Index zugeordneten Zustand (Umkehrung nicht nötig: Warum?) Keine deferred boolean Funktion is_final, sondern die Konvention: eine Transition zu Zustand 0 bedeutet Terminierung. KeinesolcheKonventionfürden Initial-Zustand(zu einschränk). Attribut initial_number. 30 0
11 Beschreiben einer Anwung class APPLICATION create make feature initial: INTEGER make (n, m: INTEGER) is -- Allocate with n s and m possible choices. create transition.make (, n,, m) create s.make (, n) feature {NONE} -- Representation of transition diagram transition: ARRAY [STATE] -- State transitions s: ARRAY [STATE] -- State for each index 3 Array von Zuständen: ein polymorpher Kontainer s: ARRAY [STATE] Notation um auf ein Array-Element zuzugreifen, zb s [i] in Pascal: s.item (i) i (Bald in Eiffel: einfach nur s [i]) 3 Das Array von Zuständen (ENQUIRY_ ON_FLIGHTS) (ENQUIRY_ ON_SEATS) (INITIAL) (CONFIRMATION) STATES (RESERVATION) 33
12 Ausführen einer Sitzung session is -- Run one session of application local current_: STATE -- Polymorphic! index: INTEGER from index := initial invariant 0 <= index index <= n until index = 0 loop current_ := index current_. 34 check <= current_.choice current_.choice <= m index := transition.item (index, current_.choice) Klassen-Struktur * STATE INITIAL RESERVATION CONFIRMATION 35 Andere Features von APPLICATION put_ (s: STATE; number: INTEGER) is -- Enter s with index number. require <= number number <= s.upper s.put (number, s) choose_initial (number: INTEGER) is -- Define number number as the initial --. require <= number number <= s.upper first_number := number 36
13 Weitere Features von APPLICATION put_transition (source, target, label: INTEGER) is -- Add transition labeled label from -- number source to number target. require <= source source <= s.upper 0 <= target target <= s.upper <= label label <= transition.upper transition.put (source, label, target) invariant 0 <= st_number st_number <= n transition.upper = s.upper 37 Um eine Anwung zu bauen Notwige Zustände Instanzen von STATE sollten verfügbar sein. Initialisiere die Anwung: create a.make (_count, choice_count) Weise jedem relevanten Zustand s eine Nummer zu: a.put_ (s, n) Wähle Initial-Zustand n0: a.choose_initial (n0) Gib Übergänge ein: a.put_transition (sou, tar, lab) Kann nun ausgeführt werden: a.session 38 Offene Architektur Währ der System-Evolution kannst du zu jeder Zeit: Einen neuen Übergang einfügen (put_transition). Einen neuen Zustand einfügen (put_). Einen Zustand löschen (nicht gezeigt, aber einfach einzubauen). Ändern der Aktionen in einem gegebenen Zustand
14 Kommentare zur Architektur Prozedur session ist nicht die Funktion des Systems sondern nur eine Routine von APPLICATION. Andere Anwungen: Baue und modifiziere: füge hinzu oder lösche Zustände, Übergange, etc. Simulation, zb in Batch (wiederholen einer vorherigen Sitzung), oder bei einem Zeilen-Terminal. Sammeln von Statistiken, ein Log, ein Skript. Speichern in eine Datei oder Datenbank. Jede solche Erweiterung benötigt nur inkrementelles hinzufügen von Routinen. Beeinflusst nicht die Struktur von APPLICATION und Kunden. 40 Das System ist offen Schlüssel für Offenheit: Architektur basiert auf den Typen von den Objekten des Problems (Zustand, Übergang, Anwung). Basiert man es auf dem scheinbaren Zweck des Systems würde man es vor Evolution abschliessen. Wirkliche Systeme haben keine Spitze 4 Objekt-Orientiertes Design It s all about finding the right data abstractions Es dreht sich alles um die richtigen Daten-Abstraktionen 4 4
15 Ende der Vorlesung 9 5
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 18: Undo/Redo Weiterführe Referenzen Kapitel 21 von Object-Oriented Software Construction, Prentice Hall,
MehrEinführung in die Programmierung. Bertrand Meyer. Vorlesung 23: Ein Beispiel: Undo-Redo. Das Problem
1 Einführung in die Programmierung Bertrand Meyer Letzte Bearbeitung 20. Januar 2004 2 Vorlesung 23: Ein Beispiel: Un-Re Das Problem 3 Den Benutzern eines interaktiven Systems ermöglichen, den Effekt des
MehrProgrammierung im Grossen
1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 4: Abstrakte Daten-Typen Übungen 3 Passe die vorhergehende Spezifikation von Stacks (LIFO, Last-In First-Out
MehrChair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE
1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS
MehrProgrammierung im Grossen. Vorlesung 15: Konkurrente Objekt- Orientierte Programmierung. Volkan Arslan. Überblick. Bertrand Meyer.
1 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 15: Konkurrente Objekt- Orientierte Programmierung Volkan Arslan Überblick 3 Ziel / Motivation Grundlagen des SCOOP Modells Beispiele Zusammenfassung
MehrAutotest. Automatische Testgenerierung mit Design by Contract. von Simon Greiner am 12. Juli 2007
Autotest Automatische Testgenerierung mit Design by Contract von Simon Greiner am 12. Juli 2007 Autotest 1. Testen 2. Design by Contract 3. Strategien zur Testerstellung 1. Zufallsstrategie 2. Planungsstrategie
MehrVGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016
Overview The Hamburg Süd VGM Web portal is an application that enables you to submit VGM information directly to Hamburg Süd via our e-portal Web page. You can choose to enter VGM information directly,
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
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung I 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved.
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrAssertions (Zusicherungen)
April 10, 2005 Oberseminar Software-Entwicklung Inhalt 1. Einführung (Motivation, Tony Hoare, Programmverifikation) 2. Design by Contract (Idee, Eiffel) 3. Praxis: Programming by Contract for Python 4.
MehrVGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016
Overview The Hamburg Süd VGM-Portal is an application which enables to submit VGM information directly to Hamburg Süd via our e-portal web page. You can choose to insert VGM information directly, or download
MehrInteraktive Programme mit Scanner
2.X Input 191 Interaktive Programme mit Scanner 193 Input und System.in Interaktives Programm: Liest Input von der Konsole ( console ). Während das Programm ausgeführt wird fragt das Programm den Benutzer
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrFunktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion
Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert
MehrThe process runs automatically and the user is guided through it. Data acquisition and the evaluation are done automatically.
Q-App: UserCal Advanced Benutzerdefinierte Kalibrierroutine mit Auswertung über HTML (Q-Web) User defined calibration routine with evaluation over HTML (Q-Web) Beschreibung Der Workflow hat 2 Ebenen eine
MehrLevel 1 German, 2016
90886 908860 1SUPERVISOR S Level 1 German, 2016 90886 Demonstrate understanding of a variety of German texts on areas of most immediate relevance 2.00 p.m. Wednesday 23 November 2016 Credits: Five Achievement
MehrWarum Programme Verträge schließen sollten
1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
MehrFEINDLICHE VERWENDUNG
1 2 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer Vorlesung 2: Modularität, Wiederverwbarkeit Programm für heute 3 Software Qualität 4 Software Qualität Modularität Wiederverwbarkeit
MehrÜbung PL/SQL Trigger Lösungen
Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde
MehrSAP-Daten per HTML anzeigen
SAP-Daten per HTML anzeigen Oftmals besteht die Notwendigkeit einfach nur bestimmte Daten eines SAP-Systems anzuzeigen. Die Installation des SAPGUI für Windows, mit mehreren hundert Megabytes, scheint
MehrAufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators
Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators München, 21. Nowember 2007 Nicola Marangoni & Jörg Westermayer Nicola.Marangoni@SHS-VIVEON.com Joerg.Westermayer@SHS-VIVEON.com
MehrAlgorithmen und Datenstrukturen Musterlösung 5
Algorithmen und Datenstrukturen Musterlösung 5 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann
MehrFachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. Testen. Tutorial im Rahmen des Software(technik)praktikums SS 2012
Testen Tutorial im Rahmen des Software(technik)praktikums SS 2012 Grundlagen (1) Software ist ein fundamentales Element in der Softwarequalitätssicherung Software wird am häufigsten eingesetzt Viele Organisationen
MehrTipps & Tricks. Eine Standardfunktionalität ist das Erstellen von Grafischen Basisobjekten auf dem Patran Viewport.
Eine Standardfunktionalität ist das Erstellen von Grafischen Basisobjekten auf dem Viewport. Anders als bei Titeln bewegen sich die Grafikobjekte mit dem Modell mit. Ein im Elementschwerpunkt platzierter
MehrObjekt-orientierte Programmierung
Objekt-orientierte Programmierung Eine (sehr) kurze Einführung Daniel Lübke Gliederung Motivation Grundlagen (Objekte, Klassen, Vererbung) Interfaces Klassenvariablen
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
MehrUML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich
UML / Fujaba Generierung von Java-Quellcode aus UML-Diagrammen Marcel Friedrich Agenda Einleitung Struktur Verhalten Klassendiagramme Storydiagramme Statecharts Action methods 2 Thema Codegenerierung mit
Mehr11: Echtzeitbetriebssystem ucos-ii
11: Echtzeitbetriebssystem ucos-ii Sie lernen anhand aufeinander aufbauender Übungen, welche Möglichkeiten ein Echtzeitbetriebssystem wie das ucosii bietet und wie sich damit MC-Applikationen realisieren
MehrGERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT
User Requirements GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 1 Gruppe 18 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289]
MehrExercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1
Exercise (Part XI) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All
MehrWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
unit sudoku; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TCvD_Sudoku = class(tform) Panel1: TPanel; Bevel1: TBevel; Bevel2:
MehrAbteilung Internationales CampusCenter
Abteilung Internationales CampusCenter Instructions for the STiNE Online Enrollment Application for Exchange Students 1. Please go to www.uni-hamburg.de/online-bewerbung and click on Bewerberaccount anlegen
MehrÜbungsstunde 10. Einführung in die Programmierung I
Übungsstunde 10 Einführung in die Programmierung I Probleme bei Übung 9 [TODO Assistent] Nachbesprechung Übung 10 Aufgabe 1 Comparable boolean lessthan(comparable other) Ziel: Schreiben von Methoden,
MehrAnleitung zur Verwendung des Update-Tools für
English version see below (page 10) Anleitung zur Verwendung des Update-Tools für - KW DDC Steuergeräte - KW DDC WLAN Module - KW DLC Steuergeräte - KW DLC WLAN Module Bitte beachten Sie: jedes Steuergerät
MehrReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2
ReadMe zur Installation der BRICKware for Windows, Version 6.1.2 Seiten 2-4 ReadMe on Installing BRICKware for Windows, Version 6.1.2 Pages 5/6 BRICKware for Windows ReadMe 1 1 BRICKware for Windows, Version
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrMATLAB driver for Spectrum boards
MATLAB driver for Spectrum boards User Manual deutsch/english SPECTRUM SYSTEMENTWICKLUNG MICROELECTRONIC GMBH AHRENSFELDER WEG 13-17 22927 GROSSHANSDORF GERMANY TEL.: +49 (0)4102-6956-0 FAX: +49 (0)4102-6956-66
MehrHochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.
Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.
MehrQuick Installation Guide
LevelOne WHG-1000 300Mbps Wireless PoE Hotspot Gateway Quick Installation Guide English Deutsch Table of Contents English... 3 Deutsch... 13 Default Settings IP Address-LAN1 192.168.1.254 IP Address-LAN2
MehrRestschmutzanalyse Residual Dirt Analysis
Q-App: Restschmutzanalyse Residual Dirt Analysis Differenzwägeapplikation, mit individueller Proben ID Differential weighing application with individual Sample ID Beschreibung Gravimetrische Bestimmung
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
MehrGrundlagen der Informatik
Grundlagen der Informatik Vorlesungsprüfung vom 13.06.2008 Gruppe B Lösung Name: Matrikelnummer: Zuerst bitte Name und Matrikelnummer auf das Titelblatt schreiben. Es sind keine Unterlagen und keine Teamarbeit
MehrArithmetik in der tcsh
Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 9: Abstraktion Heutige Themen Abstraktion, vor allem funktionale Abstraktion Der Begriff der Routine Das
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
MehrPostScript -Sprache. Frank Richter
PostScript -Sprache Frank Richter 27.01.2003 Stack-Operationen exch vertauscht die zwei obersten Stackelemente x y exch => y x dup dupliziert oberstes Stackelement x dup => x x pop löscht oberstes Element
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir
Mehr1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrLevel 1 German, 2014
90886 908860 1SUPERVISOR S Level 1 German, 2014 90886 Demonstrate understanding of a variety of German texts on areas of most immediate relevance 9.30 am Wednesday 26 November 2014 Credits: Five Achievement
MehrProgrammierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung
Programmierstil Objektsammlungen Einführung in Sammlungen Variablennamen Kommentare Layout Einrückung (siehe: Stilrichtlinien im Buchanhang) 4.0 Konzepte Sammlungen (besonders: ArrayList) Schleifen: die
MehrProgrammiermethodik 1. Klausur
Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrEinführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
MehrGrundlagen der Informatik 6. Arrays I
6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt
MehrFEBE Die Frontend-Backend-Lösung für Excel
FEBE Die Frontend--Lösung für FEBE Die Frontend--Lösung für FEBE.pptx 8.04.206 0:43 FEBE Die Frontend--Lösung für Nutzer A alle_aufträge neuer_auftrag Auftragsänderung Nutzer B alle_aufträge neuer_auftrag
MehrHiOPC Hirschmann Netzmanagement. Anforderungsformular für eine Lizenz. Order form for a license
HiOPC Hirschmann Netzmanagement Anforderungsformular für eine Lizenz Order form for a license Anforderungsformular für eine Lizenz Vielen Dank für Ihr Interesse an HiOPC, dem SNMP/OPC Gateway von Hirschmann
MehrErste Schritte. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes
Erste Schritte Programmieren für Ingenieure Sommer 2014 Andreas Zeller, Universität des Saarlandes Das Galileo-Board Anschluss 1. Netzteil 2. USB-Kabel Programmierumgebung Download über Vorlesungs-Webseite
MehrProzedurale Datenbank- Anwendungsprogrammierung
Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
Mehr1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster
1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:
MehrDie Dokumentation kann auf einem angeschlossenen Sartorius Messwertdrucker erfolgen.
Q-App: USP V2 Bestimmung des Arbeitsbereiches von Waagen gem. USP Kapitel 41. Determination of the operating range of balances acc. USP Chapter 41. Beschreibung Diese Q-App ist zur Bestimmung des Arbeitsbereiches
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 7: Referenzen und Zuweisungen Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrAbstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.
Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung
MehrHausaufgabe 5. Informatik 1 Wintersemester 2015/16
Informatik 1 Wintersemester 2015/16 FB Informatik AG Programmiersprachen und Softwaretechnik Hausaufgabe 5 Im Zeitungskiosk an der Ecke ist nun auch eine Postfiliale. Die Kunden bringen Gegenstände, die
Mehr*A25321A0116* A25321A W850/T1231/ /6/6/6. Turn over
Centre No. Candidate No. Paper Reference(s) 1231/1F Edexcel GCSE German Paper 1F Listening and Responding Foundation Tier Thursday 7 June 2007 Morning Time: 30 minutes (+ 5 minutes reading time) Materials
MehrMakro Programmierung User Interface (Entwicklungs- Umgebung) Grafische Werkzeugbox. GUI Form erstellen (UserForm)
Makro Programmierung User Interface (Entwicklungs- Umgebung) Grafische Werkzeugbox GUI Form erstellen (UserForm) GUI definieren Aktivitäten programmieren Programmcode für das Zufügen von Zell Werten Struktogramm
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Mehrclass ListElement { int value; ListElement next; ListElement() { next=null; value=0;
Listenimplementierung Übung 1, Aufgabe 4. c 2004 Evgeny Matusov, Thomas Deselaers Zunächst definieren wir die Basisklasse für die Listenelemente, die gleichzeitig einen Verweis auf weitere Listenelemente
MehrObjektorientiertes RPG 2-1. Objektorientiertes RPG
Objektorientiertes RPG 2-1 2 Objektorientiertes RPG Das erste Kapitel wies auf die Ähnlichkeiten im Aufbau eines RPG-Programms und einer Java-Klasse hin. Aber wenn diese Strukturen bei der Erstellung von
MehrProblem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe
Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrAnhang A - Weitere Bibliotheken. Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842.
Anhang A - Weitere Bibliotheken WAGO-I/O-PRO 32 Bibliothek Mail_02.lib Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842. Inhalt Mail_02.lib 3 MAIL_SmtpClient...
MehrIntroduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016
to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 4: Die Schnittstelle einer Klasse (und eine erste Einführung in den Begriff von Vertrag) Kunde, Versorger
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrListElement (E i n f o, ListElement<E> prev, ListElement<E> next ) {
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 11 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 8 FS 16
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik. April 0
MehrObjektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern
Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung
MehrGeschäftslogik in die Datenbank Umstellung eines Kernbanksystems
Geschäftslogik in die Datenbank Umstellung eines Kernbanksystems Michael Meyer Berenberg Bank Hamburg Schlüsselworte: PL/SQL, Objektorientierung, Oracle Types, XML, Zentralisierung der Geschäftslogik,
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
Mehr1 von 3 02.04.2008 10:38 Selection single ride Düsseldorf Flughafen Fr, 04.04.08 dep 10:29 1 RE 10115 Regional-Express Duisburg Hbf Fr, 04.04.08 arr 10:37 13 dep 10:45 STR 901 Straßenbahn Direction: Fr,
MehrTeam Developer 7.1 Multithreading
Team Developer 7.1 Multithreading Parallele Prozesse in TD basierenden Anwendungen Roadshow April, 2018 Helmut Reimann Agenda Was ist Multithreading? Team Developer 7.1 Implementation Debugging Beispiel
MehrLevel 2 German, 2015
91126 911260 2SUPERVISOR S Level 2 German, 2015 91126 Demonstrate understanding of a variety of written and / or visual German text(s) on familiar matters 2.00 p.m. Friday 4 December 2015 Credits: Five
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
Mehriid software tools QuickStartGuide iid USB base driver installation
iid software tools QuickStartGuide iid software tools USB base driver installation microsensys Nov 2016 Introduction / Einleitung This document describes in short form installation of the microsensys USB
MehrGraphische Benutzeroberflächen mit Matlab
Graphische Benutzeroberflächen mit Matlab 1 Die Aufgabenstellung Erstellung einer Benutzeroberfläche für das Plotten einer Funktion f(x) im Intervall [a, b]. Bestandteile: 1. Koordinatensystem 2. Editorfelder
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrInformatik-Seminar Thema: Monaden (Kapitel 10)
Informatik-Seminar 2003 - Thema: Monaden (Kapitel 10) Stefan Neumann 2. Dezember 2003 Inhalt Einleitung Einleitung Die IO()-Notation Operationen Einleitung Gegeben seien folgende Funktionen: inputint ::
Mehr