1、 R&D/WI-003开发规范 I版本:B受控状态:分发号:发布文件编号 R&D/WI-003修订状态 B/0页 次 2 / 6开发规范 II生效日期 2004-03-15文件标识当前版本作者文件状态 草稿文件 正式文件 更改正式文件 完成日期版 本 历 史版本/状态 作者 起始日期 结束日期 备注一个可靠的产品(硬件和软件)往往由可靠的、高效的开发机制保证,开发机制是否合理会直接影响到开发的进度以及开发的质量。从整个开发流程考虑,可分为硬件开发,驱动开发,系统软件开发,应用软件开发,配置软件和网管软件的开发五个过程。为了更有效的发挥每个项目组成员的特长,同时为了保证整个产品的质量,开发的每个
2、过程之间都必须接口清晰,且前一个过程必须对下一个过程负责。以下用图例表示各过程之间的关系。硬 件 开 发驱 动 开 发系 统 软 件 开 发应 用 软 件 开 发配 置 软 件 和 网 管 开 发从图中可看出,各开发过程密不可分,其中,除了硬件开发以硬件为主外,其余 4 个过程都以软件为主。文件编号 R&D/WI-003修订状态 B/0页 次 3 / 6开发规范 II生效日期 2004-03-15就工作的重要性而言,硬件开发处于宝塔的底部,虽不与用户直接相关,但却是最基础,最重要的一环。它是整个建筑的基石,直接影响到其它各个环节乃至整个系统的性能,必须进行有效的评估来验证其可靠性,稳定性,一致
3、性。驱动开发是硬件系统和软件系统之间的桥梁。通过它,我们可以把这两个系统完全独立开,使硬件工程师和软件工程师能更好地关注各自领域的开发,便于故障排除,也更便于软件移植。系统软件开发是软件开发的核心,是协调员,调度各进程,各任务的运行,是评价软件系统的重要依据之一。不过对于嵌入式系统,系统软件开发已独立成为通用性产品,软件工程师只需熟悉它并使用它即可,而不必花费时间进行这一环节开发。应用软件开发是我们把新开发的设备产品化的重要过程。设备的功能实现都在这一环节中完成。配置软件和网管开发是产品和用户之间联系的窗口。一个友好的,智能化,通用化的用户界面也是衡量产品质量以及延伸出服务质量的重要依据之一。
4、如果把这五个过程打个比方,就像建造一座大厦,硬件开发是选素材,是原材料的粗加工;驱动开发是做模具的过程,按照不同的要求定制各种基本的模块,种类越多,今后建造出建筑的种类也越多;系统软件开发是建造过程中的几个最基本的动作,以及各动作之间如何协调分配,以保证整个建造过程次序井然;应用软件开发是按用户要求施工,完成满足用户需要的式样;配置软件和网管开发是交付给用户使用前的装饰,它提供用户使用的界面。进行更有效的分工协作最重要的一点就是分清各个环节之间的接口,每两个相关环节以此接口为标准进行协作,每个环节完成的任务符合接口标准,即可提交给下一环节。这样才能对整个产品质量具有有效的评估,故障排除也容易定
5、位。以下列表提出各过程之间的协作关系。文件编号 R&D/WI-003修订状态 B/0页 次 4 / 6开发规范 II生效日期 2004-03-15开 发 过 程 向 谁 负 责 任 务 接 口 规 范硬 件 开 发 设 备 驱 动 工 程 师硬 件 平 台 的 建 立 。 软 件 功能 的 多 样 性 必 须 依 靠 硬 件资 源 的 丰 富 性 作 保 证 。 完成 硬 件 平 台 的 可 操 作 性( I/O Accessible) , 以 芯片 为 单 位 , 只 要 能 从 静 态( 逻 辑 的 ) 和 动 态 ( 时 序的 ) 两 方 面 证 明 I/O access是 可 靠 的
6、, 那 么 驱 动 工 程师 就 能 完 成 所 有 芯 片 的 既定 功 能 。向 驱 动 工 程 师 提 供 必 要 的 资 料 包括 : I/O Memory Mapping 文 档 , 芯片 资 料 , 原 理 图 , CPLD/FPGA的逻 辑 图 , 关 于 能 证 明 I/O Access可靠 的 测 试 程 序驱 动 开 发 系 统 开 发 工 程 师把 软 件 从 硬 件 世 界 中 完 全分 离 , 完 成 对 硬 件 基 本 单位 的 功 能 操 作 , 定 义 基 于应 用 层 面 的 接 口 函 数( API) , 或 基 于 嵌 入 式操 作 系 统 的 驱 动 开
7、 发( BSP)向 应 用 软 件 工 程 师 提 供 必 要 的 资料 包 括 : API或 BSP的 文 档 , 关 于能 证 明 功 能 可 靠 实 现 的 测 试 程序 , 完 善 的 驱 动 程 序 不 仅 应 包 括一 般 的 功 能 函 数 , 还 应 包 括 中 断服 务 程 序系 统 软 件 开 发 应 用 软 件 工 程 师系 统 资 源 ( 包 括 硬 件 和 软件 ) 的 协 调 和 管 理提 供 应 用 开 发 工 程 师 必 要 的 系 统调 用 函 数 的 相 关 文 档应 用 软 件 开 发 网 管 开 发 工 程 师用 户 应 用 层 面 的 开 发 , 包括
8、 功 能 模 块 实 现向 网 管 开 发 工 程 师 提 供 必 要 的 资料 包 括 : 与 用 户 界 面 进 行 互 操 作的 接 口 文 档 , 包 括 通 讯 协 议 , 命令 定 义 ; 能 证 明 功 能 模 块 可 靠 实现 的 测 试 程 序 ( 假 设 网 管 软 件 传递 的 参 数 是 正 确 的 ) 。 另 外 , 可以 借 助 网 管 开 发 工 程 师 提 供 的 命令 测 试 软 件 测 试 命 令 机 制 , 通 讯协 议 的 功 能 以 及 性 能 。配 置 软 件 和 网管 开 发 用 户操 作 界 面 , 包 括 文 本 方 式和 图 形 方 式 等
9、, 应 保 证 传递 给 系 统 的 数 据 是 正 确的 , 同 时 从 系 统 获 得 的 数据 解 析 也 是 正 确 的 。界 面 可 由 销 售 部 , 市 场 部 从 用 户的 角 度 来 评 估 。 数 据 传 递 的 可 靠性 可 借 助 应 用 软 件 开 发 在 调 试 阶段 使 用 的 参 数 合 法 性 判 定 函 数 进行 测 试 。以上列表指明了各个工程师之间工作的相互关系以及工作接口规范,以下将对工程师的工作职责作具体的明确。硬件工程师职责向设备驱动工程师提供必要的资料如下:1. I/O Memory Mapping 文档文件编号 R&D/WI-003修订状态 B
10、/0页 次 5 / 6开发规范 II生效日期 2004-03-15文档中应包括整个系统的地址分配情况,每个功能模块入口地址的分配情况;对 CPLD/FPGA 内的寄存器位操作,应标明位的定义,默认值,以及 read/write 模式。 (格式可参考芯片资料)2. 芯片资料3. 原理图4. CPLD/FPGA 的逻辑图,状态图或 VHDL 源文件5. 关于能证明 I/O Access 可靠的测试程序,包括静态(逻辑的)和动态(时序的)两个方面。常见的方法是连续多次不间断对目标 I/O 操作,结果正常,一般认为 I/O Access 是可靠的。如果需要在两次 I/O 操作之间增加延时的,必须详细说
11、明其性能指标(如最小延时时间等)设备驱动工程师职责向应用软件工程师提供必要的资料如下:1. API 文挡,包括: 模块初始化函数定义 模块功能函数定义(包括配置信息,状态查询,模块测试,软件版本信息等) 其他功能函数定义(包括内部功能函数,公用功能函数,中断服务例程等) 模块功能测试流程。对于某些复杂的功能测试,应编写流程便于应用软件工程师理解。2. BSP 文档(如果有 RTOS 的) ,提供 RTOS 管理接口,包括内存,任务,中断,抢占式服务的管理3. 关于能证明功能可靠实现的测试程序,常见的方法是输入合法参数和非法参数,调用功能函数后能得到相应的结果,一般认为功能函数是可靠的。其中合法
12、参数通常指正常范围内的参数值,非法参数是在正常定义范围外的参数值。系统开发工程师职责向应用软件工程师提供必要的资料如下:1. 应用软件工程师系统调用函数的相关文档,包括函数定义(服务例程,公用函数等) ,数据结构定义,系统资源定义,函数应用举例等。2. 关于能证明功能可靠实现的测试程序。由于系统软件是软件的核心部分,其性能指标直接影响整个软件的性能,因此必须进行严格的白盒测试。在测试程序中,测试内容必须完整,测试方法必须严密。对于某些复杂的功能测试,应编写流程便于应用软件工程师理解。应用软件工程师职责向网管开发工程师提供必要的资料如下:1. 用户界面互操作接口文档该文档包括命令格式的定义,上、
13、下位机的通讯协议,出错信息定义等。如果需要在两次文件编号 R&D/WI-003修订状态 B/0页 次 6 / 6开发规范 II生效日期 2004-03-15命令发送或接收操作之间增加延时的,必须详细注明其性能指标(如最小延时时间等)2. 关于能证明功能可靠实现的测试程序,常见的方法是利用网管开发工程师提供的测试软件进行功能和性能的测试,根据回送结果评估互操作接口的功能和性能指标。网管开发工程师职责向用户提供必要的资料如下:1. 用户界面操作说明的文档。该文档针对不同权限的用户分别说明2. 用户界面出错信息说明的文档该文档包括出错信息的定义,以及出错信息可能发生的原因。3. 关于能证明功能可靠实现的测试程序,常见的方法是利用回显机制(Debug 版本下) ,显示输入的参数,如果与用户界面互操作接口文档中定义一致则注明参数传递可靠。以上的职责分工不断强调的两点,也是最重要的两点是完整文档的提供和各接口可靠的测试。只有充分满足这两点的条件下,分工协作才是高效的和高质量的。产品才是真正可靠的。