软件技术是一个发展变化非常快的行业,软件人才要按照企业和领域需求来确定培养的方向。下面是由我整理的软件技术论文范文,谢谢你的阅读。
浅谈软件项目估算技术
摘 要:由于软件产品自身的特殊性,导致软件项目的估算工作进行困难,估算结果准确性差。为了解决这一问题,产生了很多不同的软件项目估算技术,本文对各种估算技术的主要思想及其优缺点进行简单的阐述。尤其是对功能点估算技术,本文做了详细的介绍,并通过实例加以说明其应用方法。
关键词:规模估算;成本估算;实例应用
中图分类号:TP311.5
软件项目的估算历来是比较复杂的事,因为软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的估算往往和实际情况相差甚远。因此,估算错误已被列入软件项目失败的四大原因之一。由此,也证明了正确对软件项目进行估算是何等重要。
在软件项目管理中,估算就是对项目将持续多长时间或花费多少成本的预测。所以说,估算正是一种对未来的预测。从这里也看以看出估算的重点就在“工作量估算”或“成本估算”,而在对这两者进行估算的过程中大多数情况下都少不了“软件规模”这个条件,所以本文将软件估算分为两种类型,第一个种是软件项目规模的估算,第二种是将估算得出的规模转换为工作量的估算或成本的估算。目前使用比较广泛的规模估算技术,如:代码行估算技术、功能点估算技术;而使用比较广泛的成本估算技术,如:COCOMO算法模型估算技术。
除了上述所列举的几种技术外,还有几种估算技术既可以用于估算规模,也可直接应用与估算工作量或估算成本,如:Delphi估算法、类比估算技术、PERT估算技术。这几种估算技术不似前面所列的技术,比较有针对行,且有具体的计算过程、计算公式。这几种技术只是一种思想,依据某个选定的科目进行估算。下面本文将简单介绍上述提到的几种估算技术,并通过具体的实例重点阐述功能点估算技术。
1 估算技术简介
1.1 代码行估算技术。代码行(LOC)指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:Job Control Language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等[1]。代码行估算技术主要是估算软件的规模,即通过该技术估算待研发软件项目有多少行代码。一般为了方便表示,使用较大的单位千代码行(KLOC)来表示待研发软件项目的规模大小。这种方法比较适用于有经验积累和开发模式稳定的公司。如果是新成立公司,使用这种估算技术则会存在很大误差,加大项目失败的风险。
1.2 功能点估算技术。功能点法是一种经过实践验证的方法,但应用成本很高,估算的工作量投入也较大。功能点估算技术最终结果是规模,仍然需要知道项目的生产率数据才能得出实际的工作量。功能点估算技术将系统功能分为输入、输出、查询、外部文件和内部文件5种类型。其中,输入是一个数据跨越系统边界,从外部到内部的基本数据处理过程。数据的来源可以是人机输入界面/接口,或是另一个应用系统;输出是一个衍生数据跨越系统边界,从内部到外部的基本数据处理过程。这些输出的数据可能会产生报表,或发到其他外部系统的输出文件;查询是一个不包含衍生数据和数据维护的基本数据处理过程,包括输入和输出两部分;内部文件存在于系统边界之内,用户可识别的一组逻辑上相互关联的数据;外部文件存在于系统边界之外,用户可识别的一组逻辑上相互关联的数据。使用功能点估算技术估算的大概步骤为:
(1)通过需求分析将系统功能按照上述5种类型进行分类。
(2)分析每个功能项的复杂程度,大致分为一般、简单、复杂三种类型,每一种类型都对应一个权重值,具体如表1。
(3)根据每个功能项的复杂权重值,求出功能项的加权和,即为未调整功能点数(UFC)。
(4)分析该系统的技术复杂度,功能点估算将与系统相关的技术影响因素分为14组(用Ai表示),每个分为6个级别,权重分别从0至5。根据分析结果及公式计算技术复杂度因子(TCF),即TCF=0.65+0.01(SUM(Ai))。
(5)将UFC与TCF相乘即为功能点数。
1.3 COCOMO算法模型。Cocomo模像是一个分层次的系列软件成本估算模型,包括基本模型、中级模型和详细模型3个子模型。3个模型采用同一个计算公式,即E=asb×EAF[2]。其中,E是以人月为单位的工作量;S是以KLOC为单位的程序规模;EAF是一个工作量调整因子,在基本模型中该项值为1,中级模型和详细模型中根据成本驱动因素确定;a和b是随开发模式而变化的因子,这里开发模式被分为3中类型,即有机式、半分离式和嵌入式。
Cocomo算法模型是一种精确易用的估算方法,如果项目没有足够多的历史数据,会使得各调整因子和系数很难确定,进而使得估算比较困难。但是一旦项目建立起这种模型,则通过Cocomo模型得出的项目工作量和项目周期具有更高的准确度。
1.4 Delphi估算技术。Delphi估算技术又被成为专家估算技术,它是由一个被认为是该任务专家的人来进行估算,且估算过程很大一部分是基于不清晰,不可重复的推理过程,也就是直觉。所以该技术中专家“专”的程度及对项目的理解程度是该技术的重点,也是难点,它的好坏直接影响估算结果的准确程度。
Delphi估算技术估算过程并不像功能点估算技术或COCOMO算法模型那样,有明确的计算方法或计算公式。它是将待估算的项目的相关信息发给专家,专家估算后由专门的负责人进行汇总,然后再发给专家估算,反复几次后得到一个估算结果,可见只是一种思想,所以它除了用来估算规模,也可以用来估算成本、风险等,即对选定的某个科目进行估算。
1.5 类比估算技术。“类比估算”,顾名思义是通过同以往类似项目(如应用领域、环境和复杂程度等)相比较得出估算结果。类比估算技术是一种粗略的估算方法,它估算结果的精确度取决于历史项目数据的完整性和准确度。类比估算技术与Delphi估算技术类似,它的用途不仅仅用在规模估算上,也可以估算成本、工作量等。 1.6 PERT估算技术。PERT估算技术,又称为计划评审估算技术,它对需要估算的科目(如规模、成本、工期等)按三种不同情况估算:一个乐观估算结果,一个最可能估算结果,一个悲观估算结果。再通过这三个结果计算得到一个期望规模和标准偏差。这种估算技术可以用于估算规模,同样也可以用于估算工期,相比较来说PERT技术估算的结果比类比估算技术的结果要更准确。
2 功能点估算技术应用实例
假设某员工管理系统,经过需求分析得知,该系统所包含功能如下:
(1)员工信息维护:添加员工、修改员工信息、查询员工信息;
(2)部门信息维护:添加部门、修改部门信息;
(3)工资统计:统计员工年薪,并打印输出。
其中,在该系统中添加一个员工资料,会使用到员工的基本信息:员工ID(标签控件)、姓名、性别、年龄、婚否、部门ID;教育情况:学校名称、所学专业、学历。对部门的维护会使用到部门的信息:部门ID(标签控件)、部门名称。员工工资信息由另外一个财务系统提供,工资表信息有员工的基本信息:员工ID(标签控件)、姓名、部门名称;工资信息:工资级别、工资金额。
根据功能点估算技术估算步骤,首先计算未调整功能点数,即各种类型功能项的加权和,分析该系统6个功能项所属类型及其复杂权重值如表2:
假设该项目的14个技术复杂度因子均为“有一定影响”,即权重值均为2,则该项目功能点数为:FP=45×(0.65+0.01×14×2)=41.85。如果知道该项目使用何种语言,可以将功能点数转换为代码行数。
3 结语
本文对目前比较流行的几种软件项目估算技术做了简单介绍。重点讲述了功能点估算技术,并通过一个实例演示了功能点估算技术的应用方法。通过本文描述可以看出每种项目估算技术都有其自己的优缺点,如果想要得到比较准确的估算结果,不能仅靠一种估算技术,而应该综合运用各种估算技术,才能得到比较全面的信息和比较准确的结果。目前,也有一些基于这些估算技术的思想的自动化估算工具产生,相信通过不断的发展,将解决软件项目成本估算难的问题。
参考文献:
[1]朱少民.软件项目管理[M].北京:清华大学出版社,2009-11.
[2]覃征等.软件项目管理[M].北京:清华大学出版社,2004.
[3]李明树,何梅,杨达,舒风笛,王青.软件成本估算方法及应用[J].Journal of Software,Vol.18, No.4, April 2007,775-795.
[4]The David Consulting Group ,Function Point Counting Practices Manual Release 4.2.1,January 2005,
[5]刘谦.软件项目估算方法在敏捷开发中的实践.中国管理网,2010-06-18.
作者简介:王颖,女,研究生,软件工程专业;江文焱,男,研究生,软件工程专业。
点击下页还有更多>>>软件技术论文范文
优秀复杂软件工程解决方案能够设计满足特定需求的系统、单元或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。
具体体现举例如下:
影响
1、对社会: 能够基于工程相关背景知识进行合理分析,评价专业工程实践和复杂工程问题解决方案对社会、健康、安全、法律以及文化的影响,并理解应承担的责任。
2、对科学发展:能够基于科学原理并采用科学方法对复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得出合理有效的结论。
3、对环境:能够理解和评价针对复杂工程问题的工程实践对环境、社会可持续发展的影响。
4、对文化:具有人文社会科学素养、社会责任感,能够在工程实践中理解并遵守工程职业道德和规范,履行责任。
责任
1、能够就复杂工程问题与业界同行及社会公众进行有效沟通和交流,包括撰写报告和设计文稿、陈述发言、行处表达获回应指令。并具备一定的国际视野,能够在跨文化背景下进行沟通交流。
2、具有较好的人文社会科学素养、较强的社会责任感、良好的工程职业道德和团队合作意识;掌握与化工专业相关的基础科学理论知识和工程技术基础知识,具备一定的经济和管理知识;
扩展资料:
软件工程能力培养
1、受到化学与化工实验技能、工程实践、科学研究和工程设计方法的基本训练,具有对新产品、新工艺、新技术和新设备进行研究、开发和设计的初步能力;
2、获得工程实验方法和科学思维方法的基本训练,具有科学思维方法及综合运用所学科学理论和技术手段来解决复杂工程实际问题的能力,在设计过程中能综合考虑经济、环境、法律、安全、健康、伦理等因素;
3、掌握文献检索、资料查询和运用现代信息技术获取相关信息的基本方法,具有独立获取新知识的能力;
4、了解与本专业相关的生产、设计、研发、清洁生产、环境保护和可持续发展等方面的方针、政策与法律、法规,能正确认识工程对于客观世界和社会的影响;
城乡二元中国的法治背景和前景
用意识流式样的文学语言恣意叙述关于法治和法律的学术,似乎是朱苏力教授的一个爱好和习惯。这一点,在他最新出版的作品《道路通向城市》再一次得到了充分的体现,使我不得不相信他在考入北大法学院的时候原本就是一个热情洋溢的文学青年了。
这本书于2004年5月由中国法律出版社出版,洋洋洒洒写了30万字左右,除去引论以外,大部分是作者近几年来已发表的学术论文或者讲演稿的汇集。但是,正如作者自己所说的,“尽管这些论文是分别撰写和发表的,却大致是按照我的统一规划进行的,并且在最后编辑本书的时候,为了形成一个统一的整体,我也对许多论文做了文字修改,增补了部分文献。”①这表明了作者的一种负责的学术态度以及该著作学术思想的形成与集中过程——所谓“统一规划”也罢“统一整体”也罢,都是作者对中国法治进路和法社会学问题的以往思维瓷片的一种“考古式”粘合。
首先引起我特别注意的是该书的书名,很有意思地与苏力过去的一部作品《送法下乡》(中国政法大学出版社2000年版)的书名形成了高调的反差。关于这个书名,作者解释说它是来自凡尔哈伦②的一句诗,是一个关于中国当代社会转型的隐喻,同时也作为当代中国法治实践的背景和基本制约。我倒是从中看到了隐喻中的隐喻,表明作者对中国法治实践所进行的考虑已经从农村折返到了城市,也许还意味着苏力本人学术思想和立场的折返与转型。因为在前一个书名中,比较明显地反映出苏力把中国法治实践的主要战场设想到了农村,而现在则设想到了城市。这种设想的转移,我认为是科学的与合理的,理由在于,传统中国的城乡二元结构社会正在发生变革和解构。在过去十多年以来,中国的农村、农民和农业都发生了巨大的变化。大量的青壮年农民被先进的农业生产力所解放成为了新兴的和现代的中国体力工人阶级,并逐步在数量上和法律权利需求的不满程度上呈正比例地增长着,相对于原来的市民阶级而言,他们对于法治产品的供给有更多的诉求和渴望,他们将成为中国法治进程的战略性推进力量或者成为战术性破坏力量。中国的乡村被从城市中发射过来的无线电波所包裹和诱惑,也被章鱼般的城市日益吞噬或者压迫,从而对二元中国发出了要求社会平等的城市化或者城镇化诉求,这将导致法律上的地方自治权利要求的增大乃至于联邦主义法律思想的萌芽。中国的农业已经从自给自足型经济转向对城市的资源供给型经济,使得中国辽阔乡土社会中的田园牧歌被契约和货币的嘈杂所哽咽或者替代,这也在不断地提醒着立法者、执法者、司法者和苏力等法学家们:大家族式的宗法社会已经彻底雪融,城乡一体化趋势导致一个从身份到契约的运动正在占四分之一地球人口的商土中国开始进行,这将使中国的城市(镇)化的乡村和“乡村化的城市”③产生大致相同的法律供给需要。如此,便是城乡二元中国法治实践的切实背景,起码现在越来越清晰和明朗。这样一来,如果苏力的学术视场不及时伴随社会的转型而转型,就要落后于时代了。
而后引起我注意和阅读的,是该书的目录。如果说一本书的名字是“龙的眼睛“,那么书的目录一般就是“龙的骨架”了。分析龙睛看到的是作品的重心所在,而领略目录则可以窥探作者学术思想的脉络和间架结构。该书从目录上看,主要由四个板块组成,第一板块由《你看到了什么?(代序)》、《致谢》和《引论——现代化视野中的中国法治》三篇文章组成,其中《你看到了什么?》是作者以第二人称方式为自己这本书所写的一个“段落大意”,也是一个“他我批判自我” 式样的书评,比较中肯和客观,尤其是对于喜欢文学的法律学术人而言,看完了这个代序,除非你继续对苏力观点后面的论据和语言过程依然很感兴趣,否则,该书其余的文字基本上就用不着看了。当然,法律职业人和非法律专业的普通读者可以在好奇心或者求知欲的驱动下,到后面那些具体的书页里去浏览浏览作者的论据和行云流水般的法(文)学笔触。至于《引论——现代化视野中的中国法治》是作者已出版过的作品的再次复写,这篇文章也许是作者终生学术思想的灵感之源,它主要探讨了中国社会变迁与中国法治实践的互动和交叉,建立了作者“任何法律的合法性都要从社会中取得”的法治理念。这种理念被作者一再声张与喧哗的目的,是要对中国现在的法治实践进行不断地提醒,让法治回应或者满足社会生活的种种需求;另外一个重要的目的,苏力一直想对主流法学派别也就是规范性法学研究进行“纠偏”,或者是争夺中国当代法学的话语权与公共传播的制高点。
第二板块,是该书的第一编,被作者命题为《宪政与立法》,其中第一章的标题是《中央与地方的分权》,第二章的标题是《当代中国立法中的习惯》, 第三章的标题是《最高法院、公共政策和知识需求》。第三板块被命名为《司法制度》则是第二板块中第三章的自然延续或者说深入细致论证,作者用长达四章文字的篇幅谈论了中国的法院、法官、司法考试等似乎是琐碎和细小的问题
可以写。
法学专业的论文涉及到法律法规是避免不了的,例如《中华人民共和国刑法》,可以在文章开头处注明《中华人民共和国刑法》(以下简称《刑法》),然后在对论文进行撰写的时候就可以直接使用简称《刑法》进行了,这样方法的确是具有一定降重作用的。
毕业论文(是指高等学校为对本科学生集中进行科学研究训练而要求学生在毕业前撰写的论文。一般安排在修业的最后一学年进行。学生须在教师指导下,选定课题进行研究,撰写并提交论文。