软件工程师评职称论文

发布时间:2021-09-09
软件工程师评职称论文

  软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。下面是由小编整理的软件工程师评职称论文,谢谢你的阅读。

  软件工程师评职称论文篇一

  浅析软件工程

  摘要:软件工程专业是计算机领域发展最快的学科分支之一,软件工程(software engineering,简称为se)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。这一学科包括许多的内容,具体来讲有程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等。当今社会,网络化迅速发展,软件的应用领域越来越广。现在比较普遍的软件有电子邮件,人机界面,办公套件,操作系统,游戏等。目前,基本上每个行业都会某种程度的运用到计算机软件。这些应用对于推动经济和社会的发展起到了举足轻重的作用,提高了工作效率,改善了人们的生活质量。

  关键词:软件工程 计算机领域 程序设计 开发工具 设计模式 生命周期、软件开发

  1 概述

  软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。这一学科包括许多的内容,具体来讲有程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等。当今社会,网络化迅速发展,软件的应用领域越来越广。现在比较普遍的软件有电子邮件,人机界面,办公套件,操作系统,游戏等。目前,基本上每个行业都会某种程度的运用到计算机软件。这些应用对于推动经济和社会的发展起到了举足轻重的作用,提高了工作效率,改善了人们的生活质量。

  我们究竟是将软件的开发看成一门科学,还是将其看成是一门工程,关于这个问题已经讨论了很长时间了。事实上,软件的开发具备这两者的特征。但是我们不能将二者混淆了。大多数人认为软件工程基于计算机科学和信息科学就像是传统意义上的工程学之于物理和化学。在世界各个国家,尤其是美国大约有40%的软件工程师都有计算机科学的学位。他们可能不经常运用到计算机科学上的知识,但是会经常运用到软件工程上的知识。许多应用都需要软件工程,在软件开发的许多程序中也需要软件工程。软件工程的主要作用就是指导软件项目的方方面面。在软件工程中,软件开发与各种市场活动紧密相连。软件工程的方法学认为程序员在开发软件的时候是处在一个团队中的,而且在编写程序时要符合软件的需求,设计,以及客户的利益。

  伴随着开发技术的不断进步,软件开发过程也在不断的改进。从早期的瀑布式(waterfall)的开发模型直到最近开始兴起的敏捷开发方法(agile),表现出来的是随着时代的变化,软件产业对于开发过程的认识也在不断的变化,对于各种类型项目的理解方法也在发生着变化。在美国曾经有权威机构对软件组织的绩效做过评估,所得到结论是:软件工程的专业分工不足,是造成品质低落、时程延误、预算超支的最关键因素。2003年,the standish group年度报告指出,在他们调查的13522个专案中,有66%的软件专案失败、82%超出时程、48%推出时缺乏必需的功能,总计约550亿美元浪费在不良的计划、预算或软件估算上。

  2 软件工程的需求分析

  有一种观点认为软件工程是学习怎么做软件的,对吧?我认为,这种观点算对,但不是全对。得到一个软件产品,自然是软件工程的目的所在,但是软件工程所包含的却不仅仅是这些。就拿软件业界比较常见的例子来给大家讲一下,这个例子就是盖房子,我们盖房子,是不是就买块地,然后准备好建材,就哐当哐当地开始建房子了呢?大家明白不是这样,要建好一座房子,先要对土地进行测量勘察,确定可以在上面建房屋,之后还得先规划出整个房子的蓝图来,接下来才是对根据蓝图开始建房子。建好房子后,还得经过一些检测,比如甲醛有没有超标啊,包工头有没有偷工减料啊,这些都合格之后才能交付使用。于是有人入住了,住久了,发现浴室漏水,那就得修补一下。再住久了,住了几十年,房子旧得不成样子了,这时候它的寿命也到了终点了。

  软件工程之所以叫软件工程,就是因为它使用了工程学方法来帮助软件开发,建筑也是一门工程学,所以它们之间是会有些共通之处的,不信?请看:首先,我们在对土地进行测量勘察的时候,是在确定它是否适宜建房子,在软件工程上来讲,这个术语叫“可行性分析”,可行性分析的任务就是确定开发这个软件是否在技术上可以做到,在资金上有充足支持,在市场上能够受欢迎,如果答案是肯定的,那么就可以继续下一步的开发步骤。规划出房子的蓝图,在软件工程上被分为两个过程:“需求分析”、“设计”。需求分析就是得到软件需要做什么,需要实现什么功能。而设计就是告诉开发人员怎么实现这些功能。也就是规划出软件的一个蓝图,在“编码”阶段再对其进行实现,这就对应着建房的关键阶段,就是按照蓝图盖好房子啦。房子在入住前需要检测是否合格,软件在交付给用户使用的时候自然也需要检测是否合格,这个阶段叫做“测试”。检测合格了,那就可以交付给用户使用,在市场上销售。软件不可能完美无缺,所以在使用过程中,一定会出现某些问题,这时候就要将问题提交给软件开发人员,修复问题,这个阶段就是软件过程中的“维护”阶段。过了一段时间,这段时间可能很长,也可能很短,这软件已经不适应生产力的发展了,那么就可以正式宣告这软件寿终正寝了,至此,软件的生命周期才正式结束。

  我们还要注意,软件生命周期包括制定计划、需求分析和定义、软件设计、程序编码、软件测试、运行维护这六个阶段,是指一个计算机软件从功能确定、设计直到不再使用该软件的全过程。

  软件工程,正是贯穿在一个软件的整个生命周期中的。从开发某个软件的计划被提起或者立项,软件工程就开始发挥着作用,用自己的一套方法体系,来指导软件开发的整个过程。因此软件工程不等于编程,编程只是软件工程整个过程中的一个重要环节而已。据统计,在整个开发周期中,平均编码这个过程只占了整个周期的大约30%的时间。

  3 软件工程原则

  软件工程学主要是用来对软件开发和维护进行指导,是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完整的工程化原则。它充分的运用计算机科学、数学及管理科学等方面的知识,并借鉴传统工程的原则、方法来完成开发软件的任务,这样就能够最大限度的开发高质量的软件,并且能够减少成本。

点击下页还有更多>>>软件工程师评职称论文

  软件工程师评职称论文篇二

  软件工程测试浅析

  摘要:软件工程的目的是开发出具有可修改性、可靠性、有效性、可适应性、可移植性、可重用软件工程性、可追踪性和可互操作性并且满足用户需求的软件产品。但是为了保证软件产品的质量和开发效率,同时也为了减少维护的困难。我们一定要重视软件测试。本文就软件工程测试进行一个探讨分析。

  关键词:软件工程 软件测试 产品 质量 测试工具 需求

  在软件测试日新月异发展的今天,自动化测试正在成为软件测试领域里的一个非常瞩目的趋势和潮流,软件测试在软件工程中是极其重要的过程,在软件测试组织中,对测试过程中的知识进行有效的管理,是提升组织整体测试水平的关键。一个重要的研究问题是怎样将知识管理过程与软件测试过程有效集成,从而促进知识资产在软件测试组织中的传播与重用。首先我们来了解一下软件测试的概念,目前软件测试的定义比较多,如果想要找一个比较清晰的定义:软件测试主要是为了发现错误而执行程序的过程,也就是说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。所以,我们知道,软件测试其实是为了发现程序中的错误,是一个找错的过程。

  同时,我们知道,软件测试是一个知识密集型的活动,软件测试人员的工作不仅仅是依据测试计划对软件进行测试,与测试相关的知识、技巧、经验和灵感在测试过程中有着重要的作用,但是随着软件技术的快速发展,不断出现的新的待测软件产品,常使软件测试人员感到压力重重,力不从心,他们有探寻新的测试知识和技术的紧迫需求。而软件测试的自动化的出现为我们提供了一种新思路和解决问题的新方法,下面对软件测试几个方面进行探讨。

  1 软件测试的目标

  1.1 软件测试员的基本目标是发现软件缺陷。这个是软件测试的终极目标,之所以再次强调。是因为有时软件开发团队进行软件测试只是为了证实软件不存在错误的过程,证明该软件满足了用户的要求,而不是找缺陷。在这样的情况下,测试人员也就缺乏不懈努力发现缺陷的探索精神和热情,不会希望在软件测试中暴露软件中隐藏的错误和缺陷。所以做好测试的首要条件是明确软件测试员的基本目标是发现软件缺陷。

  1.2 软件测试员追求的是尽可能早地找出软件缺陷。根据调查和实践,软件的修复费用,随着时间的推移,将数十倍的增长,所以软件测试员应尽可能早地找出软件缺陷。这样,在测试中,就不要选择那些导致程序失效概率小的测试用例,因为这样的测试对于完善和提高软件质量是没有任何价值的。同时,应当把软件测试贯穿到整个软件开发的过程中,因为很多预料不到的错误,往往只在特定的环境下才会暴露出来,不然一些隐藏的错误和问题查不出来,就可能会出现在运行阶段中去。

  1.3 软件测试人员必需确保找出的软件缺陷得以关闭。在软件工程测试的过程中,主要目的是发现至今未发现的错误,从用户的角度出发,替用户着想,将更深层次可能的问题都测试出来。但是,因为各种原因并不是每个软件缺陷都是必须要修复的。如:没有足够时间、风险太大等。但是,测试人员必需确保找出的软件缺陷得以关闭, 因为软件测试的目标就是揭示不同类型的错误,并且修正它,使得用户能够顺利使用软件。

  2 软件测试的基本原则

  2.1 软件开发人员应当避免测试自己的程序

  软件测试时一项复杂、富有创造性和高度挑战性的工作,在软件测试中,如果让开发人员来测试自己的代码,那是一件非常不妥当的事情。因为开发和测试生来就是不同的活动。所以,不管是程序员还是开发团队都应当避免测试自己的程序或者本团队开发的功能模块。如果有条件的话,应当由独立于开发组和客户的第三方测试组或测试机构来进行软件测试。因为人类的活动具有高度的目的性,建立适当的目标具有重要的心理作用。如果我们的目的是要证明程序中没有错误,那我们就会不自觉地朝这个方向去做;也就是说,我们会倾向于挑选那些使程序出错的可能性较小的测试数据。或者由于程序员对问题的叙说和说明有误解而产生的错误,这种情况让程序员测试自己的程序是不可能发现问题的。

  2.2 在软件测试中,确定预期输出或结果是测试必要的,不可缺少的一部分,如果事先无法肯定预期的测试结果,往往会把看起来似是而非的结果当成正确的。同时还要注意各种输入条件,无论合理与否。因为在实际使用中各种情况都有。

  2.3 一定严格执行软件测试计划,禁止软件测试的随意性,这样就可以避免软件交付后出现问题,这样也可以改善测试的效率和有效性。

  2.4 软件测试并不等于程序测试,软件测试贯穿于软件定义和开发的整个过程,因此,需求分析、概要设计和程序编码等各阶段所得到的文档都是软件测试的对象。

  2.5 必须检查每一个测试结果,事实上在最终发现的错误中,有相当一部分在前边的测试中已经显露了出来,但是由于人们没有认真检查先前的测试结果而遗漏了。

  2.6 为了提高对程序重新测试的效率,尤其是在对程序作了修改后,为了减少测试工作量和成本,除了对真正没有用的程序外,一定不要扔掉测试用例,测试用例代表了一定的价值投资。

  3 软件测试自动化工具的选择

  随着软件规模不断扩大,软件的复杂度不断加大,采用手工测试软件已经不能适应要求。采用电子自动化测试技术对于人工而言,能更好地保证测试的准确度,而且大大提高了测试的效率,加快软件的开发速度。因此,软件自动化测试应用越来越广泛,目前,自动测试是软件测试的一个重要组成部分,它能完成许多手工测试无法实现或难以实现的测试,从而提高软件质量,节省经费,缩短软件发布周期。在自动化测试中,首先我们要根据要求来合理选择测试工具,测试工具的价格在开发资金中占有较高的比例,从成本角度必须考虑,而且它参加了测试的大部分活动,影响测试的准确性和效率。根据测试方法不同,测试工具有黑盒和白盒两种;而从测试目的和对象的角度区分亦可分为:单元测试、性能测试、功能测试、负载测试等。

  在测试中,对于测试工具的选择,并非测试功能越强大越好,有一个前提,那就是必须适用,而且必须满足兼容性,能够支持不同的运行平台,能对不同的脚本进行测试,同时对待测试的脚本具有追踪报道、错误定位的功能;再次,拥有测试结果总结功能,能够将测试结果以图表的形式展示出来,相对于一般的结果表述形式,图标表示更直观。更容易让人理解、信服,可以及时对测试结果进行分析。一般还要从功能、价格、测试工具的集成能力、测试工具的易用性、侧重点、技术支持等多方面考虑。

  4 结束语

  软件测试有其自身的特点。软件测试的目的不是为了仅仅找出错误,而是通过它发现错误、分析错误,找到错误的分布特征和规律,从而帮助项目管理人员发现当前所采用的软件开发过程的缺陷,以便改进;同时也能够通过设计有针对性的检测方法,改善软件测试的有效性。即使测试没有发现任何错误,也是十分有价值的,因为完整的测试不仅可以给软件质量进行一个正确的评价,而且是提高软件质量的重要方法之一。并以此来最终提高软件产品的质量和企业的经济效益,加强软件企业的核心竞争力。

  参考文献:

  [1]史济民.软件工程原理方法与应用[m].北京:高等教育出版社,2001.

  [2]张海藩.软件工程导论[m].北京:清华大学出版社,1997.

  [3]佘健明,等编著.工程咨询概论.中国计划出版社,2007,11转

  [4]sam guckenheimer.the revolution in software testing. rational software.2002.

  [5]james newkirk robot c.martin. extreme programming in practice中文版.人民邮电出版,2002年6月出版.

  [6] ron patton 著.软件测试.周予槟,姚静等译.机械工业出版社,2002.

  [7]崔启亮著.国际化软件测试.电子工业出版社.2006.4.

  [8]孙建.软件测试工具的研究与建立.浙江大学,2006.

  [9]ann scblosser.the experience and web site success[j].the e_business review,2003,41(6):20.

  
看了“软件工程师评职称论文”的人还看:

1.工程职称评定工作总结

2.电子信息工程工程师职称论文

3.工程类高级职称论文

4.电子工程师职称论文

5.测量工程师职称论文