软件开发教学试验平台设计的研究

2013-04-29 10:12费宁
科技资讯 2013年9期
关键词:软件开发

费宁

摘 要:當前,新软件工程开发方法开创了软件全生命周期的协作化生产的组织、管理及运行新模式,本文面向敏捷开发,设计了一个多种软件工程开发方法的试验平台,从而证明若项目需求固定,合适瀑布型。而需求更新比较快,则适合灵活的敏捷开发模式,同时培养学生实践创新能力和团队能力。

关键词:敏捷开发 瀑布模型 软件开发

中图分类号:G71 文献标识码:A 文章编号:1672-3791(2013)03(c)-0203-01

要想使高校培养出来的学生能够满足企业的需要,就要不断紧跟企业,甚至要走在前面,即及时更新技术手段,加强自身的实践能力。当前,一些软件公司已经不再是采取简单的瀑布模型,新的观点,新的软件开发模式,层出不穷。作为从事软件开发的毕业生,仅仅知道瀑布模型是远远不够的,对软件工程的深入理解,了解技术前沿才能使我们培养出来的学生尽快的适应社会和企业的选拔。

1 敏捷开发对软件工程人才培养的作用

1.1 软件开发模型

软件开发过程是随着开发技术的演化而随之改进的,从瀑布开发模型到最近开始兴起的敏捷开发方法,展示出了在不同的时代软件产业对于开发过程的不同的认识,以及对于不同类型项目的理解方法。

瀑布模型(Waterfall Model)于1970年提出的,大型软件开发可分为:分析与编程。其主旨是把软件工程分成各种工序,每个工序可以进一步细分成更小的工序。该模型成为软件开发企业使用最多的开发模型。瀑布模型的特点一是强调文档,二是对反馈没有涉及。目前针对瀑布模型的反对意见不少,原因主要是:瀑布模型过于呆板,不适合需求不断变化的软件开发;同时,重复性的工作使得开发者无法得到新的学习和锻炼。

敏捷开发(agile development)概念由2001年17名编程大师发表的“敏捷软件开发”宣言得来。敏捷开发强调:1)编程中开发者的自我特长发挥;2)软件开发的产品是软件,而不是文档;3)客户与开发者的关系是协作,而不是互相制约的关系;4)要适应客户需求的变化,同时能根据环境的变化,修改自己的设计。敏捷软件开发是一个新的开发软件管理模式,其关注点从文档转移到开发者,管理方式也从流水线转移到团队的自我放松式组织[1]。

1.2 软件工程人才培养的新思路

众所周知,当今的软件已经成为多人参与、分工明确、通力协作的大型工程。是使用传统的瀑布模式,还是新颖的敏捷开发模型,还是将两者结合,是软件开发组织者面临的新课题,这显然就需要利用软件工程的思想和方法。

在实践传统和前沿软件工程的基础上,根据具体情况选择最合适的软件工程实施模式很重要,教会学生如何思考这些问题才是关键。所以,应该让学生不停地自我询问:如果要完成这个项目,会选择什么语言,什么操作系统,什么环境?如果是项目开发人员,在某种特定的情况下,会选用什么样的开发模式,什么样的算法,什么样的系统体系结构?本课题的主旨就是让学生在不断自建自检的过程中,理解不同的开发模式的优劣,以及在何种情况下,应该使用何种开发模式。

2 软件开发教学试验平台设计的实施过程和成果

教学计划中有课程设计,主要是组织学生进行相关企业级项目的开发。这个过程中,让学生理论联系实际,加深对软件开发流程的理解。具体步骤如下:首先把学生分成两组,一个小组按传统瀑布模型开发,另一个小组按敏捷模式开发。对于敏捷开发小组,下一步是选择出一个项目负责人,其余成员构成团队[2]。然后,团队一起制定计划,项目负责人为大家说明项目需求的优先级顺序,团员可以提出疑问,团队一起寻求答案,同时补充项目描述或调整优先级。在一问一答中,整个团队对项目有一个认识,同时达成共识,即对项目的规模进行估算,这有利于任务按时进行。敏捷开发过程中,每天固定举行简短的“每日站立会议”;会议在固定地点和固定时间举行;在会议上,每个团队成员需要回答三个问题:今天完成了哪些工作?明天做什么?完成目标是否存在障碍[2]?

在项目实训中,选取了两种类型的项目实例:一个是嵌入式平台的中间件的开发;另外一个是企业网站迁移到Web 2.0。前一组需求复杂,但变化频率比较少;后一组需求简单,但改动频繁。试验平台按照人力资源的消耗,程序包含的bug数作为比较参数,从这两个方面分析敏捷开发和瀑布模型的优劣及适用的项目实例。

在嵌入式开发项目中,敏捷开发花费的人力比瀑布模型高。分析得出:每日站立会议花费了额外的时间,学生解释自己的工作内容并不容易。而瀑布模型需求分析充分,所以资源消耗明显较少。在质量上,敏捷编程的提高也并不明显,因为嵌入式项目模块之间接口相对较少。但通过对bug根本原因的分析发现,敏捷开发中的结对编程有效地降低了学生编码过程中的偶然性错误。对于项目二,需求更改的频率显著增加。此时,瀑布模型所花费的人力资源远高于敏捷开发。因为每次需求变动,瀑布模型需要重新进行需求分析、架构设计和模块设计和代码编写。而敏捷开发的及时沟通有助于需求的更改,同时降低代码耦合性,采取功能逻辑和用户界面分离的形式,有效地提高了效率。在软件质量方面,根据记录发现,传统瀑布型开发中的bug数较多,部分bug是对需求分析不够透彻。

从试验结果得知:对于不同的项目可以采取相应的开发模式。若项目需求固定,适合瀑布型。而对于创新型项目,需求更新快,则适合敏捷开发模式。要提供高效率的项目流程,要实行开发过程的有效管理,只有敏捷开发模型,或者只有瀑布模型是远远无法满足千变万化的需求的,所以针对项目的特点对两种模型有所选择,并有效融合,发挥各自长处,这才是重点。

3 结语

真正的软件人才不再是写代码的程序员,而是整个体系结构的分析、设计、标准制定、协调人员。所以在培养软件工程人才时,应该以人为中心,以项目类型为中心,软件开发者能够对软件工程的开发模型进行正确的选择,同时锻炼学生们相互之间的协作能力,这也正是本课题的主旨。

参考文献

[1]从瀑布模型、极限编程到敏捷开发[EB/OL].http://wenku.baidu.com/view/0267645d804d2b160b4ec057.html.

[2]http://baike.baidu.com/view/1528674.htm.

[3]http://baike.baidu.com/view/309926.htm.

[4]Kim H.Pries,Jon M.Quigley.Scrum Project Management[M].CRC Press Inc,2010.

猜你喜欢
软件开发
基于安卓平台的移动式教学模式研究
软件开发中JAVA编程语言的应用
信息安全环境下的计算机软件开发研究
核电厂定期试验管理软件开发
FPGA软件开发过程中编码规范的作用