欢迎来到易发表网!

关于我们 期刊咨询 科普杂志

软件测试年中总结优选九篇

时间:2023-03-13 11:23:19

引言:易发表网凭借丰富的文秘实践,为您精心挑选了九篇软件测试年中总结范例。如需获取更多原创内容,可随时联系我们的客服老师。

软件测试年中总结

第1篇

软件测试的魅力

软件产品的质量是软件的生命,也是软件企业生存和发展的关键。目前我国软件从业人员缺口高达40万人,而在成熟的软件企业中,测试工程师的数量远远超过软件开发工程师的数量。在未来十年中,我国企业对软件质量保证和软件测试人员的需求数量将继续增大。

一名合格的软件测试工程师需要具备什么素质呢?

技术能力:作为一名测试工程师,不能仅从使用者的角度来测试软件产品,而且还要从技术的角度来设计测试用例。所需技术包括以下课程:软件技术基础、C 语言、面向对象设计、C++、软件工程、数据结构与算法等,当然,有关软件测试的其他各种知识和技术也必须掌握。

编程经验:测试工程师需要写测试脚本,所以必须会写简单代码、能读懂源码,如果有一定的编程经验,可以帮助你对软件开发过程有较深入的理解,从编程人员的角度来正确地评价。工资与经验是成正比的。

沟通能力:测试人员要与项目经理、开发工程师、客户、市场人员等进行沟通,面对不同对象,需要不同的态度和方式,与开发人员进行沟通交流尤为重要。

善于总结和学习:软件测试是一项繁琐甚至枯燥的工作,重复性事务比较多,这就需要善于做阶段性总结,善于学习,关注新技术、新方法、新工具,让自己跟上技术发展的脚步,将学习成果应用到新的测试工作中。

NCRE四级软测工程师考试要点先知道

为了适应国内急需培养大量合格的软件测试人才的需要,教育部考试中心2007年推出了NCRE四级软件测试工程师考试科目。在设计实施这项考试的过程中,得到了清华大学、北京大学、北京航空航天大学软件测试专家的热情支持和大力帮助,对考试大纲、内容及考试的组织实施都进行了认真研究和精心设计。目前考试形式为笔试,时间为120分钟。

主要考核哪些内容呢?包括:软件质量、软件测试及软件质量保证的基础知识、代码检查、走查与评审、结构覆盖(白盒)测试、功能(黑盒)测试、单元测试和集成测试、系统测试、软件性能测试、可靠性测试、面向对象软件测试、Web应用软件测试,以及兼容性测试、构建测试、极限测试和文档测试等。

具体内容详见/viewthread.php?tid=122417&extra=page%3D1&frombbs=1

看起来很有挑战性吧?如何学习呢?认真把握高等教育出版社出版的教材,是最基础也有最有效的方法。教材涵盖了当前软件测试领域的各项实用技术,并加入了软件测试工程实践的内容。利用与教材配套出版的QESuit和QESat/C软件分析与测试工具光盘,大家可以亲自动手参与软件测试实践活动,进一步掌握软件测试的实际应用技能。

从收获二级C、C++、Java证书,到迈向四级软测工程师考试,已经打下了技术上的基础,走出了第一步,让我们继续为理想而努力吧!

小提示:

2009年3月真题练手,如果你能做对,就说明你很有潜质哟!

选择题第11题.以下关于软件性能的说法中,正确的是:

A软件性能与该软件的实现算法无关

B软件的吞吐量越大,其平均响应时间总是越短

C给软件的可用资源越少,其平均响应时间总是越短

D对于同一个网站,其支持的同时发送请求的用户越大,该网站的性能越好

正确答案 B

网络大补贴:

四级网络工程师笔试真题精编修订版/viewthread.php?tid=140558

第2篇

关键词:开发内化教学法;就业竞争力;软件测试人才培养

中图分类号:G642文献标识码:A

武昌理工学院坚持以“成功素质教育”为特色的教育理念和人才培养模式,致力于培养“专业素质扎实、非专业素质过硬、个性特长突出、创新与实践能力强”的高素质人才 [1]。通过广大师生十余年的努力,我校毕业生的就业率和就业质量稳步上升,取得了一定的成效。2010年,我校被列为国家教育体制改革试点高校,承担“创新民办高校高素质人才培养模式”的改革试点任务,目前,我校正沿着这一任务的指导思想,采用通过教师的开发促成学生内化的教学方法,进一步深化教学改革。近两年来,笔者主要承担计算机科学和软件工程专业软件测试课程的教学任务,在此,简要分析软件测试人才的市场需求及软件测试课程教学中存在的问题,结合课程特点和开发内化教学法,探索软件测试人才的培养模式。

一、软件测试人才的需求状况

软件产业发展的几十年中,软件测试已逐步渗透到各个领域,成为越来越重要的技术成分。很多优秀的企业中,开发人员与测试人员的比例达到了3:1或2:1[2]。大量的人才需求导致我国软件测试人才严重缺乏,专家分析其主要原因是国内软件测试人才教育相对滞后[3]。实际上,我国从2003年起计算机相关的教育机构就相继开设了软件测试课程,经过多年的软件测试人才培养,用人单位依然缺乏软件测试人才,而学过软件测试课程的毕业生还是难于找到工作。针对这一问题,笔者对软件测试人才的市场需求进行了调研。

调研结果显示,各公司的用人条件和考察内容虽不尽相同,但多数条件都比较相似,归纳起来包括以下几个方面:

① 计算机相关专业毕业;

② 有测试工作经验;

③ 能独立编写各类测试文档;

④ 熟练相关工具使用(包括测试工具及配置管理工具);

⑤ 熟悉主流操作系统;

⑥ 具备很强的语言表达能力、沟通能力和团队合作精神;

⑦ 学习能力强,能快速上手新技术,新业务。

此外,其他调查结果显示,在计算机行业,随着外包开发行业快速发展,对人才在代码和文档方面的规范性、技能和工具的熟练程度要求越来越高[4]。前面列举的软件测试人才招聘条件也应证了这一点。

二、软件测试课程的教学现状

近年来,各教育机构的教师们围绕该课程展开了一些课堂和实验教学的研究,在教学中采用案例教学法,强化实验教学环节,取得了一定的成果,但从案例的规范性和实验体系看,忽略了软件测试具有以工程项目为对象、以设计文档为依据的特征。主要存在的问题表现在以下几个方面:

① 缺乏规范的系统案例;

② 重技术实现轻文档训练(使用及书写);

③ 测试工具流于产品说明;

④ 缺乏面向项目的实验教学体系。

由此可见,我们教学中存在的问题正是人才市场的需求所在。

三、开发内化教学法在软件测试人才培养中的应用

成功素质教育的基本教学方法包括启发式教学法、互动式教学法、实战式教学法,成功素质教育的基本学习方法包括自主式学习法和研究式学习法[1]。开发内化教学法以培养和调动学生自主学习的积极性为前提,通过教师的开发促成学生内化的一种教学方法,笔者认为开发内化教学发就是成功素质教育的基本教学方法和基本学习方法的总和。软件测试是近年来诞生的一门新学科,目前已基本形成其独立的理论体系,但是随着软件产业的发展,有关软件测试的有效技术和方法还有待人们进一步探索。软件测试课程主要针对计算机相关专业高年级学生开设,需要多门先修课程作为铺垫。针对具备一定计算机专业知识的教学对象及还有较大发展空间的学科来说,采用开发内化教学法是比较适合的。下面主要针对人才市场需求和软件测试课程教学中存在的问题,利用开发内化教学法探索软件测试人才培养模式。

(一)启发式教学法的应用

启发式教学能提高学生的学习能力、快速上手新技术和新业务的能力,因此,能帮助学生达成人才需求条件中的⑦,并能促进学生养成自主式学习和研究式学习的良好习惯。

软件测试是一门主要由计算机科学及管理学相结合的新学科,目前,教材中的很多内容基本都是前人采用技术的介绍,这些技术往往是利用计算机技术和管理学的思想,在软件测试实践中探索出来的。因此,在教学中,对于各种测试技术的学习,不是直接介绍技术实现的方法,而是先提出一个具体的测试对象,让学生思考怎么测试更科学,在这一过程中,我们经常发现学生们也能利用先修课程学到的知识想到教材上介绍的方法,抓住这样的时机,鼓励学生,表扬学生,让学生坚定“我行”的自信心,有了自信心学生们就能更大胆更主动地思考和解决问题。

对软件进行有效的测试,提升测试效率,是软件测试面临的关键性挑战,也是软件测试技术进一步发展的瓶颈,各种测试工具的诞生正是基于这样的出发点。但由于种种原因测试工具的使用还远远达不到普及的程度和期望的效果,这说明工具不够完善,有待我们去开发更有效更易于使用的新工具来突破这一瓶颈。在软件测试工具的学习中,我们主要不在介绍工具的作用,而主要是启发学生去思考测试工具采用的技术并评判这种技术,让学生通过查阅资料进一步学习,思考还有没有更好的手段和方法来改进测试工具。

此外,由于软件测试的手段基本都来源于计算机专业的相关知识,教学中就要引导学生去挖掘已经学过的知识来解决测试中的问题,并不失时机地强调每一位计算机专业的学生都要有“计算机头脑”,这个“计算机头脑”要善于观察,捕获日常生活中一切可以用计算机来解决的问题,并思考解决方法。

(二)互动式教学法的应用

互动式教学法能提高学生能过的思考能力、资料查阅能力、归纳总结能力、表达能力,因此,能帮助学生达成人才需求条件中的⑥和⑦。

启发式教学产生的最佳效果就是带来师生间良好的互动,由于授课时间和内容的制约,我们采用启发式教育常常是教师自问自答的方式。目前,我校推行的教学改革,倡导学生自主学习,大力提倡课堂提问,并要求加大授课时间中提问和互动时间的比例。在这一改革思想的指导下,软件测试教学中将按照启发式教育中针对的相关内容,提出问题,采用让学生随堂回答的方式和课后查阅再做答的方式进行。主要以两种方式进行提问:第一,预习提问,在这一环节,设置基本概念和知识点的提问,主要检验学生的预习效果,并在提问过程中对重点内容进行讲解;第二,复习提问,复习提问的难度比预习提问有所加大,属于基本知识的衍生提问,需要学生在掌握基本知识的基础上经过一定的思考或资料查阅才能回答。通过这两种形式的提问,可以促进学生掌握知识、训练学生灵活运用知识解决实际问题的能力。

(三)实战式教学法的应用

人才需求条件中的测试工作经验是毕业生们就职难的关键,而实战教学法是达成这一条件的主要途径,在软件测试的实战中,还能训练学生测试文档写作及测试工具的使用,因此,实战教学法能达成人才需求条件中的②、③和④。

在近两年的教学改革中,主要采用案例教学法,在实验教学中用规范完整的案例模拟企业测试工作模式,让学生在实践中形成“技能”、具备“经验”。实验内容的安排上,注重指导学生使用设计文档、自己编写测试文档,并利用自动化测试工具实施测试,兼顾测试技能训练及工具熟练程度的提高。

1. 规范案例的选择:早期的软件测试教材只涉及一些小的程序段和非系统的案例,2009年以后的软件测试教材在这方面做了很大的改进,出现了较多的案例教程及实践教程。利用系统案例作为理论知识讲解的载体,将更直观地让学生理解知识。但要让学生具备软件测试经验,教材中的案例还存在一些问题,学生的经验只有通过动手实验才可能具备,而且这里所说的经验不是零散的,而是系统化的软件测试经验。在实际工作中,软件测试过程中的单元测试、集成测试、系统测试、验收测试分别对应软件设计中的详细设计、概要设计、系统设计和需求分析,要让学生在实验中完成一个系统的较完整测试过程,不仅需要被测案例系统的完整代码及数据,还必须提供全套的设计文档,这样的案例系统是现有软件测试教材和很多软件开发的实例参考书所不具备的。

我们通过企业调研,分析软件行业的流行开发模式,主要从清华大学出版的系列丛书“软件开发全程实录”中选择案例,并陆续补充完案例的设计资料(需求分析、系统设计、概要设计、详细设计)。利用规范的案例系统,在理论教学中用系统案例诠释理论,在实验教学中用系统案例模拟实际工作模式进行实战训练。

2. 实际测试过程的模拟:在实验教学中,我们花1/3的时间进行软件测试基本技能训练,主要针对白盒及黑盒测试技术选择最实用的测试技术进行用例设计,这一部分是常规的软件测试课程的主要实验内容,属于基本功训练实验。我们用2/3的时间进行模拟实验,在这部分,根据学生的实际情况及笔者多年企业工作经验,模拟企业对新手软件测试人员的培养及职业规划模式,循序渐进安排实验。

在软件测试的模拟实验中,我们采用文档齐全的规范案例实施教学,采用先实施后设计的顺序,依次让学生进行单元测试、集成测试、系统测试的实施及用例设计。注重测试过程、设计文档的使用及测试文档的书写训练,在实验后期,采用分组实验的方式,让学生分担测试任务中的不同角色,模拟团队协作完成测试任务。

3. 一体化教学的实施:从软件测试人员的招聘条件看,除了要求具备软件测试的基本知识,要设计出较好的测试用例、跟踪软件缺陷并改正软件缺陷、选择较好的测试手段提高测试效率等,还需要相关计算机专业知识的支撑。此外,企业期望的是懂编程、设计、测试、管理的综合人才,因此,必须结合专业方向形成课程体系。我们已经进行了在同一学期三门课程之间,利用同一案例进行一体化教学的尝试,即在软件建模设计课程、编程语言课程、软件测试课程中采用相同的案例推进教学,以期让学生更深入地体会软件开发的全过程,具备软件工程化的“经验”。

四、结论

在“创新民办高校高素质人才培养模式”的改革试点中,软件测试课程的教学改革将在总结前面教学改革经验和教训的基础进一步推行开发内化教学法。在今后的教学中,我们打算进行相同案例跨学期跨课程的一体化教学探索,在这一探索过程中,将建设规范的教学案例资源库,探索合理的一体化教学体系,以帮助学生系统地学习专业知识、领悟知识的连贯性、提高学生的工程素养和实战能力。参与一体化教学的各门课程在试验教学中注重企业工作模式和场景的模拟,让学生在学习过程中具备软件工程全过程的“经验”,以进一步提升学生就业竞争力。

参考文献:

[1] 赵作斌. 大学成功素质教育理论与实践[M]. 武汉: 武汉大学出版社, 2009.

[2] 张向宏. 软件测试理论与实践教程[M]. 北京: 人民邮电出版社, 2009.

[3] 刘德宝. 软件测试工程师培训教材[M]. 北京: 科学出版社, 2009.

[4] 北京阿博泰克北大青鸟信息技术有限公司. 行业规则和行业经验手册[M]. 北京: 科学出版社, 2008.

[5] 吴建平. 高职“软件测试技术”课程存在问题和应对措施[J]. 计算机教育, 2007(9).

[6] 陆慧娟等. 面向本科就业市场的计算机工程型人才培养研究[J]. 计算机教育, 2011(5).

[7] 佟伟光. 软件测试[M]. 北京: 人民邮电出版社, 2008.

第3篇

关键词:软件测试;自动化测试;数据驱动;关键字驱动

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)26-7428-04

The Research and Application for Software Testing Techniques and Automated Testing Framework

LIU Teng

(Information Technology Department Hunan Radio & TV University, Changsha 410004 ,China)

Abstract: Progress of studying with software testing, peoples have put forward some new theories, for example, Test Driven Development ,Exploratory testing , Model--based Testing use a model to generate test case and so on.In order to conquer the difficulties of manual testing, and enhance the quality of software as well as efficiency of software testing, the automation of testing process is widely applied. It catches the extensive attention with its characters, such as high automation degree, strong practicability, and so on. And it has been the developing direction of software testing.The appearance of test automation framework product indicates that the technology of software automated testing is going to be mature. The insufficiency of using capture/playback and script tools is being got over, thus, automates testing will become more economical and efficient, and be more advantageous to be implemented maintained.

Key words: software testing;automated testing;data-driven;keyword driven

1 自动化测试框架

自动化测试在过去的20年中已经有了很大的发展。最初的测试工具只提供了简单的捕捉/回放功能:记录并播放键盘按键,然后捕捉和比较屏幕。这些测试方法虽然最容易应用,但是几乎不可能维护。捕捉/回放工具最终被功能和灵活性更强的测试脚本工具代替。后来,一种新的自动化测试产品出现了。它可以减少实现和维护的成本,使测试人员可以把精力集中在应用程序的测试用例设计上,而不是开发我们的测试。这些工具提供预先写好的测试框架,可以极大的减少,甚至消除学习和使用脚本语言的需要。这个测试产品就是自动化测试框架。

自动化测试框架定义了由假设、概念和制定工作平台或为自动化测试提供支持的实践组成的集合[1]。它能有效地弥补单一依靠测试工具所带来地一些缺陷。自动化测试小组可以考虑吸收几种测试框架的优点,设计适合自己团队的混合型测试框架。不是依赖某一种捕获――回放的自动化测试工具。

基于GUI的捕获回放工具都有维护性差的缺陷。因为GUI经常根据功能变更或者其他需求而改变,当GUI有重大变化时,会导致自动化测试中断,结果需要手工的干预或全部重新返工。因此更好的方案是引入自动化框架。

自动化测试框架为支持自动化软件测试设计了平台架构和最佳的实践经验。主要有4种基本框架结构类型[2]:脚本模块化架构,测试库架构,关键词或表格驱动架构,数据驱动架构。

1) 脚本模块化框架创建代表AUT基本模块和功能的底层脚本。然后以一种层次关系组合这些小脚本,实现一个特定的测试用例。

2) 测试库框架和测试脚本模块化框架非常相似,但是底层由过程和函数组成,而不是脚本。这种框架要求创建库文件(如SQABasic libraries, APIs, DLLs等等)代表AUT的模块和功能。这些库文件被测试用例脚本直接调用。每步的指令操作都在表格中维护。

3) 关键词驱动或表格驱动测试框架是一种独立于应用程序的自动化框架,这种框架要求开发数据表和关键字,不依赖于运行的自动化工具和脚本。关键词驱动测试看上去与手工测试用例非常相似。在关键词测试里,应用程序的功能特性和每步的指令操作都在表格中维护。

4) 数据驱动测试框架是从数据文件中读取输入和输出数值并载入到捕获的或手工编码的脚本变量里的框架。这种框架和表格驱动测试有些相似,脚本只是一种“驱动器”(driver )或传送数据的机制,不同的是导航的数据不包含在数据文件中,而只包含有测试数据。

测试框架是用来执行测试的总体环境,其中的核心是一种自动化工具。本文主要介绍一种数据驱动的自动化测试框架WAF,对自动化测试的实施做出尝试,并对该框架模型做出一些改进。

自动化测试框架WAF是作为一个模块来设计和实现的,属于即插即用的构架,是一种数据驱动的软件自动化测试框架。当测试系统,测试数据和测试次序改变时不需要修改代码[3]。数据驱动引擎被设计并实现来支持现有模块的复用。只需要改变配置文件,测试用例表以及数据文件就可以实现当测试系统,数据和测试的次序改变时,不再需要改变其他的程序和函数等;通过实现新增模块的功能就可以引入新的测试或者新的验证行为。新的模块一旦创建就可以被应用,只需要对数据驱动引擎的头文件做些许的修改即可使用这些功能。

如同图1描述的那样,框架本身由WAF主程序,配置文件,WAF GUI映射,数据驱动引擎,测试用例或者测试组合(XML file),以及功能函数所定义。

2 WAF结构组成

2.1 主程序

当运行一个用WAF来开发的测试件(testware)时,主程序首先被调用执行。它根据对配置文件的解析结果来确定运行什么测试组合或测试用例,同时触发数据驱动引擎来解析测试用例文件,并根据解析结果来调用相应的数据文件同时触发相应的功能函数来执行测试。

2.2 数据驱动脚本

数据驱动脚本就是那些和应用程序相关联的脚本。这些脚本通过录制或手工编写成自动化工具私有的语言,然后对其中的变量赋予合适的数值,作为测试数据的输入[4]。这些变量作为一些关键应用程序输入的媒介,使脚本能通过外部的数据来驱动应用程序。

1) 可变数据,硬编码组件标志

这些数据驱动的脚本经常包含硬编码的数据,有时是一些窗口组件中非常脆弱的识别字符串。出现这种情况时,脚本很容易由于程序的更改而失去作用,而且这种情况并不是个别现象。

2) 高度技术化的、重复的测试设计

数据驱动脚本的另一个共同特点就是,所有在测试设计上所作的努力最终都体现在自动化工具的脚本语言中,或者复制到手工和自动化测试脚本中。

2.3 模块

WAF中的模块包括框架以及公共模块,专业模块,产品特定的模块。框架和公共模块包含一些框架和公共函数,例如数据驱动引擎。而产品特定的模块包括测试待测产品或应用所需要调用的功能函数。专业模块则包括处理特定的功能或者协议所需要的支持函数这些功能模块都放在函数库lib中[5]。

2.4WAF GUI映射

自动化测试工具录制应用程序中的每一个对象,并给每个对象命名来识别各对象,这个逻辑名能被修改,将其用在测试表中,测试工具使用他们来识别对象, GUI映射可由自动化测试工具自动产生。

2.5 测试数据

数据驱动测试是一种数据被包含在输入测试数据文件中,并且数据控制自动化测试脚本执行的流程和动作的测试。测试数据记录以文档的形式包含在输入文件中,输入文件包含测试数据和控制数据。测试数据进行必要的各种类型的测试,而控制数据引导测试脚本到达合适的位置并指示要执行的动作。测试数据是特定测试产品和测试组合的测试数据[6]。对于不同产品测试数据是不一样的。譬如对于文件传送功能的测试数据则表现为各种类型的文件。

2.6 测试用例

测试数据定义测试状态的初始化,测试步骤,应用在每一步中的测试数据以及其预期结果,是一个基本的测试单元[7]。测试组合是一个测试用例的集合,被指定来完成一个特定的测试目标。它可以被设计来测试一个函数,一个模块,或者是执行一个类型的测试,例如验收测试(Release Acceptance Test )。

在WAF框架模型中,测试数据是以标签的形式存放在XML文件中,每个标签对应一个测试数据,这样在一个独立的XML文件中可以对应多个测试用例,可以将XML文件看成是多个测试用例的集合。下面是对于一个XML文件的描述:

……….

//以标签的形式存放测试数据

测试数据1

测试数据2

………..

测试数据n

……………..

2.7 测试件配置文件

TESTWARE配置文件记录执行测试件(testware)的一些基本配置项。包括文件目录,数据目录,测试组合目录,log目录以及一些服务的配置等。

2.8 测试结果

WAF在执行完一个测试后产生三种类型的测试结果,日志文件,报告和相应的测试过程数据。

2.9 利用WAF进行自动化测试开发流程

运行一个使用WAF开发的TESTWARE时,主程序被执行。它初始化测试环境,解析配置文件,启动数据驱动引擎(Data-driven engine)。

进行测试时数据驱动引擎调用XML文件,解析文件中的标签,通过资源定位符定位到XML文件中的设计好的测试用例(或者测试组合),根据解析的结果调用函数库中相应的功能函数(lib),并通过测试数据来对相应的应用程序执行测试。最后将测试结果返回给主程序输出。

3WAF在软件测试应用中的实现

当决定把数据驱动的自动化测试框架应用于一个具体的项目,首先要确定所有的testWare的一个目录结构。编写main程序来初始化环境,解析配置文件,启动测试引擎。抽象具体项目需要的Action,编制功能函数,放到lib函数库中。组织测试用例,准备测试数据。当所有的准备工作做完后,设置配置文件,运行测试,最后到result目录查看测试结果。

这就是把WAF应用到一个具体的项目测试的过程。

3.1 TestWare目录结构

TestWare的目录结构对于框架来说是很关键的。每一个目录都有自己的意义而且必须被遵从来向其中加入新的功能。目录结构包括以下部分。

BIN:包括主程序(main),启动(launch)脚本和测试配置文件。这是WAF的主要接口。TestConfig.ini文件用来定制和建立测试件(testWare)。启动脚本用来启动测试件(TestWare)。

Testdata:这个目录包括所有的在测试表中使用的测试数据。针对不同的测试软件存放各自的测试数据,比如各种文件等。

Lib:这个目录包括testWare的模块。不仅包括WAF框架的模块还包被测软件的特定模块。

Default config:产品的内部架构和设计被定一语这个目录文件中。被测试软件的配置文件被存放在这个目录下。

Testsuites:这个目录包括所有的测试表。这些测试表以树形结构来组织。

3.2 编写功能函数和组织测试组合/测试用例

lib函数库目录下不仅包括WAF公用的函数还包括产品特定的功能函数。数据驱动引擎的代码也保存在lib中。实现数据驱动引擎的代码包括解析测试表,运行测试用例,访问测试数据,返回测试结果等[8]。

3.3 组织测试数据

图2详细的显示了测试数据的组织。在被测软件的testware中,所有的测试数据都存放在一个特定的目录testdata下。在testdata目录下,测试数据分别存放在相对应的目录下,然后在testware配置文件的相应配置项中置上测试数据所在的目录即可。

3.4 检查测试结果

TestWare会把测试的全部结果结束按照测试执行的时间输出到testWare/results目录中。图3是一个测试结果的索引,它列出了所执行的所有测试。

点击相应的测试用例,就会打开具体的测试用例的执行情况,是成功还是失败(success/fail),以及每个测试步的执行结果是成功还是失败,如下图4所示。一旦测试执行失败,可以定位到具体的测试步骤。

3.5 WAF的优点

跟当前主流的测试工具相比,WAF具有以下优点[9]:

1) 实现了数据与脚本的分离。使得脚本的维护变得简单而方便。框架的重用性得到提高,能减少测试成本;

2) 使测试自动化而无需额外技术支持,减少测试人员学习自动化测试的时间;

3) 可以根据需要指定测试计划,测试表容易创建且维护简单,且简单的表结构重用性高;

4) 不必等到产品稳定以后才开始自动化测试。可以尽早的进行自动化测试,节约大量的手工测试的时间;

5) 测试人员不需要知道测试工具实现的细节,只需要和表打交道和执行自动化脚本;

6) 配置项从脚本中分离使得易于实现平台的转换,测试的移植。

4 工作总结

本文中主要介绍了自动化软件测试技术,核心部分在于提出应用软件自动化测试框架实现软件自动化测试。以某软件作为应用背景提出一个适合该软件自动化测试的基于关键字和数据驱动的自动化测试框架。并将该框架模型应用于软件开发过程中的软件自动化测试。

这是一个最新的也是比较热门的发展方向。自动化测试中的自动化测试框架的研究也称为一个新的发展趋势。

现在,己经有一些商业化的自动化测试框架。在大多数情况下,他们和已有的商业化测试工具捆绑在一起。他们的主要不同点在于他们的底层的执行引擎或脚本库,是被映射到关键字,窗口还是对象或类,这也是将来自动化测试框架发展的几个趋势。关键字驱动的测试引擎已经实现,接下来,窗口引擎,对象引擎和类引擎等底层引擎的实现将会是商业化自动化测试框架的主要研究方向。

参考文献:

[1] Pressman R S.软件工程实践者的研究方法[M].北京:机械工业出版社,2002.

[2] Berard E V.Essay on Object-Oriented SoftWare Engineering[M].Addison Wesley,1993.

[3] Zeyu J,Gao H S,Tsao J,et al.Testing and Quality Assurance for Component-Based Software[M].London:Artech House,2003.

[4] Dustin E.软件自动化测试:引入,管理大与实施[M].于秀山,胡兢玉,译.北京:电子工业出版社,2003.

[5] 严少清,陈革,万年红.软件测试自动化管理系统的设计与实现[J].计算机工程,2002,28(9):152-154.

[6] Beydeda S,Gruhn V.State of the art in testing components[C].Dallas,TX,USA:Proc of the 3rd International Conference on Quality Software,2003.

[7] Maurer P M.The design and implementation of a grammar-based data generator[J].Software Practice & Experiencies,1992,23(3):233-244.

[8] 冯玉才,唐艳,周淳.关键字驱动自动化测试的原理和实现[J].计算机应用,2004(7).

[9] 金大海.数据驱动自动化测试方法研究[J].装甲兵工程学院学报,2004(2).

第4篇

中国IT外包市场真正开始于1998年。经过8年的发展,该市场已经成为最受中国IT服务业青睐的市场。尽管按照西方的标准来看,目前这个市场规模并不大,但其发展潜力却十分巨大。

对于IT企业来说,项目管理是企业发展的基本功,是IT企业管理的重点。然而,软件外包项目管理又是其重中之重。国内有些软件企业虽然很早就开始实施外包项目管理,但其项目的按计划完成率也不过70%左右。许多企业的项目规模已经发展到几千万、上亿元,但在管理上面临的挑战也日益严峻。

企业外包项目可以弥补企业的不足,发挥企业的比较优势,加快企业的发展,转移企业项目开发风险等等,对IT企业做大做强起着至关重要的作用。

国内IT企业软件外包的现状

目前,国内IT企业均将软件战略作为发展的重点战略,同时软件外包,已悄然成为产业界的一种时尚。据Gartner研究公司预测,在2007年到2010年期间,中国将成为世界上最大的外包市场。据去年的数据报告,各国发包量中美国发包量1100亿美元;日本发包量337亿美元;印度软件出口77亿美元;中国软件出口8亿美元。因此目前国内一些大的软件开发公司都在尝试做外包。

据分析家预测,到2006年中国将成为世界第三大信息产业市场,2015年则会跃居全球首位。由此可见,外包市场潜力巨大,不仅是规模大,而且稳定,利润空间也更加丰厚。就软件业来说,中国拥有巨大的软件市场,是世界公认的软件开发资源,这无疑是国内IT企业发展的契机。

但是现实的情景却并非如此美好。现阶段中国的软件外包还处在初始阶段,有很多薄弱的方面,比如软件外包运作不成熟,因为外语的约束太大而使沟通不畅,项目管理水平落后,缺乏软件测试的质量管理经验,不熟悉国外软件开发和测试的管理模式等等。这些方面均制约着中国IT外包企业的发展。

以软件测试的外包为例,软件测试外包不同于软件本地化外包,软件测试是一类灵活的抽象的不太好衡量的服务,而且其质量控制、安全保密、双方沟通等要求更高,所以,就目前国内软件的项目管理水平,很少有企业能把这种包用固定价格合同的形式接过来做成功。因此,目前很多公司接到的像微软、IBM、HP、NEC、东芝等这些大型国际外企的包,都是以“包工制”的形式进行合作,即以实际工作日来付费。

外包项目管理的建议

我国企业有丰富的项目管理经验,但是目前我们国内的IT企业,特别是软件企业,在外包项目这个特殊的“蛋糕”上,有些技能需要改善。主要体现在质量控制、时间进度控制、成本控制等方面。集中起来说主要有三个方面:

一是人才方面,包括人才的能力、技能、实践经验以及通讯、交流的能力,还包括有人力资源方面的培训、人才储备的能力;

二是项目管理方面,包括项目管理的技能、外包经验,团队的项目管理以及历史经验、质量、时效、成本等;

三是企业的基本情况的介绍,如文化、经济状况、信誉、品牌等。欧美国家非常重视信誉,中国企业在质量控制方面最主要解决的是交付期的问题,质量控制不规范就会使交付期延长。

一个外包的软件出口项目通常要配合国外的设计进行开发,但由于国内外软件企业在文化、管理上的差异较大,因此在管理方面,就不能完全采用一般项目管理的模式。现仅就笔者之见,给出建议如下:

软件外包要有自己的核心竞争力

对于中国企业来讲,外包项目不仅仅是带来巨大的商机,更重要的是它还加剧了竞争和考验。对于中国IT企业,“只有当自己无可挑剔的时候,我们才有机会站在别人面前”,企业只有练好自己的内功,建立自己的核心竞争力,才是国内企业在外包市场上的出路。

笔者认为,国内企业的不足属于一个阶段性的不足,首先,我们在成本上的一个劣势。我们的人员成本相对会比较低,但是管理成本相对却比较高,所以抵消了我们在产品成本上的优势。其次,要实现规模上的成长,但规模上的成长要求大量有经验的人才,必须有相应的体系建立起来并做其保障。最后,品牌上的不足。目前“中国”只是作为一个概念在外面被不断的重复,一些公司也会被关注,但不是象印度一些大公司那样有非常突出的成绩展示给外界,这是我们所欠缺的。

要赶上这个差距,企业就要建立起自己的核心竞争力:一是要看机遇,目前中国有着最好的市场机遇。另外就是要有“拿来主义”精神,也要有创新精神,两者结合起来,别人好的我们就要去学,不能妄自尊大。印度公司在管理的规范上,在做事经验上,比我们先走的那二十年确实不是白走的,而且他们也做了深厚的积累。我们只有加速度的去学习,甚至于可以用合作的方式,现在就看是我们学的快还是人家做得快。

抓住软件外包过程中的关键因素

在项目准备阶段,项目调研工作要尽可能地确定责任,在项目启动前,尽可能多地了解、熟悉系统设计、系统构架,然后签订一个详细的书面的和约,确定双方在项目开发中所承担的责任和义务,要让国外发包方分析、设计人员将设计结果的各个子项目的定义、规则、意义进行详尽的阐述,务必让项目组人员对整个项目的概况及具体实现细节有一个清楚的认识,然后再进入具体的项目实施阶段。

因此,对于外包项目的准备工作要比一般的项目做的更详细更全面更到位。

在查阅国内外参考文献后,笔者总结企业开展软件外包管理活动要点有很多。

举例来说,按照文档化的规范定义和规划子合同;按照文档化的规范,根据承包商完成工作的能力选择承包商;把与承包商签署的协议作为管理子合同的基础;评审和批准文档化的承包商软件开发计划;以软件开发计划为标准,跟踪软件开发过程;按照文档化的规范,对承包商的工作陈述、子合同条款、条件以及其他约定进行更改;双方的管理者一起执行定期的状态或协调评审。

其他需要注意的方面包括承包商参与定期技术评审和交流;按照文档化的规范在所选择的里程碑处进行正式评审,评价承包商的软件工程完成情况与结果;软件质量保证组按照文档化的规范监控承包商的软件质量保证活动。

IT企业软件外包应因地制宜

IT企业外包项目组织中存在很多差异,包括风格差异、工作方式差异、组织结构差异、文化差异等等。因此,我国IT企业要因地制宜,建立灵活地工作方式。

第一,建立自己的项目计划

纵然是外包项目,项目经理也需要亲自制定一个完整的项目计划,才能够知道整个项目的工作量、评估出跟外包商谈判项目的价格、确定好项目需要哪些技术人员、衡量外包商是否拥有充分的资源以及判断外包商所承诺的开发时间是否可行。

企业建立好项目计划,也应要求外包商在项目开始前提供一个完整开发计划。一些外包商为了避免繁琐的文书工作,往往会宣称合约签订前所提供的计划便是整个项目计划。外包商这样做只说明他们并没有一套完整的开发管理体系和项目管理的机制。任何一个称职的项目经理都应该了解这一点:合约谈判期间所制定的初步项目交付计划并不全面,需要根据项目的实际合约内容进一步进行修改,要补充上实际的工作量、资源的调派和需要的时间才能够成为一个可行的计划。

笔者认为项目经理在拿到外包商交来的项目计划后,要详细地跟本企业的计划进行比对和审核,从而了解外包商对整个项目的流程、内容、估计的工作量和资源的安排是否与项目本身的要求吻合。明显的差异需要及时澄清并建立共识。确认了外包商的项目计划后才能够正式地启动项目,开始对项目进行监控。

第二,关注进度评估

外包合约中必须明确规定外包商需要定期提供进度报告。很多项目的进度报告大部分都明确地说明已经完成哪些部分的工作、哪些工作还在进行中等等。而这些信息,基本上只能让管理层了解项目的概况,并不能让项目经理全面地把握项目的进度。

项目经理要了解项目有哪些工作还没有完成、需要多久才能完成、哪些工作还没有开始、是否能如期开始以及计划的资源有没有变动。要是这些答案跟原计划有差异,应该马上进行反思,深入了解还没有完成的工作以及没能按计划开始的主要原因,从而跟外包商进行探讨如何才能够把项目纳入正轨。

没有完成或者还没有开始的工作,是项目的致命伤,需要特别加以监控。

对外包商所提供的进度报告需要加以确认,才能够肯定所说的工作实际上是否如期完成,最理想的办法是在每一个程序模块完成后,要求外包商把有关程序的源代码列出,并把有关测试的结果打印出来,让技术人员和用户代表核对结果,确认外包商所说的工作已经完成。这确认的手续跟是否信任外包商完全是两回事。这么做只是要确认项目的进度已经按计划顺利完成,保证企业负责人能按时向企业老总等人汇报项目的准确进度

第三,验收要“如影随形”

外包项目最大的风险并不是在开发过程中,而是在开发完成后。很多外包项目往往在进行验收的过程中,才发现程序逻辑或者输入数据栏目的编辑范围出现问题,导致测试结果与实际所需不符,需要外包商进行大量修改而使项目延误。有时,外包商会抱怨,认为错不在他们。避免这类风险,最佳的办法是在开发的过程中,验收也同时进行,而不应等待开发完成后才进行验收。

第四,合理调配时间

管理一个外包开发项目,比内部开发更为复杂,需要建立更多的“里程碑”及时来监控项目的进度;需要更多的沟通与协调;更需要企业员工不断地配合外包商进度,提供所需的数据以供测试。这些都需要额外的时间来处理。

第5篇

关键词:信息检索;搜索引擎;索引

中图分类号:G252.7文献标识码:A 文章编号:1001-828X(2011)12-0269-01

一、国内外现状及其分析

在过去的20年中,信息检索领域得到了不断的发展和壮大。现在,有关信息检索的研究包括建模、文献分类和归类、系统构建、用户界面、数据可视化、信息过滤和查询语言等。虽然信息检索正在不断成熟,但是WEB的设计、定义、基本的数据模型并不能满足于人们对信息检索的需求,因此基于java的全文信息检索引擎框架系统的设计与开发的研究势在必行。

二、系统设计

1.设计思想和原则

(1)充分利用现有工作基础和成果,进行改进、提升和整合,避免重复建设。(2)模块之间关系尽量做到高内聚低耦合,通过定义一系列的接口和抽象类提高系统的可扩展性。(3)代码编写规范化,配有一定的注释,保证代码的重用性、可读性,可以进行快速的二次开发。

2.接口设计

本系统外部提供了简单的建立索引和搜索的API,但是内部的机制却是非常复杂的,通过调用这些API用户可以实现为文件建立索引并进行简单搜索的功能。系统主要的建立索引的API如下所示。

(1)FileIndexer:索引操作的入口。该类的Index(File)方法递归遍历文件系统目录中的并同时调用相应的解析器索引其中所有的文件。(2)Properties:该类将文件的扩展名映射到能够解析以这些扩展名为后缀的文件的DocumentHandler实现类上。(3)Analyzer:系统的文本分析器。本系统运用了其子类IK_CAnalyzer进行文本解析。

3.索引结构设计

本系统中最基础的概念是索引(index)、文档(document)、域(field)和项(term),索引包含了一个文档的序列。

(1)文档是一些域的序列。(2)域是一些项的序列。(3)项就是一个字串。

域的文本可能以逐字的非倒排的方式存储在索引中。而倒排过的域称为被索引过了。域也可能同时被存储和被索引。域的文本可能被分解许多项目而被索引,或者被用作一个项目进行索引。

FileIndexer类的Index(File file)方法递归遍历文件系统目录并同时调用相应的解析器索引其中所有的文件。

4.部分程序设计代码

本框架系统并不关心数据的来源,格式,甚至文件使用什么自然语言都没有关系,只要可以把它转换成文本格式。目前系统只能索引和搜索MSWord、PDF、纯文本文件、HTML格式的文件,随着框架的进一步丰富,将会有更多格式的文件可以被本系统索引。具体的建立索引和搜索的过程如下所示。

public static void main(String[] args)throws Exception{

if(args.length!=3)

{System.err.println

("USAGE:java"+FileIndexer.class.getName()

+"-propertiesFile"+"-fileToBeIndexed"+" -indexFileSaved");

System.exit(0);

}

Properties prop = new Properties();

prop.load(new

FileInputStream(args[0]));

fileIndexer.indexBuilder.setMaxFieldLength(2048);

long start = System.currentTimeMillis();

fileIndexer.index(file);

fileIndexer.close();

long end = System.currentTimeMillis();

System.out.println(end-start);

}

上述建立索引和搜索过程应用的是FileIndexer框架,这个框架存在一个很明显的缺陷:它基于文件扩展名是正确的前提之上,并且要求所有的文件都必须带有扩展名。

本文件的文件扩展名总是.txt,而不会是其他的扩张名;有假设MS Word文档文件扩展名一定为.doc等等。本系统包含了能处理如下类型输入文件的几个解析器:

(1)HTML、HTM;(2)PDF;(3)MS Word;(4)纯文本文件.txt。

所以如果遇到了现有的框架不能处理的文件类型,而你又需要对此类型的文件进行索引从而使之可以被搜索时,这时该去扩展这个框架。为了更准确地进行框架的扩展操作,请遵循以下的几个步骤:

(1)编写一个用于解析目标文件类型的解析器,并实现DocumentHandler接口。(2)在handler.properties文件中添加你的解析器类,将此类映射到对应的文件扩展名上。(3)用上例的所示的方法运行FileIndexer程序。

三、系统测试

软件测试是一项非常重要的工作。它在软件的整个生存期中占据重要的位置,对软件的运行具有极其重要的意义。

(1)测试用例一:

索引文件:Lucene:基于Java的全文检索引擎简介.htm。

文件大小:52KB。

提取索引项(Term)个数:401。

所用时间:1094milliseconds。

(2)测试用例二:

索引文件:Lucene:my_search.txt。

文件大小:5KB。

提取索引项(Term)个数:252。

所用时间:853milliseconds。

四、总结

由于时间仓促,在这次程序设计的过程中,本软件还有不完善的地方,这有待笔者以后继续完善,恳请各位同行提出批评改进意见。

参考文献:

[1]谭浩强.C程序设计(第二版)[M].清华大学出版社,1999:298-308.

第6篇

关键词:软件工程;教学设计;教学实践;SWEBOK

中图分类号:G642 文献标识码:B

文章编号:1672-5913 (2007) 20-0029-03

“软件工程”课程在国内的计算机科学与技术专业以及国际上2001年的计算机科学教学体系(IEEE CC2001)中都是不可或缺的核心专业知识课程,其主要内容也是2004年由IEEE-CS/ACM/AIS建议的计算科学教学体系的关键知识域(CC2004)。近年来,软件工程的知识已经成熟和系统化,足以构成一个专业的知识体系,在国内外大学的计算学科下面相继出现了“软件工程专业”。在这种情况下,传统的“软件工程”课程出现的新老问题更加凸显,急需高校、特别是我国普通高等院校探讨,尽快地提出解决问题的途径和办法。

1 “软件工程”的教学难点

“软件工程”课程的内容广博,涉及软件开发的基本概念、原理、过程、方法、技术、标准、管理和工具等广泛的技术与管理知识。作为一门课程,“软件工程”所包含的知识面面具到,却又难以深入。由于课程内容不如数学严谨,不如编程具体,不如数据库实用,不如图形学生动,加之学生基本上没有参与过大型软件开发的实践,这就使得学生难以在一个学期就深入理解软件工程中庞杂、抽象的内容。在传统的考试方式下,学生只能死记硬背,使得“软件工程”课程变成了“第二政治课”。此外,由于软件工程的理论和技术发展迅速,教材总是跟不上技术的发展;如果教师缺乏理论研究和实践经验,教学就变得更加困难。

自2002年起,“软件工程”在全国35所学校成为一个专业之后,庞大复杂的“软件工程”从一门课程变成了一系列课程,知识的传授相对容易起来。可是对其它专业而言,则又面临新的问题:如何在学时不变甚至减少的条件下,把一个专业的知识浓缩在一门课程中,完整而有效地传授给学生。

2 “软件工程”课程之管见

“软件工程”研究的是如何系统地构造软件的知识,是计算学科中唯一涉及管理学的课程,内容独特,不可或缺。2004年IEEE和ACM的联合公布的软件工程知识体系(SWEBOK04)将其内容概括为十个知识域,每个知识域又分若干子域,每个子域分为若干知识点,等等。SWEBOK04的出现标志着软件工程知识的成熟和一门专业的诞生。

笔者根据对软件工程的多年研究、对该课程的中英文教学,以及给二学位本科和研究生讲授“软件设计方法”、“组件开发技术”、“软件体系结构”、“软件项目管理”等相关课程的经历,认为根本不可能在一门课程中把软件工程的所有知识都让学生掌握!前人尝试的结果导致了无论是教材、还是教学,都只能是走马观花、蜻蜓点水,造成教与学的困惑。SWEBOK04及其教学指南提出了软件工程的基本知识范围,却没有明确规定教学的详细程度,允许灵活掌握。作为一门课程,我们应该、而且必须结合实际、面向需要,合理地取舍传授知识的寡众与深浅。

事实上,国内外的经典与新近出版的“软件工程”课程的教材基本上都可以覆盖要求的知识内容。但是,在选材的深度与广度、知识的更新以及组织方面有明显的侧重。以软件分析与设计为例,有些教材注重知识的全面性,把结构化方法与面向对象技术并重地讲解(如Pressman的最新版本,国防科大齐治昌、谭庆平和宁洪的教材);有些教材只讲最新颖、更实用的基于UML的面向对象建模方法(作者如Sommerville,清华大学的孙家广与刘强)。

我们认为,“软件工程”作为一门课程是计算学科的入门课,可以借鉴管理学科,将其称之为“软件工程导论”或“软件工程概论”。区分对待SWEBOK04中的知识点,确定出了解、理解和掌握等不同程度的教学要求。下面就结合实例介绍一个具体的教学设计和实施。

3 “软件工程”课程教学内容的一个设计

3.1背景

笔者所在大学是一所省属综合性大学,界于教学型与研究型大学之间,目前更偏重于教学型。毕业生多数在省内、特别是在青岛工作。自2003年起青岛市把软件列为优先发展产业,重点扶持软件外包、信息家电等产业领域。我校是全国35所成立了软件学院的院校之一,负责培养软件工程专业的本科学生。工程硕士的培养仍由笔者所在的信息工程学院负责。

我院最近5年的考研率在20%左右,大多数本科生毕业后面临就业问题。除升学与出国外,我院近80%学生的就业去向包括:软件企业、非软件企业、政府部门与事业单位、自谋职业等。只有在软件企业或者大型传统企业IT部门的毕业生从事软件开发,其它大多数计算机毕业生从事与软件开发无关的职业,如市场、销售、采购、管理等。为了满足社会需要,更好地为地方经济发展服务,我院经将计算机科学与技术分为3个方向供学生选择:软件技术与理论、嵌入式系统和网络工程。“软件工程”课程是所有专业方向的必修基础课。

3.2需求分析与教学内容的设计

在这些背景下,我们的“软件工程”课程的教学方针是:满足社会需求、面向学生未来;将课程定位为:全面地介绍软件工程学的基本知识,突出大型软件开发和管理的基本原理、方法和实用技术,满足计算学科对系统化软件构造知识的基本要求,同时成为学习软件工程专业的先导课程。课程名称也相应地改为“软件工程导论”;在满足软件工程知识点和学科体系的同时,根据市场需求,适当增减内容,把具体的实用技术讲深讲透,同时介绍前沿课题,提高学生的学习兴趣。

表1是我院“软件工程导论”课程的理论授课内容与课时安排(不含课程绪论与课堂练习、总结的4个学时),按照SWEBOK04提出的10个知识域进行了重新组织。由于选用的教材以及实际教学内容的组织与SWEBOK04的知识域并非完全一致,因而出现小数点学时。如“软件工程工具与方法”知识域,我们在授课章节介绍相关的软件工具,如在软件需求和设计中使用了ROSE和MS Visio;在讲解项目进度中示意了MS Project;在软件测试中提到了JUnit。此外,还按照教材集中地讲解了CASE概念与工具,补充了Eclipse以及最新的青鸟系统。

为便于对比,我们将“软件工程导论”的教学内容按照SWEBOK04的知识域计算出每个知识域所用学时占总课时的百分比;同时计算出SWEBOK04中10个知识域中的子知识域在整个子知识域中的百分比,如图1所示。

从图1可以看大:我们对产品工程的设计和测试讲授了更多的内容。相比于SWEBOK04,我们的设计部分超出一倍,软件测试的内容则多出三分之二。对于同样重要的需求分析则没有增加更多的内容,这主要是考虑到需求分析是超越初级软件工程师的知识,需要沟通技巧、领域知识和实践经验等综合知识与能力,属于系统分析员的职责,应届本科毕业生基本上达不到。对软件构造以及软件支持方面的知识(如软件配置管理)则缩减了学时,一个原因与所选教材有关。在软件质量方面,则补充了CMMI的过程改进及其结合TSP/PSP的内容,使得我们的学时略微高出。

在处理知识域时,我们遵循了“突出重点、面向实用”的指导思想,举例如下。我们在软件建模和测试方面加大了学时,以便学生掌握这两个领域的技术;同时减弱了对其它知识域的学习要求,只需要理解、甚至了解有关的知识。例如,我们在需求分析与设计中都讲解了结构化方法和面向对象方法,但是,所分配的时间差别巨大。对于结构化方法,主要介绍其基本思想、常用工具及其简单应用,如DFD图、数据字典、程序结构图、判定树、PDL等。对面向对象技术,则大大地扩充了选用教材的内容,加上相应的实验课程,共有近30学时,可以当作一个“基于UML的软件建模”的小型课程。目的是使学生认识到软件工程并非是空虚无物的条条框框,开发软件的工作在编程之外还有分析、设计和测试等。而且希望学生通过该导论课程实实在在地掌握一种当前常用的软件建模技术,以便能够在实际工作中尽快地熟练使用。图2示意了“软件工程导论”中对软件设计有关知识点分配学时的比例。

4实践与体会

教学内容的变更仅仅是改善教学质量的一个方面,还需要改变教学方式,举例如下。

例1:传授知识的过程要从日常生活到软件领域。在讲解过程改进时,我们以刘翔为例提出问题:刘翔身后的科研小组和上百万元的投资,包括摄像、动作分解和分析是为了什么?表面上看是为了改进跨栏和起跑的动作(软件开发过程),实质上最终是为了改进其跨栏成绩(软件产品)。从学生们比较熟悉、容易理解的事情开始,立刻就吸引了他们的注意力,进而简化了对软件过程及其改进的讲解。

例2:综合运用学过的知识。在讲开发高可信软件时,把容错技术与面向对象编程中异常处理的机制结合起来,加深了学生对容错技术的理解、对异常处理的认识;在介绍形式化技术时,通过演示断言在Java中的实现,使学生认识到这些看起来玄乎的理论正在逐步实现。

例3:不失时机地简单介绍相关的研究动向以及国内的相关工作,让学生了解软件工程学最新的理论研究,对少数优秀的学生指出钻研方向、提高研究兴趣。例如,我们在课堂上简介了最近三年中国首次主办的“软件工程国际大会”,“软件过程改进”和“软件工程理论”等国际高规格专业会议,包括其中的主题报告。

教学内容和教学方法的改进,极大地提高了学生的学习热情,成绩也显著提高。限于篇幅,我们在考试、课程设计以及实践教学方面的尝试不在本文讨论范围。

我们将继续搜集和分析不同专业方向的学生对该导论课程的反应,针对性地调整有关内容,以便更好地满足社会的需要,如针对嵌入式系统的软件开发,增加实时系统的分析与设计技术方面的知识。

参考文献

[1] 麦中凡. 解读SWEBOK 2004[J]. 计算机教育,2004,(10).

[2] Computing Curricula 2004.Overview Report. November 22, 2004, .

[3] Software Engineering 2004. CC 2004 Series, August 23, 2004, .

[4] 刘洪、舒坚、罗海平. 一般工科院校软件工程专业课程体系设置[A].大学计算机课程报告论坛论文集[C]. 北京:高等教育出版社,2006. 465-469.

作者简介

李劲华(1963―)男,博士,副教授,主要从事软件工程的教学与研究。

杨厚俊(1965―)男,硕士,副教授,分管教学副院长。

通信地址:青岛大学信息工程学院 266071

第7篇

时光如梭,转眼即逝,当毕业在即,校园生活和社会实践,有渴望、有追求、有成功也有失败,我孜孜不倦,不断地挑战自我,充实自己,为实现人生的价值打下坚实的基矗,大专毕业生自我鉴定范文。现回首三年学习生活,历历在目。

从刚跨入大专时的失落和迷茫,到现在即将毕业时的从容、坦然。面对未来,我知道,这又是我人生中的一大挑战。这除了有较强的适应力和乐观的生活态度外,更重要的是得益于大专三年的学习积累和技能的培养。

我自认为无愧于大专三年,刚入学时,我曾为没有直接成为大专生而懊丧过。但很快,我选择了坦然面对。因为我深信,是金子在任何地方都会发光。所以我确信,函授生的前途也会有光明、辉煌的一天。

因此我不断提炼自己。在社会实践方面,我不怕辛苦,不怕困难,积极参加学校的各种活动。参加校内的活动可以认识到更多的同学,也就增加了与其他同学交流和向其学习的机会,锻炼了自己的交际能力,学到别人的长处,认清自己的短处。这个世界上并不存在完美的人,每个人都有自己的优点、缺点,但关键是能否正视并利用它们。三年来,我不断的自我反省,改善自身不足之处,为祖国的优教事业贡献自己的热血与青春!

为人处世上,我坚持严于律已,宽以待人,若要人敬已,先要已敬人,良好的人际关系正是建立在理解与沟通基础之上的。由于待人热情诚恳,所以从小学到现在一直与同学和老师相处得很好,而且也很受周围同学的欢迎,与许多同学建立起深厚的友谊。在学习专业知识的同时,我更懂得了,考虑问题应周到全面,不能只顾着自己的利益和方便,而忽略了别人的感受。

一个人的一生,每一步都要自己去走,人生需要自己去探索,不是靠父母;人生必须做出无数次选择,每次决定都会给我带来一份收获、一种尊严,使我懂得去爱惜这段过程,爱惜自己的人生。

通过这三年的学习使我懂得了很多,从刚进学校时如张白纸的我,经历了许多挫折和坎坷。使我明白了一个道理,人生不可能存在一帆风顺的事,只有自己勇敢地面对人生中的每一个驿站,我们就能很精彩。当然,三年中的我,曾也悲伤过、失落过、苦恼过,委屈过,这缘由于我的不足和缺陷。但我有清醒地认识到自己的不足之处,也就是胆量不够。我不断尽力完善自我,不断总结经验。为日后我成为社会主义现代化建设的接班人打下了坚实的基础。

这三年中经历的每一天,都已在我心中留下了永久的印记,因为这些印记见证我的成长。三年的锻炼,给我仅是初步的经验积累,对于面对未来,迈向社会的我们来说是远远不够的。因此,面对过去,我无怨无悔,来到这里是一种明智的选择;面对现在,我努力拼搏;面对将来我期待更多的挑战。战胜困难,抓住每一个机遇,相信自己一定会演绎出精彩的一幕。

范文二

忙碌的大学生活就在悄然中过去了,但她已成为我人生美好记忆的一大部分。这些日子有成功的喜悦,有失败的彷徨。但却把我培养成了一个现代大学生,使我在各方面的综合素质都得到了提高,为以后的人生打下了坚实的基础。开辟了而一条属于我自己的道路。

在专业技能上,为适应社会发展的需求,我认真学习各种专业知识,发挥自己的特长;挖掘自身的潜力,结合每年的暑期社会实践机会,从而逐步提高了自己的学习能力和分析处理问题的能力以及一定的协调组织和管理能力。

在学习方面,我觉得大学生的首要任务还是学好基础知识,所以在学习上我踏踏实实,一点也不放松自己。我认为好的学习方法对学好知识很有帮助,所以在每次考试后,我都会总结一下学习经验。一份耕耘一分收获,每每看到自己优异的成绩,我就会对自己更有信心,没有什么事是不可能的。对于我们现代大学生来说,光光学好书本上的知识是远远不够的。

在社会实践上,我利用课余时间经常阅览各类的书籍,并参加了软件测试工程师的培训,成绩优秀。学习固然是学生的职业,这份职业同样需要有智慧、毅力和恒心。在当今这个快速发展的信息时代,我们只有不断汲取新知识,才不会落伍,才可能战胜自己。

第8篇

关键词:移动应用;软件开发;实训平台;专业技能;职业拓展

中图分类号:G710 文献标识码:A 文章编号:1005-1422(2013)09-0100-03

一、前言

计算机类专业是职业院校开设的重要专业类型,而软件技术及软件工程专业是计算机类专业其中一个专业,是目前市场需求最多的专业类型之一,也是职业院校高薪就业十大专业之一(来自麦可思《2013年中国大学生就业报告》就业蓝皮书)。然而,在职业院校软件技术及软件工程专业的人才培养以及就业过程中,存在两个问题:(1)相对于普通高校学生,职业院校的学生学习基础要低一些,增加一定的教学难度;(2)职业院校毕业学生就业以中小型企业为主,而我国的中小型企业普遍不提供入职技能培训,新员工均要求能够立即上岗[1]。所以,在软件技术及软件工程专业人才培养过程中,人才是否能满足市场需要是考核教育质量的核心指标,教学与实践相结合、理论教学与模拟场景甚至是生产环境实训相结合是提高教学质量的有效手段,软件技术及软件工程具有很强的系统性、技术含量高、技术更新快,因此在教学当中既要注重专业基础理论的教学,又要把握行业技术发展的方向、加强学生实践技能的培养,很有必要建立高度仿真的实训系统,来实现软件开发与管理业务中的各个岗位职业一系列技能的训练,从而达到毕业即可上岗的人才培养目标。

软件开发实训平台的建设,国家教育部有相关的规定和要求,早在2007年教育部办公厅就印发了《中等职业教育数控技术应用等四个专业实训基地设备基本配置推荐标准》的通知【教职成厅〔2007〕5号】,其中对计算机应用与软件技术专业的软件开发培养方向的实训提供了基本配置推荐标准,文件还说明了计算机软件开发方向的软件测试实训室所涵盖的实训内容:(1)软件开发环境配置;(2)应用程序开发;(3)Web站点维护;(4)数据库建立及维护;(5)测试工具的应用;(6)软件测试;(7)测试文档编写。

二、平台概述

在移动应用开发领域中,已经形成了三大主流平台:(1)谷歌(Google)的Android开发平台,采用Java语言,(2)苹果(Apple)的iOS开发平台,采用Objective-C语言,(3)微软的Windows Phone开发平台,以C#语言为主要编程语言。其中微软移动开发平台因为其完整的工具软件体系、优良的本地化和用户体验、丰富的学习文档、较低的技术门槛能、广泛的市场需求、以及对WEB应用程序与桌面应用程序开发的全覆盖等众多特性,相对其他两个开发平台来说,更适合职业院校学生学习。所以,大多数职业院校把微软移动应用开发平台作为实训的首选平台。

微软移动应用开发实训平台由四大部分组成:微软开发平台、课程资源与培训、校企合作备忘录和体验中心,如图1所示。

(一)体验中心包括由XBOX/Kinect及大屏幕组成的体感互动体验系统、Windows 8触屏笔记本、Windows Phone手机、Surface Pro平板组成的体验环境,主要用来体验微软的一些新技术和展示和试用实训教学中师生开发的应用程序。

(二)课程资源与培训是微软提供的系统化的软件开发相关的国际精品课程以及对师资知识结构的更新培训;

(三)校企合作备忘录是由微软协助提供的同软件企业的合作方案建议,包括企业提供真实案例、师生作品向企业推荐、顶岗实习等合作项目;

(四)微软开发平台是微软移动应用开发实训平台的核心,由5个模块组成:

1.实训平台基础模块,是指构建开发平台的客户端及服务器的基础软件环境,由Windows Server 2012、SQL Server 2012、System Center 2012、Windows Professional 8等系统软件将若干台物理服务器采用云计算架构和虚拟化技术组成一个资源池,面向师生提供统一的开发环境虚拟机、个人存储以及开发实训所用到的各种虚拟服务器,如Team Foundation Server等。

2.分析设计模块,由Office Professional Plus 2013和Visio Professional 2013组成,实现需求文档、数据库物理模型、OOD/OOP模型等的分析和设计。

3.应用开发模块,主要由Team Foundation Server 2012和Visual Studio Ultimate/ Professional组成,实现软件开发过程中的设计、编码、测试和部署的程序开发工作。

4.应用软件生命周期管理模块,主要由Visual Studio Team Foundation Server 2012组成,用来实现工程项目管理、团队协作、开发文档管理、代码版本配置管理、测试管理和部署管理,提供了覆盖软件开发流程中的主要工作岗位的功能集合。

5.项目管理模块,由Project Server 2013与Project Professional 2013组成,用于对软件开发项目进行全面管理,包括任务管理,资源(时间、人力、设备场地等)管理,以及进度、计划、沟通、调度与风险管理等。

通过微软移动应用开发实训平台,可以实现移动应用开发领域中从专业技能训练到实际生产工作的完整的工作流程、全方位角色以及校企互动的实训教学;同时还可以将Project Server 2013应用与教学过程当中,通过对教学过程的分解、任务分配、任务指引和实训考核,能够方便地实现基于工作过程指引的教学模式[2],以获得更好地教学效果。

三、教学应用

移动应用开发实训教学的目的是让学生从整体上理解软件开发流程及相关概念,通过系统化的软件开发课程掌握软件开发的基本技能,通过对工具软件的应用训练使学生能够掌握软件开发环境的组建、熟悉开发环境中常用工具软件的使用方法,通过基于应用软件生命周期管理软件的指引教学使学生能够掌握软件开发流程中各个主要岗位的工作内容和相关技能,通过对真实Windows Phone移动应用程项目的开发实训使学生能够掌握移动应用开发完整的开发模式和应用程序商店(App Store)流程,通过项目管理实训教学能够提高学生团队合作精神以及从更高的层面发现、分析和解决问题的能力。进而使学生工作能力能够达到准生产环境水平,实现毕业就上岗的高水平就业能力以及未来职业拓展能力。

微软移动应用开发实训平台本质上是微软Windows平台上统一的软件开发实训平台,涵盖了控制台程序、桌面应用程序、 WEB应用程序、WPF/Silverlight应用程序、Windows Phone移动应用程序以及应用软件生命周期管理,可以结合各个学校的实际情况开发出符合学校自身特点的实训教学应用。在基于移动应用开发实训方面,以东莞理工学校为例,见图2,主要有以下几个方面:

1.基本技能训练。在学生具备基本的程序设计基础知识后,就可以进行软件开发的基本技能训练,分为三部分:

第一部分是通过简单的控制台程序或桌面应用程序实训让学生掌握程序设计的基本技能,如Visual 工具的使用,程序代码的编写、调试、运行方法;通过一些简单有趣的小程序来理解、强化和印证前面所学的数据结构知识,逐步掌握编程语言C#的语法并能熟练使用。

第二部分是WEB应用程序开发实训,如小型的WEB网站、简单的WEB应用管理程序,通过从创建WEB APP工程项目、页面设计和组织、页面跳转、业务处理代码编写到WEB应用程、部署和运行的实训教学,让学生理解WEB应用程序的工作模式和执行原理、掌握WEB应用程序工程项目的组织结构和维护、掌握应用程序的设计方法和WEB控件的使用。

第三部分是移动应用程序的开发实训,主要是通过简单、实用有趣的程序案例,让学生掌握基于Windows Phone 8的应用程序的开发流程,重点是了解和掌握Windows Phone 8应用程序的组织结构、设计模式、执行原理以及到应用程序商店(App Store)的流程。

2.移动应用专项技能训练。移动应用专项技能训练主要是培养学生使用软件技术解决实际问题的能力,通过专项训练掌握对业界流行的技术和未来即将流行的技术,并能够综合运用来实现企业业务需求。

3.多工作岗位技能训练。现代软件开发是一项多人协作参与的工作,随着工业化程度的提高,开发过程日益规范化、标准化和流程化,分工也更加细致和明确,逐渐形成需求分析、系统设计、程序编码、测试管理、系统运维、配置管理、文档管理、项目管理等一系列分工明确的工作岗位,在微软移动应用开发实训平台中,通过Team Foundation Server和Visual 工具可以实现上述工作岗位的模拟实训,老师可以把学生分成多个项目小组,每个小组进行不同的项目开发,每个学生可以参加多个小组并担任不同的岗位角色,履行相应的工作职责,使学生可以在每个工作岗位得到锻炼,而不仅仅是程序编码。

4.项目管理技能训练。在软件开发行业中,项目管理是软件开发从业人员职业拓展的主要途径之一,也是是打通职业“上升通道”的渠道之一,软件开发人员在获得一定经验和能力,通常成为项目主管或项目经理,成为技术型管理人员,然后逐步向更高的职位发展。在项目管理中,项目管理人员面对不仅仅是技术问题,更多的是项目干系人之间的协调,以及项目的进度、成本、质量、风险、沟通管理等非技术问题。

四、注意事项

微软移动应用开发实训平台是一套完善而实用的实训平台,为了使实训平台发挥出更大的价值,学校以及教师应该注意以下事项:

1.作为企业,其主要目的是生产并盈利,所以,我们应该主动积极地与合作企业进行沟通,并且要走向社会,寻求更多的企业合作,了解行业动态和技术发展方向,加强学校教学与企业生产之间的互动,获取更多真实教学案例甚至项目外包。

2.及时更新知识结构与课程体系。专业教师必须及时更新自己的知识结构,不断重构教材和课程内容,及时了解并掌握新的应用技术,并运用到实训教学当中,这样培养出来的学生才不至于脱离社会需求。

3.加强实训平台管理。移动应用开发实训平台在学校应用当中有三个特点:(1)使用率高,进度重叠率高,(2)学生更替快,(3)系统升级快。所以需要加强管理,首选,要建立学期实训计划项目清单,包括实训班级、实训阶段、实训项目及案例资源等;其次,对于毕业学生要及时对其空间进行清理,对其中的优秀项目进行整理归档;最后,对实训平台中的重要系统如SDK要及时升级,以便能够进行新技术的实训教学。

4.对于一些重要的实训项目要保证一定数量的重复案例,根据学习理论,重复原则有效提高学习效果,在实训过程中,学生会做但不一定掌握,有时候是依葫芦画瓢,并没有理解,需要通过多次类似的案例重复训练才能达到预期的效果。

五、应用总结

在移动应用开发实训教学当中,不管是采用微软移动应用开发实训平台还是其他的移动应用开发实训平台,技能训练都一定要结合行业需求,基本技能训练要扎实、专项技能训练要强化、同时还要注意培养学生职业拓展能力和职业素养,加强学校师生与企业、与行业、与社会的互动,这才是移动应用开发实训平台在教学应用中的根本所在。

参考文献:

[1]徐愉吟.职业院校毕业生就业困难的原因分析及指导对策[J].考试周刊.2009,(26).

第9篇

关键词:毕业实习;企业实训;软件学院;高等教育

1背景

毕业实习是软件学院本科教学计划中十分重要的实践性教学环节,是理论联系实际,对学生进行专业技能训练,培养其实践动手能力的重要课程。认真抓好毕业实习工作,提高毕业实习质量,是提高学生专业素质的关键环节[1]。

2003年11月广东省教育厅发出的《关于试办省级示范性软件学院的通知》[2]中指出,在软件学院的发展过程中,建设一批能够培养大量具有竞争能力的实用型软件技术人才的基地,面向企业,产学研结合,为普通高校培养本科层次软件技术应用型人才起示范作用,并以此推动高等教育人才培养模式和办学体制、管理体制以及运行机制的创新。在该通知精神的指导下,针对软件学院毕业实习的特点,我院与IT实训企业合作,探索出校企联合进行企业实训的一种实习模式。近年我院的毕业实习按照这种新模式有序地进行,从以往软件学院本科毕业设计考核以及就业情况来看,取得了良好的效果。

2毕业实习存在的主要问题

软件学院本科毕业实习在软件工程专业教学体系中是一个非常重要的环节,各高校对这一环节也非常重视,采取了一系列相应的措施、计划以保证毕业实习教学目的的达标[3-6]。我校四年制软件学院本科毕业实习的教学计划一般安排在第六学期结束以后,为期三个月。实习内容主要是安排学生到与专业密切相关的企业去,强化课程理论知识和开发技术体系,参与企业项目开发流程,综合运用所学知识进行实际开发工作,做到理论联系实际,为毕业设计和走上工作岗位做好充足的知识准备和思想准备。根据以往我院本科毕业实习的实际情况,我们对毕业实习面临的主要问题进行综合分析,总结出在毕业实习的计划实施过程中,还存在着很多亟待解决的问题。

(1) 软件实践教育方向模糊。软件实践教育的方向应该是面向就业技能培养和综合素质塑造。但是,学生在大学前三年中,大部分学习内容都以理论知识为主,实践锻炼较少,这种情况导致学生理论和实践脱节。当前,软件实践教育的主要实施方案是在开设理论课程的同时,安排学生进行上机实验,而上机实验的内容和层次与软件行业的实时发展不相匹配,实践教育方向不明确。这种模糊的教育方向导致学生在毕业实训时因理论知识和实践应用差距太大而感到实训和工作压力过大。

(2) 理论课程设置与软件行业发展需求不匹配。软件行业应用的快速发展,使得软件技术日新月异。这些新技术和新知识的出现,能够更好地适应软件行业的应用复杂性和专业性,而高校软件学院理论课程设置不能尽快适应这种变化,导致学生所学专业知识和技能不能直接应用于毕业实训和工作中。

(3) 师资力量跟不上教学计划要求。软件学院的教学内容需要紧跟软件行业的发展,当前高校软件学院的师资大多数都是教学科研型人才,缺乏软件行业企业的开发、设计和管理知识经验。这种情况导致学生所学专业知识与实际工作需要差距较大。

(4) 实习教学计划与就业导向脱离。软件学院的毕业实习一般都是以理论知识为基础,以项目开发案例作为实践内容,这样的实习教学计划事实上是本科教学的重复和再现。而且,在毕业实习的计划中,与就业导向有关的内容如工作前景分析、公司应聘面试和软件企业文化熏陶等环节几乎没有。

(5) 学生参加企业实习的目的性不强。企业实习的目的有两个,一是将学生大学期间所学的理论知识转化为实践经验;二是将实习经历转化为工作积累。所以企业实习最终是要解决学生的就业问题,使学生毕业后能立即全面地投入到工作中。但是,在企业实习的过程中,很多学校的实习内容并未直接导向就业,目的性不强。

(6) 校企合作的力度和深度不够。毕业实习一般都是大三结束后安排学生去企业实训,在此之前学校和企业的沟通力度不够,未能即时根据学生自身情况和就业需求调整毕业实习计划,致使实训内容滞后单调,而且在学生毕业实习的过程中,由于对实习的目的不明确,学生实习内容的深度和广度往往不够。

以上这些问题是软件学院毕业实习计划和实施过程中必须得到合理解决的问题。如果不能合理解决这些问题,毕业实习就失去了作用和意义。

3企业实训模式探讨

毕业实习是软件学院本科毕业生的必修课,如何让学生通过毕业实习取得应有效果,毕业实习的模式是关键[7-8]。根据CC2005课程体系设置和当前毕业实习面临的主要问题,我院在毕业实习模式的设置过程中采取了以下相应措施,逐渐形成了一种主要以企业实训作为毕业实习内容的模式。在该模式的具体实施过程中,采用不同措施来解决毕业实习面临的主要问题,收到了良好的成效。

(1) 学校和企业共同加强师资力量建设。软件工程专业的课程设置必须紧跟软件行业的实时发展,学校需要加强软件工程专业师资力量,选送教师去软件企业或软件培训机构进行知识和技能培训,鼓励教师进行高新软件技术的学习、开发和研究工作。实训企业根据当年毕业实习的内容,安排具有相应理论教学资格和软件开发经验的工程师作为教师,教授毕业实习的理论基础知识和指导学生的毕业实训工作。

(2) 学校和实训企业签订长期合作协议。为了使企业实训能贯穿学生的四年本科学习,学校和企业在学生大学一年级就开始执行合作协议,形成“3+1”的人才培养模式,即三年的学校学习加一年的毕业实习。这种长期的合作协议使学校和实训企业可以共同承担人才培养风险,实现经济和社会效益共享。

(3) 学校和企业共同制订理论教学及毕业实习计划。按照CC2005课程体系结构和软件行业发展实际需求,学校和企业共同调整理论教学计划和企业实训计划,使学生在校期间所学的理论知识能更好地适应社会需要。

(4) 学校和企业共同确定毕业实训内容。根据软件行业的实时发展情况,校企双方共同确定毕业实训内容,明确毕业实习目标,使学生在毕业实习过程中学到用到的知识能够紧跟软件行业的发展,并能将其直接应用到毕业后的工作岗位中。

(5) 学校和企业共同指导学生就业。毕业实习的最终目的是导向就业,所以学校与实训企业在合作协议及毕业实习内容中应对就业问题进行协定。校企合作协议约定:根据学生毕业实习的任务和方向,推荐学生去对口企业就业,口头签约率需要达到一定标准。这样企业在学生实训过程中存在一定压力,才能够更好地服务于学生实训。而且,学校和企业可以根据软件行业发展实时调整实训内容,紧跟软件行业的工作岗位需要,直接导向就业。

4企业实训实例

我院毕业实习以企业实训为主,建立了北京和成都两个企业实训基地。在我院探索出的企业实训的模式下,实习过程从内容到形式都较以往发生了较大变化。实习内容由学校专业教师与实习单位根据学生课程学习规划和企业开发项目共同商讨、研究而决定;实习组织由学院教师在统一计划指导下有序进行;实习指导以实习单位高级技术人员为主、以学校专业课教师为辅共同承担。下面以我院2008年本科毕业实习为例,说明企业实训的计划和实施过程。

(1) 实训目标。

熟练使用Java或者C#编程语言,掌握基于B/S构架的应用服务器软件的安装、配置、管理和开发。掌握J2EE或者.NET软件开发体系架构,能独立根据客户需求完成企业中小型软件设计解决方案。掌握主流软件企业常用开发建模工具和设计模式;深入研究和熟练掌握职业技能岗位技术要求。掌握现代IT企业软件开发的规范和标准,熟悉软件项目开发立项、分析、设计、编码、测试、部署、结项等完整规范流程。在项目实训中养成良好的表达、沟通、协调能力,感受企业文化,体验团队合作精神。掌握快速学习新知识、新技术方法,培养良好的分析问题和解决问题的能力。掌握笔试、面试技巧,并逐渐形成适合自己的职业发展道路。

(2) 实训特点。

实训过程分为4个阶段:第一阶段――案例分析/项目过程体验(2周);第二阶段――专项技能训练/开发环境熟悉(2周);第三阶段――项目实战/技术综合规范应用(4周);第四阶段――探索性软件项目实践/毕业设计课题软件项目开发(5周)。实训过程循序渐进,由易到难,由浅到深,使学生能更好进入角色、接受知识。

在案例分析/项目过程体验阶段,通过一个完整的项目案例贯穿软件工程的各个阶段,使学生对软件工程项目的全部过程有一个清晰的认识,并通过一个完整的项目开发团队,使学生切身感受软件开发的全过程,了解现代软件企业开发需要具备的基本开发技能。

在专项技能训练/开发环境熟悉阶段,通过项目案例分解演示,使学生深刻理解项目中各个角色的工作职责和岗位技能要求,通过项目实践专项强化各个角色岗位职业技能,使学生以自己特有的角色积累软件工程项目实战经验。

在项目实战/技术综合规范应用阶段,通过项目开发团队,强调全面培养学生的综合职业技能,提升个人职业素质,而不仅仅是技术开发能力。

在探索性软件项目实践/毕业设计课题软件项目开发阶段,实训学生根据前三个阶段积累的软件专业技能,独自完成自己的毕业设计项目开发工作。在实训中强调学生的实际动手能力,在三个月的实训中保证每个学生完成8000~10000行的代码量,并且能够独立承担角色岗位的开发任务。

实训过程中,工程师对学生进行多角度考察和测评,帮助学生认识自身的优点和弱点,便于学生能进行正确的定位。结合现代IT企业用人岗位需求,讲解编写简历规范、面试技巧,并请各个IT企业对学生进行实践考察、面试和座谈。

(3) 实训角色。

结合学生分组情况和自身条件帮助学生选择合适的实训角色,包括项目经理、配置经理、需求分析员、数据库设计员、界面设计员、程序员和测试员等。

(4) 实训内容。

Rational 统一开发过程,软件项目管理、软件需求开发、用例设计、软件分析设计、软件编码技术(J2EE或.NET)、数据库技术(Oracle 10G或SQL Server2005开发实现)、软件测试技术、企业文化、项目过程体验等。

(5) 项目实战。

学生根据自身情况选择实训项目进行实战。如移动彩铃营销综合信息系统、网通大客户管理信息系统、行政执法管理系统、酒店数字化管理系统、积华医药物流管理系统、职业技术院校信息化系统统一平台、市政工程设计研究院信息管理系统等项目。

毕业设计课题项目开发阶段以项目组的方式进行,但在这个阶段不再区分角色的职责,而是每个项目组的学生根据小组选择的项目,自己独立完成项目中的某一个毕业设计子系统课题开发,包括从这个子系统课题的需求分析、详细设计、编码、测试到子系统部署全部软件开发流程,最终以自己开发的子系统形成各自独立的毕业设计论文。

(6) 实训考核。

实训考核分项目组考核和项目成员考核两部分,实训学生成绩=项目组成绩×60%+个人考核成绩×40%。项目组考核内容主要包括项目开发涉及的软件工程及项目管理、数据库、开发语言、需求分析、系统设计、项目实施和项目结题等。项目成员考核内容主要包括掌握具体技术概念程度、编码习惯和熟练程度、职业素养、创新和钻研精神等。

(7) 实训总结。

实训结束后,学生需提交如下项目资料:项目组提交最终版本源代码工程、软件安装程序、用例模型、数据库设计模型、数据库文件;项目组提交软件项目计划、需求规格说明书、概要设计文档、模块开发卷

宗、测试文档、用户手册、项目周报、阶段评审记录、配置管理文档和软件质量保证文档等;实训学生提交毕业设计开题报告、毕业设计项目成果和实训总结报告。

5结语

以企业实训为核心的毕业实习模式的形成和实施,可以改革软件学院办学体制,创新软件人才培养模式,建立优质软件实习基地,整合校企专业师资队伍,提高毕业实习质量,培养综合型软件人才,拓宽学生就业渠道。实践表明,校企合作实施企业实训所培养的软件人才,可以更快地掌握软件行业的新知识和新技术,能更好地适应软件行业发展的需要。

参考文献:

[1] 何火娇,罗威,杨红云,等. 校企合作办学是高校创新人才培养模式的有效途径[J]. 高等农业教育,2008(5):38-40.

[2] 广东省教育厅. 关于批准有关高等学校试办省级示范性软件学院的通知[S]. 粤教高(2004)30号.

[3] 刘震. 从“校企合作”模式下的课程置换看软件专业师资队伍建设[J]. 福建电脑,2008(10):186-187.

[4] 熊才权,梅清,王春枝. 校企联合的IT专业生产实习模式研究与实施[J]. 理工高教研究,2007,26(4):114-115.

[5] 王海晖,熊凡. 校企联合的计算机专业毕业实习模式探索和实践[J]. 电脑与电信,2008(7):106-111.

[6] 卢瑾,李洪煜,王小号. 校企合作共建软件实训中心的探索与实践[J]. 实验技术与管理,2008,25(12):134-136.

[7] 张广泉,杨季文. 面向校企合作的软件工程人才培养模式探讨与实践[J]. 计算机教育,2008(21):29-32.

[8] 张安民,张远辉. 校企合作共建生产型实训基地的创新[J]. 实验科学与技术,2008(8):242-244.

Reform of Pattern of Undergraduate Diploma Practice for College of Software Technology

XIAO Ke-hui, XIAO De-qin

(College of Software Technology, South China Agricultural University, Guangzhou 510642, China)

相关文章
相关期刊