Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mdmbl-dev] Erstes Feedback zu mdm api

Hi all,

 

thanks for your feedback, see our comments below:

 

Generell

·         Es fehlt ein gradle basierendes build script.

 

Will be added soon.

 

 

·         Einbindung der beiden Projekte in SonarQube der EWG

       

·         Es existieren gar keine (Unit) Tests.

       

Not ordered by AUDI ?!

 

 

·         Warum sind schon jetzt Elemente deprecated?

 

Some parts oft the API are still under development. Therefore some methods migth be removed / or replaced by more readable and understandable implementations.

 

 

·         Generierung der JavaDocs produziert Fehlermeldungen

 

This will be fixed in the next release

 

 

·         Aus IDL generierten Quellen dürfen nicht eingecheckt, sondern müssen im Zuge des Builds gebaut werden. Vorteil => keine Warnungen aus stat. Codeanalyse mit Sonarqube.

 

Will be fixed in future release

 

 

·         110 Todos. Wann werden diese bereinigt?

 

Some parts could not be done as long as others have been finished (like ODS enumeration conversion, eg: MeaQuantity.DataType, Quantity.DefDataType, etc.).

ODS enumerations are defined by the application model and provided as integer values. The ODS adapter will provide an automatic conversion (ODS enum value <-> java enum type) to provide a simple to read and understand data item interfaces (Channel, Quantity, etc.).

 

 

·         JavaDoc hat nicht über alle Klassen gleiche Tiefe/Qualität

 

Examples?

 

 

·         Viele Klassen aus dem Paket base.model enthalten nur getter/setter ohne Logik. Könnte man diese generieren oder folgt noch Logik?`

 

·         Unklar: Unterschied Entity vs. DataItem?

 

Each entity represents an  application element and its meta data like attributes (name, value type, etc.) and relations to other entities whereas a data item is an instance of a certain entity.

 

 

Details aus ersten Stichproben

·         disconnect sollte Funktion von BaseDataProvider und nicht der DataProviderFactory sein.

 

 

·         keine Abkürzungen (z.B. CI_EQ, SelOperator, SelOpcode, AggrFunc) verwenden, sondern ausschreiben.

 

The only enumeration where we have taken the abbrevitaions from ASAM ODS is Operation (SelOpcode) (CI_EQ, CI_GTE, etc.). We are open to replace them with a full naming.

 

SelOperator (ASAM ODS API) maps to Operator of the MDM 5 API

SelOpcode (ASAM ODS API) maps to Operation of the MDM 5 API

AggrFunc (ASAM ODS API) maps to Aggregation of the MDM 5 API

 

 

·         INSET müsste IN_SET heißen.

 

Fixed.

 

 

·         org.eclipse.mdm.api.base.model noch teilbar in Unterpakete?

 

No, but classes like Project, Pool (formerly StructureLevel), Tpl*, Cat*, etc. will be introduced in a new project „org.eclipse.mdm.api.default“

 

·         BiDiMapper sollte BiDiMap heißen und zwei Maps enthalten. Vorteil: Typsicherheit. Naming an https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/BidiMap.html anlehnen.

 

This is an internal class used for maping between MDM5 API enumerations and the associated ODS API types. It should never be used outside of the MDM 5 ODS adapter (an ATFX implementation of the MDM 5 API  might want to use it…)

 

 

·         ODSConverter nutzt Seq und SEQ als Postfix. Vereinheitlichen auf Seq (oder noch besser: ganz weglassen).

 

Naming within this internally used class will change.

 

 

·         ODSConverter dataTypeEnum2ValueType nach dataTypeEnumToValueType. Dito valueType2DataTypeEnum

 

Naming within this internally used class (ODSUtils) will change.

 

 

·         Warum tragen nur manche Klassen das Präfix ODS? Kann darauf ganz verzichtet werden? Oder Präfix „I“ für Interfaces oder Postfix „Impl“ für Klassen

 

They are prefixed with ODS because they implement interfaces from the MDM5 API (Entity, Attribute, etc) against the ODS specification.

 

 

·         Statable, Copyable (und weitere) sind ein reines Markerinterfaces. Fehlen Methoden?

 

Not every data item may be used with every method defined in the BaseDateProvider interface. So for example parameter sets may be retrieved by using BaseDataProvider.getParameterSets(Parameterizable).

This method takes either a measurement or a channel data item which both implement the Parameterizable interface.  If used with other data items this code will not compile.

 

·         dito Deletabe. Gibt es unlöschbare Items?

 

Environment is a data item which is not allowed to be deleted. Role (will be defined in an extension module) was not allowed to be deleted in MDM 4

 

·         AbstractDataItem. relatedDataItems erlaubt keine zu n-Verknüpfungen und keine typgleichen Relationen, aber mit unterschiedlichen Rollen (fiktives Bsp. Beziehung zur Person einmal als Auftraggeber und Auftragnehmer).

 

May be added in a future release.

 

 

·         URI als eigene Klasse finde ich merkwürdig. Kann nicht der JDK-Standard genutzt werden?

 

·         AxisType.BOTH sollte besser XY_AXIS heißen.

 

Naming was taken from the MDM4 API

 

 

·         Channel hat ausschließlich priv. Konstruktor. Hintergrund?

 

Currently all defined data items are only created by the data provider. Therefore their constructors are hidden.

 

 

·         Warum ist Value.unit ein String keine Unit?

 

Value.unit is for displaying purposes only.

 

 

·         Aufgabe FilterItem? Ein C-Union aus Condition und Operator. Lässt sich das nicht anders mehr Java-like darstellen?

 

This is an internal class which is used to describe and generate a valid filter sequence which is internally used by classes implementing the org.eclipse.mdm.api.base.query.Query interface.

 

 

Mit freundlichen Grüßen
 
Dipl.-Informatiker
Viktor Stöhr

Technischer Sachbearbeiter
Diagnose und Datenmanagementsysteme
DD-1
 

 

GIGATRONIK Ingolstadt GmbH | Ein Unternehmen der GIGATRONIK-Gruppe

Dr.-Ludwig-Kraus-Str. 6
D-85080 Gaimersheim 

Mobil:    +49 162 2844927
E-Mail: viktor.stoehr@xxxxxxxxxxxxxx

www.gigatronik.com
 
----------------------------------------------------------------------------------------------------------

GIGATRONIK Ingolstadt GmbH | Geschäftsführer: Dr.-Ing. Edwin Tscheschlok, Ralf Gaiser

Sitz und Registergericht: Gaimersheim, Ingolstadt HRB 3322

----------------------------------------------------------------------------------------------------------

 

Diese E-Mail kann vertrauliche Informationen enthalten. Wenn Sie nicht der rechtmäßige Empfänger sind, informieren Sie den Absender bitte unverzüglich durch Rücksendung der E-Mail und löschen Sie sie auf Ihrem System. Die unberechtigte Nutzung oder Weitergabe von vertraulichen Informationen kann straf- und zivilrechtlich verfolgt werden. Vielen Dank!

 

This e-mail may contain confidential information and may also be privileged. lf you are not the intended recipient please notify the sender immediately by sending back the e-mail and delete it on your system. Any unauthorized use or transfer of confidential information may have legal consequences. Thanks!

 

Sparen Sie pro Seite ca. 400 ml Wasser, 2 g CO2 und 21 g Holz:
Drucken Sie daher bitte nur, wenn es wirklich notwendig ist.

 

Von: mdmbl-dev-bounces@xxxxxxxxxxx [mailto:mdmbl-dev-bounces@xxxxxxxxxxx] Im Auftrag von Stefan.Ebeling@xxxxxx
Gesendet: Freitag, 15. Januar 2016 14:16
An: mdmbl-dev@xxxxxxxxxxx
Betreff: [mdmbl-dev] Erstes Feedback zu mdm api

 

Hallo zusammen,

 

Anbei ein erstes Feedback von meiner Seite zum aktuellen Stand des mdm APIs. Leider in Deutsch, da erst heute im AC besprochen wurde, dass Feedback über den DEV-Mailer zu verteilen ist.

Manche meiner Vorschläge sind auch Geschmackssache und Geschmäcker sind verschieden. Existieren konkrete Eclipse Naming Conventions, die uns helfen, einen gemeinsamen Geschmack zu finden?

Für eine Diskussion meiner Anmerkungen stehe ich gern zur Verfügung.

Generell

·         Es fehlt ein gradle basierendes build script.

·         Einbindung der beiden Projekte in SonarQube der EWG

·         Es existieren gar keine (Unit) Tests.

·         Warum sind schon jetzt Elemente deprecated?

·         Generierung der JavaDocs produziert Fehlermeldungen

·         Aus IDL generierten Quellen dürfen nicht eingecheckt, sondern müssen im Zuge des Builds gebaut werden. Vorteil => keine Warnungen aus stat. Codeanalyse mit Sonarqube.

·         110 Todos. Wann werden diese bereinigt?

·         JavaDoc hat nicht über alle Klassen gleiche Tiefe/Qualität

·         Viele Klassen aus dem Paket base.model enthalten nur getter/setter ohne Logik. Könnte man diese generieren oder folgt noch Logik?`

·         Unklar: Unterschied Entity vs. DataItem?

 

Details aus ersten Stichproben

·         disconnect sollte Funktion von BaseDataProvider und nicht der DataProviderFactory sein.

·         keine Abkürzungen (z.B. CI_EQ, SelOperator, SelOpcode, AggrFunc) verwenden, sondern ausschreiben.

·         INSET müsste IN_SET heißen.

·         org.eclipse.mdm.api.base.model noch teilbar in Unterpakete?

·         BiDiMapper sollte BiDiMap heißen und zwei Maps enthalten. Vorteil: Typsicherheit. Naming an https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/BidiMap.html anlehnen.

·         ODSConverter nutzt Seq und SEQ als Postfix. Vereinheitlichen auf Seq (oder noch besser: ganz weglassen).

·         ODSConverter dataTypeEnum2ValueType nach dataTypeEnumToValueType. Dito valueType2DataTypeEnum

·         Warum tragen nur manche Klassen das Präfix ODS? Kann darauf ganz verzichtet werden? Oder Präfix „I“ für Interfaces oder Postfix „Impl“ für Klassen

·         Statable, Copyable (und weitere) sind ein reines Markerinterfaces. Fehlen Methoden?

·         dito Deletabe. Gibt es unlöschbare Items?

·         AbstractDataItem. relatedDataItems erlaubt keine zu n-Verknüpfungen und keine typgleichen Relationen, aber mit unterschiedlichen Rollen (fiktives Bsp. Beziehung zur Person einmal als Auftraggeber und Auftragnehmer).

·         URI als eigene Klasse finde ich merkwürdig. Kann nicht der JDK-Standard genutzt werden?

·         AxisType.BOTH sollte besser XY_AXIS heißen.

·         Channel hat ausschließlich priv. Konstruktor. Hintergrund?

·         Warum ist Value.unit ein String keine Unit?

·         Aufgabe FilterItem? Ein C-Union aus Condition und Operator. Lässt sich das nicht anders mehr Java-like darstellen?

 

Beste Grüße

Stefan Ebeling

 

BMW Group
Stefan Ebeling

Information Management

Technisches Datenmanagement

 

Bremer Straße 6

80807 München

 

Postanschrift:

80788 München

 

Tel.: +49 89 382 75 756

Mail: stefan.ebeling@xxxxxx
Web: 
http://www.bmwgroup.com/

----------------------------------------------------------------

Bayerische Motoren Werke Aktiengesellschaft
Vorstand: Harald Krüger (Vorsitzender),
Milagros Caiña Carreiro-Andree, Klaus Draeger,
Friedrich Eichiner, Klaus Fröhlich, Ian Robertson,
Peter Schwarzenbauer, Oliver Zipse.
Vorsitzender des Aufsichtsrats: Norbert Reithofer
Sitz und Registergericht: München HRB 42243

----------------------------------------------------------------

 


Back to the top