Communardo Software GmbH Lösungen aus Leidenschaft für Netzwerke презентация

Содержание

Communardo Software GmbH Leistungsportfolio - Kompetenzen Integrierte Enterprise 2.0 Lösungen Themen Produkte Technologien Knowledge Management Intranet 2.0 Project & Team Collaboration

Слайд 1Communardo Software GmbH Lösungen aus Leidenschaft für Netzwerke


Слайд 2Communardo Software GmbH Leistungsportfolio - Kompetenzen
Integrierte Enterprise 2.0 Lösungen
Themen
Produkte
Technologien
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




Слайд 3Communardo 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


Слайд 4Communardo Software GmbH Referenten


Dipl.-Inf. Torsten Lunze
Software Architekt
www.communardo.de
www.xing.com/profile/torsten_lunze

Dipl.-Inf. Tino Schmidt
Teamleiter CMT
www.communardo.de
www.xing.com/profile/Tino_Schmidt5





Слайд 5Effiziente Softwareentwicklung


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


Слайд 6Effiziente 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

Слайд 7Effiziente Softwareentwicklung Warum beschäftigt uns dieses Thema?



Standish Group führt seit 1994 Umfragen

zum Erfolg von Softwareentwicklungsprojekten durch -> CHAOS Report

Слайд 8Effiziente Softwareentwicklung Kriterien für den Erfolg von Projekten.


Termin eingehalten
Kosten eingehalten
Anforderungen erfüllt



Слайд 9Effiziente Softwareentwicklung



… führt zu:
ertragreichen Projekten
zufriedenen Kunden
zufriedenen Mitarbeitern
Wachstum

und Arbeitsplätzen
Freiraum für Innovationen

Die Summe zeigt: ein wichtiges Thema.

Слайд 10Effiziente Softwareentwicklung



Schwerpunkt dieser Vorlesung:
- Betrachtung technischer Einflüsse
- Vorstellung MDA, Produktlinien

Was ist

nicht Inhalt dieser Vorlesung:
Projektmanagementthemen
Teamstrukturen, Zusammenarbeit
Kunden – Auftragnehmerbeziehungen


Слайд 11Probleme in der Softwareentwicklung




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.


Слайд 12Effiziente 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


Слайд 13Effiziente Softwareentwicklung




Einheitliche Entwicklungsumgebung
- Pakete mit Voreinstellungen bereitstellen
- Eclipse Distribution: Yoxos

Wikis

& FAQs
Links der Umgebungen (Dev, TuA, Live)
Entwicklungshandbuch
- technische Beschreibungen, Zugangsdaten

Infrastruktur


Слайд 14Effiziente Softwareentwicklung


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


Слайд 15Buildmanagement
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) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 16Entwickeln im Team
© Communardo Software GmbH · Fon +49 (0) 351

833820 · info@communardo.de · www.communardo.de

Folie


SVN Repository

Commit


Слайд 17© Communardo Software GmbH · Fon +49 (0) 351 833820 ·

info@communardo.de · www.communardo.de

Folie


SVN Repository

Commit

Update

Entwickeln im Team


Слайд 18Entwickeln im Team
© Communardo Software GmbH · Fon +49 (0) 351

833820 · info@communardo.de · www.communardo.de

Folie


SVN Repository

Commit

Update

Compiler Error!


Слайд 19Ursachen für Fehler
Fehlerhafter Stand wurde eingecheckt
Bearbeitung gleicher Module
Fehler im lokalen Code
Falsche

Konfiguration

© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 20Continous Integration
© Communardo Software GmbH · Fon +49 (0) 351 833820

· info@communardo.de · www.communardo.de

Folie


SVN Repository

Commit

Update

Compiler Error!

Build

Test

Report

Fehler im Build
aufgetreten?


Слайд 21Continous Integration
© Communardo Software GmbH · Fon +49 (0) 351 833820

· info@communardo.de · www.communardo.de

Folie


SVN Repository

Commit

Update

Compiler Error!

Build


Слайд 22Continous 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) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 23Vorteile 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) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 24Deployement
© Communardo Software GmbH · Fon +49 (0) 351 833820 ·

info@communardo.de · www.communardo.de

Folie

Lokal 1

Continous Integration


Testsystem

Wirksystem






Lokal n


Слайд 25Vorteile 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) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 26Effiziente Softwareentwicklung


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


Слайд 27Motivation 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) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 28AndroMDA
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) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 29© Communardo Software GmbH · Fon +49 (0) 351 833820 ·

info@communardo.de · www.communardo.de

Folie

Andromda Generierungsprozess


Слайд 30Cartridges
Vorgefertige Cartridges:
(N)Hibernate
EJB3
Spring
Webservices (AXIS, Xfire)
Struts


© Communardo Software GmbH · Fon +49 (0)

351 833820 · info@communardo.de · www.communardo.de

Folie

AndroMDA und Cartridges können direkt verwendet werden ohne Generator oder Templates anzupassen oder zu erstellen.


Слайд 31© Communardo Software GmbH · Fon +49 (0) 351 833820 ·

info@communardo.de · www.communardo.de

Folie

Andromda Standardarchitektur


Слайд 32© Communardo Software GmbH · Fon +49 (0) 351 833820 ·

info@communardo.de · www.communardo.de

Folie

=>

Modelliert

Generiert


Слайд 33MDA - 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.

Слайд 34Versionierung 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

Слайд 35MDA - 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?

Слайд 36MDA - 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) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 37Einfluss 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) 351 833820 ·

info@communardo.de · www.communardo.de

Folie

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) 351 833820 ·

info@communardo.de · www.communardo.de

Folie

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) 351 833820 ·

info@communardo.de · www.communardo.de

Folie

Open issues

Stabilität des Datenmodells
Auswirkungen auf Datenbank
Entfremdung des Entwicklers vom Code
Herstellerabhängigkeit durch Verwendung der Tools
Modellierung im Team
Releasemanagement


Слайд 41Effiziente Softwareentwicklung


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


Слайд 42Software 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


Слайд 43Software Factories



Prinzipien: - Geschäftsorientierung
- Domänenentwicklung und Applikations- entwicklung
- Trennung

von Produkt übergreifenden und Produkt spezifischen Funktionen
- Architektur zentrierte Entwicklung
- Varianten Management


Слайд 44Software Factories




Vorgehen:
Quelle: iX 5/2008. „Softwarewiederverwendun. Produktlinien – die Zukunft der

industriellen Softwareentwicklung“

Слайд 45Software Factories


Erstellung konkreter Produkte - Bindungszeitpunkte


Слайд 46Software Factories


Erstellung konkreter Produkte - Bindungszeitpunkte















Konkrete Variante


Слайд 47Software 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

Слайд 48Effiziente Softwareentwicklung


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


Слайд 49Test & 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


Слайд 51Frontendtests
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) 351 833820 · info@communardo.de · www.communardo.de

Folie


Слайд 52Selenium
© Communardo Software GmbH · Fon +49 (0) 351 833820 ·

info@communardo.de · www.communardo.de

Folie


Слайд 53Praktikanten. Diplomarbeiten.
Aktuelle Arbeiten:
- Tagging Server
- Tag Cloud Navigationen
- Performance Optimierung

von Webapplikationen

Aktuelle Themen:
- Produktentwicklung,
- Enterprise 2.0,
- Visualisierung von Informationen,
- Projekt Twitter



Слайд 54Effiziente Softwareentwicklung


Vielen Dank.


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика