(计算机应用技术专业论文)基于极限编程的软件项目管理系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于极限编程的软件项目管理系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于极限编程的软件项目管理系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于极限编程的软件项目管理系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于极限编程的软件项目管理系统的研究与实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)基于极限编程的软件项目管理系统的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

海南大学研究生硕学位论文 摘要 当前国内的中小型软件开发公司在软件开发过程中,普遍存在着项目管理困 难的问题。同时,项目管理人员还面临着项目资源有限、计划变更频繁、反应迟 缓等闷题。当前的项目管理软件系统较难满足软件开发公司的实际需求。如何设 计一个项雷管理软件系统来解决顼叠管理中存在的诸多闻题,使软件开发项邕能 够顺利的完成,就是本文要讨论研究的主要阅题。 本文以极限编程为背景,对极限编程的过程进行研究。首先,在对极限编程 的标准过程进行分析的基础上,给出了适用予中小型系统开发的,以用户故事、 系统隐喻及迭代开发为主要实现方法的极限编程改进过程。其次,将极限编程改 进过程应震予软件项目管理系统的设计开发中,解决了标准极限编程避程在中小 型软件系统开发过程中无法与实际需求相吻合的不足。本文的软件项目管理系统 采用了b s 和c s 混合模式来开发。该系统分为项目管理服务器和项目管理客户端 两大部分。项目管理服务器主要完成项目任务的创建、分配以及任务进度的跟踪、 统计功能,保证项目团队成员在可控的任务管理下完成项胬预定计划。项目管理 客户端主要完成从项叠管理服务器获取任务等功能。 随着技术的发展,系统的功能也要随之发展不断增加与改进,因此在文章的 末尾就该软件项目管理系统提出了一些自己的看法和展望。 关键词:极限编程,项目管理,系统隐喻,迭代开发 第ll 贾河南大学研究生硕士学位论文 a b s t r a c t t h es o f t w a r ep r o j e c tm a n a g e m e n ti sv e r yd i f f i c u l ti ns o f t w a r ec o m p a n yi nc h i n a t h ep r o j e c tm a n a g e ri su pa g a i n s ts om u c ht r o u b l es u c ha sb a d l yv e r a c i t y , l i m i t e dt i m e , h u m a nr e s o u r c e ,d e l a y e dr e a c t i o n n o wt h e r ei s n ta n yp r o j e c tm a n a g e m e n ts o f t :w a r eh a s t h ea b i l i t yt oa c c o m p l i s ht h ew h o l es o r w a r ep r o j e c tm a n a g e m e n t ,b e c a u s ei t sd i f f i c u l t t om a k eaf i t n e s ss y s t e mf o r 馕ee n t e r p r i s e sp r o c e d u r ep e c u l i a r i 够i nt h i sa r t i c l e ,w e p r e s e n tap r o j e c tm a n a g e m e n ts y s t e mf o rs o l v i n gt h o s ep r o j e c tm a n a g e m e n tp r o b l e m si n as o f t w a r ec o m p a n y t h i sp a p e rd o e st h ep r o c e s si m p r o v e m e n ts t u d i e si nt h ee x t r e m ep r o g r a m m i n g d e v e l o p m e n tp r o c e s s f i r s t ,b a s e d o nt h e a n a l y s i s o fe x t r e m e p r o g r a m m i n g d e v e l o p m e n tp r o c e s s ,i tp r o v i d ea ne x t r e m ep r o g r a m m i n gd e v e l o p m e n ti m p r o v e m e n t p r o c e s sw h i c hs u i tf o rs m a l ls y s t e m sd e v e l o p m e n ta n dc o n c l u d e st h ec u s t o m e rs t o r i e s , s y s t e mm e t a p h o r sa n di t e r a t i v ed e v e l o p m e n tp r a c t i c a b l em e t h o d s s e c o n d l y , i tu s et h e i m p r o v e m e n tp r o c e s sd u r i n gt h es y s t e md e v e l o p m e n t ,s o l v et h ep r o b l e mt h a tt h e e x t r e m ep r o g r a m m i n gd e v e l o p m e n ts t a n d a r dp r o c e s sc a l ln o tm a t c ht h er e q u i r e m e n to f p h y r s i c a ld e v e l o p m e n t t h i sa r t i c l e sp r o j e c tm a n a g e m e n ts y s t e mu n i t i n gt h eb sa n d c ss o f t w a r ea r c h i t e c t u r e t h es y s t e mh a st w op a r t s :p r o j e c tm a n a g e m e n ts e r v e ra n d p r o j e c tm a n a g e m e n tc l i e n t 。t h ep r o j e c tm a n a g e m e n ts e r v e rh e l p sa c t u a l i z i n gt h e s o f t w a r ee n g i n e e r i n g sr e q u i r e m e n t s ,p l a n ,d e v e l o p m e n t ,t e s t ,m a i n t e n a n c e t h ep r o j e c t m a n a g e m e n tc l i e n tg e t st h et a s kf r o mp r o j e c tm a n a g e m e n ts e r v e r w i l l lt h et e c h n i c a l d e v e l o p m e n t , t h es y s t e m f u n c t i o nm u s ta l o n gw i t hi t d e v e l o p m e n t ,t h e r e f o r ei nt h ee n dp r o p o s e ds o m eo w nv i e wa n dt h ef o r e c a s to nt h i s p r o j e c tm a n a g e m e n ts y s t e m 。 k e yw o r d s :e x t r e m ep r o g r a m m i n g ;p r o j e c tm a n a g e m e n t ;m e t a p h o r ;i t e r a t i v e d e v e l o p m e n t 关于学位论文独立完成和内容创新的声明 本人向河南大学提出硕士学位t p 请。本人郑重声明:所呈交酌学住论文是 本人在导师的指导下独立完成的对所研究的课题有新的见解。据我所知。除 文中特别加以说明、标注和致谢的地方外,论文中不包括其他人已经友袁或撰 写过的研究成果,也不包括其他人为获得任何教育、科研机构的学位或证书而 使用过的材料。与我一同工作的同事对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位申请人学位论变作者 釜名:二董珲l 2 b 如年e 碉、s - 日 关于学位论文著作权使甩授权书 本人经河南大学审核批准授子硪士学位。作为学位论文的作者本人完全 了解并同意河南大学有关保留、使月学位论文韵要求,即河南大学有权向国家 圈书馆、科研信息机构、数据收集机构和本校图书馆等提供学位论文( 甄质文 本和电子文本) 以供公众检索、奎阅,。本人授权河南犬学出于宣扬、展览学校 学术发展和进行学术交流等哥的i 可以采取影印:缩印、扫描和拷贝等复制手 段保存、汇编学位论文( 甄质文本和电子文本) 。 ( 涉及保密内容的学位论文在解密后运用本授权书) 学位获得者( 学位论文作者) 鍪名: 竖聋 、, 2 0f 学位论文指导教师鍪名: 2 0 f 口年6 月f 厂曰 河南大学研究生硕士学位论文第1 页 1 1 研究背景 第 章绪论 随着技术的迅速发展和经济的全球化,软件开发的生产效率越来越被企业所 重视,并对生产效率提出了更高的要求,为了满足需要,软件开发业界出现了一 些新的开发方法,这类方法以轻便、快捷的思维方式,迅速提高了些传统软件 开发企业的生产效率,得到了迅速的推广,这类方法统称为敏捷软件开发方法。 嚣魏,毙较常用的敏捷方法有s c r u m 、极限编程、功能驱动的开发方法、l e a n 软件开发方法等,其中极限编程以其极具轻便、灵活的编程方式得到众多软件开 发人员的青睐,得以更普及、更广泛的应用。 极限编程是一种轻量级的软件开发方法论疆】。极限编程麸实践中来,是对实践 的总结,也是经过实践检验的,其主要特征是要适应环境的变化和需求的变化, 充分发挥开发人员的主动耪享枣f 2 】。极限编獠承诺降低软件顼基风险,改善业务交化 的反应能力,提高开发期间的生产力,为软件开发过程增加乐趣,相信这些足以 吸引每个人的眼球3 1 。在极限编程的项目开发中,首先引入了四个变量:成本、时 闻、质量和范霭,通过研究变量之间的相互作用,将项西开发分析的更为透彻。 为了能够成功地实施极限编程,极限编程制定了四个准则:沟通、简单、反馈和 勇气,和十二条原则:小版本、计划游戏、系统隐喻、结对编程、逸动化测试、 简单设计、代码重构、代码集体所有、持续集成、每周工作4 0 小时、现场客户、 编码标准,以及对开发人员的工作要求:编码、测试,倾听和设计【4 1 。极限编程是 一个菲常庞大的知识库,每一项都是一 1 值得深究的学i ;u t s 】。提出这些要求帮原则 第2 页河南大学研究生硕士学位论文 后,极限编程又提出一系列的解决方案,也就是策略,其中包含:管理策略、设 施策略、计划策略、开发策略、设计策略和测试策略 0 3 。随着极限编程开发方法的 广泛应用,如何对极限编程开发过程进行管理也越来越被人重视。 软件项目管理虽然没有非常高深的理论,但真正实施起来也绝非易事。一个 典型的软件项目基本可以划分为启动、计划、执行、控制、收尾五个过程【7 1 。虽然 现在己经有了很多软件项目管理的模式与经验,但软件开发项目特有的不确定与 不可度量的特性依然使软件开发处处受陷,严重影响着软件开发项目的质量【羽。 1 2 国内外研究开发现状 软件危机诞生以来,虽然人们对软件工程环境、工具和技术的研究都倾注了 大量的人力、财力和物力,也取得了许多成果。但随着软件需求量的快速增长, 软件开发中出现的问题也越来越多9 1 。有分析认为:三分之一的项目在成本和时间 上超出额定限度的1 2 5 以上【1 0 1 。现在仍然困扰着绝大多数软件机构的问题是:无 法开发符合预算和进度要求的高可靠行和可用性软件【1 1 】。为什么这么多的软件项 目会失败呢? 通过对一些失败的软件系统的分析,发现问题并不在开发方法本身, 以及硬软件的选择上,而是处在开发方法的具体实施过程中,也就是说问题主要 处在开发项目的管理上【1 2 】。人们开始认识到技术的改善并不能代替管理的作用。 没有良好有序的管理,任何新技术都是无法得以真正实施的。 随着顾客需求的多样化、个性化,软件产品的生命周期将越来越短,市场竞 争则会日趋激烈,企业外部环境的瞬息万变造成原有的企业生产管理模式无法适 应这种新的形势。为了从整体上合理地利用资源,增强资源共享和透明度,提高 开发效率,必须对其业务流程进行控制和管理【1 3 】。传统的项目管理模式及项目管 河南大学研究生硕士学位论文第3 页 理系统难以对这种分布在异地的业务流程进行有效的管理。以软件为核心的互联 网推动着当代商业运作逐步迈向电子商务时代【1 4 1 。这就决定了未来软件必需具备 以下能力:在互联网上应用的能力;在互联网上有效管理数据的能力;以及最终 实现在互联网上广泛开展业务的叠标。以巨联孺技术为基础的b s 架构很好地适 应了这种变化。它通过应用服务器、数据库服务器的分布,前端客户机的简化, 解决了分布式应用的问题f 1 5 】。 随着经济全球化与信息技术的不断进步和发展,在项目管理领域出现了新的 机遇和挑战,当今很多项目都面对项目参与人员地理上的分散性、组织上的多样 性、文纯上的差异性、资源舅构性的现象,企业麸互联网获取信息与基于w e b 技 术管理企业资源和生产活动越来越成为企业的迫切要求【1 研。但作为构成企业日常 业务活动的过程篱理大多数还只停留在会议、传真、电话等l 尽有的交流模式上。 随着面向w e b 的信息技术的发展,利用w e b 技术来交流信息和管理项目将比传统 的会议或口头交流更加先进和实时有效。因此,构建一个具有伸缩性、开放性、 便携性和安全性的基于w e b 的项雷管理系统威力现代企业酋一种普遍需求。互联 网技术的发展,尤其是以j 2 e e 为平台的w e b 开发技术的应用,为建立的项目管理 系统提供了有力的技术支持【1 7 1 。 近年来我国引进和自行开发的各种软件工具、开发环境,种类繁多,数量浩 大,所花费用达到几十亿元,但发展却并不尽如人意。通过分析,发现问题并没 有擞在开发方法本身数及硬软件的选择上,究其原因主要是我国软件行鲎缺乏规 范的管理,软件生产的过程没有明确定义,使用的管理技术不适当,产品质量得 不到有效的控制。历史上许多大型软件系统的开发经验秘教训表明,在软件开发 第4 页河南大学研究生硕士学位论文 过程中,如果软件组织不能良好的实施和管理软件开发过程,就不能从中获益, 进丽得不到满意的软件产品【嘲。 目前,信息技术界对软件项居管理的研究大多停留在理论研究与实践指导方 面,基本还是通过规章制度、文本等书面性质的约束来实现对开发项目的各个环 节进行统一管理。目前国内外能对软件开发项目所有阶段提供统一支持的软件系 统并不多。在实际项醑管理中,常用的用于项霹管理的软件大致有以下两种: l 。以m i c r o s o f t 的p r o j e c t 软件为代表豹传统的项醺过程管理系统。p r o j e c t 是 微软公司推出的一个非常出色的项目管理软件,凝集了许多成熟的项目管理现代 理论和方澍1 9 1 。传统的项目过程管理控制系统软件,p r o j e c t 无疑是最成功的一个。 p r o j e c t 以单机应用程序的形式,提供了项目开发过程中的时间安排、规划、工作 时间管理、资源分配等功能,同时它还可】以检查资源配比是否合理、资源压力是 否过大、关键路径检查等软件开发项鎏管理中的主要工作 2 0 l 。虽然p r o j e c t 软件发 展至今己同渐成熟,但是传统的单机应用程序难以和新的软件系统结合、难以扩 展、难以根据用户需求的改变做出应变。所以p r o j e c t 在曰新月异的软件开发行业 中仍有其不能避免的缺陷。 2 以x p l a n n e r 2 1 1 为代表的新型的项嚣过程管理控制系统。随着网络应用的成 本不断降低、网络通信技术的不断发展成熟,以x p l a n n e r 为代表的新的基予两络 架构的项曩过程管理控制系统不断涌现出来。x p l a n n e r 是以敏捷软件开发过程方 法论为指导的项目过程管理平台。它提供了项目管理、项目资源管理、持续集成 跟踪、缺陷分配和跟踪、需求跟踪、项目报表生成和导出等功能。同时还充分利 用了计算机网络易于扩充、应用轻使的特点,添加了很多亮点功能,比如可以和 河南大学研究生硕士学位论文第5 页 常见的缺陷管理跟踪系统无缝结合、可以和常见的版本管理系统结合等功能。但 是开源的x p l a n n e r 系统不能被直接应用,要由企业内部进行二次开发,对其权限、 界面进行优化或重构,以适用与各个企业软件开发的管理,而这种二次开发的版 本多数并不能广泛应用。 1 3 论文的主要工作 本文的主要工作如下: 首先,在对极限编程的标准过程进行分析的基础上,对极限编程过程进行了 优化和改进。 其次,根据改进后的极限编程过程,设计了一套适用于中小型系统开发的基 于极限编程的软件项目管理系统。 最后,实现上述软件项目管理系统,并指出了该系统的优势。 1 4 本文的主要研究内容及安排 第一章是绪论,主要介绍系统的开发背景,阐述国内外相关思想和技术的研 究现状,以及说明了本文所要解决的主要问题。同时还说明了本文的组织结构。 第二章概括介绍了软件过程、极限编程。 第三章要通过分析标准极限编程过程的局限性,根据中小型项目开发过程的 特征,提出了适用于中小型系统开发的,以用户故事实践方法、系统隐喻实践方 法及迭代开发实践方法的极限编程改进过程。并与标准的极限编程过程进行比较, 总结出改进过程的优点。 第四章主要将极限编程改进过程应用于软件项目管理系统的系统设计、框架 第6 页河南大学磷究生硕士学位论文 构建与具体实现。对其中主要的功能模块进行分析设计。最后指出了该系统的优 势。 第五章对全文工作进行了总结,并对进一步研究和工作提出了展望。 河南大学研究生硕士学位论文第7 页 2 。1 软件过程 第2 章基础理论 软件过程( s o f t w a r ep r o c e s s e s ) 也称为软件生存周期过程,是指软件生存周期中 的一系列相关过程】。过程是活动的集合,任务则起到分析需求、开发并发布版 本的作用。活动的执行可以是顺序的、迭彳弋的、嵌套的瓣弱。 软件过程是一个典型的复杂系统,是将用户需求转化为可执行系统的开发和 演化过程中所进行的软件工程的全部活动,具有并行性、复杂性、逶的性、演纯 性、动态性等特征。 软件过程的概念,不仅仅局限于软件的开发和维护,同时还涉及系统的集成 朝软件产品的制作与生产,特别重视管理过程、支持过程和运行过程,其研究的 对象也已扩展到从事软件活动人员的工作,不同的角色由于其视面的不同,所负 责的软件过程也不相同【2 4 】。 2 1 1 软件过程基本概念 软件过程( p r o c e s s ) :将耀户需求转化为可执行系统的演化过程新进行的软件王 程活动的全体,是用于生产软件产品的工具、方法和实践的集合【2 5 1 。 过程步( p r o c e s ss t e p ) :过程中的原子行为,不再有外部可见的子结构。过程不 是过程中基本的抽象单元。 过程程序( p r o c e s sp r o g r a m ) 【2 6 】:描述、维护和演化软件过程的过程。 开发工具( t 0 0 1 ) :是一系列可执行程序集,通常出活动调用。典型酶开发工具 第8 页河南大学研究生硕学位论文 用于需求说明、重用、建模、程序生成、编译、维护、文档生成等。 用户( u s e r ) :在过程支持下使用开发工具的人,包括程序员、设计人员、质量 工程师、项目管理员等。 视图( e w ) :软件过程某一个侧面的信息,是软件过程的一个投影。 软件产品( s o 脚a r ep r o d u c t ) 2 7 】:使用过程描述语言所描述的可执行的过程模型 程序。 2 。l 。2 软件过程分类 软件过程有各种分类方法。按工作内容分有获取过程、供应过程、开发过程、 运行过程、维护过程、管理过程和支持过程等;按特征分有管理过程、开发过程 和综合过程等;按性质分有基本过程、支持过程和组织过程等。按工作内容分有 获取过程、供应过程、开发过程、运行过程、维护过程、管理过程和支持过程等。 但是不管采用哪种分类方法,都会涉及到对各种过程和活动实旌剪裁,从藤形成 本机构或具体项目的软件生存周期模型的过程,即剪裁过程。此外,还可能涉及 到基础过程、改进过程和培训过程【2 司。具体如图2 1 所示: 河南大学研究生硕士学位论文第9 页 基 本 过 程 蔌箨过程分类 性质分类ll 特征 |l 公共模块 支 持 过 程 组 缓 过 程 管 理 过 程 开 发 过 程 绿 黛k 过 程 获 取 过 程 图2 1 软件过程分类 供 波 过 程 开 发 过 程 管 瑾 过 程 开 发 过 程 综 厶 口 过 程 2 。羔。3 软件过程主要研究方向 目前在软件工程领域有三大研究主题【2 9 】:软件过程的集成环境、软件过程的 定义与建模和过程的评价与改进。 这三大主题是穗互关联的,是提高软律生产效率和提高软件覆量所需要研究 的一系列问题【3 0 1 。本文工作生要集中在软件过程改进,但是由于这些研究方向之 间关系密切,也将涉及到软件过程的定义。 2 2 极限编程 极限编程开发方法是由k e n tb e c k 在1 9 9 6 年提出的。它是种针对孛小型团 队的,适用于需求不明确或快速变化场合的开发方法。它是以开发符合变化的客 户需求的软件为曩标丽产生的一种方法。 第1o 页河南大学研究生硕士学位论文 极限编程的开发方式类似予螺旋式,它将复杂的开发过程分解成为一个个相 对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员 和客户可以非常清楚软件的开发进度、变化、待解决的问题和潜在的困难等,并 根据实际情况及时地调整开发过程。极限编程属于轻量级的、灵巧的软件开发方 法【3 i l 。 对比传统盼项基开发方式,极限编程强调把它列出的每个方法器愚想徽到极 限、做到最好;其它极限编程所不提倡的,则一概忽略。个严格实施极限编程 的项瞄,其开发过程应该是高效的和快速的,能够做到一周4 0 小时工作制而不拖 延项爨进度。 现在,极限编程己成为最流行的敏捷软件开发方法,用于中小企业开发需求 快速变化鲶软件。极限编程作为一种柔性酶编程法则,它的基础和价值观是沟通、 简单、反馈和勇气;强调团队协作、重视持续集成、频繁的小版本发布、连续的 客户反馈等等。随着大家的不断认识和了解,极限编程已经给软件工程带来了不 小的振动,并被全球有越来越多的开发团队在项鹾的开发过程中所采用。 2 2 。l 极限编程过程 极限编程e f j 四部分组成:价值、原则、实践和行为。原则来自于价值;而价 值和原则又都是以1 2 个实践为基础豹:1 2 个实践关联着罂个主要的软件开发活动。 图2 2 说明了它们彼此之间的依赖关系,这四部分行为贯穿于整个生命周期【3 2 l 。 河南大学研究生硕士学位论文第11 页 图2 - 2 极限编程组成部分 2 2 2 极限编程的价值 极限编程提供了一个全局的、价值驱动的开发过程视图。要达到高迭代过程, 队伍需要具备四种不同的价值:沟通( c o m m u n i c a t i o n ) 、简单( s i m p l i c i t y ) 、反馈 ( f e e d b a c k ) 和勇气( c o u r a g e ) 【3 3 】: 1 沟通:默契是开发团队需要面临的最大挑战,加强沟通是解决问题的最有 效途径。沟通也并不仅仅指客户和开发人员之间的直接交谈,尽管交谈是双方沟 通的第一步。如果开发人员对客户的提问不能切中项目的要点,那仍然无法依据 客户的回答做出正确的决定。 2 简单:在一个高度迭代的过程中常常有反馈,所以开发人员不用计划系统 设计上的扩展,仅仅要考虑最简单的可行方案,尽量以简化的措施完成工作,在 以后阶段中,有必要时,再做出改变,这样可以避免将资源花费在复杂又不符合 客户真正需求的程序上。 3 反馈:在极限编程项目中遇到问题时,开发人员要和客户不断的进行沟通, 第12 页河南大学研究生硕士学位论文 通过持续的、明确的反馈来解决这些问题。同时,开发人员快速地实现软件的部 分功能,向客户演示,对获得客户关于当前进度准确和高质量的反馈。 4 勇气:一旦发现了错误或需求改变,开发人员可能要把部分以前的工作丢 掉、推翻和重新开发。面对这种情况,无疑是需要勇气的。对以往的错误置之不 理,是与高迭代过程的原则相违背的。勇气可比喻为玩迷宫游戏,当发现走错了 路时,必须马上回头,这并不意味着浪费了刚走过的路程,而是找到迷宫出口的 一种代价。 极限编程实际上是由这四个价值所驱动的,也就是说,如果实现某极限编程 实践,而得不到这四个价值的话,便失去了极限编程的意义。 2 2 3 极限编程的原则 建立在极限编程的价值观基础之上,有五个指导软件开发的主要原则:高质 量的工作( q u a l i t yw o r k ) 、递增改变( i n c r e m e n t a lc h a n g e ) 、快速反馈( r a p i d f e e d b a c k ) 、 简单假设( a s s u m es i i l l p l i c i 劝和拥抱变化( e m b r a c i n gc h a n g e ) 【3 3 】: 1 高质量的工作:指工作和产品的质量是不容被忽视的,不可以因为开发进 度而放弃软件质量,并做出让步。 2 递增改变:通过一系列小的修改来解决一个问题。在计划、开发和设计过 程中都采用这一原则。 3 快速反馈:开发人员通过短的迭代周期,得到反馈信息,并迅速查验当前 的产品是否满足客户的需要。 4 简单假设:将每个问题都以尽量简单的方法来解决。这就意味着只需要在 当前的迭代范围内考虑问题,设计应该尽可能的简单,只需要满足当前迭代的需 河南大学研究生硕士学位论文第13 页 求。 5 拥抱变化:在解决紧迫问题时,采取一种包容的策略。开发人员要明白客 户的需求是不断变化的,因此功能的优先级和功能需求也在不断的变化。要拥抱 变化,需要先解决紧迫问题,并常对需求的变化做出相应的调整。 2 2 4 极限编程的活动 传统软件模型的开发过程包含了四个主要活动:需求、设计、编码和测试。 这些活动与原来四个过程具有相同的名字,但它们的本质是有区别的。下面简单 的说明极限编程的四个活动【3 3 】: 1 聆听:极限编程以交流为基础。它对正式的书面文档的依赖较低。开发人 员不仅需要倾听客户的需求,还需要听取开发团队里其他人的意见。开发人员要 掌握很好的交流技巧。 2 设计:极限编程有一个相当新颖的观点,设计是跟随着项目的发展而进行 的。设计不再是静态的或是一个项目的阶段,也不再是开发人员的任务,而变成 了具有团体性的一个动态过程。从不断改进的角度来看,软件开发就是设计。 3 编码:在极限编程里,许多的实践方法如结对编程、代码重构、测试驱动 开发等都专注于编程,以得到高质量的程序。极限编程的开发人员视代码为有意 思的文字,而不是难懂的如同加密过的文字,所以代码的意义应是明显的,也就 是具备高可读性,要使其他组员也能明白的逻辑、算法和流程等。 4 测试:良好的测试是保证软件产品质量的关键。极限编程的测试是贯穿于 整个开发过程的。代码从一开始就是可测试的,程序中绝大部分的问题在早期就 被解决,不必等到较晚阶段。这样开发出的软件产品的质量是有保证的,开发成 第 4 页河南大学研究生硕士学位论文 本也会降低。 2 2 5 极限编程的实践 极限编程实践提供了对交际操作有指导作用的1 2 个实践酬: l 。计划游戏( p l a n n i n gg a m e ) - 极限编程要求结合项目进展和技术情况,确定下一阶段要开发与发布的系统 范围。项目计划在建立起来以后,需要根据项目的进展来进行调整,一成不变的 计划是不存在。因此,项目组需要控制风险、预见变化,从而制定有效、可行的 项目计划。 2 。小型发毒( s m a l lr e l e a s e s ) : 开发人员觉得系统有意义就立即发布,这样就尽可能早地为客户提供价值。 同时发布也能为开发人员提供具体的反馈信息,告诉开发人员系统的问题所在。 然后,团队可以将这些经验教训加入到下一个发行版本的规划中。 3 系统隐喻( m e t a p h o r ) : 极限编程通过隐喻来描述系统如何运作、新的功麓以何静方式加入到系统。 它通常包含了一些可以参照和比较的类和设计模式。极限编程不需要事先进行详 细的架构设计。极限编程在系统实现初期不需要进行详细的架构设计,而是在迭 代周期中不断的细化架构。 4 简单设计( s i m p l ed e s i g n ) : 极限编程认为代码的设计应该尽可麓的简单,只要满足当前功能的要求。传 统的软件开发过程,对于设计是自上面下的,强调设计先行,在代码开始编写之 前,要有一个完美的设计模型。而极限编程认为需求是会经常变化的,因此设计 河南大学研究生硕士学位论文第15 页 不能一蹴而就,而应该持续进行。 5 测试驱动( t e s td r i v e l 1 ) : 极限编程强调测试先行,即在编码开始之前,首先将测试写好,而后再进行 编码,直至所有的测试都得以通过。 6 代码重构( r r f a c t o r i n g ) : 极限编程强调代码重构,认为开发人员应该经常对代码进行重构。代码重构 是指在不改变系统行为的前提下,重新调整、优化系统内部结构以减少复杂性、 消除冗余、增加灵活性和提高性能。重构不是极限编程所特有的行为,在任何的 开发过程中都可能并且应该发生。 7 结对编程( p a i rp r o g r a m m i n g ) : 极限编程认为在项目中采用结对编程比单人编程更加有效。结对编程是由两 个开发人员在同一台电脑上共同编写解决同一问题的代码。 8 集体拥有代码( c o l l e c t i v eo w n e r s h i p ) : 任何开发人员都能根据需要修改任何代码,使任何发现问题的人都能着手进 行修改。 9 持续集成( c o n t i n u o u si n t e g r a t i o n ) : 极限编程提倡在一天中集成系统多次,而且随着需求的改变,要不断的进行 回归测试。 1 0 每周工作4 0 小时( 4 0h o u r saw e e k ) : 极限编程要求开发人员每天工作时间不超过8 小时,每周工作时间不超过4 0 小时,加班不连续超过两周,以免影响工作效率。 第16 页河南大学研究生硕士学位论文 l1 现场客户( o n - s i t ec u s t o m 神: 极限编程鬻求至少有一名实际的客户代表在整个项目开发周期在现场负责确 定需求、回答团队问题以及编写功能验收测试。 1 2 编程规范( c o d i n gs t a n d a r d s ) : 极限编程强调通过制定严格的代码规范来进行沟通,尽可能减少不必要的文 档。极限编程希望透过建立统一的代码规范,来加强开发人员之闻的沟通,阍时 为代码提供了一定的标准。极限编程希望减少项翻开发过程中的文档,极限编程 认为代码是最好的文档。 2 2 。6 极限编程的优缺点分析 极限编程具有以下优点: 1 极限编程提倡的小型发布可以及时的检查错误,缩小错误的范围。 2 。极限编程提倡的快速麴对待需求变化,可减少因需求变佬面带来懿对系统 的影响,可以很好的满足客户需求 3 极限编程提倡的简化设计思想熊够很好减少开发入员的工作量,加快开发 的进度。目前,很多企业认为只有在设计完成之后才能进行代码的编写,丽设计 往往并不完美,大而全的设计导致项目的开发进度受损。极限编程为我们提出了 一种薪的开发模式酬。 同时极限编程也存在一些缺点与不足之处,表现在: 1 极限编程提出的结对编程实践方法虽然能减少错误,但有可能造成编码髂 不一致性,有时还会因为解决问题的矛盾而拖延项目的开发进度。 2 极限编程强调代码规范,认为代码规范就是所有规范,而弱化了项目的设 河南大学研究生硕士学位论文第17 页 计、计划等过程,这对于项目以后的维护非常不利,会为以后的持续性开发带来 很大的困难,特别是对于一些人员变动比较频繁的团队或者组织【3 5 】。 3 极限编程强调在编码阶段的重构,这仅仅是局部重构,如果能从设计层面 考虑重构,会更全面,但极限编程弱化了分析设计【3 6 1 。 4 极限编程提倡的代码全体拥有虽然能提高代码的透明度,但给系统的安全 性、稳定性也带来了极大的风险。 2 3 软件体系结构 软件的设计不仅要考虑到软件系统的功能需求,更重要的是软件的可重用性、 可修改性和可靠性等非功能性问题。软件体系结构的好坏直接关系到软件性能的 好坏。 分层体系结构是大规模系统的多层次结构,提供了一个管理软件复杂度及重 用的方法。分层体系结构一般用于大规模系统,这些系统都有强烈的管理系统变 化和复杂度的要求。由于分层系统采用的登记形式的组织形式,每一层都给上层 提供服务,对下一层则作为一个客户存在。 分层系统具有多个良好的特性。首先,它支持基于不断增长的抽象层次的设 计。这允许使用者将一个复杂的问题分解。当一个系统可以分成若干个由清晰的 边界定义的区域时,分层系统可以应用在其上。通常,由于复杂度、多软件包和 平台的差异,并不希望应用开发人员知道系统中每个软件层次的细节,分层系统 则正好提供了管理每个开发者复杂度的体系结构边界。其次,分层系统支持提升。 另外,分层系统支持重用。如抽象数据类型一样,分层系统允许被同一层的不同 应用交互使用,而且使它们可以支持相邻层的相同接口,这使得用不同的应用程 第18 页河南大学研究生硕士学位论文 穿建立标准的层闻接隧裁为可麓。一个分层体系结构可以产生在应焉服务静深度 和广度上经过深思熟虑后得出的信息系统的模型【3 7 1 【3 9 1 。 2 3 1 客户服务器体系 客户服务器体系结构,邸c l i e n t s e r v e r 结构。此结构把数据晦容放在远程的 服务器上,而在客户机上安装相应的客户端软件。采用c i s 结构结构开发的系统 由两部分构成:前端是客户端,用户界面结合了袭示与业务逻辑,接受用户的请 求,并蠢数据瘴缀务器提出请求;后端是服务器,数据管理将数据提交给客户端, 客户端将数据进行计算并将结果呈现给用户。还要提供完善的安全措施保护及对 数据的完整性处理等操作,并允许多个客户端同时对服务器发送访阀请求。在c s 结构中,服务器的硬件必须具有足够的处理能力,才能满足多个客户的需求。c s 结构在技术上非常成熟,它的主要特点是交互性强、具有安全的存取模式、网络 透信量低、响应速度快、利于处理大量数据。但是c i s 结构通常只局限于小型局 域网,不利于扩展。并且,由于c s 结构的每台客户机都需要安装相应的客户端 程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性, 具有较大的局限性。要求具有定专业水准的技术人员去完成。 2 3 2 浏览器服务器体系 随着网络的迅速发展,网络已深入到人类社会的每一个角落,并引导着一场 新的技术革命。而计算机网络的主焦就是w w w 。w w w 是目前最流行的信息服 务之一。w w w 采用超链接的方式,以文件的形式传递各种不同类型的数据信息, 为信息的交换和共享提供了最经济实用的方法。因此一种以w w w 方式为基础的 河南大学研究生硕士学位论文第19 页 体系结构也迅速发展壮大起来,那就是浏览器朋艮务器结构,即b s 结构。b s 结 构的数据及应用可通过不同平台、不同网络存取。此种方式具有以下特点: 1 易用性好:用户使用单一的浏览器软件,通过鼠标的点击即可访问文本、 图像、声音、视频及数据库等信息,特别适合非计算机人员使用。 2 易于维护:由于客户端除了标准浏览器之外无需专用的软件,系统的维护 工作简单。 3 信息共享程度高,扩展性好,安全性好。 b s 体系结构采用三层客户n 务器结构,在数据管理层和用户界面层增加了 一层结构,称为中间件,使整个体系结构成为三层。 三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应 用分为表示层、业务逻辑层和数据存储层。三个层次的划分是从逻辑上分的,具 体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台, 负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高 效连接,提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结 构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。 在b s 体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出 请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余 如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的 执行等工作全部由w e bs e r v e r 完成。 b s 结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有 成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性 第2 0 页河南大学研究生硕士学位论文 化特点观显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。 例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较 困难和不便。此外,实现复杂的应用构造有较大的困难。虽然可以用a c t i v e x ,j a v a 等技术开发较为复杂的瘦瘸,但是相对于发展已菲常成熟c s 的一系列应用工具 来说,这些技术的开发复杂,并没有完全成熟的技术工具供使用【柏1 。 2 4 本章小结 本章介绍了软件过程的一些基本知识,包括软件过程的定义、基本概念、分 类以及主要研究方盎。同时重点讲述了援限编程过程,包括极限编程过程的主要 实践方法。分析了极限编程的优缺点。并简单介绍了c s 和b s 两种软件体系结 构。下面一章作者将通过对中小型系统开发特点的分析,提出适合中小型系统开 发的极限编程改进过程。 河南大学研究生硕士学位论文第2 1 页 第3 章极限编程过程的改进 极限编程是一种简洁、高效、优良、通用的软件开发方法。但死板的根据极 限编程开发过程来开发软件也是难以奏效的。极限编稷方法酶许多关键实践都有 其不可避免的局限性。在比较分析的基础上,对极限编程过程进行优化和改进, 找到一种适于中小型企业软件开发的极限编程过程。 3 1 标准极限编程过程的局限性 为了适应不同的开发需求,需要对极限编程过程本身存在着豹一些有争议性 的地方进行改进。图3 1 为极限编程标准过程: 匿3 - 1改进翦的标准极限编程过程 标准的极限编程分为设计阶段和开发阶段。在开发阶段,开发人员通过现场 客户提供的用户故事确定系统需求。根据系统需求,使用系统隐喻实践方法确定 系统如何运俸、新的功能以俺种方式加入到系统中。在开发阶段,系统通过迭代 第2 2 页河南大学研究生硕士学位论文 的开发方式进行开发。在开发过程中,首先将测试代码写好,再以结对编程的方 式编写代码,直至所有的测试都得以通过。在整个开发过程中,要求对系统进行 持续集成,随着需求的改变,不断的进行回归测试。 根据中小型系统开发的特点,由极限编程标准过程得知,部分标准过程中的 实践方法不适合中小型系统的开发。具体分析如下: 1 自动化测试的局限性 极限编程开发的核心是使用自动化测试。但是对中小型项目开发过程来说, 自动化测试往往没有必要。主要有以下两个方面的原因: 第一,“测试优先 原则没有成为一种习惯。 大部分软件开发人员习惯先开发后测试的开发流程,很不习惯极限编程中的 “测试优先原则,影响系统测试效率。 第二,部分系统需要使用手工可测试方法。 例如,在开发网络页面程序时,尽量少采用图形界面的测试框架。因为一方 面,w e b 页面变动会比较大。需要测试脚本做很大改动甚至重写,增加工作量; 另一方面,对于不同的浏览嚣,按钮的位置都会有所不同。所以,不是所有的测 试都能通过工具实现自动化。 2 结对编程的局限性 结对编程是极限编程中的重要实践方法,也是极限编程与其他软件开发方法 的重要区分。 结对编程是由两个开发人员在同一台电脑上共同编写解决同一问题的代码。 虽然结对编程看起来是一种比较好的实践方法,但是本文认为在所有情况下都采 河南大学研究生硕士学位论文第2 3 页 用结对编程是不现实的,它具有其自身的局限性。 通过公式3 1 计算极限编程与传统开发方法在相同时间内的代码开发量,在三 次迭代过程中,尽管随着开发人员的互相熟悉,编程速率不断提高,但是效率远 远比不上传统的单人编程。图3 - 2 具体显示了代码总量的差别。 1 0 0 代 鹳 纛 深色 传统绾程技色l 结对编程 图3 - 2传统编程与结对编程代码开发量的比较 因此,结对编程并不适应中小型系统开发的要求,尤其是不能满足中小型系 统开发过程要求快速、灵活的策略。 3 持续集成的局限性 极限编程提倡在一天中集成系统多次,而且随着需求的改变,要不断的进行 第2 4 页河南大攀研究生硕士学位论文 回归测试。但是对于一个中小型系统来说,由于代码量、模块有限,过于频繁的 进行持续集成会对系统开发起到反作用,阻碍了系统开发效率。 3 。2 极限编程过程的改进 本文主要根据中小型系统开发中的特点,在极限编程标准过程局限性分析的 基础上,对极限编程过程进行改进。 3 2 1 背景分析 本文主要针对中小型系统的开发特点对极限编程过程进行改进,中小型系统 开发主要有以下几个特点: 1 需求比较小而且模糊,需求在开发中也经常需要改动; 2 。产品已经发布,但是并没有得到焉户的肯定; 3 项瞄使用了最新技术,不确定对项目会有什么影响; 4 开发的周期较短。 在这些特征的基础上,我们给出顼謦关键的成功因素,重视功能性需求和隐 藏的非功能性需求。对客户的启发、引导、反馈和协作不充分,忽略了客户隐藏 的善# 功能性需求可能导致无法及

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论