The Code Metrics and the Code Analysis is performed using the integrated MS Visual Studio tools.

Statistics

Code metrics

Driver code

Attribute

Classes

23

Methods

500+

Lines of code (LOC)

3400+

Cyclomatic complexibility

1382

Maintainability index

88

Depth of inheritance

5

Class coupling

153

Scenarios Test cases code

Attribute

Test cases

70

Lines of code (LOC)

2101

Cyclomatic complexibility

297

Maintainability index

48

Unit testing code

Attribute

Unit test cases

100+

Classes

Class name

BatchResult

ColumnMetaData

CUBRIDBatchResult

CUBRIDBlob

CUBRIDClientFactory

CUBRIDClob

CUBRIDCollectionCommand

CUBRIDCommand

CUBRIDCommandBuilder

CUBRIDConnection

CUBRIDConnectionStringBuilder

CUBRIDDataAdapter

CUBRIDDataReader

CUBRIDException

CUBRIDOid

CUBRIDParameter

CUBRIDParameterCollection

CUBRIDSchemaProvider

CUBRIDStream

CUBRIDTransaction

ResultInfo

ResultTuple

Utils

Development issues

During the development of the driver, we came across some issues that needs to be acknowledged, in order to help future development projects.

CUBRID Documentation:

The sockets communication protocol is not documented. We have to rely on reverse engineering the sockets communication protocol from the JDBC driver source code.

ADO.NET documentation and models:

Mapping the CUBRID engine protocol to the ADO.NET specifics is a challenge because in many cases there is no (direct) equivalent or mapping for metadata, isolation levels, binary data, data types, date/time differences etc.Therefore there is no complete compatibility with the features implemented in the MS SQL Server ADO.NET driver, for example.

There are very few examples available online on how to implement an ADO.NET driver and many issues required a significant amount of time invested into analysis and investigation.

Incompatibilities:

Running the Java Stored procedures/functions is not possible – Java VM is not available