Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Communardo Software GmbH Lösungen aus Leidenschaft für Netzwerke."—  Präsentation transkript:

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

2 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

3 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

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

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

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

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

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

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

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

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

12 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

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

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

15 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

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

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

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

19 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

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

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

22 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. [http://martinfowler.com/articles/continuousIntegration.html] © Communardo Software GmbH · Fon +49 (0) · · Folie 22

23 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

24 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

25 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

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

27 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

28 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

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

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

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

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

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

34 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

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

36 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

37 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

38 © 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

39 © 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

40 © 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

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

42 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

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

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

45 Software Factories Funktionsplattform Konkrete Variante Erstellung konkreter Produkte - Bindungszeitpunkte

46 Software Factories Erstellung konkreter Produkte - Bindungszeitpunkte Funktionsplattform Konkrete Variante

47 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

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

49 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

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

51 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

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

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

54 Effiziente Softwareentwicklung Vielen Dank.


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

Ähnliche Präsentationen


Google-Anzeigen