ETSI's Bug Tracker - Ext Pack: Object-oriented features (ES 203 790)
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0007863 | Ext Pack: Object-oriented features (ES 203 790) | [All Projects] General | public | 26-08-2019 13:49 | 09-01-2020 16:02

Reporter | KristÃ³f Szabados |
Assigned To | Jens Grabowski |
Priority | normal | Severity | feature | Reproducibility | have not tried
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version |  |
Target Version |  | Fixed in Version |  |

Summary | 0007863: libraries that could be added to OO
Description | This CR is a placeholder to collect ideas for libraries, that can be implemented with the new Object Oriented features and provided with the standard. For example collections like in Java.
Steps To Reproduce |
Additional Information |
Tags | No tags attached.
Relationships |

Attached Files

CR_7863.docx (153,941) 17-12-2019 08:57
http://oldforge.etsi.org/mantis/file_download.php?file_id=3880&type=bug
CR_7863_with_generics.docx (155,714) 17-12-2019 12:31
http://oldforge.etsi.org/mantis/file_download.php?file_id=3885&type=bug
CR_7863_v2.docx (163,142) 17-12-2019 20:07
http://oldforge.etsi.org/mantis/file_download.php?file_id=3888&type=bug
CR_7863_v3.docx (170,593) 18-12-2019 10:12
http://oldforge.etsi.org/mantis/file_download.php?file_id=3889&type=bug
CR_7863_v4.docx (170,486) 18-12-2019 11:47
http://oldforge.etsi.org/mantis/file_download.php?file_id=3893&type=bug

Issue History
Date Modified | Username | Field | Change
26-08-2019 13:49 | KristÃ³f Szabados | New Issue |
27-08-2019 09:02 | KristÃ³f Szabados | Note Added: 0015464 |
27-08-2019 09:28 | KristÃ³f Szabados | Assigned To | => KristÃ³f Szabados
27-08-2019 09:28 | KristÃ³f Szabados | Status | new => assigned
28-08-2019 12:25 | KristÃ³f Szabados | Note Added: 0015483 |
28-08-2019 13:17 | KristÃ³f Szabados | Note Added: 0015486 |
17-12-2019 08:57 | KristÃ³f Szabados | File Added: CR_7863.docx |
17-12-2019 08:58 | KristÃ³f Szabados | Note Added: 0015538 |
17-12-2019 09:09 | KristÃ³f Szabados | Assigned To | KristÃ³f Szabados => Jacob Wieland - Spirent
17-12-2019 09:29 | Jacob Wieland - Spirent | Note Added: 0015540 |
17-12-2019 10:09 | Jacob Wieland - Spirent | Note Added: 0015542 |
17-12-2019 10:12 | Jacob Wieland - Spirent | Note Added: 0015543 |
17-12-2019 12:29 | KristÃ³f Szabados | Note Added: 0015548 |
17-12-2019 12:29 | KristÃ³f Szabados | Assigned To | Jacob Wieland - Spirent => Kristof.Szabados
17-12-2019 12:29 | KristÃ³f Szabados | Assigned To | Kristof.Szabados => KristÃ³f Szabados
17-12-2019 12:31 | Jacob Wieland - Spirent | File Added: CR_7863_with_generics.docx |
17-12-2019 12:32 | Jacob Wieland - Spirent | Note Added: 0015550 |
17-12-2019 20:07 | KristÃ³f Szabados | File Added: CR_7863_v2.docx |
17-12-2019 20:08 | KristÃ³f Szabados | Note Added: 0015562 |
17-12-2019 20:09 | KristÃ³f Szabados | Assigned To | KristÃ³f Szabados => Jacob Wieland - Spirent
17-12-2019 20:09 | KristÃ³f Szabados | Status | assigned => confirmed
18-12-2019 08:06 | Jacob Wieland - Spirent | Note Added: 0015567 |
18-12-2019 08:13 | KristÃ³f Szabados | Note Added: 0015568 |
18-12-2019 10:12 | Jacob Wieland - Spirent | File Added: CR_7863_v3.docx |
18-12-2019 10:13 | Jacob Wieland - Spirent | Status | confirmed => new
18-12-2019 10:13 | Jacob Wieland - Spirent | Note Added: 0015572 |
18-12-2019 10:13 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => KristÃ³f Szabados
18-12-2019 10:13 | Jacob Wieland - Spirent | Status | new => confirmed
18-12-2019 11:18 | KristÃ³f Szabados | Assigned To | KristÃ³f Szabados => Tomas Urban
18-12-2019 11:18 | KristÃ³f Szabados | Status | confirmed => assigned
18-12-2019 11:18 | KristÃ³f Szabados | Note Added: 0015579 |
18-12-2019 11:37 | Jens Grabowski | Assigned To | Tomas Urban => Jacob Wieland - Spirent
18-12-2019 11:47 | Jacob Wieland - Spirent | File Added: CR_7863_v4.docx |
18-12-2019 11:47 | Jacob Wieland - Spirent | Note Added: 0015581 |
18-12-2019 11:48 | Jacob Wieland - Spirent | Status | assigned => resolved
18-12-2019 11:48 | Jacob Wieland - Spirent | Resolution | open => fixed
18-12-2019 11:48 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Jens Grabowski
09-01-2020 16:02 | Jens Grabowski | Status | resolved => closed

Notes

(0015464)
KristÃ³f Szabados
27-08-2019 09:02

Data structures I have found to be used in products: - Queue (First-in First-out, linked) - Stack (Last-in First-out) - RingBuffer (fixed size list whose head indicator can move) - HashMap (buckets based) - Free-Busy Queue - Red-Black Tree

(0015483)
KristÃ³f Szabados
28-08-2019 12:25

Would it be useful to have some non-OO libraries, that demonstrate some general TTCN-3 usage, that can also be useful when writing tests? For example a "Math" module with functions like this: function f_MinI(in integer i1, in integer i2) return integer { if( i1 <= i2) { return i1; } else { return i2; } }

(0015486)
KristÃ³f Szabados
28-08-2019 13:17

STF discussion: we should provide only module with abstract classes. The semantics should be described in both the module and the standard. These classes should become an annex to the Object-Oriented extension.

(0015538)
KristÃ³f Szabados
17-12-2019 08:58

First version uploaded to start discussion.

(0015540)
Jacob Wieland - Spirent
17-12-2019 09:29

- there should be a Set class - for use together with Advanced Parameterization, there should be a generic version using type parameters (HashMap<Key, Value>) - collection types should have iterators (at least for lists, sets and maps this is often used) - maybe we could also add PriorityQueue (a queue where elements are inserted depending on their order)

(0015542)
Jacob Wieland - Spirent
17-12-2019 10:09

- the ring buffer should have a function which yields its capacity so that one does not accidentally write over the size limit

(0015543)
Jacob Wieland - Spirent
17-12-2019 10:12

- the raised exceptions should be derived from an abstract exception type class so that subclasses can raise specializations of that type

(0015548)
KristÃ³f Szabados
17-12-2019 12:29

STF discussion: instead of charstring exception lets raise a generic exception of class Exception. Later this can be refined to a list of more specific exceptions.

(0015550)
Jacob Wieland - Spirent
17-12-2019 12:32

added a document containing the generic version of the library

(0015562)
KristÃ³f Szabados
17-12-2019 20:08

Added set and priorityqueue, iterators. question: should we use a naming convention of abstractSomething for abstract classes?

(0015567)
Jacob Wieland - Spirent
18-12-2019 08:06

I don't think that such naming conventions help the readability of the using code, especially if those names are the ones most commonly used. The names they have should reflect the concepts they embody.

(0015568)
KristÃ³f Szabados
18-12-2019 08:13

For the "generics" version ... I don't think the current way of parameterisation is suitable here.
1)
In the current way, one can only semantically check a construct once it is used with an actual parameter.
This would mean, that it is not possible to ensure that libraries are safe, without trying for all possible types.
2)
As each actual instance (with for example an actual type parameter) has to be checked, that would lead to an explosion in semantic checking duration.
Just think of not checking the hashmap only once, but once for each and every time it is instantiated (maybe even used)
3)
To solve the above problems, we would need some kind of type-erasure logic ... which does not yet exists in the advanced parameterisation.
Or concepts (with which C++ has been strugling in the last few decades)

(0015572)
Jacob Wieland - Spirent
18-12-2019 10:13

added updated version, please review

(0015579)
KristÃ³f Szabados
18-12-2019 11:18

looks fine for me, please check.

(0015581)
Jacob Wieland - Spirent
18-12-2019 11:47

uploaded a version that only uses single inheritance