软件体系结构课件-(第十四课)软件产品线_第1页
软件体系结构课件-(第十四课)软件产品线_第2页
软件体系结构课件-(第十四课)软件产品线_第3页
软件体系结构课件-(第十四课)软件产品线_第4页
软件体系结构课件-(第十四课)软件产品线_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件产品线

(SoftwareProductline)软件产品线

(SoftwareProductline)1产品线简介背景(Background)概念(Concept)产品线的好处和代价(BenefitsandCostsofaProductLine)相关术语解释(Noteonterminology)产品线简介背景(Background)2背景背景3背景产品线方法将成为新世纪中占主导地位的软件生产模式-产品的灵活性是市场的必然需求,而产品线将通过裁剪,生产出满足特定用户或用户群需要的产品-从开发者的角度,产品线的成功在于产品之间通过共性的共享,达到了生产上经济的目的在软件开发中,CMUSEI提出的“软件产品线”还是比较新的概念,并被迄今为止的实践证明是可行的,可以有效地提高生产率、缩短产品上市时间、提高质量和客户满意度。背景产品线方法将成为新世纪中占主导地位的软件生产模式4产品线的概念

Aproductlineisagroupofproductssharingacommon,managedsetoffeaturesthatsatisfyspecificneedsofaselectedmarket.一个软件产品线是满足下列性质的一组软件产品:-共享一组相同的、可管理的特性的集合-满足一类特定的市场需求产品线的概念Aproductlineisagr5产品线中新产品的制造过程在一个软件产品线中,新产品形成通过以下步骤:-从公共核心资产库(coreassetsbase)中选取合适的构件-使用预定义的变化性机制进行裁剪,如:参数化、继承-必要时增加新的构件-在整个产品线范围内共同的体系结构指导下,进行构件组装,形成系统新产品的开发从“创造”变为“组装”-其中,占支配地位的活动是“集成”而非“编程”产品线中新产品的制造过程在一个软件产品线中,新产品形成通过以6相关概念公共核心资产库(coreassetsbase)COTS(CommercialOff-the-Shelf)相关概念公共核心资产库(coreassetsbase)7

公共核心资产库(coreassetsbase)其中保存可重用资产,这些资产可被应用到多个系统中。是产品线的基础,是管理支持产品开发的可复用资源的机制

公共核心资产库(coreassetsbase)其中保8核心资产库中的资源通常包括:体系结构、可复用软件构件、领域模型、需求描述、文档和规约、性能模型和度量、日程、预算、测试计划、测试用例、工作计划、过程描述、通讯协议和描述、用户界面描述、应用生成器、设计准则和设计决策,…其中,体系结构是最关键的资产软件体系结构课件_(第十四课)软件产品线9COTSCOTS(CommercialOff-the-Shelf)商业构件(开架出售的构件)(软件行业里的分工)构件经过对某个领域中的分析,这个领域里面经常会用的,共性的,完成一定功能的部分,做成一个构件。?和类相比有何不同?体系结构和COTS的关系COTSCOTS(CommercialOff-the-Sh10COTS-IntensiveSystemCOTS-IntensiveSystem11软件产品线与复用软件产品线为重用建立了一个非常严格的上下文来使其发挥作用(产品线依赖战略性的或经过规划的重用而非机会主义重用来发挥作用)软件产品线与复用软件产品线为重用建立了一个非常严格的上下文来12Marketstrategy/ApplicationdomainPertaintoShareanArebuiltfromarchitectureIssatisfiedbyComponentIsusedtostructureMarketstrategy/PertaintoShar13CasestudiesShowSuccessfulproductlinescannotbeachievedbytechnologicalmeansalone-productlinesaremostoftendrivenbyorganizational,economic,andmarketconditionsCasestudiesShowSuccessfulpr143Primaryfocusareas软件工程技术管理工作组织管理工作3Primaryfocusareas软件工程15SoftwareEngineeringPracticeUnderstandingrelevantdomains

RequirementsengineeringArchitecturedefinition

architectureevaluationComponentdevelopment

COTSutilizationMiningexistingassetsSoftwaresystemintegrationTestingSoftwareEngineeringPracticeU16软件产品线相关人员领域专家:研究该领域里的共同点,做相关的构件应用开发人员:实际需求来了,进行系统开发软件产品线相关人员领域专家:研究该领域里的共同点,做相关的构17产品线方法的基本活动产品线方法的基本活动18核心资产开发核心资产开发19核心资产开发活动的目标产品线空间核心资产库生产计划基于核心资产,以生产计划为指导,生产出产品线空间中的产品。核心资产开发活动的目标产品线空间20产品线空间描述了构成产品线的产品,不仅仅是产品名称的列表,还包括这些产品的共性和变化性,例如产品提供的操作,性能和其他质量属性,运行的平台等等。产品线空间描述了构成产品线的产品,不仅仅是产品名称的列表,还21核心资产库是利用产品线进行产品开发的基础,包括:

产品线中所有产品共享的体系结构支持系统复用的软件构件,包括设计和实现构件测试计划,测试用例,集成计划和各种文档核心资产库是利用产品线进行产品开发的基础,包括:22核心资产开发活动的输入(1)产品约束-产品线中的产品有哪些共性和个性-它们提供哪些行为特性-根据市场和技术预测将来产品要具有哪些功能-遵循什么标准-满足哪些性能标准-同哪些外部系统交互-满足哪些物理限制-满足哪些质量要求核心资产必须以最小牺牲产品质量的代价,换取对产品共性和个性的满足。核心资产开发活动的输入(1)产品约束23核心资产开发活动的输入(2)风格、模式和框架-符合产品约束和生产约束的相关体系结构是什么-构件交互的协议和模式是什么-有哪些可用的设计模式-有哪些可用的应用框架尽管这些都是体系结构定义的输入,它们被提高到如此高度的目的在于强调体系结构在软件产品线实践中的重要性。核心资产开发活动的输入(2)风格、模式和框架24核心资产开发活动的输入(3)生产约束产品线的产品要遵循哪些商业、军事或公司的规范产品线的产品所基于的底层基础设施是什么产品推向市场的时间需求是什么哪些COTS构件是可用的哪些遗产构件可被复用对这些问题的回答对核心资产的构造,以及核心资产自身具有显著的影响核心资产开发活动的输入(3)生产约束25核心资产开发活动的输入(4)生产策略是实现核心资产的总体方法产品线采用自顶向下还是自底向上的开发方法转移资产生产成本的策略是什么通用构件是自行开发还是从市场购买产品是自动生成还是组装核心资产的生产如何管理生产策略刻画了体系结构和相关构件的获得及演化途径-

核心资产开发活动的输入(4)生产策略26核心资产开发活动的输入(5)已有资产的清单在开发产品线之前有哪些可用的软件资产,比如:函数库、框架、算法、工具、构件等有哪些可用的技术管理过程、预算模型、培训资源?资产清单包括所有事先存在的潜在资产,通过仔细分析,开发组织可以确定什么是最适合利用的核心资产开发活动的输入(5)已有资产的清单27定义产品空间产品线空间定义了产品线中包含的产品,定义了产品的共性和变化性,产品线空间必须被认真定义:-过宽:核心资产将无法适应广谱的变化性,生产的经济性将丧失,产品线将退化成“一次一个产品”的老的开发模式过窄:核心资产的通用性将无法适应未来发展的需要,并且规模经济无法实现影响产品线空间的因素市场需求,竞争对手和企业目标产品约束,例如产品可以在哪些平台上运行以及产品具有的性能相关系统和产品对于市场和技术的预测定义产品空间产品线空间定义了产品线中包含的产品,定义了产品的28开发核心资产库(1)体系结构是产品线中最重要的核心资产,产品线的体系结构既要满足所有产品线空间中产品的共性,又要满足每个产品的个性规定可能成为核心资产的软件构件解决核心资产库的构件和形成产品的构件之间的通信问题定义一致性规则以保证产品遵循体系结构规范保证体系结构在产品线生命周期中的可行性产品线空间的共性体现在体系结构中,变化性体现在可裁剪/可替换的构件中影响产品线体系结构开发的因素:产品线空间相关的模式风格和应用框架遗产系统的知识开发核心资产库(1)体系结构是产品线中最重要的核心资产,产品29开发核心资产库(2)其他的核心资产包括同可复用软件构件相关的资产:需求规约设计/界面规约代码测试计划/案例/规程性能模型评审表格/规程…最后,需要定义当产品线演化时,核心资产将如何更新。例如更多的可用资源、技术改进、市场转向等影响了产品线空间。开发核心资产库(2)其他的核心资产包括同可复用软件构件相关的30生产计划:-生产计划描述了怎样基于资产库开发产品-所有上述核心资产,例如领域模型、需求、体系结构、构件、测试计划等,都有“附带”的过程,它描述了这些个别的过程如何组合起来构建产品的总体方案-生产计划为复用者提供了一个基于产品线开发产品的指南。每个产品的变化性是同预定义的变化点相一致的,例如:从分类的构件中选择一个提供某种特性,增加/删除构件,通过继承或参数化裁剪构件-生产计划描述了产品之间必要的变化性,缺乏了生产计划,产品的开发者将不知道核心资产之间的联系,如何有效地和在产品线约束下利用它们。生产计划:31开发生产计划成功的产品线实践依赖于文档化的、被良好理解的、有效的软件实践和过程,用于开发和演化产品、体系结构和其他核心资产生产计划描述了如何基于资产库开发产品,制定将单个资产的“附加”过程连接起来的全局策略,这些过程包括:-产品线的开发方式:自顶向下vs自底向上-体系结构的开发和维护-可裁剪可替换构件在开发产品过程中的使用方式-为使用、裁剪和演化核心资产,应用的特定工具-度量由于产品线实践(或其它过程改善)为企业带来的效益,并制定为度量采集相关数据的计划生产计划在每次产品开发中被实例化开发生产计划成功的产品线实践依赖于文档化的、被良好理解的、有32产品开发活动(Productdevelopment)产品开发活动(Productdevelopment)33产品开发活动是产品线的目标,核心资产开发只是达到该目的的一个手段。产品开发活动依赖于核心资产开发活动的三个输出:-产品线空间-核心资产-生产计划,再加上-特定产品需求:经常表现为产品线通用需求的一个增量(delta),或一组产品线需求的增量生产计划要被实例化为特定产品的生产计划产品开发活动是产品线的目标,核心资产开发只是达到该目的的一个34产品开发活动中输入/输出关系产品开发活动的输入和输出之间存在着一个不断反馈和叠代的过程快速生成产品线中特定成员的能力会影响产品线空间,也许被当初定义产品线空间的人所忽视每个新产品可能同其它产品相似,因此需要生成新的核心资产当更多的产品被生产出来时,生产的效率可能意味着需要新的系统生成过程,从而引起生产计划的变更产品线对客户的影响表现为,一个客户可能改变他的需求,以便同产品线空间保持一致,从而达到利用产品线优势,缩短产品上市时间、提高可靠性和降低开发成本的目的。产品开发活动中输入/输出关系产品开发活动的输入和输出之间存在35管理管理在成功的产品线实践中起着关键的作用为产品线中的各个活动分配资源协调核心资产开发和产品开发叠代过程中的技术活动设置适当的组织机构,以保证组织内的各部门得到足够数量的合适资源(如:良好训练的员工)为保证核心资产演化,确定合适的预算模型,并提供相应的资金组织核心资产库中的资产,以方便查找合适的可复用资产如果产品线外包给其他公司,管理活动负责监督承包人,确保资产和产品符合合同要求,通过资产库达到企业目标管理部门与外部的接口推选一位称职的管理者,成为productlinechampion管理管理在成功的产品线实践中起着关键的作用36使用产品线的好处和代价(1)和产品复用(Reuse)有关好处1:产品线体系结构提供了在产品线中进行系统开发的结构,构件间的关系和约束。一旦定义好了产品线体系结构,意味着产品线中所有产品的系统设计已基本完成。代价1:产品线体系结构必须支持产品线内部固有的变化性,所以除了定义构件本身和构件之间的约束(必需的、可选的、可替换的),还要定义在产品线中开发系统时构件使用和演化的原则,增加了产品线体系结构定义的复杂性。使用产品线的好处和代价(1)和产品复用(Reuse)有关37使用产品线的好处和代价(2)好处2:设计决策、数据结构、算法、文档、编码和调试信息等都属于可复用资产,它们在产品线的所有产品中可被反复使用。代价2:因为可复用资产要适应不同产品之间的差异,所以要求可复用资产要有足够通用的特性,同时要保证性能不被降低,增加了资产设计和实现的复杂性。好处3:为软件开发购买的开发环境、配置管理工具、设备管理工具可以在整个产品线中使用,相当于投资的“分期付款”。代价3:要求这些可复用的工具和环境有足够的适应性,适应一个产品线的通用性又可以适应单独产品的变化性,因此对这些工具和环境的要求较高。使用产品线的好处和代价(2)好处2:设计决策、数据结构、算38使用产品线的好处和代价(3)好处4:产品线是面向特定领域中的共性产品,开发人员具有适应整个产品线的经验,可以按照需要随时转换项目,提高生产效率。代价4:专业人员的培训需要花很大代价。使用产品线的好处和代价(3)好处4:产品线是面向特定领域中的39Theend软件体系结构课件_(第十四课)软件产品线40软件产品线

(SoftwareProductline)软件产品线

(SoftwareProductline)41产品线简介背景(Background)概念(Concept)产品线的好处和代价(BenefitsandCostsofaProductLine)相关术语解释(Noteonterminology)产品线简介背景(Background)42背景背景43背景产品线方法将成为新世纪中占主导地位的软件生产模式-产品的灵活性是市场的必然需求,而产品线将通过裁剪,生产出满足特定用户或用户群需要的产品-从开发者的角度,产品线的成功在于产品之间通过共性的共享,达到了生产上经济的目的在软件开发中,CMUSEI提出的“软件产品线”还是比较新的概念,并被迄今为止的实践证明是可行的,可以有效地提高生产率、缩短产品上市时间、提高质量和客户满意度。背景产品线方法将成为新世纪中占主导地位的软件生产模式44产品线的概念

Aproductlineisagroupofproductssharingacommon,managedsetoffeaturesthatsatisfyspecificneedsofaselectedmarket.一个软件产品线是满足下列性质的一组软件产品:-共享一组相同的、可管理的特性的集合-满足一类特定的市场需求产品线的概念Aproductlineisagr45产品线中新产品的制造过程在一个软件产品线中,新产品形成通过以下步骤:-从公共核心资产库(coreassetsbase)中选取合适的构件-使用预定义的变化性机制进行裁剪,如:参数化、继承-必要时增加新的构件-在整个产品线范围内共同的体系结构指导下,进行构件组装,形成系统新产品的开发从“创造”变为“组装”-其中,占支配地位的活动是“集成”而非“编程”产品线中新产品的制造过程在一个软件产品线中,新产品形成通过以46相关概念公共核心资产库(coreassetsbase)COTS(CommercialOff-the-Shelf)相关概念公共核心资产库(coreassetsbase)47

公共核心资产库(coreassetsbase)其中保存可重用资产,这些资产可被应用到多个系统中。是产品线的基础,是管理支持产品开发的可复用资源的机制

公共核心资产库(coreassetsbase)其中保48核心资产库中的资源通常包括:体系结构、可复用软件构件、领域模型、需求描述、文档和规约、性能模型和度量、日程、预算、测试计划、测试用例、工作计划、过程描述、通讯协议和描述、用户界面描述、应用生成器、设计准则和设计决策,…其中,体系结构是最关键的资产软件体系结构课件_(第十四课)软件产品线49COTSCOTS(CommercialOff-the-Shelf)商业构件(开架出售的构件)(软件行业里的分工)构件经过对某个领域中的分析,这个领域里面经常会用的,共性的,完成一定功能的部分,做成一个构件。?和类相比有何不同?体系结构和COTS的关系COTSCOTS(CommercialOff-the-Sh50COTS-IntensiveSystemCOTS-IntensiveSystem51软件产品线与复用软件产品线为重用建立了一个非常严格的上下文来使其发挥作用(产品线依赖战略性的或经过规划的重用而非机会主义重用来发挥作用)软件产品线与复用软件产品线为重用建立了一个非常严格的上下文来52Marketstrategy/ApplicationdomainPertaintoShareanArebuiltfromarchitectureIssatisfiedbyComponentIsusedtostructureMarketstrategy/PertaintoShar53CasestudiesShowSuccessfulproductlinescannotbeachievedbytechnologicalmeansalone-productlinesaremostoftendrivenbyorganizational,economic,andmarketconditionsCasestudiesShowSuccessfulpr543Primaryfocusareas软件工程技术管理工作组织管理工作3Primaryfocusareas软件工程55SoftwareEngineeringPracticeUnderstandingrelevantdomains

RequirementsengineeringArchitecturedefinition

architectureevaluationComponentdevelopment

COTSutilizationMiningexistingassetsSoftwaresystemintegrationTestingSoftwareEngineeringPracticeU56软件产品线相关人员领域专家:研究该领域里的共同点,做相关的构件应用开发人员:实际需求来了,进行系统开发软件产品线相关人员领域专家:研究该领域里的共同点,做相关的构57产品线方法的基本活动产品线方法的基本活动58核心资产开发核心资产开发59核心资产开发活动的目标产品线空间核心资产库生产计划基于核心资产,以生产计划为指导,生产出产品线空间中的产品。核心资产开发活动的目标产品线空间60产品线空间描述了构成产品线的产品,不仅仅是产品名称的列表,还包括这些产品的共性和变化性,例如产品提供的操作,性能和其他质量属性,运行的平台等等。产品线空间描述了构成产品线的产品,不仅仅是产品名称的列表,还61核心资产库是利用产品线进行产品开发的基础,包括:

产品线中所有产品共享的体系结构支持系统复用的软件构件,包括设计和实现构件测试计划,测试用例,集成计划和各种文档核心资产库是利用产品线进行产品开发的基础,包括:62核心资产开发活动的输入(1)产品约束-产品线中的产品有哪些共性和个性-它们提供哪些行为特性-根据市场和技术预测将来产品要具有哪些功能-遵循什么标准-满足哪些性能标准-同哪些外部系统交互-满足哪些物理限制-满足哪些质量要求核心资产必须以最小牺牲产品质量的代价,换取对产品共性和个性的满足。核心资产开发活动的输入(1)产品约束63核心资产开发活动的输入(2)风格、模式和框架-符合产品约束和生产约束的相关体系结构是什么-构件交互的协议和模式是什么-有哪些可用的设计模式-有哪些可用的应用框架尽管这些都是体系结构定义的输入,它们被提高到如此高度的目的在于强调体系结构在软件产品线实践中的重要性。核心资产开发活动的输入(2)风格、模式和框架64核心资产开发活动的输入(3)生产约束产品线的产品要遵循哪些商业、军事或公司的规范产品线的产品所基于的底层基础设施是什么产品推向市场的时间需求是什么哪些COTS构件是可用的哪些遗产构件可被复用对这些问题的回答对核心资产的构造,以及核心资产自身具有显著的影响核心资产开发活动的输入(3)生产约束65核心资产开发活动的输入(4)生产策略是实现核心资产的总体方法产品线采用自顶向下还是自底向上的开发方法转移资产生产成本的策略是什么通用构件是自行开发还是从市场购买产品是自动生成还是组装核心资产的生产如何管理生产策略刻画了体系结构和相关构件的获得及演化途径-

核心资产开发活动的输入(4)生产策略66核心资产开发活动的输入(5)已有资产的清单在开发产品线之前有哪些可用的软件资产,比如:函数库、框架、算法、工具、构件等有哪些可用的技术管理过程、预算模型、培训资源?资产清单包括所有事先存在的潜在资产,通过仔细分析,开发组织可以确定什么是最适合利用的核心资产开发活动的输入(5)已有资产的清单67定义产品空间产品线空间定义了产品线中包含的产品,定义了产品的共性和变化性,产品线空间必须被认真定义:-过宽:核心资产将无法适应广谱的变化性,生产的经济性将丧失,产品线将退化成“一次一个产品”的老的开发模式过窄:核心资产的通用性将无法适应未来发展的需要,并且规模经济无法实现影响产品线空间的因素市场需求,竞争对手和企业目标产品约束,例如产品可以在哪些平台上运行以及产品具有的性能相关系统和产品对于市场和技术的预测定义产品空间产品线空间定义了产品线中包含的产品,定义了产品的68开发核心资产库(1)体系结构是产品线中最重要的核心资产,产品线的体系结构既要满足所有产品线空间中产品的共性,又要满足每个产品的个性规定可能成为核心资产的软件构件解决核心资产库的构件和形成产品的构件之间的通信问题定义一致性规则以保证产品遵循体系结构规范保证体系结构在产品线生命周期中的可行性产品线空间的共性体现在体系结构中,变化性体现在可裁剪/可替换的构件中影响产品线体系结构开发的因素:产品线空间相关的模式风格和应用框架遗产系统的知识开发核心资产库(1)体系结构是产品线中最重要的核心资产,产品69开发核心资产库(2)其他的核心资产包括同可复用软件构件相关的资产:需求规约设计/界面规约代码测试计划/案例/规程性能模型评审表格/规程…最后,需要定义当产品线演化时,核心资产将如何更新。例如更多的可用资源、技术改进、市场转向等影响了产品线空间。开发核心资产库(2)其他的核心资产包括同可复用软件构件相关的70生产计划:-生产计划描述了怎样基于资产库开发产品-所有上述核心资产,例如领域模型、需求、体系结构、构件、测试计划等,都有“附带”的过程,它描述了这些个别的过程如何组合起来构建产品的总体方案-生产计划为复用者提供了一个基于产品线开发产品的指南。每个产品的变化性是同预定义的变化点相一致的,例如:从分类的构件中选择一个提供某种特性,增加/删除构件,通过继承或参数化裁剪构件-生产计划描述了产品之间必要的变化性,缺乏了生产计划,产品的开发者将不知道核心资产之间的联系,如何有效地和在产品线约束下利用它们。生产计划:71开发生产计划成功的产品线实践依赖于文档化的、被良好理解的、有效的软件实践和过程,用于开发和演化产品、体系结构和其他核心资产生产计划描述了如何基于资产库开发产品,制定将单个资产的“附加”过程连接起来的全局策略,这些过程包括:-产品线的开发方式:自顶向下vs自底向上-体系结构的开发和维护-可裁剪可替换构件在开发产品过程中的使用方式-为使用、裁剪和演化核心资产,应用的特定工具-度量由于产品线实践(或其它过程改善)为企业带来的效益,并制定为度量采集相关数据的计划生产计划在每次产品开发中被实例化开发生产计划成功的产品线实践依赖于文档化的、被良好理解的、有72产品开发活动(Productdevelopment)产品开发活动(Productdevelopment)73产品开发活动是产品线的目标,核心资产开发只是达到该目的的一个手段。产品开发活动依赖于核心资产开发活动的三个输出:-产品线空间-核心资产-生产计划,再加上-特定产品需求:经常表现为产品线通用需求的一个增量(delta),或一组产品线需求的增量生产计划要被实例化为特定产品的生产计划产品开发活动是产品线的目标,核心资产开发只是达到该目的的一个74产品开发活动中输入/输出关系产

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论