Vorlesung Programmieren
|
|
- Reinhold Sternberg
- vor 8 Jahren
- Abrufe
Transkript
1 Vorlesung Programmieren 13 Testen und Assertions Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK sdq.ipd.kit.edu KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
2 Wichtige Termine Programmieren Übungsschein: Anmeldungszeitraum zwischen und Programmieren Abschlussaufgaben: Anmeldungszeitraum zwischen und Anmeldung jeweils über das Campus Management Portal : 2
3 Literaturhinweis - Weiterlesen Dietmar Ratz, Jens Scheffler, Detlef Seese und Jan Wiesenberger Grundkurs Programmieren in Java, 7. Auflage, 2014 (mit Java 8), Hansa-Verlag Kapitel 10 Exceptions and Errors Abschnitt 10.3 Assertions 3
4 Murphy s Law Everything that can go wrong, will go wrong! 4
5 Softwarefehler ( Bugs ) Mark II Aiken Relay Calculator Grace Hopper 5
6 Berühmte Software-Fehler Therac-25 Bestrahlungsgerät Fehlerhafte Dosierung ( ) Toyota Camry Ungewollte Beschleunigung ( ) Hackerangriffe / Cyberwar Angriff aus China auf Google Server (2009) Blackout Nordamerika 55 Millionen Menschen für zwei Tage ohne Strom (2003) 6
7 Was lernen wir daraus? Umfassende Fehlerbehandlung erforderlich Jede Benutzereingabe sollte überprüft werden Jeder mögliche Fehlerfall behandelt Ausgiebiges Testen unerlässlich! 7
8 Software testers always go to heaven; they ve already had their fair share of hell. [Anonymous] Aber auch: Testing can only show the presence of bugs, not their absence. [E. Dijkstra] 8
9 Software-Fehler Wann können wir sagen, dass ein Programm fehlerhaft ist? Erster Versuch einer Definition: Die Software tut nicht das, was sie soll! Besser: Abweichung von Spezifikation, Anforderungen (requirements) Def. Anforderung: Eine Anforderung ist eine Aussage über eine zu erfüllende Eigenschaft oder zu erbringende Leistung eines Programms/Systems. Mögliche Gründe für fehlerhafte Software: Programm ist fehlerhaft (Exception geworfen, fehlerhafte Ausgabe,...)...) Anforderungen unvollständig, widersprüchlich, unmöglich zu implementieren Falsche Interpretation der Anforderungen Dokumentation falsch Verhalten des Programms nicht richtig beschrieben Testen hilft, Software-Fehler zu finden! 9
10 Testen Jedes Programm muss getestet werden! Typischerweise zweistufiges Vorgehen: 1. Auswahl der Testfälle Klassifizierung der möglichen Eingabedaten Standardsituationen und Randfälle betrachten 2. Auswahl der Testdaten Repräsentative Daten zu jedem Testfall Man muss versuchen, alle Situationen abzudecken, in denen das Programm potentiell schiefgehen kann 10
11 Beispiel: Klassifikation Dreiecke Der Benutzer gibt drei ganze Zahlen ein. Diese repräsentieren Seitenlängen eines Dreiecks. Das Programm soll das Dreieck klassifizieren als gleichseitig gleichschenklig weder-noch Was sind gute Testfälle? 11
12 Testfälle Gültiges weder-noch-dreieck Gültiges gleichseitiges Dreieck Gültiges gleichschenkliges Dreieck (plus Permutationen, z.b. 4,3,3; 3,4,3; 3,3,4) Genau eine Seite Länge Null Eine Seite negative Länge Summe zweier nichtnegativer Seiten ergibt dritte Seite Summe zweier Seiten ist kleiner als dritte Seite Alle Seiten Länge null... 12
13 Klassifikation Dreiecke: Spezifikation enum TriangleKind { Equilateral, Isosceles, Other, ; Invalid ; class Triangle { // Specification: Classify a triangle... as equilateral, isosceles, other, or invalid. static // classifytriangle TriangleKind classify(int returns a, int b, int c) { //... a) Equilateral: if If all sides (a, b, c) are equal in length and // b) Isosceles: if all two of sides a, b, are c are equal strictly in length positive. // c) b) Other: Isosceles: if If all two sides have (e.g., different a, b) are lengths equal in length (and > 0), static // TriangleKind and classify(int the triangle a, int is neither b, int c) Equilateral { nor Invalid. //... c) Other: If all sides have different lengths > 0 and the triangle // is not Invalid. // d) Invalid: If at least one side s length is <= 0, or if the largest // side s length is larger or equal to the sum of the // other sides. static TriangleKind classify(int a, int b, int c) {... Spezifikation ist Grundlage der Testfall-Erstellung 13
14 Klassifikation Dreiecke: Testfälle class TriangleTest { static void test_1() { // Test case: equilateral int a = 5, b = 5, c = 5; TriangleKind tk = Triangle.classify(a, b, c); assert tk == TriangleKind.Equilateral; static void test_2() { // Test case: isosceles int a = 3, b = 1, c = 3; TriangleKind tk = Triangle.classify(a, b, c); assert tk == TriangleKind.Isosceles;... static void test_27() { // Test case: largest side greater equals sum of other sides int a = 4, b = 4, c = 8; TriangleKind tk = Triangle.classify(a, b, c); assert tk == TriangleKind.Invalid; 14
15 Kriterien für gute Testfälle Prüfen genau eine (möglichst spezifische) Eigenschaft ab Sind möglichst kurz und prägnant Können isoliert ausgeführt werden (d.h. keine Abhängigkeiten zwischen Tests) Sind gut dokumentiert Stellen Bezug zur Spezifikation klar dar Nutzen existierende Testing-Frameworks (z.b. JUnit) Möglichst vorausschauend (bzgl. Änderungen am Programm) Folgen häufig dem Schema: 1. Initialisierung 2. Durchführung (z.b. Methodenaufruf) 3. Prüfung (z.b. mittels assert) 4. Finalisierung ( aufräumen ; nicht immer notwendig) 15
16 Was Testen ist... Dynamischer Vergleich von tatsächlichem und erwünschtem (= spezifiziertem) Verhalten Ziele: Nachweis, dass Funktionalität erfüllt ist Fehlerdetektion Unterschied psychologisch wesentlich! Testfall: Sollten Programmierer ihre eigenen Programme testen? Im allgemeinen: nein; aber manchmal aus organisatorischen oder Kostengründen erforderlich Ein Testfall besteht immer aus Eingabe und erwarteter Ausgabe (plus ggf. Ausführungsbedingungen). Für jeden Testfall sollte auch eine Begründung existieren, warum er ausgewählt wurde In Windows XP waren Testfälle die (einzige) Spezifikation! 2004: EU-Kommission verlangte, Schnittstellen offenzulegen 16
17 Failure vs. Fault Failure ( Versagen / Fehlfunktion ) System/Programm verhält sich nicht gemäß der Spezifikation/Anforderungen Manifestation zur Laufzeit Fault ( Fehler ) Inkorrekter Schritt in einem Programm Tatsächliche (oder vermutete) Ursache des Versagens Kann in einem Programm auch unentdeckt vorhanden sein Grob: Fault = Ursache Failure = Wirkung 17
18 Failure vs. Fault vs. Error Error Unterschied zwischen tatsächlichem und erwünschtem internen Programmzustand Kann, muss aber nicht zu einer Failure führen Kann zur Laufzeit repariert werden (z.b. durch Redundanz) Kann mit Assertions überprüft werden 18
19 Beispiel: Failure vs. Fault // Specification: Search for element x in array a, starting // at index p. The method returns the smallest i >= p, for which // a[i] == x. If no such i exists, -1 is returned. static static int int search(int[] search(int[] a, a, int int p, p, int int x) x) { for for (int (int i = 0; 0; i <= <= a.length; a.length; i++) i++) { if if (a[i] (a[i] == == x) x) { return return p; p; return return -1; -1; Fault 1: Should read: i = p Fault 2: Should read: return i Fault 3: Should read: i < a.length static void test_1() { // Test case: element to search for occurs multiple times int[] a = { 2, 5, 4, 3, 2, 3 ; int p = 4, x = 3; int r = search(a, p, x); assert r == 5; Failure! (r = 4) 19
20 Was Testen nicht ist Fehlerlokalisierung (fault localization) Fehler beheben Alternative Methoden Statische Codeanalyse, ob manuell oder automatisiert Mathematische Beweise Reviews, Inspections, Walkthroughs 20
21 Warum Testen so schwierig ist Was macht einen Testfall zu einem guten Testfall? Fähigkeit, Fehler zu finden (Fehler nur mit Spezifikation!) Dann aber kein guter Testfall für ein fehlerfreies Programm Fähigkeit, wahrscheinliche Fehler mit angemessenem Aufwand zu finden Kosten, Tests zu schreiben / auszuführen / auszuwerten Kosten verbleibender Fehler, je nach Schwere Testsuiten sollen aus Managementgründen so klein wie möglich (so groß wie nötig) sein und so kurze Testfälle wie möglich (so lang wie nötig) enthalten. Leichte Fault-Lokalisierung Erwartete Ausgabe ist essentiell. Also benötigen wir eine Spezifikation Möglicherweise nur keine Exception : robustness testing. Dann aber nur sehr oberflächlicher Test der Funktionalität 21
22 Testselektion Approximation guter Testfälle Zentrales Problem: Lösung: Mögliche Eingabedaten in Blöcke gruppieren, so dass (möglichst) jedes Element eines Blocks denselben Fehler provoziert Auf der Basis von Anforderungen Auf der Basis von Wissen um typische Fehler Zufällig (gleichverteilt oder gemäß Nutzerprofilen) Strukturbasiert ( jede Zeile einmal ausführen, jede Bedingung einmal zu wahr und einmal zu falsch auswerten etc.) 22
23 Wann sind wir fertig? Wenn die Zeit um ist! Nutzlos. Einfach gar nichts tun. In der Praxis Kriterium #1. Wenn keine weiteren Fehler mit existierenden Tests gefunden werden Nutzlos. Wähle irrelevante Tests Wenn ein strukturelles Kriterium erfüllt ist Etwa: Jede Zeile einmal ausgeführt Nützlich, wenn es einen Zusammenhang zwischen diesen strukturellen Kriterien und Fehlerdetektion gibt. (Dafür gibt es aber keine empirische Evidenz und gute Gründe, dass es dafür keine Evidenz gibt.) Wenn eine vorher spezifizierte Anzahl Fehler gefunden wurde Großartig. Erfordert aber gute Abschätzungen 23
24 Teststrategien Datenbasiert, auf Basis der Eingabeparameter Gruppierung von Daten, die zu vergleichbarem Verhalten führen (wie im Dreieck-Beispiel) Grenzwerte Beispiel natürliche Zahlen: -1, 0, 1, Integer.MAX_VALUE, Beispiel Liste: leere Liste, null-referenz, einelementige Liste Beispiel Array: null-referenz, Länge 0, Länge 1 Programmbasiert (z.b. Coverage Criteria) Jede Zeile (mind.) einmal ausgeführt Jede Bedingung (mind.) einmal zu wahr und zu falsch ausgewertet 24
25 f u cn rd ths, u cn gt a gd jb n sftwr tstng. 25
26 Assertions class TriangleTest { static void test_1() { // Test case: equilateral int a = 5, b = 5, c = 5; TriangleKind tk = Triangle.classify(a, b, c); assert tk == TriangleKind.Equilateral; Assertions erlauben es, angenommene erforderliche Bedingungen zur Laufzeit zu prüfen Syntax: assert Bedingung; assert Bedingung : Detaillierte Fehlermeldung ; 26 26
27 Zusicherungen Beispiel: Berechne das Skalarprodukt zweier Vektoren u und v double dotproduct(double[] u, double[] v) { assert u.length == v.length; double s = 0; for (int i = 0; i < u.length; i++) { // Vorbedingung // hier gilt immer: s = // Schleifeninvariante s += u[i] * v[i]; // hier gilt immer: s = // Nachbedingung return s; Zusicherungen: Vorbedingung: muss vor Aufruf der Methode gelten Nachbedingung: muss nach Aufruf der Methode gelten Schleifeninvariante: muss bei jeder Schleifeniteration gelten 27
28 Assertions Zusicherungen (assertions) sind ein weiteres wichtiges Hilfsmittel für die Entwicklung von Software und zur Vermeidung von Fehlern Sie werden verwendet, um Restriktionen für Parameter und globale Variablen von Methoden anzugeben Vorbedingungen (preconditions) den Effekt von Methoden formal zu beschreiben Nachbedingungen (postconditions) an zentralen Programmpunkten wichtige Eigenschaften (z.b. mögliche Werte von Variablen) explizit festzuhalten Mit Hilfe von Zusicherungen ist es möglich, Korrektheitsaussagen bzgl. eines gegebenen Programmes mathematisch zu beweisen 28
29 Zusicherungen in Java Java bietet die Möglichkeit, Zusicherungen mittels assert direkt in den Programmtext zu schreiben Vorteil: Kann zur Laufzeit von der JVM nachgeprüft werden Nachteil: Es kann nur Java-Syntax verwendet werden, um die Bedingung auszudrücken Häufig ist es einfacher, Zusicherungen in Kommentare zu schreiben Vorteil: Volle sprachliche Freiheit Nachteil: Kann nicht (oder nur eingeschränkt) automatisiert überprüft werden In jedem Fall: Assertions sind gute Dokumentation der Verantwortlichkeiten zwischen Methodennutzer und Methodenimplementierer. ( Design by contract) Assertions werden standardmäßig nicht ausgewertet und überprüft! Aktivieren beim Programmstart mit der enable-assertions -Option: java -ea MyClass 29
30 Pre- und Postconditions, Invarianten Eine Zusicherung gibt eine Eigenschaft an, die bei der Ausführung des Programms an der entsprechenden Stelle erfüllt sein muss Eine Precondition muss vor der Abarbeitung des entsprechenden Methodenrumpfs erfüllt sein Eine Postcondition muss erfüllt sein, nachdem die Methode abgearbeitet wurde Eine Klassenininvariante beschreibt den gültigen Zustand eines Objekts. Sie muss sowohl vor als auch nach jedem Methodenaufruf (Ausnahme: private Hilfsmethoden) des zugehörigen Objekts gültig sein Beispiel: int length; /* ASSERT length >= 0 */ Eine Schleifen-Invariante ist eine Zusicherung, die am Anfang und Ende eines jeden Durchlaufs der zugehörigen Schleife erfüllt sein muss 30
31 Beispiel Invarianten public class Time { int hour; int minute; // invariant: 0 <= hour && hour < 24 // invariant: 0 <= minute && minute < 60 public Time(int h, int m) { assert 0 <= h && h < 24; assert 0 <= m && m < 60; hour = h; minute = m; private void normalizetime() { if (minute >= 60) { minute -= 60; hour += 1; if (hour >= 24) { hour -= 24;... public void addtime(time t) { minute += t.minute; hour += t.hour; assert normalizetime(); 0 <= h && h < 24; assert 0 <= m h && m h < 60; 24; assert 0 <= m && m < 60;... Postcondition / Klasseninvariante kann verletzt sein! 31 31
32 assert oder if-abfrage? assert if-abfrage + Exceptions Annahme des Programmierers zur Korrektheit des Programms Auch zur Dokumentation Für nicht zur Laufzeit behandelbare Fehler Abschaltbar Beispiel: void setbalance(double b) { assert b >= 0; this.balance = b; Prüfung von Eingabedaten des Benutzers Für Sonderfälle Für von aufrufenden Funktionen behandelbare Fehler Nicht abschaltbar Beispiel: void setbalance(double b) { if (b < 0) { throw new llegalargumentexception(); this.balance = b; 32
33 Statische Analyse Wenn Auswahl der Testfälle so schwierig ist, warum nicht alle Eingaben testen? Viel zu viele! Management der Testfälle nicht mehr praktikabel Laufzeit der Testfälle zu groß Oder geht es doch? Idee: Transformiere Programm in logische Formel und versuche Einhaltung der Spezifikation zu beweisen Verschiedene Logiken: Dynamische Logik, Bit-Vektor-Logik,... Spezifikation: muss in formaler Logik vorliegen Beweisen: manuell, Rechner-unterstützt, vollautomatisch Statische Programm-Analyse 33
SEP 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
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
MehrDesign by Contract with JML
Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC
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
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
Mehr2015-06-11 Tagesprogramm
1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrWhitebox-Tests: Allgemeines
-Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv
MehrFortgeschrittenes Programmieren mit Java. Test Driven Development
Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test
MehrKlassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrQualitätsmanagement im Projekt
Software-Engineering Qualitätsmanagement im Projekt Vorlesung im Wintersemester 2008/2009 Fakultät Wirtschaftsinformatik Klaus Mairon, M.Sc. Inhalte Messen und Bewerten: Metriken in der Qualitätssicherung
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Mehr1. Teilklausur. Modul "OOPM Vorlesung/Übung" 16.12.2008. Gruppe A
Objektorientierte Programmierung und Modellierung WS 2008/2009 Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur Modul "OOPM Vorlesung/Übung" 16.12.2008 Gruppe A Name Vorname
MehrUnit Testing mit JUnit. Dr. Andreas Schroeder
Unit Testing mit JUnit Dr. Andreas Schroeder Überblick Was dieses Video behandelt Warum Testen? Was sind Unit Tests? Der Teufelskreis des Nicht-Testens JUnit Unit Test Vorteile Test-Inspiration Wann aufhören?
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
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.
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrVermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.
1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich
MehrInformatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
MehrKlausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
MehrKapitalerhöhung - Verbuchung
Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.
MehrInformationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 27 29..24 FAKULTÄT FÜR INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Definition
MehrStep by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrTypisierung des Replikationsplan Wirries, Denis Datenbankspezialist
Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist Feintypisierung - Überblick Ergebnisse Ergebnisse aus aus anderen anderen Arbeitsergebnissen Arbeitsergebnissen Replikationsplan Replikationsplan
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
Mehr1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrMatrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)
MehrProjektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung
Projektmanagement Vorlesung von Thomas Patzelt 9. Vorlesung 1 Pläne Kein Plan überlebt die erste Feindberührung - Feldmarschall Helmuth von Moltke Prognosen sind schwierig, besonders wenn sie die Zukunft
MehrFragebogen zur Anforderungsanalyse
Fragebogen zur Anforderungsanalyse Geschäftsprozess Datum Mitarbeiter www.seikumu.de Fragebogen zur Anforderungsanalyse Seite 6 Hinweise zur Durchführung der Anforderungsanalyse Bevor Sie beginnen, hier
MehrNathan Burgener. Design by Contract. Modul SWE
NathanBurgener DesignbyContract ModulSWE NathanBurgener Inhaltsverzeichnis 1 WasistDesignbyContract...3 1.1 Überblick...3 1.2 DesignbyContractmitMethoden...4 1.3 DesignbyContractmitKlassen...5 1.4 Vererbung...6
MehrProgrammiertechnik II
Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing
MehrUse Cases. Use Cases
Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrOhne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?
Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Behandelte Fragestellungen Was besagt eine Fehlerquote? Welche Bezugsgröße ist geeignet? Welche Fehlerquote ist gerade noch zulässig? Wie stellt
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrErster Bug: eine Motte
SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrSoftwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten
Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm
MehrHandbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen
Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
MehrHandbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrEinführung in die Programmierung
Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und
Mehrgeben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen
geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrSoftwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch
Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich
MehrInstallation des Authorware Webplayers für den Internet Explorer unter Windows Vista
Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Allgemeines: Bitte lesen Sie sich diese Anleitung zuerst einmal komplett durch. Am Besten, Sie drucken sich diese Anleitung
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
Mehr.NET Code schützen. Projekt.NET. Version 1.0
.NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll
MehrFolgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:
Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal
Mehrrobotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand: 28.05.2014
robotron*e count robotron*e sales robotron*e collect Anwenderdokumentation Version: 2.0 Stand: 28.05.2014 Seite 2 von 5 Alle Rechte dieser Dokumentation unterliegen dem deutschen Urheberrecht. Die Vervielfältigung,
MehrIhr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig?
Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig? Oft wirft die Aufnahme neuer Gesellschafter oder auch die Einstellung
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
MehrJava Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
MehrJUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1
JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
MehrDiese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.
Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrBeschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung
Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrAuswertung des Jahresabschlusses Bilanzanalyse 2
KA11 Unternehmensergebnisse aufbereiten, bewerten und nutzen Auswertung des Jahresabschlusses Bilanzanalyse 2 Kennzahlen zur Bilanzanalyse Die aufbereitete Bilanz kann mit Hilfe unterschiedlicher Kennzahlen
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrAktivierung der SeKA-Anmeldung
Aktivierung der SeKA-Anmeldung Bitte, benutzen Sie diese Methode nur, wenn Sie gerade kein Kennwort im SeKA-System erhalten haben. Wenn Sie die Aktivierung vorher schon geschafft, aber das Kennwort vergessen
MehrTestphase. Das Testen
Testphase VIS Projekt Freie Universität Berlin N.Ardet - 17.4.2001 Das Testen Testen ist das Ausführen eines Software- (Teil)systems in einer definierten Umgebung und das Vergleichen der erzielten mit
MehrInhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
MehrProgrammieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen
Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung
Mehr15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit
5.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit Einführendes Beispiel ( Erhöhung der Sicherheit bei Flugreisen ) Die statistische Wahrscheinlichkeit, dass während eines Fluges ein Sprengsatz an Bord
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrWindows XP Jugendschutz einrichten. Monika Pross Molberger PC-Kurse
Windows XP Jugendschutz einrichten Monika Pross Molberger PC-Kurse Um ein Benutzerkonto mit Jugendschutzeinstellungen zu verwenden, braucht man ein Eltern- Konto (Administrator) und eine Kinderkonto (Standard).
MehrSMART Newsletter Education Solutions April 2015
SMART Education Newsletter April 2015 SMART Newsletter Education Solutions April 2015 Herzlich Willkommen zur aktuellen Ausgabe des Westcon & SMART Newsletters jeden Monat stellen wir Ihnen die neuesten
MehrQuadratische Gleichungen
Quadratische Gleichungen Aufgabe: Versuche eine Lösung zu den folgenden Zahlenrätseln zu finden:.) Verdoppelt man das Quadrat einer Zahl und addiert, so erhält man 00..) Addiert man zum Quadrat einer Zahl
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrVorkurs Mathematik Übungen zu Polynomgleichungen
Vorkurs Mathematik Übungen zu en 1 Aufgaben Lineare Gleichungen Aufgabe 1.1 Ein Freund von Ihnen möchte einen neuen Mobilfunkvertrag abschließen. Es gibt zwei verschiedene Angebote: Anbieter 1: monatl.
MehrAlso kann nur A ist roter Südler und B ist grüner Nordler gelten.
Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf
MehrInformationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:
Informationssystemanalyse Problemstellung 2 1 Problemstellung Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: große Software-Systeme werden im Schnitt ein Jahr zu spät
MehrTaking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum
Taking RM Agile CLICK TO EDIT MASTER OPTION 1 Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum Click to edit Master subtitle style Christian Christophoridis Requirements Management
MehrAnleitung für die Umstellung auf das Sm@rt-TAN plus Verfahren mit manueller und optischer Übertragung
Bitte zuerst Sm@rtTAN plus über die ebanking-seite www.vr-amberg.de Konto/Depot-Login Verwaltung Sm@rtTAN-Leser anmelden Anleitung für die Umstellung auf das Sm@rt-TAN plus Verfahren mit manueller und
MehrClient-Server Beziehungen
Ersetzbarkeit, Client-Server Beziehungen 182.132 VL Objektorientierte Programmierung Peter Puschner nach Folien von Franz Puntigam, TU Wien Überblick Ersetzbarkeit Kovarianz, Kontravarianz, Invarianz Client-Server
Mehr