软件需求分析

本文主要介绍需求分析。

有关需求的基本概念

  • 01

    需求的基本概念 宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么。

  • 02

    需求的重要性 开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。

  • 03

    需求分析是指在需求开发过程中,对所获取的需求信息进行分析,及时排除错误和弥补不足,确保需求文档正确地反映用户的真实意图。

软件需求分析的任务

  • 01

    需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。

  • 02

    通常软件开发项目是要实现目标系统的物理模型 目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的

需求分析的步骤

  • 01

    调查研究 从系统的角度来理解软件并评审软件范围是否恰当 ; 确定对目标系统的综合要求,即软件的需求 ; 提出这些需求实现条件,以及需求应达到的标准。

  • 02

    分析与综合 从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。

  • 03

    书写文档 系统规格说明书 ;数据要求说明书; 用户系统描述;修正的开发计划  。

  • 04

    开发原型系统 采取建立原型系统的策略的主要理由如下: 人类认识能力有限,不能预先指定所有要求; 在用户和系统分析员之间存在固有的通信鸿沟; 用户需要一个现实的系统模型以便获得实践经验; 在开发过程中重复和反复使必要的和不可避免的。

    软件需求规格说明的原则

    • 01

      从现实中分离功能,即描述要“做什么”而不是“怎样实现” ;要求使用面向处理的规格说明语言(或称系统定义语言) ;如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中  ;规格说明必须包括系统运行环境 ;规格说明必须是一个认识模型 ;规格说明必须是可操作的;规格说明必须容许不完备性并允许扩充 ;规格说明必须局部化和松散耦合 。

      需求分析的方法

      • 01

        需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成; 大多数的需求分析方法是由数据驱动的; 数据域具有三种属性: 数据流、数据内容和数据结构。

      补充:描述加工逻辑的工具

      • 01

        结构化语言,介于自然语言和形式语言之间的语言, 结构化语言的特点:无确定语法 可分层、嵌套

      • 02

        判定表(决策表) 描述多条件、多目标动作的形式化工具

      • 03

        判定树(Decision 决策树)

      图形工具

      • 01

        E-R模型 ;层次方框图 ;Warnier图 ;IPO图。

      • 02

        E-R模型:通过使用矩形框、菱形框、椭圆框或者圆角矩形及连线来描述“实体”、“联系”和“属性”现实世界的一种方法。

      • 03

        Warnier图:用Warnier图可以表明信息的逻辑组织,也就是说,它可以指出一类信息或一个信息量是重复出现的,也可以表示特定信息在某一类信息中是有条件出现的。

      • 04

        IPO图(输入/处理/输出图):IPO图是IBM公司发展完善起来的一种图形工具,能够很方便地描绘输入数据、对数据的处理和输出数据的关系。 IPO图的基本形式是在左边的框中列出有关的输入数据,在中间的框中列出主要的处理,在右边的框中列出产生的数据。

      需求分析的评审

      • 01

        系统定义的目标是否与用户的要求一致; 系统需求分析阶段提供的文档资料是否齐全; 文档中的所有描述是否完整、清晰、准确反映用户要求; 与所有其它系统成分的重要接口是否都已经描述;被开发项目的数据流与数据结构是否足够,确定;  所有图表是否清楚,在不补充说明时能否理解; 主要功能是否已包括在规定的软件范围之内,是否都已充分说明; 设计的约束条件或限制条件是否符合实际; n开发的技术风险是什么;是否考虑过软件需求的其它方案; 是否考虑过将来可能会提出的软件需求; 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;

      • 02

        需求评审面临的困难 1,需求评审的一个通病是“虎头蛇尾”。需求评审的确乏味,也比较费脑子。刚开始评审时,大家都比较认真,越到后头越马虎。 2,需求评审涉及的人员可能比较多,有些时候让这么多人聚在一起花费比较长的时间开会并不容易(例如有些人可能出差在外,有些人可能事务缠身)。没有必要把所有事情挤在一块做,需求开发是循序渐进的过程,需求评审也可以分段进行。这样每次评审的时间比较短,参加评审的人员也少一些,组织会议就比较容易。 3,开评审会议时经常会“跑题”,导致评审效率很低。有时话匣子一打开后关不上,大家越扯越远,结果评审会议变成了聊天会议。主持人应当控制话题,避免大家讨论与主题无关的东西。 4,开评审会议时经常会发生争议。适当的争议有利于澄清问题,比什么东西都一致赞成要好。然而当争议变为争吵时就坏事了,争吵不仅对评审工作没有好处,而且会无意中伤害同事们的感情。 5,人们在很多时候分不清楚自己究竟是“坚持真理”还是“固执己见”。毫不妥协或者轻易妥协都不是好办法。我们应当养成良好的习惯:不要一棍子打死异己的观点,尝试着让自己站在他人的立场思考问题,这样你会找到比较满意的答案

        需求分析评审的方法

        • 01

          验证需求的一致性;验证需求的现实性 ;验证需求的完整性 ;验证需求的有效性。

        (0)

        相关推荐

        • 用Rational Rose画用例图

          做软件需求分析的朋友经常需要画用例图,现在小编向大家介绍使用Rational Rose画一个简单的用例图的方法. 操作方法 01 点击[开始]=>[程序]=>[Rational Softw ...

        • 软件测试之测试用例、测试点写法以及需求分析

          大家如果想成为软件测试的一名老司机,就必须掌握测试用例的写法. 一.如何写测试用例 01 软件由数据+程序+文档组成.我们软件测试工程师,就是给执行程序输入数据,得到输出结果,并判断输出结果是否符合需 ...

        • 软件项目需求分析:非功能性六大点

          软件产品的需求可以分为功能性需求和非功能性需求,其中非功能性需求是常常被轻视,甚至被忽视的一个重要方面.其实,软件产品非功能性定义不仅决定产品的质量,还在很大程度上影响产品的功能需求定义.如果事先缺乏 ...

        • 逻辑图用什么软件画(怎么画逻辑图)

          编辑导语:我们在日常工作中,特别是交流的时候,逻辑是其中重要的一点:很多时候我们都需要逻辑图来说明自己的用意,逻辑图可以帮助我们表达的更加流畅和清晰:本文作者分享了关于逻辑图构成的三要素,我们一起来了 ...

        • 软件的生命周期你了解吗?——柠檬班出品

          今天打算给大家来一篇测试相关的普及文,每天跟测试工作息息相关的那些软件产品或软件系统,你了解它的整个生命历程吗?它也许跟我们一样,也要经历孕育.诞生.成长.成熟.衰亡-而这些过程,在我们测试行业中,有 ...

        • 软件开发流程分析

          软件开发流程即软件设计思路和方法的过程,以伟创软件的软件开发流程为例,共分为六大块 操作方法 01 项目规划:项目开发计划,由于伟创软件是定制开发,所以只需规划好人员.技术分配,后期调研计划,基础开发 ...

        • 手机软件开发流程

          代码 在网站设计时,可以很方便地添加一个新页面,并为之创建链接,但手机外包公司在手机应用中却不能这么做,所有元素都必须从一开始就确定,任何细微的改动都有可能会引发意想不到的后果.手机代码的结构就像一个 ...

        • 如何用流程图软件VISIO快速画流程图组织架构图

          我从事信息化系统开发的工作,很多需求分析最终都会模块化.流程化,而最终会将流程图放在WORD文档中,完整展示在会议上. 我毕业时,老师曾推荐过亿图给我们,但是工作中发现,这软件非常不人性化!后来同事推 ...

        • 怎么软件开发

          操作方法 01 学习计算机编程语言 想要进行软件开发,学习计算机编程语言是必不可少的.例如java.php.python.html.css.js等等. 02 学习框架技术 学会使用框架,可以大大的提高 ...