Communardo Software GmbH Lösungen aus Leidenschaft für Netzwerke.

Slides:



Advertisements
Ähnliche Präsentationen
Web 2.0 Social Network Communities
Advertisements

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Forschungszentrum Informatik
1 Gerardo Navarro Suarez BPM Suite. 2 Quelle: camunda Services GmbH Das Warum hinter Activiti Problem bestehender BPMS: Starker Fokus auf das Business.
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Gruppe Dr. Henrik Grosskreutz
Zusammenarbeit in Office mit den SharePoint Technologien Michael Carpi
Einführung von Team System Ein Vorgehensvorschlag
Systemverwaltung wie es Ihnen gefällt.
Eine Arbeit von Martina Gierke, Jens Lemcke, Martin Luboschik, Sabine Maßmann, Christian Ober und Alf-Christian Schering.
Erweiterung B2B Usermanagement / LDAP-Anbindung
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
RUP-Elemente (Schlüsselkonzepte)
K-Modeler Engineering
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
PinK Plattform für intelligente Kollaborationsportale Dr. Joachim Quantz, e.V. Berlin, 13. September 2005.
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
Software Design Patterns Extreme Programming (XP).
IBM Workplace Forms - In Kürze © 2007 IBM Corporation XML basierte elektronische Formulare: Effizienzsteigerung und Kostenreduktion durch Automatisierung.
Typo3 Eine Einführung.
Software-Projektführung
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Aichinger Christian, Strasser Jürgen
08. September 2010Entwicklungsstrategien in Liferay 1 Christian Krause, URZ FSU Jena, IDM-Arbeitsgruppe.
Continuous Integration mit Jenkins
MDA – Framework AndroMDA
Warum brauche ich ein CMS – Content Management System?
Rüdiger Meyer Senior Manager Industry Strategy
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
IT-Projektmanagement SS 2013 Prof. Dr. Herrad Schmidt
Marko Dragicevic Thomas Bergauer 27.Mai 2008
… und was man damit machen kann.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Marktübersicht für Content Management Systeme
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Digital Dashboard Toolkit 2001 SharePoint Portal Server released targeting portal market SharePoint Team Services (STS) released as free add-
Seminar „Standards, Normen und Best-Practice-Modelle für Entwicklung und Betrieb von Softwaresystemen“ (Wintersemester 2008/2009) Vorbesprechung + Themenvergabe:
Online Consulting AG Weststrasse 38 CH-9500 Wil Tel.+41 (0) Fax+41 (0) screen AG Töpferstrasse 5 CH-6004 Luzern Tel. +41 (0)
Enterprise Achitect (Sparx Systems) Marius Rudolf
Wissen praktisch ablegen
Untersuchungen zur Erstellung eines
Marco Behnke Git free & open source, distributed version control system Git.
Enhydra Shark Workflow-Management Frank Aurich Markus Reisch.
Application Lifecycle Management Day 25. August 2008 Erfolgreiche Software- Entwicklung in Offshore-Projekten mit Microsoft Team Foundation Server Thomas.
Eclipse – PHP Tool Integration (PTI) Sven Kiera, TWT Interactive GmbH.
Thomas Schissler – artiso solutions GmbH Artur Speth – Microsoft Deutschland GmbH.
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Infopoint, , Jörg Wüthrich Infopoint "Social Coding", Jörg Wüthrich
Das IT - Informationssystem
Text Encoding Initiative Universität zu Köln Daten- und Metadatenstandards Seminarleitung: Patrick Sahle Seminarleitung: Patrick Sahle Referentin: Anna.
Ziel - Konzept - Realisierung 28. August 2003 Ursula Jutzi.
syst_11_codierung_3.ppt1 Systementwicklung Continuous Integration Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
Continuous Integration
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.
Agile Performance Tools & Information Systems -Ticket-System und Multi-Projektmanagement mit Andreas Haaken Systems Engineer Information Architect.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
IT-Dienstleistungen E-Learning Systeme Content Management 1 Fallbeispiel ILIAS: Das Repository-Objekt-Plugin „Centra“
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Technologietag Baugruppentest Wege der Standardisierung im Funktions- und EOL-Test Markus Koetterl National Instruments Germany GmbH.
Software-Delivery auf Knopfdruck IBM Cloud & DevOps.
Continuous Integration
Devops David Jaroš
 Präsentation transkript:

Communardo Software GmbH Lösungen aus Leidenschaft für Netzwerke

Communardo Software GmbH Leistungsportfolio - Kompetenzen Themen ProdukteTechnologien Knowledge Management Intranet 2.0 Project & Team Collaboration Microsoft Office SharePoint Server Microsoft Office Project Server Atlassian Confluence Enterprise Wiki Communardo ProductivityNet Publisher SurveyFramework Individuelle Software- Entwicklung auf Basis Java/JEE,.NET und PHP Technische An- forderungsanalyse und Software- konzeption

Communardo Themen Moderne IT Lösungen im Enterprise 2.0 Knowledge Management Project & Team Collaboration Intranet 2.0 Wissensportale Enterprise Wikis Community Portale Corporate Search Corporate Tagging Team Workspace Corporate Blogging Collaboration Workflow Security Workspace Virtuelle Projekträume Weblogs für Firma, Bereich und Mitarbeiter Wissenswiki RSS-Feeds Social Bookmarks Personalisiertes Tagging

Communardo Software GmbH Referenten Dipl.-Inf. Torsten Lunze Software Architekt Dipl.-Inf. Tino Schmidt Teamleiter CMT

Effiziente Softwareentwicklung 1. Motivation 2. Build Management 3. MDA 4. Software Factories 5. Test & Reports

Effiziente Softwareentwicklung Was ist Effizienz? DIN EN ISO 9000:2000 Effizienz ist das Verhältnis zwischen dem erzielten Ergebnis und den eingesetzten Mitteln. > Maß der Wirtschaftlichkeit Quelle:

Effiziente Softwareentwicklung Warum beschäftigt uns dieses Thema? Standish Group führt seit 1994 Umfragen zum Erfolg von Softwareentwicklungsprojekten durch -> CHAOS Report

Effiziente Softwareentwicklung Kriterien für den Erfolg von Projekten. Termin eingehalten Kosten eingehaltenAnforderungen erfüllt

Effiziente Softwareentwicklung … führt zu: - ertragreichen Projekten - zufriedenen Kunden - zufriedenen Mitarbeitern - Wachstum und Arbeitsplätzen - Freiraum für Innovationen Die Summe zeigt: ein wichtiges Thema.

Effiziente Softwareentwicklung Schwerpunkt dieser Vorlesung: - Betrachtung technischer Einflüsse - Vorstellung MDA, Produktlinien Was ist nicht Inhalt dieser Vorlesung: - Projektmanagementthemen - Teamstrukturen, Zusammenarbeit - Kunden – Auftragnehmerbeziehungen

Probleme in der Softwareentwicklung Analyse Entwurf Implemen- tierung Integration & Test Installation Standards/Richtlinien werden nicht eingehalten nicht ausreichende Dokumentation unklare Anforderungen hohe Fehlerraten instabiles System Copy&Paste - Code lange Implemen- tierungszeiten wiederkehrende Implementierungs- aufgaben durch fehlende Modularität Kommunikation Zu schneller Start in die Implementierung Qualitätsmerkmale werden nicht festgelegt. Vorgehens- modell fehlt Systematische Tests fehlen Kundenzufriedenheit sieht anders aus.

Effiziente Softwareentwicklung Frameworks und Bibliotheken nutzen - generische Lösung für verwandte Probleme - aktive Wiederverwendung - z. B. Jakarta Commons Bibliotheken Generierung nutzen - in der integrierten Entwicklungsumgebung - bei der Erstellung von WebServices - für ganze Projekte und Module Implementierung

Effiziente Softwareentwicklung Einheitliche Entwicklungsumgebung - Pakete mit Voreinstellungen bereitstellen - Eclipse Distribution: Yoxos Wikis & FAQs - Links der Umgebungen (Dev, TuA, Live) - Entwicklungshandbuch - technische Beschreibungen, Zugangsdaten Infrastruktur

Effiziente Softwareentwicklung 1. Motivation 2. Build Management 3. MDA 4. Software Factories 5. Test & Reports

Buildmanagement Teil des Konfigurationsmanagements Erstellung eines Softwarepaketes (Buildskripte) Verteilen der Softwarepakete (Deployment) Berechnung von Softwaremetriken Automatisierung dieser Punkte Tools: Ant Maven Continous Integration (Continuum, Cruise Control) Shell Skripte © Communardo Software GmbH · Fon +49 (0) · · Folie 15

Entwickeln im Team © Communardo Software GmbH · Fon +49 (0) · · Folie 16 SVN Repository Commit

© Communardo Software GmbH · Fon +49 (0) · · Folie 17 SVN Repository Commit Update Entwickeln im Team

© Communardo Software GmbH · Fon +49 (0) · · Folie 18 SVN Repository Commit Update Compiler Error!

Ursachen für Fehler Fehlerhafter Stand wurde eingecheckt Bearbeitung gleicher Module Fehler im lokalen Code Falsche Konfiguration © Communardo Software GmbH · Fon +49 (0) · · Folie 19

Continous Integration © Communardo Software GmbH · Fon +49 (0) · · Folie 20 SVN Repository Commit Update Compiler Error! Build Test Report Fehler im Build aufgetreten?

Continous Integration © Communardo Software GmbH · Fon +49 (0) · · Folie 21 SVN Repository Commit Update Compiler Error! Build

Continous Integration Definition Martin Fowler:Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. [ © Communardo Software GmbH · Fon +49 (0) · · Folie 22

Vorteile Continous Integration Schnelles Auffinden von Fehler Automatisierung von Tests Automatisierung der Überprüfung von Metriken Bereitstellung einer aktuellen Version zum Testen © Communardo Software GmbH · Fon +49 (0) · · Folie 23

Deployement © Communardo Software GmbH · Fon +49 (0) · · Folie 24 Lokal 1 Continous Integration DB Applikation Code … DB Applikation CodeDB Applikation CodeDB Applikation DB Applikation Testsystem Wirksystem Lokal n

Vorteile Build Management Standard Build Umgebung Früher: eigenes ANT Build Framework Heute: Maven (1 und 2), Nutzung der Standardfunktion soweit es geht Nutzung von Funktionen wie Continous Integration Bündelung und Bereitstellung von Software Kontinuierliche Generierung von Reports Ähnliche Struktur der Projekte © Communardo Software GmbH · Fon +49 (0) · · Folie 25

Effiziente Softwareentwicklung 1. Motivation 2. Build Management 3. MDA 4. Software Factories 5. Test & Reports

Motivation für MDA Welchen Vorteil bringt uns eine MDA Lösung? Anforderungen Return of Investment Erlernbarkeit Stabilität Geringe Kosten für Tools © Communardo Software GmbH · Fon +49 (0) · · Folie 27

AndroMDA Java Sourceforge Projekt Version 3.2 im weiteren verwendet Modellierung erfolgt über UML Anpassungen durch UML Profile (Stereotypen und Tagged Values) Generierung anhand von Velocity Templates Bündelung von Templates und Konfigurationen in Cartridges Anpassung an generierten Code durch Vererbung Mergemappings © Communardo Software GmbH · Fon +49 (0) · · Folie 28

© Communardo Software GmbH · Fon +49 (0) · · Folie 29 Andromda Generierungsprozess

Cartridges Vorgefertige Cartridges: (N)Hibernate EJB3 Spring Webservices (AXIS, Xfire) Struts © Communardo Software GmbH · Fon +49 (0) · · Folie 30 AndroMDA und Cartridges können direkt verwendet werden ohne Generator oder Templates anzupassen oder zu erstellen.

© Communardo Software GmbH · Fon +49 (0) · · Folie 31 Andromda Standardarchitektur

© Communardo Software GmbH · Fon +49 (0) · · Folie 32 => Modelliert Generiert

MDA - Buildmanagement Integration der Generierung in Maven 2 Kleine Änderung im Modell Ziel: Nur die Dateien neu generieren, die davon betroffen sind Lösung: Generierung nur eines bestimmten Packages Generierung nur durch ausgewählte Cartridges Die Festlegung was neu generiert werden soll, wird nicht automatisch sondern muss vom Entwickler getroffen werden.

Versionierung von Modellen Problem: XML Format eines Modells komplex Mergen nahezu unmöglich Lösung: Aufsplitten der Modelle in Schichten (FE/Service/Backend) und Komponenten (User/Evaluation/Security…) Mehrere Modelldateien Nutzen von Locks in Versionskontrollen Alternativ: Teamworkserver (Checkin/Checkout über MagicDraw) Generierte Dateien nicht in Versionskontrolle

MDA - Releasemanagement Neues Release 2 wird entwickelt. Das Modell für Release 2 wird umfangreich angepasst. Es tritt ein Bug im Release 1 auf. Der Bugfix benötigt eine Änderung des Modells für Release 1. Die Änderung muss auch in Release 2 nachgezogen werden… Automatismus?

MDA - Probleme Konfliktlösung in Modellierung falls Entwickler gleichzeitig ein Modell bearbeitet haben BPM4Struts Cartridge zu unübersichtlich verwendbar Modellierung zu umständlich mit MagicDraw Zusätzlich hoher Lernaufwand um Cartridge zu verstehen Bugs die durch Cartridge / Generator erzeugt werden sind schwieriger zu beheben Lösungen die an Standardarchitektur vorbeigehen: Erstellung von nichtgenerierten Klassen Keine Modellierung im Modell © Communardo Software GmbH · Fon +49 (0) · · Folie 36

Einfluss auf den Softwareprozess Learning Curve: Lernen statt Arbeiten Lernaufwand höher: Zu verstehen was wird wie wo generiert Dafür Einsparung von Arbeit: Kleine Anpassung im Modell Große Änderung im Code (anstatt per Hand) Bei der Konfiguration des Projektes: Auswahl der zu nutzenden Cartridges Anpassung, Erweiterung an Architekturforderungen Während des Projektes: Fehlerbehebung und Anpassung der Cartridges Zu entscheiden: Passe ich die Implementierung an oder suche ich eine generische Lösung durch Veränderung der Cartridges? Nachdem Projekt: Einfluss der Erfahrungen Wiederverwendung in neuen Projekten

© Communardo Software GmbH · Fon +49 (0) · · Folie 38 Andromda - Vorteile Vorgefertige Cartridges (Hibernate, Spring) sind Out Of The Box verwendbar Müssen in anderen System i. d. R. erst von Hand geschrieben werden Anpassbarkeit gegeben Schnelles Entwickeln: Modell in Code Gerine Fehleranfälligkeit durch generierten Code Sicherstellung von Architekturrichtlinien Konsistenz zwischen Code und Modellen Erhöhung der Entwicklungsgeschwindigkeit

© Communardo Software GmbH · Fon +49 (0) · · Folie 39 Andromda - Nachteile Muss mit den vorgefertigten generierten Konzept der 3-Schichten-Architektur leben Trennung des Plattformspezifisches Modell nicht gegeben (für Andromda 4 geplant) Verknüpfung von mehreren AndroMDA Projekten nur durch Anpassung von Cartridges

© Communardo Software GmbH · Fon +49 (0) · · Folie 40 Open issues Stabilität des Datenmodells Auswirkungen auf Datenbank Entfremdung des Entwicklers vom Code Herstellerabhängigkeit durch Verwendung der Tools Modellierung im Team Releasemanagement

Effiziente Softwareentwicklung 1. Motivation 2. Build Management 3. MDA 4. Software Factories 5. Test & Reports

Software Factories - aktuell: Begriff stark von Microsoft geprägt - Paradigma der industriellen Softwareentwicklung - Aufsetzen von Produktlinien Ziele: Risiko, Kosten, Fehlerraten minimieren Produkt-/ Projekteinführungszeiten verringern hohe Qualität beibehalten / erreichen

Software Factories Prinzipien: - Geschäftsorientierung - Domänenentwicklung und Applikations- entwicklung - Trennung von Produkt übergreifenden und Produkt spezifischen Funktionen - Architektur zentrierte Entwicklung - Varianten Management

Software Factories Vorgehen: Quelle: iX 5/2008. Softwarewiederverwendun. Produktlinien – die Zukunft der industriellen Softwareentwicklung

Software Factories Funktionsplattform Konkrete Variante Erstellung konkreter Produkte - Bindungszeitpunkte

Software Factories Erstellung konkreter Produkte - Bindungszeitpunkte Funktionsplattform Konkrete Variante

Software Factories Herausforderungen: - Trennung in Domän- und Applikationscode - Änderung und Weiterentwicklung - Dokumentation u. Information bei Änderungen - Build Management Teamorganisation: - Abstimmung über Änderung am Domäncode - Durchführung von Änderungen

Effiziente Softwareentwicklung 1. Motivation 2. Build Management 3. MDA 4. Software Factories 5. Test & Reports

Test & Quality Automatisierte Test - Junit, Mock-up Test - Frontend Tests: Selenium Quality Reports (Force Feedback für Entwickler) - in der integrierten Entwicklungsumgebung (Metriken, CheckStyle) - im Build Prozess verankert – Maven Reports - Nutzung technischen Know Hows

Syntaktische Tests - CheckStyle, Java Doc Abdeckung - JDepend Semantische Tests - PMD Report - FindBugs Report manuelle und automatische Auswertung möglich >> Beispiel Test & Quality Maven Reports

Frontendtests Testen der Funktionalität so nah am Anwendungsfall wie möglich Verschiedene Frameworks: HttpUnit, HtmlUnit, Selenium Vorteile Selenium: Testen direkt im Browser Testen von verschiedenen Browserderivaten mit einer Codebasis möglich Testen der Frontendkomponenten (insb. Javascript, Formulare) © Communardo Software GmbH · Fon +49 (0) · · Folie 51

Selenium © Communardo Software GmbH · Fon +49 (0) · · Folie 52

Praktikanten. Diplomarbeiten. Aktuelle Arbeiten: - Tagging Server - Tag Cloud Navigationen - Performance Optimierung von Webapplikationen Aktuelle Themen: - Produktentwicklung, - Enterprise 2.0, - Visualisierung von Informationen, - Projekt Twitter

Effiziente Softwareentwicklung Vielen Dank.