附录A软件需求分析报告文档模板1.引言.......................................................31.1编写目的..................................................31.2项目风险..................................................31.3文档约定..................................................41.4预期读者和阅读建议........................................41.5产品范围..................................................51.6参考文献..................................................52.综合描述....................................................62.1产品的状况................................................62.2产品的功能................................................72.3用户类和特性..............................................72.4运行环境..................................................82.5设计和实现上的限制........................................82.6假设和约束(依赖)..........................................93.外部接口需求...............................................103.1用户界面.................................................103.2硬件接口.................................................123.3软件接口.................................................123.4通讯接口.................................................134.系统功能需求...............................................144.1说明和优先级.............................................154.2激励/响应序列...........................................154.3输入/输出数据...........................................155.其它非功能需求.............................................165.1性能需求.................................................165.2安全措施需求.............................................175.3安全性需求...............................................175.4软件质量属性.............................................175.5业务规则.................................................175.6用户文档.................................................186.词汇表.....................................................187.数据定义...................................................198.分析模型...................................................219.待定问题列表...............................................211.引言引言是对这份软件产品需求分析报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。1.1编写目的说明这份软件产品需求分析报告是为哪个软件产品编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件产品需求分析报告详尽说明了该软件产品的需求规格,包括修正和(或)发行版本号,从而对该软件产品进行准确的定义。如果这份软件产品需求分析报告只与整个系统的某一部分有关系,那么只定义软件产品需求分析报告中说明的那个部分或子系统。1.2项目风险具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:●任务提出者;●软件开发者;●产品使用者。1.3文档约定描述编写文档时所采用的标准(如果有标准的话),或者各种排版约定。排版约定应该包括:●正文风格;●提示方式;●重要符号;也应该说明高层次需求是否可以被其所有细化的需求所继承,或者每个需求陈述是否都有其自己的优先级。1.4预期读者和阅读建议列举本软件产品需求分析报告所针对的各种不同的预期读者,例如,可能包括:●用户;●开发人员;●项目经理;●营销人员;●测试人员;●文档编写入员。并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。1.5产品范围说明该软件产品及其开发目的的简短描述,包括利益和目标。把软件产品开发与企业目标,或者业务策略相联系。描述产品范围时需注意,可以参考项目视图和范围文档,但是不能将其内容复制到这里。1.6参考文献列举编写软件产品需求分析报告时所用到的参考文献及资料,可能包括:●本项目的合同书;●上级机关有关本项目的批文;●本项目已经批准的计划任务书;●用户界面风格指导;●开发本项目时所要用到的标淮;●系统规格需求说明;●使用实例文档;●属于本项目的其它己发表文件;●本软件产品需求分析报告中所引用的文件、资料;●相关软件产品需求分析报告;为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:●标题名称;●作者或者合同签约者;●文件编号或者版本号;●发表日期或者签约日期;●出版单位或者资料来源。2.综合描述这一部分概述了正在定义的软件产品的作用范围以及该软件产品所运行的环境、使用该软件产品的用户、对该软件产品己知的限制、有关该软件产品的假设和依赖。2.1产品的状况描述了在软件产品需求分析报告中所定义的软件产品的背景和起源。说明了该软件产品是否属于下列情况:●是否是产品系列中的下一成员;●是否是成熟产品所改进的下一代产品;●是否是现有应用软件的替代品(升级产品);●是否是一个新型的、自主型的产品。如果该软件产品需求分析报告定义的软件系统是:●大系统的一个组成部分;●与其它系统和其它机构之间存在基本的相互关系。那么必须说明软件产品需求分析报告定义的这部分软件是怎样与整个大系统相关联的,或者(同时)说明相互关系的存在形式,并且要定义出两者之间的全部接口。2.2产品的功能因为将在需求分析报告的第4部分中详细描述软件产品的功能,所以在此只需要概略地总结。仅从业务层面陈述本软件产品所应具有的主要功能,在描述功能时应该针对每一项需求准确地描述其各项规格说明。如果存在引起误解的可能,在陈述本软件产品主要功能的作用领域时,也需要对应陈述本软件产品的非作用领域,以利读者理解本软件产品。为了很好地组织产品功能,使每个读者都容易理解,可以采用列表的方法给出。也可以采用图形方式,将主要的需求分组以及它们之间的联系使用数据流程图的顶层图或类图进行表示,这种表示方法是很有用的。参考用户当前管理组织构架,了解各个机构的主要职能,将有助于陈述软件产品的主要功能。2.3用户类和特性确定有可能使用该软件产品的不同用户类,并且描述它们相关的特征。往往有一些软件需求,只与特定的用户类有关。描述时,应该将该软件产品的重要用户类与非重要用户类区分开。用户不一定是软件产品的直接使用者,通过报表、应用程序接口、系统硬件接口得到软件产品的数据和服务的人、或者机构也有他们的需求。所以,应该将这些外部需求视为通过报表、应用程序接口、系统硬件接口附加给软件产品的附加用户类。2.4运行环境描述了本软件的运行环境,一般包括:●硬件平台;●操作系统和版本;●支撑环境(例如:数据库等)和版本;●其它与该软件有关的软件组件;●与该软件共存的应用程序。2.5设计和实现上的限制确定影响开发人员自由选择的问题,并且说明这些问题为什么成为一种限制。可能的限制包括下列内容:●必须使用的特定技术、工具、编程语言和数据库;●避免使用的特定技术、工具、编程语言和数据库;●要求遵循的开发规范和标准例如,如果由客户的公司或者第三方公司负责软件维护,就必须定义转包者所使用的设计符号表示和编码标准;●企业策略的限制;●政府法规的限制;●工业标准的限制;●硬件的限制例如,定时需求或存储器限制;●数据转换格式标淮的限制。2.6假设和约束(依赖)列举出对软件产品需求分析报告中,影响需求陈述的假设因素(与己知因素相对立)。如果这些假设因素不正确、不一致或者被修改,就会使软件产品开发项目受到影响。这些假设的因素可能包括:●计划使用的商业组件,或者其它软件中的某个部件;●假定产品中某个用户界面将符合一个特殊的设计约定;●有关本软件用户的若干假定(例如:假定用户会熟练使用SQL语言。);●有关本软件开发工作的若干假定(例如:用户承诺的优惠、方便、上级部门给予的特殊政策和支持等。);●有关本软件运行环境的一些问题;此外,确定本软件开发项目对外部约束因素所存在的依赖。有关的约束可能包括:●工期约束;●经费约束;●人员约束;●设备约束;●地理位置约束;●其它有关项目约束;3.外部接口需求通过本节描述可以确定,保证软件产品能和外部组件正确连接的需求。关联图仅能表示高层抽象的外部接口,必须对接口数据和外部组件进行详细描述,并且写入数据定义中。如果产品的不同部分有不同的外部接口,那么应该把这些外部接口的全部详细需求并入到这一部分实例中。注意:必须将附加用户类的特征与外部接口需求加以区分,附加用户类的特征描述的是通过接口取得软件产品的数据和服务的人的需求;而外部接口需求描述的是接口本身的需求。3.1用户界面陈述需要使用在用户界面上的软件组件,描述每一个用户界面的逻辑特征。必须注意,这里需要描述的是用户界面的逻辑特征,而不是用户界面。以下是可能包括的一些特征:●将要采用的图形用户界面(GUl)标准或者产品系列的风格;●有关屏幕布局或者解决方案的限制;●将要使用在每一个屏幕(图形用户界面)上的软件组件,可能包括:选单;标准按钮;导航链接;各种功能组件;消息栏;●快捷键;●各种显示格式的规定,可能包括:不同情况下文字的对齐方式;不同情况下数字的表现格式与对齐方式日期的表现方法与格式;计时方法与时间格式;等等。●错误信息显示标准;对于用户界面的细节,例如:一个特定对话框的布局,应该写入具体的用户界面设计说明中,而不能写入软件需求规格说明中。如果采用现成的、合适的用户界面设计规范(标准),或者另文描述,可以在这里直接说明,并且将其加入参考文献。3.2硬件接口描述待开发的软件产品与系统硬件接口的特征,若有多个硬件接口,则必须全都描述。接口特征的描述内容可能包括:●支持的硬件类型;●软、硬件