验证软件需求

3.8 验证软件需求

3.8.1 从哪些方面验软件需求的正确性

    需求分析阶段的工作结果是开发件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求,为了高软件质量,确保软件开发成功,降低较件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性,一般说来,应该从下述4个方面进行验证

(1)一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛。
(2)完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能
(3)现实性 指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对就件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
(4)有效性 必须证明需求是正确有数的,确实能解决用户面对的问题

3.8.2 验证软件需求的方法

上一小节已经指出,至少必须从一致性、完整性、现实性和有效性这4个不同角度验证软件需求的正确性,那么,怎样验证软件需求的正确性呢?验证的角度不同,验证的方法也不同。

1.验证需求的一致性
    
    当需求分析的结果是用自然语言书写的时候,除了靠人工技术审查验证软件系统规格说明书的正确性之外,目前还没有其他更好的“测试”方法。但是,这种非形式化的规格说明书是难于验证的,特别在目标系统规模度大、规格说明书篇幅很长的时候,人工审查的效果是没有保证的,冗余、遗楼和不一致等问题可能没被发现而继续保留下来,以致软件开发工作不能在正确的基础上顺利进行。
    为了克服上述困难,人们提出了形式化的描述软件需求的方法。当软件需求规格说明书是用形式化的需求陈述语言书写的时候,可以用软件工具验证需求的一致性(见需求分析的软件工具),从而能有效地保证软件需求的一致性。

2,验证需求的现实性

    为了验证需求的现实性,分析员应该参照以往开发类似系统的经验,分析用现有的软、硬件技术实现目标系统的可能性。必要的时候应该采用仿真或性能模拟技术,辅助分析件需求规格说明书的现实性。

3,验证需求的完整性和有效性

    只有目标系统的用户才真正知道软件需求规格说明书是否完整、准确地描述了他们的需求。因此,检验需求的完整性,特别是证明系统确实满足用户的实际需要(即,需求的有效性),只有在用户的密切合作下才能完成。然而许多用户并不能清楚地认识到他们的需要(特别在要开发的系统是全新的,以前没有使用类似系统的经验时,情况更是如此)不能有效地比较陈述需求的语句和实际需要的功能。只有当他们有某种工作着的软件系统可以实际使用和评价时,才能完整确切地提出他们的需要。
    理想的做法是先根据需求分析的结果开发出一个软件系统,请用户试用一段时间以使能认识到他们的实际需要是什么,在此基础上再写出正式的“正确的”规格说明书。但是,这种做法将使软件成本增加一倍,因此实际上几乎不可能采用这种方法。使用原型系是一个比较现实的替代方法,开发原型系统所需要的成本和时间可以大大少于开发实际系统所需要的,用户通过试用原型系统,也能供得许多宝贵的经验,从面可以提出更符合实际的要求。
    使用原型系统的目的,通常是显示目标系统的主要功能而不是性能,为了达到这个目的可以使用本章3.2.4小节介绍的方法快速建立原型系统,并且可以适当降低对接口、可靠性和程序质量的要求,此外还可以省掉许多文档资料方面的工作,从面可以大大降低原型系统的开发成本。

3.8.3 用于需求分析的软件工具

    为了更有效地保证软件需求的正确性,特别是为了保证需求的一致性,需要有适当的软件工具支持需求分析工作,这类软件工具应该满足下列要求

(1)必须有形式化的语法(或表),因此可以用计算机自动处理使用这种语法说明的内容。
(2)使用这个软件工具能够导出详細的文档。
(3)必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果。
(4)使用这个软件工具之后,应该能够改进通信状况。

    作为需求工程方法学的一部分,在1977年设计完成了RSL.(需求陈述语言),RSL.中的语句是计算机可以处理的,处理以后把从这些语句中得到的信息集中存放在一个称为ASSM(轴象系统语义模型)的数据库中,有一组软件工具处理ASSM数据库中的信息以产生出用 PASCAL语言书写的模拟程序,从而可以检验需求的一致性,完整性和现实性。
    1977年美国密执安大学开发了PSL/PSA(问题陈述语言/问题陈述分析程序)系统。这个系统是 CADSAT(计算机辅助设计和规格说明分析工具)的一部分,它的基本结构类似于RSL.其中PSL是用来描述系统的形式语言,PSA是处理PSL描述的分析程序用。用PSL描述的系统属性放在一个数据库中,一且建立起数据库之后即可增加信息、删除信息或修改信息,并且保持信息的一致性,PSA对数据库进行处理以产生各种报告,测试不一致性或遗漏,并且生成文档资料。
    PSL/PSA系统的功能主要有下述4种
(1)描述任何应用领域的信息系统
(2)创建一个数据库保存对该信息系统的描述符
(3)对描述符施加增加,除和更改等操作
(4)产生格式化的文档和关于规格说明书的各种分析报告
    PSL/PSA系统用描述符从系统信息流、系统结构、数据结构、数据导出、系统规模、系统动态、系统性质和项目管理共8个方面描述信息系统。
    用PSL对系统做了完整描述,就可以调用PSA产生一组分析报告,其中包括所有修改规格说明数据库的记录,用各种形式描述数据库信息的参照报告(包括图形形式的描述),关于项目管理信息的总结报告,以及评价数据库特性的分析报告。
    借助PSL/PSA系统可以边对目标系统进行自顶向下的逐层分解,边将需求分析过程中遇到的数据流、文件、处理等对象用PSL描述出来并输入到PSL/PSA系统中,PSA将对输人信息作一致性和完整性检查,并且保存这些描述信息。
    PSL/PSA系统的主要优点是它改进了文档质量,能保证文档具有完整性、一致性和无二义性,从面可以减少管理和维护的费用,数据存放在数据库中,便于增加、删除和更改,这也是它的一个优点。

3.9 小结
    传统软件工程方法学使用结构化分析技术,完成分析用户需求的工作。需求分析是发现、求精、建模、规格说明和复审的过程,需求分析的第一步是进一步了解用户当前所处的情况,发现用户所画临的问题和对目标系统的基本需求接下来应该与用户深人交流,对用户的基本需求反复细化遥逐步求精,以得出对目标系统的完整、准确和具体的需求。具体地说,应该确定系统必须具有的功能、性能,可靠性和可用性,必实现的出错处理需求,接口需求和逆向需求,必须满足的约束条件以及数据需求,并且预测系统的发展前景。
    为了详细地了解并正确地理解用户的需求,必须使用适当方法与用户沟通。访谈是与用户通信的历史悠久的技术,至今仍被许多系统分析员采用。从可行性研究阶段得到的数据流图出发,在用户的协助下面向数据流自顶向下逐步求精,也是与用户沟通获取需求的一个有效的方法。为了促使用户与分析员齐心协力共同分析需求,人们研究出一种面向团队的需求收集法,称为简易的应用规格说明技术,现在这种技术已经成为信息系统领城使用的主流技术。实践表明,快速建立软件原型是最准确,最有效和最强大的需求分析技术。快速原型应该具备的基本特性是“快速”和“容易修改”,因此,必须用适当的软件工具支持快速原型技术。通常使用第四代技术、可重用的软件构件及形式化规格说明与原型环境,快速地构建和修改原型。
    为了更好地理解问题,人们常常采用建立模型的方法,结构化分析实质上就是一种建模,在需求分析阶段通常建立数据模型、功能模型和行为模型。
    除了创建分析模型之外,在需求分析阶段还应该写出软件需求规格说明书,经过严格评审并得到用户确认之后,作为这个阶段的最终成果,通常主要从一致性,完整性,现实性和有效性4个方面复审件需求规格说明书。
    多数人习惯于使用实体-联系图建立数据模型,使用数据流图建立功能模型,使用状态图建立行为模型,读者应该掌据这些图形的基本符号,并能正确地使用这些符号建立软件系统的模型。
    数据字典描述在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义,因此,数据字典度成为把3种分析模型粘合在一起的“粘合剂”,是分析模型的“心”,为了提高可理解性,还可以用层次方框图或 Warnier图等图形工具轴助描系统中的数据结构。为了减少冗余、简化修改步骤,往往需要规范数据的存储结构。
    算法也是重要的,分析的基本目的是确定系统必须做什么。概括地说,任何一个计算机系统的基本功能都是把输人数据转变成输出信息,算法定义了转变的规则,因此,没有对算法的了解就不能确切知道系统的功能,IPO图是描述算法的有效工具。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 软件需求文档模板是软件开发过程中用于详细描述需求的一种工具。它通常是使用Word等文本编辑软件创建的模板,用于指导开发人员编写需求文档。 软件需求文档模板通常包括以下几个部分: 1. 引言:介绍需求文档的目的、范围、读者和其他相关信息。 2. 项目概述:对软件项目进行总体描述,包括项目的背景、目标和重要的业务需求。 3. 功能需求:详细描述软件的各种功能需求,包括系统的各个模块、功能点、用户需求等。 4. 非功能需求:描述软件的非功能性需求,如性能、安全性、可用性、可靠性等。 5. 系统规约:定义软件系统与外部环境的接口规范、硬件和软件平台要求等。 6. 数据需求:详细描述软件所需的数据模型、数据结构、数据流等。 7. 约束和限制:列出软件开发过程中的各种限制条件和约束条件,如时间、成本、技术限制等。 8. 可测试性要求:指定软件需求的可测试性要求,以便进行后续的软件测试。 9. 参考文件:列出与需求文档相关的参考文档,如设计文档、用户手册等。 在创建软件需求文档模板时,可以根据实际项目需求进行定制,添加或删除相应的部分,以适应具体的开发流程和要求。使用模板可以帮助开发人员更好地组织和呈现需求信息,提高需求的准确性和完整性,也有助于团队合作和进度控制。 ### 回答2: 软件需求文档模板是用于编写软件需求文档的一种规范格式。它通常使用Word文档格式,用于记录软件项目开发过程中的需求细节,以便开发团队和利益相关者之间进行沟通和理解。以下是软件需求文档模板的一般结构和常见内容: 1. 引言:包括项目概述、目标和范围,以及文档的读者和读者如何使用文档的说明。 2. 需求概述:简要总结整个软件项目的需求,包括主要功能、非功能需求和系统架构等。 3. 功能需求:详细描述软件系统需要实现的各项功能,包括输入、输出、操作流程等。 4. 非功能需求:描述软件系统的性能、可靠性、安全性、可维护性等方面的要求。 5. 系统界面:描述软件系统与外部系统或人机界面的交互方式和界面设计。 6. 数据需求:描述软件系统所需的数据结构、数据库设计和数据格式等。 7. 测试需求:描述软件系统的测试范围、测试目标、测试数据和测试方法等。 8. 可行性分析:评估项目的技术、经济和操作可行性,包括成本效益分析和风险评估。 9. 项目进度和计划:描述软件开发的时间表和里程碑,以及开发团队的组织和分工。 10. 参考资料:列出了软件需求文档编写过程中所参考的各种文献、标准和相关文档。 软件需求文档模板的使用有助于统一需求文档的格式和结构,提高沟通效率和理解准确性,并且能够方便地进行修改和更新。开发团队可以根据具体项目和需求进行模板的个性化定制,以满足特定项目的需要。 ### 回答3: 软件需求文档模板是一种用于编写软件需求文档的工具,通常以Word格式提供。该模板可以帮助软件开发团队系统地描述和组织软件项目的需求,并与利益相关者进行沟通和交流。 软件需求文档模板通常包含以下几个重要部分: 1. 引言:介绍软件项目的背景、目的和范围,同时概述整个需求文档的结构和内容。 2. 功能需求:详细描述软件需要实现的功能和特性。这包括用户需求、系统需求、界面需求、数据管理需求等。每个功能需求通常包含功能描述、输入/输出、处理逻辑、用户界面设计等信息。 3. 非功能需求:描述软件的非功能层面要求,例如性能、安全性、可靠性、可用性等。这些需求通常以可度量的方式定义,并且需要满足特定的标准或指标。 4. 约束条件:列举软件开发过程中需要遵守的约束条件,包括技术限制、时间限制、资源限制等。 5. 接口需求:描述软件与其他系统或组件进行交互的方式和规范。这包括硬件接口、软件接口、人机界面接口等。 6. 数据需求:定义软件所需的数据要求,包括数据结构、数据格式、数据存储和数据访问等。 7. 验证验证:说明如何验证软件需求的正确性和完整性,并描述如何进行需求变更的控制和管理。 软件需求文档模板可以让软件开发团队更加有组织地编写和管理需求,同时提供给利益相关者一个清晰的了解软件项目的途径。通过使用这个模板,团队可以更好地进行需求分析和评审,从而确保软件开发项目的成功实施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值