Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer...
Transcript of Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer...
1
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
Ein Vergleich der Produktivitätvon
Web Dynpround
Apache StrutsApache Struts v 1.1
Web Dynpro im SAP Web AS v 6.30
Sabine Winkler - winkler(at)oio(dot)de
2
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Gliederung des Vortrages
• Orientierungsmangel bei Java Web Anwendungen
• Vergleiche unter „Gleichen“ ?
• Vorstellung der Technologien
• Definition eines Produktivitätsmasses• Ergebnisse des Vergleiches
2
3
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
) Akademie ) ) Beratung )
„Orientierung“ in Objekten
• Schulungen , Coaching , Weiterbildungsberatung , Train & Solve -Programme
• Methoden , Standards und Tools für die Entwicklung von offenen, unternehmens- weiten Systemen
• Schlüsselfertige Realisierung von Software• Unterstützung laufender Projekte• Pilot- und Migrationsprojekte
) Projekte )
4
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Orientierungsmangel bei Java Web Entwicklung
• Java 2 Enterprise Edition (J2EE) in der Webschicht– umfangreiche Funktionalität
• aber zahlreiche nicht standardisierte Aspekte:
– Steuerung des Kontrollflußes, Zustandsverwaltung, Deployment, Test
Servlets API
JavaServer Pages (JSP)
JSTLJavaServer Faces (JSF)
J2SE API - Core Platform
� Bedarf an Rahmenwerken und Entwicklungswerkzeugen
3
5
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Empfehlungen und Lösungsansätze
• Empfehlungen der “Java Blueprints”– Richtlinien zum Einsatz der J2EE Webkomponenten
– Vorschlag des Einsatzes von Anwendungsrahmenwerken• Model-View-Controller-Architekturmuster
• zahlreiche Open Source und kommerzielle Rahmenwerke undEntwicklungswerkzeuge
• spezielle Lösungsansätze:– OIO GmbH
• Open Source Framework Apache Struts
– SAP AG• zentrale Oberflächentechnologie Web Dynpro
6
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Vergleich von Technologien - auf welcher Basis ?
• Fragestellung der Arbeit:– Mittels welcher der beiden Technologien können Hers teller
Softwareprodukte effizienter herstellen ?
• Vergleichsbasis: PRODUKTIVITÄT (P)
– ökonomisch: P =
• Zielsetzung: Definition eines adäquaten Produktivitätsmaßes– Herausforderung: Wertermittlung ohne realen Markt
erzeugter Produktwert
eingesetzte Produktionsfaktoren
4
7
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Vereinheitlichung der Produktionsfaktoren
• Warum ?– Die Webschicht existiert selten allein !
– Code ist nicht alles !– Web Dynpro gibt‘s (noch) nicht SOLO !
• Bewertungsgegenstand: Softwareproduktionsumgebung– (organisatorische und ) softwaretechnische Umgebung zur
Unterstützung von Softwareentwicklungsprozessen
8
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Die OIO-Softwareproduktionsumgebung
J2EE EclipseProjektstruktur
Rational XDE Eclipse IDE
GenerierterJava Quellcode
UML Klassen-diagramm
src
build
…
OIO XDocletGenerator
GenerierterJava Quellcode
mit XDoclets
/** … * @struts.form */
Steuerung der Prozesse über AntSteuerung der Prozesse über Ant
build.xml
Lokal:
Bearbeitung Build ManagementTesten mit JUnit
CVS Server
Getesteter Quellcodemit Konfiguration
Check in
Check out
Cruise ControlServer
Continuous integration
5
9
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Die SAP-Softwareproduktionsumgebung
verschiedene Eclipse Projektstrukturen und Ansichten je Komponente
Change Management
System
SAP NetWeaver Developer Studio
GenerierterJava Quellcode
UML Diagramm
src
build
…
Lokal:
Graphische Bearbeitung Build ManagementTest System
ComponentBuild Server
Generierungsprozesse
Check in
Check out
Design TimeRepository
Zentral:
Getesteter Java Quellcodeund generierte Konfigurationen
Gesamte Steuerung aus der IDEGesamte Steuerung aus der IDE
J2EE Test System
10
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Das Apache Struts Projekt
Servlet Container
Model
JSP
ActionServlet Action
Struts Taglibs
BusinesslogikRequest
ResponseAuslesen der FormBeans
und der JavaBeans (Beans)
Aufruf
Senden / Lesen der Daten
FormBean
Bean
BeanBean
EJB, JavaBeans,..
DOTs
• MVC-Komponenten: das Model
6
11
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Das Apache Struts Projekt
Servlet Container
View Model
JSP
ActionServlet Action
Struts Taglibs
BusinesslogikRequest
ResponseAuslesen der FormBeans
und der JavaBeans (Beans)
Aufruf
Senden / Lesen der Daten
FormBean
Bean
BeanBean
EJB, JavaBeans,..
DOTs
Common Controls Tag Library
externe Tag Library
• MVC-Komponenten: die View
12
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Das Apache Struts Projekt
• MVC-Komponenten: der Controller
Servlet Container
Controller
View Model
JSP
ActionServlet Action
Struts Taglibs
BusinesslogikRequest
ResponseAuslesen der FormBeans
und der JavaBeans (Beans)
Aufruf
Senden / Lesen der Daten
FormBean
Bean
BeanBean
EJB, JavaBeans,..
DOTs
Aufrufen des Actions
Rückgabe des Mappings
Auswahl der View
Common Controls Tag Library
externe Tag Library
7
13
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
SAP und Web Dynpro
• Herausforderungen– Bilingual - ABAP und Java
– Vielseitigkeit heutiger Anforderungen– unterstützende Werkzeuge
SAP Web AS Java Personality
Backend Application
J2EE Web Dynpro Runtime
RMI
SOAPbasieren auf
Web Dynpro Metamodell
SAP Web AS ABAP Personality
Web DynproMetadaten
JavaGenerator
ABAP Generator
ABAP Web Dynpro Runtime
Web Dynpro Application
Web Dynpro Application
Java / J2EE
ABAP
J2EE Backend
ABAP Backend
Web Service Provider
SOAP
RMI
SAP Java Connector (RFC)
RFC, BAPI
14
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
View
View Layout Control
ViewArea
OutboundPlugs
InboundPlugs
*
*
*
ViewUsage
*
1
*
*navigiert
*
*
*
Window
*
Component*
*
Das Web Dynpro Metamodell
• MVC-Komponenten: die View
8
15
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Das Web Dynpro Metamodell
• MVC-Komponenten: der Controller
Controller
View
Component
Controller
View
Context Node
Layout Control
ViewArea
OutboundPlugs
InboundPlugs
*
**
besitzt1
0..1
**
*
*
*
ViewUsage
*
1
*
*navigiert
*
*
ContextAttribute
*
*
*
1
gebunden an
abgebildet auf0..1
Window
*
*
besitzt
16
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Das Web Dynpro Metamodell
• MVC-Komponenten: das Model
Model
Controller
View
Component
Controller
View
Context Node
Layout Control
ViewArea
OutboundPlugs
InboundPlugs
*
**
1
0..1
*
*
*
*
*
ViewUsage
*
1
*
*navigiert
*
*
ContextAttribute
*
*
*
1
gebunden an
0..1
Window
*
*
ModelModel Classverwendet * *
gebunden an (und abgebildet auf)
0..1
*abgebildet auf
besitzt
besitzt
9
17
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Definition des Produktivitätsmasses
ASQ
P =
Legende:P = ProduktivitätSQ = Software-QualitätsmaßA = Realisierungsaufwand
Funktionalität
Zuverlässigkeit
Änderbarkeit
Richtigkeit
InteroperabilitätSoftware-
Qualitätsmassals FCM - Modell
ÄnderbarkeitModifizierbarkeit
Struts WebDynpro
Ist eine Entkopplung vonlogischem und physikalischemDatenmodell möglich?
0 1
... ... ...
...
factor criteria metrics
Indikatorenaus Fragen
Realisierungs-aufwand
AufwandsschätzungFunction Point Analyse
AufwandsmessungImplementierungsaufwände
Aufwandsbereinigungz.B. Kommunikationsaufwand
18
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Vorgehensweise: Realisierungsaufwand
• Referenzwert: Aufwandsschätzung mittels Function Point Analyse– Umfang in gewichteten Function Points = 70 D(evelopment)FP
• Summe der ungewichteten Function Points: 74 UFP• Value Adjustment Factor (VAF): 0,94
• Aufwand nach ISBSG Release 5 in Personenstunden (PS)
– PS = 11,79 * DFP 0,898 = 535 h
– Abgrenzung Webschicht
• Erstellung der Businesslogikschicht (J2EE) (70:30)
• Erstellung von Integrations- und Systemtests
• Erstellung der Systemtestdokumentation undInbetriebnahmeanleitung
– Anteiliges Ergebnis der Aufwandsschätzung ≈≈≈≈ 262 h
10
19
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Ergebnisse der Aufwandsmessung
• Aufwandsmessung:– Zeiterfassungssystem für
die Phasen des SLC• Testaufwände
vernachlässigt !
• Aufwandsbereinigung– unterschiedliche Teamgröße - Kommunikationsaufwand– Inline Source Dokumentation
– Instabilität der Werkzeuge von Web Dynpro
RealisierungsaufwandKategorie Struts Web Dynpro
Analyse 27,5 18,0
Architektur/Design 58,5 44,0
Implementierung 32,3 12,0
Werkzeugkonfiguration 40,1 8,0
Verwaltung 6,5 1,0
Gesamt 164,9 83,0
Verhältnis 1 0,5
20
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Vorgehensweise: relatives Softwarequalitätsmass
Funktionalität
Zuverlässigkeit
Benutzbarkeit
Effizienz
Änderbarkeit
Übertragbarkeit
Softwarequalitätnach DIN ISO 9126
factorQualitätsmerkmal
Analysierbarkeit
Modifizierbarkeit
Stabilität
Prüfbarkeit
0,25
0,25
0,25
0,25
criteria
Ordnungmässigkeit
Wiederherstellbarkeit
Bedienbarkeit
Konformität
Verbrauchsverhalten
Qualitätsteilmerkmal
Gewichtungsfaktor
metricsIndikatoren
11
21
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Beispiel : Indikatoren der Änderbarkeit
22
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Ergebnisse der SQ-Ermittlung
• Ergebnisbetrachtung– Gewichtungsfaktoren und Versionen !!!
• Beispiel: mangelnde Testunterstützung
Relatives Maß der Software-QualitätQualitätsmerkmal Struts* Web Dynpro*
Funktionalität 0,93 0,63
Zuverlässigkeit 0,81 0,61
Benutzbarkeit 0,85 0,70
Effizienz 0,57 0,71
Änderbarkeit 0,63 0,63
Übertragbarkeit 0,85 0,82
relatives Qualitätsmaß 0,77 0,69
Verhältsnis (normiert) 1 0,89
12
23
© 2004 Orientation in Objects GmbHEin Vergleich der Produktivität von Web Dynpro und Apa che Struts
Ergebnisse und Ausblick
• Ergebnisse:– übertragbare Methodik für andere technologische Ans ätze
– Verhältnis P Struts : PWeb Dynpro ≈≈≈≈ 1: 1,77
• Ausblick :– wiederholte Messung in 2005– Erprobung der Methodik an weiteren Technologien
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
Vielen Dank für IhreAufmerksamkeit !
Sabine Winkler, winkler(at)oio(dot)de
13
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
???
? ?
????
Fragen ?