软件工程导论范文

时间:2023-03-15 16:44:08

导语:如何才能写好一篇软件工程导论,这就需要搜集整理更多的资料和文献,欢迎阅读由公文云整理的十篇范文,供你借鉴。

篇1

关键词:应用型;基于项目;实践训练;答辩考核

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

一、教学内容的改革

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

二、教学方式方法的改革

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

三、考核方法的改革

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

参考文献

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

[2]韩万江.软件工程实例教程[M].机械工业出版社,2014,3.

篇2

关键词:行动导向;软件工程概论;教学模式;职业能力;工作过程

软件工程专业培养应用型、技能型的软件人才,在我国现阶段软件人才培养过程中,一直面临着“市场对软件人才旺盛的需求,而软件专业毕业生难以上岗工作”的尴尬境况,这充分说明传统的教学方法越来越不适应社会、企业发展的要求。行动导向教学倡导学生在行动中学习,为了行动而学习,其目标是培养学生的行动能力。行动导向教学模式在德国职业教学中得到了成功,无论是从理论层面,还是从实践操作层面,行动导向的教学模式都被认为是将专业学科体系和职业行动体系实现集成化的良好教学方案。

1.行动导向教学理论

1.1行动导向教学的特点及内涵

行动导向教学理论是20世纪80年代在德国盛行的一种教学模式,其教学过程强调职业实践,强调学生通过典型的职业活动获得技能和知识进而形成经验和能力。行动导向学习过程的中心是学生,教师在学习过程中起着组织、管理、协调和监督作用。教师采取“咨询计划决策实施检查评估”的整体行动实现与学生互动,让学生“独立地制定、实施和评估计划,独立地获取信息”,使学生在实践中获得专业知识、掌握职业技能,从而构建属于自己的经验、知识和能力体系。其特点主要有:

(1)教学目标的明确性。职业教育的目标是培养学生的关键能力,在注重专业教育的同时,能力素质的修养不容忽视。软件工程教学必须围绕培养学生综合能力这个目标,为将来在工作环境或劳动组织者变化的条件下自主学习来适应新的工作要求打下基础。

(2)教学内容的整合性。软件工程课的知识需要精确而扎实,并不一定追求多而深。针对这样的需求,教学过程中需要因材施教,把连贯的知识整合起来,把书本上的知识和现实的工作需要整合起来,为学生营造新的学习领域。以企业及工作环境需求和人才培养的导向为主线调整课堂教学内容,把听说能力、阅读能力、判断能力、分析能力的培养融入教学中,使教学内容更贴近学生的现实生活,更具实用性。

(3)教学手段的多样性。采用行动导向教学,打破传统的“教师是课堂的主角”模式,转变为学生成为课堂的真正主人。教师以引导、启发、调整为主,创造生动活泼的教学气氛。把学生从被动接受转变为主动思考,从传统的模式思维转变为创新思维。

(4)教学评价的开放性。行动导向教学注重培养学生创新思维的分析能力、团队协作能力、动手能力、概括分析能力等综合能力,并极大地拓展学生思考问题的深度、广度,锻炼了学生毅志力,培养了学生的个人职业素养。

1.2行动导向教学的主要教学方法

行动导向教学有一套可单项使用,也可综合使用的教学方法,根据学习内容和教学目标选择使用。

1)目标单一的知识传授与技能教学法。

①谈话教学:通过师生之间的谈话进行教学的方法,适合个体化教学辅导。②4阶段教学法:把教学过程分为准备、教师示范、学生模仿和练结4个阶段进行的程序化的技能培训教学方法。

2)行为调整和心理训练的教学方法。

角色扮演法:一种模拟情境活动的教学方法。设计一个与现实某一条件下可能相近的环境,根据学习者在这一环境可能扮演的角色,组织设计一套适合这一角色的测试项目。将学习者安排在逼真的模拟工作环境中,提出多种可能出现的问题,让其进行处理,用这些方法测评其心理素质及潜在能力的一系列方法。

3)综合能力教学方法。

①项目教学法:从职业的实际出发选择具有典型性的事例作为教学内容,学生在教师的指导下,按照要求搜集、选择信息资料,通过小组的共同研究,创造性地去解决问题,得出结论或完成问题。②案例教学法:通过对一个具体教育情境的描述,引导学生对这些特殊情境进行讨论。

1.3行动导向教学与传统教学的区别

传统教学以教师传授为主,注重认知目标的实现,学生参与度不强。传统教学在对系统化理论化的文化知识的传播上是适用的,但在对实践能力要求强、与实际工作需要结合紧密的计算机类课程的教育中是不适用的。计算机类本、专科学生的教学中,有相当多课程的教学并不一定都苛求系统化,理论知识够用即可,更重要的是实际能力的培养;对知识和技能的构建、整合和应用过程有具体而细致的目标要求。软件工程技术人才培养的目标是要求培养学生既能适应岗位,又能尽快适应工作环境。行动导向教学模式是基于学生的学习活动来构建知识、培养能力和职业素养,并能将这种能力在其他职业环境中得以运用和扩展,进而达到学用一致的目的。

通过以上分析,笔者尝试从教学形式、学习内容、教师地位、学生参与度和教学评价标准等方面,分析传统教学与行动导向教学的差异,见,表1。

从表1中可以看出,行动导向教学法对软件工程教育教学目标的获取有明显的优势,相对传统教学,它更适合也更需要在计算机教学中开展和实施。

2.行动导向教学的应用过程

在软件工程教学中实施行动导向教学,首先要建立工作任务,课程内容以工作任务进行组织,以开发的项目为中心,教学重点就是教会学生如何运用课程内容,开发该项目,进而完成工作任务。项目和工作任务之间形成一个对应关系,这就要为完成每一个工作任务设计一个项目。项目在形式上是一个具有实际价值的“产品”,内容上视为一个工作任务,其目标是培养学生的专业能力和职业素养。完成工作任务需要学习(行动)过程,通过学习(行动)来获取方法。通过一个个工作任务的实施,让学生理解和把握课程要求的知识和技能,培养分析问题和解决问题的能力以及团队精神、合作能力等。学生在“做中学”,教师在“做中教”,从而提高学生的各种关键能力。

软件工程概论是计算机专业的一门核心课程。结合课程目标从设计思路、课程目标、课程内容与要求、教学方法等几个方面进行行动导向教学尝试。

2.1设计思路

本课程以“突出能力培养”“紧扣工作任务”为原则选择与软件工程相关的知识,如软件工程方法学概述、系统分析、系统设计、系统实现、系统测试、系统运行、面向对象方法学等学习项目。项目的确定以软件工程师的工作任务和职业能力分析结果为依据,并以项目开发基本操作过程为主线编排。课程内容的选取结合高等院校学生的实际情况和就业需要,按照满足职业能,力培养要求的原则,紧紧围绕工作任务来进行。

每个项目的学习都按软件开发流程进行,以工作任务为中心融理论于实践,实现理论与实践一体化。教学过程中,要通过校企合作、顶岗实习等多种途径,充分开发学习资源,给学生提供丰富的实践机会,强化实训和实际操作,培养学生的动手能力。

2.2课程目标

通过任务引领的项目活动,掌握软件工程基本技能和相关理论知识,能胜任本专业软件工程师岗位的工作,同时具有诚实、善于沟通和合作的品质,在此基础上形成以下职业能力:

(1)编写各阶段文档的能力;

(2)熟练掌握使用结构化方法、面向对象方法进行软件开发;

(3)具备从事软件系统的测试与管理的基本能力;

(4)从工程的角度培养学生对已学知识的综合运用能力。

2.3课程内容与要求

针对上面的设计思路和课程目标,将软件工程概论课程相关的知识分解为7个学习项目;教学实施过程中,可分为3个阶段,具体内容见表2。

2.4情境设计

结合学生的毕业设计,对课程内容进行情境设计。限于篇幅有限,只列出面向对象方法学之面向对象分析的情境设计,见表3。

3.创新点

此项目按照行动导向教学的思想内涵结合信阳师院计算机与信息技术学院的实际情况,以软件工程概论等课程为依托实施行动导向教学,培养学生创新能力。

3.1教学设计原则的改变

软件工程概论在教学设计中始终贯彻以学生就业为导向,与企业合作为依托,以软件开发职业岗位群的需要确定人才培养目标为主体,以培养学生职业素质和职业能力为根本,将提高学生的就业竞争力和可持续就业能力作为课程教学根本目标的指导思想。由企业专家、项目组教师和校外课程专家共同组成了软件工程概论课程开发组,共同进行基于典型工作过程的教学设计。

3.2教学模式的设计与创新

传统的显性课程及教学模式在一定程度上关注学生技能的培养,较少关注学生的情感、态度等关键能力的培养。这种模式对学生职业能力的培养不全面,不能适应社会发展的需求;而行动导向教学模式设计,将单一课程的学科知识转变成系列的工作过程,将课本上死板的原理转变成现实运用的活技术,缩短了理论与实际运用的距离。它不仅涵盖了职业岗位所需的技术知识、技术能力,而且还将社会能力、方法能力、情感与态度能力一起融入到整个学习过程中,学生的能力得到全方位的提高。项目组依据软件开发的实际工作过程整合教学内容,依据企业项目需要调整工学结合的教学组织形式,设计了“校企结合、订单培养、顶岗学习、课题组”等多种教学形式,提高了学生的创新能力。

3.3课程教学体系的改变

行动导向教学与传统教学计划的最大不同是,基本固定第1阶段的课程,半固定第2阶段的课程,灵活安排第3阶段的课程。根据实际需要可以调整第2阶段的部分课程,根据市场需要和项目开发的要求开设第3阶段的课程。该课程的构建与开发,紧贴信阳市及周边地区经济与社会发展的需要,紧贴软件工程师岗位群的需要,以软件工程师岗位群所需知识、素质和关键能力构建课程体系。在软件工程专业调研基础上,打破了原有的具有明显学科化倾向的课程体系结构,依据“以典型工作任务为主线,以培养职业能力为核心”的指导思想重新构建了以工作过程为导向、以实际项目为载体与岗位能力相对应的课程体系。

篇3

[关键词] 软件工程;知识领域;教学内容衔接

[中图分类号] G642.0 [文献标识码] A [文章编号] 1005-4634(2013)06-0075-03

0 引言

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,是信息领域发展最快的学科分支之一[1]。2001年经教育部和国家计委批准,全国成立了35所示范性软件学院,后增加到37所,截止到2012年12月30日,全国共有软件工程专业点415个。这415所高校由于学校定位和专业特色不同,所修订的软件工程专业人才培养方案也有所差异。为使人才培养方案与社会发展和教学改革相适应,需要不断对人才培养方案进行修订。在修订过程中,如何做好软件工程专业课教学内容的衔接,一直是计划制定者面临的一项难题。吉林工程技术师范学院软件工程专业经过多年的教学研究和实践,发现解决软件工程专业课教学内容衔接问题的有效办法就是要从解读软件工程教育知识体系入手,选择合适的知识单元进行课程整合,并根据学校的人才培养定位,优化课程体系的宏观结构和课程之间的微观顺序。

1 解读软件工程教育知识体系,整合知识 单元

1.1 解读SWEBOK和SEEK

我国软件工程本科教学规范的制定主要研究借鉴了SWEBOK和SEEK [2]。由ACM和IEEE/CS联合工作组组织制定的软件工程知识体系SWEBOK为确立软件工程的学科地位打下基础,SWEBOK 将软件工程划分为10个领域:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量。计算教程软件工程卷SE2004提出了软件工程教育知识体系SEEK,为制定软件工程本科教学计划提供了指南。SEEK由知识领域、知识单元和知识点三个层次组成。SEEK包含10个知识领域和1个应用知识领域,共计48个基本知识单元、17个应用知识单元,建议最小核心学时数为497。10个知识领域主要由计算机(CS)学科知识领域和软件工程(SE)学科知识领域组成,分别是:计算基础(CMP)、数学和工程基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证与确认(VAV)、软件演化(EVO)、软件过程(PRO)、软件质量(QUA)、软件管理(MGT)。1个应用知识领域为特定系统与应用(SAS)。

1.2 整合知识单元

知识单元必须以课程的形式进行讲授,所以必须将SEEK的10个知识领域的知识单元整合为课程名称。具体整合过程为:整合CMP中的知识单元为软件构造、形式化开发方法、C语言程序设计、算法与数据结构、计算机组成原理、操作系统、计算机网络、数据库原理8门课程。整合FNT和EVO中的知识单元为离散数学与软件工程导论2门课程。整合MAA和DES中的知识单元为软件需求、系统分析与设计2门课程。整合QUA和VAV中的知识单元为软件质量保证与测试1门课程。整合MGT中的知识单元为软件项目管理1门课程。整合PRO中的知识单元为软件过程管理1门课程。整合后共计15门专业课程,实践知识领域个别院校可根据自身情况进行整合。

2 优化课程衔接关系,制定应用型软件工 程理论课教学计划

2.1 调整课程结构

从高校软件工程专业课程结构来看,主要有层次课程结构、核心课程结构、模块课程结构和平台+模块课程结构四种[3]。大部分院校采用层次课程结构,即公共课程、基础课程、专业基础课程和专业课程。第一、二学年主要开设公共课和基础课,第三、四学年开设专业基础和专业课。此类课程结构使得课程衔接纵向逻辑关系较强,符合循序渐进的认知规律,有利于大多数学生以较少的时间比较系统地掌握专业知识。但由于层次课程结构是多学科、多门类课程的混合体,计划制定人不太好把握课程的直线式逻辑顺序,因此不能保证教学内容衔接的连续性、顺序性和整合性。“平台+模块”课程结构是近些年出现的一种新的高等学校课程结构,由基础课程平台和一定类型的课程模块构成。根据软件工程专业的特点,将课程结构调整为由公共基础课平台、学科基础课平台、专业基础课平台3个“平台”及计算机科学模块、软件工程模块、专业方向模块3个模块构成。“平台+模块”课程结构保证了知识结构内在的相互联系和相互独立,此课程结构中的“平台”是全校或同一学科各专业学生的必修课程,体现了人才培养的基本规格和全面发展的共性要求,体现了“宽口径”、“厚基础”的现代高等教育人才培养特点。此课程结构中的“模块”解决了计算机科学课程群与软件工程课程群开课顺序的争议性问题,专业方向模块根据社会人才需求、专业发展的趋势和学生的个性学习需求而设置。软件工程学科发展很快,专业方向模块可以根据需要进行调整。

2.2 调整课程顺序

根据整合的15门专业课程,按模块进行划分,可分为计算机科学模块课程和软件工程模块课程。计算机科学模块课程主要有离散数学、C语言程序设计、算法与数据结构、计算机组成原理、操作系统、计算机网络、数据库原理7门课程;软件工程模块课程主要有软件工程导论、软件需求、系统分析与设计、软件构造、形式化开发方法、软件质量保证与测试、软件项目管理、软件过程管理8门课程。计算机科学模块的专业课程开课顺序在各高校中大同小异,基本上是先开设C语言程序设计和离散数学,然后开设计算机组成原理、算法与数据结构、操作系统,最后开设计算机网络和数据库原理。调研各高校软件工程专业人才培养方案,发现软件工程模块专业课程的开设顺序不是很一致。结合先进的基于工作过程的课程设置方法[4],参照IEEE/EIA 12207.0-1996软件生命周期工作过程标准,调整了软件工程模块8门专业课程的开设顺序,其顺序依次为软件工程导论、软件需求、系统分析与设计、软件构造、形式化开法方法、软件质量保证与测试、软件过程管理、软件项目管理。

2.3 针对应用型本科院校设置专业方向模块课

吉林工程技术师范学院作为应用型本科院校,定位为培养应用型人才,因此所制定的专业方向模块课程要与人才市场应用需求相一致。目前在我国软件应用领域,软件开发人员需求缺口很大,因此将吉林工程技术师范学院软件工程专业人才培养方向定位为软件开发工程师。目前,在软件开发领域存在两大对垒:微软的NET和甲骨文公司的JAVA,因此将专业方向划分为NET方向和JAVA方向,并依据技术路线设置相应的专业方向课程。

2.4 研究成果

综上所述,所制定的应用型本科软件工程专业人才培养方案中的理论课程体系分学期执行的教学计划如表1所示。

3 成果评价

选取吉林工程技术师范学院软件工程专业理论课程体系为评价对象,利用文献[5]所建立的课程体系评价模型和评标指标,邀请四位专家在不区分专家权系数的前提下进行评价,评价情况如表2所示。

对评语集赋分值(优:95,良:85,中:70,及格:60),最终加权得分为92.25分,处于优秀的级别。本次评价只针对教学计划中的理论课程体系(即体现教学内容衔接效果的体系)进行评价,没有考虑实践环节、师资及实施情况等。

4 结束语

通过多年教学研究实践,总结出应用型软件工程专业理论课程体系制定的流程:(1)将SEEK的10个知识领域中的知识单元整合为15门专业课程;(2)采取“平台+模块”课程结构划分课程宏观结构;(3)微调15门课程的开课顺序,按1~7学期开设;(4)针对应用型人才培养定位,划分专业方向模块并设置课程。本次研究仅限于理论课程体系教学设计。切实加强软件工程实验课程和实践环节的创新与改革将是下一步重点研究的课题。

参考文献

[1]宋雨,赵文清.软件工程[M].北京:中国电力出版社,2007:2-5.

[2]齐治昌.软件工程学科的建立与软件工程本科教学[J].中国大学教育,2006,(2):28-30.

[3]王彬斐.我国高等学校课程结构优化改革研究[D].兰州:兰州大学,2007.

篇4

去年感恩节,在IBM硅谷Rational分部做企业软件工程的金尊和跟朋友游览优胜美地国家公园后,仿《石钟山记》写了篇游记,文章最后一句话是:“今与同游饱览人间秀色指点他邦江山,其乐何似”。这位喜欢赋诗填词的IT人当时正在挑灯夜战地写一本书。今年五月,他的书出现在许多计算机书店的书架上,看过的人说,金尊和把软件工程写成了畅销书。

“从前软件工程方面的书,多是因为故弄玄虚而变得面目可憎,我是想让所有对软件感兴趣的人都能在翻开我的书之后还能继续读下去”。金尊和这本名为《软件工程实践导论》的书对稍有点计算机基础甚至只会上网的人来说都没有多大的阅读障碍,除了里面偶尔冒出来的几行编程语言。

他说软件工程是在作战,敌人是“未知”,不断变化的新因素是工程的障碍,而软件工程的一个目标就是要降低风险。“三十六计”古往今来被广为引用,除了“瞒天过海”、“借刀杀人”、“调虎离山”等成语人人运用自如而外,“三十六计”七十二变之后被运用于社会生活的各个方面:“管理三十六计”、“营销三十六计”、“IT三十六计”各行其道,以至“爱情三十六计”。金尊和也创造了一套“软件工程三十六计”,“经济为本、用户为先、管理需求、及早集成……”,全是大白话一样的四字短语。其用意在于用形象得有点家常的词语让看书的人很快理解作者要表达的意思。IBM中国软件开发中心的高级经理干毅民就说,能把软件工程这么枯燥的东西写得这么生动的还真不多见。

软件工程是分解成许多环节的创造和生产软件的过程,用金尊和的话说,关键是解决怎么在最短的时间内花最少的钱做出软件还让用户满意这个问题。而现在软件工程的教材多半是人云亦云,看书的人则被不断翻新的新术语和新模式弄得晕头转向,软件工程中的一些基本常识都渐渐被人们忽视了,在提解决方案的时候就处处是陷阱。金尊和开玩笑说,在国内外IT行业干了十年,因此有一肚子想法,而且自己平时还喜欢舞文弄墨,写书的念头就越来越强烈。

篇5

一、研究背景

软件工程是高校计算机专业教学计划中的一门重要课程。软件工程的课程体系涉及了从客户沟通,软件设计,软件开发,软件测试到最终软件维护等软件生命周期各个阶段。既是一门理论性极强的专业课程,更是一门实践性很强的课程。近年来,全国各大高校均将软件工程作为计算机及其相关专业的一门重要专业课程。计算机专业的学生通过软件工程课程,学习作为软件从业人员需要掌握的基本专业能力,为未来从事计算机软件相关的各类工作,提供理论及方法的指导。可以说,学好软件工程,对计算机及其相关专业的从业人员来说都是一门必修课。

二、教学现状

在当前的软件工程课堂教学当中,部分院校采用纯理论课堂讲授的授课形式,另一部分院校则采用理论讲授与实践实训课程相结合的授课形式。然而,从教学内容来看,当前软件工程的教学内容,主要集中在传统方法学,即传统的软件工程学。对于面向对象方法学来说,很多新的知识方法还涉及不足,特别是软件模型化,构建技术,UML统一建模语言等等一些当下社会流行的软件工具和方法。同时,实践环节较少,实践效果不够理想也是软件工程教学中普遍存在的问题。目前可供该课程选用的合适的实验项目甚少,所以学生通过实验课程所达到的效果与教学要求存在较大的差距。另一方面,学生对理论知识的理解不足。软件工程是一门计算机领域的综合性、工程性学科。涉及软件生命从萌芽、成型、成熟、生命结束的各个周期阶段的工作和任务。学习者似乎能听懂,可听完后大部分学生还处在似懂非懂的阶段,真正需要动手时,不知道该从何下手。在近年来的教学实践过程中发现,一些理论知识,过于抽象晦涩。与实际的应用需要相脱节,学生对很多知识理论,只停留在概念阶段,难以消化,更无法理解理论知识在实际的软件设计、开发、测试、维护中究竟何时何地可以运用,具体又该如何操作。理论与实际的结合仍存在很多不足。这一方面与课程理论研究性较强有关,另一面也与教师本身长期在院校从事较单一的教学工作,缺少工程项目经验,脱离实际的生产及软件开发场景,难以将理论与现实情境很好的结合传授给学生。在计算机专业毕业生的毕业设计中,也集中体现出了学生不能把理论知识有效地运用到实践活动中的问题。学生并没有真正掌握基础理论及运用理论的技能和方法,所以在进行毕业论文设计时,不能将软件工程的理论充分运用到他们的设计实践中去,从而导致设计开发的软件和撰写的文档在结构、内容等方面错误百出。

三、改革思路

(1)研究并解决软件工程教学中存在的新兴软件方法不足等问题。结合现有的专业培养方案,教学大纲,制定教学计划,改善软件工程教学现状,研究传统软件工程技术在教学改革中占的课时比例及应当讲授的内容,增加研究面向对象软件工程技术在教学改革中的地位及讲授的方式、内容和课时量。(2)研究并解决软件工程课程实践性不足,学生学习停留于理论阶段的问题。结合理论课程的内容,增强软件工程的实践性,与一些软件开发的实训课程相结合,增加学生的实践机会,将软件工程理论应用于实践当中,提高学生对课程的理解和现实认识。(3)研究并解决学生对理论知识理解不足,课程停留于课堂教学,脱离实际运用,学生难以满足应用型人才培养目标等问题。根据教学计划,教师请教并邀请相关企业的软件资深从业人员,与学生开展专业知识交流活动。以企业中实际可行的软件项目为案例,为学生讲解软件知识,让学生理解软件工程的理论知识如何有效的融入实践当中。并加深学生对课程、对当今计算机领域流行的专业知识及未来从业方向,对计算机专业从业现状的认识,真正做到应用型人才的培养。可以安排学生到企业进行调研,参与实际的企业项目。(4)研究并解决学生在毕业设计及毕业论文的完成过程中,缺少理论支撑,不能合理规范化完成设计的问题。将软件工程专业知识与计算机专业毕业设计相结合,在毕业论文指导的过程中,重视软件工程理论的应用。以软件工程方法学,软件过程,项目管理等相关知识软件工程相关理论指导学生的毕业设计,力求整个毕业设计过程达到模块化、规范化,正规化。

参考文献

[1]张海藩.软件工程导论(第5版)[M].北京:清华大学出版社,2018.2

[2]崔含鼎,梁仕云.现代教学系统工程模式论[M].广西教育出版社,2001.

篇6

【关键词】课程体系;软件工程;人才培养;

1引言

纵观中国各大高校,大部分学校都有开设软件工程这个专业,但是各个学校的培养人才方案、实施过程、培养效果却不尽相同。特别是民办本科院校生源质量普遍低于公办院校的背景下,研究我院人才培养方案并制定符合自身需求的培养方案就显得尤为重要。据中华英才网、前程无忧网等数据表明:一方面企业难以招聘到符合企业需求的人才,均需要企业投入大量的人力物力进行岗前培训;另一方面,高校对企业的需求缺乏了解,更无法培养符合企业需求的人才。这样导致学校与企业在培养人才方面脱节。而构建符合我院软件工程专业的课程体系不但可以解决企业难觅合适人才的尴尬,同时也能提高我院软件工程专业毕业生的就业优势,使得软件工程这个专业成为我院特色专业、王牌专业。

2软件工程专业课程体系构建的理论基础

2.1开启人才培养模式-校企合作

为了使学生能够掌握当今企业最流行的软件技术,学院定期聘请企业资深项目经理人到我院课堂现场讲授部分课程。另外,我院与合作企业共同建立软件工程专业实习基地,并派出资深教师现场指导,这样使得学生学习的知识能够满足企业的岗位要求。同时避免了我院闭门造车,与企业需求脱节。

2.2根据社会需求岗位建立课程体系

通过对中华英才网、智联招聘、前程无忧等求职网站招聘软件人才岗位的要求等数据进行系统分析得出:软件工程专业岗位需求主要有以下几类:Java软件工程师,Android开发工程师,C#软件工程师,C++软件工程师,高级系统架构师,数据库工程师,WEB网站开发与维护工;然而,Java软件工程师、C#软件工程师以及Android开发工程师岗位需求量较大。另外,这些岗位在理论上均要求职人员掌握数据库原理、数据结构、操作系统、计算机网络、微机原理等基础知识,基于以上这些思路来建立软件工程专业课程体系,保证学生能够系统地掌握并理解面向对象的程序设计语言。

3软件工程专业课程体系的确定

3.1调研分析市场主流技术,按照不同技术方向设定专业课体系

因为我院是民办本科院校,所以我们制定的课程体系所针对的对象是四年制本科生;那么我们将4年8个学期划分入下:即6+1+1的教学模式,六个学期校内教学,一个学期企业项目实训,一个学期校内项目综合实训(毕业设计);其中,又将6个学期划分为4个学期的专业基础教学,2个学期的专业分类教学,在专业基础教学过程中主要开设专业基础课,如数据结构,数据库,微机原理等课程,在专业分类教学过程中将软件工程专业划分为JAVA和C#两个方向,并把Andoid手机开发课程分别都加进这两个课程体系方向。

高度模拟企业软件开发流程和项目管理,选择实际应用项目分组进行软件开发。在1个学期的企业项目实训时,组织学生到合作企业参与实际开发工作,使得学生能够整体掌握开发流程以及相关技术。

3.2根据学生基础以及学习兴趣选定课程体系方向

根据岗位分布规律以及所学习技术的先后顺序,将主要课程体系归结为以下几个阶段:第一阶段开设计算机导论、高等数学、C语言程序设计、数据机构、计算机网络、微机原理机、数据库、操作系统等基础课程,为后续阶段打下坚实的基础,这个阶段主要培养学生过硬的理论基础和基本操作技能。第二个阶段开设C++程序设计、Java程序设计、C#程序设计,这个阶段主要培养学生具备初步较强的编程能力,并完全理解软件开发的过程和思想,此时学生能完成工作岗位上一些简单开发工作。第三个阶段开设程序设计、企业级开发、JSP程序设计、J2EE企业级开发,同时开设UML、XML课程供学生选择。

另外、第二阶段和第三阶段开设的课程划分JAVA和C#两个方向:JAVA方向开设Java程序设计、JSP程序设计、J2EE企业级开发、UML、XML等课程;C#方向开设C#程序设计、程序设计、企业级开发等课程;学生只能选择其中一个方向。该阶段以前两个阶段为基础,结合校内实训,企业实习的项目,使得学生具备计算机软件的基础理论、基本知识和基本技能,同时能使用用软件工程的思想、方法和技术来分析、设计和实现计算机软件系统的能力,毕业后能在IT行业、科研机构、企事业中从事计算机应用软件系统的开发和研制的高级软件工程技术人才。

3.3定期选派教师参加企业研发来保障师资水平

建设一支德才兼备、结构合理、教学水平高、教学效果好的“双师型”教师队伍,对课程体系建设来说至关重要。目前,我校软件工程专业教师的理论水平能够满足教学要求,但欠缺企业大型软件开发的实际经验,因此在打造强大师资水平方面,我校也相应制定了多种措施和规划,具备表现为以下几个方面:寒暑假可带薪到企业参加实际项目开发;鼓励教师继续深造,学校给予一定的奖励;定期组织教师到相应的科研单位、著名院校进行教学交流等践活动。

4结束语

相信通过上述课程体系培养的毕业生能够综合运用所学的专业知识分析和解决实际软件工程所遇到的问题,并且具有1年的实际软件开发经验,适应现代化工程团队的分工以及新产品和新系统开发设计,能依据自身所学技能自发学习并优化自身的理论知识体系和实际工作经验,拥有较强的实际动手能力和敏锐的专业战略眼光。

参考文献:

[1]吴晓艳.独立学院软件工程专业建设探索[J].电脑知识与技术,2010(24):6901-6902.

篇7

关键词:软件工程;课程体系;创新实践

我国于2002年设立软件工程,近年来发展迅速,目前已有多家高校设置了软件工程专业,软件工程专业的学生数量庞大。但是我国软件工程专业的人才质量与国际上仍有不小的差距,这就对软件工程专业课程体系提出了更高的要求。根据我国国情、市场的需求和高校的实际情况,对软件工程专业课程体系进行进一步研究与创新实践,对于培养出符合软件工程产业要求的人才有重要的意义。

1软件工程专业课程体系的内容

参照2004年国际上IEEE-CS/ACM的本科生软件工程教育计划SE2004,我国教育工作者研究出了软件工程专业本科生教育计划的相关文件。SE2004的主要内容是SEEK,包括计算机科学基础,软件建模及分析,软件设计、验证及确认,软件进化、过程及质量,软件管理,职业基础,数学与工程基础等十余个知识领域。由于涉及领域较多,所以一般建议最少课时不少于五百个课时。基于最少推荐课时,SE2004又给出了课程体系,包括初级、中级、高级课程,数学课程以及非技术课程。

初级课程包括计算机科学基础优先和软件工程优先两种方案。计算机科学基础优先以程序设计基础为主要课程,包括数据结构、算法等课程。软件工程优先以软件工程为主要课程,包括软件工程与计算、算法、数据结构等课程。高级课程包括自下向上和自上向下两种课程设计方案。自下向上以由小到大的顺序逻辑思路为基础,包括软件需求分析、设计、质量保证、测试等课程。自上向下以由大到小的倒序逻辑思路为基础,包括软件的系统构造,软件测试、设计等课程。

2软件工程专业课程体系建立的必要性

长久以来,我国高校的软件工程专业的人才培养以研究型人才培养为主,以理论知识和软件设计为主要内容,目的是培养软件工程和计算机技术领域的研究型人才。目前,高校中软件工程专业的学生在理论知识的运用上缺乏锻炼,将所学知识运用于实际学习与工作中的能力不足。所以,根据我国国情和高校的实际情况,面向产业需求,建立与国际接轨的软件工程专业课程体系对于人才的培养和输运都有重要的意义。放眼国外高校,他们都能根据国家与学校的特点,结合学生的个性与全面发展,培养出适应产业需求和社会发展要求的软件工程专业人才。他们的教育观念成熟,教学手段先进,实验条件优异,并且大多与相关产业的企业有联系。与我国高校相比,他们对于理论知识的理解更深入,与产业的衔接更好,更注重实践,有效提高学生们分析解决问题的能力。所以,为了尽快在软件工程上达到国际水平,与世界接轨,建立软件工程专业课程体系是必经之路。

3软件工程专业课程体系发展现状

3.1课时分配不合理

目前的软件工程专业课程体系中计算机科学基础所分配的课时过少,压缩得太厉害,无法清楚明了地讲解计算机科学基础,对教师和程序设计者产生了不小的挑战。

3.2软件工程专业课程体系的优化不足

沿用传统的计算机的相关课程,不利于教育工作者调整优化计算机的相关课程的教学内容,从而实现软件工程专业课程体系的精益求精。

3.3创新有余,实践性不足

软件工程专业课程体系的创新方案创新性足够了,但是缺乏实践性。程序设计是软件工程专业课程体系的重要组成部分,在教学过程中软件工程与程序设计有机结合,可以取得良好的教学效果。但是软件工程专业课程体系却从软件工程的角度入手,增加了难度,不易于初学者的入门与深入学习。

3.4初级课程与高级课程的衔接性不足

高级课程的两种课程设计方案,自下向上和自上向下的设计十分巧妙,但是初级课程的软件课程导论与高级课程的衔接不够明确和顺畅,有待进一步研究。

3.5非技术性课程不能有效的融合进软件工程

非技术性课程的内容设置过于简单,不能有效地将多方面的教学内容融合在软件工程专业课程体系中。

4软件工程专业课程体系的发展目标

软件工程专业课程体系的发展目标是根据国内外对于软件工程人才的需求,培养出理论知识与动手实践能力并重的专业人才,主要针对于软件开发、工程领域、现代软件工程三个领域。软件开发领域对于人才的要求是精通算法与数据结构,数据库,多媒体技术,计算机网络等专业知识。工程领域对于专业人才的具体要求是:精通电子商务、电子政务、企业与城市信息化、信息安全等知识。现代软件工程需要专业人才精通软件需求分析、体系结构、项目管理、测试与评估等方面的专业知识。件工程专业课程体系旨在结合市场需求与社会发展的要求,根据软件工程产业的需求,在理论知识的传授下,培养软件工程专业人才的综合能力,包括交流能力、团结意识、创新素质、法律基础、专业技能等。例如,英特尔公司产学合作专业综合改革项目自2011年在教育部指导下设立,旨在结合英特尔最新技术和解决方案,面向全国高等学校计算机学院、软件学院以及相关院系,通过支持专业课程体系建设、实验体系建设、专业课程建设以及实验案例开发,从而改进课程教学内容,优化课程体系,提升计算机、软件工程等专业教学质量。同时,英特尔公司将支持学校对以上相关专业进行系统化教学改革,以期课程建设成果能够在学校实施。2016年项目申请已开放,本年度重点将根据最新技术和教学要求,以培养计算机专业、软件和相关专业具有系统化能力的人才为目标,升级和开发计算机、软件和物联网专业课程专业综合改革试点。

5软件工程专业课程体系的完善与创新实践

5.1贯彻工程教育理念

按照软件工程相关产业的需求与实际环境来设计软件工程专业课程体系,规划具体的课程安排,组织形成软件工程专业基础课程、核心课程体系。

5.2以软件工程为主线

软件工程专业课程体系的设置需要以软件工程为主线来设计基础与专业课程的具体教学内容。基础课程旨在连接软件工程和程序设计,专业课程旨在锻炼学生在特定领域的理论知识的掌握与综合实践能力,最终都是为软件工程服务。

5.3培养学生的综合素质

改造传统的软件工程专业课程体系,强化初学者对于计算机系统理念的建立,对于基本概念的掌握与理解在计算机环境下培养学生利用基础理论知识解决实际问题的能力。

5.4改变非技术课程的教学方法

非技术课程目前存在的问题是衔接性不足,不能有效地融入软件工程专业课程体系。所以教师要注意改变教学方法,改革非技术课程的教学内容,基于软件工程链接非技术课程与技术课程为一体,从而更好地发展和完善软件工程专业课程体系。

5.5注重实践性教学

在专业课的基础理论教学阶段,在传授理论基础知识的同时,教师要注重理论与实践的结合,强调综合性实践教学。同时,在针对专业领域的中期教学阶段和毕业设计阶段也要给学生们提供实践的机会,提供综合实践教学,培养学生们的综合实践素养,利用已学知识解决实际问题的能力。

篇8

关键词:UML技术;软件工程;面向对象;教学改革

1研究背景

国内大部分高校的UML课程理论与实践教学尚处在一种探索和发展阶段。在教学过程中,仍然以教师带领学生进行知识学习的思路为主[1]。学生缺少自主思考,仍然处于被动接受知识状态,很难有机会体会到一个完整的软件项目开发过程。这种教学方法培养的学生,在实际工作中很有可能不知道如何开展项目,更不懂得如何推进项目和维护项目[2]。另外,UML课程的考试大多以笔试为主,这在很大程度上导致学生在UML课程学习中轻实践重理论[3]。同时,软件工程课程讲授的原理、技术、方法都是抽象的,在教学过程中也遇到了同样的问题[4]。

为了使学生能够深刻理解UML方法与软件工程思想,我们在教学中引入教学案例,用具体教学案例解释抽象复杂的概念,收到了事半功倍的效果[5-6],我们以“汽车销售管理系统”作为教学案例,要求学生根据所学的数据库原理与程序设计的知识,针对一个小型的汽车管理系统进行系统的需求分析、系统设计、数据库设计、程序编码、软件测试等,完成题目要求的功能,加深学生对数据库系原理、软件工程、程序设计语言的理论知识理解和应用水平。学生通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,达到UML与软件工程教学结合的目的。这样变抽象为具体,将实际项目训练与枯燥的课堂理论紧密结合,有利于学生充分理解和掌握各个理论知识点。同时,我们在项目训练期间安排一次教学案例讨论课,将学生分成几个小组,每组成员分别扮演开发者与用户的角色,运用所学知识展开讨论,模拟实际项目开发过程。讨论结束后,学生再根据讨论整理出相应的需求分析文档。这个过程增强了学生对软件项目开发的兴趣与感性认识,提高了他们分析以及解决问题的能力,取得良好的教学效果。

2教学实例选择与分析

目前,大多数厂商忽略了汽车销售管理系统的重要性,而本系统专为具有一定规模和经济条件的大型汽车厂设计。从进货管理、车辆采购、车辆入库、销售管理到车辆销售、收益统计等,为每个环节明确分工,并通过可视化的软件支持,有效减小了人为差错的概率,代之以高效、便捷、准确的数字化服务系统,使汽车销售管理更加规范化。首先进行项目需求分析,调查用户的实际要求,与用户达成需求共识,最后分析与表达这些需求。调查各部门与厂商需求的具体步骤如下:

1) 调查厂商情况。主要包括了解厂商的各个部门组成情况、各部门的职责等。

2) 调查各部门的业务情况。主要包括了解各个部门使用什么数据,如何处理这些数据,输出什么信息,这是调查的重点。

3) 在第二步的基础上,协助目标用户明确对系统的要求。主要包括信息要求、信息处理要求、完整性与安全性要求,这也是调查的重点。

4) 确定边界。对调查结果进行分析,确定哪些功能哪些活动由人工完成,哪些由计算机完成或将来准备让计算机完成。

调查本地从事汽车销售的企业,根据企业汽车销售的情况,设计用于汽车销售的管理系统,主要功能如下:

1) 基础信息管理。厂商信息、车型信息和客户信息。

2) 进货管理。车辆采购、车辆入库。

3) 销售管理。车辆销售(处理车辆销售单)、销售代办(处理销售代办单)、车辆查询、销售日记录、销售月记录。

4) 仓库管理。库存车辆、仓库明细、进销存统计。

5) 系统维护。如数据安全管理(含备份与恢复)、操作员管理、权限设置等。

3总体分析与设计

3.1系统需求分析

首先将汽车信息入库,经销商通过与汽车需求商(即客户)的交易活动,将相关信息存入库,然后经销商通过销售信息的查询获得汽车销售的盈亏情况,通过库存查询获得公司目前的库存情况。由此可分析系统需要达到以下目标:

1) 能很好地完成汽车的售前管理。售前管理包括供应商信息、需求商信息和汽车基本信息的入库作业。

2) 能详细地记录汽车供应商和公司之间的交易过程,即进货或退货过程。

3) 能详细地记录需求商与公司之间的交易过程,即订车和退车过程。

4) 能够对各种经济结算进行相应的记录。包括对进货结账、退货结账、订车结账、退车结账等。

5) 能够对不同权限的用户进行合理的管理。包括添加用户、删除用户、用户账号和密码管理等。

3.1.1识别参与者

系统有3个参与者,经理(系统管理员)、仓库管理员、销售员。3个参与者的功能如下:

1) 经理。经理在登录后可以使用系统内提供的所有功能,包括用户管理、客户信息管理、员工信息管理等一系列的操作。

2) 仓库管理员。仓库管理员在登录后可以对入库单、库存信息、退库单、产品信息进行操作,同时也可以查询员工的信息。

3) 销售员。销售员登录后可以对销售管理模块和零售管理模块进行操作,其中包括对库存的查询、销售业务的办理等。

3.1.2画出用例图

通过以上的需求分析,我们做出如图1所示的系统用例图。

3.1.3建立类图

实体类之间的关系与实体类和数据库类的交互如图2所示。

3.2动态行为模型

1) 用户进行信息系统管理的状态图如图3所示。

2) 用户进行数据添加、数据修改、数据删除的操作状态图如图4所示。

4数据库的分析与设计

4.1系统E-R图设计

系统E-R图如图5所示。

4.2逻辑结构设计

由于版面所限制,这里只是列出了重要的相 关表。

1) 车辆基本表。

车辆基本表如表1所示。

2) 车辆销售基本表。

车辆销售基本表如表2所示。

3) 订单表。

订单表如表3所示。

5结论

经过开展本次实例教学,学生学会了自己书写设计文档的方法与步骤,用面向对象的知识来分析和设计系统,通过画出用例图和类图进行系统的总体设计。在最后的系统实现时,学生对面向对象分析与设计的思想以及对软件工程有了更深入的理解。

参考文献:

[1] 邵维忠. 统一建模语言UML述评[J]. 计算机研究与发展,1999(4): 36-40.

[2] Grady Booch, Robert A Maksimchuk, Jim Conallen. 面向对象分析与设计[M].3版.王海鹏,潘加宇,译. 北京:人民邮电出版社,2009.

[3] 王珊,萨师煊. 数据库系统概论[M]. 4版. 北京:高等教育出版社,2006.

[4] 张海藩.软件工程导论[M]. 5版. 北京:清华大学出版社,2010.

[5] 杨晨影. 软件工程课程教学改革初探[J]. 教育与职业,2009,12(1):122-123.

[6] 崔寅生. 谈谈软件工程教学改革的实践[J]. 成人教育,2009,12(3):85-86.

Reform on Integration of UML and Software Engineering Teaching

XU Bo, CHEN Xiaolong

(Department of Computer Science and Technology, Guangdong University of Petrochemical Technology, Maoming 525000, China)

篇9

关键词: 软件工程课程设计 教学现状 教学模式评价体系

一、引言

软件工程是计算机科学、信息技术、软件工程等专业的教学计划中一门重要专业必修课[1],而软件工程课程设计是针对软件工程这门课程展开的一项理论与实践相结合的重要教学活动;它不同于毕业设计,更不同于简单的实验过程。它是软件工程教学的一个重要实践环节,为学生综合能力的运用、技术思维的形成、创造能力的培养搭建了一个平台,使学生除了掌握软件工程理论和方法外,还能够综合运用已学过的程序设计、数据结构、计算机网络、管理学和经济学等课程的技能、工具解决与其相关的理论或实际问题。

在软件工程课程设计中,很多本学科的学者与施教者总结了不错的经验,比如“激励机制”[2]、面向对象的自主实验教学[3]、课程相关体系研究[4]及相关的案例法教学实践设计[5]等,这些方法各有所长。我取其所长,结合亲身教学实践,从课程设计的目标要求,设计内容,设计的具体实施,学生成绩评价体系等方面,对软件工程课程设计教学模式作了系统的探讨。

二、软件工程课程设计的教学现状

长期以来,很多高校培养的学生存在着“什么都学过,却什么都不会”的尴尬局面,专业教育、教材与实际应用需求严重脱节[6]。传统的软件工程课程设计虽然也有设计的要求,但一般只是停留在组织学生编写软件项目若干设计文档这个单一环节上,忽略了对教学方法和内容的更新。目前,大多数院校软件工程课程设计课程教学中普遍存在的问题有以下几点。

1.课程设计目标不够明确,实验和设计不加区别。把软件工程实验和设计的要求同等对待,从而使设计内容偏少,验证性实验内容和方法偏多,实验过程变成了重复的复制和操作的过程,实验教学效果不理想,达不到培养学生独立思考和创新能力的目的。

2.课程设计内容比较陈旧,不能与时俱进。很多从事软件工程课程设计教学的教师本身缺乏项目开发的实战经验,对课程设计的内容往往从一些参考书籍的实例中拿过来让学生去做,有的甚至多年不更新设计内容,这样很容易给学生抄袭的机会,达不到课程设计的要求;同时,很多学生对设计的内容也不一定感兴趣,因此也容易扼杀学生的积极性和创新能力。

3.在项目组划分确定方面,缺乏对学生专业基础,性格和技能的分析与匹配,导致没有凝聚整组成员的合作精神和团队的开发能力。组长的核心作用很重要,但在具体的设计中,一般就是简单的按学号自然的分化,或者学生的自由组合分组,前者失去了团队能力的柔化组合与应用,后者导致少数技能较差的学生不能分到组中去而处于孤军作战的局面。

4.教师制定课程设计的指导要求目的不明确、不详细,监管力度不到位,导致项目开发团队在执行的过程中出现安排任务不合理,出现某些成员任务过重或者过轻的情况。

5.学生成绩的评分结果过于单一,评价体系不够科学合理。对学生的设计成绩的评价往往是指导老师根据学生提交的报告和设计结果来评分,这样容易忽略对学生综合能力(包括学生的口头表达能力,组织能力,团队协调能力等各方面)的评价。

因此,为了培养高素质的综合型软件人才,高等学校探索良好的软件工程课程设计教学模式就显得十分必要。

三、软件工程课程设计教学模式的探讨

针对当前多数院校软件工程课程设计课程教学中普遍存在的一些问题,我根据多年的教学经验,对该课程的教学模式作了如下探讨。

1.指导老师根据软件工程教学的特点,制定出软件工程课程设计的目标与通过该课程设计后可取得预期的收获。下面是我对软件工程课程设计制定的目标和可能的预期收获。

(1)通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,比如,软件项目的完整设计与开发过程、结构化技术、快速原型法和面向对象方法,等等。

(2)为学生适应毕业后团队合作开发规模稍大项目和综合应用本专业所学习的多门课程知识(例如,软件工程、程序设计语言、操作系统、数据库、网络编程等)创造实践机会。为学生提供主动学习(比如,对Web网页设计、或ASP交互网页技术、Java开发环境、网站构架如Struts,Hibernate,Spring,商用数据库应用、电子商务、客户机/服务器技术、Visio与Rational Rose,Sybase powerdesigner软件工具等内容的学习)、积极探索与大胆创新的机会。

(3)使学生通过参加小组团队的开发实践,了解项目管理、团队协作、与客户交流、文档编写、口头与书面表达的重要性。

(4)使每个学生了解软件工具与环境对于项目开发的重要性,并且重点深入掌握好一、两种较新或较流行的软件工具或计算机应用技术、技能。

(5)通过“稍大的”富有挑战性的软件设计项目开发实践,提高学生的自学能力、书面与口头表达能力、创造能力和与团队其他成员交往和协作开发软件的能力,提高学生今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。

2.课程设计内容选择应该具有科学性和与时俱进性。课程设计内容选择十分重要,既要体现时代性,又要体现科学性和难度的适当性,因此要求指导老师对当前软件开发领域的整个动态有总体掌握。下面是我对当前软件开发领域进行的大致归类。

(1)网站开发类:包括休闲娱乐(音乐,影视,聊天,休闲运动,旅游景点等)网站;工商经济网站(摄影,日用家居,玩具等);文学网站(诗词/韵文,港台文学,民间文学,科幻文学等);体育与健身网站(极限运动,球类,健美/健身,运动常识,网球,乒乓球等);卫生与健康网站(医学理论,医疗器械,保健/养生,论坛等);国家地区网站(北京,上海,广东,江苏,天津等);教育培训网站(小学/中学教育,职业教育,高等教育,教育软件,培训机构等);其他等类型网站。

(2)应用软件类:如信息管理系统,汉字输入,转换翻译,文字处理,压缩解压,电子阅读,文档管理,字体工具,数据恢复等。

(3)系统软件类:如系统管理,内存管理,文件管理,系统测试工具等。

(4)游戏娱乐类:如网络游戏,Flash游戏,牌和棋游戏等。

(5)其他:如安全病毒,桌面工具等。

这样,课程设计的内容可以根据学生的兴趣和爱好从以上几方面进行选择,也可以由学生自己选择设计内容,指导老师把握学生选择的项目难易程度,同时提出所要达到的要求(包括完成日期,演示时间,学生所要提交的成果,文档资料,等等)。

3.课程设计项目具体实施

(1)确定开发团队。指导老师在班长和学习委员的协助下充分了解学生的兴趣、爱好、基本技能和未来学生的就业意向,学生在教师的指导下,有选择性地进行分组,一般3至5人为一组,并选定好组长。

(2)确定开发项目。指导老师给小组成员分配好开发任务,组长写好开发计划进程安排并提交指导老师检查以便及时修进。

(3)中期检查与指导。指导老师根据各个团队提交的开发计划,对各团队开发项目进程定期进行中期检查,检查各团队的项目进展情况,包括各个小组的开会记录,所查阅的资料,当前所遇到的困难,协助与指导小组面对困难所要采取的解决方法等。

(4)成果提交与演示。课程设计结束时指导老师要求按时提交项目的相关成果,并组织小组团队进行演示与简短的答辩。演示过程要求学生用5―10分钟时间叙述设计原理、过程、系统运行的情况和体会,叙述完毕后由指导老师或其他小组成员提问,指导老师和小组成员记录该学生演示情况和回答问题的情况,并以此作为下一阶段评定该学生成绩的一部分。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

4.建立合理,科学公正的评价体系。为了对每个开发团队中的成员成绩有个公正、公平和合理的成绩,因此必须建立合理、科学、公正的评价体系,本文建立的评价体系包括:学生提交成果,学生演示与答辩,学生自评与互评,教师评分。学生提交成果根据表1学生所承担的角色来交付;学生演示与答辩重点体现对系统的原理、过程、结论,以及开发体会进行表述;学生自评和互评体现了学生的自我认同和互相认同感;最后是教师的评分,教师的评定从以下几方面全面考虑:(1)学习态度是否端正,总体表现;(2)项目组织是否有条理,协作程度;(3)软件系统文档资料表达格式是否规范、符合要求,表达是否准确、完整、简单明了;(4)系统结构是否合理,功能是否正确,人机界面是否友好;除了符合上列基本要求具体评定可以参见下表1。最后学生的总评定成绩为:0.4×教师评定分+0.2×学生互评分+0.2×学生演示与答辩评分+0.2×学生自评分。

表1 评定标准

四、结语

软件工程课程设计是一门理论与实践相结合的应用性很强课程,我结合自身从事软件开发的经验和多年的教学,从以上几个方面探索了该课程的教学模式,在实践工作中虽然取得了一定的成效,获得了学生的认可与好评,但仍处于尝试和探索阶段。在实际指导过程中还存在不少问题,例如:个别学生的积极主动性不够,存在抄袭设计成果现象,等等。这些都需要继续努力,尤其是随着软件产业的飞速发展,如何培养高素质软件人才,对教师来说更是一种挑战。因此,教师应不断学习新的知识,提升自身的能力,把握学科的最新发展动态,探索新的教学模式,深化实践教学改革,为我国教育事业作出更大的贡献。

参考文献:

[1]张海藩.软件工程导论(第5版)[M].北京:清华大学出版社,2008:55-73.

[2]张引,杨小虎,陈越.“软件工程”课程实践中激励机制的探索[J].计算机教育,2007,(5):30-32.

[3]江颉,石晓耀.面向对象的软件工程自主实验教学改革[J].实验技术与管理,2007,24(7):112-114.

[4]王薇.软件工程课程体系研究[J].计算机教育,2007,(8):31-32.

[5]巫华芳.软件工程教学案例设计初探[J].教育与职业,2007,(11):139-140.

[6]马燕,张根耀,王文发.软件工程实验教学模式改革与实践研究[J].教育与职业,2006,(36):149-150.

篇10

关键词 数字媒体技术;课程体系;游戏开发;实践

中图分类号G206.2 文献标识码A 文章编号 1674-6708(2013)107-0134-02

随着信息技术的发展和互联网的普及,以高速互联网、移动网络、数字广播电视、IPTV等为载体的数字媒体迅速发展。数字媒体技术专业是一个以计算机技术为主,艺术为辅,技术与艺术相结合的新兴专业。教育部于2004年正式批准设置数字媒体技术专业,至今已有100多所高校新办或改办了数字媒体技术专业。[1]重庆大学软件学院立以软件工程为基础,结合数字媒体新技术,培养能胜任软件系统分析与设计、数字媒体产品创作及编辑、数字内容传播、数字娱乐等领域的理论研究和应用研发工作的数字媒体技术专业人才。作为数字媒体技术重要应用领域的游戏开发近年来一直保持高速发展势头,国内从事动漫游戏自主研发的企业越来越多,国产游戏份额越来越大,自主研发的力量越来越强,培养复合型游戏开发人才的需求在不断增长。游戏设计与开发作为数字媒体技术专业中一个非常重要的方向,在课程设置上要结合当前的产业发展需要和行业发展需求,加强专业基础,加强不同学科间的交叉和渗透,重视动手实践能力的培养,注重创新能力的培养,为应用型、复合型、创新型人才的培养打下坚实基础。[2]国内很多高校在游戏人才的培养教育方面做了大量有益的探索,分析了培养现状及存在的问题,提出市场对游戏软件人才的需求及能力素质模型。[3]重庆大学软件学院开设了多门游戏相关课程,并与公司企业合作,结合实训实习以及创业实践等多种方式,培养游戏产业所需人才。

1 基础理论知识教学

数字媒体技术专业的游戏人才需要扎实的理论基础知识,具体包括数学基础、计算机基础、软件工程基础、数字艺术基础、数字媒体技术基础。

1.1 数学基础

数学基础为游戏开发提供数学和应用数学的理论和科学支撑,进行数字媒体的获取、处理、存储、传输都需要大量的应用数学知识。游戏中的数字图形的表示、生成、处理,游戏中音频图像视频的处理,游戏的算法都离不开数学基础的支持。重庆大学软件学院数字媒体技术专业的学生必须学习高等数学、线性代数、概率论与数理统计课程。

1.2计算机基础

游戏开发是以计算机技术为依托,结合计算机图形学、数字图像处理技术才得以实现,因此掌握计算机学科的基本理论、方法、工具是数字媒体技术专业学生所必须具备的。具体课程包括:信息系统基础、程序设计基础、数据结构与算法、数据库原理与设计、计算机组成与结构、操作系统原理、计算机图形学、数字图像处理等。

1.3 软件工程基础

软件工程是计算机科学的理论和技术与工程管理的原则和方法相结合,研究如何科学有效地进行软件产品的定义、设计、开发和维护。游戏作为一个产品包含文化创意、艺术设计和软件开发。游戏程序的制作就是一个软件开发过程,也一样遵循软件产品从可行性分析、需求分析、设计、实现、测试、维护升级一整套流程。所以作为基础,数字媒体技术专业需学习软件工程导论、软件需求分析、软件项目管理、软件测试理论与方法、软件体系结构与设计模式等课程。

1.4 数字艺术基础

软件学院数字媒体技术专业本科生来源于理科类高考生,缺乏艺术相关基础。而游戏是一个典型的文化创意、艺术设计和软件开发相结合的产物。游戏软件开发过程中需要与剧情创作、美工设计、音频视频制作的人员协作。游戏软件开发自身也需要一定的艺术修养,了解媒体艺术领域知识,成为技术和艺术相结合的复合型人才。在教学中安排了数字艺术导论、色彩与平面构成、数字摄影摄像、数字作品创意策划等课程。

1.5 数字媒体技术基础

游戏开发作为数字媒体技术在应用上的一个重要方向,需要数字媒体技术基础的支撑。具体开设有数字媒体概论、数字化音视频技术、DirectX图形程序设计、网站策划与Web程序设计、虚拟现实技术、移动多媒体应用开发等课程。

1.6 游戏相关课程

游戏开发是一个应用性很强的技术,所以数字媒体技术专业本科生游戏开发能力的培养采用课堂教学与实践教学相结合的模式。首先在课堂上讲授相关背景知识、技术基础,对以后在游戏的设计和开发过程中需用到的工具、方法加以系统地讲解。开设的课程有数字动画与游戏设计、游戏引擎分析与设计、游戏中的人工智能。

2 实践创新能力培养

采取分层次、分阶段、循序渐进的模式,由浅入深、由简单到综合、课内外结合,并通过开放式实践教学,鼓励学生自主立项,充分调动学生学习的积极性和主动性,培养学生的工程实践能力。依托学科,分步导向,构建实践教学体系。

2.1 课程实验

用于巩固和加深学生对于特定理论知识点的理解程度的实验。根据课程教学计划,在专业课程中安排与课程同步的验证性实验。在专业基础实验室开展计算机图形学、数字图像处理、多媒体技术等软件工程方面,及素描、速写、色彩等人文艺术方面的基础训练。在实践教学过程中,学生会获得绘画、摄影摄像、数字媒体制作、计算机图形图像处理、动画设计、游戏开发以及音视频后期编辑、虚拟现实技术与人工智能技术应用等方面的专业知识。

艺术基础素质的培养:通过艺术赏析、绘图和绘画、形态构成基础、视觉传达设计等系列课程的学习和实践,培养学生的艺术欣赏和艺术理解能力。

基本程序设计能力的培养:通过程序设计语言和面向对象程序设计、数据结构、软件技术基础、Java程序设计等系列课程从浅入深完成学生基本程序能力的培养。

数字媒体前期制作能力的培养:通过数字媒体与数字艺术、多媒体技术、平面设计与摄影摄像、计算机图形与图像处理等系列课程培养学生对数字媒体技术专业有充分的认识,具备多媒体技术和计算机图形图像处理的应用能力。

动漫游戏设计能力的培养:通过动画设计、动画制作、游戏概论等系列课程使学生掌握动漫游戏前期的设计与制作的基础概念和技术。

2.2 课程设计

要求学生采用特定的系列技术,运用已有的知识模拟系统分析、设计和实施的过程。采取团队实践的手段,遵循软件工程原则,是用面向对象方法,进行中等规模的应用开发。结合数字媒体技术专业培养计划进行计算机绘图课程设计和数据库课程设计。

在课程设计中,依据项目的大小,可以安排学生独立完成,或者分组完成,培养学生在项目开发过程中的合作交流能力。从小项目开始锻炼,为以后走入职场打下基础。

另外加入数字媒体技术方向的课程设计,使学生能够掌握和应用数字媒体作品制作和数字娱乐软件开发的各种专业知识和技术。学生按照指定的实践教学计划要求选择课题,提出设计方案进行讨论,最后在教师指导下完成课题。学生必须提交书面设计文档,学生也参加对于课题完成质量的评价,并最终以小型报告的形式提交课题。培养学生运用专业知识进行数字媒体作品的制作和数字娱乐软件的开发。

2.3 专业实训

实训环节着眼于,在未走出校门的情况下,在学院内部构造一个与在企业里实习相类似的工作环境,针对在校学生项目实战经验缺乏的突出问题,设计制定了合理的实战训练过程。基于一个具有一定规模的实际应用项目,是用主流的开发环境,采用符合软件产业界标准的软件过程规范,进行半封闭式企业化管理,让学生能够切身经历一个完整游戏项目开发的过程,培养和提高学生的实战技能和团队合作能力。

实训过程由软件企业具备丰富的项目开发经验的开发人员或学院教师指导,并带领学生在项目开发团队中扮演不同的角色,与团队其他成员共同完成实际项目。并在此基础上增加对学生职业素质以及求职技巧的培养,让学生具有更强的核心竞争力,能够在目前日益激烈的社会竞争中凸显自己的实力,能够使学生的毕业实习实现“零适应期”。

学生通过在实习基地或工程训练实验室中的实习活动体验游戏的制作工作,增加游戏作品创作和制作工程经验及团队精神的培养。专业实训安排在不同的学期末或者学期开始,集中2-3周时间完成,具体安排见表1。

2.4 工程实践

数字媒体技术专业的工程实践主要是指在短期或较长期培训之后,学生在实习单位直接参与企业实际课题的研发,在实践中进一步巩固所学知识,增强创新意识,培养动手能力和专业技能,提高就业竞争能力。部分学生到工程实践教学基地完成,部分学生在国内外软件公司完成。工程实践可以与毕业设计结合起来,一同开展。

3 结论

游戏人才是兼具数字媒体技术与艺术修养的复合型人才,须具有扎实的应用数学、计算机科学、软件工程的理论基础,和丰富的编程开发经验,掌握游戏这种特殊产品的创作开发技能。相较欧美日韩等发达国家,我国游戏产业起步较晚,但正在迎头赶上。高等学校在进行科研创新的同时,也要密切联系社会,与相关行业沟通交流,共同探讨符合产业发展的游戏人才的培养。

参考文献

[1]教育部示范性软件学院数字媒体技术专业规范研制专家组.高等学校数字媒体技术专业规范[M].北京:高等教育出版社,2011.