论文部分内容阅读
上世纪80年代初,软件产业逐步进入过程化生产的时代,人们开始意识到技术的改进必须与过程的改进同时并举,才能真正达到保证产品质量的目的。一系列重要的国际标准和模型纷纷被提出,其中最具代表性的就是软件能力成熟度模型SW-CMM(CapabilityMaturityModelforSoftware),简称为CMM。CMM自问世以来,在软件过程改进方面取得了十分可观的成绩,其关键作用在于提供了有效的模型来辅助企业评估和改进软件过程。一个企业要进行CMM过程改进,就必须基于CMM体系,结合企业过程特征建立CMM实施过程,同时所建立的CMM实施过程应当得到有效地执行。
然而,随着企业外部环境的日益复杂和市场需求的不断变化,企业自身的组织结构日趋动态化,必然会造成CMM实施过程的频繁变动。这就要求CMM实施过程应当能够按照企业组织的变化不断地进行调整,以便适应企业的新需求。同时,在企业实施CMM的过程中,往往出现管理活动和技术活动脱节的现象,阻碍了CMM的实施。因此,CMM实施过程建模的复杂性以及CMM实施过程模型执行的有效性,已经成为软件过程改进中的难点问题。
有效的CMM实施过程建模,应当能够及时进行调整,以适应不断变化的外部环境,同时,执行CMM实施过程模型时应当根据过程模型,针对特定的软件开发环境(包括开发目标及约束、拥有的资源情况以及环境状态等等),确定实现软件产品的软件过程,这称作CMM实施过程模型的实例化。本文围绕CMM实施过程建模及CMM实施过程模型的实例化方法展开研究。
本文首先提出一种基于模型融合的CMM实施过程建模方法,该方法将CMM软件过程模型CPM(CMMProcessModel)与企业过程模型EPM(EnterpriseProcessModel)进行融合,得到CMM实施过程模型CIPM(CMMImplementationProcessModel)。CIPM既满足CMM对过程改进的约束,也包含企业特有的过程特征。本文通过分析CMM软件过程特征,给出面向CMM的软件过程工程元模型SPEM(SoftwareProcessEngineeringMetamodel)的扩展策略,提出了一个基于SPEM的CMM软件过程元模型—SPM-CMM(SoftwareProcessMetamodelforCMM)。该元模型既支持CMM软件过程的抽象语法和规则语义,也支持利用UMLCASE工具操作CMM软件过程模型。基于SPM-CMM,本文定义了CMM软件过程模型CPM。然后,本文提出了一种支持CPM与EPM进行融合的过程模型融合算法,采用带标记的有向图表示软件过程模型,利用活动片段(ActivitySegment)对过程模型作进一步抽象,以CPM为基础,使用模型融合算法确定EPM与CPM中的不一致情况并进行调整,最终得到CIPM。文中给出了模型融合一致性的规范证明并开发了原型工具进行支持。
基于所建立的CIPM,本文进一步研究了CIPM的实例化机制。CIPM中包括管理过程、工程过程和支持过程,这些过程必须相互协作才能保证CMM实施的有效进行。由于CIPM的复杂性,我们选择CMM实施过程中需求管理过程的实例化问题进行研究。需求管理过程主要包括需求开发和需求变更管理,是CIPM中的工程过程,与其它过程均有着密切的关系,这是因为需求既是软件工程开发的基础,也是软件管理和支持的依据。本文提出一种多视图需求建模方法GTSD(Goal-Task-Service-Data),作为实例化CMM实施过程模型的方法之一,针对多视图需求模型对工程过程中开发活动(软件架构、详细设计、确认测试等)的支持进行重点研究。GTSD中将需求按照不同抽象层次进行组织,通过组合不同层次的需求,为CMM实施者提供相应的视图,从而促进各角色对需求的理解,保证需求管理过程的有效执行。
最后,我们将本文提出的方法在国家863项目“基于CMM的软件质量保证平台”中进行了应用研究,证明了方法的有效性。质量平台是中国科学院软件研究所多年从事基于CMM和ISO9000的软件质量保证研究工作的科研成果,目前已经在国内多家软件组织中进行推广应用,在帮助组织实施质量保证和过程改进中发挥了积极的作用。本文首先在CMM中选择需求管理关键过程域RM(RequirementsManagement),基于SPM-CMM建立该关键过程域的CMM软件过程模型CPMRM(CPMofRequirementsManagement)。同时,选择本组织在实施CMM前的需求管理过程,基于SPEM建立企业过程模型EPMRM(EPMofRequirementsManagement)。然后利用本文提出的过程融合算法,将CPMRM与EPMRM进行融合,得到CMM实施过程模型CIPMRM。最后,在CIPMRM的基础上,应用GTSD方法,建立质量平台的多视图需求模型,并基于该模型进行了软件架构设计、详细设计和确认测试模型设计。本文选择基于GTSD设计确认测试模型的过程说明GTSD是一种有效的CMM实施过程模型实例化方法。