第2章可行性研究主讲人:黎佳开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束YN问题的定义与可性行研究可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能够解决以及是否值得解决。可行性研究的任务可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”GB8566-88《计算机软件开发规范》可行性研究的内容(1)技术可行性(2)经济可行性(3)操作可行性(4)社会可行性(法律可行性)(5)抉择1、技术可行性度量一个特定技术信息系统解决方案的实用性及技术资源的可用性考虑的问题(1)给定时间内能否实现这些功能?(2)软件质量如何?(3)软件生产率如何?(技术难点?技术是否可采用先进技术?能利用的资源怎么样?)2、经济可行性度量系统解决方案的性能价格比。考虑的问题成本/效益分析(开发、运行的成本/效益)有形成本、效益无形成本、效益价值和成本的关系质量与价值、成本的关系价值/成本的均衡成本和效益的估算系统开发和每年运行费用举例1.系统开发费用(一次).2名系统分析员(450小时/名,45美元/小时)$40,500.5名系统开发人员(275小时/名,36美元/小时)$49,500.1名数据库管理员(30小时/名,42美元/小时)$1,260.2名技术写作者(120小时/名,25美元/小时)$6,000.1名秘书(160小时/名,15美元/小时)$2,400系统开发和每年运行费用举例•1名数据通讯专家(60小时/名,42美元/小时)$2,400•2名在转换期间数据输入人员$49,500(40小时/名,12美元/小时)培训:三天的开发人员内部培训课程$7,00030个用户,三天的内部培训课程$10,000物资:复印$500磁盘、纸张等消耗品$650系统开发和每年运行费用举例购买硬件、软件:20台工作站Windows软件$1,00020台工作站内存升级$8,000网络软件$17,50020台工作站办公软件产品$20,000系统开发总费用$161,670系统开发和每年运行费用举例2.年运行费用(每年)人员:维护程序员/分析员(250小时/年,42美元/小时$10,500网络管理员(300小时/年,50美元/小时)$15000购买硬件、软件升级:硬件$5000软件$6000物资和杂项$3500系统开发总费用$40,000成本估算•代码行技术•功能点技术效益分析•系统的经济效益=使用新系统增加收入+使用新系统可以节省的运行费用•总的效益和软件生存周期有关。(5年)通常用利率表示货币的时间价值。设年利率为i,现已存入P元,则n年后可得钱数为F=P(1+i)n。这就是P元钱在n年后的价值。反之,若n年后能收入F元,那么这些钱现在的价值是P=F/(1+i)n货币的时间价值年将来值(元)(1+i)n现在值(元)累计的现在值(元)125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.941.投资回收期投资回收期是衡量一个开发工程价值的经济指标。投资回收期就是积累的经济效益等于最初的投资所需要的时间。投资回收期越短,就能越快获得利润。思考,前面那个例子的投资回收期是多少呢?投资回收期工程的纯收入是衡量工程价值的另一项经济指标。纯收入就是在整个生存周期之内系统的累计经济效益(折合成现在值)与投资之差。如果纯收入小于零,那么显然这项工程不值得投资。只有当纯收入大于零,才能考虑投资。思考:上例的纯收入是多少?纯收入投资回收率•是衡量工程经济效益的重要参考数据,用来衡量投资效益的大小。可以和年利率相比较。•计算公式:•P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)n其中P是投资成本;Fi是第i年年底的效益;n是系统的寿命;j为投资回收率。解高阶方程可得上例的投资回收率为41%-42%.操作可行性•用户使用可能性•组织和文化上的可行性社会可行性(法律可行性)•开发项目是否会在社会上或政治上引起侵权、破坏或其它责任问题可行性研究的步骤(1)复查确认系统目标、规模(2)研究正使用系统工作流程(3)导出新系统高层逻辑模型(4)重新定义问题(5)导出和评价供选择的方案(6)推荐可行的方案(7)草拟开发计划(8)编写可行性研究报告,送审可行性研究报告的编写1.见计算机软件产品开发文件编制指南word文档。2.应包含四部分内容:系统概述;可行性分析;拟订开发计划;结论意见;2019/8/29可行性分析所需工具(系统流程图)1、系统流程图:是用来描述系统物理模型的一种传统工具。流程符号含义流程符号含义数据加工符号换页连接输入/输出符号磁带符号连接点符号文档符号人工操作多文档符号2019/8/29流程符号含义流程符号含义显示器或终端机控制流符号磁盘机或数据库流程开始与结束2019/8/29人工销售教材流程图结束学生申请购书购书证明检索教材帐本是否有该教材购书单开购书发票和购书单购书发票到书库领书2019/8/29计算机售书系统流程图结束学生购书发票到书库领书购书单终端审查并开发票11---学生各学期用书数据库购书单22---教材存量数据库例子•一个装配厂有一座存放零件的仓库,仓库中现有各种零件的数量以及每一种零件的库存量临界值等数据都记录在库存清单文件中。当仓库中零件数量有变化的时候,应该及时的修改库存清单文件,如果哪种零件的库存量少于他的临界值,则要报告给采购部以便订货,规定每天向采购部送一次订货报告。画库存清单系统的系统流程图。库存清单系统的系统流程图2019/8/29图形工具数据流图数据字典建立目标系统逻辑模型的图形工具2019/8/29数据流图----DFD(DataFlowDiagram)是用来描述系统逻辑模型的一种图形工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。DFD2019/8/29数据流图中的主要图形元素------转换数据流的处理过程----可以是数据库文件或任何形式的数据组织。箭头向内则表示写入文件或查询文件,箭头向外则表示从文件中读取数据或得到查询结果数据转换外部实体------位于软件系统边界之外的信息生产者或消费者数据流------在转换之间有向流动的数据项或数据集合数据存储文件2019/8/29----学生购买教材的逻辑模型审查并开发票学生发票各班学生用书表教材存量表无效书单开领书单领书单学生外部实体数据的加工2019/8/29数据流图中的其它图形元素ABC------有A则B或者C,或者两者都有*ABC+ABC------有A则B与C,或者两者同时有------有A则B或C,但不会同时有B与C2019/8/29-----标识多个数据流与加工之间关系的符号------当A或B有一个存在就有CABC*ABC------只有当A与B都存在,则有C分层的数据流图例子•假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。•零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。•当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流图。数据流图画法1、第一层画三部件2、对第一层中的处理进行功能细化,并加相应的存储3、对第二步中的处理进行二次细化,三次细化,直到不能细化第一层•采购员管理员订货系统事务报表第二层•第三层定货思考:•请同学们参考上面的例子,自己试着画一下“学生购买教材”这个系统的数据流图。此系统根据学生的需求销售给学生相应的书籍,如果遇到缺书情况,则会生成缺书单给书库。学生教材购销系统购书单领书单缺书单进书通知进书通知保管员1销售购书单领书单学生缺书单进书通知2采购保管员第1层第2层教材存量表F1缺书登记表F2外部实体外部实体举例----学生购买教材系统教材销售子系统无效书单购书单1.3登记并开领书单1.2开发票1.1审查有效性1.4登记缺书1.5补售教材采购学生学生进书通知有效书单发票领书单暂缺书单1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2层补售书单第3层教材存量表F1缺书登记表F2各班用书表F3售书登记表F4外部实体1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统第2层第3层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F2.便于实现.便于使用---采用逐步细化的扩展方法,可避免一次引入过多的细节,有利于控制问题的复杂度;---用一组图代替一张总图,方便用户及软件开发人员阅读。分层DFD图的优点画分层DFD的指导原则发票1.3开领书单领书单(a)父图1.3.1学生领书单1.3.21.3.3教材(a)子图1.注意父图和子图的平衡画分层DFD的指导原则2.掌握分解的速度一般来说,每一个加工每次可分为2-4个子加工,最多不得超过7个。3.遵守加工编号规则顶层加工不编号。第二层的加工编号为1,2,3,…,n号。第三层编号为1.1,1.2,1.3…n.1,n.2…等号,依此类推。作业•案例一:火车票预订系统•系统简介:某高校后勤集团为了学生寒暑假返乡,办理代学生预订返乡火车票事务,订票必须提前三天办理,后勤订票处提前三天向火车站办理购票事务。订票处使用一台微机处理订票后购票事务,学生订票一次称为一个事务,由订票员将其输入在微机中,系统核实订单后,将订票信息记录放在订票库中。系统每天打印预订三天的购票单,并更新订票库。•请对该系统进行业务流程分析后,绘制出该系统的系统流程图及数据流图。数据字典----DD数据流图和数据字典共同构成系统的逻辑模型数据字典的任务是:对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。数据字典的内容一般说来,数据字典应该由对下列4类元素的定义组成:(1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理数据流名:说明:简要介绍作用,即它产生的原因和结果。数据流来源:即该数据流来自何方。数据流去向:去向何处。数据流组成:数据结构。每个数据量流通量:数据量、流通量。(1)数据流词条的描述数据流名:发票说明:用作学生已付书款的依据数据流来源:来自加工“审查并开发票”数据流去向:流向加工“开领书单”。数据流组成:学号+姓名+书号+单价总价+书费合计审查并开发票发票数据元素名:类型:数字(离散值、连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构(2)数据元素词条的描述年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4金额=“00000000.01”..“999999999.99”……定义数据符号符号含义例子=被定义为+与[]x=a+b,则表示x由a和b组成x=[a,b],则表示x由a或由b组成{}或重复x={a},则表示x由0个或多个a组成()可选表示在两个*之间的内容为词条的注释m{}n重复x=3{a}8,则表示x中至少出现3次a,最多出现8次*…*注释符x=(a),则表示a在x中出现,也可不出现名字:零件编号别名:描述:唯一地标识库存清单中一个特定零件的关键域定义:零件编号=8{字符}8位置:定货报表定货信息库存清单事务(3)数据存储词条的描述数据存储名:简述:存放的是什么数据。数据组成:数据结构。存储方式:顺序,直接,关键码。存取频率:……审查并开发票学生发票各班学生用书表教材存量表加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:取值范围:相关的数据元素及数据结构……(4)加工逻辑词条的描述1.3