ENA Entwicklung nutzerorientierter Anwendungen

Größe: px
Ab Seite anzeigen:

Download "ENA Entwicklung nutzerorientierter Anwendungen"

Transkript

1

2

3 ENA Entwicklung nutzerorientierter Anwendungen 3V + 1P SWS 5 CP Belegnummer: [PVL/Praktikum: ] Sommersemester 2015

4 Entwicklung nutzerorientierter Anwendungen Gestaltung von grafisch-interaktiven Systemen hier: Smartphone mit Android Bedürfnisse, Fähigkeiten und Erwartungen der (spezifischen) Nutzergruppen stehen im Mittelpunkt Nutzergruppe(n) identifizieren Bedürfnisse befriedigen Fähigkeiten unterstützen Erwartungen erfüllen Interdisziplinäres Gebiet auch Psychologie, auch Design, auch Softwareentwicklung,... Usability steht in den verschiedenen Phasen im Vordergrund Anforderungen erfassen und analysieren Prototypen entwerfen, umsetzen, testen und reflektieren Ergebnisse evaluieren Entwicklung nutzerorientierter Anwendungen, Seite 4

5 Überblick Java und Android for Run-aways Human Computer Interaction Usability Intuitive Bedienbarkeit, Erlernbarkeit, Konsistenz,... Gestaltung Farbe, Schrift, Anordnung, Layout, Entwurf: benutzerzentrierte Analyse, Design, Rapid Prototyping Konstruktionunter Android mit IDE: Views (Controls, Componenten), Container, Layouts, Eventhandling, Ressourcenkonzept Programmiermuster Model-View-Control, Observer, Adapter, Singleton Beispiele in der Vorlesung Entwicklung nutzerorientierter Anwendungen, Seite 5

6 Inhalte SW-Technik: Rollen erfassen, Nutzungsfall identifizieren, Szenario und Screen-Diagramm erstellen Trennung Datenverarbeitung Oberfläche, Dokument Ansicht MVC als Architektur- und Designpattern Screen-Design und Ergonomie Gruppierung, Formen, Farben, statisches/dynamisches Layout Java/Android Crash-Kurs für Kenner von C++ Implementierungstechniken Baukasten: Views, Attribute, Ereignisse Screens (Activities) mit Layouts und Views Ereignisbehandlung auch zusätzliche Klassen (z.b. Collection, Persistenz: Dateihandling, ) Gute Beispiele, schlechte Beispiele Entwicklung nutzerorientierter Anwendungen, Seite 6

7 Lernziele der Veranstaltung Grafisch-interaktive Benutzungsoberflächen (GO) Benutzerorientierung verinnerlichen (Benutzergruppen/Rollen identifizieren, Usability-Überlegungen einsetzen,...) intuitiv und ergonomisch gestalten visuell ansprechend entwerfen GO-Entscheidungen - Verwendung bestimmter Componenten - begründen können objektorientiert konstruieren gute GOs spiegeln sich im Entwurfs- und Realisierungsaufwand wider methodisch Vorgehen lernen Konzept der Ereignisorientierung verstehen Bausteine grafischer Oberflächen kennen und anwenden lernen... und das alles in Android (und Java) Entwicklung nutzerorientierter Anwendungen, Seite 7

8 Prüfung/Klausur mit Papier und Kugelschreiber Raum und Zeit siehe OBS (achten Sie auf Anmelde- und Abmeldefristen) regelmäßige Teilnahme am Praktikum es sind 5 Terminewird kontrolliert und ist Voraussetzung für ein erfolgreiches Testat; Beginn am 16. bzw. 23. April alte Klausur und Übungs-/Vorbereitungstermin Tipp: Aktive Mitarbeit macht einen guten Teil der Prüfungsvorbereitung aus! Entwicklung nutzerorientierter Anwendungen, Seite 8

9 Literatur zu Java Guido Krüger, Addison-Wesley, ISBN und Oracle (Sun): Java Documentation + Suchapplet Entwicklung nutzerorientierter Anwendungen, Seite 9

10 Literatur und Tutorials zu Android Arno Becker, Marcus Pant: Android Grundlagen und Programmierung; dpunkt Verlag; ISBn Mike Bach: Mobile Anwendungen mit Android Entwicklung und praktischer Einsatz; Addison-Wesley; ISBN und viele weitere Online-Tutorials Entwicklung nutzerorientierter Anwendungen, Seite 10

11 Weiterführende Literatur Bernhard Preim: Entwicklung interaktiver Systeme Ivo Wessel: GUI-Design Alan Cooper: About Face - The Essentials of User Interface Design Patrick J. Lynch, Sarah Horton : Web Style Guide (webstyleguide.com) Sun: Java Look and Feel Design Guidelines Online Sun: Sonstiges rund um Java Helmut Balzert: Lehrbuch Grundlagen der Informatik Entwicklung nutzerorientierter Anwendungen, Seite 11

12 Praktikum Semesterprojekt: Entwurf, prototypische Realisierungund Verfeinerung eines Systems optimierende Iterationen sind wichtig! Problembewusstsein entsteht im Laufe des Semesters Implementierung mit Android Studio Get the Android Studio: Entwicklung nutzerorientierter Anwendungen, Seite 12

13 Usability, Benutzeranforderungen, Rapid Prototyping ENTWURFSPHASE Entwicklung nutzerorientierter Anwendungen, Seite 13

14 Gelegenheit, über Usability nachzudenken Ständiger Technologiewandel verlangt permanente Auseinandersetzung mit Organisationsabläufen und den Systemen Anstehende System-oder Versionswechsel sind zusätzlich günstige Zeitpunkte, dabei müssen gerade die unterschiedlichen Nutzer überzeugt und mitgenommen werden Bereitschaft, sich mit Arbeitsabläufen und der Einbindung von IT -Prozessen auseinander zusetzen mit dem Ziel Produktivität/Wirtschaftlichkeit zu steigern Ressourcen zu schon und Kosten (Durchlaufzeit) zu reduzieren Qualität und Kundenzufriedenheit zu verbessern Mobile Geräte bieten die Möglichkeit, Fragen neu zu beantworten oder Abläufe neu zu realisieren Neben den Aspekten Preis, Lizenzen, Standards, branchentypischen Lösungen, verkauften Systemen, Schnittstellen und Integration spielt die Nutzerzufriedenheit eine wichtige Rolle Entwicklung nutzerorientierter Anwendungen, Seite 14

15 Bedeutung der Entwurfsphase Beim Entwurf und der Realisierung muss in der Praxis insbesondere darauf geachtet werden, dass man den Entwickleraufwand kalkulieren kann und dann auch einhält, das Projekt also in-time und in-budget bleibt und den Support nicht überstrapaziert die User Requirements erfüllt werden. Das muss auch etwas mit Qualität zu tun haben! Fehler in der Analyse und Konzeption haben dabei dramatische Auswirkungen auf die o.g. genannten Punkte! Ein erstes, wichtiges Ziel muss also sein, die Anforderungen der Benutzer richtig und vollständig zu erfassen Entwicklung nutzerorientierter Anwendungen, Seite 15

16 Phänomene nicht nur im Zusammenhang mit grafischen Benutzungsoberflächen (1/2) Kognitive Dissonanz entsteht, wenn man zwischen verschiedenen Alternativen wählen muss und die Vor-und Nachteile dieser Systeme abwägt. Hat man eine Entscheidung getroffen, ist man bemüht, sich zu versichern, dass man die richtige Wahl getroffen hat und nimmt Argumente besonders wahr, die die Entscheidung unterstützen und verharmlost/ignoriert Gegenargumente. Beispiel: Festhalten an möglicherweise kryptisch und schwer zu benutzenden oder teueren Systeme Anordnung der Tasten auf der qwertz-tastatur [Alternative siehe z.b. ]... Entwicklung nutzerorientierter Anwendungen, Seite 16

17 Phänomene nicht nur im Zusammenhang mit grafischen Benutzungsoberflächen (2/2) Magisches Denken bezieht sich darauf, dass sich Benutzer eine Vorstellung (mentales Modell) von dem System/Geräte machen, mit dem sie arbeiten. Diese hängt von der Erfahrung und Vorbildung ab. Die Modelle sind so konstruiert, dass sie Analogieschlüsse zulassen: wenn das Mail-Tool geöffnet ist, stürzt die Textverarbeitung bei der Rechtschreibprüfung ab Benutzer sind sehr bemüht an diesen Modellen festzuhalten; auch dann wenn gedankliche Verrenkungen nötig werden: wenn das Mail-Tool offen ist und mehr als zehn neue Mails eingetroffen sind, dann stürzt die Textverarbeitung ab Entwicklung nutzerorientierter Anwendungen, Seite 17

18 Entwickler und Anwender (1/4) spielen einen neuen Dialog durch: Entwickler: So, jetzt hast Du einen Teil der Aufgabe bereits ausgeführt. Willst Du nun noch etwas verändern? Anwender: Ja, ich möchte eine Komponente löschen. Was muss ich tun? E: Deute auf das Menu mit dem Namen CD. A: CD? E: CD bedeutet Component Delete. A: OK, ich habe verstanden Oh, was passiert jetzt? Entwicklung nutzerorientierter Anwendungen, Seite 18

19 Entwickler und Anwender (2/4) E: Du bist jetzt im Analyse-Modus. Du musst aus Versehen AM ausgewählt haben. A: Ach so, ich dachte, ich hätte CD ausgewählt. Wie verlasse ich den Analyse-Modus? E: Kein Problem. Gib einfach control Q ein. A: [tippt C O N T R O L ] E: Nein! Drücke die Strg -Taste und die Q -Taste. A: Wie dumm von mir. Ich versuch s noch einmal. Es passiert gar nichts. Was habe ich falsch gemacht? Entwicklung nutzerorientierter Anwendungen, Seite 19

20 Entwickler und Anwender (3/4) E: Du hast nichts falsch gemacht. Die Komponente ist gelöscht aber noch nicht vom Bildschirm entfernt. Gib noch control-j ein. A: Ich habe verstanden. Wenn ich die nächste Komponente lösche, gebe ich wieder control-q ein. Hoppla, warum ist der Bildschirm jetzt weiß? E: Du hast nur Q eingegeben. Q bedeutet Quit und beendet das Programm. Jetzt musst Du leider alles noch einmal eingeben! A: Wenn das so ist, machen wir nächste Woche weiter. Entwicklung nutzerorientierter Anwendungen, Seite 20

21 Entwickler und Anwender (4/4) Folgende Fehler wurden gemacht: Kommandos (CD, AM) sind nicht intuitiv erzeugt unnötige Belastung für den Anwender Auf welches Objekt wird das Kommando angewendet? Keine Statusinformation zu Zustandsänderungen Kryptische Kommandos (control-j, control-q) sind ungeeignet für unerfahrene, gelegentliche Benutzer Kein Feedback bei Delete erzeugt Frustration und Ablehnung bei dem Anwender ergibt Negativausstrahlung auf das Gesamtsystem Entwicklung nutzerorientierter Anwendungen, Seite 21

22 Usability-Kriterien Usability-Kriterien sind: Effizienz (Efficiency) Wenig Interaktion (Benutzer entlasten) Fokussteuerung an Hauptabläufen orientiert (Benutzer führen) Effektivität (Effectiveness) Können alle Aufgaben vollständig gelöst werden? Erlernbarkeit (Learnability) Kann das UI aus der Benutzererfahrung heraus bedient werden? Erinnerbarkeit (Memorability) Kann man das UI nach einer gewissen Zeit noch sicher bedienen? Zufriedenheit/Wohlbefinden/Spaß (Satisfaction; Emotional Usability) Gestaltung, Feedback, Klarheit Fehlersituation durch Bedienung (Error) Entwicklung nutzerorientierter Anwendungen, Seite 22

23 Analyse-Design-Realisierung-Test-Evaluation Analyse Benutzorientiertes RequirementsEngineering: Usability-Engineering Heuristic ohne Benutzer testen Observation Benutzer beim bedienen beobachten Thinking-Aloud Beim Bedienen laut denken Questionnaire - Fragebogen Interview Befragung u.u. Erarbeitung von Anwendungswissen u.u. Erarbeitung von zusätzlichem technischem Wissen Diesen Prozess wollen wir im Praktikum zumindest einmal durchlaufen Entwicklung nutzerorientierter Anwendungen, Seite 23

24 Analyse-Design-Realisierung-Test-Evaluation Design Legen Sie Designziele fest Welche Benutzergruppen adressieren Sie? Entlasten Sie den Benutzer! Welche Vorteile, welchen Nutzwert liefert ihre App Beschreiben Sie Anwendungsszenariien und Use Cases Skizzieren Sie das Layout (es sollte dynamisch sein) Überlegen und begründen Sie Gestaltungsentscheidungen Entwicklung nutzerorientierter Anwendungen, Seite 24

25 Analyse-Design-Realisierung-Test-Evaluation Realisierung Überlegen Sie, wie Sie Funktionalität und Dialog(Controls) koppeln: Model-View-Control Entwickeln Sie die Funktionalität getrennt von der GUI! Denken Sie auch an die Navigation im Systeme, die Arbeitsabläufe und den generellen Workflow Rapid Prototyping: iterativ, unter Einbeziehung der Nutzer Machbarkeit demonstrieren Entwicklung nutzerorientierter Anwendungen, Seite 25

26 Analyse-Design-Realisierung-Test-Evaluation Test Wer von Ihnen würde ein nicht getestetes Programm benutzen? Überlegen Sie von Beginn an Testfälle Wie lange dauert es, um eine bestimmte Aufgabe zu lösen? Wie viele Klicks/Interaktionen werden benötigt, um die Aufgabe zu lösen? Wie schnell erlernbar ist das GUI? Wie viele Fehler werden gemacht? Wie sicher ist die GUI? Testen Sie die Gebrauchstauglichkeit (Usability) Entwicklung nutzerorientierter Anwendungen, Seite 26

27 Analyse-Design-Realisierung-Test-Evaluation Evaluation der Umsetzung Welche Ziele werden erreicht? Wie gut werden die Ziele erreicht? Evaluationsmethoden: Experteninspektionen, kognitiver Walkthrough, Usability-Tests, Fragebogenverfahren Klassifikation von Evaluationsmethoden: analytisch vs. empirische bzw. deskriptiv vs. präskriptive Evaluationsmethoden Formen der Evaluation: summative und formative Evaluation Vereinbarung von Evaluationskriterien Entwicklung nutzerorientierter Anwendungen, Seite 27

28 Usability-Aspekte Struktur (Layout, Design) planen und festlegen Dazu gehört auch Elemente präzise zu identifizieren Elemente sinnvoll zu benennen ( Sprache der Nutzer sprechen ) Skizzen (und Entwürfe) zu erstellen und schrittweise (zunächst abstrakt dann konkret) zu verfeinern Die Anforderungen orientieren sich an den Aufgaben Welche Aufgaben möchte der Benutzer lösen? Aufgaben und Bedürfnissen der unterschiedlichen Benutzergruppen sind unterschiedlich Welche unterschiedlichen Benutzergruppen gibt es? Entwicklung nutzerorientierter Anwendungen, Seite 28

29 Ziele (1/2) Einheitliches Look-and-Feel (Konsistenz) Innerhalb einer Applikation und applikationsübergreifend Benutzerführung gemäß Regeln Motto: Fehlervermeidung statt Fehlerbehebung Trennung von Anwendung und graphischer Benutzungsoberfläche einfache Anpassung von Text und Schrift; relative Positionierung ist zusätzlich sehr hilfreich: Methode Componente C1 links von C2; C3 oberhalb von C4 Dialog(schritt)e bilden Zustände ab Screens werden in separaten Ressource-Dateien (in XML) beschrieben Entwicklung nutzerorientierter Anwendungen, Seite 29

30 Ziele (2/2) Aufgabenangemessene Präsentation und Interaktion Direkte Manipulation Benutzerunterstützung beim Gestalten und Steuern, Erstellen und Modifizieren, Inspizieren (surfen) und Prüfen, Navigation(sunterstützung) in komplexen Situationen Beherrschung der Komplexität und Menge durch Informationsaufbereitung: selbsterklärend, kontextbezogene Hilfe Realitätsnähe Abstraktion Auch auf mobilen Endgeräten und unter deren speziellen Einsatzbedingungen (unterwegs, draußen, bei widrigen Lichtverhältnissen, ) Joy of Use: begeistern, stimulieren, motivieren, überzeugen, fesseln,... (Tipp: Schauen Sie unter youtube piano stairs Entwicklung nutzerorientierter Anwendungen, Seite 30

31 Emotional Usability: Joy of Use Merkmale die Software unterstützt den Benutzer unauffällig bzw. weckt dessen Interesse, indem es interessante Funktionen als zu lösende Aufgaben präsentiert und Neugier weckt sowie Anreiz zum eigenständigen Lernen gibt die Aufgabenstellung wird in eine Geschichte integriert -die Bearbeitung einer Teilaufgabe ist ein Schritt in einer größeren Aufgabenstellung - die Glaubwürdigkeit in der Arbeitswelt wird durch Konsistenz und Aufmerksamkeit für Details gesichert ( Erwartungskonformität) Quelle: Marc Hassenzahl: Attraktive Software Was Gestalter von Computerspielen lernen können; In: J Machate&M.Burmester: User Interface Tuning; Benutzerschnittstellen menschlich gestalten; Software & Support Verlag 2003 Entwicklung nutzerorientierter Anwendungen, Seite 31

32 1. Vollständiges Beispiel: BMI APP Entwicklung nutzerorientierter Anwendungen, Seite 32

33 Aufgabenstellung: BMI-App Der BMI bezieht die Körpermasseauf das Quadrat der Körpergröße. Der BMI ist lediglich ein grober Richtwert, da er weder Statur und Geschlecht noch die individuelle Zusammensetzung der Körpermasseaus Fett-und Muskelgewebe eines Menschen berücksichtigt. Der Body Mass Index (BMI) bewertet einfach das Körpergewicht. Die (vereinfachte) Formel zu Berechnung des BMI lautet BMI = Masse in kg / (Größe in Meter) 2 Dabei bedeutet ein BMI zwischen 18,50 und 24,99 Idealgewicht; Werte unter 18,50 bedeuten Untergewicht und ein Wert von 25,00 oder mehr weist auf Übergewicht hin. Ein BMI Rechner soll als App realisiert werden. Entwicklung nutzerorientierter Anwendungen, Seite 33

34 Vorbereitung der BMI-App Funktional ist (zunächst) die Formel umsetzen (minimaler Aufwand) Zur Erfassung von Größe und Gewicht und zur Darstellung des BMI wird ein User Interface benötigt zumindest die Eingaben sollten auf Plausibilität überprüft werden! Eine Strukturierung des Ablaufs/Workflows in mehrere Screens/Schritte ist hier offensichtlich nicht erforderlich (weitere) Systemressourcen werden nicht benötigt Entwicklung nutzerorientierter Anwendungen, Seite 34

35 Entwicklungsschritte Erster Entwurf Konkretisierung Umsetzung und Tests - grob und abstrakt - - mit Controls/Views - - funktional und bzgl. Usability (i.d.r. erfolgen Verbesserungen) Entwicklung nutzerorientierter Anwendungen, Seite 35

36 Umsetzung der BMI-App benötigt werden eine Layoutbeschreibung (Ressource), eine Activity unter Android, die die Anwendungslogik umsetzt und ein Manifest, in welchem Berechtigungen, Icons und weitere Spezifika weitere Activities und Services benannt werden Entwicklung nutzerorientierter Anwendungen, Seite 36

37 src/com.example.bmiapp/mainactivity.java public class MainActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Layoutressource setcontentview(r.layout.activity_main); Button button; button = (Button) findviewbyid(r.id.bmi); button.setonclicklistener(new OnClickListener() { public void onclick(view view) { float masse; float groesse; Verbindung zum Button Eventhandling EditText etgroesse = (EditText) findviewbyid(r.id.groesse); EditText etmasse = (EditText) findviewbyid(r.id.masse); Entwicklung nutzerorientierter Anwendungen, Seite 37

38 src/com.example.bmiapp/mainactivity.java } } Editable e = etmasse.gettext(); masse = Float.valueOf(e.toString()); e = etgroesse.gettext(); groesse = Float.valueOf(e.toString()); float bmi = masse / (groesse * groesse); EditText result = (EditText) findviewbyid(r.id.result); result.settext(string.valueof(bmi)); public boolean oncreateoptionsmenu(menu menu) { } } getmenuinflater().inflate(r.menu.activity_main, menu); return true; macht gglfs. die Menu- Einträge verfügbar Entwicklung nutzerorientierter Anwendungen, Seite 38

39 Entwicklung nutzerorientierter Anwendungen, Seite 39

40 res/layout/activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centervertical="true" android:text="groesse" Wesentliche Merkmale derviews und das Layout der Activity wird hier festgelegt Hinweis, dass der Benutzer die Größe eingeben soll android:textappearance="?android:attr/textappearancemedium" /> Entwicklung nutzerorientierter Anwendungen, Seite 40

41 res/layout/activity_main.xml <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:ems="10" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="26dp" android:layout_margintop="50dp" android:text="masse" Eingabefeld für die Größe Hinweis, dass der Benutzer die Masse eingeben soll android:textappearance="?android:attr/textappearancemedium" /> Entwicklung nutzerorientierter Anwendungen, Seite 41

42 res/layout/activity_main.xml <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_margintop="33dp" android:ems="10" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentbottom="true" android:layout_alignparentleft="true" android:layout_marginbottom="58dp" android:ems="10" /> Eingabefeld für die Masse Ergebnisfeld Entwicklung nutzerorientierter Anwendungen, Seite 42

43 res/layout/activity_main.xml <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:text="bmi" /> Anklicken des Buttons soll bewirken, dassdie Formel ausgeführt wird </RelativeLayout> Entwicklung nutzerorientierter Anwendungen, Seite 43

44 Entwicklung nutzerorientierter Anwendungen, Seite 44

45 bin/res/androidmanifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.bmiapp" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion = "14" android:targetsdkversion = "17" /> Entwicklung nutzerorientierter Anwendungen, Seite 45

46 bin/res/androidmanifest.xml <application android:allowbackup="true" > <activity android:name=".mainactivity" > <intent-filter> Mitdieser Activity wirddie App gestartet <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> Angabe weiterer Activities und der Berechtigungen Entwicklung nutzerorientierter Anwendungen, Seite 46

47 Bewertung der BMIApp App ist erster rudimentärer Ansatz App kann nicht mit fehlerhaften Eingaben umgehen! (kritisch!) Aufbereitung und -auch grafische -Interpretation des Ergebnisses wäre wünschenswert (so nicht sehr benutzerfreundlich) Aufzeigen von Trends (gegenüber der letzten Berechnung) wär wertvoll Entwicklung nutzerorientierter Anwendungen, Seite 47

48 Dialogstruktur, Navigationsübersicht, Diagramme DIALOG(SCHRITT)E Entwicklung nutzerorientierter Anwendungen, Seite 48

49 Mensch-Maschine-Schnittstelle - Graphische Benutzungsoberfläche Präsentation, Visualisierung kreativ, intuitiv Interaktion monoton, schnell Beobachten, Bedienen

50 Kommunikation und Mobiliät Kommunikation (der Austausch mit anderen) Mobilität (unterwegs und Information über die Umgebung) geschützt, vertraut, sicher, komfortabel Entwicklung nutzerorientierter Anwendungen, Seite 50

51 Ein kleines Beispiel Überlegen Sie, wie ein Anwender den Dialog mit einem Geldautomaten wahrnimmt und auch beschreibt Zugangsberechtigung kontrollieren (EC-Karte und Ihre 4stellige Geheimnummer) Betrag angeben Betrag ausgeben Automat wieder in den Ausgangszustand versetzen Entwicklung nutzerorientierter Anwendungen, Seite 51

52 siehe auch SWT-Skript Notation des Sequenzdiagramms Objekt Methodenausführung Lebenslinie Meth.aufrufen Bedingung Ablauf objektorientiert beschrieben Objekt erzeugen Objekt zerstören eigene Methode aufrufen Entwicklung nutzerorientierter Anwendungen, Seite 52

53 Sequenzdiagramm "Geld holen" E! " $% +,,! '! E ' E '!! &!'! $!!./ 0% &' ()* +,-!' 111 Entwicklung nutzerorientierter Anwendungen, Seite 53

54 Sequenzdiagramm "Geld abheben" Geld holen Ich: CBenutzer EC-Karte einlesen Use Case wählen PIN-Nummer einlesen Betrag einlesen EC-Karte ausgeben EC-Karte entnehmen VolksbankAutomat1: CGeldautomat Geld ausgeben in diese Richtung kann man das innere Verhalten weiter modellieren Screens= Zustände Ruhestellung Hauptmenü PIN-Dialog... Geld entnehmen Entwicklung nutzerorientierter Anwendungen, Seite 54

55 Geldautomat als "Assistent (üblich) "Assistenten" serialisieren die Abfrage mehrerer Eingabewerte vom Benutzer Vereinfachung: Benutzer muss zu einem Zeitpunkt nur über eine Frage nachdenken sinnvoll für selten benutzte Anwendungsfälle oder für unerfahrene Benutzer langsam und schwerfällig für Profis zum Vergleich der bekannte Geldautomat nicht als Assistent: Entwicklung nutzerorientierter Anwendungen, Seite 55

56 Szenario "Kontostand abfragen" Benutzer führt EC-Karte ein wählt "Kontostand abfragen" gibt PIN-Nummer ein nimmt EC-Karte Automat bietet Hauptmenü an erfragt PIN-Nummer gibt EC-Karte heraus zeigt Kontostand an geht in Ruhestellung Entwicklung nutzerorientierter Anwendungen, Seite 56

57 Szenario "Geld holen" Sicht des Kunden Benutzer Automat führt EC-Karte ein wählt "Auszahlung" gibt PIN-Nummer ein gibt Betrag ein nimmt EC-Karte nimmt Geld Sicht der Bank bietet Hauptmenü an erfragt PIN-Nummer erfragt Betrag gibt EC-Karte heraus gibt Geld heraus geht in Ruhestellung Entwicklung nutzerorientierter Anwendungen, Seite 57

58 Geldautomat: Use Case Diagramm Use Cases entsprechen oft der obersten Menüebene Geldautomat Kontostand abfragen Geldvorrat prüfen Geld Geld holen nachfüllen Kunde Schecks bestellen eingezogene Scheckkarten entnehmen Mitarbeiter eine Benutzergruppe sieht oft nicht die Funktionen der anderen Entwicklung nutzerorientierter Anwendungen, Seite 58

59 Sequenzdiagramme -Notation stellen Objekte und deren Interaktion dar Interaktion: eine Methode ruft eine andere Methode auf Zeitachse von oben nach unten Lebensdauer des Objekts durch "Lebenslinie" dargestellt vgl. Flussdiagramm / Programmablaufplan ältere Diagrammtypen, die nicht objektorientiert sind Entwicklung nutzerorientierter Anwendungen, Seite 59

60 Sequenzdiagramme -Bewertung Diagramme für GUI-Entwurf in UML nur beschränkt geeignet: UML konzentriert sich auf die Architektur von SW-Systemen vernachlässigt den visuellen Aspekt ein GUI wird zwar mit Klassen realisiert, anhand eines Klassen-oder Kollaborationsdiagramms kann man sich aber kein Bild von Aussehen und Benutzung machen! Vorschlag: Screen-Diagramme im Grunde abgewandelte Zustandsdiagramme Entwicklung nutzerorientierter Anwendungen, Seite 60

61 abstrakt und konkret Beispiel: Lehrangebote ansehen abstrakte Elementliste (Stichwortliste, Halbsätze) Sortierung wählen: Semester, Dozent, Import/Export konkretes Layout (konkrete Anordnung, Festlegung auf Componenten) Fachbereich wählen Vorschau Drucken Ausgabe in Datei Schließen Entwicklung nutzerorientierter Anwendungen, Seite 61

62 Verbindung zum Sequenzdiagramm LvPlanungView: CLvPlanungAusgDlg LvPlanungModel: CLvPlanungAusg OnSortClick OnFbChange SetSort(Sort) SetFb(Fb) OnDiskClick OnPrintClick Output(P) OnPreviewClick OnExitClick Entwicklung nutzerorientierter Anwendungen, Seite 62

63 Komplexität beherrschen Diagramme beanspruchen viel Platz Problem beim Zeichnen Problem beim Verstehen gilt für alle, nicht nur für Zustandsdiagramme sinnvolle Zerlegung in Teildiagramme ist wichtig insbesondere auch hierarchische Gliederung Abstraktion nicht einfach orientiert an der Papiergröße zerschneiden aussagekräftige Bezeichnung für jedes Teildiagramm analog zu sinnvollen Klassen- und Funktionsnamen Entwicklung nutzerorientierter Anwendungen, Seite 63

64 siehe auch OOAD-Skript! Zustandsdiagramme: Idee und Notation ein Objekt kann im Lauf der Zeit verschiedene Zustände annehmen Haben einen Anfang und ein Ende Zustandswechsel werden durch Ereignisse ausgelöst unterschiedliche Folgezustände sind möglich abhängig von Bedingungen (Verzweigungen im Diagramm) Aktionen können ausgeführt werden beim Übergang in den Folgezustand (notiert mit Ereignis/Aktion) während des Verweilens in einem Zustand (notiert mit do/...) Objekt wird erzeugt durchläuft mehrere Zustände und wird vernichtet Zustand do/aktion Ereignis[Bedingung]/Aktion Entwicklung nutzerorientierter Anwendungen, Seite 64

65 Beispiele: Tür und Lampe Tür Lampe offen aus Schließen( rumms ) Öffnen Einschalten Ausschalten Übergangsaktion geschlossen an do/leuchten Zustandsaktion Entwicklung nutzerorientierter Anwendungen, Seite 65

66 Implementierung Zustand: Kombination von Attributwerten des Objekts Ereignis: empfangene Nachricht / Handler-Aufruf Bedingung: wird im Handler ausgewertet Zustandsübergang: Funktionskörper eines Handlers Übergangsaktion: Methodenaufruf für anderes Objekt Zustandsaktion: Methodenaufruf (in separatem Thread) speziell bei GUIs: Screens / Dialoge sind Zustände des Objekts "Bedienoberfläche" Hauptfenster hat Zeiger auf untergeordnete Fenster als Attribute objektorientiert + ereignisorientiert Entwicklung nutzerorientierter Anwendungen, Seite 66

67 Diagramme für wen? Diagramme aus der Softwaretechnik sind nichtgeeignet, um mit Auftraggebern zu kommunizieren selbst konkrete Screen-Diagramme nicht! allenfalls, wenn die Auftraggeber selbst Informatiker sind zur Kommunikation mit Auftraggebern und Benutzern braucht man Prototypen visuell und funktional konkret, nicht erklärungsbedürftig Diagramme helfen dem Entwickler beim Entwurf, dem Wartungsprogrammierer zum Verständnis Entwicklung nutzerorientierter Anwendungen, Seite 67

68 Manifest und Prinzipien der agilen Softwareentwicklung (kurzer Exkurs)... Durch die[se] Arbeit haben wir Folgendes schätzen gelernt: Individuen und Interaktionen mehr als Prozesse und Tools Funktionierende Software mehr als umfassende Dokumentation Zusammenarbeit mit Kunden mehr als Vertragsverhandlungen Reaktion auf Änderungen mehr als einen Plan zu befolgen... We follow these principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. und Entwicklung nutzerorientierter Anwendungen, Seite 68

69 Einschub: Modelle eines Systems Modelle sind vereinfachte Darstellungen einer Wirklichkeit siehe Atommodelle in der Chemie kein Modell entspricht der Realität" a) mentales Modell hoffentlich identisch Sicht des Benutzers; an der Anwendung orientiert b) augenscheinliches Modell wie sich das System nach außen darstellt c) Implementierungsmodell Sicht des Entwicklers; technologisch orientiert Entwicklung nutzerorientierter Anwendungen, Seite 69

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Praktikum 1: Einführung, BMI Rechner

Praktikum 1: Einführung, BMI Rechner Praktikum 1: Einführung, BMI Rechner Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses Semester können Sie wieder NetBeans verwenden. Sie sollten Java auch schon installiert haben.

Mehr

Allgemeine Informatik II SS :30-13:30 Uhr

Allgemeine Informatik II SS :30-13:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten

Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten 1 Einführung... 1 1.1 Was wird vermittelt?... 1 1.2 Hinweise zum Buch... 3 1.3 Hinweise zur Buch-CD... 4 1.4 Hinweise zum Forum... 4 1.5 Allgemeine Hinweise... 5 2 Die Software JGIS... 7 2.1 Start des

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Eclipse Tutorial.doc

Eclipse Tutorial.doc Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik Eclipse Tutorial 2005, HTI Burgdorf R. Weber Dateiname: Eclipse

Mehr

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 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

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 4: Klassen und Unterklassen Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem

Mehr

JAVA für Nichtinformatiker - Probeklausur -

JAVA für Nichtinformatiker - Probeklausur - JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils

Mehr

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

Institut für Informatik und Angewandte Kognitionswissenschaften

Institut für Informatik und Angewandte Kognitionswissenschaften Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");

Mehr

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18 C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Probe-Klausur Software Engineering Fachbereich BW, für WINFO

Probe-Klausur Software Engineering Fachbereich BW, für WINFO Probe-Klausur Software Engineering Fachbereich BW, für WINFO Dipl.-Ing. Klaus Knopper 17.04.2007 Hinweis: Bitte schreiben Sie auf das Deckblatt und auf jede Seite Ihren Namen und Ihre Matrikelnummer, bevor

Mehr

Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java

Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Standardisierung durch die ECMA und ISO Short Introduction to C# C# (C

Mehr

Klausur Fachprüfung Wirtschaftsinformatik. Name:

Klausur Fachprüfung Wirtschaftsinformatik. Name: Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden Datum: 02.10.2003 Name: Punkte True-or-False: von 15 Punkte Multiple Choice: von 15 Punkte Quickies: von 30 Punkte Shorties: von 20 Punkte Longies:

Mehr

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 Rekursion: Beispiele Bier trinken 8-Damen-Problem ipod Shuffle für alle Mitarbeiter Karten

Mehr

Stack stack = new Stack(); stack.push ("Würstchen"); string s = (string) stack.pop(); Console.WriteLine (s);

Stack stack = new Stack(); stack.push (Würstchen); string s = (string) stack.pop(); Console.WriteLine (s); D3kjd3Di38lk323nnm Der Typ object object (System.Object) ist die Ausgangsbasisklasse für alle Typen. Jeder Typ kann per Upcast in ein object umgewandelt werden. Um zu zeigen, wie das nützlich sein kann,

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1 Java: Der Einstieg Algorithmen und Datenstrukturen II 1 Grundlegendes zu Java: Historisches 1990-1991: Entwicklung der Programmiersprache OAK durch James Gosling von Sun Microsystems (zunächst für Toaster,

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2012 1 / 19 Rückblick Themen Erste GUI-Anwendung Praktikum 2 / 19 Inhalt von Teil 1 Algorithmen Elementare Datentypen Operatoren Bedingte

Mehr

Grundlagen von C# - 1

Grundlagen von C# - 1 Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften

Mehr

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel Einführung Servlets JEE Vorlesung Teil 2 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Wiederholung Hello World Blick in die Details Servlet Programmierung Potentielle Fehler Lernziele Gruppenübung 2

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE38-Generics (Stand 28.09.2012) Aufgabe 1: Schauen Sie sich die generischen Klassen des Paketes java.util an. Aufgabe 2: Ausgangslage sind die folgenden

Mehr

Einführung in Android (2) 16. Dezember 2014

Einführung in Android (2) 16. Dezember 2014 Einführung in Android (2) 16. Dezember 2014 Überblick Entwicklung der Benutzeroberfläche Views Layouts Menüs Listen und Adapter Einbinden weiterer Ressourcen Aktivierung von Activities Entwicklungsrichtlinien

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Institut für Programmierung und Reaktive Systeme 19. August Programmier-Labor. 1. Übungsblatt

Institut für Programmierung und Reaktive Systeme 19. August Programmier-Labor. 1. Übungsblatt echnische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 19. August 2014 Aufgabe 1: Programmier-Labor 1. Übungsblatt a) Welche primitiven Datentypen kennt

Mehr

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java. Universität Osnabrück 1 Grundlagen der Fehlerbehandlung 3 - Objektorientierte Programmierung in Java Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Wenn

Mehr

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland. C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von

Mehr

Einführung in die Programmierung mit VBA

Einfü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

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 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,

Mehr

Techniken der Projektentwicklungen

Techniken der Projektentwicklungen Dynamische Modellierung 8. Termin Rückblick auf statische Modellierung Dynamische Modellierung Basiskonzepte Beispiel Erweiterungen Eigenschaften Syntax Rückblick auf statische Modellierung Dynamische

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlü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

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

Eine Kommando-Oberfläche für.net

Eine Kommando-Oberfläche für.net Institut für Systemsoftware O.Univ.-Prof. Dr. Hanspeter Mössenböck Eine Kommando-Oberfläche für.net In.NET (wie auch in vielen anderen Systemen) haben Programme nur einen einzigen Eintrittspunkt (ihre

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Ausdrucksbäume in verschiedenen Darstellungen

Ausdrucksbäume in verschiedenen Darstellungen Ausdrucksbäume in verschiedenen Darstellungen SWE-42 Infix mit notwendigen Klammern: (a + b) / (c - d) Infix vollständig geklammert: (((a) + (b)) / ((c) - (d))) Postfix a b + c d - / Präfix / + a b - c

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

Mehr

Wiederholung. Jedes Objekt hat seinen eigenen Zustand/seine eigenen Variablen (gilt auch für mehrere Objekte, die zur gleichen Klasse gehören).

Wiederholung. Jedes Objekt hat seinen eigenen Zustand/seine eigenen Variablen (gilt auch für mehrere Objekte, die zur gleichen Klasse gehören). Wiederholung Klassen, Objekte, Nachrichten, Methoden: Jedes Objekt ist Exemplar (Instanz) einer Klasse. Diese Klasse definiert das Verhalten des Objektes. Gewöhnlich haben Klassen mehrere Exemplare. Jedes

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Scala: Klassen, Methoden und Objekte. von Simon Lerch

Scala: Klassen, Methoden und Objekte. von Simon Lerch Scala: Klassen, Methoden und Objekte von Simon Lerch Überblick Methoden Klassen Objekte Basis Typen Prefixes Java's == vs. Scala's == Assoziativität von Operatoren Rich Wrapper 30.03.10 Klassen, Methoden

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

1 Fehler-Objekte: Werfen, Fangen, Behandeln

1 Fehler-Objekte: Werfen, Fangen, Behandeln 1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable

Mehr

Die einfachsten Anweisungen

Die einfachsten Anweisungen 2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser

Mehr

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore. Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung

Mehr

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++ Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.

Mehr

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuÿ, Henning Timm Übungsblatt 2

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Schleifen und Arrays Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 06.10.2016 Technische Universität Braunschweig, IPS Überblick Kommentare Typen Kontrollstrukturen Arrays 06.10.2016 Dr. Werner

Mehr

Programmierkurs. Manfred Jackel

Programmierkurs. Manfred Jackel Java für Anfänger Teil 1: Intro Programmierkurs 12.-16.10.2009 10 2009 Manfred Jackel 1 1. Handwerkszeug Notwendige Software Java Runtime Environment JRE 6 von http://java.sun.com/javase/downloads/index.js

Mehr

Übungen zu Programmieren 3 (C++) (4-1)

Übungen zu Programmieren 3 (C++) (4-1) BEREICH DATENTECHNIK U CQ 034 01 TH 02 Übungen zu Programmieren 3 (C++) (4-1) Allgemeines Ziel dieser Praktikumsaufgabe ist die Realisierung eines einfachen Telefonbuch-Verwaltungsprogramms mit dem Namen

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.

Mehr

Klassen und Objekte. Objekte einer Klasse bilden

Klassen und Objekte. Objekte einer Klasse bilden Klassen und Objekte SWE-18 Eine Klasse definiert gleichartige Objekte mit ihren Datenelementen (Variable, fields) und Operationen (Methoden) in einer geschlossenen Programmstruktur. Beispiel: class Circles

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Java Reflection. Andreas Lochbihler. 15. Mai Lehrstuhl Programmierparadigmen Universität Karlsruhe

Java Reflection. Andreas Lochbihler. 15. Mai Lehrstuhl Programmierparadigmen Universität Karlsruhe Java Reflection Andreas Lochbihler Lehrstuhl Programmierparadigmen Universität Karlsruhe 15. Mai 2008 Was ist Reflection? Ein Paket (package) von Interfaces und Klassen, die dem Programm zur Laufzeit Zugriff

Mehr

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9 Java Einführung Objekt-Datentypen und Strings Kapitel 8 und 9 Inhalt Was sind Objekt-Datentypen Sonderheiten bei Zuweisung und Vergleich Zeichenketten (Strings) Zeichencodes Char, Char-Arrays und Strings

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015 Systematisches Testen der Funktionalität von Softwaresystemen 17. Juni 2015 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von

Mehr

Entwurfsmuster und Frameworks Singleton

Entwurfsmuster und Frameworks Singleton Entwurfsmuster und Frameworks Singleton Oliver Haase Oliver Haase Emfra Singleton 1/20 Beschreibung I Klassifikation: objektbasiertes Erzeugungsmuster Zweck: sicherstellen, dass eine Klasse nur genau einmal

Mehr