Requirements#

Filesystem Library Requirements
status: draft
security: YES
safety: ASIL_B
tags: requirements, filesystem_library

Functional Requirements#

Standard Filesystem Abstraction
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Functional

The Filesystem library shall provide filesystem API based on the C++ standardization.

Path Manipulation Utilities
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Functional

The Filesystem library shall provide type-safe utilities for path construction and manipulation.

Directory Iterators
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Functional

The Filesystem library shall provide directory iterator types for traversing directory contents.

File I/O Operations
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Functional

The Filesystem library shall provide functionality for reading from and writing to files, including buffered I/O operations.

Fully testable public API
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Non-Functional

The public API of the library shall support dependency injection with test doubles.

Note: This enables full testability of the user code.

File Utility Functions
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Functional

The Filesystem library shall provide additional file utility functions, such as temporary file handling and file comparison.

Mock and Fake Implementations
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Non-Functional

The Filesystem library shall provide mock and fake implementations for unit testing and validation.

Assumptions of Use (AoU)#

Low-Level Use Only
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Functional

Users shall use this library only when they need to manipulate files, directories, and paths at the operating system level beyond what higher-level storage abstractions provide, accepting reduced portability to other platforms.

Supported Path Formats
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Functional

Users shall not use Windows paths with this library.

Error Handling
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Functional

Users shall handle all function return values and take appropriate action on errors.

Thread Safety
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Non-Functional

Users shall implement appropriate synchronization mechanisms when accessing shared filesystem resources concurrently.

Performance
status: valid
security: NO
safety: ASIL_B
tags: baselibs
reqtype: Non-Functional

Users shall not assume any performance characteristics.

Note: Filesystem operations are subject to underlying OS and storage performance.