Modellgetriebene Softwareentwicklung bei der IBYKUS AG
|
|
- Christian Becke
- vor 8 Jahren
- Abrufe
Transkript
1 Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 1: Einführung in die MDSD Dr. Steffen Skatulla IBYKUS AG 1
2 Inhalt Teil 1: Einführung in die MDSD Was ist MDSD? Was verspricht man sich von MDSD? Einführendes Beispiel Fazit 2
3 Softwareentwicklung mit Modellen Modelle in der Softwareentwicklung schon lange benutzt Analysemodelle, Entwurfsmodelle, Verhaltensmodelle, Prozessmodelle, Structure Charts, State Machines, Flow Charts, E/R-Modelle, Architekturmodelle, Interaktionsmodelle, Zunehmende Verbreitung von Modellen seit UML (Unified Modelling Language) Unterscheidung Modellbasierte Softwareentwicklung Modellgetriebene Softwareentwicklung 3
4 Modellbasierte Softwareentwicklung Modell Dabei geht es in der Regel um Entwurf und Dokumentation von Softwaresystemen Umsetzung des Modells ist ein kreativer Akt der Überwindung von Abstraktionsstufen Lediglich gedankliche Verbindung zwischen Modell und Implementierung Es müssen konkrete (technische) Ausprägungen für ein abstraktes Modell gefunden werden (z.b. technische Klassen ) Nachteile modellbasierter Entwicklung Interpretation Anreicherung Code Da Softwaresysteme sich dynamisch entwickeln, müssen die Modelle mit großem Aufwand aktuell gehalten werden I.d.R. sind Softwaresystem und Modelle inkonsistent, spätestens nach einiger Zeit Modelle spezifizieren Softwaresysteme nur teilweise und müssen durch kreative Interpretation von Programmierern in Code umgesetzt werden Werden von Entwicklern deshalb oft nur als Zwischenergebnis gesehen (nicht ganz zu unrecht), wenn nicht gar als Overhead 4
5 Modellgetriebene Softwareentwicklung (MDSD Model Driven Software Development) Modelle sind gleichzusetzen mit Programmcode Modell Aus den Modellen wird automatisch Code generiert Modelle und Generatoren müssen also alle notwendigen Details enthalten Trennung zwischen Modelle die fachlichen Entscheidungen Generatoren die technische Umsetzung Modelle beziehen sich also immer auf einen bestimmten Fachbereich Domäne Automatische Generierung Code Domänenspezifische Sprache (DSL) Domänenspezifische Abstraktion des fachlichen Bereiches finden Fachbereich so der formalen Modellierung zugänglich machen 5
6 Modellgetriebene Softwareentwicklung (MDSD Model Driven Software Development) Davon verspricht man sich Hohes Automatisierungspotential bei der Softwareentwicklung Automatische Codegenerierung Produktivitätssteigerung Modelländerungen werden schnell (automatisch) in Code umgesetzt Hohe Qualität in der Softwareentwicklung Keine Fehler in handgeschriebenem Code Fehler in Generatoren müssen nur einmal gefixt werden Bessere Wartbarkeit Modelle immer synchron mit Code Trennung von fachlichen und technischen Aspekten Effektivere Entwicklung/Modellierung auf abstrahiertem Niveau Domänespezifische Modelle für Fachexperten besser verständlich, da befreit von technischem Ballast Einführung von MDSD ist ein bedeutender Evolutionsschritt ähnlich dem Übergang von Assembler-Programmierung zu Hochsprachen 6
7 Modellgetriebene Softwareentwicklung (MDSD Model Driven Software Development) Für MDSD werden 3 wesentliche Dinge benötigt Domänenspezifische Sprachen (DSL), zur Formulierung von Modellen Textuell Graphisch Beliebige andere für Fachmodellierer geeignete Formate (z.b. bis hin zu Excel) Transformationssprachen, zur Definition der Abbildung von Modell auf Programmcode Auch Modell Modell Code (schrittweises Absteigen der Abstraktionsebenen) Generatoren/Transformatoren, die durch Anwendung der Transformationsdefinition die Abbildung Modell Modell Code ausführen Auch plattformspezifische Generatoren zur Unterstützung unterschiedlicher Laufzeitumgebungen möglich Meist Erzeugung von Quellcode in einer Programmiersprache der dann compiliert wird 7
8 Rückblick CASE Computer Aided Software Engineering Softwareerstellung mit Hilfe von integrierten Tools, mächtigen Wizards & Vorlagen Integrierte Entwicklungsumgebungen Unterstützung des Entwicklungsprozesses / Life-Cycles Weitgehend vorgegebene Werkzeugkette und Abläufe 4GL 4th Generation Languages Programmiersprachen mit mächtigen Konstrukten Reduzierung der Code-Menge Ausrichtung auf speziellen Anwendungsbereich Table-driven (codeless) Programming: z.b. GUI-Developer mit Property-Tables Report-/Formular-Generatoren Haben sich nicht durchgesetzt Proprietäre, teure Werkzeuge Wurden von standardisierter OO-Modellierung mit UML verdrängt 8
9 UML und IDEs UML Standardisierte Modellierungssprache(n) Unterstützung von Analyse, Design bis Inplementierung Integration in IDEs (Integrated Development Environments) Automatisierung durch Round-Trip-Fähigkeiten Modell Code Konsistenz zwischen Modellen und Code Aber Modell und Code liegen auf gleicher Abstraktionsebene Damit ist das Modell nur eine Darstellung des Codes hübschere graphisch übersichtlichere bei kleinen Modellen (Achtung: Tapeten mit Auto-Layout!!!) Nett zur technischen Dokumentation, nicht für Fach-Dokumentation 9
10 Definition MDSD Modellgetriebene Softwareentwicklung ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen. [Stahl, Völter, Efftinge und Haase: Modellgetriebene Softwareentwicklung, dpunkt, 2007] Formale Modelle Beschränkung auf relevante Aspekte der zu erstellenden Software Vollständige Beschreibung, so daß die Informationen zur Erstellung der Anwendung ausreichen Verschiedene Formalismen möglich UML, textuelle DSLs, graphische DSLs, Excel, Erzeugung lauffähiger Software Nicht nur Dokumentationsmodelle, keine manuelle Implementation der Modelle Generieren von lauffähigem Code in einer Programmiersprache Interpretation von Modellen und Ausführen entsprechender Aktionen 10
11 Definition MDSD Modellgetriebene Softwareentwicklung ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen. [Stahl, Völter, Efftinge und Haase: Modellgetriebene Softwareentwicklung, dpunkt, 2007] Automatisierung Maschinelle Transformation kein manueller Eingriff, keine menschliche Interpretation kein intelligentes, kreatives Ausfüllen von Lücken Wiederholbarkeit der Transformation Keine Wizards, die einmalig ausgeführt werden Keine nachträglichen Änderungen/Weiterentwicklungen am produzierten Code (Konsistenz von Modell und Code) Modelle sind der neue Programmcode! I.d.R. wird es Programmteile geben, die weiterhin programmiert werden Z.B. nicht verallgemeinerbare, spezielle Berechnungsalgorithmen Nicht sinnvoll abstrahierbar, nicht effizient modellierbar Kommentierter Programmcode ist beste Formalisierung Diese Teile isolieren und als Black-Box in das Modell integrieren Weiterhin automatische Erzeugung lauffähiger Software aus Modellen möglich 11
12 Gründe für MDSD Allgemein Verbesserung der Softwarequalität Wiederverwendbarkeit Steigerung der Entwicklungseffizienz Initiale Entwicklung Wartung, Weiterentwicklung Befreiung der Entwickler von lästiger, fehleranfälliger Routinearbeit Beherrschung komplexer Infrastrukturen (Datenbanken, Application-Server, GUI-Frameworks, Protokolle, Schnittstellentechnologien, ) Erzeugung performanter, robuster und wartbarer Anwendungen Speziell Entwickeln auf höherem Abstraktionsniveau Einheitliche Architektur Entwicklungsgeschwindigkeit Wiederverwendung Interoperabilität und Plattformunabhängigkeit Softwarequalität 12
13 Entwickeln auf höherem Abstraktionsniveau Programmieren auf einer höheren Abstraktionsebene Beschreibung mit reichhaltigeren, fachorientierten Konstrukten Formular und Feld statt Window, Widget, Klasse, Tabelle, Spalte Aufteilung der Gesamtkomplexität Komplexität im Modell Durch Modellierungselemente und ihre Zusammenhänge es gibt Formulare und Felder mit bestimmten Eigenschaften ein Formular kann Felder haben Komplexität in der Generierung Durch Abbildung der Modellierungselemente auf ihre Implemetierung Formulare und Felder werden abgebildet auf» Oberflächen-Elemente: Windows, Widgets» Verarbeitungs-Elemente: Klassen, Attribute, Methoden» Speicherungs-Elemente: Tabellen, Spalten 13
14 Entwickeln auf höherem Abstraktionsniveau Programmieren auf einer höheren Abstraktionsebene Beschreibung mit reichhaltigeren, fachorientierten Konstrukten Formular und Feld statt Window, Widget, Klasse, Tabelle, Spalte Aufteilung der Gesamtkomplexität Komplexität im Modell Durch Modellierungselemente und ihre Zusammenhänge Formular 1 n Feld Komplexität in der Generierung Durch Abbildung der Modellierungselemente auf ihre Implementierung Window 1 n Widget Klasse Tabelle 1 n 1 n 1 n Attribut Attribut Spalte 14
15 Entwickeln auf höherem Abstraktionsniveau Abstraktion muß nicht immer technisch sein Abstraktion muß nicht immer einstufig sein Modell auf Abstraktionsebene Förderverwaltung Förderantrag Fachliche Abstraktion Fachliche Abbildung Modell auf Abstraktionsebene Formularverarbeitung Formular Standard- Felder Standardprüfungen... Technische Abstraktion Technische Abbildung Programmcode Klasse Attribut Methode 15
16 Einheitliche Architektur Umsetzung des Modellinhalts erfolgt über Generatoren immer einheitlich in der selben Art und Weise Z.B. auf EJBs, POJOs oder WebServices Keine Verwässerung der Architektur durch Differenzen in manuellen Umsetzungen Architektur wird bestimmt durch Elemente, die das Modell erlaubt (Fachliche Architekur) Generierung, die diese Elemente auf technische Konstrukte umsetzt (Technische Architektur) Architektur ist nicht abhängig von Modellinhalt Wird also immer eingehalten Maximal vorgegebene Architekturvarianten durch Auswahl im Modell Technische Architektur durch Änderung der Generierung veränderbar einheitliche Änderung für alle Anwendungsteile Änderung an einer Stelle konzentriert: Generator/Generierungsdefinition 16
17 Entwicklungsgeschwindigkeit Zeitersparnis beim Eintippen von Quelltexten? Nein Zeit für die Eingabe des Programmcodes ist ohne hin bei nicht-trivialen Projekten verschwindend gering! Nachnutzung existierender Generatoren Nicht bei Individualentwicklungen, da müssen diese ebenfalls entwickelt werden Aber bei Produktfamilien reicht i.d.r. Beschränkung auf Fachmodellierung Selbe Domäne, selbe Architektur, gleiche Zielplattform Entwicklung auf fachlicher Ebene mit höherem Abstraktionsniveau Trennung von fachlicher Modellierung und technischer DSL- und Generatorentwicklung Einbeziehung von Fachexperten in Modellierung, wiederverwendbares formalisiertes Expertenwissen Wartung und Weiterentwicklung von Systemen Konsistenz von Modell und Code, eingehaltene Architektur Änderungen im besten Fall sehr lokal fachlich: Modell technisch: Generierung Beides: DSL + Modell + Generierung 17
18 Wiederverwendung Technische Wiederverwendung Bei Produktfamilien Selbe Domäne Selbe Architektur Gleiche Zielplattform Nachnutzung der DLS Nachnutzung der Generierung (Transformationsdefinition + Generator) Fachliche Wiederverwendung Selbes Modell Änderung der Generierung auf eine andere Zielplattform Analog zur Wiederverwendung von Programmcode natürlich auch Verwendung existierender Modelle per Cut-and-Paste Aufteilung von Modellen in wiederverwendbare Komponentenmodelle Bildung von Produktvarianten mit gemeinsamen Komponenten 18
19 Interoperabilität und Plattformunabhängigkeit Interoperabilität und Plattformunabhängigkeit sind Hauptziele der Model Driven Architecture (MDA), definiert von der Object Management Group (OMG) Aus selbem Modell Codegenerierung für unterschiedliche Zielumgebungen, z.b. JavaEE und.net Per Standardisierung von Modellen UML-Fokusierung Modelhierarchien/Transformationsstufen: PIM (Platform Independent Model) PSM (Platform Specific Model) PDM (Platform Definition Model) Insofern ist MDA eine spezielle Ausprägung von MDSD Oft ist ein 100% automatisches Umschalten auf eine neue Plattform nicht möglich, da Auswirkungen auf das Modell bestehen Aber der Umstieg wird unterstützt, durch Trennung von fachlichen und technischen Aspekten Und gleichzeitige Unterstützung bekannter Plattformen bei Berücksichtigung in Modell und Generierungen ist möglich 19
20 Softwarequalität Einheitliche Architektur kann garantiert werden Durch Generierung ist die Qualität der technischen Funktionalität garantierbar können Fehler in Routine-Code vermieden werden treten Fehler im Generator nach Beseitigung an keiner weiteren Stelle mehr auf Können Fehler auf unterstem technischen Niveau (Segementation Fault) vermieden werden Es ist vermeidbar, daß die Anwendung unhaltbar abstützt, einfriert etc. Fehler können sinnvoll zum Nutzer durchgereicht werden Es kann gesichert werden, daß der Nutzer mit der Fehlfunktion etwas anfangen kann und daß ein Fachbezug des Fehlers besteht Fachliche Fehler, fachliches Chaos lassen sich natürlich nicht ausschließen 20
21 MDSD-Beispiel Hörsaalverwaltung Es ist eine Anwendung zur Hörsaalverwaltung zu entwickeln Es gibt Hörsääle, die durch den Gebäudenamen, die Gebäudeanschrift und die Raumnummer gekennzeichnet sind. Es gibt weiterhin Lehrveranstaltungen, die einen Titel haben und aus (potentiell) mehreren wöchentlichen Terminen bestehen. Jeder Termin belegt zu in einem gewissen Zeitraum einen Hörsaal. Die Anwendung soll Formularmasken zur Erfassung, Bearbeitung und Anzeige, sowie Suchmasken und Ergebnislisten besitzen. Vorgehen Entwickeln eines Meta Modells und einer DSL zur Beschreibung einfacher Formulare, Suchen und Ergebnislisten Modellierung der Anwendung Entwicklung der Generierung 21
22 MDSD-Beispiel Hörsaalverwaltung Textuelle DSL Wir schreiben einfach mal drauf los Formular Hoersaal { }; dann Felder für die Eigenschaften 22
23 MDSD-Beispiel Hörsaalverwaltung Textuelle DSL Wir schreiben einfach mal drauf los Formular Hoersaal { }; Feld Gebaeudename(string); Feld Gebaeudeanschrift(string); Feld Raumnummer(string); noch ein Formular für die Lehrveranstaltungen 23
24 MDSD-Beispiel Hörsaalverwaltung Textuelle DSL Wir schreiben einfach mal drauf los Formular Hoersaal { }; Feld Gebaeudename(string); Feld Gebaeudeanschrift(string); Feld Raumnummer(string); Formular Lehrveranstaltung { Feld Titel(string); }; und ein Unter- Formular für die Termine 24
25 MDSD-Beispiel Hörsaalverwaltung Textuelle DSL Wir schreiben einfach mal drauf los Formular Hoersaal { }; Feld Gebaeudename(string); Feld Gebaeudeanschrift(string); Feld Raumnummer(string); Formular Lehrveranstaltung { Feld Titel(string); Formular Termin { }; }; mit Feldern für die Eigenschaften 25
26 MDSD-Beispiel Hörsaalverwaltung Textuelle DSL Wir schreiben einfach mal drauf los Formular Hoersaal { }; Feld Gebaeudename(string); Feld Gebaeudeanschrift(string); Feld Raumnummer(string); Formular Lehrveranstaltung { Feld Titel(string); Formular Termin { Feld Wochentag(string); Feld StartZeit(time); Feld EndZeit(time); }; }; zum Schluß noch eine Referenz auf den belegten Hörsaal 26
27 MDSD-Beispiel Hörsaalverwaltung Textuelle DSL Wir schreiben einfach mal drauf los Formular Hoersaal { }; Feld Gebaeudename(string); Feld Gebaeudeanschrift(string); Feld Raumnummer(string); Formular Lehrveranstaltung { }; Feld Titel(string); Formular Termin { }; Feld Wochentag(string); Feld StartZeit(time); Feld EndZeit(time); Referenz Belegung(Hoersaal); Zu jedem Formular soll es Zu jedem Formular soll es eine identisch aufgebaute eine identisch aufgebaute Suchmaske und eine Suchmaske und eine Ergebnisliste mit allen Ergebnisliste mit allen Feldern geben. Feldern geben. Generierung 27
28 MDSD-Beispiel Hörsaalverwaltung Graphische DSL Wir hätten auch drauf los malen können Formular: Hörsaal Text-Feld: Gebaeudename Text-Feld: Gebaeudeanschrift Text-Feld: Raumnummer Formular: Lehrveranstaltung Text-Feld: Titel Formular: Hörsaal Text-Feld: Wochentag Zeit-Feld: StartZeit Zeit-Feld: EndZeit Referenz: Belegung 28
29 MDSD-Beispiel Hörsaalverwaltung Meta Modell Wir haben also eine textuelle und eine graphische DSL Jeweils mit dem selben Meta Modell: Formular Parent Name Feld Name Datentyp Referenz Name Target 29
30 MDSD-Beispiel Hörsaalverwaltung Generierung Für die Elemente des Meta Modells muß definiert werden wie auf ihrer Basis eine Anwendung mit entsprechenden Teilen zu generieren ist. Oberflächen-Infrastruktur Menue Window Widget Formular Name Parent Gen Datenfluß Verarbeitungs-Infrastruktur Kontrollfluß Gen Class Atturibute Method Feld Name Datentyp Referenz Name Target Gen Datenbank-Infrastruktur Datenfluß Table Column 30
31 MDSD-Beispiel Hörsaalverwaltung Generierung Z.B. Generierung der Klassen (hier Java-POJOs) per Template Template Notation nach OAW Xpand & Xtend «DEFINE FormTemplate FOR Formular» «FILE name + ".java"» package my.generated.application; class «name» { } «ENDFILE» «ENDDEFINE» «EXPAND AttrTemplate FOREACH feld» «EXPAND RefTemplate FOREACH referenz» «DEFINE AttrTemplate FOR Feld» «datatype» «name».tolower(); «ENDDEFINE» package my.generated.application; class Hoersaal { String gebaeudename; String gebaeudeanschrift; String raumnummer; } 31
32 MDSD-Beispiel Hörsaalverwaltung Generierung mit IBYKUS AP IBYKUS AP ist eine Plattform zur modellgetriebenen Erstellung von Anwendungen im Bereich Vorgangsbearbeitung? Domäne Vorgangsbearbeitung Alles was sich auf Verwaltungsvorgänge mit Formularen abbilden läßt D.h. es gibt als Fachobjekte sog. Sachverhalte (SVH) und Sachverhaltsarten (TY) Ein TY definiert Eine Menge von Feldern für Formular, Suche, Ergebnisliste Eine Menge von Kommandos und Methoden zur Verarbeitung Einen Verarbeitungsablauf Rechte, Ein TY gehört zu einem SVH (bzw. ein TY erbt von einem SVH) Erbt Standardfelder, Standardkommandos, Formular Suche Vordefinierte SVH für typische Klassen von Fachobjekten P (Process): Vorgang mit Statusfeld, Fußabdruck, Weitergeben-Kommando, PP (Process Participant): Vorgangsbeteiligter mit Adresse, Bankverbindung, B (Booking): Buchung mit Betragsfeld, Buchungstext, O (Object): Objekte für Sachdaten noch ein Dutzend mehr TYs können Verbindungen haben Liste Prozedur 32
33 MDSD-Beispiel Hörsaalverwaltung Generierung mit IBYKUS AP IBYKUS AP definiert Eine textuelle DSL TY O veranst 'Lehrveranstaltung PAD titel 'Titel' str Eine formularbasierte DSL Formulare für Sachverhalte, Arten, Felder, Kommandos, Abläufe, Ein Modell-Repository Eine Laufzeitumgebung Oracle als DB-Server und App-Server (Verarbeitung in PL/SQL in der DB) Einen Client für die Anzeige- und Bedienoberfläche Generierungen: aus dem Modell werden vollständige Anwendungen generiert Oberflächenstrukturen: Menüs, Formulare, Suchen, Ergebnislisten, Kommandos im Client Verarbeitungsstrukturen: Suchen, Lesen, Ändern von Datensätzen, Methoden für Berechungen etc., Unterstützung für Zugriffsrechte, Verarbeitungsabläufe mit Schritten und Übergängen, Speicherstrukturen: Abbildung in eine dynamische Tabellenstruktur 33
34 MDSD-Beispiel Hörsaalverwaltung Generierung mit IBYKUS AP D.h. mit einer simplen 1:1-Transformation Formular TY Feld PAD... kann unsere entworfene DSL auf die AP-DSL transformiert werden (M2M Modell-to-Modell-Transformation) Daraus kann mit IBYKUS AP eine vollständige Anwendung generiert werden 34
35 35
36 MDSD-Beispiel Hörsaalverwaltung Beobachtungen Kapselung, Seperation of Concerns, Rollen Fachmodellentwickler Modellieren die zu erstellende Anwendung Konzentrieren sich auf fachliche Problemstellungen Benötigen keine tiefergehenden Kenntnisse der Generierung und der Laufzeitumgebung (Wir konnten die Anwendung modellieren ohne genauer auf die Generierung einzugehen bzw. ohne die Interna von IBYKUS AP zu kennen) Generatorentwickler Erstellen DSL und Generatoren Konzentrieren sich auf die Laufzeitumgebung und technische Parameter Benötigen keine tiefergehenden Kenntnisse der Details der Fachanwendung und der fachlichen Problemstellungen Schnittstelle ist die DSL Welche Fachkonstrukte gibt es Wie spielen die zusammen Welche Eigenschaften/Garantien sind dafür festgelegt (Transaktionsverhalten, Persistenz, Oberfläche, ), die dann technisch garantiert werden müssen (Wir haben festgelegt das es Formulare, Felder und Referenzen gibt und was wir davon erwarten) 36
37 MDSD-Beispiel Hörsaalverwaltung Beobachtungen Build-Prozess Erweiterung des normalen Build-Prozesses durch einen Generierungsschritt am Anfang Änderung der Anwendung erfolgt am Modell Wenn z.b. die Ausstattung der Räume mit technischen Geräten berücksichtigt werden soll Dann muß Modell um das Formular Ausstattung unter Hörsaal mit den entsprechenden Feldern erweitert werden Durch den nächsten Build-Lauf mit Generierung entsteht die geänderte Anwendung D.h. Modelle müssen genau wie Source-Code einer Versionierung unterliegen Einchecken in Sourceverwaltungssysteme Einchecken in Modellrepository 37
38 MDSD-Beispiel Hörsaalverwaltung Beobachtungen Erweiterung der DSL Z.B. Kommandos für Berechnungen fehlen in unserer DSL Da es sich um die Schnittstelle zwischen Fachentwicklung und Generatorentwicklung handelt sollten solche tiefgreifenden Änderungen in kleinen Projekten in einer informalen Projektteambesprechung, in mittleren Projekten von einem Architektur-Gremium und in großen Projekten in einem formalen Prozess besprochen und festgelegt werden Danach in dieser Reihenfolge (idealerweise) Erweiterung der DSL und der Generatoren Testen ob neue Konstrukte funktionieren Testen ob alte Modelle noch funktionieren Erst nach der Freigabe Nutzung der neunen Konstrukte zur Modellierung 38
39 MDSD-Beispiel Hörsaalverwaltung Beobachtungen Nicht generierte Anwendungsteile Für die eben erwähnten Berechnungskommandos werden Methoden in den Klassen der Verarbeitungs-Infrastruktur generiert Wie wird der Berechungsalgorithmus definiert/realisiert? Möglichkeit 1: Entwicklung einer ausdrucksmächtigen Berechungs-DSL Das macht nur Sinn, wenn ausreichendes Abstraktionspotential existiert (wesentlich vereinfachte, verkürzte Ausdrucksweise) Erfinden einer alternativen Notation zur Programmiersprache auf gleichen Abstraktionsniveau macht keinen Sinn (Eine Ausnahme wäre, wenn in mehrere Programmiersprachen generiert werden muß und wenn das über Realisierung und Wartung effektiver erscheint, als die parallele Implementierung in verschiedenen Programmiersprachen.) Möglichkeit 2: i.d.r. werden solche Algorithmen direkt in der Ziel-Sprache entwickelt Neben dem generierten Quelltext existiert somit i.d.r. handgeschriebener Quelltext 39
40 MDSD-Beispiel Hörsaalverwaltung Beobachtungen Umgang mit handgeschriebenen Anwendungsteilen Möglichkeit 1: Integration im Build-Prozess nach der Generierung Dazu müssen zur Compilierung der generierte und der handgeschriebene Source-Code zusammengeführt werden Das funktioniert i.d.r. durch zwei Source-Verzeichnisse src und src-gen auf die der Compiler parallel zugreift (z.b. bei Eclipse), so daß z.b. eine handgeschriebene Klasse in src von einer generierte Basisklasse aus src-gen erben kann 40
41 MDSD-Beispiel Hörsaalverwaltung Beobachtungen Umgang mit handgeschriebenen Anwendungsteilen Möglichkeit 2: heraufziehen des handgeschriebenen Codes als Black-Box in das Modell Source-Cut-Technik Integer berechne(int a, int b) { } int ret; try { // SOURCE-CUT BEGIN ret = a / b; // SOURCE-CUT END } catch Exception e { return null; } return ret; Auch nicht einzeln übersetzbare Codeteile möglich Bessere Möglichkeiten der Steuerung z.b. bei alternativen oder optionalen Code- Stücken 41
42 Fazit Unterschiede und Vorteile von MDSD im Vergleich zum klassischen Vorgehen Einheitliche Architektur durch Gnerierung Fachliche Modellierung in einer DSL mit erhöhtem Abstraktionsgrad Trennung von fachlichen und technischen Aspekten, Kapselung der technischen Plattform-Details in der Generierung Wichtige Teile für MDSD DSL zur Formalisierung der grundlegenden Fachkonstrukte und konkreten Fachinhalte Generator zur Abbildung auf technische Laufzeitplattform Als nächstes Wichtige MDSD-Konzepte 42
Modell Driven Software Development (MDSD)
Modell Driven Software Development (MDSD) Eine Einführung Uni Jena, 2013-04-08 Modelle in der Softwareentwicklung schon lange benutzt Analysemodelle, Entwurfsmodelle, Verhaltensmodelle, Prozessmodelle,
MehrVortrag von: Ilias Agorakis & Robert Roginer
MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile
MehrModel Driven Development im Überblick
Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,
MehrModel Driven Architecture (MDA)
Model Driven Architecture (MDA) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale
MehrModel Driven Architecture Praxisbeispiel
1 EJOSA OpenUSS CampusSource Model Driven Architecture Praxisbeispiel 2 Situation von CampusSource-Plattformen Ähnliche Funktionen (Verwaltung von Studenten und Dozenten, Diskussionsforen,...), jedoch
MehrActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0
Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht
MehrEin Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen
Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Tom Krauß Agenda Begriffsdefinition Verfahren Praktische Beispiele Vergleich und Bewertung Begriffsklärung
MehrModellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH
Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrModel Driven Architecture
Model Driven Architecture Wilhelm Stephan Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Julian Kunkel SommerSemester
MehrProgrammieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine gerrit.beine@sapat.de
Programmieren ohne Programmierer Das GeneSEZ Generator Framework Gerrit Beine gerrit.beine@sapat.de Vogelperspektive Theorie: Model driven software development Praxis: Konzepte von GeneSEZ Lösungen für
MehrCopyright 2014 Delta Software Technology GmbH. All Rights reserved.
Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrSuche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
MehrINNOVATOR im Entwicklungsprozess
Erfahrungsbericht INNOVATOR im Entwicklungsprozess Basis für Host- und Java-Anwendungen Dr. Carl-Werner Oehlrich, Principal Consultant MID GmbH Das Modellierungswerkzeug INNOVATOR Geschäftsprozess-Modellierung
MehrEinführung in Generatives Programmieren. Bastian Molkenthin
Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung
MehrWas ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit
Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool
MehrEinführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012
Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012 Überblick Was sind die Grundprinzipien der modellgetriebenen Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrHandbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen
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
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrAndreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse
Andreas Lux 16.03.2010 Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Warum unterschiedliche Sprachen? Nicht alle Probleme eignen sich, um mit Standardsprachen beschrieben
MehrEin subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen
Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen vorgestellt am 29.09.2008 in der PASS Regionalgruppe Karlsruhe Michael Riedmüller inovex GmbH Project
MehrSoftwareentwicklungsprozess im Praktikum. 23. April 2015
Softwareentwicklungsprozess im Praktikum 23. April 2015 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrObjektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt
Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse
MehrModel Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München, 26.01.2011
Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen OOP München, 26.01.2011 I N H A L T 1. SOA das erste Projekt 2. Prozesse Ergebnisse aus dem Fachbereich 3. Der Business Analyst und BPMN
MehrDokumentation von Ük Modul 302
Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4
MehrDr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht
Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??
MehrGeneratives Programmieren
Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare
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
MehrSEA. Modellgetriebene Softwareentwicklung in der BA
SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA
MehrModellbasierte Softwareentwicklung
CD OCL OD Statechart SD Modellbasierte Softwareentwicklung 7. Evolutionäre Methodik 7.1. Vorgehensmodell Vorlesungsnavigator: Prof. Dr. Bernhard Rumpe Sprache Codegen. http://www.se-rwth.de/ Testen Evolution
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrC++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang
Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige
MehrSystemdenken und Gestaltungsmethodik System-Modellierung
Systemdenken und Gestaltungsmethodik System-Modellierung Prof. Dr.-Ing. Stefan Brunthaler TFH Wildau 2008ff Master Telematik Ausgangsbasis Es liegt ein kosten-nutzen-optimales Lösungskonzept vor. Die Architektur
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
MehrInhalt. Motivation Techniken des MDE. Fallbeispiele
ISE-Seminar 2012 Inhalt Motivation Techniken des MDE Computer Aided Software Engineering (CASE) Domain-Specific-Languages (DSL) Model Driven Architecture (MDA) Fallbeispiele Motivation Automatische Codegenerierung
MehrIndividuelle Erweiterung des generierten Codes. 16. Januar 2013
Individuelle Erweiterung des generierten Codes 16. Januar 2013 Überblick Welche Möglichkeiten zur individuellen Erweiterung von generiertem Code gibt es? Innerhalb eines Moduls (Klasse) Auf Modulebene
MehrEinstieg in Exact Online Buchungen erfassen. Stand 05/2014
Einstieg in Exact Online Buchungen erfassen Stand 05/2014 Einstieg und Grundprinzip... 2 Buchungen erfassen... 3 Neue Buchung eingeben... 4 Sonstige Buchungen erfassen... 8 Bestehende Buchungen bearbeiten
MehrGenerative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009
Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Gliederung 1. Generative Programmierung 2. Möglichkeiten und Einsatzgebiet 3. Prozess / Tools 4. Zusammenfassung 19.03.2009 GENERATIVE PROGRAMMIERUNG
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
MehrAnforderungen an die HIS
Anforderungen an die HIS Zusammengefasst aus den auf IBM Software basierenden Identity Management Projekten in NRW Michael Uebel uebel@de.ibm.com Anforderung 1 IBM Software Group / Tivoli Ein Feld zum
MehrNovell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme
Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client
MehrProseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller
Proseminar: Website-Managment-System NetObjects Fusion von Christoph Feller Netobjects Fusion - Übersicht Übersicht Einleitung Die Komponenten Übersicht über die Komponenten Beschreibung der einzelnen
MehrDiese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.
Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,
Mehr1 Konto für HBCI/FinTS mit Chipkarte einrichten
1 Konto für HBCI/FinTS mit Chipkarte einrichten Um das Verfahren HBCI/FinTS mit Chipkarte einzusetzen, benötigen Sie einen Chipkartenleser und eine Chipkarte. Die Chipkarte erhalten Sie von Ihrem Kreditinstitut.
MehrIst Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers
Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,
Mehr09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)
Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)
MehrFachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
MehrSoftware-Qualität im Rahmen modellgetriebener Softwareentwicklung
Software-Qualität im Rahmen modellgetriebener Softwareentwicklung OFFIS Technologiecluster Enterprise Application Integration niels.streekmann@offis.de 09.07.2008 Seite 1 / 13 Software-Qualität: Unterschiedliche
MehrMit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
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
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
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
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
MehrContent Management System mit INTREXX 2002.
Content Management System mit INTREXX 2002. Welche Vorteile hat ein CM-System mit INTREXX? Sie haben bereits INTREXX im Einsatz? Dann liegt es auf der Hand, dass Sie ein CM-System zur Pflege Ihrer Webseite,
MehrThe ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung
The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen
Mehr10 Erweiterung und Portierung
10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle
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
MehrSoftwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch
Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich
MehrÜbung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
MehrA Domain Specific Language for Project Execution Models
A Domain Specific Language for Project Execution Models Eugen Wachtel, Marco Kuhrmann, Georg Kalus Institut für Informatik Software & Systems Engineering Inhalt Einführung und Hintergrund Problembereiche
MehrFormale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
MehrIn diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.
In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
MehrIntegration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.
Integration mit Die Integration der AristaFlow Business Process Management Suite (BPM) mit dem Enterprise Information Management System FILERO (EIMS) bildet die optimale Basis für flexible Optimierung
MehrPrint2CAD 2017, 8th Generation. Netzwerkversionen
Installation der Netzwerkversion Kazmierczak Software Print2CAD 2017, 8th Generation Print2CAD 2017, 8th Generation Netzwerkversionen Einführung Installationshinweise Die Programme von Kazmierczak Software
MehrIhre Interessentendatensätze bei inobroker. 1. Interessentendatensätze
Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit
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
MehrAutorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente
Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung
MehrKurzeinführung Excel2App. Version 1.0.0
Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig
MehrFassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
MehrStellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
MehrKurzanleitung zu. von Daniel Jettka 18.11.2008
Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation
Mehrschnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv
Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag
MehrHandbuch zum Excel Formular Editor
Handbuch zum Excel Formular Editor Mit diesem Programm können Sie die Zellen von ihrer Excel Datei automatisch befüllen lassen. Die Daten können aus der Coffee Datenbank, oder einer weiteren Excel Datendatei
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?
Mehr1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.
Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,
MehrEs war einmal... "StudyING: Welten bewegen - Welten gestalten"
Computer, generiere! Christian Schröder Fachbereich Elektrotechnik und Informationstechnik Fachhochschule Bielefeld christian.schroeder@fh-bielefeld.de Es war einmal... Es war einmal... ein Bauvorhaben!
MehrEinführung in Eclipse und Java
Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Mehrgallestro BPM - weit mehr als malen...
Ob gallestro das richtige Tool für Ihr Unternehmen ist, können wir ohne weitere rmationen nicht beurteilen und lassen hier die Frage offen. In dieser rmationsreihe möchten wir Ihre Entscheidungsfindung
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
Mehr1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software
1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.
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
MehrProxy. Krishna Tateneni Übersetzer: Stefan Winter
Krishna Tateneni Übersetzer: Stefan Winter 2 Inhaltsverzeichnis 1 Proxy-Server 4 1.1 Einführung.......................................... 4 1.2 Benutzung.......................................... 4 3 1
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrEr musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt
Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen
MehrJava Enterprise Architekturen Willkommen in der Realität
Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen
MehrQt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
MehrEasyWk DAS Schwimmwettkampfprogramm
EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage
MehrZENITY - Die Software für Ihre Unternehmens-Releaseplanung
ZENITY - Die Software für Ihre Unternehmens-Releaseplanung RELEASEPLANUNG HEUTE Heutige Anwendungen in in Grossunternehmen sind sind keine keine alleinstehenden alleinstehenden Insel-Applikationen Insel-Applikationen
Mehr3. GLIEDERUNG. Aufgabe:
3. GLIEDERUNG Aufgabe: In der Praxis ist es für einen Ausdruck, der nicht alle Detaildaten enthält, häufig notwendig, Zeilen oder Spalten einer Tabelle auszublenden. Auch eine übersichtlichere Darstellung
MehrAccess [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten
Berichte bieten die gleichen Möglichkeit zur Berechnung von Werten wie Formulare und noch einige mehr. Im Gegensatz zu Formularen bieten Berichte die Möglichkeit, eine laufende Summe zu bilden oder Berechnungen
MehrSummenbildung in Bauteiltabellen mit If Then Abfrage
Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle
MehrAnwendungsbeispiele Buchhaltung
Kostenstellen in Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Kostenstellen 1.1 Was sind Kostenstellen? 1.2 Kostenstellen in der 2 Kostenstellen in Webling 2.1 Kostenstellen erstellen
Mehr