1.常见的误解
1.1小型系统不需要架构设计
架构应当满足当前需求并适当的考虑重用和变更
1.2 敏捷开发不需要框架
极限编程, 敏捷开发的出现使一些人误以为软件开发无需再做架构了。 这是一个很大的误解。 敏捷开发是在传统瀑布式开发流程出现明显弊端后提出的解决方案, 所以它必然有一个更高的起点和对开发更严格的要求。而不是倒退到石器时代。事实上,架构是敏捷开发的一部分,只不过在形式上,敏捷开发推荐使用更高效,简单的方式来做设计。比如画在白板上然后用数码相机拍下的 UML 图;用用户故事代替用户用例等。测试驱动的敏捷开发更是强迫工程师在写实际代码前设计好组件的功能和接口,而不是直接开始写代码。
敏捷开发的一些特征:
- 针对比传统开发流程更大的系统
- 承认变化,迭代架构
- 简洁而不混乱
- 强调测试和重构
2 嵌入式系统的特点
2.1 与硬件密切相关
这要求1,硬件以来独立成硬件抽象层;2,利用软件来实现一些硬件功能,减少硬件的依赖。
2.2 稳定性要求高
大多数嵌入式系统都需要长时间开机或者是7*24小时开机,这要求嵌入式系统能够:
- 良好的模块设计
- 看门狗,心跳计数等
- 采用日志系统让系统能够快速定位问题所在
- 讲错误孤立在在最小的范围,让错误不会影响其他的模块