话题(一)什么是软件过程改进?(发言人:王钧)
尊敬的居教授,各位专家 好,
最近忽然有人问我——什么是软件过程改进?我们说CMMI不是过程改进,只是过程改进的一个模型,那谁能告诉我,什么是过程改进?下面是网上的一篇相关资料。
经典的软件过程管理理论模型
软件过程管理的研究提出过许多模型,包括面向敏捷性的和不面向敏捷性的,在敏捷软件开发中的各个方法集也都在相似的理念下各自拥有抽象或具体的过程管理模型,以下是几个影响较大的模型。
1 软件过程成熟度模型
软件过程成熟度是指一个软件过程被明确定义、管理、度量和控制的有效程度。成熟度等级用来描述某一成熟度等级上的组织特征,每一等级都为下一等级奠定基础,过程的潜力只有在一定的基础之上才能够被充分发挥。Carnegie Mellon大学Software Engineering Institute(SEI)提出了软件成熟度模型(Capability Maturity Model,CMM),将软件过程改进的进化步骤组织成5个成熟等级:初始级、可重复级、已定义级、已管理级、优化级。
CMM提供了一个归一化的、严格的过程能力改进模型,基于度量和改进的模型解决了过程优化的问题,但是模型完全以过程为中心而忽略了执行过程的主体和过程运行的环境,造成在复杂多变的市场环境下,最优化的过程却不能输出成功的产品,或者对优化过程的投入难以获得预期的产出。
2 方法论模型
不同的项目应该使用不同的过程。敏捷软件开发的代表人物Alistair Cockburn从方法论的角度来研究软件开发过程,把方法论定义为包括了13个基本要素的团队采纳的一组惯例,不同的惯例适用于不同类型的项目。方法论的关键特征是它的规模(组织要素的数量)、形式(细节和具体形式)、重量(工作产品的规模和形式)、容限(项目团队的可变性)等。基于对20年内几十个软件项目的考察,Alistair Cockburn 在他的Crystal方法中给出了方法的框架和设计要素:沟通的负荷(称为颜色维)、系统的关键程度(称为硬度维)、项目优先级。方法论模型强调人员之间的沟通与方法的适用性,认为人和沟通是软件开发中每一要义的关键问题,方法论是面向领域的和刚好够用的。
方法论模型强调了过程的适用性,主要的手段不是“优化”,而是“选择”,优化是连续的,而选择为软件过程的管理创造了跳跃性的变化,把过程管理的焦点从过程转移到人和环境上。但是,方法论模型基本属于一种权变思想,还应该注意到软件开发组织在复杂环境下自组织的能力以及组织与环境的强交互作用。
3 生态系统模型
Highsmith认为要改变思想,必须改变使用的语言,所以使用“生态系统”来改变对软件过程的看法。生态系统模型描述了由三个成分交织在一起的整体环境,三个成分是:混沌有序的观点、协作的价值和原理、刚好够用的方法论,三者相互结合、共同作用,形成敏捷生态系统。混沌有序的观点来自复杂自适应系统模型,表现为产品目标不可预测但可以达到、软件过程不可重复但可以帮助人们一致地工作。协作的价值和原理代表了敏捷项目内部、外部的人与人之间的相互关系,是敏捷软件过程的环境特征。刚好够用的方法论源自方法论模型,体现了敏捷软件过程管理以实践为中心而不是以过程为中心的本质。
生态系统模型有比较全面的理论体系和哲学基础,为敏捷软件过程管理提供了非常有价值的理论工具和崭新的语汇,尤其是它强调创新的结果出现于“混沌的边缘”,复杂系统中的突变序是软件开发组织创造力的源泉,从而揭示出了敏捷性的根源。
生态系统模型试图把各种敏捷软件开发方法都概括到这个理论框架中来,但是,它过于抽象了。可以说生态系统模型为敏捷软件过程管理提供了一套系统的哲理,能够用这个模型来作为敏捷软件过程管理的指导理念,但组织很难凭借生态系统模型获知明确的组织过程改善途径和了解组织过程目前的发展状态。
4 复杂自适应系统
复杂性科学被称为21世纪的科学,复杂性理论指导我们从整体的角度研究系统。对复杂性的研究,始于1984年成立的圣达菲(Santa Fe Institute,SFI)研究所。1994年J.Holland在SFI正式提出了比较完整的复杂自适应系统(Complex Adaptive System,CAS)理论,把复杂系统理论从自然科学领域提升到哲学的高度,使其开始应用于社会科学的研究。钱学森和他的合作者在90年代初就提出了开放的复杂巨系统理论,将自然界和人类社会中一些极为复杂和规模巨大的系统总结归纳为开放复杂巨系统。
复杂自适应系统理论是敏捷软件项目管理的基本原理之一。CAS理论认为具有适应能力的、主动的个体,可以根据环境的变化改变自己的行为规则,以求生存和发展。CAS理论提出了三个主要概念:主体(Agents)、环境(Environments)、突变(Emergence, 或称为突现、涌现),在一定环境中的主体相互竞争和合作,导致系统产生突变。
突变性说明整体行为模式不能根据其个体行为规则进行预测,或整体模式不能还原为其个体行为,突变是整体有而部分无的特性,宏观层次特性的突变基于微观个体的主动的适应和学习的行为规则。复杂自适应系统的本质就在于其进化过程中突变的永恒的新奇性。Jim Highsmith基于CAS提出了自适应软件开发(Adaptive Software Development,ASD),旨在通过提高组织的自适应力以应对极度变化、难以预测的快速软件开发要求。
敏捷软件开发项目构成一个复杂系统,复杂自适应系统理论使我们以整体的、变化的观点来研究软件项目中过程管理的问题,本文基于复杂自适应系统提出一个三维的系统框架,在这个框架中,包含了对于软件项目复杂系统中的主体、环境、突变三个基本要素的管理,表现为:对软件项目中主体与过程的相互作用的管理、对项目内外部环境变化的容变过程的管理、对作为系统突变性成果——过程知识产品的管理。
1) 软件过程管理中的主体要素——人
Holland提出了“适应性主体”的概念,有效地解释了部分与整体之间的有机关系,而且把复杂适应系统组成单元的主动性提高到了复杂性产生的机制和复杂系统进化的基本动因的重要位置。软件过程管理以人与过程的相互作用为核心,人与过程的智能性和创造性是组织核心竞争力的源泉。
项目团队与软件过程构成一个复杂系统,系统的复杂性在于人与人、过程与过程、过程与人之间不是一种机械动力学关系,而是一种复杂的、难以用数学方法刻画的相互作用、相互联系。这样的系统依靠自学习、自组织、自适应的模式来形成一个有机的结构,系统中的主体是智能化的,有其对自身、组织和环境的反应能力和认知规则,组织适应性的基础在于人与过程对其相互作用和相互联系的认知和反应能力。
2) 软件过程管理中的环境要素——变化
软件项目最大的特点是内外部环境的快速变化和不确定性。知识社会的环境复杂性表现在:(1)边际收益递增;(2)竞争者的协同进化;(3)由“经济人”到“复杂人”;(4)企业环境信息误导;(5)企业环境的迅速变迁;(6)旧经济规律的不断失效。软件过程对于机遇和风险的把握能力和创新的能力,决定了组织对市场和竞争环境变化的应对能力。
敏捷软件过程管理对于快变和不可预测的复杂环境,采取“拥抱变化”的态度,不只快速有效的回应这些变化,而且主动的创造变化以获得组织的竞争地位。容变的软件过程使项目能够从容应付快速变化和不断变化的市场,获得组织的长期效益。
3) 软件过程管理中的突变成果——过程
知识管理是软件过程管理的本质,软件过程管理把知识作为一种基本的资源和产品,知识的开发利用渗透到软件产品生产的所有生产要素之中,贯穿于组织各项活动之中。
过程作为一种知识产品,是把人们的精力集中于结果的组织化结构,这种组织化结构是系统演化和突变的结果。复杂系统内部要素的相互作用是非线性的,要素之间的非线性相互作用使新的特性涌现出来,即产生突变。
知识管理的核心是在工作环境中高效地使用知识和创造新的知识结构。敏捷软件过程管理不只是对现有过程知识资本的维护,更是对工作环境的改善,使知识更容易交流,更容易创造和积累。知识环境对过程管理的知识活动起着推动或阻碍的作用。
止于至善的博客 http://tyou1215.csai.cn/
分享到:
相关推荐
在当前的互联网环境中,电商行业已经成为发展迅猛的领域之一,而微博作为重要的社交媒体平台,对于电商平台来说,通过热点话题的挖掘与分析可以获取用户的偏好、购买趋势以及市场动态,从而对营销策略进行优化。...
标题中的“运用改进型LDA算法的电商微博热点话题研究”揭示了该研究的主要内容,即利用一种改良的Latent Dirichlet Allocation (LDA)算法来分析电子商务领域微博中的热门话题。LDA是一种主题模型,它能从大量文本...
【热点话题发现】是当前信息技术领域的一个重要研究方向,它涉及到大数据分析、自然语言处理以及社交媒体监控等多个领域。本文将探讨基于用户浏览行为的用户关注度模型,并结合热点话题的发现与演化过程,深入理解这...
肖志军在《一种面向社会网络的热点话题数据挖掘算法.pdf》中提出了一种改进的数据挖掘算法,该算法通过三个步骤来实现对社会网络热点话题的有效挖掘:首先,使用核密度估计法对潜在热点话题进行分析;其次,依据小...
微博热点话题发现是当前社交媒体分析领域的一个重要课题,随着微博用户数量的激增,海量的微博文本数据中蕴含着丰富的话题信息。如何从这些庞杂的信息中提取出具有代表性的热点话题,成为了一个极具挑战性的问题。在...
近年来,随着计算科学和技术的飞速发展,**群智能**成为了人工智能领域一个备受关注的研究方向。群智能主要关注如何从自然界中的群体行为中汲取灵感,设计出能够解决复杂问题的算法和技术。其中,**蚁群算法**作为一...
机器学习领域研究热点与前沿演进是当前学术研究的热点话题之一,该领域的研究热点和技术前沿演进对机器学习技术的发展具有重要的影响。本文通过文献计量学方法对机器学习关键词进行共现分析和突变分析,挖掘机器学习...
同时,OpenAI 还可以尝试引入一种实时更新的机制,以便 ChatGPT 能够对新事件和热点话题保持敏感。这可以通过与社交媒体平台和新闻网站的合作来实现,获取最新的信息和评论。 此外,OpenAI 还可以进一步提升 ...
KPLDA模型的创新之处在于将关键短语纳入主题建模过程,使得模型能够更好地捕捉军事舆情中的热点话题。这种方法提高了话题发现的准确性,尤其是在军事舆情这样特定的领域,关键短语往往更能反映事件的核心内容。 ...
区块链技术是当前业界的热点话题,作为比特币的底层技术,它解决了如何在一个缺乏信任、完全自由开放的网络中达成共识的问题。当前业界对区块链的研究如火如荼,涉及到金融、物联网、版权保护和农业等多个领域。 ...
机器学习可解释性方法的需求是当前机器学习领域的热点话题,基于LIME的改进机器学习可解释性方法具有广泛的应用前景。本文的主要贡献在于提出了一种新的机器学习可解释性方法,提高了机器学习模型的可解释性。
接着是软件过程框架。它定义了软件开发过程中的各项活动以及它们之间的关系。软件过程框架的组成部分包括需求获取、设计、实现、测试、部署和维护。软件过程框架的七个原则强调了沟通、简化、结构化、可靠性、复用、...
分布式学习系统软件建模方法研究是当前软件开发领域中的热点话题。随着云计算技术的快速发展,分布式学习系统变得越来越重要,它能够在多个计算节点上并行处理数据,提高学习效率。然而,分布式学习系统的开发和应用...
通过共词分析和聚类分析等手段,它可以识别出研究领域的核心主题和热点话题,从而帮助研究者跟踪学术动态,预测研究趋势。这不仅节省了研究者大量筛选和整理文献的时间,更为深入分析研究领域提供了强有力的支持。 ...
描述中的“行业分类-电子”表明这一话题属于电子科技领域,而“一种改进的电加热型非燃烧卷烟装置”暗示我们将深入研究这一领域的具体改进点。可能包括以下几个方面: 1. **加热元件材料**:加热元件是电子烟的核心...
共词分析用于识别关键词的关联性,形成社会网络图谱,而知识图谱分析则揭示了热点话题的演变和未来发展趋势。 总体来看,我国高校教育大数据领域的发展呈现出快速上升的趋势,自2013年以来,研究数量逐年增加,尤其...
在IT领域,软件更新是持续进行的过程,旨在提供更好的用户体验和优化系统性能。石青百度热议软件1.1.8.1的升级,正是这样一个典型的例子。这款软件的核心功能可能与监控和分析百度热议话题相关,帮助用户快速获取...