
|
The Staccatotm Software Design Method and Architecture |
| Staccatotm is a Software Design Method and Architecture for Embedded Systems. | |
|
As a design method, it provides guidelines to ensure that your project gets off to a good start by generating Software Requirements Specifications (SRS) based on the Product Specifications. Your software development team will work closely with your hardware engineers to derive a meaningful set of Test Plans. The next step is to partition your system into 'application' tasks, and design State Diagrams for each of the required tasks. The use of State Diagrams to describe the behavior of tasks over time is similar to the design methods used by hardware engineers in designing complex integrated circuit components, including processors, microcontrollers, FPGAs, ASICs, etc. The Software Detailed Design document will contain these State Diagrams, along with relevant hardware block diagrams, data flow, and system partitioning to properly describe your software design.
|
![]() |
|
Using these consistent design guidelines will allow your entire design team, software, hardware and team leaders to perform very meaningful reviews of the embedded system before any coding begins. After the requisite changes have been made to the design, code and testing can proceed upon approval of the design by the development team. With more people involved in using a consistent design method, project risks are reduced considerably. The Staccatotm Design Method allows for tight coupling with the hardware. During the integration with the hardware platform, you can use this method to simulate input and output to external devices which can be part of your system test plans. Finally, an Independent Validation and Verification can be performed by a 'customer-engineer'. Upon reviewing the recommended Product Specifications, the Software Requirements Specification and the Software Design Document, the design can be validated. By performing the approved Test Plans, verification of the Embedded System Software can be verified in a meaningful manner. |
|
| The Staccatotm Software Design Method and Architecture for Embedded Systems is based on a 'system of Finite State Machines'. | |
|
As part of the Software Design process, you will partition your system into application tasks. Each of these tasks will be responsible for an interface to an internal or external device, a communication protocol, or some algorithmic processing of data, as encoded in its State Diagram. By adding a customizable data structure that is analogous to the internal |
![]() |
|
registers of a general-purpose processor, the application task now constitutes a virtual processor. In other words, each application task has a virtual processor and its own program to execute. The 'executive' represents the host hard processor, applying its execution capabilities to each of the virtual processor application tasks. Very clever and very efficient! Easy to design, code, test, debug and maintain! Expect great real-time performance, as well!
|
|
| The Staccatotm Design Method requires that your application tasks be implemented as Finite State Machines (FSMs). | |
|
State Diagrams are the best way to convey the behavior of a task, as it responds to events and conditions over time. These state machines can be coded directly into the task modules. The Staccatotm System Core provides system calls that make easy work of your state transitions, system timer services and inter-task communication. |
![]() |
|
By learning more about these design concepts, it becomes evident that Staccatotm is truly a software design method and architecture specifically for embedded systems. The Staccatotm software architecture is based on a 'system of Finite State Machines' and could be considered an abstraction of proven digital hardware design principles. To learn more about Staccatotm and the Crossroads SDK and Certified Training Package, click here. |
|