欢迎来到学术参考网

浅论软件需求分析

发布时间:2015-09-08 08:53

摘 要:软件需求分析中的关键就是展开分析, 发现问题, 解决问题. 所有的一切都是为了能够将软件中的错误和漏洞在需求分析和需求工程阶段发现并解决, 这样才能使软件开发的成本收益比达到最大, 使得软件在其生命周期中的维护费用降到最低. 本文主要探讨了软件需求分析方法,希望可以通过对软件需求分析的方法研究为为以后软件的开发打下一个良好

关键词:软件需求分析;过程;原则;工具;方法
1.软件需求分析的过程
     软件需求分析的具体过程可分为软件需求目标的认定、分析与综合、制定规格说明和最终评审.首先来看如何对软件需求目标进行认定, 软件需求的目标是指系统分析工程师和程序开发工程师在软件需求分析过程中, 确定目标软件工程的综合要求, 并提出实现这些要求所需要的条件, 以及需求应达到的标准. 这些需求具体包括: ( 1) 功能需求:列举出所开发软件在功能上应做什么. ( 2) 性能需求: 给出所开发软件的技术性能指标. ( 3) 环境需求: 软件系统运行时所处环境的要求. 例如硬件环境: 主机类型、外围设备、数据通信接口; 软件方面:系统软件平台( 包括单机操作系统、网络操作系统及应用软件、数据库管理系统等等) ; 以及使用部门在操作人员方面应达到怎样的条件. ( 4) 可靠性需求: 按照实际运行环境对所开发的软件提出要求,尽量在需求分析阶段将所有的问题进行暴露. 对于运行实效后可能产生的后果要有充分估计, 应对软件运行的可靠性提出较高的要求. ( 5) 安全保密要求: 在软件的需求分析过程当中应当对所开发的软件的安全性进行特殊设计分析, 使其在实际开发完
成之后的运行过程中安全性能得到必要的保证.( 6) 用户界面的需求: 对于用户界面的细致性以及易用性进行需求分析使其达到客户要求. ( 7) 资源使用需求: 通过需求分析使得所开发的软件在运行时所需的系统资源处于用户可接受范围. ( 8) 软件成本消耗与开发进度需求: 通过需求分析对软件开发的进度和各步骤的费用提出大致要求, 作为开发管理的依据. ( 9) 最后对于所开发系统得最终所能达到的目标进行分析, 以便在开发过程中对系统进行必要的修改与补充。在我们的需求分析过程中这些问题都是必需要得出分析结果的, 并且结果应当得到软件开发工程师的认可.
    在实际的软件需求分析中,单单依靠上述过程是不够的,有时候我们还需要通过对所得结论的分析与综合来得出工程系统的详细逻辑模型。例如,在面向对象的软件工程当中进行软件需求分析时, 通过对整个工程的需求进行分析, 我们得出的仅是该软件工程的综合项目需求.这时就需要整理逻辑模型。在这个过程中, 分析与综合工作需要反复的进行. 而常用的分析方法有面向数据流的结构化分析方法、面向数据结构的Jackson 方法( 简称JSD法) 、面向对象的分析方法( 简称为OOA) 等, 以及用于建立动态模型的状态迁移图或Petri 网等工具.
    通过这一步之后, 我们就可以将所得到的分析结果描述成软件需求规格说明书( 简称SRS) , 并编写初步的标准格式用户手册. 进行软件需求规格说明书以及标准格式用户手册时, 不仅需要正确详实的需求分析数据, 还需要较好的文字表达和组织能力.需求分析评审则是指在需求分析的最后阶段,对整个系统的需求分析工作给出其在正确性、完整性和清晰性等几个方面的最终评价.
2.软件需求分析的原则和工具
  软件需求分析方法很多, 其所使用的描述方法也各不相同, 但他们都有着共同的基本准则.首先, 他们都必须能够表达和理解问题所包含的数据域和功能域; 其次, 他们必须按照自顶向下、逐层分解的方式对问题进行分解和不断细化; 最后, 他们都要能够给出系统的逻辑视图和物理视图.这就说明在需求分析当中无论我们采取什么样的分析方法, 都无一例外的会回归到对问题数据域与功能域的分析上来, 并且对于问题的分析会自然而然的逐渐细化.
3. 软件需求分析的方法
  在软件需求分析中方法很多, 不同的分析方法也都引入了不同的记号和分析策略. 但与此同时, 他们也具有着一些共同的性质, 具体可以概括为: 在支持数据域分析机制方面, 所有的方法都直接或间接地涉及到数据流、数据内容或数据结构等数据域的属性. 多数情况下, 数据流特征是用将输入转化为输出的变换过程来描述的, 数据内容则用数据字典机制来明确表示, 或者通过描述数据或数据对象的层次节后隐含地表示; 在功能表示方法方面, 功能一般用数据变换或加工来表示. 还有在接口定义、问题分解的机制以及抽象的支持、逻辑视图和物理视图以及系统抽象模型方面都有着相同或相似的机制.在这里我们重点分析快速原型方法.在传统的软件工程方法学中, 一贯强调的是自顶而下的分阶段开发, 在每阶段实际开发之前必须对所开发项目进行严格要求的分析和定义 . 但实践表明, 在系统建立起来之前很难仅仅依靠分析就确定出一套完整、有效的需求应用, 并且这样预先定义的策略也无法适应用户需求的不断修正与变化. 由此, 快速原型方法应运而生, 他自顶向下的开发模式, 是目前应用十分广泛的开发模式.快速原型方法是根据软件系统的需求快速产生出软件系统一个早期原形的过程. 该原型能够表现出目标系统的功能和行为特征, 但不一定符合其全部的实现需要. 通过这个方法, 软件设计者可以利用原型得到系统可用性的反馈信息, 未来用户也可以利用原型得到宝贵的早期经验. 并且利用这样的一个快速原型尽早的获得更完整、更正确的需求与设计. 在软件的开发过程当中即使客户对于系统的要求发生了更改, 也可以通过对原型就行改进而得到新的目标系统, 不必再从头做起.  而且在现实中存在的快速原型建造工具可以大大缩减创建系统的时间, 可以在短期内迅速有效地建立起系统的原型, 充分提高软件开发效率, 提高软件质量、减少测试和调试的工作量, 最终减少软件开发的总成本.
  在快速原型法的实现过程中, 由于建立原型的目的不同, 实现原型的途径也有所区别, 大致划分为以下三类: ( 1) 探索型. 为研究探索而建立的原型. 主要强调澄清目标系统的需求及所要求的特征. ( 2) 实验型. 为实验而建立原型. 主要强调在正式进行目标系统的大规模开发工作之前, 通过建立原型来确定所提出的解决方法是否恰当. 这种原型方法通常针对用户的问题的某个方案做出原型以供试验评估, 该原型所实现的功能与最终产品的功能是有差别的. ( 3) 进化型原型 . 为演示而建立的原型. 主要强调通过逐步的分析改进使系统适应变化了的需求. 并最终生成一个演进式的系统开发模式. 当采用进化型原型方法时, 必须进行原型与产品间的变换, 除了在开始阶段时采用单独的研究探索性原型方法及实验性原型方法外, 圆形的生产环境必须与产品的生产环境集成在一起.
  总而言之,快速原型法是具有相当大优势的. 因为它可以为开发出较为有用的系统做出极大贡献, 并且不会增加总的软件开发费用, 开发原型所增加的投资可以因减少误解而节省下来.
参考文献:
[ 1] 王继成, 高珍. 软件需求分析的研究[ J] . 计算机工程与设计,2002, ( 8) : 18- 21.
[2] 卢梅, 李明树. 软件需求工程- 方法及工具评述[ J] . 计算机研究与发展. 1999, ( 11) : 29.

上一篇:基于ARM的智能机器人语音控制应用研究

下一篇:组合定位导航技术研究