版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
适于高校团队软件开发的过程模型适于高校团队软件开发的过程模型及方法的研究姓名:周德友学号:2015140471单位:北京邮电大学学院:计算机学院摘要软件过程模式是从成功或者失败的软件开发实践中总结而成,是软件过程中生命周期、人员、方法、产品四大类要素相互关联的有机整体[1]。一个良好的适合的软件过程对于一个软件开发团队来说会起到事半功倍的效果。当今时代,许多高校内部都承担着软件课题研究,但是高校的软件开发从人员组成、目的性以及软件项目组织过程都与成熟的软件开发组织有着很大程度上的不同。那么,寻求出一种适合高校团队特征的软件开发过程并将该模型用在高校软件开发的最佳实践对高校软件开发者来说便有着十分重要的意义。本文,将共同讨论当下最流行的几种软件过程模型及方法,对其进行比较与研究,之后结合各自的特点,提出来一中适应当今高校软件开发团的特点的软件开发模型及方法。关键字:软件过程模型;高校软件开发;最佳实践AbstractSoftwareprocessmodelisasummaryofthesuccessfulorfailureofthesoftwaredevelopmentpractice,isthesoftwareprocesslifecycle,personnel,methods,products,thefourmajorcategoriesoffactorsassociatedwiththeorganicwhole[1].Agoodsoftwareprocesswillplayamultipliereffectforasoftwaredevelopmentteam.Nowadays,manycollegesanduniversitiesareundertakingtheresearchofthesoftwareproject,butthesoftwaredevelopmentoftheuniversityisdifferentfromthatofthepeople.SoitisveryimportanttofindoutasoftwaredevelopmentprocesswhichissuitableforthecharacteristicsoftheUniversityteamandtousethebestpracticeinsoftwaredevelopmentinuniversities.Inthispaper,wewilldiscusssomeofthemostpopularsoftwareprocessmodelsandmethods,andthencomparethemwiththeresearch,andthencombinetheirowncharacteristics.Key:Softwareprocessmodel;Softwaredevelopmentinuniversities;Bestpractice高校软件开发的特点成员组成的特点高校软件开发团队的成员一般都不是专业的软件开发人员,一般是由一个导师领导的多种人员组成的临时团队,完成一个具体的项目。具有以下特点。1)成员来源多样性。高校开发团队成员有多种成员组成,包括导师、教师、研究生以及本科生同学。2)年龄跨度大。不同年龄段的人聚集在一起,思想、观念等就会出现分差。3)技术背景差距大。导师教师技术与研究生本科生差距过大。4)目的性差异。导师教师的目的是完成纵向或横向的项目,而研究生本科生同学的目的是为了锻炼自己培养能力。1.2高校项目的特点高校从事软件项目开发的优势在于创新性、专业性和低成本性。所以高校主要从事以下两种项目的开发。
1)研发型软件。主要是指完成研究型项目的软件系统,用于验证相关研究的正确性或者将相关研究转化为具体生产力或半生产力。这类项目一般都具有创新性、结果不确定性、需求明确性、算法复杂性等特点。
2)企业定制型软件。高校软件开发团队完成的另外一类项目是由企业委托的应用型项目。这类项目一般都具有开发周期固定、项目规模较小、项目经费少等特点。1.3高效开发团队的优势高校是培养高等专业人才的地方,这里有大量思维活跃、具有创新思维的人才,每年高校都有大量创新性的研究成果产生。但是其中真正能够转化为生产力的并不多。重要原因是研究和生产,研究和市场脱节。高校软件开发可以直接在高校就将研究成果转化为直接的生产力。教师通过完成纵向和横向的科研项目也可以增加收入,为更多的研究打下物质基础。学生通过参与实际的软件项目开发。2.几种流行的软件开发过程模型目前,在软件开发界比较流行的软件开发过程模型包括下面几种:统一软件过程模型(RUP)、微软过程、敏捷过程和极限编程(XP)。这些成熟的软件开发过程模型,通过在许多不同的软件开发组织,在不同类型的项目上得到了验证,具有很好的指导软件开发的能力。下面就来介绍一下上面提到的四种主流软件开发模型各自的特点。2.1统一软件过程模型(RUP)统一软件过程模型RUP(RationalUnifiedProcess)是权衡30年的软件开发实践形成的产物。RUP对于如何运用UML的概念进行软件开发提供了详细的指导,并且它是以用例为驱动以体系结构为中心的迭代增量过程。RUP的基本结构如图2-1所示:图2-1RUP的最佳实践包括下面几个方面:短时间分区式的迭代:2~6周,不鼓励时间推迟适应性开发:小步骤、快速反馈和调整在早期迭代中解决高风险和高价值的问题不断地让用户参与评估、反馈和需求;不断地验证质量;提早、经常和实际地测试;使用用例:获取需求、制定计划、进行设计、测试、编写终端用户文档的驱动力量仔细地管理需求(需求提出、记录、等级划分、追踪和生命周期跟踪)实行变更请求和配置管理RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。2.2微软过程模型作为世界上最大的同时也是最成功的软件公司之一,Microsoft(微软)公司拥有自己独特的软件开发过程,几十年的实践证明微软过程是非常成功和行之有效的。下面就来介绍一下微软过程模型。微软过程遵循下述的基本准则:项目计划应该兼顾未来的不确定因素经常生成并快速地测试软件的过渡版本,从而提高产品的稳定性和可预测性采用快速循环、递进的开发过程用创造性的工作来平衡产品特性和产品成本项目进度表应该具有较高稳定性和权威性在项目早期把软件配置项基线化,项目后期则冻结产品使用原型验证概念,对项目进行早期论证把零缺陷作为追求的目标里程碑评审会的目的是改进工作,切忌相互指责微软过程将软件的生命周期分为五个阶段:规划阶段、设计阶段、开发阶段、稳定阶段和发布阶段。作为一种适用于商业环境下具有有限资源和有限开发时间约束的项目的软件过程模式,微软过程综合了Rational统一过程和敏捷过程的许多优点,是对众多成功项目的开发经验的正确总结;另一方面,微软过程也有某些不足之处,例如,对方法、工具和产品等方面的论述不如RUP和敏捷过程全面,人们对它的某些准则本身也有不同意见。2.3敏捷模型敏捷开发,是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。敏捷模型开发软件具有下面几个方法:迭代式开发。即整个开发过程被分为几个迭代周期,每个迭代周期是一个定长或不定长的时间块每个迭代周期持续的时间一般较短,通常为一到六周。增量交付。产品是在每个迭代周期结束时被逐步交付使用,而不是在整个开发过程结束的时候一次性交付使用。每次交付的都是可以被部署到用户应用环境中被用户使用的、能给用户带来即时效益和价值的产品。开发团队和用户反馈推动产品开发。敏捷开发方法主张用户能够全程参与到整个开发过程中。这使需求变化和用户反馈能被动态管理并及时集成到产品中。同时,团队对于用户的需求也能及时提供反馈意见。持续集成。新的功能或需求变化总是尽可能频繁地被整合到产品中。一些项目是在每个迭代周期结束的时候集成,有些项目则每天都在这么做。开发团队自我管理。拥有一个积极的、自我管理的、具备自由交流风格的开发团队,是每个敏捷项目必不可少的条件。人是敏捷开发的核心。敏捷开发总是以人为中心建立开发的过程和机制,而非把过程和机制强加给人。敏捷模型的优点就是注重个体的交互,并且目的是开发出实用的可用软件,它认为可以工作的软件胜过面面俱到的文档。与之相对应的便是没有详细的开发文档,那么当遇到问题时没法查阅文档,解决起来比较困难。2.4极限编程极限编程(ExtremeProgramming,简称XP)是一种轻量级的、灵巧的、简单的软件工程方法。与传统的开发过程不同,极限编程的核心活动体现在需求→测试→编码→设计过程中。因此适用于规模小、进度紧、需求变化大、质量要求严的项目。它希望以最高的效率和质量来解决用户目前的问题,以最大的灵活性和最小的代价来满足用户未来的需求。下图为极限编程的最佳实践:极限编程具有如下优缺点。优点:
1)采用简单计划策略,不需要长期计划和复杂模型,开发周期短;
2)在全过程采用迭代增量开发、反馈修正和反复测试的方法,能够适应用户经常变化的需求。缺点:
1)目前主要在小规模项目上应用并取得成功,但是否适用于中等规模或大规模软件产品,需慎重考虑;
2)由于这个模型较新产品交付后维护成本是否降低,不能确定;3.探求适合于高线团队开发的模型根据第一章内容,在分析了高校软件开发团队的人员、项目特点以及团队优势之后,我们可以得出下面结论:高效开发团队人员水平参差不齐;高效开发团队人员交替频繁(一般学生职能工作1~2年);高效开发团队的研究方向与领域比较单一(由导师决定)。3.1敏捷+裁剪RUP模型根据上面分析,再从第二章的各个主流模型优缺点可知,敏捷模型较为适合。因为敏捷模型是注重人的交互而且开发团队是自我管理的,正好符合导师+教师+学生的高效团队人员组成管理特点,而且敏捷模型的迭代周期比较短,每个迭代周期过后都要交付一个结果,不是全部完成之后一次性交付,因此也适应于研究生的学习特点。但是,敏捷模型也有不适于高效开发的方面——没有详细的文档,由于高效团队人员交替频繁,那么一个软件或者一个项目如果持续周期较长,那么后加入的同学没有详细的文档作为支撑的话,是很难掌握项目的进度和相关内容的。因此,我觉得如果在敏捷模型的基础之上加入RUP统一过程模型的一些特点,如详细的开发文档方便学生交替时后进入项目组的学生能快速的融入项目、并且RUP的四个基本模型元素中的角色要素也十分适合高效开发团队的特点,一个团队成员开一担任一个项目的几个角色,一个角色也可以由多个项目成员共同担任。由于RUP适用于大型软件开发团队进行软件项目的开发,因此,我们选择以敏捷模型为主体,在敏捷模型这个主体,加入RUP模型的部分特点。得到的即为新模型——敏捷+RUP模型。模型图如下图:敏捷模型裁剪的敏捷模型裁剪的RUP该模型在高校软件开发中的各个阶段,如下表所示:宏观阶段细分阶段目标系统架构设计阶段起始阶段确定项目的内容和主要任务(详细文档)细化阶段建立个任务的用例模型、主要数据流、数据库(详细文档)系统碟待开发阶段构建阶段迭代式开发功能模块(详细文档)交付阶段测试并移交(详细文档)4.结束语本篇报告结合高校软件团队特点并分析当今主流软件开发模型,改进并提出一种新的适用于高校软件开发团队的软件开发模型——敏捷+裁剪RUP模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三生物一轮复习课件基因的表达
- 穿心莲药代动力学研究-洞察及研究
- 2025年全国硕士研究生招生考试试题库(附含参考答案)
- 强化学习与语义分割场景理解的结合研究-洞察及研究
- 品牌传播效率提升策略-第2篇-洞察及研究
- 林业信息化对采收效率的影响-洞察及研究
- 2026年家庭废旧衣物回收服务合同
- 儿童英语绘本教学活动方案
- 基孔肯雅热诊断和治疗方案培训考试题(附答案)
- 电力行业安全规范及防护措施
- 电商酒水供销合同协议
- 艺术学概论教学大纲
- 2025年中央一号文件参考试题库100题(含答案)
- 乡村振兴产业基地社会效益与文化效益分析
- 建筑施工现场急救知识
- (高清版)DB37∕T 3048-2017 自主可控软件测试与认证规范
- ISO9001质量管理体系策划方案
- DB11-T 213-2022 城镇绿地养护技术规范
- 2024-2025学年河北省唐山市高一上学期期末考试数学试卷(含答案)
- 高教社马工程伦理学(第二版)教学课件10
- 公务员制度讲座-终结性考核-国开(SC)-参考资料
评论
0/150
提交评论