哈工大华德应用技术学院软件工程就是用最小的代价在尽可能短的时间内确定问题是否能够解决。注意:可行性研究的目的不是解决问题,而是确定问题是否值得去解。不能靠主观猜想而只能客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后能带来的效益是否大到值得投资开发这个系统的程序。第二章可行性研究第1节可行性研究的任务可行性研究的目的如何实现哈工大华德应用技术学院软件工程任务:可行性研究实质上是要进行一次大的压缩简化了的系统分析和设计的过程。分析员应该给出系统的逻辑模型,然后从系统逻辑模型出发,寻找可供选择的解法,研究每一种解法的可行性。一般说来,应从经济可行性、技术可行性、运行可行性、法律可行性和开发方案等方面研究可行性。(1)、经济可行性经济可行性研究主要进行成本效益分析,包括估计项目的开发成本,估算开发成本是否会高于项目预期的全部利润。(2)、技术可行性技术可行性是最难决断和最关键的问题。根据客户提出的系统功能、性能及实现系统的各项约束条件,从技术的角度研究系统实现的可行性。哈工大华德应用技术学院软件工程1)、风险分析:在给出的限制范围内,能否设计出系统,并实现必要的功能和性能。2)、资源分析:研究开发系统的人员是否存在问题,可用于建立系统的其他资源,如硬件、软件等是否具备。3)、技术分析:相关技术的发展是否支持这个系统。(3)、运行可行性运行可行性研究内容包括新系统规定的运行方式是否可行,如果新系统是建立在原来已担负其他任务的计算机系统上的,就不能要求它在实时在线状态下运行,以免与原有的任务相矛盾。哈工大华德应用技术学院软件工程(4)、法律可行性法律可行性是指研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。(5)、开发方案可行性提出系统实现的各种方案并进行评价之后,从中选择一种最优秀的方案。哈工大华德应用技术学院软件工程2.2可行性研究的步骤P26(1)、复查系统规模和目标分析员应访问关键人员,仔细阅读和分析有关资料,以便进一步复查确认系统的目标和规模,改正含糊不清的叙述,清晰地描述对系统目标的一切限制和约束,确保解决问题的正确性,即保证分析员正在解决的问题确实是要求他解决的问题。(2)、研究目前正在使用的系统现有的系统是信息的来源,通过对现有系统的文档资料的阅读、分析和研究,再如实地考虑该系统,总结出现有系统的优点和不足,从而得出新系统的雏形。这是了解一个陌生应用领域的最快方法,它既可以使新系统脱颖而生,但又不全盘照抄。哈工大华德应用技术学院软件工程(3)、导出新系统的高层逻辑模型优秀的设计通常总是从现有的物理系统出发,导出现有系统的高层逻辑模型。逻辑模型是由数据流图来描述的,此时的数据流图不需要细化。(4)、重新定义问题信息系统的逻辑模型实质上表达了分析员对新系统的看法。那么用户是否也有同样的看法呢?(5)、导出和评价供选择的方案分析员从系统的逻辑模型出发,导出若干较高层次的(较抽象的)物理解供比较和选择。哈工大华德应用技术学院软件工程(6)、推荐一个方案并说明理由向用户推荐一种方案,在推荐的方案中应清楚地表明:1)、本项目的开发价值;2)、推荐这个方案的理由;3)、制定实现进度表,这个进度表不需要也不可能很详细,通常只需要估计生存周期每个阶段的工作量。(7)、推荐行动方针根据上面的可行性研究的结果,作出一个关键性决定,表明是否进行这项开发工程。哈工大华德应用技术学院软件工程(8)、书写计划任务书1)、系统概述:当前系统及其存在问题的简单描述;新系统的开发目的、目标、业务对象和范围;2)、可行性分析:这是报告的主体。论述新系统在经济上、技术上、运行上、法律上的可行性,以及对新系统的主客观条件的分析。3)、拟定开发计划:包括工程进度表,人员配备情况,资源配备情况,估计出每个阶段的成本、约束条件等。4)、结论意见:综合上述分析,说明新系统是否可行,结论分为三类:可立即进行、推迟进行、不能和不值得进行。哈工大华德应用技术学院软件工程(9)、提交审查用户和使用部门的负责人仔细审查上述文档,也可以召开论证会。的目的就是用最小的代价在尽可能短的时间内确定核软件项目是否能开发,是否值得去开去。哈工大华德应用技术学院软件工程习题可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否。高程模拟试题可行性研究实质上是要进行一次简化、压缩了的和过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。02年黑大考研复试题技术可行性一般要考虑的情况包括:、、。哈工大华德应用技术学院软件工程在进行可行性研究时需要了解和分析现有的系统,并以概括的形式表达对现有系统的认识。进入设计阶段以后应该把设想的新系统的逻辑模型转变成物理模型,因此需要描绘未来的物理系统的概貌。系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等)。2.3系统流程图哈工大华德应用技术学院软件工程符号名称说明处理能改变数据或数据位置的加工或部件输入/输出表示输入/输出,是一个广义的不指明具体设备的符号连接指出转到图的另一部分或从另一部分转来,通常在同一页上换页连接指出转到另一页图上或由另一页图转来人工操作由人工完成处理通信链路远程通信线路传送数据数据流用来连接其他符号,指明数据流动方面哈工大华德应用技术学院软件工程4)、可利用系统流程图来分析业务流程的合理性。例用系统流程图来分析下述问题某图书馆闭架供书流程如下:读者须先验明证件后才能进入查询室。读者在查询室内通过检书卡或利用终端检索图书数据库来查找自己所需的图书。找到所需图书并填好索书单后到服务台借书。如果所借图书还有剩余,管理员将填好借书单,从库房中取出图书交于读者。系统流程图的作用可以总结如下:1)、制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员作进一步分析的依据。2)、系统流程图是系统分析员、管理人员、业务操作人员相互交流的工具。3)、系统分析员可直接在系统流程图上拟出可以实现计算机处理的部分。哈工大华德应用技术学院软件工程图书查询图书数据库验证读者检书卡索书单借书借书单取书哈工大华德应用技术学院软件工程系统流程图是描绘物理系统的传统工具,它用来表示系统中的各个元素。可行性研究中描述系统高层物理模型的工具是。中级程序员模拟试题可行性分析中,系统流程图用于描述()。A。当前运行系统B。当前逻辑模型C。目标系统D。新系统高程序模拟试题系统流程图用于可行性分析中的()的描述。A。当前运行系统B。当前逻辑模型C。目标系统D。新系统99高程试题哈工大华德应用技术学院软件工程系统流程图是描述()的工具。A。逻辑系统B。程序系统C。体系结构D。物理系统2000高程试题哈工大华德应用技术学院软件工程2.4成本效益分析经济效益通常表现为减少运行费用或增加收入。但是,投资开发新系统往往要冒一定风险,系统的开发成本可能比预计的高,效益可能比预期的低。2.4.1成本估计1、自顶向下成本估计这类估计通常仅由少数上层(技术与管理)人员参加,所以属于”专家判断”的性质。这些专家依靠从前的经验,把将要开发的软件与过去开发过的软件进行”类比”,借以估计新的开发所需要的工作量和成本。缺点:对开发中某些局部的问题或特殊困难容易低估,甚至没有考虑到。如果所开发的软件缺乏可以借鉴的经验,在估计时就可能出现较大的误差。哈工大华德应用技术学院软件工程项目名:***日期:1/1/2004以下是第1轮的估计值:020406080100你的估计值平均估计值你对下轮的估计值是35人月你的理由是:人月哈工大华德应用技术学院软件工程2、自底向上成本估计与自顶向下估计相反,由底向上估计不是从整体开始,而是从一个个任务单元开始。3、算法模型估计算法模型就是资源模型,是成本估计的又一有效工具。由于任何资源模型都是根据历史数据导出的,所以比较客观,计算结果的重复性也好(即不论什么时候使用模型,都能得出同样的结果。)群众路线缺点:具体工作人员往往只注意到自己范围内的工作,对综合测试、质量管理和项目管理等涉及全局的花费可能估计不足,甚至完全忽视。哈工大华德应用技术学院软件工程2.4.2费用估计1、代码行技术代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。2、任务分解技术这种方法首先把软件开发工程分解为若干个相对独立的任务,再分别估计每个单独的开发任务的成本,最后加起来得出软件开发工程的总成本。哈工大华德应用技术学院软件工程任务所占比例(%)可行性研究5需求分析10软件设计25编码单元测试20综合测试40合计100哈工大华德应用技术学院软件工程S4计算各个功能和各个阶段的成本及工作量,然后计算总成本和总工作量。S1确定任务,即每个功能都必须经过需求分析、设计、编码、和测试工作。S2确定每项任务的工作量,估算需要的人月数。S3找出与各项任务相对应的劳务费数据,即每个单位工作量成本(元/人月)。任务分解技术步骤如下:哈工大华德应用技术学院软件工程2.4.3几种度量效益的方法1、货币的时间价值成本估算的目的是为了对项目投资。但投资在前,取得效益在后。因此要考虑货币的时间价值。通常用利率表示货币的时间价值。设年利率为I,现已存入P元,则n年后可得钱数为F=P(1+i)n这就是P元钱在n年后的价值。反之,若n年后能收入F元,那么这些钱现在是价值是P=F/(1+i)n哈工大华德应用技术学院软件工程例在工程设计中用CAD系统来取代大部分人工设计工作,每年可节省9.6万元。若软件生存期为5年,则5年可节省48万元。而开发这个CAD系统共投资20万元。年份将来值(万)(1+i)n现在值(万)累计的现在值(万)19.61.059.14299.142929.61.10258.707517.850439.61.15768.292826.143249.61.21557.897934.041159.61.27637.521941.5630哈工大华德应用技术学院软件工程2.投资回收期投资回收期是衡量一个开发工程价值的经济指标。投资回收期就是积累的经济效益等于最初的投资所需要的时间。上例中,引入CAD系统两年以后,可以节省17.85万元,比最初投资还少2.15万元,但第三年可以节省8.29万元,即2.15/8.29=0.2593.纯收入工程的纯收入是衡量工程价值的另一项经济指标。纯收入就是在整个生存周期之内系统的累计经济效益(折合成现在值)与投资之差。上例中,引入CAD系统之后,5年内工程的纯收入预计是41.563-20=21.563(万元)哈工大华德应用技术学院软件工程成本—效益分析首先是估算将要开发的系统的,然后与可能取得的效益进行比较和权衡。开发成本效益分有形效益和无形效益两种。有形效益可以用、等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。货币的时间价值投资回收期纯收入就是使累计的经济效益等于最初的投资费用所需要的时间。项目的指在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。投资回收期纯收入纯收入是软件生存周期内项值之差,这两项是与。经济效益投资成本—效益分析的目的是从评价开发一个新的软件项目是否可行。经济角度哈工大华德应用技术学院软件工程在软件的可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是()。A.经济可行性B.技术可行性C.操作可行性D.法律可行性B技术可行性要解决()。A.存在侵权否B.成本-效益问题C.运行方式可行D.技术风险问题D哈工大华德应用技术学院软件工程6.美国一家公司计划用C语言开发一个在IBMPC计算机上运行的应用程序,估计这个程序的长度为2000条C语言指令。如果平均每人每天可以开发出20条C语言指令,请问:(1)、开发这个应用程序将用多少人日?(2)、假设程序员的月平均工资为4000美元,每月按20个工作日计算,这个软件的成本是多少美元?(3)、该系统开发完成后预计