
软件并行开发过程.ppt
52页软软 件件 学学 院院李李 彤彤 博士博士2007年年 春春软件并行开发过程软件并行开发过程Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.云南省中青年学云南省中青年学术和技术带头人术和技术带头人培养基金项目培养基金项目1998-37云南省自然科云南省自然科学基金项目学基金项目 98F023M98F005G2001F0006MEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下问题的提出问题的提出 一、生产率低下一、生产率低下二、质量欠佳二、质量欠佳Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下背背 景景•并行工程并行工程•并行处理并行处理•多个程序员同时为同一个系统编码多个程序员同时为同一个系统编码•现现实实生生活活中中的的各各类类非非自自觉觉的的、、偶偶然然的的并行行为并行行为Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下制造业并行工程制造业并行工程市场分析产品设计工艺设计 采 购制 造检 测装 配销 售维 修并行度进行反馈产品生存周期Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 •1982年年,,美美国国国国防防部部发发表表了了著著名名的的R-338报报告告,,正正式式提提出出了了“并并行行工工程程”的的概概念念::并并行行工工程程是是集集成成地地、、并并行行地地设设计计产产品品及及其其相相关关的的各各种种过过程程((包包括括制制造造过过程程和和支支持持过过程程))的的系系统统化化方方法法。
这这种种方方法法要要求求产产品品开开发发人人员员从从设设计计一一开开始始就就考考虑虑产产品品整整个个生生存存周周期期中中从从概概念念形形成成到到产产品品报报废废处处理理的的所所有有因因素素,,包包括括质质量量、、成成本本、、进进度度、、计划和用户的要求计划和用户的要求•并并行行工工程程目目前前已已成成为为制制造造业业研研究究与与实实践践的的热热点点领领域域在在国国外外已已成成功功地地应应用用于于航航空空、、航航天天、、电电子子、、汽汽车车等等领领域域,,如如福福特特汽汽车车公公司司、、波音公司、洛克希德公司、丰田汽车公司波音公司、洛克希德公司、丰田汽车公司•我我国国并并行行工工程程的的研研究究始始于于90年年代代初初,,国国家家科科委委在在863计计划划中中设设立立了了一一些些课课题题支支持持并并行行工工程程的的研研究究,,已已有有少少数数几几家家企企业业开开始始实实施施并并行行工工程程,,并并取取得得了了新新产产品品开开发发样样机机周周期期缩缩短短、、产产品品综综合合技技术术经经济济指标好、符合市场需求、经济效益好等效益指标好、符合市场需求、经济效益好等效益并行工程现状并行工程现状Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 1))并并行行性性::各各种种活活动动并并行行交交叉叉进进行行。
既既包包括括各各个个部部件件开开发发的的并行交叉,又包括各个阶段的并行交叉并行交叉,又包括各个阶段的并行交叉2)流程改善:通过改善与优化工作流程,提高产品质量流程改善:通过改善与优化工作流程,提高产品质量3))尽尽早早开开始始工工作作::在在信信息息不不充充分分的的情情况况下下开开始始工工作作,,因因此此要要有很强的应变能力有很强的应变能力4))集集成成化化::强强调调全全面面优优化化,,追追求求产产品品整整体体的的竞竞争争力力和和各各小小组组的密切有机合作的密切有机合作5))强强有有力力的的支支撑撑环环境境::必必须须有有良良好好的的支支撑撑多多小小组组并并行行协协同同工工作的网络与计算机平台作的网络与计算机平台6))强强有有力力的的管管理理::强强调调强强有有力力的的管管理理,,保保证证各各种种并并行行活活动动协协调统一地进行调统一地进行并行工程特点并行工程特点Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 软件过程软件过程§软件过程指软件生存周期中所涉及的一系列相关过程。
过程是活动的集合,活动是任务的集合,任务是把输入转换为输出的操作软件过程是动态的,它动态地产生、推进(执行),动态地消亡§软件过程模型是对软件过程的静态描述,是软件过程向前推进的依据Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下软件过程软件过程-ISO/IEC 12207 1. 主要过程类获取过程供应过程开发过程运行过程维护过程 3. 组织过程类管理过程基础设施过程改进过程培训过程2. 支持过程类 文档编制过程 配置管理过程 质量保证过程 验证过程 确认过程 联合评审过程 审核过程 问题解决过程Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下§过程并行过程并行§子过程并行子过程并行§阶段并行阶段并行§版本并行版本并行§活动并行活动并行软件生存周期中的并行性软件生存周期中的并行性Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 软件生存周期软件生存周期并并 行行 度度软件开发过程软件开发过程软件维护过程软件维护过程软件管理过程软件管理过程软件文档编制过程软件文档编制过程过过 程程 并并 行行Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下子子 过过 程程 并并 行行软件开发周期并行度子开发过程1子开发过程2子开发过程n初步需求分析集成与系统测试Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 阶阶 段段 并并 行行软件开发周期软件开发周期并并行行度度总体设计详细设计编 码测 试需求分析Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下版版 本本 并并 行行软件生存周期软件生存周期并并 行行 度度发行版本1的开发发行版本2的开发…………发行版本n的开发Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下活活 动动 并并 行行 软件生存周期软件生存周期并并 行行 度度开开 始始 编编 码码结结 束束 编编 码码编制模块编制模块1活动活动编制模块编制模块2活动活动编制模块编制模块n活动活动Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 SDDM模型模型 支持软件并行开发过程的软件过程模型:支持软件并行开发过程的软件过程模型:•能定义软件开发中的各并行成分、各开发能定义软件开发中的各并行成分、各开发活动及它们相互之间的动态关系(也包括活动及它们相互之间的动态关系(也包括并行关系)。
并行关系)•能定义软件过程之间的动态关系能定义软件过程之间的动态关系Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下§任务是一个三元组T=<{P},{Q},Ms>,其中{P},{Q}均为谓词,我们称{P}为前断言, 它刻划了任务T执行前的状态;{Q}称为后断言,它刻划了任务T执行后的状态<{P},{Q}>刻划了把输入转换为输出的操作Ms是消息集合,其中的元素是二元组m=
Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下§软件过程是一个六元组P= |P,P’∈Ps}称为优先关系集, 刻画了软件过程P必须在P’前执行。 无优先关系的过程可以并行执行并行执行过程中的同步关系由软件过程自行发送消息进行控制C4软件开发过程的图形表示软件开发过程的图形表示软件开发过程的图形表示软件开发过程的图形表示子开发过程子开发过程1子开发过程子开发过程2子开发过程子开发过程n初初 步步 需需 求求 分分 析析 集集 成成 与与 系系 统统 测测 试试初初步步需需求求分分析析子开发过程子开发过程1子开发过程子开发过程2子开发过程子开发过程n集集成成与与系系统统测测试试C1A1C2iA2iC3iA3Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 软件过程建模语言特征软件过程建模语言特征§动态性动态性:由于软件过程是动态进行的,为支持设计者动态操作,应具有描述动态行为的成分§并行性并行性:应具有描述不同粒度并行成分的能力能描述软件过程级(粗粒度)、活动级(细粒度)的并行行为§一致性一致性:由于软件过程中有多个角色协同工作,应具有描述角色行为和角色协同工作的成分,对角色的行为进行精确的定义,并便于形式化地进行一致性检查。 §完整性完整性:软件过程包括许多方面的内容,建模语言应对其中组织、功能、行为、信息诸方面的内容加以描述,提供和表达尽可能丰富的信息§模块性模块性:L.Osterweil提出过“软件过程也是软件”的观点并获得了广泛的认同,软件过程模型是程序因此,模块性是自然的要求§支持抽象与求精支持抽象与求精:软件过程建模可采用自顶向下、逐步求精的方法进行应支持不同抽象级的过程描述,并具有用低层详细描述替换高层抽象描述的手段 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下§基于基于PetriPetri网,具有较好的并行表达能力和动态表达能力,便网,具有较好的并行表达能力和动态表达能力,便于并行控制于并行控制 §具有面向对象的特征,支持数据抽象、信息隐蔽和过程抽象,具有面向对象的特征,支持数据抽象、信息隐蔽和过程抽象,支持消息传递和单重继承支持消息传递和单重继承§能表达各软件过程、子开发过程、活动之间的关系,能定义角能表达各软件过程、子开发过程、活动之间的关系,能定义角色与活动之间的关系。 色与活动之间的关系§可表示不同抽象级的过程模型,支持以角色为中心的逐步求精可表示不同抽象级的过程模型,支持以角色为中心的逐步求精的过程建模方法的过程建模方法§一个软件过程模型就是一个一个软件过程模型就是一个SDDMLSDDML程序§支持模型重用和过程重用支持模型重用和过程重用 SDDML主要特征主要特征Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 任务定义任务定义<任务任务>::=TASK <任务名任务名> {<消息定义消息定义>;} BEGIN <前断言前断言>;<后断言后断言>;{<消息消息发送发送>;} END;<前断言前断言>::=PREASSERTION <谓词表达式谓词表达式><后断言后断言>::=POSTASSERTION <谓词表达式谓词表达式><谓词表达式谓词表达式>::=<简单布尔表达式简单布尔表达式>|(<谓词表达式谓词表达式>)|NOT<谓词表达式谓词表达式>|<谓词谓词表达式表达式>AND<谓词表达式谓词表达式>|<谓词表达式谓词表达式>OR<谓词表达式谓词表达式>|<谓词表达式谓词表达式>IMPLY<谓词表达式谓词表达式>|<谓词表达式谓词表达式>IFF<谓词表达式谓词表达式>|COND(<谓词表达式谓词表达式>,<谓词表达式谓词表达式>,<谓词表达式谓词表达式>)|ALL(<变量名变量名>)(<谓词表达式谓词表达式>)|EXISTS(<变量变量名名>)(<谓词表达式谓词表达式>)<消息定义消息定义>::=MESSAGE <消息名消息名> BEGIN <消息内容消息内容> END<消息发送消息发送>::=SEND <消息名消息名> TO <目标目标><目标目标>::=<软件过程名软件过程名>.<活动名活动名>.<任务名任务名>|<软件过程名软件过程名>.<条件名条件名> Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 活动活动 定义定义<活活动动>::=ACTIVITY <活活动动名名> [FROM <活活动动名名>] {<任任务务>} [IMPORTS <输输入入数数据据结结构构>;] [EXPORTS <输输出出数数据据结结构构>;] [LOCALS <局局部部数数据据结结构构>;] BEGIN <活动体活动体> END;<活动体活动体>::=<任务序列任务序列>|<软件过程名软件过程名><输入数据结构输入数据结构>::=<广义数据结构广义数据结构><输出数据结构输出数据结构>::=<广义数据结构广义数据结构><局部数据结构局部数据结构>::=<广义数据结构广义数据结构><广广义义数数据据结结构构>::=STRUCTURE <广广义义数数据据结结构构名名> BEGIN <变变量量名名>:<变变量量类类型型>{;<变量名变量名>:<变量类型变量类型>} END<任务序列任务序列>::=PERFORMED BY <层次层次>.<角色名角色名>: <任务名任务名>{;<任务名任务名>}<角色名角色名>::=PD|PM|SA|DR|PR|CP|MA|GL|<用户自定义角色名用户自定义角色名> Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下<软件过程软件过程>::=PROCESS <软件过程名软件过程名> [FROM <软件过程名软件过程名>] {<活动活动>} BEGIN [<条件集定义条件集定义>;] [<活动集定义活动集定义>;] [<弧集定义弧集定义>] END;<条件集定义条件集定义>::=CONDITION SET BEGIN <条件名条件名>{;<条件名条件名>} END<活动集定义活动集定义>::=ACTIVITY SET BEGIN <活动名活动名>{;<活动名活动名>} END<弧集定义弧集定义>::=ARC SET BEGIN <弧元素弧元素>{;<弧元素弧元素>} END<弧元素弧元素>::=(<条件名条件名>,<活动名活动名>) | (<活动名活动名>,<条件名条件名>)软软 件过件过 程程 定义定义Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 系系 统统 动动 态态 开开 发发 模模 型型 <系统动态开发模型系统动态开发模型>::={#define <术语定义术语定义>;} SDDM 软件过程和软件过程内部的并行成分§层次化,可用来构造不同抽象级的软件过程,可通过层次化,可用来构造不同抽象级的软件过程,可通过实际的执行来验证不同抽象级的软件过程模型的一致实际的执行来验证不同抽象级的软件过程模型的一致性§可以挖掘软件过程内部的并行性,延拓局部的并行性可以挖掘软件过程内部的并行性,延拓局部的并行性到全局,提高了软件过程的并行度到全局,提高了软件过程的并行度 SDDM和和SDDMLEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 相关类型相关类型定定义义:: 活活动动相相关关图图是是一一个个三三元元组组ARG= 除除input(A)和和output(A)外外,,其其它它数数据据均均认认为为局局部部于于活动活动AEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 相关类型相关类型定定义义::在在活活动动相相关关图图ARG= 为控制相关类型Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 构造活动相关图构造活动相关图算法算法 (构造活动相关图ARG)输入:活动集E={A1,A2,…,An};input(Ai),output(Ai) (i=1,2,…,n);顺序关系S={ 输出:软件过程模型P= 输出:软件过程模型P= 输出:表明划分块之间是否相关的二维数组AB,划分Ab,BbBEGIN构造A关于RA的商集A/RA,得划分Ab={Ab1,Ab2,…,Abs};构造B关于RB的商集B/RB,得划分Bb={Bb1,Bb2,…,Bbt};AB[1..s,1..t]:=false;FOR i:=1 TO s DO FOR j:=1 TO t DO FOR i’:=1 TO si DO /*块Abi中有si个活动*/ FOR j’:=1 TO tj DO /*块Bbj中有tj 个活动*/ BEGIN 判别Abii’,Bbjj’之间的相关关系;/* Abii’∈Abi,Bbjj’∈Bbj*/ IF Abii’与Bbjj’ 相关 THEN AB[i,j]:=true ENDEND.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 算法(并行性延拓)算法(并行性延拓)输入:软件过程模型~P=<~C,~E,~ F>;活动集A={A1,A2,…,An},A的同步关系RA,活动Ai 的输入、输出数据集input(Ai)、output(Ai) (i=1,2,…,n);活动集B={B1,B2,…,Bm},B的同步关系RB,活动Bj 的输入、输出数据集input(Bj)、output(Bj) (j=1,2,…,m)。 输出:延拓中并行性后得到的新软件过程模型P= 广义步或者是一步s,或一步的逆s-1 (3) 对T中任一活动e,必存在C中的一个标记,使e在此标记下能点火Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 串行块串行块ei ejEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 并行块并行块eiejEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 互斥块互斥块ejeiEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 同步块同步块eje0eneiEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 重复块重复块ei ejEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.会泽百家 至公天下 基本块基本块 启动过程 过程进行 结束过程 start process finishEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. CCM建模方法建模方法输入: 启动过程指令“start”,结束过程指令“finish”,过程进行“process”,根据过程进行需要确定的可以并行进行的活动及相应的条件。 输出: CCM模型∑=(S,T, F,C) BEGIN S:={start, finish}; T:={process}; F:={
