a.引言

   引言提出了对软件需求规格说明的纵览,这有助于读者理解文档如何编写并且如何阅读和解释。

a . 1目的

   对产品进行定义,在该文档中详尽说明了这个产品的软件需求,包括修正或发行版本号。如果这个软件需求规格说明只与整个系统的一部分有关系,那么就只定义文档中说明的部分或子系统。

a.2文档约定

描述编写文档时所采用的标准或排版约定,包括正文风格、提示区或重要符号。

a.3预期的读者和阅读建议

   列举了软件需求规格说明所针对的不同读者,例如开发人员、项目经理、营销人员、用户、测试人员或文档的编写人员。描述了文档中剩余部分的内容及其组织结构。提出了最适合于每一类型读者阅读文档的建议。

a.4产品的范围

   提供了对指定的软件及其目的的简短描述,包括利益和目标。把软件与企业目标或业务策略相联系。可以参考项目视图和范围文档而不是将其内容复制到这里。

a.5参考文献

   列举了编写软件需求规格说明时所参考的资料或其它资源。这可能包括用户界面风格指导、合同、标准、系统需求规格说明、使用实例文档,或相关产品的软件需求规格说明。

b.综合描述

   这一部分概述了正在定义的产品以及它所运行的环境、使用产品的用户和已知的限制、假设和依赖。

b.1产品的前景

   描述了软件需求规格说明中所定义的产品的背景和起源。说明了该产品是否是产品系列中的下一成员,是否是成熟产品所改进的下一代产品、是否是现有应用程序的替代品,或者是否是一个新型的、自含型产品。

b.2产品的功能

概述了产品所具有的主要功能。其详细内容将在d中描述,所以在此只需要概略地总结。很好地组织产品的功能,使每个读者都易于理解。

b.3 用户类和特征

确定你觉得可能使用该产品的不同用户类并描述它们相关的特征。有一些需求可能只与特定的用户类相关。

b.4运行环境

   描述了软件的运行环境,包括硬件平台、操作系统和版本,还有其它的软件组件或与其共存的应用程序。

b.5  设计和实现上的限制

   确定影响开发人员自由选择的问题,并说明这些问题为什么成为一种限制。

b.6假设和依赖

   列举出在对软件需求规格说明中影响需求陈述的假设因素(与已知因素相对立)。这可能包括你打算要用的商业组件或有关开发或运行环境的问题。你可能认为产品将符合一个特殊的用户界面设计约定,但是另一个S R S读者却可能不这样认为。如果这些假设不正确、不一致或被更改,就会使项目受到影响。此外,确定项目对外部因素存在的依赖。例如,如果你打算把其它项目开发的组件集成到系统中,那么你就要依赖那个项目按时提供正确的操作组件。如果这些依赖已经记录到其它文档(例如项目计划)中了,那么在此就可以参考其它文档。  

c. 外部接口需求

   利用本节来确定可以保证新产品与外部组件正确连接的需求。关联图表示了高层抽象的外部接。需要把对接口数据和控制组件的详细描述写入数据字典中。如果产品的不同部分有不同的外部接口,那么应把这些外部接口的详细需求并入到这一部分的实例中。

c.1 用户界面

   陈述所需要的用户界面的软件组件。描述每个用户界面的逻辑特征。而对于用户界面的细节,例如特定对话框的布局,应该写入一个独立的用户界面规格说明中,而不能写入软件需求规格说明中。

c.2硬件接口

   描述系统中软件和硬件每一接口的特征。这种描述可能包括支持的硬件类型、软硬件之间交流的数据和控制信息的性质以及所使用的通信协议。

c.3软件接口

   描述该产品与其它外部组件(由名字和版本识别)的连接,包括数据库、操作系统、工具、库和集成的商业组件。明确并描述在软件组件之间交换数据或消息的目的。描述所需要的服务以及内部组件通信的性质。确定将在组件之间共享的数据。

c.4通信接口

   描述与产品所使用的通信功能相关的需求,包括电子邮件、We b浏览器、网络通信标准或协议及电子表格等等。定义了相关的消息格式。规定通信安全或加密问题、数据传输速率和同步通信机制。

d.系统特性

d.1说明和优先级

   提出了对该系统特性的简短说明并指出该特性的优先级是高、中,还是低。或者你还可以包括对特定优先级部分的评价,例如利益、损失、费用和风险,其相对优先等级可以从1(低)到9(高)。

d.2激励/响应序列

   列出输入激励(用户动作、来自外部设备的信号或其它触发器)和定义这一特性行为的系统响应序列。这些序列将与使用实例相关的对话元素相对应。

d.3功能需求

   详列出与该特性相关的详细功能需求。这些是必须提交给用户的软件功能,使用户可以使用所提供的特性执行服务或者使用所指定的使用实例执行任务。描述产品如何响应可预知的出错条件或者非法输入或动作。就像本章开头所描述的那样,你必须唯一地标识每个需求。

e.其它非功能需求

   这部分列举出了所有非功能需求,如产品的易用程度如何,执行速度如何,可靠性如何,当发生异常情况时,系统如何处理,而不是外部接口需求和限制。

e.1性能需求

   阐述了不同的应用领域对产品性能的需求,并解释它们的原理以帮助开发人员作出合理的设计选择。确定相互合作的用户数或者所支持的操作、响应时间以及与实时系统的时间关系。你还可以在这里定义容量需求,例如存储器和磁盘空间的需求或者存储在数据库中表的最大行数。尽可能详细地确定性能需求。可能需要针对每个功能需求或特性分别陈述其性能需求,而不是把它们都集中在一起陈述。

e.2安全设施需求

   详尽陈述与产品使用过程中可能发生的损失、破坏或危害相关的需求。定义必须采取的安全保护或动作,还有那些预防的潜在的危险动作。明确产品必须遵从的安全标准、策略或规则。

e.3安全性需求

   详尽陈述与系统安全性、完整性或与私人问题相关的需求,这些问题将会影响到产品的使用和产品所创建或使用的数据的保护。定义用户身份确认或授权需求。明确产品必须满足的安全性或保密性策略。

e.4软件质量属性

   详尽陈述与客户或开发人员至关重要的其它产品质量特性。这些特性必须是确定、定量的并在可能时是可验证的。至少应指明不同属性的相对侧重点,例如易用程度优于易学程度,或者可移植性优于有效性。

e.5业务规则

   列举出有关产品的所有操作规则,例如什么人在特定环境下可以进行何种操作。这些本身不是功能需求,但它们可以暗示某些功能需求执行这些规则。

e.6 用户文档

   列举出将与软件一同发行的用户文档部分,例如,用户手册、在线帮助和教程。明确所有已知的用户文档的交付格式或标准。

f. 其它需求

   定义在软件需求规格说明的其它部分未出现的需求,例如国际化需求或法律上的需求。你还可以增加有关操作、管理和维护部分来完善产品安装、配置、启动和关闭、修复和容错,以及登录和监控操作等方面的需求。

附录A:词汇表

  定义所有必要的术语,以便读者可以正确地解释软件需求规格说明,包括词头和缩写。你可能希望为整个公司创建一张跨越多项项目的词汇表,并且只包括特定于单一项目的软件需求规格说明中的术语。

附录B :分析模型

  这个可选部分包括或涉及到相关的分析模型的位置,例如数据流程图、类图、状态转换图或实体-关系图。

附录C:待确定问题的列表

  1)编辑一张在软件需求规格说明中待确定问题的列表,其中每一表项都是编上号的,以便于跟踪调查。

  2)指明需求来源:指明需求的来源为了让所有项目风险承担者明白需求规格说明书中为何提供这些功能需求,要都能追溯每项需求的来源,这可能是一种使用实例或其它客户要求,也可能是某项更高层系统需求、业务规范、政府法规、标准或别的外部来源。

3)为每项需求注上标号:为了满足软件需求规格说明的可跟踪性和可修改性的质量标准,必须唯一确定每个软件需求。为每项需求注上标号制定一种惯例来为需求规格说明书中的每项需求提供一个独立的可识别的标号或记号。这种惯例应当很健全,允许增加、删除和修改。作了标号的需求使得需求能被跟踪,记录需求变更并为需求状态和变更活动建立度量。需求标识方法有序列号;层次化编码;使用"待确定"(to be determined, TBD)符号等。

   4)记录业务规范:是指关于产品的操作原则,比如谁能在什么情况下采取什么动作。将这些编写成需求规格说明书中的一个独立部分,或一独立的业务规范文档。某些业务规范将引出相应的功能需求;当然这些需求也应能追溯相应业务规范。

  5)创建需求跟踪能力矩阵:建立一个矩阵把每项需求与实现、测试它的设计和代码部分联系起来。这样的需求跟踪能力矩阵同时也把功能需求和高层的需求及其它相关需求联系起来了。在开发过程中建立这个矩阵,而不要等到最后才去补建。

  这里我们还要介绍需求规格说明书中设计阶段,用到的图形模型--数据字典、数据流图、数据流图、状态转换图、对话图和类图。

  数据字典:一个定义应用程序中使用的所有数据元素和结构的含义、类型、数据大小、格式、度量单位、精度以及允许取值范围的共享仓库。数据字典的维护独立于软件需求规格说明,并且在产品的开发和维护的任何阶段,各个风险承担者都可以访问数据字典。它定义了原数据元素、组成结构体的复杂数据元素、重复的数据项、一个数据项的枚举值以及可选的数据项。

  数据流图:是结构化系统分析的基本工具。一个数据流图确定了系统的转化过程、系统所操纵的数据或物质的收集(存储),还有过程、存储、外部世界之间的数据流或物质流。数据流模型把层次分解方法运用到系统分析上,这种方法很适用于事务处理系统和其它功能密集型应用程序。

  数据流图:描绘了系统的数据关系。分析实体联系图有助于对业务或系统数据组成的理解和交互,并暗示产品将有必要包含一个数据库。相反,当你在系统设计阶段建立实体联系图时,通常要定义系统数据库的物理结构。

  状态转换图:实时系统和过程控制应用程序可以在任何给定的时间内以有限的状态存在。当满足所定义的标准时,状态就会发生改变,例如在特定条件下,接收到一个特定的输入激励。这样的系统是有限状态机的例子。大多数软件系统需要一些状态建模或分析,就像大多数系统涉及到转换过程、数据实体和业务对象。

  对话图:在许多应用程序中,用户界面可以看作是一个有限状态机。在任何情况下仅有一个对话元素(例如一个菜单,工作区,行提示符或对话框)对用户输入是可用的。在激活的输入区中,用户根据他所采取的活动,可以导航到有限个其它对话元素。因此,许多用户界面可以用状态转换图中的一种称为对话图来建模。对话图描绘了系统中的对话元素和它们之间的导航连接,但它没有揭示具体的屏幕设计。

  类图:面向对象的软件开发优于结构化分析和设计,并且它运用于许多项目的设计中,从而产生了面向对象分析、设计和编程的域。类图是用图形方式叙述面向对象分析所确定的类以及它们之间的关系。

软件工程需求分析-需求规格说明书相关推荐

  1. 【软件工程】需求规格说明书

    文章目录 1. 引言 1.1. 编写目的 1.2. 背景 1.3. 名词术语定义 1.4. 参考资料 2. 项目概述 2.1. 项目目标 2.2. 用户特点 2.3. 假定与约束 3. 需求分析建模 ...

  2. 软件工程——需求分析(生存周期),需求规格说明书,数据流图

    目录 需求分析的地位 结束的标志是什么? 需求分析的过程有哪些? 数据流图 总结 在前面我们进行了项目的软件计划,完成了可行性研究报告,知道了要做什么的问题,而下一步,我们就需要进一步的了解项目具体要 ...

  3. 需求分析怎么写:Volere版需求规格说明书

    Atlantic System Guild公司所提供的Volere需求过程与软件需求规格说明书模板则充分利用了现代软件工程思想与技术,是一个十分实用.完善的SRS模板.陪学网<需求分析课> ...

  4. JavaWeb项目-快递代领-需求规格说明书(一)-软件工程-小组项目

    快递代领网站-需求规格说明书 1.系统目的 在这个互联网+时代,人们购物的方式愈发多样,最为流行的购物方式当属网上购物,但快递的货物有时并不会直接交付到买家手上,而是寄存在快递寄存点,买家需要亲自上门 ...

  5. python需求分析说明书_软件需求规格说明书范例

    本软件需求规格说明书范例对应的软件测试计划请参照: 一. 引言 1.1 定位与目标 计算机技术高度发达的今天,利用信息技术对大量复杂的信息进行有效的管理成为一种普遍而实用的手段.一方面,这极大的减少了 ...

  6. 软件工程-团队项目-班级网站软件需求规格说明书

    目录 一. 引言... 2 1.1 定位与目标... 2 1.2 对象... 2 1.3 软件需求分析理论... 2 1.4 软件需求分析目标... 3 二. 需求概述... 4 2.1 项目背景.. ...

  7. 需求分析说明书和需求规格说明书的区别

    区别: (一)面向对象上不同: 需求分析说明书往往面向业务人员.用户        需求规格说明书往往面向设计.开发人员.   (二)生成阶段不同: 一般先有需求分析说明书,后有需求规格说明书,   ...

  8. 项目、系统开发中的需求分析说明书和需求规格说明书的区别

    项目组成员在针对要开发的系统做需求调研后,就要编写对应的需求说明书. 作为软件工程师,你就得知道需求分析说明书和需求规格说明书的区别,以期在正确的时候编写正确的需求文档. 两者有何不同: (1)面向对 ...

  9. 如何写好需求分析:需求规格说明书(ISO标准版)

    转自http://blog.sina.com.cn/s/blog_4c4eebe901000c6h.html 当需求调查.分析工作告一段落时,你就需要将这些需求进行规格化描述,整理成文,即软件需求规格 ...

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

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

最新文章

  1. 【Python】一文读懂Python正则表达式常用用法
  2. SMTP 通过 ssh 通道发送垃圾邮件
  3. 前端那些事之原生js实现jquery常用方法
  4. 数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)
  5. mysql使用jtable_jtable 的简单使用
  6. 卖萌屋新闻联播栏目,倾情上线~
  7. 使用pickle模块打包停用词表,加快处理文本数据的速度
  8. 雷军超燃演讲:人生最后一次创业,押上全部战绩和信誉造车,小米亏得起!...
  9. ubuntu snappy 记事
  10. Docker 安装 Redis 并配置 Docker 方式的 phpRedisAdmin
  11. 1分钟获取上千ID,暴力破解、端口扫描、拖库攻击如何防范
  12. shader 重建世界坐标
  13. 中央预算单位银行账户管理系统单机版2021--运行环境配置指南
  14. 免费的个人网路监控软体 NetLimiter 2 Monitor
  15. 以影像技术为“桨“,荣耀如何讲好高端“新故事”?
  16. ​抖音怎么养号容易热门,一机两卡养抖音号可以吗
  17. 淘宝彩蛋--CSS3、Console、web彩蛋指南
  18. Linux ❉ sudo 命令
  19. 在线网页版鸡乐盒html源码
  20. 清除浮动的常用的几种方法

热门文章

  1. 烽火FSU设备通过中国铁塔测试
  2. GCP Marker生成的刺点文件导入Pix4D教程
  3. STM32工程更换芯片方法
  4. 计算机绘图课程选用课本,机械制图课程学习指南.doc
  5. 区块链之门 | Reach on Conflux 2021 黑客松开赛
  6. 电子技术部下半学期第一次培训
  7. 前端实现打印页面的指定内容 + 快递面单的模板
  8. html表单与表格,HTML--表格与表单(示例代码)
  9. php后台发送qq消息,WebQQ消息发送功能
  10. iPhone大小的盒子服务器Cubieboard