Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Größe: px
Ab Seite anzeigen:

Download "Modellgetriebene Softwareentwicklung bei der IBYKUS AG"

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) Modell Driven Software Development (MDSD) Eine Einführung Uni Jena, 2013-04-08 Modelle in der Softwareentwicklung schon lange benutzt Analysemodelle, Entwurfsmodelle, Verhaltensmodelle, Prozessmodelle,

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag 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

Mehr

Model Driven Development im Überblick

Model 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,

Mehr

Model Driven Architecture (MDA)

Model 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

Mehr

Model Driven Architecture Praxisbeispiel

Model 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

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. 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

Mehr

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

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene 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

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik 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,

Mehr

Model Driven Architecture

Model 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

Mehr

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

Mehr

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 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

Mehr

Einführung in. Logische Schaltungen

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

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche 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

Mehr

INNOVATOR im Entwicklungsprozess

INNOVATOR 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

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

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

Mehr

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

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

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

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

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch 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

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten 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

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. 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

Mehr

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

Mehr

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

Mehr

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Softwareentwicklungsprozess 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

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter 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

Mehr

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

Mehr

Dokumentation von Ük Modul 302

Dokumentation 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

Mehr

Dr. 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 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??

Mehr

Generatives Programmieren

Generatives Programmieren Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 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

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. 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

Mehr

Modellbasierte Softwareentwicklung

Modellbasierte 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

Mehr

Datenbanken Kapitel 2

Datenbanken 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,

Mehr

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

C++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

Mehr

Systemdenken und Gestaltungsmethodik System-Modellierung

Systemdenken 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 Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement

Mehr

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Inhalt. 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

Mehr

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Individuelle 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

Mehr

Einstieg in Exact Online Buchungen erfassen. Stand 05/2014

Einstieg 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

Mehr

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009

Generative 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

Ü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

Mehr

Anforderungen an die HIS

Anforderungen 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

Mehr

Novell 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. 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

Mehr

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

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

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese 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,

Mehr

1 Konto für HBCI/FinTS mit Chipkarte einrichten

1 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.

Mehr

Ist 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? 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,

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.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)

Mehr

Vorlesung Programmieren

Vorlesung 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)

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht 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

Mehr

Java Entwicklung für Embedded Devices Best & Worst Practices!

Java 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

Mehr

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung

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

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit 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

Mehr

teischl.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 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

Mehr

Objektbasierte Entwicklung

Objektbasierte 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

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden 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

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle 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

Content Management System mit INTREXX 2002.

Content 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,

Mehr

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

The 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

Mehr

10 Erweiterung und Portierung

10 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

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile 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

Mehr

Softwaretests 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 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 Ü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

Mehr

A Domain Specific Language for Project Execution Models

A 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

Mehr

Formale Sprachen und Grammatiken

Formale 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

Mehr

In 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. 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

Mehr

Einführung in PHP. (mit Aufgaben)

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

Mehr

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Integration 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

Mehr

Print2CAD 2017, 8th Generation. Netzwerkversionen

Print2CAD 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

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre 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

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. 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

Mehr

Kurzeinführung Excel2App. Version 1.0.0

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

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. 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

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen 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.

Mehr

Kurzanleitung zu. von Daniel Jettka 18.11.2008

Kurzanleitung 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

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell 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

Mehr

Handbuch zum Excel Formular Editor

Handbuch 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

Mehr

Reporting Services und SharePoint 2010 Teil 1

Reporting 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?

Mehr

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1. 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,

Mehr

Es war einmal... "StudyING: Welten bewegen - Welten gestalten"

Es 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!

Mehr

Einführung in Eclipse und Java

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

Mehr

Objektorientierte Programmierung

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

Mehr

gallestro BPM - weit mehr als malen...

gallestro 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

Mehr

Software Engineering Klassendiagramme Assoziationen

Software 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

Mehr

1. 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 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.

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. 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

Mehr

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Proxy. 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

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (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

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er 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

Mehr

Java Enterprise Architekturen Willkommen in der Realität

Java 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

Mehr

Qt-Projekte mit Visual Studio 2005

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

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk 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

Mehr

ZENITY - Die Software für Ihre Unternehmens-Releaseplanung

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

Mehr

3. GLIEDERUNG. Aufgabe:

3. 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

Mehr

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Access [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

Mehr

Summenbildung in Bauteiltabellen mit If Then Abfrage

Summenbildung 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

Mehr

Anwendungsbeispiele Buchhaltung

Anwendungsbeispiele 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