新版软件体系结构(SoftwareArchitecture)培训课件.ppt

上传人(卖家):晟晟文业 文档编号:4832944 上传时间:2023-01-16 格式:PPT 页数:314 大小:1.98MB
下载 相关 举报
新版软件体系结构(SoftwareArchitecture)培训课件.ppt_第1页
第1页 / 共314页
新版软件体系结构(SoftwareArchitecture)培训课件.ppt_第2页
第2页 / 共314页
新版软件体系结构(SoftwareArchitecture)培训课件.ppt_第3页
第3页 / 共314页
新版软件体系结构(SoftwareArchitecture)培训课件.ppt_第4页
第4页 / 共314页
新版软件体系结构(SoftwareArchitecture)培训课件.ppt_第5页
第5页 / 共314页
点击查看更多>>
资源描述

1、软件体系结构软件体系结构(Software Architecture)讲义八:软件产品线实践与模式内容内容 软件产品线简介软件产品线简介 软件产品线的基本活动软件产品线的基本活动 典型的产品线实践域典型的产品线实践域 产品线实践模式产品线实践模式 案例研究案例研究 小结小结软件产品线简介软件产品线简介 背景背景(Background)概念概念(Concept)产品线的好处和代价产品线的好处和代价(Benefits and Costs of a Product Line)相关术语解释相关术语解释(Note on Terminology)背景背景(1/2)一个产品线一个产品线(Product Li

2、ne)是是共享一组公共的、可管理的共享一组公共的、可管理的特性,并且满足特定市场需求的特性,并且满足特定市场需求的产品集合产品集合 产品线方法必将成为新世纪中占主导地位的软件生产模产品线方法必将成为新世纪中占主导地位的软件生产模式,式,产品的灵活性是市场的必然需求,而产品线将通过裁剪,生产出产品的灵活性是市场的必然需求,而产品线将通过裁剪,生产出满足特定用户或用户群需要的产品满足特定用户或用户群需要的产品 从开发者的角度,产品线的成功在于产品之间通过共性的共享,从开发者的角度,产品线的成功在于产品之间通过共性的共享,达到了生产上经济的目的达到了生产上经济的目的 产品线方法在制造业中并不新鲜!产

3、品线方法在制造业中并不新鲜!但在软件开发中,但在软件开发中,CMU SEI提出的提出的“软件产品线软件产品线”还是还是比较新的概念,并被迄今为止的实践证明是可行的,可比较新的概念,并被迄今为止的实践证明是可行的,可以有效地提高生产率、缩短产品上市时间、提高质量和以有效地提高生产率、缩短产品上市时间、提高质量和客户满意度客户满意度背景背景(2/2)从构成软件成分的抽象粒度和面向应用的角度来看,软从构成软件成分的抽象粒度和面向应用的角度来看,软件开发的手段是不断提高的件开发的手段是不断提高的1960s,子程序,子程序(subroutines)1970s,模块,模块(modules)1980s,对象

4、,对象(objects)1990s,构件,构件(components)Now,系统,系统(Systems)产品线方法可以看作是软件复用发展的一个更高阶段产品线方法可以看作是软件复用发展的一个更高阶段概念概念 一个软件产品线是满足下列性质的一组软件系统:一个软件产品线是满足下列性质的一组软件系统:共享一组相同的、可管理的特性集合共享一组相同的、可管理的特性集合 满足一类特定的市场需求满足一类特定的市场需求 以预先规定的方式基于公共核心资产集合开发以预先规定的方式基于公共核心资产集合开发 在一个软件产品线中,新产品形成通过以下步骤:在一个软件产品线中,新产品形成通过以下步骤:从公共资产库中选取合适

5、的构件从公共资产库中选取合适的构件 使用预定义的变化性机制进行裁剪,如参数化、继承使用预定义的变化性机制进行裁剪,如参数化、继承 必要时增加新的构件必要时增加新的构件 在整个产品线范围内共同的体系结构指导下,进行构件组装,形成在整个产品线范围内共同的体系结构指导下,进行构件组装,形成系统系统 新产品新产品(系统系统)的开发从的开发从“创造创造”变为变为“组装组装(生成生成)”其中,占支配地位的活动是其中,占支配地位的活动是“集成集成”而非而非“编程编程”使用产品线的好处和代价使用产品线的好处和代价(1/7)使用产品线带来的好处和付出的代价都是与产品线中产使用产品线带来的好处和付出的代价都是与产

6、品线中产品之间的复用相关的品之间的复用相关的 好处好处1:产品线体系结构提供了在产品线中进行系统开发的结构,产品线体系结构提供了在产品线中进行系统开发的结构,构件间的关系和约束。一旦定义好了产品线体系结构,意味着产构件间的关系和约束。一旦定义好了产品线体系结构,意味着产品线中所有产品的系统设计已基本完成品线中所有产品的系统设计已基本完成 代价代价1:产品线体系结构必须支持产品线内部固有的变化性,所产品线体系结构必须支持产品线内部固有的变化性,所以除了定义构件本身和构件之间的约束(必需的,可选的,可替以除了定义构件本身和构件之间的约束(必需的,可选的,可替换的),还要定义在产品线中开发系统时构件

7、使用和演化的原则,换的),还要定义在产品线中开发系统时构件使用和演化的原则,增加了产品线体系结构定义的复杂性增加了产品线体系结构定义的复杂性 好处好处2:设计决策、数据结构、算法、文档、编码和调试信息等设计决策、数据结构、算法、文档、编码和调试信息等都属于可复用资产,它们在产品线的所有产品中可被反复使用都属于可复用资产,它们在产品线的所有产品中可被反复使用 代价代价2:因为可复用资产要适应不同产品之间的差异,所以要求因为可复用资产要适应不同产品之间的差异,所以要求可复用资产有足够通用的特性,同时要保证性能不被降低,增加可复用资产有足够通用的特性,同时要保证性能不被降低,增加了资产设计和实现的复

8、杂性了资产设计和实现的复杂性使用产品线的好处和代价使用产品线的好处和代价(2/7)好处好处3:为软件开发购买的开发环境、配置管理工具、设备管理为软件开发购买的开发环境、配置管理工具、设备管理工具可以在整个产品线中使用,相当于投资的工具可以在整个产品线中使用,相当于投资的“分期付款分期付款”代价代价3:要求这些可复用的工具和环境有足够的适应性,适应一要求这些可复用的工具和环境有足够的适应性,适应一个产品线的通用性又可以适应单独产品的变化性个产品线的通用性又可以适应单独产品的变化性,因此对这些,因此对这些工具和环境的要求较高工具和环境的要求较高 好处好处4:产品线是面向特定领域中的共性产品,开发人

9、员具有适产品线是面向特定领域中的共性产品,开发人员具有适应整个产品线的经验,可以按照需要随时转换项目,提高生产效应整个产品线的经验,可以按照需要随时转换项目,提高生产效率率 代价代价4:专业人员的培训需要花很大代价专业人员的培训需要花很大代价使用产品线的好处和代价使用产品线的好处和代价(3/7)CEO 更高的生产效率更高的生产效率 更快速的上市更快速的上市 持续的成长和市场份额持续的成长和市场份额 经济地获取特定市场领域的能力经济地获取特定市场领域的能力 COO 劳动力的有效使用劳动力的有效使用 开拓新市场、新技术和新产品的能力开拓新市场、新技术和新产品的能力 流动的人力资源流动的人力资源“池

10、池”技术经理技术经理 增长的可预测性增长的可预测性 良好建立的角色和责任良好建立的角色和责任 有效生产有效生产使用产品线的好处和代价使用产品线的好处和代价(4/7)软件产品开发人员软件产品开发人员 高昂的士气高昂的士气 更大的工作满足度更大的工作满足度 集中于产品真正的独特方面集中于产品真正的独特方面 方便的软件集成方便的软件集成 更少的交付延迟更少的交付延迟 组织内部更大的机动性组织内部更大的机动性 更强的市场化能力更强的市场化能力 有更多学习新技术的时间有更多学习新技术的时间 成为具有良好质量记录和信用记录的产品开发队伍成员成为具有良好质量记录和信用记录的产品开发队伍成员使用产品线的好处和

11、代价使用产品线的好处和代价(5/7)体系结构设计师或核心资产开发人员体系结构设计师或核心资产开发人员 更大的挑战更大的挑战 工作具有更大的影响工作具有更大的影响 组织内重要性的提升组织内重要性的提升 象产品线一样具有市场销路象产品线一样具有市场销路 市场销售人员市场销售人员 可预测的高质量产品可预测的高质量产品 可预测的交付时间可预测的交付时间 可以销售家族系列产品可以销售家族系列产品使用产品线的好处和代价使用产品线的好处和代价(6/7)客户客户 更高质量的产品更高质量的产品 可预测的交付时间可预测的交付时间 可预测的费用可预测的费用 特定需求的已知费用特定需求的已知费用 良好测试的培训材料和

12、文档良好测试的培训材料和文档 分享维护费用分享维护费用 加入一个用户组的潜在可能加入一个用户组的潜在可能 终端用户终端用户 更少的缺陷更少的缺陷 更好的培训材料和文档更好的培训材料和文档 建立与其他用户的网络建立与其他用户的网络使用产品线的好处和代价使用产品线的好处和代价(7/7)好处好处 一个人承担一个人承担150万行万行Ada源代码的集成和测试工作,该系统是一源代码的集成和测试工作,该系统是一个实时的、安全要求很高的舰船指挥和控制系统个实时的、安全要求很高的舰船指挥和控制系统 在三年的时间里,生产效率翻了在三年的时间里,生产效率翻了4番番(以单位时间内、每个工程师以单位时间内、每个工程师在

13、每个发布的产品中完成的功能数目来衡量在每个发布的产品中完成的功能数目来衡量)一周完成驱动内燃机运行的软件系统(甚至一个特殊情况在一个一周完成驱动内燃机运行的软件系统(甚至一个特殊情况在一个周末),而不是以前的一年时间周末),而不是以前的一年时间 比没有采用资产复用的预计时间提前了比没有采用资产复用的预计时间提前了12个月,参加军事模拟训个月,参加军事模拟训练练 代价代价 把资源用于核心资产库的开发,为此取消了三个大项目把资源用于核心资产库的开发,为此取消了三个大项目 重新安排不适应产品线方法的员工重新安排不适应产品线方法的员工 在新方法发挥作用之前,推迟产品发布一年时间在新方法发挥作用之前,推

14、迟产品发布一年时间相关术语解释相关术语解释(1/4)核心资产库(核心资产库(core assets base)核心资产库是产品线的基础,是管理支持产品开发的可复用资源核心资产库是产品线的基础,是管理支持产品开发的可复用资源的机制的机制 核心资产库中的资产通常包括核心资产库中的资产通常包括 体系结构、可复用软件构件、框架、领域模型、需求描述、文档体系结构、可复用软件构件、框架、领域模型、需求描述、文档和规约、性能模型和度量、日程、预算、测试计划、测试用例、和规约、性能模型和度量、日程、预算、测试计划、测试用例、工作计划、过程描述、通讯协议描述、用户界面描述、应用生成工作计划、过程描述、通讯协议描

15、述、用户界面描述、应用生成器、设计准则和设计决策,器、设计准则和设计决策,其中,体系结构是最为关键的资产其中,体系结构是最为关键的资产相关术语解释相关术语解释(2/4)开发(开发(development)“开发”在这里是一个广义的词,指的是如何获得核心资产(或在这里是一个广义的词,指的是如何获得核心资产(或产品)产品)软件进入一个组织可以通过以下三个渠道之一:软件进入一个组织可以通过以下三个渠道之一:自己构建自己构建(build),包括从零开始或从遗产系统中挖掘,包括从零开始或从遗产系统中挖掘直接购买直接购买(purchase),通常不做修改,通常不做修改委托加工委托加工(commission

16、),同别人签订合同为其特别定制,同别人签订合同为其特别定制 这里的这里的“开发开发”实际上包括构建、获取、购买、翻新老实际上包括构建、获取、购买、翻新老系统,或以上各种方式的组合系统,或以上各种方式的组合相关术语解释相关术语解释(3/4)产品线产品线(product line)vs.产品族产品族(product family)产品线是共享一组公共的、可管理的特性,并且满足特定市场需求的产品集合产品族是一组相关的软件系统,它们是基于公共的核心资产开发出来的 尽管产品线以产品族的方式构造是最高效的,但从技术尽管产品线以产品族的方式构造是最高效的,但从技术上来讲,产品线可以不是产品族上来讲,产品线可

17、以不是产品族 同样,如果产品族的结果产品在市场目标上彼此关系不同样,如果产品族的结果产品在市场目标上彼此关系不大,也不一定构成产品线大,也不一定构成产品线 注意:我们关于软件产品线的定义隐含了产品线是作为注意:我们关于软件产品线的定义隐含了产品线是作为一个产品族来开发的,并且其中的产品按照规定的方式一个产品族来开发的,并且其中的产品按照规定的方式开发开发 术语对照术语对照Product lineProduct familyCore assetsPlatformProduct familyPlatform-based familyBusiness unitProduct line相关术语解释相关

18、术语解释(4/4)内容内容 软件产品线简介软件产品线简介 软件产品线的基本活动软件产品线的基本活动 典型的产品线实践域典型的产品线实践域 产品线实践模式产品线实践模式 案例研究案例研究 小结小结产品线方法的基本活动产品线方法的基本活动 核心资产开发核心资产开发(Core Asset Development)产品开发产品开发(Product Development)管理管理(Management)产品线方法的基本活动产品线方法的基本活动领域工程和应用工程领域工程和应用工程 领域工程领域工程领域工程是为一组相似或相近系统的应用工程建立基本领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基

19、础的过程,它覆盖了建立可复用软件构件能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动。的所有活动。针对一个领域中的所有系统,而不局限于某个特定的系针对一个领域中的所有系统,而不局限于某个特定的系统。统。应用工程:应用工程:应用工程是开发单个特定应用系统的活动。应用工程是开发单个特定应用系统的活动。针对一组特定的需求,产生一个特定的解决方案。针对一组特定的需求,产生一个特定的解决方案。与应用工程相比,领域工程处于一个较高的抽象与应用工程相比,领域工程处于一个较高的抽象级别上。级别上。行为产品领域工程领域分析领域设计领域实现领域模型DSSA领域构件应用工程系统1系统2系统n分析用户需求设

20、计应用系统规约应用系统实现应用系统体系结构应用系统应用工程系统n+1基于领域模型的分析用户需求基于DSSA的设计应用系统规约应用系统实现/集成应用系统体系结构应用系统活动活动1:核心资产开发:核心资产开发核心资产开发活动的输入核心资产开发活动的输入(1/5)产品约束产品约束 产品线中的产品有哪些共性和变化性?产品线中的产品有哪些共性和变化性?它们提供哪些行为特性?它们提供哪些行为特性?根据市场和技术预测将来产品要具有哪些功能?根据市场和技术预测将来产品要具有哪些功能?遵循什么标准?遵循什么标准?满足哪些性能要求?满足哪些性能要求?同哪些外部系统交互?同哪些外部系统交互?满足哪些物理限制?满足哪

21、些物理限制?满足哪些质量要求(如可用性、安全性等)?满足哪些质量要求(如可用性、安全性等)?核心资产必须以最小牺牲产品质量(如安全性、可靠性、核心资产必须以最小牺牲产品质量(如安全性、可靠性、可用性等)的代价,换取对产品共性和个性的满足可用性等)的代价,换取对产品共性和个性的满足核心资产开发活动的输入核心资产开发活动的输入(2/5)风格、模式和框架风格、模式和框架 符合产品约束和生产约束的相关体系结构是什么?符合产品约束和生产约束的相关体系结构是什么?构件交互的协议和模式是什么?构件交互的协议和模式是什么?有哪些可用的设计模式?有哪些可用的设计模式?有哪些可用的应用框架?有哪些可用的应用框架?

22、尽管这些是体系结构定义的输入,它们被提高到如此高尽管这些是体系结构定义的输入,它们被提高到如此高度的目的在于强调体系结构在软件产品线实践中的重要度的目的在于强调体系结构在软件产品线实践中的重要性性核心资产开发活动的输入核心资产开发活动的输入(3/5)生产约束生产约束 产品线的产品要遵循哪些商业、军事或公司的规范?产品线的产品要遵循哪些商业、军事或公司的规范?产品线的产品所基于的底层基础设施是什么产品线的产品所基于的底层基础设施是什么?产品推向市场的时间需求是什么?产品推向市场的时间需求是什么?哪些哪些COTS构件是可用的?构件是可用的?哪些遗产构件可被复用?哪些遗产构件可被复用?对这些问题的回

23、答对核心资产的构造,以及核心资产自对这些问题的回答对核心资产的构造,以及核心资产自身具有显著的影响身具有显著的影响核心资产开发活动的输入核心资产开发活动的输入(4/5)生产策略生产策略 生产策略是实现核心资产的总体方法。生产策略是实现核心资产的总体方法。产品线采用自顶向下还是自底向上的开发方法?产品线采用自顶向下还是自底向上的开发方法?转移资产生产成本的策略是什么?转移资产生产成本的策略是什么?通用构件是自行开发还是从市场购买?通用构件是自行开发还是从市场购买?产品是自动生成还是组装?产品是自动生成还是组装?核心资产的生产如何管理?核心资产的生产如何管理?生产策略刻画了体系结构和相关构件的获得

24、及演化途径生产策略刻画了体系结构和相关构件的获得及演化途径核心资产开发活动的输入核心资产开发活动的输入(5/5)已有资产的清单已有资产的清单 在开发产品线之前有哪些可用的软件资产,譬如:库函数、框架、在开发产品线之前有哪些可用的软件资产,譬如:库函数、框架、算法、工具、构件等?算法、工具、构件等?有哪些可用的技术管理过程、预算模型、培训资源?有哪些可用的技术管理过程、预算模型、培训资源?资产清单包括所有事先存在的潜在资产。通过仔细分析,资产清单包括所有事先存在的潜在资产。通过仔细分析,开发组织可以确定什么是最适合利用的开发组织可以确定什么是最适合利用的核心资产开发活动的输出核心资产开发活动的输

25、出(1/2)产品线空间产品线空间(Scope)产品线空间描述了构成产品线的产品,不仅仅是产品名称的枚举产品线空间描述了构成产品线的产品,不仅仅是产品名称的枚举列表,还包括这些产品的共性和变化性,例如产品提供的操作,列表,还包括这些产品的共性和变化性,例如产品提供的操作,性能和其他质量属性,运行的平台等性能和其他质量属性,运行的平台等 此外,产品线空间会随着市场条件、组织计划、商业目标等的改此外,产品线空间会随着市场条件、组织计划、商业目标等的改变而不断演化,产品线空间的演化是产品线演化的起点变而不断演化,产品线空间的演化是产品线演化的起点 核心资产库核心资产库 资产库是利用产品线进行产品开发的

26、基础,包括:资产库是利用产品线进行产品开发的基础,包括:产品线中所有产品共享的体系结构产品线中所有产品共享的体系结构 支持系统复用的软件构件,包括设计和实现构件支持系统复用的软件构件,包括设计和实现构件 测试计划,测试用例,集成计划和各种文档测试计划,测试用例,集成计划和各种文档核心资产开发活动的输出核心资产开发活动的输出(2/2)生产计划生产计划 生产计划描述了怎样基于资产库开发产品生产计划描述了怎样基于资产库开发产品 所有上述核心资产,例如领域模型、需求、体系结构、构件、测所有上述核心资产,例如领域模型、需求、体系结构、构件、测试计划等,都有试计划等,都有“附带附带”的过程的过程(proc

27、ess)定义它们如何在产品开定义它们如何在产品开发中使用。生产计划基本上是这样一组发中使用。生产计划基本上是这样一组“附带附带”的过程,它描述的过程,它描述了这些个别的过程如何组合起来构建产品的总体方案了这些个别的过程如何组合起来构建产品的总体方案 生产计划为复用者提供了一个基于产品线开发产品的指南。每个生产计划为复用者提供了一个基于产品线开发产品的指南。每个产品的变化性是同预定义的变化点相一致的,例如,从分类的构产品的变化性是同预定义的变化点相一致的,例如,从分类的构件中选择一个提供某种特性,增加件中选择一个提供某种特性,增加/删除构件,通过继承或参数删除构件,通过继承或参数化裁剪构件化裁剪

28、构件 生产计划描述了产品之间必要的变化性,缺乏了生产计划,产品生产计划描述了产品之间必要的变化性,缺乏了生产计划,产品的开发者将不知道核心资产之间的联系,如何有效地和在产品线的开发者将不知道核心资产之间的联系,如何有效地和在产品线约束下利用它们约束下利用它们 基于核心资产、以生产计划为指导、生产出产品线空间基于核心资产、以生产计划为指导、生产出产品线空间的产品的产品开发核心资产库开发核心资产库(1/4)体系结构是产品线中最重要的核心资产,产品线的体系体系结构是产品线中最重要的核心资产,产品线的体系结构既要满足所有产品线空间中产品的共性,又要满足结构既要满足所有产品线空间中产品的共性,又要满足每

29、个产品的个性每个产品的个性 规定可能成为核心资产的软件构件规定可能成为核心资产的软件构件 解决核心资产库的构件和形成产品的构件之间的通信问题解决核心资产库的构件和形成产品的构件之间的通信问题 定义一致性规则以保证产品遵循体系结构规范定义一致性规则以保证产品遵循体系结构规范 保证体系结构在产品线生命周期中的可行性保证体系结构在产品线生命周期中的可行性 产品线空间的共性体现在体系结构中,变化性体现在可产品线空间的共性体现在体系结构中,变化性体现在可裁剪裁剪/可替换的构件中可替换的构件中 影响产品线体系结构开发的因素影响产品线体系结构开发的因素 产品线空间产品线空间 相关的风格、模式和应用框架相关的

30、风格、模式和应用框架 遗产系统的知识遗产系统的知识开发核心资产库开发核心资产库(2/4)体系结构在产品线中的意义体系结构在产品线中的意义 体系结构是核心资产库的关键部分,既体现了体系结构是核心资产库的关键部分,既体现了产品线的共性需求,又通过变化点支持产品空产品线的共性需求,又通过变化点支持产品空间中的一个产品谱系;间中的一个产品谱系;体系结构描述了产品线中产品的结构,而且体系结构描述了产品线中产品的结构,而且给出了核心资产库中构件的接口规约;给出了核心资产库中构件的接口规约;体系结构决定要开发哪些构件,决定哪些构件体系结构决定要开发哪些构件,决定哪些构件在整个产品线中是通用的而哪些构件在不同

31、实在整个产品线中是通用的而哪些构件在不同实例之间存在变化性;例之间存在变化性;开发一个体系结构需要产品空间、相关风格、开发一个体系结构需要产品空间、相关风格、模式和框架知识以及已有资产清单。模式和框架知识以及已有资产清单。开发核心资产库开发核心资产库(3/4)其他的核心资产包括同可复用软件构件相关的资产,其他的核心资产包括同可复用软件构件相关的资产,需求规约需求规约 设计设计/界面规约界面规约 代码代码 测试计划测试计划/案例案例/规程规程 性能模型性能模型 评审表格评审表格/规程规程 最后,需要定义当产品线演化时,核心资产将如何更新。最后,需要定义当产品线演化时,核心资产将如何更新。例如更多

32、的可用资源、技术改进、市场转向等影响了产例如更多的可用资源、技术改进、市场转向等影响了产品线空间品线空间开发核心资产库开发核心资产库(4/4)附加过程(附加过程(attached processes)定义产品空间定义产品空间 产品线空间确定了产品线中包含的产品,定义了产品的产品线空间确定了产品线中包含的产品,定义了产品的共性和变化性。产品线空间必须被认真定义,共性和变化性。产品线空间必须被认真定义,过宽:核心资产将无法适应广谱的变化性,生产的经济性将丧失,过宽:核心资产将无法适应广谱的变化性,生产的经济性将丧失,产品线将退化成产品线将退化成“一次一个产品一次一个产品”的老的开发模式的老的开发模

33、式 过窄:核心资产的通用性将无法适应未来发展的需要,并且规模过窄:核心资产的通用性将无法适应未来发展的需要,并且规模经济无法实现经济无法实现 影响产品线空间的因素影响产品线空间的因素 市场需求、竞争对手和企业目标市场需求、竞争对手和企业目标 产品约束,例如产品可以在哪些平台上运行和产品必须具有的性产品约束,例如产品可以在哪些平台上运行和产品必须具有的性能能 相关系统和产品相关系统和产品 对于市场和技术的预测对于市场和技术的预测开发生产计划开发生产计划 成功的产品线实践依赖于文档化的、被良好理解的、有成功的产品线实践依赖于文档化的、被良好理解的、有效的软件实践和过程,用于开发和演化产品、体系结构

34、效的软件实践和过程,用于开发和演化产品、体系结构和其他核心资产和其他核心资产 生产计划描述了如何基于资产库开发产品,制定将单个生产计划描述了如何基于资产库开发产品,制定将单个资产的资产的“附加附加”过程连接起来的全局策略,这些过程包过程连接起来的全局策略,这些过程包括:括:产品线的开发方式:自顶向下产品线的开发方式:自顶向下 vs.自底向上自底向上 体系结构的开发和维护体系结构的开发和维护 可裁剪可裁剪/可替换构件在开发产品过程中的使用方式可替换构件在开发产品过程中的使用方式 为使用、裁剪和演化核心资产,应用的特定工具为使用、裁剪和演化核心资产,应用的特定工具 度量由于产品线实践(或其它过程改

35、善)为企业带来的效益,并度量由于产品线实践(或其它过程改善)为企业带来的效益,并制定为度量采集相关数据的计划制定为度量采集相关数据的计划 生产计划在每次产品开发中被实例化生产计划在每次产品开发中被实例化产品线方法的基本活动产品线方法的基本活动活动活动2:产品开发活动:产品开发活动产品开发产品开发 产品开发活动是产品线的目标,核心资产开发只是达到产品开发活动是产品线的目标,核心资产开发只是达到该目的的一种手段。产品开发活动依赖于核心资产开发该目的的一种手段。产品开发活动依赖于核心资产开发活动的三个输出:活动的三个输出:产品线空间产品线空间 核心资产核心资产 生产计划,再加上生产计划,再加上 特定

36、产品的需求特定产品的需求 特定产品的需求经常表现为产品线通用需求的一个增量特定产品的需求经常表现为产品线通用需求的一个增量(delta),或一组产品线需求的增量,或一组产品线需求的增量 生产计划要被实例化为特定产品的生产计划生产计划要被实例化为特定产品的生产计划产品开发活动中输入产品开发活动中输入/输出关系输出关系 产品开发活动的输入和输出之间存在一个不断反馈和迭产品开发活动的输入和输出之间存在一个不断反馈和迭代的过程代的过程 快速生成产品线中特定成员的能力会影响产品线空间,也许被当快速生成产品线中特定成员的能力会影响产品线空间,也许被当初负责定义产品线空间的人所忽视初负责定义产品线空间的人所

37、忽视 每个新产品可能同其它产品相似,因此需要生成新的核心资产每个新产品可能同其它产品相似,因此需要生成新的核心资产 当更多的产品被生产出来时,生产的效率可能意味着需要新的系当更多的产品被生产出来时,生产的效率可能意味着需要新的系统生成过程,从而引起生产计划的变更统生成过程,从而引起生产计划的变更 产品线对客户的影响表现为,一个客户可能改变他的需求,以便产品线对客户的影响表现为,一个客户可能改变他的需求,以便同产品线空间保持一致,从而达到利用产品线优势,缩短产品上同产品线空间保持一致,从而达到利用产品线优势,缩短产品上市时间、提高可靠性和降低开发成本的目的市时间、提高可靠性和降低开发成本的目的软

38、件产品的开发软件产品的开发/获取获取 产品开发的方式产品开发的方式 产品线中的产品由一个产品组开发;产品线中的产品由一个产品组开发;产品线中的产品由分布在整个企业的不同产品产品线中的产品由分布在整个企业的不同产品组开发;组开发;产品开发的活动(应用工程)产品开发的活动(应用工程)特定系统需求获取特定系统SA的获取可复用构件的选择和组装变化性处理管理管理 管理在成功的产品线实践中起着关键的作用管理在成功的产品线实践中起着关键的作用 为产品线中的各个活动合理分配资源,起协调监督的作用为产品线中的各个活动合理分配资源,起协调监督的作用 协调核心资产开发和产品开发迭代过程中的技术活动协调核心资产开发和

39、产品开发迭代过程中的技术活动 设置适当的组织机构,以保证组织内的各部门得到足够数量的合设置适当的组织机构,以保证组织内的各部门得到足够数量的合适资源(如,良好训练的员工)适资源(如,良好训练的员工)为保证核心资产演化,确定合适的预算模型,并提供相应的资金为保证核心资产演化,确定合适的预算模型,并提供相应的资金 组织核心资产库中的资产,以方便查找合适的可复用资产组织核心资产库中的资产,以方便查找合适的可复用资产 如果产品线外包给其他公司,管理活动负责监督承包人,确保资如果产品线外包给其他公司,管理活动负责监督承包人,确保资产和产品符合合同要求,通过资产库达到企业目标产和产品符合合同要求,通过资产

40、库达到企业目标 管理部门与外部的接口管理部门与外部的接口 推选一位称职的管理者,称为推选一位称职的管理者,称为Product Line Champion内容内容 软件产品线简介软件产品线简介 软件产品线的基本活动软件产品线的基本活动 典型的产品线实践域典型的产品线实践域 产品线实践模式产品线实践模式 案例研究案例研究 小结小结典型的产品线实践域典型的产品线实践域 基本概念基本概念(Basic Terminology)产品线实践域分类产品线实践域分类(Categories of Practice Areas)重要实践域重要实践域(Important Practice Areas)基本概念基本概念

41、(1/2)一个实践域是一组活动的集合或工作体一个实践域是一组活动的集合或工作体(body of work),组织必须掌握,以便成功地实施产品线的基本工作组织必须掌握,以便成功地实施产品线的基本工作 实践域是对产品线基本活动(如实践域是对产品线基本活动(如“开发核心资产开发核心资产”)的细化,通)的细化,通过定义一组较小且易于管理的活动,有助于达到目标过定义一组较小且易于管理的活动,有助于达到目标 实践域为组织采用产品线方法提供了起点实践域为组织采用产品线方法提供了起点 为了能够执行每个实践域的基本活动,要求掌握相关的为了能够执行每个实践域的基本活动,要求掌握相关的实践域。这里的实践域。这里的“

42、掌握掌握”意味着,能够重复成功的实践意味着,能够重复成功的实践 企业的能力成熟度需要达到企业的能力成熟度需要达到CMM2级!级!基本概念基本概念(2/2)尽管很多实践域在任何成功的软件开发中都是基本要素,尽管很多实践域在任何成功的软件开发中都是基本要素,但在产品线方法中有其同单个系统工程不同的特性但在产品线方法中有其同单个系统工程不同的特性 描述实践域的模板描述实践域的模板 描述描述(Introductory overview)产品线的特有之处产品线的特有之处(Aspects peculiar to product lines)应用于资产开发应用于资产开发(How applied to cor

43、e asset development)应用于产品开发应用于产品开发(How applied to product development)具体实践具体实践(Specific practices)实践风险实践风险(Practice risks)参考参考(References)初始级(1)软件配置管理 软件质量保证 软件子合同管理 软件项目跟踪和监督 软件项目规划需求管理可重复级(2)定义级(3)软件质量管理量化的过程管理管理级(4)过程变化管理 技术变化管理错误预防优化级(5)软件配置管理 软件质量保证 软件子合同管理 软件项目跟踪和监督 软件项目规划需求管理 对等复审 组间协作 软件产品工程

44、 集成的软件管理 培训计划 组织过程定义组织过程关注CMM的关键过程域的关键过程域(KPAs)产品线实践域分类产品线实践域分类 产品线的实践域可以粗略地分为三类产品线的实践域可以粗略地分为三类 软件工程实践类:软件工程实践类:采用合适的技术采用合适的技术创建和演化核心资创建和演化核心资产及产品的实践产及产品的实践 技术管理实践类:技术管理实践类:采用工程化方法采用工程化方法创建和演化核心资创建和演化核心资产及产品的管理实践产及产品的管理实践 组织管理实践类:组织管理实践类:协调整个产品线活动协调整个产品线活动的管理实践的管理实践软件工程实践类软件工程实践类 软件工程实践类是那些采用合适的技术创

45、建和演化核心软件工程实践类是那些采用合适的技术创建和演化核心资产及产品的实践:资产及产品的实践:9项项 体系结构定义体系结构定义(Architecture Definition)体系结构评价体系结构评价(Architecture Evaluation)构件开发构件开发(Component Development)COTS利用利用(COTS Utilization)挖掘现存资产挖掘现存资产(Mining Existing Assets)需求工程需求工程(Requirements Engineering)软件系统集成软件系统集成(Software System Integration)测试测试(T

46、esting)理解相关领域理解相关领域(Understanding Relevant Domains)技术管理实践类技术管理实践类 技术管理实践类是使创建和演化核心资产及产品技术管理实践类是使创建和演化核心资产及产品“工程工程化化”的管理实践:的管理实践:8项项 配置管理配置管理(Configuration Management)数据收集、度量和跟踪数据收集、度量和跟踪(Data Collection,Metrics,and Tracking)开发开发/购买购买/挖掘挖掘/委托的分析委托的分析(Make/Buy/Mine/Commission Analysis)过程定义过程定义(Process

47、 Definition)产品线范围确定产品线范围确定(Product Line Scoping)技术规划技术规划(Technical Planning)技术风险管理技术风险管理(Technical Risk Management)工具支持工具支持(Tool Support)组织管理实践类组织管理实践类 组织管理实践类用于协调整个产品线的活动:组织管理实践类用于协调整个产品线的活动:12项项 形成合适的组织结构形成合适的组织结构(Achieving the Right Organizational Structure)构建和交流商业实例构建和交流商业实例(Building and Communi

48、cating a Business Case)用户界面管理用户界面管理(Customer Interface Management)开发和实现获取策略开发和实现获取策略(Developing and Implementing an Acquisition Strategy)投资预算投资预算(Funding)启动和制度化产品线启动和制度化产品线(Launching and Institutionalizing a Product Line)市场分析市场分析(Market Analysis)操作操作(Operations)组织计划组织计划(Organizational Planning)组织风险管

49、理组织风险管理(Organizational Risk Management)技术预测技术预测(Technology Forecasting)培训培训(Training)实践域同基本活动的关系实践域同基本活动的关系(1/3)软件工程实践域和基本活动“开发核心资产开发核心资产”的输出的输出“开发产品开发产品”的输出的输出管理管理产品线范围产品线范围 核心资产核心资产生产计划生产计划产品产品体系结构定义体系结构定义X体系结构评估体系结构评估XX构件开发构件开发XCOTS利用利用X挖掘现存资产挖掘现存资产X需求工程需求工程XXX软件系统集成软件系统集成XX测试测试XX理解相关领域理解相关领域X实践域

50、同基本活动的关系实践域同基本活动的关系(2/3)技术管理实践域和基本活动“开发核心资产开发核心资产”的输出的输出“开发产品开发产品”的输出的输出管理管理产品线范围产品线范围 核心资产核心资产生产计划生产计划产品产品配置管理配置管理XX数据收集、度量和数据收集、度量和跟踪跟踪XX开发开发/购买购买/挖掘挖掘/委委托的分析托的分析X过程分析过程分析XX产品线范围确定产品线范围确定X技术规划技术规划XX技术风险管理技术风险管理XXX工具支持工具支持XXX实践域同基本活动的关系实践域同基本活动的关系(3/3)组织管理实践域和基本活动“开发核心资产开发核心资产”的输出的输出“开发产品开发产品”的输出的输

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(新版软件体系结构(SoftwareArchitecture)培训课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|