Nathan Burgener. Design by Contract. Modul SWE

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Nathan Burgener. Design by Contract. Modul SWE"

Transkript

1 NathanBurgener DesignbyContract ModulSWE

2 NathanBurgener Inhaltsverzeichnis 1 WasistDesignbyContract Überblick DesignbyContractmitMethoden DesignbyContractmitKlassen Vererbung...6 DesignbyContractinJava Überblick Assertions Funktionsweise AssertionsundDesignbyContract icontract Einführung Preconditions Postconditions Invarianten Vererbung Ausnahmebehandlung BeispielefürbereitsbestehendeMethoden ZertifizierungsstellefürKomponenten... 13

3 NathanBurgener 1 WasistDesignbyContract 1.1 Überblick DesignbyContractisteinKonzeptausderSoftwaretechnikvonBertrand Meyer.DabeisolldieQualitätvonProgrammmodulenverbessertwerden, indemformaleverträgegeneriertwerden. BeiDesignbyContractsollfürjedeMethodeeineArtVertragerstellt werden,welcherdannvomaufruferaberauchvondermethodeselber eingehaltenwerdenmuss. DieVerträgeexistiereninzweiArten.AlsKlasseninvariantenundalsVor undnachbedingungenfürfunktionendieserklassen.dadasverfassen einesvertragesfür grosse Funktionenschwierigwird,istdavon auszugehen,dassfunktionenvondenmeistenprogrammierernaufein Minimumherabgebrochenwerden.DasdürfteeinPlusanSicherheitund LesbarkeitdesgesamtenCodesmitsichbringen. DereigentlicheSinnvonDesignbyContractbestehtnundarin, genaudiesezusicherungenzurlaufzeitauszuwerten.dasheisst,dassdas ProgrammvorundnachjedemMethodenaufrufkontrolliertobder SystemzustandimmernochderSpezifikationentspricht. DurchdasHinzufügenvonsolchenIntegritätsbedingungenistderCode austauschbarer,besserlesbar,einfacherzusammenführbarundsomit langfristigstabiler,zuverlässigerundpreiswerter. DieVorteilebeimVerwendenvonDesignbyContractliegenaufderHand. HilfebeimSchreibenkorrekterSoftware UmdieReliabilityderSoftwarezuverbessernsollteman Schnittstellensehrgenaudefinieren.DesignbyContractzwingtden SoftwareEngineerdiesschonfrühimDesignProzesszutun. Fehlerwerdensofrühererkennt.DerProgrammiererwirdangeregt sehrgenauüberseinencodenachzudenken.sobemerkterauch früherdiefehlerimprogrammundkannreagierenunderhöhtso auchdiewahrscheinlichkeit,dassdasprogrammdenanforderungen späterauchgerechtwird. HilfebeiderDokumentation DurchdieAngabederPre undpostconditionsistschoneinteilder Dokumentationerledigt.DieMethodeistsosauberdokumentiertund esistschönersichtlich,wasfürvorbedingungengeltenmüssenund

4 NathanBurgener wasdiemethodezurückgibt. HilfebeimTesten,DebuggenundbeiderQualitätssicherung DurchdasgenerierenderVerträgewerdenbereitsauchAnsätzefür dastestenerstellt.fürjedenvertragkannaucheintestgeschrieben werden. HilfebeimErstellenvoneffektivenAusnahmebehandlungen BasierendaufdemVertragkönnendieAusnahmebehandlungen direktdefiniertwerden. 1.2 DesignbyContractmitMethoden FüreineMethodewirdbeiDesignbyContracteinVertragerstellt,welcher beschreibt,aufwelcheartundweiseaufdiemethodezugegriffenwird. EbenfallswerdendieAuswirkungenderMethodeaufden Programmzustandfestgelegt. UmdieSoftwarezuspezifizierenundAussagenüberihreKorrektheitzu machenwirddashoare Tripleverwendet.DasHoare Triplebestehtaus3 Elementen:VorbedingungP,NachbedingungQundCodesegmentS.Das CodesegmententsprichtdabeigenaueinerMethodedesProgramms. DasHoare Tripelsagtaus,dasswenndieMethodeSaufgerufenwird, währendpgilt,sowirdnachausführungdermethodeqgelten.dieskann folgendermassengeschriebenwerden. {P}S{Q} AlsBeispieldafürsolleineDivisionsmethodedoDivisionangeschaut werden.diesemethodeerhältalsübergabeparameterdendivisord. dodivision(intd) { globalresult=globaldivident/d; } Esistklarersichtlich,dassderDivisornicht0seindarf.Weiterwird erwartet,dassderdivisornichtnegativist. AlsProgrammiererderMethodekannmanjetztmitif thenanweisungen mühsamdieseüberprüfungenmachen.dochmanweissnicht,wiedem Benutzerklarzumachen,dassseineEingabenichtkorrektwar.InJava geschiehtdiesnormalerweisemitboolschenrückgabeparameternoderes wirdeineexceptionausgelöst. UmdiesesProblemmitHilfevonDesignbyContractzulösen,wirdnunein Vertragformuliert,derdenAufruferverpflichtetdieMethodekorrektzu verwenden.alsbelohungerhälterdafürdiegarantie,dassdasresultat

5 NathanBurgener korrektberechnetwird.wiebereitsgenanntwirddieservertragmithilfe deshoare Tripelsformuliert: {d>0}dodivision{globalresult=globaldivident/d} Wasgeschiehtaberjetzt,wenneinVertragverletztwurde?Diemeisten ProgrammiersprachenwerfendanneineException.Soistschnell ersichtlich,woimprogrammsichderfehlerbefindet.wirdeine Vorbedingungverletzt,soistderAufruferseinePflichteinengültigen ProgrammzustandherzustellennichtnachgekommenunddasProgramm kanndembenutzerdiesmitteilen,damiterdieeingabekorrigiert.ist hingegeneinenachbedingungverletztworden,scheintder ProgrammiererderjeweiligenMethodeseineArbeitnichtsorgfältig erledigtzuhaben. 1.3 DesignbyContractmitKlassen DieVor undnachbedingungengebenan,wasbeidenaufrufparameter unddemrückgabewertdermethodeerwartetwird.zusätzlichkannman jetztnochintegritätsbedingungenfestlegen.diesogenannten Klasseninvarianten. KlasseninvariantensindBedingungen,diefürdiegesamteKlasseundnicht nurfüreinzelnemethodengeltensollen.siewerdenbeijedem MethodenaufrufzuBeginnundanseinemEndegeprüft. DieKlasseninvariantebeschreibtdengültigenZustandeinesObjektes dieserklasse.alsgültigenzustandmeintmanhier,dassdasobjektvon aussensinnvollverwendetwerdendarf.klasseninvariantendürfen währenddernutzungeinerklassenichtverletztwerden.einzige AusnahmedavonistderZeitraumderAusführungeinerMethodeeiner Klasse.HierdarfeineKlasseninvarianteverletztwerden,wenndie Funktionsicherstellt,dassdiesenachihrerAbarbeitungwiedergilt.Als BeispielgibteshiereineWG Küche.JederdarfdieKücheverwendenund auchverschmutzen.ermussabersicherstellen,dassdieküchebeim Verlassenwiedertiptopaufgeräumtist. AlsBeispielinJavawirdeineKlasseStackgenommen.DieInvariante items darfhiernichtkleinerals0sindundauchnichtgrösseralsdie Varaiblemax. publicclassstack{ privateintitems;//anzahlderelemente /**invariantitems>=0;items<=max**/ publicvoidremoveitem(){

6 NathanBurgener //Elementlöschen } 1.4 Vererbung WirdeineUnterklasseerzeugt,welchevonderElternklasseerbt,so werdenauchdiezusicherungenvererbt.dabeigeltendiefolgenden Regeln: FürdieInvariantegiltdasgleichewiefürdieNachbedingung DieinderElternklassegeltendeInvariantebleibtbestehenundwird mitderinvariantederunterklasseweiterverschärft. FürdieVorbedingungeinerMethode DieVorbedingungkannschwächerwerden,daein oder mit VorbedingungderElternklasseundderneuenVorbedingunggemacht wird. FürdieNachbedingungeinerMethode DieVorbedingungkannstärkerwerden,daein und mit VorbedingungderElternklasseundderneuenVorbedingunggemacht wird.

7 NathanBurgener DesignbyContractinJava 1.5 Überblick InJavawurdenwährenddenJahrendiverseToolsfürdieImplementation vondesignbycontractentwickelt.sogibtesbeispielsweiseicontract, ContractJ,Jassundweitere.EinigeToolsarbeitenauchmitdenAssertions vonjava. VieleToolswurdenjedochindenletztenJahrennichtmehrweiter entwickeltundesgibtauchfürkeinesdertollseinpluginfürnetbeans. Ersichtlichistauchnoch,dassdieneuerenToolsfastallemit Aspektorientierter Programmierung arbeiten. 1.6 Assertions Funktionsweise InJava1.4wurdenAssertionsalsneuesKonzeptzurJava Sprachunterstütungeingeführt.DasAssertionsStatementüberprüft gewissebedingungenundwirdentwedertrueoderfalse.wird beispielsweisedieprüfungeinerinputvariablevergessen,sokannesunter Umständenpassieren,dassdasProgrammvorerstweiterläuft,dannaber aneinemspäterenpunktzurruntimeabstürzt.umdieszuverhindern kannmanmiteinemassertstatementfrüheinegewünschtebedingung prüfen. HiereinBeispielfüreinesolcheÜberprüfung: publicvoiddodivision(intd) { assert(d>0); //WeiterführenderCode } ResultierteinfalseausderAssertion,sobrichtdasProgrammmiteinem java.lang.assertionerrorab. AssertionswerdeninersterLiniezurfrühenFehlererkennungverwendet. DerVorteilgegenüberdenif AnweisungenistdieMöglichkeit,Assertions zudeaktivieren.beideaktiviertenassertionswerdendieassert AnweisungennichtausgewertetundesentstehtkeineEffizienzeinbusse. AssertionErrorshabenetwadiegleicheBedeutungwie RuntimeExceptions.Esistwichtigzuunterscheidenzwischenden uncheckedassertionerrorsbzw.runtimeexceptionsunddenchecked

8 NathanBurgener Exceptions,diedeklariertundbehandeltwerdenmüssen.EinVorteilvon ExceptionsgegenüberAssertionsistdieMöglichkeit,einException HandlingzudefinierenfürabnormaleFälle,vondenenmanweiss,dasssie eintretenundbehandeltwerdenkönnen AssertionsundDesignbyContract WieinderBeschreibungderAssertionsersichtlichist,werdenVor und NachbedingungensowieKlasseninvariantennichtunterstützt.Assertions kannalsonichtwirklichfürdesignbycontractverwendetwerden. AssertionshabenimmerdiegleicheSemantik.DieInformationobessich umpre oderpostconditionshandelt,lässtsichnuranhanddes zugehörigenkommentarserkennenundsinddeshalbwenigerformell. WeitersindAssertionsnichtfreivonSeiteneffekten.Dadurchkönnensich Fehlereinschleichen,dieohnesienichtmöglichgewesenwärenunddie schweraufzufindensind.assertionslassensichnichtvererben.somit mussinderunterklasseauchallesnocheinmalimplementiertwerden, waseineduplizierungvoncodebedeutet. 1.7 icontract Einführung DieImplementierungderZusicherungeninJavaerfolgtindenInterfaces derklassen.siestehenjeweilsalskommentarevorundnachdermethode, sodasssienichtmitdemrestdesquellcodesvermischtwerden.esgibt alsoeinweiteresfile,indemalleverträgedefiniertsind. DieZusicherungenwirmittelsfolgendenAbkürzungenrealisiert: icontractisteinpräprozessorfürjava.umdiesestoolzuverwendenwird dercodezuerstdurchdenicontractgelassen.diesererzeugtausden KommentaranweisungenAssertion ChecksundfügtdieseindenSource Codeein Preconditions IniContractwerdendiePreconditionsimHeaderderMethodemitder

9 NathanBurgener /** f >= 0.0 */ public float wurzel(float f) {... } In diesem Beispiel muss der Parameter f der Funktion wurzel() grösser oder gleich Null sein Postconditions Postconditions werden auch die die Preconditions im Header der jeweiligen Methode definiert. Dafür wird die verwendet. Hier ein Beiepiel dafür /** f >= 0.0 Math.abs((return * return) - f) < */ public float wurzel(float f) {... } Diese Postcondition besagt, dass die Methode die Wurzel der Zahl f berechnet und dies mit einer maximalen Abweichung von icontract verwendet einige spezielle Notationen für die Postconditions. Beispielsweise steht das return für den Rückgabewert der Methode. Es wird also zur Laufzeit durch den Rückgabewert der Methode ersetzt. In einer Postcondition muss oftmals auf einen Wert zugegriffen, der vor und nach der Ausführung der Methode nicht gleich ist. Um dies zu unterscheiden, kann in der Postcondition auf den Wert vor dem Ausführen der Methode zugegriffen werden. Hier ein Beispiel dazu:

10 NathanBurgener /** * Fügt ein Element zu einer Collection hinzu * c.size() = + 1 c.contains(o) */ public void hinzu(collection c, Object o) {... } Hier wird mit auf die Grösse der Collection vor dem Ausführen der Methode zugegriffen Invarianten Die Invarianten werden mit icontract im Header der Klasse definiert. Hier ein Beispiel dafür: /** * A PositiveInteger ist ein Integer, der garantiert positiv ist. * intvalue() > 0 */ class PositiveInteger extends Integer { //Code der Klasse } Die Invariante garantiert hier, dass der PositivsIntegers s Wert immer grösser als Null. Dieses Assertions wird immer vor und nach der Ausführung der Methoden dieser Klasse geprüft.

11 NathanBurgener Vererbung icontract unterstützt auch die Vererbung. Das heisst alle Invarianten, Preconditions und Postconditions die in der Super-Klasse definiert werden, müssen auch von der Unterklasse eingehalten werden. In den Unterklassen können natürlich noch weitere hinzugefüt werden. Das Konzept funktioniert auch mit Interfaces. Wenn es 2 Interfaces gibt, in welchen Invarianten, Preconditions und Postconditions definiert werden und eine Klasse diese beide implementiert, sind diese auch auch für die Klasse gültig Ausnahmebehandlung Das Tool icontract ermöglicht bei einer Verletzung der Zusicherung, die eine Ausnahme(Exception) wirft, diese gleich abzufangen. So muss das Programm nicht abgebrochen werden, wenn eine Ausnahme voraussehbar ist. Hier ein Beispiel dafür: /* i>= 0 #ArrayIndexOutOfBoundsException */ 1.8 BeispielefürbereitsbestehendeMethoden /** * Creates a new user for the application vorname String, which represents the users first name nachname String, which represents the users last name benutzername String, which represents the user name passwort String, which represents the password */ public void newreg(string vorname, String nachname, String benutzername, String passwort) { EntityManager em = emf.createentitymanager(); EntityTransaction utx = em.gettransaction(); NewUser nuser = new NewUser(); nuser.setvorname(vorname); nuser.setnachname(nachname); nuser.setbenutzername(benutzername);

12 NathanBurgener } nuser.setpasswort(passwort); try { utx.begin(); em.persist(nuser); utx.commit(); } catch(exception ex){ try { utx.rollback(); } catch (Exception e) {} throw new RuntimeException("Error creating entity", ex); } finally { em.close(); } PreconditionsfürdieseMethode: vornamedarfnichtnullsein nachnamedarfnichtnullsein benutzernamedarfnichtnullsein passwortdarfnichtnullsein passwortmussmehrals10zeichenbeinhalten emf.createentitymanager()darfnichtnullsein em.gettransaction()darfnichtnullsein PostconditionsfürdieseMethode: DBerhältneuesUserObject em.isopen()istfalse InvariantefürdieKlasse: DerEntityManagerFactoryemfdarfnienullsein.

13 NathanBurgener ZertifizierungsstellefürKomponenten AnderETHwurde1998miteinemProjektmitdemNamenTrusted Componentsgestartet.DasganzeverwendetdasKonzeptvonDesignby Contract.DafürmusseinedetaillierteBeschreibunggemachtwerdenund diequalitätdersoftwaregarantiertwerden.zurqualitätgehörenpunkte wiesicherheit,robustheit,korrektheit,performanceusw. DergrosseVorteilvonTrustedComponentsliegtdabeiinder Wiederverwendung.DiezertifiziertenKomponentenkönnenjetzteinfach wiederverwendetwerden.sowirdvielzeitbeimimplementierenvon neuenprogrammengespart. DasProjektwurdeabernierichtigfertiggestellt.DerGrunddafüristnicht bekannt.ichdenkeaber,dasssoetwasnursehrschwerumsetzbarist. ZuerstmüssteeinallgemeinesFrameworkdefiniertunderstelltwerden, damitallemitdemgleichenarbeitenunddannmüsstediesesframework auchvondenentwicklungsumgebungenunterstütztwerden.das schwierigeistjetztwohldiepunktesicherheit,robustheit,korrektheit, Performanceusw.auchzugarantieren.

14 NathanBurgener Quellen cooltools.html?page=4 beitung-6.pdf 007_hsr_eclipse.pdf minar_se/ss06/kandrical_design_contract.pdf ntest.pdf

! 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

Client-Server-Beziehungen

Client-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

Mehr

Hauptseminar AOSD. Design-by-Contract

Hauptseminar AOSD. Design-by-Contract Hauptseminar AOSD Seite 1 Entstehung Was ist das? Java Annotations und AOP ConceptJ Zusammenfassung Seite 2 Entstehung Entwickelt von Bertrand Meyer Heute Prof. an der ETH Zürich Erstmals in Programmiersprache

Mehr

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien 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

Embedded Software. Der C Präprozessor. Sichere objektbasierte Entwicklung dank C Präprozessor. Prof. Dr. Nikolaus Wulff

Embedded Software. Der C Präprozessor. Sichere objektbasierte Entwicklung dank C Präprozessor. Prof. Dr. Nikolaus Wulff Der C Präprozessor Sichere objektbasierte Entwicklung dank C Präprozessor Prof. Dr. Nikolaus Wulff Shapes kanonische Form Die Aufteilung in Methoden und Attribute erfolgt in zwei Structs XXX_Instance und

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Große Übung Praktische Informatik 1

Groß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,

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

SEP 114. Design by Contract

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

Mehr

Invarianten und sichere Vererbung

Invarianten und sichere Vererbung Kapitel 7 Invarianten und sichere Vererbung Idee der Vererbung: class U extends O... bedeutet: Jedes U ist auch als O verwendbar, denn es hat mindestens dieselben Members im O-Subobjekt (Typkonformanz,

Mehr

1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2

1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Organisation Unit Testing

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Assertions (Zusicherungen)

Assertions (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.

Mehr

Factory Method (Virtual Constructor)

Factory Method (Virtual Constructor) Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte

Mehr

Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba

Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Spec# Einführung Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Inhalt Einführung in C# Das Spec# System Die Konstrukte Vererben der Verträge System Architektur Einführung

Mehr

Design by Contract with JML

Design 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

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden

Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden Exceptions Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden int a; double b=10; a = 10 * b; System.out.println(a); Fehler die während der Programmausführung

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

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: 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

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

am Beispiel von JUnit

am Beispiel von JUnit Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern

Mehr

Praktisches API-Design

Praktisches API-Design Praktisches API-Design Kai Spichale adesso AG 13.07.15 Eine API ist wie die Spitze eines Eisbergs.. 2 http://www.pixelio.de/media/685029 Klassische Funktionen einer API Entkopplung von Implementierung

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Spezifikation und Test: Zusicherungen in Klassendiagrammen

Spezifikation und Test: Zusicherungen in Klassendiagrammen Spezifikation und Test: Zusicherungen in Klassendiagrammen Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele OCL, die Object Constraint Language, kennen lernen Lernen

Mehr

Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification

Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification Generische Typen in Java 1.5 - Seminarvortrag 1/26 Generische Typen in Java 1.5 Die Erweiterung der Java Language Specification Seminarvortrag von Heiko Minning, mi3795 bei Prof. Dr. Uwe Schmidt, FH-Wedel

Mehr

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println("Current Bank balance: " + b.

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println(Current Bank balance:  + b. / Testtreiberklasse, welche das Bankensystem testet. Es werden neue Bankkonten angelegt und Geld deponiert, abgehoben und transferiert. public class Main { / Main Methode fuehrt bestimmte Testfaelle aus.

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 9. Fehlerbehandlung Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java)

10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java) 10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

REST-Schnittstellen Dokumentation und Testing. Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG

REST-Schnittstellen Dokumentation und Testing. Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG REST-Schnittstellen Dokumentation und Testing Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG Inhalt Einleitung Dokumentation und Ad-Hoc-Testing Testautomation Fazit Seite 2 Softwareentwicklung

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

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

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf Teil II Objektorientierte Programmierung und objektorientierter Entwurf 39 Kapitel 8 Robuste Programme durch Ausnahmebehandlung Ziele: Lernen, robuste Programme zu schreiben Ausnahmen als Objekte verstehen

Mehr

synedra View Embedded Michael Doppler, synedra it GmbH

synedra View Embedded Michael Doppler, synedra it GmbH <m.doppler@synedra.com> synedra View Embedded Michael Doppler, synedra it GmbH 2015 synedra information technologies Zusammenfassung IndiesemDokumentwirdbeschrieben,wiesynedraViewEmbeddedinApplikationenandererHerstellerintegriertwerdenkann.

Mehr

Übung 1: Object Inspector

Übung 1: Object Inspector Übung 1: Object Inspector Es ist ein System zu entwickeln, mit dem man Objektstrukturen bezüglich ihrer Properties analysieren und dann in einem Tree Viewer (JTree) anzeigen und bearbeiten kann. Properties

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

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

Inhalt. SWP - Programmiersprachen. Datentypen. Datentypen (II) Datentypen Beispiele (II) Datentypen - Beispiele

Inhalt. SWP - Programmiersprachen. Datentypen. Datentypen (II) Datentypen Beispiele (II) Datentypen - Beispiele Inhalt SWP - Programmiersprachen Datentypen Sichtbarkeit / Parameterübergabe Struktur / Programmorganisation Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Parallelität Exceptions Verifikation

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Software Engineering Übung 5 Verträge, Aufwand- und Risikoschätzung

Software Engineering Übung 5 Verträge, Aufwand- und Risikoschätzung software evolution & architecture lab Software Engineering Übung 5 Verträge, Aufwand- und Risikoschätzung 1 Informationen 1.1 Daten Ausgabe Di 10.11.2009 Abgabe So 22.11.2009 bis 23:59 Uhr Besprechung

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

easylearn Webservice lsessionservice Interface für Single Sign On (SSO) - 1 - easylearn Webservice lsessionservice Interface für Single Sign On (SSO) SDN AG, Solution Development Network Dezember 2008 - 2 - Inhaltsverzeichnis Inhaltsverzeichnis... 2 easylearn Webservice lsessionservice...

Mehr

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Die Beitragssatzdatei in der Version 5.0 wird nur über https Download auf einer frei zugänglichen Webseite auf den folgenden Seiten bereitgestellt.

Mehr

Ersetzbarkeit, Client-Server Beziehungen

Ersetzbarkeit, Client-Server Beziehungen Ersetzbarkeit, Client-Server Beziehungen 182.132 VL Objektorientierte Programmierung Raimund Kirner Mitwirkung an Folienerstellung: Peter Puschner, basieren auf den Folien von Franz Puntigam, TU Wien Überblick

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur 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-

Mehr

Fortgeschrittene Programmierung

Fortgeschrittene Programmierung Skript zur Vorlesung Fortgeschrittene Programmierung SS 2014 Prof. Dr. Michael Hanus Priv.Doz. Dr. Frank Huch Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion Institut für Informatik Christian-Albrechts-Universität

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Beispiel Framework: Struts Was ist? Open Source Framework zum Bau von Web Applikationen Home Page http://jakarta.apache.org/struts Teil des Apache Jakarta Project Unterstützt

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

ploinmailfactory Robert Reiz

ploinmailfactory Robert Reiz ploinmailfactory Robert Reiz Problem ploinmailfactory PostOffice-Pattern Templating Map mail.properties Internationalisierung Sonderzeichen Sonderfaelle Problem Eine Applikation soll E-Mails verschicken.

Mehr

3D Programmierpraktikum: Einführung in C++ - Teil 2

3D Programmierpraktikum: Einführung in C++ - Teil 2 3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 12. Fehler und Ausnahmen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 12. Fehler und Ausnahmen 1 Kapitel 12 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung kennenlernen Das Java-Konzept der Ausnahmen als Objekte verstehen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte

Mehr

Java Forum Stuttgart 2013 Kai.Spichale@adesso.de twitter.com/kspichale spichale.blogspot.de

Java Forum Stuttgart 2013 Kai.Spichale@adesso.de twitter.com/kspichale spichale.blogspot.de NoSQL für Java-Entwickler Java Forum Stuttgart 2013 Kai.Spichale@adesso.de twitter.com/kspichale spichale.blogspot.de 23.06.2013 Agenda Datengröße Key-value Stores 1. Wide Column 2. Cassandra Document

Mehr

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

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

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring? oliver@code-project.org 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2

Mehr

Anwendung der Aspektorientierung : Security

Anwendung der Aspektorientierung : Security Seminar AOSD Anwendung der Aspektorientierung : Security Miao Tang Betreuer: Dipl.-Inform. Dirk Wischermann 1. Motivation Anwendung der AO: Security 2 Sicherheitsprobleme beim Design und bei der Programmierung

Mehr

Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag

Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag Mark Brörkens Universität Oldenburg, Fachbereich Informatik Email: Mark.Broerkens@informatik.uni-oldenburg.de Einleitung Programmieren mit Vertrag

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

http://www.tutego.com/ JdbcTemplate

http://www.tutego.com/ JdbcTemplate http://www.tutego.com/ JdbcTemplate JdbcTemplate Die Klasse org.springframework.jdbc.core.jdbctemplateist zentral im JDBC-Paket von Spring. Die Klasse führt einfach SQL-Anweisungen aus liest Ergebnisse

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

2015-06-11 Tagesprogramm

2015-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

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

11. GUI-Programmierung mit SWING Überblick

11. GUI-Programmierung mit SWING Überblick 11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing

Mehr

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels

Mehr

Jürgen Bayer. MDI-Anwendungen in C#

Jürgen Bayer. MDI-Anwendungen in C# Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte

Mehr

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 4: Kombination OOP/.NET 1/27/2012 1 Do Events Delegates Operatoren Exceptions Namespaces Bibliotheken.NET Klassen Serialisierung

Mehr

Sicherheit. letzten beiden Punkte typischerweise durch Verschlüsselung realisiert. Komponentenbasierte Software Entwicklung. Prof. Dr.

Sicherheit. letzten beiden Punkte typischerweise durch Verschlüsselung realisiert. Komponentenbasierte Software Entwicklung. Prof. Dr. Sicherheit Vier Aufgaben Authentifizierung: Nutzer erkennen; klassisch über Name und Passwort Autorisierung: Nutzer darf nur bestimmte Aktionen durchführen, klassisch über Rechte Rollen System Vertraulichkeit:

Mehr

Java I Vorlesung Exceptions

Java I Vorlesung Exceptions Java I Vorlesung 8 Exceptions 14.6.2004 Exceptions (Ausnahmen) Klassen für Ein- und Ausgabe Ausnahmen Ausnahmen (Exceptions) sind ein Mechanismus zum kontrollierten Melden und Reagieren auf Fehler. Man

Mehr