《可行性分析(教材版)课件》由会员分享,可在线阅读,更多相关《可行性分析(教材版)课件(64页珍藏版)》请在金锄头文库上搜索。
1、第二章 可行性研究,开始,问题定义,可性行研究,可行否?,项目实施计划,终止项目的建议,结束,Y,N,问题的定义与可性行研究,Who,What,Why,有用的软件,3W,可行性研究,目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。不是解决问题,而是确定问题是否值得去解决。,可行性研究的目的,说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。,2.1 可行性研究的任务,GB 8566-88 计算机软件开发规范中指出: 可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写
2、可行性研究报告,制定初步项目开发计划。” 可行性研究的最根本任务是:对以后的行动方针提出建议,可行性研究的内容,(1) 技术可行性 (2) 经济可行性 (3) 操作可行性 (4) 社会可行性(法律可行性) (5) 抉择,技术可行性,度量一个特定技术信息系统解决方案的实用性及技术资源的可用性考虑的问题 (1)开发风险分析 (2)资源分析 (3)相关技术的发展(现有技术能 否实现新系统,技术难点、建议 采用技术的先进性),经济可行性,度量系统解决方案的性能价格比。 考虑的问题: 成本/效益分析(开发、运行的成本/效益) 有形成本、效益 无形成本、效益 价值和成本的关系 质量与价值、成本的关系 价值
3、/成本的均衡,举例,该系统节省经费,该系统成本,盈亏平衡点,投资回收期,-成本及效益分析图,操作可行性,用户使用可能性时间进度可行性组织和文化上的可行性,社会可行性(法律可行性),开发项目是否会在社会上或政治上引起侵权、破坏或其它责任问题。,2.2 可行性研究过程,1. 复查系统规模和目标 2. 研究目前正在使用的系统 3. 导出新系统的高层逻辑模型 4. 进一步定义问题 5. 导出和评价供选择的解法 6. 推荐行动方针 7. 草拟开发计划 8. 书写文档提交审查,可行性研究报告的编写 GB 8567-88 计算机软件产品开发文件编制指南 ,可行性研究报告的编写,1 引言1.1 编写目的1.2
4、 背景1.3 定义1.4 参考资料,2 可行性研究的前提2.1 要求2.2 目标2.3 条件、假定和限制2.4 进行可行性研究的方法2.5 评价尺度,可行性研究报告的编写,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 技术条件方面的可行性,可行性研究报告的编写,5 可选择的其它系统方案5.1 可选择的其它系统15.2 可选择的其它系统2,6 投资及收益分析6.1 支出6.2 收益6.3 收益/投资比6.4
5、投资回收周期6.5 敏感性分析,7 社会条件方面的可行性7.1 法律方面的可行性 7.2 使用方面的可行性,可 行 性 研 究 报 告 案 例,2.3 系统流程图,系统流程图是概括地描绘物理系统的传统工具。 它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。 系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。,基本符号 -以概括的方式抽象地描绘一个实际系统所用符号,- 具体地描绘一个物理系统所用符号 系统符号,举例 -库
6、存清单系统的系统流程图,举例 - 计算机售书系统流程图,结束,学生,购书发票,到书库 领书,购书单,终端,审查并 开发票,1,1-学生各学期用书数据库,领书单,2,2-教材存量数据库,面对复杂的系统 -分层描绘,首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。,2.4 数据流图 DFD - Data Flow Diagram,一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 在数据流图中没有任何具体的物理部件,
7、它只是描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。 设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。,数据流图四种基本符号,数据加工 (数据变换),数据源点或终点 (外部实体),数据流,数据存储文件,或,或,或,数据流图几种附加符号,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。,在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系
8、统的输入数据,输出流是系统所输出数据。底层流图是指其加工不需再做分解的数据流图,它处在最底层。中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,分层的数据流图,- 系统逻辑模型,分层的数据流图,第 n+2 层,举 例,1、定货系统 (见书P43P44)2、学生购买教材系统,学 生,教材 购销 系统,保 管员,外部实体,外部实体,教材销售子系统,1.3 登记并开 领书单,1.2 开发票,1.1 审查 有效性,1.4 登记 缺书,1.5 补售 教材,采 购,学 生,学 生,暂缺书单,补售 书单,第 3 层(销售子系统),F1 书号 单价 数量,外部 项,采购 子系统,第 2
9、 层,缺书单,2.3 修改教材库 存和待 购量,销 售,2.1 按书号汇 总缺书,2.2 按出版社统 计缺书,保 管员,第 3 层(采购子系统),. 便于实现,. 便于使用,- 采用逐步细化的扩展方法,可避免一次引入过多的细节,有利于控制问题的复杂度;,- 用一组图代替一张总图,方便用户及软件开发人员阅读。,分层 DFD 图的优点,1) 为数据流(或数据存储)命名2) 为处理命名,注意数据流图中成分的命名,数据流图的用途,1. 交流信息的工具2. 分析和设计的工具,数据流图、系统流程图对比,系统流程图:系统的功能和实现每个功能的具体方案是混在一起的。 数据流图着重描绘系统所完成的功能而不是系统
10、的物理实现方案。 用数据流图辅助物理系统时,可以在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现。,图2.8 这种划分自动化边界的方法暗示 以批量方式更新库存清单,图2.9 另一种划分自动化边界的方法建议 以联机方式更新库存清单,2.5 数据字典 - DD(Data Dictionary),数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。,数据字典的任务是: 对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一
11、个确切的解释。,数据字典的内容,数据字典应该由对下列4类元素的定义组成: (1) 数据流 (2) 数据流分量(即数据元素) (3) 数据存储 (4) 处理 对数据处理的定义用其他工具(如IPO图或PDL)描述更方便。,在数据字典中记录数据元素的下列信息: 一般信息(名字,别名,描述等等) 定义(数据类型,长度,结构等等) 使用特点(值的范围,使用频率,使用方式输入、输出、本地,条件值等等) 控制信息(来源,用户,使用它的程序,改变权,使用权等等) 分组信息(父结构,从属结构,物理位置记录、文件和数据库等等)。,数据字典定义符号,=,被定义为,+,与, ,x=a+b,则表示 x 由 a 和 b
12、组成,x=a,b,则表示 x 由 a 或由 b 组成, ,或,重复,x=a,则表示 x 由 0个或多个 a 组成,( ),可选,表示在两个 * 之间的内容为词条的注释,m n,重复,x=3a8,则表示x中至少出现3次a ,最多出现8次,*,注释符,x=(a),则表示 a 在 x 中出现, 也可不出现,例:存折格式,注:加工/处理说明,-(Process Specification),对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。 基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。 加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。 加工逻辑说明中包含的
13、信息应是充足的,完备的,有用的,无冗余的。,加工逻辑/处理说明,加工说明组成,加工说明描述工具(三种),描述把输入数据流变换为输出数据流的加工过程,是加工说明的主体。,自然语言+结构化形式,(1)结构化语言,商店业务处理系统中“检查发货单”,if 发货单金额超过$500 thenif 欠款超过了60天 then在偿还欠款前不予批准else (欠款未超期)发批准书,发货单 else (发货单金额未超过$500)if 欠款超过60天 then发批准书,发货单及赊欠报告else (欠款未超期)发批准书,发货单,(2)判定表,如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适,以
14、“检查发货单”为例,(3)判定树,判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。,检 查 发 货 单,金额$500,金额$500,欠款60天,不发出批准书,欠款60天,发出批准书、发货单,欠款60天,发出批准书、发货单及赊欠报告,欠款60天,发出批准书、发货单,2.6 成本/效益分析,成本/效益分析的目的:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。,2.6.1 成本估计 - 人力成本估计,软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。估算技术:1. 代码行技术2. 任务分解技术3. 自动估计成本技
15、术,代码行技术,根据经验和历史数据估计实现一个功能需要的源程序行数,用每行代码的平均成本乘以行数就可以确定软件的成本。 每行代码的平均成本主要取决于软件的复杂程度和工资水平。 代码行技术是比较简单的定量估算方法。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。,任务分解技术,首先把软件开发工程分解为若干个相对独立的任务。 再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。 估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。,自动估计成本技术,采用自动估计成本的软件工具可以减轻人的劳动,
16、并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。,2.6.2 成本/效益分析的方法,成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益,然后从经济角度判断这个系统是否值得投资。 运行费用取决于系统的操作费用(操作员人数,工作时间,消耗的物资等)和维护费用。 系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。 注意:,2.6.2 成本/效益分析的方法,注意: 总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。 投资是现在进行的,效益是将来获得的,不能简单地比较成本和效益,应该考虑货币的时间价值。,