当前位置: 首页 > news >正文

验证软件需求


1 从哪些方面验证软件需求的正确性
       需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。一般说来,应该从下述4个方面进行验证。
       (1) 一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。
       (2) 完整性需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
       (3) 现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
       (4) 有效性必须证明需求是正确有效的,确实能解决用户面对的问题。

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


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

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


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系统的主要优点是它改进了文档质量,能保证文档具有完整性,一致性和无二义性,从而可以减少管理和维护的费用。数据存放在数据库中,便于增加、删除和更改,这也是它的一个优点。

相关文章:

  • Go语言的中间件(middleware)是如何实现的?
  • 2024年云南特岗教师报名流程,超详细,明天就开始报名哦!
  • C++设计模式之策略模式、迭代器模式、适配器模式、工厂模式、超级工厂模式、享元模式、代理模式
  • SpringBoot自动化配置原理
  • Cortex-M3的SysTick 定时器
  • linux文件权限常用知识点,基于Linux(openEuler、CentOS8)
  • 基于Rsoft的Fullwave仿真模块进行双芯波导能量耦合与波分复用
  • Java 18 新特性详解
  • 后量子密码解决方案
  • 5.Redis之常用数据结构单线程模型
  • Java整合ELK实现日志收集 之 Elasticsearch、Logstash、Kibana
  • 为 AWS 子账户添加安全组修改权限
  • 深入探索SQL注入:盲注技术及其防御策略
  • 程序员做副业要知道重点在哪里
  • 区间预测 | Matlab实现DNN-KDE深度神经网络结合核密度估计多置信区间多变量回归区间预测
  • hexo+github搭建个人博客
  • 【笔记】你不知道的JS读书笔记——Promise
  • 2017 前端面试准备 - 收藏集 - 掘金
  • DOM的那些事
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • JS基础之数据类型、对象、原型、原型链、继承
  • Laravel 中的一个后期静态绑定
  • mongodb--安装和初步使用教程
  • Otto开发初探——微服务依赖管理新利器
  • Python - 闭包Closure
  • Python_网络编程
  • Spring声明式事务管理之一:五大属性分析
  • tab.js分享及浏览器兼容性问题汇总
  • zookeeper系列(七)实战分布式命名服务
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 猴子数据域名防封接口降低小说被封的风险
  • 理清楚Vue的结构
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端学习笔记之观察者模式
  • 前端之React实战:创建跨平台的项目架构
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 深入 Nginx 之配置篇
  • 实现菜单下拉伸展折叠效果demo
  • 双管齐下,VMware的容器新战略
  • ​io --- 处理流的核心工具​
  • (9)STL算法之逆转旋转
  • (C#)获取字符编码的类
  • (C++)八皇后问题
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (第二周)效能测试
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (生成器)yield与(迭代器)generator
  • (图)IntelliTrace Tools 跟踪云端程序
  • (五)activiti-modeler 编辑器初步优化
  • (一)UDP基本编程步骤
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功