软件开发架构与单元测试全解析
1. 操作系统相关决策
在软件开发中,操作系统的选择至关重要。需要回答以下几个关键问题:
- 是否使用操作系统(OS)或实时操作系统(RTOS)?
- 固件是否裸机运行?
- 是否需要线程调度器?
这些决策与线程和进程模型以及性能要求密切相关。当决定使用操作系统后,还需确定操作系统抽象层(OSAL)。OSAL 非常重要,它能实现自动化单元测试和功能模拟器。
2. 第三方软件的考量
在项目中,可能会引入外部软件,这里的“外部”指非当前项目开发的源代码。可以是复用内部软件、集成开源项目、使用板卡或芯片制造商提供的软件,甚至购买商业软件包。例如,是使用第三方 RTOS 还是自己开发?是创建自己的通信协议还是复用之前项目的协议?
需要注意的是,自行开发 RTOS 或通信协议等中间件需谨慎,因为这会让你进入非核心专业领域的软件开发和维护工作。对于使用的所有第三方软件,要明确其许可模式,确保不限制产品的销售或分发方式。很多公司要求在软件发布前,由软件开发经理或架构师填写第三方组件的许可协议表格,这可能会影响软件的发布。建议提前获取空白表格,填写第三方组件名称并纳入架构文档。
一旦开始使用第三方软件,它就会成为项目的硬依赖。可以考虑创建抽象接口层,将应用与第三方软件解耦,以便后续更换软件时无需重构现有代码。
3. 功能模拟器的创建
如果项目需要自动化单元测试,创建功能模拟器是一个直接的过程。因为自动化单元测试促使采用解耦设计,使组件和模块能作为独立于平台的代码进行测试。从项目开始就规划功能模拟器,额外工作量并不大。主要工作是确定
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



