软件工程论文该怎么写
软件工程论文该怎么写
论文对于硕士,尤其博士,是必须的一种技能,也是一道难关。所谓大道无形,小道可走。下面给出一些博士期间的写作心得,希望能有所裨益。论文可以有三个境界:毕业、科研、贡献。
现在只说第一个,为了毕业。
把论文分成三个阶段:读、写、改。
一、读
即:读哪些论文(对象),读论文的目的是什么(目标),怎么读(方法)
1.读什么论文。
读论文,需要读经典的专业基础论文、survey(概述)论文,及5-10篇左右读新的高质量的专业论文。
好的论文怎么找?首先找专业领域中好的会议、期刊;其次,经常访问专业领域有名的实验室、研究员的主页,关注其发表的论文方向及内容;50-100篇,半年;就可以开始动手写论文了。
2.读论文的目的。
读论文的目的有两个主要目的:
一是了解世界上本专业领域的内容和发展情况;
二是在了解过程中,产生自己的idea,进入这个领域。
什么是idea?怎么样产生?idea一般是在读论文的过程中产生的,给出三种比较简单产生idea的方法。
(1)第一种弥补缺陷法。即去发现别人论文中的weakness(缺陷)。你在读很多个论文时候,就会逐渐发现,每一篇论文都不是完美的,解决的都是某一方面的问题。很多论文,尤其是经典论,都有很多论文跟着去提高和改善原来论文的效率、方法什么的。因此,你可以根据这个特点,去找你感兴趣的论文的weakness,你提出相应的弥补缺陷的解决方案;
(2)第二种新型方案法。就是提出与论文不同的解决方案,你觉得你在性能、方法、效益等方面有新的方法,那就产生了新的idea,不断地磨合,修正,完善你的idea,就慢慢成为一篇比较好的论文;
(3)第三种减少约束法。即减少论文中的assumption(假设),一般来说,所有的假设都是约束条件,去除约束条件就是形成新的方法的过程。
这三种方法是比较简单的、操作性比较强的方法,比较有针对性的产生idea,避免看论文中的茫然状态。值得注意的是,在产生idea过程中,不要想着憋大的idea,不要试图完全推翻或者建立自己的体系。在目前阶段,对大多数人来说,这是不可能的。好高骛远,往往会半途而废。你有一点点的贡献就好。没有一篇论文是完美的,而任何人的工作都必须在其他人工作基础上进行的。
3.怎么读论文。
(1)首先,最忌讳的是一篇论文反复读前面的几段。要读,尽量一次性读完,不管理解多少,尽量一次读完,你可以一篇论文多读几遍。不要放。很多人都是,觉得读起来难,读一读,放一放,然后再从头读。好像烧开水,没等开锅呢,就凉凉了,然后再烧。
(2)第二,读的时候带着想法读。读论文不是相面,你要看看内容是什么,和以前的有没有区别,有什么不同,有没有weakness。但是在阅读的过程中,往往就忘了这个事情。怎么办呢,就是每次看完,对这篇论文做个summary,总结一下论文的主要阐述的内容和方法,和以前的对比一下,这样,就把论文吃透了。好的论文不妨隔三差五的多读几次。
(3) 第三,看到好的句子,记下来,然后自己写论文时候改一下就可以用的。尤其是读native的论文,非常必要。论文的文风怎么样,整个文章的版式,句子的书写,词汇的使用。论文读多了,就很容易把专业词汇积累下来,所以,尤其在开始的时候,一定要把好的句子、单词记下来。好记性不如烂笔头,非常推荐大家这样去做。
二、写
写论文和读论文过程类似,包括确定论文的性质,论文的目标(发表到哪里),写论文的方法。要了解论文的组成是什么,每一部分应该怎么写,然后再进入写论文的过程。
在具体写作的时候,需要考虑下面的过程:
1.写什么性质的论文。
如会议论文、期刊论文、letter、regular paper,或者写的是综述(survey)、方法、理论等等。不同的论文的对象,载体,篇幅,侧重点是不一样的。比如,会议论文、短论文等对新的要求比较高,比较短,其他的次之,所以论文写作要集中在新的方面;而期刊论文等对新的要求之外,还要求完善、高质量,所以写作时候要系统性和创新性并重。
2.写论文的目的是什么。
第一,你想要发表的地方是什么,会议还是期刊。不同的地方有不同的要求,尤其是期刊论文。所以,在写论文之前,尽量确定要投的期刊或会议。然后,去阅读几篇最新的该期刊或者会议的论文,明确一下体例和内容大致规划。重要的是,你选择的题目和投稿对象的要求尽量切合。第二,你想要发表的时间,一定要有个发表的时间点。一方面,人都是有惰性的,你限制了时间点,就能很好的督促你,你可以多选择几个,这样你就会处于忙碌和兴奋状态,成果就会快而且好,否则非常容易消极怠工。另一方面,很多毕业生,需要在写大论文之前,需要得到论文的接收函。在时间规划上也是有要求的。如果想在时间上快一些,可以找一下相关刊物的special issue或者special section等,一般这特刊,出版的速度相对快些。一定要提前谋划,无论是会议还是期刊,一般要提前半年以上。
3.写论文的方法。
首先了解一下论文的结构。通常一篇论文包括7个大的部分,每页大概10段,每段大概4,5个句子。所以,一篇会议论文大概200-300个句子罢了。一小时写5句,一天写一页也就差不多了,一周也就写一篇论文吧,当然前提是idea什么都比较成熟后。其实,如果真的想明白了,差不多2-3天也就可以了。
4.论文的组成。
下面,针对论文给出7个大部分的一些内容组成:
(1) Abstract—— 对自己工作及其贡献的总结:a)阐述问题;b)说明自己的解决方案和结果。(150-200words)
(2)Introduction——背景,以及文章的大纲、你的贡献:a)题X是重要的;b)前人的工作A、B曾经研究过这个问题;c)A、B有一些缺陷;d)我们提出了方法D;e)D的基本特征,和A、B进行比较;f)实验证明D比A、B优越;g)文章的基本结构,大纲。(1page)
(3)Previous Work——说明自己与前人的不同:a)将历史上前人的工作分成类别;b)对每项重要的历史工作进行简短的回顾(一到几句),注意要回顾正确,抓住要点,避免歧义;c)和自己提出的工作进行比较;d)不要忽略前人的重要工作,要公正评价前人的工作,不要过于苛刻;e)强调自己的工作和前人工作的不同,最好举出各自适用例子。
(4)Our Solution——描述自己的工作,可分成多个部分:a)从读者角度阐明定义和表示法;b)提供算法的伪码,图解和相应解释;c)用设问的方式回答读者可能提出的潜在问题;d)复杂的冗长的证明和细节可以放在附录中,这里关键是把问题阐述清楚;e)特例和例外应该在脚注中给予说明。
(5) Performance Analysis——验证提出的方法和思路:a)合理地设计实验(简洁的实验和详尽的实验步骤);b)必要的比较,突出科学性;c)讨论,说明结果的意义;d)给出结论。
(6) Conclusion——总结、前景及结文:a)快速简短的总结;b)未来工作的展望;c)结束全文。
(7) References——对相关重要背景文献的全面引用:a)选择引文(众所周知的结论不必引用,其他人的工作要引用,经典的和新的论文要引用);b)与前文保持一致。
然后我们就开始写论文了。
1.写论文时候,最好一气呵成。千万不要犹豫,今天写点,明天写点的样子。那样往往写不好论文。一篇SCI论文,我想,一般最多用一周多一点的时间写完主题部分;而一般会议论文2,3天即可。当然,一些实验可能需要时间长些。无论如何,不可以拖延。可以说,每篇论文都可以发表,所以你写出的论文肯定是有成果的。
2.写论文时候,有些需要注意的语言表述的地方。首先,尽量拼写、语法正确。保证全文没有单词错误和明显的语法错误,这个非常重要。论文学术是非常严谨的,错误拼写容易让人觉得水平不高。另外,写作句子尽量简单,每个句子只包含一个意思,这个和中文论文差别很大。记住一定用简单的句子,一般情况下,即使算上从句也尽量不要超过两句话。第三,避免用口语。例如so、the same as、one hand…on theother hand等等。从native和好的论文里面,把重要的连词的应用学好。如therefore,however,moreover等等,尽量装着学术化一些。第四,尽量避免第一人称,we怎么怎么地。
3.论文的组成元素。通常,包括图形、公式、算法、证明等等。论文应该是图文并茂的。通常情况下,如果读者是同一领域的研究人员,他们看完论文的图片及图注就可以知道这篇文章大体所做的工作。因此,要标注好每一幅图片所展示的信息,但尽量简洁。图和文本要保持一致,并且互为补充,所有图在论文中都是必须提及的。不同的图有不同的要求:
(1)对于说明性、功能性和流程性等的图,我建议一般先自己在纸上手绘大框,这样方便设计、修改,等定型后,在用专业工具绘画,这样一般效果很好而且节省时间。
(2)另外,当采用柱状图、折线图等,优先用黑白色,然后是灰色或阴影的,最后才是彩色的。据说有大概10%的男性是红/绿色盲,因此要避免使用红/绿色,而且打印时候大多时候是黑白的,所以,在采用颜色标识的同时,尽量加一些标识性的线条标志,要有区别于其他区域的大小和形状。对于这些性能分析、对比等,在解释时候一定要尽量说明图的形成原因,并包括数据。如与谁相比,能效提高百分之多少,什么原因造成的等等。
(3) 第三,作图工具一定要专业,尽量避免用excel等做,通常做的不是很好看。图的质量一般是300dpi以上,所以如果可能,尽量用专业工具作图,然后粘贴。在论文录取后,尤其期刊论文,一般需要提交高质量的图片,尽量是jpg和tif格式的。
(4)最后,论文排版要尽量和论文要求一致,直接使用投稿对象的模板。如果latex等熟悉的朋友,尽量用latex,排版的质量非常棒的。
除了图,论文里面还应该有公式、算法、证明、定义等。一定尽量用专业的东西编写,这些地方尽量不要用图片。整篇论文要尽量用多种元素说明,避免整篇大片大片的文字描述。
最后,好的论文要有好的明确的题目,我一般是先写一个然后整篇论文写好后,再修改、定稿。
三、改
好的论文不是写出来的,是改出来的。完成一篇论文后,先通读一下,看看有没有什么要更改的。一般来说,更改有本人更改和他人更改两种。写完之后通读一次,先不要再读,放两三天再说。这样容易产生新的更好的想法,然后再仔细更改。更改是个打磨的过程,必须字斟句酌,可以参考其他好的文章,对照写。改论文绝对不是查缺补漏那么简单,要从审稿人、读者多个角度去看,想想读者能从你这个论文里面获得多少、想看的是什么。另外,一定请领域朋友帮助审查一下,以便检验论文的正确性和新鲜性,而且可以对一些术语用词进行改善。
改好之后,就是投稿。
一定要选择和自己论文非常搭的期刊或者会议投稿。如果是正常期刊的论文,一般随时都可以投稿。但是对于特刊、会议一般是有时间限制的。对有时间限制的,建议尽量提前一两天投稿。我见过很多人,都是非得到最后那天才投稿,这样如果发生意外就不好补救了。另外,有些期刊为了增加公正性,要求匿名投稿,这个一定要注意。
最后,不管论文接受还是被拒,都会有比较好的意见回来,一定要认真阅读这些意见并做相应的修改及反馈。
一些需要注意的地方
(1)论文的滚动问题。一个方向,发表一篇论文后,不是就完成大吉了。还有尽量深挖你这个课题。一个主题多种实现方法。一个好的idea,我觉得怎么应该发一到两篇conference和一个journal
(2)论文合作:在质量和数量上大幅提高。
(3)作者排序的问题,为以后工作做准备。
(4)项目申请问题。
(5)最低满足论文之后,是为以后铺路的问题。平实心态,积极争取。
以上是自己在做研究时候的一点点小心得,为写而写,寸光短视,指望有所裨益。
如何才能写好软件工程毕业论文?
当然肯定是多去找写好论文的素材和材料,然后定好论文的框架和论点。
软件技术论文范文
软件技术是一个发展变化非常快的行业,软件人才要按照企业和领域需求来确定培养的方向。下面是由我整理的软件技术论文范文,谢谢你的阅读。
浅谈软件项目估算技术
摘 要:由于软件产品自身的特殊性,导致软件项目的估算工作进行困难,估算结果准确性差。为了解决这一问题,产生了很多不同的软件项目估算技术,本文对各种估算技术的主要思想及其优缺点进行简单的阐述。尤其是对功能点估算技术,本文做了详细的介绍,并通过实例加以说明其应用方法。
关键词:规模估算;成本估算;实例应用
中图分类号: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.
作者简介:王颖,女,研究生,软件工程专业;江文焱,男,研究生,软件工程专业。
点击下页还有更多>>>软件技术论文范文
上一篇:汽车驾驶员技师专业论文
下一篇:有关软件工程毕业论文