Overview
What is a Subsystem
A Subsystem is a client-side or server-side software component that is part of a system and implements part of the system functionality.
A subsystem is a physically existing and independently evolving part of the system. If a component can be developed, versioned, or deployed independently, it should be defined as a separate subsystem.
If some part of your system stored in dedicated repository, it should be defined as separated subsystem as well.
Typical Examples of Subsystems
Subsystems can be both full applications and large components that are reused or have their own requirements and tasks.
Common examples include:
- Backend providing the core system functionality
- Web application (frontend) interacting with backend via API
- Mobile application interacting with backend via API
- Separate services or microservices with specific responsibilities
- Desktop applications running on local devices
Why Subsystems Are Used
Subsystems help to:
- Structure requirements
- Define clear architecture boundaries
- Manage independent development and ownership
- Control versions and baselines of different parts of the system
Subsystem Attributes
Each subsystem in Reqode is described using the following attributes:
- Code – a short string identifier (up to 16 characters), using Latin letters and numbers
- Subsystem Name
For better results when using AI assistants, it is strongly recommended to provide additional details:
- Requirements Subsystem Manifest. Explains the role of the subsystem within the product and how it fits into the overall system.
- Implementation Subsystem Manifest. Instructions and Guidelines Used by AI assistants when analyzing or generating source code for this subsystem.
Read more about Subsystem manifests
Subsystem Versions
Each subsystem can have its own list of versions with one version marked as the current one.
Subsystem versions are optional, but they are useful to:
- Indicate subsystem versions in test results
- Link tasks and defects to specific versions
- Create baselines for specific versions of the software