1、软件过程的概念和构架软件过程的概念和构架北京航空航天大学软件工程研究所北京航空航天大学软件工程研究所Luo_YanJLuo_YanJ罗燕京罗燕京2009.52009.5158软件过程的概念和构架软件过程的概念和构架软件过程的引出软件过程活动软件过程模型软件过程模型实例软件过程管理软件过程工程258软件过程的引出软件过程的引出358软件过程的引出软件过程的引出软件规模软件规模的增长导致实现语言的发展功能复杂度功能复杂度的增长导致程序结构的演变软件质量软件质量的增长要求导致软件过程管理458软件规模软件规模的增长导致实现语言的发展功能复杂度功能复杂度的增长导致程序结构的演变软件软件质量质量的要求导
2、致软件过程管理机器代码机器代码 汇编语言汇编语言 高级语言高级语言 现代语言现代语言 建模语言建模语言体系结构体系结构构件构件类类 子系统子系统模块模块过程过程子程序子程序指令程序指令程序生命周期过程模型过程管理过程工程面向对象面向对象结构化结构化558 软件开发效率软件开发效率和软件的质量软件的质量与软件规模与软件规模和功能复杂度的关系功能复杂度的关系软件规模软件规模功能复杂度功能复杂度生产效率生产效率软件质量软件质量658解决方法解决方法加大成本和时间加大成本和时间开发效率的基本条件和约束市场问题竞争问题加强技术和方法加强技术和方法研究软件结构以适应功能复杂度结构化的技术和方法面向对象的技
3、术和方法软件过程:提高软件开发的能力软件过程:提高软件开发的能力软件过程成为软件开发成功、软件开发效率和软件质量的保障。758软件生命周期开发模型软件生命周期开发模型相同的软件生命周期,不同的软件开发相同的软件生命周期,不同的软件开发模型。模型。从20世纪70年代初开始,各种软件开发软件开发模型模型相继提出,如瀑布模型瀑布模型、演化模型演化模型和螺旋模型螺旋模型等。这些软件开发模型的提出,为最初形成的原始的“过程观”注入了具体的内容。858个人技术个人技术软件开发管理人员大都只能根据个人的个人的经验经验来组织和实施这些活动细节,这使得许多项目的成功,往往在很大程度上取决于项目参加人员的素质与经
4、验,这这种局面无疑使软件的开发受到了严重地种局面无疑使软件的开发受到了严重地制约。制约。大规模高质量软件不能仅仅依赖个人的大规模高质量软件不能仅仅依赖个人的技术技术958管理问题管理问题几乎所有的开发人员都学习过分析、设计、编程、测试等技能,可是如今绝大多数软件项目依然面临着质量低下、进度延误、费用超支这些老问题。据统计,在20世纪70年代中期,美国失败的软件项目中有70%是由于管理不善管理不善引起的。1058基本问题基本问题通过应用新的软件方法和技术能提高生产率和质量的希望,经过了20年仍未实现,意识到,基本问题是不能管理其软件过程。在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具
5、中获益。许多组织中、项目常极度迟后、预算翻番。在这些情况下,组织经常不能能提供帮助项目避免这些问题所需要的基础设施和资助。1158基本问题基本问题即使在无纪律的组织中,个别软件项目仍能生产出优质产品。这些项目的成功一般是通过工作组织的杰出努力,而不是通过重复使用具有成熟软件过程的组织的经过验证的方法。在没有全组织范围的软件过程的条件下,重复结果的取得完全取决于能使同样人员去做下一个项目。仅仅建立在可得到特定人员上的成功不能为全组织生产率和质量的长期提高打下基础。1258软件过程软件过程人们逐渐意识到,由于机构管理软件过程的能力比较弱,常常导致项目处于混乱状态,过程过程混乱使得新技术、新工具的优
6、势难以体现混乱使得新技术、新工具的优势难以体现。经经典的软件工程不是不好,而是不够用典的软件工程不是不好,而是不够用。从20世纪90年代至今,软件过程改进成为软件工程学科的一个主流研究方向因此,以“软件过程”为基本概念的一种新的软件工程概念框架自然被提出和发展起来1358软件开发的层次和素质软件开发的层次和素质技术问题软件规模小,复杂度低,需求简单,主要依靠个人的计算机技术或某些先进技术和工具解决问题。方法问题软件规模、复杂度增加,团队性质,统一的开发方法和规范。项目管理问题需要增加保证进度和质量的活动并具有成熟的措施和方法。过程问题大规模复杂需求的软件系统,过程及过程管理。1458软件过程能
7、力软件过程能力软件过程能力软件过程能力描述通过遵循软件过程能够实现预期结果的程度。一个组织的软件过程能力提供一种预测该组织承担下一个软件项目时最可能的预期结果的方法。软件过程能力关注预期结果。软件过程能力关注预期结果。1558对软件过程的常见误解对软件过程的常见误解必须对确定的需求开始只要通过测试就不会有问题软件质量无法度量需要更好的人才软件管理与众不同目前,我们的软件开合同和软件开发管理仍然以这些错误观点为基础。1658过程定义过程定义过程定义了为达到某个目标目标,需要什么人人在什么时间时间以何种方式方式进行的一系列活动活动。过程是以活动为中心的过程是以活动为中心的活动的要素:角色、时间、活
8、动、资源、产品过程中的活动有明确的目标、步骤和方法。1758过程的内涵过程的内涵过程是一个基于软件开发知识的创新。过程本身具有增值的效果,是一种有效益的经济行为。过程具有层次性。(宏观、微观、PSP、TSP、CMM)过程可以展现一个组织的软件开发能力。过程的执行需要方法和技术。过程能力是过程知识加过程实践经验的结果过程能力是过程知识加过程实践经验的结果。18581958软件过程活动软件过程活动2058软件过程软件过程活动活动软件过程分为四类活动:开发活动管理活动质量保证活动过程管理活动2158软件过程软件过程活动活动完成一件软件开发中任务的部分活动的组合称为一个流程。项目开发分为开发流程和管理
9、流程两个主流程。流程可分解为若干活动,每个活动可分解为若干活动步骤。2258软件开发和软件开发和管理流程活动管理流程活动开发流程开发流程:需求获取分析设计实现测试集成确认服务维护管理流程管理流程:产品分解估算计划实施跟踪度量改进2358开发流程和管理流程的关系开发流程和管理流程的关系开发流程的每个活动都要执行管理流程的所有活动。2458开发流程和管理流程的关系开发流程和管理流程的关系软件开发流程的每个活动都具有相同的软件开发管理流程活动序列。2558开发流程和管理流程的关系开发流程和管理流程的关系 2658质量保证活动质量保证活动和和过程管理活动过程管理活动质量保证活动验证确认评审测试变更控制
10、风险缺陷配置管理过程管理活动确定目标定义过程过程实施过程度量过程改进2758开发活动、管理活动开发活动、管理活动和和质量活动的关系质量活动的关系 2858过程管理活动和其它活动过程管理活动和其它活动的关系的关系 2958过程活动过程活动过程管理过程管理 活动活动开发活动开发活动管理管理活动活动质量活动质量活动需求获取产品分解验证确认确定目标分析设计估算评审测试定义过程实现测试计划变更控制过程实施集成确认实施跟踪风险缺陷过程度量服务维护度量改进配置管理过程改进 软件过程的基本活动软件过程的基本活动3058软件开发过程活动的层次软件开发过程活动的层次 开发开发活动活动管理活动管理活动质质量量活活动
11、动过程管理活动过程管理活动3158需求获取分析设计实现测试集成确认服务维护产品分解估算计划实施跟踪度量改进进度管理评审变更控制质量管理配置管理管理活动管理活动开发活动开发活动质量活动质量活动确定目标 定义过程 分配人员 过程实施 度量改进过程管理活动过程管理活动3258软件软件开发能力的提升过程开发能力的提升过程一个软件开发团队必须具有软件开发的基本技术能力,技术能力是由无序的开发到具有一套逐渐成熟的开发方法保证的。软件开发能力的进一步提高必须是由软件开发管理能力保证的。再进一步,就会认识到软件质量的重要性,从而开展质量保证活动。最后,为了不断提升能力,还会认识到过程管理活动的重要性。3358
12、开发活动管理活动质量保证活动过程管理活动基本技术能力管理能力质量保证能力过程管理能力软件开发能力的提升过程软件开发能力的提升过程3458软件过程模型软件过程模型3558软件过程要解决的问题软件过程要解决的问题 Watts S.Humphrey 1989倡导软件过程管理的实践,使软件组织在构建和改进软件系统时,具有预测的能力与控制质量、进度、成本、开发周期和生产效率的能力。改进软件工程技术的实践,使软件组织工程师具有分析、预测和控制软件系统属性的能力,在构建和改进软件系统时,能进行恰当的权衡,作出正确的判断和决策。3658过程过程定义定义 Watts S.Humphrey 1989软件过程软件过
13、程软件开发和进化过程中使用的一系列(可控的、可度量的)活动(以及活动)的方法和实践。软件过程模型软件过程模型软件过程构架的一个特定的体现。软件过程构架软件过程构架一个框架,在该框架内定义特定项目的软件过程。3758软件过程模型和过程构架软件过程模型和过程构架软件过程模型可以在任何适当的抽象层次上建立。软件过程构架则必须提供细化到任何所期望的细节层次所需要的元素、标准和结构框架。过程构架必须包括所有过程模型级别。3858软件过程模型的基本单元元素软件过程模型的基本单元元素软件过程活动执行活动的角色和职责执行活动所需要的资源执行活动所产生的可见的有价值的产品约束:指进行过程或活动时所受到的限制或需
14、接受的条件 约束3958过程结构的基本元素过程结构的基本元素角色具有规定的职责。角色可以由过程中的一个人扮演,或多个人扮演,一个组织中角色越多,分工就越细。角色执行过程中指定的活动活动。活动是一个角色执行的一项工作,并通过执行活动完成自巳的职责。活动的粒度越细,过程精度也就越细。过程活动应具有执行规范和执行方法。活动应具有执行规范和执行方法。产品产品是过程活动产生或者使用的任何信息或者物理实体。包括模型、文档、计划、代码、可执行文件.产品应具有规范和标准,可以被度量。4058过程指南过程指南一个实际的过程描述,其大多数内容和值存在于它提供给业内人士的指南中。该指南可以在过程中采取不同形式,附属
15、于不同的过程定义要素。概念概念定义过程工程中的重要术语和概念。指导原则指导原则是与活动或者制品有关的技术、标准或者探索方法。模板模板是制品的一种原型。案例案例研究介绍制品在实际项目中的具体应用情况。4158过程指南过程指南 4258定义定义软件过程模型软件过程模型可以在三个层次上定义软件过程模型U级:宏观级(Universal Level)方针级提供一个过程的宏观概要,例如瀑布模型和螺旋模型。W级:物质世界级(Worldly Level)规程级提供过程的实际工作指导,建立相应规程以实现方针。A级:微观级(Atomic Level)标准和工具级提供过程的更加详细的求精,规程的细节。4358过程构
16、架的基本元素过程构架的基本元素(个体单元个体单元)进入进入任务任务退出退出输入输入输出输出N反馈反馈入入出出进入:任务开始前要满足的条件任务:将要做什么,由谁来做,如何做,何时做(包括标准、规程和职责)退出:产品结果及其形式反馈:由其它阶段进入以及向其它阶段传出的反馈度量:任务度量(活动、资源、时间)、输出度量(数量、规模、质量)反馈度量(数量、规模、质量)4458过程构架基本元素过程构架基本元素的连接的连接过程构架的基本元素(个体单元)作为基本构件进行过程组合。4558个体单元的连接个体单元的连接(U(U级开发过程级开发过程)设计001实现002测试003需求软件需求问题设计问题实现问题定义过程个体单元的方法:使用改进的ETVX(进入-任务-验证-退出)范式ETXM(进入-任务-退出-度量)4658U U级开发过程单元规格说明级开发过程单元规格说明 单元001设计002实现003测试进入已批准的需求、变更和开发计划审查批准的设计和变更审查批准的代码和变更退出审查批准的设计和变更审查批准的代码和变更审查、测试和批准的软件反馈入设计问题实现问题反馈出需求问题需求和设计问题需求设计和实现问
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1