GlobalObjects 'Product Backlog'
This backlog summarizes desired extensions, cleanups and errors that need to be fixed (each marked by type: EXT, RMV and ERR).
The board is divided into the statuses "Accepted", "Planned", "In progress", and "Done or bug fixed for version xxx".
Completed requirements for the releases can be viewed under GlobalObjects 'Product Backlog' completed.
GloDeveloper, GloExplorer; Display classes sorted alphabetically.
ID: 20240917_2Type: EXT
User/Role: GloDeveloper and GloExplorer user
Description: The user should be provided with a display in which all classes in a database are listed alphabetically. As in the tree view, these should be editable by selection.
Benefit: GlobalObjects developing users can access classes more quickly.
Status: in progress
GlobalObjects programming instructions; the handling of "Monitor/notify persistent objects" is not sufficiently explained.
ID: 20240705_1Type: EXT
User/Role: Developing users of GlobalObjects
Requirement: Individual "best practice" examples should be shown in the GlobalObjects programming instructions in the chapter "Monitor/notify persistent objects".
Benefit: Developing users of GlobalObjects can achieve a successful result more quickly and with less frustration.
Acceptance criteria: see above
Status: accepted
GloExplorer; speeding up the reading of objects by reading the table as a whole
ID: 20240529_1Type: EXT
User/Role: GloExplorer user
Requirement: If many objects have to be read, this takes time. To speed things up, only the AllSet table should be read as a whole, regardless of whether objects are read-locked. Watch/Notify should continue to change the table.
Benefit: The user can continue working more quickly.
Acceptance criteria: see above
Status: accepted
New GloDeveloper
ID: 20211009_1Type: EXT
User/Role: GloDeveloper user
Requirement: The new GloDeveloper should be multi-user capable. Data storage is based on the Glo database. Namespaces and embedded persistent classes are supported. The user can influence the necessary generation of individual files more.
Benefit: An extended use when creating Glo databases and persistent classes.
Acceptance criteria: S.o.
Status: planned
GloDeveloper; if the last attribute of a class with index is deleted, the GloDeveloper crashes (index?)
ID: 20190727_2Type: ERR
User/Role: GloDeveloper user
Description: The GloDeveloper crashes if the last attribute used in an index in the same class is deleted in the class editing dialog.
Workaround: First remove the attribute to be deleted from the index or delete the index and 'Apply', then remove the attribute.
Status: recorded
GloExplorer; Watch / Notify and the application freezes
ID: 20200826_1Type: EXT
User/Role: GloExplorer user
Requirement: If many notifications are fired by the GloServer, the GloExplorer freezes. During notification, it should be possible to continue working, as when reading in the objects.
No longer in "void GloQtWatchCallBack::notify( GloNotifyNote & rNote )" QCoreApplication::postEvent(...), but instantiate a new thread which controls the ::_processObjectNotifyEvent(...) method in GloQtExplorerAllSetProp or GloQtExplorerBaseAllSetUserInterface with new ones parameters.
Benefit: The user no longer thinks that GloExplorer has crashed and can continue working.
Acceptance criteria: The requirement is met if the user can continue working with many notifications and GloExplorer no longer freezes.
Status: recorded
GloExplorer; Memory leak
ID: 20190816_1Type: ERR
User/Role: GloExplorer user
Description: If the reading of an AllSet is interrupted in GloExplorer, an object of type 'GloQtIntAllSetGenericPersistent' instantiated in 'void GloQtReadNewObjectsInAllSetThread::run()' remains in memory.
Workaround: Allow the reading to finish or live with it until the error is resolved.
Status: recorded
Save transaction across crashes
ID: 20200523_1Type: EXT
User/Role: User of GlobalObjects
Requirement: If the computer or GlobalObjects application (executing the transaction) crashes during a transaction, not all objects in the transaction may be up to date.
So with a final "commit" before writing to the tables, the transaction should be saved flat, then the tables should be written and when finished, the transaction should be deleted.
If a saved transaction is found during a restart, it will simply be executed again.
This should be made possible with another parameter in the transaction-starting methods.
Benefit: Advanced transaction security.
Acceptance criteria: The requirement is met if an aborted transaction is completed after a restart.
Status: recorded
OQL
ID: 20200523_2Type: EXT
User/Role: User of GlobalObjects
Requirement: The OQL query language should be supported.
Benefit: An extended query option.
Acceptance criteria: The requirement is met if OQL is supported.
Status: recorded
Nested persistent classes
ID: 20190423_1Type: EXT
User/Role: GloDeveloper user
Requirement: It should be possible to define nested persistent classes with the GloDeveloper, which are treated like other classes by GlobalObjects.
Benefit: Nested classes have their purpose and are provided for in the C++ standard. This should also be possible in GlobalObjects.
Acceptance criteria: The requirement is met if nested persistent classes can be created by the user and their objects are processed like other objects by GlobalObjects.
Status: recorded
Persistent classes derive from non-persistent classes
ID: 20190716_2Type: EXT
User/Role: GloDeveloper user
Requirement: It should be possible to derive persistent classes from non-persistent classes using the GloDeveloper.
In the GloDeveloper, inherited attributes of the non-persistent class should be marked as 'persistent' so that they are taken into account in the persistent subclass. This should also be possible with attributes marked as 'private'.
Benefit: The user should be given the opportunity to save objects of types, for example from libraries.
Acceptance criteria: The requirement is met if non-persistent classes with all desired attributes can be processed via a persistent subclass in GlobalObjects.
Status: recorded
Design your own persistent attributes
ID: 20190716_3Type: EXT
User/Role: GloDeveloper user
Requirement: It should be possible to design persistent attribute types with GloDeveloper.
In the developer it should be possible to derive your own type from an abstract type (class). Overriding virtual methods is intended to ensure that GlobalObjects processes this new type as an attribute of a persistent class.
Benefit: Although a persistent class can be created as an attribute of another persistent class, this would, for example, be a new table for a class 'fraction' with two int attributes. To avoid this, the mentioned 'fraction' can, for example, be saved as std::string.
Acceptance criteria: The requirement is met if the developing user can create an attribute type himself and this can be processed in persistent classes as an attribute in GlobalObjects.
Status: recorded
Let select a own directory for each persistent class or its header file
ID: 20190722_1Type: EXT
User/Role: GloDeveloper user
Requirement: It should be possible to use GloDeveloper to save the header and source files of a class in their own directory.
In the GloDeveloper it should be possible to select a directory for each class that overwrites the default directories of the project.
Benefit: This means that header and source files can be saved even more flexibly.
Acceptance criteria: The requirement is met if the developing user can select a header and source directory for each persistent class.
Status: recorded
Reading Hedaer from persistent class from GloDeveloper (reverse engineering)
ID: 20190722_3Type: EXT
User/Role: GloDeveloper user
Requirement: It should be possible to read in a persistent class with GloDeveloper in order to edit it further if necessary.
Benefit: Persistent classes should be able to be edited in the optional editor and then read into GloDeveloper if desired.
Acceptance criteria: The requirement is met if GloDeveloper can read in a persistent class.
Status: recorded
An error translation file for GloDeveloper
ID: 20180919_1Type: EXT
User/Role: GloDeveloper user
Requirement: In the event of an error, not only the error number should be displayed, but additional explanatory texts from a file should also be displayed. Multilingualism should now be taken into account.
Benefit: The GloDeveloper user does not have to look up the documentation or struggle with the resulting interpretations.
Acceptance criteria: The requirement is met if GloDeveloper displays an explanatory text for every error that occurs.
Status: recorded
An error translation file for GloExplorer
ID: 20180919_2Type: EXT
User/Role: GloExplorer user
Requirement: In the event of an error, not only the error number should be displayed, but additional explanatory texts from a file should also be displayed. Multilingualism should now be taken into account.
Benefit: The GloExplorer user does not have to look up the documentation or struggle with the resulting interpretations.
Acceptance criteria: The requirement is met if GloExplorer displays an explanatory text for every error that occurs.
Status: recorded
Translate error translation file for GloDeveloper into English
ID: 20180919_4Type: EXT
User/Role: GloDeveloper user
Requirement: In the event of an error, GloDeveloper should not only display the error number, but also display explanatory texts in English from a file.
Benefit: English-speaking users of GloDeveloper also benefit from explanatory error texts.
Acceptance criteria: The requirement is met if GloDeveloper displays an explanatory text in English for every error that occurs.
Status: recorded
Translate error translation file for GloExplorer into English
ID: 20180919_4Type: EXT
User/Role: GloExplorer user
Requirement: In the event of an error, GloExplorer should not only display the error number, but also display explanatory texts in English from a file.
Benefit: English-speaking users of GloExplorer also benefit from explanatory error texts.
Acceptance criteria: The requirement is met if GloExplorer displays an explanatory text in English for every error that occurs.
Status: recorded