Open Source ERP Code Analysis - hpi.de · Open Source ERP Code Analysis Object-oriented Enterprise...

16
Open Source ERP Code Analysis Object-oriented Enterprise Application Programming Model for In-Memory Databases Team : Paul Möller, Michael Wolowyk Supervisors : Arian Treffer, Ralf Tausner, Martin Lorenz, Jürgen Müller

Transcript of Open Source ERP Code Analysis - hpi.de · Open Source ERP Code Analysis Object-oriented Enterprise...

Open Source ERP Code Analysis

Object-oriented Enterprise ApplicationProgramming Model for In-Memory Databases

Team: Paul Möller, Michael WolowykSupervisors: Arian Treffer, Ralf Tausner, Martin Lorenz, Jürgen Müller

The Challenge

● How does enterprise software look like?

● Is there a common way to classify code?○ Automatically?

● How much coding effort is spent on○ Persistence layer○ Application logic○ Presentation layer○ Configuration○ ...

● (Back to 2-tier architecture?)2

Steps ● Define code categories

○ adopt classification as we go

● Take two open source ERP systems○ Java○ Python

● Classify code manually● Classify code automatically

○ Code classification○ Code analysis○ Code metrics○ Architecture conformance○ Machine learning

3

Code classificationDB Application server Client

4

Code classificationDB Application server Client

m a n u a l l y m a i n t a i n e d

g e n e r a t e d

l i b r a r y d u m p s

e x a m p l e c o d e

5

Code classificationDB Client

m a n u a l l y m a i n t a i n e d

g e n e r a t e d

l i b r a r y d u m p s

e x a m p l e c o d e

PersistenceLayer

Logic Layer

Presentation Layer

6

Code classificationDB Client

m a n u a l l y m a i n t a i n e d

g e n e r a t e d

l i b r a r y d u m p s

e x a m p l e c o d e

PersistenceLayer

Logic Layer

Presentation Layer

Other system

s y s t e m i n t e g r a t i o n

7

Code classificationDB Client

m a n u a l l y m a i n t a i n e d

g e n e r a t e d

l i b r a r y d u m p s

e x a m p l e c o d e

PersistenceLayer

Logic Layer

Presentation Layer

Other system

s y s t e m i n t e g r a t i o n

config config config

config config

config

config

config config config

8

Open Source ERP Systems

...9

10

11

Apache OFBiz (The Apache Open For Business Project) is an open source enterprise automation software project licensed

under the Apache License Version 2.0.

© Apache OfBiz documentation 12

● Entity - relational data construct that contains any number of Fields and can be related to other entities(application data)

Basic Components:

13

Basic Components:● Service - is a simple process that performs a specific

operation(application functionality)

14

DB ClientPersistenceLayer

Logic Layer

Presentation Layer

● MVC● Decorator

pattern● Templates vs

actions● Meta-

programming● Widgets

● SOA● Web Services● Scripting Languages● Meta-programming

● XML Data Modeling

● ORM● Database

independence● Meta-

programming

config config

F R A M E W O R K S

● entitygroup*.xml● entitymodel*.xml● ...

config

● services*.xml● servicegroups*.xml● ...

● Screen.xml● Forms.xml● ...

15

Next Steps ● Define code categories

○ adopt classification as we go● Take two open source ERP systems

○ Java○ Python

●Classify code manually

●Classify code automatically○ Code classification○ Code analysis, Code metrics○ Architecture conformance○ Machine learning, SVMs

●Compare results to improve classifiers16