欢迎来到天天文库
浏览记录
ID:64775164
大小:1.98 MB
页数:73页
时间:2024-08-29
《第02章 可行性分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
第二章可行性研究 内容2.1可行性研究的任务2.2可行性研究过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析2.7小结 开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束YN问题的定义与可性行研究Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题有用的软件3W 可行性研究的目的用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究不是解决问题,而是确定问题是否值得去解决。说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。GB8567-88《计算机软件产品开发文件编制指南》 2.1可行性研究的任务可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”——GB8566-88《计算机软件开发规范》可行性研究的最根本任务——对软件开发以后的行动方针提出建议。 可行性研究的内容可行性分析(1)技术可行性(2)经济可行性(3)操作可行性(4)社会条件可行性(如法律可行性)效益分析社会效益经济效益解决方案选择导出系统的逻辑模型,对多种可能的解决方案分析可行性,选择方案。 技术可行性度量一个特定技术信息系统解决方案的实用性及技术资源的可用性考虑的问题开发风险分析资源分析相关技术的发展(现有技术能否实现新系统,技术难点、建议采用技术的先进性) 经济可行性度量系统解决方案的性能价格比。考虑的问题成本/效益分析(开发、运行的成本/效益)有形成本、效益无形成本、效益价值和成本的关系质量与价值、成本的关系价值/成本的均衡 举例12345年6040200成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期---------成本及效益分析图 操作可行性用户使用可能性时间进度可行性组织和文化上的可行性 2.2可行性研究过程1.复查系统规模和目标确切了解要做的事情。2.研究目前正在使用的系统现有系统能做什么?不能做什么?有什么缺陷?3.导出新系统的高层逻辑模型使用形式化工具(数据流图、数据字典等)描述系统高层模型。4.进一步定义问题以系统高层模型为基础,与用户一起进一步问题的定义、系统规模和目标,修改模型,使其符合系统建设目标。5.导出和评价供选择的解法以最后提出的系统模型为基础,导出物理解决方案(可能多个),分析技术、操作、经济等可行性,制定进度表。6.推荐行动方针确定是否继该项工作,选择解决方案,进行成本效益分析。7.草拟开发计划估算进度、经费、人力资源(各层次开发、管理人员)、其他资源(硬件、软件等)的需求和使用计划。8.书写文档提交审查将上述研究编写成“可行性研究报告”,提交评审。 可行性研究报告的编写1引言1.1编写目的1.2背景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可选择的其它系统26投资及收益分析6.1支出6.2收益6.3收益/投资比6.4投资回收周期6.5敏感性分析7社会条件方面的可行性7.1法律方面的可行性7.2使用方面的可行性 2.3系统流程图系统流程图是概括地描绘物理系统的表达工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。 基本符号以概括的方式抽象地描绘一个实际系统所用符号 ---具体地描绘一个物理系统所用符号系统符号 库存清单系统的系统流程图系统流程图-例 2.4数据流图DFD----DataFlowDiagram一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。 数据流图——四种基本符号数据加工/处理/变换数据源点或终点(外部实体)数据流(dataflow)数据存储文件或或或 数据流图——几种附加符号 数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据。底层流图是指其加工不需再做分解的数据流图,它处在最底层。中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。 分层的数据流图 系统逻辑模型数据的加工或变换输入输出软件系统外部实体外部实体……外部实体外部实体……输入数据流输入数据流输出数据流输出数据流 分层的数据流图F0A0B0F11A0B0F12F13F14F15p1C1D1M1N1F21M1F22N1F23K2F24W2F25p1Y2X2第n层第n+2层第n+1层 例子1:订货系统问题描述采购部每天需要一张订货报表,按零件编号排序,列出需要再次订货的零件(即“订货报表”);需要再订货的零件应包含下述数据:(见“订货报表”);零件入库和出库为“事务”,事务发生时,报告给订货系统,当某种零件库存量少于临界值时,引发再次订货。 构成系统的数据流图元素 定货系统的基本系统模型-顶层流图 定货系统的功能级数据流图 把处理事务的功能进一步分解后的数据流图 例子2学生购买教材系统 学生教材购销系统购书单领书单缺书单进书通知进书通知保管员1销售购书单领书单学生缺书单进书通知2采购保管员第1层第2层教材存量表F1缺书登记表F2外部实体外部实体 教材销售子系统无效书单购书单1.3登记并开领书单1.2开发票1.1审查有效性1.4登记缺书1.5补售教材采购学生学生进书通知有效书单发票领书单暂缺书单1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2层补售书单第3层教材存量表F1缺书登记表F2F1书号单价数量各班用书表F3售书登记表F4外部项 1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统第2层第3层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F2 .便于实现.便于使用---采用逐步细化的扩展方法,可避免一次引入过多的细节,有利于控制问题的复杂度;---用一组图代替一张总图,方便用户及软件开发人员阅读。分层DFD图的优点 1)为数据流(或数据存储)命名(1)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。(2)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。(3)如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。画分层DFD的指导原则1.注意数据流图中成分的命名 2)为处理命名(1)通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。(2)名字应该反映整个处理的功能,而不是它的一部分功能。(3)名字最好由一个具体的及物动词加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。(4)通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。(5)如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。画分层DFD的指导原则——流图成分的命名 画分层DFD的指导原则——父图和子图平衡2.注意父图和子图的平衡/balanceorcoherence发票1.3开领书单领书单(a)父图1.3.1学生领书单1.3.21.3.3教材(a)子图 画分层DFD的指导原则3.区分局部文件和局部外部项1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统第2层第3层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F2局部外部项局部文件 画分层DFD的指导原则4.掌握分解的速度一般来说,每一个加工每次可分为2-4个子加工,最多不得超过7个。5.遵守加工编号规则顶层加工不编号。第二层的加工编号为1,2,3,…,n号。第三层编号为1.1,1.2,1.3…n.1,n.2…等号,依此类推。 数据流图的用途基本用途是作为交流信息工具对目标系统所设想的系统模型,不含系统实现的物理细节,用户容易理解,可供相关人员评审。作为分析和设计的工具数据流图只描述了系统的功能和数据及其流动,而不是系统的物理实现(而系统流程图将功能和功能的实现方案混合在一起),便于分析人员关注与与实现无关的模型,开发人员关注设计与实现,界面清晰。用于确定系统工作边界当数据流图用于辅助物理设计时,根据不同的处理要求,可用来在图上划分不同的自动处理、手工处理边界,从而实现不同的物理系统。 例:处理边界1-批量方式更新库存“事务库”保存待更新的多条信息,需要成批启动更新! 例:处理边界1-联机方式更新库存没有了“事务库”,每次“事务”的提交都可能引发新的再次订货! 2.5数据字典----DD(DataDictionary)数据流图和数据字典共同构成系统的逻辑模型没有数据字典数据流图就不严格,没有数据流图数据字典也难于发挥作用。数据字典的任务是:对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。 数据字典的内容一般说来,数据字典应该由对下列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中出现,也可不出现 例:存折格式 日期(年月日)摘要支出存入余额操作复核户名:所号:帐号:开户日:性质:印密:存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}20户名=2{字母}24所号=“001”..“999”帐号=“00000001”..“99999999”开户日=年+月+日性质=“1”..“6”注:“1”表示普通户,…“6”表示工资户等印密=“0”注:印密在存折上不显示存取行=日期+(摘要)+支出+存入+余额+操作+复核日期=年+月+日年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4支出=金额金额=“00000000.01”..“999999999.99”…… (3)数据存储词条的描述数据存储名:简述:存放的是什么数据。数据组成:数据结构。存储方式:顺序,直接,关键码。存取频率:……审查并开发票学生发票购书单各班学生用书表教材存量表 加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:取值范围:相关的数据元素及数据结构……(4)加工逻辑词条的描述1.3审查并开发票学生发票购书单各班学生用书表教材存量表 注:加工说明----(ProcessSpecification)加工说明是:对DFD中每个加工给予说明。它是从系统功能的角度对DFD作出了注解,与DD一样是DFD必不可缺少的辅助资料。PS 对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。加工逻辑说明 加工说明组成输入数据加工逻辑输出数据加工说明描述工具结构化语言判定表判定树描述把输入数据流变换为输出数据流的加工过程,是加工说明的主体。 自然语言+结构化形式(1)结构化语言选择结构如果<条件><策略>If如果<条件>则<策略1>否则<策略2>情况1<条件><策略1>……情况n<条件><策略n>IfthenOtherwisecase1……casen循环结构对…,<策略>重复以下<策略>直至<条件>Foreach…,Repeatthefollowing:Until 商店业务处理系统中“检查发货单”if发货单金额超过$500thenif欠款超过了60天then在偿还欠款前不予批准else(欠款未超期)发批准书,发货单else(发货单金额未超过$500)if欠款超过60天then发批准书,发货单及赊欠报告else(欠款未超期)发批准书,发货单 (2)判定表如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适 以“检查发货单”为例 (3)判定树判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。检查发货单金额>$500金额$500欠款>60天不发出批准书欠款60天发出批准书、发货单欠款>60天发出批准书、发货单及赊欠报告欠款60天发出批准书、发货单 名称:外部实体名简要描述:什么外部实体有关数据流:数目:(5)外部实体词条描述1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员 CASE结构化分析与设计工具(大型软件)卡片形式/excelorrecordinfile(小型软件)卡片应该包含下述信息:名字、别名、描述、定义、位置。2.5.4数据字典的实现 2.6成本/效益分析成本/效益分析的目的:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。 2.6.1成本估计软件开发成本主要表现为人力消耗人员数*平均工资=开发费用常用估算技术1.代码行技术2.任务分解技术3.自动估计成本技术 1.代码行技术根据经验和历史数据估计实现一个功能需要的源程序行数,用每行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和工资水平。代码行技术是比较简单的定量估算方法。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。 2.任务分解技术首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。 典型任务分解方法任务人数月数月平均成本金额(万元)可行性研究2136需求分析322.515设计32212编码和单元测试521.515综合测试222.510总计58 自动估计成本技术采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。 2.6.2成本/效益分析的方法成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益,然后从经济角度判断这个系统是否值得投资。运行费用取决于系统的操作费用(操作员人数,工作时间,消耗的物资等)和维护费用。系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。注意:总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。投资是现在进行的,效益是将来获得的,不能简单地比较成本和效益,应该考虑货币的时间价值。 成本/效益分析使用的几个概念1.货币的时间价值通常用利率表示货币的时间价值。设年利率为i,现已存入P元,则n年后可得钱数为F=P(1+i)n这就是P元钱在n年后的价值。反之,若n年后能收入F元,那么这些钱现在的价值是P=F/(1+i)n2.投资回收期投资回收期是衡量一个开发工程价值的经济指标。投资回收期就是积累的经济效益等于最初的投资所需要的时间。投资回收期越短,就能越快获得利润。 成本/效益分析使用的几个概念3.纯收入工程的纯收入是衡量工程价值的另一项经济指标。纯收入就是在整个生存周期之内系统的累计经济效益(折合成现在值)与投资之差。如果纯收入小于零,那么显然这项工程不值得投资。只有当纯收入大于零,才能考虑投资。4.投资回收率(ROI,returnoninvestment)投资回报就是投资收益,可用投资回报率来衡量投资回报率,是指达产期正常年度利润或年均利润占投资总额的百分比。其计算公式为:投资回报率(ROI)=年利润或年均利润/投资总额×100%。 第2章小结2.1可行性研究的任务技术,经济,操作,社会,抉择2.2可行性研究过程7步骤2.3系统流程图数据在系统(人,软,硬)各部件之间流动2.4数据流图源点或终点,处理,数据存储和数据流2.5数据字典流,元素,存储,处理2.6成本/效益分析估计,ROI,货币的时间价值 习题21.在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?2.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。写出问题定义并分析此系统的可行性。3.为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。写出问题定义并分析此系统的可行性。 习题2(续)4.目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。5.北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。 本章完!
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处