[开发笔记usbTOcan]需求获取与系统需求分析
简介
一直一以来都是站在实现某个模块功能的角度去做软件开发,没有尝试过站在系统的层面去做开发。最近正好不忙,觉得是时候以系统工程师的视角,去开发一个完整的系统。接下来的几篇文章,我会记录一个USB转CAN总线系统(简称CAN盒子)的开发过程。
这个过程偏向于软件层面,从需求分析,系统架构设计,软件架构设计,到软件单元的实现。整个开发过程不完全遵循"V-Cycle“的开发流程,但会尽可能的靠近。
SYS.1 | 需求获取
需求获取过程的目的是在产品和/或服务的整个生命周期中收集、处理和跟踪演进的利益相关者(stakeholder)需要和需求,从而建立需求基线,作为构建所需工作产品的基础。
市面上CAN盒子很多,以其中一个CAN盒子参数,作为客户需求进行开发
- USB连接的适配器(全速模式,与USB 1.1,USB 2.0和USB 3.0兼容)
- 高速CAN连接(ISO 11898-2)
- 比特率从5 kbit / s到1 Mbit / s
- 时间戳分辨率小于50微秒
- 符合CAN规范2.0A(11位ID)和2.0B(29位ID)
- 通过USB供电
- 提供PC端的驱动程序和API
- 可以通过D-SUB,9针总线连接
1 未连接 2 CAN-L 3 地线 4 未连接 5 未连接
6 地线 7 CAN-H 8 未连接 9 未连接
为了便于后面需求管理和需求追溯,使用Enterprise Architect管理需求
SYS.2 | 系统需求分析
系统需求分析过程的目的是将已确定的利益相关者(stakeholder)需求转换为一组系统需求,以指导系统的设计。
系统需求分析需要做以下事情:
- 指定系统需求。使用利益相关者需求和对利益相关者需求的更改来识别系统所需的功能和功能。在系统需求中指定功能和非功能的系统需求。
-
组织系统需求。在系统需求描述中组织系统需求,比如
- 对项目相关集群进行分组
- 按照项目的逻辑顺序排序
- 根据项目的相关标准进行分类
- 根据利益相关者的需求划分优先级
- 分析系统需求。分析特定的系统需求,包括它们之间的相互依赖性,以确保正确性、技术可行性和可验证性,并支持风险识别。分析对成本、进度和技术的影响。
- 制定验证标准。为每个系统需求制定验证标准,为需求的验证提供定性和定量的措施。
- 建立双向可追溯性。在利益相关者需求和系统需求之间建立双向的可追溯性。
在Enterprise Architect中加入系统需求,并把系统需求跟客户需求一一对应上
建立追溯矩阵
-----------------------------------------------------------------------------------END
[参考资料]