Framework technology is used in this project to improve the reusability of the AOCS software. Automatic code generation (or autocoding) is another reuse technique that is increasingly proposed for embedded control systems like the AOCS. In this domain, autocoding is usually done with tools like MatrixX/Xmath or Matlab.
The two techniques - autocoding and frameworks - differ on at least three counts:
In the AOCS Framework Project the two techniques are regarded as having complementary strengths and weaknesses. One of the project objectives is to ensure that the AOCS framework can be integrated with automatically generated code. For this purpose, the framework offers wrapper components where autocode routines (possibly representing complex hierarchies of nested blocks and super-blocks) can be plugged in. This approach is illustrated in the figure:The yellow area represents the architectural backbone of the application. This remains fixed in one application domain and is provided by the framework. The red blocks are application-specific. They override or otherwise cooperate with framework objects to customize its behaviour. In an AOCS context, the red blocks could be objects implementing the control law or state estimation algorithms for a particular mission. These are precisely the kind of objects that can be efficiently generated by autocode tools. The synthesis proposed by the AOCS Framework project hence is based on a system where the architectural skeleton of the AOCS software is provided by the framework while the mission specific parts are provided by the autocode tools of dynamical simulators like Xmath or MatLab.
Finally, note that frameworks, too, are often supplemented with automatic
code generators. Combining them with the autocode generators of dynamical
simulation tools would increase the share of AOCS software that is generated
without manual intervention.
The vision driving this project is that of a system where framework
and dynamics autocode facilities are integrated creating an environment
where AOCS engineers can develop their software by writing only a minimal
amount of code.
Back to Top, Back to Aocs Framework Project Home
By contrast, use of a framework relieves developers of the need to define the architecture of their software because the architecture would be built into the framework (indeed, the framework is the architecture).
Back to Top, Back to Aocs Framework Project Home
Frameworks therefore suffer from having a restricted field of application but benefit from being endowed with abstractions that are tailored to this application domain. The availability of higher-level abstractions makes the users code simpler and more readable, and hence more re-usable and easier to maintain.
Consider for instance the case of AOCS software development. A generic autocode tool is unlikely to have an abstraction for ‘reaction wheel’ or for 'telecommand' because such an object is not required in the vast majority of dynamical system applications. The object must therefore be built from simpler entities for each new AOCS application. An AOCS framework would instead be likely to predefine both types of abstraction offering powerful constructs to manipulate them. This results in greater ease of use (and reuse) and in more readable code.
The generality of autocode tools also implies that they seldom can generate more than a fraction of the total code required for the AOCS: it would be difficult to find a tool that offers higher-level abstractions covering such diverse functionalities as control algorithm implementation, telemetry handling, or failure recovery. An AOCS-specific framework would instead cover all the AOCS functionalities and would thus assist the generation of all AOCS code.
Back to Top, Back to Aocs Framework Project Home
The origin of autocode environments as simulation tools is also their greatest strength. An autocode system provides a seamless integration of validation and development facilities. Although a framework that is based on components can also be oriented towards integrating development and testing environment, it is clear that at present a framework solution is in this respect definitely inferior to an autocode solution.
Back to Top, Back to Aocs Framework Project Home