Release af40b656c85d25ecf7eb1ee930b00fdf
This commit is contained in:
parent
8ab382dd63
commit
4e552631e3
BIN
_requirements_/specification.pdf
Normal file
BIN
_requirements_/specification.pdf
Normal file
Binary file not shown.
261
_requirements_/specification.py
Normal file
261
_requirements_/specification.py
Normal file
@ -0,0 +1,261 @@
|
||||
def specification(req_spec):
|
||||
req_spec.add_title("Title")
|
||||
|
||||
#
|
||||
# Section
|
||||
#
|
||||
sec_uuid = req_spec.add(
|
||||
itemtype="SEC",
|
||||
id=1,
|
||||
heading="Message Object",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=1,
|
||||
heading="Status",
|
||||
description="The Status shall hold some general information (in most cases it is used by the responder). Examples: Okay, Service or Data unknown, Operation not permitted, Authentification required, \\ldots",
|
||||
reason="Give the possibility to transfer additional status information (e.g. to explain negative responses).",
|
||||
fitcriterion="A Status is part of the Message Object and it is holding the Status information.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=2,
|
||||
heading="Service-ID",
|
||||
description="The Service-ID shall hold information about the type of the request / corresponding response. Examples: read request, write request, read response, write response, \\ldots",
|
||||
reason="Give the requestor the possibility to use different types (Services) for a transfer. ",
|
||||
fitcriterion="A Service-ID is part of the Message Object and it is holding the Service-ID information.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=3,
|
||||
heading="Data-ID",
|
||||
description="The Data-ID shall hold information to differtiate the data for a specific Service.",
|
||||
reason="Give the possibility to transfer different information for each Service. ",
|
||||
fitcriterion="A Data-ID is part of the Message Object and it is holding the Data-ID information.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=4,
|
||||
heading="Data",
|
||||
description="The Data shall hold the data to be transfered. For the most requests not data is transmitted.",
|
||||
reason="Give the possibility to transfer Data. ",
|
||||
fitcriterion="Data is part of the Message Object and it is holding the Data information.",
|
||||
)
|
||||
#
|
||||
# Section
|
||||
#
|
||||
sec_uuid = req_spec.add(
|
||||
itemtype="SEC",
|
||||
id=2,
|
||||
heading="Communication",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=5,
|
||||
heading="A full Message Object including the defined properties and data shall be transfered.",
|
||||
description="Every Communication shall transfer a complete message with its content.",
|
||||
reason="See Reasons for every single information of the Message Object.",
|
||||
fitcriterion="Send two different messages and compare the received message with each sent message.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=6,
|
||||
heading="A checksumm shall ensure the correct transmition",
|
||||
description="If the checksum does not fit to the checksum of the transferred data, the message will be ignored, because the complete content including the Service- and Data-ID is possibly corrupted.",
|
||||
reason="Ensure correct data transfer.",
|
||||
fitcriterion="Corrupted message is not in the receive buffer after transmission.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=7,
|
||||
heading="An authentification between server and client shall be possible including status feedback methods ",
|
||||
description="The Client shall have a method to initiate the authentification. In case that the server and the client do have identical secrets, the authentification shall be successfull.",
|
||||
reason="Message protection (e.g. for secure functions or data)",
|
||||
fitcriterion="Check authentification method feedback (client) and authentification feedback (client and server), in case of differing and identical secrets.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=14,
|
||||
heading="An automatic authentification shall available",
|
||||
description="An authentification is executed by the client on every connect.",
|
||||
reason="Simplify handling for authentification.",
|
||||
fitcriterion="Check authentification feedback (client and server) after connect has been triggered.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=8,
|
||||
heading="Communication (rx and tx) shall be disabled, if a secret is given but no authentification had been successfully performed.",
|
||||
description="Communication (rx and tx) shall be disabled, if a secret is given. Except of a response for registered services, saying that a Authentification is required.",
|
||||
reason="Message protection (e.g. for secure functions or data)",
|
||||
fitcriterion="RX and TX is not possible, till a successfull authentification has been performed.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=9,
|
||||
heading="A whitelist for communication (rx and tx) shall be available to enable communication for unauthorised counterparts",
|
||||
description="It shall be possible to add a specific message, identified by Service-ID and Data-ID, to a whitelist. All messages added to that whitelist shall be transmitted and received, if no authentification was successfull performed.",
|
||||
reason="Give the user the possibility to define messages which will not be protected behind the authentification mechanism.",
|
||||
fitcriterion="Transmition and Reception will be enabled, after the message has been added to the whitelist.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=10,
|
||||
heading="Define a channel name for the server and client after connection is established",
|
||||
description="After the connection is established, the client will initiate the channel name exchange. The channel name defined on the client side will be dominant.",
|
||||
reason="Structured logging by creating logger childs for each channel.",
|
||||
fitcriterion="Perform a channel name exchange with no channel name definition, differing channel name definition and identical channel name definition. In all cases, the channel name of the client will be used. Perform two channel name exchanges with only one channel name definition. This definition will be used.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=11,
|
||||
heading="The User shall be able to define a new service",
|
||||
description="The service is defined by a Request Service-ID and a Response Service-ID.",
|
||||
reason="Definition of Request and Response SIDs.",
|
||||
fitcriterion="Define a service and check, that the server will respond on the new Service-ID. The Status shall be \"Request has no callback. Data buffered.\", because no callback is registered for that request.",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=12,
|
||||
heading="Registration of already registered request Service-ID or response Service-ID shall not be possible",
|
||||
description="An exception shall be raised, if a service registration with an existing request SID or response SID is performed.",
|
||||
reason="Changing existing services will create strange situations with already registered callbacks.",
|
||||
fitcriterion="Catch exception for registration of existing request and response SID.",
|
||||
)
|
||||
#
|
||||
# Section
|
||||
#
|
||||
sec_uuid = req_spec.add(
|
||||
itemtype="SEC",
|
||||
id=3,
|
||||
heading="Callbacks",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=13,
|
||||
heading="It shall be possible to register a callback for a specific Service- and Data-ID",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=15,
|
||||
heading="It shall be possible to register a callback for a specific Service-ID and all Data-IDs",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=16,
|
||||
heading="It shall be possible to register a callback for a specific Data-IDs and all Service-IDs",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=17,
|
||||
heading="It shall be possible to register a callback for all incomming messages",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=18,
|
||||
heading="Callback choice, if several callbacks are available (caused by wildcard callbacks)",
|
||||
)
|
||||
#
|
||||
# Section
|
||||
#
|
||||
sec_uuid = req_spec.add(
|
||||
itemtype="SEC",
|
||||
id=4,
|
||||
heading="Some additional Information and Passthrough Methods",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=20,
|
||||
heading="Connection established information",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=21,
|
||||
heading="Is connected information",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=22,
|
||||
heading="Reconnect Method",
|
||||
)
|
||||
#
|
||||
# Section
|
||||
#
|
||||
sec_uuid = req_spec.add(
|
||||
itemtype="SEC",
|
||||
id=5,
|
||||
heading="Depreceated struct protocol",
|
||||
)
|
||||
|
||||
# Requirement
|
||||
req_spec.add(
|
||||
parent=sec_uuid,
|
||||
itemtype="REQ",
|
||||
id=23,
|
||||
heading="A full Message Object including the defined properties and data shall be transfered.",
|
||||
description="Every Communication shall transfer a complete message with its content.",
|
||||
reason="See Reasons for every single information of the Message Object.",
|
||||
fitcriterion="Send two different messages and compare the received message with each sent message.",
|
||||
)
|
232756
_testresults_/unittest.json
232756
_testresults_/unittest.json
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user