软件需求规格说明书(SRS)是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础。

软件需求规格说明书

国家标准BG/T 8567-2006中,提供了SRS的文档模版和编写指南,其中规定SRS应该包括以下内容:

  1. 范围。本部分包括SRS使用的系统和软件的完整标识,(若适用)包括标识号、标题、缩略词语、版本号、发行号;简述SRS适用的系统和软件的用途,描述系统和软件的一般特性;该书系统开发、运行和维护的历史;标识项目的投资方、需方、用户、承建方和支持机构;标识当前和计划的运行现场;列表出其他有关的文档;该书SRS的用途和内容,并描述与其适用有关的保密性和私密性的要求,说明编写SRS所依据的基线。

  2. 引用文件。列出SRS中引用的所有文档的编号、标题、修订版本和日期,还应标识不能通过正常的供货渠道所获得的所有文档的来源。

  3. 需求。是SRS的主体,可以分为以下项目:所需的状态和方式、需求概述、需求规格、软件配置项能力需求、软件配置项外部接口需求、软件配置项内部接口需求、适应性需求、保密性和私密性需求、软件配置项环境需求、计算机资源需求(包括硬件需求、硬件资源利用需求、软件需求和通信需求)、软件质量因素、设计和实现约束、数据、操作、故障处理、算法说明、有关人员需求、有关培训需求、有关后勤需求、包装需求和其他需求,以及需求的优先次序和关键程度。

  4. 合格性规定。

  5. 需求可追踪性。SRS中每个软件配置项的需求到其设计的系统的需求都是双向可追踪的。

  6. 尚未解决的问题。

  7. 注解。包含背景信息、词汇表、原理等。

  8. 附录

需求验证

需求验证也称为需求确认,其活动是为了确定以下几个方面的内容。

  1. SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征。

  2. SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。

  3. 需求是完整的和高质量的。

  4. 需求的标识在所有地方都是一致的。

  5. 需求为继续进行系统设计、实现和测试提供了足够的基础

在实际工作中,一般通过需求评审和需求测试工作来对需求进行验证。

UML

UML是一种定义良好、易于表达、功能强大普遍使用的建模语言,它融入了软件工程领域的新思想、新方法、新技术,它的作用域不限于支持OOA和OOD,还支持从需求分析开始的软件开发的全过程。

从总体上来看,UML的结构包括构造块、规则、和公共机制三个部分。

  • 构造块。UML有三种基本的构造块,分别是事物、关系和图。事物是UML的重要组成部分,关系把事物紧密联系在一起,图是多个相互关联的事物集合。

  • 规则。是构造块如何放在一起的规定,包括为构造块命名;给一个名字以特定含义的语境,即范围;运行或模拟动态模型的含义是什么,即执行。

  • 公共机制。是指达到特定目标的公告UML方法,主要包括规格说明、修饰、公告分类和扩展机制。

UML中的事物

UML中的事物也称为建模元素,包括结构事物、行为事物(也称为动作事物)、分组事物和注释事物(也称为注解事物)。这些事物是UML模型中最基本的OO构造块。

  • 结构事物:结构事务在模型中属于最静态的部分,代表概念上或物理上的元素。UML有7种结构事务,分别是类、接口、协作、用例、活动类、构建和节点。

  • 行为事物:行为事物是UML模型中的动态部分,代表时间和空间上的动作。UML有两种主要的行为事物->交互、状态机

  • 分组事务:分组事务是UML模型中组织的部分,UML只有一种分组事务,称为包。包是一种将有组织的元素分组的机制。与构件不同的是,包纯粹是一种概念上的事务,只存在于开发阶段,而构件可以存在于系统运行阶段。

  • 注释事务:是UML模型的解释部分

UML中的关系

UML用关系把实物结合在一起,主要有下列四种关系

  1. 依赖:依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。

  2. 关联:关联是描述一组对象之间连接的结构关系

  3. 泛化:泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象

  4. 实现:实现是类之间的语义关系,其中一个类置顶了由另一个类保证执行的契约。

UML2.0种的图

包括14种,分别列举如下

  • 类图:类图描述一组类、接口、写作和它们之间的关系。

  • 对象图:对象图描述一组对象及它们之间的关系,在类图中所建立的事务实例的静态快照。

  • 构件图:描述一个封装的类和它的接口、端口、以及由内嵌的构件和连接件构成的内部结构。

  • 组合结构图:组合结构图描述结构化类的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容。

  • 用例图:描述一组用例、参与者及它们之间的关系。用例图给出系统的静态用例视图。

  • 顺序图:顺序图是一种交互图,交互图展示了一种交互,它由一组对象或者参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图,顺序图是强调消息的时间次序的交互图。

  • 通信图:通信图也是一种交互图,它强调收发消息的对象或参与者的结构组织,顺序图和通信图表达了类似的基本概念,但它们强调的概念不同,顺序图强调的是时序,通信图强调的是对象之间的组织结构。

  • 定时图:也是一种交互图,强调小时跨域不同对象或者参与者的实际时间,而不仅仅只是关心消息的相对顺序。

  • 状态图:状态图描述一个状态机,它由状态、转移、事件、和活动组成。状态图给出了对象的动态视图。

  • 活动图:活动图讲进程或其他计算结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图,并强调对象见的控制流程。

  • 部署图:描述对运行时的处理节点及在其中生存的构件配置。

  • 制品图:描述计算机中一个系统的物理结构。包括文件、数据库、类似的物理比特集合

  • 包图:概述由模型本身分解而成的组织单元,以及它们之间的依赖关系。

  • 交互概念图:是活动图和顺序图的混合物。

UML视图

UML对系统架构的定义是系统的组成结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。具体来说,就是指以下5个系统视图

  1. 逻辑视图:逻辑视图也称为设计视图,表示了设计模型中在架构方面具有重要的意义部分,即类、子系统、包和用例实现的子集。

  2. 进程试图:是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构

  3. 实现视图:实现视图对组成基于系统的物理代码的文件和构件进行建模。

  4. 部署视图:把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构

  5. 用例视图:用例视图是最基本的需求分析模型。

No.7软件需求规格说明书及UML相关推荐

  1. 软件需求规格说明书通用模版_通用需求挑战和机遇

    软件需求规格说明书通用模版 When developing applications there will be requirements that are needed on more than o ...

  2. 【软件测试】导致软件缺陷的最大原因是软件需求规格说明书

    导致软件缺陷的最大原因是软件需求规格说明书. 因为软件缺陷产生的原因有很多,典型的原因如下: 软件本身的复杂性 开发人员的问题 需求的变化 进度的压力 对文档不重视 沟通不畅 偏差的累积 各种来源导致 ...

  3. 软件需求工程 高校教学平台 软件需求规格说明书 part 1 (重点!!!)

    点击查看 软件需求工程 高校教学平台 卷首语 文章目录 引言 编写目的 项目背景 预期的读者和阅读建议 预期读者 阅读建议 参考资料 总体描述 产品基本信息 产品前景 用户类及其特征 产品功能概述 用 ...

  4. 如何写《软件需求规格说明书》

    转载自:https://www.jianshu.com/p/f9bcf52f4321 一.任务突然从天而降 自己维护一个终端一年多,今天主管突然要求补写一下<软件需求规格说明书>,有些傻眼 ...

  5. 软件需求规格说明书--文档模板

                  { 产品名称} 软件需求规格说明书           编 写 人 : 编写日期 :     年     月     日 文档修订记录 版本编号 说明:如形成文件.变更内容 ...

  6. 一份合格的软件需求规格说明书的要求

    合格的软件需求规格说明书 软件需求规格说明作为产品需求的最终成果必须具有综合性:必须包括所有的需求.开发者和客户不能作任何假设.如果任何所期望的功能或非功能需求未写入软件需求规格说明那么它将不能作为协 ...

  7. [文档] 软件需求规格说明书

    软件需求规格说明书 1 范围 1.1 标识 本条应描述本文档所适用系统和软件的完整标识,适用时,包括其标识号.名称.缩略名.版本号 和发布号. 1.2 系统概述 本条应概述文档适用的系统和软件的用途: ...

  8. 软件需求规格说明书——学生成绩查询系统

    软件需求规格说明书--学生成绩查询系统 --------------------------------------------- ---------------------------------- ...

  9. 软件测试(测试用例、配置管理、bug、软件需求规格说明书、需求)

    什么是软件测试 软件测试是不是就是找bug? 软件测试就是证明软件不存在错误的过程. 软件测试就是为了证明程序能够正确运行. 测试与调试的区别: 目的不同. 测试的任务是发现程序中的缺陷. 调试的任务 ...

最新文章

  1. error C2664: “wcscpy”: 不能将参数 1 从“LPSTR”转换为“wchar_t *”
  2. DCMTK:测试DcmSCP和DcmSCU类
  3. 基于注解进行bean的装配
  4. Gartner:全行业投入人工智能,计算机视觉占比最高
  5. Java数据库篇4——表的约束
  6. 【模型加速】关于模型加速的总结
  7. e-mobile帐号状态存在异常_企业微信添加好友提示”操作异常”怎么办?
  8. 开源势不可挡 IBM Power Systems Linux中心成立
  9. oracle存储一个数字格式,Oracle根本数据类型存储格式研究(二)—数字类型
  10. 编译ffmpeg、SDL、x264开源库 for ubuntu
  11. IT项目管理之系统设计
  12. 百度地图api中文乱码
  13. 荣耀XIO升级鸿蒙,距断供不到10天 华为大招来了:不止鸿蒙
  14. python柱形图颜色_pyplot/matplotlib条形图,填充颜色取决于值
  15. 数学史上最重要的女性:埃米·诺特
  16. 数据库 和 数据仓库
  17. 《用户行为画像》学习(1-4章)
  18. 前端工程师的摸鱼日常(16)
  19. win10 风格的 OA 管理系统 skyeye 更新,新增项目模块
  20. A ResourcePool could not acquire a resource from its primary factory or source异常解决

热门文章

  1. 如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表
  2. Chart.js使用教程,画折线图实例
  3. mysql需要费用_mysql到底是不是免费的
  4. 【设计模式】之抽象工厂模式
  5. qcqa是什么职位_qa是什么意思工作职责(qa和qc哪个工资更高)
  6. 要事第一:最新的时间管理方法和实用的时间控制技巧
  7. 位与,位或,异或,取反
  8. 综合评价方法(一)------基础知识
  9. 爱因斯坦都不敢想象, 我们真的探测到引力波
  10. 百度李彦宏遭现场泼水,百度不再是百度,百度依然是百度