APP下载

敏捷软件开发在网站建设中的应用

2018-10-21金柳柳

大东方 2018年9期
关键词:开发人员文档软件

摘 要:敏捷软件开发是一个较为抽象的软件开发方法,是一种应对快速变化的需求的一种软件开发能力,强调的是程序员与客户之间的紧密协作、面对面的沟通,从而提高软件开发的效率。本文以高职类学校学生实习管理系统为例,介绍此种开发方法的在实际系统开发中的应用。

关键词:敏捷开发;实习管理系统

1 引言

目前,在高职类学校的建设过程中,为了促进学校的信息化建设水平,以网络平台为主要手段的各种办公应用被引入到学校的日常办公中,而由于考虑到事业单位在对外招标选择、系统开发成本考虑、系统后期运行维护等诸多问题中存在不可预测的困难,因此类似“学生学习管理系统”这样的功能性网站,学校多安排校内信息专业部的专业教师进行研发,而这样的安排多会存在如下的问题:

(1)系统平台需求方(本实例中,指主管就业部门)虽然比较熟悉业务流程,但并不能以较专业的方式来表达这些需求,同时,设计开发人员虽然最终能够根据需求完成需求分析文档和项目开发文档的编写,但由于开发经验不足,对业务流程不熟悉,在与需求方的沟通中存在偏差,可能会导致最终的软件版本并不能完全符合需求方的设计初衷。

(2)在项目开发过程中,由于开发人员另有本职工作,因此可能会导致开发的不同步,为了保证开发的时序性,多个开发人员之间经常会互相接手对方工作,而这样可能会导致开发人员间对于编码规范认识、开发习惯的不一致,从而为了熟悉对方的编码方式,浪费大量的时间去适应,最终导致项目开发的进程严重滞后。

(3)在系统平台投入实际应用后,需求方可能经常提出新的功能要求,由于没有一个完善的系统测试过程,开发时间又比较紧凑,因此通常不经过专业的系统测试就直接投入使用,一旦出现问题,在复杂的环境下修正所有错误需求较长的时间周期,从而影响系统的正常使用。

在分析了以上几点问题后,如果仍沿用强调过程、强调文档及开发人员过重负担的传统方法进行系统的开发,那么这些问题将一直存在,很难解决。因此,在本系统的开发中引入敏捷软件开发方法,对这些隐含的问题尽量避免,确保系统的正常开发部署以及后期维护。

2 敏捷软件开发理论概述

敏捷软件开发是一种从二十世纪九十年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于”非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重作为软件开发中人的作用。

以上的概念说明,敏捷软件开发方法的整体目标是以人为主体和欢迎实时的变化,以人为主体说明,该方法注重在软件开发中人的主体地位,不同于传统的注重文档的主体地位;欢迎实时的变化说明,该方法注重系统实现不可预测性的特点,不同于传统方法在定下计划后不可更改的特点,敏捷软件开发方法注重系统实现的不可预测性,需要在开发中各组成元素间不断地适应对方的变化。

敏捷软件开发理论强调以下的四种价值观:(1)个人和交互高于过程和工具,强调软件开发中人的作用和交流的作用,软件是由人设计开发而成,只有通过充分的沟通和有效的使用,才能成功地开发出令用户认可的软件。(2)可运行软件高于详尽的文档,一个具有具体功能的软件或模块远比枯燥的文档来得有意义,敏捷软件开发理论强调不断地、快速地向用户提交可运行的软件,以得到用户的认可。(3)与客户协作高于合同(契约)谈判,与客户保持经常的沟通远比照搬文档的说明有效的多,文档的描述只是客户最初的要求,并不能代表用户对系统的最终认识,通过文档将最终需求完全固定下来是不现实的。(4)对变更及时做出反应高于遵循计划,在软件开发之前制定切实的计划是完全应该的,但随着开发的进行,系统的需求、软硬件环境及所使用的技术都可能随时变化,一个成熟的项目计划应该具有可塑性,有变动的余地,当出现不可预知的变化时能及时做出反应,对计划做出应当修改。

除去以上的四种价值观,敏捷软件开发方法还包含了12条重要经验原则,由于篇幅的限制,不做引申阐述,可以去百度查看。

由于敏捷软件开发方法并没有具体的操作规范,所以本文中我们结合一个实际项目开发流程来对敏捷开发进行进一步的认识,结合本文作者的工作实际,这里引入高职类学校学生实习管理系统为例。此项目包括学生信息管理子系统、班主任信息管理子系统、企业信息管理子系统、企业招聘信息子系统、学生实习就业信息跟踪子系统、学生实习学分统计子系统、学生自我评价子系统七个子系统及相关模块,需要说明的是,这样的一样庞大系统中,开发团队只包含三个研发人员,其中两人负责代码编写,一人负责界面设计。

3 敏捷软件开发在网站建设中的实际运用

3.1 制订迭代式项目计划

敏捷软件开发的一个重要的观点是迭代、循序渐进的开发方法,在敏捷软件开发过程中,一个完整的软件项目被分割成若干个子项目,这些子项目具备高度集成和可独立运行的特征。简而言之,就是把一個完整的大项目分为多个既相互联系,又可独立运行的小项目,并分别实现,在此过程中可保证软件一直处于可使用的状态。

在此项目的开发过程中,我们的方法是,在确定基本的需求分析后,依照简单到复杂和实现功能的依赖关系给出如下表(表一)所示的迭代开发计划。

根据上表,在版本1时,首先设计一个较为简单的原型,拟定项目的界面风格和用户体验,让用户拥有一个对于项目的最初的印象,将要开发的系统是什么样子的,以便在接下来细化阶段设计出完整的用户界面效果。当用户初步认可此版本后,开发人员便可以进入版本1的实际开发阶段。而在版本1的开发过程中,用户便可以在版本1的基础上准备第2个版本的构思。当版本1完后后,交付用户测试使用,如果使用过程中出现问题,交由研发人员修改后继续测试使用,如此循环,最终确保版本1没有问题。当版本1没有任何问题后,研发团队根据用户提供的版本2的构思,进行版本2的开发,与此同时,用户构思第3个版本。依次类推,最终完成项目的开发。在此项目的开发过程中,我们深切体会到,用户对于需求并不是十分明确,他们清楚系统应该具备什么样的功能,但并不能很好地表达清楚这些功能。通过不停地与用户进行交流,让用户依靠进行中的子项目来较好表达自己的诉求,通过迭代式的项目开发原则,用户的反馈可以不断地渗入到项目开发中,使开发人员能及时地进行调整,这也符合了敏捷软件开发理念中欢迎客户充分参与项目的主要观点。

3.2 编写项目文档

在前面介绍敏捷软件开发的四种价值观中,曾经说过“可运行软件高于详尽的文档”,这并不是说文档一无是处,可以被替换,事实是缺少文档的软件系统可能会变成一种灾难,在敏捷软件开发中强调的是无须编写太多的文档,应更注重可运行软件的实现。编制众多的复杂文档需要花费相当多的时间,同时文档的编写是对代码实现的约束,一旦用户对系统的需求进行了更改,那必须要对文档进行修改,以保证代码和文档的同步,这样势必会增加开发人员的工作量,特别是在此项目严重缺少此类人员的情况下,而如果将文档和代码脱离,那会使文档变成名副其实的花瓶,这倒是其次的,试想如果将此系统交与另外的开发小组,那将会导致一个可怕的灾难。对于敏捷软件开发方法来说,关注文档中的核心部分,比如编写维护系统原理和数据结构方面的文档即可。

在本项目中,我们重点关心系统结构说明书和数据库说明书这两种关键的文档,并在开发过程中根据需求的变化及时地进行更改和修正。系统结构说明书包含基本的需求分析、系统的实现架构、模块划分等,使任何一个开发人员阅读此文档后可以对整个项目有一个比较直观和清晰的了解,在系统结构说明书中,多用图表和结构图的方式进行设计说明,这种方式比较直观而容易被接受;数据库说明书包含了整个系统的数据库结构设计情况,包括了字段、类型及其他相关信息,数据库说明书的整理除了能给开发人员对于系统的数据信息有一个充分的认识,在系统崩溃或重建时能提供充足的信息,当然这种情况是我们很不想看到的。

通过以上的步骤,减轻了开发人员编写文档的负担,使重心可以放在系统功能的实现上,提高项目的开发速度和效率。同时,对于不熟悉系统的其他开发人员,可以通过系统结构说明书和数据库说明书,快速地投入到后续的开发中。

3.3 代码重构方法的改进

敏捷软件开发的另一个重要的开发原则就是代码重构。所谓重构,就是在不改变代码行为的前提下,对代码进行一系列小范围的改造,其目的是为了改进代码的质量。在敏捷软件开发过程中,建议进行每次细微的重构改造后,运行单元测试以确保所进行的改造并未对系统造成任何破坏,然后再进行下一次改造。

随着系统开发进度的进行,系统越来越庞大,单元测试并不能确保系统的最终版本能正常运行。因此我们从系统的整体出发,在重构中引入基于异常处理的系统日志机制。在每次重构后可以充分利用系统日志的功能监控系统的运行,并及时找出错误源。每次重构后,如果检测到错误,通过系统日志记录的类名、方法名和相关的异常信息便可以马上定位错误源。异常处理机制则确保程序依旧能稳定运行。软件开发完成后,可以屏蔽日志程序,并保留捕捉异常的记录,同时,在系统的实际部署中,应配置系统日志的大小限制,以防止日志的无限增长,影响系统的运行性能。

3.4 系统平台的运行及维护

在系统开发完成后,软件投入使用,在正式使用前,应设置一个适当的测试运行周期。在试运行期间查看系统产生的日志,通过所记录的异常信息来及时修改程序的错误,当异常错误信息基本不再出现的时候,便可确定系统可以正常稳定地运行了。

在系统的日常使用和维护中,由于系统的开发是一个在维护中不断改进和完善的过程,会不断地根据需要进行功能和相应模块的扩展和变更,以适应业务环境变化的需要。在新增或变更功能模块时,如果发生程序运行错误,基于异常处理的系统日志机制便能迅速捕捉到异常,并加以记录。通过系统日志,技术人员能在復杂运行环境中迅速定位错误源,不需要等待错误的再次发生,极大地方便了软件的维护工作。

4 结束语

在学生管理系统的开发过程中,开发团队在规模小,时间紧的不利情况下,利用敏捷软件开发理念,对系统的开发进行指引,无论从开发时间和效率,还是从与用户的沟通合作上,都实现了以往传统方法不能实现的开发水平,同时也保证了系统维护的延续性。通过这种敏捷开发方法的指引,使软件系统的开发事半功倍。

参考文献

[1]维基百科 敏捷软件开发 http:// http://zh.wikipedia.org/wiki/敏捷软件开发

[2]《敏捷软件开发》第二版 美国库克伯恩

作者简介:

金柳柳(1981-),男,汉族,江苏南通人,大学本科,高级讲师,主要研究方向:网站开发。

(作者单位:天津海运职业学院信息工程系)

猜你喜欢

开发人员文档软件
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
轻松编辑PDF文档
Semtech发布LoRa Basics 以加速物联网应用
有趣的识花软件
Word文档 高效分合有高招
即时通讯软件WhatsApp
后悔了?教你隐藏开发人员选项
三星SMI扩展Java论坛 开发人员可用母语
丰富多彩的Android软件