您好,欢迎访问三七文档
2019/8/291第二章可行性研究软件工程(SoftwareEngineering)2019/8/292第二章可行性研究(1)了解可行性研究的任务、过程;(2)掌握系统流程图、数据流图和数据字典等工具的使用;(3)会对软件项目做成本效益分析;2019/8/293开发软件要回答三个问题Whytodo?—可行性研究Whattodo?—需求分析Howtodo?—系统设计2019/8/294可行性研究的任务回答是否可行最短时间最小代价目标可行性(feasibility)研究是探讨在定义阶段所确定的问题是否有可行的解。通过定义和分析问题,最终提出一个符合系统目标的高层次逻辑模型(LogicalModel)。三个方面的可行性技术可行性:使用现有的技术能否实现这个系统。经济可行性:从成本和经济效益考虑是否值得开发。操作可行性:系统的操作方式对用户是否可行。可行性研究的成本约占总成本的5%—10%。2019/8/295可行性研究可行性研究的任务用最小的代价在尽可能短的时间内确定问题是否能够解决。问题定义可行性研究问题定义正确?问题定义阶段审查系统的逻辑模型技术可行性经济可行性操作可行性实际的物理系统否是系统实现方案若干可行性研究需要的时间长短取决于工程的规模,一般来说,其成本只能占预期的工程总成本的5%~10%.可行性研究的结论可行性研究阶段任务(示意图)2019/8/296可行性研究的步骤复查系统的规模和目标研究现正在使用的系统新系统的高层逻辑模型重新定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查用户分析员是否符合系统目标逻辑模型表达了系统分析员对新系统必须作什么工作、完成什么任务的理解.1.是否继续该工程的开发的建议2.所选择解决方案的解法的说明3.比较仔细的成本/效益分析2019/8/297系统流程图系统流程图:描绘物理系统的工具,其基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达的是信息在系统各部件之间流动的情况。常用符号处理输入/输出连接换页连接数据流文档磁带联机存储磁盘显示人工输入人工操作例子事务库存清单程序定货信息报告生成程序定货报告库存清单主文件2019/8/298系统流程图举例问题描述:一仓库存储各种零件,仓库管理员每日要对零件的数量进行实时更新,若某种零件的数量少于某个值(库存量临界值)则应产生订货报告,规定每天向采购部送一张订货报表。系统处理描述:由终端将零件数量的变化输入到计算机中,程序1处理该变化并存储新的数据值,程序2生成订货信息,形成订货报告。2019/8/299系统流程图举例事务库存清单程序定货信息报告生成程序定货报告库存清单主文件2019/8/2910数据流图数据流图(DataFlowDiagram)是一种图形化技术,描绘信息流和数据从输入移动到输出的过程中所经历的变换,是系统的逻辑模型,可不考虑具体的处理细节。前一页数据流图容易理解,是分析员和用户之间很好的通信工具。2019/8/2911数据流图的符号数据源点(source)/终点(sink)变换数据的处理(process)数据存储(datastore)数据流(dataflow)前一页*表示数据流之间是“与”关系;+表示“或”关系;⊕表示只能从中选一个。2019/8/2912有时数据的源点和终点相同——再重复画一个同样的符号(正方形或立方体)表示数据的终点。有时数据存储也需要重复,以增加数据流图的清晰程度。为了避免可能引起的误解,如果代表同一个事物的同样符号在图中出现在n个地方,则在这个符号的一个角上画(n-1)条短斜线做标记。2019/8/2913数据流图的绘制步骤:分析问题,找出源点或终点,处理,数据存储和数据流;画出包含数据源点/终点以及处理的基本系统模型,如图2.5;把基本系统模型细化,描绘系统的主要功能,即产生功能级数据流图;对功能级数据流图中描绘的系统细化。2019/8/2914假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。例子2019/8/2915数据流图有4种成分:源点或终点,处理,数据存储和数据流。第一步可以从问题描述中提取数据流图的4种成分:首先考虑数据的源点和终点,从上面对系统的描述可以知道“采购部每天需要一张定货报表”,“通过放在仓库中的CRT终端把事务报告给定货系统”,所以采购员是数据终点,而仓库管理员是数据源点。接下来考虑处理,再一次阅读问题描述,“采购部需要报表”,显然他们还没有这种报表,因此必须有一个用于产生报表的处理。事务的后果是改变零件库存量,然而任何改变数据的操作都是处理,因此对事务进行的加工是另一个处理。最后,考虑数据流和数据存储:系统把定货报表送给采购部,因此定货报表是一个数据流;事务需要从仓库送到系统中,显然事务是另一个数据流。产生报表和处理事务这两个处理在时间上明显不匹配——每当有一个事务发生时立即处理它,然而每天只产生一次定货报表。因此,用来产生定货报表的数据必须存放一段时间,也就是应该有一个数据存储2019/8/2916定货系统的基本系统模型2019/8/2917从基本系统模型这样非常高的层次开始画数据流图是一个好办法。在这个高层次的数据流图上是否列出了所有给定的数据源点/终点是一目了然的,因此它是很有价值的通信工具。2019/8/2918两个数据存储:处理事务需要“库存清单”数据;产生报表和处理事务在不同时间,因此需要存储“定货信息”。另外两个数据流,它们与数据存储相同。这是因为从一个数据存储中取出来的或放进去的数据通常和原来存储的数据相同,也就是说,数据存储和数据流只不过是同样数据的两种不同形式。在图中给处理和数据存储都加了编号,这样做的目的是便于引用和追踪。2019/8/2919定货系统的功能级数据流图2019/8/2920数据流图的绘制接下来应该对功能级数据流图中描绘的系统主要功能进一步细化。注意:分层细化时必须保持信息连续性对处理进行编号的方法2019/8/2921把处理事务的功能进一步分解后的数据流图2019/8/2922面对复杂的系统时,一个比较好的方法是分层次地描绘这个系统。首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。分层2019/8/2923数据流图的分量命名为数据流(或数据存储)命名•名字(name)应代表整个数据流的内容。•不要空洞、泛指,要有具体含义。•如果对某个数据流命名有困难时,尝试重新分解。前一页2019/8/2924数据流图的分量命名为处理命名通常应先为数据流命名再为与之相关的处理命名。名字应反映整个处理的功能而不是一部分。名字最好由一个具体的及物动词和一个具体的宾语组成,如产生报表等。通常名字中只包括一个动词。如果对某个处理命名有困难时,应重新分解。前一页2019/8/2925数据流图的分量命名为数据源点/终点命名时采用它们在问题中习惯使用的名字即可,如采购员等。为数据源点/终点命名2019/8/2926数据流图的用途1、画数据流图的基本目的是交流信息。该种描绘方法简单清析,可提供有关人员讨论、审查,也是分析设计的重要工具。前一页2019/8/2927数据流图的用途注意:在一张数据流程图上描述的处理超过了5~9个,就比较难于理解,应分层细化处理。如图2.6和图2.7:图2.6描绘出系统的两个处理:处理事务和产生报表图2.7将处理事务的功能进一步分解2019/8/29282、数据流图的另一个主要用途是作为分析和设计的工具。当用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现。2019/8/2929处理定货以批量方式更新库存清单前一页2019/8/2930应用举例1.2更新库存清单以联机方式更新库存清单前一页2019/8/2931数据字典数据字典(DataDictionary)是数据的信息的集合,即对数据流图中包含的所有元素(element)的定义的集合。数据字典的作用是为设计人员提供关于数据的描述信息。前一页2019/8/2932数据字典的内容数据字典应由对下列四类元素的定义组成。对于数据处理的定义,用IPO(InputProcessOutput)、PDL(ProcessDesignLanguage)等更方便。①数据流②数据流分量③数据存储④处理前一页数据字典2019/8/2933数据字典一般信息:名字、别名、描述等。定义:数据类型、结构、长度等。使用特点:值的范围、使用频率、使用方式(输入、输出、本地)、条件值等。控制信息:来源、用户、使用的程序、使用权限等。分组信息:父结构、从属结构、物理位置(记录、文件、数据库等)等。前一页在数据字典中,除了对数据的定义之外,还包含如下信息:2019/8/2934数据字典前一页定义数据的方法定义数据是按照自顶向下,逐层分解,直至无须再细化的元素。由数据元素组成数据有以下方式:①顺序(sequence):以确定次序连接多个分量。②选择(selection):从多个可能的元素中选取一个。③重复(repeat):把指定的分量重复多次。④可选:一个分量是可有可无的(重复0次或1次)。2019/8/2935数据字典前一页定义数据的方法=等价,定义为+表示和,连接两个分量[]表示或,从中选出一个分量{}重复花括号中的分量,可用上下标表示上下限()圆括号中的分量可有可无2019/8/2936定义数据的方法通常使用上限和下限进一步注释表示重复的花括号,如:数据字典5{A}1:表示A最少重复1次,最多重复5次2019/8/2937定义数据的符号举例例:标识符=字母字符+字母数字串字母数字串=0{字母或数字}7字母或数字=[字母字符|数字字符]2019/8/2938数据字典的用途数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立一组严密一致的定义,有助于分析员与用户通信、交流,消除误解。数据字典中的控制信息是很有价值的,可以看出改变一个数据对系统的影响。数据字典是开发数据库很有价值的第一步。前一页数据字典2019/8/2939数据字典的实现目前实现数据字典有三种途径:全人工过程,全自动化过程,混合过程。无论是何种方式,都应具有以下特点:①通过名字能够方便地查阅数据。②没有冗余。③尽量不重复在规格说明的其他组成部分中已经出现的信息。④容易更新和修改。⑤能单独处理描述每个数据元素的信息。⑥定义的书写方法简单、方便、严密。前一页数据字典2019/8/2940前一页成本/效益分析经济效益通常表现为减少运行费用或(和)增加收益。2019/8/2941前一页成本估计代码行技术估计出有多少行的代码(code),再乘以每行的开发成本(cost)和复杂度(complexity),即可估算出开发成本。有时对代码行的估计有一定的难度。2019/8/2942成本估计前一页任务分解技术把软件开发工程分解成若干个相对独立的任务,再分别估计每个任务的开发成本,最后累加起来就是总成本(人/年)估计工作量。一般可按阶段划分任务,再按阶段把每个阶段划分成更小的任务。可行性研究5%需求分析10%设计25%编码和单元测试20%综合测试40%2019/8/2943成本效益分析前一页自动估计成本可以更快、更客观地估计成本。但需要有长期的经验积累、强大的数据库(database)、以及决策支持系统软件(decisionsupportsys
本文标题:2 可行性研究
链接地址:https://www.777doc.com/doc-608600 .html