Linux调试私房菜(十二)项目开发的前期设计

二十五、项目开发的前期设计

1. 项目中需要思考的问题

  • 开发流程的定义
  • 平台与框架的选择
  • 目录结构及源码管理
  • 嵌入式产品的开发效率

开发流程的定义

平台与框架的选择

目录结构及源码管理

嵌入式产品的开发效率

2. 什么是软件开发流程?

  • 通过一系列步骤保证软件产品的顺利完成
  • 软件产品在生命期内的管理方法学

3. 软件开发流程的本质

  • 开发流程与具体技术无关
  • 开发流程是开发团队必须遵守的规则

4. 瀑布模型(Waterfall Model

  • 通过自上而下的步骤进行软件开发
  • 每个开发步骤都是不可逆

5. 增量模型(Incremental Model

  • 将系统功能分解为互不重叠的子功能
  • 每次全力实现一个子功能
  • 自全了完成后系统开发结束

6. 螺旋模型(Spiral Model

  • 采用一种迭代的方法来进行系统开发
  • 软件项目分解成多个不同的版本完成
  • 每个版本的开发过程都需要用户参与
  • 根据前一个版本的反馈计划下一个版本

7. 敏捷模型(Agile Modeling

  • 一切从简
  • 拥抱变化
  • 高效工作
  • 持续开发

开发流程的定义

平台与框架的选择

目录结构及源码管理

嵌入式产品的开发效率

8. 软件开发平台

  • 开发平台是位于操作系统之上的软件层
  • 开发平台提供更多模块化的功能,简化(加速)软件开发

9. 软件开发框架

  • 开发框架是位于开发平台之上的软件层
  • 开发框架是为特定应用所设计的更抽象的软件模块

10. 平台与框架的示例一    Spring / Java

11. 平台与框架的示例二    Qt

开发流程的定义

平台与框架的选择

目录结构及源码管理

嵌入式产品的开发效率

12. 目录设计 VS 源码管理

  • 项目中每个模块的代码用一个文件夹进行管理
    • 文件夹由inc , src , makefile构成
  • 项目中每个模块的对外函数声明统一放置同一目录中
    • 如:common.h   xxxfunc.h

13. 目录设计示例

14. 目录设计的意义

  • 书架功能
    • 反映项目中代码的层次感和模块化
  • 意识引导
    • 引导对于新增文件功能,命名以及位置的思考
  • 增强维护性
    • 加快开发人员对于项目整体架构的理解

开发流程的定义

平台与框架的选择

目录结构及源码管理

嵌入式产品的开发效率

15. 常规嵌入式开发的方式

16. 存在的问题

  • 开发工程师必须人手一台设备(项目早期可能无法满足)
  • 每次代码改动必须到设备进行验证(效率低下)
  • 反复多次烧写可能导致设备损坏(不稳定的早期设备)

17. 常规嵌入式调试的方式

18. 嵌入式开发的调试问题

  • 需要基于额外硬件(JTAG连接设备进行断点调试
  • 常规日志只能写于文件中,无法实时查看
  • 几乎无法进行现场调试(客户环境调试)

19. 嵌入式基础设施的建设

  • 架构设计时,模块之间遵循强内聚,弱耦合原则
    • 模块能够基于PC环境编译,并进行单元测试
  • 开发PC环境中的设备模拟器
    • 产品代码能够在PC环境完整编译并运行于PC环境
  • 开发产品中可实时查看输出的日志系统
    • 设备运行日志输出可以实时传输到PC环境
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值