《软件需求分析》实验指导书2013年9月中文软件需求分析课程编号5011011093课程SoftwareRequirement名称英文适用专业软件工程Analysis总学时32理论教学学时28课4内学分2实践教学学时课8外执笔者刘冰编写日期2012年3月《需求工程—软件建模与分析》(骆斌主编、丁二讲授玉编著,高等教育出版社,2009年4月第一版,ISBN978-7-04-026295-7)教材《软件需求》(第2版)((美)KarlE.Wiegers著,参考刘伟琴、刘洪涛译,清华大学出版社、2004年11月第1版,ISBN978-7-302-09834-8)1目录一、实验目的…………………………………………………………….3二、实验的软硬件环境………………………………………………….3三、实验要求与任务…………………………………………………….3四、实验步骤…………………………………………………………….3五、《软件需求规格说明书》内容、格式要求………………………..4六、思考题………………………………………………………………6【附录一】软件需求规格说明模板…………………………..………..7【附录二】评分标准…………………………..………………………13【附录三】前景与范围文档写作范例………………………………..14【附录四】需求文档完整范例…………………………………………20【附录五】软件需求规格说明书(样例一)…………………………..40【附录六】软件需求规格说明书(样例二)……………………………522实验名称:“××管理信息系统”软件需求规格说明书的编写一、实验目的需求开发的最终成果是:客户和开发小组对将要开发的产品达成一致的协议。这一协议综合了业务需求、用户需求和软件功能需求。从前面实验中所得出的一些分析文档中,我们可以知道:项目视图和范围文档包含了业务需求,而使用实例文档包含了用户需求。我们还必须编写从使用实例派生出的功能需求文档,还要编写产品的非功能需求文档,包括质量属性和外部接口需求。至此,我们综合前面的相关分析结果,来进行需求说明书的编写,进一步理解由业务需求,用户需求,功能需求三个部分综合而形成软件需求说明书的过程。二、实验的软硬件环境硬件:微型计算机,打印机;软件:WindowsXP/7,Office2003/2007,VisualStudio、Delphi,SQLServer等要求实验环境为网络环境。三、实验要求与任务1、要求:完成软件需求规格说明书的编写:(1)用好的结构化和自然语言编写文档型文档(2)建立图形化模型。(3)编写形式化规格说明,这可以通过使用数学上精确的形式化逻辑语言来定义需求。2、具体任务:开发“××管理信息系统”(如人事管理信息系统、财务信息管理系统、酒店信息管理系统、设备信息管理系统、仓库管理信息系统、进存销管理信息系统、学生信息管理系统、图书馆信息管理系统,图书销售信息管理新系统等等)。通过调查获取用户需求,按照需求的内容进行分析,按照内容、格式要求撰写完整的软件需求规格说明书。四、实验步骤1、参考相关模板,初步理解软件需求规格说明书的结构2、结合项目实际,完成软件需求规格说明书3、进一步检查、完善相应的需求部分,尽量避免需求遗漏,和定义的不清晰。同时,3应确保采用规范图例。4、重复进行前面几个步骤,经过小组成员多次讨论,并得到客户的认可,最终达到客户和开发小组对需求的认识一致。五、《软件需求规格说明》内容、格式要求1、形成软件需求规格说明,要包括以下内容:文档名称文档版本号1.文档编写人文档编写记录2.审核人3.文档每次修订时间,每次修订人文档编写目的说明编写这份软件需求说明书的目的,指出预期的读者a.待开发的软件系统的名称;b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算背景描述机网络;c.该软件系统同其他系统或其他机构的基本的相互来往关系。定义,缩写,列出本文件中用到的专门术语的定义和外文首字母组词的原词组。术语a.本项目的经核准的计划任务书或合同、上级机关的批文;b.属于本项目的其他已发表的文件;参考资料c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的任务目标概述用户的特点关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束4假定和列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。约束用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。对功能的规定需求规定例子:I:原始捕获的数据帧P:按照既定的数据帧存储格式,存储到离线文件中O:数据帧文件1.1.精度对性能2.2.时间特性要求的规定3.3.灵活性解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精输人输度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括出要求对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。数据管说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的理能力增长对数据及其份量的存储要求作出估算。要求故障处列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理要求理的要求。其他专门要求a.处理器型号及内存容量;运行b.外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;环境设备的规定c.输入及输出设备的型号和数量,联机或脱机;d.数据通信设备的型号和数量;e.功能键及其他专用硬件5支持软列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支件持软件等。接口说明该软件同其他软件之间的接口、数据通信协议等控制说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源2、形成软件需求规格说明,格式和编写体例要依据【附录一】模板。六、思考题1、软件需求规格说明应该包括哪些方面的内容,如果没有模板,你准备么样组织材料,来编写需求说明?2、总结自己撰写软件需求规格说明的心得与收获。6【附录一】软件需求规格说明模板(参见教材P345-350)1.引言引言是对整个软件需求规格说明的概览,以帮助读者更好地阅读和理解文档。包括文档的意图(目的)、主要内容(范围)、组织方式(文档组织)、参考文献(参考文献)和阅读时的注意事项(定义、首字母缩写和缩略语)。1.1文档的意图(目的)目的是说明软件需求规格说明的主要目标,描述软件规格说明所定义的产品或某些产品部分。限定预期的读者。1.2主要内容(范围)在这一节中:①根据名称确定将被开发的软件产品。②解释软件产品的预期功能,并在必要的时候解释没有纳人软件产品预期的功能。③描述软件产品的应用,包括相关的好处、目标和目的。④如果在此软件需求规格说明之外,还存在着一个更高层次的规格说明(例如系统需求规格说明),那么该部分的描述应该与更高层次文档的相关段落保持一致。1.3阅读时的注意事项(定义、首字母缩写和缩略语)定义了正确理解软件需求规格说明所必需的术语、首字母缩写和缩略语。这部分内容也可以通过添加附录或者引用其他文档来提供。1.4参考文献在这一节中:①提供需求规格说明文档引用的全部文档的清单列表。②利用标题、报告编号(如果适用)旧期和出版机构来标识文档。③指出参考文献的来源,在该来源中可以获得文献。这部分内容也可以通过添加附录或者引用其他文档来提供。1.5组织方式(文档组织)在这一节中:①描述软件需求规格说明余下部分所包含的内容。②解释软件需求规格说明的组织方式。2.总体描述从总体上描述影响产品和需求的因素。这部分并不涉及将在文档第3部分(详细需求描述)中描述的具体的需求,而是为其提供背景知识,使其更加易于理解。2.1产品前景该节将所定义的产品和其他相关的产品联系起来,在联系中描述产品的起源和背景,进7而说明对产品的总体预期。如果产品是一个独立的、完全自包含的系统,那么就应该在这里进行声明。如果像常见的情况那样,产品仅仅是较大系统的一个组件,那么就应该将较大系统的需求和软件的功能联系起来进行说明,并标识它们之间的接口。如果能够开发一个可以显示较大系统的主要组件、内部连接和外部接口的框图,将会有很大帮助。这一节还应该描述较大系统的其他部分对软件产品的操作预期。这些部分包括:①系统接口:系统接口对软件产品的功能要求。②用户界面:软件产品和用户之间接口的逻辑特征和优化要求。③硬件接口:软件产品和较大系统中硬件组件之间接口的逻辑特征。④软件接口:其他软件系统对软件产品的要求。:⑤交流接口:本地网络协议之类的交流接口要求。~⑥内存:软件产品在主存储器和辅助存储器上的局限性和可适用特性。⑦操作:用户要求的正常和特殊操作。⑧地点改变需求:对指定地点、任务或者操作模式的需求,调整软件装置而需要改变的地点或者任务的相关特征。2.2产品功能-概述软件将要执行的主要功能。此处只需要概略的总结,其详细内容将在第3部分(详细需求描述)中描述。例如,一个账目管理程序的软件需求规格说明会在本节中描述顾客账目维护、顾客描述和发票处理等功能,但不会提及上述功能的大量细节。如果存在为软件产品分配功能更高一层的规格说明,那么这个部分的功能概述应该直接从更高层次规格说明的相关部分提取。为了清晰起见:-①功能的组织应该能够让第一次看到文档的顾客或者其他人理解功能列表。②可以使用文本或者图形化的方法显示不同功能及其联系。2.3用户特征描述产品预期用户的一般特征,包括受教育水平、经验和技术能力等。这些描述信息可以用来解释第3部分(详细需求描述)中特定需求出现的原因,但是本节并不涉及这些特定的需求。2.4约束对限制开发人员开发方案选择的事项进行一般性描述。这些事项包括:①规章政策。②硬件限制。③和其他应用的接口。④并发操作。8⑤审计功能。⑥控制功能⑦高阶语言要求(即程序开发语言)。⑧信号握手协议(即信息交流的可靠性要求)。⑨应用的临界状态。⑩安全性考虑。2.5假设和依赖列举并描述了那些会对文档中所述需求产生影响的因素。这些因素并不是软件的设计限制,但是这些因素的任何变化都会影响到文档中的需求。例如,有这样一个假设:软件产品的目标硬件上会有某个特定的操作系统。而在实际情况中,如果这样的情况并不存在,那么文档中的需求将不得不进行相应的改变。3.详细需求描述这通常是软件需求规格说明中最多和最重要的部分。它要对所有的软件需求进行充分的描述。这部分的内容应该包括设计人员进行设计时所需要的所有细节,足以让设计人员设计出一个满足需求的系统。它还需要清楚地告诉测试人员需要怎么样的测试才能保证得到一个满足需求的系统。在这一部分:①细节需求的描述要符合优秀需求的特性要求(参见2.5节),文档的组织和内容整合要符合优秀软件需求规格说明文档的特性要求(参见15.5节)。②细节需求要能够回溯到相关的前期文档,形成前后参照。③所有的需求都要被唯一的标识。④需求的组织应该尽可能的提高可读性。该部分内容的最佳组织方式要依赖于软件产品的应用领域和特性。〔IEEE830-19981为该部分的文档组织提供了8种不同的模板方式,图15一5所示的模板为其中之一。图15-6所示的模板是按照系统特性来进行需求组织的,除此之外也可以按照操作模式、类/对象、刺激/响应、功能分解、用户类别等方式进行组织。关于其他几种组织方式可参见教材的附录一(P423-428)。[IEEE830-1998」