![](/lib_static/assets/images/user_logo/0d4e35eaa30a6857d5545598d357db7a59059feb.jpg)
软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。如果对项目进行风险管理,就可以最大限度的减少风险的发生。但是,目前国内的软件企业不太关心软件项目的风险管理,结果造成软件项目经常性的延期、超过预算,甚至失败。成功的项目管理一般都对项目风险进行了良好的管理。因此任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容。在项目风险管理中,存在多种风险管理方法与工具,软件项目管理只有找出最适合自己的方法与工具并应用到风险管理中,才能尽量减少软件项目风险,促进项目的成功。项目风险管理项目风险管理是指为了最好的达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。项目风险管理的目标是使潜在机会或回报最大化,使潜在风险最小化。风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控,如图1所示。风险识别在项目的开始时就要进行,并在项目执行中不断进行。就是说,在项目的整个生命周期内,风险识别是一个连续的过程。(1)风险识别:风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目。风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行。(2)风险量化:涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程。风险量化的基本内容是确定那些事件需要制定应对措施。。(3)风险应对计划制定:针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程。风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据。(4)风险监控:涉及整个项目管理过程中的风险进行应对。该过程的输出包括应对风险的纠正措施以及风险管理计划的更新。风险管理步骤 所使用的工具、方法 风险识别 头脑风暴法、面谈、Delphi法、核对表、SWOT技术 风险量化 风险因子计算、PERT估计、决策树分析、风险模拟 风险应对计划制定 回避、转移、缓和、接受 风险监控 核对表、定期项目评估、挣值分析 软件项目中的风险管理1、软件项目中的风险软件项目的风险无非体现在以下四个方面:需求、技术、成本和进度。IT项目开发中常见的风险有如下几类:(1)需求风险①需求已经成为项目基准,但需求还在继续变化;②需求定义欠佳,而进一步的定义会扩展项目范畴;③添加额外的需求;④产品定义含混的部分比预期需要更多的时间;⑤在做需求中客户参与不够;⑥缺少有效的需求变化管理过程。(2)计划编制风险①计划、资源和产品定义全凭客户或上层领导口头指令,并且不完全一致;②计划是优化的,是"最佳状态",但计划不现实,只能算是"期望状态";③计划基于使用特定的小组成员,而那个特定的小组成员其实指望不上;④产品规模(代码行数、功能点、与前一产品规模的百分比)比估计的要大;⑤完成目标日期提前,但没有相应地调整产品范围或可用资源;⑥涉足不熟悉的产品领域,花费在设计和实现上的时间比预期的要多。(3)组织和管理风险①仅由管理层或市场人员进行技术决策,导致计划进度缓慢,计划时间延长;②低效的项目组结构降低生产率;③管理层审查 决策的周期比预期的时间长;④预算削减,打乱项目计划;⑤管理层作出了打击项目组织积极性的决定;⑥缺乏必要的规范,导致工作失误与重复工作;⑦非技术的第三方的工作(预算批准、设备采购批准、法律方面的审查、安全保证等)时间比预期的延长。(4)人员风险①作为先决条件的任务(如培训及其他项目)不能按时完成;②开发人员和管理层之间关系不佳,导致决策缓慢,影响全局;③缺乏激励措施,士气低下,降低了生产能力;④某些人员需要更多的时间适应还不熟悉的软件工具和环境;⑤项目后期加入新的开发人员,需进行培训并逐渐与现有成员沟通,从而使现有成员的工作效率降低;⑥由于项目组成员之间发生冲突,导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作;⑦不适应工作的成员没有调离项目组,影响了项目组其他成员的积极性;⑧没有找到项目急需的具有特定技能的人。 (5)开发环境风险①设施未及时到位;②设施虽到位,但不配套,如没有电话、网线、办公用品等;③设施拥挤、杂乱或者破损;④开发工具未及时到位;⑤开发工具不如期望的那样有效,开发人员需要时间创建工作环境或者切换新的工具;⑥新的开发工具的学习期比预期的长,内容繁多。(6)客户风险①客户对于最后交付的产品不满意,要求重新设计和重做;②客户的意见未被采纳,造成产品最终无法满足用户要求,因而必须重做;③客户对规划、原型和规格的审核 决策周期比预期的要长;④客户没有或不能参与规划、原型和规格阶段的审核,导致需求不稳定和产品生产周期的变更;⑤客户答复的时间(如回答或澄清与需求相关问题的时间)比预期长;⑥客户提供的组件质量欠佳,导致额外的测试、设计和集成工作,以及额外的客户关系管理工作。(7)产品风险①矫正质量低下的不可接受的产品,需要比预期更多的测试、设计和实现工作;②开发额外的不需要的功能(镀金),延长了计划进度;③严格要求与现有系统兼容,需要进行比预期更多的测试、设计和实现工作;④要求与其他系统或不受本项目组控制的系统相连,导致无法预料的设计、实现和测试工作;⑤在不熟悉或未经检验的软件和硬件环境中运行所产生的未预料到的问题;⑥开发一种全新的模块将比预期花费更长的时间;⑦依赖正在开发中的技术将延长计划进度。 (8)设计和实现风险①设计质量低下,导致重复设计;②一些必要的功能无法使用现有的代码和库实现,开发人员必须使用新的库或者自行开发新的功能;③代码和库质量低下,导致需要进行额外的测试,修正错误,或重新制作;④过高估计了增强型工具对计划进度的节省量;⑤分别开发的模块无法有效集成,需要重新设计或制作。(9)过程风险①大量的纸面工作导致进程比预期的慢;②前期的质量保证行为不真实,导致后期的重复工作;③太不正规(缺乏对软件开发策略和标准的遵循),导致沟通不足,质量欠佳,甚至需重新开发;④过于正规(教条地坚持软件开发策略和标准),导致过多耗时于无用的工作;⑤向管理层撰写进程报告占用开发人员的时间比预期的多;⑥风险管理粗心,导致未能发现重大的项目风险。2、软件项目风险管理模型针对软件项目中的风险管理问题,不少专家、组织提出了自己的风险管理模型。主要的风险管理模型有:Boehm模型,CRM模型和SERIM模型。 Barry Boehm模型模型:RE=P (UO)*L (UO)其中RE表示风险或者风险所造成的影响,P(UO)表示令人不满意的结果所发生的概率,L(UO)表示糟糕的结果会产生的破坏性的程度。Boehm思想的核心是10大风险因素列表。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。 SEI的CRM(Continuous Risk Management)模型SEI CRM模型的风险管理原则是:不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制。 SERIM(Software Engineering Risk Model)模型SERIM从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。 结束语软件项目管理从某种意义上讲,就是风险管理。我们尽量去定义明确不变的需求,以便进行计划并高效管理,但商业环境总是快速变化的,甚至是无序的变化。所以,软件企业在进行项目管理的过程中,必须采用适合自己的风险管理方法进行风险管理,以确保软件项目在规定的预算和期限内完成项目。
电子工程专业论文提纲
论文提纲并没有同学们想象的那么麻烦,只需要简单说明论文的成文思路即可。下面是我为您搜集整理的电子工程专业论文提纲,欢迎阅读借鉴。
篇一:论文提纲
题目:红外成像系统性能分析的计算机模拟
为适应红外热成像系统的发展要求,本文采用面向对象的程序设计语言—DelPhi语言,对红外热成像系统性能的计算机辅助设计探讨了一条有效的途径。 本文对研究课题采用类和目标的定义方法,描述了红外热成像系统中目标、背景、大气传输、红外接收和信号处理等子系统,通过理论分析,在比较的基础上,建立了验证热成像仪静态性能的数学模型,运用Delphi语言和数据库,将数据输入,静态性能计算,结果输出和文件管理等融为一体,形成一个较完整的软件包。达到了直观、方便的操作效果。 完成的程序对机载前视红外仪、医用热像仪等具有代表性的几种热像仪进行性能分析,得到的调制传递函数(MTF),噪声等效温差(NETD)等性能参数的数据表格和曲线图,同野外实验所得数据相差误差在10%~20%左右,该模型基本反映系统特性,满足用户使用和二次开发的需要。
中文摘要3-4
英文摘要4-5
目 录5-6
第一章 绪论6-15
引言6-8
论文的提出和内容8-10
红外系统性能分析的概况10-11
论文在Delphi语言的实现11-15
第二章 研究对象的类分析15-26
黑体辐射类15-21
大气传输的类建立21-26
第三章 数学模型的建立26-42
热像仪组成和基本技术参数26-30
静态性能模型的建立30-40
视距估算模型的建立40-42
第四章 性能分析的计算机模拟实验42-50
数据模型在Delphi上实现的流程图42-44
类和对象在Delphi上实现的源程序44-47
主程序界面47-50
第五章 实验结果与分析50-56
第六章 结论56-57
致 谢57-58
参考文献58-60
附 录60-74
篇二:论文提纲
题目:激光识别与通信系统若干问题的研究
本文对激光识别与通信系统的激光发射子系统、PIN光电接收子系统和APD回波接收子系统建立了数学模型。以此为出发点,对其进行了深入的理论分析和实验研究,给出了硬件电路设计的理论依据。据此解决了PIN光电接收的抗强背景光饱和与抗背景光干扰的问题;用单片机模糊控制技术实现了某APD光电探测器偏压补偿的.实时化和智能化。 对安装面角误差影响随动光轴平行性的问题也建立了数学模型,以此为出发点进行理论分析,给出了分析结果;提出用三坐标测量机测量安装面,通过拟合得到安装面的角误差;从而为减小这一误差源对随动光轴平行性的影响铺平了道路。 对稳定转台进行了分析,设计了数字PID结合微分顺馈的控制软件,满足控制要求。
中文摘要3-4
英文摘要4-5
目录5-7
第一章 绪论7-10
引言7
国外研究概况7-9
激光识别与通信系统的研制、功能和本文内容9-10
第二章 激光识别与通信系统的组成10-13
系统组成及工作原理10
激光发射与APD回波接收部分10
PIN光电接收部分10-12
主机控制部分12
调制解调键盘显示与控制部分12
稳定转台部分12-13
第三章 激光发射子系统13-18
激光器的调制特性和光束生成13-15
半导体激光器的主要参数15-16
激光发射方式16-17
激光发射子系统的组成17-18
第四章 PIN光电接收子系统18-29
激光功率探测和接收视场18-19
背景辐射与背景噪声19-21
开关键控(OOK)误码率21-24
PIN光电接收子系统的设计24-25
大气对激光接收子系统的影响25-26
PIN光电接收子系统的灵敏度26-29
第五章 APD回波接收子系统29-51
直接探测技术29-33
背景辐射33-35
APD光电探测器的基本特性及应用35-41
光电信号的检测与负载电阻41-42
判决门限的选择42-44
APD回波接收子系统的设计44-51
第六章 安装面误差与随动光轴的平行51-60
概述51-52
随动光轴的角误差分析52-58
安装面角误差的获得58-60
第七章 转台60-67
转台的组成和稳定原理60-61
稳定转台的控制系统61-62
控制算法和控制软件62-67
结论67-68
致谢68-69
参考文献69-70
网络安全技术研究》毕业论文 毕业设计(论文)中文摘要 网络安全技术研究摘要:近几年来,Internet技术日趋成熟,已经开始了从以提供和保证网络联通性为主要目标的第一代Internet技术向以提供网络数据信息服务为特征的第二代Internet技术的过渡。与此同时,数以万计的商业公司、政府机构在多年的犹豫、观望之后,意识到采用Internet技术并使企业数据通信网络成为Internet的延伸已成为发展趋势。这使得企业数据网络正迅速地从以封闭型的专线、专网为特征的第二代技术转向以Internet互联技术为基础的第三代企业信息网络。所有这些,都促使了计算机网络互联技术迅速的大规模使用。众所周知,作为全球使用范围最大的信息网,Internet自身协议的开放性极大地方便了各种计算机连网,拓宽了共享资源。但是,由于在早期网络协议设计上对安全问题的忽视,以及在管理和使用上的无政府状态,逐渐使Internet自身安全受到严重威胁,与它有关的安全事故屡有发生。对网络安全的威胁主要表现在:非授权访问,冒充合法用户,破坏数据完整性,干扰系统正常运行,利用网络传播病毒,线路窃听等方面。这以要求我们与Internet互连所带来的安全性问题予以足够重视。关键词 网络、安全、VPN、加密技术、防火墙技术 毕业设计(论文)外文摘要 Title The Document Of Computer Network Security Abstract With the computer network development. Internet has already turned from the first generation the second. Meanwhile, thousands of company and governments realize the importance of Internet and take measures to build their own Network , so that extend the development of the Internet . This makes the Internet transfer from the second generation to the third which feature’s basis of Inter connecting. All of this above contributes to the large scale use of Interconnecting. As it is known to us all, Internet has the largest information net ,It is the openness of the protocol that convinent the link of variety nets and extend the sharing resources. However, because of the neglecting of Network security and the government management seriously threats the safety of Internet. The dangers appears: illegeal visiting, prentending the managerment , destroying the database, interrupting the setup of system, spreading the virus and so on . This asks us to pay more attention to the safety of Internet twister. Keywords Network 、Network security 、VPN 、Ipsec 、Firework 目 次 1 绪论 ………………………………………………………………5 2 方案目标 ……………………………………………………………5 3 安全需求 ……………………………………………………………6 4 风险分析 ……………………………………………………………6 5 解决方案 ……………………………………………………………7 设计原则 …………………………………………………………7 安全策略 ……………………………………………………………7 防御系统 …………………………………………………………8 物理安全 ………………………………………………………8 防火墙技术 ………………………………………………………8 VPN技术 ………………………………………………………10 网络加密技术(Ipsec) ……………………………………………11 身份认证 ………………………………………………………12 多层次多级别的防病毒系统 ……………………………………13 入侵检测 ……………………………………………………14 虚拟专用网技术虚拟专用网 …………………………………14 安全服务 ………………………………………………………15 安全技术的研究现状和动向 ………………………………………16 结论 ……………………………………………………………………18 致谢 …………………………………………………………………19 参考文献 …………………………………………………………20 1 绪论 随着互联网的飞速发展,网络安全逐渐成为一个潜在的巨大问题。网络安全性是一个涉及面很广泛的问题,其中也会涉及到是否构成犯罪行为的问题。在其最简单的形式中,它主要关心的是确保无关人员不能读取,更不能修改传送给其他接收者的信息。此时,它关心的对象是那些无权使用,但却试图获得远程服务的人。安全性也处理合法消息被截获和重播的问题,以及发送者是否曾发送过该条消息的问题。 大多数安全性问题的出现都是由于有恶意的人试图获得某种好处或损害某些人而故意引起的。可以看出保证网络安全不仅仅是使它没有编程错误。它包括要防范那些聪明的,通常也是狡猾的、专业的,并且在时间和金钱上是很充足、富有的人。同时,必须清楚地认识到,能够制止偶然实施破坏行为的敌人的方法对那些惯于作案的老手来说,收效甚微。 网络安全性可以被粗略地分为4个相互交织的部分:保密、鉴别、反拒认以及完整性控制。保密是保护信息不被未授权者访问,这是人们提到的网络安全性时最常想到的内容。鉴别主要指在揭示敏感信息或进行事务处理之前先确认对方的身份。反拒认主要与签名有关。保密和完整性通过使用注册过的邮件和文件锁来实现。 2 方案目标 本方案主要从网络层次考虑,将网络系统设计成一个支持各级别用户或用户群的安全网络,该网在保证系统内部网络安全的同时,还实现与Internet或国内其它网络的安全互连。本方案在保证网络安全可以满足各种用户的需求,比如:可以满足个人的通话保密性,也可以满足企业客户的计算机系统的安全保障,数据库不被非法访问和破坏,系统不被病毒侵犯,同时也可以防止诸如反动淫秽等有害信息在网上传播等。 需要明确的是,安全技术并不能杜绝所有的对网络的侵扰和破坏,它的作用仅在于最大限度地防范,以及在受到侵扰的破坏后将损失尽旦降低。具体地说,网络安全技术主要作用有以下几点: 1.采用多层防卫手段,将受到侵扰和破坏的概率降到最低; 2.提供迅速检测非法使用和非法初始进入点的手段,核查跟踪侵入者的活动; 3.提供恢复被破坏的数据和系统的手段,尽量降低损失; 4.提供查获侵入者的手段。 网络安全技术是实现安全管理的基础,近年来,网络安全技术得到了迅猛发展,已经产生了十分丰富的理论和实际内容。 3 安全需求 通过对网络系统的风险分析及需要解决的安全问题,我们需要制定合理的安全策略及安全方案来确保网络系统的机密性、完整性、可用性、可控性与可审查性。即, 可用性: 授权实体有权访问数据 机密性: 信息不暴露给未授权实体或进程 完整性: 保证数据不被未授权修改 可控性: 控制授权范围内的信息流向及操作方式 可审查性:对出现的安全问题提供依据与手段 访问控制:需要由防火墙将内部网络与外部不可信任的网络隔离,对与外部网络交换数据的内部网络及其主机、所交换的数据进行严格的访问控制。同样,对内部网络,由于不同的应用业务以及不同的安全级别,也需要使用防火墙将不同的LAN或网段进行隔离,并实现相互的访问控制。 数据加密:数据加密是在数据传输、存储过程中防止非法窃取、篡改信息的有效手段。 安全审计: 是识别与防止网络攻击行为、追查网络泄密行为的重要措施之一。具体包括两方面的内容,一是采用网络监控与入侵防范系统,识别网络各种违规操作与攻击行为,即时响应(如报警)并进行阻断;二是对信息内容的审计,可以防止内部机密或敏感信息的非法泄漏 4 风险分析 网络安全是网络正常运行的前提。网络安全不单是单点的安全,而是整个信息网的安全,需要从物理、网络、系统、应用和管理方面进行立体的防护。要知道如何防护,首先需要了解安全风险来自于何处。网络安全系统必须包括技术和管理两方面,涵盖物理层、系统层、网络层、应用层和管理层各个层面上的诸多风险类。无论哪个层面上的安全措施不到位,都会存在很大的安全隐患,都有可能造成网络的中断。根据国内网络系统的网络结构和应用情况,应当从网络安全、系统安全、应用安全及管理安全等方面进行全面地分析。 风险分析是网络安全技术需要提供的一个重要功能。它要连续不断地对网络中的消息和事件进行检测,对系统受到侵扰和破坏的风险进行分析。风险分析必须包括网络中所有有关的成分。 5 解决方案 设计原则 针对网络系统实际情况,解决网络的安全保密问题是当务之急,考虑技术难度及经费等因素,设计时应遵循如下思想: 1.大幅度地提高系统的安全性和保密性; 2.保持网络原有的性能特点,即对网络的协议和传输具有很好的透明性; 3.易于操作、维护,并便于自动化管理,而不增加或少增加附加操作; 4.尽量不影响原网络拓扑结构,同时便于系统及系统功能的扩展; 5.安全保密系统具有较好的性能价格比,一次性投资,可以长期使用; 6.安全与密码产品具有合法性,及经过国家有关管理部门的认可或认证; 7.分步实施原则:分级管理 分步实施。 安全策略 针对上述分析,我们采取以下安全策略: 1.采用漏洞扫描技术,对重要网络设备进行风险评估,保证信息系统尽量在最优的状况下运行。 2.采用各种安全技术,构筑防御系统,主要有: (1) 防火墙技术:在网络的对外接口,采用防火墙技术,在网络层进行访问控制。 (2) NAT技术:隐藏内部网络信息。 (3) VPN:虚拟专用网(VPN)是企业网在因特网等公共网络上的延伸,通过一个私有的通道在公共网络上创建一个安全的私有连接。它通过安全的数据通道将远程用户、公司分支机构、公司业务伙伴等与公司的企业网连接起来,构成一个扩展的公司企业网。在该网中的主机将不会觉察到公共网络的存在,仿佛所有的机器都处于一个网络之中。公共网络似乎只由本网络在独占使用,而事实上并非如此。 (4)网络加密技术(Ipsec) :采用网络加密技术,对公网中传输的IP包进行加密和封装,实现数据传输的保密性、完整性。它可解决网络在公网的数据传输安全性问题,也可解决远程用户访问内网的安全问题。 (5) 认证:提供基于身份的认证,并在各种认证机制中可选择使用。 (6) 多层次多级别的企业级的防病毒系统:采用多层次多级别的企业级的防病毒系统,对病毒实现全面的防护。 (7)网络的实时监测:采用入侵检测系统,对主机和网络进行监测和预警,进一步提高网络防御外来攻击的能力。 3.实时响应与恢复:制定和完善安全管理制度,提高对网络攻击等实时响应与恢复能力。 4.建立分层管理和各级安全管理中心。 防御系统 我们采用防火墙技术、NAT技术、VPN技术、网络加密技术(Ipsec)、身份认证技术、多层次多级别的防病毒系统、入侵检测技术,构成网络安全的防御系统。
软件技术是一个发展变化非常快的行业,软件人才要按照企业和领域需求来确定培养的方向。下面是由我整理的软件技术论文范文,谢谢你的阅读。
浅谈软件项目估算技术
摘 要:由于软件产品自身的特殊性,导致软件项目的估算工作进行困难,估算结果准确性差。为了解决这一问题,产生了很多不同的软件项目估算技术,本文对各种估算技术的主要思想及其优缺点进行简单的阐述。尤其是对功能点估算技术,本文做了详细的介绍,并通过实例加以说明其应用方法。
关键词:规模估算;成本估算;实例应用
中图分类号:
软件项目的估算历来是比较复杂的事,因为软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的估算往往和实际情况相差甚远。因此,估算错误已被列入软件项目失败的四大原因之一。由此,也证明了正确对软件项目进行估算是何等重要。
在软件项目管理中,估算就是对项目将持续多长时间或花费多少成本的预测。所以说,估算正是一种对未来的预测。从这里也看以看出估算的重点就在“工作量估算”或“成本估算”,而在对这两者进行估算的过程中大多数情况下都少不了“软件规模”这个条件,所以本文将软件估算分为两种类型,第一个种是软件项目规模的估算,第二种是将估算得出的规模转换为工作量的估算或成本的估算。目前使用比较广泛的规模估算技术,如:代码行估算技术、功能点估算技术;而使用比较广泛的成本估算技术,如:COCOMO算法模型估算技术。
除了上述所列举的几种技术外,还有几种估算技术既可以用于估算规模,也可直接应用与估算工作量或估算成本,如:Delphi估算法、类比估算技术、PERT估算技术。这几种估算技术不似前面所列的技术,比较有针对行,且有具体的计算过程、计算公式。这几种技术只是一种思想,依据某个选定的科目进行估算。下面本文将简单介绍上述提到的几种估算技术,并通过具体的实例重点阐述功能点估算技术。
1 估算技术简介
代码行估算技术。代码行(LOC)指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:Job Control Language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等[1]。代码行估算技术主要是估算软件的规模,即通过该技术估算待研发软件项目有多少行代码。一般为了方便表示,使用较大的单位千代码行(KLOC)来表示待研发软件项目的规模大小。这种方法比较适用于有经验积累和开发模式稳定的公司。如果是新成立公司,使用这种估算技术则会存在很大误差,加大项目失败的风险。
功能点估算技术。功能点法是一种经过实践验证的方法,但应用成本很高,估算的工作量投入也较大。功能点估算技术最终结果是规模,仍然需要知道项目的生产率数据才能得出实际的工作量。功能点估算技术将系统功能分为输入、输出、查询、外部文件和内部文件5种类型。其中,输入是一个数据跨越系统边界,从外部到内部的基本数据处理过程。数据的来源可以是人机输入界面/接口,或是另一个应用系统;输出是一个衍生数据跨越系统边界,从内部到外部的基本数据处理过程。这些输出的数据可能会产生报表,或发到其他外部系统的输出文件;查询是一个不包含衍生数据和数据维护的基本数据处理过程,包括输入和输出两部分;内部文件存在于系统边界之内,用户可识别的一组逻辑上相互关联的数据;外部文件存在于系统边界之外,用户可识别的一组逻辑上相互关联的数据。使用功能点估算技术估算的大概步骤为:
(1)通过需求分析将系统功能按照上述5种类型进行分类。
(2)分析每个功能项的复杂程度,大致分为一般、简单、复杂三种类型,每一种类型都对应一个权重值,具体如表1。
(3)根据每个功能项的复杂权重值,求出功能项的加权和,即为未调整功能点数(UFC)。
(4)分析该系统的技术复杂度,功能点估算将与系统相关的技术影响因素分为14组(用Ai表示),每个分为6个级别,权重分别从0至5。根据分析结果及公式计算技术复杂度因子(TCF),即TCF=(SUM(Ai))。
(5)将UFC与TCF相乘即为功能点数。
COCOMO算法模型。Cocomo模像是一个分层次的系列软件成本估算模型,包括基本模型、中级模型和详细模型3个子模型。3个模型采用同一个计算公式,即E=asb×EAF[2]。其中,E是以人月为单位的工作量;S是以KLOC为单位的程序规模;EAF是一个工作量调整因子,在基本模型中该项值为1,中级模型和详细模型中根据成本驱动因素确定;a和b是随开发模式而变化的因子,这里开发模式被分为3中类型,即有机式、半分离式和嵌入式。
Cocomo算法模型是一种精确易用的估算方法,如果项目没有足够多的历史数据,会使得各调整因子和系数很难确定,进而使得估算比较困难。但是一旦项目建立起这种模型,则通过Cocomo模型得出的项目工作量和项目周期具有更高的准确度。
Delphi估算技术。Delphi估算技术又被成为专家估算技术,它是由一个被认为是该任务专家的人来进行估算,且估算过程很大一部分是基于不清晰,不可重复的推理过程,也就是直觉。所以该技术中专家“专”的程度及对项目的理解程度是该技术的重点,也是难点,它的好坏直接影响估算结果的准确程度。
Delphi估算技术估算过程并不像功能点估算技术或COCOMO算法模型那样,有明确的计算方法或计算公式。它是将待估算的项目的相关信息发给专家,专家估算后由专门的负责人进行汇总,然后再发给专家估算,反复几次后得到一个估算结果,可见只是一种思想,所以它除了用来估算规模,也可以用来估算成本、风险等,即对选定的某个科目进行估算。
类比估算技术。“类比估算”,顾名思义是通过同以往类似项目(如应用领域、环境和复杂程度等)相比较得出估算结果。类比估算技术是一种粗略的估算方法,它估算结果的精确度取决于历史项目数据的完整性和准确度。类比估算技术与Delphi估算技术类似,它的用途不仅仅用在规模估算上,也可以估算成本、工作量等。 PERT估算技术。PERT估算技术,又称为计划评审估算技术,它对需要估算的科目(如规模、成本、工期等)按三种不同情况估算:一个乐观估算结果,一个最可能估算结果,一个悲观估算结果。再通过这三个结果计算得到一个期望规模和标准偏差。这种估算技术可以用于估算规模,同样也可以用于估算工期,相比较来说PERT技术估算的结果比类比估算技术的结果要更准确。
2 功能点估算技术应用实例
假设某员工管理系统,经过需求分析得知,该系统所包含功能如下:
(1)员工信息维护:添加员工、修改员工信息、查询员工信息;
(2)部门信息维护:添加部门、修改部门信息;
(3)工资统计:统计员工年薪,并打印输出。
其中,在该系统中添加一个员工资料,会使用到员工的基本信息:员工ID(标签控件)、姓名、性别、年龄、婚否、部门ID;教育情况:学校名称、所学专业、学历。对部门的维护会使用到部门的信息:部门ID(标签控件)、部门名称。员工工资信息由另外一个财务系统提供,工资表信息有员工的基本信息:员工ID(标签控件)、姓名、部门名称;工资信息:工资级别、工资金额。
根据功能点估算技术估算步骤,首先计算未调整功能点数,即各种类型功能项的加权和,分析该系统6个功能项所属类型及其复杂权重值如表2:
假设该项目的14个技术复杂度因子均为“有一定影响”,即权重值均为2,则该项目功能点数为:FP=45×(×14×2)=。如果知道该项目使用何种语言,可以将功能点数转换为代码行数。
3 结语
本文对目前比较流行的几种软件项目估算技术做了简单介绍。重点讲述了功能点估算技术,并通过一个实例演示了功能点估算技术的应用方法。通过本文描述可以看出每种项目估算技术都有其自己的优缺点,如果想要得到比较准确的估算结果,不能仅靠一种估算技术,而应该综合运用各种估算技术,才能得到比较全面的信息和比较准确的结果。目前,也有一些基于这些估算技术的思想的自动化估算工具产生,相信通过不断的发展,将解决软件项目成本估算难的问题。
参考文献:
[1]朱少民.软件项目管理[M].北京:清华大学出版社,2009-11.
[2]覃征等.软件项目管理[M].北京:清华大学出版社,2004.
[3]李明树,何梅,杨达,舒风笛,王青.软件成本估算方法及应用[J].Journal of Software,, , April 2007,775-795.
[4]The David Consulting Group ,Function Point Counting Practices Manual Release ,January 2005,
[5]刘谦.软件项目估算方法在敏捷开发中的实践.中国管理网,2010-06-18.
作者简介:王颖,女,研究生,软件工程专业;江文焱,男,研究生,软件工程专业。
点击下页还有更多>>>软件技术论文范文
121 浏览 2 回答
166 浏览 5 回答
240 浏览 2 回答
206 浏览 4 回答
108 浏览 4 回答
243 浏览 3 回答
188 浏览 3 回答
269 浏览 2 回答
178 浏览 2 回答
281 浏览 3 回答
122 浏览 5 回答
234 浏览 6 回答
259 浏览 4 回答
321 浏览 5 回答
321 浏览 4 回答