Repository navigation
Non functional requirements
MorrisTann edited this page Oct 20, 2024
·
6 revisions
-
Process BPMN Diagram Input within 100ms for Diagrams with up to 100 Nodes
- The parser must process a BPMN diagram text input and generate a valid BPMN representation within 100ms for diagrams with up to 100 nodes.
- Issue: #24
-
Implement Parser as a No-Std Rust Crate and Compile to WebAssembly
- The system must be able to run in a web browser without requiring the Rust standard library.
- The system must perform parsing within 100ms when compiled to WebAssembly.
- Issue: #26
-
Handle Diagrams with up to 1000 Nodes with Minimal Performance Degradation
- The language and parser should handle diagrams with up to 1000 nodes without significant degradation in performance (no more than a 10% increase in processing time per 100 additional nodes).
- Issue: #25
-
Memory Usage Under 10MB for Diagrams with up to 100 Nodes
- The parser must use no more than 10MB of memory when processing a BPMN diagram with up to 100 nodes. Memory usage should increase linearly with diagram size, ensuring scalability.
- Issue: #28
-
Provide Detailed Error Messages for Incorrect Input
- The parser must provide detailed error messages, including the line and column where the error occurred, a description of the error, and, where applicable, suggestions on how to resolve the issue.
- Issue: #29
-
Handle Invalid or Malicious Input Without Crashing
- The parser shall handle invalid or malicious input without crashing or exhibiting undefined behavior. It should return specific error messages detailing the nature of the input issue and halt processing when such input is encountered. The parser must pass at least 99% of fuzz testing cases. Additionally, "malicious" input refers to deliberately malformed or harmful data aimed at causing system failure or exploiting vulnerabilities.
- Issue: #31
-
Ensure Compatibility with BPMN 2.0 and External Tools
- The language must fully comply with the BPMN 2.0 specifications and integrate with external layout engines such as Camunda Modeler or bpmn.io. The system must generate valid BPMN XML files that can be directly imported into visualization tools without requiring manual modifications, ensuring a seamless transition from text-based to visual BPMN representations.
- Issue: #32