资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二章 可行性研究,可行性研究的目的就是用,最小的代价,在,尽可能短的时间,内确定,问题是否能够解决,。,(l),技术,可行性,。进行技术风险评价。从开发者的技术实力、工作基础、问题的复杂性等方面出发,判断系统开发在时间、费用等限制条件下成功的可能性。-,最难解决,(2),经济,可行性.,进行成本效益分析,从经济角度判断系统开发是否“合算”。,1.,可行性研究的,任务,(3),操作,可行性.,确定系统的运行方式、操作规程等是否适合用户。,(4)法律可行性,。确定系统开发可能导致的任何侵权行为、妨碍后果和责任。,注:,可行性研究的成本,占总成本的 5, 10,%,2.可行性研究的步骤,1、复查定义,明确限制的约束。,我们认为用户要的 用户要的,2、研究老系统(,要避免花费过多的精力),解决老系统问题,老系统功能,新增,功能,新系统效益,注:,只了解老系统,做什么,,而不管怎样做;,注意了解与其它系统的接口。,老系统效益,3、导出新系统的高层逻辑模型,-,使用,数据流图和数据字典,描述数据在系统的流动和处理情况。,抽象,实现,改进,老系统,模型,新模型,新系统,3、逻辑模型,4、重新定义,1、复查定义,注:此时合同未签,应考虑成本,不宜反复太多次。,5、导出多种解法,进度表,经济上合算,技术上可行,操作上可行,技术上不可行,用户,不,可,能,操,作,不合算,途径,:在DFD图上划分不同的自动化边界,从而导出若干种解决方案。,6、推荐行动方针,Yes or No?,No,Yes,Why?,Which one is the best?,Why? (cost / benefit),7、开发计划(粗略),任务分解,确定负责人,大致进度规划,财务预算,风险分析及对策,8、最后,编写,可行性分析报告,,整理成相应文档提请有关部门和用户审查。,引言,可行性研究前提,对现有系统的分析,所建议系统的分析(技术、操作、经济),其他可供选择的方案,结论意见,可行性研究报告大纲如下:,引言:,对问题的简单叙述,实现系统的环境,该软件系统与其他系统之间的相互关系。,可行性研究前提:,说明建议开发软件的基本要求,主要开发目标,开发条件限制与约束,进行可行性研究的方法,对系统进行评价的尺度与依据。,对现有系统的分析:,现有系统可能是一个计算机系统,也可能是一个人工系统。应该准确描述现有系统的处理流程,工作负荷,费用开支,人员及设备要求,管理模式,存在问题。,所建议的系统:,概括说明建议系统,包括处理流程,能够满足的要求,系统的优点,开发技术风险估计,目标系统运行管理模式,系统可能存在的局限性。,可供选择的其他方案描述:,对可选择方案逐一说明,并说明没有选中的理由。方案配置的介绍,选择方案的准则。,成本效益分析。技术风险估计。,操作与社会可行性分析。,结论:,可行性报告最后必须有一个结论,可能的结论是:项目应该立即展开;系统需要推迟到某些条件具备才能开始;需要对系统目标进行某些修改才能开始进行;系统不能进行(技术不可行)或者没有必要进行(经济不可行),。,3. 可行性分析的技术方法,(系统流程图、数据流图和数据字典),它的基本思想是用图形符号以黑盒子形式,描绘物理系统,里面的每个部件(程序,文件,数据库,表格,人工过程等等)。,系统流程图表达的是数据在系统各部件之间,流动的情况,而不是,对数据,进行加工处理的,控制,过程(不同于程序流程图)。,系统复杂是可,分层描绘,。首先,用一张高层次的系统流程图描绘系统的总体概貌,表明系统的关键功能;然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。分层描绘法便于阅读者从抽象到具体的过程逐步深入了解一个复杂的系统。,一、系统流程图,系统流程图五种基本符号,系统流程图的其他符号,变化,仓库,零,库存量,件 临界值,库存清单,XX : ,XX : ,库存,临,界值,定货报告,例子:,某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在,库存清单主文件,中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果那种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次,定货报告,.,注:,符号 = 系统部件,箭头 = 信息流动路径,事务,库存清单程序,库存清单主文件,定货,信息,报告生成程序,定货报告,即库存量变化,分析:,该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中的终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的定货信息写在磁带上。,最后,每天由报告生成程序读一次磁带,并且打印出定货报告。,系统流程图的习惯画法是使信息在图中从上到下、从左至右,。,1、数据流图中的主要图形元素(四种),二. 数据流图(,ata low Diagram,),数据流图(DFD)描绘系统的逻辑模型,图中没有任何具体的物理元素,只是,描绘信息在系统中流动和处理的情况,。,设计数据流图只需考虑系统必须完成的,基本逻辑功能,完全不需要考虑如何具体地实现这些功能。,2、说明:,处理并不一定是一个程序,。一个处理框可以代表一系列程序、单个程序或者程序的一个模块。,一个,数据存储,也,并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等等,;,数据可以存储,在磁盘、磁带、磁鼓、主存、微缩胶片、穿孔卡片及其他,任何介质,上,(,包括人脑)。,数据存储和数据流都是数据,仅仅所处的状态不同。,数据存储,是处于,静止状态,的数据,数据流,是处于,运动,中的数据,。,有时数据的源点和终点相同,为了增加数据流图的清晰程度。再重复画一个同样的符号,(,正方形或立方体,),表示数据的终点。,有时数据存储也需要重复,以增加数据流图的清晰程度。为了避免可能引起的误解,如果代表同一个事物的同样符号在图中出现在,n,个地方,则在这个符号的一个角上画,n,一,1,条短斜线做标记。,3、数据流与数据加工之间的关系,(数据流图的附加符号),4、数据流图的层次结构,为了表达数据处理过程的数据处理情况,需要采用,层次结构,的数据流图。按照系统的层次结构进行,逐步分解,,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。,分层数据流图,在多层数据流图中,,顶层流图,仅包含,一个加工,,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据,底层流图,是指其,加工不需再做分解,的数据流图,它处在最底层,中间层流图,则表示,对其上层父图的细化,。它的每一加工可能继续细化,形成子图。,5、画数据流图的步骤:,自外向内,自顶向下,逐层细化,完善求精,1)从问题描述中提取数据流图的四种成份(,源点或终点,,,处理,,,数据存储,,,数据流,)。,2)根据具体业务,画出顶层数据流图,以反映最主要业务处理流程。,3)从输入端开始,按系统的逻辑需要,画出数据流流经的各处理框,逐步画到输出端,得到第一层数据流图,4)对数据流图中描绘的系统主要功能进一步细化,画出所需的子图.,5)检查、修改。,例子,假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,第一步,可以从问题描述中提取数据流图的四种成分,。,组成数据流图的元素可以从描述问题的信息中提取,(有些信息是隐含的),源点与终点,:,采购员是数据终点,而仓库管理员,是数据源点。,处理:,产生报表、处理零件入库出库的事务(改变库存量),数据流:,(1)定货报表:,零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。,(2)事务:,零件编号,(名称)、事务类型(入库出库)、,数量,数据存储:,(1)定货信息(见定货报表),(2),库存清单,:,零件编号,、库存量、库存量临界值,第二步 画出基本系统模型-顶层DFD,(若干个数据源点/终点加一个处理),仓库管理员,定货系统,采购员,事务,定货报表,第三步 对基本系统模型进一步细化,描绘出主要功能,仓库管理员,采购员,事务,定货报表,1,2,处理事务,产生报表,D2 定货信息,D1 库存清单,定货信息,定货信息,库存清单,注:在图中给处理和数据加了编号,这样做的目的是便于引用和追踪。,数据存储(静态)和数据流(动态)只不过是同样的数据的两种不同形式,第四步 对功能级数据流图中描绘的系统主要功能进一步细化,仓库管理员,采购员,事务,定货报表,1.3,2,处理定货,产生报表,D2 定货信息,D1 库存清单,定货信息,定货信息,库存清单,1.2,更新库存清单,1.1,接受事务,事务,库存信息,当进一步分解将涉及如何具体实现一个功能时就不应再分解了。,(1),当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。,(2),注意对处理进行编号的方法。处理1.1、1.2和1.3是更高层次的数据流图中处理1的组成元素。如果处理2被进一步分解,它的组成元素的编号将是2.1,2.2,.;如果把处理1.1进一步分解,则将得到编号为1.1.1,1.1.2,.的处理。,注意:,6、命名,1.,为数据流(或数据存储)命名,(1)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。,(2)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。,(3)如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。,2.,为处理命名,(1)通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而主体现了人类习惯的“由表及里”的思考过程。,(2)名字应该反映整个处理的功能,而不是它的一部分功能。,(3)名字最好由一个具体的,及物动词,加上一个具体的,宾语,组成。应该尽量避免使用”加工、“处理等空洞笼统的动词作名字。,(4)通常名字中,仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则包这个处理再分解成两个处理可能更恰当些。,(5)如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。,数据源点/终点并不需要在开发目标系统的过程中设计和实现,它并不属于数据流图均核心内容。通常,为数据源点/终点命名时采用它们在问题域中习惯使用的名字(如“采购员”、“仓库管理员”等)。,7、检查和修改数据流图的原则,数据流图上所有图形符号只限于前述,四种基本图形元素,数据流图的主图上的数据流必须封闭在外部实体之间,每个加工至少有一个输入数据流和一个输出数据流,在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系,规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即,父图与子图的平衡,图上每个元素都必须有名字,数据流图中,不可夹带控制流,初画时可以忽略琐碎的细节,以集中精力于主要数据流,8、用途,画数据流图的基本目的是利用它作为,交流信息的工具,。分析员把他对现有系统的认识或对目标系统的设想用数据流图描绘出来,供有关人员审查确认。,每层数据流图中包含的处理不得超过9个,。,数据流图的另一个主要用途是作为,分析和设计的工具,。分析员应该,着重描绘系统所完成的功能,而不是系统的物理实现方案。数据流图是实现这个目示的极好手段。,当用数据流图辅助物理系统的设计时,以图中,不同处理的定时要求,为指南,能够在数据流图上画出许多组,自动化边界,,每组自动化边界可能意味着一个不同的,物理系统,,因此可以,根据系统的逻辑模型考虑系统的物理实现,。,例如,可以联机地接收事务并放入队列中,然而更新库存清单、处理定货和产生报表以批量方式进行。,当然,这种方案需要,增加一个数据存储,以存放事务数据。,改变自动化边界,这个系统将联机地接收事务、更新库存清单和处理定货及输出定货信息;然而处理,2,将以批量方式产生定货报表。,数据字典与数据流图配合,能清楚地表达数据处理的要求,数据字典的任务是对于在数据流图中每一个被命名的图形元素均加以定义,使得每一个图形元素的名字都有一个确切的解释,三、 数据字典(Data Dictionary),数据字典是关于数据的信息的集合,也就是对数据流图中包含的,所有元素的定义的集合,。,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。 (分析阶段的工具),1 、 数据字典的内容,数据字典由对下列四类元素的定义组成:,(1)数据流;,(2)数据流分量(即,数据元素);,(3)数据存储;,(4)处理(加工)。,在数据字典中记录数据元素的下列信息:,一般信息,(名字,别名,描述等等);,定义,(数据类型,长度,结构等等);,使用特点,(值的范围,使用频率,使用方式-输入/输出/本地,条件值等等);,控制信息,(来源,用户,使用它的程序,改变权,使用权等等);,分组信息,(父结构,从属结构,物理位置-记录、文件和数据库等等)。,2、定义数据的方法,数据字典中的定义就是对数据自顶向下的,分解,。,由数据元素,组成,数据的方式只有下述三种基本类型:,(1)顺序 即以确定次序连接两个或多个分量;,(2)选择 即从两个或多个可能的元素中选取一个;,(3)重复 即把指定的分量重复零次或多次。,重复算符通常和重复次数的上下限同时使用(当上下限相同时表示重复次数固定)。,(4)可选 即一个分量是可有可无的(重复零次或一次)。,数据定义的描述,存折格式,存折户名所号帐号开户日性质(印密)1存取行50,户名2字母24,所号“001”.“999”,帐号“00000001”.“99999999”,开户日年月日,性质“1”.“6” 注:“1”表示普通户,“5”表示工资户等,印密“0” 注:印密在存折上不显示,存取行日期(摘要)支出存入余额操作复核,3、数据字典的实现,常见的途径:,全人工过程,全自动化过程,(利用数据字典处理程序)和,混合过程,(用正文编辑程序,报告生成程序等已有的实用程序帮助人工过程)。,数据字典应该具有下述特点:,(1)通过名字能方便地查阅数据的定义;,(2)没有冗余;,(3)尽量不重复在规格说明的其他组成部分中已经出现的信息;,(4)容易更新和修改;,(5)能单独处理描述每个数据元素的信息;,(6)定义的书写方法简单方便而且严格。,名字:定货报表,别名:定货信息,描述:每天一次送检采购员,定义:,定货报表=零件编号+零件名称,+定货数量+目前价格,+主要供应者,+次要供应者,位置:输出到打印机,数据,结构,struct 定货报表,char,零件编号8;,char,零件名称20;,int,定货数量;,float,目前价格;,struct supplier,主要供应者;,struct supplier,次要供应者;,;,名字:零件编号,别名:,描述:唯一地标识库存清单中,一个特定零件的关键域,定义:零件编号 = 8 字符 8,位置:定货报告,定货信息,库存清单,若修改“零件编号”的定义,则受到影响的数据均列于此,补充: 数据字典,具体条目内容及举例如下:,数据流条目,数据流名称:订单 别名:无 简述:顾客订货时填写的项目 来源:顾客 去向:加工1检验订单 数据流量:1000份/每周(单位时间内的传输次数) 组成:编号+订货日期+顾客编号+地址+电话+银行帐号+货物名称+规格+数量,数据存储条目,数据存储名称:库存记录 别名:无 简述:存放库存所有可供货物的信息 组成:货物名称+编号+生产厂家+单价+库存量 组织方式:索引文件,以货物编号为关键字 查询要求:要求能立即查询,数据条目,数据项名称:货物编号 别名:G-No,G-num,Goods-No 简述:本公司所有货物的编号 类型:字符串 长度:10 取值范围及含义: 第一位:进口/国产 第2-4位:类别 第5-7位:规格 第8-10位:品名编号,加工条目,加工名:查阅库存 编号:12 激发条件:接收到合格订单时 优先级:普通 输入:合格合格订单 输出:可供货订单,缺货订单 加工逻辑:根据库存记录 IF 订单项目数量,收入,不合算!,分析:,衡量工程价值的经济指标有:, 纯收入,= 折合现价的总收入 - 当前投资额,=, 投资回收期,例:第6年底可收回, 投资回收率:设为,j,作业:,1.某图书管理系统有以下功能:,借书:输入读者借书证。系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书证上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10,拒借,未达10本,办理借书(检查库存,修改库存目录并将读者借书情况录入借书文件。) 还书:从借书文件中读出与读者有关的记录,查阅所借日期,如超期(3个月)作罚款处理。否则,修改库存目录与借书文件。 查询:通过借书文件,库存目录文件查询读者情况图书借阅及库存情况,打印统计表。,请就以上系统功能画出分层的DFD图,。,2.P44 5,
展开阅读全文