资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件工程导论,可行性与需求分析,2,可行性研究,可行性研究的目的,不是解决问题,,而是确定问题,是否值得,去解决。,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。,3,可行性研究,步骤:,(1),首先需要进一步分析和澄清问题定义。,(2),分析员导出系统的逻辑模型。,(3),从系统逻辑模型出发,探索若干种可供选择的主要解法,.,包括从技术、经济、操作可行性等方面研究每种解法的可行性。,4,可行性研究,可行性研究最根本的任务是对以后的行动方针提出建议。,研究需要的时间长短取决于工程的规模。,一般说来,可行性研究的成本只是预期的工程总成本的,5%,10%,。,5,需求分析,本节问题:,需求分析要做什么,需求分析得到的结果以何种形式表示?,传统方法学中有哪些方法、工具供需求分析使用,如何有效获取需求?,需求分析为什么重要?,6,需求分析,本节内容:,需求分析概述,需求分析的任务,分析建模与规格说明,数据流图,状态转换图,数据字典,其它图形工具,验证需求,7,需求分析概述,:,结构化分析方法中需求分析阶段建立的文档、图、表入下:,用户需求说明书,需求规格说明书,数据模型,功能模型,行为模型,数据字典,以书面形式描述用户的需求,以书面形式描述软件的需求,是需求分析阶段最主要的文档。,8,需求分析的任务:,需求分析的任务还不是确定系统,怎样,完成它的工作,而仅仅是确定系统,必须完成,哪些工作,也就是对目标系统,提出,完整、准确、清晰、具体的,要求,。,一般说来,需求分析的任务包括下述几方面:,1.,确定对系统的综合要求,对系统的综合要求主要有:功能需求、性能需求、运行需求、将来可能提出的需求。,9,2.,分析系统的数据要求,3.,导出系统的逻辑模型,:数据流图、实体,-,联系图、状态转换图、数据字典、算法流程等,4.,修正系统开发计划,任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此分析系统的数据要求是软件需求分析的一个重要任务。,根据分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。,10,分析建模与规格说明,:,为什么要建立模型?,模型种类,数据模型:,E-R,图,功能模型:数据流图,行为模型:状态转换图,数据字典:描述出现在上面三种模型中的数据对象及控制信息的特性,给出准确定义。,模型就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。,11,系统流程图(,1,),一,.,系统流程图的作用,1.,系统流程图是以特定的图形符号描述系统物理模型的工具;,2.,它从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况;,3.,它能帮助开发人员与用户之间实现信息的交流。,12,系统流程图(,2,),二,.,系统流程图画法,1.,按照具体的业务流程,采用规定的基本符号依次进行描述;,2.,对于复杂的系统,一般采用分层次的描绘,首先用一张高层次系统流程图描绘系统概貌,表明系统关键功能,然后分别把每个关键功能扩展到适当的详细程度,分别画出来;,3.,绘制完整的系统的流程图。,三,.,系统流程图中的基本符号,(,见下页,),13,系统流程图(,3,),14,教材,购销,系统,主要功能,根据学校的教学计划,向选课的学生及时供应所需教材,审查学生,购书单有效性,,,对有效书单发售教材,对属于计划供应但,暂时缺货,的教材进行,登记,根据,缺书登记,补充采购所缺的教材,通知学生补购,将缺书登记表,汇总,为,待购教材计划,待购教材到货后,及时,通知学生补购,15,系统流程图(,4,),16,系统流程图(,5,),17,数据流图(,1,),一,.,数据流图的作用,1.,数据流图简称,DFD(Data Flow Diagram),图,它是以特定的图形符号描述系统逻辑模型的工具;,2.,它从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的过程;,3.,它是开发人员与用户之间交流信息的通信工具;,4.,它也是系统分析与系统设计的工具。,18,数据流图(,2,),二,.,数据流图与系统流程图的区别,区别,数据流图,系统流程图,类型,系统的逻辑模型,系统的物理模型,功能,数据的转送与加工,部门之间的业务关系,内容,数据的传输、加工和存储,信息的流动、变化(含手工操作),相关部门实体、物流及其变化。,19,数据流图(,3,),20,数据流图(,4,),四,.,系统流程图转换为数据流图的方法,1.,删去系统流程图中如下部分,(1),除去可以作为源点和终点外的其它实体;,(2),人工操作的部分;,(3),物流部分。,2.,将系统流程图中其他部分转化为数据流图的对应部分,(1),系统流程图中的单据、文档,对应数据流图中的数据流;,(2),系统流程图中的联机存储,对应数据流图中的文件;,(3),系统流程图中的联机加工,对应数据流图中的加工。,(,对应的符号也发生变化,),3.,修改、补充、完善数据流图。,21,例,.,“,教材销售,”,系统流程图,22,例,.,“,教材销售,”,系统流程图,23,例.,“,教材销售系统,”,数据流图,24,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用,层次结构,的数据流图。按照系统的层次结构进行,逐步分解,,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统,25,分层的数据流图,26,在多层数据流图中,,顶层流图,仅包含,一个加工,,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所有输出数据,底层流图,是指其,加工不需再做分解,的数据流图,它处在最底层,中间层流图,则表示,对其上层父图的细化,。它的每一加工可能继续细化,形成子图。,27,简单例子,:(订货系统),一家工厂的,采购部,每天需要一张,订货报表,,报表,按零件编号排序,表中列出所有需要再次定货的零,件。对于需要再次订货的零件应该列出编号、名称、,数量、价格、主要供应商等内容。零件的出入库称为,事务,通过放在库房的,CRT,终端,把,事务,报告给订货系,统。当某种零件的库存量少于库存临界值时就应该再,次订货。,28,对本例来说念完第一遍应该确定:(用心去读),采购部或者采购员是外部实体(数据汇点),它的输入数据流是订货报表。,CRT,终端或者仓库管理员是外部实体(数据源点),它的输出数据流是事务。,29,订货系统的基本系统模型,(突出表明了数据的原点和终点),CRT,终端(,仓库管理员),订货系统,采购员,(部),事务,订货报表,顶层数据流图,事务来了该怎么办?,要经过哪些处理才能把输入流事务转换成输出流报表?,30,一家工厂的,采购部,每天需要一张,订货报表,,报表,按零件编号排序,表中列出所有需要再次定货的零,件。对于需要再次订货的零件应该列出编号、名,称、数量、价格、主要供应商等内容。,零件的出入,库称为事务,,通过放在库房的,CRT,终端,把,事务,报告,给订货系统。,当某种零件的库存量少于库存临界值,时就应该再次订货。,31,再次阅读可知:,事务有类型,需要根据不同情况处理;,-,处理事务,对各类事务要更改库存信息;对出库事务当库存量少于临界值时,要产生订货信息。,订货信息不同于订货报表,报表要有严格的格式。,-,产生报表,32,CRT,终端,(仓库管,理员),1,处理事务,采购员,(部),事务,订货报表,库存清单(信息),2,产生报表,订货,信息,订货信息,订货信息,订货信息,修改完善后的第一层数据流图,33,接下来的细化因人而异:,-,就是说允许不同,-,分为三个处理,各处理间的数据流比较简单。,事务来了应该先,接收,,再按类别,更新库存清单,,最后对更新后库存量少于临界值的,产生订货。,34,产生报表需要分解吗?,一个指导性的原则是当功能为原子功能时就不需再分解了,,那么什么是原子功能?,当对功能的进一步细化涉及到具体实现时,就认为无需细化。,35,底层数据流图,仓库管,理员,1.1,接收,事务,采购员,(部),事务,订货,报表,库存清单(信息),2,产生,报表,订货信息,订货信息,订货信息,事务,1.2,更新,库存,清单,库存,信息,1.3,产生,订货,36,数据流图画法总结,先找出数据源点和汇点。它们是外部实体,由它们确定系统与外界的接口。,找出外部实体的输出数据流与输入数据流。画出顶层数据流图。,从顶层加工出发,逐步细化,画出所需子图。,自顶向下,逐层分解,37,数据流图画法总结,分析系统的主要处理功能,把每一个处理功能作为一个加工,并且确定它们之间的数据流入、流出关系,画出第一层数据流图。,对流图中的每个加工进行细化,画出所需的子图,直到加工不需再分解为止。,按照前面给出原则检查和修改每一层数据流图和子图。,38,数据流图上所有图形符号只限于前述四种基本图形元素。,数据流图的主图上的数据流必须封闭在外部实体之间。,每个加工至少有一个输入数据流和一个输出数据流。,初画时可以忽略琐碎的细节,以集中精力于主要数据流。,分层法绘制流程图的注意事项:,39,在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系。,规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡。,-,细化时应该注意,不能添加和丢失输入、输出数据流。,40,图上每个元素都必须有名字,数据流图中不可夹带控制流,采购员,(部),订货,报表,库存清单(信息),2,产生,报表,订货信息,订货信息,订货信息,入库事务,1.2,入库,事务,更新,库存,信息,1.4,产生,订货,1.3,出库,事务,更新,1.1,接收、,识别,事务,出库事务,事务,41,状态转换图,状态转换图与数据流图?,数据流图,描绘数据在软件中的流动和被处理情况;,状态转换图,描绘系统的状态及引起系统状态转换的事件,来表示系统的行为;,数据流图,是功能模型;,状态转换图,是行为模型;,42,数据流图,是由,数据驱动,的,即系统每中一个处理都是对输入数据流的加工、变换,目标是产生输出流(输出数据)。它描绘了系统的,静态特性。,状态转换图,是由,事件驱动,的,它描绘了系统的,动态的行为特性,。,系统响应事件,随着,时间,的不同而处于不同的状态。,43,状态转换图,状态,:系统的行为模式,初态、终态,中间状态。,事件,:控制系统状态变化和(或)执行功能的信息,对外部事件的抽象。,符号,:,初态只能有一个,终态可以有0至多个。一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。,系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。,44,事件名(参数表),条件,/,动作表达式,初态:,终态:,中间状态:,状态名,状态变量,活动表,事件:,状态转换:,45,状态图中使用的主要符号,46,状态图可以表示系统,循环,运行过程,也可以表示系统,单程,生命期。,当描绘循环运行过程时,通常并不关心循环是怎样启动的。,当描绘单程生命期时,需要表明,初始,状态和,最终,状态。,47,例题:,办公室复印机的工作过程大致如下,:,未接到复印命令时处于,闲置状态,,一旦接到复印命令则进入,复印状态,,完成一个复印命令规定的工作后又回到,闲置状态,,等待下一个复印命令;,如果执行复印命令时发现,缺纸,,则进入,缺纸状态,,发出警告,等待装纸,,装满纸,后进入,闲置状态,,准备接受复印命令;如果复印时发生,卡纸,故障,则进入,卡纸状态,,发出警告等待维修人员,排除故障,,故障排除后回到,闲置状态,。,48,复印机的状态转换图,闲置,复印,do/,复印,卡纸,do/,警告,缺纸,do/,警告,复印命令,完成命令,装满纸,卡纸故障,缺纸故障,排除了卡纸故障,49,数据字典,描述内容包括:数据流图、状态转换图、,E-R,图中的,数据信息,(数据流、数据存储、外部实体)、,控制信息,(事件)等。不包括,处理。,采用半形式化手段,包含如下信息:,名字、别名、使用地点和方式、内容描述、补充信息等。,通常作为,CASE,“,结构化分析与设计工具,”,的一部分实现。,数据字典,是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。,50,数据元素的组合方式,顺序:即以确定的次序连接两个或多个分量。例:,A+B,选择:即从两个或多个可能的元素中选取一个。例:,A|B,重复:即把指定的分量重复零次或多次。例:1,A5,可选,:,即一个分量是可有可无的(重复零次或一次)。例:,(,A,),51,例题:,某程序设计语言规定,用户说明的标识符是长度不超过,8,个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。,使用上面讲过的符号,我们可以像下面那样定义标识符:,标识符,=,字母字符,+,字母数字串,字母数字串,=0,字母或数字,7,字母或数字,=,字母字符数字字符,由于和项目有关的人都知道字母字符和数字字符的含义,因此,关于标识符的定义分解到这种程度就可以结束了。,52,名字:订货报表,别名:订货信息,描述:每天一次送给采购员的需要订货的零件表,定义:订货报表,=,零件编号,+,零件名称,+,订货数量,+,目前的价格,+,主要供应者,+,次要供应者,位置:输出到打印机,名字:零件编号,别名:,描述:唯一的表示库存清单中一个特定零件的关键域,定义:零件编号,=8,字符,8,位置:订货报表,订货信息,库存清单,例子,53,数据字典的实现有:全人工过程、全自动化过程、混合过程。,无论采用那种实现都应有,如下特点,:,1、通过名字可,方便查阅,。,2、,没有冗余,3、尽量,不重复,在规格说明书的其它组成部分中已经出现的信息。,4、,容易修改,更新,可单独处理每个数据元素的信息。,5、定义的书写方法,简单方便,而且,严格,。,54,数据字典的用途,1.,数据字典是描述数据流图中数据的,信息的集合,。,2.,它对数据流图中的有关成分说明,“,是什么或做什么,”,、,“,在何处或来自何处,去向何处,”,、,“,何时出现,时间长短,”,等问题;,3.,对用户来讲,数据字典为他们提供了,数据的明确定义,;,4.,对系统分析员来讲,数据字典帮助他们比较容易,修改已建立的系统逻辑模型,。,55,其它图形工具,IPO,表:输入、处理、输出表,描述出现在数据流图中的处理,在需求分析阶段建立,-,简略描述处理的基本算法流程,在设计阶段补充,56,IPO,表,系统,:,作者,:.,模块,:,日期,:.,编号日期,:.,注释,:,被调用,:,调用,:,输入,:,输出,:,处理,:,局部数据元素,:,调用本模块的模块清单,被本模块调用的模块清单,本模块使用的局部元素,数据流图中的各个处理,也可以简略描述系统的主要算法。,57,验证需求,需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中,15%,的错误起源于错误的需求。,为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。一般说来,应该从下述,4,个方面进行验证,:,58,(1),一致性,(2),完整性,(3),现实性,(4),有效性,59,录入统计计算某班学生成绩,画出数据流图(,DFD)。,学生成绩表数据结构如下:,学号|高数|物理|英语|计算机|法律常识|总分|平均分|不及格门数|升留补|,需求功能如下:,1.录入全班学生各课的考分,生成成绩表;,2.检查各课成绩,修改错误,补充未录入成绩,删除非法成绩;,3.计算总分,平均分;,4.统计不及格门数,然后再写入升级、补考、留级;,5.打印成绩通知单,交家长。,课堂练习:,60,课堂练习:,61,作业,P63,页,1,题、,3,题(不画,E-R,图)、,5,题(不画,E-R,图),
展开阅读全文