Your SlideShare is downloading. ×
0
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Vortragsreihe Dortmund: Unified Development Environments

1,046

Published on

Große Entwicklungsabteilungen stehen oft vor dem Problem einheitlicher Entwicklungsprozesse und Werkzeuge. Nach einiger Zeit hat jedes Projekt eigene Prozesse und Werkzeuge etabliert. Dies ist nicht …

Große Entwicklungsabteilungen stehen oft vor dem Problem einheitlicher Entwicklungsprozesse und Werkzeuge. Nach einiger Zeit hat jedes Projekt eigene Prozesse und Werkzeuge etabliert. Dies ist nicht im Sinne der Entwicklungsabteilung. Softwaresysteme müssen i. d. R. über Jahre hinweg gewartet und erweitert werden - oft von einem Team, das sich neu in die Anwendung einarbeiten muss.
Nicht selten stellt die Rekonstruktion der Entwicklungsumgebung einen erheblichen Aufwand dar.

Dieser Vortrag beschreibt - anhand eines Erfahrungsberichts - den Aufbau einer strukturierten Entwicklungsumgebung, die auch für grosse Entwicklungsabteilungen skaliert.
- Zentrale Projekt- und Codeverwaltung (ähnlich wie Sourceforge)
- Buildmanagement mit Maven
- Entwicklungswerkzeuge basierend auf Maven und Eclipse
- Installierbare Teamserver mit Virtualisierungstechnologie für Continuous Integration

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,046
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ©itemisAG2007◊AlleRechtevorbehalten
  • 2. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten  Wieso, weshalb, warum?  Definition Entwicklungsumgebung  Fallbeispiel DBSystel
  • 3. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten Qualität Wieder- verwendung DRY Motivation
  • 4. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten • Probleme grösserer Entwicklungsumgebungen inkompatible Methodiken unterschiedliche Projektstrukturen autom. Buildprozess inkonsistent Projektkultur mein Code vs. unser Code Releasemanagement
  • 5. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten • Vorteile einer einheitl. Entwicklungsumgebung verbesserter Buildprozess verbesserter Releaseprozess Motivation steigt Mitarbeiterwechsel vereinfacht steigende Qualität
  • 6. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten • Nachteile einer einheitl. Entwicklungsumgebung Passt nicht für alle Projekte Zu strikt lässt die Produktivität und Qualität sinken
  • 7. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten •IDE •Java-Umgebung •Buildtools •Tools •Dokumentation
  • 8. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten • Collaboration • Wiki, Messaging • Projektmanagement • Requirements, Changes, Issues • Sourcecode • Dependency-Management
  • 9. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten • Build- und Testmanagement • Build, CI, Releases • Shared Workspaces • Runtime Environments • Virtualisierung
  • 10. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten
  • 11. 11DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Java Entwicklungsumgebung der DB Systel 14.04.2008 DB Systel Wolfgang Schwab
  • 12. 12DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 DB Systel Einer der größten konzerneigenen ITK-Dienstleister Europas DB Systel GmbH Zentrale: Frankfurt am Main Mitarbeiter: 5100 Umsatz 2006: 837 Mio. Euro DB Systems DB Telematik 2007 erfolgte die Integration von DB Systems und DB Telematik zu DB Systel
  • 13. 13DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 DB Systel – Ein Unternehmen der Deutschen Bahn Infrastruktur und Dienstleistungen Geschäftsfelder Gruppen- funktionen Service- funktionen Konzern- leitung Transport und Logistik Fernverkeh r RegioStadtverkehr Netz Personen- bahnhöfe Energie Dienst- leistungen IntermodalRail Freight Land Transport Contract Logistics / SCM 2) Air/Ocean Freight Vertrieb 1) ProjektBau 1) Wirtschaft und PolitikFinanzen/Controlling Personal und RechtVorsitzender Personenverkehr DB Systel GmbH 1) ServiceCenter 2) SCM: Supply Chain Management Deutsche Bahn AG
  • 14. 14DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Inhalt 3. Repositories 2. Exkurs: Maven 2 4. Team Server 1. Entwicklungsclient
  • 15. 15DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Entwicklungs-Client  Entwicklungswerkzeuge  Persönlicher Arbeitsbereich Projekt-Servers  Build- & Testautomatisierung  Gemeinsame Arbeitsbereiche  Laufzeitumgebungen Komponenten der Entwicklungsumgebung Continuous Integration Collaboration Software Issue Tracker Push Button Release SCM Project Management Unit Tests Push Button Installation Change Mgmt Release Mgmt Repositories  Dokumente  Quellen  Komponenten  Projektsteuerung Wiki Collaboration Software Issue Tracker SCM Project Management Change Mgmt Release Mgmt
  • 16. 16DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Entwicklungsclient – Paketierung Basispaket und Zusatzpakete Java-Base-4.0 JBoss-4.2 Tomcat-5.5 Tomcat-6.0 Weblogic-10.0 Referenzbauplan Tomcat Referenzbauplan JBoss Referenzbauplan Weblogic JBoss-4.0 Weblogic-9.1
  • 17. 17DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Entwicklungsclient – Paketierung Basispaket Eclipse 3.3 Java 6 Maven 2.0 YourKit Java Profiler 7 Ant 1.6.5
  • 18. 18DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Entwicklungsclient – Paketierung Eclipse verfügbare Extension Locations Web (C++) Java-Base JEE Struts JSF RCP Hibernate MDA (Open Architecture Ware) Subclipse ClearCase CVS Spring IDE Weblogic JBoss Seam JBPM
  • 19. 19DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Entwicklungsclient – Paketierung Eclipse Funktionsweise Extension Locations Java-Basis  JDT  PMD  M2Eclipse  YourKit JEE  WTP-JST  YourKit-EE Struts  JBoss Struts JSF  JBoss JSF Spring  Spring IDE Project Source Repository: platform.xml Die Konfiguration eines Projektes aktiviert Eclipse Extension Locations
  • 20. 20DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Entwicklungsclient – Konfiguration Projekt 1  setenv-4.0  Shell  Eclipse Projekt 2  setenv-4.0  Shell  Eclipse Projekt n  setenv-4.1  Shell  Eclipse Projekt aktiviert und ergänzt Konfiguration der Entwicklungsumgebung … Base 4.0  setenv Base 4.1  setenv JBoss 4.2  setenv WLS 10.0  setenv JBoss 5.0  setenv Einheitliche Entwicklungsumgebung Projektspezifische Konfiguration
  • 21. 21DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Entwicklungsclient – Konfiguration Bestandteil der Konfiguration Umgebungsvariablen – JAVA_HOME – MVN_HOME – JBOSS_HOME – etc. platform.xml für Eclipse Extension Locations Settings-Files für Maven Verknüpfungen zum Start von Dos-Shell und Eclipse
  • 22. 22DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Entwicklungsclient – Verteilungsmechanismen Die perfekte Lösung gibt es nicht Kurze Reaktionszeit Flexibel handhabbar Automatisierung über Skripte Keine Verwaltung von Installationen und Lizenzen  Gruppenlaufwerk Einfache Bedienung Zugriffsrechte problematisch Verzeichnistiefe beschränkt  File Section GForge Einfache Bedienung Synchronisierung problematisch Strukturierungsmöglichkeiten beschränkt  Subversion Nachvollziehbarkeit und Wiederholbarkeit Modifikation/Entwicklung gut unterstützt Synchronisierung erfordert SVN- Verzeichnisse Installations- und Lizenzverwaltung Automatische Installation Installationsänderung vom Entwickler nicht kontrollierbar Langwieriger Lieferprozess  Enteo Netinstall Volle Kontrolle über Nutzung Installation mit Verzögerung  Virtuelle Umgebung über Softgrid Sofort einsatzbereit Dateien sind für andere Programme nicht sichtbar Allgemein verfügbar Speziell Firmenclient
  • 23. 23DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Inhalt 3. Repositories 2. Exkurs: Maven 2  kommt gleich 4. Team Server 1. Entwicklungsclient
  • 24. 24DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Repositories – Produkte  GForge + Subversion  LiveLink  HP Quality Center
  • 25. 25DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008  Alternative zum Softwaredepot: Rational Clear Case Repositories – GForge Tabelle von Projekten Projektname Zugriffsrechte/ Projektzugehörigkeit Web-Oberfläche: Collaboration (Tracker, News, Wiki etc.) Subversion-Repository Musterprojekt Musterfrau – Admin Mustermann – Developer https://swd.bahn-net.db.de/ projects/musterprojekt https://swd.bahn-net.db.de/ musterprojekt/svn/ KOLT Marc Volz – Admin https://swd.bahn-net.db.de/ projects/kolt https://swd.bahn-net.db.de/ projects/kolt/svn/ maven++ Horst Duchêne – Admin https://swd.bahn-net.db.de/ projects/mavenpp https://swd.bahn-net.db.de/ projects/mavenpp/svn/ … … … …
  • 26. 26DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Repositories – GForge Komponenten und Sourcen in GForge Projektname Zugriffsrechte/ Projektzugehörigkeit Source Repository Komponenten Repository Musterprojekt Musterfrau – Admin Mustermann – Developer https://swd.bahn-net.db.de/ musterprojekt/svn/ trunk/src/ https://swd.bahn-net.db.de/ musterprojekt/svn/ trunk/dist/maven2/ KOLT Marc Volz – Admin https://swd.bahn-net.db.de/ projects/kolt/svn/ trunk/src/ https://swd.bahn-net.db.de/ projects/kolt/svn/ trunk/dist/maven2/ maven++ Horst Duchêne – Admin https://swd.bahn-net.db.de/ projects/mavenpp/svn/ trunk/src/ https://swd.bahn-net.db.de/ projects/mavenpp/svn/ trunk/dist/maven2/ … … … …
  • 27. 27DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Inhalt 3. Repositories 2. Exkurs: Maven 2 4. Team Server 1. Entwicklungsclient
  • 28. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten
  • 29. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten
  • 30. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten POM Relationships Coordinates groupId artifactId version Aggregation modules Inheritance parent dependencyManagement* Dependencies dependencies* Build Settings properties packaging build* reporting* Project Information name description url interceptionYear licenses developers contributors organisation
  • 31. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten Environment Information Maven Environment prerequisites Repositories repositories* pluginRepositories* distributionManagement Profiles profile activation ** issueManagement mailingLists ciManagement scm
  • 32. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten <project> <parent> <groupId>de.bahn</groupId> <artifactId>bahn-parent</artifactId> <version>1.2.0</version> </parent> <groupId>de.bahn.dbsystel</groupId> <artifactId>dbsystel-sample</artifactId> <version>1.1.1-SNAPSHOT</version> </project>
  • 33. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten <project> [...] <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>2.5.2</version> </dependency> <dependencies> </project>
  • 34. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten <project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project>
  • 35. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten
  • 36. 36DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Inhalt 3. Repositories  Fortsetzung 2. Exkurs: Maven 2 4. Team Server 1. Entwicklungsclient
  • 37. 37DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Repositories – Maven-Repository für Komponenten Exkurs: Quellkomponenten versus Zielkomponenten Build Komponente n Quellen Development Runtime Environment Komponenten Projektinformationen (Metriken) .jar .java .jar java –jar .jar .html Werkzeuge Quelle Ziel
  • 38. 38DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Repositories – Maven-Repository für Komponenten Internet-Repositories Central JBoss Java.net CodehausSpring Maven Proxy Maven++ Komponente n KOLT Komponente n Intranet (K2) Cache
  • 39. 39DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008  Jeder baut auf dem Client alle Komponenten + Komponenten entsprechen dem lokalem Stand der Quellen.  Komponentenaustausch zwischen Entwickler + Nicht alle Sourcen müssen ausgecheckt und gebaut werden.  Kontinuierlicher Build auf Team-Server + Alle Komponenten sind zentral verfügbar und synchron zum Stand der Quellen im Repository Repositories – Snapshots-Repositories Wer baut die Anwendungskomponenten in Entwicklung? Quellen Komponente n Quellen Komponenten Quellen Kontinuierliche s Bauen
  • 40. 40DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Repositories – Freigegebene Komponenten Wie wird aus dem Snapshot ein Release? Freigegebene Komponenten (Softwaredepot) Snapshot Komponenten (Team-Server) Quellen Kontinuierliches Bauen + Testen Entwicklung Release Release-Tag
  • 41. 41DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Repositories – Übersicht Entwicklungsprozess inkl. Snapshots und Releases Entwick- lung Sources Freigegebene Komponente Install/DeployRuntime Environments Automatic Build Freigegebene Komponenten Issues Sources Commit Workspace Build Laufzeitum- gebung Entwicklung Snapshot Komponenten Snapshot Artifacts Release Team Server Client Team Server Test und Produktion
  • 42. 42DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Inhalt 3. Repository 2. Exkurs: Maven 2 4. Team Server 1. Entwicklungsclient
  • 43. 43DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Team Server Betriebsführungsmodelle  Excklusiver Server pro Projekt  Ressource ist immer verfügbar und planbar  Projekt bekommt meistens Root-Rechte  Hoher Aufwand für Beschaffung und Rückgabe  Schlechte Nutzung von Ressourcen bzw. hohe Kosten  Shared Server: Ein Home-Verzeichnis pro Projekt  Niedrige Kosten  Moderater Aufwand für Beschaffung und Rückgabe  Keine Root-Rechte  Verfügbarkeit der Ressource kaum steuerbar  Schlechte Nutzung von Ressourcen bzw. hohe Kosten  Virtueller Server  optimistische Betrachtung  leichtgewichtige Beschaffungs- und Rückgabeprozesse  Niedrige Kosten  i. d. R. Root-Rechte  Zugesicherte Ressourcen sind verfügbar
  • 44. 44DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Java 6.0 JBoss 4.2 Maven 2.0 Continuum Maven Proxy Entwicklungsumgebung Server Team Server Installationspakete Tomcat 6 WLS 10.0 Java 5.0 JEE Server Plattform … Linux Plattform Editor Mail …
  • 45. 45DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Komponenten Sourcen Team Server Exkurs: Installation von JEE-Anwendungen Installiertes System continuum.war proxy.war Maven Assembly Konfigurationen spezifische Installations- skripte generische Installations- skripte Maven POM Maven Release Komponente n seu.tar.gz manuell  wget  untar  install  activate  start Paketquellen Installations- quellen Zielumgebung Konfiguration Zielumgebung
  • 46. 46DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Team Server Konfiguration Umgebungsvariablen – JAVA_HOME – MVN_HOME – JBOSS_HOME – etc. Settings-Files für Maven Initialisierung der Umgebung für bestimmte SEU- und Projektversionen: Durch Sourcen von setenv-Skripten Die Konfiguration des Team Server ist analog zum Entwicklungsclient
  • 47. Copyright 2007 itemis GmbH & Co. KG Unified Development Environments ©itemisAG2007◊AlleRechtevorbehalten
  • 48. 48DB Systel GmbH, Wolfgang Schwab, I.TID 3, 03.06.2008 Team Server Konfiguration Software-Architekt im Development Center der DB Systel GmbH JEE-Technologien OLTP-Systeme Application Lifecycle Management Wolfgang Schwab

×