官术网_书友最值得收藏!

  • Embedded Systems Architecture
  • Daniele Lacamera
  • 401字
  • 2021-06-25 21:55:05

The life cycle of an embedded project

Modern development frameworks, such as agile software development methodologies, recommend, among other best practices, splitting the work into smaller action points, and marking milestones through the project development, producing intermediate working deliverables. Each deliverable focuses on giving a prototype of the entire system, with the missing features temporarily replaced using dummy code.

These recommendations seem particularly effective on embedded projects. In an environment where every error could be fatal to the entire system, working on small action points, one at a time, is an efficient way to promptly identify defects and regressions while working on the code base, provided that a CI mechanism is in place from the early stages of the development. Intermediate milestones should be as frequent as possible, and for this reason, it is advisable to create a prototype of the final system as soon as possible in the development phase. This has to be taken into account when actions are identified, prioritized, and distributed to the team.

Once the steps to reach the goal are defined, we need to find the optimal sequence to produce working prototypes for the intermediate milestones. The dependencies among the development actions are taken into account to sort the priorities for the assignments of the work.

Facing unexpected issues along the path, a progressive understanding of the system behavior and hardware constraints may change the view on the architecture of the system while it is under development. Changing specifications as a reaction to measurements and evaluations performed on the intermediate prototype may require a major code rework. Throwing away consistent parts of the project to replace them with a new, improved design is often definitely beneficial for the quality of the project and may result in improved productivity in the later stages. This process, known as refactoring, must not be seen as development overhead whenever it is aimed to improve the design and behavior of the system.

Finally, the process of creating system software includes the necessity of defining a clear API for the applications to be able to interact with the system in the desired way. Embedded system provide specific APIs to access system resources most of the time, however, some operating systems and libraries may provide POSIX-like interfaces to access functionalities. In any case, the API is the entry point for the system interfaces, and must be designed for usability and well documented.

主站蜘蛛池模板: 穆棱市| 香港 | 渝中区| 兴山县| 敖汉旗| 汝阳县| 沙田区| 金沙县| 同心县| 东海县| 大安市| 云南省| 南澳县| 邻水| 那坡县| 屯门区| 都匀市| 嵊州市| 如东县| 和硕县| 青冈县| 涡阳县| 毕节市| 娱乐| 泰州市| 天全县| 辽宁省| 星子县| 米易县| 龙山县| 甘肃省| 石狮市| 甘肃省| 宣城市| 和顺县| 江华| 贵溪市| 陇西县| 黔西县| 伊吾县| 芷江|