Created by Angelo Maron
|
|
- Kajetan Rosenberg
- vor 8 Jahren
- Abrufe
Transkript
1 Domain Driven Design in Ruby on Rails Created by Angelo Maron
2 Wer bin ich? Angelo Maron Sofware-Entwickler seit ca. 7 Jahren (Ruby on Rails) bei AKRA seit 2,5 Jahren Xing:
3 Aga 1. MVC & Rails 2. Domain Driven Design 3. Domain Driven Design in Rails 4. Zusammenfassung
4 MVC (Model View Controller) Wikipedia: Der englischsprachige Begriff "model view controller" (MVC) ist ein Muster zur Strukturierung von Software-Entwicklung in die drei Einheiten Datenmodell (engl. model), Präsentation (engl. view) und Programmsteuerung (engl. controller).
5 Ruby on Rails Ruby on Rails ist ein in der Programmiersprache Ruby geschriebenes und quelloffenes Web Application Framework. wird dieses Jahr 10 Jahre alt. basiert auf dem MVC-Pattern Prinzipien: Don't repeat yourself (DRY) Convention over Configuration
6 !Convention!
7 MVC in Ruby on Rails M odel: V iew: ActiveRecord ActionView C ontroller: ActionController
8 Fat Model, Skinny Con- troller (1) "Im Zusammenspiel von Controller und Model, versuche im Controller nur das Objekt zu instanzieren und einen Methodenaufruf durchzuführen. Der Rest wird im Model definiert."
9 Fat Model, Skinny Con- troller (2) def = Post.all.where('published_at <=?', = Post.all.where('published_at IS NULL or published_at >?', Time.now) def = = Post.all_unpublished
10 Problematik Mit zunehmen Anforderungen werden können die folgen Problematiken auftreten: Die Model-Dateien werden immer größer (500+ Zeilen) Die Actions der Controller werden immer größer (30+ Zeilen) Dies führt zur Verschlechterung der Testbarkeit, Wartbarkeit und Verständnis des Codes. Daher habe ich versucht nach den folgen Regeln zu arbeiten. (nach Sandy Matz) --> Domain Driven Design Eine Klasse hat maximal 100 Zeilen. Eine Methode hat maximal 5 Zeilen.
11 Domain Driven Design Domain-Driven Design (DDD) ist eine Herangehensweise an die Modellierung komplexer objektorientierter Software. Die Modellierung der Software wird dabei maßgeblich von den umzusetzen Fachlichkeiten der Anwungsdomäne beeinflusst.
12 Warum DDD? 1. Fachliche Begrifflichkeiten und Codestruktur angleichen. 2. kleinere Dateien (bessere Wartbarkeit) 3. höhere Codeunabhängigkeit (bessere Wartbarkeit) 4. Bessere Testbarkeit (durch kleinere Klassen)
13 Domain-Driven Design in Rails Rails Helpers Concerns Service Objects Presenter Objects Strukturierte Namensräume Decorator Pattern
14 Rails Helpers Interne Struktur von Rails um Funktionen für views zur Verfügung zu stellen. Funktionen um komplexen Code aus der View zu halten. Sich wiederhole Funktionen wieder zu verwen. Persönlich: (erinnert mich an funktionale Programmierung)
15 Beispiel Rails Helper (1) <div> <%- %> <%= %> <%- else %> <%= image_tag(asset_path('default_profile.png')) %> <%- %> </div>
16 Beispiel Rails Helper (2) module UserHelper def user_picture_path(user) if user.image.present? user.image.path else asset_path('default_profile.png') <div> <%= %> </div>
17 Domain-Driven Design in Rails Rails Helpers Concerns Service Objects Presenter Objects Strukturierte Namensräume Decorator Pattern
18 Rails Concerns Rails Concerns ist eine Möglichkeit Code in Module auszulagern, die man über ein include in ein beliebiges Model inkludieren kann. Dieses hat folge Anwungsmöglichkeiten: 1. Aufteilen des Codes eines Models in mehrere Dateien 2. Auslagerung von Mechanismen/Pattern zur Wiederverwung Rails bietet hier ein hauseigenes Konzept: ActiveSupport::Concern
19 Beispiel Rails Concerns (1) class Article < ActiveRecord::Base belongs_to :create_user, class_name: 'User' belongs_to :update_user, class_name: 'User' class Job < ActiveRecord::Base belongs_to :create_user, class_name: 'User' belongs_to :update_user, class_name: 'User'
20 Beispiel Rails Concerns (2) module Trackable ext ActiveSupport::Concern included do belongs_to :create_user, class_name: 'User' belongs_to :update_user, class_name: 'User' class Article < ActiveRecord::Base include Trackable class Job < ActiveRecord::Base include Trackable
21 Domain-Driven Design in Rails Rails Helpers Concerns Service Objects Presenter Objects Strukturierte Namensräume Decorator Pattern
22 Service Objects Verlagerung bestimmter Funktionen eines Anwungsfall in ein eigenes Objekt, dass genau diese Funktionen zur Verfügung stellt. zum Beispiel: SearchService (Suchkomponente) InvoiceService (Rechnungserstellung) RegistrationService (RegistrierungsValidierung)
23 Beispiel Service Object (1) class Article < ActiveRecord::Base def search(term, options = {}) # execute search def admin_search(term, options = {}) # execute search from admin perspective def Job < ActiveRecord::Base def search(term, options = {}) # execute search def admin_search(term, options = {}) # execute search from admin perspective
24 Beispiel Service Object (2) class SearchService def self.article_search(term, options = {}) # execute search here def self.job_search(term, options = {}) # execute search here class AdminSearchService def self.article_search(term, options = {}) # execute search here def self.job_search(term, options = {}) # execute search here
25 Domain-Driven Design in Rails Rails Helpers Concerns Service Objects Presenter Objects Strukturierte Namensräume Decorator Pattern
26 Presenter Objects Oft haben Get-Operationen komplexe Analyse von Parametern, um die genau angeforderten Objekte anzuzeigen. Hier gibt es eine gute Möglichkeit, diese in eigene Objekte auszulagern.
27 Beispiel Presenter Object (1) class JobController < ApplicationController::Base def = Job.active.preload(:items) if if params[:order] order_string = "#{params[:order]} #{params[:dir].presence = 1).per(params[:per].presence 10)
28 Beispiel Presenter Object (2) class JobController < ApplicationController::Base def = JobPresenter.get_all(params) class JobPresenter def self.get_all(params) self.new(params).get_all def = params def get_all jobs = Job.active.preload(:items) jobs = jobs.by_state(@params[:state])
29 Domain-Driven Design in Rails Rails Helpers Concerns Service Objects Presenter Objects Strukturierte Namensräume Decorator Pattern
30 Strukturierte Namen- sräume Strukturierung aller Objekte (Models, Services, Presenters, Decorators, Controllers usw.) in Domain-basierte Namespaces. Dies hat folge Vorteile: Code-Unabhängigkeit kleinere Dateien bessere Abbildung der Businessdomäne im Code.
31 Beispiel Namensräume (1) class Job < ActiveRecord::Base def self.all_for_admins #execute query here def self.all_for_moderators # execute query here def self.all_for_visitors #execute query here
32 Beispiel Namensräume (2) module Admins class Job def self.all #execute query here module Moderators class Job def self.all #execute query here module Visitors class Job def self.all #execute query here
33 Domain-Driven Design in Rails Rails Helpers Concerns Service Objects Presenter Objects Strukturierte Namensräume Decorator Pattern
34 Decorators in Rails (1)
35 Decorators in Rails (2)
36 Beispiel Decorator (1) class UserController < ApplicationController::Base def = User.find(params[:id]) <div> <p>erstellt am: <p>name: %></p> <%- %> <%= image_tag(@user.image.path) %> <%- else %> <%= image_tag(asset_path('default_profile.png')) %> <%- %> </div>
37 Beispiel Decorator (2) class UserDecorator < SimpleDelegator def def name def image_path # return image.path or default class UserController < ApplicationController::Base def = UserDecorator.new(User.find(params[:id])) <div> <p>erstellt am:
38 Und was nun?
39 Die alles entscheidene Frage Welches Pattern benutzt man wann? Ab wann benutzen wir überhaupt diese Pattern?
40 Neuprogrammierung Abwägung der Komplexität gegen den entstehen Aufwand. Wichtig: Komplexe Business-Logik lässt sich nur durch komplexen Code abbilden.
41 Refactoring Oft ist schon ein gewisser Fortschritt da, bevor man merkt, dass die Komplexität der Domaine sich direkt im Code wiederspiegelt. Nicht gleich alles komplett refactorn, sondern Step by Step.
42 Beispiel:
43
44
45
Eine Anwendung mit InstantRails 1.7
Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen
MehrRails Ruby on Rails Ajax on Rails. Clemens H. Cap http://wwwiuk.informatik.uni-rostock.de http://www.internet-prof.de
Rails Ruby on Rails Ajax on Rails Who is who? Rails Ziel: Framework für Web (2.0) Anwungen Beschleunigung der Entwicklung Konzept des Agilen Programmierens Ruby Interpretierte Sprache Rails Integrationen
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
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
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
MehrDatenbank-Verschlüsselung mit DbDefence und Webanwendungen.
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Mehr! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006
!"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst
MehrSEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
MehrRails Ruby on Rails Ajax on Rails. Clemens H. Cap http://wwwiuk.informatik.uni-rostock.de http://www.internet-prof.de
Rails Ruby on Rails Ajax on Rails Who is who? Rails Framework für Web (2.0) Anwendungen Ziel: Beschleunigung der Entwicklung Konzept des Agilen Programmierens Ruby InterpreDerte Sprache Rails IntegraDonen
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrMocha. Ein Ruby Mocking und Stubbing Framework. von Thilo Utke. Werd ich drüber reden Erst was zu mit.
Mocha Ein Ruby Mocking und Stubbing Framework von Thilo Utke Werd ich drüber reden Erst was zu mit. - 4 Jahre Software Entwicklung - 3 Jahre.Net - 1 Jahr Ruby/Rails - 1 Jahr Selbständig -
MehrIdimager ein Bildverwaltungsprogramm-DAM Software
Idimager ein Bildverwaltungsprogramm-DAM Software Nachdem hie im Forum zu Bildverwaltung anscheinend noch nichts steht, will ich mal eine kurze Beschreibung meines Bildverwaltungsprogramms zeigen. Idimager
MehrStep by Step Softwareverteilung unter Novell. von Christian Bartl
Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen
Mehrteischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep
teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen
MehrInfinigate (Schweiz) AG. Secure Guest Access. - Handout -
Infinigate (Schweiz) AG Secure Guest Access - Handout - by Christoph Barreith, Senior Security Engineer 29.05.2012 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis... 1 2 Secure Guest Access... 2 2.1 Gäste Accounts
MehrDesign Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi
Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster
MehrXcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X
Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,
MehrGlaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln
Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln Regeln ja Regeln nein Kenntnis Regeln ja Kenntnis Regeln nein 0 % 10 % 20 % 30 % 40 % 50 % 60 % 70 % 80 % 90 % Glauben Sie, dass
MehrDesign anpassen eine kurze Einführung
Design anpassen eine kurze Einführung Das gesamte Layout von Papoo basiert auf modernen CSS Layouts die vollständig ohne Layout Tabellen funktionieren. Um schnell vorhandene Designs anpassen zu können
MehrWeb 2. Gang. Python User Group Köln 13.12.2006 Christopher Arndt <chris@chrisarndt.de>
Web 2. Gang Praktische Einführung in die Entwicklung von Webanwendungen mit TurboGears Python User Group Köln 13.12.2006 Christopher Arndt Was ist TurboGears? Ein Python Web-Meta-Framework!
MehrYouTube: Video-Untertitel übersetzen
Der Easytrans24.com-Ratgeber YouTube: Video-Untertitel übersetzen Wie Sie mit Hilfe von Easytrans24.com in wenigen Schritten Untertitel für Ihre YouTube- Videos in mehrere Sprachen übersetzen lassen können.
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:
MehrHardware - Software - Net zwerke
Komprimierung der Ortho-Daten als ZIP-Archiv Dieses Dokument beschreibt die Archivierung aller Ortho-Daten als ZIP-Archiv über die MS- DOS-Eingabe-Aufforderung. Diese Information kann Ihnen zum Sichern
MehrLog xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade
HACK #76 Hack APIs mit dem Façade-Muster vereinfachen Durch die Verwendung des Façade-Entwurfsmusters können Sie die anderen Programmierern zugängliche API vereinfachen. #76 Dies ist ein Muster, von dem
MehrDatenaustausch@IC RL
Datenaustausch@IC RL SAP cfolders Erste Schritte Erstes Login: Ihre Initial-Zugangsdaten zu SAP cfolders finden Sie im ProjektPortal nach Klick auf den Reiter Projekt SAP cfolders, im Channel SAP cfolders
MehrMARCANT - File Delivery System
MARCANT - File Delivery System Dokumentation für Administratoren Der Administrationsbereich des File Delivery Systems ist ebenfall leicht zu bedienen. Die wichtigsten drei Abschnitte sind: 1. Profil, 2.
MehrDie Windows 7 Sicherung im Detail
1 Die Windows 7 Sicherung im Detail Das man zu Windows XP-Zeiten lieber ein extra Programm zur Sicherung seiner Daten nehmen sollte ist bereits jedem klar. Windows XP hat im Bereich Backup und Reparaturfunktion
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrGründe für fehlende Vorsorgemaßnahmen gegen Krankheit
Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit politische Lage verlassen sich auf Familie persönliche, finanzielle Lage meinen, sich Vorsorge leisten zu können meinen, sie seien zu alt nicht mit
MehrFamily Safety (Kinderschutz) einrichten unter Windows 7
Family Safety (Kinderschutz) einrichten unter Windows 7 Family Safety ist eine Gratissoftware von Microsoft, welche es ermöglicht, dem Kind Vorgaben bei der Nutzung des Computers zu machen und die Nutzung
MehrTechnische Analyse der Zukunft
Technische Analyse der Zukunft Hier werden die beiden kurzen Beispiele des Absatzes auf der Homepage mit Chart und Performance dargestellt. Einfache Einstiege reichen meist nicht aus. Der ALL-IN-ONE Ultimate
MehrOUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten
Outsourcing Advisor Bewerten Sie Ihre Unternehmensanwendungen auf Global Sourcing Eignung, Wirtschaftlichkeit und wählen Sie den idealen Dienstleister aus. OUTSOURCING ADVISOR Der Outsourcing Advisor ist
MehrUpToNet DMS Posteingang
UpToNet DMS Posteingang Das papierlose Büro wird Realität Der UpToNet DMS Posteingang Frisch aus unserer Entwicklungsabteilung bekommt unser UpToNet ein neues Modul zur Seite gestellt, den UpToNet Posteingang.
MehrMeet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten
Meet the Germans Lerntipp zur Schulung der Fertigkeit des Sprechens Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten Handreichungen für die Kursleitung Seite 2, Meet the Germans 2. Lerntipp
MehrDer Kalender im ipad
Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,
Mehr.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage
.htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
MehrZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule
ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN Der Zauberwürfel-Roboter Paul Giese Schule: Wilhelm-Raabe-Schule Jugend forscht 2013 Kurzfassung Regionalwettbewerb Bremerhaven
MehrWir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team
Installationsanleitung Hacker X-PRO-USB-Controller V2 Software + Interface Sehr geehrter Kunde, wir freuen uns, dass Sie sich für das X-PRO-USB-V2-Interface aus unserem Sortiment entschieden haben. Sie
MehrKomponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009
Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger
MehrSDD System Design Document
SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen
MehrWie verbinde ich ein JBOD-System mit dem QStore QMX? - 1
Wie verbinde ich ein JBOD-System mit dem QStore QMX? In diesem Handbuch erläutern wir Ihnen, wie Sie ein JBOD-System an Ihr QStor QMX Gerät anschließen und das RAID Set über das RAID-Controller BIOS einstellen/verwalten
MehrTipps & Tricks Neuerungen Nr. 5/ 2015. Externe Web-Shops im UniKat für Laborverbrauchsmaterial & Chemikalien
Tipps & Tricks Neuerungen Nr. 5/ 2015 V01 08-06-2015 Externe Web-Shops im UniKat für Laborverbrauchsmaterial & Chemikalien Inhalt Einleitung... 2 Externe Web-Shops auswählen... 3 Artikelsuche und Artikelauswahl...
MehrPowerPoint vertonen. by H.Schönbauer 1
PowerPoint vertonen by H.Schönbauer 1 Das brauchen wir dazu: PowerPoint Ein Konzept, eine Idee Ein oder mehrere Musikstücke Konvertierungssoftware Grafische Elemente wie Fotos, Cliparts Wenn wir das alles
MehrInstallation und Inbetriebnahme von Microsoft Visual C++ 2010 Express
Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation
MehrHANDOUT VON: HTTP://BITWICHTL.DE EIGENES SSL-ZERTIFIKAT FÜR DEN WHS. Copyright 2011 by s.winkler all rights reserved!
HANDOUT VON: HTTP://BITWICHTL.DE EIGENES SSL-ZERTIFIKAT FÜR DEN WHS Copyright 2011 by s.winkler all rights reserved! Nachdem es mich schon nach rel. kurzer Zeit genervt hat, wenn ich den WHS über DDNS
MehrCSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung
Kapitel 1 Die Vorbereitung Vorgängerversionen. Bald darauf folgte dann schon die Version 4, die mit einer kleinen Bearbeitung bis vor Kurzem 15 Jahre unverändert gültig war. All das, was du die letzten
MehrVgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.
Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf 2 Nach derbefragung aller Stakeholder und der Dokumentation
MehrStep by Step VPN unter Windows Server 2003. von Christian Bartl
Step by Step VPN unter Windows Server 2003 von VPN unter Windows Server 2003 Einrichten des Servers 1. Um die VPN-Funktion des Windows 2003 Servers zu nutzen muss der Routing- und RAS-Serverdienst installiert
MehrZugriff auf Daten der Wago 750-841 über eine Webseite
Zugriff auf Daten der Wago 750-841 über eine Webseite Inhaltsverzeichnis Einleitung... 3 Auslesen von Variablen... 4 Programm auf der SPS... 4 XML-Datei auf der SPS... 4 PHP-Script zum Auslesen der XML-Datei...
MehrInhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters
Erste Schritte Wir heißen Sie herzlich willkommen im Newslettersystem der Euroweb Internet GmbH. Hier erfahren Sie die grundlegendsten Informationen, die Sie zur Erstellung und zum Versand eines Newsletters
MehrKünstliches binäres Neuron
Künstliches binäres Neuron G.Döben-Henisch Fachbereich Informatik und Ingenieurwissenschaften FH Frankfurt am Main University of Applied Sciences D-60318 Frankfurt am Main Germany Email: doeben at fb2.fh-frankfurt.de
MehrDie Captimizer BTZ-Datei 2015
Dipl.-Math. Rainer Schwindt Captimizer s Secrets behind the User Interface 2 Die Captimizer BTZ-Datei 2015 Regeln zur BTZ bei laufendem Navigator und Navigator-Neustart beim Jahreswechsel Geheimnisse hinter
MehrLeichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
MehrDaten am USB Stick mit TrueCrypt schützen
Daten am USB Stick mit TrueCrypt schützen Das Programm installieren und einrichten ACHTUNG: In der nachfolgenden Anleitung wird der USB Stick immer mit USB-STICK (H:) angegeben! Diese Bezeichnung wurde
MehrBMC Control M Tipps & Tricks 2. Martin Dienstl, BMC Software martin_dienstl@bmc.com
BMC Control M Tipps & Tricks 2 Martin Dienstl, BMC Software martin_dienstl@bmc.com CONTROL M Tipps&Tricks Topics Usability Nützliche Systemparameter Copyright 3/1/2012 BMC Software, Inc 2 Quantitative
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)
MehrDokumentation für das Spiel Pong
Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel
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
MehrCOMPUTER MULTIMEDIA SERVICE
Umgang mit Web-Zertifikaten Was ist ein Web-Zertifikat? Alle Webseiten, welche mit https (statt http) beginnen, benötigen zwingend ein Zertifikat, welches vom Internet-Browser eingelesen wird. Ein Web
MehrSharePoint Demonstration
SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit
MehrDjango - ein Python Web-Framework
31. Mai 2011 Inhaltsverzeichnis 1 Überblick Was ist Django Merkmale Anforderungen 2 MVC im Detail Model Controller View 3 Live-Demo 4 Wie geht es weiter? Was ist Django Was ist Django? quelloffenes Web-Framework
MehrGDPdU Export. Modulbeschreibung. GDPdU Export. Software-Lösungen. Stand: 21.02.2012. Seite 1
Seite 1 Inhalt... 3 Allgemeines... 3 Vorteile... 3 Handhabung... 3 Seite 2 Allgemeines Mit der so genannten GDPdU-Schnittstelle (GDPdU steht für Grundsätze zum Datenzugriff und zur Prüfbarkeit digitaler
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 --
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrInhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5
Inhalt Inhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5 Dieses Dokument gibt ist eine Anleitung zur sicheren und einfachen
Mehrphp Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...
php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.
MehrStep by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
MehrControl-M Workload Change Management 8
2014 Control-M Workload Change Management 8 Holger Schidlowski hschidlowski@atics.de 1 Einführung in Control-M Workload Change Manager (laut deutschem Benutzerhandbuch) Control-M Workload Change Manager
Mehr8 Design Patterns. Events
8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrA.u.S. Spielgeräte GmbH A-1210 Wien Scheydgasse 48 Tel.+43-(0)1-271 66 00 Fax. +43-(0)1-271 66 00 75
Inhaltsverzeichnis Seite 1. Einleitung. 2 2. Vorraussetzung.. 2 2.1 Software 2 2.2 Hardware.. 2 3. Vorbereitung... 3 4. Programmierung 4 5. Ändern des Schlüssels... 6 6. Test 6 7. Informationen.. 7 1.Einleitung
MehrHandbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen
Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen Dateiname: ecdl2_05_03_documentation Speicherdatum: 22.11.2004 ECDL 2003 Modul 2 Computermanagement
MehrMagento MultiStore einrichten unter ispcp
Magento MultiStore einrichten unter ispcp Im Beispiel 3 Shops und 3 Websites, erreichbar unter 3 Domains Benötigte Zeit zum einrichten: 1 Stunde Voraussetzungen: Installiertes Magento Geänderte Dateien:
MehrDr. Kraus & Partner Ihr Angebot zu Konfliktmanagement
Dr. Kraus & Partner Ihr Angebot zu Konfliktmanagement Sämtliche Zeichnungen und Karikaturen dieser Präsentation sind urheberrechtlich geschützt und dürfen nur mit schriftlicher Genehmigung seitens Dr.
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
MehrInstallation Hardlockserver-Dongle
Installation Hardlockserver-Dongle Mit Hilfe des Hardlockservers können Lizenzen im Netzwerk zur Verfügung gestellt und überwacht werden. Der Hardlockserver-Dongle wird auf einem Server im Netzwerk installiert.
MehrAnleitung. So erstellen Sie eine Familienkarte für Ihre Gemeinde. 1. Google-Konto eröffnen
Anleitung So erstellen Sie eine Familienkarte für Ihre Gemeinde 1. Google-Konto eröffnen Zunächst benötigen Sie ein Konto bei Google, falls Sie nicht bereits eines haben: Gehen Sie dazu auf Google.com
MehrOptimierung einer Lernumgebung für berufstätige Studierende
Optimierung einer Lernumgebung für berufstätige Studierende Christian Schöne Verbundkoordination Projektpartner: Projektförderer: Projektträger: Inhalt 1. Kurzvorstellung des Projektes Mint.online 2. Grundsätzliche
MehrVermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.
1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich
MehrJede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.
Binäres und dezimales Zahlensystem Ziel In diesem ersten Schritt geht es darum, die grundlegende Umrechnung aus dem Dezimalsystem in das Binärsystem zu verstehen. Zusätzlich wird auch die andere Richtung,
MehrTaking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum
Taking RM Agile CLICK TO EDIT MASTER OPTION 1 Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum Click to edit Master subtitle style Christian Christophoridis Requirements Management
Mehr(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.
1 TimeTrack! TimeTrack! Ist ein Softwareprodukt von The Project Group, welches der Erfassung von Ist- Aufwänden von Projekten dient. Voraussetzung hierfür ist allerdings, dass das Projekt vorher mit Microsoft
MehrAnlegen eines DLRG Accounts
Anlegen eines DLRG Accounts Seite 1 von 6 Auf der Startseite des Internet Service Centers (https:\\dlrg.de) führt der Link DLRG-Account anlegen zu einer Eingabemaske, mit der sich jedes DLRG-Mitglied genau
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
MehrÖKB Steiermark Schulungsunterlagen
ÖKB Steiermark Schulungsunterlagen Fotos von Online-Speicher bereitstellen Da das hinzufügen von Fotos auf unsere Homepage recht umständlich und auf 80 Fotos begrenzt ist, ist es erforderlich die Dienste
MehrSoftware Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003
Software Engineering Softwaretechnik Softwaretechnologie, Software Engineering (engl.) das, -, Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen für das ingenieurmäßige Entwerfen, Herstellen
MehrDatenbanksysteme SS 2007
Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans
MehrBackup der Progress Datenbank
Backup der Progress Datenbank Zeitplandienst (AT): Beachten Sie bitte: Die folgenden Aktionen können nur direkt am Server, vollzogen werden. Mit Progress 9.1 gibt es keine Möglichkeit über die Clients,
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
MehrBilder zum Upload verkleinern
Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr
MehrInstallation von Druckern auf dem ZOVAS-Notebook. 1. Der Drucker ist direkt mit dem Notebook verbunden
Installation von Druckern auf dem ZOVAS-Notebook Bei der Installation eines Druckers muss grundsätzlich unterschieden werden, ob der Drucker direkt am Notebook angeschlossen ist oder ob ein Drucker verwendet
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
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrAlbert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
MehrBBCode v2.0. Einleitung...2 Installation... 3 Bugfixliste... 5. Inhaltsverzeichnis. Überarbeiteter BBCode + neuem Interface.
BBCode v2.0 Überarbeiteter BBCode + neuem Interface Inhaltsverzeichnis Einleitung...2 Installation... 3 Bugfixliste... 5 Seite 1 von 5 Einleitung Geschichte/Entstehung der BBCode Klasse Wie entstand das
Mehrlohmeyer White Paper Use Cases II UX+Prozessanalyse
White Paper Use Cases II Use Cases begleiten uns in der IT seit mehr als 15 Jahren. Nichtsdestotrotz ist es nicht so einfach, Use Cases einfach und verständlich zu schreiben. Dieses White Paper spricht
MehrDOKUMENTATION ios APP «FRI APP»
DOKUMENTATION ios APP «FRI APP» GABRIELA SCHNELL MMP 12B MINOR MOBILE APP URSPRUNGSIDEE Gabriela Schnell / mmp12b / Mobile Applications Projektidee «friapp» / 16. März 2014 Das App «friapp» soll jungen
MehrInformatik 12 Datenbanken SQL-Einführung
Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung
MehrSubpostfächer und Vertretungen für Unternehmen
SCHRITT-FÜR-SCHRITT Seite 1 von 7 Subpostfächer und Vertretungen für Unternehmen Organisationsstruktur 1:1 abbilden Individuelle Postfächer für Abteilungen und/oder Mitarbeiter Unterschiedliche Berechtigungen
Mehr