您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 总结/报告 > 经济可行性研究和需求分析(PPT92页)
知识回顾软件生命周期的六个阶段是什么?第2章可行性研究与需求分析2.1可行性研究2.1.1可行性研究的目的2.1.2可行性研究的内容2.1.3可行性研究的步骤2.1.42.1.1可行性研究的目的与意义可行性研究的目的不在于提出解决问题的方案,而在于研究解决问题的必要性和可能性。2.1.2可行性研究的内容1.经济可行性2.技术可行性3.社会可行性可行性研究的内容经济可行性研究的研究内容包括以下几项:•支出的资金成本涉及硬件资源的支出、软件资源的支出、办公必需品的支出等。成本•包括开支的减少,效率的改进,客户的增多收益收益/投资比投资回收周期敏感度分析可行性研究的内容技术可行性研究的研究内容包括以下几项:风险分析技术分析资源分析可行性研究的内容社会可行性研究的研究内容包括以下几项:•项目与现行的某些国家政策是否背离政策•是否会引起侵权,有无违法问题,也许考虑合同的责任、专利权、版权等权益问题。法律•是否违背一些社会伦理道德等制度2.1.3可行性研究的步骤典型的可行性研究的步骤如图所示。可行性研究的步骤1.确定系统的目标系统分析人员要详细地阅读各种相关资料,并对用户和市场进行调查,从而确认目标系统要完成的任务。同时,还要明确进行项目开发时的一切限制和约束,以及可以使用的各种资源。可行性研究的步骤2.分析研究正在运行的系统对现有系统功能特点的充分了解是成功开发新系统的前提。对现有系统的研究包括阅读和分析各种文档资料,观察系统的运行状况和实地操作系统,收集和分析用户对现有系统的意见等。可以说,现有系统是开发目标系统时重要的信息来源。可行性研究的步骤3.设计新系统的高层逻辑模型一般来说,新系统应该完成现有系统的功能,并对现有系统中存在的问题进行改善或修复。在分析研究了现有系统的基础上,就可以大体把握新系统的功能和结构,然后从较高层次上建立新系统的逻辑模型。可行性研究的步骤4.提出可行的解决方案并对其进行评估和比较基于新系统的高层逻辑模型,系统分析人员可以从技术的角度提出多种解决方案,并从经济、社会和技术等多个方面对各种解决方案进行比较和评估。可行性研究的步骤5.选择合适的解决方案在上述研究的基础上,回答该软件产品是否能够解决存在的问题,是否能够带来预期的效果和价值的问题。如果该软件开发项目没有必要性和可能性,则应立即停止,并给出详细的理由。如果有开发该软件产品的必要性和可能性,那么应该从上述的多个解决方案中选取出最合适、最可行的解决方案,列举出选择该方案的原因,从经济可行性、社会可行性和技术可行性三个方面对该方案进行可行性研究。可行性研究的步骤6.撰写可行性研究报告项目背景管理概要候选方案系统描述经济可行性分析、社会可行性分析、技术可行性分析可行性研究的结论可以按计划进行软件项目的开发。需要进行调整或改善后才能进行项目的开发该软件项目不具有可行性,立即停止。2.1.4可行性研究的文档提交给用户的最终可行性研究报告,纸质或者电子版。案例:编写软件计划书某中学需要开发一套图书管理系统。目标是实现对图书的自动管理,节省人力资源。要求本系统适用性强,还能应用于部分小型书店。功能要求:1、图书馆管理人员可完成图书入库录入(可通过条形码),进行分类汇总。2、借书时,记录借书日期,以及将相应的信息录入数据库以供检索使用。还书时对借书记录进行注销,并把相应的信息录入数据库以供检索使用。3、用户可查询在馆书目,以及用户的借书记录。还可提供预约借书服务。2.2需求分析为什么需要需求分析?开发人员往往急于求成希望对开发进行指导希望开发人员对用户的要求理解希望用户理解开发人员测试部门有理可依需求分析谁来做?系统分析员系统分析员的素质:专业素质沟通能力组织、协调能力写作能力一定的成本核算知识利用软件范围作为指南,软件需求分析试图实现如下几个目标:1)揭示系统信息的流程与结构,为软件的开发打下基础。2)确定接口细节、深入描述软件功能、确定设计的约束、规定软件的检验需求。3)建立并保持与用户以及软件需求者的联系,以便实现上述两项目标。2.2.1软件需求分析的目标2.2.2需求分析阶段的任务1.确定对系统的综合需求(1)系统功能需求明确系统必须完成的所有功能。(2)系统性能需求包括响应时间、精度指标、安全性等。(3)运行需求集中表现为对系统运行时所处环境需求,如软硬件运行环境限定需求等。(4)将来可能会提出的需求目的是在设计过程中对系统将来可能的扩充和修改做准备,以便需要时能比较容易进行这种扩充和修改,更有利于系统维护2.分析系统的数据需求分析系统的数据需求,是通过系统的信息流归纳抽象出数据元素组成、数据逻辑关系、数据字典格式和数据类型,并以输入-处理-输出的结构方式表示。因此,必须分析系统的数据需求,这是软件需求分析的一个重要任务。2.2.2需求分析阶段的任务3.获得系统的逻辑模型(1)确定目标系统与当前系统的逻辑差别;(2)将变化部分看作新的处理步骤,对功能图(一般是数据流图)及对象图进行调整;(3)由外及里,对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。2.2.2需求分析阶段的任务4.修正系统开发计划经过需求分析阶段的工作,分析员对目标系统有了更深入、更具体的认识,因此可以对系统的成本和进度做出更准确的估计,在此基础上对开发计划进行修正。2.2.2需求分析阶段的任务5.开发原型系统:当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的方法对用户需求进行挖掘。2.2.2需求分析阶段的任务2.2.3软件需求分析的步骤第一步:获取需求识别问题(1)研究资料法(2)问卷调查(3)用户访谈(4)实地观察2.2.3软件需求分析的步骤第二步:分析需求建立模型第一步结束后,分析员应该能够总结出如下几点:1)系统会产生和使用什么数据?2)系统必须完成什么功能?3)将定义什么界面?4)会应用什么约束等。在此基础上,分析员创建系统模型,以便可以更好地理解数据流和控制流、处理功能、操作行为及信息内容。常用的数据模型有数据流图(结构化的设计)E-R图(结构化的设计)用例图(面向对象的设计)2.2.3软件需求分析的步骤第三步拟订软件需求分析文件软件需求分析完成后,这一阶段应交付的文件有:1.软件需求说明书(或软件规格说明书)2.初步的用户手册3.确认实施计划4.数据要求说明书2.2.3软件需求分析的步骤第四步需求验证、复审1.验证--几个必须回答的问题(1)所规定的软件目标和任务与系统的目标和任务相符合吗?(2)与所有系统成分的重要接口都已经被描述了吗?(3)研制项目的信息流和信息结构充分确定吗?(4)图表都清楚吗?每一个图表在不加补充说明的情况下能理解吗?(5)主要功能在规定范围内吗?每一功能都已充分地加以说明了吗?(6)设计的限制条件是现实的吗?2.2.3软件需求分析的步骤(7)开发的技术风险是什么?(8)考虑过软件需求的其他方案吗?(9)检验标准详细制定了吗?他们能否确认系统是成功的?(10)有没有遗漏、重复或者不一致的地方?(11)与用户或需求者的联系充分吗?(12)用户复审了初步的用户手册吗?(13)软件计划中的估算如何受到影响?2.2.3软件需求分析的步骤2.复审---规则(1)着重于说服性的连接词(如当然、因此、明确的、显然的等),并问“为什么”。(2)观察含糊的术语(如一些、有时、经常、通常、一般、大多数等),并进行澄清。(3)当给出了不完整的列表时,确定已理解了所有项,关键是查找“等、如此这样”。(4)查找蕴含了确定性的语句(如“总是”、“每次”、“所有”、“无”、“永不”等),然后要求证明它们。(5)当某术语被明确地定义在某处时,力图用该定义去替换其他地方出现的该术语。(6)当用语句描述某结构时,画图以帮助理解。(7)当描述计算时,至少试验一个例子。软件需求分析的步骤总结常用的数据模型有数据流图(结构化的设计)E-R图(结构化的设计)用例图(面向对象的设计)2.3需求分析常用的方法软件需求分析方法很多,重点介绍以下两种方法结构化分析方法面向对象分析方法数据流图结构化需求分析采用的是“自顶向下,由外到内,逐层分解”的思想,开发人员要先画出系统顶层的数据流图,然后再逐层画出低层的数据流图。顶层的数据流图要定义系统范围,并描述系统与外界的数据联系,它是对系统架构的高度概括和抽象。底层的数据流图是对系统某个部分的精细描述。2.3.1结构化分析方法特点:自顶向下,逐层分解132P2.12.21.11.31.23.13.2顶层第一层第二层描述工具:数据流图数据字典E-R图2.3.1结构化分析方法数据流图数据流图(DataFlowDiagram,DFD)是描述系统中数据流的图形工具。是一种用来表示信息流和信息变换过程的图解方法,可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。数据流图把软件系统看成是由数据流联系的各种功能的组合,在需求分析的过程中,可以用来建立目标系统的逻辑模型。数据流图的图符四种基本图形符号:数据的源点或终点加工(数据处理)数据存储数据流数据流名图d1.2.1加工名图b实体名图a文件名图c数据流图画数据流图的基本原则:1.数据流图中所有的符号必须是前面所述的四种基本符号和附加符号;2.数据流图的主图(顶层)必须含有前面所述的四种符号,缺一不可;3.数据流图主图上数据流必须封闭在外部实体之间。(外部实体可以是一个,也可以是多个);4.加工(变换数据处理)至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果;5.任何一个数据流子图必须与他父图上的一个加工相对应,父图中有几个加工,就可能有几张子图,两者的输入数据流和输出数据流必须一致,即所谓“平衡”;6.图上的每个元素都必须有名字(流向数据存储或从数据存储流出的数据流除外)。分层的数据流图画数据流图的步骤:第一步,先找外部实体(可以是人、物或其他软件系统),找到了外部实体,则系统与外部世界的界面就得以确定,系统的源点和终点也就找到了;第二步,找出外部实体的输入和输出数据流;第三步,在图的边上画出系统的外部实体;第四步,从外部实体的输出流(源点)出发,按照系统的逻辑需要,逐步画出一系列变换数据的加工,直到找到外部实体处所需的输入流(终点),形成数据流的封闭;第五步,按照上述原则进行检查和修改。最后按照上述步骤画出所有子图。画数据流图的注意事项:1.画数据流图时,只考虑数据流的静态关系,不考虑其动态关系(如启动、停止等与时间有关的问题),也不考虑出错处理问题。2.画数据流图时,只考虑常规状态,不考虑异常状态,这两点一般留在设计阶段解决。3.画数据流图不是画程序流程图,二者有本质的区别。数据流图只描述“做什么”,不描述“怎么做”和做的顺序。而程序流程图表示对数据进行加工的控制和细节。4.不能期望数据流图一次画成,而是要经过各项反复才能完成。5.描绘复杂系统的数据流图通常很大,对于画在几张纸上的图很难阅读和理解。一个比较好的方法是分层的描绘这个系统。在分层细画时,必须保持星系的持续性,父图和子图要平衡;每次只细画一个加工。例1分析下面父图和子图是否平衡1423ABCDEGF4.14.24.34.4父图:子图4:EFGHL父图与子图的平衡3122.12.2考生信息录取通知书父图:子图2:考生姓名准考证号通信地址考试成绩录取通知书例2分析下面父图和子图是否平衡画数据流图的用途;1.基本目的是利用它作为交流信息的工具;供有关人员审查确认;供用户理解和评价;数据流图应该分层,超过9个时应该画分图。2.另一个用途是作为分析和设计的工具;描述系统所完成的功能辅助物理系统的设计时,以定时要求为指南,画出许多组自动化边界,对应不同的物理系统;1.导出更详细的设计步骤---面向数据流的设计方法。数据流图案例1:绘制考试管理系统的顶层及底层数据流图。某单位进行招聘考试,应聘者报
本文标题:经济可行性研究和需求分析(PPT92页)
链接地址:https://www.777doc.com/doc-613941 .html