第二章可行性研究2.1可行性研究的任务2.2可行性研究的过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析2可行性研究●任务:确定问题是否存在可行的解决方法?是否值得去解决?●目标:建立系统的物理模型系统流程图逻辑模型数据流图、数据字典进行成本效益分析●工具:采用的工具系统流程图数据流图数据字典2.1可行性研究的任务可行性研究任务用最小的代价在尽可能短的时间内确定问题是否能够解决。问题定义可行性研究问题定义正确?问题定义阶段审查系统的逻辑模型技术可行性经济可行性操作可行性实际的物理系统否是系统实现方案若干可行性研究需要的时间长短取决于工程的规模,一般来说,其成本只能占预期的工程总成本的5%--10%.可行性研究的结论可行性研究阶段任务(示意图)又称为可行性研究,目的是避免盲目投资,减少不必要的损失。可行性研究的任务是:技术上可行经济上可行技术可行性可行性报告可行性报告可行性报告可行性报告经济可行性现有技术、资源及限制能否支持和实现系统的功能、性能。主要是技术风险问题。进行成本估算及效益评估,确定项目是否值得开发。主要指系统开发后能否运行,系统的操作方式在这个用户组织内行的通吗?可行性分析的结果可行性分析的任务操作可行性2019/8/301、技术可行性对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。通过技术可行性的分析,将为新系统提交技术可行性评估。以指明为完成系统的功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等技术可行性分析方法---数学模型和优化技术、概率和统计、排队论、控制论等方法。2、经济可行性进行成本效益分析,评估项目的开发成本。基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用经济可行性考虑的问题成本和效益的估算•开发成本的估算•开发效益的估算•运行成本的估算•运行效益的估算可行性论证报告1、系统概述2、可行性分析3、拟订开发计划4、结论意见2.2可行性研究的步骤复查系统的规模和目标研究现正在使用的系统新系统的高层逻辑模型重新定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查用户分析员是否符合系统目标逻辑模型表达了系统分析员对新系统必须作什么工作、完成什么任务的理解.1.是否继续该工程的开发的建议2.所选择解决方案的解法的说明3.比较仔细的成本/效益分析2.3系统流程图系统流程图:描绘物理系统的工具,其基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达的是信息在系统各部件之间流动的情况。1.常用符号处理输入/输出连接换页连接数据流文档磁带联机存储磁盘显示人工输入人工操作2.例子事务库存清单程序定货信息报告生成程序定货报告某装配厂有一座存放零件的仓库,仓库中现有各种零件的数量和每种零件的库存临界值等数据存放在库存清单主文件中。当仓库中零件数量有变化时,应及时修改库存清单主文件,如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。3.分层(略)库存清单主文件(复杂系统)选课数据予处理选课确认处理重新选课通知选课注册数据库终端选课选课卡片卡片输入学生课程表课程成绩记载单教学文件与开课清单计算机选课系统例22.4数据流图数据流程图:描绘系统的逻辑模型,图中没有具体的物理元素,只是描绘信息在系统中流动和处理的情况。设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体的实现这些功能。1.符号(四种基本符号)数据的源点或终点数据处理数据存储数据流一些附加符号(略)仓库管理员定货系统采购员D1:库存清单仓库管理员1处理事务2产生报表采购员D2:定货信息2.例子基本系统模型功能级数据流图事务定货报表事务定货报表定货信息定货信息库存清单2.4数据流图(续1)仓库管理员1.1接收事务1.2更新库存清单1.3处理定货2产生报表采购员D1:库存清单D2:定货信息事务事务库存信息定货信息定货信息定货报表3.命名•为数据流(或数据存储)命名•为处理命名4.用途•交流信息的工具•分析和设计的工具•进一步设计的依据库存清单三个附加运算符号*:表示数据之间是“与”关系。+:表示数据之间是“或”关系。:表示数据之间是“互斥”关系(只能从中选一个)。TC数据A和B同时输入才能变换成数据C*BATCAB数据A变换成B和CTC+BA数据A或B,或A和B同时输入变换成CTCAB数据A变换成B或C,或B和CTCBA+只有数据A或只有数据B(但不能A、B同时)输入时变换成CTCAB+数据A变换成B或C,但不能变换成B和C(b)附加符号的含义数据流图是描述逻辑系统的工具。它表达了系统中各个元素之间的信息流动和处理的情况。一、数据流图系统逻辑模型使用采用结构化分析(SA)方法,对问题采用自顶向下、逐步求精的方法,得到问题的分层数据流图。SA法的描述方法实际问题分层的DFD图数据流加工数据存储数据源点或终点加工名数据流名文件名实体名加工名编号加工名编号文件名文件名(a)基本符号的含义二、数据流图的四种其它表示的符号§3结构化开发方法概述①建立当前系统的“具体模型”;②抽象出当前系统的逻辑模型;③建立目标系统的逻辑模型;④为了对目标系统作完整的描述,还需要考虑人机界面和其他一些问题;SA法的描述方法用分层的DFD图+数据词典+加工说明SA法的步骤三、SA法的步骤“先全局后局部,先整体后细节,先抽象后具体”具体步骤:1、用图表形式,确定问题的数据流图的四种基本元素。2、绘制顶层(0层)数据流图,一般顶层数据流图中只有一个处理框,且不包含文件存储。3、从第一层开始,采用自顶向下、逐步细化的原则,对0层的处理框进行分解。4、分解时应注意父层和子层数据流名称的一致性。5、从第一层开始,对处理框按以下原则编号:1、2、…1.1、1.2…1.1.1、1.1.2…6、分解的终止的条件是,当处理足够简单的时候,应该终止分解。四、画分层DFD图的方法P1P3P2abcd父图P1.1P1.2P1.3ac子图一eX1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶层中间层底层先全局后局部,先整体后细节,先抽象后具体.0图1图2图1.1图2.1图2.2图分层DFD图2019/8/30分层的数据流图F0F11F12F13F14F15F21F22F23F24F25第n层第n+1层第n+2层七、数据流图(DFD图)应用举例问题定义:一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某个零件的库存数量少于库存量临界值时就应该再次定货。例1:订货系统数据流图的四种成分表3.1源点/终点处理采购员仓库管理员产生报表处理事务数据流数据存储定货报表零件编号零件名称定货数量目前价格主要供应者次要供应者零件编号*事务类型数量*定货信息(见定货报表)库存清单零件编号*库存量库存量临界值定货系统的基本系统模型仓库管理员定货系统采购员事务定货报表定系统顶层数据流图定货系统的功能级数据流图把处理事务的功能进一步分解后的数据流图结构化分析(SA)(信息在各部件中的流动情况)系统流程图实际问题物理模型数据流图实际问题逻辑模型(采用自顶向下,逐步分解原则)(信息的流动和处理(加工)情况)结构化分析(SA)步骤顾客出版社验证订单汇总订单订单出版社订单图书目录文件顾客档案待处理订单文件正确订单一批订单出版社档案文件订货存根文件画图步骤:1、确定外部实体及输入、输出数据流。2、确定分解顶层的加工。3、确定使用的文件。4、用数据流将各部分连接起来,形成数据封闭。注意:标注各加工框及数据流名称。例1:图书预定系统(DFD图)数据流图(DFD图)应用举例例2机票预定系统举例下图是一个机票预定系统数据流图(DFD图)实例。其中旅行社、旅客是外部实体,即数据源点和终点;预定机票、准备机票、记账是数据处理;定票单、航班、费用、账单等是数据流;航班目录、记账文件是数据存储。定票单航班旅行社预定机票机票准备费用机票航班目录账单记账旅客记账文件图2.18DFD泡泡图目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个一计算机为中心的患者监护系统,请分层次地画出描述本系统的功能的数据流图。医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等)、定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统输出某个指定病人的病情报告.例3医院病房监护系统系统功能要求:1、监视病员的病症(血压、体温、脉搏等)2、定时更新病历3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。顶层数据流图病员护士护士病员监护系统病员日志病症信号要求报告病症报告报警医院病房监护系统第一层:病员护士护士中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据格式化病员数据生理信号极限值1324日志数据日志数据医院病房监护系统顶层DFD图第二层:加工“中央监视”分解计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温血压、体温脉搏生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4医院病房监护系统二层DFD图计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4第二层:加工“中央监视”分解医院病房监护系统分层DFD图第一层格式化病员数据生理信号极限值病员护士护士中央监视病员日志病症报告局部监视生成报告病员极限更新日志病员数据1324日志数据2.5数据字典2.5.1数据字典的内容2.5.2定义数据的方法2.5.3数据字典的用途2.5.4数据字典的实现2.5数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合1.数据字典的内容•数据流•数据流分量•数据存储•处理数据处理:用IPO图或PDL描述比较方便直观。2.定义数据的方法由数据元素组成数据的方式的三种基本类型顺序+:以确定次序连接两个或多个分量a+b+c选择|,[]:从两个或多个可能的元素中选取一个[a|b|c]重复{}:把指定的分量重复零次或多次{a}可选:一个分量是可有可无的(重复零次或一次),(a)3.例子定货报表={零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者}零件编号=8{字符}8定货数量=1{数字}5定义数据的实例例1:电话号码是一个3位到8位的十进制数,有的电话号码还需包括4位分机号。电话号码=3{十进制码}8(+“-”分机号)十进制码=”0”…”9”分机号=4{十进制码}4例2:(零件库存管理)定货报表={零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者}零件编号=8{字符}8定货数量=1{数字}52.6成本/效益分析•成本/效益分析的目的•要从经济角度分析开发一个特定的新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项开发工程的决定。2.6.1成本估计2.6.2成本/效益分析的方法2.6.1成本估计1、代码行技术软件成本=源代码行数*每行代码的平均成本每行代码的平均成本主要取决于软件的复杂程度和工资水平。2、任务分解技术子任务成本=完成该项任务需要的人力(人月)*每人每月的平均工资总任务成本=子任务成本之和3、自动估计成本技术采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。2.6.2成