




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)基于rup和敏捷方法的软件开发过程的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华耗电力天学疆士攀位i 龟文 摘要 在当今信惠张 奎会串,软锋舞发瓿梅遥穗魏器要帮发蠢羧爨软棒翡方法。毽是, 秘前软件开发情况并不理想。很多项目常常最终不能交付或不能满足用户需要。为 了解决这些瓣鬏,诲多学者簿 究了大爨较箨拜发方法,其孛最著名靛是r a t i o n a l 公司的r u p 和由k e n tb e c k 等人提出的以极限编程( x p ) 为代表的敏捷开发过程。 本文在对r u p 窝滋x p 为代表熬敏捷方法进行分爨熬基疆土,缀合国逡孛夺燮 软件企业的现状,给出了一种綦于r u p 和敏捷方法的软件开发过程一u a p 软件开发 避程。本文簌玺鑫月麓梅或,燕色、渗动窝产燕这霹令方瑟瓣u a p 过程模羹进露了 论述。u a p 既是利用x p 思想对r u p 过稷的适巍剪裁,也是利用r u p 思想对x p 过程 的合理扩兖。u a p 开发过程吸取7r u p 嚣发过程魏除数楚分懋惩,又遵守了x p 弱快 速开发、重构、测试先行等原则。 关键诱;疑斑,x p ,敏捷过程, 搴系绥撺,模式,耋撺 a b s t r a c t i nc u r r e n ti n f o r m a 蛀o ns o c i e t y , s o i h r a r ed e v e l o p m e n ta g e n c i e sn e e dm e t h o df o rl 畦g h e r q u a l i t ys o f t w a r ed e v e l o p m e n ti m p e r a t i v e l y b u tc u r r e n ts o f t w a r ed e v e l o p m e n ti sn o ti d e a l m a n yp r o j e c t sm a yn o tb ed e l i v e r e df i n a l l yo rc a n tm e e tt h en e e do f c l i e m 。f o rs o l , ,i n gt h e s e p r o b l e m s ,m a n ys c h o l a r sr e s e a r c h e dm a n ys o , w a r ed e v e l o p m e n tm e t h o & 。a m o n gt h e m , r a t i o n a lc o m p a n y sr u p ( r a t i o n a lu n i f i e dp r o c e s s ) a n dt h ea g i l ed e v e l o p m e n tp r o c e s s r e p r e s e n t e db yx p ( e x u e m ep r o g r a m ) w h i c hi sp u tf o r w a r db yk e n tb e c k 瓣t h em o s t f a n l o u s o nt h eb a s i so fa n a l y s i so fr u pa n da g i l em e t h o dr e p r e s e n t e db yx p , c o n s i & m t i n go f c u r r e n ts i t u a t i o no fd o m e s t i cs m a l la n dm i d d l ec o m p a n y , t h ea r t i c l ep r e s e n t 霉s 0 1 a r e d e v e l o p m e n tb a s e do nr u pa n da g i l em e t h o d - - u n i f i e d - a g i l ep r o c e s s t h ea r t i c l ed i s c u s s e d t h eu a pm o d e lf b o mf o u ra s p e c t s ,l i f ec y c l e ,c h a r a c t e r , a c t i v i t ya n dp r o d u c t 。u a pi sn o to n l y p r o p e rc u t t i n go fr u p 璐堍x pi d e a , b u ta l s or e a s o n a b l ee x p a n d i n gt ox pu s m g 繇疆i d e a u a pa d o p tr u p 8i d e ao fp h r a s ed i v i s i o na n dx p sp r i n c i p l e ss u c ha sr a p i dd e v e l o p m e n t , r e c o n s t r u c t i o n , t e s t i n gf i r s t s o n gz h e n q i a n ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o m ay o n g - g u a n g k e y w o r d s :r u p ,坤,a g i l ep r o c e s s ,a r c h i t e c t u r e ,p a t t e r n , r e c o n s t r u c t i o n 华北电力大学硕士学位论文 摘要 在当今信息化社会中,软件开发机构迫切地需要开发高质量软件的方法。但是, 目前软件开发情况并不理想。很多项目常常最终不能交付或不能满足用户需要。为 了解决这些问题,许多学者研究了大量软件开发方法,其中最著名的是r a t i o n a l 公司的r u p 和由k e n tb e c k 等人提出的以极限编程( x p ) 为代表的敏捷开发过程。 本文在对r u p 和以x p 为代表的敏捷方法进行分析的基础上,结合国内中小型 软件企业的现状,给出了一种基于r u p 和敏捷方法的软件开发过程一u a p 软件开发 过程。本文从生命周期构成,角色、活动和产品这四个方面对u a p 过程模型进行了 论述。u a p 既是利用x p 思想对r u p 过程的适当剪裁,也是利用r u p 思想对x p 过程 的合理扩充。u a p 开发过程吸取了r u p 开发过程的阶段划分思想,又遵守了x p 的快 速开发、重构、测试先行等原则。 关键词:r u p ,x p ,敏捷过程,体系结构,模式,重构 a b s t r a c t i nc u l t e n ti n f o r m a t i o ns o c i e t y , s o r w a r ed e v e l o p m e n ta g e n c i e sn e e dm e t h o df o rh i g h e r q u a l i t ys o f t w a r ed e v e l o p m e n ti m p e r a t i v e l y b u tc a r t e rs o f t w a r ed e v e l o p m e n ti sn o ti d e a l m a n yp r o j c o t sm a y n o tb ed e l i v e r e df i n a l l yo rc a n tm e e tt h en e e do f c l i e n t f o rs o l v i n gt h e s e p r o b l e m s ,m a n ys c h o l a r sr e s e a r c h e dm a n ys o f t w a r ed e v e l o p m e n tm e t h o d s a m o n gt h e m , r a t i o n a lc o m p a n y sr u p ( r a t i o n a lu n i f i e dp r o c e s s ) a n dt h ea g i l ed e v e l o p m e n tp r o c e s s r e p r e s e n t e db yx p ( e x t r e m ep r o g r a m ) w h i c hi sp u tf o r w a r db yk e n tb e c ka l et h em o s t f a m o u s o nt h eb a s i so fa n a l y s i so fr u pa n da g i l em e t h o dr e p r e s e n t e db yx p , c o n s i d e m t i n go f c u r r e n ts i t u a t i o no fd o m e s t i cs m a l la n dm i d d l ec o m p a n y , t h ea r t i c l ep r e s e n tas o f t w a r e d e v e l o p m e n tb a s e do nr u pa n da g i l em e t h o d - - u n i f i e d - a g i l ep r o c e s s t h ea r t i c l ed i s c u s s e d t h eu a pm o d e lf r o mf o u ra s p e c t s ,l i f ec y c l e ,c h a r a c t e r , a c t i v i t ya n dp r o d u c t u a pi sn o to n l y p r o p e rc u t t i n go fr u pu s i n gx pi d e a , b u ta l s or e a s o n a b l ee x p a n d i n gt ox pu s i n gr u pi d e a u a p a d o p tr u p si d e ao fp h r a s ed i v i s i o na n dx p sp r i n c i p l e ss u c ha sr a p i dd e v e l o p m e n t , r e c o n s t r u c t i o n , t e s t i n gf i r s t s o n gz h e n - q i a n ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f m ay o n g - g u a n g k e y w o r d s :r u p ,x p ,a g i l ep r o c e s s ,a r c h i t e c t u r e ,p a t t e r n , r e c o n s t r u c t i o n 声明尸明 本人郑重声明:此处所提交的硕士学位论文基于r i j p 和敏捷方法的软件开发过程 的研究,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工作和 取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:燃日期:皿0 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手 段复制并保存学位论3 c 学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播学 位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 华北电力大学硕士学位论文 第一章引言 1 1 软件过程技术在国内外的研究现状 自从软件工程概念提出以来,经过3 0 多年的研究与实践,虽然“软件危机” 没得到彻底解决,但在软件开发方法和技术方面已经有了很大的进步。尤其应该指 出的是,自8 0 年代中期,美国工业界和政府部门开始认识到,在软件开发中,最 关键的问题是软件开发组织不能很好地定义和管理其软件过程,从而使一些好的开 发方法和技术都起不到所期望的作用。也就是说,在没有很好定义和管理软件过程 的软件开发中,开发组织不可能在好的软件方法和工具中获益。 在实践中人们逐渐认识到瀑布模型的不足,为了开发出更可靠、执行效率更高、 功能更完善的软件,软件工程研究人员不断开发新的软件开发模型,如快速抛弃原 型法、增量式开发法、自动软件综合法、空间螺旋式开发模型以及面向对象的开发 技术等。它们从不同的侧重点出发,试图避免瀑布模型的缺陷,描述适合软件开发 规律的模式。 但是困扰人们的“软件危机”并没有很好的解决,大规模软件生产仍然很困难。 据h e l e n e t h o m s o n 估计,目前每年大约有1 5 的软件项目被取消,特别地,对于 大规模的软件开发项目而言,大约有5 0 的项目不仅超出预算,而且不能按时完成。 就是小规模的软件项目,开发情况也不容乐观。据k p m g 的统计,大多小项目都超 出预算的2 0 ,而且延期2 0 【。可见大多数软件开发企业的软件开发情况并不理 想,软件开发进度、质量以及成本得不到有效地控制。这就迫使软件工程的研究人 员去寻找改善软件开发状况的另一种途径。 尽管软件过程只是改进软件质量和组织性能的几个可控因素之一,但是,m d o w s o n 指出:“软件产品的质量在很大程度上依赖于软件过程,尤其是大规模的软 件开发更是如此。”【2 】所以,通过改进开发过程来改善软件产品的质量、提高软件生 产率成为软件开发企业的重要环节 由于软件过程的重要性和复杂性,软件过程技术一直是软件工程研究中的一个 重要内容。国际上也先后出现多种对软件过程评估的技术,尤其以卡内基梅隆大学 的软件工程研究所( s e i ) 建立的c m m ( c a p a b i l i t ym a t u r i t ym o d e l ) 质量体系明确给出 了对软件过程的能力成熟度进行评估的模型,指导着软件开发组织不断改进其软件 过程。 1 2 中国软件行业的发展现状 经过2 0 年的艰难发展,中国软件业走过了一个从无到有、从弱到强、从单个 牮靶电力天学顼士学位论文 企业到产业群落的发展历程,已达到1 5 0 亿人民币的产业规模,国内登记的软件企 甄也达到l 万家定右,软件产晶己超过了l 万种。据软件行渡协会统计,2 0 0 3 年营 业收入超过1 亿人民币的企业融达到2 1 4 家。但不容忽视的是9 0 以上的中国软件 企韭仅为5 0 入 ;差下蠡搴蕊模,绝欠多数处于各蠢为战、手工俸坊式静生产获态翔。这 些中小型企业普遍存在规模小、人员流动性大、资本规模和人力规模较小、管理混 惑静翊题。串套獾金堑对予高投入、麓风陵和长蜀麓耱高端软侔产懿基本没有开发 的能力,一般从搴的都怒中小规模的项目的开发,特别是定制软件项目的开发。中 夺鳖瑷鏊一觳有戮下特赢:顼瓣功铯院较篱擎、萃一,顼嚣入受数魄较多,顼霾誓 期比较短,项目预算比较少,工期紧,这种软件产品一般都肖专门和特定用户群, 巍矮嚣秀始之 l 蓼辘已经耱客产确定了产燕发农豹e 麓裙螽鬻维护等豢瑗,甏这一爨 期往往是在不准确的估算的基础是建立的 孛小毽软转众监要戆麸天右式熬鑫垂嚣发秘终绣式裁箨豹模式牵解麓爨来,步 入团队化、规范化、标准化的新阶段,就必须引入一寮规范化的软件开发过程,只 蠢这样,产瑟豹震量孝熊疆毫,企监考能生存謦鞋发曩,方毙惫夫孛登软终公矮迈进, 从而促进软件产业的发展。 3 露题懿糕塞 r 驻p 燕r a t i o n a l 公蠲嚣发秘维护懿一令产瑟。其实凄是一令软传工程纯过程, 悬r a t i o n a l 公司为软件开发提供的完熬的解决方案。并且已经在世界上许多著名的 公司中,诸如爱妲售、悫警等,褥到缀好豹残月。 x p 是由k e n tb e c k 最早在1 9 9 9 年,他本人出版的e x t r e m ep r o g r a m m i n ge x p l a i n e d 一书孛提掇来熬。壶予r u p 过予庞大,惫含7 软终秀发过程的方方瑟霞,蘑潋更适 合于大型的组织汗发复杂的、难度大及规模大的项目,而当大多数小型的缎织开发 麓单的、难度小、规模小瑟且时阀紧的项目孵,豢常感到无从下手。x p 正题在这耱 情况下应运而生的。k e n tb e c k 最初提出了1 2 种x p 的方法,涵盏了任何软件歼发过 穰邦必须涉及到豹几个方嚣:设计、编码、测试和反馈。去除了r u p 巾不必要的嫉 琐活动和工件并提出了一些很好的建议。为软件开发提供了最为简浩且最易于应用 的开发流程,可以使小型的组织在开发软件过程中,抓住最点要的矛盾,快速瑟蹇 效的开发软件。但是,敏捷方法也有自身的不可避免的缺陷,目前述是有徽多学者 对敏捷方法提出质疑。就像质糍开发方法一样,敏捷方法也霭要不断的改进,不敝 的调整。 综上所述,r u p 和x p 有着备自的优缺点,照搬任何一种方法可能都不能满足嚣 肉中小登企业的隳求,霸诧有必要对两者迸彳予比较分析,以便去箕糟粕取箕精华, 将瓯者优势整合在一起,开发遁合于国内的中小型企北的软件过程。 2 华北电力大学硕士学位论文 1 4 论文工作的主要内容 软件过程是一个对国民经济建设和软件技术发展均有重大理论意义和实用价值 的研究课题。本文在研究了r u p 和敏捷软件过程的基础上,提出了u a p 软件开发 过程模式,并且从过程模式的角度对软件开发过程进行了充分的论述,重点论述了 u a p 软件过程的生命周期构成,角色、活动和产品这四个方面。u a p 软件开发过程 力图将r u p 和以x p 为代表的敏捷软件过程的优势综合起来,构成一个有机的过程 整体,由于软件过程是一个极其复杂的系统,广义的软件过程包括了从软件项目需 求定义开始直到软件使用后被废止,跨越整个软件生存期内的系统开发、运行和维 护等全部活动及相关项的总和,所以论文将重点论述开发过程,对过程中的其它支 持性、管理性过程只是稍有涉及,不作详细描述。最后,在实际软件开发项目中应 用了u a p 过程模式,使理论在实践中得到了检验。 1 5 论文的组织结构 第一章是绪论,主要介绍了软件过程技术在国内外的研究现状,分析了该课题 研究的内容及意义。 第二章是软件过程简介主要介绍了软件过程基本概念、软件过程模式的概念和 意义。 , 第三章是r u p 和敏捷方法。首先介绍了r u p 软件过程,分析了它的核心思想 和核心实践方法,指出了r u p 针对国内的中小型企业的不足之处。其次介绍了敏捷 过程,并且以极限编程( x p ) 过程为代表,详细分析了x p 的主要思想和优秀实践 方法,同时也指出了敏捷方法的不足之处。 。 第四章是统一敏捷开发过程( u n i f i e d - a g i l ep r o c e s s ) 本章结合了r u p 和敏 捷方法的优点以及中小型企业的现实状况,提出了统一敏捷开发过程,从生命周期、 角色、活动和产品四个方面,从过程模式的角度描述了统一敏捷开发过程。 第五章是开发实例。本章将u a p 开发过程理论应用到实际的项目中,指导了西 门子软件仿真系统的开发 第六章是论文总结。对全文的工作进行总结,并指出了后续的研究工作。 华北电力大学硕士学位论文 2 1 软件过程的概念 第二章软件过程简介 软件过程包括了从软件项目需求定义开始直到软件使用后被废止,跨越整个软 件生存期内的系统开发、运行和维护等全部活动及相关项的总和【4 1 。过程就是活动 的集合,活动是任务的集合,任务则把输入加工成输出。活动的执行可以是顺序、 迭代的、并行的、嵌套的或者是有条件地引发的。 2 2 软件过程模式的概念 2 2 1 软件过程模式定义 软件过程模式从成功或失败的软件开发实践中总结而成,是软件过程中生命周 期、人员、活动、产品四大类要素相互关联的有机整体。【4 j 从软件过程模式定义可以看出,软件过程模式定义了开发流程中。谁”、“实现 什么”、“如何”和“做什么”,其中人员表示“谁”,产品表示“实现什么”,活动 表示“如何”,生命周期表示“何时做什么”因此,软件过程模式与软件生命周期 模型的关系为:软件生命周期模型包含于软件过程模式中。目前在软件界影响较大 的软件过程模式包括r a t i o n a l 统一过程、敏捷过程等等。 软件过程模式是对软件过程的抽象描述与表示,它可以是形式化、半形式化 的或非形式化的,可以通过人员所实施活动来完成过程模式所描述的软件过程。软 件过程模式的定义包含两个方面的涵义,第一,它是对软件过程的抽象。第二,它 反映了人们看待过程的一个视角。 一般来说,一个软件过程模型中通过回答“做什么”、“何时做”、“谁来做”、 “怎么做”等基本问题,帮助项目开发人员以及其他参与人员正确理解软件过程。 一个灵活的、强有力的过程模式将给软件开发提供有效的支持和指导,因为过程模 式为软件过程中的所有活动提供了统一的政策保证,为参与软件开发的所有成员提 供帮助和指导,使得软件开发过程按照统一有序的步骤进行 一个理想的过程模式应满足以下几个准则侈j : 能表示所有活动组织方式 能表示各活动的工作方法和结果 能表示各活动之间存在的相互之间的关系 能体现过程的动态特性 易于被所有参与开发活动的人员理解 4 华北电力大学硕士学位论文 具有很强的灵活性,可以适应不同的软件项目 易于对开发过程进行控制和管理 2 2 2 过程模式的意义 软件过程模式有如下理论和现实意义: 1 软件过程模式不仅关注软件过程中各生命周期阶段中的活动,更重要的是 它同时关注过程中人员与角色分配、过程中采用的方法及过程各个阶段的输入输出 产品,认为软件过程中这四大要素相辅相成、相互作用,从而构成一个有机的整体, 缺一不可。相对软件生命周期模型,软件过程模式更全面、深刻、细致地反映了软 件过程中各个层面和各个环节。作为对软件生命周期模型的补充和发展,软件过程 模式的四要素及相互关系是项目计划、风险评估、人员管理、质量保证等项目实践 的重要依据,将它用于指导软件开发实践具有现实的可操作性。 2 从软件过程模式的角度认识和分析软件过程能够快速准确地把握软件过程 的思想本质、原则规范、主要特点和实现策略等各个方面。 3 软件过程模式的立场角度有助于软件开发人员清楚地比较出以上几种流行 的软件过程的各自优缺点,进而对这些软件过程进行相应的取舍、结合、定制,然 后用于自己的软件开发实践中,以期以一种可预测的、循环的方式指导软件项目开 发获得成功。 2 3 软件过程的描述 软件过程描述是通过某种形式化的手段对软件开发过程加以系统严格地描述, 为软件开发人员提供一个标准的无歧义的软件开发规范,并以此为基础辅助和指导 开发人员的工作,同时对实际的软件开发过程进行监督和控制,从而保证软件产品 的质量和软件生产率。通过过程描述所表示的过程模式可以看作是软件开发过程的 脚本,它指导开发者如何按照严格工程化的方法一步一步地进行开发工作,软件则 是依据过程描述进行的一系列软件过程活动的产品。 。 软件过程描述与软件过程之间的关系类似于程序和进程之间的关系,软件过程 是软件过程描述的动态执行,而它如何执行则是由过程描述所决定的 软件过程 也是软件是软件工程大师o s t e r w e i l 的一篇论文,论文中指出:软件过程也是软 件。软件有一个开发的过程,软件过程也有一个开发的过程;软件开发产出软件产 品,软件过程开发产出过程产品,软件过程的实现就是将软件过程文档化,相当于 软件开发的编码。 5 华北电力大学硕士学位论文 3 1r u p 统一过程 第三章r u p 与敏捷方法 r u p 可以用一个二维过程进行描述,时间维从组织管理的角度描述整个软件开 发生命周期,被分解为四个顺序的阶段,分别是初始阶段( i n c e p t i o n ) 、细化阶段 ( e l a b o r a t i o n ) 、构建阶段( c o n s t r u c t i o n ) 和交付阶段( t r a n s i t i o n ) 纵轴从 技术角度描述在各个阶段发生的9 个核心工作流,其中有6 个核心过程工作流:商 业建模、需求捕获、分析和设计、实现、测试和部署。还有3 个核心支持工作流: 配置和变更管理、项目管理及环境。每个阶段结束时都要安排一次技术评审,以确 定这个阶段的目标是否已经满足。如果评审结果令人满意,就可以允许项目进入下 一个阶段。基于r u p 的软件过程模型【6 j 如图3 1 所示: 工作琉程 业务建梗 需求 分析设计 实施 潮试 部署 铎铲 顶目管理 环境 l 初抬细化 0 章旬建 i交付l 厂 、l j l 一 ; ; ,一一彳一土一 : 一: 一一:一:一一 o i - - -l l 韧始卜扎业- 叫卜托冀z 叫j 望l 要i 望肯i 虞l | ;髅1 喀莒铡 迭代 图3 1r u p 的软件过程模型 从图3 1 中可以看出,基于r u p 的软件过程是一个迭代过程。从图中的阴影部 分表示的工作流可以看出,不同的工作流在不同的时间段内工作量的不同。值得注 意的是,几乎所有的工作流,在所有的时间段内均有工作量,只是工作程度不同而 已。这与瀑布式开发模型有明显的不同。通过初始、细化、构建和提交四个阶段就 是一个开发周期,每次经过这四个阶段就会产生一代软件。除非产品退役,否则通 过重复同样的四个阶段,产品将进化为下一代产品,但每一次的侧重点都将放在不 同的阶段上。这些随后的过程称为进化过程。 6 华耗电力天学硕圭学位论文 1 初始阶段 初始阶段的经务是为系统建立业务模型并确定项目的边界。在初始阶段,必须 识别所有与系统交互的外部实体,定义系统与外部实体交互的特性。在这个阶段中 所关注的是整个项目的娩务和需求方瑟的主要风险。 2 细化阶段 细化阶段的任务是分析阍题领域,建立键全的体系结鞫蒸础,淘汰项掰中最嵩 风险的元索。在细化阶段,必须在理解整个系统的基础上,对体系缩构做出决策。 3 构建阶段 在构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品, 笄滏行详镪测试。获菜稀意义上说,孝鼋建阶段建一个制造遥稷,其蘸赢藏崧管理资 源及控制操作,以优化成本、进度和质量。 构建徐段静羹要任务是遥过优记资源嚣遴免不登器懿报凌秘返蠢,使并发成本 降到最低,完成所有所需功能的分析、开发和测试,快速完成可用的版本。 毒交穗除菠 交付阶段的麓点是确保软件对最终用户是可用的。交付阶段的擞要任务是进彳亍 彝溅试,髑俸产燕发毒舨零,按雳户懿鬈求确滚薪系统;培诵矮户帮维护入受;获 得用户对肖前版本的反馈,基予反馈调蹩产品,如进行调试、性能绒可用性的增强 等。 3 1 1r u p 核心思想 1 用例驱动 哥发软件系统的耳的是要为该软件系统的用户服务。“鹾产”这令术语代表与程 用r u p 开发出来的系统发生交嚣的某个入或菜件东西,而这个交互就是用例。所育 用例结合起来就构成了用倒模型。u s ec a s e sm o d e l 是需求分析工作流的结果,它从 用户的角度描述该系统殿该实现的功能。利用u s ec a s em o d e l 可以有效地界定系 统范围及其行为,并为用户及开发人员认同。该模型描述系统的全部功能。同时用 例并不仅仅是定义一个系统的需求的一个工其,它们还驱动系统的设计,实现和溯 试。也就是说,用铡驱动整个软件开发过程。 2 以架构为中心 u s e c a s e 是驱动软件的开发周期的原动力,但是分析与设计工作流是以软侔体 系缩梅( a r c h i t e c t u r e ) 为核心静。软件系统的架构麸不丽的角度摇述了即将构造的 系统,包含了系统中最黛要的静态和动态特征。构架刻画了系统的皴体设计,它去 簿了缩节部分,突出了系统煎熬要特鬣。体系结构中定义清晰、功熊磺确豹组俘为 基于组件式的开发、大规模的软件复用提供有力地支持,并作为项圈管理中计划与 入员安撩鼢莜据。 7 华托电力犬学硕士攀经论文 3 r u p 怒迭代鹈增量憾的 迭代是指工作流中的步骤,而增豢指产品中增加的部分。每一个阶段都由一个 或多个连续的迭代组成,每一个迭代都是一个完整的开发过稷,是一个具体的迭代 工作流从头到尾的执行。将一个软件产品分解成若干小的部分或糟干个徽型项目 ( m i n i p r o j e c t ) 是切合实际的。每个微型项圈都是一次能够产生一个增爨的迭代 过程。 3 i 。2r u p 的不足之处 首先,在r u p 模式巾,用户在提交需求后,只有在部署时才能看到真正的系统, 这样裁不铡予逐速获霉溺户豹爱镶。鬻曩产鑫戏凌与秀戆关键霞素簸是产熬是否邋 威予市场需要。目前,大多数的中国中小型软件企业从事的还是定制软件的开发。 宠铡软锋要最大羧疫熬瀵足用爨要,项目鹣主要基标是按瓣按震按矮冀蟪完残软 件产品,所有的活动都威该围绕这一目标进行如果在项目中可以较早地把一部分 舞发产品集成怒寒,霹戳袁助予及露发现潜在戆阂题鞠产燕整体设谤上弱缺陷。 其次,在r u p 中定义了大擞的工件,与开发的各个阶段相对应。而且备种工件 邈骞不同的形式( 模型、模型元素、文耪、源代玛、霹执行文传) 。量传是囊过程生 产、修改、使用的信息,是项豳有形的产品。但是并不是所有的工件都是交付给用 户匏,霹交付产品只是仅仅是艨有工纷豹子集,其中缝大部分工传只是失弹发过程 本身服务。通过众多的z 件在不同角色之间传递信息不可避免会造成信息的衰减或 过度工程的发生。如果举弱的怒色是由同一令人担当粼一些中闯过穰的工传又是不 必要的,生产不必要的忑件只会造成猩工作羹上的浪费。 最詹,r u p 给出的怒在理想的项舅舞发环境下,软件过程的一釉完美模式,这 类理想的项目开发环境确实存筏,例如大型国防项目中的软件开发,但是,对于翻 内占绝大多数的中小型企业藤密,现实情况往往是肖限资源积有隈时闻的双重约 柬,尽管r u p 宣称是可鼯置的过程,w 以对r u p 迸彳亍适当的剪裁和扩充,识是r u p 并来绘出具体的剪裁、扩充等配置实旅的方法准则,丙这一点恰恰题解决农有限资 源与时间约束下项目开发成败的关键。 3 2 敏捷方法概述 2 0 0 1 蓝f2 月由1 7 位包括k e n tb e c k 等在内的软件界专家,发起成立了敏捷软佟 稽发联鼗。德 订起草了衡在使软件开发函队其有快速王作、快速响应变化能力的敏 捷开发宣言,然后在宣亩基础上制定了一组原则,这魑原则构成了敏捷过稷应遵德 的标准。 敏捷过程( p i l ep r o c e s s ,a p ) 是一种典型的软件过程模式,它对软件过程模式 串静西大要素一一生命溺麓、入贯、方法与产箍及籀蔑关系璃进行了论述。轻蠢缀 8 华北电力大学硕士学位论文 和重量级的差异来自人们对两种过程及方法的文档数量的直观感受,即轻量级过程 较少产生和依赖于庞大的文档,但这只是一个表面现象,在诸多的轻量级过程之间 存在着许多相通的地方,敏捷更恰当地表达了这些轻量级过程的本质。首先敏捷强 调适应而非预测,重量级过程花费大量的人力物力,试图制定详细的计划来指导长 期的工作,而一旦情况变化,那么计划就不再适用,因此,本质上重量级过程是抵 制变化的,而敏捷过程则强调适应变化。其次,敏捷过程以人为中心,而非以过程 为中心,敏捷过程强调软件开发应顺乎人的本性,软件开发应带来乐趣。 目前属于敏捷方法的开发过程的流派主要有极限编程( e x t r e m ep r o g r a m m i n g , x p ) 、s c r u m ,水晶系列方法( c r y s t a l m e t h o d o l o g i e s ) ,特征驱动开发( f e a t u r e d d v e n d e v e l o p m e n t ,f d d ) ,动态系统开发方法( d y n a m i cs y s t e m sd e v e l o p m e n t m e t h o d o l o g y ,d s d m ) 、适配性软件开发( a d a p t i v es o f t w a r ed e v e l o p m e n t ,a s d ) 其中最重要的是极限编程( x p ) 。 3 2 1 敏捷过程的四条基本价值观 敏捷过程所表现的四个基本价值观是1 7 j ; 1 个体和交互胜过过程和工具 人是软件项目获得成功最为重要的因素,如果项目团队中没有优秀的成员,那 么使用再好的过程和工具也不能从失败中挽救项目。团队的合作、沟通以及交互能 力要比单纯的软件编程能力更为重要。合适的工具对于成功来说非常重要,但是, 工具的作用不可被过分地夸大,使用过多庞大、笨重的工具同缺少工具一样,都是 不好的。简而言之,敏捷方法认为团队的构建要比项目环境的构建重要的多。 2 可以工作的软件胜过面面俱到的文档 软件开发的主要目标是交付给用户可以工作的软件而不是文档,否则就称之为 文档开发而不是软件开发。编制众多的文档需要花费大量的时间,并且要使这些文 档与代码保持同步就会花费更多的时间,导致进度拖延。如果文档和代码之间失去 同步,那么庞大的文档就会造成重大的误导。所以敏捷方法建议软件开发的中心活 动要集中在创建可以工作的软件,直到迫切需要并且意义重大时,才进行文档编制。 编制的内部文档应该尽量短小并且主题突出 3 客户合作胜过合同谈判 为了全方位地满足客户不断变化的需求,切实可行的途径就是开发团队与客户 紧密协作,而那些为开发团队和客户的协同工作方式提供指导的合同才是最好的合 同。 4 响应变化胜过遵循计划 变化是软件开发中存在的现实,一个软件过程必须反映现实,有足够的能力及时 9 华北电力大学硕士学位论文 响应变化。没有计划的项目必然会失败,所以制定的计划必须有足够的灵活性和可 塑性,在形势发生变化时能够迅速调整,以适应商务和技术方面发生的变化。 3 2 2 敏捷过程的1 2 条基本原则 敏捷过程的十二条基本原则是”: 1 最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意 以逐渐增加功能的方式经常性地交付系统和最终质量之间有非常强的相关性, 表现为交付得越频繁,最终的产品质量就越高。敏捷过程会尽早地、经常地进行交 付,该过程努力在项目刚开始的几周内就交付一个具有基本功能的系统,然后努力 坚持每两周就交付一个功能渐增的系统 2 即使到了开发后期也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势 敏捷过程的参与者不惧怕变化,敏捷团队会非常努力保持合同、计划、软件结 构以及其它方面的灵活性,这些灵活性保证了变化对于系统造成的影响是最小的。 3 在整个项目开发期间,客户和开发人员必须天天都工作在一起。 为了能够以敏捷的方式全方位满足客户可能不断变化的需求,客户、开发人员 就必须要进行有意义的、频繁的交互,持续不断地引入反馈。 4 围绕被激励起来的个体来构建项目,给他们提供所需的环境和支持 在敏捷过程中,人被认为是项目取得成功的最重要因素,所有其它因素包括过 程、环境和管理等,都被认为是次要的,并且当它们对人有负面影响时,就要对它 们进行改变。 5 在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈 在敏捷过程中,人们之间首要和默认的沟通方式就是交谈。也许会编写文档, 但是只有这些文档是迫切需要且意义重大时才会去编写,并且不会试图在文档中包 含所有的项目信息。 6 工作的软件是首要的进度度量标准 敏捷过程通过度量当前软件满足客户需求的数量来度量开发进度,而不是根据 所处的开发阶段、已经编写的文档的多少或者已经创建的基础设施、代码的数量来 度量开发进度的。 7 敏捷过程提倡可持续的开发速度,责任人、开发者和用户应该能够保持一个长 期的、恒定的开发速度。 敏捷团队不是以全速启动并试图在项目开发期间维持那个速度,相反,他们以 较快但是可持续的速度行进,跑地过快会导致团队过度疲惫以致崩溃。敏捷团队工 作在一个可以使在整个项目开发期间保持最高质量标准的速度上 1 0 华北电力大学硕士学位论文 8 不断地关注优秀的设计会增强敏捷能力 保持软件尽可能的清洁是快速开发软件的保证,因而敏捷团队的所有成员都致 力于只编写他们能够编写的最高质量的代码 9 简单是最根本的。 敏捷团队不会试图去构建那些华而不实的系统,他们总是更愿意采用和目标一 致的最简单的方法。他们并不看重对于明天会出现的问题的预测,也不会在今天就 对那些问题进行预防。相反,他们在今天以最高质量完成最简单的工作,深信如果 在明天发生了问题,也会很容易进行处理。 l o 最后的架构、需求和设计出自于有组织的团队 敏捷团队的成员共同来解决项目中所有方面的问题。每一个成员都具有项目中 所有方面的参与权力,不存在单一的团队成员对系统架构、需求或者测试负责的情 况,整个团队共同承担这些职责,每一个团队成员都能够影响它们。 1 1 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对 自己的行为进行调整。 敏捷团队会不断地对团队的组织方式、规则、规范、关系等进行调整。敏捷团 队知道团队所处的环境在不断地变化,并且知道为了保持团队的敏捷性,就必须随 环境一起变化。 3 2 3x p 简介 极限编程( e x t r e m ep r o g r a m m i n g ,简称x p ) 最早由k e n tb e c k 提出,是敏捷过程 中最富盛名的一个,是以开发符合客户需求变化的软件为目标而产生的一种方法, 特点在于对客户满意度的特别强调,使开发者能够更有效地响应客户需求变化。其 中e x t r e m e 的含义是将好的开发实践发挥到极致。 x p 是一种适用于l o 人以下的项目组,开发地点集中的小团队轻量级开发方法。 它最早实践于1 9 9 7 年c r y s l e r 公司的c 3 项目,之后又经历过很多实践的考验,被 许多大型的公司成功地应用。 3 2 3 1x p 的价值观 x p 的四个价值( v a l u e s ) 观【g j : 1 改善沟通 项目相关人员之间进行充分、多渠道的沟通 2 寻求简单 在系统可运转的前提下,做最简洁的工作;在开发中不断优化设计,时刻保持 代码简洁、无冗余 华就电力太学硕士警位论文 3 获缛艨馈 强调各种形式的反馈,如小交付、短迭代、先考虑铡试褥编码等。 4 富有勇气 面对蘧力骰压确的翔断并敢于付诸行动,如敢予丢弃不懿韵代硒,疲惫时立鞠 休息等等。 3 2 3 2x p 的菊效实践 凝隈绞罄过程所 鬟导熬窍效实戥活动鸯【霹: 1 客户作为团队成员 要求至少骞一名客声搜表农整令磺嚣秀发瘸攒孛窝鏊驮露发久燹在一起工终, 负责确定需求、回答团队问题以及编写功能验收测试。 2 用户素枣孝 用户索材是正在进行的关予需求的谈话的记录,客户可以使用它并根据它的优 先级移馈簿代徐张安排突现该鬟求鲍孵阕。 3 短交付周期 x p 颁晷每瓤惩交铹一次霹墩工俘的较侮。平均嚣震斡迭代实现了一戆霉求, 在每次迭代结束时,给客户演承迭代擞成的系统,以得到反馈。 4 + 验收测试 可以以客户指定的验收测试形式来捕获脊关用户素材的细节。用户素材的验收 测试是在实现用户素材之翦或蜜现该用户素材的同时编写的。 s ,结对编程 结对编程是由两个舞发人员在同台电脑上共同编写鳞决同一闯题鲍代码,遴 常一个人负责编码,而另一个人负责像证代码的正确性和可读性。绐对编糕是一种 非正式的同级评审,它鼷求两个开发人员在技能上应该相互甄配。 6 测试鞭动开笈 x p 强调“测试先行”。在编码开始之前首先将测试写好,而后在进行绽码,直 至所有的溺试都得以遁过。 7 集体所有权 开发小组豹每个成员都有受改代粥的权翻,所有豹入辩予全部代码负赞。代弼 全体拥有并不意味者开发人员可以互相推委责任,而是强调所有的人都要负责。如 巢一个群发入受豹代码有错误,贯静一个秀发入受 黧霄班避行b u g 鹣修复。 8 。持续集成 x p 倡导在一天串多次集皴系统,两虽随着需求瓣改变,要不断懿进符匿罄溯 试,这样可以使得团队保持一个较高的开发速度,同时避免丁一次系统集成出现的 斌陵。 华北电力大学硕士学位论文 9 可持续的开发速度。 团队只有持久才有获胜的希望,x p 要求团队每周工作时间不能超过4 0 个小时, 连续加班不得超过两周。 l o 开放的工作空间 x p 项目的所有者一起工作在一个开放的场所中,项目组成员在这个开放的场 所中进行积极的讨论和交流。 1 1 计划游戏 计划是持续的,循序渐进的。项目计划在建立后,要根据项目的进展得到调整, 一成不变的计划是不存在的。 1 2 简单设计 团队保持设计恰好与计划在本次迭代中要完成的用户素材相匹配,不会考虑未 来的用户素材。在一次次迭代中,不断变迁系统设计,使之对正在实现的用户素材 而言始终保持在最优状态。 1 3 重构 代码重构是指在不改变系统行为的前提下,重新调整、优化系统的内部结构以 减少复杂性,消除冗余、增加灵活性和提高性能。 1 4 隐喻 隐喻描述系统如何运作,新的功能以何种方式加入到系统。可将隐喻看成将整 个系统联系在一起的全局视图,它是系统未来的影像。 3 2 3 3x p 的开发过程 1 整体开发过程州 用户代表提出用户故事,项目组据此进行讨论。提出隐喻在隐喻和用户故事 的基础上,根据用户设定的优先级制定交付计划,然后开始多个迭代过程,在迭代 期内产生的新用户故事不在本次迭代内解决,以保证开发不受干扰。经过验收测试 通过后交付使用。如图3 2 ( a ) 所示: 测试用例 难点 刺探
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省烟台市栖霞市2024-2025学年九年级下学期期中语文试题(解析版)
- 老年人健康知识培训简报课件
- 期末大题专项训练-2023-2024学年七年级历史上学期(部编版)
- 小儿泌尿外科疾病精要
- 2025 急诊科急性胰腺炎出院随访查房课件
- 2025年公安基础知识题库及答案
- 2025浙江温州市瓯海区公安分局招聘警务辅助人员40人笔试备考题库及答案解析
- 2025年8月广东广州市天河区华阳小学招聘编外聘用制专任教师2人笔试备考试题及答案解析
- 2025海南省公安厅招聘警务辅助人员371人(第1号)考试模拟试题及答案解析
- 2025广西钦州供电局项目资料员招聘24人考试参考题库附答案解析
- 加油、加气、充电综合站项目可行性研究报告
- 2025保密协议范本:物流行业货物信息保密
- 塔机拆卸合同范本
- 2024-2025学年广东省深圳市南山区四年级(下)期末数学试卷
- 《煤矿安全规程(2025版)》知识培训
- 半导体行业面试问题及答案解析
- 《数字技术应用基础模块》技工中职全套教学课件
- 房屋拆除专项施工方案(3篇)
- AutoCAD电气工程制图 课件 项目1 低压配电柜的绘制与识图
- 2025至2030年中国绿色船舶行业发展前景预测及投资方向研究报告
- 2025年小学生“学宪法、讲宪法”网络知识竞赛题库及答案
评论
0/150
提交评论