Repository navigation
Scope
The goal of this iteration is to gather and refine all necessary functional and non-functional requirements and start creating the Domain-Specific Language (DSL) for BPMN semantics.
-
Requirement Elicitation:
-
Documenting Functional Requirements:
- Document functional requirements as user stories, which include creating, managing, and representing BPMN elements in a human-readable format (start/end events, tasks, gateways, etc.).
- Group these requirements under the general feature of BPMN diagram management.
- Issues: Issues 27
-
Non-Functional Requirements:
- Document performance, scalability, and error-handling requirements.
- Define memory, processing time, and output format requirements for handling diagrams with large node counts.
-
DSL Design:
- Define the syntax and semantics for representing BPMN elements in a text-based DSL.elements).
- Ensure the DSL is human-readable and captures all the necessary BPMN elements for the upcoming parser implementation.
-
Scope and Prioritization:
- Prioritize the functional requirements based on importance and technical feasibility.
- Finalize the scope of features to be implemented in iterations 2.
- Functional requirements document (user stories and detailed use cases).
- Non-functional requirements document.
- Scope and prioritization document.
The main goals of this iteration are (i) to implement the core functionality for creating and managing BPMN diagrams, and (ii) to complete the use case specifications.
-
Implement Parser as a No-Std Rust Crate and Compile to WebAssembly
- This is crucial as it sets up the environment and ensures that the parser can run in a web browser, which is foundational for the project.
-
Handle Invalid or Malicious Input Without Crashing
- Ensuring robustness against invalid input is essential to create a reliable parser that doesn't crash during unexpected conditions.
-
Ensure Compatibility with BPMN 2.0 and External Tools
- Compatibility with BPMN 2.0 is critical to ensure that the parser can accurately interpret existing BPMN diagrams and integrate well with other tools.
-
Export BPMN Diagrams in XML Format
- Being able to export BPMN diagrams is a core functionality that many users will expect, and it lays the groundwork for further features like import and visualization.
-
Implement Data Objects and Data Stores
- This feature is important for representing data in BPMN diagrams, which enhances the richness of the modeling capabilities of the parser.
- Conduct unit and integration testing for both Create and View BPMN Diagram functionality.
- Test reports for both functionalities.
Implement the core modification and parsing functionalities for BPMN diagrams.
- Modify BPMN Diagrams: Implement the ability to modify BPMN diagrams after creation.
- Implement new DSL: Support defining BPMN elements using a human-readable language.
- Implement task, event, and gateway parsing as part of the core DSL parser.
- Refine parsing rules to handle nested structures and complex flows.
- Add error handling for invalid BPMN syntax in DSL definitions.
- Validate parsed BPMN definitions against BPMN 2.0 rules.
- Conduct unit testing for all parser functionalities.
- Conduct unit and integration testing for parsing BPMN diagrams, tasks, events, and gateways.
- Parser functionality for tasks, events, and exclusive gateways.
- Unit test results for the core parser functions.
Finalize all remaining BPMN features, clean up code, and prepare for final testing and documentation.
- Complex BPMN Parsing: Implement support for complex BPMN elements, including subprocesses, nested tasks, and multi-instance tasks.
- BPMN XML Generation: Finalize the BPMN XML generation from the intermediate representation.
- Error Handling: Improve error feedback for invalid BPMN flows and provide clear user feedback.
- Finalize the parser for complex BPMN elements (subprocesses, multi-instance tasks).
- Implement final error handling improvements.
- Finalize BPMN XML generation and ensure it conforms to BPMN 2.0 standards.
- Prepare final documentation for developers and users.
- Conduct final integration tests across all BPMN elements and flows.
- Validate BPMN XML generation and ensure compatibility with BPMN standards.
- Complete BPMN parser with support for all essential elements.
- Generated BPMN XML output with layout annotations.
- Final project documentation and user guide.