软件需求工程(四) part A - 编写软件需求规格说明
基本信息
- 课程: 软件需求工程
- 来源: 田浩然上传的资料
- 页数: 52页
- 文件大小: 311.63 KB
核心内容
本文档是软件需求工程课程的第四部分,主题为编写软件需求规格说明(SRS)。
一、谁依赖SRS
软件需求规格说明(SRS)是软件开发中的关键文档,以下各方依赖它:
- 客户、市场部和销售团队 — 了解可交付的产品
- 项目经理 — 基于SRS估算进度、人力和资源
- 开发团队 — 知道要构建什么
- 测试团队 — 用于制定测试计划、用例和流程
- 维护和支撑人员 — 了解产品的各个组成部分
- 文档编写者 — 基于SRS和用户界面设计编写用户手册和帮助屏幕
- 培训人员 — 使用SRS和用户文档开发教育培训材料
- 法律部门 — 确保需求符合适用法律和法规
- 分包商 — 基于SRS工作,可依法依据SRS追责
二、需求规格说明工程方法
采用SRS模板时应遵循的方法:
- 采用SRS模板 — 每个软件开发组织都应定义标准模板,常用IEEE 830-1998 SRS模板
- 确定需求来源 — 追溯每项需求的来源(用例、客户要求、高层系统需求、业务规则、政府法规等)
- 为每项需求注上惟一的标号 — 制定规则为SRS中每项需求提供独立的可识别标号,允许增加、删除和修改
- 记录业务规则 — 业务规则是指产品的操作或使用原则和流程等
- 定义质量属性 — 除功能需求外,还需定义非功能的质量属性(performance, efficiency, reliability, usability等)
三、编写原则
基本格式要求
- 标签化章节、子章节和需求
- 文本右对齐而非两端对齐
- 大量使用空白空间
- 合理使用视觉强调(粗体、下划线、斜体、不同字体)
- 创建目录和索引
- 为所有图表编号并添加标题
- 使用超链接跳转相关章节
需求标注方法
- 序列号法 — 如 UR-9,前缀表示类型,数字唯一不重用
- 层级编号法 — 如 6.1.2,最常见但标签会无限增长
- 层次化文本标签法 — 如 PRINT.CONFIRM.COPIES,结构化、有意义、不受增删改影响
四、IEEE 830 SRS模板
标准模板包含以下章节:
1. 引言
- 1.1 目的 — 标识产品或应用程序
- 1.2 文档约定 — 标准约定、优先级等
- 1.3 预期读者和阅读建议 — 列出不同类型的读者
- 1.4 项目范围 — 简要描述项目边界
- 1.5 参考文献
2. 总体描述
- 2.1 产品视角 — 描述产品的背景和起源
- 2.2 产品功能 — 列出主要功能
- 2.3 用户类和特征 — 识别各类用户及其特征
- 2.4 运行环境 — 描述软硬件环境
- 2.5 设计实现约束 — 技术、工具、编程语言限制
- 2.6 用户文档 — 列出将交付的用户文档组件
- 2.7 假设和依赖 — 不明确假设和项目风险
3. 系统特性
- 描述功能需求的方式:用例、场景、操作模式、用户类、刺激/响应、对象/类等
- 每个特性的结构:
- 描述和优先级
- 刺激/响应序列
- 功能需求
4. 外部接口需求
- 4.1 用户界面 — 逻辑特性、详细设计在分离的UIS中
- 4.2 硬件界面 — 设备类型、数据和控制交互
- 4.3 软件界面 — 与其他软件组件的连接
- 4.4 通信界面 — 通信功能需求、消息格式、安全或加密
5. 非功能性需求
- 5.1 性能需求 — 具体性能需求和 rationale
- 5.4 软件质量属性 — 特殊质量特性
6. 其他需求
- 未涵盖的其他需求
五、用户界面与SRS的关系
缺点:
- 更多设计与解决方案相关,而非纯需求
- 延迟SRS交付
- 增加需求工作量
优点:
- 结合工作原型帮助早期理解
- 协助项目规划和估算(通过功能点计数)
折中方案:包含概念图、草图或选定显示的示意图,但不要求精确实现模型。
关键概念
- SRS (Software Requirements Specification) — 软件需求规格说明
- 需求追溯性 — 每项需求应有唯一标号,便于跟踪变更
- 业务规则 — 产品操作或使用的原则和流程
- 质量属性 — 性能、效率、可靠性、可用性等非功能需求
行动点
- 为项目选择合适的SRS模板(建议使用IEEE 830作为基础)
- 建立需求标注规范(推荐使用层次化文本标签法)
- 确保每项需求有唯一标号和来源追溯
- 明确区分功能需求和非功能需求
- 在SRS中适当包含概念性用户界面示意图