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

来源 :大东方 | 被引量 : 0次 | 上传用户:fenligood
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:敏捷软件开发是一个较为抽象的软件开发方法,是一种应对快速变化的需求的一种软件开发能力,强调的是程序员与客户之间的紧密协作、面对面的沟通,从而提高软件开发的效率。本文以高职类学校学生实习管理系统为例,介绍此种开发方法的在实际系统开发中的应用。
  关键词:敏捷开发;实习管理系统
  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-),男,汉族,江苏南通人,大学本科,高级讲师,主要研究方向:网站开发。
  (作者单位:天津海运职业学院信息工程系)
其他文献
摘 要:目前,森林覆盖率达71.04%的浦北县木材加工业已从粗放型向品牌化迈进,“滚雪球”效应让林业成为新兴的支柱产业。将无人机运用在浦北林业生产中,不仅可以降低人工作业量还可以实现对林业生产各个环节的实施监控,从而有效的预防林业火灾以及自然灾害等现象的发生发展,从而提高林业生产的经济效益。  关键词:无人机;林业生产;应用  无人机(UAV),是一种有动力、能携带多种设备、执行多种任务、并能重复
期刊
摘 要:市政排水系统跟市政给水系统一样,是城市居民的生命线工程,是服务区内其他工程设施得以正常使用的重要设施之一,确保其施工质量至关重要。笔者拟根据多年来从事施工技术工作的经验,對市政排水管道工程施工与质量问题进行探讨,供参考。  关键词:城市建设;给排水管道;施工质量  我国城市基础设施比较落后,给排水管网和城市污水处理厂建设更加滞后。严重的水污染现状要求我们加强城市的污水治理,这就要求城市给排
期刊
摘 要:随着社会的不断发展,技术也不断进步,机械自动控制技术在现代工业生产中的应用是一个不断创新的过程。使用机械自动控制技术,可以帮助工厂快速有效地完成产品,提高产品质量,缩短生产周期,降低生产和人工成本,提升企业的经济效率。本文主要分析了机械自动控制化制造技术的概念和特点,在此基础上提出了机械自动控制技术发展的要点,为机械自动控制技术的发展提供参考。  关键词:机械自动控制技术;研究要点;制造业
期刊
摘 要:近年来随着我国改革开放的成效越来越明显,我国社会经济发展速度越来越快,社会生产生活各方面建设水平也逐渐提高,生产力水平更是稳步提升,对于机械工业领域的影响也十分明显。我国机械工业的发展速度和水平也随着生产力水平呈现正增长趋势。机械工业的发展对我国生产生活水平的提有着重要作用,这不仅仅因为机械设备的使用极大的减轻了人力劳动的负荷,还因为机械设备在生产生活中的应用提高了产品生产水平,促进了各行
期刊
摘 要:火灾自动报警系统对于任何一个人口密集的建筑来说都是极其重要的,火灾自动报警能够在建筑物发生火灾的情况下帮助相关人员尽快实施灭火行动,同时也有利于人民逃生。本文对火灾报警及消防联动控制系统的设计进行分析探讨。  关键词:火灾;自动报警;系统设计  目前,国内建筑火灾自动报警系统的设计还存在诸多问题,在火灾自动报警系统的设计中,设计的科学性和合理性是至关重要的。因此,我们需要进一步深入研究火灾
期刊
摘 要:互联网保险的发展是大势所趋。它是在互联网发展的潮流下应运而生的。由于人们对保险产品的认可程度越来越高,保险行业的发展态势会越来越好。在当下我国互联网的发展态势下,互联网保险對保险行业有有利的影响。  关键词:互联网保险;保险行业;发展现状  互联网对人们生活有改变。这个改变不仅仅是小范围、小领域的,它可以说涵盖了我们生活的方方面面。各行各业都捉住互联网变革的这一契机,对自己行业的产品进行变
期刊
摘 要:随着经济科技的不断进步,我国城市化的进程也加快了脚步。与此同时,城市园林绿化管理得到了较快发展。城市园林绿化是城市建设中的重要组成部分,是城市文明进步的标志,城市园林的发展推动了我国城市园林业的进步,促进了我国城市的发展。然而,我国在城市园林绿化管理中依然存在一些问题,本文将就此探究提出了相应的优化措施。  关键词:园林;绿化;管理  园林绿化是指依据城市发展需要,在城市辖区范围内进行绿地
期刊
摘 要:当前,OA系统已经在各行各业中获得了广泛的运用。以医院为例,OA系统是医院信息系统最为重要的构成部分,需通过计算机信息处理技术的运用以更加充分地挖掘、运用以及分享医院的信息资源,尽可能达到信息资源的共享,促进医院管理能力的加强。本文就医院OA系统中计算机信息处理技术的运用进行深入地探讨。  关键词:OA系统;计算机信息处理技术;运用  伴随社会经济的快速发展,办公自动化大量普及,医院OA系
期刊
摘 要:企业为了能够进一步提高市场竞争力,需要将相关信息进行统一整理,并构建质量技术监督信息系统,提高企业工作效率,本文通过促进企业进一步发展、基础数据库规范化管理,两个方面对质量技术监督信息系统的功能进行了分析,并从完善工作流程、应用信息安全技术、建设信息化平台、设计风险控制系统,四个方面对基于标准化的质量技术监督信息系统的创建策略进行了整理,希望为关注这一话题的人们提供参考。  关键词:标准化
期刊
摘 要:土木建筑行业要想持续健康的发展,必要的环境保护措施及节能环保技术的应用相当重要,不仅能改善当前建筑业对环境的破坏问题,也会给建筑领域带来革命性的改变和进步。  关键词:土木工程;节能环保;施工技术  在土木工程施工过程中,推广和落实绿色施工技术尤为重要。在实际施工过程中,相关的工作人员要加强对于施工材料、能源以及水资源的合理利用,提高自身的绿色施工意识,从而保证能够将绿色施工理念完美的融入
期刊