软件需求说明书-模板

上传人:gbs****77 文档编号:9667137 上传时间:2020-04-07 格式:DOC 页数:47 大小:812KB
返回 下载 相关 举报
软件需求说明书-模板_第1页
第1页 / 共47页
软件需求说明书-模板_第2页
第2页 / 共47页
软件需求说明书-模板_第3页
第3页 / 共47页
点击查看更多>>
资源描述
研制令号 日期 项目 软 件 需 求 说 明 书 该文档仅供内部参考 负责单位 研发部门名称 协作单位 协作单位名称 如有 作 者 研发人员签名 批 准 总工程师签名 修改及签收情况记录 版本号 修改人 修改日期 修改批准人 部门资料室签收 研发人员 签名 研发部门主 任签名 部门资料员存档签 名 股份有限公司 软件需求说明书 Vm n 第 1 页 共 46 页 修改记录 文件编号 版本号 拟制人 修改人 拟制 修改日 期 更改理由 主要更改内容 写要点即可 注 1 每次更改归档文件 指归档到事业部或公司档案室的文件 时 需填写此表 注 2 文件第一次归档时 更改理由 主要更改内容 栏写 无 软件需求说明书 Vm n 第 2 页 共 46 页 目 录 1 引言 7 1 1 编写目的 7 1 2 预期的读者和阅读建议 7 1 3 文档约定 7 2 术语 定义和缩略语 8 2 1 术语 定义 8 2 2 缩略语 8 3 综合描述 9 3 1 背景 9 3 2 功能概述 10 3 3 运行环境 11 3 4 用户类及其要求 11 4 具体需求 13 4 1 功能需求 18 4 1 1 19 4 1 2 25 4 2 性能需求 28 4 2 1 28 4 2 2 29 4 3 质量属性需求 29 4 3 1 可靠性 31 4 3 2 安全性 32 4 3 3 可维护性 33 4 3 4 可移植性 34 4 3 5 扩展性 34 4 3 6 可测试性 35 4 4 外部接口需求 36 4 5 其它需求 36 4 5 1 通用化 系列化 模块化需求 36 4 5 2 设计和实现上的限制 37 4 5 3 执行标准 39 4 5 4 国际化需求 41 4 5 5 杂类需求 42 5 需求追踪 43 6 验收准则 43 7 参考文献 44 软件需求说明书 Vm n 第 3 页 共 46 页 术语说明 a 需求 是指 被描述系统 做什么 功能需求 及 做什么 时的水平 非功 能需求 如性能需求 质量属性需求 外部接口需求 其它需求 b 软件需求 由软件实现的需求 包括功能需求 性能需求 质量属性需求 外部 接口需求及其它需求 c 软件需求说明书 software requirement specification SRS 是这样一类文档 它以特定的格式记载了软件必须实现的所有软件需求 又叫软件需求规格 软件 需求规格说明 在必要时 也应描述软件肯定不做什么 何谓必要 在某些上下 文语境中 如果不作这样的声明 可能会令读者发生误会 SRS 为后续的项目软 件计划 概要设计 软件 系统测试 用户文档等工作提供基础与约束 编制 SRS 时经常被问到以下问题 a 实践中出现了不少这样的情况 明明要求写软件需求说明书 但结果写出了模块 需求说明书 这实际上反映了这些实践未正确确定 被描述系统 那么 如何确 定 被描述系统 呢 1 在编写 SRS 前 一定要明确 被描述系统 该系统应是上游文档中已经明 确划分出来的 同时应将 被描述系统 作为黑盒 特殊情况下可以是灰盒 甚至是白盒 如网管软件 可以按终端 服务器 来描述 2 对于纯软件项目 很显然 由于 SRS 的上游文档 研制任务书 没有对软件 进行划分 因此 SRS 中 被描述系统 应该是整个软件 而不是其中的某 个模块 3 对于软硬件大系统 一般通过系统设计活动 SRS 的上游文档 系统方案 已经对系统进行了划分 因此 SRS 中 被描述系统 可以是划分出来的任 何一个软件块 b 应该编写几篇 SRS 1 对于软硬件大系统 SRS 是根据系统方案 标准 协议 规范 研制规范 原 始需求 其中可能直接含有功能需求 性能需求 质量属性需求 外部接口 需求 其它需求 开发出来的 根据系统的复杂程度 可以编制一到多篇 SRS 如果 SRS 的上游文档 系统方案 满足其编制要求 则可以为每个 单板的软件部分 如果该单板存在软件的话 写一篇 SRS 注意 在系统方案模板中 此处的单板软件被统称为 软件子系统 该 子 系统 按业务按纵向划分 的概念比我们熟悉的诸如 OSS 子系统 DBS 子系统 更广泛 OSS 子系统 DBS 子系统 横向即分层划分 等是通过软件概要设计设计出来的 并体现在 软件总体设计方案 中 2 对于纯软件项目 SRS 是根据研制任务书 标准 协议 规范 原始需求说明 书开发出来的 一般说来 只写一篇 SRS 是比较合适的 c SRS 编写到什么程度才算完成 比较通行的原则是 1 如果设计与开发人员需要 SRS 的作者额外的解释才能理解需求 并进而进行 软件需求说明书 Vm n 第 4 页 共 46 页 设计和实现 则在继续工作前 需求还需要进一步细化 2 如果 软件 系统测试人员需要 SRS 的作者额外的解释才能理解需求 并进 而编写 软件 系统测试规程 测试用例 则在继续工作前 需求还需要进一 步细化 d 在概要甚至详细设计前怎么能描述功能需求的正常过程呢 1 首先要明确 软件需求描述的是 被描述系统 如整个软件或某个软件子系 对外提供的功能 性能 质量属性 外部接口等 可以将 被描述系统 看 成一个黑盒 如果在需求描述的过程中 涉及到了 被描述系统 内部的组 成 则可以认为该描述不满足要求 当然 也有些例外情况 如对于网管这 种已经很成熟的软件 在描述需求时 可以按终端与服务器分别进行描述 而概要设计是对 被描述系统 内部组成及其相互关系进行设计 此时 被 描述系统 是一个白盒 2 功能需求的过程描述是对完成功能的操作 执行步骤 而不是具体的内部实现 流程 进行描述 一方面为后续设计提供基本的处理流程 另一方面 更为 重要 在描述正常过程 可选过程及异常过程 后两个过程在以往的实践中 经常需要到详设 甚至编码时才能部分确定 的过程 揭示各种数据项 详 细定义于数据字典中 及业务规则 如数据合法性 一致性 匹配等 3 除了设计和实现上的限制及标准化相关需求外 SRS 只描述软件 做什么 不应该包括设计 构造 测试或工程管理的细节 而概要设计是讲 如何做 才能满足 做什么 编制 SRS 时 应考虑以下情况 a 在编制 SRS 前 应熟悉软件需求说明书评审检查单 在编制过程中应注意避免出 现检查单中所列的常见问题 b 如果不能保证与上游文档间的追踪关系 则 SRS 的编制就是失败的 同行评审将 不能关闭 甚至可以将这个要求列入同行评审的准入条件 因此 对于 SRS 的 作者来说 应将需求追踪放到足够重要的位置 作为检查的手段之一 在提交 SRS 进行同行评审前 作者应先进行需求追踪 c 对于需求主要由协议 标准 规范规定的软件 在编制 SRS 时 为了准确 完整描 述需求 同时为减少文档的规模 可以采用 引用 的方法 建议句式为 见 但 引用 应完整 读者能方便 快速地找到目标内容 这就要求引 用时应列出协议 标准 规范名称 篇 章节号 如果不是整节引用 还应列出 开 始页号及行号 结束页号及行号 如果是不完全引用 应明确说明并指出异同 注意 此处未要求列出具体版本 协议 标准 规范 的版本信息在 执行标准 中统一列出 这样可避免同时引用一份 协议 标准 规范 的多个版本 这也意味 着 一旦 协议 标准 规范 发生变更 所有的引用可能都得修改 本条要求同样 适用于对文件的引用 d 为了更好地使用需求追踪工具 RequisitePro 以下简称 RP 进行需求追踪 在描 软件需求说明书 Vm n 第 5 页 共 46 页 述需求时应注意图与表格的使用 1 图可以是 Word 图 此处图是指插入的 对象 PaintBrush 图 PowerPoint 图 Visio 图等 但应是 嵌入型 的 而不能是 浮于文字上 方 等其它形式 同时 应尽可能将图插在需求描述的中间 这样当图发生 变化时 就可以通过在图前或图后加减空格 使得 RP 知道需求发生了变化 2 由于 RP 只能识别整表或一个一个的单元格 因此 一条需求要么只占一个 单元格 要么占满整表 编制本文档时 容易犯的错误有 a 不顾文档上下游之间的关系 先编写设计方案 然后 有些项目拖得非常后 再 编写本文档 这种做法是不对的 容易导致几个问题 一是在没有确定做什么 需求 的情况下就去描述怎么做 设计 极易导致返工 二是在需求文档中大 段大段地描述如何设计与实现 三是在已有设计文档的情况下 写需求文档被认 为是炒冷饭 因此不愿意再完整编写 b 认为只有在详细设计时才可能把处理过程写清楚 甚至认为功能需求根本无需描 述处理过程 因为那是详细设计要做的事 这种认识无疑是错误的 因为 用户 是通过与软件 系统 交互来完成其任务的 如果设计与实现的交互过程与用户 要求或想象的不一致 则用户就会认为软件 系统 不好 因此 交互过程应最 大限度地被满足 应该尽早在需求说明书中描述 另外 可选 异常及业务规则 如 只有经理级人员才可查看成本价 都隐藏于交互过程中 在需求开发过程 中 如果没有描述交互 则很可能遗漏可选 异常及业务规则 c 在一段中描述若干条需求 或将若干需求合并在一条需求中描述 常见于 性能 需求 的描述中 这种写法比较难以阅读 进行需求追踪时捕获需求也不是很方 便 d 对于非功能需求 如性能 质量属性需求等 只定性描述 如系统要稳定 CPU 占用率低 这样的描述无法验证 应该定量描述 且还应描述对应的条件 本模板在格式上有以下一系列约定 a 用 括起来的内容 是编写指导 在使用本模板编制的文档中应予以删除或 去掉 后予以适当沿用 b 本模板提供的示例 格式上都采用整行的 框起来 同时还会给例子一个编号和名称 以方 便阅读与引用 c 为了方便模板使用者删除 对内的所有编写指导文字都使用蓝色 但本身保 持黑色 同时 由于示例部分可能会被模板的使用者直接沿用 因此仍然使用黑 色 即 或者 其它如表格中的例子用黑色 但如果示例中又插入了一些指导说明文字 则这 软件需求说明书 Vm n 第 6 页 共 46 页 些文字必须用蓝色 d 如果某章节内容无需填写 而且本模板又没有特殊要求或说明 则在该章节下写 无 而不要将该章节删除或不填写任何内容 即留白 留白将使评审员或读者 无法判断 是本章节内容无需填写还是因为疏忽而忘了填写 软件需求说明书 Vm n 第 7 页 共 46 页 1 引言 1 1 编写目的 本文通过详细描述软件的功能需求 性能需求 质量属性需求 外部接口需求以及其它需求 为后续概要设计 软件 系统 测试 用户文档等工作提供 基础与约束 1 2 预期的读者和阅读建议 预期的读者和阅读建议参见表 1 1 表 1 1 读者分类 阅读重点及目的 备注 1 3 文档约定 Example Begin 例 文档约定 本文使用了如下的文档约定 1 表头文字使用 4 级灰度背景 2 插图一律使用 MS Visio 2003 中文版绘制 并一律 嵌入 于需求描述正文中 而非 浮于文字上方 3 用同号 同体但加粗的文字来强调需要读者重视的内容 4 采用用例 use case 技术对功能需求进行描述 另外 每个需求都有优先级属性 优先级的可能取值为 5 4 3 2 1 具体定义 如下 5 是必须的 它规定了系统 软件的必备功能 没有这些功能 系统 软件将不能完成 用户的工作 从而也就无法达到市场的准入条件 4 是重要的 它规定了那些竞争对手已经实现且用户感觉很好的功能 本系统 软件 区别于其它同类系统 软件的独特功能及其它一些功能 只有完成这些功能 才能使本系统 软件有市场竞争力 3 是应该的 它规定了当前版本可以不做 但必须在未来版本中实现的功能 此种需 求对系统 软件的体系结构影响可能较大 因此必须在系统分析及设计时予以考虑 软件需求说明书 Vm n 第 8 页 共 46 页 2 是可能的 它规定了那些有了会更好但没有也没有什么关系的功能 如一些提高效 率的小工具 1 是备忘的 它规定了我们想象的但目前无法或无需实现的需求 Example End 2 术语 定义和缩略语 2 1 术语 定义 本文使用的专用术语 定义见表 2 1 通用术语 定义见 术语 定义和缩略语 表 2 1 术语 定义 英文对应词 含 义 2 2 缩略语 本文使用的专用缩略语见表 2 2 通用缩略语见 术语 定义和缩 略语 缩略语已按其第 1 个字母顺序排列 表 2 2 缩略语 英文原文 中文含义 软件需求说明书 Vm n 第 9 页 共 46 页 3 综合描述 3 1 背景 本节主要描述以下内容 a 系统的背景和起源 重点说明该系统是否是产品系列中的下一成员 是否是现有 应用的替代品 或者是否是一个新型的 自含型产品 对于在老版本之上升级的 系统 则还应说明 1 老版本出现的主要问题 2 新版本需要增加或改进的主要内容 此段内容可能来自于可行性研究报告等上游相关文档 应该对相关内容进行概括 而不是照抄 篇幅一般应控制在 5 个自然段之内 b 本系统在整个系统或整个环境中的位置 必须使用上下文图 context diagram 或 高层用例图说明本系统 必须用文字及不同的颜色明确标识出来 与外界 可能 包括整个系统外的实体 之间的联系 如图 3 1 上下文图能清晰地表达系统与外 部环境的边界 及系统与外部环境的关系 帮助读者更好 更快地理解被描述的 系统 实践中经常犯的错误是 1 不画图 2 画了系统内部组成图或协议栈 3 在上下文图中 还描述了外部系统之间关系 软件需求说明书 Vm n 第 10 页 共 46 页 图 3 1 化学制品跟踪系统 上下文图 Example Begin 例 背景 网管软件需要管理两种网元 一种是 ANU 一种是 ICSC 两种网元不同之处在于前 者用的是 A 型机平台 后者用的是 B 型机平台 两者的操作方式差异很大 ANU 的操作 以字符人机命令为主 ICSC 的操作命令基本上已实现图形化 对于用户来说 需要在一 个网管软件上实现对这两种网元的统一处理 本文即描述了统一管理 ANU 和 ICSC 的网管 软件的需求 图 3 2 描述了本网管软件的上下文图 Context diagram Z X P C S 网 管 用户 外部系统 网 管 终 端 网 管 服 务 器 网元 网 管 接 口 机 命令下发 下发命令 命令下发 命令结果返回 命令结果返回 操作结果显示 主动上报信息 消息上报 命令结果返回 消息上报消息显示 操作界面 命令返回 消息上报 命令下发 图 3 2 上下文图 本网管软件与外界的联系见图 3 2 的文字说明 Example End 3 2 功能概述 本节概述软件所具有的主要功能 如果需要 也可描述性能等需求 由于其详细内 容将在 具体需求 中描述 因此此处需要以较高的层次 如需求组 对需求进行概括性 的总结 直接罗列 4 1 功能需求 中的所有需求 如用一个表格 并不是一个好主意 因为这会引起内容冗余以致引起维护问题 还会增大文档篇幅 可以使用图形表示主要的 需求组以及它们之间的关系 为什么要这样做呢 因为一般的软件需求说明书的规模都较大 上百页甚至数百页的 规模都比较常见 如果在文档的开头没有对软件完成的主要功能进行介绍的话 读者只有 在通读完所有内容后才能知道软件是干什么的 这就会影响读者的阅读情绪并进而影响阅 读效果 本节示例中的规划大师 PlanMaster V2 共有上百个比较重要的功能 但在进行功能概 软件需求说明书 Vm n 第 11 页 共 46 页 述时只在功能组这一级罗列 只有 8 行 任何具体功能都可归结到这 8 个功能组中 因 此满足了覆盖具体需求的要求 同样 用户需求也未游离于这 8 个功能组之外 因此也覆 盖了其上游文档 系统需求论证说明 规划大师是纯软件项目 3 3 运行环境 运行环境见表 3 1 表 3 1 名 称 硬件 CPU RAM HD 操作系统及其版本 其它软件环境 3 4 用户类及其要求 本节描述本软件的不同用户类并描述他们相关的特征 应根据用户使用软件的频度 应用领域和计算机系统知识 需要完成的任务 地理上的布局以及访问优先级等对用户进 软件需求说明书 Vm n 第 12 页 共 46 页 行分组 不同的用户类其需求是不同的 某些用户类的需求可能更加重要 需要优先考虑 本节内容对后续的设计会产生一定的约束与限制 每一个用户类都有自己的一系列功能和非功能需求 如 一个没有经验或偶尔使用电 脑的用户关心软件是否简单易用 因此 菜单 提示符和向导是很重要的 然而 对于那 些一天使用几小时软件的用户 他们更关心软件的易用性和高效性 所以他们喜欢使用快 捷键 宏以及脚本功能 scripting facility 有一些受软件影响的人并不一定是软件的直接使用者 而是通过报表或其它应用程序 访问本软件的数据和服务 这些非直接的或次级 secondary 的用户也有自己的需求 可以 将这些人加入 附加的用户类 用户类不一定都指人 其它应用程序或系统接口所用的硬件组件也可看成是附加用户 类的成员 以这种方式来看待应用程序接口 可以帮助确定软件中那些与外部应用程序或 组件有关的需求 在项目中 要尽早为项目确定并描述出不同的用户类 这样 就能从每一个重要的用 户类代表中获取不同的需求 软件需求说明书 Vm n 第 13 页 共 46 页 4 具体需求 本章描述功能需求 性能需求 质量属性需求 外部接口需求及其它需求 我们规定 a 功能需求编号的前缀为 SR F F 表示功能 b 性能需求编号的前缀为 SR P P 表示性能 c 质量属性需求编号的前缀为 SR Q Q 表示质量 d 外部接口需求编号的前缀为 SR I I 表示接口 e 其它需求编号的前缀为 SR M M 表示杂类 需要说明的是 如果一个项目有多篇 SRS 假定划分的粒度是子系统 则其编号前缀 应改为 SR 子系统名 需求类别 如 F P Q I M 如 SR DB F 如果需求是分组描述的 则还要在 需求类别 后再加上需求组 如 SR DB F G1 无论如何 应保证需求编号在项目中的唯一性 在编写本章时 还应注意以下问题 a 如果项目被要求编写数据字典 则应在项目的早期 如项目论证阶段 就编写数 据字典 以定义相关的数据元素和结构 如输入 输出 存储或数据表字段等 一般与功能 内外部接口等相关 的含义 类型 数据大小 格式 度量单位 精度以及允许取值范围 需求描述中的输入项可以直接引用数据字典的数据项 数据字典应独立维护 b 无论是需求编号还是需求内部描述的步骤号 都应手工编号 而不要使用编辑器 的自动编号 因为如果采用自动编号 一旦增加或删除中间的某个编号 将会引 起其后所有需求的 RP 记录的变更 并影响处理过程中的引用关系 c 需求优先级的设置应基于上游文档中相关内容的优先级 一般应不比上游的低 d 本文档中不得描述需求的实现版本信息 需求实现的版本信息应体现在两个地方 一是项目计划中 二是需求追踪工具 RP 中的需求属性 实现版本 在阅读以下内容时 如果结合 软件需求说明书评审检查单 将能取得更加好的效果 好的单条需求的描述应具有以下特征 摘自 软件需求 第 1 5 节 Karl E Wiegers a 完整性 每一项需求都必须将所要实现的功能描述清楚 以使设计与开发人员获 得设计和实现这些功能所需的所有必要信息 b 正确性 每一项需求都必须准确地陈述其要开发的功能 判断依据为用户或系统 需求说明 c 可行性 每一项需求都必须是在已知系统和环境的能力 capability 和限制范围 内可以实施的 为避免不可行的需求 最好在获取 elicitation 需求过程中始终有一 位设计 开发人员与需求分析人员 市场人员在一起工作 由他负责检查技术可行性 d 必要性 每一项需求都应能追踪到某项客户的输入 如 use case 或别的来源 这 就要求我们将客户真正所需要的和最终系统所需遵从的标准记录下来以便追踪 软件需求说明书 Vm n 第 14 页 共 46 页 e 划分优先级 给每项需求 特性或 use case 分配一个实施优先级以指明它在特定 产品中所占的分量 如果把所有的需求都看作同样重要 那么项目管理者在需要 调整项目范围时就无法进行取舍 f 无二义性 对所有需求说明的读者都只能有一个明确统一的解释 由于自然语言 极易导致二义性 所以尽量把每项需求用简洁明了的用户性的语言表达出来 避 免二义性的有效方法包括对需求文档的同行评审 编写测试用例 开发原型以及 设计特定的方案脚本等 g 可验证性 检查一下每项需求是否能通过设计测试用例或其它的验证方法 如用 演示 检测等来确定产品是否确实按需求实现了 如果需求不可验证 则确定其 实施是否正确就成为主观臆断 而非客观分析了 一份前后矛盾 不可行或有二 义性的需求也是不可验证的 好的需求说明书的描述应具有以下特征 a 完整性 不能遗漏任何必要的需求信息 遗漏需求将很难查出 注重用户的任务 而不是系统的功能将有助于提高完整性 如果知道缺少某项信息 用 TBD 待确 定 作为标准标识来标明这项缺漏 在通过评审前 必须解决需求中所有的 TBD 项 b 一致性 一致性是指与其它软件需求或高层 系统 业务 需求不相矛盾 在评 审通过前必须解决所有需求间的不一致部分 c 可修改性 在必要时或为维护每一需求变更历史记录时 应该修订 SRS 这就要 求每项需求要独立标出 并与别的需求区别开来 每项需求只应在 SRS 中出现一 次 这样更改时易于保持一致性 d 可追踪性 应能在每项软件需求与它的根源和设计元素 源代码 测试用例之间 建立起追踪关系 这种可追踪性要求每项需求以一种结构化的 粒度好 fine grained 的方式编写并单独标明 而不是大段大段的叙述 编写 SRS 时牢记 a 保持语句和段落的简短 b 避免将多个需求集中在一个冗长的叙述段落中 c 避免出现需求冗余 d 采用主动语态的表达方式 e 使用正确的语法 拼写 标点 f 保持术语的一致性 并尽可能编制术语表及数据字典 g 条件语句描述应完整 如果只出现了 如果 而没有 否则 则应仔细考虑 如果 没有发生 即出现了 否则 分支 会怎样 h 多从设计与开发人员的角度衡量需求是否已被有效定义 如果设计与开发人员需 要 SRS 的作者额外的解释才能理解需求 并进而进行设计和实现 则在继续工作 前 需求还需要进一步细化 软件需求说明书 Vm n 第 15 页 共 46 页 i 如果验证某需求需要很多测试用例且测试用例很分散 则可认为需求的粒度太粗 应继续细化 j 必须以相同的详细程度描述每个需求 如 组合键 Control S 代表保存文件 与 组合键 Control P 代表打印文件 的描述粒度是相同的 而 产品必须响应以 语音方式输入的编辑指令 则相对太粗了 k 鼓励使用确定性词语 如 总是 每一种 所有 没有 从不 应 必须等 l 特别关注或避免使用如下词语 1 当然 因此 明显 显然 必然 这些词语意图诱使接受假定情况 当看到 这些词语时 审查员应仔细审查推断或假定是否成立 2 某些 有时 常常 通常 贯常 经常 大多 几乎 用户友好 容易 简 单 许多 最新技术 可接受的 健壮的 这些词语太过模糊 所描述的功 能无法测试 3 等等 诸如此类 依此类推 以这样的词结束的功能清单无法测试 功能清 单要绝对或者解释明确 以免让人迷惑 不知如何推论 4 良好 迅速 廉价 高效 小 稳定 这些是不确定的说法 不可测试 如 果在文中出现 就必须进一步指明含义 5 已处理 已拒绝 已忽略 已消除 这些说法可能隐藏大量需要说明的功能 几个需求说明的例子 例 1 产品必须在固定的时间间隔内提供状态消息 并且每次时间间隔不得小于 60 秒 分析 这个需求是不完整的 什么是状态消息 并且在什么情况下向用户提供这些消 息 显示时间多长 我们所说的是产品的哪一部分 时间间隔也会导致混淆 假定显示状 态消息之间的时间间隔只要求不少于 60 秒 按这样推理 是否可以每隔一年显示一次状 态信息 如果意图是消息之间的时间间隔不多于 60 秒 那么 1 毫秒会不会太短 消息显 示的时间间隔怎样才能一致 每次 这个词混淆了这一问题 由于这些问题的存在 导 致了需求是不可验证的 改进 假设本例是描述后台任务管理器 BTM 应该在用户界面的指定区域显示状态 消息 a 在后台任务启动之后 消息必须每隔 60 10 秒更新一次 并且保持连续的可 见性 b 如果正在正常处理后台任务 那么后台任务管理器 BTM 必须显示后台任务进 程已完成的百分比 c 当完成后台任务时 后台任务管理器 BTM 必须显示一个 已完成 的消息 d 如果后台任务中止执行 那么后台任务管理器 BTM 必须显示一个出错消息 将原先的需求分割成多个需求 因为每个需求都需要独立的测试用例并且使各个需求 都具有可跟踪性 如果把多个需求都集中在一个段落中 那么在构造软件和测试时就很容 软件需求说明书 Vm n 第 16 页 共 46 页 易忽略其中某个需求 注意 修改之后的需求并没有精确地说明是怎样显示状态信息的 这是一个设计问题 例 2 产品必须在显示和隐藏非打印字符之间进行瞬间切换 分析 该需求是不完整的 因为它没有说清状态切换的原因 在特定的条件下 软件 产品是否可以进行自动切换或者可否由用户采取某些措施来激发这样转变 还有 在文档 中显示转变的范围是什么 是所选的文本 整个文档或其它内容 这个需求也存在一个不 确定性问题 非打印 字符是否指隐藏文本 属性标记或者其它的控制字符 由于存在这 些问题 该需求是不可验证的 改进 用户在编辑文档时 通过激活特定的触发机制 可以在显示和隐藏所有 HTML 标记之间进行切换 假设用户对触发机制并不关心 现在 指代关系就清楚了 非打印字符指的是 HTML 标记 修改过的需求指明了是用 户触发了显示状态的转换 但是它并没有对设计造成限制 因为它并没有精确定义所使用 的机制 当设计人员选择好一种触发机制 例如热键 菜单命令或语音输入 时 就可以 编写详细的测试用例来验证这种转换操作是否正确 例 3 分析程序应该能生成 HTML 标记出错的报告 这样就可以使 HTML 的初学者 使用它来迅速排错 分析 迅速 这个词具有模糊性 缺乏对出错报告内容的定义表明该需求也是不完 整的 还有一点不清楚的是 HTML 初学者使用的是分析程序还是出错报告 并且何时生 成这样的报告 改进 a 在 HTML 分析程序完全分析完一个文件后 该分析程序必须生成一个出错报告 这个报告中包含了在分析文件过程中所发现错误的 HTML 所在的行号以及文本内 容 还包含了对每个错误的描述 b 如果在分析过程中未发现任何错误 就不必生成出错报告 描述了例外情况的处 理 例 4 如果可能的话 应当根据主货物编号列表在线确认所输入的货物编号 分析 如果可能的话 这句话意味着什么 该需求是否在技术上可行 是否可以在 线访问主货物编号列表 如果不能确信是否可以递交一个请求 那么就使用 TBD 待确 定 来表示未解决的问题 这个需求是不完整的 因为它并没有指明如果确认通过或失败 将会发生什么情况 改进 系统必须根据在线的主货物编号列表确认所输入的货物编号 如果在主列表 中查不到该货物的编号 系统必须显示一个出错消息并且拒绝订货 例 5 产品不应该提供将带来灾难性后果的查询和替换选择 分析 灾难性后果 存在二义性 本条需求关注的焦点实际上可能是多级撤销 undo 能 软件需求说明书 Vm n 第 17 页 共 46 页 力 改进 产品在编辑时应提供多级 可由用户配置 最大 99 级 撤销 undo 能力 例6 基站启动流程 中对和超级终端串口的通信进行检测 如果通信正常 则进 行2 的处理 分析 该需求不完整 典型的只说一个分支的错误 只说了if 丢了else 改进 基站启动流程 中对和超级终端串口的通信进行检测 如果通信不正常 则转步骤 10 否则转到步骤 2 例 7 参见 PPT 相关设计文档 XXXX 软件基本上是移植 改动主要涉及 U 口数量 增多 相关进程增加等方面 分析 引用应明确写出引用的文档名称 章节号 开始页号及行号 结束页号及行号 方便读者准确 快速定位目标内容 同时应明确给出移植前后的差异 设计时才可根据差 异进行设计 否则就要在设计时找出哪些差异 需求 然后再设计 例8 在RCR STD 28协议中对输入有明确的规定 分析 引用协议应明确写出协议的章节号 开始页号及行号 结束页号及行号 软件需求说明书 Vm n 第 18 页 共 46 页 4 1 功能需求 功能需求表示了软件的行为 或期望软件能够完成的工作 这些需求通常是面向动 作的 需要重点描述输入 输出与执行的过程 需要强调的是 a 外部接口相关的功能应在此处描述 而不是在 4 4 外部接口需求 中描述 b 应确认是否有某些容易被忽略的功能 如环境监控相关的 如温度 湿度 烟雾 等 透明传输相关的功能 应逐一描述每一个具体的功能需求 包括需求编号 需求名称 需求描述 优先级 使用频度等 输入 输出和处理等可以使用 use case IPO 输入 处理 输出 规范化的 模型或其它适当的方式进行描述 规范化的模型 包括实体 关系图 状态转换图 数据流 图 对话图等 本模板建议优先使用 use case 场景描述方法 在特殊情况下才可使用 IPO 等其它方法 如 对于平台类 API 需求 如果处理流程是顺序的 则使用 IPO 方法比较有 效 由于不同的功能需求可能有不同的性能 质量属性等需求 为了避免冗余 在描述功 能需求时可在 特殊需求 一栏中同时描述对应的性能 质量属性等需求 另外 凡是在 4 4 外部接口需求 中提到的接口 都应在这里详细描述其提供的功能 可以将需求分成若干组进行描述 在分组描述 即 父 子需求描述 的情况下 可 在第三级标题下描述组需求 而在第四级标题下详细描述具体的子需求 假设组编号为 SR F 0010 子需求的编号则应以 SR F 0010 开头 如 SR F 0010 01 为了方便读者阅 读 可以在组需求下 用文字 用例图等来简单说明其下子需求的情况 可将需求编号与需求名称 两者之间应有两个空格 作为标题 需求名称应当使用确 定性的语句 建议使用 软件应 软件必须 如 软件应 必须 提供用户管理功 能 且尽可能简短 使得标题能够写在一行 4 1 1 描述了 use case 的使用 4 1 2 描述了 IPO 的使用 为了能唯一标识 并进而引用功能需求描述中的各子项 我们进行了如表 4 1 所示的 定义 表 4 1 序号 功能需求描述 子项 前缀 编号及格式说明 示例 1 前置条件 C a 使用缩进两格的正文 b 行首应加编号及两个空格 编号以大写 的 C 代表条件 引导 编号的位数应 相等 即不允许出现 C90 C100 可 为 C0090 C0100 如只有一个条件 也应编号 且应换一行开始条件的描述 由于不是一般的 列项 因此无须遵 守 凡是列项都应连续编号且对齐 的 标准化要求 建议 编号以 0 结尾 如 C0090 C0100 这样可方便在 C0090 后插入 C0095 为了方便 建议 编号统一使用 5 位 c 前置条件的引用规则 需求编号 前置条件编号 C0050 XXXX 引用某个前置条件 的例子 SR F 0010 C0050 2 后置条件 R 格式同上 编号的前缀为大写的 R 代表结果 软件需求说明书 Vm n 第 19 页 共 46 页 序号 功能需求描述 子项 前缀 编号及格式说明 示例 3 触发条件 T 格式同上 编号的前缀为大写的 T 代表触发 4 正常过程 N a 接着 正常过程 后描述正常过程编 号 编号以大写的 N 代表正常 引导 一般只有一个正常过程 b 过程编号的引用规则 需求编号 正常过程编号 正常过程 SR F 0010 N1 XX 引用正常过程的例 子 SR F 0010 N1 5 正常过程步骤 N a 格式同 前置条件 编号的前缀为大 写的 N b 正常过程 可选过程 异常过程的步骤 可以放在一起编号 如 N01 A02 E03 也可以独立编号 c 正常过程步骤的引用规则 需求编号 正常过程编号 正常过程步骤编号 N0010 XXXX 引用正常过程步骤 的例子 SR F 0010 N1 N0010 6 可选过程 A a 接着 可选过程 后描述可选过程编 号 空两格后描述可选过程名称 编号 以大写的 A 代表可选 引导 编号的 位数可以等于最大位数 1 不足用 0 补齐 b 过程编号的引用规则 需求编号 正常过程编号 可选过程 SR F 0010 A1 XX 引用可选过程的例 子 SR F 0010 A1 7 可选过程步骤 A 格式同 正常过程步骤 编号的前缀为大写的 A A0050 XXXX 引用可选过程步骤 的例子 SR F 0010 A1 A0050 8 异常过程 E 格式同 可选过程 编号的前缀为大写的 E 9 异常过程步骤 E 格式同 可选过程步骤 编号的前缀为大写的 E 10 特殊需求 S 格式同 前置条件 编号的前缀为大写的S 代表特殊 11 输入 I 格式同 前置条件 编号的前缀为大写的I 代表输入 12 输出 O 格式同 前置条件 编号的前缀为大写的O 代表输出 13 处理 P 格式同 前置条件 编号的前缀为大写的P 代表处理 4 1 1 需求描述 执行者 优先级 使用频度 前置条件 只有具备该条件才可执行该功能 格式 如无需填写 则直接接在 前 置条件 后写 无 否则应换行 按正文格式 即行首空两格 换行后顶格 前置条 软件需求说明书 Vm n 第 20 页 共 46 页 件编号 两个空格 具体的前置条件 对于 无 的编写要求 同样适用于 后置条件 可选过程 异常过程 特殊需求 后置条件 正常过程 可选过程 可选过程也可促进功能成功完成 但它们代表了功能的细节或用于完成 功能的途径的变化部分 可选过程结束后一般应回到正常过程的下一步继续执行 格式为 可选过程编号 两个空格 可选过程名称 XXXX后的分支 异常过程 描述引起功能不能顺利完成的情况 异常过程一般会结束整个正常过程 的执行 格式为 异常过程编号 两个空格 异常过程名称 XXXX后的分支 特殊需求 包含 Example Begin 例 1 功能需求 SR F 0020 请求一种化学制品 需求描述 请求者通过输入化学制品的 ID 或输入化学制品的结构来指定对化学制品的 请求 系统则提供给请求者一个来自化学制品仓库的新的或已用过的化学制品容器 或者 让请求者向外界供货商订货 执行者 请求者 优先级 5 使用频度 经常 对于每个药剂师大约每周 5 次 对于化学制品仓库的每个成员每周 100 次 前置条件 软件需求说明书 Vm n 第 21 页 共 46 页 C0010 用户的身份被证实 C0020 具有在线的化学制品存货清单数据库 后置条件 R0010 将完成的请求存入 化学制品跟踪系统 R0020 通过电子邮件把请求发往化学制品仓库或完成采购 正常过程 SR F 0020 N1 从供应商那里请求一种化学制品 N0010 执行者输入化学制品的 ID 或者包含化学制品结构的文件名 N0020 系统验证化学制品的 ID 是否合法 N0030 系统询问请求者需要一个新的供应商订单或一个来自化学制品仓库的容器 N0040 执行者确定供应商或化学制品仓库 可选过程 SR F 0020 A1 N0050 正常过程结束 可选过程 SR F 0020 A1 从化学制品仓库中请求一种化学制品 SR F 0020 N1 N0040 之后的分支 A0010 系统显示出化学制品仓库中现存的所要求的化学容器的列表 A0020 执行者可选择地查看任何容器的历史 A0030 执行者选择一个特定的容器或发出供应商订单 异常过程 SR F 0020 E1 化学制品在业务上不可用 SR F 0020 N1 N0020 之后的 异常 E0010 系统显示消息 不存在供应商 E0020 系统询问请求者是否要请求另一种化学制品或退出 E0030 执行者请求另一种化学制品 E0040 正常过程 本次 结束 特殊需求 S0010 系统必须可以按标准的编码形式输入化学制品的结构 这一标准来自对不同 化学制品图形包的支持 S0020 在推荐的配置软 硬件环境上 只运行本软件时 软件必须在 1 秒内响应用 户的输入 包含 SR F 0512 输入货物编号 注释和问题 Tim 将查明 在危险列表的第一级上请求一种化学制品是否需要管理层 的批准 预期时间 2002 11 04 同行评审前 Example End Example Begin 例 2 功能需求 4 1 1 SR F 0010 RRC 连接建立 RRC 连接建立用例图见图 4 1 软件需求说明书 Vm n 第 22 页 共 46 页 U E N o d e B S R F 0 0 1 0 0 1 R R C 连 接建立 在专用信道上 S R F 0 0 1 0 0 2 R R C 连 接建立 在公用 信道上 R N C 图 4 1 RRC 连接建立用例图 4 1 1 1 SR F 0010 01 RRC 连接建立在专用信道上 需求描述 UE 在 CCCH 上发送 RRC 连接请求 RNC 根据 UE 请求为其分配相应资 源 并将 RRC 连接建立在专用信道上 并与 NodeB 协商为其分配无线口和 Iub 口专用传 输信道资源 执行者 UE NodeB 优先级 5 使用频度 经常 前置条件 C0010 RNC 与 NodeB 之间通信正常 C0020 UE 处于 NodeB 覆盖范围之内 后置条件 R0010 RRC 连接建立成功 正常过程 SR F 0010 01 N1 N0010 UE 向 RNC 发送 RRC Connection Request 消息 请求建立 RRC 连接 N0020 RNC 决定将该 RRC 连接建立在专用信道 DCH 上 并为 UE 分配相关 无线资源 N0030 RNC 向 NodeB 发送 Radio Link Setup Request 消息 请求 NodeB 为相关 专用无线信道的建立分配资源 N0040 NodeB 回应 Radio Link Setup Response 消息 N0050 RNC 用 ALCAP 协议建立 Iub 口的数据传输 AAL2 承载 N0060 RNC 向 NodeB 发送 Downlink Synchronisation 帧 准备建立下行同步 N0070 NodeB 向 RNC 发送 Uplink Synchronisation 帧 建立下行同步 N0080 RNC 在 CCCH 上向 UE 发送 RRC Connection Setup 消息 其中指示了给 软件需求说明书 Vm n 第 23 页 共 46 页 UE 分配的无线资源 N0090 NodeB 向 RNC 发送 Radio Link Restore Indication 消息 指示上行同步已经 建立 N0100 UE 在专用信道上向 RNC 发送 RRC Connection Setup Complete 消息 整 个过程结束 可选过程 无 异常过程 SR F 0010 01 E1 无法为 UE 分配专用信道资源 在正常过程 SR F 0010 01 N1 N0020 之后 E0010 RNC 决定将该 RRC 连接建立在专用信道 DCH 上后 发现无法为 UE 分 配专用信道资源 E0020 RNC 决定将 RRC 连接建立在公用信道上 具体过程请参见 SR F 0010 02 RRC 连接建立在公共信道上 异常过程 SR F 0010 01 E2 Iub 口无线链路建立失败 在正常过程 SR F 0010 01 N1 N0030 之后 E0010 NodeB 发送 Radio Link Setup Failure 消息给 RNC 指示无线链路建立失败 E0020 RNC 删除为 UE 分配的相关无线资源 E0030 RNC 决定将 RRC 连接建立在公用信道上 具体过程请参见 SR F 0010 02 RRC 连接建立在公共信道上 异常过程 SR F 0010 01 E3 Iub 口数据承载建立失败 在正常过程 SR F 0010 01 N1 N0050 之后 E0010 RNC 用 ALCAP 协议建立 Iub 口 AAL2 数据承载失败 E0020 RNC 向 NodeB 发送 Radio Link Deletion Request 消息 删除刚才建立的无 线链路 E0030 NodeB 发送 Radio Link Deletion Response 消息响应 E0040 RNC 删除为 UE 分配的相关无线资源 E0050 RNC 决定将 RRC 连接建立在公用信道上 具体过程请参见 SR F 0010 02 RRC 连接建立在公共信道上 异常过程 SR F 0010 01 E4 无线链路上行同步失败 在正常过程 SR F 0010 01 N1 N0080 之后 E0010 NodeB 向 RNC 发送 Radio Link Failure 消息 指示上行同步建立失败 E0020 RNC 向 NodeB 发送 Radio Link Deletion Request 消息 删除刚才建立的无 线链路 E0030 NodeB 发送 Radio Link Deletion Response 消息响应 E0040 RNC 删除为 UE 分配的相关无线资源 E0050 过程结束 异常过程 SR F 0010 01 E5 RRC Connection Setup 消息响应超时 在正常过程 软件需求说明书 Vm n 第 24 页 共 46 页 SR F 0010 01 N1 N0080 之后 E0010 RNC 在发送 RRC Connection Setup 消息 RRC TIMEOUT 时间后没有接收 到 UE 的 RRC Connection Setup Complete 消息 E0020 RNC 向 NodeB 发送 Radio Link Deletion Request 消息 删除刚才建立的无 线链路 E0030 NodeB 发送 Radio Link Deletion Response 消息响应 E0040 RNC 删除为 UE 分配的相关无线资源 E0050 过程结束 特殊需求 无 4 1 1 2 SR F 0010 02 RRC 连接建立在公用信道上 需求描述 UE 在 CCCH 上发送 RRC 连接请求 RNC 根据 UE 请求为其分配相应资 源 并将 RRC 连接建立在公用信道上 执行者 UE 优先级 5 使用频度 经常 前置条件 C0010 RNC 与 NodeB 之间通信正常 C0020 Uu 口以及 Iub 口的公共传输信道以及相关 资源已经 建立和分配 C0030 UE 处于 NodeB 覆盖范围之内 后置条件 R0010 RRC 连接建立成功 正常过程 SR F 0010 02 N1 N0010 UE 向 RNC 发送 RRC Connection Request 消息 请求建立 RRC 连接 N0020 RNC 决定将 RRC 连接建立在公用信道上 并分配相关 无线资源 N0030 RNC 在 CCCH 上向 UE 发送 RRC Connection Setup 消息 其中指示了给 UE 分配的无线资源 N0040 UE 在公用信道上向 RNC 发送 RRC Connection Setup Complete 消息 整 个过程结束 可选过程 无 异常过程 SR F 0010 02 E1 无法分配无线资源 在正常流程 SR F 0010 02 N1 N0020 之后 E0010 RNC 无法为 UE 分配相关无线资源 E0020 RNC 向 UE 发送 RRC Connection Reject 消息 拒绝 UE 接入 E0030 过程结束 软件需求说明书 Vm n 第 25 页 共 46 页 异常过程 SR F 0010 02 E2 RRC Connection Setup 消息响应超时 在正常过程 SR F 0010 02 N1 N0030 之后 E0010 RNC 在发送 RRC Connection Setup 消息 RRC TIMEOUT 时间后没有接收 到 UE 的 RRC Connection Setup Complete 消息 E0020 RNC 删除为 UE 分配的相关无线资源 E0030 过程结束 特殊需求 无 Example End 4 1 2 需求描述 优先级 使用频度 触发条件 输入 输出 处理 特殊需求 Example Begin 例 1 功能需求 SR PF 0050 服务器登录功能 需求描述 提供一个公共界面 在该公共界面提供登录服务器的功能 优先级 5 使用频度 经常 软件需求说明书 Vm n 第 26 页 共 46 页 触发条件 T0010 启动客户端或登录到另外一台服务器上 输入 I0010 用户名 不超过 20byte 长度的字符串 I0020 密码 不超过 10byte 长度的字符串 输出 O0010 登录结果 成功 失败 超时 处理 P0010 发送登录消息到服务器端 P0020 如果可以和服务器建立通信 则由服务器根据用户名和密码进行安全验证 否则超时后转到 P0030 P0030 显示超时或获得服务器端的验证结果后显示登录是否成功 特殊需求 S0010 在推荐的配置软 硬件环境上 只运行本软件时 软件从 发送登录消息 开始到 得到 成功 或 失败 应答 不能超过 1 秒 Example End Example Begin 例 2 功能需求 SR F 0010 LCCH 分配过程 需求描述 LCCH 分配过程是指手机和基站之间在呼叫发起时或者手机接收到 PCH 的寻呼请求后为了分配用于信令交互而使用的 TCH 频点和时隙而在 SCCH 上进行的消息 交互过程 LCCH 分配过程总是以手机在 SCCH 上发送 LCCH Establish Request 开始该 过程 优先级 5 使用频度 不关心 触发条件 T0010 主站 XXXX 软件收到 CSGBS 的 DSP 的 LCCH Establish Request 消息 输入 I0010 见 RCR STD 28 协议第 4 3 节第 111 页第 1 行到第 181 页最后 1 行的描述 和 DSP 的接口采用内部定义的方式 输出 O0010 见 RCR STD 28 协议第 4 3 节第 111 页第 1 行到第 181 页最后 1 行的描述 空中接口部分的数据格式采用内部定义的方式 处理 主从站的 LCCH 分配过程如图 4 9 所示 软件需求说明书 Vm n 第 27 页 共 46 页 主站 主站与从站 的 通信正常吗 超时 了吗 N o N o P 0 0 7 0 P 0 0 6 0 有空闲 的 T C H 时 隙及T C H 频 点 吗 P 0 0 3 0Y e s N o Y e s P 0 0 4 0 P 0 0 5 0 P 0 0 1 0 Y e s P 0 1 1 0 P 0 0 8 0 P 0 0 9 0 从站 图 4 9 LCCH 分配过程 P0010 主站 XXXX 软件收到 SCCH 的 LCCH Establish Request 消息 P0030 如果有空闲的 TCH 时隙或 TCH 频点 则主站 XXXX 软件将从空闲的 TCH 时隙和频点中选择一个时隙和频点进行分配 并将分配内容通知给 CSGBS 的 DSP CSGBS 的 DSP 将控制射频部分进行 TCH 接收和发送频点的修改 并将 LCCH Assign 消息发送给手机 P0040 主站 XXXX 软件将执行 Service Channel Establish 过程
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!