资源预览内容
第1页 / 共81页
第2页 / 共81页
第3页 / 共81页
第4页 / 共81页
第5页 / 共81页
第6页 / 共81页
第7页 / 共81页
第8页 / 共81页
第9页 / 共81页
第10页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2018年9月10日,广东工业大学计算机学院,1,软件工程 Software Engineering,2018/9/10,广东工业大学计算机学院,2,第3章 可行性研究,本章内容: 3.1 可行性研究任务与步骤 3.2 系统分析 3.3 分析原理 3.4 系统模型与模拟 3.5 成本-效益分析 3.6 可行性研究的文档 3.7 项目开发计划,2018/9/10,广东工业大学计算机学院,3,第3章 可行性研究,在客观世界中,并不是所有的问题都可以有明显的解决方法。在进行任何一项较大的工程时,首先要进行可行性分析和研究。 如果这些问题没有行得通的解决办法,那么贸然开发这些项目就会造成时间、人力、资源和经费的巨大浪费。同样,对软件的项目开发也存在这一问题。所以,必须对开发项目进行可行性研究。,2018/9/10,广东工业大学计算机学院,4,3.1 可行性研究任务与步骤,可行性研究与其他的研究不同,这个阶段不是去开发一个软件项目,也不是解决问题。而是研究这个软件项目是否值得去开发,其中的关键和技术难点是什么,问题能否得到解决,怎样达到目的等。 可行性研究的主要内容是对问题的定义,要初步确定问题的规模和目标,问题定义后,要导出系统的逻辑模型。然后从系统的逻辑模型出发,选择若干供选择的主要系统方案。,2018/9/10,广东工业大学计算机学院,5,(1)技术可行性研究。 根据客户提出的系统功能、性能及实现系统的各项约束条件,从技术的角度研究实现系统的可行性。 (2)经济可行性研究。 进行成本效益分析,评估项目的开发成本,估算开发成本是否会超过项目预期的全部利润。分析系统开发对其他产品或利润的影响。,2018/9/10,广东工业大学计算机学院,6,(3)法律可行性研究。 研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。 (4)开发方案的选择性研究。 提出并评价实现系统的各种开发方案,从中选出一种用于软件项目开发。,2018/9/10,广东工业大学计算机学院,7,3.1.1 研究任务,在进行项目可行性研究中,首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把它们清楚地列举出来。 要研究目前正在使用的系统。如果目前有一个系统正在使用,那么这个系统一定能完成某些有用的工作。所以新系统的目标也必须能完成这些基本功能。如果现有的系统是完美的,那么用户就不会提出开发新系统。,2018/9/10,广东工业大学计算机学院,8,一般来说,应该从以下四方面分析研究每种解决方法的可行性。 1. 技术可行性 要确定使用现有的技术是否能够实现系统,那么就要对开发项目的功能、性能和限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现,这些是技术可行性研究的内容。,2018/9/10,广东工业大学计算机学院,9,数学建模、原型建造和模拟是基于计算机系统技术分析活动的有效工具,描述了技术分析建模过程的信息流图。系统分析员通过对现实世界的观察和分析建立技术分析模型,评估模型的行为并将它们与现实世界对比,论证系统开发在技术上的可行性和优越性。,2018/9/10,广东工业大学计算机学院,10,基于计算机系统模型必须具备下列特性: (1)能够反映系统配置的动态特性,容易理解和操作,能够提供系统真实的结果并有利于评审。 (2)能够综合与系统有关的全部因素,能够再现系统运行的结果。 (3)能够突出与系统有关的重要因素,能够忽略与系统无关的或次要的因素。 (4)结构简单,容易实现,容易修改。,2018/9/10,广东工业大学计算机学院,11,技术可行性一般要考虑的情况如下: (1)技术。通过调查了解当前最先进的技术,分析相关技术的发展是否支持这个系统。 (2)资源的有效性。 用于建立系统的硬件设备、软件、开发环境等资源是否具备。特别是用于开发项目的人员在技术和时间上是否存在问题。,2018/9/10,广东工业大学计算机学院,12,2. 经济可行性 计算机技术发展异常迅速的根本原因在于计算机的应用促进了社会经济的发展,给社会带来了巨大的经济效益。因此,基于计算机系统的成本-效益分析是可行性研究的重要内容,它用于评估基于计算机系统的经济合理性,给出系统开发的成本论证,并将估算的成本与预期的利润进行对比。,2018/9/10,广东工业大学计算机学院,13,经济可行性问题包含两方面:一方面是经济实力;另一方面是经济效益。分析经济可行性研究的内容是要进行开发成本的估算,了解项目成功取得效益的评估,确定要开发的项目是否值得投资开发。,2018/9/10,广东工业大学计算机学院,14,一般说来,基于计算机系统的成本由如下四部分组成: (1)购置并安装软硬件及有关设备的费用; (2)系统开发费用; (3)系统安装、运行和维护费用; (4)人员培训费用。,2018/9/10,广东工业大学计算机学院,15,在系统分析和设计阶段只能得到上述费用的预算,即估算成本。在系统一切完毕并交付用户运行后,上述费用的统计结果就是实际成本。 系统效益包括经济效益和社会效益两部分。经济效益指应用系统为用户增加的收入,它可以通过直接的或统计的方法估算;社会效益只能用定性的方法估算。,2018/9/10,广东工业大学计算机学院,16,例如,开发计算机辅助设计(CAD)系统取代当前的手工设计过程。系统分析员为当前的手工设计系统和CAD目标系统定义对应的可测试特征: T:绘一幅图的平均时间,单位是小时。 d:每小时绘图的平均成本,单位是元。 n:每年绘图的数目。 r:用CAD系统绘图减少的绘图时间比例。 p:用CAD系统绘图的百分比。,2018/9/10,广东工业大学计算机学院,17,于是,可用下式计算利用CAD系统绘图每年可以节省的经费 B= rTndp 当r=1/4,T=4小时,n=8000/年,d=20元/小时,P=60%时,代入上式计算得B=96000元/年,即用CAD系统绘图比用手工绘图平均每年约节省96000元。实际上,投资利润还应该考虑软硬件降价、税收的影响和其他潜在的因素。,2018/9/10,广东工业大学计算机学院,18,3. 社会可行性社会可行性研究的内容包括:研究开发的项目是否存在任何侵犯、妨碍等责任问题。 4. 操作的可行性要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质和操作方式是否可行。,2018/9/10,广东工业大学计算机学院,19,3.1.2 研究步骤,1. 系统定义 系统定义是一个系统的关键,如果系统没有定义好,也就是没有确定系统的边界。就谈不上确定项目规模和目标。 为了定义好一个系统,分析员对有关人员进行调查访问,仔细阅读和分析有关的材料,对项目的规模和目标进行定义和确认,描述项目的一切限制和约束,确保分析员正在解决的问题确实是要解决的问题。,2018/9/10,广东工业大学计算机学院,20,2. 对于现行系统进行分析研究 要认识到现行系统是信息的重要来源。需要研究它的基本功能、性能、环境,存在的问题,运行现行系统需要多少费用,对新系统有什么新的功能要求,新系统运行时能否减少使用费用等。 具体方法可以实地考察现行系统,收集、研究和分析现行系统的文档资料。,2018/9/10,广东工业大学计算机学院,21,3. 导出新系统的逻辑模型 根据对现行系统的分析研究,搞清了新旧系统的特征,逐渐明确新系统的功能、处理流程以及所受的约束。有了这些理解后,就可以用建立逻辑模型的工具数据流图和数据字典来描述数据在系统中的流动和处理情况。,2018/9/10,广东工业大学计算机学院,22,4. 设计方案 分析员根据新系统的高层逻辑模型,从技术角度出发,根据用户的要求和开发的技术力量,提出实现高层逻辑模型的不同方案。 5. 推荐可行的方案 根据上述可行性研究的结果,同时要根据用户的具体情况,应该决定该项目是否值得去开发。,2018/9/10,广东工业大学计算机学院,23,6. 编写可行性研究报告 将上述可行性研究过程的结果按照:说明要求、目的、条件与限制、可行性研究方法及评价尺度;处理流程、工作负荷、费用开销和局限性;说明处理流程、运行环境和局限性;技术条件的可行性;经济方面的可行性;社会条件的可行性;其他可供选择的系统;结论的顺序写成可行性研究报告,提请用户和使用部门仔细审查,从而决定该项目是否进行开发,是否接受可行的实现方案。,2018/9/10,广东工业大学计算机学院,24,3.2 系统分析,如果确认开发一个新的软件系统是必要而且可能的,那么就要进入系统分析阶段。 这个时期的首要任务是认识和对问题的评价、建立模型和对规格的分析。 系统分析员要研究系统规格说明(system specification)和软件项目计划(software project plan)。其次,为了确保对问题的识别,必须为分析建立通信关系。系统分析员的目标是弄清用户已经理解的基本问题元素。,2018/9/10,广东工业大学计算机学院,25,第二项任务是分析,是主要工作问题评价与解的综合。系统分析员必须定义和详细描述全部软件功能,熟悉影响系统事件前后关系的软件行为,建立系统界面的特征,评价信息流和信息的内容,以及揭示设计限制。 最后一项任务是需求分析文档(规格说明和用户手册)。它是作为用户和开发人员进行评审的基础。,2018/9/10,广东工业大学计算机学院,26,3.2.1 系统分析员,系统分析员必须具备下列能力: (1)能掌握抽象概念(abstract concepts),并能把其整理为逻辑划分(logical divisions),以及根据每一个逻辑划分综合为解(solutions)的能力。 (2)有弄清用户环境的能力。 (3)有从冲突(conflict)或混淆(confusions)中吸取恰当事实的能力。,2018/9/10,广东工业大学计算机学院,27,(4)有用较好的书面和口头形式进行通信(communication)的能力。 (5)有把硬件和软件系统用于用户环境(user/customer environments)的能力。 (6)“从树木见森林”的能力。,2018/9/10,广东工业大学计算机学院,28,系统分析员在软件需求分析阶段有五个方面的工作: (1)问题识别(problem recognition)。 (2)评价和综合(evaluation and synthesis)。 (3)建模(modeling)。 (4)规格说明(specification)。 (5)评审(review)。,2018/9/10,广东工业大学计算机学院,29,3.2.2 面临的问题域,在系统分析的过程中,都会遇到许多问题。问题识别与问题评价和解综合,在很大程度上决定于能否获得恰当的信息。 应当收集什么信息?应当怎样对它们进行表示?谁能提供各种信息的初始模型?以及采用什么技术和工具才能方便地进行信息收集?所有这些都是要解决的问题。,2018/9/10,广东工业大学计算机学院,30,造成上述问题有许多原因,可归纳如下: (1)缺少通信,使信息获得困难。 (2)由于不适当的技术和工具致使规格说明不充分或不准确。 (3)在需求分析中,试图走捷径,导致不可靠的设计。 (4)在软件定义前,方案选择错误。,2018/9/10,广东工业大学计算机学院,31,3.2.3 通信技术,一个软件开发的开始往往是用户提出一个问题,并认为这个问题可能适合用计算机来解决,于是寻找开发者,这时开发者对用户的请求回答是可以帮助的。这样,开发者与用户间的通信就开始了。,2018/9/10,广东工业大学计算机学院,32,1. 过程的开始 当用户与开发者有了合作意向后,经常使用的分析技术是会议或访问,将它作为用户和开发人员之间的通信桥梁。 系统分析员可以就此切入,了解用户的现行运作,希望在那些地方用计算机来解决问题,提出用户、总目标和效益方面问题,如:,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号