




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 软件工程发展几十年来,人们发现它的基本问题不在于技术和工具是否先进,而 在于如何管理开发的过程。虽然,c m m 、p s p 、t s p 、r u p 、x p 都提出了各自的管 理规范和模式,但都没有给出细粒度的、可操作的软件开发过程管理指南,这些规范 难以实施到具体的开发过程中。而面向工作流的软件过程管理则为现代软件工程开辟 了一条新的解决之道。 把l o r e sn o t e s 的工作流技术应用到中小型软件企业的软件开发管理,尝试建立 一个管理软件产品开发流程的集成化的工作平台。并在其上成功实现了高性能v p n 等安全产品软件的开发。 结合中小企业的特点和l o t u sn o t e s 的工作流技术,将项目管理划分成任务管理、 开发管理、测试管理、变更管理、版本管理和文档管理,并将这些管理过程按照工作 流原理流程化。整个软件过程紧密围绕软件开发的需求分析、系统设计、详细设计、 功能实现、功能测试和文档整理等核心工作流展开,每个核心工作流又将以瀑布模型 分解在不同的进度阶段中实现,迭代贯穿始终,从而方便地适应需求变化,有效地解 决当前项目开发中遇到的难题。 将整个软件产品的开发过程组织成为一个有序的阶段集合,通过l o t u sn o t e s 集 成化平台执行,使整个流程自动运行。每个软件开发者通过该平台接受任务和提交任 务:而项目管理者通过该平台监控整个流程的状况,并进行包括人力在内的各种资源 的动态调整,从而实现以过程为核心的软件开发,这样既能缩短开发周期,又能可靠 地提高软件质量。 防火墙、v p n 等多版本产品的成功管理实践也表明,基于l o r e sn o t e s 的工作流 技术应用于软件开发是可行的。提高了软件开发的成功率和效率。 关键词:工作流软件过程软件过程管理安全产品l o t u sn o t e s 华中科技大学硕士学位论文 a b s t r a c t w h e nt h es o f t w a r ee n g i n e e r i n gh a v ed e v e l o p e df o rs e v e r a ld e c a d e s ,p e o p l ed i s c o v e r s t h a tt h eb a s i cp r o b l e mi sn e i t h e rd e v e l o p m e n tt e c h n i q u en o rt h ed e v e l o p m e n tt o o l ,b u ti s h o wt om a n a g et h ep r o c e s so f t h ed e v e l o p m e n t a l t h o u g h ,t h ec m m ,p s p , t s p , r u e a l l p u tf o r w a r dt h e i rm a n a g e m e n tm o d ea n dm a t h o d ,t h e s et h e o r i e s a r eh a r dt op u ti n t o p r a c t i c ei nas p e c i f i cw a y o fd e v e l o p m e n tp r o c e s s b u ts o f t w a r ep r o c e s sm a n a g e m e n tb a s e d o nn o t e sw o r k f l o wc a r ls o l v et h ep r o b l e mo ft h em o d e ms o f t w a r ee n g i n e e r i n g t om a n a g et h es o f t w a r ep r o c e s so fs m a l la n dm i d d l es o f t w a r eo r g a n i z a t i o n sb yu s i n g w o r k f l o wt e c h n o l o g yb a s e do nl o t u sn o t e s ,w ea r et r y i n gt oe s t a b l i s hap l a t f o r ma b o u t m a n a g e m e n to fs o f t w a r ed e v e l o p m e n tt h a tw o u l dc a t t yo u tt h ew o r k f l o wa u t o m a t i c a l l y t h ed e v e l o p m e n tm a n a g e m e n to fh i g hp e r f o r m a n c ev p n g a t e w a ya n df i r e w a l lp r o d u c t so n t h i sp l a t f o r mi ss u c c e s s f u l a c c o r d i n gt ot h es o r w a r ed e v e l o p m e n tp r o c e s sb a s e dw o r k f l o w ,p r o j e c tm a n a g e m e n t c a nb ed i v i d e di n t od e v e l o p m e n tm a n a g e m e n t ,t e s tm a n a g e m e n t ,c h a n g em a n a g e m e n t , v e r s i o nm a n a g e m e n t ,d o c u m e n tm a n a g e m e n t ,a n dt u r nt h e mt ow o r k f l o w w h o l es o f t w a r e p r o c e s si se x e c u t e do r d i n a l l ys u r r o u n dt h ec o r ew o r k f l o w ( r e q u i r e m e n ta n a l y s i s ,s y s t e m d e s i g n ,d e t a i l e dd e s i g n ,f u n c t i o ni m p l e m e n t ,f u n c t i o nt e s t ) ,a c c o r d i n gt h ew a t e r f a l lm o d e l e v e r yc o r ew o r k _ f l o wb e e x e c u t e dd i s a s s e m b l ya m o u n gr e c u r s i v es c h e d u l e ,s o f t w a r e d e v e l o p m e n ti sd i s a s s e m b l e di n t oi t e r a t i o n s ,i tb e c o m e se a s yt oa d a p tt h ec h a n g eo f r e q u i r e m e n t as o l u t i o nf o rt h ep r o b l e m so fp r o j e c tm a n a g e m e n ti sd i s c u s s e dw i t ht h eh e l p o fs o f t w a r ep r o c e s sb a e s dw o r k f l o w s o f t w a r ed e v e l o p m e n tp r o c e s si sb e c a m ean e tr e c u r s i v es c h e d u l em a n a g i n gm o d e l , a n di se x e c u t e da u t o m a t i c l l yo nt h i sp l a t f o r m e v e r yp r o g r a m m e ra c c e p tt a s ka n ds u b m i t t a s kt h r o u gt h ep l a t f o r m ,s ot h ep r o j e c tm a n a g e rc a na d j u s tr e s o u c ed y n a m i c l l yt o a d o p tt h e s o f t w a r ep r o c e s s u s i n gt h es o f t w a r ep r o c e s sb a s e dw o r k f l o wt h ep e r i o do f d e v e l o p i n gi s s h o r t e n e de v i d e n t l y , t h eq u a l i t yo f s o f t w a r ei sg u a r a n t e e d w eh a v ed e v e l o p e df i r e w a l la n dv p n p r o d u c t so nt h i sp l a t f o r ms u c c e s s f u l l y s oi t c o m e st ot h ec o n c l u s i o nt h a ta p p l y i n gl o t u sn o t e sw o r k f l o wt os o f t w a r ed e v e l o p m e n ti s e f f i c i e n t k e yw o r d s : w o r k f l o w ;s o f t w a r ep r o c e s s ;s o f t w a r ep r o c e s sm a n a g e m e n t ;s e c u r i t y p r o d u c t ;l o t u sn o t e s ; 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本 论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本 文的研究做出贡献的个人和集体,均己在文中以明确方式标明。本人 舱翩到杼啪擀躲蚌人篡一:始茜 卯r 年丁月8 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密日。 ( 请在以上方框内打“”) 学位做作者躲多告蓦指剥币签参逛 ) 膨弋一年r 月孑日 勿) 年f 月f 日 华中科技大学硕士学位论文 1 概述 1 1 研究背景与目的 随着计算机硬件性能的不断提高和价格的不断下降,其应用领域也在不断扩大, 人们希望将更多领域、更难的问题交给计算机去解决,这使得计算机软件的规模和复 杂性与日俱增。“软件危机”的出现导致软件工程的兴起,发展几十年来,人们发现它 的基本问题不在于技术和工具是否先进,而在于如何管理开发的过程。软件过程是指 将用户需求转化为可执行系统的开发和演化过程中所进行的软件工程的全部活动,是 用于生产软件产品的工具、方法和实践的集合它主要研究在软件开发过程中如何 有效地组织和管理开发活动、人员及资源【2 i 。8 0 年代中后期,美国产业界和科研部门 开始认识到,在软件开发中关键问题是软件开发组织不能很好地定义和管理其软件开 发过程,使得好的开发工具和开发技术达不到应有的效果。因此软件工程研究重点放 在软件过程管理与软件过程改进上【3 。 如何进行软件过程管理与改进,软件界的许多人提出了各种各样的方案。卡内基 梅隆大学的软件工程研究所s e i ( s o f t w a r ee n g i n e e r i n gi n s t i t u t e ) 提出了s w - c m m 【4 l ,它 将软件过程的成熟度分为五级,描述了企业要达到每一个级别所必须要做的工作。企业 通过使用这个模型,一级级地去提高它们的软件开发及生产能力。随后,又产生了个 体软件过程( p s p ) 、群组软件过程( t s p ) 、统一软件开发过程( r u p ) 、极限编程( x p ) 等。虽然,c m m 、p s p 、t s p 、r u p 、x p 都提出了各自的管理规范和模式,但都没 有给出细粒度的、可操作的软件开发过程管理指南,这些规范难以实施到具体的开发 过程中。 目前,中国的软件企业正处于高速发展的阶段,面临更加严峻的挑战:客户需求 不断提高导致产品生命周期缩短:产品开发项目数量大增;新技术导致了对研究和开 发项目需求的增加等。在这众多项目开发、技术含量高、变化速度快、资源有限的环 境下,如何提高占软件行业9 7 的中小型软件企业的过程管理水平,提高产品质量和 开发效率,成为亟待解决的问题。 l 华中科技大学硕士学位论文 本论文的研究起源于国家科技部基于i p s e c 的高性能虚拟专用网系统研究。立项 代码:0 3 c 2 6 2 2 4 2 1 0 4 0 1 ,批准文号:国科发计字 2 0 0 3 1 3 7 5 号。 1 1 1 软件过程及工作流的定义 软件过程是指将用户需求转化为可执行系统的开发和演化过程中所进行的软件 工程的全部活动,是用于生产软件产品的工具、方法和实践的集合【“。它主要研究在 软件开发过程中如何有效地组织和管理开发活动、人员及资源( 2 】。 依据c m m 能力成熟度模型的观点,软件过程是指开发和维护软件及相关产品( 包 括项目计划、设计文档、程序代码、测试用例和用户手册等) 的一套行为、方法、实 践及变换过程【5 j : 工作流技术是进入9 0 年代以后计算机应用领域的一个新的研究热点。工作流管 理联盟的定义【6 】:工作流是一类能够完全或者部分自动执行的经营过程,根据一系列 过程规则,文档、信息或任务能够在不同的执行者之间传递、执行。工作流技术是目前 比较流行的过程实现技术 7 1 。工作流所关注的问题是处理过程的自动化【8 j ,它根据一 系列定义的规则,把文档、信息和任务在参与者之间传递,以达到某种目的 9 1 。工作 流管理的目的是为了让合适的人或软件在恰当的时间执行正确的工作【1 0 】。 在软件项目开发过程中,从问题定义、需求分析、概要设计、程序编码到测试, 需要在多个软件开发者之间按照某种预定义的规则传递文档、信息或任务,最终开发 出用户需要的产品,这恰恰是一种工作流。故软件过程具有典型的工作流特性。 国内外对软件开发过程建模和仿真研究虽然给出了一些思路和方法,但应用工作 流技术的却不多。随着工作流技术的日益成熟,将其用于软件过程管理己成为一个非 常有前景的方向1 1 , 1 2 , 1 3 1 。 1 1 2 软件过程管理的现状 软件过程管理即是对整个软件生存期的一切活动进行全过程管理,是项目成败的 关钭14 1 。美国曾在1 9 9 5 年做过软件产业成熟程度的调查,发现在美国的软件产业中, c m m 成熟度等级为初始级( 第一级) 的占7 0 ,其特征是软件开发过程不能预测, 风险度高;可重复级( 第二级) 的占1 5 ,其特征是软件开发对于熟悉的项目容易获 2 华中科技大学硕士学位论文 得成功,新的项目却面临很大的风险;定义级( 第三级) 的所占比例小于1 0 ,其特 征是软件开发过程相当稳定,进展顺利且可以预测;管理级( 第四级) 的所占比例小 于5 ,其特征是软件过程预测准确、值得信赖;优化级( 第五级) 的所占比例小于 1 ,其特征是软件过程能持续改善。所以不管是从提高内部的管理水平和赢得外部 客户信任角度来讲,不断进行过程改进、提高过程管理水平,向更高的成熟度迈进都 是当今软件企业所必须要作的工作。 中国的软件企业绝大多数是中小型企业,其中5 0 人以下的企业占5 5 左右, 5 0 2 0 0 人的企业占4 2 左右,1 0 0 0 人以上的仅有北大方正、东软集团等少数几家。 文献 1 5 】分析了中小企业的特点是人员少,人才流动快,资金有限,人员职责不明, 一身多职,又缺乏有效的管理机制。普遍存在着软件过程没有明确规定,文档不完整、 不规范,软件项目的成功往往归功于一些杰出个人和组织的努力【2 】。一旦核心技术人 员流失,项目开发将遭受重创,以至于停滞不前,表现如下: 1 ) 软件开发管理不规范 软件公司还处于无序状态,缺乏健全的管理实践,软件开发成功与否完全依赖开 发人员的个人能力,虽然有些公司建立了一些软件开发管理规范,但并没有从根本上 解决软件开发的质量控制问题。 2 ) 研发管理人员和研发人员缺乏系统的训练 目前,国内软件专业的学校教育与实际的软件开发工作脱节严重,软件技术的快 速发展以及开发工具的经常变更,导致软件行业的人员只注重追逐流行趋势,而轻视 管理,加之市场压力,整个行业大多急功近利,人心浮躁,没有扎实的基础训练,同 时软件企业间人才争夺激烈,使软件人员流动频繁,致使软件企业缺乏必要的技术积 累和管理积累。而且由于没有合适的内部与外部环境也很难造就高水平的研发管理人 员,从软件开发到开发管理都不能适应市场的要求。 3 ) 客户基础较差 软件行业与传统的制造行业相比,在我国还是一个新兴的行业,客户对软件开发 过程不了解,在需求过程往往不能充分全面地考虑,给出明确的要求,事后又提出更 改要求,这样就必然干扰开发,而且客户要求软件完成的时间又特别急迫,不给开发 3 华中科技大学硕士学位论文 人员留出足够的开发时间,加以软件企业本身的管理就不规范,开发组织往往压缩开 发进度,甚至牺牲质量以保证进度,致使软件项目很难在预定的时间范围、预算范围 内完成,软件质量也不尽如人意。 因此,有必要对软件过程进行研究,从而根据不同需求制定合适的软件开发过程 来指导软件开发。我国有众多的中小型软件企业,如何提高中小企业的软件开发过程 管理能力有着重要的理论意义和现实意义【1 6 】。 i - 2 国内外研究概况 为了提高软件开发过程的标准化与规范化,软件行业也制定了一些国际标准或事 实上的准则,其中c m m ( c a p a b i l i t y m a t u r i t y m o d e l ) 最有影响力。尽管这些标准和规范 指出了一个优秀的软件开发过程应该满足什么样的要求,但是软件企业并不能直接根 据这些规范去组织整个过程,因为这些规范并没有给出细粒度的、可操作的软件开发 过程指南。而且企业的情况是动态的、复杂的,这些都为软件过程的定义和建模提出 了挑战【17 1 。 1 2 1 传统软件过程 传统的软件开发过程通常采用经典的瀑布模型增l ,即在需求、分析阶段完成后再 转向设计、编码和后续阶段。该模型适合于结构化程序设计和开发,但并不适合于以 面向对象技术为基础的现代软件开发。原因如下: 1 开发前期处理问题的复杂性过载。由于其线性进行的特点,使得开发人员在 需求、分析阶段要面对和处理复杂的问题,无法对问题进行全面和深入地了解,极易 导致错误的产生。 2 缺乏及时的反馈和更新机制。随着开发过程的深入,需求会发生变化,会有 更好的设计,但都不能被利用于开发中,而早期阶段的错误也不能被及时发现,等到 测试阶段暴露问题,耗费大量的人力和时间。 3 生命周期规划不合理。开发人员将过多的精力和时间花在编码和测试,与现 代开发中重视分析和设计的思想是背道而驰的。 华中科技大学硕士学位论文 4 不能有效支持软件复用。软件产品的健壮性、可扩展性,不易维护。 1 2 2 软件能力成熟度模型c m m 软件能力成熟度模型s w - c m m 【5 1 ( c a p a b i l i t ym a t u r i t ym o d e lf o rs o f t w a r e ,c m m ) 是由美国卡内基梅隆大学软件工程研究所( c m us e i ) 建立的。c m m 定义为:对软件 组织在定义、实现、度量、控制和改进其软件过程的进程中各个发展阶段的描述。利 用c m m 可以方便地确定软件组织的现有过程能力,并查找出软件质量和过程改进方 面的关键问题,为选择过程改进战略提供指南。c m m 为软件组织的过程能力提供 了一个阶梯式的改进框架。阶梯共有5 级:初始级、可重复级、已定义级、定量管理 级、优化级,除第一级外,每一级包含了实现这一级目标的若干关键过程域。它指明 为了改进其软件过程或达到某个成熟度等级,组织应关注和必须着手解决的问题。 c m m 基于过去所有软件工程过程改进的成果,吸取了以往软件工程的经验教训,提 供了一个基于过程改进的框架;它指明了软件组织在软件开发方面需要管理哪些主要 工作、这些工作间的关系以及以怎样的先后次序逐步做好这些工作而使软件组织走向 成熟。c m m 关注的只是做什么的问题,而没有指出具体的做法【1 9 】,c m m 主要是针 对大型软件机构和大型软件项目而制定的1 2 0 l ,小组织在实施中发现是有问题的 2 l 】, 它没有指出组织如何进行改进以及达到成熟度等级的具体方法,没有直接说明个体软 件开发人员所需要的具体知识和技甜翻。 1 2 3 个体软件过程p s p 个体软件过程有一个与c m m 相似的过程改进框架,是由美国卡内基梅隆大学软 件工程研究所的1w a t t ss h u m p h r e y 领导开发的。它是一种可用于控制、管理和改 迸个人工作方式的自我改进过程,一个包括软件开发表格、指南和规程的结构化框 架。p s p 为基于个体和小型群组软件过程的优化提供了具体和有效的途径,解决了 c m m 和个体软件人员之间的问题【“1 。p s p 的总体策略就是通过提供个详细的个体 过程框架,保证所有组成部分都是高质量的。软件开发人员使用个体过程框架可以: ( 1 ) 为每个项目模块制订计划;( z ) 记录开发时间;( 3 ) 跟踪错误;( 4 ) 在工程摘要报表 中保留数据;( 5 ) 使用已有的数据计划以后的项目模块:( 6 ) 分析已有的数据以改进开 华中科技大学硕士学位论文 发过程;( 7 ) 提高开发水平。使用p s p 方法,开发人员可以减少软件缺陷,提高计划 能力和生产效率。但p s p 强调的是开发人员的个体过程,并没有说明如何把他们的个 体过程结合进整个组织过程。如果单纯把p s p 扩展到组织级,将会涉及很多问题。比 如,怎样将p s p 的策划方法应用于组织级 2 扪。这里牵涉至p s p 在策划中估计规模和 开销的特定过程。测量方法必须重新定义或是加以扩展以适用于组织情况。另外,由 于p s p 仅仅覆盖了软件开发的设计阶段,对软件项目的其它阶段缺乏指导性。 1 2 4 群组软件过程t s p 群组软件过程t s p 将c m m 的框架运用于组织级来描述组织的运作过程,它包括 了c m m 中几乎所有的关键过程域。t s p 扩展并汲取了c m m 和p s p 的方法来指导开 发人员开发并维护他们的工作,指出了怎样组织一个自我指导的群组。同时,t s p 指 导项目组成员如何有效地规划和管理所面临的项目开发任务,并告诉管理人员如何指 导软件开发组始终以最佳状态来完成工作 2 6 】。t s p 实旖集体管理与个体管理相结合的 原则,最终目的在于指导所有人员在最少的时间内,以预定的费用生产出高质量的软 件产品。因此,使用t s p 可以协助加速软件过程改进。t s p 通过在群组建设步骤中 提供一个详细的工作过程来指导开发人员和管理入员。这个过程指出建设一个有效群 组工作环境所需的步骤。如果没有明确的指导,开发人员必须自己进行群组建设和指 定集体工作。所采用的方法是对群组软件开发过程的定义、度量和改进。实施t s p 需要满足3 个先决条件:( 1 ) 需要高层主管和各级经理的支持,以获得必要的资源;( 2 ) 项目组开发人员需经过p s p 培训并具有按t s p 工作的愿望和热情:( 3 ) 整个组织在总 体上应处于c m m 2 级以上。同时,按照t s p 进行开发,所涉及到的数据量非常大唧, 一般的企业难以承受。 1 2 5 统一软件开发过程r u p r u p 【6 】提供了在软件开发中涉及到的几乎所有方面的内容。不同的组织可以根据 本组织的情况裁剪r u p 以适合特定的应用。整个r u p 是一个两维的结构。软件的生 命周期,描述了r u p 的动态结构。随着时间分为4 个依次进行的阶段:阶段、精化阶 段、构建阶段、产品化阶段。每个阶段的结束都有一个主要里程碑。每个阶段结束时 6 华中科技大学硕士学位论文 要对里程碑目标进行评估,以确定是否实现了此阶段的目标以及是否可以进入下一个 阶段。r u p 的静态结构,共包含9 个核心工作流。其中分为6 个核心工程工作流:业 务建模工作流、需求工作流、分析和设计工作流、实施工作流、测试工作流、部署工 作流;3 个核心支持工作流:项目管理工作流、配置和变更控制工作流、环境工作流。 这9 个核心工作流程并不是顺序执行的,而是在整个生命周期中的每个阶段都要并行 执行的。 r u p 定义了全面的过程框架,将里程碑式的阶段管理放入到开发过程中的明细规 定中,但r u p 对实际开发中的里程碑的定义不够灵活,使得r u p 的风险管理也不够 灵活。r u p 为每个里程碑推荐了许多文档和模型,这可能会使得开发团队把注意力从 软件转移到文档上。r u p 采用自顶向下的方式开发软件,这样需要复杂的配置管理。 r u p 的用况使用不当,可能会致使陷入到太多计划的泥潭中,久久不能开始后继工作。 1 2 6 极限编程x p 极限编程是敏捷方法中颇具代表性的一种。1 9 9 6 年,k e n t 将x p 新概念用于项目的开 发中,取得了显著的效果。x p 提供了一个全局的、价值驱动的开发过程视图,体现了 4 个价值目标2 9 】:简单、交流、反馈和勇气。强调在整个开发的生命周期中,客户和开 发团队成员通过现场客户不断地进行交流。现场客户决定要构建什么以及以什么顺序 构建。开发团队通过不断地重新划分代码和生成最小的非代码工件来保持简单。以若 干发行的版本和不断的单元测试作为反馈系统。x p 非常注重测试,要求先写测试后 编码,因此,x p 的生命周期的4 个基本活动的次序是:聆听、测试、编码、设计。k e n t b e c k 在他的书中提到了1 2 种方法:计划策略、简单设计、测试、重新划分、成对编程、 不断地集成、现场客户、系统比喻、集体代码所有权、每星期工作4 0 小时、编码标 准、小发行版本。 x p 的革新在于把所有的实践放在一起,以便它们互相支持,让一些实践的优势 弥补其它实践的缺点。x p 适用于需求快速变动背景下的中小规模开发团队 3 0 l ,一般 不超过1 0 人。因而x p 不适合大型团队和人员异地分布的物理环境。在需要很长的 编译或测试周期的系统中和不太容易测试的应用中,x p 也不合适。因为x p 是先测 试后编码,要求迅速反馈并重构代码。x p 适于开发中小型系统,可以使用x p 来开 7 华中科技大学硕士学位论文 发大型系统中的子系统。 综上所述,c m m 将注意力集中在软件组织( 或单位) 的软件过程的改进,致力 于软件开发组织或软件开发项目的软件过程能力和软件成熟度的提高口”,但实施 c m m 费用昂贵,过程复杂,需要消耗大量的人力、物力、财力口2 1 ,中小型软件企业 无论从人力还是资金都难以承受;p s p ( 个人软件过程) 是一种用于控制、管理和改进 个人软件工作方式的自我改善过程,但p s p 强调的是开发人员的个体过程,并没有说 明如何把他们的个体过程结合迸整个组织过程。t s p ( 小组软件过程) 用于小组( 团体) 的组织与协调,指导项目组成员规划和管理项目,它对组织的人员及管理水平要求很 高口”,r u p 定义了全面的过程框架,将里程碑式的阶段管理放入到开发过程中的明细 规定中,但r u p 对实际开发中的里程碑的定义不够灵活,使得r u p 的风险管理也不 够灵活。,提供了一个全局的、价值驱动的开发过程视图,x p 适用于需求不确定、 变化快,而人数不超过1 0 个且在同地点工作的中小型团队。 因此,对于我国的中小企业而言,没有一个能够真正直接付诸于开发实践的软件 过程。鉴于此,我们提出了一种基于工作流的软件开发过程,将工作流技术与软件过 程紧密结合,用l o t u sn o t e s 作开发平台,实现了软件开发的过程化管理。 1 3 主要研究内容 本文主要对软件开发过程管理进彳于研究。在全面分析当蔚软件过程的特点及原理 的前提下,进行软件过程的实用性分析,指出他们存在的不足和缺陷。如何解决其不 足以适应我国中小企业特点是本文的中心内容。 本文提出了“基于n o t e s 工作流的安全软件开发过程管理”。结合n o t s e 的数据库 及应用开发工具构建了软件开发过程框架,将软件开发过程划分成六个阶段,每个阶 段有许多子过程构成,管理这些过程主要由任务管理、开发管理、测试管理、变更管 理、版本管理、文档管理等流程来实现。结合n o t e s 的工作流技术,详细设计并实现 了本软件过程的内部结构及其工作流程。整个软件过程紧密围绕软件开发的核心工作 流程( 需求分析、系统设计、详细设计、功能实现、功能测试) 展开,利用迭代贯穿始 终,将软件开发过程组织成为一个有序、自动流转的过程集合。并将其应用于安全产品 华中科技大学硕士学位论文 的开发上,实现了多个产品、多版本的并行开发,产品质量和开发效率得到明显提高a 最后讨论今后还需要进一步研究的问题。 具体地说,本课题主要进行以下几个方面的工作: ( 1 ) 分析当前软件过程的特点、原理以及不足之处; ( 2 ) 提出基于n o t e s 工作流的软件开发过程管理及总体结构; ( 3 ) 以n o t e s 为开发平台,详细设计实现软件过程管理的流程及内部结构; ( 4 ) 用基于n o t e s i 作流的软件开发过程管理成功应用于防火墙、v p n 等多版本 产品的管理实践: ( 5 ) 指出该软件过程管理需要进一步研究的方向。 1 4 论文的组织结构 本文共分为五章,安排如下: 第一章,概述。从多个方面介绍了论文的研究背景和目的,介绍了几种常用软件 过程的原理和基本功能,从实际应用角度分析了不同软件过程在软件开发管理的特点 和存在的问题。指出了本文的研究目的和主要工作,以及论文的组织和结构。 第二章,基于n o t e s 工作流的软件开发过程设计。本章结合中小企业的实际特点, 将软件开发过程划分成任务管理、开发管理、测试管理、变更管理、版本管理、文档 管理,并将这些管理过程按照工作流原理流程化。定义了一系列规范和规则,使开发 过程中的文档、信息、任务在参与者之间按规定转换。 第三章,基于n o t e s 平台,开发出控制流程的n o t e s 应用程序,实现了自动流转的 软件开发过程。 第四章,用基于n o t e s l 作流的软件开发过程管理成功应用于防火墙、v p n 等多版 本产品的管理实践。 第五章,主要结论和进一步的研究工作。对本文的研究工作进行了总结,并介绍 和分析了该项研究目前还存在的问题,并提出了下一步的研究目标。 9 华中科技大学硕士学位论文 2 基于n o t e s 工作流的软件过程管理的设计 2 i 软件过程的工作流特性 依据c m m 能力成熟度模型的观点,软件过程是指软件开发人员和维护软件及相 关产品的一套行为、方法、实践及变换过程;从工作流的角度理解,软件过程是软件 生存周期中为达到某个目标而必须实施的所有软件工程的集合。在w f m c 提出的工 作流定义元模型中,工作流包含了六个对象:过程、活动、转换、参与者、工作流相 关数据,被调用程序。工作流所关注的问题是处理过程的自动化,它根据一系列定 义的规则,把文档、信息和任务在参与者之间传递,以达到某种目的。在软件项目开 发过程中,从问题定义、需求分析、概要设计、程序编码到测试,需要在多个软件开 发者之间按照某种预定义的规则传递文档、信息或任务,最终开发出用户需要的产品, 这恰恰是一种工作流 3 “。这种工作流,要求对人员的合理安排,资源的高效利用和信 息的快速流动,即人流、物流和信息流有机地结合起来,提高管理效益。 同许多中小型软件企业一样,我们在实际开发过程中也制定了一系列规章制度和 流程,但是,在一个强调过程的软件开发环境中,过程的执行如果只依靠规章制度由 人工执行,不仅效率低下,而且常常因为人的主观性带来的随意变更,给过程引入混 乱因素,从而减弱流程的有效性 ”】。因此,虽然制定了一系列软件开发过程管理规范 和管理流程,但要避免人为的随意更改和违反规则,使流程得到规范严格地执行,还 需要一个高效的软件开发环境的支持,使流程实现自动流转。经过综合考评,我们选 择了具有工作流特点的l o t u sd o m i n o n o t e s 群件系统作为开发平台。 2 2n o t e s 的工作流特性 l o t u sn o t e s 是世界上最优秀的通信软件和群件产品之一,其最具特色的思想是工 作流口6 1 。利用其工作流特性,结合群件的概念和网络通讯的功能,可以很好地满足软 件开发的流程管理,达到软件过程的规范管理。特别地,在软件开发的过程中,有许 i o 华中科技大学硕士学位论文 多信息需要及时相互传送,如各种文档、评审意见和决议等。而利用n o t e s 的邮件机 制,很好地实现了高效、快捷的信息交换。 首先,d o m i n o n o t e s 系统提供功能完备,操作简单的手段,帮助用户进行从电子 邮件到工作模式的应用程序的设定,这包括:表单、字段、视图、代理和文件夹,利 用它们,可以很容易地定义流程,根据工作流程的某种状态或数据字段的某种值,自 动发送和跟踪文档【”1 。 表单:n o t e s 应用的基础设计成分是表单,它是信息录入和显示的窗口。n o t e s 给出了一套预先格式化的表单。 字段:表单是由字段组成的。设计者可以规定字段的类型:如文本、数字、时间 和格式文本等。用户可以创建新的字段并且通过填写一系列对话框来编辑字段的属 性。 视图:字段对管理n o t e s 数据库非常重要,因为用户通过对特定字段的排序来浏 览文档。用户设计视图使之按某种方式显示文档,可以按时间、作者、客户名或专题 名等。 文件夹:设计者和用户可以创建共享或个人使用的文件夹,用其对数据库中的文 档进行组织和分层次管理。 其次,系统还提供一整套功能强大的开发工具,即l o t u s s c r i p t 语言、n o t e s 公式 语言和导航器及其它开发手段。 综上所述,正是由于l o m sd o m i n o n o t e s 卓越的支持工作流,协同工作的特性, 非常适合于作为基于工作流的软件开发过程的开发平台。 我们利用n o t e s 平台,有机地将管理流程揉入开发任务的全过程,将软件工程中 的人员、任务、文档、流程的监控等有机地结合起来,见图3 1 ,实现软件开发的过 程管理。n o t e s 平台的易维护、管理成本低也符合中小企业节约成本的特点。 2 3 以n o t e s 为平台的软件过程管理 根据中小型软件企业的开发特点,可以将所有的项目开发概括为六个阶段:计划、 变更、开发、清理、发布测试版本、发布正式版本。每个阶段对应的任务( 活动) 见图 1 l 华中科技大学硕士学位论文 2 1 ,结合软件开发的阶段、任务和流程,在n o t e s 平台构建了一系列应用数据库。图 2 1 概要展示了以n o t e s 为平台的软件开发过程,可以看出,它不受特定的项目或产 品局限,重在过程的管理。 ; ; ; i ; 口i 董:j 二:一一 。 ,| | ;圈蟹匿图| 圈匦叵二习 ! l 坌篮鳘譬譬墨誊- _ - _ = _ 匕王= = _ = = := _ 一 lm 糊仙糊i ;i 亡二二= 二二二= 二二二= 二二二= ! 要 = = 二二= 二二二二= = = 二二二 图2 1 基于n o t e s 的软件开发过程 2 3 1 基于n o t e s 的软件过程管理的运行原理和机制 基于l o t u sn o t e s 工作流的软件过程由三大系统组成:n o t e s 应用系统,电子邮件 系统,n o t e s 服务器系统。 n o t e s 应用系统 它包括公司产品开发过程各阶段、各流程所有的应用程序及应用数据库。是将产 品开发的主要流程编写成l o t u s 应用程序,每个应用程序至少包含一个数据库( 。n s f 文件) ,而每个n o t e s 数据库又由以下几个基本元素组成:文档、表单及域、视图、 页面及文件夹等,另外,还涉及导航器、代理、操作、公式、l o t u s s c r i p t 语言等能够 使应用程序更简洁、高效和易用的工具。产品开发的各阶段对应使用相应的数据库, 如某产品新增功能,制定版本计划后,应首先打开该产品信息库,填写新增功能申请 华中科技大学硕士学位论文 表单,通过后,进入开发流程库,进入新增功能流程,通过后,进入测试阶段,打开 测试记录库,填写测试案例表单。开发流程开发同期产生的所有文档、图片、对 象及其他类型的信息分门别类存放在各自的数据库内。数据库存储方式:文档直接写 入、附件、链接。每个产品都有各自的产品应用数据库,整个项目的开发历史、变迁、 开发过程和文档资料全部详细、条理地记载在各项目组数据库中,供大家查阅、参考。 例如: v p n 产品应用数据库包括:生产管理库、产品信息库、开发流程库、v p n 小组 讨论区、网关v p n 测试文档库、v r c 测试文档库、配套软件测试文档库。每个库又 含有很多表单。 s c m 产品应用数据库包括:v c m 模块测试、v c m 讨论区、产品信息库、开发 流程、测试文档库、生产管理。 公司公共数据库包括:个人考核、工程管理讨论区、项目组月考核、公司综合讨 论区、技术部讨论区、休闲娱乐讨论区、通知及表决管理、组织文件、资料管理。 l o t u sd o m i n o n o t e s 是以文档为中心、以邮件为联系纽带的工作流产品,它管理 电子文档的生命周期,把文档库作为一种组织内共享的资源让组织成员访问,把文档 甚至文档的一部分传递给个人,让他作为文档中指定的角色对文档信息进行阅读或更 新操作。它集成了企业级别的即时通讯工具e m a i lb b s ,实现了开发人员之间即时的 沟通、公共消息、技术讨论,好的开发经验、有价值的知识点得到融合、碰撞,为大 家提供了一个高效、和谐、开放的交流平台,使员工达到知识共享,共同成长进步。 电子邮件系统 n o t e s 邮件系统可以使n o t e s 用户之间互发电子邮件,同为n o t e s 用户的员工、开 发组长、项目经理、技术经理、技术总监与其他部门之间可以方便快捷地发送邮件, 邮件的触发机制有3 种:表单中设计的按钮,代理,小程序。在开发过程中,一按表 单里面设置的按钮,便能触发邮件发送到设定的相关人员邮箱。自动将工作流流转到 事先规定的人员和阶段。 基于工作流的软件过程的流程转换及同步机制采用邮件通知方式驱动,对于每一 次迭代,邮件驱动完成一整套工作流,从需求分析、设计和实现,直到测试,并把这 1 3 华中科技大学硕士学位论文 些不同的工作流结合起来。在开发的整个过程,每完成一个任务,按一个按钮,即触 发发送邮件到流程规定的接收人。全部使用邮件通知,从项目经理发邮件分配任务, 开发人员打开邮件即接受任务,任务完成按“提交”,任务完成情况即通过邮件到达项 目经理,项目经理检查后,按:“通过”即进入下一流程,同时进入下一流程的邮件同 步发送至所有参与人。还可以通过邮件邀请大家讨论交流,提出意见和建议,全部是 邮件按规定的流程发送消息,同步通知到所有参与人员。 d o m i n o n o t e s 服务器系统 d o m i n o n o t e s 服务器系统是集成的通信、协作及w e b 应用服务器软件平台。为 以上所有系统和数据库的运行提供安全、可靠的平台支撑。它充当工作流执行服务器, 为工作流的执行提供运行环境【3 9 1 。 2 3 2 基于n o t e s 的软件过程管理说明 任何产品开发都可以基于此平台进行,只需按以往产品开发数据库的模板,新建 一套管理库即可。 以产品维护阶段开发过程为例说明一个完整的产品开发全过程: 1 名词解释 工作过程工作中一系列连续的活动。 工作子过程作为其它工作过程一部分的过程。 工作流程通过n o t e s 进行阶段控制的工作过程。 工作记录以结构化的方式保存在n o t e s 数据库上的信息。 2 总体工作过程 产品开发的总体工作过程是循环进行的。每一个循环的开始标志是制定产品的版 本计划,结束的标志是推出了一个正式的产品版本; 如果把这样一个循环作为一个工作过程的话,它又由以下子过程组成: 版本计划子过程 版本计划变更子过程 功能开发子过程 版本清理子过程 1 4 华中科技大学硕士学位论文 发布测试版本子过程 发布正式版本子过程 整个工作过程,由项目经理进行推动。项目经理决定上一过程是否完成,同 时是否进入下一过程,尤其在发布测试版本和正式版本过程,必须由项目经理确 认和批准。 3 子过程说明 版本计划子过程 项目组根据前期的市场调查、委托方( 最终客户) 的要求及以往类似产品的 开发经验、详细的需求分析之后,由技术经理制定一个初始的版本计划,并提 交各方协商和确认。经征求意见和项目经理确认,形成正式版本汁划,并记 录在相关工作记录中。 版本计划变更子过程 版
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昭通厨房燃料管理制度
- 景观绿化项目管理制度
- 公司纪念品采购管理制度
- 孵化器公司财务管理制度
- 学校轮滑鞋使用管理制度
- 大学生政治教育管理制度
- 培训机构教师群管理制度
- 大荔县保安公司管理制度
- 微信工作群规定管理制度
- 公司废胶仓堆放管理制度
- 2025年佛山市南海区图书馆招聘题库带答案分析
- 江苏省泰州市实验小学2025年五下数学期末监测试题含答案
- 中华民族共同体概论知到课后答案智慧树章节测试答案2025年春丽水学院
- 2024年浙江省中考社会试卷真题(含标准答案及评分标准)
- 广州市登革热疫情应急演练方案
- GB_T 30789.8-2015 色漆和清漆 涂层老化的评价 缺陷的数量和大小以及外观均匀变化程度的标识 第8部分:划线或其他人造缺陷周边剥离和腐蚀等级的评定
- 建设工程项目管理论文范文
- 同步发电机调速系统仿真设计
- 2021广东东莞中考地理真题及答案
- GB∕T 39953-2021 五轴联动加工中心 RTCP精度检验
- 冬病夏治三伏贴
评论
0/150
提交评论