software03_软件需求分析工程与方法.ppt

上传人:hyn****60 文档编号:70706930 上传时间:2023-01-25 格式:PPT 页数:117 大小:639KB
返回 下载 相关 举报
software03_软件需求分析工程与方法.ppt_第1页
第1页 / 共117页
software03_软件需求分析工程与方法.ppt_第2页
第2页 / 共117页
点击查看更多>>
资源描述

《software03_软件需求分析工程与方法.ppt》由会员分享,可在线阅读,更多相关《software03_软件需求分析工程与方法.ppt(117页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件工程软件工程1第三章第三章 需求分析需求分析o软件需求分析的概念和软件需求分析的概念和任务任务o获取软件需求的方法获取软件需求的方法o结构化分析方法结构化分析方法o原型化方法原型化方法o动态分析方法动态分析方法2软件需求分析的任务和过程软件需求分析的任务和过程o需求的概念和层次需求的概念和层次o软件需求分析的目标和任务软件需求分析的目标和任务o需求分析的过程需求分析的过程o需求开发的主要困难与对策需求开发的主要困难与对策3需求的概念和层次需求的概念和层次 P45P45o概念概念n用户解决问题或达到目标所需要的条件或权能用户解决问题或达到目标所需要的条件或权能n系统或系统部件要满足合同,标准

2、,规范,或其它正式规定文系统或系统部件要满足合同,标准,规范,或其它正式规定文档所需要的条件或权能档所需要的条件或权能n反映上述内容的文档说明反映上述内容的文档说明o需求的重要性需求的重要性nFrederick Frederick BrooksBrooks在在他他19871987年年经经典典文文章章“No No Silver Silver BulletBullet”中阐述了需求的重要性:中阐述了需求的重要性:o开发软件系统最困难的部分就是准确说明开发什么。最困难的概开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和念性工作是编写出详

3、细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。损害,并且以后对它修改也极为困难。n需求是产品的根源,需求工作的优劣对产品影响最大。就像一需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。条河流,如果源头被污染了,那么整条河流也就被污染了。n国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开发。碌不停地开发。4需求的概念和层次需求的概念和

4、层次 P45P45o层次层次n业务需求业务需求:反映了组织机构或客户对系统、产品高层反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以次的目标要求,它们在项目视图与范围文档中予以说明说明.n用户需求用户需求:文档描述了用户使用产品必须要完成的任文档描述了用户使用产品必须要完成的任务,这在使用实例(务,这在使用实例(use case)文档或方案脚本文档或方案脚本(scenario)说明中予以说明。说明中予以说明。n功能需求功能需求:定义了开发人员必须实现的软件功能,使定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。得用户能完成他们的任

5、务,从而满足了业务需求。n非功能需求非功能需求:对功能需求的补充,分成了两类。对功能需求的补充,分成了两类。P46P4656补充:了解客户、最终用户、间接用户补充:了解客户、最终用户、间接用户o基本概念基本概念n“用户用户”(useruser)是一种泛称,它可细分为是一种泛称,它可细分为“客户客户”(customercustomer)、)、“最终用户最终用户”和和“间接用户间接用户”(或称为关系(或称为关系人)。人)。n掏钱买软件的用户称为客户,而真正操作软件的用户叫最终用掏钱买软件的用户称为客户,而真正操作软件的用户叫最终用户。客户与最终用户可能是同一个人也可能不是同一个人。户。客户与最终用

6、户可能是同一个人也可能不是同一个人。o客户是掏钱买软件的人,所以他是客户是掏钱买软件的人,所以他是“上帝上帝”n某某饭饭店店经经理在解理在解释释“先有先有鸡还鸡还是先有蛋是先有蛋”这这个哲学个哲学问题时问题时,精辟地,精辟地阐阐述了客述了客户户的的地位:地位:o如果顾客先点鸡,那么就先有鸡;如果顾客先点蛋,那么就先有蛋。如果顾客先点鸡,那么就先有鸡;如果顾客先点蛋,那么就先有蛋。n与客户打交道的主要目的是:一是获取需求,二是签合同。不要把钱仍到水里。与客户打交道的主要目的是:一是获取需求,二是签合同。不要把钱仍到水里。7补充:了解客户、最终用户、间接用户补充:了解客户、最终用户、间接用户o即使

7、即使最终用户不是上帝,也算是最终用户不是上帝,也算是“上帝上帝”的的“亲戚亲戚”,同样怠慢不,同样怠慢不得。得。n如果项目规模比较大,那么开发方与最终用户的来往就比较多。如如果项目规模比较大,那么开发方与最终用户的来往就比较多。如从最终用户那里获取详细的需求,请最终用户试验软件,对最终用从最终用户那里获取详细的需求,请最终用户试验软件,对最终用户进行培训等等。户进行培训等等。o重视重视“间接用户间接用户”,千万别,千万别“大意失荆州大意失荆州”n间接用户既不掏钱买该软件产品,也不使用该软件,但是它可能对间接用户既不掏钱买该软件产品,也不使用该软件,但是它可能对软件产品有很大的影响。软件产品有很

8、大的影响。n例如,财务软件开发商在把例如,财务软件开发商在把“财务软件财务软件”卖给客户之前,这个卖给客户之前,这个“财财务软件务软件”必须得到国家财政部的批准。否则即使该软件的功能是完必须得到国家财政部的批准。否则即使该软件的功能是完美的,但却被政府认为是非法的。所以国家财政部就是所有财务软美的,但却被政府认为是非法的。所以国家财政部就是所有财务软件的间接用户,它不仅不付钱给财务软件开发商,反而要收取鉴定件的间接用户,它不仅不付钱给财务软件开发商,反而要收取鉴定费、手续费等。费、手续费等。n同理,市面上流通的信息安全软件、杀病毒软件必须得到国家公安同理,市面上流通的信息安全软件、杀病毒软件必

9、须得到国家公安部的批准,否则软件开发商被逮住后戴上部的批准,否则软件开发商被逮住后戴上“非法经营非法经营”的帽子就惨的帽子就惨了。了。8软件需求分析的任务和过程软件需求分析的任务和过程o需求的概念和层次需求的概念和层次o软件需求分析的目标和任务软件需求分析的目标和任务o需求分析的过程需求分析的过程o需求开发的主要困难与对策需求开发的主要困难与对策9需求工程基本概念需求工程基本概念o什么是需求工程什么是需求工程n把所有与需求直接相关的活动通称为需求工程。把所有与需求直接相关的活动通称为需求工程。n需求工程中的活动可分为两大类,一类属于需求开发,另一类属需求工程中的活动可分为两大类,一类属于需求开

10、发,另一类属于需求管理。于需求管理。n需求工程的结构图需求工程的结构图 10需求分析研究的对象是软件项目的用户要求需求分析研究的对象是软件项目的用户要求准确地表达被接受的用户要求准确地表达被接受的用户要求确定被开发软件系统的元素确定被开发软件系统的元素 软件需求分析的目标是深入描述软件的功能和性能,软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。定义软件的其它有效性需求。软件需求分析的目标和任务软件需求分析的目标和任务软件需求的几点说明:软件需求的几点说明:11软件需求分

11、析的目标和任务软件需求分析的目标和任务o需求分析的任务需求分析的任务就是借助于当前系统的逻辑模就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的型导出目标系统的逻辑模型,解决目标系统的 “做什么做什么”的问题。的问题。o通俗地说通俗地说,需求分析的任务就是准确地需求分析的任务就是准确地定义定义未来系统的目标,确定为了满足用户的需求未来系统的目标,确定为了满足用户的需求系统必须做什么。用系统必须做什么。用 规范的形式准确地表达用户的规范的形式准确地表达用户的需求需求。12o需求分析的任务就是借助于当前系统的需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解逻辑模

12、型导出目标系统的逻辑模型,解决目标系统的决目标系统的 “做什么做什么”的问题。的问题。13软件需求分析的目标和任务软件需求分析的目标和任务 逻辑模型逻辑模型 物理模型物理模型 现现行行系系统统目目标标系系统统描述重要的业务描述重要的业务功能,无论系统功能,无论系统是如何实施的。是如何实施的。描述现实系统是如何描述现实系统是如何在物理上实现的。在物理上实现的。描述新系统的主要业描述新系统的主要业务功能和用户新的需务功能和用户新的需求,无论系统应如何求,无论系统应如何实施。实施。描述新系统是如何实描述新系统是如何实施的(包括技术)。施的(包括技术)。14需求分析流程15需求分析过程示意图需求分析过

13、程示意图(1)通过对现实环境的调查,通过对现实环境的调查,获得当前系统的物理模型获得当前系统的物理模型学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书107107张张教务科教务科206206王王会计室会计室206206李李出纳员出纳员303303赵赵教材科教材科学生购买教材的物理模型学生购买教材的物理模型软件需求分析的目标和任务软件需求分析的目标和任务(2)去掉具体模型中非本质因素,去掉具体模型中非本质因素,抽抽象象出当前系统的逻辑模型出当前系统的逻辑模型 学生购买教材的逻辑模型学生购买教材的逻辑模型学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书审查审

14、查有效性有效性开发票开发票开领开领书单书单发书发书软件需求分析的目标和任务软件需求分析的目标和任务(3)分析当前系统与目标系统的差别,分析当前系统与目标系统的差别,建立目标系统的逻辑模型建立目标系统的逻辑模型 计算机售书系统的逻辑模型计算机售书系统的逻辑模型计算机售书系统的逻辑模型计算机售书系统的逻辑模型学学生生学学生生购书单购书单发票发票领书单领书单审查并审查并开发票开发票开领开领书单书单无效书单无效书单软件需求分析的目标和任务软件需求分析的目标和任务o通常软件开发项目是要实现目标系统的通常软件开发项目是要实现目标系统的物理模型。物理模型。o目标系统的具体物理模型是由它的逻辑目标系统的具体物

15、理模型是由它的逻辑模型经实例化,即具体到某个业务领域模型经实例化,即具体到某个业务领域而得到的。而得到的。软件需求分析的目标和任务软件需求分析的目标和任务19软件需求分析的任务和过程软件需求分析的任务和过程o需求的概念和层次需求的概念和层次o软件需求分析的目标和任务软件需求分析的目标和任务o需求分析的过程需求分析的过程o需求开发的主要困难与对策需求开发的主要困难与对策20问题识别问题识别分析与综合分析与综合编制需求编制需求分析文档分析文档需求评审需求评审软件需求分析过程图软件需求分析过程图21需求分析的过程问题识别需求分析的过程问题识别p从系统的角度来理解软件并评审从系统的角度来理解软件并评审

16、 软件软件范围是否恰当范围是否恰当p确定对目标系统的综合要求,即软件的确定对目标系统的综合要求,即软件的需求需求p提出这些需求实现条件,以及需求应达提出这些需求实现条件,以及需求应达到的标准到的标准22软件的需求包括:软件的需求包括:o功能需求功能需求o性能需求性能需求o环境需求环境需求o可靠性需求可靠性需求o安全保密要求安全保密要求o用户界面需求用户界面需求o资源使用需求资源使用需求o成本消耗需求成本消耗需求o开发进度需求开发进度需求o预先估计以后系统可能预先估计以后系统可能达到的目标达到的目标需求分析的过程问题识别需求分析的过程问题识别23问问题题识识别别的的另另一一项项工工作作是是建建立

17、立分分析析所所需需要要的的通通信信途径,以保证能顺利地对问题进行分析。途径,以保证能顺利地对问题进行分析。需求分析的过程问题识别需求分析的过程问题识别24p从从信息流和信息结构信息流和信息结构出发,逐步细化所有的软件出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详最终综合成系统的解决方案,给出目标系统的详细逻辑模型。细逻辑模

18、型。需求分析的过程分析与综合需求分析的过程分析与综合25o面向数据流的结构化分析方法(面向数据流的结构化分析方法(SASA)o面向数据结构的面向数据结构的JacksonJackson方法(方法(JSDJSD)o结构化数据系统开发方法(结构化数据系统开发方法(DSSDDSSD)o面向对象的分析方法(面向对象的分析方法(OOAOOA)等)等常用的分析方法:常用的分析方法:需求分析的过程分析与综合需求分析的过程分析与综合26编制需求分析阶段的文档编制需求分析阶段的文档p软件需求说明书软件需求说明书p数据要求说明书数据要求说明书p初步的用户手册初步的用户手册p修改、完善与确定软件开发实施计划修改、完善

19、与确定软件开发实施计划需求分析的过程编制文档需求分析的过程编制文档27o作为需求分析阶段工作的复查手段,应该对作为需求分析阶段工作的复查手段,应该对功能的正确性、文档的一致性、完备性、准功能的正确性、文档的一致性、完备性、准确性和清晰性,以及其它需求给予评价。确性和清晰性,以及其它需求给予评价。o为保证软件需求定义的质量,评审应以专门为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。评审指定的人员负责,并按规程严格进行。评审结束应有评审负责人的结论意见及签字。除结束应有评审负责人的结论意见及签字。除分析员之外,用户需求者,开发部门的管分析员之外,用户需求者,开发部门的管理

20、者,软件设计、实现、测试的人员都应当理者,软件设计、实现、测试的人员都应当参加评审工作。参加评审工作。需求分析的过程需求分析评审需求分析的过程需求分析评审28软件需求分析的任务和过程软件需求分析的任务和过程o需求的概念和层次需求的概念和层次o软件需求分析的目标和任务软件需求分析的目标和任务o需求分析的过程需求分析的过程o需求开发的主要困难与对策需求开发的主要困难与对策29需求开发的主要困难与对策需求开发的主要困难与对策o知识技能问题知识技能问题 n应用域的知识是无边无际的,任何人都不可能是应用域的知识是无边无际的,任何人都不可能是“万事通万事通”。俗话说。俗话说“隔行如隔山隔行如隔山”,需求分

21、析员可,需求分析员可能是某一领域的专家,但当他接手陌生的业务时,能是某一领域的专家,但当他接手陌生的业务时,他可能是个他可能是个“无知无知”者。一个企业要谋求发展,不者。一个企业要谋求发展,不能总在做老的业务。人一生中会有许多充满挫折的能总在做老的业务。人一生中会有许多充满挫折的“第一次第一次”,不可以逃避。,不可以逃避。n当需求分析员缺乏应用域知识时,他该怎么办?当需求分析员缺乏应用域知识时,他该怎么办?o首先他要有勇气做事,否则连实践的机会都没有。首先他要有勇气做事,否则连实践的机会都没有。o其次他应当赶紧补习应用域知识,不论是通过自学还是其次他应当赶紧补习应用域知识,不论是通过自学还是培

22、训的方式,否则他很难与用户交流。如果可能的话,培训的方式,否则他很难与用户交流。如果可能的话,开发方最好请既懂软件又懂应用域知识的行家来帮忙。开发方最好请既懂软件又懂应用域知识的行家来帮忙。30需求开发的主要困难与对策需求开发的主要困难与对策o态度问题态度问题 n相当多的开发人员习惯于被动地对待需求开发。每当遇到相当多的开发人员习惯于被动地对待需求开发。每当遇到麻烦、挫折时,他们会发牢骚,找出一堆用户的毛病。很麻烦、挫折时,他们会发牢骚,找出一堆用户的毛病。很多开发人员错误地以为:多开发人员错误地以为:o需求是用户的事情,不是我们的事情。我们为用户开发软需求是用户的事情,不是我们的事情。我们为

23、用户开发软件,难道用户不该告诉我们应当开发什么吗?如果用户说件,难道用户不该告诉我们应当开发什么吗?如果用户说不清楚需求,或者经常变更需求,这类问题是用户产生的,不清楚需求,或者经常变更需求,这类问题是用户产生的,应当由他们自己负责。应当由他们自己负责。n用户说不清楚需求或者需求发生变更,这些都是常见的问用户说不清楚需求或者需求发生变更,这些都是常见的问题,并不是绝症,是人们可以设法解决的。可悲的是开发题,并不是绝症,是人们可以设法解决的。可悲的是开发人员把这些问题当成了借口,不愿主动攻克问题,导致需人员把这些问题当成了借口,不愿主动攻克问题,导致需求问题扩散到整个软件开发过程,产生太多的后患

24、。求问题扩散到整个软件开发过程,产生太多的后患。n软件企业的领导应当给具有错误观念的开发人员们洗脑:软件企业的领导应当给具有错误观念的开发人员们洗脑:需求分析员的天职就是在有限的时间内获取准确而细致的需求分析员的天职就是在有限的时间内获取准确而细致的用户需求,如果做不到就是失职,不要找借口。用户需求,如果做不到就是失职,不要找借口。31需求开发的主要困难与对策需求开发的主要困难与对策o合作关系合作关系n如果需求分析员不能与用户建立良好的合作关系,那么如果需求分析员不能与用户建立良好的合作关系,那么他们在需求开发过程中会很疲惫。他们在需求开发过程中会很疲惫。n倘倘若若用用户户不不能能很很好好地地

25、配配合合需需求求分分析析员员,那那并并不不表表示示他他是是个个坏蛋坏蛋。因为用户有他自己的想法。因为用户有他自己的想法。n开开发发方方和和用用户户方方在在开开展展需需求求开开发发之之前前,双双方方协协商商并并撰撰写写“用用户户在在需需求求工工程程中中的的权权利利与与义义务务”,即即以以协协议议的的方方式式确确定定合合作作关关系系。“好好话话”和和“丑丑话话”都都说说在在前前头头,这这样样能能减减少少今今后后的的摩摩擦擦。如如果果条条件件允允许许的的话话,开开发发方方最最好好为为用用户户举举办办关关于于需需求求工工程程的的培培训训,这这样样的的培培训训将将使使用用户户明明白白需需求求的的重重要要

26、性性以以及及忽忽视视需需求求的的危危害害性性,从从而而促促使使他他们们积极友善地参加需求工程中的各项活动积极友善地参加需求工程中的各项活动。32需求开发的主要困难与对策需求开发的主要困难与对策o用户说不清楚需求用户说不清楚需求n用户说不清楚需求是普遍现象,这是让开发人员头痛的用户说不清楚需求是普遍现象,这是让开发人员头痛的大问题。大问题。n有有些些用用户户真真的的不不知知道道需需求求是是什什么么,或或者者对对需需求求只只有有朦朦胧胧的感觉,他当然说不清楚需求。的感觉,他当然说不清楚需求。o例如开发方的营销人员水平比较高,他能够在用户不清例如开发方的营销人员水平比较高,他能够在用户不清楚自己要什

27、么的情况下引导用户楚自己要什么的情况下引导用户“消费消费”。n有些用户虽然心里明白想要什么,但却说不清楚需求。有些用户虽然心里明白想要什么,但却说不清楚需求。n无论是什么原因导致用户说不清楚需求,需求分析员必无论是什么原因导致用户说不清楚需求,需求分析员必须设法搞清楚用户真正的需求,这是需求分析员的职责,须设法搞清楚用户真正的需求,这是需求分析员的职责,也是职业的挑战。也是职业的挑战。33需求开发的主要困难与对策需求开发的主要困难与对策o双方误解需求双方误解需求n人们在交流的时候,经常会发生人们在交流的时候,经常会发生“问非所求,答非所问问非所求,答非所问”的事情。的事情。n有时用户会把开发人

28、员的建议或答复给想歪了:有时用户会把开发人员的建议或答复给想歪了:o有一个软件开发人员滔滔不绝地向用户讲解在有一个软件开发人员滔滔不绝地向用户讲解在“信息高速公路上做广信息高速公路上做广告告”的种种好处,用户听得津津有味。最后,心动的用户对软件开发的种种好处,用户听得津津有味。最后,心动的用户对软件开发人员说:人员说:“好得很,就让我们马上行动起来吧。请您决定广告牌的尺好得很,就让我们马上行动起来吧。请您决定广告牌的尺寸和放在哪条高速公路上,我立即派人去做。寸和放在哪条高速公路上,我立即派人去做。”n而用户表达的需求,不同的开发人员可能有不同的理解。如果需求而用户表达的需求,不同的开发人员可能

29、有不同的理解。如果需求分析员误解了需求,那会导致后续的不少开发人员将错就错、白干分析员误解了需求,那会导致后续的不少开发人员将错就错、白干活。活。o有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主主宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜里双眼能射出强光。里双眼能射出强光。有趣的是,车里住着一种叫作有趣的是,车里住着一种叫作人人的寄生的寄生虫,这些寄生虫完全控制了车。虫,这些寄生虫完全控制了车。”n不论是复杂的项目还是简单的项目,需求分析员和用户都

30、有可能误不论是复杂的项目还是简单的项目,需求分析员和用户都有可能误解需求。解需求。所以需求确认工作(属于需求管理)必不可少。所以需求确认工作(属于需求管理)必不可少。34需求开发的主要困难与对策需求开发的主要困难与对策o开发人员写不好需求文档开发人员写不好需求文档 n需求调查工作不充分,获取的需求信息太少或者太乱,需求调查工作不充分,获取的需求信息太少或者太乱,以至于写不成需求文档。以至于写不成需求文档。o要想写出好的需求文档,前提条件是把需求调查工作做要想写出好的需求文档,前提条件是把需求调查工作做好。好。n开发人员写作能力比较差,虽然在调查过程中已经获得开发人员写作能力比较差,虽然在调查过

31、程中已经获得了不少需求信息,却写不出好的需求文档来。了不少需求信息,却写不出好的需求文档来。o可以毫不夸张地说,国内可以毫不夸张地说,国内90以上的软件开发人员,他以上的软件开发人员,他们的写作能力远不及开发能力。们的写作能力远不及开发能力。o提高开发人员写作能力的根本办法就是让他们多练习写提高开发人员写作能力的根本办法就是让他们多练习写文档,熟能生巧。文档,熟能生巧。o另外,企业应当提供合适的文档模板以及比较好的示例另外,企业应当提供合适的文档模板以及比较好的示例文档,尽可能地降低写作难度。文档,尽可能地降低写作难度。35需求开发的主要困难与对策需求开发的主要困难与对策o用户经常变更需求用户

32、经常变更需求n需求变更通常会对项目的进度、人力资源、经费产生很需求变更通常会对项目的进度、人力资源、经费产生很大的影响,这是开发商非常畏惧的问题。大的影响,这是开发商非常畏惧的问题。n如果在项目开发的初始阶段,开发人员和用户没有搞清如果在项目开发的初始阶段,开发人员和用户没有搞清楚需求或者搞错了需求,到了项目开发后期才将需求纠楚需求或者搞错了需求,到了项目开发后期才将需求纠正过来,导致产品的部分内容需要重新开发。毫无疑问,正过来,导致产品的部分内容需要重新开发。毫无疑问,这种需求变更将使项目付出额外的代价。这种需求变更将使项目付出额外的代价。这种损失是由这种损失是由于双方工作失误造成的,双方应

33、当好好反省,认真学习于双方工作失误造成的,双方应当好好反省,认真学习需求开发和管理的方法,避免再犯相似的错误。需求开发和管理的方法,避免再犯相似的错误。n由于市场变化而导致产品需求发生变更。由于市场变化而导致产品需求发生变更。n需求变更并不可怕需求变更并不可怕,可怕的是需求变更失去控制,导致,可怕的是需求变更失去控制,导致项目混乱。所以需求变更控制是需求工程的重要活动。项目混乱。所以需求变更控制是需求工程的重要活动。36第三章第三章 需求分析需求分析o软件需求分析的概念和软件需求分析的概念和任务任务o获取软件需求的方法获取软件需求的方法o结构化分析方法结构化分析方法o原型化方法原型化方法o动态

34、分析方法动态分析方法37获取软件需求的方法获取软件需求的方法o存在问题存在问题n需求理解偏差需求理解偏差n开发人员与用户沟通问题开发人员与用户沟通问题n需求更改问题需求更改问题n分析方法和工具问题分析方法和工具问题o常用方法:常用方法:P52o需求分析方法概述(原则)需求分析方法概述(原则)38软件需求分析的原则软件需求分析的原则一一.需要能够表达和理解问题的需要能够表达和理解问题的数据域数据域和和功能域功能域 数据域包括数据流数据域包括数据流,数据内容和数据结构数据内容和数据结构.39软件需求分析的原则软件需求分析的原则 二二二二.要能以层次化的方式对问题进行分解和不断要能以层次化的方式对问

35、题进行分解和不断要能以层次化的方式对问题进行分解和不断要能以层次化的方式对问题进行分解和不断 细化细化细化细化40软件需求分析的原则软件需求分析的原则三三.要给出系统的要给出系统的逻辑视图逻辑视图和和物理视图物理视图逻辑视图给出软件要达到的功能和处理数逻辑视图给出软件要达到的功能和处理数据之间的关系据之间的关系物理视图给处理功能和数据结构的实际表物理视图给处理功能和数据结构的实际表示形式示形式41第三章第三章 需求分析需求分析o软件需求分析的概念和软件需求分析的概念和任务任务o获取软件需求的方法获取软件需求的方法o结构化分析方法结构化分析方法o原型化方法原型化方法o动态分析方法动态分析方法42

36、软件需求分析方法简介软件需求分析方法简介o需求分析方法由对软件问题的需求分析方法由对软件问题的信息域信息域和和功能域功能域的系统分析过程及其表示方法组的系统分析过程及其表示方法组成成o大多数的需求分析方法是由大多数的需求分析方法是由信息驱动信息驱动的的o信息域具有三种属性信息域具有三种属性:信息流信息流、信息内信息内容容和和信息结构信息结构。43结构化分析方法结构化分析方法 o以数据流分析作为需求分析的出发点。以数据流分析作为需求分析的出发点。o结构化分析方法适合于数据处理类型软件的结构化分析方法适合于数据处理类型软件的需求分析需求分析o具体来说,结构化分析方法就是用具体来说,结构化分析方法就

37、是用抽象模型抽象模型的概念,按照软件内部的概念,按照软件内部数据传递数据传递、变换变换的关的关系,系,自顶向下逐层分解自顶向下逐层分解,直到找到满足功能,直到找到满足功能要求的所有可实现的软件为止要求的所有可实现的软件为止o结构化分析方法使用工具:数据流图,数据结构化分析方法使用工具:数据流图,数据词典,结构化英语,判定表与判定树词典,结构化英语,判定表与判定树44数据流图数据流图o数据流图中的主要图形元素数据流图中的主要图形元素45描述银行取款过程的数据流图描述银行取款过程的数据流图46数据流与数据加工之间的关系数据流与数据加工之间的关系47数据流图的层次结构数据流图的层次结构o为了表达数据

38、处理过程的数据加工情为了表达数据处理过程的数据加工情况,需要采用况,需要采用层次结构层次结构的数据流图。的数据流图。按照系统的层次结构进行按照系统的层次结构进行逐步分解逐步分解,并以分层的数据流图反映这种结构关并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系系,能清楚地表达和容易理解整个系统统4849o在多层数据流图中,在多层数据流图中,顶层流图顶层流图仅包含仅包含一个一个加工加工,它代表被开发系统。它的输入流是,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出该系统的输入数据,输出流是系统所输出数据数据o底层流图底层流图是指其是指其加工不需再做分解加工不需再

39、做分解的数据的数据流图,它处在最底层流图,它处在最底层o中间层流图中间层流图则表示则表示对其上层父图的细化对其上层父图的细化。它的每一加工可能继续细化,形成子图。它的每一加工可能继续细化,形成子图。数据流图的层次结构数据流图的层次结构50结构化分析方法步骤示例结构化分析方法步骤示例商店业务处理系统商店业务处理系统51o这个数据流图只是一个高层的系统逻辑模型,它这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能反映了目标系统要实现的功能o数据流图绘制步骤数据流图绘制步骤n首先确定系统的输入和输出首先确定系统的输入和输出n根据商店业务,画出顶层数据流图,以反映最主要业根据商店业务

40、,画出顶层数据流图,以反映最主要业务处理流程务处理流程n经过分析,商店业务处理的经过分析,商店业务处理的主要功能主要功能应当有应当有销售销售、采采购购、会计会计三大项。三大项。主要数据流输入的源点主要数据流输入的源点和和输出终点输出终点是是顾客顾客和和供应商供应商。n然后从输入端开始,根据商店业务工作流程,画出数然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层据流流经的各加工框,逐步画到输出端,得到第一层数据流图数据流图结构化分析方法步骤示例结构化分析方法步骤示例52第一层数据流图第一层数据流图53加细每一个加工框加细每一个加工框 销售细化销售细化5

41、4采购细化采购细化55检查和修改数据流图的原则检查和修改数据流图的原则o数据流图上所有图形符号只限于前述四种基本数据流图上所有图形符号只限于前述四种基本图形元素图形元素o数据流图的主图必须包括前述四种基本元素,数据流图的主图必须包括前述四种基本元素,缺一不可缺一不可o数据流图的主图上的数据流必须封闭在外部实数据流图的主图上的数据流必须封闭在外部实体之间体之间o每个加工至少有一个输入数据流和一个输出数每个加工至少有一个输入数据流和一个输出数据流据流o在数据流图中,需按层给加工框编号。编号表在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系明该加工所处层次及上下层的亲子关系

42、56o规定任何一个数据流子图必须与它上一层的一个规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡一致。此即父图与子图的平衡o可以在数据流图中加入物质流,帮助用户理解数可以在数据流图中加入物质流,帮助用户理解数据流图据流图o图上每个元素都必须有名字图上每个元素都必须有名字o数据流图中不可夹带控制流数据流图中不可夹带控制流o初画时可以忽略琐碎的细节,以集中精力于主要初画时可以忽略琐碎的细节,以集中精力于主要数据流数据流检查和修改数据流图的原则检查和修改数据流图的原则57数据词典数据词典o数据词典

43、与数据流图配合,能清楚地表达数据词典与数据流图配合,能清楚地表达数据处理的要求数据处理的要求o词条描述词条描述 对于在数据流图中每一个对于在数据流图中每一个被命名的图形元素,均加以定义,其内容被命名的图形元素,均加以定义,其内容有有:名字名字,别名或编号别名或编号,分类分类,描述描述,定定义义,位置位置,其它其它,等等58(1 1)数据流词条描述)数据流词条描述o数据流名:数据流名:n说明:简要介绍作用即它产生的原因和结果说明:简要介绍作用即它产生的原因和结果n数据流来源:来自何方数据流来源:来自何方n数据流去向:去向何处数据流去向:去向何处n数据流组成:数据结构数据流组成:数据结构n数据量流

44、通量:数据量,流通量数据量流通量:数据量,流通量59(2 2)数据元素词条描述)数据元素词条描述o数据元素名:数据元素名:n类型:数字(离散值,连续值),文字类型:数字(离散值,连续值),文字(编码类型)(编码类型)n长度:长度:n取值范围:取值范围:n相关的数据元素及数据结构:相关的数据元素及数据结构:60(3 3)数据文件词条描述)数据文件词条描述o数据文件名:数据文件名:n简述:存放的是什么数据简述:存放的是什么数据n输入数据:输入数据:n输出数据:输出数据:n数据文件组成:数据结构数据文件组成:数据结构n存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码n存取频率:存取频率:61

45、(4 4)加工逻辑词条描述)加工逻辑词条描述o加工名:加工名:n加工编号:反映该加工的层次加工编号:反映该加工的层次n简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述n输入数据流:输入数据流:n输出数据流:输出数据流:n加工逻辑:简述加工程序,加工顺序加工逻辑:简述加工程序,加工顺序62(5 5)源点及汇)源点及汇(终终)点词条描述点词条描述o名称:外部实体名名称:外部实体名n简要描述:什么外部实体简要描述:什么外部实体n有关数据流:有关数据流:n数目:数目:63数据结构的描述数据结构的描述 符符 号号 含含 义义 举举 例例 被定义为被定义为 与与 x x=a ab b.,.,.或或

46、 .|.|.或或 x x=a a,b b,x x=a a|b b .或或 m.n m.n 重复重复 x=x=a a,x x=3=3a a88(.)(.)可选可选 x x=(=(a a)“.”基本数据元素基本数据元素 x x=“a a”.连结符连结符 x x=1.9=1.964例子:存折格式的数据描述例子:存折格式的数据描述65o存折户名所号帐号开户日性质(印密)存折户名所号帐号开户日性质(印密)11存取行存取行5050o户名户名22字母字母2424o所号所号“001001”.“999999”o帐号帐号“0000000100000001”.“9999999999999999”o开户日年月日开户日

47、年月日o性质性质“1 1”.“6 6”注:注:“1 1”表示普通户,表示普通户,“5 5”表示工资户等表示工资户等o印密印密“0 0”注:印密在存折上不显示注:印密在存折上不显示o存取行日期(摘要)支出存入余额操作存取行日期(摘要)支出存入余额操作复核复核例子:存折格式的数据描述例子:存折格式的数据描述66 p对数据流图的每一个基本加工,必须有一个基本对数据流图的每一个基本加工,必须有一个基本加工逻辑说明加工逻辑说明p基本加工逻辑说明必须描述基本加工如何把输入基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则数据流变换为输出数据流的加工规则p加工逻辑说明必须描述实现加工

48、的策略而不是实加工逻辑说明必须描述实现加工的策略而不是实现加工的细节现加工的细节p加工逻辑说明中包含的信息应是充足的,完备的,加工逻辑说明中包含的信息应是充足的,完备的,有用的,没有重复的多余信息有用的,没有重复的多余信息基本加工逻辑说明基本加工逻辑说明67用于写加工逻辑说明的工具用于写加工逻辑说明的工具p结构化英语结构化英语p判定表判定表p判定树判定树68(1 1)结构化英语)结构化英语o结构化英语的词汇表由结构化英语的词汇表由n 英语命令动词英语命令动词n 数据词典中定义的名字数据词典中定义的名字n 有限的自定义词有限的自定义词n 逻辑关系词逻辑关系词 IF_THEN_ELSEIF_THE

49、N_ELSE、CASE_OF CASE_OF、WHILE_DOWHILE_DO、REPEAT_UNTILREPEAT_UNTIL等组成。等组成。69o是一种介于自然语言和形式化语言之间的是一种介于自然语言和形式化语言之间的语言语言o语言的语言的正文用基本控制结构进行分割正文用基本控制结构进行分割,加,加工中的工中的操作用自然语言短语来表示操作用自然语言短语来表示o其基本控制结构有三种:其基本控制结构有三种:n简单陈述句结构简单陈述句结构:避免复合语句;:避免复合语句;n重复结构重复结构:WHILE_DOWHILE_DO 或或 REPEAT_UNTILREPEAT_UNTIL结构。结构。n判定结

50、构判定结构:IF_THEN_ELSEIF_THEN_ELSE 或或 CASE_OFCASE_OF结构;结构;(1 1)结构化英语)结构化英语70商店业务处理系统中商店业务处理系统中“检查发货单检查发货单”IF IF 发货单金额超过发货单金额超过$500 THEN$500 THEN IF IF 欠款超过了欠款超过了6060天天 THENTHEN 在偿还欠款前不予批准在偿还欠款前不予批准 ELSE ELSE(欠款未超期)欠款未超期)发批准书,发货单发批准书,发货单 ENDIFENDIFELSE ELSE (发货单金额未超过发货单金额未超过$500$500)IF IF 欠款超过欠款超过6060天天

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁