(计算机软件与理论专业论文)基于工作流技术的软件开发过程管理系统的研究.pdf_第1页
(计算机软件与理论专业论文)基于工作流技术的软件开发过程管理系统的研究.pdf_第2页
(计算机软件与理论专业论文)基于工作流技术的软件开发过程管理系统的研究.pdf_第3页
(计算机软件与理论专业论文)基于工作流技术的软件开发过程管理系统的研究.pdf_第4页
(计算机软件与理论专业论文)基于工作流技术的软件开发过程管理系统的研究.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 摘要 软件开发过程是软件过程的核心部分,是软件产品开发过程的中重要环节。 本文介绍了软件过程的相关概念,技术以及软件过程研究的主要内容。讨论了基 于软件能力成熟度模型c m m ( c a p a b i l i t ym a t u r i t ym o d e l ) 的软件过程成熟度评估 体系,并且给出了基于c m m 二级评估标准而设计的软件过程管理系统的体系结 构,以及这个系统自主丌发的过程基于工作流技术的软件开发过程管理系统 的研究。该管理系统结合了目前成熟的工作流引擎( j b p m 工作流引擎) 为软件开 发过程的自动执行提供了可靠的保证。 本文实现了工作流引擎和软件开发过程管理系统的相互结合,工作流引擎来 控制软件开发过程中的审批过程,这样可以使得软件开发过程可控性更强。 本文分为七大部分,第一部分介绍了课题的相关背景和软件过程的相关知 识;第二部分讨论了c m m 的相关概念和理论;第三部分介绍了j b p m 工作流引 擎的相关知识和理论;第四部分是根据c m m 2 级标准设计出的软件开发过程管 理系统的详细设计:第五部分是软件开发过程管理系统是审批工作流引擎的详细 设计;第六部分是以科技企业管理平台这个项目的开发过程管理为示例来对软件 开发过程管理系统的运行全过程进行阐述;第七部分是对全文工作的总结和展 望。 关键字:软件开发过程、j b p m 、c m m 、工作流引擎、软件过程 英文摘要 a bs t r a c t t h es o f t w a r ed e v e l o p m e n tp r o c e s si st h ec o r ep a r to ft h es o f t w a r ep r o c e s sa n d t h ek e yo fs o f t w a r ep r o d u c td e v e l o p m e n t t h i si s s u ei n t r o d u c e st h ec o n c e p t i o no ft h e s o f t w a r ep r o c e s sa n dt e c h n o l o g y ,a n dt h em a i n l yc o m e mo ft h es o f t w a r ep r o c e s s r e s e a r c h d i s c u s s i n gt h ee v a l u a t i n gs y s t e mo ft h es o f t w a r ep r o c e s sm a t u r i t yb a s eo n t h ec a p a b i l i t ym a t u r i t ym o d e i ( c m m ) ,a n dd e s i g n i n gt h es t r u c t u r eo ft h es o f t w a r e d e v e l o p m e n tp r o c e s ss y s t e mb a s eo nt h ec m m 2e v a l u a t i n gs t a n d a r da n dt h ep r o c e s s o fd e v e l o p i n gt h es y s t e mb ym y s e l f - - r e s e a r c ho nt h es o f t w a r ed e v e l o p m e n tp r o c e s s m a n a g e m e n ts y s t e m sb a s e do nw o r k f l o wt e c h n o l o g y t h i ss y s t e mp r o v i d e sr e l i a b l e e n s u r ef o rt h ee x e c u t i n ga u t o m a t i co ft h es o f t w a r ed e v e l o p m e n tp r o c e s s ,w h i c h c o m b i n e st h em a t u r ew o r k f l o we n g i n e ( j b p mw o r k f l o we n g i n e ) n o w t h i si s s u ea c h i e v e st h a tw o r k f l o we n g i n ea n ds o f t w a r ed e v e l o p m e n tp r o c e s s c o m b i n e se a c ho t h e r , t h ew o r k f l o we n g i n ec o n t r o l st h ea p p r o v a lp r o c e s so ft h e s o f t w a r ed e v e l o p m e n tp r o c e s s ,w h i c hm a k et h ec o n t r o l l a b i l i t yo ft h es o f t w a r e d e v e l o p m e n tp r o c e s sm o r es t r o n g e r t h i si s s u ei s c o m p o s e do fs e v e ns e g m e n t s t h ef i r s ts e g m e n ti n t r o d u c e st h e b a c k g r o u n do ft h es o f t w a r ed e v e l o p m e n tp r o c e s sa n dt h ek n o w l e d g ea b o u ts o f t w a r e p r o c e s s t h es e c o n ds e g m e n td i s c u s s e st h et h e o r ya n dc o n c e p t i o no fc m m t h et h i r d s e g m e n ti n t r o d u c e st h et h e o r ya n dk n o w l e d g eo ft h ew o r k f l o we n g i n e ( j b p m ) t h e f o u r t h s e g m e n ts h o w st h a t t h es o f t w a r ed e v e l o p m e n tp r o c e s ss y s t e md e s i g n s p a r t i c u l a r l yb a s eo nt h ec m m 2e v a l u a t i n gs t a n d a r d t h ef i f t hs e g m e n ts h o wt h e d e s i g n i n gp r o c e s so ft h ea p p r o v a lw o r k f l o we n g i n eo ft h es o f t w a r ed e v e l o p m e n t p r o c e s ss y s t e m t h es i x t hs e g m e n ts h o w su s i n gt e c h n o l o g i c a le n t e r p r i s em a n a g e m e n t p l a t f o r ma sae x a m p l ei no r d e r t oe x p a t i a t et h ew h o l er u n n i n gp r o c e s so ft h es o f t w a r e d e v e l o p m e n tp r o c e s ss y s t e m t h es e v e n t hs e g m e n ts u m m a r i z e st h ew h o l ei s s u ea n d g i v e ss o m ee x p e c t a t i o n k e yw o r d s :s o f t w a r ed e v e l o p m e n tp r o c e s s ;j b p m ;c m m ;w o r k f l o we n g i n e ; s o f t w a r ep r o c e s s 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成博硕士学位论文! 基王王佳逋撞盔的邀仕珏筮过程篮理丕筮的盟究:。 除论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均 已在文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体 已经公丌发表或未公开发表的成果。本声明的法律责任由本人承担。 学位论文作者签名:何访禽 学位论文版权使用授权书 本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学 位论文的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。同意将本学位论文收录到中国优秀博硕士 学位论文全文数据库( 中国学术期刊( 光盘版) 电子杂志社) 、中国学位论 文全文数据库( 中国科学技术信息研究所) 等数据库中,并以电子出版物形式 出版发行和提供信息服务。保密的论文在解密后遵守此规定。 本学位论文属于:保密口在年解密后适用本授权书。 不保密口( 请在以上方框内打“ ) 论文作者签名:馋砀桶 导师签名: 日期: 吖年 基丁i :作流技术的软件开发过程管理系统的研究 1 1 课题背景 第一章绪论 1 1 1 课题意义 在当今互联网蓬勃发展的时代,软件企业面临着巨大的挑战。顾客需求瞬息 万变,全球竞争环境和技术创新不断加速等,导致产品生命周期不断缩短,商业 模式不稳定,软件过程管理必须适应这种变化。 随着软件项目的复杂度和工程量的提高,需要的软件开发人员成倍的增长, 由于软件是逻辑产品,盲目的增加软件开发人员并不能成比例的提高软件开发能 力。相反随着人员的增多,带来了人员之间的组织、协调、通信、培训和管理方 面的问题。一些大型的项目的进度控制成了软件组织最头痛的问题,项目预算超 支,软件交货时间经常滞后,软件质量差,维护困难,软件在维护过程中很容易 引起新问题。软件的质量同其他的产品的质量不同,因为软件设计人员和用户对 软件的理解有很大的差距,并且软件功能很复杂,软件开发人员很难理解用户在 使用软件时所遇到的困难。所以软件开发的需求的确立需要反复地进行,有的根 本就是一直在变更,从而导致软件的开发进度延后,最后时间的压力导致开发时 候的测试工作做得不够好,或者只是进行简单的测试,从而不能确保软件质量。 首先,工作流1 4 5 】( w o r k f l o w ) 是一类能够完全或者部分自动执行的经营过程, 它根据一系列过程中的规则、文档、信息或任务在不同执行者之间进行传递并执 行。工作流管理系统【4 5 1 ( w o r k f l o wm a n a g e m e n ts y s t e m s ,w f m s ) 是一个软件系统, 它根据计算机中预先定义好的工作流逻辑推进工作流实例的执行。而j b p m l 4 刨 ( j a v ab u s i n e s sp r o c e s sm a n a g e m e n t ) 正是其中一种优秀的,灵活的,可扩展的, 基于j 2 e e 的轻量级工作流管理系统。 其次,工作流是业务流程的计算模型,是“业务流程的部分或整体在计算机应 用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则 传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促 使此目标的实现”企业实施工作流管理所带来的好处是非常明显的,这包括提高企 业运营效率、改善企业资源利用、增强企业运作的灵活性和适应性、集中精力处 第一章绪论 理核心业务、跟踪业务处理过程、量化考核业务处理的效率、减少浪费、增加利 润、充分发挥现有计算机网络资源的作用。实施工作流将达到缩短企业运营周期、 改善企业内( 外) 部流程、优化并合理利用资源、减少人为差错和延误,提高劳动生 产率等目的。因此,以工作流为特定领域的核心的应用系统便成为开发企业级应 用系统的重点。 由此看来工作流在软件过程管理方面有着诸多的优点,通过工作流引擎控制 软件过程的流向,从而使得软件过程的可控制性更强。 1 1 2 国内外研究现状 国外软件产业的发展经历了三个不同的阶段。第一阶段是2 0 世纪7 0 年代中 期至9 0 年代中期的软件结构化生产阶段,该阶段是以结构化分析与设计、结构化 程序设计以及结构化测试为特征。从2 0 世纪8 0 年代中期开始,软件生产丌始进 入以过程为中心的第二阶段,以个体软件过程p s p ( p e r s o n a ls o f t w a r ep r o c e s s ) 、过 程成熟度模型c m m 和群组软件过程t s p ( t e a ms o f t w a r ep r o c e s s ) 为标志。从1 9 9 5 年丌始,国际上已经逐步进入以软件过程、面向对象和构件重用等三项技术为基 础的软件工业化生产的第三阶段。而我国目前尚处在软件结构化生产阶段,刚刚 开始向以过程为中心的第二阶段过渡。 国外对软件过程及其管理的研究成果中具有代表意义的是微软公司的m s f l l 】 和i b mr a t i o n a l 的r u p t 6 1 j ( r a t i o n a lu n i f i e dp r o c e s s ,统一软件过程) 。 r u p 是一个完整的软件开发过程框架,包含了很多开发指南、制品、开发过 程所涉及到的角色说明。它包括3 0 0 0 多个h t m l 文档、近一百万字的流程指南, 其中文版r u p c 已在中国市场j 下式发布。r u p 对c m m 实施的主要帮助体现在以 下几个方面: ( 1 ) 凝结了全球软件行业的最佳开发经验,以指南、模板和示例的形式为开发 团队提供流程指导。 ( 2 ) 建立统一的软件开发标准,改善团队成员间的沟通。 ( 3 ) 降低软件开发风险,增加软件开发的可预测性。 ( 4 ) 赋予项目经理对进度和交付期限的控制能力。 由于r u p 非常庞大,所以对具体的开发组织和项目,用r u p 时还要做裁剪, 基于1 :作流技术的软件开发过程管理系统的研究 也就是要对r u p 进行配置。r u p 就像一个元过程,通过对r u p 进行裁剪可以得 到很多不同的开发过程,这些软件开发过程可以看作r u p 的具体实例。 微软解决方案框架( m i c r o s o f ts o l u t i o nf r a m e ,m s f ) 是基于一套制定好的原 理、模型、准则、概念、指南而形成的一种成熟的、系统的软件项目规划、构建 和部署的软件过程管理指导体系。m s f 之所以被称为框架,是由灵活性和可伸缩 性决定的,只提供指导,而不会强迫实施很多限制行的细节,从而使其适应不同 规模和复杂性的项目过程。 m s f 过程模型把来自传统的瀑布模型和螺旋模型的概念结合起来,即把瀑布 模型基于罩程碑规划的优势与螺旋模型不断增加的、迭代的项目交付内容的长处 融合在一起,将软件开发的周期分为5 个阶段一一预想、计划、开发、稳定和部 署,并形成不断螺旋式上升的规则、开发和部署的软件过程。 。 另外,国外在工作流领域做出了大量的研究工作。比较成熟的工作流引擎产 品有:j b p m ,o p e n e b x m l ,w e r k f l o w ,o f b i z ,x f l o w ,p o w e r f l o d e r ,o p e nb u s i n e s s e n g i n e ,z b u i l d e r ,o p e n w f e ,b r e e z e 等。 在国内对软件过程及其管理还处于初步阶段,近几年一些软件企业和组织开 发出了比较优秀的软件过程管理支持系统来帮助企业实施c m m ,其中应用较广的 有上海沙迪克软件有限公司的a l e s 6 2 1 和富士通南大软件开发技术有限公司的 s p i f l 6 3 1 。 a l e s h 软件项目开发管理系统是专为软件企业设计的一套项目管理软件,它 依据i s 0 9 0 0 0 和c m m 标准,构建规范的软件项目开发管理过程体系。它实现了 以项目为核心的项目计划、进度跟踪、需求管理、测试管理、缺陷管理、度量分 析及客户管理的全过程管理,从而有效提高进度管理、质量管理、成本管理的水 平。 s p i f 是一套软件过程集成框架系统,它是富士通南大软件开发技术有限公司 根据自身进行c m m 实施和评估的需求而开发。s p i f 实施以基于c m m 的标准化 和定量化为目标的改善过程,实现了供开发者、管理者、客户共同参与项目开发 的统一平台,极大地提高了工作效率。它提供开发过程定量的管理和控制、产物 品质定量的管理和控制、项目管理和支撑,以及过程资产库等功能。由于s p i f 的 第一章绪论 开发及导入,该公司先后于2 0 0 3 年1 2 月和2 0 0 4 年1 2 月通过了c m m 的3 级和4 级评估。 软件过程研究的根本目的是改进软件生产过程,提高软件的生产率和软件质 量。虽然软件过程作为一个新的研究领域已经得到广泛的关注,对于它的研究已 经有十多年的历史,但至今还没有形成公认的软件过程的工程体系,距离成熟阶 段还有很长的距离。目前国内外己经研究出的软件过程管理环境在过程建模和过 程控制上有各自的理解,虽然有的在理论上还比较严密,但实际的产品在实用性 方面还有不少考虑不足的情况。 1 2 软件过程管理系统简介 1 2 1 软件过程定义 软件过程指的是软件生存周期中的一系列相关过程,是将用户需求转化为可 执行系统的演化过程所进行的软件工程活动的全体,是用于生产软件产品的工 具、方法和实践的集合。 值得提出的是,软件过程中的“过程”是创建一个产品或完成某些任务的一 种系统化的方法和工作过程,其执行者不再仅仅是计算机,而经常是由具体承担 任务的软件开发人员使用给定的开发工具来执行,它甚至可以是一个无法在计算 机上运行的过程,完全由人工或人工借助计算机以外的工具来完成。 软件过程是关系复杂的软件活动的集合,各活动之间有着严格的密切的关 系,有的是异步并行的,有的互为条件,因此实际的软件过程中的软件活动存在 复杂的网状关系。如何j 下确有效地对软件活动进行管理成为软件过程管理的一个 很重要的方面。 软件过程是改进软件质量和组织性能的主要因素之一。m d o w s o n 曾指出:“软 件产品质量在很大程度上依赖于软件过程,尤其是大规模的软件开发更是如 此”。因此,不少软件开发企业力图通过改进开发过程来改善软件产品的质量,提 高软件生产率、缩短产品的开发时间,从而增加企业的竞争力和效益。 l - 2 2 软件过程中的主要成分 由于目前对过程领域的一些概念尚未统一,有的概念在不同的文献中有不同 基丁r 作流技术的软件开发过程管理系统的研究 的理解。本文对所用到的概念进行了明确说明和解释,通过这些概念我们可以理 解软件过程中的主要成分,并进而对软件过程进行抽象描述以完成过程的建模。 过程( p r o c e s s ) :为实现或达到一个目标而采取的一系列步骤。这些步骤的执行 可以是有序的、并发的、嵌套的、重复的、也可以是有条件地引发的。在软件工 程领域这些过程的目标可以是构造软件产品或对现有产品进行改进,在过程工程 领域,其目标可以是开发或改进软件过程模型。 过程步( p r o c e s ss t e p ) :过程中的原子行为,不再有外部可见的子结构。过程步是 过程中基本的抽象单元。 活动( a c t i v i t y ) :单个过程步或多个过程步的封装。这一概念使我们可以多个过 程步的行为从整体上看作一个单元。 角色( r o l e ) :对负责完成某个活动的人员的抽象表示,具有相应的责任与限。 活动产品( p r o d u c t ) :软件过程中的活动所产生的输出。 活动资源( r e s o u r c e ) :软件过程中的活动所需要的输入。 过程产品( p r o c e s sp r o d u c t ) :过程完成后的对外输出。 过程资源( p r o c e s sr e s o u r c e ) :完成过程所需的所有外部输入。 1 2 3 软件过程管理的必要性 在软件机构中,实施软件过程管理可以带来这样一些好处: ( 1 ) 有效的软件过程管理可以提高软件企业的产品丌发效率,提升软件产品的 质量。 ( 2 ) 可以有效地对软件开发项目进行管理,以便于按照进程和预算完成软件项 目计划,实现预期的经济效益和社会效益。 ( 3 ) 理解软件开发的基本原则,可以帮助软件机构做出明智的决定。 ( 4 ) 可以标准化开发人员的工作,提高软件的可重用性和组间的协作。 ( 5 ) 有效的软件过程可以改善软件机构对软件的维护。 ( 6 ) 软件机构所采用的这种机制本身是不断提高的,他们可以跟上潮流,不断 接收新的、最好的软件开发经验。 第一章绪论 1 2 4 软件过程管理的组成 根据i s o i e c l 5 5 0 4 软件过程评估标准中,软件过程被分为5 个过程,工程过 程、支持过程、管理过程、组织过程和客户供应商的过程,其基础是组织过 程,核心是工程过程,关键是管理过程。这5 个过程可以简单描述如下: 1 工程过程( e n g i n e e r i n gp r o c e s s ,e n g ) 。软件系统、产品的定义、设计、实 现以及维护的过程。 2 支持过程( s u p p o r tp r o c e s s ,s u p ) 。在整个软件生命周期中可能随时被任何 其他过程所采用的、起辅助作用的过程。 3 管理过程( m a n a g e m e n tp r o c e s s ,m a n ) 。在整个生命周期中为工程过程、支 持过程和客户供应商过程的实践活动提供指导、跟踪和监控的过程。 4 组织过程( o r g a n i z a t i o np r o c e s s ,o r g ) 。那些用于建立组织商业目标和定义 整个组织内部培训、开发活动和资源使用等规则的过程,并有助于组织在实施项 目时更好、更快地实现预定的开发任务和商业目标。 5 客户供应商过程( c u s t o m e r s u p p l i e rp r o c e s s ,c u s ) 。那些直接影响到客 户、对开发的支持、向客户交付软件以及软件正确操作与使用的子过程。 下图为其组成结构图: 图1 1i s o i e c l 5 5 0 4 软件过程评估标准的组成 f i g1 1t h ec o n s t i t u t eo fi s o i e cl5 5 0 4s o f t w a r ep r o c e s se v a l u a t i o ns t a n d a r d 基y - i :作流技术的软件开发过程管理系统的研究 1 2 5 软件工程过程 工程过程是软件过程的核心过程,是软件系统、产品的定义、设计、实现以 及维护的过程。虽然在i s 0 1 2 2 0 7 标准中,没有定义一个“工程过程”类别,但可以 从其“主要过程”中抽取出属于工程过程的3 个子过程,即开发过程、运行过程和维 护过程。 1 开发过程( r e s e a r c h & d e v e l o p m e n t ,r & d ) 。定义并开发软件产品的活动过 程,包括需求分析,软件设计和编程等。 2 软件运行过程( s o f t w a r eo p e r a t i o np r o c e s s ) 。在规定的环境中为其用户提供 运行计算机系统服务的活动过程,包括软件部署( s o f t w a r ed e p l o y m e n t ) 。 3 软件维护过程( s o f t w a r em a i n t e n a n c ep r o c e s s ) 。提供维护软件产品服务的 活动过程,也就是通过软件的修改、变更,使软件系统保持合适的运行状态,这 一过程包括软件产品的移植和退役。 本文主要对核心过程( 工程过程) 中的开发过程进行研究,并根据团队软件 过程( t s p ) 模型建立起一套软件开发过程过程管理系统。 注:t s p 为建立在个体软件过程( p s p ) 之上,致力于开发高质量的产品,建 立、管理和授权项目小组,改善开发团队过程、提高开发团队能力的指导性框架。 1 2 6 软件开发过程 开发过程包括需求分析、设计、编码、集成、测试、与软件产品有关的安装 和验收等活动。收集各方面的用户需求信息( 过程的输入) ,定义用户中产品的功 能和特性,然后通过设计将用户需求转换成软件表示,在逻辑、程序上去实现所 定义的产品功能和特性,设计的记过将作为编码的框架和依据。最后通过编程将 设计转换成计算机可读的形式,整个开发过程,可以进一步分为四个子过程。 ( 1 ) 软件系统需求分析( r e q u i r e m e n ta n a l y s i s ) 。定义软件系统的功能性需求和非 功能性需求,涉及系统的体系结构及其设计,确定如何把系统需求分配给系统中 不同的元素,确定那些需求应该实现、那些需求可以推迟实现。该过程的成功期 望带来如下结果。 一 开发出符合客户要求的系统需求,包括符合客户要求的界面。 一提供有效的解决反感以便确定软件系统中的主要元素。 第一章绪论 一将定义的需求分配给系统中的每个元素,了解软件需求受系统的制约、对 操作环境的影响。 制定合适的软件版本发布策略,以确定系统或软件需求实现的优先级。 一确定软件需求,并根据客户需求变化进行必要的更新。 ( 2 ) 软件设计( s o f t w a r ed e s i g n ) 。设计出满足需求并且依据需求对其进行测试或 验证的软件组成和接口,包括数据结构设计、应用接口设计、模块设计、算法设 计和界面设计等。该过程的成功实施期望带来如下结果。 一 设计和描述主要软件组成的体系结构,这些组件可以满足已定义的软件系 统需求。 一定义各个软件组件内部和外部的接口,包括数据接口、参数接口和应用接 口等。 _ 通过详细设计来描述软件中可构建和可测试的软件单元或组件。 一在软件需求与软件设计之间建立可跟踪、可控制的机制,保证它们之间的 一致性。 ( 3 ) 编程( c o d i n g ,p r o g r a m m i n g ) 。通过一系列编程活动,开发出可运行的软件单 元,并检验其是否与软件设计要求相一致。该过程的成功实施期望带来如下结果。 _ 根据需求制定出所有软件单元或组件的验证标准。 _ 实现设计中所定义的所有软件单元或组件。 _ 根据设计,完成对软件单元或组件的验证。 ( 4 ) 集成与测试软件系统。集成软件单元,将软件中的组件与其运行的系统环 境集成在一起,最终形成符合用户期望( 系统需求) 的完整系统。该过程的成功实施 期望带来如下结果。 _ 根据已设计的软件体系结构制定出软件单元的集成策略和集成计划。 根据每个单元已分配的需求确定严格的集成验收标准,包括功能性和非功 能性的需求验证、操作和维护方面的需求验证。 根据所定义的验收标准,测试并验证软件的集成接口和软件系统,记录测 试结果,完成系统集成及其验证。 - 对发生必要变更的系统,需要制定回归测试策略,以重新测试得到验证。 基丁。i :作流技术的软件开发过程管理系统的研究 1 3 本课题研究内容 由于软件过程的重要性和复杂性,目前软件过程技术特别是软件开发管理环 境的研究一直是软件工程研究中的一个重要内容。本文的研究工作是结合大连海 事大学软件研究所对于软件开发过程管理的实际需求,力求贴合实际,简洁实用。 在这样的背景下,以及根据软件能力成熟度模型( c m m 2 级) 的各个关键实践域的要 求并且结合目前比较流行的轻量级工作流引擎( j b p m ) ,我自主丌发的一个初步 的软件过程管理系统。 本文研究的内容有软件开发过程管理的相关技术和j b p m 工作流引擎与软件 丌发过程管理系统相结合的方法。包括如何结合能力成熟度模型c m m 的标准来 改进和完善软件开发过程,并在此基础之上,根据实际的软件开发情况实现了一 个初步的软件开发过程管理系统,并在此系统之上结合了j b p m 工作流引擎使得 软件的丌发过程的可控性更强。 论文的主要内容包括: 1 软件过程的相关技术和概念的研究,以及对能力成熟度模型c m m 相关概 念的理解和研究。并对当前比较流行的软件过程评估体系软件能力成熟度模型 c m m 2 级的评个标准和关键域做了详细的讨论,并在此基础之上设计出了一套软 件开发过程管理系统。 2 对当前比较流行的轻量级工作流引擎( j b p m ) 进行了详细的研究,包括对其 建模语言的分析和使用,引擎运行环境的搭建和如何使用其控制流程。 3 软件开发过程管理系统的实现:在上述讨论软件过程描述以及c m m 2 级 的评估标准的基础之上,给出了软件开发过程管理系统的总体设计结构;并详细 给出了此系统部分功能模块的具体设计和实现,最后把工作流引擎与本系统相结 合使得软件了下发过程的可控性更强。 第二章c m m 及其2 级评估关键点 第二章c m m 及其2 级评估关键点 2 1 c m m 概述 c m m 是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 的简称,中文叫“软件能力成 熟度模型”,是对组织软件过程能力的描述。它是美国卡内基梅隆大学软件工程 研究所在美国国防部资助下于2 0 世纪8 0 年代末建立的,用于评价软件机构的软 件过程能力成熟度的模型。此模型在建立和发展之初,主要目的在于为大型软件 项目的招投标活动提供一种全面而客观的评审依据,发展到后来被应用于软件机 构内部的过程改进活动中。 c m m 的发展历史如下图2 1 所示: 图2 1c m m 发展史图 f i g2 1t h ed e v e l o p m e n th i s t o r yo fc m m c m m 的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维 护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商 业目标。它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此c m m 被用作评价软件承包商能力并帮助组织改善软件过程质量,是目前国际上最流 行、最实用的一种软件生产过程标准,成为当今企业从事规模软件生产不可缺 少的一项内容。c m m 的目的是帮助软件企业对软件工程过程进行管理和改进, 增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。企业实 施c m m 模型并评估可为企业带来如下好处:指导软件组织提高软件开发管理能 力;降低软件承包商和采购者的风险;评估软件承包商的软件开发管理能力;帮 助软件企业识别开发和维护软件的有效过程和关键实践;帮助软件企业识别为达 基丁工作流技术的软件开发过程管理系统的研究 到c m m 更高成熟等级所必须的关键实践;增加软件企业的国际竞争能力。 c m m 的用途主要有两大类:过程改进( 过程评价) 与能力评估,而这两种 主要用途又归结为软件过程评价和软件能力评价两种评定方法。 ( 1 ) 软件过程评价( s p a ,s o f t w a r ep r o c e s sa s s e s s m e n t ) 目的是确定一个组织的当前软件过程的状态,找出组织所面临的急需解决的 与软件过程有关问题,进而有步骤地实施软件过程改进,使组织的软件过程能力 不断提高。因此,软件过程评估关注一个组织的软件过程有哪些需改进之处及其 轻重缓急。评估组采用c m m 来指导他们进行调查、分析和排优先次序。组织可 利用这些调查结果,参照c m m 中的关键实践所提供的指导,规划本组织软件过 程的改进策略。 ( 2 ) 软件能力评价( s c e ,s o f t w a r ec a p a b i l i t ye v a l u a t i o n ) 目的是识别合格的能完成软件工程项目的承包商,或者监控承包商现有软件 工作中软件过程的状态,进而提出承包商应改进之处。软件能力评价关注识别一 个特定项目在进度要求和预算限制内构造出高质量软件所面临的风险。在采购过 程中可以对投标者进行软件能力评价。评价的结果,可用于确定在挑选承包商的 风险,也可对现存的合同进行评价以便监控方的过程实施。从而识别出承包商的 软件过程中潜在的可改进之处。 2 2 c m m 体系结构 2 2 1 c m m 的基本概念 过程( p r o c e s s ) :为实现既定目标的一系列操作步骤 i e e e s t d 一6 1 0 1 注:i e e e 定义过程为“为实现给定目标所执行的一序列的步骤i e e e s t d 一6 1 0 软件过程( 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 sc a p a b i l i t y ) :描述了在遵循一个软件过程 后能够得到的预期结果的界限范围。该指标是对能力的一种衡量,用它可以预测 第二章c m m 及其2 级评估关键点 一个组织( 企业) 在承接下一个软件项目时,所能期望得到的最可能的结果。 软件过程性能( s o f t w a r ep r o c e s sp e r f o r m a n c e ) :表示遵循一个软件过程后 所得到的实际结果。( 与软件过程能力有区别,软件过程能力关注的是实际得到 的结果,而软件过程性能关注的是期望得到的结果。由于项目要求和客观环境的 差异,软件过程性能不可能充分反应软件过程整体能力,即软件过程能立受限于 它的环境。) 软件过程成熟度( s o f t w a r ep r o c e s sm a t u r i t y ) :是指一个具体的软件过程被 明确地定义、管理、评价、控制和产生实效的程度。所谓成熟度包含着能力的一 种增长潜力,同时也表明了组织( 企业) 实施软件过程的实际水平。随着组织软 件过程成熟度能力的不断提高,组织内部通过对过程的规范化和对成员的技术培 训,软件过程也将会被他的使用者关注和不断修改完善。从而使软件的质量、生 产率和生产周期的到改善。 c m m 是软件过程能力成熟度模型( c a p a c i t ym a t u r i t ym o d e l ) 的简称,是 卡内基一梅隆大学软件工程研究院为了满足美国联邦政府评估软件供应商能力 的要求,于1 9 8 6 年开始研究的模型,并于1 9 9 1 年正式推出了c m m1 0 版。c m m 自问世以来备受关注,在一些发达国家和地区得到了广泛应用,成为衡量软件公 司软件开发管理水平的重要参考因素和软件过程改进事实上的工业标准。 c m m i ( c a p a b i l i t ym a t u r i t ym o d e li n t e g r a t i o n ) 即能力成熟度模型集成, 这也是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能 力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件获取方 法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统 开发原则的过程改进。 关键过程( 区) 域( k e yp r o c e s sa r e a ) 是指一系列相互关联的操作活动, 这些活动反映了一个软件组织改进软件过程时所必须满足的条件。也就是说,关 键过程域标识了达到某个成熟程度级别时所必须满足的条件。在c m m 中一共有 1 8 个关键过程域,分布在第二至五级中。 关键实践( k e yp r a c t i c e s ) :是指关键过程域种的一些主要实践活动。每个 关键过程域最终由关键实践所组成,通过实现这些关键实践达到关键过程域的目 标。一般情况下,关键实践描述了该“做什么”,但没有规定“如何”去达到这些目 基丁:i :作流技术的软件开发过程管理系统的研究 标。 软件过程评估( s o f t w a r ep r o c e s sa s s e s s m e n t ) 是用来判断一个组织当前所 涉及的软件过程的能力状态,判断下一个组织所面向得更高层次上的与软件过程 相关的课题,以及利用组织的鼎力支持来对该组织的软件过程进行有效的改进。 软件能力评价是( s o f t w a r ec a p a b i l i 哆a p p r a i s a l ) 用来判断有意承担某个软 件项目的软件组织的软件过程能力,或是判断已进行的软件过程所处的状态是否 j 下确或是否正常。 软件工程组( s o f t w a r ee n g i n e e r i n gg r o u p ) 负责一个项目的软件开发和维 护活动的团体。活动包括需求分析、设计、编码和测试等。 软件相关组( s o f t w a r er e l a t e dg r o u p s ) :代表一种软件工程科目的团体, 它支持但不直接负责软件开发或维护工作,如软件质量保证组、软件配置管理组 合软件工程过程组等等。在c m m 的关键实践中,软件相关组通常应该根据关键 过程域和组织的上下文来理解。 软件工程过程组( s o f t w a r ee n g i n e e r i n gp r o c e s sg r o u p ) :是由专家组成的 组,他们推进组织采用的软件过程的定义、维护和改进工作。在关键实践中,这 个组织通常指“负责组织软件过程活动的组”。 系统工程组( s y s t e me n g i n e e r i n gg r o u p ) :是负责下列工作的个人的团体: 分析系统需求;将系统需求分配给硬件、软件和其他成分;规定硬件、软件和其 他成分的界面;监控这些成分的设计和开发以保证它们符合其规格说明。 系统测试组( s y s t e mt e s tg r o u p ) :是一些负责策划和完成独立的软件系统 测试的团体,测试的目的是为了确定软件产品是否满足对它的需求。 软件质量保证组( s o f t w a r eq u a l i t ya s s u r a n c eg r o u p ) :是一些计划和实施 项目的质量保证的团体,其工作目的是保证软件过程的步骤和标准是否得到遵 守。 软件配置管理组( s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n tg r o u p ) :是一些负 责策划、协调和实施软件项目的正式配置活动的团体。 培训组( t r a i n i n gg r o u p ) :是一些负责协调和安排组织培训活动的团体。 通常这个组织负责准备和讲授大多数培训课程并协调其他培训方式的使用。 第二章c m m 及其2 级评估关键点 2 2 2 c m m 的五个等级 c m m 提供了一个级别框架,将软件机构所各自拥有的软件过程,根据其过 程成熟度的不同划分为由低到高的五个级别,如下图2 2 所示: 不断改进的过程 町预测的过程 标准一致的过程 纪律化的过程 厂。衄 ,叫 ,曩 l 霸二三盈 ,j广_ 图2 2c m m 等级模型 f i g2 2t h eg r a d em o d e lo fc m m ( 1 ) 初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定 义几乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖于极个别 人的努力和机遇。 ( 2 ) 可重复级:已建立了基本的项目管理过程,可用于对成本、进度和功能 特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。 ( 3 ) 已定义级:用于管理的和工程的软件过程均己文档化、标准化,并形成 了整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修 改后的标准软件过程来进行操作。 ( 4 ) 以管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质 量得到了定量的认识和控制。 基丁i :作流技术的软件开发过程管理系统的研究 ( 5 ) 优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定 量分析,能够不断地、持续地对促进过程进行改进。除第一级外,每一级都设定 了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,自然可以向下 一级别迈进。c m m 体系不主张跨级别的进化。因为从第二级丌始,每一个低级 别的实现均是高级别实现的基础。 2 2 3 c m m 的内部结构 c m m 为软件过程能力的提高提供了一条改进的途径。c m m 由5 个成熟度 等级组成,每个成熟度等级有着各自的功能。除第一级外,c m m 的每一级按完 全相同的内部结构构成的,如图2 - 3 所示。成熟度等级为顶层,不同的成熟度等 级反映了软件组织的软件过程能力和该组织可能实现预期结果的程度。 图2 3c m m 的内部结构 f i g2 3t h ei n t e r i o rs t r u c t

温馨提示

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

评论

0/150

提交评论