Softwareproduktlinien - Komponenten und Frameworks
|
|
- Mona Meissner
- vor 8 Jahren
- Abrufe
Transkript
1 Softwareproduktlinien - Komponenten und Frameworks Christian Kästner (CMU) Sven Apel (Universität Passau) Gunter Saake, Thomas Thüm (Universität Magdeburg) 1
2 Wiederholung: Konfigurationsmanagement und Präprozessoren Variabilität zur Übersetzungszeit Versionsverwaltungssysteme Nur für wenig Varianten geeignet, dafür etabliert Flexible Kombination von Features nicht möglich Build-Systeme Einfacher Mechanismus mit hoher Flexibilität Entwicklung von Varianten getrennt (keine einzelnen Features) Änderungen auf Dateiebene (eingeschränkte Wiederverwendbarkeit) Präprozessoren Einfaches Muster: markieren und entfernen Standard-Tools, hohe Flexibilität, feine Granularität, Feature-basiert Fehleranfällig, schwer lesbar, scattering/tangling, Wie können Features modular implementiert werden? 2
3 Wie Variabilität modular implementieren? Domain Eng. Feature-Modell Wiederverwendbare Implementierungsartefakte Application Eng. Feature-Auswahl Generator Fertiges Program 3
4 4 Komponenten
5 Komponente Abgeschlossene modulare Implementierungseinheit mit Schnittstelle (black box); bietet einen Dienst an Wird zusammen mit anderen Komponenten auch von anderen Herstellern zusammengesetzt zu Softwaresystemen (Komposition) Einzeln vermarktbar und lauffähig Kontext (z. B. JavaEE, CORBA, COM+/DCOM, OSGi) und Abhängigkeiten (imports, exports) explizit spezifiziert Klein genug für Erzeugung und Wartung in einem Stück, groß genug um sinnvolle Funktion bieten zu können 5
6 Komponenten vs. Objekte/Klassen Ähnliche Konzepte: Kapselung, Interfaces, Geheimnisprinzip Objekte strukturieren ein Problem Komponenten bieten wiederverwendbare Teilfunktionalität Objekte sind üblicherweise kleiner als Komponenten: Komponenten skalieren Objektorientierung Objekte haben häufig viele Abhängigkeiten zu anderen Objekten; Komponenten haben wenig Abhängigkeiten Interfaces von Objekten sind häufig implementierungsnah; Komponenten abstrahieren mehr 6
7 Vision: Märkte für Komponenten Komponenten können gekauft und in eigene Produkte integriert werden Best of Breed: Entwickler kann für jedes Teilsystem den besten/billigsten Anbieter auswählen Anbieter können sich auf Kernkompetenz beschränken und diese als Komponente(n) anbieten 7
8 Komponenten eines Webshops (UML-Notation) Bestellen Großhändler Kunde anlegen Adresse ändern Kundenverwaltung Rechnung drucken Reportgenerator Einkäufe Katalog verwalten Webshop Rechnung schreiben Finanzbuchhaltung Entnehmen Einlagern Lagerhaltung Szenario: Kunde anlegen Einkauf Rechnung schreiben Rechnung drucken 8
9 Produktlinien aus Komponenten Features werden in verschiedenen Komponenten implementiert z. B. die Komponenten Transaktionsverwaltung, Log/Recovery, Pufferverwaltung, Optimierer Komponenten können ggf. Laufzeitvariabilität enthalten Durch Feature-Auswahl werden Komponenten ausgewählt (mapping) Der Entwickler muss Komponenten verbinden (glue code) 9
10 Produktlinien aus Komponenten Feature-Modell Mapping von Features zu Komponenten Komponentensammlung Component10 Component6 Component2 Component12 Component5 Component1 Component9 Feature-Auswahl als Eingabe Component3 Component7 Component4 Component8 Component11 Component2 Entwickler baut fertiges Programm aus Komponenten Component6 Component9 Component8 Feature-Auswahl Komponentenauswahl Menge von Komponenten Fertiges Program 11
11 Wie Komponenten bestimmen? Markt für beliebige Komponenten funktioniert nicht Zu kleine Komponenten hoher Aufwand Zu große Komponenten kaum wiederverwendbar Produktlinien liefern nötige Domänenanalyse Welche Teilfunktionalität wird in welcher Granularität wiederverwendet Systematische Wiederverwendung 12 (Tangram)
12 Bewertung: Produktlinien aus Komponenten In der Industrie üblich (Beispiel: Heimelektronik mit Koala-Komponenten von Phillips) Produktlinien zum Domain Engineering, zur Organisation der Entwicklung, Systematische (geplante) Wiederverwendung von Komponenten Keine vollständige Automatisierung, hoher Entwicklungsaufwand (glue code) im Application Engineering Keine freie Feature-Auswahl 14
13 Diskussion: Modularität Komponenten verstecken interne Implementierung Idealerweise kleine Interfaces Feature-Kohäsion aber Grobe Granularität Seitenwechselstrategien, Suchalgorithmen, Locking im B-Baum, oder VARCHAR als Komponente? Farben oder gewichtete Kanten im Graph als Komponenten? Funktionalität ggf. schwer als Komponente zu kapseln Transaktionsverwaltungskomponente? 15
14 Services Ähnlich zu Komponenten: kapseln Teilfunktionalität (Dienste) i.d.r. verteiltes Szenario Bus-Kommunikation, Web Services, SOAP, REST Produktlinien durch Verbinden von Services, i.d.r. mit Orchestrierung (Workflow-Sprachen wie BPEL) Viele Werkzeuge verfügbar (teils managementgerecht ) 16
15 17 Frameworks
16 Frameworks Menge abstrakter und konkreter Klassen Abstrakte Struktur, die für einen bestimmten Zweck angepasst/erweitert werden kann vgl. Template Method Pattern und Strategy Pattern Wiederverwendbare Lösung für eine Problemfamilie in einer Domäne Punkte an denen Erweiterungen vorgesehen sind: hot spots (auch variation points, extension points) Umkehrung der Kontrolle, das Framework bestimmt die Ausführungsreihenfolge Hollywood-Prinzip: Don t call us, we ll call you. 18
17 Plug-ins Erweiterung eines Frameworks Spezielle Funktionen bei Bedarf hinzufügen Üblicherweise getrennt kompiliert; third-party Beispiele: -Programme, Grafikprogramme, Media- Player, Web browser 19
18 Web Portal Webapplikation- Frameworks wie Struts, die grundlegende Konzepte vorgeben und vorimplementieren Entwickler konzentrieren sich auf Anwendungslogik statt Navigation zwischen Webseiten <?php class WebPage { function getcssfiles(); function getmoduletitle(); function hasaccess(user u); function printpage();?> <?php class ConfigPage extends WebPage { function getcssfiles() { function getmoduletitle() { return Configuration ; function hasaccess(user u) { return user.isadmin(); function printpage() { print <form><div> ;?> 20
19 Eclipse Eclipse als Framework für IDEs Nur sprachspezifische Erweiterungen (Syntax Highlighting, Compiler) müssen implementiert werden Der gemeinsame Teil (Editoren, Menüs, Projekte, Verzeichnisbaum, Copy & Paste & Undo Operationen, CVS, uvm.) ist durch das Framework vorgegeben Framework aus vielen kleineren Frameworks 21
20 Eclipse JDT WTP SAPinst Workbench Build Debug Edit JUnit Refactor Launch Platform Ant IDE Cheat Sheets Search Debug Team Help Update Views Resources Console Editors Forms Text Editors Compare J2EE Web Control Items Component Messages Resourcepool Dialogs Weitere Erweiterungen Table Script Meta-Dialogs Prerequisite C. Rich Client Platform Workbench Help JFace Core Runtime OSGi SWT 22
21 Weitere Framework-Beispiele Frameworks für graphische Benutzeroberflächen, z.b. MacApp, Swing, SWT, MFC Multimedia-Frameworks, z.b. DirectX Instant Messenger-Frameworks, z.b. Miranda, Trillian,... Compiler-Frameworks, z.b. Polyglot, abc, JastAddJ 23
22 Framework-Implementierung: Mini-Beispiel Familie von Dialogen, bestehend aus Textfeld und Button 90% des Quelltexts sind gleich Main Methode Initialisierung von Fenster, Textfeld und Button Layout Schließen des Fensters 24
23 Taschenrechner public class Calc extends JFrame { private JTextField textfield; public static void main(string[] args) { new Calc().setVisible(true); public Calc() { init(); protected void init() { JPanel contentpane = new JPanel(new BorderLayout()); contentpane.setborder(new BevelBorder(BevelBorder.LOWERED)); JButton button = new JButton(); button.settext("calculate"); contentpane.add(button, BorderLayout.EAST); textfield = new JTextField(""); textfield.settext("10 / 2 + 6"); textfield.setpreferredsize(new Dimension(200, 20)); contentpane.add(textfield, BorderLayout.WEST); button.addactionlistener(/* code zum berechnen */); this.setcontentpane(contentpane); this.pack(); this.setlocation(100, 100); this.settitle("my Great Calculator"); // code zum schliessen des fensters 25
24 White-Box Frameworks Erweiterung durch Überschreiben und Hinzufügen von Methoden (vgl. Template Method Pattern) Interna des Framework müssen verstanden werden schwierig zu lernen Flexible Erweiterung Viele Subklassen nötig u.u. unübersichtlich Status direkt verfügbar durch Superklasse Keine Plug-ins, nicht getrennt kompilierbar 26
25 Taschenrechner als Whitebox-Framework public abstract class Application extends JFrame { protected abstract String getapplicationtitle(); //Abstrakte Methoden protected abstract String getbuttontext(); protected String getinititaltext() {return ""; protected void buttonclicked() { private JTextField textfield; public Application() { init(); protected void init() { JPanel contentpane = new JPanel(new BorderLayout()); contentpane.setborder(new BevelBorder(BevelBorder.LOWERED)); JButton button = new JButton(); button.settext(getbuttontext()); contentpane.add(button, BorderLayout.EAST); textfield = new JTextField(""); textfield.settext(getinititaltext()); textfield.setpreferredsize(new Dimension(200, 20)); contentpane.add(textfield, BorderLayout.WEST); button.addactionlistener(/* buttonclicked(); */); this.setcontentpane(contentpane); this.pack(); this.setlocation(100, 100); this.settitle(getapplicationtitle()); // code zum schliessen des fensters protected String getinput() { return textfield.gettext(); 27
26 Taschenrechner als Whitebox-Framework public abstract class Application extends JFrame { protected abstract String getapplicationtitle(); //Abstrakte Methoden protected abstract String getbuttontext(); protected String getinititaltext() {return ""; protected void buttonclicked() { private JTextField textfield; public Application() { init(); public class Calculator extends Application { protected void init() { protected String getbuttontext() { return "calculate"; JPanel contentpane = new JPanel(new BorderLayout()); protected String getinititaltext() { return "(10 3) * 6"; contentpane.setborder(new BevelBorder(BevelBorder.LOWERED)); protected void buttonclicked() { JButton button = new JButton(); JOptionPane.showMessageDialog(this, "The result of "+getinput()+ button.settext(getbuttontext()); " is "+calculate(getinput())); contentpane.add(button, BorderLayout.EAST); protected String getapplicationtitle() { return "My Great Calculator"; textfield = new JTextField(""); public static void main(string[] args) { textfield.settext(getinititaltext()); new Calculator().setVisible(true); textfield.setpreferredsize(new Dimension(200, 20)); contentpane.add(textfield, BorderLayout.WEST); button.addactionlistener(/* buttonclicked(); */); public this.setcontentpane(contentpane); class Ping extends Application { this.pack(); protected String getbuttontext() { return "ping"; this.setlocation(100, protected String 100); getinititaltext() { return " "; this.settitle(getapplicationtitle()); protected void buttonclicked() { /* */ // code zum protected schliessen String des getapplicationtitle() fensters { return "Ping"; public static void main(string[] args) { protected String getinput() new { return Ping().setVisible(true); textfield.gettext(); 28
27 Black-Box Frameworks Einbinden des anwendungsspezifischen Verhalten durch Komponenten mit speziellem Interface (plug-in) vgl. Strategy Pattern, Observer Pattern Nur das Interface muss verstanden werden einfacher zu lernen, aber aufwendiger zu entwerfen Flexibilität durch bereitgestellte Hot Spots festgelegt, häufig Design Patterns Status nur bekannt wenn durch Interface verfügbar Insgesamt besser wiederverwendbar (?) 29
28 Taschenrechner public class Application extends JFrame { private JTextField textfield; private Plugin plugin; public Application(Plugin p) { this.plugin=p; p.setapplication(this); init(); protected void init() { JPanel contentpane = new JPanel(new BorderLayout()); public interface Plugin { contentpane.setborder(new BevelBorder(BevelBorder.LOWERED)); String getapplicationtitle(); JButton button = new JButton(); String getbuttontext(); if (plugin!= null) String getinititaltext(); button.settext(plugin.getbuttontext()); void buttonclicked() ; else void setapplication(application app); button.settext("ok"); contentpane.add(button, BorderLayout.EAST); textfield = new JTextField(""); if (plugin!= null) textfield.settext(plugin.getinititaltext()); textfield.setpreferredsize(new Dimension(200, 20)); contentpane.add(textfield, BorderLayout.WEST); if (plugin!= null) button.addactionlistener(/* plugin.buttonclicked(); */); this.setcontentpane(contentpane); public String getinput() { return textfield.gettext(); 30
29 Taschenrechner public class Application extends JFrame { private JTextField textfield; private Plugin plugin; public Application(Plugin p) { this.plugin=p; p.setapplication(this); init(); protected void init() { JPanel contentpane = new JPanel(new BorderLayout()); public interface Plugin { contentpane.setborder(new BevelBorder(BevelBorder.LOWERED)); String getapplicationtitle(); JButton button = new JButton(); String getbuttontext(); if (plugin!= null) String getinititaltext(); button.settext(plugin.getbuttontext()); void buttonclicked() ; else void setapplication(application app); button.settext("ok"); contentpane.add(button, BorderLayout.EAST); textfield = new JTextField(""); public class CalcPlugin implements Plugin { if (plugin!= null) private Application application; textfield.settext(plugin.getinititaltext()); public void setapplication(application app) { this.application = app; textfield.setpreferredsize(new Dimension(200, public String 20)); getbuttontext() { return "calculate"; contentpane.add(textfield, BorderLayout.WEST); public String getinititaltext() { return "10 / 2 + 6"; if (plugin!= null) public void buttonclicked() { button.addactionlistener(/* JOptionPane.showMessageDialog(null, plugin.buttonclicked(); */); "The result of " this.setcontentpane(contentpane); + application.getinput() + " is " + calculate(application.gettext())); public String getapplicationtitle() { return "My Great Calculator"; public String getinput() { return textfield.gettext(); class CalcStarter { public static void main(string[] args) { new Application(new CalcPlugin()).setVisible(true); 31
30 public class Application extends JFrame implements InputProvider { private JTextField textfield; private Plugin plugin; public Application(Plugin p) { this.plugin=p; p.setapplication(this); init(); Weitere Entkopplung moeglich public interface InputProvider { String getinput(); protected void init() { JPanel contentpane = new JPanel(new BorderLayout()); public interface Plugin { contentpane.setborder(new BevelBorder(BevelBorder.LOWERED)); String getapplicationtitle(); JButton button = new JButton(); String getbuttontext(); if (plugin!= null) String getinititaltext(); button.settext(plugin.getbuttontext()); void buttonclicked() ; else void setapplication(inputprovider app); button.settext("ok"); contentpane.add(button, BorderLayout.EAST); textfield = new JTextField(""); public class CalcPlugin implements Plugin { if (plugin!= null) private InputProvider application; textfield.settext(plugin.getinititaltext()); public void setapplication(inputprovider app) { this.application = app; textfield.setpreferredsize(new Dimension(200, public String 20)); getbuttontext() { return "calculate"; contentpane.add(textfield, BorderLayout.WEST); public String getinititaltext() { return "10 / 2 + 6"; if (plugin!= null) public void buttonclicked() { button.addactionlistener(/* JOptionPane.showMessageDialog(null, plugin.buttonclicked(); */); "The result of " this.setcontentpane(contentpane); + application.getinput() + " is " + calculate(application.getinput())); public String getapplicationtitle() { return "My Great Calculator"; public String getinput() { return textfield.gettext(); class CalcStarter { public static void main(string[] args) { new Application(new CalcPlugin()).setVisible(true); 32
31 Plug-ins laden Typisch für viele Frameworks: Plug-in Loader sucht in Verzeichnis nach DLL/Jar/XML Dateien testet ob Datei ein Plug-in implementiert prüft Abhängigkeiten initialisiert Plug-in Häufig zusätzlich GUI für Plugin-Konfiguration Beispiele: Eclipse (plugin-verzeichnis + Jar) Miranda (plugins-verzeichnis + DLL) Alternativ: Plug-ins in Konfigurationsdatei festlegen oder Starter-Programm generieren 33
32 Beispiel Plugin Loader (benutzt Java Reflection) public class Starter { public static void main(string[] args) { if (args.length!= 1) System.out.println("Plugin name not specified"); else { String pluginname = args[0]; try { Class<?> pluginclass = Class.forName(pluginName); new Application((Plugin) pluginclass.newinstance()).setvisible(true); catch (Exception e) { System.out.println("Cannot load plugin " + pluginname + ", reason: " + e); 34
33 Mehrere Plug-ins vgl. Observer Pattern Mehrere Plug-ins laden und registrieren Bei Ereignis alle Plug-ins informieren Für unterschiedliche Aufgaben: spezifische Plug-in-Schnittstellen public class Application { private List<Plugin> plugins; public Application(List<Plugin> plugins) { this.plugins=plugins; for (Plugin plugin: plugins) plugin.setapplication(this); public Message processmsg (Message msg) { for (Plugin plugin: plugins) msg = plugin.process(msg);... return msg; 35
34 Frameworks für Produktlinien Domain Eng. Feature-Modell Mapping von Features zu Plug-ins Framework + Plugins Application Eng. Feature-Auswahl Feature-Auswahl als Eingabe Plug-in-Auswahl (und ggf. Startkonfiguration generieren) Anwendung = Framework mit passenden Plugins 36
35 Frameworks für Produktlinien Bewertung Vollautomatisierung möglich Modularität Praxiserprobt Erstellungsaufwand und Laufzeit-Overhead für Framework/Architektur Framework-Design erfordert Erfahrung Schwierige Wartung, Evolution Preplanning Problem Grobe Granularität oder riesige Interfaces 37 Plug-in für Transaktionsverwaltung oder gewichtete Kanten? Problem der Querschneidenden Belange
36 Zusammenfassung Modularisierung von Features mit Komponenten und Frameworks Laufzeitoverhead, grobe Granularität Grenzen bei querschneidenen Belangen und feiner Granularität Modularität erfordert Planung Nicht für alle Produktlinien geeignet (z.b. Graph-Bibliothek, eingebettete Datenbanken) 38
37 Ausblick Neue Programmierkonzepte Analyse Objekt-Orientierung und deren Grenzen Feature-Orientierung Aspekt-Orientierung 39
38 Literatur S. Apel, D. Batory, C. Kästner, and G. Saake. Feature-Oriented Software Product Lines - Concepts and Implementation. Springer, Section 4.3: Frameworks Section 4.4: Components and Services C. Szyperski: Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998 [Standardwerk Komponentenorientierte Softwareentwicklung] R. Johnson and B. Foote, Desiging reusable classes, Journal of Object-Oriented Programming, 1(2):22-35, 1988 [OOP Wiederverwendung, insb. Frameworks] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, Addison-Wesley, 2003 [Architekturgetriebene Produktlinien, typischerweise Frameworks] 40
Softwareproduktlinien Teil 6: Komponenten und Frameworks
Softwareproduktlinien Teil 6: Komponenten und Frameworks Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) 1 Wie Variabilität modular implementieren?
MehrErweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung. Teil 4. Frameworks
Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 4 Präprozessoren, ren, Komponenten, Frameworks Christian Kästner (Universität Magdeburg) Gunter Saake (Universität Magdeburg) Erweiterte
MehrSoftwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme
Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) 1 Application Eng. Domain
MehrSoftwareproduktlinien - Versionsverwaltungs- und Buildsysteme
Softwareproduktlinien - Versionsverwaltungs- und Buildsysteme Christian Kästner (Carnegie Mellon University) Sven Apel (Universität Passau) Gunter Saake, Martin Kuhlemann (Universität Magdeburg) 1 Application
MehrModerne Programmierparadigmen Objekt-Orientierung
Moderne Programmierparadigmen Objekt-Orientierung Sven Apel (Universität Passau) Christian Kästner (Universität Magdeburg) Sven Apel, Christian Kästner Moderne Programmierparadigmen Folie 2 Agenda Historie
MehrSoftwareproduktlinien. Christian Kästner
Softwareproduktlinien Christian Kästner 1 Agenda Einfuehrung Produktlinien (inkl Herausford.) Wiederverwendung von Komponenten Domain Engineering und Automatisiertes Application Engineering Implementierung
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrSoftware Product Lines
Software Product Lines Concepts, Analysis and Implementation Programmier-Paradigmen für Software-Produktlinien (1/3) ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrObjektorientierte Softwareentwicklung
Objektorientierte Softwareentwicklung Exkurs GUI-Programmierung mit Java-SWING Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Für Hinweise und konstruktive Kritik
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
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
MehrBenutzeroberflächen. Java Teil 4
Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in
MehrWillkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java
Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen
MehrZentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
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
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
MehrSoftware Engineering II
Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters
MehrObjektorientierte Software-Entwicklung
Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine
MehrGrundlagen der Programmierung APPLETS
Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets
Mehreclipse und Komponenten
Christian bossk Holle & Markus Breitländer Fh-Dortmund Fb Informatik SS04 Geschichte von eclipse April 1999 Eclipse wird von OTI und IBM entwickelt November 2001 Eclipse wird Open Source Lizensiert unter
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
Mehram Beispiel von JUnit
Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern
MehrGUI Programmierung mit JAVA Swing
GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische
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
MehrKap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster
Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.
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
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrTesten von graphischen Benutzeroberflächen. 26. Juni 2013
Testen von graphischen Benutzeroberflächen 26. Juni 2013 Überblick Testarten Methoden-, Klassen-, Komponenten-, Systemtests Motivation für automatisches Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien
MehrTesten von graphischen Benutzeroberflächen. 24. Juni 2015
Testen von graphischen Benutzeroberflächen 24. Juni 2015 Überblick Motivation für das automatische Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode
MehrGraphische Benutzungsoberflächen
Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen
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
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrDie Eclipse Rich Client Platform. Martin Lippert Consultant und Coach lippert@acm.org
Die Eclipse Rich Client Platform Martin Lippert Consultant und Coach lippert@acm.org Historisches Eclipse is a universal platform for integrating development tools Plugin Development Environment PDE Java
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen
1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrComparing Software Factories and Software Product Lines
Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich
MehrEignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner www.inventage.com
Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner www.inventage.com Eignet sich Eclipse RCP als Enterprise Plattform? Einführung Demos Corporate Governance Asset
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrAbteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2
Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrDrucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC
Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC Progwerkstatt Philipp Güttler, Christoph Schied, Nicolai Waniek 01.12.2008 Seite 2 Drucken Drucken ist eigentlich ganz einfach...
MehrObjektorientiertes JavaScript
Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische
MehrWebService in Java SE und EE
Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.
MehrEreignisbehandlung 21
Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen
MehrDie Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter
Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,
MehrEinführung in die Informatik Tools
Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht
Mehr5 Projekt Bankverwaltung
Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen
MehrEclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007
Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit
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
MehrÜbungen zu Softwaretechnik
Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte
MehrStarthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum
Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit
MehrSoftware Product Lines
Software Product Lines Concepts, Analysis and Implementation Programmier-Paradigmen für Software-Produktlinien (3/3) ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering
Mehrarlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek
arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering andreas.holubek@arlanis.com arlanis Software AG, D-14467 Potsdam 2009, arlanis
MehrPrüfungszeuch im Fach Objektorientierte Programmierung WS 2000
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,
MehrGrafische Benutzeroberflächen mit Swing
Grafische Benutzeroberflächen mit Swing KW 30, Zentralübung Informatik II 2006-07-24 Klausur: Stichpunkte 1. Auswertung System.out.println("abc" instanceof String); Ergebnis von instanceof ist ein boolean,
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrDas Model View Controller (MVC) Konzept
Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrDefinition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
Mehr2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE
2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht
MehrSoftware-Engineering Grundlagen des Software-Engineering
Software-Engineering Grundlagen des Software-Engineering 7.2 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger SWE: 7.2 Programmentwicklung und Debuggen mit IDE
MehrAnleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT
Boris Golubovic Dortmund, den 24. Oktober 2010 Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT Ein Projekt anlegen Ein Projekt kapselt alle zu einer Anwendung gehörenden
MehrPHP Aufbaukurs. Tag 3. PHP5 & Klassen
PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1
MehrApplication Frameworks
Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
MehrEine Anwendung mit InstantRails 1.7
Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen
MehrPragmatik von Programmiersprachen
Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
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
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
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??
MehrKomponentenbasierter Taschenrechner mit CORBA
Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten
MehrApplets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer
Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrPräsentation zur Vorstellung meiner Bachelor-Arbeit beim BSE- Seminar. Vortrag von Patrick Bitterling
Präsentation zur Vorstellung meiner Bachelor-Arbeit beim BSE- Seminar Vortrag von Patrick Bitterling Gliederung Meine Aufgabe Eckdaten zu meiner Bachelor-Arbeit Die Aufgabeneinteilung Die alte Saros-GUI
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
MehrIntegrierte und automatisierte GUI-Tests in Java
Integrierte und automatisierte GUI-Tests in Java Gliederung Die Idee hinter GUI-Tests Herausforderungen und Probleme Techniken Jemmy-Framework Konzeptorientiertes Testen FIT (Framework for Integrated Tests)
MehrThemen. Web Service - Clients. Kommunikation zw. Web Services
Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur
MehrSoftware Engineering. Produktivitätsfaktoren! Kapitel 18
Martin Glinz Thomas Fritz Software Engineering Kapitel 18 Produktivitätsfaktoren 2007-2013 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen Gebrauch
MehrWeb Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen
9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrWorkshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
MehrAndreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch
Eclipse Runtime (OSGi) als Plattform eines Swing Rich Client Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Zu meiner Person
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
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
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrVerteidigung Masterarbeit Evaluating the Use of a Web Browser to Unify GUI Development for IDE Plug-ins
Verteidigung Masterarbeit Evaluating the Use of a Web Browser to Unify GUI Development for IDE Plug-ins Christian Cikryt Freie Universität Berlin 13.08.2015 Überblick Motivation und Ziele Evaluation des
MehrEinführung in Generatives Programmieren. Bastian Molkenthin
Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung
MehrSoftware Engineering II
Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Installation der MWE Plugins Von der Juno Update Site installieren (falls noch nicht vorhanden): MWE SDK Xpand SDK 2 TFD Projekt
MehrThomas Freitag achelos GmbH SmartCard-Workshop. 1 2012 achelos GmbH
Thomas Freitag achelos GmbH SmartCard-Workshop 2012 1 2012 achelos GmbH Übersicht 1. 2. 3. 4. 5. 6. 7. Einführung / Motivation Historie des Testens Schnittstellen im Testbereich Eclipse Plugins Automatisierung,
MehrGEONET Anleitung für Web-Autoren
GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden
Mehr