Implementation of data classes

Presentation

Document concerned

This document deals with the data contained in a neuron classes. I am writing this short document to clarify the necessary programming work.

Versions

06/12/2016: initial version

Author

Invisible Media

Project

Framework of the project

This project is a digital and algebraic calculation software. This project is a way to train very long and tedious equations and to factor them according to a common approach. Goal: solve equations, find all the solutions algebraically and get an equation based on parameters and fixed digital data.

All the features

The set of features is detailed in this document: All features (unbundled) .xlsx

Name of the feature covered here

Classes of data provided to each neuron

Relative need

The coding of the names has an importance of readability. The names are referenced by variables of classes named constants and that contain a name. Associated with this name, I would add the required data type information. If the named data does not contain the right kind of data so an error is triggered. For any data stored in an object persistent (via a binary serialization), the couple name/type contains an instance of the data to serialize. Find this data is possible only by the name. It is essential to record in this document any name associated with each piece of data in the data model.

Relationship with other features

Use

The data is recorded, read and changed over time via the data model

Explanations


This is to deal with all the versions of the data model. However, a binary serialization means that all data are registered in the persistent file. Once this file has been saved on disk, to resume, just dé-sérialiser. Except that if the software is to a later version, all the non-existent data in the file triggers a null that it is difficult to take into account data fault. In this case, the software should revert to a previous version. When the system uses the earlier version, he also supervises all later versions.
Note that each file has a version number of the software; If a file is not the correct version, this problem is fixed once the file overwritten and saved with the new version.

Programming

I think it is more appropriate to have a class of intermediate data between the de-serialisation and business objects.

The reading process is described in the schema below explained below.

SP-Data-Class-Img.png


During the de-serialisation, a data dictionary is reconstructed with the dynamic of the dotNET type. The type is pre-set for a static class named for the object in question. Because the data type is of type dynamic, it is unknown at the time of the compilation; Once the object has been loaded, it is enough to build a middle class whose properties are read/write, and including the name of each property is specific. The intermediate class hosts so the de-serialise object and can retrieve or modify the value contained in the data dictionary.

When I save the changes by serialization, the data dictionary is saved in the file. Intermediate classes and instances of Neuron process data contained by these classes. These intermediate classes hosts serialized objects and no other data.


Also, for the clarity of the code, intermediate classes also implement simple types such as text or numbers. In this case, it's to keep the object that contains these simple data, not the data itself. In conclusion, all of the intermediate classes are public; serialized objects are private; the serialization and de-serialisation are made in-house, and there is only one class of objects modeling. There is no necessary treatment depending on whether a given element is a simple type or an another serialized object. In the case of lists or tables, it is a type of particular data able to record one or more objects.



Last edited Dec 11, 2016 at 6:24 PM by skercrow, version 3