资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件工程,第2章,软件项目的需求分析,第2章 软件项目的需求分析,本章要点,1、了解软件需求分析的原则和任务,2、了解软件需求的获得方法,3、掌握结构化分析方法及其描述工具,4、了解需求规格说明和需求评审的主要内容,需求与需求分析,一、需求分析的,特点,需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户,非形式,的需求陈述转化为,完整的需求定义,,再由需求定义转换到相应的形式功能规约(,需求规格说明,)的过程。,需求与需求分析,需求分析,难点,主要体现在以下几个方面:,1、问题的复杂性,2、交流障碍,3、不完备性和不一致性,4、需求易变性,需求与需求分析,二、需求分析的,任务,需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“,做什么,”的问题。,需求与需求分析,用户需求分为两大类:,功能性需求,和,非功能性需求,。,前者定义了系统做什么,包括系统的所有输入、输出以及如何从输入映射到输出;后者定义了系统工作时的特性,例如系统对效率、可靠性、安全性、可维护性、可移植性、吞吐量以及符合某种标准等的要求。,需求分析的,任务,就是借助于当前系统的逻辑模型导出,目标系统的逻辑模型,解决目标系统是“,做什么,”的问题。,需求与需求分析,三、需求分析的,步骤,1、,问题识别,双方确定对问题的综合需求。这些需求包括:,(1),功能需求,:指所开发的软件必须具备什么样的功能,这是最重要的。,(2),性能需求,:指待开发的软件的技术性能指标,如存储容量、运行时间等限制。,需求与需求分析,(3),环境需求,:指软件运行时所需要的软、硬件(如机型、外设、操作系统和数据库管理系统等)的要求。,(4),用户界面需求,:即人机交互方式、输入输出数据格式等。,需求与需求分析,2、分析与综合,导出软件的,逻辑模型,分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成分,并用图文结合的形式,建立起新系统的逻辑模型。,需求与需求分析,3、,编写文档,(1)编写“,需求说明书,”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。,需求与需求分析,(2)编写初步,用户使用手册,,着重反映被开发软件的用户功能界面和用户使用的具体要求。,(3)编写,确认测试计划,,作为今后确认和验收的依据。,(4)修改完善,项目开发计划,。,需求与需求分析,4、需求分析,评审,系统定义的目标是否与用户的要求一致,系统需求分析阶段提供的文档资料是否齐全,文档中所有描述是否完整、清晰、准确反映用户要求,与所有其他系统成分的重要接口是否都已经描述,需求与需求分析,四,、需求分析的,原则,1、,划分,(可以把一个复杂问题按功能进行分解并可逐层细化),需求与需求分析,2、,抽象,(捕获问题空间的“一般/特殊”或“特例”关系),3、,投影,(捕获问题空间的多维“视图”),结构化分析,一、结构化方法概述,1、,结构化方法,结构化方法是软件工程产生后首先提出来的软件开发方法,它也是一种实用的开发方法,由,结构化分析,、,结构化设计,和,结构化程序设计,构成。,结构化分析,2、基本,思想,:,该方法基于模块化的思想,采用“,自顶向下,逐步求精,”的技术对系统进行划分。,分解和抽象是它的两个基本手段。,结构化分析,3、,特点,它是使用最早的开发方法,使用时间也最长,是面向数据流进行需求分析的方法,非常适合于数据处理类型的软件的需求分析,相应的支持工具多,发展较为成熟,结构化分析,4、,优点,:,(1)简单、实用,(2)适合于瀑布模型,易为开发者掌握,(3)成功率较高,(4)特别适合于数据处理中的应用,对其他领域的领域也基本适应,结构化分析,5、,存在问题,(1)对于规模较大的项目,特别复杂的应用不太适应,(2)难于解决软件重用的问题,(3)难于适应需求的变化,(4)难于彻底解决维护问题,结构化分析,二、,数据流图,Data-flow diagram, DFD,数据流图是SA方法中用于表示系统逻辑模型的一种工具,它以图形的形式描绘数据在系统中流动和处理的过程。,结构化分析方法把任何软件系统都视作一个数据变换装置,它接受各种形式的输入,通过变换产生各种形式的输出。,结构化分析,DFD就是一种描述数据变换的图形工具,是结构化分析方法最普遍采用的表示手段,但,数据流图,并不是结构化分析模型的全部,,数据字典,和,小说明,为数据流图提供了补充,并用以验证图形表示的正确性、一致性和完整性,三者共同构成了结构化分析的模型。,结构化分析,1、,基本图形符号,(数据流图的四个基本成分),方框,表示数据的源点或终点,圆或椭圆,表示加工,结构化分析,1、,基本图形符号,(数据流图的四个基本成分),双杠,表示数据存储,箭头,表示数据流,结构化分析,加工,:是对数据进行处理的单元,它接受一定的输入数据,对其进行处理,并产生输出。,数据存储,:信息的静态存储。,结构化分析,数据源或终点,:表示系统和环境的接口,是系统之外的实体,可以是人、物或其他软件系统。其中,数据源是数据数据流的起点,终点是数据流的最终目的地。,数据流,:表示数据和数据流向。,结构化分析,2、,实例,:飞机票预订系统,问题描述,:旅行社凭订票单进行机票的预订,售票员查询航班目录文件,检查是否有满足预订条件的机票,如果有,那么将费用记入记帐文件,并准备机票,最后将帐单和机票交给旅客。,旅行社,旅客,预订,机票,准备,机票,记帐,订票单,航班目录,记帐文件,航班,机票,费用,帐单,飞机票预订系统的数据流图,结构化分析,加工的命名规则:,每个加工都要有名字,加工的名字最好使用动宾词组,在分层的数据流图中,加工还应编号,顶层的加工名就是软件项目的名字,结构化分析,数据流:,数据流表示数据和数据流向,通常由一组数据项组成。,数据流可以从加工流向加工,也可以从数据源流向加工,从加工流向终点,还可以从加工流向数据存储文件,或从数据存储文件流向加工,一般流入或流出数据存储文件的数据流不需要标出名字,有数据存储的名字就可以了。,结构化分析,两个加工之间可以有多个数据流,这些数据流之间没有任何联系,数据流图也不表明它们的先后次序。,数据流命名方法:,数据流的名字用名词,或名词词组;命名时应尽量使用现实系统中已有的名字;把现实环境中传递的一组数据(这组数据组成一个数据流)中最重要的那个数据的名字作为数据流的名字,结构化分析,数据存储文件的命名方法:,和数据流的命名方法相似。数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。,结构化分析,数据源和终点:,表示系统和环境的接口,是系统之外的实体,命名时应符合环境的真实情况。,结构化分析,3、数据流图的,层次结构,比较大的软件系统的数据流图有上百张,多至上千张。把整个系统画在一张图中,不仅凌乱,而且层次不清、难以理解,有必要把数据流图分成多层。数据流图之间用编号反映系统的层次结构。,结构化分析,4、画数据流图,(1)画系统的输入输出,画系统的输入输出即先画系统的顶层数据流图。,下图为飞机机票预订系统的顶层图:,旅行社,旅客,飞机票,预订系统,订票单,机票,帐单,飞机票预订系统顶层图,结构化分析,(2)画系统内部,画系统内容即画下层数据流图。一般将层号从0开始编号,采用自顶向下,由外向内的原则。,结构化分析,5、实例:描述银行取款过程的数据流图,取款过程的描述:储户凭借存折到银行取款,银行工作人员对存折的合法性进行检验,检验的过程需要读取银行的帐卡,如果不符合取款条件,那么将检验出的问题告知储户,如果符合取款条件,进行记帐处理,将取款信息写入帐卡和存折,进行付款操作,将现金和存折交给储户。,描述银行取款过程的数据流图,结构化分析,三、数据字典,数据字典,以一种准确的和无二义的方式定义所有被加工引用的数据流和数据存储,通常包括三类内容:数据流、数据存储、数据项。,例如:存折,结构化分析,四、小说明,小说明,是用来描述加工的,在一个分层的数据流图中,上层的加工通过细化分解为下层的更具体的加工。原则上,只要说明了最底层的基本加工,就可以理解上层的加工,所以可以只描述基本加工。,结构化分析,小说明集中描述一个加工“做什么”,即加工逻辑,指用户对这个加工的逻辑要求,这个加工的输入数据和输出数据的逻辑关系。,目前小说明一般还是用,自然语言,、,结构化自然语言,、,判定表,和,判定树,等来描述。,结构化分析,1、结构化自然语言(结构化英语),结构化自然语言是介于,形式语言,和,自然语言,之间的一种语言,它虽然没有形式语言那样严格,但具有自然语言简单易懂的特点,同时又避免了自然语言结构松散的缺点。,结构化分析,结构化自然语言的语法通常分为,内外两层,,外层语法描述操作的,控制结构,,如顺序、选择、循环等,这些控制结构将加工中的各个操作连接起来。内层语法一般没有什么限制,就用,自然语言,描述。,例如:商店业务系统处理中“检查发货单”,结构化分析,2、判定表,判定表常用来描述一些不易用语言表达清楚或需要很大篇幅才能用语言表达清楚的加工。,结构化分析,例如:在飞机票预订系统中,在旅游旺季的510月份,如果订票超过20张,优惠票价的15%;20张以下,优惠5%;在旅游淡季的14,1112月份,定票超过20张,优惠票价的30%;20张以下,优惠20%。,结构化分析,旅游时间,510月,14,1112月,订票量,20,20,20,20,折扣量,5%,15,20%,30%,结构化分析,3、判定树,判定树用图形形式描述加工逻辑,其特点是结构清晰,易读易懂。,例如:,结构化分析,五、实施步骤,1、确定系统边界,画出系统环境图,2、自顶向下,画出各层数据流图,就是对加工进行“逐层分解”,直到底层的加工足够简单,功能清晰易懂,不必再继续分解为止。,结构化分析,3、定义数据字典,定义各层数据流图中包含的所有数据流和数据存储。,4、定义小说明,定义最底层数据流图中包含的所有加工。,结构化分析,5、汇总前面各步的结果,(1)模型平衡原则,(2)控制复杂性的一些规则,结构化分析,六、,需求规格说明书,它是需求分析阶段产生的一份最重要的文档,它以一种一致的、无二义的方式准确地表达用户的需求。需求规格说明书主要起以下三方面的作用:,1、作为软件开发机构和用户之间一份事实上的技术合同书,2、作为软件开发机构下一步进行设计和编码的基础,3、作为测试和验收目标系统的依据,实例,某企业销售管理系统,描述如下:,(1)接受顾客的订单,检验订单。若库存有货,则进行供货处理,即修改库存,给仓库开备货单,并将订单留底;若库存不足,则将缺货订单登入缺货记录。,(2)根据缺货记录进行缺货处理,将缺货通知单发给采购部门,以便采购。,(3)根据采购部门发来的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货单进行供货处理。,(4)根据留底的订单进行销售统计,打印统计表给经理。,(1)接受顾客的订单,检验订单。若,库存有货,则进行供货处理,即修改库,存,给仓库开备货单,并将订单留底;,若库存不足,则将缺货订单登入缺货记录。,顾客,检验订单,供货处理,(2)根据缺货记录进行缺货处理,将,缺货通知单发给采购部门,以便采购。,(3)根据采购部门发来的进货通知单,处理进货,即修改库存,并从缺货记录,中取出缺货单进行供货处理。,缺货处理,采购部门,处理进货,供货处理,(4)根据留底的订单进行销售统计,,打印统计表给经理。,销售统计,经理,我们采用结构化方法(,SA,)画出销售管理系统的分层,DFD,。请根据上述分析的结果将以下DFD图补充完整。,销售管理系统,顾客,仓库,经理,采购部门,进货通知单,(1),(2),(3),(4),顶层图,处理订单,1,处理供货,2,处理缺货,4,(7),3,(8),5,订单,可供货订单,(5),(6),缺货通知单,进货通知单,统计表,订单记录,缺货订单,备货单,原缺货现可,供货订单,0层图,检验订单,1.1,确定能否供货,1.2,订单,合格订单,可供货订单,库存记录,缺货记录,根据供货单,修改库存,2.1,开备货单,2.2,备货单,登记过的订单,可供货订单,订单记录,库存记录,1层图,根据进货单,修改库存3.1,处理缺货订单,3.2,进货通知单,核对后进货单,订单变更信息,库存记录,缺货记录,汇总各项缺货单,4.1,打印缺货,通知单,4.2,缺货通知单,缺货量,缺货记录,修改缺货记录,3.3,可供货订单,1层图,按顾客,所在地区统计,5.2,日期,顾客区域,统计表,统计选择,5.1,顾客名,货物,订单记录,按销售日期统计,5.3,(9),5.4,(10),5.5,1层图,销售管理系统,补充完整的数据流图:,我们采用结构化方法(,SA,)画出销售管理系统的分层,DFD,。请根据上述分析的结果将以下DFD图补充完整。,销售管理系统,顾客,仓库,经理,采购部门,进货通知单,订单,备货单,缺货通知单,统计表,顶层图,处理订单,1,处理供货,2,处理缺货,4,处理进货,3,销售统计,5,订单,可供货订单,缺货记录,库存记录,缺货通知单,进货通知单,统计表,订单记录,缺货订单,备货单,原缺货现可,供货订单,0层图,检验订单,1.1,确定能否供货,1.2,订单,合格订单,可供货订单,库存记录,缺货记录,根据供货单,修改库存,2.1,开备货单,2.2,备货单,登记过的订单,可供货订单,订单记录,库存记录,1层图,根据进货单,修改库存3.1,处理缺货订单,3.2,进货通知单,核对后进货单,订单变更信息,库存记录,缺货记录,汇总各项缺货单,4.1,打印缺货,通知单,4.2,缺货通知单,缺货量,缺货记录,修改缺货记录,3.3,可供货订单,1层图,按顾客,所在地区统计,5.2,日期,顾客区域,统计表,统计选择,5.1,顾客名,货物,订单记录,按销售日期统计,5.3,按销售,货物名统计,5.4,按顾客名统计,5.5,1层图,销售管理系统,数据字典,是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。,销售管理系统,数据流,条目给出了DFD中数据流的定义,通常列出该数据流的各组成数据项。例如:,数据流名称:订单,别名:无,简述:顾客订货时填写的项目,来源:顾客,去向:加工1“检验订单”,数据流量:1000份/周,组成:编号订货日期顾客编号地址电话银行账号货物名称规格数量,销售管理系统,数据存储,条目是对数据存储的定义,例如:,数据存储名称:库存记录,别名:无,简述:存放库存所有可供货物的信息,组成:货物名称编号生产厂家单价库存量,组织方式:索引文件,以货物编号为关键字,查询要求:要求能立即查询,销售管理系统,数据项,条目是不可再分解的数据单位,例如:,数据项名称:货物编号,别名:GNo,Gnum,GoodsNo,简述:本公司的所有货物的编号,类型:字符串,长度:10,取值范围及含义:第1位:进口/国产,第24位:类别,第57位:规格,第810位:品名编号,销售管理系统,加工,条目是用来说明DFD中基本加工的处理逻辑的,由于上层的加工是由下层的基本加工分解而来,只要有了基本加工的说明,就可理解其他加工。,销售管理系统,例如:,加工名:确定能否供货,编号:1.2,激发条件:接收到合格订单时,优先级:普通,输入:合格订单,输出:可供货订单、缺货订单,加工逻辑:根据库存记录,IF 订单项目的数量该项目库存量的临界值,THEN 可供货处理,ELSE 此订单缺货,登录,待进货后再处理,ENDIF,加工逻辑的描述,加工逻辑也称为“,小说明,”,描述加工逻辑一般用结构化语言、判定表及判定树。,加工逻辑的描述,例如,某数据流图中有一个“,确定保险类别,”的加工,指的是申请汽车驾驶保险时,要根据申请者的情况确定不同的保险类别。,加工逻辑的描述,加工逻辑,为:如果申请者的年龄在21岁以下,要额外收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身男性,适用于C类保险。除此之外的其他申请者都适用于A类保险。,加工逻辑的描述,请用,判定表,和,判定树,将上述加工逻辑描述出来。,“确定保险类别”的判定表,构造判定表,可采取以下步骤:,(1)提取问题中的,条件,:条件是年龄、性别及婚姻。,(2)标出,条件的取值,:为绘制判定表方便,用符号代替条件的取值,如下表:,条件取值表,条件名,取值,符号,取值数m,年龄21,2126,年龄,C,Y,L,m13,男,女,性别,M,F,m22,未婚,已婚,婚姻,S,E,m32,“确定保险类别”的判定表,(3)计算所有条件的,组合数N,:m1*m2*m3=3*2*2=12,(4)提取可能采取的,动作,或措施:适用于A类保险、B类保险、C类保险和额外收费。,(5)制作判定表,如下表所示:,1,2,3,4,5,6,7,8,9,10,11,12,年龄,性别,婚姻,A类保险,B类保险,C类保险,额外收费,C,F,S,C,C,C,Y,Y,Y,Y,L,L,L,L,F,F,F,F,F,M,M,M,M,M,M,S,S,S,S,S,E,E,E,E,E,E,判定表,其中:编号112为每一列规则的序号;“”表示选取的动作。,“确定保险类别”的判定表,(6),完善判定表,:初始的判定表可能不完善,表现在两个方面。第一,缺少判定列中应采取的动作。第二,有冗余的判定列。,1,2,3,4,5,6,7,8,9,10,11,12,年龄,性别,婚姻,A类保险,B类保险,C类保险,额外收费,C,F,S,C,C,C,Y,Y,Y,Y,L,L,L,L,F,F,F,F,F,M,M,M,M,M,M,S,S,S,S,S,E,E,E,E,E,E,判定表,其中:编号112为每一列规则的序号;“”表示选取的动作。,1,2,3,4,5,6,7,8,年龄,性别,婚姻,A类保险,B类保险,C类保险,额外收费,C,F,C,C,Y,Y,Y,L,L,F,F,M,M,M,M,M,S,S,E,E,完善后的判定表,其中:编号112为每一列规则的序号;“”表示选取的动作。,确定,保险,类别,男性,女性,年龄,21,未婚,已婚,C类保险且额外收费,B类保险且额外收费,2126,B类保险,年龄,21,C类保险且额外收费,年龄21,A类保险,判定树,本章小结,需求分析的特点、难点、任务、步骤、原则。,结构化方法:SA, SD, SP。,结构化分析:数据流图DFD、数据字典、小说明。,9,、静夜四无邻,荒居旧业贫。,2024/11/27,2024/11/27,Wednesday, November 27, 2024,10,、雨中黄叶树,灯下白头人。,2024/11/27,2024/11/27,2024/11/27,11/27/2024 12:41:51 PM,11,、以我独沈久,愧君相见频。,2024/11/27,2024/11/27,2024/11/27,Nov-24,27-Nov-24,12,、故人江海别,几度隔山川。,2024/11/27,2024/11/27,2024/11/27,Wednesday, November 27, 2024,13,、乍见翻疑梦,相悲各问年。,2024/11/27,2024/11/27,2024/11/27,2024/11/27,11/27/2024,14,、他乡生白发,旧国见青山。,27 十一月 2024,2024/11/27,2024/11/27,2024/11/27,15,、比不了得就不比,得不到的就不要。,十一月 24,2024/11/27,2024/11/27,2024/11/27,11/27/2024,16,、行动出成果,工作出财富。,2024/11/27,2024/11/27,27 November 2024,17,、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。,2024/11/27,2024/11/27,2024/11/27,2024/11/27,9,、没有失败,只有暂时停止成功!。,2024/11/27,2024/11/27,Wednesday, November 27, 2024,10,、很多事情努力了未必有结果,但是不努力却什么改变也没有。,2024/11/27,2024/11/27,2024/11/27,11/27/2024 12:41:51 PM,11,、成功就是日复一日那一点点小小努力的积累。,2024/11/27,2024/11/27,2024/11/27,Nov-24,27-Nov-24,12,、世间成事,不求其绝对圆满,留一份不足,可得无限完美。,2024/11/27,2024/11/27,2024/11/27,Wednesday, November 27, 2024,13,、不知香积寺,数里入云峰。,2024/11/27,2024/11/27,2024/11/27,2024/11/27,11/27/2024,14,、意志坚强的人能把世界放在手中像泥块一样任意揉捏。,27 十一月 2024,2024/11/27,2024/11/27,2024/11/27,15,、楚塞三湘接,荆门九派通。,十一月 24,2024/11/27,2024/11/27,2024/11/27,11/27/2024,16,、少年十五二十时,步行夺得胡马骑。,2024/11/27,2024/11/27,27 November 2024,17,、空山新雨后,天气晚来秋。,2024/11/27,2024/11/27,2024/11/27,2024/11/27,9,、杨柳散和风,青山澹吾虑。,2024/11/27,2024/11/27,Wednesday, November 27, 2024,10,、阅读一切好书如同和过去最杰出的人谈话。,2024/11/27,2024/11/27,2024/11/27,11/27/2024 12:41:51 PM,11,、越是没有本领的就越加自命不凡。,2024/11/27,2024/11/27,2024/11/27,Nov-24,27-Nov-24,12,、越是无能的人,越喜欢挑剔别人的错儿。,2024/11/27,2024/11/27,2024/11/27,Wednesday, November 27, 2024,13,、知人者智,自知者明。胜人者有力,自胜者强。,2024/11/27,2024/11/27,2024/11/27,2024/11/27,11/27/2024,14,、意志坚强的人能把世界放在手中像泥块一样任意揉捏。,27 十一月 2024,2024/11/27,2024/11/27,2024/11/27,15,、最具挑战性的挑战莫过于提升自我。,十一月 24,2024/11/27,2024/11/27,2024/11/27,11/27/2024,16,、业余生活要有意义,不要越轨。,2024/11/27,2024/11/27,27 November 2024,17,、一个人即使已登上顶峰,也仍要自强不息。,2024/11/27,2024/11/27,2024/11/27,2024/11/27,MOMODA POWERPOINT,Lorem ipsum dolor sit, eleifend nulla ac, fringilla purus. Nulla iaculis tempor felis amet, consectetur adipiscing elit. Fusce id urna blanditut cursus.,感谢您的下载观看,专家告诉,内容总结,软件工程第2章 软件项目的需求分析。前者定义了系统做什么,包括系统的所有输入、输出以及如何从输入映射到输出。文档中所有描述是否完整、清晰、准确反映用户要求。2、抽象(捕获问题空间的“一般/特殊”或“特例”关系)。它是使用最早的开发方法,使用时间也最长。二、数据流图Data-flow diagram, DFD。数据存储:信息的静态存储。每个加工都要有名字,加工的名字最好使用动宾词组。数据流表示数据和数据流向,通常由一组数据项组成。数据流命名方法:数据流的名字用名词,或名词词组。1、结构化自然语言(结构化英语)。判定表常用来描述一些不易用语言表达清楚或需要很大篇幅才能用语言表达清楚的加工。14,1112月。1、确定系统边界,画出系统环境图。定义各层数据流图中包含的所有数据流和数据存储。若库存不足,则将缺货订单登入缺货记录。(2)根据缺货记录进行缺货处理,将。缺货通知单发给采购部门,以便采购。查询要求:要求能立即查询。专家告诉,
展开阅读全文