软件开发实习工作报告汇总十篇

时间:2022-02-09 16:58:21

软件开发实习工作报告

软件开发实习工作报告篇(1)

随着我国高等教育改革的进一步深化,由教育部提出针对在校大学生的创新型人才和创业型人才的培养正逐渐成为应用型院校转型的目标。那么如何让在校大学生具备软件项目开发的技能和知识也是软件工程专业的培养目标之一。培养学生软件开发的应用能力已经成为软件工程专业的人才培养的首要目标。[1]《软件工程导论》课程的教学任务也由原来软件开发理论知识的讲授转变为软件开发基本技能和文档撰写能力的训练和培养,通过学习这门课使学生能够了解软件开发的流程,并且知道在开发的过程中每个阶段都做什么和怎么去做,让学生能够直接进入到项目组里,参与软件项目开发。这样改革的好处是多样的:1.这样除了对学生应用能力进行了培养,而且让学生对软件项目的了解进一步加深,后续为以后的其它专业课的学习也打下了基础;2.在同步开设的其他课程中,进行横向联合,让学生都针对同一项目进行训练,让学生能够学有所用,大大提高了学习兴趣和积极性;3.对各门专业课的教学内容和方式都有所触动,促进了教学改革的深入。目前,国内各个高校的软件专业中都开设有《软件工程导论》这门课。多数学校还是当作一门专业基础理论课来讲授,这样的学校大多是研究型大学,学生基础比较扎实,对枯燥的理论可以接受,但是只学理论没有实践造成的后果是学完就忘,学生只会答题;还有一些学校对《软件工程导论》课程进行了一些改革,比如将理论基于一种开发环境的软件开发,试图将理论和实践相结合,但是多数是面向对象开发方式,理论多实践少,落到实际课堂教学上还是教师说的多,学生做的少,对学生实践能力培养并没有多大的改变。对课程的教学改革主要包括教学内容的改革,教学方式方法的改革,考核方法的改革。

一、教学内容的改革

目前《软件工程导论》课程的教学内容包括:软件开发基础知识,需求分析,总体设计、详细设计、编码、测试[2]、项目管理这些内容,采用的是结构化的软件开发方法。之前我们只讲理论知识,特别是开发过程中的一些技术和软件,但是学生学完即使会做题也不会开发项目。现在,我们将教师实际参与开发的项目带领学生从需求开始分析,进行总体设计和详细设计加入到授课内容中,结合实际的项目开发的内容,把理论和实践相结合。学生边学理论知识,边完成自己的项目,可以将学到的知识应用到项目中,做到学有所用。希望培养学生整体软件开发的方法、软件项目管理能力、软件需求分析能力、数据库设计能力、人机交互设计能力、软件测试计划及方案的制定能力、课程报告撰写能力、学习态度等各方面能力。

二、教学方式方法的改革

《软件工程导论》是一门理论课,多数是在多媒体教室由教师讲授为主进行授课。现在,在开课之初,我们要求每个学生申报一个题目,整个学习过程中学到哪个阶段,学生就自己去完成所申报题目的该阶段的任务,这样课堂上老师讲怎么开发软件,在课下布置了大量的阶段性文档要求学生去完成,而且各个阶段所采用的方法也不同,随着各阶段任务的完成,学生也体会到了项目开发的过程、方法。为了保证学生提交的阶段文档的质量和保证学生的项目能够顺利进行,我们将阶段评审添加到了教学过程中。学生需要提交的阶段任务文档有:《软件需求规格说明书》、《软件概要设计说明书》、《软件测试报告》和《课程综合报告》。其中《课程综合报告》中要求按照毕业论文的格式要求去排版和完成,希望同学们通过这样的训练能够在毕业设计中取得较好的效果和成绩。在教学改革时我们还尝试着和同时开设的《数据库原理与应用》、《面向对象程序设计》等课联合起来,分别针对同一题目进行阶段训练,在最终答辩的时候由三门课的老师同时参与答辩,答辩成绩被记入到三门课的最终成绩里,比如《数据库原理与应用》课学习如何设计数据库就应用在了《软件工程导论》课的总体设计阶段,学生需要画出E-R图,给出主要表结构;《面向对象程序设计》课最终就是根据《软件工程导论课》分析和设计的结果用JAVA语言开发出一个小项目,这样学生不仅写出了阶段文档,最终还能做出一个实际的项目,增加了完整性和学习积极性。

三、考核方法的改革

原来我们都是采用试卷考核的方式,但是试卷考核只能考察学生的知识掌握能力,并不能考核学生的实践应用能力,而我们希望通过这门课程让学生具备一定的软件开发实践能力,所以由试卷考核改为答辩考核和平时阶段性评审。[3]这也要求在开课之初就制定出比较详细和全面的考核方案,我们的考核方案从课程报告、答辩平时表现这三大方面出发进行考核,具体考核标准如表1。而且,在课程报告提交时,我们有统一的文档格式和内容要求,包括需求分析报告,概要设计报告、测试报告、课程设计报告,在平时授课阶段就需要提交上来;而答辩时,将学生答辩的项目原型与学生之前提交的需求、设计进行对应,审核是否是按照需求和设计进行的开发;而且在近几次的答辩中,我们将答辩所占的比重逐步增加,这样可以看出学生的表达能力、思维能力、项目综合运用能力的高低。《软件工程导论》课程改革的目标就是希望将枯燥、抽象的理论课变成充满趣味和挑战的实训课,让学生通过本课程学习能够知道项目开发各阶段的工作内容,且能够开发一个简单的项目,避免在毕业设计时犯一些软件开发的常识性错误,比如项目开发流程弄错,如何进行分析和设计等等。同时为了提高学生的创新能力,让学生自己申报题目,从需求分析到最终分析设计结束都需要学生自己动手来做,通过学习软件工程思想和方法去完成软件开发过程,可以调动学生的主观能动性,真正做到独立思考,能够激发学生的潜能和创新性,为创新型和应用型人才的培养打下坚实的基础。

参考文献

[1]王菁华.地方高校向应用型转型必须实现三个根本转变[J].职业教育,2016.

软件开发实习工作报告篇(2)

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

1教学目标和定位

软件工程导论是计算机科学与技术专业本科生的一门专业基础课,是一门导论性课程。其任务是介绍软件开发的过程、方法和工具,使学生初步掌握需求分析、软件设计、软件测试的工程化方法,为学生将来从事软件开发打下一定基础,并为后续“面向对象软件工程”课程进行必要的知识准备。课程的总体目标是使学生掌握软件工程的理念和软件开发的方法学,了解软件进化过程,通过实践性教学环节培养学生的软件开发能力、工程素质和协作交流能力,培养学生提高软件产品质量、降低软件开发和维护成本、按计划交付软件产品的意识,培养学生的职业道德和团队精神。

在该双语课程开设之前,软件工程课程已于2005年被评为国家精品课程。我们在软件工程系列课程的教材建设、知识点的持续更新、教学实践、教学方法和手段的改进等方面进行了积极和富有成效的改革,取得了一系列的教学成果。我们注意到,与其他课程相比较,软件工程导论课程具有以下几个方面的特点:(1)内容抽象,软件是一个逻辑产品,软件开发是一个逻辑思维的过程,软件工程导论课程的教学内容包含了大量指导软件开发的高层思想、方法和原则,这些知识点是对大量软件工程实践经验的总结。(2)注重实践,软件工程导论课程非常强调工程实践,帮助学生运用所学的知识来进行工程化的软件开发,从而积累软件工程的实践经验。(3)对英语运用和表述提出更多和更高的要求,包括文献的阅读、需求的分析和描述、软件建模、文档撰写等等。因此,在该课程的双语教学过程中如何深入浅出地向学生讲授抽象的知识、如何加强实践环节的建设、如何加强和提高学生的英语综合运用能力就成为该双语课程教学的关键。

为此,在软件工程导论双语课程建设和教学过程中,我们针对软件工程课程的特点,设计科学和合理的双语课程教学大纲和计划,研究适合该双语课程的教学方式和手段,努力提高学生综合运用英语的能力,为软件工程系列的后续课程以及其他双语课程的教学奠定良好的基础,并期望达到以下目标。

(1) 课程教学与人才培养逐步与国际接轨

西方发达国家和我国都在大力发展软件产业,因此在人才培养阶段如何加强学生的软件工程素养十分重要。针对国家的这一需求,本双语课程旨在探索和研究与国际软件工程教育相接轨的课程教学和人才培养模式,使得所培养的学生在软件工程的知识、能力和实践等方面逐步向国际先进水平靠齐。

(2) 适应专业特点,加强学生英语语言环境的熏陶

软件工程是计算机科学与技术领域的一个重要方向,一直以来研究活跃,不断有新的概念、方法和工具出现,课程的知识体系更新非常快。特别是,绝大部分最近的研究进展和成果都是以英文方式出现在各类会议和期刊上。因此,学科专业的这一性质决定了软件工程课程尤其需要开展双语教学,该专业方向的学生必须经常性地在英文的语言环境中接受教育。因此,通过本双语课程的教学,希望培养学生逐步适应在英语语言环境中接受知识传授,具备利用英语工具获得知识的能力。

(3) 促进学生多方面能力的培养

通过本双语课程的教学,促进学生多方面能力的培养,尤其是利用英语进行各种形式交流的能力,包括英文教材和文献的阅读能力、撰写英文学术和文档资料的能力、通过英文进行口头表述的能力。这些能力都是培养创新性人才所必须的,也是作为一名合格的软件工程师应具备的基本要求。

2教学理念

(1) 循序渐进

本课程为大一学生开设,针对他们的英语实际水平,在课程教学中采用循序渐进的方式。比如,在课程教学中逐步加大英语在课程教学中的授课比重,首先要让学生能够听懂所讲授的知识内容,不要让他们对英语教学感到畏惧;然后逐步培养他们利用英语来进行学习和交流的兴趣,在此基础上积极鼓励他们利用英语来获得知识和进行交流。

(2) 求真务实

注重实际和成效,不追求形式。对于一些有难度的项目(软件工程技术文档的撰写和课堂报告),我们鼓励学生用英文来表述,但是不强求。对关键性的概念和术语,适时做出中文的补充说明,并在课前提供课程术语中英文对照表,以便让学生掌握与本课程有关的关键英文术语。

(3) 注重能力

我们认为大学课程教学不仅仅要给学生传授知识,更要关注学生多方面能力(包括学术交流、获取文献、讨论和报告、撰写文献等等)的培养,从而为其参与工程实践和科学研究奠定基础。为此,本课程将强调通过双语课程教学培养学生以下几个方面的能力:利用英语获取知识的能力、文档和报告撰写能力、交流能力等。

(4) 强化实践

加强案例分析和课程实践。软件工程导论课程的特点之一是工程实践性非常强,为此课程通过多种方式强化实践环节。比如,将具体和详尽的案例分析作为课程教学的重要内容之一,按照软件工程实践要求布置学生进行课程实习,撰写规范化的工程实践文档,加强工程实践在整个课程考核中的比重等等。此外,在课程教学中还安排诸多的实践机会来加强学生运用英语实践的能力,包括软件工程技术文档的撰写、课堂报告、网络教学平台的在线交流。

3教学方法

(1) 激发兴趣

我们深信,兴趣是最好的老师,表扬是激发学生学习兴趣的最好手段。通过对教学内容的精心组织,突出各知识点之间的逻辑关联,强调软件工程知识体系的系统性;通过梳理软件工程的历史发展脉络、揭示隐藏在知识点背后的思想深度、鼓励老师和学生共享个性化的经验等措施,激励学生主动探索、积极实践的学习热情,支持和激励学生利用英语来撰写软件工程开发文档、在课堂上汇报其课程实习内容以及在网络教学平台进行在线交互,激发学生利用英语获得知识和信息。

(2) 案例教学

挖掘、整理了若干工程案例,结合案例开展教学,将软件项目案例贯穿整个讲授过程,案例的规模由小及大,并要求学生与课堂案例同步地推进各自的练习案例;加速培养了学生在大型软件开发、软件工程管理等方面的能力,颇具特色和创新。此外,在教学网站上提供丰富多彩的案例库、规范化的软件工程文档标准和模板,供学生研究、借鉴。

(3) 互动教学

老师、助教与学生通过网络进行交流、沟通,包括网上答疑,网上作业提交、作业批改,BBS讨论区,通过网络对学生进行个性化辅导,及时与学生交互。学生不仅要提交课程实习文档,而且还要在课堂上报告其课程实践和实习成果以及体会,老师和学生一起对其实习成果进行评论和分析,从而对学生的课程实践有所反馈,让学生知道哪些方面是做的好的、需要发扬,哪些方面做的不好、需要改进和提高。

(4) 实践教学

精心设计、精心组织实践教学环节,紧跟软件工程领域的最新发展,适应信息化时代教育手段变革的要求,不断更新实验设计,确保软件工程的观念、技术和方法在学生的实践过程中得到应用并积累经验、体会,逐步提升学生的软件工程素质和能力。在课程教学中,我们要求学生以小组方式选择一个应用,并遵循软件工程的方法,对该应用进行需求分析和软件设计,撰写规范化的软件工程文档,并要求他们在课堂上报告其课程实习成果。课程还鼓励学生利用英文来撰写文档、在课堂上尝试用英语做报告、在课后用英语进行在线交互,为他们运用和实践英语创造机会。除专业知识与实践技能的培养外,还积极引导和培养学生的决策能力、分析能力、团队合作能力和人际交流能力等。课程实习中,不但强调实践的结果,更注重实践的过程,实习全程都有辅导教师按照软件工程的阶段进行跟踪。

4双语教学的实施

(1) 教材

目前,我们使用的是由Pressman编写的软件工程教材最新版本(第六版,英文):Roger S. Pressman, software engineering C A practitioner’s approach, sixth edition (English), Tsinghua University Press, 2006。该教材在国际软件工程界产生了巨大和深远的影响,树立了它在软件工程课程教学中无可置疑的权威,在全球近千所大学中广泛使用,是软件工程课程教学最具影响力的教材。该书从1982年的第一版开始,就受到我国软件工程界的重视,成为高等教育计算机专业软件工程课程的重要教材和教学参考书。

(2) 教学计划

该课程共有24学时,其教学内容的选择和课时安排如下表。除了正常的知识讲授之外,我们在课程教学过程中还安排了2个学时的案例分析和示范,4个学时的课程实践报告和分析。案例分析和示范主要通过一个较为完整的案例分析和文档演示,向学生介绍如何进行软件的分析、建模和设计,并形成规范化的软件开发文档。课程实践报告和分析主要选择性的请一些学生介绍他们课程实践的情况和结果,并进行分析和评价,以帮助学生知道哪些实践和结果是可取的,哪些需要改进和提高。

(3) 英语实践

在双语课程教学过程中,我们通过多个环节来加强学生的英语实践。首先,要求学生阅读英文教材来提高英语的阅读能力和水平,掌握与该课程相关的关键术语。其次,在课程实践中鼓励(不强求)学生利用英语来撰写规范化的软件文档,从而来训练和培养学生的英文书面表述能力;第三,在课程实践报告和分析中鼓励(不强求)学生运用英文来介绍其实践文档和结果,而来训练和培养学生的英文口头表达能力。

(4) 课程考核

课程考核分为二个部分:闭卷考试和课程实践,各占50分。闭卷考试要求学生用英文答题。课程实践分为二个实验,需求分析和软件设计,要求学生根据所选择的应用,对其进行需求分析,建立需求模型,用中文或者英文撰写软件需求规格说明书;在此基础上对其进行软件设计,建立设计模型,用中文或者英文撰写软件设计规格说明书。课程将对学生提交的实践结果(即软件开发文档)的正确性、规范性、完整性、一致性、语言表达等方面进行评估。

软件开发实习工作报告篇(3)

0、引言

软件测试是从事计算机软件开发和维护专业的人员应该掌握的一门技术。软件测试是软件工程中的关键活动之一,是保证软件质量的重要手段,其工作量通常占软件开发总工作量的50%以上,而对于某些可靠性要求极高的软件系统,如航天、银行等领域的软件系统,软件测试占软件开发总工作量的比例甚至达到60%~80%。软件测试的目的是发现软件中的错误,并及时修正这些软件错误,以减少软件在后出现错误,提高软件产品质量。软件测试是一项需要专业技能的工作,它包含许多理论和实践。如果缺少这些理论知识和实践经验,测试的深度和广度就不够,测试质量也就无法保证,从而导致软件质量达不到要求,影响软件的可信性。

由于国内软件产业的现状所致,很多的软件公司属于软件外包型公司,这些公司以软件开发为主。这样,软件工程专业很大一部分学生毕业后通常从事软件开发或者程序员工作,这也影响着学校对软件工程专业的设置。因此,当前高校在软件工程专业课程设置上往往将很大一部分精力放在软件开发课程的设置上,如各种语言的学习、软件开发方法的学习等。但是,软件工程不仅包括软件开发,还包括软件测试以及软件维护。大部分国外大型软件公司,如微软、IBM等公司,这些公司对软件测试非常重视。在这些公司内部,软件测试人员数量并不比软件开发人员少,因为一个优秀的软件产品最终是通过不断的软件测试进行验证和评价的。随着软件工程课程的不断完善,当前软件测试的重要性已逐渐得到重视,很多高校已将软件测试课程作为软件工程专业课程中的必修课程。该课程是软件工程的核心组成部分,是连接软件开发和软件的纽带。通过本课程的学习,学生要了解软件测试及其管理的重要性,掌握软件测试基本理论、技术和方法,具备研究设计测试用例和使用自动化测试工具的基本方法和实践能力,能将测试驱动的理念融入软件开发、维护的研究与应用中,从工程化角度提高和培养学生从事大型软件的测试技术和能力。

尽管软件测试课程已作为软件工程专业的必修课程,但从教师和学生两个角度对该课程的调查反馈发现,教师觉得该课程不好教,教学效果不好;而学生感觉该课程较空洞,没有发现其在实际软件开发中有多大的应用。这主要因为在传统的软件测试教学中,学生只是被动地参与,听教师授课,听教师讲授各种软件测试概念和方法,但学生并没有真正学到这些理念,并没有对这些方法进行应用。所以这种传统的软件测试教学方法效果很难令人满意。

扬州大学信息工程学院将软件测试课程作为一门双语研究性课程进行试点改革,探讨如何更好地进行软件测试课程的教与学。本文将以该学院软件工程专业软件测试课程为例,探讨学生自主学习的软件测试双语研究性教学方法。笔者作为该课程的授课人实施了本文的软件测试教学方法,其目的是研究如何促进学生进行双语研究性教学,促进学生主动学习软件测试新技术,从而让学生学到软件测试课程中的一些测试理念,让他们了解软件测试在整个软件开发过程中的重要性。

1、软件测试双语研究性教学

软件测试双语研究性教学主要包括三方面内容:教学、研究、实践。这三者在软件测试双语研究性教学中的关系是:以教学为本学习,以研究为重点突破,以实践为辅助训练。下面分别介绍这三方面的内容:

1)教学方面。

软件测试双语研究性教学和传统的软件测试教学一样,根据软件测试教学大纲进行教学,主要包括软件测试基本概念、软件测试基本方法、白盒测试、黑盒测试等。由于研究性教学过程中加入了研究,所以教学是以基本的测试理论和技术为主。另外,在教学过程中,由于本课程属于双语课程,所以教学过程中采用英文PPT,中文授课方式进行教学。另外,教学主要以启发式教学为主,让学生更多参与课堂讨论,由于本文主要讨论研究方面,所以这里对教学不做详细讨论。

2)研究方面。

本课程采用的是研究性教学,因此研究是本课程的重点和特色。本课程所采取的研究方式主要以学生自主学习为主,采用阅读文献的方式。由于本课程是双语教学,研究过程中所提供的文献材料全部是英文论文,这些材料都是从当年软件工程领域顶级国际会议中选取的有关软件测试方面的最新技术和方法,这样有助于学生开阔视野,了解最新的软件测试技术、方法,及软件测试发展的方向。这一部分的实施方法将在第3节进行详细介绍。

3)实践方面。

软件工程是实践性很强的专业,同样,软件测试也是如此。需要通过不断的实践才能理解和掌握软件测试技术,将测试理念贯穿到软件工程项目中。本课程软件测试实践主要包括三方面内容:一是验证性实践,熟悉已有测试工具,学会使用这些工具,并利用已有测试工具生成测试用例;二是自己开发软件测试工具,主要根据研读的论文进行工具的设计和开发;三是软件测试工具的验证和评估,主要是对自己开发的工具进行验证和评估。一方面利用已有测试工具来验证当前软件测试工具,另一方面,利用已有软件测试知识评估测试工具在故障识别方面的效率,这有助于学生更深地掌握软件测试技术,了解什么样的测试技术是好的测试技术或者方法,是有效的测试工具。这一部分也不是本文的重点,因此不详细展开讨论。

2、软件测试双语研究性教学特色

本课程作为扬州大学软件工程专业的试点课程,采用双语研究性教学方式进行课程的授课和学习。对于双语性教学,主要采用英文材料,中文授课;而对于研究性教学,主要是让学生进行自主学习最新的软件测试技术和方法,研读相关的英文论文,进行专题报告和讨论,并鼓励学生开发实现这些技术。因此,在本课程的教学过程中,主要体现了5个特性。

(1)自主性:让学生从给定的英文材料中自主选择学习材料,自主组建团队,自主与英文材料作者联系、沟通、交流和讨论。

(2)协作性:学生必须要组建团队,团队成员数量由2~4人构成,团队之间相互协作、配合,共同完成整个研究性学习过程。

(3)互动性:在学习过程中,必须要与论文作者沟通和交流,真正把握论文作者的真正意图,并尝试提出自己的见解,与论文作者进行讨论。

(4)实践性:要能够实现论文材料中的软件测试方法,在工具开发过程中,鼓励学生采取测试驱动的开发方法,并利用所掌握的软件测试技术去测试自己的工具。

(5)研究性:在研读论文过程中,要对论文进行深入的讨论和研究,特别是对作者的思想以及未来工作、论文中的不足进行研究,提出可能的解决方案。

3、软件测试双语研究性教学实施

笔者主要针对软件测试双语研究性教学过程中的研究过程的实施进行讨论。在本课程中,研究主要是采用学生阅读文献的方式进行自主学习的研究,主要针对当前最新的软件测试技术进行学习和研究。研究性教学具体的实施过程如图1所示。

首先,教师从当年软件工程顶级国际会议中选取软件测试相关的研究技术论文放入文献库中。这样的文献库主要用于学生对当前软件测试的学习和研究。对于本科学生来说,独立地去研读这些最新技术还有一些难度,而且时间上也紧张。因此,研究性学习主要采取团队方式一起研究,这样学生进行自由分组,并且每个小组指派一名学生作为小组组长负责该小组的研究性学习进展。

有了文献库以及学生分组后,就进入自由选题阶段,即各个小组从文献库中选取自己感兴趣的论文。在各小组确定自己的研究论文后,进行论文的研读。在论文研读过程中,要求每个小组每周至少讨论一次,讨论各小组的分工任务完成情况,对原文的理解情况,以及对遇到的问题进行讨论,并且项目小组要及时记录这些讨论记录,每周发送给任课教师。另外,在研读论文过程中,每个小组要用英文与论文作者进行沟通与交流(如果作者没有回复,可以选择与课程教师进行交流),并将交流过程中的对话记录下来作为课程成绩考核的依据。

在论文研读后,需专门安排几节课进行专题报告和讨论,主要用于检查各小组对原文的理解情况。专题讨论内容包括三方面:一是学生对论文内容的理解;二是学生需要提出对论文的见解和观点,挖掘论文可能存在的问题或对论文中的未来工作部分提出见解;三是本小组研读论文的体会分享。在专题报告中,我们还邀请了学院的一些其他教师参与进来与学生们一起讨论,一方面,教师对各个论文本身进行点评;另一方面,教师对各个小组的表现进行点评。另外,在专题报告中,强调学生的参与,就是大家要多提问,多讨论。

专题讨论后,各小组要对原文中软件测试技术进行实现。其中,在软件测试技术实现过程中,鼓励采用测试驱动的软件开发方法;另外,需使用已有的软件测试技术和工具进行测试。在完成开发软件测试工具后,需要选择一些例子进行软件测试技术的验证。最后,各个小组需要提交一份总结报告,主要是关于技术实现进行总结,包括这几方面内容:对论文原文的理解或技术改进,采用的测试技术和工具,技术改进效果的验证和评估。

4、实施效果

该课程已在2012-2013年秋学期的扬州大学软件工程专业的一个班按照本文教学方式进行实践。该班学生40人,我们从2012年ICSE(International Conference on Software Engineering)、FSE(Symposium on the Foundations of Software)、ISSTA(Symposium on the Foundations of Soft-ware)、ICST(Intemational Conference on Sottware Testing,Verification and Validation)、ICSM(Inter-national Conference on Software Maintenance)等国际顶级会议上选取了44篇软件测试相关的论文作为学生学习的资料库。然后让学生自由组队,每组2~4人一起研读论文。最后组队15组,选择了15篇论文进行学习和讨论。在研读论文过程中,建议学生自己与论文作者用英文进行交流和讨论,讨论论文中不能理解的内容;在研读完论文后,我们组织了专题报告,报告主要包括三方面:一是论文主要内容;二是学生对论文的看法以及学生自己的想法;最后就是分享研读过程中的体会。另外,我们鼓励学生用英文进行报告(其中一组采用英文进行报告)。专题报告过程中我们还邀请软件工程系相关教师一起进行点评。

软件开发实习工作报告篇(4)

作者简介:赵晓君(1979-),女,河南南阳人,郑州轻工业学院软件学院,讲师;黄艳(1976-),女,河南信阳人,郑州轻工业学院软件学院,副教授。(河南 郑州 450002)

基金项目:本文系郑州轻工业学院校级青年教师教学改革项目的研究成果。

中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)07-0101-02

随着软件产业的快速发展,软件系统的规模越来越大,功能实现也越来越复杂,导致软件中存在的缺陷数量大大增加,这些缺陷将会带来各种损失,甚至出现灾难性的后果。因此,如何保证软件质量已成为所有使用软件和开发软件的人们关注的焦点。软件测试作为软件工程的一个重要组成部分,是目前用来验证软件是否能够满足用户需求功能的唯一有效方法,是保证和提高软件质量的重要环节。为适应软件产业的发展趋势和满足软件测试人才的大量需求,目前已经有许多大学在软件工程专业添加软件测试课程或者添加软件测试专业方向。

软件测试专业包含多门专业课程,有“软件测试理论”、“软件测试技术”和“软件缺陷管理”等,其中,“软件测试理论”课程重点为初学测试的同学讲解测试的基础理论知识,主要包括软件测试基本理论、软件测试方法和技术等,在多门专业课程中占有举足轻重的地位。

一、“软件测试理论”教学现状

“软件测试理论”课程重点介绍软件测试的基本理论,因此整个课程主要以教师讲授为主,在教学的过程中存在以下问题:

1.教学内容理论性较强,难以调动学生学习的主动性

对于初学软件测试的学生,首先要向其讲授相关测试理论,使其建立系统的测试理念。

但是学测试的学生大都是理科生,喜欢操作性强的课程,“软件测试理论”课程的理论性太强,需要背诵很多概念性的知识,这对于他们来说是比较困难,不能激发学习的主动性,教学效果不理想。

2.测试方法和技术案例实际应用价值不足,学生很迷茫

测试方法和技术是“软件测试理论”课程学习的重点和难点,这部分内容仅靠老师的讲解和书本上的案例很难让学生深入理解掌握测试技术的内涵,学生在学习这部分知识时会产生迷茫:学习这些知识有什么用处,在具体的项目测试中,应该怎样应用这些知识?没有实际的项目案例做支撑,学生会失去继续学习下去的兴趣。

针对上面的问题,本文提出将项目驱动法应用于“软件测试理论”课程的教学中,学生在进行项目实践的同时,根据需要学习软件测试相关理论知识,这样有助于提高学生的学习主动性,有助于理论知识的牢固掌握,有助于提高学生的实践技术能力,改善该课程的教学效果。

二、项目驱动法

项目驱动法是目前中国教育领域中一种比较新的教育教学方法。

所谓项目驱动法,是师生通过共同实施一个完整的项目工作而进行的教学活动,它既是一种课程模式,又是一种教学方法。[1]这里的项目根据课程教学内容的不同所包含的涵义也不同。在“软件测试理论”课程教学中,项目即指一个已经开发完成的软件测试工作。通常,项目教学都是实践导向的和任务驱动式的教学。

在项目驱动模式的教学活动中,教师根据学生现有的知识水平和项目经验选择一个合适的项目,以项目实施为主线展开教学活动,把课程相关的知识点的讲解融入项目操作的每个步骤中。在项目实施的过程中,以学生为中心,教师主要做组织和指导工作,学生在整个项目的实施过程中处于探索知识的情景中,充分发挥主动性、积极性和创新精神,综合运用所学的知识和技能解决实际问题,最终达到有效地将所学知识系统化深入化的目的。

这种模式从根本上将传统课堂中老师满堂灌转变为“学生为主体,教师为主导”的教学模式。同时,学生通过一个具体项目的实践,感受到了真实项目管理的思想和团队协作的必要性,提高了学生的创新能力和项目实践能力。拥有真实项目的实践经验使得学生在择业时拥有很大竞争优势。

将项目驱动法应用于“软件测试理论”课程教学中,在课程理论教学中加入一个完整的项目测试实践环节,通过项目实践能够很好地激发学生的学习主动性,使学生经历了一个“先做,遇到问题,再学,解决问题,再做,获得经验”的学习过程,最终完成一个完整的软件测试实践,同时也学到了“软件测试理论”课程应该掌握的理论知识。这样,既解决了软件测试理论课程理论性太强的问题,又解决了测试方法和技术案例实际应用价值不足的问题;而且丰富了学生的实践经验,提高了软件测试理论课程的教学效果。

三、“软件测试理论”课程教学目标和教学内容

1.教学目标

通过本门课程的学习和实践,理解软件测试理论与原则;掌握主流测试技术和方法,熟悉测试用例的编制、熟悉软件测试的基本流程,熟悉软件测试过程中各类技术文档的编制规范,并能灵活运用测试技术解决实际问题。

对于一个具体项目软件,每一个学生都能够顺利完成如下手工测试流程:根据软件需求规格说明书撰写测试计划,设计测试用例、进行测试环境配置和测试数据准备工作、执行各种测试,撰写缺陷报告、跟踪并修复缺陷、进行测试评测,最后提交测试总结报告,达到软件企业对测试专业人才的要求。

2.教学内容

“软件测试理论”课程的教学内容主要包括软件测试基本理论、软件测试基本技术、软件测试过程和软件测试工具。[2]

软件测试基本理论包括软件测试、软件缺陷和测试用例的基本概念,测试的目的、测试模型、测试分类和测试流程。

软件测试基本技术包括白盒测试和黑盒测试;其中白盒测试包括静态测试和动态测试,动态测试又包括程序插桩、逻辑覆盖、基本路径测试等;黑盒测试包括等价类划分、边界值分析、因果图法、判定表法、场景法等。这些基本技术都是在进行测试用例设计时使用的。

软件测试过程是指执行测试的过程,通常分为四个阶段:单元测试、集成测试、系统测试和验收测试。

软件测试工具有多种:功能测试工具、性能测试工具和测试管理工具等。

四、项目驱动法的应用方案

1.项目的设计

实施项目驱动法,首先需要设计项目。项目的设计与选取直接影响到该教学模式的教学效果及学生的学习兴趣。“软件测试理论”课程项目的选取与其他课程又有所不同,学生要进行的操作是对现有的或者已经开发完成的软件的测试工作,因此在设计项目时应遵循以下几条原则:

第一,项目是现有的软件或已经开发完成的软件,软件中有部分明显错误,有部分隐藏错误;明显错误有助于提高学生的测试积极性,隐藏错误有助于启发学生进行更深入的测试。

第二,项目具有典型性,代表大部分软件的共性。通过该项目的测试,学生可以掌握大多数软件的测试流程和测试方法。

第三,项目中有多种情景元素,符合使用多种测试技术和方法,有助于学生在进行项目测试的同时,学习使用多种测试技术设计测试用例的方法。

第四,项目大小和难易适中。每个项目组的人数控制在3~5个人,设计的项目能使学生通过努力在一定的时间内完成。

根据以上原则,本课程目前选择的项目是《企业薪酬管理系统》。

2.项目驱动法的实施

本课程通过让学生进行企业薪酬管理系统完整的测试流程实践的同时,讲解测试需求编写、测试计划编写、测试用例设计、测试环境配置、测试执行、缺陷跟踪和管理、测试报告撰写等内容。课程授课方式主要是分阶段讲解测试过程和测试要求,每一个阶段开始,老师先讲原理,选择部分内容做例子进行讲解,然后学生比照例子跟着做;阶段内容完成时,学生提交完成的文档,老师选择典型的问题进行讲评,然后进行下一个阶段的内容,如此类推直至测试结束。

企业薪酬管理系统测试流程设计如图1所示。

本课程课时为60学时,根据图1系统测试流程图安排,基于项目驱动法的“软件测试理论”课程安排如表1所示。

在课程进行的过程中,必须严格按照项目的测试流程进行,测试流程为:先获取项目测试需求,撰写测试计划,设计测试用例,执行测试,提交缺陷报告并跟踪修复缺陷,最后提交测试总结报告。课程结束,要求学生提交项目测试报告,测试报告包括多个文档,整个流程中每个阶段的工作必须有撰写规范的文档提交,如:测试计划、测试用例、测试执行报告、缺陷报告和测试总结报告等等。

测试报告既体现了教师项目教学的结果,也体现了学生对测试知识技能的掌握水平。通过评价学生作品,找出学生在学习过程中的薄弱环节,进一步改进项目驱动教学的教学安排,使其能够发挥最大的教学效果。

五、结束语

本文针对软件学院软件工程专业的培养对象和教学特点,把真实项目引入“软件测试理论”课程课堂教学中,采用项目驱动教学法,从项目的需求评审、测试计划、测试用例设计、测试执行、缺陷报告、测试评测到测试总结一个完整的测试流程,交给学生组建测试团队,按照流程进行任务分配和管理,最终完成整个项目的测试工作。通过一个完整项目测试流程的完成,有效提高学生的学习和实践能力、解决问题的能力、团队协作能力等,使学生在掌握软件测试的各种测试技术和基本流程的同时,积累了一定的项目测试经验,为他们今后的就业打下了良好的基础。

软件开发实习工作报告篇(5)

当前计算机专业或软件工程专业的学生存在着学用脱节、实际开发能力偏弱等问题。尽管很多高校计算机专业、软件工程专业在软件方面的课程体系上是将整个学科专业的知识按一定顺序和层次分解,使得学生能够循序渐进地学习和掌握知识,这无疑是行之有效的。但掌握了软件开发领域的知识,并不意味着同时具备了软件开发的能力。事实上,学生虽然接受了系统的软件开发专业知识的学习和软件开发技术应用的训练,但软件开发能力低下的情况还相当普遍。要从软件开发的“菜鸟”,成长为软件开发的高手,或者称之为“高级蓝领”,必须通过长期的历练,没有捷径。但好的教学案例和人才培养模式,对促进软件人才的成长和开发能力的提升有很重要的作用[1]。

1软件开发人员能力要求

由于软件开发是一项技术综合性很强的工作,因此,企业对软件开发人员能力的要求也是综合性的[2]。按照教育部对软件学院学生实践能力培养的要求和工程应用型人才培养的定位[3],软件学院的学生在软件开发过程中,既要能将用户的需求映射到良好的软件体系结构,在进行应用软件总体设计时有大思路和大局观,也要能运用现代软件设计方法和编程技术在进行详细设计时关注细节,实现高质量的软件;在考虑软件实际应用时,既要支持国际化及本地化的应用要求,也要支持软件及运行平台升级、操作系统迁

移的应用要求;在技术应用能力上,既要对使用的编程语言和开发环境有很好的把握,也要能综合运用前期所学的操作系统技术、数据库技术、网络编程技术、图形图像处理技术、人机交互技术等专门技术;在软件工程素质上,既要具有软件工程技术和管理方面的知识,还要具备良好的团队合作、交流和文字与口头表达能力。上述这些就是现代IT企业对软件开发人员的能力要求。

2案例实践教学对软件人才培养的意义

案例实践教学对软件人才培养具有以下优势:

1) 学生通过案例学习不仅对理解和掌握计算机软件的抽象概念及原理十分有用,而且对学习先进的软件编程方法、使用先进的软件开发技术、提高自身的软件开发能力大有益处。

2) 学生通过对案例代码的阅读分析,可以使一些一知半解的概念突然变得清晰易懂,使一些久思不解的问题变得豁然开朗。

3) 通过案例学习,学生能够零距离接触到软件高手,深深为他们巧妙的方法、过硬的技术、认真细致的精神、追求完美的态度所折服。

3实践教学案例的设计

案例设计的内容、质量以及案例教学的水平是案例实践教学的基础,是案例学习成功与否的关键。

作者简介:蔡建平,男,教授,研究方向为软件工程、嵌入式软件测试和数字媒体技术。

3.1案例设计要求

设计支持软件开发能力,特别是综合开发能力培养的实践教学案例是许多高校计算机软件类专业教学面临的问题。

首先,这样的案例对于高年级的学生要涉及到他们前期所学的计算机软件开发各个方面的知识和技术,如程序设计、面向对象编程、数据结构与算法、操作系统、数据库、网络通信、图形图像处理、人机交互、软件体系结构,等等;另外,要帮助这些学生在通过案例学习后,建立起软件开发的大思路或大局观,对软件的质量要求(特别是可靠性要求)、维护要求(特别是软件功能扩充及升级要求)有很清晰地了解,并能够反映到软件的设计和实现上。最后,学生学习完案例后,要了解支持软件跨地域、跨平台和跨时间的应用需求,并掌握保证这些需求得以实现的相关技术,如软件的国际化和本地化、软件及平台的升级、平台移植或系统迁移等技术。

在案例设计中最为关键的问题是案例能够在各高校无障碍地推广,不要因为经费、实验环境等问题使案例设计成果没有应用价值。因此,案例设计要求全部使用开源代码或开源技术。事实上,开源软件的使用,不仅有利于通过免费的开源软件大大降低搭建实验环境所需的条件,使学生能够零距离地学习优秀软件,全面提升自身的软件开发能力和软件开发素质,而且学生可以根据专业兴趣或学时安排,有选择地对其中的软件和技术进行更深入的学习和专门的研究,形成自身的技术特长和研究方向。

案例设计中还有一点要特别注意:所选择的案例不要涉及很深的领域专业知识,又是人们感兴趣、经常接触到的东西,这样有利于激发学生的学习兴趣;另一方面,希望案例涉及多种计算机软件开发的主流技术,如面向对象程序设计技术、客户/服务器技术、多线程技术、网络编程技术、数据库技术、图形学、GUI等众多软件技术;最后,希望所设计的案例是综合性的应用软件,以适合学生综合开发能力的训练。

3.2案例详细设计

基于上述的案例设计要求,以及早期项目的研发经历,我们选择股票软件作为软件综合开发实践教学的案例。首先,股票软件不涉及很深的领域专业知识,又是现代社会人们非常关注、感兴趣、且有可能经常接触或身陷其中的事物,学生容易入门和感兴趣;另一方面,这类软件其工作模式主要是客户/服务器的工作模式,涉及到面向对象编程技术、网络通信技术、数据库技术、图形技术、用户界面技术以及数据结构与算法等众多软件技术,其综合性很强,对学生综合开发能力的训练非常合适;最后,我们所选择的股票软件Stock-0.0.9是一个早期的开源股票软件,它是一个股票软件的雏形,易于学生学习和完善,包括做第二次开发。将该软件作为案例进行实践教学可让学生接触和应用如下开源技术:

1)Linux操作系统及虚拟机技术;

2)GCC程序设计技术(包括编译技术、调试技术及集成开发技术等);

3)MySQL数据库应用技术(基于C/C++应用编程接口API的MySQL数据库开发技术);

4) 基于套接字编程的网络通信技术(支持TCP/IP协议的开源liptcp++库的应用);

5) 基于Gtk+的界面设计技术(应用Glade支持界面的设计及应用框架的生成);

6) 股票软件的结构化程序设计及面向对象编程技术等。

在对Stock-0.0.9进行编译生成可执行目标代码并建立其运行环境的过程中,学生能够接触和了解到程序设计的强类型机制、可靠性编程思想、软件构造方法、C/S工作模式实现手段、开发环境及应用环境升级对策、软件国际化及本地化应用要素、操作系统迁移或移植问题等方面的内容,使学生真正掌握基于复杂图形用户界面的大型应用软件开发的方法和技术,理解现代软件开发方法学和现代程序设计思想,增强他们解决实际问题的工程实践能力。

4案例教学实践及成果

4.1实践情况

软件学院针对教育部对软件学院学生实践能力培养的高要求和软件工程硕士复合型工程人才培养的定位,以及学院学生(特别是非在职的工程硕士研究生)综合性实践能力太弱等实际情况,经充分论证,确定了提升学生软件综合开发能力的培养目标,分别于2006年下半年在学院为本科生开设了“界面设计”课程,为软件工程硕士开设了“高级软件编程技术”课程。这两门选用同样案例,讲授了10多次,受益学生达800多人。在这期间,课程的教学案例和实践资源也不断得到补充和完善。

4.2实践成果――教材建设

学院考虑到案例实践教学的效果以及教学案例和实践资源的成熟与完整,决定将案例和课程资源进行总结与提升,出版与之配套的实践教材,推广相关的实践教学经验,让国内高等学校计算机和软件相关专业的实践教学从中受益。学校对此工作提供了经费支持,同时在清华大学出版社的支持下,完成了《软件综合开发案例教程――Linux、GCC、MySQL、Socket、Gtk+与开源软件》的编写工作,该教材已于2011年2月出版发行。

1) 教材的主要内容。

除了有大量篇幅讲述计算机应用的主要开源技术外(如Linux操作系统、GCC编程语言、网络Socket编程通信、MySQL数据库管理、Gtk+界面设计),特别通过实际案例――Stock股票软件将这些技术融会贯通在一起,并站在更高的角度上对软件体系结构、应用软件开发模式、软件的国际化与本地化,软件开发和应用环境升级方法以及平台移植技术等充分地介绍和实例说明,以此达到授人以渔的目的。可以说这是一本集各种主要的计算机开源技术应用于一体的软件综合开发实践教材。

2) 教材的特色。

① 能够满足计算机、软件工程及相近专业高年级学生在前期学习了程序设计、操作系统、数据库、计算机网络等计算机专业基础课程后,急需通过一个案例或一个项目来应用这些专业基础知识和技术进行综合性实验或实践,提高自身计算机技术综合应用能力的需求。

② 除了对主流的计算机开源技术做了详细地介绍和举例分析外,还特别地突出了计算机开源技术在实际股票软件项目中的应用,很好地支持着案例驱动式的实践教学。

③ 教材所涉及到的实验教学资源相当丰富,覆盖面相当广,且全是开源软件或开源工具,保证了国内许多院校在办学条件不足,实验教学经费有限,无法全方位引进商用软件工具的情况下,仍然能够开设出软件综合性开发的实践课程。

总之,该教材作为案例实践教材,自始至终强调和灌输现代软件开发方法学和现代程序设计思想,强调软件综合开发能力的培养。该教材所涵盖的大量技术内容、实操案例及问题解决方案,如果学生能够完全掌握并能实际地用于软件项目的开发,从软件开发能力上说已达到一个高级蓝领的要求了。

5案例实践教学的实施方案

北京工业大学软件学院在学生软件综合开发能力培养上分别针对软件工程本科专业的学生和软件工程专业学位的学生开设了选择同样案例和教材的不同课程――“界面设计”和“高级软件编程技术”。下面我们主要以本科生为例,介绍在“界面设计”课程中案例实践教学的实施方案或课程大纲。

5.1课程设计目的

学院在四年制软件工程专业本科生的教学计划中,为大三的学生在第二学期安排了“界面设计”的课程,60学时,2学分,共15个实验单元(每个单元4学时)。

“界面设计”课程是按照教育部对国家示范性软件学院培养工程化软件实用人才的要求,以界面设计为立足点,对前期所学的主要计算机技术(如软件开发、程序设计、网络编程、数据库应用等)进行综合训练。

要求学生在掌握界面设计的原则、方法和常用技术,掌握当前主流的开源界面开发工具Gtk+和开源界面设计工具Glade进行界面设计及实现等技能的基础上,通过具体的案例――股票行情分析软件,将计算机软件开发所涉及到的相关知识综合在一起,开展实践活动。

通过该实践课程,除了使学生掌握界面设计的全部流程和技术,培养学生界面的设计能力外,可使学生接触和学习基于复杂图形用户界面的大型软件开发的方法和技术,了解Linux操作系统、编程语言、程序设计、编译应用、图形界面、数据库、网络通信、软件体系结构、应用软件开发模式以及平台移植等技术在实际软件开发或应用项目中的具体应用,达到增强他们工程实践能力的目的。

5.2课时安排

该课程设计以《软件综合开发案例教程》为实践教材,其实践教学方案主要是按照15个实验单元并依据教材内容和知识单元组织进行制定的。

第1单元:对课程设计提要求,对Linux操作系统知识点进行讲解,并安排学生进行Linux操作系统的实际应用,学会Linux虚拟机的安装、配置和使用。

第2单元:对应用GCC进行软件开发知识点进行讲解,安排学生进行GCC开发应用实践,学会编写工程文件、用GCC编译C/C++程序、调试程序、建立集成开发环境。

第3单元:对网络通信及Socket编程知识点进行讲解,安排学生进行网络通信的Socket编程实践,学会在libtcp++环境下建立客户/服务器的工作模式。

第4单元:对MySQL数据库应用知识点进行讲解,安排学生进行MySQL应用的相关实践,学会用MySQL C API进行数据库应用的简单开发。

第5单元:对Gtk+用于界面设计的知识点进行讲解,安排学生进行Gtk+的界面设计实践,学会用Gtk+和Glade进行简单界面的开发。

第6单元:介绍股票交易的相关知识、股票软件一般包含的内容和所涉及到的技术,安排学生学习和使用国内主流的股票软件,学会股票软件的使用方法和使用流程。

第7单元:对开源股票软件Stock进行分析讲解,并带领学生将Stock源码编译成可执行的二进制码,要求学生学会处理编译和连接过程中出现的各种问题,特别是强类型问题。

第8单元:对应用软件国际化和本地化相关知识和技术进行讲解,对Stock软件的Gtk+1.2界面实现方法进行分析,并带领学生解决Stock软件中文显示问题,要求学生掌握在Gtk+的界面控件上和绘图区中正确地显示中文、英文及数字方法。

第9单元:对Stock软件的数据库应用编程、网络通信编程等实现方法进行分析,带领学生解决股票数据库的建立、股票数据的导入等问题,要求学生掌握Stock软件中用MySQL C API进行股票数据库应用、用Socket进行网络通信的开发技术。

第10单元:对Gtk+2.0特点进行讲解,带领学生解决Stock软件从Gtk+1.2到Gtk+2.0升级中遇到的各种问题,要求学生掌握确保软件能够升级的软件设计思想和问题解决方法。

第11单元:对在Windows上进行Gtk+应用程序设计的方法进行讲解,带领学生将Stock软件从Linux上移植到Cygwin和MS VC上,并解决移植过程中的问题,要求学生掌握一般软件移植的基本要点和基本方法。

第12单元―第13单元:学生按分工要求开展独立实践活动,并撰写实践报告。

第14单元―第15单元:学生按分工要求进行PPT的实践汇报和实践成果的演示。

5.3课程设计组织

课程设计以课题组形式开展,6人一组,每组必须完成6篇报告(Linux虚拟机使用总结报告、Linux下GCC编程总结报告、MySQL数据库应用总结报告、基于TCP/IP的Socket编程总结报告、用Gtk+设计图形用户界面总结报告以及股票分析软件实现技术总结报告),指定课题组长(完成报告6),课题组其他成员分别完成报告1~5,每人1个,不能重复。

课程设计以实践为主,完成教材中所布置的实验习题。作业以电子方式交付。

5.4课程设计考核

对每位学生,课程设计考核包括四部分:

1) 电子版课程设计报告(40分),对于报告其撰写要求如下:

① 每个报告不少于1万字(不能以图表代文,论述为主);

② 报告的基础是每章的实验习题;

③ 报告可分4~5章(第一章概述,最后一章总结,其他章节自行组织);

④ 报告以教材为样式进行排版;

⑤ 报告不要出现网上拷贝的痕迹,网上摘录的要进行相应处理,严禁聊天用语、博客用语以及混乱的控制符和全角符号;

⑥ 图表要清晰,重要的图表要亲自画或截,不要拷贝。

2) 每位同学要准备总结报告的PPT汇报(10分钟的汇报),汇报成绩20分。

3) 每位同学要进行所选报告的成果演示,演示成绩20分。

4) 考勤成绩20分。考勤10次,每次2分,考勤缺席5次的无成绩。

5.5基于案例的“界面设计”实践教学效果

“界面设计”课程自2006年开设以来,学生普遍反映良好,口碑颇佳,软件开发的综合实践能力得到了明显的提升。

最近,我们对学生学习该课程的体会和感想进行了调查,学生普遍认为案例内容和实验方案丰富、实用和生动,大大地开拓了他们的眼界。通过基于复杂图形用户界面的大型应用软件开发方法和技术的学习和实践,对现代软件开发方法学和现代程序设计思想有了更进一步地理解,增强了软件综合开发和解决复杂问题的工程实践能力。特别是对软件开发有了大局观,对软件开发中软件设计和高质量代码编写的重要性有了新认识,对优秀开源软件和开源技术有了极大的兴趣。下面是部分学生在课程设计实验报告中对“界面设计”的案例教学谈到的心得体会:

1) 通过这门课的学习,我基本掌握了Linux虚拟机的使用,以及Linux下的GCC编程,应用软件图形用户界面GUI的界面设计,网络数据库应用技术和网络通信技术,并能进行具有图形用户界面程序的开发,提高了应用C/S模式、管理数据库数据等实际应用能力。由于平常主要都是理论课程,实践机会比较少,大家组队进行开发就更少了。通过此次实践,我体验到了团队开发的重要性,学会了如何合作开发,并大大提高了我解决问题的能力,为以后工作学习增加了丰富的经验。

2) 以前学习Linux时仅把它当作一种单纯的操作系统,没有在上面做开发,导致对Linux了解不多。经过半个学期基于Linux的股票案例学习后,我收获颇多。我主动收集和阅读了大量资料,并锻炼了实际动手能力。我学到了如何在Linux环境下搭建开发环境、进行编程和开发,并对MySQL,GCC,Gtk+等开源软件在Linux下的应用有了初步的认识,加深了对Linux下编程整体流程和工作细节的理解,知道了Linux下调试程序的方法,真正了解了程序在Linux下从编译到运行以及排错的全过程。

3) 这次课程设计我们的收获非常多的,首先大家对于一款良好的软件应该具有什么样的功能和性能有了比较清楚的认识,这对于我们以后在软件开发乃至今后的工作都是有益处的。其次,这次复杂的课程设计锻炼了我们各方面的能力,包括团队合作、资料查找、学习、融会贯通以及查错能力,等等。可以说对我们的综合能力是一次极大的考验。在整个工程的过程里,大家接触了很多以前没有触及过的知识并对其有了较为深切的理解。最后,本次课程设计沟通了我们几位同学之间的感情,在辛苦工作的同时,也留下了难忘的回忆。

4) 我觉得这门课对我很有帮助,让我学会了一个我以前不会也没接触过的有用的软件,学会了如何使用Gtk+来进行图形界面的设计。通过这一学期的学习,课上听老师对一些知识的讲解,对Linux更加熟识了,对如何在Linux下安装各种有用的软件更加清楚。在课后我们组成小组,分工明确,每个人认真地负责自己的那部分的工作,查资料,学相关的知识,然后再给小组的每个组员讲,使组内的成员对大家的工作都很熟识,这样合作起来就更加的融洽,而且也可以互相讨论和帮助。在这门课上学到了很多知识,也锻炼了动手能力,最后作报告培养了大家的语言表达能力。总之,我觉得这门课很有意义。

5)Stock股票软件的成功运行让我们对自己的能力充满了信心。从最开始我们兴致勃勃地组成一个小组,憧憬着成功的那一天开始,一路磕绊,直到今天我们看到一个完整的软件,这里的每一个细小的环节都有着我们为之付出的艰辛努力。这与我们小组成员的团结努力是密不可分的,尤其是负责编译、调试和排错的组员。课程设计中遇到的问题,不但没有将我们击垮,而且在问题解决过程中,使得我们对许多知识又有了新的理解。感谢学院给我们提供了这样一门自己动手的课程,它对提高我们的编程能力非常有帮助。

6) 这次课程设计使我建立起一种坚持到底不放弃的精神。之前的我总是缺乏恒心,一旦进展不顺即想放弃。这次强迫我接触很多不会的新东西,而且时间上有限制,令我不得不一次次与失败和不顺打交道。在翻越这一道道“沟壑”的过程中,我觉得自己的毛躁在逐渐退去,变得越来越稳健。我想精神上的成长可能比知识的增多对我来说意义更大。

6结语

我校专家对这种模式的案例实践教学给予了充分肯定,指出计算机学院或软件学院学生的软件开发综合能力培养一直是高等院校软件人才培养的一个“短板”,一直缺少好的实践教学方案、好的实践教学案例和好的实践教学教材。因此,软件开发综合能力培养的案例教学在传统实践教学的基础上做了很有意义的探索和实践,其成果显著、资源完整,具有很好的推广和普及基础。学校为了强化该项成果在软件工程专业学位研究生能力培养上的转化和推广,将研究生的“高级软件编程技术”课程列为学校重点建设的精品课程。因此,我们相信,随着精品课程建设的深入开展,软件开发综合能力培养的案例教学基础将进一步夯实,其成果将会进一步凝练、宣传和推广。

参考文献:

[1] 蔡建平. 软件综合开发案例教程[M]. 北京:清华大学出版社,2011:序

[2] 陈红霞,毛京一,滕月鹏. 计算机蓝领到软件蓝领:高职软件开发人才培养模式探讨[J]. 计算机教育,2010(1):135-137.

[3] 教育部办公厅关于进一步加强示范性软件学院建设工作的通知[S]. 教高厅(2007)4号.

The Comprehensive Ability Training for Software Developments Based on Case Teaching

CAI Jianping

软件开发实习工作报告篇(6)

2实习报告评分标准

软件开发实习工作报告篇(7)

中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2013)34-0124-02

Research on the Project-driven Teaching Method of “Software Engineering”

Chen Haiyan,Zhang Yuping,Zang Lie,Shen Guohua

(College of Computer Science and Technology,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)

Abstract:“Software engineering” is the only comprehensive curriculum for undergraduates of our college. In this curriculum,the process,principles and methods of software development are introduced,furthermore,a wide range of expertise are much needed simultaneously. Abstract theoretical knowledge and high degree of practicality make this curriculum difficult for teachers to teach and for students to grasp. This paper proposes applying the project-driven teaching methods to solve the problems existing in the current “software engineering”teaching,In this method,project development activities will go throughout the whole teaching process. Teaching content,practical content and implementation steps of each stage are designed. The practice shows that the method can improve students' practical ability and deepen the understanding of the theoretical knowledge.

Key words:Software engineering;project driven;teaching practice

软件工程的教学目标是教授学生软件开发的方法,以指导学生进行实际系统的开发。《软件工程》课程教学目前仍以教师讲授为主,缺少同步的软件开发环节,这使得软件工程的基本原理、方法只能是抽象而枯燥的概念,学生无法深入体会其精髓和本质,严重影响了学习兴趣。软件工程课程所介绍的内容可以看作是高度总结的软件开发经验,学生只有通过同步的实践才能深刻体会,进而转化为自己的开发经验,在找工作和工作过程中受益。

一、项目驱动教学法介绍

项目驱动教学法是一种建立在建构主义学习理论基础上的、有别于传统教学的新型教学方法。建构主义教学设计原理强调,学生的学习活动必须与任务或问题相结合,以探索问题的解决方法来驱动和维持学习者的兴趣和动机。“项目驱动”教学模式的主要特点是“以项目为主线、教师为主导、学生为主体、注重实践”。将该思想运用到软件工程的教学过程中,就是按照软件工程思想将软件开发项目按阶段展开并贯穿于整个教学过程。通过项目的导入,有效激发学生的好奇心和求知欲,促进学生主动学习;通过项目的逐步展开使学生不知不觉地掌握抽象的软件开发和项目管理知识,并对软件开发过程产生系统的认识;经历整个过程能培养学生分析、解决问题的能力和团队协作精神,最大可能地将理论转化为自己的经验。

二、项目驱动教学法的实施

项目驱动的软件工程教学法包含课堂讲授和项目实施两个部分。教师在课堂向学生传授软件工程的原理和方法,介绍常用开发环境、开发工具,使学生有一定的理论知识准备和平台准备。项目的实施由学生根据所学方法进行项目开发。在实施过程中,教师必须及时评价学生的阶段性成果。此三步就形成了学习—实践—反馈的良性过程。本章剩余内容将详细阐述项目驱动的软件工程教学实施过程。

1.准备阶段。教学内容:软件工程概述;补充介绍选题方法。实践内容:分组与选题。(1)分组。将一个班的学生分为若干个项目组,每组3~5人,每组有一名组长作为项目经理组织后续的项目开发,负责给成员分配角色,如系统分析员、软件设计师、软件开发工程师、软件测试工程师。根据角色,每个成员都有相应的任务。(2)选题。在项目驱动教学法中,项目选择是关键步骤,关系到整个项目能否顺利实施。因此,在各组自选项目时要注意:尽量选择自己熟悉的流程来构建软件系统,如图书馆借还书系统;所选系统有3~5个功能模块,过于复杂则难以把握,过于简单则缺乏整体性;尽可能选择与实际需要相结合的项目、科研创新基金项目等;项目开发所需的软硬件都是可获得的,所需开发技术是学生已掌握的或短期内可掌握的。最后,教师要认真审查学生选题,避免重复,控制规模,确保可实现。

2.需求分析阶段。教学内容:软件需求分析原理、结构化分析法、面向对象分析法;补充介绍主流建模工具、开发平台、Web开发环境。实践内容:深入了解和分析需求,形成文字化需求说明;安装建模工具,使用Rose/Visio进行需求建模,绘制用例图和活动图,完成软件需求分析报告。配置开发环境,熟悉开发环境的使用,编程实现“登录”功能。教师及时批阅和评价需求分析报告,重点检查用例分割的粒度是否合适,指出学生在运用方法和工具解决实际问题时存在的不当之处,对突出问题进行集中讲解,确保学生建立正确的认识,树立信心。

3.软件设计阶段。教学内容:软件设计原理、结构化设计法、面向对象设计法;补充介绍平台设计、界面设计及工具的选择、数据库设计及数据库管理系统的选择、程序设计语言及编程环境的选择、出错处理。实践内容:在Rose/Visio中绘制类图、顺序图、状态图;用PDL对关键处理进行描述;对典型界面进行设计;数据库基表设计;完成软件设计报告。编程实现“读取数据库数据并显示到页面”的过程。教师及时批阅和评价软件设计报告,重点关注类图的合理程度、顺序图表达细度等,指出存在的问题,确保学生充分经历软件设计阶段的各种设计任务。

4.实现和测试阶段。教学内容:软件测试方法、主流测试工具介绍。实践内容:编写系统源代码;设计测试用例,进行单元测试、集成测试和系统测试;完成系统测试报告。教师及时批阅和评价测试报告,指出可能存在的漏洞。在系统完成后,根据开发文档对系统进行整体检查,重点关注学生常常疏忽的出错处理问题,在软件用户友好性方面提出更高要求,增强其专业素质。

三、结束语

初步的教学尝试表明,在项目驱动的软件工程教学模式下,教师和学生的工作量都有大幅增加。教师必须熟悉开发过程和主流开发平台,必须有实际开发经验以应对学生遇到的各种问题,必须积极引导和评价以增强学生开发软件的自信心和成就感。学生则必须依据自身能力进行自主学习与协作学习,在项目开发过程中充分发挥主观能动性和创造性思维,全面提高其作为软件专门人才的综合素质。

参考文献:

[1]舒新峰,陈莉君.“软件工程”教学改革与实践[J].教改纵横,2009,(4):59-60.

软件开发实习工作报告篇(8)

一、引言

Illustrator是矢量图形处理软件,作为平面设计的必修专业课程之一,职业院校学生很有兴趣,认识到学好Illustrator对就业帮助很大。案例化教学,就是利用多媒体手段,强化学生的实际操作能力,尽快练就“上岗”技能,实现就业目标。

二、案例化教学思路

学生学习平面设计软件的目的是设计制作出多种商业广告产品。教学形式也应该从实际需求出发,由浅入深、循序渐进,每个知识点配上相应的实例,利于学生上机训练,利于理解和掌握的内容重点提示,让学生从枯燥的命令学习中跳脱出来,真正学会“做事”。

根据《Illustrator平面设计》要完成的教学任务和教学特点,将教学内容分成基础理论和案例分析。

案例分析是关键,实际教学时从海报招贴设计、报纸与杂志广告设计、Pop广告设计、DM单、画册设计等方面选择有代表性意义的案例剖析讲解,让学生掌握不同类型的商业广告的设计要素和表现手法,很好地调动了积极性,激发出学习兴趣,使学生不受教材约束,由被动学习变为主动学习,简化理论记忆,重视实际操作,在知识积累过程中善于发现问题、分析问题、解决问题。

三、案例化教学实践

1.基础理论

第一,平面广告基础知识及平面设计软件主要讲解平面广告的类型、特点及投放的市场环境;Illustrator的特点和优势、自定义有利于操作的工作界面等。

第二,广告的构图设计及理论,重点讲解版面构成。一个良好的版面分割,会产生视觉上良好的舒适感。“上中下;左中右”的简单“版面分割法”易懂易记,结合案例对“版面分割法”剖析、演示,让学生每人制作出一份个人简历封面,实战演练。

第三,Illustrator软件重点讲解图形绘制、编辑图形、文字处理等内容。学生对基本操作有了认知后,讲述画笔与符号、图表应用、图层与蒙版、混合与封套扭曲、效果、外观和图形样式等命令,使学生通过这些工具绘出带有各种笔触效果的路径。用符号工具方便、快捷地生成类似的图形实例;根据数据生成多种多样的图表并能美化其外观。绘制复杂图形时能将对象放置到多个图层中,利用混合和封套扭曲使图形更加丰富;运用滤镜和效果,模拟制作摄影、印刷与数字图像中的多种特殊性,表现出多彩画面。

2.案例剖析

让学生业余收集商场海报,讲解海报的种类、纸张类型、常用的设计表现手法等。要求学生搞懂商品海报的制作过程,熟悉软件中基本图形绘制、光晕工具、变形工具及其相关控制调板的使用。

以报纸广告和杂志封面广告为例,讲解杂志和报纸广告的媒介特点、版面分布和拼版、开本、印刷色彩以及设计表现的注意点等。重点掌握软件中的旋转、缩放、镜像对称、倾斜、扭曲、变形、自由变形及路径查找器等命令。

以“音乐会DM单”为例,讲解DM单与传统广告刊载媒体的区别、设计制作方法、常用折法等。熟悉软件中的铅笔工具、平滑工具、橡皮工具、节点的删除、增加与转换工具。

以“酒店活动”宣传设计为例,讲解POP广告的种类和作用及表现手法。学会套用各种POP字体,选用素材插图,掌握上色功能以及多种装饰手法等,接触软件中的效果和滤镜、剪切蒙版和不透明蒙版等命令。

宣传画册是商业贸易活动中的重要媒介,以“企业文化手册”“校园文化手册”为例,讲解宣传画册的设计要点、种类、功能,包括纸张选择和装订要求等内容,都要让学生了解掌握。

包装设计以“通信公司纸袋”和“音乐CD封套设计”为例,讲解包装设计的特征、意义、分类和功能,学好软件中的混合、封套扭曲等命令,充分发挥包装在产品销售中的作用。

环保是当今世界主题,以“自然环保广告”和“环保公益广告宣传”为例,讲解软件中钢笔工具、画笔工具、渐变工具、混合工具基本图形绘制等命令,让学生学习、操作公益广告的制作过程,从实践中体验如何去实现自己的创意。

四、结束语

案例化教学实现了理论与软件操作的理想结合、知识点与不同商业案例的结合,从而加强了学生的软件操作意识,避免了学习的空洞、抽象,使学生在完成教学后能够根据实际需要快速完成图案创作草图,并通过电脑完成印前制作,效果良好。

软件开发实习工作报告篇(9)

生产实习是电子信息工程专业学生不可缺少的实践环节,本次实习是在学生学完所有基础课及技术基础课和大部分专业课后进行。实习的目的在于通过在网络和通信公司、企业广域网和内联网(Internet/Intranet)或实习基地的生产实践,使学生能将所学的理论和实践相结合,巩固消化所学的知识,培养实践操作技能,建立网络、信息系统集成概念,并为后继课教学及毕业环节打下基础。

二、实习要求

(一)解计算机通讯网络及企业内联网的构成和配置,掌握所接触信息系统(软硬件)的工作原理,结构,安装,及故障识别方法,熟悉基本网络测试工具的使用方法和系统规划软件和网络数据库的使用方法。

(二)了解服务器、交换机、Hub、网卡、光纤和粗细缆的功能,安装,维护及使用方法,了解它们选型的一般原则及对应的网管软件使用等。

(三)了解所在企业信息流的组成,即供应链、产品链,资金链、信息链的性质和用途,初步形成企业信息系统和计算机通讯网络的整体概念。

(四) 通过讲座、参观,了解通讯及网络技术、企业信息管理系统、电子商务的发展情况、使用情况、新成果新技术的应用情况。

三、实习内容

讲座(1)金杯CIMS

时间、地点、报告人、单位、报告内容、专业认识和体会

讲座(2)大显网络集成工程建设

时间、地点、报告人、单位、报告内容、专业认识和体会

讲座(3)铁通光纤数据通信、网络设计

时间、地点、报告人、单位、报告内容、专业认识和体会

注:侧重内容:通信设备、方案设计、设备选型、组网、内容总结、心得

实习单位(1):沈阳铁通公司

时间、地点、参观单位简介、参观过程、情况总结、心得

侧重内容:局域网的组成、光纤通信

实习单位(2):沈阳汽车制造厂

时间、地点、参观单位简介、参观过程、情况总结、心得

注:侧重内容:企业生产流程、控制网络、管理网络、企业生产信息管理集成系统软件结构、功能、实现、应用情况

实习单位(3):大显网络工程公司

时间、地点、参观单位简介、参观过程、情况总结、心得

侧重内容:企业生产流程、控制网和管理网集成硬件平台、软件平台、企业信息管理系统软件结构、功能、实现、应用情况

注:

(1) 实习报告分为封皮和实习报告正文(封皮应表明专业、班级、学号、姓名,报告正文如果较长,可以加目录;也可以不加,同学们可以自行选择)

(2) A4纸,正文小四号字,宋体,标题四号字,加粗,单倍行距

软件开发实习工作报告篇(10)

二、实习要求:

1.了解计算机通讯网络及企业内联网的构成和配置,掌握所接触信息系统(软硬件)的工作原理,结构,安装,及故障识别方法,熟悉基本网络测试工具的使用方法和系统规划软件和网络数据库的使用方法。

2.了解服务器、交换机、hub、网卡、光纤和粗细缆的功能,安装,维护及使用方法,了解它们选型的一般原则及对应的网管软件使用等。

3.了解所在企业信息流的组成,即供应链、产品链,资金链、信息链的性质和用途,初步形成企业信息系统和计算机通讯网络的整体概念。

4. 通过讲座、参观,了解通讯及网络技术、企业信息管理系统、电子商务的发展情况、使用情况、新成果新技术的应用情况。

三、实习内容:

讲座(1)金杯cims

时间、地点、报告人、单位、报告内容、专业认识和体会

讲座(2)大显网络集成工程建设

时间、地点、报告人、单位、报告内容、专业认识和体会

讲座(3)铁通光纤数据通信、网络设计

时间、地点、报告人、单位、报告内容、专业认识和体会

注:侧重内容:通信设备、方案设计、设备选型、组网、内容总结、心得

实习单位(1):沈阳铁通公司

时间、地点、参观单位简介、参观过程、情况总结、心得

侧重内容:局域网的组成、光纤通信

实习单位(2):沈阳汽车制造厂

时间、地点、参观单位简介、参观过程、情况总结、心得

注:侧重内容:企业生产流程、控制网络、管理网络、企业生产信息管理集成系统软件结构、功能、实现、应用情况

实习单位(3):大显网络工程公司

时间、地点、参观单位简介、参观过程、情况总结、心得

侧重内容:企业生产流程、控制网和管理网集成硬件平台、软件平台、企业信息管理系统软件结构、功能、实现、应用情况

注:

(1) 实习报告分为封皮和实习报告正文(封皮应表明专业、班级、学号、姓名,报告正文如果较长,可以加目录;也可以不加,同学们可以自行选择)

(2) a4纸,正文小四号字,宋体,标题四号字,加粗,单倍行距

上一篇: 肿瘤专科护士实习总结 下一篇: 水泥市场调查报告
相关精选
相关期刊