All of the Embedded VM architecture and design documentation is tracked within the embvm-core
repository. Our goal is to provide developers with the background information and design rationale necessary to understand how and why each Embedded VM component was developed.
- System Overview
- Provides a high-level overview of the system and its goals.
- Architectural Views
- The
views/
directory contains architectural views, which look at the architectural design of the Embedded VM from different perspectives.
- Conceptual Architecture View showcases significant components and abstractions that make up the Embedded VM framework.
- Layer View describes how the Embedded VM framework is organized to support portability, particularly by restricting access to low-level details as you move up the stack.
- System Structural View shows how the Embedded VM in context with external systems and components.
- The
- Architecture Decision Records (ADRs)
- Major architectural decisions, especially decisions that have arisen in the course of developing the Embedded VM, are found in the
decisions/
folder. This folder is mapped to theadr-tools
software, which we use to document, track, and relate ADRs.
- Major architectural decisions, especially decisions that have arisen in the course of developing the Embedded VM, are found in the
- Domain Context Guide
- Describes the major concepts considered in the Embedded VM, as well as the relationships between concepts.
- Component Specifications
- Major framework component specifications are kept in the
components/
directory. These specifications describe the roles, responsibilities, and collaborators for each component.
- Major framework component specifications are kept in the
- Design Constraints
- Significant constraints placed on the design of the Embedded VM core, such as not requiring dynamic memory, can be found in the
constraints/
directory.
- Significant constraints placed on the design of the Embedded VM core, such as not requiring dynamic memory, can be found in the
- Architecture Principles
- The
principles/
directory contains the primary principles that guide the design and development of the Embedded VM.
- The
- Qualities
- The
qualities/
directory contains the primary design qualities we want to emphasize with the design and behavior of the Embedded VM.
- The
- Use Cases
- The
use_cases/
directory contains use cases that we considered while designing the Embedded VM.
- The
- Architectural Scratch Pad
- Contains architectural notes that have not found another home yet. Useful as an inbox that can be processed at a later date.