Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer...

13
1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Ein Vergleich der Produktivität von Web Dynpro und Apache Struts Apache 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 GmbH Ein Vergleich der Produktivität von Web Dynpro und Apache Struts Gliederung des Vortrages Orientierungsmangel bei Java Web Anwendungen Vergleiche unter „Gleichen“ ? Vorstellung der Technologien Definition eines Produktivitätsmasses Ergebnisse des Vergleiches

Transcript of Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer...

Page 1: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

1

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

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

Page 2: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 3: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 4: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 5: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 6: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 7: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 8: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 9: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 10: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 11: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

Page 12: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

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

[email protected]

Vielen Dank für IhreAufmerksamkeit !

Sabine Winkler, winkler(at)oio(dot)de

Page 13: Ein Vergleich der Produktivität von Web Dynpro und …...1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim info@oio.de Ein Vergleich der Produktivität von Web Dynpro

13

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

???

? ?

????

Fragen ?