软件开发教学平台(精选8篇)
素质教育呼唤优秀教学CAI软件--谈素质教育与教学软件开发
人类社会已开始进入信息化社会,以计算机技术为核心的现代科学技术的开发和应用,已经对社会生活各个领域产生了重大影响,必将从根本上改变人们的工作、生活和学习方式,对教育也提出了更高的要求,“实施全面索质教育,加强思想品德教育和美育,改革教学内容、课程体系和教学方法,以适应社会对各类人才的需要。”
所谓素质,包含思想道德素质、科学文化素质、生理心理素质、劳动技能素质、审美素质等许多方面的素质。为推动素质教育,要进一步完善以提高学生素质为目标的课程体系,加快升学考试制度的改革,改变以升学率高低为主要指标评估学校、教师的做法。实现从应试教育向素质教育的转轨,必须以现代教育思想为指导,从认识上、实践上解决传统教育教学中的弊端和问题,着眼于提高全体学生的整体素质,在教育、教学内容、方法、手段和学生活动组织方式等方面进行改革。
那么,在培养自主学习的素质教育中,我们应对计算机辅助教学CAI(Computer Assisted Instruction)有个新的认识。
一.什么是计算机辅助教学CAI
在信息社会时代,在进行素质教育的今天,在指导和培养学生自主学习的素质教育中,抛开计算机参与的辅助教学无疑是不完整的教育。计算机辅助教学简称CAI,是将当代先进的电子技术、计算机技术、多媒体技术等应用于教学过程,是提高教学质量和教学效率、实现教学过程最优化的一种技术手段,是现代教育科学和现代教育技术的重要组成部分。不过,必须明确的是不能盲目性地夸大计算机在教育中的作用,在CAI课件或软件的设计上绝不能以计算机的工具性、辅助性来取代教师的主导性和学生的主体性;绝不能将计算机当成一种高级而又现代化的向学生灌输知识的新工具。
二.计算机辅助教学CAI的理论基础
计算机辅助教学应以建构主义作为其理论基础,这也是教师指导和培养学生自主学习的教学理论基础。建构主义学习理论的基本观点认为,知识不是通过教师传授得到的,而是学习者在一定的情境即社会文化背景下,借助于他人(包括教师和学习伙伴)的帮助,利用必要的学习资源,通过建构意义的方式而获得的。
在人们研究儿童认知发展基础上产生的建构意义,不仅形成了全新的学习理论,也正在形成全新的教学理论。建构意义学习理论强调以自主学习方式的学生为中心,它不仅要求学生由外部刺激的被动接受者和知识的灌输者转变为信息加工的主体、知识意义的主动建构者;而且要求教师要由知识的传授者、灌输者转变为学生主动建构意义的帮助者、促进者。这就意味着教师在指导和培养学生自主学习的过程中,应当采用全新的教学模式(彻底摒弃以教师为中心、强调知识传授、把学生当作知识灌输对象的传统模式)、全新的教学方法和全新的教学设计思想,因而必然要对传统的教学理论、教学观念提出挑战,从而在形成新一代学习理论――建构意义学习理论的同时,也逐步形成了与建构意义学习理论、建构意义学习环境相适应的新一代教学模式、教学方法和教学设计思想。由此可见,既要以建构意义学习理论作为计算机辅助教学的理论基础,又要以建构意义教学理论作为计算机辅助教学的理论基础。只有这样,借助于计算机辅助教学进行的学生自主学习能力的培养才是健全的。
三、CAI的发展及推广举步维艰、困难重重,仍是小范围实验阶段。
(1)CAI现状:部分学校买了不少的计算机,但利用率不高;教学中计算机课排得满满的,但却只用于学打字及文字处理、玩游戏、学语言、学习某些应用软件的使用、计算机考级,计算机并没有对学校教育模式产生任何影响,至于辅助教学上除了观摩教学、课件评比与现场会之类活动时,搞突击制作某一课件或利用某一段现成光盘课件外,就别提什么CAI了。可见CAI在课堂教学中并未普遍使用,这就更别提利用CAI对学生进行自主学习能力的素质培养了。
(2)分析其原因是多方面的,除了经费和硬件设备、师资水平、计算机普及程序、理论研究等因素外,另外的一个重要因素就是软件或课件本身的数量和质量问题,还有一个重要因素就是对计算机辅助教学和教学软件的认识问题。
现仅软件数量而言,是非常有限而严重不足的。软件有来自于学科教师与计算机教师联姻的小作访作业的(这一部分主要用于观摩教学,现场会评比等,很少在日常教学中使用)。另外有来自于专门的教学软件开发公司(比如国内的武大华软、深圳鹏博士、翰林汇、树人、CSC等等)的,姑且不谈这些软件的价格与质量,单就数量而言也是很有限的。
再就软件质量而言,不太符合课堂教学的要求,仅偶尔使用,基本上不具备推广的价值。目前的教学软件大部分仅适用于个别化学习和家庭教育,或为电子练习册,或为课本搬家。辛辛苦苦制作的教学软件或课件很少在课堂教学中被使用。这不能不说教育软件自身存在着严重的问题。有的软件实质上是用计算机把课堂教学的内容表现出来,帮助教师进行教学和学生学习,但是由于缺乏灵活性,反而在很大程度上限制了教师和学生等人的行为和积极性。在设计思想上更多的是从现有教学模式出发设计的,现今CAI课件开发设计的主要模式是基于框面的小步骤的分支式的,没有探索出一种新模式。传统的学习模式是以教师授课为主,集体化无个性化的个体学习行为;新模式则是以自主学习的学生探讨为主,多样化个性化的多种学习行为;传统教学是说教式的,分学科的定时教学,信息时代应是交互式的,多学科交叉的问题解决式的学习;在新的教学模式中,教师作为知识的垄断者的地位将被改变,学生可按自己的意愿分组学习。因此按照传统的教学模式设计的CAI课件有很大的局限性,无论多么优秀的人物根据科学的学习理论和丰富的教学经验设计开发的课件,也仅仅适用于某一特定的教学情境,无法适应于千变万化的教学情况。同一CAI课件很难被不同的教师应用于各自不同的教学情境中。由于如今的教学软件或课件固化了教学的内容和策略,固化了知识表达呈现的方式和顺序,模式化了学生对该内容的学习,因而排拆了师生的相互作用和课堂教学的丰富生动性,自然会受到教师的排拆。有时教师们仅看中了其中的某一片断(如动画、插图、史料等),但因课件的不可重组的整体,也不能被教师有选择地随意调用而同样拒之于课堂教学的门外。就其本质上而言,教育学和心理学原理的运用、教学策略与教学内容的选择组合、临堂应变与师生交流等,本应是教师在教学活动中的主观能动和创造天地,却被课件在事先的教学设计中“确定”了。即课件设计者取代了教师的地位,教师变成了计算机软件的“用户”了。显然,目前的CAI教学软件或课件不符合培养学生自主学习能力的软件要求,不能满足自主学习能力素质教育所需。
目前,人们对计算机辅助教学和教学软件的认识也存在问题。对教学软件的认识较局限于为教师讲课服务的固定式的讲解和演示类型的软件,侧重于一些教学中的重点、难点,或一些宏观、微观和瞬间的模拟演示。这类软件如今仍被作为主流所倡导,但是这类教学软件还是基于传统的教学模式影响,仍是以展示和呈现知识为主,更多地体现了教师为“中心”的教学理念,也融合了研制开发者的教学特色及教学个性,其普适性不强,很难推广,因此CAI难以大面积开展,CAI软件或课件不易被教师所接受。在应试教育观念的驱动下,目前的教育比较强调书本知识而忽视能力的培养,是一种以教师讲解、学生被动接受的教学模式,适应这种教学模式的教学软件必然以展示和呈现知识为主,大部分表现为书本搬家,难于适应每个教师的特点。另外一些复习、练习、题库型的教学软件也颇多。计算机辅助教学象一把双刃剑,若用于自主学习式的素质教育,则会成为推动素质教育实施的有力手段;若用于应试教育,则会成为加强应试教育的帮凶而“为虎作伥”。
四.有关计算机参与教育的发展趋势与前景。
根据信息时代日新月异的发展,结合培养学生自主学习素质的时代与未来的需要,有关计算机参与的教育有以下发展趋势和前景:
(1)参与课堂教学的CAI软件或课件的发展。目前的CAI教学软件在培养学生自主学习的素质中,不利于教师和学生的个性与创造性的发挥,不适应千变万化的现实课堂教学。学校课堂计算机辅助教学软件或课件势必向一种更灵活的、适应不同教师、不同教学情境的“积件”方向发展。积件将教学信息资源和教学思想、教法、学习理论相结合的主动权交给了师生;这样,教学设计和学习理论的运用不是在课件开发之初,而是由师生在教学活动中进行,做到以不变(积件)应万变(教学实际);积件与教材版本、与章节、与具体知识点无关,同一教学资源素材可在不同学科、不同情境中被使用,具有高度的灵活性和可重组性,有利于师生个性与创造性的充分发挥。目前的多媒体课件中,画面是运动的,思想和方法是静止的,超文本结构是多维的,但整个程序的组合是唯一的,课件的使用位置是定学科、定教材、定章节的。
(2)掀起一轮有关CAI的新的教改运动。学校教育现代化,在利用CAI培养学生自主学习素质这一块中,设备虽重要但不是关键,关键是人(校长和教师)。学校要发展CAI,首先是校长的重视和参与以及教师的参与、使用、探索与创新。学校应根据自己的办学特色,结合本校的师资、设备与环境,不断探索新的适应信息时代和未来发展需要的更加科学的教学模式和教学方法。
(3)多媒体化与网络化。多媒体技术、网络技术、虚拟仿真技术等高新技术在教育领域得到运用,网上大学、网络函授得到开展。利用网上丰富的文本、声音、图形、动画、视频等信息资源传授知识,交流方便、迅速,可实现远程、开放、交互式教学。利用网络的终身教育、自主教育、个性教育、自主的合作式学习与共享资源将一扫现在教育界中的教师授课方式而单一僵化的格局。
五.中小学生开设的计算机课的目的
在中小学计算机课中,除要求学生了解一些计算机基础知识、掌握一些常用的计算机基本操作、对部分计算机应用软件的使用之外,还应让其了解一下有关网络方面的`知识,以及学会通过网络等渠道,对自己所感兴趣信息的收集、存储、加工、维护等。以上这些当然是那些想借助于计算机进行自主学习的学生的所应具备的基本素质,也是信息时代和未来发展对每一个中小学生的最起码要求。
六.总结概述
以多媒体计算机、INTERNET网络为代表的世界范围的信息化浪潮滚滚而来,面对这一发展愈来愈快的世界,我国的教育如何在信息技术方面采取对策,以跟上时代前进的步伐;尤其是以建构主义教学与学习理论为指导的,在培养学生自主学习能力素质中如何充分利用、改革和发展计算机辅助教学,以使其高科技优势在服务于现代化教育中如何科学地充分体现。这些问题,对每一个中国人尤其是教育界人士而言是责无旁贷的。此文也算是我对祖国的现代化教育所应尽的一点责任与贡献吧。
依托信息技术在教育领域的广泛应用,开发出高质量的教学软件,使学校能充分利用现有计算机资源,加速教育的改革和发展,实现教育的现代化,顺应信息社会引起的教育思想、教育内容、教育方法和教育模式的深刻变革,促进教学质量的提高,是实施素质教育的一个重要方面.
计算机辅助教学有着其他教学形式不可比拟的直观性、生动性的特点。优秀的教学软件,可以把抽象的概念以直观、形象、生动的形式展现在学生面前,更便于学生理解:可以使不同层次的学校,拥有同等的高水平的“教师” ;可以使不同的学生,根据自己的程度接受相应的教育。但目前的许多教学软件还未能满足学校和广大学生的要求,许多软件是“一言堂”,仅侧重于知识的讲解和传授,忽视了对学生的能力培养,甚至有一些软件是书本或课堂教学的重复,是另一种形式的“黑板加粉笔”,体现不出CAI的优势.也有一些教学软件实施题海战术,对培养学生能力不利,真正能贯穿素质教育思想,对培养学生能力效果极佳的高质量、高水平软件还不多。教学软件作为一种特殊的教材,也应体现明确的教学目标,它的质量优劣、教学思想是否先进,不仅关系到我们的下一代,更关系着我们民族的发展。在CAI软件开发方面,有着相当广阔的市场前景,但优秀的教学软件并非教育工作者和软件工程师的简单组合就能开发成功,在具体环节上坯有许多课题需要进一步探索,什么样的教学软件更受用户欢迎,如何通过计算机辅助教学培养学生的素质,我认为以下几点是值得考虑的。
(一)从传授知识的角度看,教学软件不能局限于书本知识 更不能是书本知识的简单重复,而应当是书本的补充,尽可能介绍一些相关
[1][2]下一页
的课外知识,并以一种崭新的形式展现在学生面前,通过学习可以拓宽知识面,培养学生的全面素质。
(二)教学软件应充分发挥计算机的特点,利用文字、图像、声音、动画等多种形式调动学生的学习积极性,寓学于乐,同时又能大大提高学习效率。
(三)遵循教学规律,井能体现最新的教学改革成果。应当充分发挥学生的主体作用,采用“启发式教学”等方法,注重引导学生去联系已有的知识,扩充、构建整个知识体系,突出学习心理的触动,学习方法的培养,思维方式的构建,学习能力的提升,在学习过程中培养学生的创造力。
(四)教学软件的开发应当把目光投向市场,界面设计友好,使用方便,并具有交互性;产品能适合不同层次的软硬件环境,在销售上采取“薄利多销”的原则,以吸引更多用户。
(五)把CAI与人工智能技术、认知科学、教育心理学、信息科学融合起来,开发出ICAI(IntelligentComputer Assisted Instruction)软件,进一步在教学软件中体现素质教育思想。
(六)在开发教学软件的同时,更应注重教学软件平台的开发,并赋予教学软件开发平台多重功能:一方面,让教师在这个平台中,可以编制图文并茂的课件,可以对已编课件进行修改、增删并保存,另一方面。平台应提供丰富的多媒体资源供教师调用,用于在课堂教学中集成展示,使之成为教师课堂教学的有机组成部分和得力助手。
优秀的教学软件和素质教育可以说是一对孪生兄弟,优秀的教学软件及其开发平台可以推进素质教育,同样,素质教育的深人推进反过来又会促进教学软件的开发。只要在教学软件的开发中遵循客观教学规律,始终贯穿素质教育思想,井以市场为动力,教学软件必将在学校的全面素质教育中发挥越来越大的作用。
在教学平台建设过程中,容易被建设成单纯的教学课件的上传下载和静态的网上的教学内容,缺乏具体问题上学习主体之间的沟通交流,学习内容的更新也比较困难,影响学习效果和学生学习积极性,有些教学平台则纯粹建设成了技术论坛形式。
这些教学平台通常存在一些基本问题:①学习内容的更新困难。②网络学习主体之间的交流与沟通困难。③虽然有主题的归类,但却不适合高校学生从不太了解该项技术到逐渐学习的引导过程。
1本文解决三个问题的思路
对于第一个问题和第三个问题, 即是教学内容的更新问题和学生循序渐进自学的问题。要提高对教学内容的更新能力,涉及到教学内容的合理组织。本文提出一种以树状结构和网状结构相结合的数据内容组织方法,按照树状结构进行存储,能够较好的组织好知识,便于网上学习主体能够循序渐进的学习,通过网状结构相结合的方式,又能解决如先行课程和后续课程等一些知识之间的相关性问题,从而较好解决第四个问题。
第二个问题是提高在学习平台上学习主体之间的交流和沟通的能力。 一般学习同一个网页上内容的学习主体,所关注的通常是同样的教学内容,而学习同样内容的教学主体之间进行交流,形成在同一个教室里学习讨论的效果,将有效的提高教学效率。本文将介绍采用AJAX方式实现同网页学习者之间的通信,从而加强学习者之间的交流。除了这种实时交流,还可以留言提问等异步交流。
2教学内容的组织、存储
2.1教学内容的树状和网状结构
教学内容主要按照目录进行组织,如图1为部分Web开发知识的教学内容的组织。由于知识按照知识点进行归类,知识点之间是相互关联的,不同目录之间的知识可能要通过各种关系联结起来,从而方便学习者学习。系统通过知识点间的关联来完成。如图1中的实线表示目录结构的连接,而虚线为知识之间的关联,如先行课程和后续课程等等,把涉及知识则与其他相应的知识连接起来,这些知识点之间关联连接通常在客户端显示层表现为超链接等,而目录结构则表现为教学内容菜单,通过这种方式,使得学习知识之间形成了一个以树状结构为主的一种网状结构,由于结构主要存储于数据库中,检索非常方便。
这种内容结构需要对教学知识进行大量的分析和整理,并且不断完善知识连接,这就需要对教学内容进行交流评价和提高,并且知识连接易于维护,由于知识内容才用XML格式存储,不涉及任何显示要素,则维护方便的多。
2.2教学内容与显示的分离
为了使教学内容和内容显示相分离,便于教学内容的更新,方便教学内容的检索,采用Web层数据模型与视图显示相分离的方式。
传统的技术是采用JSP(Java Server Pages)技术,访问中间层组件,然后返回HTML(Hypertext Markup Language)和Javascript等客户端代码到客户端,由客户端执行,从而显示相应内容。然而,HTML技术主要用来表现数据,正是因为如此,采用传统JSP技术就会造成网页内容和网页表现形式混合在起,造成网站维护困难,尤其影响网页内容的更新。因为每做一次网页内容更新,都要到复杂的显示代码中找到相应的网页内容,反之,每更新一次网页表现形式,也要在混合着内容访问服务器代码中,找到相应的客户表现代码。
采用XML(Extensible Markup Language)技术传输教学内容,然后采用XSL技术格式化数据的显示,就能够加强教学内容的独立性,从而使的维护更加简单。而XML技术主要用来表示数据内容,并采用DTD(Document Type Definition)技术或XML Schema来规范XML文件。
例如:一个实际的学生之间进行交流时传输的知识内容采用XML表示如下:
对发送的XML数据,采用XSL技术进行格式化。XSL技术包括XSLT,XPATH和XSL-FO三个部分,可以将XML中的教学内容转变为XHTML语言,从而供浏览器显示。
2.3教学内容的存储设计
数据存储分为教学内容、教学资料、教学内容评价和教学资料评价四个部分组成,它们由教学内容目录结构联系起来。
根据数据库存储和文件存储的特点,采用数据库以及文件系统存储相结合的方式(如图2)。数据库文件有便于检索,便于更新等优点,但太大的文件将对数据库性能有很大影响,所以对于太大的教学内容,如大量的代码,视频文件或一些课件等,则采用文件方式存储,而这些文件通过中间逻辑层进行维护,从而防止数据库数据与文件系统的数据不一致现象。
教学平台最主要的角色是引导和教会学生,这和那些作为纯粹的技术问题交流论坛有很大区别,所以教学内容的组织很重要,系统将教学内容存放于数据库中。内容呈现为树状结构。如图2所示,DIRECTORY表中存放的是教学内容目录结构,其中每一个目录下都有对应的教学内容,这些教学内容存放于Content表中,教学内容采用XML按照知识点进行组织,而对于一些教学内容,有代码需要下载,或有较大的视频文件(如采用屏幕录像专家等软件制作的Tomcat数据源配置方法教学内容),我们存放于文件系统中,如图2种的MultiMedia Package以及Code and Example Package都被存放于文件系统中,由逻辑层数据组件进行维护和更新,从而保证文件存储和数据库存储的同步与完整性验证。
3网络学习主体之间动态交流
在教学过程中,为了促进学生与学生,学生与老师,老师与老师之间的交流,需要涉及一种交流机制。
在系统设计中,主要解决两个问题:①正在学习同一个知识内容的学生能够远程实时同步交流。②学生能够针对知识点提问、评价,从而实现异步交流。
3.1基于AJAX技术的同网页实时互动交流
通常情况下,同一个网页总是包含着同样的学习内容,对于这种情况下,交流形式有几种:一是直接采用服务器端编程,这种情况下,每进行一次交流,整个页面就要进行一次刷新(如图3,每一个箭头都表示一次浏览器刷新),也就是说如果有一百个学生或老师同时访问某一网页进行学习或指导,每个人说一句话,则无论说的这句话对每个人是否有用,每个人的网页都要刷新一次,网络流量极大,网络延迟时间很长,且干扰正在进行的学习,所以是不可行的。而采用ActiveX等技术则移植性不好,且需要安装插件,对于一部份学习者来说,由于安全等方面的顾虑,常常是不能接受的。而一个替代方案也许就是采用在网页中嵌入iframe,但这种方式使得网页结构复杂,不易于维护。
AJAX(Asynchronous JavaScript And XML)技术是一种运行于客户端的技术,它采用浏览器和服务器之间的异步数据传输(HTTP请求),使得网页请求信息量大大减小。如图4,图中的虚线表示利用AJAX技术进行的后台交互,这种交互方式不需要浏览器刷新,不影响客户端已有状态,在用户登录后,在客户端保存了自己的数据模型,当用户需要数据时,通常使用的是这部分的数据,而当客户端的部分客户数据不能满足要求,这是需要和服务器交互,AJAX通常采用客户端组件(如XMLHttpRequest对象)进行交互,从而不用浏览器刷新,保持较好的用户体验。这项技术使得Internet应用更小,更快,界面更加人性化。实际上是通过客户端内置组件直接访问服务器,返回数据被客户端所使用。
通过JavaScript编写的客户端即时通信程序,实际上是内嵌于这个网页中的,网络学习者可以及时向访问相同网页的学习者提问或回答问题,党进行一次交互时,由AJAX技术实现和服务器端组件通信,实现局部刷新,使得刷新界面可以在网页上最小化甚至隐藏,不干扰阅读,也可以单击页面上相应的连接展开对话界面,从而直接和正在学习这张网页的学生或进行指导的老师一起交流学习,当这张网页被关闭,则相应的用户退出。
3.2教学内容的评价更新和学生提问
在许多时候,教学内容或多或少有一些不完美的地方,需要进行评价和更新,另外一些学生会对相应的教学内容进行提问。首先采用留言板方式接收学生提问,并回答,根据学生要求,定期对教学内容进行总结更新,如添加知识链接等。
由于教学内容分成基本内容和教学代码,多媒体教学资料和课件等等(如图2),对内容所作的提问和评价等分别存放于教学内容相对应的数据库表之中,从而分别与相应的教学内容相关联。
4结束语
由于采用基于XML方式教学内容和内容显示层之间的分离,使得系统结构清晰,从而教学内容易于维护,采用基于AJAX技术的同网页交流以及学习者针对教学内容的提问和评价,能够有效促进学生以及教师之间的交流,教学内容的组织非常关键,直接决定着学生学习的效果,系统的构建应该以教学内容为中心。虽然相对于一些可见发布网站有了很大的进步,但由于学习过程本身就是一个复杂过程,以及教学内容组织的复杂性,仍然有很多地方需要提高,如教学内容联系的可视化维护方面,还有很多工作要做,提高教学内容的可维护性等等。另外要研究并设计教学内容更新管理流程,与整个教学平台运行相配套,使得教学平台内容更新等工作更加有序进行,也涉及到复杂的管理方面的问题。
参考文献
[1]邱云飞,丁晓超.基于Java实现模型动态调用.微计算机应用,2005,26(6):
[2]张晶,陈褔生.知识管理中的基于XML的知识存储.计算机应用研究,2006,(01):
[3]甘永成,陶舟.e-Learning、知识管理与虚拟学习社区.电化教育研究,2006,(01):
[4]俞茜,刘运华.基于知识管理理论的网络课程设计研究.远程教育杂志,2006,(01):
[5]史胜辉.Ajax技术在WEB客户端开发中的应用.中国管理信息化(综合版),2006,(06):
[6]杜义华,焦文彬.互联网中XML网页的链接解析与信息采集.计算机系统应用,2005,(07):
[7]李玉东,许晓兵.知识管理与企业的网上学习系统.成都信息工程学院学报,2006,(01):
[8] Dave Crane,Eric Pascarello,Darren James Ajax实战.北京:人民邮电出版社,2006.
【关键词】软件开发;双语教学;教学模式
一、引言
双语以及双语教学的概念,最早起源于美国、加拿大等移民国家。双语教学的目的主要是通过双语教学来实现多元文化的共存。这两种语言中,通常有一种是母语或本族语,而另一种语言往往是后天习得的第二种语言或者是外国语。
双语教学产生于20世纪初期,但真正被各国广泛运用则是在20世纪60年代。双语教学英国著名的朗曼出版社出版的《朗曼应用语言学词典》所给的定义是:The use of a second or foreign language in school for the teaching of content subjects。即能在学校里使用第二语言或外语进行各门学科的教学。我个人认为双语教学并非通过语言课程来实现语言教育的目標,而是通过其他科目的学习来达到帮助学习者掌握学科知识以及语言的目的。
二、实施软件开发专业课程双语教学的现状及问题
英语在世界经济、文化、技术等全球化进程中起着重要作用。我认为软件开发专业课程实施双语教学是适应技术全球化、软件开发标准化与教育国际化的需要,是培养复合型人才的需要,是推动我国软件开发向国际化、标准化发展的需要,由国内软件开发走向世界软件“外包”。但是在实现双语教学的过程中,不可避免暴露出来的一些实际问题。
师资的问题,双语教学成败的关键是师资。因为开展双语教学,不仅要求教师具备良好的专业知识,还要求具备较高的英语水平以及丰富的教学经验。仅有扎实的专业基础或仅有流利的英语都不足以担当双语教学的任务。只有任课教师既具备标准、流利的专业口语表达能力,又拥有厚实的专业背景才能有效地组织双语教学。然而,目前许多学校都出现了师资短缺的问题,而能够担当双语教学任务的专业教师更加稀缺。由于受到我国传统教育模式的制约,许多专业教师,虽然英语基本功较为扎实,教学经验也较为丰富,但是口语能力较为欠缺,难以胜任双语教学的任务。还有一部分教师,虽然具备一定的听、说、译、写能力,但缺乏专业英语知识,难以在短时间内适应双语教学的要求。正是上述问题的存在,才使得尽管双语教学在国内各高校普遍受到重视,但是真正能够利用双语教学的高职院校屈指可数。师资的欠缺是在我国推广双语教学的一个不可回避的现实障碍。通过引进和培养来解决学校的师资问题,不失为一个有效方案。我校软件学院教师为了实现双语教学,参加了NIIT公司组织的“全英文教学”教师培训,全部由印度本土教师授课,因此培训本身就是“全英文教学”的一次观摩、展示和体验。在最后的英文考试中,所有NIIT专业教师都顺利通过了考试,但也感觉到任重而道远。通过此次“全英文教学”培训,不仅对NIIT专业教师的“双语教学”能力得到了提高和锻炼,同时也是对教师能力现状的展示,培训考试的结果恰恰说明了目前NIIT教师师资现状是足以承担“双语教学”的重任。通过该案例完全可以说明对高校高素质教师进行“双语教学”培训可以达到承担双语教学的重任。
双语教材问题,目前我国对于软件开发双语教材的选用还处于探索阶段,基本上还没有形成系统的教材体系。在双语教材的选用方面,大家的做法,坚持使用原版外文教材。我个人认为使用原版计算机教材的优点很明显,一方面学生可以接触到“原汁原味”的外语,另一方面也可以借鉴国外先进的教学理念和课程体系,因为我们软件开发专业的特点,更是要求同学们能熟练阅读英文技术文档,计算机源于美国,重量级的技术文档都是英文的,不会专业英语,不会阅读英文文档,那么你只能忍受拙劣的翻译和延迟的文档(翻译出来的文档几乎都是很久以前出版的东西),严重阻碍个人的软件开发技术的提高,甚至对于一个国家也是如此。
学生素质的问题,一般来说,高职院校软件开发专业学生的外语都已经具备一定的基础,他们学习外语的经历从初中到大学一般也有6~7年之久,已经具备了接受软件开发双语教学模式的最基本条件。但是由于地区的差异以及自身情况的各不相同,他们之间的外语语言能力还是存在很大的差异,这就给实行双语教学带来了困难。如果学生语言能力不能达到一定的程度,那么双语教学的效果将会大打折扣。另一方面,在我国,许多学生深受传统应试教育的影响,习惯于消极灌输的教学模式,缺乏学习的主动性和参与热情,也给双语教学的推动带来了障碍。所以对高职学生的双语教学模式要进行细致考虑来真正达到双语教学的目的,我个人认为“循序渐进教学”、“兴趣驱动教学”和“互动教学”,能有效刺激学生在双语教学下学有所获。
三、改进软件开发专业双语教学的对策与建议
针对目前学生现状,在授课过程中,一定要注意循序渐进。应该首先让学生突破传统的“哑巴式”英语授课形式,注重“师生”间双向交流,首先让学生“开口”,突破以往学生“羞于启齿”的心里障碍,让他们自己发现原来语言就是“听懂别人说的,让别人听懂自己说的”,从简单的自我介绍开始,然后是“教材”朗诵,最后是“教材”理解和“你问我答”,循序渐进,对学生不能操之过急。
加强互动,提高学生的综合能力,互动教学理念已经成为现代教育理念的重要组成部分。互动教学对于软件开发专业课程双语教学显得尤为重要,因为软件开发专业教师双语教学最终目标是教师用双语讲授,学生用双语思维以及师生之间用双语交流,以此来提高学生的语言水平和综合能力。在具体实施软件开发专业课程双语教学时,笔者认为可以通过以下方法来加强互动,如可以采取英文项目分析、英文技术文档的选读与讨论、师生之间角色互换等多种方法来加强教学互动,以提高教学效果。此外,还可以借助互联网、多媒体等手段实现双语教学的互动。
注意保护学生的兴趣。对于许多基础较弱的学生,一定要以“激发”其兴趣为主导。通常人们对于困难都有畏惧和退缩的本能反应,但是兴趣来了,这些困难可能就会被忽视甚至忘记。因此,在课堂设计上应注重兴趣驱动,充分调动学生的兴趣,从简单的单词开始,教师注意中英文结合讲解,随时解决学生的困难,让学生忽略甚至忘记“翻译”的烦恼,而更专注于教学内容的理解和思考。
运用多媒体等现代教学手段提高教学效果多媒体课件是随着高科技的发展而在近年逐渐开展和普及的新生事物。它具有内容丰富、形式多样、使用灵活等特点。在双语教学举步维艰的今天,多媒体教学的使用无疑可以极大地促进双语教学的开展。首先,多媒体课件可以在有限的时间内传送大量的信息。其次,课件的使用可以缓解双语教材不足的矛盾。再次,课件的使用可以在一定程度上弥补教师英语口语的不足。最后,使用多媒体课件图片、录音、录像等设备将教学内容图文并茂、声形俱备地传输给学生,增加教学的趣味性,缓解学生的压力,提高学生学习的积极性。
完善相应的制度和措施要使双语教学制度化,就必须建立和完善双语教学的一系列规章和制度。在此方面,个人认为,可以从以下几方面人手:首先,改革传统的教学评价和激励制度,给从事双语教学的教师以政策上和经费上的支持,以此调动教师从事双语教学的积极性。其次,尽快制定出可行的双语教学的教师评价体系以及学生考核标准体系,从而推动双语教学的顺利开展。再次,努力创造良好的双语教学的校园环境。
结束语
在经济全球化日益加强的背景下,全面提高我国的计算机软件开发水平,尽快培养一大批既掌握国际标准化编程又懂外语的复合型人才已经迫在眉睫,而通过对软件开发专业系列课程进行双语教学,则是达到这一目的的有效途径。正如麦凯和西格恩教授所言:“双语教育的代价无论多么昂贵,它都比不能进行双语教育所要付出的社会代价要低。”
【参考文献】
[1]刘雅儿,周亚萍.构建以学生为中心的双语教学模式[J].浙江海洋学院学报,2004,(3).
就软件开发管理平台进行了多元化的分析和设计,并根据相关技术和基本框架分别进行了探讨,希望在软件开发建设方面可以提供一定的借鉴和指导作用。
0 引 言
近些年来,软件开发管理系统方面的技术有比较稳定的发展,在逐渐完善的同时功能需求也越来越大,因此为了满足功能需求软件开发管理平台必须进行进一步的发展和升级。在目前我们主要研究的软件开发管理平台还存在局限性,从整体出发进行多元设计是我们现阶段必须掌握的技术。
1 软件开发管理的相关内容
在现阶段对软件开发管理可以通过多种途径进行优化,例如加强生产计划、改进软件开发过程等,可以使软件开发管理达到一体化的标准,促进企业的融合和发展,并且可以为企业的自动化和一站式服务提供技术支持。提升企业管理和项目管理两大基础功能。项目管理和企业管理分别从配置管理和设计管理等出发,完成测试自动化进程。
质量一直是软件开发企业追求的目标,也是一个企业赖以生存和发展的根本。对于软件企业而言,鉴定软件的质量问题往往需要专门测试的软件,这是最为关键的部分。因此测试软件也是一项比较困难的问题,要采用先进的技术确保测试结果的准确性,合理的方法和工具是测试成功的重要保证。在我国现阶段市场中已经出现了关于测试过程管理的工具,这在很大程度上能够在大企业中发挥一定的作用并取得良好的效果,但是针对小公司来说还缺乏定制一个测试管理平台来提高工作效率和自动化水平。
2 针对软件开发管理系统的多元化分析
多元化软件开发系统中最为关键的部分就是关于软件开发管理的自动化,要以此为设计目标和方向,不断的有机结合软件开发管理和企业资源规划两种资源,从整体上形成高效管理模式的软件开发管理平台。
2.1 软件开发管理平台的初始化目标
在软件开发管理平台中要发挥多种管理的能力和潜能,充分调动各个部分的作用,例如系统需求管理、设计管理、项目管理和配置管理等多方面内容。在多元化方面主要体现在关键的位置上,一般存在于软件工程、项目管理和企业管理三个主要方面。充分促进企业管理和项目管理的相互协调,互相配合,可以使软件开发管理更为科学、提高效率。为了满足不同规模的软件企业需求必须对软件开发企业进行足够的技术支持和资金支持,才能为多元化的设计提供可行性条件。
2.2 软件开发管理平台的概况和特征
网络技术在当今社会的普及程度越来越强,同时在软件开发管理平台的应用也越来越多。网络技术在软件开发中起到拓展功能的作用,在此基础上,软件开发企业的工作中心在于对开发软件的多元性方面,主要体现在基础功能和分析功能两个方面的拓展。在数学模型的基础上建立模拟基础工作流程,提高预测的准确性和开发更多的项目管理功能,以达到兼容能力更强、在线管理更健全的目的。在目前的研究水平下,我们更应该注意软件开发管理系统的多元化设计,应该投入更多的精力和资金,这样会有益于资源方面的控制力,还能实时监控进度和质量问题,全方位的对项目进程进行跟踪和指导。
3 软件开发管理平台的多元化技术依托和基本结构
在实际操作中针对多元化设计一般最需要的就是先进的技术支撑。最为普遍的技术就是SOA技术,这项技术的最主要用途在于对系统的分解作用,不仅如此,还可以按照一定的序列对服务进行编排,在此基础之上能够扩大软件管理平台的功能和规模,并且大大增强了软件管理平台的可扩展性和灵活性两种性质。另一种比较常见的技术是基于WebServices 技术,这种技术的主要作用是辅助SOA,对软件开发管理系统的兼容性有所扩展,并且同时构建SOA架构。第三种技术是XML技术,这种技术的主要作用在于能够规范Web服务,平台的建立需要此种技术作为标准,而平台中数据的相互转换则需要自描述功能。第四种技术是RUI技术,这种技术的界面采用富用户,但在外观上分辨不出和普通应用程序的差别,但是要想构建人机交互的功能则必须要有服务功能,平台系统更容易进行操作,并且界面更加简洁。第五种技术是 J2EE标准,平台系统要保持在运行过程中不依靠其他运行程序则必须采用分布式结构,可以大大加强系统软件的灵活性,减少平时的维护费用和运行成本。
在多元化方案的设计环节应该注意系统的生命周期,在软件开发管理平台多元化设计中最关键的部分就是通常要采取B/S网络结构模式,在我们现阶段的研究当中大多数都采取这种技术,这种技术最为简便的地方就是可以在不安装客户端的情况下进行运行,可以体现出更加模块化的技术特点。另外数据库的规模应该扩大,这样有利于逻辑关系的简洁化,操作系统也更加方便快捷,在数据的完整性方面有更多体现。系统的安全性和开放性也应该有所约束,让系统的安全性有一定的技术保证,针对不同用户采用分级管理模式,并以加密和访问权限两种手段来提高软件开发平台的安全性。另外平台在平时的运行过程中,要时刻注意到客户端和软硬性的先进性,并且要注意日常应用程序和数据库服务器的运行状况保持良好,保证在正常生命周期内保持良好的运行状态。
软件开发管理平台在多元化设计的框架构建方面一般分为四个层次,分别是基础设施层、交互层、支撑层和应用层,在一般情况下交互层、基础设施层和应用层分别代表用户、信息和系统的核心部分。主要代表模块分别是企业管理功能、项目管理功能和软件功能自动化三大模块。除这些外还需要一些支撑层把组件进行合理构建,用于软件开发管理平台的多元化设计。三大主要功能模块涵盖了以上相关内容。
项目功能主要体现在两个方面,一是项目计划模型,二是实际需求。在项目进行审核发布之前,需要根据管理和条目两种手段对项目进行预览,这样能形成最优化的配置管理模式。在对软件的功能管理方面要采取自动化手段,在原始模型和文档的基础上形成新的模型,并且要单独为其设计模式和范例,不断优化升级文档质量的管理,在设备的运作过程中要优化各技术路线相互配合作用。在目前的企业管理中,要深入考虑企业的需求内容,履行合同上的信息要求,针对子系统和标准模块进行自定义的程序设置,及时对客户信息进行回访和自动报警两种功能,这两种功能要根据客户信息才得以实现。
4 软件开发管理平台的相关软件内容
开发的软件必须具有通用性强、适用范围广、提高工作效率等一系列优势,这样可以协助工作人员把项目中的软件开发管理平台做到更好。因此要求所开发的软件应具备以下功能:
(1)能够在各种环境下运行,适应性要强。任何软件都需要一定的运行环境,而软件的适应性强弱将直接影响着软件的使用效果和稳定性。
(2)能够积极协助指导项目开展相关工作,运用开发制约和方法学等手段构建软件架构,这样的好处是可以潜移默化的影响使用者的.开发方式和风格,开发出来相似的项目间可以很通畅地进行协作和交流。
(3)要做好项目的设计、开发和再测试的相关工作,能完成项目成果各方面数据的转换和协作,这就体现出最关键的衔接作用。其中最主要的部分就是关于程序设计和数据库设计向开发阶段的代码程序生成的过程。另外的作用就是在进行单元测试的过程中要把大多数相似的测试代码由辅助程序员把它们筛选出来。
(4)在开发软件的相关工作中比较重要的就是常见功能组件,有很多数据需要进行操作和整理,例如字符串的操作、数字操作等,不仅如此,还会涉及到文档读写、上下载等一些相关问题。在一般情况下出于对灵活性的考虑,很少会设置这些功能组件,需要在实际工作中由程序员针对需要来分别写出代码。所以软件架构平台需要有这些协助程序员的相关功能组件才能大大提高工作效率。
(5)分层结构和框架技术支持是我们软件开发管理平台需要的两种技术。根据项目需要,项目的开发人员要制定不同的框架来提供选择的余地。要改变框架去适应实际项目需要,这样更容易开展开发工作。
(6)要考虑不同业务人员的需要,尽量提供一些底层业务组件。在普通的业务系统中,配置管理、用户管理、角色权限管理所涉及到的功能区别不明显,而底层平台可以在提供底层应用模块的同时起到减少项目重复开发量的效果,是一个非常科学合理的设计。
(7)性能和安全是必须考虑的两大要素,因此在构建平台时要平衡性能和安全两者的关系,在确保安全的前提下尽可能的保证性能,这样也能给后续关于技术指引、工具和方法的建立提供良好的基础,例如权限控制组件和缓存组件等。
(8)方便操作也是我们需要考虑的一个方向,平台应该能在业界的大多数人中使用,因此要方便理解和操作,简单的操作流程是能够提供便捷功能服务的前提。还可以节约使用平台的学习费用和节省学习精力。
在进行编码实施的过程中,关于程序编码的设定要采取统一标准,并且符合相关的编写要求,能够保证可读性和运行的连贯性,方便日后的维护工作。在平台框架完成以后,还要不断的进行系统测试,保证使用效果和最初的设计效果相符合,测试出现问题后,要根据设计的框架找出问题原因,运用相关技术进行修改,并达到预期效果。
5 结 语
一、承元是软件定制开发平台简介
承元软件定制开发平台是构建和支撑应用的软件基础平台,为一般应用系统提供权限认证、安全管理、资源管理、事务、数据管理、二次开发、系统集成等基础功能和服务。一般的应用构建在平台之上,平台为应用提供基础的服务。基于平台构建的应用系统拥有良好的集成性、扩展性,拥有更好的性能和安全。构建在软件应用支撑平台上,使整个应用拥有更强的生命力,能够满足后续应用扩展和变化的需要。
承元软件定制开发平台包括资源管理(权限系统)、业务表单系统、工作流系统等三大基础平台。
1、资源管理平台
软件应用系统中不管是网站还是其他的业务系统,一般都会涉及到用户的管理、组织部门的管理、栏目及菜单的管理、权限的管理,这些是系统运行的基本保障。资源管理是一个通用的应用支撑平台,对组织部门、用户、用户组、服务/栏目等各类资源进行统一的配置和管理,实现用户统一身份管理、统一身份认证、统一权限配置、统一访问控制,是应用软件系统通用的权限管理平台。
2、业务表单系统
业务表单系统是一个无需编程,通过定制即可实现对不同数据的增加、修改、删除、查询、内容展示、数据统计等功能的快速定制开发平台。可根据用户需求通过定制构建不同的业务系统如:车辆管理、人事管理、培训管理、网上申报数据的采集、数据的查询与展示、网上调查与统计等;也可以同工作流系统结合作为表单和数据的处理部分;或对已存在业务系统进行改造和功能扩充,如:用户原来存在一个应用系统,需要再原有系统的基础上添加新的功能。
业务表单系统是面向非开发人员的定制平台,对于使用者只需熟悉很简单数据库知识和网页制作技术;同正常的开发模式比较,可以节省开发实施时间,能够快速适应用户需求的变化,降低实施成本;通过平台定制生成的功能错误率低,用户业务需求发生变化时只需通过定制进行修改即可快速的响应变化。
3、工作流系统
工作流系统是各工作流程(公文处理、业务审批、借款、请假、用车申请等)定义和运行平台。工作流定义包括工作流程基本属性定义、节点/步骤定义、角色定义、权限定义、工作流业务处理或表单定义与关联等基本功能。工作流定义的数据由工作流引擎加载而运行。
使用承元平台可以进行各种基于J2EE的B/S应用系统的开发,即项目模式以及依据用户个性化需求的定制开发,典型的包括:CRM、企业订单管理、库存管理、在应用系统的开发中,平台之间实现分工与协作,如:资源管理实现组织、用户、栏目、权限的管理,实现应用的集成;表单系统实现具体模块功能的定制开发,调用资源管理的接口;工作流系统则实现流程的管理和控制,并实现和业务系统数据的有机结合。
构建于承元定制开发平台之上的承元OA系统是平台型OA,充分发挥了软件平台的整体优势,拥有产品化和平台化的双重优势,系统拥有较强的扩展性和二次开发能力,具备良好的稳定性、性能、安全性等整体优势,系统易维护。
二、软件定制开发平台的优势
基于承元平台的定制开发可以简化系统设计、降低技术难度,定制代替开发缩短项目周期、大大降低系统的错误率,让系统的维护更加容易,尤其是后续的扩展和升级非常方便,因而用户整体的满意度比较高。
1、业务系统的定制开发平台
通过定制无需编码开发即可实现业务系统中的增、删、改、查和数据统计汇总、各种流程审批等功能。
2、简单易用
让非开发人员能够做开发人员所做的事情,开发人员和非开发人员可以很好的配合。使用平台进行定制开发,不会改变现有的开发行为,开发和定制可以相互补充,节省成本,大大缩短开发的周期。
3、易于移植和整合可以非常方便的整合到J2EE的环境中;
采用主流的J2EE技术开发,与操作系统平台无关,支持不同的数据库平台;可以方便的导入其他系统已定制的功能,大大提高复用率。
4、开放性和扩展性
在无需提供源码的情况下,根据表单系统的接口规范开发新的模板部件,增加新的通用功能;
在无需提供源码的情况下,通过Action(关联动作)和事件机制,在无需平台系统源码的情况下可嵌入用户个性化的代码,通过该机制可以修改和补充平台的执行行为。完善的权限接口机制,通过权限接口可以同指定的权限系统进行集成;
通过实现表单提供的工作流接口可与不同的工作流引擎相结合;
5、灵活的配置与管理
通过配置管理即可使平台满足不同的应用需求。如:对不同数据库的选择、对权限系统的选择,相关运行环境参数的选择设置等。
6、基于定制和引擎的运行方式
通过定制产生定制数据,由引擎对定制数据加载运行。引擎主要包括模板引擎、数据处理引擎等,引擎加载编译后的中间代码并执行,性能非常好。
三、产品运行的环境
承元定制开发平台全部基于J2EE技术开发,基于B/S架构,可集成和运行在任何符合J2EE规范的环境中。
1、服务器端:
操作系统:支持Windows、Linux、Solaris、AIX和HP-UX等主流操作系统。
应用服务器:支持符合J2EE规范的应用服务器,如Tomcat、WebLogic、WebSphere。 数据库:支持Oracle、Mysql、Sql Server等不同的数据库平台。
2、客户端:
IE浏览器5.0以上。
四、基于承元平台的典型应用
除构建平台化的OA系统外,承元定制开发平台被广泛的应用于构建各种企业管理软件,企也门户,以及根据企业个性化需求的定制开发。如:ERP系统、采购管理、企业订单管理、仓库管理、企业网站和门户,不同行业的业务系统。
1.1 云平台的三种主要服务模式
首先是资源整合功能,能够根据使用者发出的请求,在网络环境中快速的找到相关运行使用参数,并通过技术性方法来进一步解决,当系统进入到设计阶段时,云平台还能够为设计人员提供相关的参数,达到更理想化的使用效果,同时也能避免风险隐患问题再次发生,为基层工作任务开展创造合理的运行环境。
其次是平台的自身服务功能,在现场遇到不合理的现象时,能够通过技术方法来进行现场的调控,云平台自身也具有控制能力,所进行的软件开发会充分利用平台中的资源,达到理想化的使用标准,并针对常见问题探讨有效的解决方法,为接下来将要进行的管理任务创造可行性方案。
随着经济社会的快速发展, 人们的生活越来越富裕, 更多的人开始寻找一种精神层面的生活乐趣, 于是, 旅游为越来越多的人所欢迎, 其中自驾游、徒步游更是成为一种时尚。然而对于很多请导游的游客来说, 许多旅游景点存在导游收费高及乱收费的混乱现象, 另外对于大多自主游的个体游客同样迫切需要了解许多景点的信息。因此, 我们这款基于Android手机平台的导游软件就应运而生了, 它为广大Android手机用户提供了极大地便利。
Android简介
2007年Google公司推出一款基于Linux平台开发的开源手机操作系统, 一经面世就引发了广泛而高度的关注, 目前, Android手机操作系统已成为市场上主流的手机操作系统。Android作为一个真正意义上的开放性移动设备综合平台, 它的源代码是完全开放的, Android采用了软件堆层software stack, 或称软件叠层的构架, 主要由三部分组成, 首先是操作系统, 其次是中间件, 最后为关键的应用程序。Android SDK为用户提供了所必须的工具以及API, 这样程序员就可以开发出在Android系统内运行的各种应用程序。Linux内核作为基础, 在低层提供基本功能, 用户可根据自己的需要开发不同的软件, 编程的语言为Java语言。以上这些基础条件都为我们的软件开发提供了方便。
二、系统组成及平台
该软件系统包括两个部分:数据库和客户端软件。数据库接入互联网统一管理与客户端软件相关的所有多媒体资源, 包括音频、文本、图片、视频等, 整个数据库可利用Microsoft SQL Sever 2005数据库管理系统进行维护。客户端为安装在用户手机上的软件客户端, 本文主要介绍客户端的运行平台和原理。
软件利用在Windows平台上的Eclipse开发环境编写应用程序的代码, 编译调试时链接启动安装于Windows平台的Android 4.0模拟器进行模拟运行。
三、软件功能及代码
首先用java编译语言编写软件源程序, 接着在eclipse上运行, 通过写好的源代码链接Windows平台上的Android系统模拟器。在互联网上向Google公司申请Googel Map的使用权限, 利用Google Map作为软件界面的背景。在安卓的开元源代码中找到关于GPS的端口, 用写好的java语言进行链接, 使之可以接收到GPS的卫星信号, 信号设定为每6000ms刷新一次 (在eclipse上可以模拟发射信号来调试效果) , 从信号中可以获取所在地点的GPS经纬度坐标值, 同时在手机屏幕的地图上显示我们所在的方位。在所写的java程序中, 设定某一景区的坐标范围, 当进入景区时, 软件给出提示, 从数据库调出景区的几条推荐路线, 另外设定已知景点的坐标值, 每当游客到达某一景点时, 根据软件获得的GPS坐标值, 从数据库调出信息, 播放出相应的语音介绍或显示文本信息。实现部分功能的代码如下:
参考文献
[1]郭宏志.Android应用开发详解[M].北京:电子工业出版社.2010.
[2]蔡军杰, 沈颖, 杨胜, 等.基于Android手机的人员定位与管理系统[J].电脑编程技巧与维护, 2012, (14) .
【关键词】Scrum 敏捷开发方法 软件开发 实训教学 应用
【中图分类号】 G 【文献标识码】 A
【文章编号】0450-9889(2014)12C-0059-03
一、问题的提出
1970年温斯顿·罗伊斯在软件开发中提出了著名的“瀑布模型”。该模型将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本阶段,各阶段工作必须按次序自上而下开展,每个阶段要撰写大量文档,并对工作结果进行严格验证,只有上一阶段工作结束,才能开启下一阶段工作。这种开发模式应对上世纪60年代出现的软件危机问题,是一种很好的解决方案,成为了软件开发模型的经典。
当前,随着软件开发技术的进步,人们发现“瀑布模型”灵活性差,不适用于需求不明确的软件项目,很多软件企业已不再使用“瀑布模型”,但它作为软件开发模型的经典仍广泛应用在高校软件开发实训课堂中。实际上,应用“瀑布模型”进行教学的高校计算机软件开发相关专业学生毕业时的动手能力远远达不到企业的要求,这说明该教学方法和实训模式存在问题。为了提高学生实践能力,很多高校与计算机软件开发培训机构或企业进行联合办学,以弥补学校实训教学能力的不足。
二、“瀑布模型”实训教学存在的问题
应用“瀑布模型”进行的实训教学中主要存在如下问题:
首先,学生把握项目需求的能力差,难以达到“瀑布模型”对开发者的要求。“瀑布模型”适用于需求明确的项目,要求开发者具有很强的整体把握能力和前瞻性。但是对于初学开发的学生来说,需求再明确的项目,他们也不能很准确地把握细节,导致实训进程不能按计划正常开展,影响了实训效果。在实际教学中,虽然很多实训项目在以往的教材中有类似的解决方案,但是区别还是存在的,学生看不到软件在实际应用中可能出现的问题,到了项目开发后期才发现错误,导致实训项目失败。
其次,在“瀑布模型”开发的每一个阶段,都要求撰写细致准确的文档,这大大占用了学生的实训时间。据统计,如果严格按瀑布模型的要求来撰写文档,消耗的时间至少是整个实训时间的1/5。本来实训课堂留给学生实训的时间就不多,对一些效率低的学生来说,文档还没写完实训期就结束了,整个实训过程变成了纸上谈兵的演练。
最后,“瀑布模型”实训方式过时,学生不能学以致用,实训技能与企业要求脱节。当今的软件开发中,已经很难看见完全实施“瀑布模型”的企业,大家都已对“瀑布模型”进行了改进或者实施其他更先进的开发方法。教育部曾多次指出,高校教育应服务地方和行业,密切与行业、企业合作,为企业提供人才培养和技术服务支撑。这要求我们必须改革过时的实训模式,使教学与行业结合,与企业接轨。
三、Scrum敏捷开发方法概述
近年来,很多先进的软件开发模型在实际应用中得到了推广,这里要特别提出的是敏捷开发。著名IT组织VersionOne在2013年进行的敏捷现状调查结果显示,在全世界收集的3501份调查报告中,使用敏捷开发方法的占88%,其中使用Scrum敏捷开发方法或Scrum变种开发方法的占73%。这个调查数据充分说明了敏捷开发方法在行业中的主导地位。
敏捷开发(Agile development)是一种以人为核心、迭代、循序渐进的开发方法,它把项目分割分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。敏捷开发方法包括Scrum、Crystal和极限编程(XP)等,是一组开发方法的总称。它也是软件开发的一个过程管理框架,遵循了敏捷开发的主要价值观:个人与交互重于开发过程与工具;可用的软件重于面面俱到的文档;与客户的合作重于对合同的谈判;响应变化胜过遵循计划。
Scrum敏捷开发过程是迭代的增量开发,整个开发过程由若干个短周期的迭代组成,每一个迭代周期称为Sprint(冲刺),每个迭代实现不同的特性,迭代中重大的、优先级高或风险高的特性优先实现。Scrum敏捷开发方法重视软件的可用性,强调与客户的沟通,开发过程能够快速响应用户需求变更,尽早处理风险问题。
四、Scrum敏捷开发方法在软件开发实训教学中的优势
相对于“瀑布模型”,Scrum敏捷开发方法具有更多适合软件开发实训教学的优势,主要表现在如下方面:
第一,能够快速响应需求变更。与实际开发相似,学生的实训项目都是在重复多次的修正需求、修改设计后才交付实现的。Scrum敏捷开发方法中的Sprint都很小,即使需求变更很大,也可以在短时间内修改设计完成开发。而“瀑布模型”希望需求是稳定的,但不变只是愿望,变化才是永恒。如果在软件设计后期提出需求变更,那会是一种灾难。这种影响小则使实训进度不可控,重则导致实训项目失败。
第二,Scrum敏捷开发方法要求尽早编码,尽快开发出系统原型,尽早使客户见到可运行的软件,暴露项目的技术风险,从而提出优化意见。这恰好迎合了学生开发实训时急切渴望进行编程实现的心理,激发了学生学习的积极性。而“瀑布模型”要求推迟实现,要尽可能把需求分析透彻,设计完整,完成文档编写后才能进行编码实现。这个过程对急切渴望编程的学生无疑是一种打击。
第三,Scrum敏捷开发方法不要求文档面面俱到,更注重于软件可用性设计。在敏捷开发中,很多文档只是一个草图,大部分文档在集成测试阶段产生,而且只写有必要的文档。所以实训团队不需要安排专人撰写完备的开发文档,从而使学生有时间专注于开发实训工作。
第四,Scrum敏捷开发方法能更全面地培养学生的软件开发技能。在Scrum项目中,每个开发成员主动认领开发任务,开发过程涉及的设计、编码和单元测试全部是个人独立完成,实际上一个人承担了传统开发模式中系统架构师、程序员、测试员和产品构建经理等角色工作。这种实训方式有助于提升学生软件开发的单兵作战能力,从而快速适应企业软件开发工作的各个环节。
五、Scrum敏捷开发方法在软件开发实训教学中的实施
综上所述,在软件开发实训教学中使用Scrum敏捷开发方法,可以更好地促进教学,提高学生实践能力,实现教学与行业结合,与企业接轨。具体实施方法如下:
(一)组建开发团队,实行双教师教学
在实训中,可将教师和学生按Scrum敏捷团队角色分组,主要有以下三类角色:一是Product Owner(产品负责人)。该角色可安排熟悉产品需求的教师承担,负责产品需求的提炼、条目化和优先级排序。二是Scrum Master(团队负责人)。该角色可安排熟悉Scrum开发流程的教师承担,负责整个Scrum团队的协作运行,并协作解决非技术问题。三是Team团队成员。Team团队由Team小组长和3~5名小组成员组成。小组长由开发能力较强的学生担任,其他成员根据开发能力强弱穿插分配。每班学生可分为若干个Team团队,每个开发实训项目由一个或多个开发小组的学生在老师指导下完成开发任务。
在实训开发课堂中,之所以要实行双教师教学,一是开发团队角色需要,二是为了让教师能在实训过程中相互讨论,取长补短,弥补高校教师在实践经验上的不足,提高实训教学的整体质量。
(二)约定开发规范,精简开发流程
实训开始前,开发团队应约定统一的开发规范和流程,以便学生掌握团队开发方法,并养成良好的编码习惯。图1为经过精简的Scrum实训开发过程模型。
图1 Scrum开发过程模型
图1是Scrum开发的一个迭代周期。其中,Product Backlog为软件产品总的需求条目,这些需求多以用户故事(User story)的形式展现,Product Owned负责维护;Sprint Backlog是Product Backlog的一部分,通过计划会议(Planning Meeting)讨论选定,是需要在当前迭代(Sprint)中完成的需求条目;圆环为迭代开发(Sprint)的过程,一般周期为2~4周,迭代过程包含分析—设计—实现—测试等工作。迭代开发过程中,Team成员每天进行15分钟的站立会议(Daily meeting),主要汇报昨天做了什么、今天要做什么和遇到了什么问题。Scrum master每天负责绘制任务燃尽图(Burn Down Chart),以曲线展现当前Sprint任务的剩余量,这对团队开发有很大的鼓舞作用。每一次迭代开发完成后,教师要组织Team团队成员召开评审会议(Review Meeting),发布一个可执行的软件版本(Release),并让相关人员和团队成员提出优化意见。
(三)结对编程,以强带弱,相互促进
学生的学习能力和实践能力是强弱不一的。在实训过程中,教师的指导作用固然重要,但师生间的沟通往往没有学生间的沟通那么自如。因此,可以安排一个能力强的学生与一个能力弱的学生结对编程,充分发挥先进学生的带头作用,让后进学生有机会学习别人优秀的学习方法和实践经验,互相监督,互相促进,最终实现实训目标。
(四)持续集成,交换测试
在我们的实训中,并没有设立专门的软件测试小组,开发团队只是对软件进行了简单的单元测试。如果整个项目都要等到软件开发后期才进行集成测试,项目失败的风险就会很高。Scrum要求团队开发要尽可能频繁地进行集成测试,也就是持续集成。持续集成可以尽可能快地发现集成错误,通常每个成员每天至少集成一次,也可能进行多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,减少开发团队进行集成测试的时间消耗。实践基础好的团队可尝试实施测试驱动开发(TDD),即先编写测试代码,后编写功能代码,用测试代码驱动功能开发,这可以降低自动化测试的出错率,提高软件运行质量。如要进行人工测试,可安排各个开发团队进行交换测试,因为他人测试比自己测试更容易发现软件存在的错误。 (下转第87页)(上接第60页)
总之,Scrum敏捷开发方法是一种新兴的软件开发方法,很多实践方法和理论还在不断地研究中。实训教学终究是以传授技能为主,不需要拘泥于Scrum开发的全部形式,教师可对Scrum开发方法进行修剪和优化,从而更好地实现教学目标。自2013年起,柳州师范高等专科学校在软件开发实训教学中实施Scrum敏捷开发方法,现已成功开发了教学质量监控系统、科研工作管理系统两个真实项目,用户对软件的满意度很高,实训教学取得了良好的效果,但相关管理制度和实训措施还需要进一步探索和优化。
【参考文献】
[1]VersionOne Inc.8th Annual State of Agile[R]. VersionOne Inc,2013
[2]Mike Cohn. Scrum敏捷软件开发[M].北京:清华大学出版社,2010
[3]Freder ick P.Brooks,Jr.人月神话[M].北京:清华大学出版社,2007
[4]陈国栋,罗省贤. Scrum敏捷软件开发方法实践中的改进和应用[J].计算机技术与发展,2011(12)
[5]Henrik Kniberg. Scrum and XP from the Trenches[M]. C4Media Inc,2007
[6]商惠华.计划驱动下敏捷开发过程的软件质量管理[J].汕头大学学报(自然科学版),2011(4)
【基金项目】广西高等教育教学改革工程项目(2013JGB301)
【作者简介】蒙焕念(1981- ),男,广西宾阳人,柳州师范高等专科学校教务处系统分析师(高级工程师),硕士,研究方向:软件工程、教育信息化。
【软件开发教学平台】推荐阅读:
多媒体教学软件设计与开发实验报告06-02
基于微信平台的软件开发可行性分析报告07-11
软件开发文档12-14
软件开发市场规模06-29
软件开发年终总结07-13
软件开发专业简历07-17
软件开发合同模板07-20
定制软件开发合同07-25
软件开发开题报告09-11
软件开发工作思路11-09