Change history

The change history is a chronologically ordered list of all changes between different documentation versions. The different versions are listed together with the release date and a link to the changelog of the version.

Modification types

Type Description
+ An addition to a document.
- A removal from a document.
* An alteration of something pre-existing.

Examples

Type Description
+ Section that has the change in it: What has been changed: What exactly has been done.
- Change History: Example: Removed an example.
* Glossary: Moderator-Client: Clarification regarding server backup.

Table of contents

Version Quick Description Date Link
0.1.0 Architecture design 2020-10-09 Link
0.1.1 First revision of the architecture design 2020-10-27 Link
0.1.2 Second revision of the architecture design 2020-11-12 Link
0.2.0 Component design 2020-11-17 Link
0.2.1 First revision of the component design 2020-11-26 Link
0.2.2 Second revision of the component design 2021-01-08 Link
0.3.0 PlayerAudience-Client implementation 2021-02-06 Link
0.3.1 ServerLogic implementation 2021-05-05 Link
1.0.0 Moderator-Client implementation 2021-05-05 Link

Version 1.0.0 - Moderator-Client implementation

Type Description
* Glossary: Voting-Timer: Updated description.
* Glossary: Offline-Mode: Updated description.
* Functional Requirements: FR23: Updated description.
* Functional Requirements: FR25: Updated description.
* Functional Requirements: FR29: Updated name.
* Functional Requirements: FR39: Updated name and description.
* Functional Requirements: FR43: Updated description.
* Functional Requirements: FR44: Updated name and description.
* Functional Requirements: FR50: Updated description.
* Non-functional Requirements: NFR21: Updated name and description.
+ Functional Requirements: FR76: Added requirement "Moderator veto".
+ Functional Requirements: FR77: Added requirement "Moderator-Client statistics display".
+ Functional Requirements: FR78: Added requirement "Moderator-Client winning option display".
+ Functional Requirements: FR79: Added requirement "Moderator-Client error display".
+ Functional Requirements: FR80: Added requirement "Tied winning options".
+ Functional Requirements: FR81: Added requirement "Sound options".
+ Non-functional Requirements: NFR28: Added requirement "Multiple endings".
* Network Protocol: Voting phase diagram: Updated voting phase diagram.
- Network Protocol: New Moderator diagram: Removed "New Moderator" diagram.
* Network Protocol: PlayerAudience-Client logs: Added paragraph about postgame statistics.
* Functional Requirements: FR75: Updated description.
+ Used Libraries: Newtonsoft.Json: Added new used library.
+ Used Libraries: WebSocketSharp: Added new used library.
+ Used Libraries: Fleck: Added new used library.
+ Used Tools: Unity: Added new used tool.
+ Used Tools: Unity Test Framework: Added new used tool.

Version 0.3.1 - ServerLogic implementation

Type Description
- Network Protocol: MessageContainer: Removed Debug-Field from MessageContainer.
- Network Protocol: SessionOpenedMessage: Removed field for QR-Code.
- Network Protocol: SessionClosedMessage: Removed field for game-statistics.
- Network Protocol: ErrorType Enum: Removed entry for NewModerator-ErrorType.
+ Network Protocol: ErrorType Enum: Added entry and explanation for GuidAlreadyExists-ErrorType.
* Network Protocol: ErrorType Enum: Renamed SessionDoesNotExist-ErrorType to WrongSession.
- Network Protocol: MessageOverview: Removed entries for ServerStatus-Messages.
- Network Protocol: RequestServerStatusMessage: Removed detailed definitions for RequestServerStatusMessage.
- Network Protocol: ServerStatusMessage: Removed detailed definitions for ServerStatusMessage.
* Network Protocol: VotingEndedMessage: Changed VotingEndedMessage to include WinningOption as string, VotingResults as Dictionary and TotalVotes as an int.

| * | Network Protocol: RequestStartVotingMessage: Changed RequestStartVotingMessage to use an KeyValuePair-Array for the VotingOptions. | | * | Architecture diagrams: Architecture diagrams: Updated diagrams according to current implementation. | | + | Functional Requirements: FR82: Added requirement "SessionKey generator limit". |

Version 0.3.0 - PlayerAudience-Client implementation

Type Description
* Network Protocol: SessionClosedMessage: Changed datatype of Statistics field and updated the description accordingly.
* Network Protocol: VotingEndedMessage: Changed datatype of WinningOption and VotingResults fields and updated the descriptions accordingly.
* Network Protocol: RequestStartVotingMessage:_ Changed datatype of VotingPrompt and VotingOptions fields and updated the descriptions accordingly.
* Network Protocol: What about the communication between PlayerAudience-Clients and ServerLogic?: Updated text to reflect the current architecture.
+ Network Protocol: Moderator-Client GUID-Sessionkey-Pair: Added new paragraph.
+ Network Protocol: PlayerAudience-Client logs: Added new paragraph.
* Network Protocol: ServerLogic logs: Updated text to reflect the current architecture.
- Used Libraries: coverlet.collector: Removed used library.
+ Used Libraries: jQuery: Added used library.
+ Used Libraries: Bootstrap: Added used library.
+ Used Libraries: SignalR: Added used library.
* Used Libraries: Microsoft.NET.Test.Sdk: Updated library version.
* Used Libraries: MSTest.TestAdapter: Updated library version.
* Used Libraries: MSTest.TestFramework: Updated library version.
* Non-functional Requirements: NFR1: Updated description.
* Non-functional Requirements: NFR13: Updated explanation.
* Non-functional Requirements: NFR17: Updated description.
* Functional Requirements: FR28: Updated description and explanation.
* Functional Requirements: FR31: Updated description.
* Functional Requirements: FR32: Updated description.
* Functional Requirements: FR33: Updated description and explanation.
* Functional Requirements: FR54: Updated name, description and explanation.
+ Used Tools: ReSharper: Added new tool.
+ Used Tools: Codecov: Added new tool.
+ Used Tools: Adobe Photoshop: Added new tool.
* Glossary: PlayerAudience-Client: Updated description.
* Glossary: ServerLogic: Updated description.
+ Glossary: Visual Novel: Added new entry.
+ Glossary: SignalR: Added new entry.
+ Glossary: SignalR-Hub: Added new entry.
+ Glossary: ASP.NET: Added new entry.
+ Non-functional Requirements: NFR26: Added requirement "Unit test coverage".
+ Non-functional Requirements: NFR27: Added requirement "Integration test coverage".
+ Functional Requirements: FR56: Added requirement "Multi-Game support".
+ Functional Requirements: FR57: Added requirement "ServerLogic persistence".
+ Functional Requirements: FR58: Added requirement "PlayerAudience-Client content".
+ Functional Requirements: FR59: Added requirement "PlayerAudience-Client cookies and Terms of Service".
+ Functional Requirements: FR60: Added requirement "PlayerAudience-Client landing page".
+ Functional Requirements: FR61: Added requirement "PlayerAudience-Client wrong SessionKey feedback".
+ Functional Requirements: FR62: Added requirement "PlayerAudience-Client error logging".
+ Functional Requirements: FR63: Added requirement "PlayerAudience-Client persistent connection".
+ Functional Requirements: FR64: Added requirement "ASP.NET and SignalR".
+ Functional Requirements: FR65: Added requirement "PlayerAudience-Client statistics display".
+ Functional Requirements: FR65: Added requirement "PlayerAudience-Client language".
+ Functional Requirements: FR67: Added requirement "Additional PlayerAudience-Client languages".
+ Functional Requirements: FR68: Added requirement "Supported desktop browser".
+ Functional Requirements: FR69: Added requirement "Additional supported desktop browser".
+ Functional Requirements: FR70: Added requirement "Supported mobile browser".
+ Functional Requirements: FR71: Added requirement "Additional supported mobile browser".
+ Functional Requirements: FR72: Added requirement "PlayerAudience-Client colour scheme".
+ Functional Requirements: FR73: Added requirement "PlayerAudience-Client NewTec branding".
+ Functional Requirements: FR74: Added requirement "Webpage live updating".
+ Functional Requirements: FR75: Added requirement "PlayerAudience-Client data filtration".

Version 0.2.2 - Second revision of the component design

Type Description
+ Used Tools: Visual Studio 2019: Added used tool.
+ Used Tools: Adobe XD: Added used tool.
+ Used Libraries: Microsoft.NET.Test.Sdk: Added used library.
+ Used Libraries: MSTest.TestAdapter: Added used library.
+ Used Libraries: MSTest.TestFramework: Added used library.
+ Used Libraries: System.Drawing.Common: Added used library.
+ Used Libraries: QRCoder: Added used library.
+ Used Libraries: coverlet.collector: Added used library.
* Non-functional Requirements: NFR2: Updated description.
* Non-functional Requirements: NFR6: Updated description.
* Non-functional Requirements: NFR18: Updated description.
+ Functional Requirements: FR54: Added requirement "SessionKey length".
* Network Protocol: MessageType Enum: Renamed from "MessageTypeEnum" to "MessageType Enum".
* Network Protocol: ErrorType Enum: Renamed from "ErrorTypeEnum" to "ErrorType Enum".
* Network Protocol: Network protocol: Renamed occurrences of "MessageTypeEnum" to "MessageType".
* Network Protocol: Network protocol: Renamed occurrences of "ErrorTypeEnum" to "ErrorType".
* Network Protocol: Network protocol: All messages now end on "[...]Message".
* Network Protocol: Network protocol: All fields and methods are now uppercase.
+ Network Protocol: RequestOpenSessionMessage: Added description for the field "Password".
* Network Protocol: MessageContainer: Updated type of "CreationDate" to "DateTime".
* Network Protocol: SessionOpenedMessage: Updated type of "DirectURL" to "Uri".
* Network Protocol: VotingEndedMessage: Updated type of "WinningOption" to "Guid".
* Network Protocol: ErrorMessage: Renamed field "ErrorType" to "ErrorMessageType".
* Network Protocol: ErrorMessage: Renamed field "ErrorMessage" to "ErrorMessageText".
* Functional Requirements: FR1: Changed game type to "2D Visual-Novel-RPG".
* Functional Requirements: FR51: Changed "Paused" to "Pause".
+ Functional Requirements: FR55: Added requirement "PlayerAudience-Client count display".
* Architecture diagrams: Architecture diagrams: Updated diagram according to current implementation.

Version 0.2.1 - First revision of the component design

Type Description
* Quality Quest:_ Quality Quest: Updated all texts.
* Table of contents: Table of contents: Extension and reordering of the table of contents.
* Glossary: Actors and Roles: Updated description.
* Glossary: Expertise: Updated description.
* Glossary: Glossary: Updated all entries to have the new style.
* Glossary: Moderator: Updated description.
* Glossary: Server: Updated description.
* Glossary: Moderator-Client: Updated description.
* Glossary: PlayerAudience-Client: Updated description.
* Glossary: Client: Updated description.
* Glossary: StoryFlowDecision: Updated description.
* Glossary: Network protocol: Updated description.
* Glossary: Online-Mode: Updated description.
* Glossary: Offline-Mode: Updated description.
* Glossary: Online voting: Updated description.
* Glossary: PauseButton: Updated description and changed name from "Pause-Button" to "PauseButton".
+ Glossary: StoryGraph: Added new entry.
* Functional Requirements: FR1: Updated description.
* Functional Requirements: FR3: Updated description.
* Functional Requirements: FR11: Updated description and explanation.
* Functional Requirements: FR14: Updated description.
* Functional Requirements: FR15: Updated description.
* Functional Requirements: FR16: Updated description.
* Functional Requirements: FR18: Updated description.
* Functional Requirements: FR19: Updated description.
* Functional Requirements: FR20: Updated description.
* Functional Requirements: FR23: Updated description.
* Functional Requirements: FR31: Updated description and changed name from "Communication protocol violation" to "Network protocol violation".
* Functional Requirements: FR33: Updated description.
* Functional Requirements: FR35: Updated description.
* Functional Requirements: FR40: Updated description.
* Non-functional Requirements: NFR8: Changed name from "Target PlayerAudience" to "Target audience".
* Requirements: Requirements: Updated all entries to have the new style.
* Requirements: Requirements: Fixed typos.
* Use-case diagrams: PlayerAudience-Client: Updated description.
* Use-case diagrams: ServerLogic: Changed name from "Server" to "ServerLogic".
* Use-case diagrams: Start application: Updated description and changed name from "Start Application" to "Start application".
* Use-case diagrams: Play game: Updated description and changed name from "Play Game" to "Play game".
* Use-case diagrams: End application: Updated description and changed name from "End Application" to "End application".
* Architecture diagrams: Architecture diagrams: Updated description.
* Architecture diagrams: Class diagrams: Updated description.
* Architecture diagrams: Moderator-Client: Updated description.
* Architecture diagrams: Server class diagrams: Updated description.
* Architecture diagrams: Component-Overview: Updated description.
* Architecture diagrams: PlayerAudience-Client: Updated description.
* Architecture diagrams: Component diagrams: Updated description.
* Architecture diagrams: ServerLogic: Updated description and changed name from "Server" to "ServerLogic".
+ StoryFlow: StoryFlow overview: Added new section.
* StoryFlow: Detailed StoryFlow diagrams: Changed name from "Detailed-StoryFlow diagrams" to "Detailed StoryFlow diagrams".
* StoryFlow: StoryFlow overview: Updated description.
* StoryFlow: Detailed StoryFlow diagrams: Updated description.
* Change history: Change history: Fixed typos.
+ StoryFlow: StoryFlowDecision 1: Added description.
+ StoryFlow: StoryFlowDecision 2: Added description.
+ StoryFlow: StoryFlowDecision 3: Added description.
+ StoryFlow: StoryFlowDecision 3: Added description.
+ StoryFlow: StoryFlowDecision 4: Added description.
+ StoryFlow: StoryFlowDecision 6: Added description.
+ StoryFlow: StoryFlowDecision 6: Added description.
+ StoryFlow: StoryFlowDecision 7: Added description.
+ StoryFlow: StoryFlowDecision 8: Added description.
+ StoryFlow: StoryFlowDecision 9: Added description.
+ StoryFlow: StoryFlowDecision 10: Added description.
+ StoryFlow: StoryFlowDecision 11: Added description.
+ StoryFlow: StoryFlowDecision 12: Added description.
+ StoryFlow: StoryFlowDecision 13: Added description.
+ StoryFlow: StoryFlowDecision 14: Added description.
+ StoryFlow: StoryFlowDecision 15: Added description.
* Architecture diagrams: ServerLogic: Updated diagram: Changed "Websocket" to "WebSocket".
* Architecture diagrams: Moderator-Client: Updated diagram: Changed "Websocket" to "WebSocket".
* Architecture diagrams: Component-Overview: Updated diagram: Changed "Websocket" to "WebSocket".
* Architecture diagrams: Class diagrams: Updated diagram: Changed "websocket" to "webSocket".
* Use-case diagrams: PlayerAudience-Client: Updated diagram: Changed "Server" to "ServerLogic".
* Use-case diagrams: ServerLogic: Updated diagram: Changed "Server" to "ServerLogic".
* Use-case diagrams: Moderator-Client: Updated diagram: Changed "Server" to "ServerLogic".
* Use-case diagrams: Play game: Updated diagram: Changed "Server" to "ServerLogic".
* Use-case diagrams: End application: Updated diagram: Changed "Server" to "ServerLogic".

Version 0.2.0 - Component design

Type Description
+ Class diagrams: Server class diagram: Added a joined class diagram for PlayerAudience-Client and Server, along with a description.
* Class diagrams: Class diagrams: Updated class diagram with the new Server diagram
* Functional Requirements: Edited term "Server" to "ServerLogic": Was changed in FR24, FR25, FR26, FR27, FR28 and FR29.
* Non-functional Requirements: Edited term "Server" to "ServerLogic": Was changed in NFR20 and NFR21.
+ Glossary: ServerLogic: Added new entry.
* Glossary: Server: Changed description.
* Component diagrams: All component diagrams: Updated diagrams and descriptions.
+ StoryFlow diagram: Detailed StoryFlow Diagrams: Added detailed StoryFlow diagrams for every StoryFlowDecision.
+ Network Protocol: Network protocol: Added the network protocol to the documentation.
- Glossary: Voting-Tool: Removed entry.
* Glossary: ServerLogic: Changed description to specify that the ServerLogic is responsible for realising voting.
+ Glossary: Online-Mode: Added new entry.
* Glossary: Online voting: Changed description and changed term from "OnlineVoting" to "Online voting".
* Glossary: Network protocol: Changed term from "Communication protocol" to "Network protocol".
* Glossary: Online-Session: Changed description to specify the session being online and changed term from "Session" to "Online-Session".
+ Glossary: Offline-Session: Added new entry.
+ Glossary: Globally Unique Identifier (GUID): Added new entry.
+ Glossary: Offline-Mode: Added new entry.
+ Used Plugins: Code Spell Checker: Added used plugin.
* Functional Requirements: FR25: Changed the reaction time from "10 seconds" to "5 seconds".
* Functional Requirements: FR26: Changed "UUID" to "GUID".
* Functional Requirements: FR28: Changed "client" to "PlayerAudience-Client".
* Functional Requirements: FR28: Changed name to "PlayerAudience-Client GUID" and changed the description accordingly.
* Functional Requirements: FR31: Changed "UUID" to "GUID".
+ Functional Requirements: FR32: Added requirement "Unique voting option identifier".
+ Functional Requirements: FR33: Added requirement "Game-relevant ServerLogic logging".
+ Functional Requirements: FR34: Added requirement "General ServerLogic logging".
+ Functional Requirements: FR35: Added requirement "ServerLogic log deletion".
+ Functional Requirements: FR36: Added requirement "ServerLogic access-password".
+ Functional Requirements: FR37: Added requirement "Hashing of integral data".
+ Functional Requirements: FR38: Added requirement "Online-Mode".
+ Functional Requirements: FR39: Added requirement "Online-Mode flag".
+ Functional Requirements: FR40: Added requirement "Moderator-Client GUID".
+ Functional Requirements: FR41: Added requirement "PlayerAudience-Client count".
+ Functional Requirements: FR42: Added requirement "PlayerAudience-Client count live update".
+ Functional Requirements: FR43: Added requirement "Online-Session permanence".
+ Functional Requirements: FR44: Added requirement "Switch between Moderator-Clients".
+ Functional Requirements: FR45: Added requirement "Voting-Timer stop on pause".
+ Functional Requirements: FR46: Added requirement "Communication during pauses".
+ Functional Requirements: FR47: Added requirement "PlayerAudience connection method".
+ Functional Requirements: FR48: Added requirement "PlayerAudience connection option".
+ Functional Requirements: FR49: Added requirement "Additional PlayerAudience connection options".
+ Functional Requirements: FR50: Added requirement "Pause menu".
+ Functional Requirements: FR51: Added requirement "Pause menu contents".
+ Functional Requirements: FR52: Added requirement "Index hashing procedure".
+ Functional Requirements: FR53: Added requirement "Cryptographic hashing procedure".
+ Non-functional Requirements: NFR23: Added requirement "Communication security".
+ Non-functional Requirements: NFR24: Added requirement "Postgame statistics".
+ Non-functional Requirements: NFR25: Added requirement "Postgame statistic contents".
* Change history: Change history: Fixed typos.
* Glossary: Glossary: Fixed typos.
* Requirements: Requirements: Fixed typos.
* Table of content: Table of content: Fixed typos.
* Used tools, plugins and libraries: Used tools, plugins and libraries: Fixed typos.
* Class diagrams: Class diagrams: Updated class diagrams with GUIDs and further Adaptions.

Version 0.1.2 - Second revision of the architecture design

Type Description
* Change history: Table of contents: Fixed the links to properly work when exported to HTML/CSS.
* Glossary: DiceRandomness: Changed "die" to "dice" for clarification.
* Functional Requirements: Offline-Mode: Update the description to say "shall" instead of "must".
* Used Plugins: Markdown All in One: Fixed typo in description.
* Used Plugins: PlantUML: Fixed typo in description.
+ Glossary: Session: Added new term.
* Change history: Change history: Renamed change history versions descriptors.
* Use-Case diagrams: Moderator-Client: Updated all Moderator-Client use-case diagrams and descriptions.

Version 0.1.1 - First revision of the architecture design

This is the revised version of the Technical Specifications according to the feedback provided by the customer.

Type Description
* Glossary: Moderator-Client: Clarification regarding server backup.
* Glossary: StoryFlowDecision: Clarification regarding server backup.
* Glossary: DiceRandomness: Clarified that the die is six-sided.
* Glossary: Voting-Timer: Updated voting time from "60 seconds" to "30 seconds".
* Functional Requirements: Stand-alone game: Moved to non-functional requirements.
* Functional Requirements: Game language options: Changed priority from "-" to "0".
* Functional Requirements: Participation of a larger PlayerAudience: Clarification regarding server backup.
* Functional Requirements: Character status values: Resolved redundancy with requirement "Character levelling".
* Functional Requirements: Selecting a character: Concrete selection of characters added.
* Functional Requirements: Presentation of character status values: Fixed description and explanation.
* Functional Requirements: Character levelling: Resolved redundancy with requirement "Selecting a character" and specified levelling up and down.
* Functional Requirements: Programming language: Moved to non-functional requirements.
* Functional Requirements: Development environment: Moved to non-functional requirements.
- Functional Requirements: Usage of game engines: Requirement removed.
* Functional Requirements: Usage of online voting solutions: Moved to non-functional requirements.
* Functional Requirements: Pause Game: Division into functional requirements "Pause Game" and "PauseButton location".
+ Functional Requirements: PauseButton location: Added requirement.
- Functional Requirements: Connection Setup: Removed requirement.
+ Functional Requirements: Amount of supported connections: Added requirement.
+ Functional Requirements: Exclusive Moderator-Client connection: Added requirement.
+ Functional Requirements: Moderator game control: Added requirement.
* Functional Requirements: Connection Timeout: Clarification regarding communication participants and technical terminology.
* Functional Requirements: Server connection loss: Clarification regarding "system" being the "server".
* Functional Requirements: Unique User Identifier (UUID): Specified the UUID. Changed "participant" to "client".
* Functional Requirements: Offline-Mode: Restructured the structure of the requirement. Clarified that the Moderator should "always" have the option to continue the game in Offline-Mode. Division into functional requirements "Offline-Mode" and "Offline-Mode transition".
+ Functional Requirements: Offline-Mode transition: Added requirement.
* Functional Requirements: Game Engine: Moved to non-functional requirements. Resolved redundancy with requirement "Game Engine".
* Functional Requirements: Communication protocol: Moved to glossary.
* Non-functional Requirements: Adherence to Clean Code Principles: Changed priority from "0" to "+" and updated the description accordingly.
* Non-functional Requirements: Type of delivery: Fixed typo in description. Changed "DOCX" to "HTML".
* Requirements: Functional Requirements: Changed Id from "FA" to "FR".
* Requirements: Non-functional Requirements: Changed Id from "QA" to "NFR".
* Component diagrams: Component diagrams: Updated notation and changed inconsistent interface labels.
* Component diagrams: Component diagrams: Updated descriptions for all component diagrams.
+ Used plugins: Live Share: Added used plugin.
* Use-case diagrams: Moderator-Client: Division into "Start Application", "Play Game" and "End Application" diagrams.
- StoryFlow diagram: StoryFlow diagram: Removed obsolete StoryFlow diagram.
* Non-functional Requirements: Usage of online voting solutions:" Updated the description to clarify that the voting tool will be made by the team.

Version 0.1.0 - Architecture design

This is the initial version of the Technical Specifications and thus has no changelog. The next version, which will focus on the component/detailed design, will be the first version with a changelog.