首页 > 范文大全 > 正文

改造敏捷模型在高校软件开发中的实践

开篇:润墨网以专业的文秘视角,为您筛选了一篇改造敏捷模型在高校软件开发中的实践范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:分析了高校软件开发中人员,过程管理,软件类型的特点,提出了改造敏捷模型应用于高校软件开发,阐述了改造敏捷模型的优点,并介绍了其在在线投稿系统开发过程中的具体应用。

关键词:高校软件开发;敏捷模型;最佳实践

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2010)07-1772-02

Practice of Modified Agile Model in Software Development in the University

GAO Zhi-sheng

(School of Mathematic and Computer, Xihua University, Chengdu 610039, China)

Abstract: Characteristics such as persons, process management and project type of software development in universities are analyzed. Therefore, in this paper, modified agile model for the software development in universities is proposed. It introduces the merits of modified agile model and how applied practically in the online contributing system successfully.

Key words: software development in universities; agile model; best practice

软件过程模式是从成功或失败的软件开发实践中总结而成,是软件过程中生命周期、人员、方法、产品四大类要素相互关联的有机整体[1]。目前对软件界影响较大的软件过程模式包括Rational统一过程、微软过程和敏捷过程。敏捷软件开发过程模式又有多种不同类型: Extreme Programming(XP)、Scrum、Crystal Methodologies、Feature Driven Development(FDD)、Dynamic Systems Development Methodology(DSDM)、Adaptive Software Development(ASD)、Pragmatic Programming等[2]。这些成熟的软件开发过程模型,通过在许多不同的软件开发组织,在不同类型的项目上得到了验证,具有很好的指导软件开发的能力。目前众多高校都承担着软件课题的研发,但是高校软件开发从人员组成、软件项目组织过程、软件项目类型等方面都不同于商业的成熟的软件开发组织。本文针对高校软件开发的特点提出运用改造的敏捷模型组织高校软件开发的过程。我们在使用XP过程模型指导软件开发过程中,针对高校软件开发的特点对XP模型的核心原则和核心实践进行了改造,通过具体开发实践表明该方法能够较好适应高校软件开发。

1 高校软件开发的特点

高校软件开发不同于成熟的软件组织软件开发,我们从人员组成,项目特点和管理组织分析了普通高校软件开发的特点。

2.1 成员组成特点

高校软件开发团队的成员一般都不是专业的软件开发人员,一般是由一个导师领导的多种人员组成的临时团队,完成一个具体的项目。具有以下特点。

1)成员来源多样性。一般高校软件开发团队都由导师,教师,研究生及本科生组成。以我们团队为例,由1名导师,2名教师,4名硕士生,2名本科生组成。

2)学历专业多样性。一般软件团队多由从博士到本科生,具有不同专业背景的人员组成。

3)年龄跨度大。商业软件开发组织多由青中年专职软件开发人员组成,而高校软件开发团队多有几十岁的教师和20岁左右的年轻学生组成。

4)技术背景差距大。一般都是根据临时的项目,临时组建的团队,团队成员往往具有不同的技术背景,在编程语言,分析设计能力,更人能力成熟度上都有较大的差异。

5)项目成员目的单纯性。开发团队的教师的目的就是完成横向的或纵向的科研项目,而学生的目的则是在进入社会前获得一次比较正规的专业化的培训。

1.2 项目的特点

高校从事软件项目开发的优势在于创新性、专业性和低成本性。所以高校主要从事以下两种项目的开发。

1)研发型软件。主要是指完成研究型项目的软件系统,用于验证相关研究的正确性或者将相关研究转化为具体生产力或半生产力。这类项目一般都具有创新性、结果不确定性、需求明确性、算法复杂性等特点。

2)企业定制型软件。高校软件开发团队完成的另外一类项目是由企业委托的应用型项目。这类项目一般都具有开发周期固定、项目规模较小、项目经费较少和领域性较强等特点。

1.3 组织管理的特点

高校软件开发团队是由教师和学生组成的临时性的非营利性的软件开发组织。在组织和管理上具有以下特点。

1)软件项目管理缺乏规范。普通软件开发组织都有正规的组织规范和管理规范,有成熟的软件开发过程,软件配置过程、软件质量管理过程实践。具有CMMI三级以上的组织能力成熟度。而高校软件开发团队成员一般都不具备较高的PSP能力,同时软件开发团队也是一个临时的组织,一般不具备规范的管理过程。

2)组织松散性。高校软件团队大部分是非利益性组织,团队成员组织在一起不为谋取薪水,因此没有严格的纪律和考核措施来管理团队成员。

3)非专职性。高校软件开发团队的教师一般还要承担教学和科研任务,学生还有课堂学习任务,软件开发更多的是利用课余时间进行。因此都非专职的软件开发人员。

4)易于沟通协作性。团队成员之间没有强力的利益关系和竞争关系,成员之间关系融洽。各成员具有共同的爱好和热情聚集在一起完成一个软件项目。在地理上团队成员一般都分布在一个实验室。这决定了团队成员之间易于沟通交流,易于团队协作,易于发挥集体的力量解决实际问题。

1.4 高校软件开发的好处与优势

组织好高校软件开发对社会、教师和学生都有好处。高校是培养高等专业人才的地方,这里有大量思维活跃、具有创新思维的人才,每年高校都有大量创新性的研究成果产生。但是其中真正能够转化为生产力的并不多。重要原因是研究和生产,研究和市场脱节。高校软件开发可以直接在高校就将研究成果转化为直接的生产力。教师通过完成纵向和横向的科研项目也可以增加收入,为更多的研究打下物质基础。学生通过参与实际的软件项目开发,可以在毕业前获得宝贵的将理论用于实践的机会。

2 改造的XP敏捷模型

2.1 XP敏捷模型介绍

XP(Extreme Programming)极限编程是由Kent Beck提出的一种“轻量级”的软件开发方法,他建议XP应用于规模小、进度紧、需求变化大、质量要求严格的项目[3]。

XP强调适应而非预测,以人为中心、非以过程为中心[1]。 XP敏捷模型的核心价值观是沟通、反馈、简化和勇气。XP的最佳实践是:现场客户,计划博弈,系统隐喻,简化设计,集体所有权,结对编程,测试驱动开发,小型,重构,持续集成,每周工作40小时和编程规范。

以上可以看出,XP提倡的最佳实践和实用的项目、团队类型和高校软件开发组织具有天生的一致性,但是XP所提倡的重视沟通、简化中间过程、不重视文档和集体拥有代码要求团队成员具有均衡的能力与高校软件开发团队实际情况不太符合。因此我们对XP过程模式进行了改造以更好地使用高校软件开发。

2.2 基于原型模型对XP模型的改造

针对高校软件开发的团队、项目、管理上的特点,我们对XP模型主要进行了一下4条改造。

首先,针对高校软件开发团队成员技术能力差距大的特点,针对一个具体的项目,从业务领域知识到软件实现技术,教师、学生之间都有较大的差距。我们在进行以XP为指导的软件具体开发过程之前,首先进行项目的抛弃型原型模型开发。我们采用分析用户需求,提取核心功能和对本团队有技术难点的部分进行开发原型系统。通过原型系统的开发一方面使团队成员熟悉了相关的开发语言、开发流程、软件架构和业务领域知识。尤其是能帮助刚进入项目组的低年级学生进入软件开发的角色。另一方面,原型系统对于研究型项目能够辨别算法的正确性,确定是否有进一步研发必要,对于企业定制软件可以通过可以运行的原型系统帮助开发团队与用户充分交流,较准确地确定软件的初始需求。引入原型模型后,改造的XP模型项目开发过程如图1所示。

其次,针对XP模型,重视合作,现场交流,省略文档等中间过程的问题。由于学生3-4年既要毕业,并且由于学习的需要一般学生在大学阶段能够从事软件开发的时间为1-2年,所以高校软件开发团队人员的更替较为平凡,怎样将个人的经验和积累成为整个软件开发组织的经验和技术积累,是高校软件软件开发团队需要解决的问题。我们要求项目的需求分析和设计阶段具备完善的项目文档。UML是一种通用的面向对象的标准建模语言,在需求阶段采用用例图和活动图对系统进行建模,设计阶段用类图、包图、部署图、时序图、活动图、协作图进行建模。与XP迭代开发一致,我们将文档纳入版本配置管理库,一次迭代一个新的文档版本。甚至项目完成后,还要对文档进行梳理和总结。这些文档成为整个开发团队的持续价值。新加入团队的成员可以通过这些文档获得宝贵的开发经验和方法。也为后续项目维护打下了基础。

再次,XP模型强调简化设计,快速满足用户要求。由于高校开发团队一般由导师领导,一般都有固定的研究方向,所开发的项目往往类型比较单一,所设计的领域也比较单一。所以我们在XP简化设计的基础上引入了RUP模型的以架构为中心,基于构件开发的技术。这可以分清系统每一部分的责任,使每一部分具有清晰的边界,同时可以有效复用团队过去开发和研究的成果。同时也降低了软件性能、可靠性等方面的风险。

最后,XP强调集体拥有代码,系统的架构由整个团队负责。这要求开发团队成员具有均衡的能力。其与高校软件开发团队成员是开发经验、技术背景差距都很大的实际情况相矛盾。我们对XP的改造是:由开发团队中的技术实力较强的教师充当系统架构师。他拥有全部核心代码,同时系统的关键变更必须由系统架构师最终决定。

3 应用开发实践

3.1 在线投稿系统简介

在线投稿系统是为方便作者投稿,编辑管理稿件,专家审稿的一个Web应用系统。主要功能包括作者注册个人信息,作者在线投稿,作者在线查询稿件,编辑查询稿件,编辑处理稿件,专家查询待审稿件,专家审理稿件,专家修改个人信息,管理员进行专家管理,作者管理,编辑管理,栏目管理,系统维护管理等。(下转第1780页)

(上接第1773页)

在线投稿系统的技术难点在于:1)稿件处理流程的控制;2)综合专家信息,稿件类别和推荐专家进行综合决策审稿专家;3)可靠的邮件服务。业务需求主要模糊的领域:1)稿件处理模式;2)专家审稿模式。

3.2 改造的XP模型的应用实践

以下简单介绍改造的XP模型的重要最佳实践在“在线投稿系统”开发中的应用。

1)开发原型系统,分析编辑部的稿件处理模式,完成整个稿件处理流程的原型系统,同时开发可靠的邮件服务系统。

2)做好计划,根据在线投稿系统的特点,我们确定系统进行2次迭代,第一次迭代由充当架构师的教师完成系统的三层架构,确定系统的主要结构。完成稿件处理的流程和专家审稿模式。第二次迭代完成稿件投稿、查询等其余功能。每一次迭代有需求和设计的版本。用UML统一进行建模。每一次迭代产生一个可运行的版本。

3)重构,设计阶段强调组建式开发,每完成一个主要功能模块,由项目组长组织进行代码重构,强调功能单一,可复用性高,结构松散。

4)双人编程,由两个人共同完成同一功能模块,一老一新进行搭配,主要由老成员完成代码,新成员完成代码走查和单元测试。

5)集体拥有代码,软件项目配置管理库,所有成员具有相同的阅读权限,不同模块的成员相互走查代码,任何问题都由全团队成员一起讨论。

6)编程规范,团队已有类,变量,函数,注释的规范,并且采用logiscope进行测试。

7)持续集成,采用软件配置管理,所有成员每天进行配置管理代码库同步。每产生一个新的版本,进行一次集成。

8)现场客户,原型系统前,原型系统后,第一次迭代后,第二次迭代后,分别与客户进行一次讨论。

4 结论

本文主要研究软件过程管理在高校软件开发中的应用,首先分析了高校软件开发的人员组织,软件项目类型,项目管理的特点,然后集合高校软件开发的特点,对XP极限模式进行了改造以更加适合高校软件开发。最后通过具体实例介绍了改造XP模式在软件开发中的应用实践。

参考文献:

[1] 金敏,周翔.高级软件开发过程―Rational统一过程、敏捷过程与微软过程[M].北京:清华大学出版社,2009.

[2] 钱乐秋,张敬周,朱三元.Agile方法研究综述[J].计算机应用与软件,2002,19(6).

[3] 杨晓雁,魏晓玲.一种基于XP与UP相结合的开发过程研究[J].微计算机信息,2008(3):255-256.