Firmware and embedded software requirements vary widely across the many diverse industries creating today’s complex electronic products. To introduce a successful, high quality, and compelling product, a dizzying array of expertise may be required, such as:
- Real-time software design
- Signal processing
- Networking and IoT
- User experience and graphical interface design
- Device driver design
- Amongst many others
To meld these requirements together, a firmware team may be considering multiple software architecture and design alternatives. Examples include:
- Bare-metal super-loop designs
- RTOS based designs
- Event-driven active object designs
- Traditional PC software designs using frameworks such as Qt.
- C modular design vs C++ object oriented design
The many options and near-infinite flexibility in software design can be overwhelming. In some situations a software engineering team may need an experienced advisor and consultant to help guide the team to an appropriate solution.
With our software architecture and design services, your team will receive expert guidance formed by decades of experience in the embedded software and firmware arena. As part of this service we will:
- Review the product description and associated technologies.
- Review the product’s requirements, critical use cases, initial technology selections, team makeup, and quality assurance requirements.
- Create a software architecture proposal appropriate to the reviewed requirements. The initial design will fully explore at least one product use case.
- Iteratively refine the initial design with key team members.
- Deliver overview and kickoff training on the proposed architecture.
- Provide as-needed advice and updates to the design to ensure the architecture continues to meet evolving product requirements.
We love helping teams deliver high quality software. If your team could benefit from access to an expert on embedded software architecture and design, please contact us at: info@covemountainsoftware.com.
Related resources: