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. 需求分析说明书: 这份文档旨在全面描述软件系统的目标和预期功能,通常包括以下部分:项目背景、问题定义、项目目标、功能需求、非功能...
### 软件工程需求分析-可行性报告 #### 需求分析概述 需求分析是软件开发生命周期中的关键阶段之一,其主要目标是明确系统必须实现的功能以及这些功能如何满足用户的需求。在这个阶段,开发团队需要与用户进行密切...
- **软件需求规格说明书**:详细描述软件功能需求。 4. **需求验证** - **审查需求文档**:确保文档的准确性和完整性。 - **编写测试用例**:用于验证需求是否被正确实现。 - **编写用户手册**:帮助用户理解...
### (软件工程)需求规格说明书知识点详解 #### 一、引言 1. **目的**: - 文档旨在明确地定义小型图书资料管理系统(MiniLibrary V1.0)的功能需求与非功能性需求。 - 目标读者群体包括项目的客户、开发团队...
软件需求规格说明书是软件工程中不可或缺的一部分,它为软件开发提供了明确的指南和指南。下面是对软件需求规格说明书的详细介绍: 一、软件需求规格说明书的概念 软件需求规格说明书是对软件需求的详细描述,它...
《软件工程需求分析说明书》是软件开发过程中的关键文档,旨在明确、全面地定义软件系统应具备的功能和非功能需求,以便为后续的设计、开发、测试和维护提供准确的指导。在007网吧管理系统项目的背景下,这篇需求...
《软件工程:软件需求规格说明书》 在软件开发过程中,软件需求规格说明书是至关重要的一步,它是项目开始的基石,定义了系统预期的功能、性能、界面以及与其他系统的交互方式。对于初学者而言,理解并掌握如何编写...
"地铁售票管理系统需求规格说明书--软件工程" 软件需求规格说明书是软件开发过程中的一份重要文件,用于描述软件的功能和非功能需求。《车站售票管理系统需求规格说明书》的目的是明确《车站售票管理系统》中各项...
软件工程需求规格说明书样本 软件工程需求规格说明书是软件项目中一个非常重要的文档,它详细地描述了软件系统的需求规格,明确了软件系统的功能、性能和界面等方面的要求。下面是根据给定的文件信息,提取的相关...
在这个阶段,软件工程师需要明确软件系统的目标,理解用户的需求,并将其转化为清晰的文档,即软件需求规格说明书。 1. **需求分析的任务与步骤**: - **需求分析的任务**主要是确定系统必须实现的功能、性能以及...
下面是对软件工程需求规格说明书示例样本的分析和知识点总结: 一、导言 * 软件工程需求规格说明书的目的:定义软件系统的需求规格和技术规范,以确保软件系统满足用户的需求和期望。 * 软件工程需求规格说明书的...
在软件开发过程中,详细设计说明书、需求规格说明书和测试计划是至关重要的文档,它们构成了软件工程的基础框架。这些文档不仅规范了开发流程,也确保了团队间的有效沟通和项目的顺利进行。 1. **详细设计说明书**...
《软件工程之需求规格说明书实训报告》探讨的是在IT领域中如何通过软件工程的方法来创建一个图书管理系统。这篇报告详细阐述了需求规格说明书的作用、背景、定义、目标、假定与约束,以及对功能和性能的具体规定。...
软件工程 校园兼职 需求报告说明书 在软件工程领域中,需求报告是一个非常重要的文档,它详细描述了软件项目的需求、目标、范围、限制和假设。需求报告的编写是软件开发的第一步,决定了软件项目的质量和方向。 ...
软件需求规格说明书是软件开发过程中的重要文档,它详尽地描述了软件产品必须实现的功能、性能、接口、约束和设计限制等需求,为软件设计、编码、测试和项目管理提供依据。本模板旨在提供一个详细的指导框架,帮助...
【软件需求规格说明书】是软件开发过程中的关键文档,它详细定义了软件产品需要实现的功能、性能、安全性和其他质量属性。以下是对该文档各部分的详细解释: 1. **引言** - **目的**:说明文档创建的原因,旨在为...
### 社区管理系统需求规格说明书知识点解析 #### 一、引言 - **目的**:本文档旨在定义社区管理系统(CMS)的总体要求,作为用户与软件开发人员沟通的基础。它提供了性能要求、初步设计以及对用户的影响信息,用作...