A1教学题目:可行性研究教学目的:理解可行性研究的基本任务和步骤、理解成本/效益分析的方法,会画数据流图。教学重点:可行性研究、数据流图。教学难点:数据流图、成本/效益分析。第2章可行性研究A2开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束YN问题的定义与可性行研究Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题有用的软件3WA3可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。不是解决问题,而是确定问题是否值得去解决。A4可行性研究的目的说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。(GB8567-88《计算机软件产品开发文件编制指南》)A52.1可行性研究的任务GB8566-88《计算机软件开发规范》中指出:可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”可行性研究的最根本任务是:对以后的行动方针提出建议。A6可行性研究的任务法律可行性研究:研究新系统的开发和使用是否会侵犯他人的权益,是否触犯了国家的法律法规。开发方案的选择:可行性研究的最主要任务是对以后的行动提出建议。如果问题没有可行的解,分析人员应建议停止该项目,以避免造成进一步的浪费;如果问题值得解决,则提出并评价实现系统的各种可行的开发方案,从中选择一种最佳方案,并为系统制定一个初步的开发计划。A7可行性研究的内容(1)技术可行性(2)经济可行性(3)操作可行性(4)社会可行性(法律可行性)(5)抉择A8技术可行性度量一个特定技术信息系统解决方案的实用性及技术资源的可用性考虑的问题(1)开发风险分析(2)资源分析(3)相关技术的发展(现有技术能否实现新系统,技术难点、建议采用技术的先进性)A9经济可行性度量系统解决方案的性能价格比。考虑的问题:成本/效益分析(开发、运行的成本/效益)有形成本、效益无形成本、效益价值和成本的关系质量与价值、成本的关系价值/成本的均衡A10举例12345年6040200成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期---------成本及效益分析图A11操作可行性•用户使用可能性•时间进度可行性•组织和文化上的可行性A12社会可行性(法律可行性)开发项目是否会在社会上或政治上引起侵权、破坏或其它责任问题。A132.2可行性研究过程1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查A14可行性研究报告的编写(补充)GB8567-88《计算机软件产品开发文件编制指南》A15可行性研究报告的编写1引言1.1编写目的1.2背景1.3定义1.4参考资料2可行性研究的前提2.1要求2.2目标2.3条件、假定和限制2.4进行可行性研究的方法2.5评价尺度A16可行性研究报告的编写3对现有系统的分析3.1数据流程和处理流程3.2工作负荷3.3费用开支3.4人员3.5设备3.6局限性4所建议的系统4.1对所建议系统的说明4.2数据流程和处理流程4.3改进之处4.4影响4.5局限性4.6技术条件方面的可行性A17可行性研究报告的编写5可选择的其它系统方案5.1可选择的其它系统15.2可选择的其它系统2......6投资及收益分析6.1支出6.2收益6.3收益/投资比6.4投资回收周期6.5敏感性分析7社会条件方面的可行性7.1法律方面的可行性7.2使用方面的可行性A182.3系统流程图系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。A19基本符号----以概括的方式抽象地描绘一个实际系统所用符号A20---具体地描绘一个物理系统所用符号系统符号A21举例----库存清单系统的系统流程图A22举例----计算机售书系统流程图结束学生购书发票到书库领书购书单终端审查并开发票11---学生各学期用书数据库购书单22---教材存量数据库A23面对复杂的系统----分层描绘首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。A242.4数据流图DFD----DataFlowDiagram一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。A25数据流图四种基本符号数据加工(数据变换)数据源点或终点(外部实体)数据流数据存储文件或或或A26数据流图几种附加符号A27数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。A28在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据。底层流图是指其加工不需再做分解的数据流图,它处在最底层。中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。A29分层的数据流图A30----系统逻辑模型数据的加工或变换输入输出软件系统外部实体外部实体……外部实体外部实体……A31分层的数据流图F0F11F12F13F14F15F21F22F23F24F25第n层第n+2层A322.4.2例子1例1:一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,列出所有需要再次定货的零件。对于需要订货的零件列出其零件编号、零件名称、定货数量、目前价格、主要供应者、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于临界值时就应该再次定货A33确定系统的源点和终点仓库管理员是数据的源点;采购员是数据的终点。加工(处理)本题应该完成定货系统这样一个功能。数据流事务需从仓库送到系统中,显然事务是一个数据流;系统要把定货报表送给采购部,定货报表也是一个数据流。分析过程如下A34定货系统基本数据流图仓库管理员事务订货系统定货报表采购员图2.5定货系统的基本系统模型A35将加工(处理)——定货系统进行功能分解成事务考虑有关数据存储问题,题中涉及到存储的信息有:库存清单、定货信息;A36图2.6定货系统的功能级数据流图定货报表采购员仓库管理员事务1处理事务库存清单D1库存清单D2定货信息定货信息2产生报表定货报表采购员仓库管理员事务1处理事务库存清单D1库存清单D2定货信息定货信息2产生报表A37将事务处理进一步分解为接收事务,更新库存清单、处理定货三部分。画出定货系统功能分解后的数据流图A38图2.7处理事务的功能进一步分解后的数据流图A39图2.8这种划分自动化边界的方法暗示以批量方式更新库存清单A40图2.9另一种划分自动化边界的方法建议以联机方式更新库存清单A41举例22、学生购买教材系统A42学生教材购销系统购书单领书单缺书单进书通知进书通知保管员1销售购书单领书单学生缺书单进书通知2采购保管员第1层第2层教材存量表F1缺书登记表F2外部实体外部实体A43教材销售子系统无效书单购书单1.3登记并开领书单1.2开发票1.1审查有效性1.4登记缺书1.5补售教材采购学生学生进书通知有效书单发票领书单暂缺书单1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2层补售书单第3层教材存量表F1缺书登记表F2F1书号单价数量各班用书表F3售书登记表F4外部项A441销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统第2层第3层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F2A45.便于实现.便于使用---采用逐步细化的扩展方法,可避免一次引入过多的细节,有利于控制问题的复杂度;---用一组图代替一张总图,方便用户及软件开发人员阅读。分层DFD图的优点A461)为数据流(或数据存储)命名(1)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。(2)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。(3)如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。画分层DFD的指导原则1.注意数据流图中成分的命名A472)为处理命名(1)通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。(2)名字应该反映整个处理的功能,而不是它的一部分功能。(3)名字最好由一个具体的及物动词加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。(4)通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。(5)如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。画分层DFD的指导原则1.注意数据流图中成分的命名A48画分层DFD的指导原则2.注意父图和子图的平衡发票1.3开领书单领书单(a)父图1.3.1学生领书单1.3.21.3.3教材(a)子图A49画分层DFD的指导原则3.区分局部文件和局部外部项1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统第2层第3层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F2局部外部项局部文件A50画分层DFD的指导原则4.掌握分解的速度一般来说,每一个加工每次可分为2-4个子加工,最多不得超过7个。5.遵守加工编号规则顶层加工不编号。第二层的加工编号为1,2,3,…,n号。第三层编号为1.1,1.2,1.3…n.1,n.2…等号,依此类推。A512.4.4数据流图的用途数据流图可以辅助物理系统的设计(图);数据流图对详细设计也有帮助。A52课堂作业1某单位财务部门要求人事部门在每月月初提供所有职工上个月的出勤情况和业绩情况,要求后勤部门提供所有职工上个月的水电使用及扣款情况,再将所有数据交给工资计算系统去处理,得到所有职工上个月的工资情况,并将工资转给相应的银行进行发放。请根据上述情况画出对应的数据流图。A531)建立顶层数据流图图1工资计算系统的顶层(0层)数据流图A542)数据流图的分层细化图2工资计算系统第一层数据流图A55对第一层数据流图中的加工继续分解,则可得到第二层数据流图,如图3(a)所示。(a)“计算工资”子数据流图图3工资计算系统的第二层数据流图A56对第一层数据流图中的加工继续分解,则可得到第二层数据流图,如图3(b)所示。(b)“工资转存”子数据流图图3工资计算系统的第二层数据流图A57若数据流图中的加工还可继续细化,则重复以上分解过程,直到获得系统的底层数据流图。工资计算系统的第三层数据流图如图4所示。图4工资计算系统的第三层数据流图A58课堂作业2高校录取