(计算机软件与理论专业论文)软件过程研究及其在决算系统中的应用.pdf_第1页
(计算机软件与理论专业论文)软件过程研究及其在决算系统中的应用.pdf_第2页
(计算机软件与理论专业论文)软件过程研究及其在决算系统中的应用.pdf_第3页
(计算机软件与理论专业论文)软件过程研究及其在决算系统中的应用.pdf_第4页
(计算机软件与理论专业论文)软件过程研究及其在决算系统中的应用.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机软件与理论专业论文)软件过程研究及其在决算系统中的应用.pdf.pdf 免费下载

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

文档简介

软件过程研究及其在决算系统中的应用 摘要 软件过程对软件项目开发的成败起着重要作用。目前软件工程领域可供选择 的软件过程很多,有轻量级的软件过程如x p ,重量级的软件过程如r u p ,以及目前 流行的c 删等。这些软件过程如何和企业本身的实际情况适配,如何找到适合具 体软件项目的软件过程是软件工程的研究课题之一。 本文研究了当前比较流行的软件过程包括极限编程过程,r u p 软件过程以及 p s p 和t s p 软件过程,并分析了其特点,概述了这些软件过程的优缺点,并对其 适用范围进行了论述,比较分析了几种软件过程之间的关系,并对发展趋势做了 简要分析。 在分析了几种软件过程的特点并结合实际项目“决算系统”开发特点的基础 上,分析了具体项目开发过程中存在的困难,设计了以“提高设计的可重用性和 可维护性”和“强化设计复用”为指导思想的一个简化了的软件过程一“决算系 统的软件过程”。分析了“决算系统的软件过程”中团队组织结构,质量保证措施 等关键要素;分析了过程活动中设计的模板,阐述了设计的原因;对过程的实施 给出了指导性的原则。分析了过程中用到的工具并讨论了使用的原因。本文还比 较分析了“决算系统的软件过程”的实施成果。 本文还对决算系统的框架进行了详细设计和分析,以决算系统的设计为中心, 论述了决算系统的子系统日经情报系统的设计,并撰写了子系统的部分代码。 关键字:软件过程,r u p ,t s p ,决算系统 软件过程研究及其在决算系统中的应用 s o f t w a r ep r o c e s sa c t sav e r yi m p o r t a n tr o l ei ns o f t w a r ed e v e l o p i n g a t p r e s e n t ,t h e r e a r eal o to fs o f t w a r e d e v e l o p i n gp r o c e s s e s i ns o f t w a r e e n g i n e e r i n gf i e l d s ,i n c l u d i n gl i g h t w e i g h tp r o c e s ss u c ha sx p ,h i g h w i g h t p r o c e s s s u c ha sr u p ,a n dp o p u l a r i t yc m mp r o c e s s ,e t c h o wt om a k et h e s e p r o c e s s e ss u i tf o ro u re n t e r p r i s e ,h o wt oc h o i c ep r o c e s sf o ro u rs o f t w a r e d e v e l o p i n g ,i s o n es u b j e c to fs o f t w a r ee n g i n e e r i n gr e s e a r c h t h i si s s u es t u d i e sp o p u l a r s o f t w a r e p r o c e s s a t p r e s e n t ,i n c l u d i n g x p ,r u p ,p s pa n dt s p ,a n a l y z e s t h e i rc h a r a c t e r s ,a n a l y z e st h e i ra d v a n t a g e s a n d d i s a d v a n t a g e s ,d i s c u s s e s t h e i r a p p l ys c o p e s ,a n a l y z e s t h e i r r e l a t i o n s h i p ,a n da l s oi n d i c a t e st h e i rd e v e l o p i n gt r e n d e n c i e sb r i e f l y b ya n a l y z i n gp r o c e s s e sa n ds u m m a r i z i n gt h ec h a r a c t e r so ff i n a la c c o u n t s y s t e m ,a f t e ra n a l y z i n gp o s s i b l e d i f f i c u l t i e si n d e v e l o p i n gp r o c e s s ,i b r i n gf o r w a r das o f t w a r ep r o c e s s 一一f i n a la c c o u n ts o f t w a r ep r o c e s s ,b a s e d o n “i m p r o v i n g r e - u s ea n dm a i n t e n c e “a n d “s t r e n g t h e nd e s i g nr e u s e “b e s i d e s t h i si s s u ea l s o s h o w st h et e a m o r g a n i z a t i o n ,q u a l i t yg u a r a n t e e m e a s u r e s ,t e m p l a t e so fp r o c e s s ,a n dp r i n c i p l e s o fp r o c e s sd e p l o y i n g ,e t c t h i si s s u ea l s oa n a l y z e st h et o o l s u s e di n p r o c e s s a n dd i s c u s s e st h e r e a s o n a tl a s t ,t h i si s s u es u m m a r i z e st h er e s u l t so fa l lt h er e s e a r c ha n d d e v e l o p i n go ff i n a l a c c o u n ts y s t e m t h isi s s u ea l s om a k e sd e s i g n i n ga n da n a l y z i n gt h ef r a m eo ff i n a la c c o u n t s y s t e m ,i nc e n t r a lo fd e s i g no ff i n a la c c o u n ts y s t e m ,d i s c u s s e st h ed e s i g n o fas u b s y s t e m - - 一d i a l yi n f o m a t i o ns y s t e m ,a n de x p a i n si t si m p l e m e n t i n h r je f k e yw o r d s :s o f t w a r ep r o c e s s ,r u p ,t s p ,f i n a l a c c o u n ts y s t e m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特另l j j j h 以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:日期:a 。唯年岁月;。日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师 日期 软件过程研究及其在决算系统中的应用 i i 软件过程现状 第一章引言 软件过程是指实旌于软件开发和维护中的阶段、方法、技术、实践及相关产 物( 计划、文档、模型、代码、测试用例和手册等) 的集合。行之有效的软件过程 可以提高开发软件组织的生产效率、提高软件质量、降低成本并减少风险。 目前多数企业软件开发仍然是作坊式的、无序的,没有完善的软件过程,没 有相应的过程跟踪,没有相应的文档,没有完善的开发阶段。有些企业人士甚至 认为软件过程就是编码的过程。有部分企业为了提高竞争力,选择通过c 咖的方 式来改善自身的软件过程。c m m 一种是能力成熟度模型,为提高企业的软件生产 能力提供了阶梯式的进化框架。但是c 删的认证非常昂贵,中小企业对它是望而 止步。因此它们选择了其它的一些软件过程来提高软件的开发效率。这些软件过 程如轻量级的敏捷软件过程极限编程( x p ) ,重量级的软件过程r u p ( r a t i o n a l u n i f i e dp r o c e s s ) ,以及以度量为核心的小组软件过程( t s p ) 等。各企业开发团 队在选择软件过程时都会结合自身的情况对其进行剪裁或者组合,制定一套适合 自身需要的软件过程。 1 2 软件过程中面临的问题 目前有很多流行的软件过程可供选择,仅轻量级敏捷软件过程就有几十种。 如何选择这些过程,如何把它们同企业的自身状况结合起来是一个问题。其次, 每个过程都有它自身的优点和缺点,怎样取舍? 选择的目的是设计企业本身的软 件过程,并把过程实施到项目中去,这时又会有一些更具体的问题需要面对。比 如:1 、团队的组织架构问题,假设团队由1 0 人组成,每个成员都有不同的技术 技能和专长,怎样定位他们的角色? 他们能承担什么任务? 2 、项目过程跟踪和控 制问题。项目的完成必须受到时间成本和资源成本的制约。采取什么样的手段和 工具,制定怎样的规范来跟踪和控制项目? 怎样实旌相应的规范,通过怎样的过 程来控制开发进度和开发成本? 3 、质量问题。个人开发和团队开发都面临保证产 品质量的问题,在开发过程采取什么样的措施和手段来保证产品质量? 4 、设计和 软件过程研究及其在决算系统中的应用 代码的复用问题。当系统很大时,不同模块肯定存在相似甚至相同的问题,因此 在系统设计过程中必须考虑模块的复用,因为不同的成员担当不同的部分,如果 在整个系统开发完成之后再考虑复用问题,不仅使工程工作量增大,同时使得产 品的稳定性,正确性得不到保证。 1 3 解决问题的途径和本文的研究工作 怎样解决上述问题昵? 必须认真研究各种软件过程使用的方法、技术,深入 分析各种软件过程的优缺点和适用范围,体会其指导思想,结合企业自身的特点, 通过项目实践积累实际经验来完成。 本文研究了目前比较流行的几种软件过程,包括x p 软件过程,r u p 软件过程, p s p t s p 软件过程等。综合比较、分析了它们的优缺点,研究了这些过程使用到 的一些技术和方法,根据它们的一些指导思想和原则,在分析了“决算系统”开 发过程中所遇困难的基础上设计了一个软件过程“决算系统的软件过程”。并 依据软件工程的相关原理,为该过程制定了相应的文档规范及其实施的原则。作 为项目开发的一员,我参与了决算系统的设计,并开发了其中一个子系统日经情 报系统。 软件过程研究及其在决算系统中的应用 2 1x p 软件过程研究 第二章软件过程研究 2 1 2x p 的定义、内容和特点 x p ( e x t r e m e p r o g r a n f i n g 称之为极限编程,它是一种高度动态的过程,通过非 常短的迭代周期来应对需求的变化。x p 提供了一个全局的、价值驱动的开发过程 视图。它有4 个价值目标:沟通、简化、反馈和勇气。x p 的生命周期包括4 个基本 活动:聆听和设计、编码、测试。 x p 的特点是要求首先开发出最重要的特性,迅速向客户提供所需的功能,随 着代码的演进通过重构来满足新的需求,从而使整个项目失败的风险减到最小。 x p 的实旌过程如图2 1 所示。可以看出,从需求定义开始,x p 省略了常规的系统和 架构的设计步骤,从简短的计划直接进入编码的迭代循环。在x p 中,编码和设计 是同时进行的,而且特别强调测试的重要性。 圈2 - - 1x p 的开发过程 2 1 2x p 的实践方法分析 x p 提供了1 2 个实践方法,下面对其简要的分析。 1 ) 计划博弈 x p 要求结合业务和技术情况,快速确定下一次发布的范围。在项目计划的4 要 素( 费用、时间、质量和范围) 中,由客户选择3 个,而程序员可以选择剩下的1 软件过程研究及其在决算系统中的应用 个。通常客户从业务角度确定项目范围、需求优先级和开发进度,开发人员做出 具体的成本和技术估计。x p 强调简短和突发性的计划,有时只用几个小时甚至几 分钟就能完成,而且可以随时按需进行多次计划。我们永远不可能做出绝对正确 和完整的计划,因为未来是变化的。最好的解决办法是预见变化、控制风险。如 果一次计划做得不够好,那就多做几次。在项目规模小、复杂程度低而不确定因 素又多的情况下,x p 的计划博弈确实能够既提高效率又减少风险,但是这不等于 不做计划。 2 ) 小型发布 x p 可以迅速让一个简化的系统投入使用,在非常短的周期内以递增的方式发 布新版本,从而很容易估计每次迭代的进度,便于控制工作量和风险,客户的需 求和反馈也能够得到及时处理,体现了敏捷的优点。 3 ) 系统隐喻 x p 通过一个简单的关于整个系统如何运作的隐喻性描述来指导全部开发。隐 喻可以看作是种高层次的系统构想,通常包含了一些可以参照和比较的类和模 式,它还给出了后续开发所使用的命名规则。x p 不需要事先进行详细地架构设计。 隐喻在某些情况下确实可以代替正规的架构设计,但它通常只适用于小系统。 4 ) 简化设计 x p 要求任何时候代码的设计尽可能简单,恰好满足当前功能的需要,不多也 不少。这只是种理想状况,在实际的开发中,根本就不可能做到。我们只能做 到尽量的估计正确。但这可能在功能扩展时造成代码的扩充和修改。 5 ) 测试驱动 x p 要求“先写测试,后编码”。失败的测试用例驱动编码和设计,可以减少 不必要的开发量。开发人员必须保证单元测试和集成测试始终运行无误,甚至现 场的客户代表也要能够编写功能测试程序。这是很多软件过程方法都一致推荐的 做法。 6 ) 重构 重构是指在不改变系统行为的前提下,重新调整、优化系统的内部结构以减 少复杂性、消除冗余、增加灵活性和提高性能。重构不是x p 所特有的行为,在任 何开发过程中都可能发生。 7 ) 结对编程 软件过程研究及其在决算系统中的应用 x p 提出了由两名程序员在同一台电脑上结成对子共同编写解决同一问题的代 码的思想。通常一个人写代码,而另一个人负责同时保证代码的正确性和可读性。 这可以看作是一种非正式的持续同级评审。 8 ) 代码全体拥有 团队中任何人可以在任何时候改进系统任何部分的代码。这提高了代码的透 明度,增进了团队的合作精神。虽然此举效率很高,但对于大中型系统,采用该 方法若管理不善很可能引起混乱。 9 ) 持续集成 x p 提倡一天之中集成、建立成品系统很多次,而且随着需求改变,要进行不 断地回归测试。 x p 的小型发布、持续集成和代码全体拥有都需要良好的软件配置变更管理系 统和运作流程来支持。 1 0 ) 每周4 0 小时工作制 x p 要求尽可能安排程序员每周工作4 0 个小时,加班不得连续超过两周,否则 反而会影响生产率。疲倦的程序员不可能始终保持峰值效率。 这点体现了x p 的“以人文本”思想,然而实施起来非常困难,过于理想化, 但是如何合理地安排工作量和进度值得我们重视。 1 1 ) 现场客户 x p 要求至少有一位实际用户的代表在现场负责确定需求、回答开发团队的问 题和编写功能验收测试。这确实是解决与客户沟通不畅问题的好办法,但是许多 缺乏技术实力的客户还满足不了这种要求,而且客户往往认为在给出了含糊不清 的需求之后就可以撒手不管了,出了问题则要开发者全权负责。因此该实践方法 并不能得到有效的实施。 1 2 ) 强调代码规范 x p 强调通过制定严格的代码规范来进行沟通,尽可能减少除代码之外的不必 要文档。x p 对架构描述和文档的弱化对于很多国内的项目可能是个缺点。毕竟代 码的可读性不能与图形化的架构模型和规范的文档相比。 2 1 3x p 的优点缺点分析 通过关于x p 的实践方法分析,小结如下: 软件过程研究及其在决算系统中的应用 x p 具有以下优点: 1 快速的对待需求变化,可减少因为需求的变化带来的对系统的影响,因为 其采用了原型法,可以很好的满足客户需求 2 简化设计思想能够很好减少程序员工作量,加快开发进度。目前,很多企 业认为只有在设计完成之后才能进行编码,而设计往往是不完美的,大而全的设 计导致开发进度受损。x p 为我们提出了一种新的开发模式。 3 小型发布可以及时的检查出现的错误,能尽量缩小错误的范围。 同时x p 也存在一些缺点不足之处,表现在 1 x p 强调代码规范,认为代码规范就是所有规范,而弱化了设计,计划等过 程,造成的后果是对于以后的维护非常的不利,会为以后的持续性开发带来很大 的困难,特别是对于人员变动比较频繁的团队或者组织。不过现在很多实践x p 过 程的团队为了弥补该缺陷,采取开发完成之后再补文档。 2 x p 提出的结队编程思想虽然能减少错误,但有可能造成编码的不一致性, 有时还会因为解决问题的矛盾而带来拖延进度的风险。 3 代码全体拥有虽然能提高代码的透明度,但同时由于管理的不善会造成代 码的不完整性,给系统的安全性、稳定性带来极大的风险。 4 x p 强调在编码阶段的重构,这仅仅是局部重构,如果能从设计层面考虑重 构,我认为会更全面,但x p 弱化了分析设计。 5 x p 强调测试无可后非,但我们知道测试仅是事后发现错误,如果能引入缺 陷检查机制会更好。 2 2r u p 软件过程研究 2 2 1r u p 的定义和开发框架 r u p ( r a t i o h a lu n i f i e dp r o c e s s ) 是一套软件工程过程,同时也是文档化的 软件工程产品。另一方面,r u p 又是一套软件工程方法的框架,开发团队可根据 自身的实际情况,以及项目规模舜j - r u p 进行裁剪和修改,以制定出合乎需要的软 件工程过程。 在r u p 中,软件开发生命周期根据时间和r u p 的核心工作流划分为二维空间。 时间维从组织管理的角度描述整个软件开发生命周期,是r u p 的动态组成部分, 软件过程研究及其在决算系统中的应用 它用周期、阶段、迭代三个术语来表达。核心工作流从技术角度描述r u p 的静态组 成部分,它用角色、活动、核心工作流、产品四个术语来描述。r u p 的软件开发过 程可以形象的用图2 2 形象的表示。 核心工作流 商业建模 需求分析 分析设计 实现 测试 部署 核心支持工作流 配置管理 项目管理 环境 初始化精化构建部署 2 z zr u p 的静态结构分析 迭代 图2 - 2r u p 的开发过程框架 1 角色 角色定义了由单个或由多个人所组成小组的行为和责任。个人可以承担多个 角色,一个角色也可以多个人承担。角色还定义了如何完成工作。 2 活动 活动是针对角色提出的,活动的主体是角色。某个角色的活动是可能要求该 角色中的个体执行的工作单元,活动具有明确的目的,通常表现为一些产物如模 型、计划等。每个活动分配给特定的角色。活动用来作为计划和进展的组成元素。 3 产物 产物是为过程所使用的一段信息。产物是项目的实际产品,项目产生的成果, 软件过程研究及其在决算系统中的应用 产物用作角色执行某个活动的输入,同时也是该活动的输出。产物可以包括模型, 文档如设计文档,源代码,可执行文件等。 4 核心工作流 核心工作流是生成特定产品所要经历的活动。r u p 的核心工作流分为工程工作 流和支持工作流。工程工作流包括业务建模工作流、需求工作流、分析设计工作 流,实现工作流,测试工作流和部署工作流。支持工作流包括项目管理工作流, 配置和变更控制工作流以及环境工作流。 商业建模工作流:为软件开发人员和业务人员定义相同的语言和过程,以便 达到相互交流通畅和无障碍。主要目的就是要了解目标组织的结构及机制;了解 目标组织中当前存在的问题并确定改进的可能性:确保客户、最终用户和开发人 员就目标组织达成共识:导出支持目标组织所需的系统需求。 需求工作流:需求工作流的目标是描述系统应做什么并允许开发人员和用户 就该描述达成共识。为了达到该目标,进行提取、组织、文档化需要的功能和约 束。同时需求工作流还要求定义系统边界;为计划迭代的技术内容提供基础。为 估算开发系统所需成本和时间提供基础;定义系统的用户界面,重点是用户的需 要和目标。 分析设计工作流:它的目标是显示系统如何在实现阶段被实现的。分析设计 结果是一个设计模型和可选的分析模型。设计活动以体系结构设计为中心。结构 的产物和验证是早期迭代的主要焦点。结构由若干结构视图来表达,这些视图捕 获了主要的构架设计的决定。本质上结构视图是整个设计的抽象和简化,结构不 仅仅是良好设计模型的承载媒介,而且在系统的开发中能提高创建模型的质量。 r u p 的设计强调以下几点:将需求转换为未来系统的设计;逐步开发强壮的系统构 架;使设计适合于实施环境,为提高性能而进行设计。 实现工作流:它的主要目的包括以下方面:定义代码的组织结构:以构件、 源文件、二进制文件或可执行文件的形式实现类和对象;将开发出的构件作为单 元进行测试;对由单个实现者或小组产生的结构集成为可执行的系统。 测试工作流:测试的目的主要体现在以下几个方面:核实对象之间的交互; 核实软件的所有构件是否正确集成;核实所有需求是否已经正确实施;确定缺陷 并确保在部署软件之前将缺陷解决。r u p 提出了迭代的方法意味着在整个项目中进 行测试,从而允许尽可能早的发现缺陷,从根本上降低了修改缺陷的成本。测试 软件过程研究及其在决算系统中的应用 分别从可靠性、功能性应用和系统性能来进行。 部署工作流:部署工作流的目标是成功的生成版本,将软件分发给用户。 项目管理工作流:为对软件密集型项目进行管理提供框架。为项目的计划、 人员配备、执行和监测提供实用的准则。为管理风险提供框架。 配置管理工作流:在控制由参与同一个项目的许多人员所生成的大量工件时, 配置管理系统至关重要。如果进行控制,就有助于避免混乱情况的发生,并确保 生成的产品不会由于同步更新,通知不力,版本混乱问题而发生冲突。r u p 为此提 出提供的相关原则和解决的方案。 环境工作流给出了软件开发的过程和工具,它主要集中在项目环境中配置过 程的活动,以及开发规范方面的活动。 2 2 3p u p 的动态结构分析 在时间上,为了能够方便地管理软件开发过程,监控软件开发状态,r u p 把 软件开发周期划分为多个,每个循环由初始化、精化、构建和产品化四个连续的 阶段组成,每个阶段都应完成确定的任务。每次循环经过这四个阶段后就会产生 一个新版本软件。 r u p 的初始化阶段主要完成以下任务:建立项目的软件规模和边界条件,包括 运作前景、验收标准以及希望产品中包括和不包括的内容;识别系统的关键用例, 对比一些主要场景,展示至少一个备选构架;评估整个项目的总体成本和进度, 以及对即将进行的精化阶段进行更详细的评估;评估潜在的风险;准备项目的支 持环境。 r u p 的精化阶段主要完成以下任务:确保构架、需求和计划足够稳定,充分减 少风险,从而能够有预见性地确定完成开发所需的成本和进度。对大多数项目来 说,通过此里程碑也就相当于从简单快速的低风险运作转移到高成本、高风险的 运作,并且在组织结构方面面临许多不利因素;处理在构架方面具有重要意义的 所有项目风险;建立一个已确定基线的构架,它是通过处理构架方面重要的场景 得到的,这些场景通常可以显示项目的最大技术风险;制作产品质量构件的演进 式原型:证明已建立基线的构架将在适当时间、以合理的成本支持系统需求。建 立支持环境。 r u p 的构建阶段主要完成以下任务:通过优化资源和避免不必要的报废和返 软件过程研究及其在决算系统中的应用 工,使开发成本降到最低。快速达到足够好的质量,快速完成有用的版本,完成 所有所需功能的分析、开发和测试。迭代式、递增式地开发随时可以发布到用户 群的完整产品。这意味着描述剩余的用例和其他需求,充实设计,完成实施,并 测试软件。确定软件、场地和用户是否已经为部署应用程序作好准备。开发团队 的工作实现某种程度的并行。即使是较小的项目,也通常包括可以相互独立开发 的构件,从而使各团队之间实现自然的并行,这种并行性可较大幅度地加速开发 活动;但同时也增加了资源管理和工作流程同步的复杂程度。如果要实现任何重 要的并行,稳定的构架至关重要。 r u p 的产品化阶段完成的任务主要是把产品进行打包并分发给用户。 r u p 在每个阶段结束前都应有一个里程碑评估该阶段的工作。如果未能通过该 里程碑的评估,则决策者应该做出决定是应取消该项目,还是继续做该阶段的工 作。 r u p 每一个阶段都由一个或多个连续的迭代组成,每一个迭代都是一个完整 的开发过程是一个具体的迭代工作流从头到尾的执行。与核心工作流不同的是 r u p 并没有也无法给出迭代工作流的具体实现步骤,它需要项目经理根据当前迭 代所处的阶段、以及上次迭代的结果,适当的对核心工作流中的行为进行剪裁以 实现一个具体的迭代工作流。 r u p 的迭代开发过程是受控的,在项目计划中就制定了项目迭代的个数、每 个迭代的延续时间以及目标。在每一个迭代的起始阶段都制定详细的迭代计划以 及具体的迭代工作流。每次迭代过程都生成该次迭代的版本。作为下次迭代的基 础。在迭代结束前,都应执行测试工作,并仔细评估该迭代过程,为下一次迭代 做准备。迭代并不是重复地做相同的事,而是针对不同使用案例的细化和实现。 2 2 4r u p 的优缺点分析 通过以上对r u p 的分析,小结如下: r u p 具备以下优点 1 r u p 提出的迭代式开发方法是一个不断减除风险的过程,每一次的迭代过 程都选择最关键的也是风险最大的使用案例执行。因此风险在迭代过程中不断地 软件过程研究及其在决算系统中的应用 被发现、消灭。 2 以使用案例驱动开发、体系结构为中心使得开发人员比较容易地控制整个 系统的开发过程,管理它的复杂性、维护它的完整性。 3 r u p 针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和 工具指导,并确保所有开发共享相同的知识基础。它建立了简洁和清晰的过程结 构,为开发过程提供较大的通用性。 但是r u p 也存一些不足之处,表现在以下几个方面 1 r u p 没有提供对结构化开发方法的支持,它以面向对象为基础; 2 r u p 只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关 于软件运行和支持等方面的内容。 3 它没有支持多项目的开发结构,这在一定程度上降低了在开发过程中大范 围实现重用的可能性。 2 3p s p t s p 软件过程研究 个人软件过程( p e r s o n a ls o f t w a r ep r o c e s s 简称p s p ) 是小组软件过程( t e a m s o f t w a r ep r o c e s s 简称t s p ) 的基础,t s p 是在p s p 上的发展。它们的关系非常 密切,因此在同一节中进行讨论。 2 3 1p s p 改进过程框架 p s p 是一一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是 一个包括软件开发表格、指南和规程的结构化框架。p s p 与其体的技术如程序设 _ i _ 1 语言、工具或者设计方法相对独立。p s p 阐述了个体软件开发过程的原则:它 的j 蕾要坷的是帮助软件工程师做出准确的计划;确定软件工程师为改善产品厦量 要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程 师能力的影响。 p s p 改进软件过程的步骤如图2 - - 3 所示。首先需要明确质量目标,也就是软 件将要在功能和性能上满足的要求和用户潜在的需求。接着就是度量产品质量, 有了目标还不行,目标只是一个原则性的东西,还不便于实际操作和判断,因此, 软件过程研究及其在决算系统中的应用 必须对目标进行分解和度量,使软件质量能够测量。然后就是理解当前过程,查 找问题,并对过程进行调整。最后应用调整后的过程,度量实践结果,将结果与 目标做比较,找出差距,分析原因,对软件过程进行持续改进。 幽2 - - 3p s p 改进软件过程的步骤 p s p 为个体的能力也提供了一个阶梯式的进化框架,p s ? 进化框架共有四级, 包括个体度量过程,个体规划过程,个体质量管理过程和个体循环过程。这四个 过程是渐进式的,后面的过程包含前面过程的元素,如个体规划过程包含个体度 量过程的元素。下面就四级过程进行简要分析。 个体度量过程 个体度量过程分为两个阶段,第一个阶段目的是建立个体过程基线,通过这 一步,学会使用p s p 的各种表格采集过程的有关数据,此时执行的是该软件开发 单位的当前过程,通常包括计划、开发( 包括设计、编码、编译和测试) 以及后 置处理三个阶段,并要作一些必要的试题,如测定软件开发时间,按照选定的缺 陷类型标准、度量引入的缺陷个数和排除的缺陷个数等,用作测量在p s p 的过程 中进步的基准。第二个阶段增加了编码标准、程序规模度量和过程改善建议等三 个关键过程域,其中过程改善建议表格用于随时记录过程中存在的问题、解决问 题的措施以及改进过程的方法,以提高软件开发人员的质量意识和过程意识。 在个体度量阶段必须理解和学会使用进行规划和度量的技术。设计一个好的 表格并不容易,需要在实践中积累经验,以准确地满足期望的需求,其中最重要 的是要保持数据的一致性、有用性和简洁性。 软件过程研究及其在决算系统中的应用 个体规划过程 该过程同样分为两个阶段。第一阶段的重点是个体计划,它引入了基于估计 的探针计划方法( p r o b e ) ,用自己的历史数据来预测新程序的大小和需要的开发 时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可信程度。 第二阶段增加了对任务和进度的规划。 p s p 要求在个体规划阶段应该学会编制项目开发计划,这不仅对承担大型软 件的开发十分重要,即使是开发小型软件也必不可少。因为,只有对自己的能力 有客观的评价,才能做出更加准确的计划,才能实事求是地接受和完成客户要求 的任务。 个体质量管理过程 个体质量管理过程,该过程根据程序的缺陷来建立检测表,按照检测表进行 设计复查和代码复查,以便及早发现缺陷,使修复缺陷的代价最小。随着个人经 验和技术的积累,还应学会怎样改进检测表以适应自己的要求。该过程还论述了 设计过程和设计模板,介绍设计方法,并提供了设计模板。但p s p 并不强调选用 什么设计方法,而强调设计完备性准则和设计验证技术。 实施p s p 的一个重要目标就是学会在开发软件的早期实际地、客观地处理由 于人们的疏忽所造成的程序缺陷问题。人们都期盼获得高质量的软件,只有高素 质的软件开发人员并遵循合适的软件过程,才能开发出高质量的软件,因此,该 过程引入并着重强调设计复查和代码复查技术。 个体循环过程 该过程的目标是把个体开发小程序所能达到的生产效率和生产质量,延伸到 大型程序:其方法是采用螺旋式上升过程,即迭代增量式开发方法,首先把大型 程序分解成小的模块,对每个小模块进行单独开发,最后把这些模块逐步集成为 完整的软件产品。 应用p s p 开发大型软件系统,必须采用增量式开发方法,并要求每一个增量 都具有很高的质量。在这样的前提下,在新一轮开发循环中,可以采用回归测试 的方法,集中力量考察新增加的增量是否符合要求。因此,要求在开发中进行严 格的设计复查和代码复查,并努力遵循设计结束准则。 软件过程研究及其在决算系统中的应用 2 3 2p s p 过程开发框架 图2 4 表示了p s p 过程的开发框架。它主要由几个顺序的开发过程和相关表 单、规范和日志组成。 图2 - - 4p s p 过程开发框架 p s p 为个人开发软件,管理开发过程提供了一些规范如开发编码规范,时间 跟踪表单,规模统计表单。它的度量非常严格,比如对时间的度量甚至精确到分 钟。 p s p 的过程包括计划,设计,设计审核,编码,编码审核等阶段,是一个按 时间顺序开发的过程。按照项目阶段的划分,p s p 分为以下几个阶段,计划( p l a n ) , 实施( d e v e l o p m e n t ) ,及结尾阶段( p o s t m o r t e m ) 。 可以看出p s p 的开发延续了瀑布模型的开发方式,每个过程在时间上是单向 的。 2 3 3p s p 中的数据度量 在p s p 过程中,工程师需要统计历史数据来更好的做计划。这些数据包括完 成一个项目所花费的时间,产品的规模( 源代码的数量) 以及产品的质量。 软件过程研究及其在决算系统中的应用 1 时间度量 工程师用时间记录日志来测量花费在每个过程阶段所花费的时间。日志当中 包含有任务开始的时间和结束的时间,以及中断的时间。中断时间可以是接电话 的时间,别人问问题所耽误的时间。为了准确的估算时间,工程师应该努力的跟 踪花费做项目的实际时间。因为中断的时间是随机的,如果忽略这些时间,而把 这些时间累加起来会产生巨大的错误,从而增加估计的误差。 2 规模度量 p s p 为了统计和度量产品的规模,采用代码量的统计方法,p s p 把代码主要 分成基本代码、修改代码、删除代码、增加代码、重用代码等部分。它使用 一定的规则来进行统计和衡量。 3 质量的度量 p s p 质量管理主要集中在对缺陷的预防上。p s p 通过规模,时间,缺陷三方面 的数据来衡量产品的质量,它提出了一系列方法和措施,如缺陷密度,回顾频率, 开发时间比率,缺陷比率,效益,每小时缺陷数等方法来度量产品的质量。 2 3 4t s p 的过程开发框架 t s p 在p s p 的基础上研究了团队该如何来开发软件,重点描述了如何来组建 团队,团队中应该有什么样的角色,他们的任务是怎样的,以及如何度量他们的 工作。 图2 - - 5 表明了t s p 的过程开发框架。t s p 为团队开发制定了一系列的表单, 规范及标准来记录跟踪团队的组建过程,并配备一定的管理手段,通过对过程数 据形成的状态报告进行分析,来改进整个软件的开发过程。t s p 团队阶段性的进 行重新启动。因为t s p 遵循反复演进的开发策略,阶段性的重新启动是必须的, 这样每一个阶段或周期可以根据上一个周期获得的数据进行计划。重新启动同样 要求更新工程师的详细计划,通常这些计划仅仅在几个月内是精确的。在t s p 启 动的时候,团队要编制今后三、四个月的总体和详细计划。当团对成员完成一个 项目阶段或周期的所有或大部分的工作,他们将根据需要修订总体计划并为以下 三、四个月编制新的计划。他们的这些工作是在t s p 重新启动过程的指导下进行 的。 软件过程研究及其在决算系统中的应用 图2 5t s p 过程开发框架 从图2 5 中还可以看出,t s p 强调严格的度量。在开发中进行数据跟踪,包 括每天的开发时间,每天的开发代码行数等。通过比较计划数据和实际数据,为 以后的团队组建、分配资源提供参考数据,以供不断的对过程进行优化。 同时,t s p 对如何组建团队,组建团队该做些什么、如何做,提供了一些有 价值的指导意见。下面简述一下t s p 的观点。 2 3 5 团队建设 t s p 建议在团队建设中主要需要解决以下问题: 1 为团队制定共有的目标。这时就需要让每个团队成员参与其中,让他们理 解整个目标过程。项目经理则需根据个人情况,检查他们的个人目标是否符合团 队目标,并进行相应的评审,让每个成员都能充分发挥他们的能力。 2 分配相应的角色。t s p 建议在一个团队中,应该有以下几个角色:项目经 理,开发管理员,质量管理员。每个成员都有相应的责任,相应的协调和沟通则 使得整个团队能够协调的工作。 3 制定相应的计划。在制定相应的目标和为每个成员分配相应的责任后,必 须制定一个比较完善的计划和一定的策略,来保证目标能够顺利完成。第一步是 把整个工程进行分工,为每个生命周期工作定义相应的功能点,以及最后整台的 软件过程研究及其在决算系统中的应用 方法。其次,为每个过程定义相应的文档模板,估计开发时间和开发工作量,定 义工作的优先级别,以及每个阶段的参加成员。最后就是执行计划。 4 交流沟通。团队开发普遍遇到的问题是成员之间没有沟通和协调。如果团 队成员不知道他们当前工作的状态,那么他们就没法调整他们的工作来满足整个 工作目标,问题就不能得到及时解决。团队成员都有自己的工作,相应的会议是 团队开发的一个关键元素,其原则就是每隔固定时间比如一周来解决交流问题。 2 3 6 团队活动 f s p 建议团队开发软件需具有以下的活动 团队领导 过程纪录 出版物跟踪 团队交流 报告管理 计划维护 工程完成情况的估计 对项目的重新投入 t s p 质量管理 下面就重点的问题进行一些探讨 1 团队领导 团队负责人通常是项目经理,他们的责任就是对团队成员进行指导和激励员 工的工作激情,处理客户需求和完成相应管理工作,包括对团队资源进行保护, 汇报相应的组织工作。项目经理的一项重要职责就是保证整个工作的有序进行, 使团队成员按照计划完成工作。在投入过程中,程序员制定开发过程,项目经理 对其进行监控从而保证工作按照计划完工。 每一个项目都面临着复杂的计划和资源压力,有许琐事来干扰使得工作限于 某个角落而停止不前。然而,当团队不按正常的工作流进行,团队成员就没法知 道项目的整体进展情况。在监视过程中,项目经理检查相关项目的总体情况和质 量情况并应该在每周的会议上进行一次通报,从而形成一个高质量的版本。 项目经理的另一项主要责任就是保证出版物得到有效管理和跟踪。出版物的 软件过程研究及其在决算系统中的应用 内容可以是问题的一些解决方法,团队成员提出的一些新的想法等。在t s p 中, 小组成员在每周的会议上都会探讨一些问题,项目经理首先需要对出版物进行检 查过滤以决定哪些内容被处理,并指派人手进行管理和跟踪,最后在团队会议上 进行讨论、评审并形成跟踪报告和记录文档。 2 团队交流 项目经理负责维持一个开放的有效的团队交流气氛。当团队成员不清楚项目 状况,不理解其他队员所做工作或者不清楚要面临的挑战时,他们的积极性将会 受阻。交流时保持团队的活力,项目经理应起到关键的带头作用。 每周会议之前,项目经理预览项目状态、即将讨论的问题和团队成员都关心 的重点。团队成员则回顾上周工作隋况,计划下周将要进行的工作和管理活动, 以及估计会遇到的风险情况。他们在会议上陈述思想观点,问题和所需要的支持 帮助。 项目经理在会议上的另一项责任则是通告项目的进展情况,告知团队成员项 目目前所在位置,客户的一些新的需求和应对措施等。 3 计划维护 一旦完成计划的投入则必须按照计划工作,同时计划也提供过程度量的标准 以及鉴别遇到的威胁。 4 质量管理 t s p 中,质量控制的原则是对缺陷采取尽可能的预防措施。为了管理和控制 质量,团队需要建立一套质量控制办法和质量目标,建立达到这些目标的计划, 以及对过程进行管理跟踪,制定目标未达到时应该采取的补救措施。t s p 中质量 管理主要分为质量计划,质量问题的鉴别,以及问题的查找和预防等部分。 质量计划:在团队l a u n c h 过程中,需要制定质量计划,该计划可以以历史数 据为参照,如果没有历史数据,可以参考t s p 提供的数据。一旦软件工程师对注 入缺陷进行了估计,就需要对排除缺陷的数据进行估计,这也可以参考团队以前 的历史数据或t s p 提供的数据,排除缺陷所用的估计数据以每个阶段所产生的效 益为基础,效益指在产品开发的不同阶段开始时消除缺陷的百分比。当注入和消 除缺陷数得到了正确的估计就可以制定一份详细的质量计划,最后团队评审该计 划,如果不台适再做适当的修改。 鉴别质量问题种类,通过比较模型和组件数据工程师可以很快的查找出类似 软件过程研究及其在决算系统中的应用 缺陷密度,回顾频率效益以及其他相关数据。 t s p 提供了以下几种质量检测方法: p e r c e n td e f e c tf r e e p d f d e f e c t r e m o v a lp r o f i l e q u a li t yp r o f ii e p r o c e s sq u a li t yi n d e x - p q i 这几种测量方法可以参见相关文献。, i 2 3 7p s p 、t s p 的优缺点分析 通过以上对p s p 、t s p 的分析,小结如下 p s p 、t s p 具有以下优点: 1 p s p 可以帮助软件工程师运用过程的原则,借助于p s p 提供的一些度量和 分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作 的评估、计划和预测更加准确、有效。 2 t s p 能组织帮助建立适合自我管理的团队,能够有效地规划和跟踪、掌握 过程和计划。告诉管理者如何训练、激励团队以保持最高的效能。向高成熟度的 组织提供改进指导。 但是由于p s p t s p 都要求进行时间,规模,质量的准确度量,填写大量的跟 踪表格,在实际开发中执行起来会有一定的工程难度。 2 4 几种软件过程比较 2 4 1x p ,r u p ,c 删的比较分析 目前,大家对c m m 的认识都已经很深,因此在这里不做专门的讨论。 c 涮告诉组织为了系统化地建立、实旌和改进软件开发过程应该做些什么,但 没有说明如何去做以及采用哪些具体的技术、策略和方法。c m m 是一套通用的过 程实践标准,适用面很广。 x p 是个针对某种特定环境的具体过程实施模型和方法论。它是一种演进式 的原型化方法具有

温馨提示

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

评论

0/150

提交评论