Software Factories SS Prof. Dr. Dirk Müller. 9 Aspektorientierte Programmierung
|
|
- Adolf Burgstaller
- vor 8 Jahren
- Abrufe
Transkript
1 Software Factories 9 Aspektorientierte Programmierung Prof. Dr. Dirk Müller
2 Übersicht Motivation Scattering und Tangling Separation of Concerns Geschichte und Terminologie Fallstudie: Patientendatensystem Join Point Models AspectJ-Beispiel: Tracing Probleme der aspektorientierten Programmierung Zusammenfassung 2/27
3 Motivation Design for Change, Wiederverwendbarkeit von Software Separation of Concerns als Grundprinzip guten Designs jede Komponente (Klasse, Methode, Prozedur, etc.) macht eine und nur eine Sache aber: in Praxis manchmal N-zu-M-Beziehung zwischen Anforderungen und Komponenten 1 Anforderung in mehreren Komponenten umgesetzt in 1 Komponente mehrere Anforderungen implementiert Systemdekomposition in konventionellen höheren Sprachen lässt nur 1 Dimension zu, aber mehrdimensionales Problem Lösungsansatz: Aspekte kapseln Funktionalität für Crosscutting Concerns (querschnittliche Belange) und werden dann an wohldefinierten Stellen ins Programm gewoben 3/27
4 Concern dt. in etwa Belang Definition ist nicht einfach und variiert stark ein Element der Funktionalität eines Systems irgendeine Sache, die an einem System interessiert Reduktion auf den Bezugspunkt System/Programm nicht angemessen, da auch Herkunft der Belange wichtig reflektieren die Anforderungen an ein System, welche Beteiligte und Auftraggeber stellen und priorisieren Def.: etwas, das von Interesse oder Bedeutung für einen Beteiligten oder eine Gruppe von Beteiligten ist [2], S. 4 spezifische Anforderung oder Gesichtspunkt, welche(r) in einem Software-System behandelt werden muss, um übergreifende Systemziele zu erreichen Quelle: [2] zu speziell zu allgemein 4/27
5 Typen von Concerns funktionale Belange z. B. Zugkontrollsystem mit dem Bremsen eines Zuges Quality-of-Service-Belange (Dienstgüte) beschreiben nicht-funktionales Verhalten z. B. Leistung (via Caches), Zuverlässigkeit, Verfügbarkeit Policy-Belange als allgemeine Richtlinien zur Benutzung des Systems incl. Safety, Security und Geschäftsregeln System-Belange, die das System als ganzes betreffen z. B. Änderbarkeit und Konfigurierbarkeit organisatorische Belange Einhaltung des Budgets und des Termins Wiederverwendung von Software manchmal nicht als Concern angesehen, da Bezug auf Entwicklungsprozess Erhaltung oder Verbesserung der Reputation der Organisation Quelle: [2], S. 4 5/27
6 Cross-cutting Concerns (CCCs) Def.: Anforderung an ein Softwareprodukt, die modulübergreifend einzuhalten oder umzusetzen ist typischerweise Zusatz- oder Metaanforderungen, Gegensatz Kernfunktionalitäten (engl. Core Concerns) z. B. Fehlerbehandlung, Logging, Tracing und Sicherheitsanforderungen dt. in etwa quer schneidende Kernfunktionalität Lösungsansätze generative Programmierung Verwendung spezieller Frameworks Verwendung von Mustern wie Mix-in-Klassen aspektorientierte Programmierung 6/27
7 Beispiel: CCCs beim Online-Banking Anforderungen zur Aufnahme eines neuen Kunden Anforderungen zur Arbeit des Kunden mit einem Konto Anforderungen zum Kundenmanagement 3 Core Concerns Security- Anforderungen Recovery- Anforderungen 2 Cross-cutting Concerns Quelle: [2], S. 5 7/27
8 Scattering und Tangling von Code Scattering (1-zu-N-Beziehung) dt. in etwa verstreuen eine Anforderung mit Auswirkungen auf mehrere Module redundante oder sehr ähnliche Codeblöcke => schwer zu warten hohe Fehleranfälligkeit bei Änderungen Tangling (N-zu-1-Beziehung) dt. in etwa vermischen Code in einem Modul implementiert verschiedene Anforderungen schlechte Lesbarkeit und Rückverfolgbarkeit schlecht wiederverwendbar treten meist in Kombination auf beide als Bad Smells bzgl. des großen Ziels der Softwaretechnik Design for Change anzusehen 8/27
9 Beispiel für Tangling synchronized void put (SensorRecord rec ) { // Check that there is space in the buffer; wait if not if ( numberofentries == bufsize) wait () ; // Add record at end of buffer store [back] = new SensorRecord (rec.sensorid, rec.sensorval) ; back = back + 1 ; // If at end of buffer, next entry is at the beginning if (back == bufsize) back = 0 ; numberofentries = numberofentries + 1 ; // indicate that buffer is available notify () ; } // put Vermischung von Puffermanagement- und Synchronisations-Code Quelle: [2], S. 6 9/27
10 Beispiel für Scattering verstreuter Belang der Statistik im Patientendatensystem Probleme manifest bei Änderung Herausfiltern der Teile, die zu ändern sind viele Änderungen und viele Tests erhöhte Chance, neue Fehler einzuführen Quelle: [2], S. 6 f. 10/27
11 Geschichte Vorläufer: Reflexion und Metaobjekt-Protokolle, subjektorientierte Programmierung, Kompositionsfilter und adaptive Programmierung Team von Gregor Kiczales bei Xerox PARC 1997 Theorie 2001 AspectJ, heute verbreitetste aspektorientierte Sprache/Spracherweiterung Microsoft Transaction Server (1996) und Enterprise Java Beans (EJB, 1998) als erste Frameworks, die AOP anwenden 11/27
12 Einordnung des Programmierparadigmas nicht-strukturierte Programmierung ( Spaghetti-Code ) strukturierte Programmierung blockbasierte Programmierung modulare Programmierung objektorientierte Programmierung klassenbasiert prototypenbasiert Separation of Concerns rollenorientiert subjektorientiert aspektorientierte Programmierung manchmal nicht mehr als strukturierte Programmierung angesehen, da der Kontrollfluss immer wieder unterbrochen wird [2], S. 21 Bei Abstraktion zu weit gegangen? Kapselung von Funktionalität konsequent weitergeführt Wartbarkeit und Wiederverwendbarkeit nochmals verbessert 12/27
13 Terminologie Aspekt Programmabstraktion, die einen Cross-cutting Concern definiert, enthält Advice und Pointcut Advice Code, der einen Concern implementiert (Was?) Pointcut Spezifizierung der Stellen, an denen der Advice ausgeführt werden soll, durch Join Points (Wo?) Join Point Ereignis in einem Programm zur Laufzeit als Trigger für die Ausführung eines Advice Join Point Menge von Ereignissen, die in einem Pointcut Model angesprochen werden können; spezifisch für AOP-Programmiersprache Einweben Einfügen von Advice-Code an den angegebenen Join Points durch einen Aspekt-Weber Quelle: [2], S. 7 13/27
14 Fallstudie: Patientendatensystem persönliche Daten + Medikation können geändert werden updatepersonalinformation (patientid, infoupdate) updatemedication (patientid, medicationupdate) Sicherheitsproblem festgestellt Patientendaten sind bösartig manipuliert worden mögliche Ursachen: aus Bequemlichkeit eingeloggt geblieben und eine rauchen gegangen, dann Manipulation durch Unbefugten oder Manipulation durch Insider (Mitarbeiter) zwei Varianten einer neuen Sicherheitsvorschrift update-methoden in jeder Komponente ändern, so dass dort Authentifizierung und Logging aufgerufen wird vor update-methodenaufruf jeweils Authentifizierung und danach jeweils Logging aufrufen Quelle: [2], S. 8 f. Tangling Scattering 14/27
15 Authentifizierungs-Aspekt aspect authentication Führe vor allen Methoden, deren Name mit { update beginnt, den folgenden Advice aus! before: call (public void update* (..)) // this is a pointcut { // this is the advice that should be executed when woven into // the executing system int tries = 0 ; string userpassword = Password.Get ( tries ) ; while (tries < 3 && userpassword!= thisuser.password ( ) ) { // allow 3 tries to get the password right tries = tries + 1 ; userpassword = Password.Get ( tries ) ; } if (userpassword!= thisuser.password ( )) then //if password wrong, assume user has forgotten to logout System.Logout (thisuser.uid) ; } } // authentication Authentifizierung und Logging sind CCCs und sollten als Aspekte implementiert werden Alleinstellungsmerkmal: Aspekt benötigt Angabe, wo er ausgeführt werden soll (via Pointcut) Quelle: [2], S. 9 15/27
16 Join Point Models Aufruf-Ereignisse (Methode oder Konstruktor) Ausführungs-Ereignisse (Methode oder Konstruktor) Initialisierungs-Ereignisse (Klasse oder Objekt) Daten-Ereignisse (Zugriff auf ein Feld oder Aktualisierung eines Feldes) Ausnahme-Ereignisse (Behandlung einer Exception) Quelle: [2], S /27
17 Möglichkeiten des Einwebens vor einer speziellen Methode, einer Liste von Methoden oder einer per Schablonenmuster ausgewählten Untermenge von Methoden z. B. update* nach normaler oder Ausnahme-Rückkehr von einer Methode z. B. nach allen Aufrufen von update-methoden Logging durchführen als Ersatz für eine Methode bzw. mehrere Methoden eine Art Umleitung des Kontrollflusses bei Änderung eines Feldes in einem Objekt z. B. Überwachung oder angepasste Änderung auf standardisierte Werte Quelle: [2], S /27
18 Beispiel: Einweben zweier Aspekte Authentifizierungs- Aspekt Patient Logging- Aspekt Patient... updatedetails(...)... Aspekt- Weber... Authentifizierungs-Code updatedetails(...) Logging-Code... Quelle: [2], S /27
19 Arten des Einwebens in den Quellcode mittels eines Präprozessors bei AspectX angewandt beim Linken mittels eines modifizierten Compilers bei AspectJ angewandt: AspectJ-Compiler ajc, kann über Projekt AJDT in Eclipse integriert werden goldener Mittelweg dynamisches Einweben zur Laufzeit Überwachung (Monitoring) von Join Points Abgleich mit Pointcuts, bei Übereinstimmung Ausführung des entsprechenden Advice Flexibilität Laufzeit-Overhead Quelle: [2], S. 10 f. 19/27
20 AspectJ-Beispiel: Tracing (1/4) 20/27
21 AspectJ-Beispiel: Tracing (2/4) 21/27
22 AspectJ-Beispiel: Tracing (3/4) alle Methoden, deren Name mit my beginnt Rückgabetyp muss passen 22/27
23 AspectJ-Beispiel: Tracing (4/4) zusätzlich: Kontext muss vom Typ AOPDemo sein zweimal im statischen Kontext => Pointcut passt jeweils nicht mehr 23/27
24 Problem: Pointcut-Spezifikation völlig neu, also ungewohnt, und entscheidend große Sorgfalt nötig Fehler hier führt zum Einweben an falschen Stellen unerwartetes oder unvorhersehbares Programmverhalten Namenskonventionen überall streng einhalten jetzt Verarbeitung durch Werkzeug, nicht mehr nur für bessere Lesbarkeit durch Menschen Aspekt-Interferenz mehrere Aspekte wirken am selben Join Point am besten ganz umgehen schwer zu analysieren vollständige Unabhängigkeit voneinander sicherstellen, auch von Reihenfolge (keine Kontrolle, wie der Aspekt-Weber einwebt) Quelle: [2], S /27
25 Probleme: Inspektion und Testen bei AOP erschwerte Nachvollziehbarkeit von AOP-Programmen Inspektion: sequenzielles Lesen von Code nicht mehr auf einfache Art möglich Inspektion wird sehr schwierig aber: manchmal Werkzeuge zum AOP-Code-Lesen verfügbar Serialisierung ( Flachklopfen ) des Codes funktioniert nicht mehr beim dynamischen Einweben Konfliktauflösung (Priorisierung) des Aspekt-Webers muss auch diesem Werkzeug bekannt sein Testen: besonders problematisch bei Whitebox-Tests Entwurf von Defekttests unter Nutzung der Implementierung (mögliche Schwachstellen finden) erschwert, da nicht mehr linear Abdeckung (Coverage): Jeder Aspekt mit jedem Join Point? unerwartete Wechselwirkungen möglich enge Kopplung an den Basis-Code macht isolierten Test schwer Quelle: [2], S. 21 f. 25/27
26 Zusammenfassung Separation of Concerns konsequent umgesetzt, somit bessere Wiederverwendung und Änderbarkeit Beziehung Anforderung-Komponente 1:N beim Scattering, N:1 beim Tangling AOP erlaubt auch für Cross-cutting Concerns 1:1-Beziehungen Aspekte enthalten einen Pointcut (Wo eingewoben?) und einen Advice (Was eingewoben?) Join Points als Ereignisse, die in einem Pointcut abhängig vom Join Point Model angegeben werden können große Sorgfalt bei Pointcuts und Namenskonventionen nötig statische und dynamische Qualitätskontrolle erschwert erschwerte Nachvollziehbarkeit als Preis für höhere Abstraktion isoliertes Testen kaum möglich, da Wechselwirkungen Barriere für Anwendung in großen Software-Projekten verbesserte Werkzeuge zur Abmilderung der Probleme 26/27
27 Literatur [1] Hartmut Fritzsche, Software Factories Skript zur Lehrveranstaltung, , Download am , [2] Ian Sommerville: 31 Aspect-oriented software engineering, Online-Kapitel zum Buch Software Engineering 10, 2013/14, Download am , [3] AspectJ Frequently Asked Questions, Download am , 27/27
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrAspektorientierte Programmierung (aspect-oriented programming, AOP)
Aspektorientierte Programmierung (aspect-oriented programming, AOP) Abstract Die aspektorientierte Programmierung ist ein neues Programmierparadigma, das die Probleme und Nachteile, die aus der prozeduralen
MehrApplication Frameworks
Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrKlassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrBenutzerhandbuch - Elterliche Kontrolle
Benutzerhandbuch - Elterliche Kontrolle Verzeichnis Was ist die mymaga-startseite? 1. erste Anmeldung - Administrator 2. schnittstelle 2.1 Administrator - Hautbildschirm 2.2 Administrator - rechtes Menü
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrDieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.
Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html
MehrDokumentenverwaltung im Internet
Dokumentenverwaltung im Internet WS 09/10 mit: Thema: Workflow und Rollenverteilung im Backend Gruppe: DVI 10 Patrick Plaum und Kay Hofmann Inhalt 1. Benutzer und Benutzergruppen erstellen...2 1.1. Benutzergruppen...2
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrMSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003
Page 1 of 8 SMTP Konfiguration von Exchange 2003 Kategorie : Exchange Server 2003 Veröffentlicht von webmaster am 25.02.2005 SMTP steht für Simple Mail Transport Protocol, welches ein Protokoll ist, womit
MehrEmail Konfigurieren mit Outlook Express (Windows XP) oder Windows Mail (Windows Vista / Windows 7)
Email Konfigurieren mit Outlook Express (Windows XP) oder Windows Mail (Windows Vista / Windows 7) Windows Mail oder Outlook Express sind, auch wenn kleine optische Unterschiede bestehen, dieselben Produkte.
MehrÜbungsklausur vom 7. Dez. 2007
Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement
MehrPHP - Projekt Personalverwaltung. Erstellt von James Schüpbach
- Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6
MehrZwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
MehrPROFIS Software Lösungen
PROFIS Software Lösungen Die PROFIS Software Lösungen bieten eine effektive Möglichkeit Dübel, Bewehrungsanschlüsse und viele anderen Anwendungen zu bemessen dabei arbeiten Sie selbstverständlich immer
MehrReporting Services und SharePoint 2010 Teil 1
Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrBesicomm Leistungserfassung
Besicomm Leistungserfassung SAP CATS ist eine hervorragende Plattform zur Freigabe und Verteilung von Daten in diverse SAP Module. Besicomm Leistungserfassung bietet eine einfache smaske zu CATS welche
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrJ.6 Programmierung eingebetteter Systeme
Vorteile von C in eingebetteten Systemen: leichter Zugriff auf die Hardware gute Kontrolle über die verwendeten Ressourcen (Speicher, CPU) Probleme mit C: stark eingeschränkte Laufzeitüberprüfungen ISO
MehrErfahrungen mit Hartz IV- Empfängern
Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November
MehrScala kann auch faul sein
Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrÜbung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter
Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster
MehrAgile Vorgehensmodelle in der Softwareentwicklung: Scrum
C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
MehrObjektorientiertes Software-Engineering
Objektorientiertes Software-Engineering Vorlesung VIII Inhalt der Vorlesung Wiederholung Vorlesung VII Factory Method Observer s Übung Vorstellung des (Gruppe Jukebox) Folie 2 Definiert ein Objekt zur
MehrCMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1
CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7
MehrAOSTA. Aspects in Operating Systems: Tools and Applications
AOSTA Aspects in Operating Systems: Tools and Applications Michael Engel, Philipps-Universität Marburg AG Verteilte Systeme engel@informatik.uni-marburg.de Aspektorientierung in 5 Minuten ;-) Crosscutting
Mehr4 Aufzählungen und Listen erstellen
4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer
MehrGeld Verdienen im Internet leicht gemacht
Geld Verdienen im Internet leicht gemacht Hallo, Sie haben sich dieses E-book wahrscheinlich herunter geladen, weil Sie gerne lernen würden wie sie im Internet Geld verdienen können, oder? Denn genau das
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrWEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?
WEBAPPLIKATIONEN MIT PHP Wo gibt es Hilfe? Wie fang ich an? Tools Webapplikationen bestehen aus Textdateien Lassen sich in Texteditoren schreiben Alternativen: Eclipse (PDT) Netbeans (Dynamic Languages)
MehrEvident VDDS-Anbindung von MIZ
Evident VDDS-Anbindung von MIZ Die VDDS Schnittstelle erlaubt die Übernahme der Patientendaten aus Evident in MIZ. Außerdem können Sie aus Evident heraus (aus der Patientenkarteikarte) MIZ oder den MIZViewer
MehrErstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
MehrGruppenrichtlinien und Softwareverteilung
Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden
MehrDownloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
Mehr1 Informationelle Systeme begriffliche Abgrenzung
1 Informationelle Systeme begriffliche Abgrenzung Im Titel dieses Buches wurde das Wort Softwaresystem an den Anfang gestellt. Dies ist kein Zufall, denn es soll einen Hinweis darauf geben, dass dieser
MehrKurzanleitung für Verkäufer
Kurzanleitung für Verkäufer Registrieren auf www.easybasar.de Einloggen Am Basar anmelden Artikel erfassen Artikel abgeben Artikel abholen Registrieren bei www.easybasar.de Sie sollten sich bereits vor
MehrM@school Software- und Druckerzuweisung Selbstlernmaterialien
Bildung und Sport M@school Software- und Druckerzuweisung Selbstlernmaterialien Hinweise zum Skript: LMK = Linker Mausklick RMK = Rechter Mausklick LMT = Linke Maustaste RMT = Rechte Maustaste Um die Lesbarkeit
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrOECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland
OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben
MehrSo geht s Schritt-für-Schritt-Anleitung
So geht s Schritt-für-Schritt-Anleitung Software WISO Mein Büro Thema Nutzung der Internetmarke Version/Datum V 14.00.08.300 Mit der Software WISO Mein Büro können Sie Ihr Guthaben (oder auch E-Porto )
MehrHandbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen
Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen Dateiname: ecdl_p3_02_03_documentation.doc Speicherdatum: 08.12.2004 ECDL 2003 Professional Modul
MehrKlausur Software-Engineering SS 2005 Iwanowski 23.08.2005
Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005 Hinweise: Bearbeitungszeit: 90 Minuten Erlaubte Hilfsmittel: im Anhang, sonst keine Bitte notieren Sie Ihre Antworten ausschließlich auf dem Aufgabenblatt!
MehrJan Parthey, Christin Seifert. 22. Mai 2003
Simulation Rekursiver Auto-Assoziativer Speicher (RAAM) durch Erweiterung eines klassischen Backpropagation-Simulators Jan Parthey, Christin Seifert jpar@hrz.tu-chemnitz.de, sech@hrz.tu-chemnitz.de 22.
MehrMonitore. Klicken bearbeiten
Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition
MehrEin neues Outlook Konto können Sie im Control Panel über den Eintrag Mail erstellen.
Ein neues Outlook Konto können Sie im Control Panel über den Eintrag Mail erstellen. Wählen Sie nun Show Profiles und danach Add. Sie können einen beliebigen Namen für das neue Outlook Profil einsetzen.
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrEnergetische Klassen von Gebäuden
Energetische Klassen von Gebäuden Grundsätzlich gibt es Neubauten und Bestandsgebäude. Diese Definition ist immer aktuell. Aber auch ein heutiger Neubau ist in drei (oder vielleicht erst zehn?) Jahren
MehrEJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de
EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.
MehrErster Schritt: Antrag um Passwort (s. www.ifb.co.at Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung)
Benutzeranleitung Sehr geehrte Mitglieder und Experten! Diese Benutzeranleitung erklärt die Handhabung und Navigation zu den spezifischen Arbeitsgruppen unter der Rubrik Technische Richtlinien auf der
Mehrmit attraktiven visuellen Inhalten
Besser bloggen mit attraktiven visuellen Inhalten Copyright 2015 und für den Inhalt verantwortlich: Online Marketing Services LCC. 108 West 13th Street 19801 Wilmington USA Google Doodles die modifizierten
MehrBuchhaltung mit WISO EÜR & Kasse 2011
Vorbemerkung... 1 1. Erste Schritte...Fehler! Textmarke nicht definiert.3 2. Einrichten des Programms... 5 3. Buchungen... 22 1. Anfangsbestand buchen... 22 2. Privateinlage in die Kasse... 26 4. Buchungen
MehrMusterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9
Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung
MehrProgrammiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger http://www.d120.de/vorkurs.
Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger http:www.d120.de/vorkurs Aufgabenblatt 3 Du findest zur Bearbeitung dieses Aufgabenblatts zu einigen Aufgaben
MehrBernadette Büsgen HR-Consulting www.buesgen-consult.de
Reiss Profile Es ist besser mit dem Wind zu segeln, als gegen ihn! Möchten Sie anhand Ihres Reiss Rofiles erkennen, woher Ihr Wind weht? Sie haben verschiedene Möglichkeiten, Ihr Leben aktiv zu gestalten.
MehrMelde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei
Seite 1 Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei Seite 2 1 Inhalt Melde- und Veröffentlichungsplattform Portal... 1 (MVP Portal)... 1 Hochladen einer XML-Datei...
MehrHilfedatei der Oden$-Börse Stand Juni 2014
Hilfedatei der Oden$-Börse Stand Juni 2014 Inhalt 1. Einleitung... 2 2. Die Anmeldung... 2 2.1 Die Erstregistrierung... 3 2.2 Die Mitgliedsnummer anfordern... 4 3. Die Funktionen für Nutzer... 5 3.1 Arbeiten
MehrHandbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software
Artologik EZ-Equip Plug-in für EZbooking version 3.2 Artologik EZbooking und EZ-Equip EZbooking, Ihre webbasierte Software zum Reservieren von Räumen und Objekten, kann nun durch die Ergänzung um ein oder
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrStatuten in leichter Sprache
Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch
MehrGrundlagen der Informatik
Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................
MehrKapitel 4 Die Datenbank Kuchenbestellung Seite 1
Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung
MehrIEEE 802.1x Authentifizierung. IEEE 802.1x Authentifizierung IACBOX.COM. Version 2.0.1 Deutsch 14.01.2015
Version 2.0.1 Deutsch 14.01.2015 Dieses HOWTO beschreibt die Konfiguration und Anwendung der IEEE 802.1x Authentifizierung in Kombination mit der IAC-BOX. TITEL Inhaltsverzeichnis Inhaltsverzeichnis...
MehrIst Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?
UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.
MehrBEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
MehrUpdatehinweise für die Version forma 5.5.5
Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x
MehrException Handling, Tracing und Logging
Exception Handling, Tracing und Logging Proseminar Objektorientiertes Programmieren mit.net und C# Tomas Ladek Institut für Informatik Software & Systems Engineering Agenda Exceptions Allgemeines Implementierung
MehrUm Ihre Ziele durchzusetzen! Um Beziehungen zu knüpfen und zu pflegen! Um in Begegnungen mit anderen Ihre Selbstachtung zu wahren!
Handout 19 Interpersonelle Grundfertigkeiten Einführung Wozu brauchen Sie zwischenmenschliche Skills? Um Ihre Ziele durchzusetzen! Um Beziehungen zu knüpfen und zu pflegen! Um in Begegnungen mit anderen
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrDas System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.
Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt
MehrDer Jazz Veranstaltungskalender für Deutschland, Österreich und die Schweiz
Veranstaltung erstellen mit vorheriger Registrierung Wenn Sie sich bei Treffpunkt Jazz registrieren, genießen Sie folgende Vorteile: Sie können bereits eingestellte Veranstaltungen auch noch später ändern
Mehrecaros2 - Accountmanager
ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrAusgangslage, Rolle und Auftrag
Ausgangslage, Rolle und Auftrag zum Modul 118 - Analysieren und strukturiert implementieren. Technische Berufsschule Zürich Seite 1 von 9 Frey A. /Sägesser A. Auftragsbeschreibung im Detail Sie haben sich
Mehr«Eine Person ist funktional gesund, wenn sie möglichst kompetent mit einem möglichst gesunden Körper an möglichst normalisierten Lebensbereichen
18 «Eine Person ist funktional gesund, wenn sie möglichst kompetent mit einem möglichst gesunden Körper an möglichst normalisierten Lebensbereichen teilnimmt und teilhat.» 3Das Konzept der Funktionalen
MehrVersion smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):
Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils
MehrDokumentation zur Versendung der Statistik Daten
Dokumentation zur Versendung der Statistik Daten Achtung: gem. 57a KFG 1967 (i.d.f. der 28. Novelle) ist es seit dem 01. August 2007 verpflichtend, die Statistikdaten zur statistischen Auswertung Quartalsmäßig
MehrÜber die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.
Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten
MehrFragen 2015. Arthur Zaczek. Apr 2015
Arthur Zaczek Apr 2015 1 Ihre Fragen 2015 2 WPF 2.1 Code Behind Mit dem MVVM Pattern haben wir praktisch keinen Nutzen für das Code Behind der WPF Forms, sind diese dann eher für kleinere Applikationen
MehrTESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!
9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr
MehrWinCVS Version 1.3. Voraussetzung. Frank Grimm fgr@micenet.de http://www.micenet.de. Mario Rasser mario@rasser-online.de http://www.rasser-online.
WinCVS Version 1.3 Frank Grimm fgr@micenet.de http://www.micenet.de Mario Rasser mario@rasser-online.de http://www.rasser-online.de Voraussetzung 1. Installation von Python (Version >= 2.1) Download von
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrAutoTexte und AutoKorrektur unter Outlook verwenden
AutoTexte und AutoKorrektur unter Outlook verwenden Die Hilfsmittel "AutoKorrektur" und "AutoTexte", die schon unter Microsoft Word das Arbeiten erleichtern, sind natürlich auch unter Outlook verfügbar.
Mehr10.6 Programmier-Exits für Workitems
10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene
MehrDaten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen
Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.
Mehr2015-06-11 Tagesprogramm
1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
Mehr