资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第3章 软件需求分析管理,教学目标,通过本章学习后应掌握软件需求分析的任务、方法和过程,熟练掌握面向数据流的分析方法,结构化分析方法。初步具备小型系统的分析能力,并能编写软件需求规格说明书。,教学内容,3.1软件需求分析概述,3.2结构化分析方法,3.3软件快速原型化开发方法,3.4如何做好需求分析,3.5案例分析,3.1 软件需求分析概述,软件需求分析的目标,软件需求分析的原那么,软件需求分析的过程,3.1.1 软件需求的目标,在需求分析阶段, 仍然不是具体地解决问题,而是准确地定义系统要解决什么问题,弄清楚系统究竟要“做什么,任务是确定目标系统必须具备哪些功能。,软件需求分析的目标是深入描述软件的功能和性能要求,确定软件设计的约束条件和软件同其他系统的关系,定义软件的其他有效性需求。,3.1.2 软件需求分析的原那么,需要能够表达和理解问题的,信息域,和,功能域,要能以层次化的方式对问题进行,分解,和不断,细化,需要给出系统的,逻辑视图,和,物理视图,3.1.3 软件需求分析的过程,问题识别,分析与综合,制订软件需求规格说明书,需求评审,需求分析的过程,(1) 问题识别, 从系统的角度来理解软件并评审 软件范围是否恰当, 确定对目标系统的综合要求,即软件的需求, 提出这些需求实现条件,以及需求应到达的标准,软件的需求包括:,功能需求,性能需求,环境需求,可靠性需求,平安保密要求,用户界面需求,资源使用需求,本钱消耗需求,开发进度需求,预先估计以后系统可能到达的目标,(2) 分析与综合,从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的局部,增加其需要局部。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。,(3) 编制需求分析阶段的文档, 软件需求说明书, 数据要求说明书, 初步的用户手册, 修改、完善与确定软件开发实施方案,(4),需求分析评审,系统定义的目标是否与用户的要求一致;,系统需求分析阶段提供的文档资料是否齐全;,文档中的所有描述是否完整、清晰、准确反映用户要求;,与所有其它系统成分的重要接口是否都已经描述,;,1 通过对现实环境的调查,获得当前系统的物理模型。,学,生,学,生,购,书,申,请,购书,单,发,票,领,书,单,书,信北,107,张,教务科,信北,206,王,会计室,信北,206,李,出纳员,(实南),赵,教材科,学生购置教材的实际处理流程:当前系统物理模型,需求分析的过程实例,需求分析的过程实例,2 去掉具体模型中的非本质因素:,抽取现实系统的实质,抽象出当前系统的逻辑模型。,学,生,学,生,购,书,申,请,购书,单,发,票,领,书,单,书,审查,有效性,开发票,开领,书单,发书,学生购置教材的逻辑模型,需求分析的过程实例,3 分析当前系统与目标系统的差异,建立目标系 统的逻辑模型 。,学,生,审查并,开发票,购书单,发票,领书单,开领,书单,无效书单,学,生,计算机教材管理系统的逻辑模型,需求分析的过程,4 对目标系统的逻辑模型进行细化、改进与优化,5 需求分析的验证,当前,系统,目标,系统,物理,模型,逻辑,模型,逻辑,模型,物理,模型,模型化,抽象化,具体化,实例化,怎,么,做,做,什,么,当前,系统,目标,系统,需,求,定,义,需求分析的过程,3.2,结构化分析方法,结构化分析方法概述,数据流图,数据字典,处理说明,3.2.1 结构化分析方法概述,结构化分析Structured Analysis,SA是由Douglas Ross 提出的,由DeMarco进行推广的。,采用自顶向下、逐层进行功能分解的系统分析方法来定义系统的需求。,适用于分析大型的数据处理系统。,方法的特点:利用数据流图Data Flow Diagram,DFD来帮助理解问题,对问题进行分析。,一般工具:DFD、数据字典、结构化英语、判定表、判定树等。,3.2.2 数据流图,数据流图DFD,Data Flow Diagram是描述数据处理过程的强有力工具。数据流图描述的是系统的逻辑模型,仅仅描述数据在系统中的流动和处理情况,并不涉及具体的物理元素。由于其具有图形的直观性,即使不是计算机软件人员也很容易理解,所以是极好的用户需求表达工具,设计数据流图时只考虑系统必须完成的根本逻辑功能,而不需要考虑如何具体地实现这些功能。,1数据流图符号,数据流图的4种根本成分,外部项原点和汇点,外部项是指系统以外的事物或人,它表达了该系统数据的外部来源或去处,用方框表示之。,处理加工,处理表达了对数据的逻辑加工或变换功能:对数据的加工处理的结果,或者是变换了数据的结构,或者是在原有数据的根底上产生新的数据。处理用圆表示。,数据流,数据流指示数据的流动方向,用单箭头表示。,数据存储,数据存储指明了保存数据的地方。不代表具体的存储介质。数据存储使用右端开口的矩形框表示。,2 设计数据流图的步骤,确定系统的输入和输出,由外向内画系统的顶层数据流图,自顶向下逐层分解,给出分层数据流层,分层DFD实例,一个简单的考务处理系统功能描述:,(1)对考生送来的报名单进行检查;,(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;,(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;,(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;,(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。,考,生,考务,处理系统,考,试,中,心,阅卷站,不合格报名单,报名单,准考证,考生通知单,成,绩,清,单,合格标准,错误成绩,清单,考生名,单,统计分析表,顶层数据流图,登记,报名单,报名单,准考证,1,统计成绩,2,不合格,报名单,考生通知单,成,统计分析表,考生名册,绩,清,单,合,格,标,准,考生名,单,成,绩,清,单,错,误,0层数据流图,1层数据流图 (a),检查,报名单,报名单,准考证,1.1,编准考证号,1.2,不合格,报名单,考生名册,考生名单,合格,报名单,登记,考生,1.3,一层数据流图 (b),检查,成绩清单,2.1,审定,合格者,2.2,考生名册,正确,成绩清单,制作,通知单,2.3,分析,统计成绩,2.4,分析,试题难度,2.5,试题得分清单,考生,通知单,难度,分析表,合格,标准,分类,统计表,成绩清单,错误,成绩清单,经审定的,成绩清单,数据流图分解原那么,DFD可以用来表示一个系统或软件在任何层次上的抽象。 较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步的细节。,0层数据流图应当把系统或软件作为一个单一的功能来描述。,应当注意原始的输入和输出。,每个过程的每次细化一般控制在34个分过程。,所有圆圈和箭头应用有意义的名称标注。一个名称标注在 同一个DFD中只能出现一次。,每次细化时,细化局部的输入和输出必须保持一致,即保持信息流连续性,有时称为平衡。,一次最好只对一个圆圈细化。,3.2.3 数据字典 DD,数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及,精确的、严格的,定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解。,1数据字典的组成元素,数据字典由以下4类元素的定义组成:,数据流;,数据元素数据流分量,数据存储,处理,2数据字典的定义,1顺序:以先后次序连接两个或多个分量。如:图书发票包括书号、单价、数量和总价等信息。,2选择:从两个或多个可能的元素中选取一个,如:图书类型可以从计算机、外语、文学等类型中选取一个。,3重复:把指定的分量重复零次或屡次。如一次销售的图书类型可以有多种,客户一次订购的商品可以有多种。,数据结构定义式符号,3数据字典的实现,(1)人工方法,(2)自动方法(利用字典管理程序),DD应具特点,(1)通过名字可方便查阅数据定义,(2)无冗余,(3)易更新修改,数据字典的内容,名称,数据项或控制项、数据存储或外部实体的主要名称。要求命名唯一性、一致性、“见名知义。,别名alias,最早使用的另一个名称,何处用/如何用,使用数据或控制项的加工列表,以及如何使用。,内容描述,表示内容的符号。,附加信息,关于数据类型、预设值、限制或局限等信息。,购,书,单,发票,领书,单,审查并,开发票,开领,书单,无效书单,学生,1,2,各班学生,用 书 表,举例:,学生,教材存量表,数据流条目说明举例,数据流名:发票,别名: 无,简述: 学生购书时填写的工程,来源: 学生,去向: 加工1“审查并开发票,组成: (学号)姓名书号数量,数据流量:1000次/周,顶峰值:开学期间1000次/天,数据存储条目,(,数据文件词条,),对某个文件的定义,包括:,文件名,描述,数据结构,数据存储方式,关键码,存取频率和数据量,平安性要求,数据存储条目说明举例,文件名:,库存记录,别名:,无,简述:,存放库存所有可供货物的信息,组成,:,货物名称编号生产厂家,单价库存量,组织方式,:索引文件,以货物编号为,关键字,查询要求:,要求能够立即查询,数据项条目(,数据元素词条,),不可再分解的数据单位,包括:,名称,描述,数据类型,长度,(,精度,),取值范围及缺省值,计量单位,相关数据元素及数据结构,数据项条目说明举例,数据项名:货物编号,别名:G-No,G-num,简述:本公司的所有货物的编号,类型:字符串,长度:10,取值范围及含义:,第1位:JG (进口/国产),第24位:LB01. LB29 (类别),第57位:“A00.“A99 (规格),第810位:“001.“999(品名编号),3,.,2,.,4,处理说明,处理说明就是加工逻辑说明。对数据流图的每一个根本加工,必须有一个根本加工逻辑说明,根本加工逻辑说明必须描述根本加工如何把输入数据流变换为输出数据流的加工规那么。加工逻辑说明必须描述实现加工的策略而不是实现加工的细节,同时加工逻辑说明中包含的信息应是充足的,完备的,有用的,没有重复的多余信息。,1加工逻辑词条描述,加工名:,加工编号:反映该加工的层次,简要描述:加工逻辑及功能简述,输入数据流:,输出数据流:,加工逻辑:简述加工程序,加工顺序,2加工逻辑词条描述举例,加工编号:,3.2,加工名:读者查询,输入流:查询读者情况,读者文件,借书文件,输出流:读者情况,加工逻辑:根据查询读者的情况从读者文件中读出读者记录。,3.3,软件快速原型化开发方法,在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。特别是对一些大型的软件工程。,用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求。,软件开发者对于所要解决的应用问题认识更是模糊不清,随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求系统也能随之变化;,开发者又可能在设计与实现的过程中遇到些没有预料到的实际困难,需要以改变需求来解脱困境。,为了解决这些问题,逐渐形成了软件系统的快速原型的概念。,3.3.1,软件原型化方法概述,产生原型化方法的原因很多,主要随着我们系统开发经验的增多,我们也发现并非所有的需求都能够预先定义而且反复修改是不可防止的。当然能够采用原型化方法是因为开发工具的快速开展,比方用VB,DELPHI等工具我们可以迅速的开发出一个可以让用户看的见、摸的着的系统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求。,3,.,3,.,2,快速原型开发模型,需求分析人员与用户一起进行需求分析、快速设计,并构建原型,原型经过用户评价后,按照用户意见进一步修改原型,在此进行分析、设计、构建、评价,不断迭代这个过程,逐渐使原型满足用户的要求。,快速原型模型的优缺点如下,优点:,开发者和用户充分协作,有效处理用户模糊需求。,开发者开发过程与用户学习过程同步,减少用户日后培训力度。,开发同时修正用户原有错误设想,软件产品更趋合理。,系统更易维护,对用户更为友好。,降低软件开发费用和开发风险,开发时间缩短。,缺点:,软件更新次数多,文档修改工作最为繁重,增加了管理难度。,在实验环境下开发,忽略实际环境与原型环境的差异。,3.4,如何做好需求分析,需求分析的五个阶段,如何做好需求分析,3.4.1,需求分析的五个阶段,开始这个阶段从工程申请开始到工程被批准结束。 这一步可以总结为:最初的工程要求、初步的经费估算、本钱效益分析。,确认与引导这个阶段是对详细需求的组织和构造工作。,协商这一步是选择和优化包含在工程中最终的功能和非功能需求的反复过程。,书写文档这一步是工程需求文件最终和最完整的记录。,管理一旦你们已经协商出了最终的需求文档,你的责任就是确保实现所有的要求。,3.4.2,如何做好需求分析,让用户畅所欲言,罗列出所有的需求,需求分析文档化,透过现象看本质,使用图形化工具描述需求,建立需求变更日志,制作新版本的需求分析报告,3.5,案例分析,图书管理系统需求分析,
展开阅读全文