30/03/15 Seite 1
Aspektorientierte Programmierung logische Aspekte (Concerns) im Programm separieren Crosscutting Concerns (Ziel: generische Funktionalitäten über mehrere Klassen hinweg zu verwenden - nicht problemlos modularisierbar) z. B. für Fehlerbehandlung, Transaktionen, Logging, Separation of Concerns / AspectJ, Spring-AOP Inversion of Control Funktion eines Anwendungsprogramms wird bei einer Standardbibliothek registriert und von dieser zu einem späteren Zeitpunkt aufgerufen "don't call us, we'll call you" (Listener Observermuster) Dependency Injection Entwurfsmuster, um die Abhängigkeiten zwischen Komponenten oder Objekten zu minimieren. 1 30/03/15 Seite 2
Modellgetriebene vs. Generative Softwareentwicklung 2 ist ein Oberbegriff für Techniken, die automatisiert aus formalen Modellen lauffähige Software erzeugen Erstellen von SW aus fachlichen Beschreibungen generative Programmierung: automatische Erzeugung von Programmcode durch einen Generator (-> EMF 16) Trennung von Funktionalität und Technik Modelle und Generatoren MDA/MDSD - MDA Tools (OpenArchitectureWare,XDoclet ) 30/03/15 Seite 3
Design Pattern in der Softwareentwicklung sind bewährte Lösungsschablonen für wiederkehrende Entwurfsprobleme sowohl in der Architektur als auch in der Softwarearchitektur und -entwicklung. stellen damit eine wiederverwendbare Vorlage dar 3 Beispiele: Factory (kein Konstruktor) Singleton (nur ein Objekt) Façade (Schnittstelle zu Subsystemen) Business Delegate (Entkopplung der Schichten). 30/03/15 Seite 4
Agile Softwareentwicklung 4 Oberbegriff für den Einsatz von Agilität (lat. agilis: flink; beweglich) in der Softwareentwicklung. je nach Kontext bezieht sich der Begriff auf Teilbereiche der Softwareentwicklung oder auf den gesamten Softwareentwicklungsprozess (Extreme Programming) versucht mit geringem bürokratischen Aufwand, wenigen Regeln und meist einem iterativen Vorgehen auszukommen state of the art XP Lösung steht im Vordergrund, nicht formalisiertes Vorgehen 30/03/15 Seite 5
Enterprise IT Komponenten Überblick und Einsatzmöglichkeiten Middleware, Deployment, Persistenz, Kapselung des Transaktionsverhaltens 5 J2EE Technologien und Frameworks (Servlets, JSP, JSF, EJB ) Struts (View; Controler), Spring (leichtgewichtiger Container). 30/03/15 Seite 6
Das Google Web Toolkit das Google Web Toolkit (GWT ) ist ein Toolkit zur Entwicklung von Webanwendungen Ajax Applikationen in Java Einsatzmöglichkeiten des GWT und anderer Java Tools, wie Apache Ant, Tomcat Ajax / Rich Internet Applications (RIA) (ggf. separates Thema???) 6 30/03/15 Seite 7
Automatisierte Code Reviews 7 automatisierte Code Reviews zur Fehlerfindung (z.b. mit dem Source Code Analyser Checkstyle oder andere?) Beispiele basierend auf Eclipse Plugins und/oder Subversion 30/03/15 Seite 8
Java FX 8 JavaFX ist ein Framework für plattformübergreifende RIA Entwicklung direkte Konkurrenz zu Adobe Flash bzw. Flex und Microsoft Silverlight JavaFX kann auf diversen Endgeräten wie Mobilfunkgeräten, Set- Top-Boxen, Computern und Blu-Ray-Disc-Abspielgeräten zum Einsatz kommen und ist als Bestandteil der Java-Runtime- Umgebung in einigen Mobilfunkgeräten implementiert. Entwicklungsprozess von Rich Internet Applikationen (RIA) Tools und SDKs für dynamische Applikationen mit webbasierten Inhalten 30/03/15 Seite 9
Persistenzframeworks im Vergleich Persistenz-Frameworks erlauben es, den Zustand von Objekten auf einfache Weise in einer relationalen Datenbank zu speichern und wieder zu laden. Sie funktionieren so als objekt-relationale Mapper (ORM). JPA Hibernate JDO (OR - Mapping, POJOs )... 9 30/03/15 Seite 10
Serviceorientierte Architekturen (SOA) (ggf. 2 Personen) 10 Prinzipien, Arbeitsweise Dienste (im Netzwerk) Schnittstellen Enterprise Service Bus Webservice MQ. 30/03/15 Seite 11
Tools zur Teamarbeit 11 SVN Subversion Subclipse Vergleich, Leistungsparameter, Anwendbarkeit,. 30/03/15 Seite 12
Eclipse Webtools 12 Entwicklungssystem für JEE-Applikationen Werkzeugsammlung für Entwicklungsumgebungen Leistungsfähigkeit und Einsetzbarkeit (Möglichkeiten und Grenzen) 30/03/15 Seite 13
13 Eclipse Data Tools Platform (DTP) Project Eclipse Data Tools Platform (DTP) bietet eine Reihe von Tools für den einfachen Umgang mit Datenbanken Umgebung zur einfachen Konfiguration Datenmanagement für Entwickler oder auch für Administratoren (auch Monitoring) Vorteile / Nachteile Beispiel: Incubator 30/03/15 Seite 14
Eclipse Modeling Framework (EMF) 14 quelloffenes Java-Framework zur automatisierten Erzeugung von Quelltext anhand von strukturierten Modellen EMF kann aus einem Modell Java-Code erzeugen. das so erzeugte Java-Programm kann Instanzen dieses Modells erstellen, abfragen, manipulieren, serialisieren, validieren und auf Änderungen überwachen das Modell selbst kann aus einer XSD (XML Schema Definition), aus Java-Interfaces oder aus UML-Diagrammen generiert werden, oder auch von Hand (mit einem "Baumeditor") erstellt werden. der aus dem Modell generierte Code umfasst den eigentlichen Code für Wizards, Editoren bis hin zum Code für die eigentliche RCP-Anwendung. das Modell selbst sowie der generierte Code können angepasst werden, implementierte Funktionalität und neu generierter Code werden dabei gemerged 30/03/15 Seite 15