软件体系结构(sa)softwarearchitecture

上传人:ldj****22 文档编号:50692694 上传时间:2018-08-10 格式:PPT 页数:58 大小:462.50KB
返回 下载 相关 举报
软件体系结构(sa)softwarearchitecture_第1页
第1页 / 共58页
软件体系结构(sa)softwarearchitecture_第2页
第2页 / 共58页
软件体系结构(sa)softwarearchitecture_第3页
第3页 / 共58页
软件体系结构(sa)softwarearchitecture_第4页
第4页 / 共58页
软件体系结构(sa)softwarearchitecture_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《软件体系结构(sa)softwarearchitecture》由会员分享,可在线阅读,更多相关《软件体系结构(sa)softwarearchitecture(58页珍藏版)》请在金锄头文库上搜索。

1、软件体系结构(SA) Software Architecture 陈虔 *第五讲:软件产品线技术软件生产线技术举例D软件产品线技术陈虔 *软件产品线方法1、软件产品线方法简介2、软件产品线的关键活动3、软件产品线实践域4、两个产品线实践范例5、面临的挑战6、小结D1、软件产品线方法背景介绍在同一领域存在多个商业项目的情况下 ,独立的“一次开发一个”的方式在经 济上将不再可行,而有计划的软件复用 是实现可预测的、低代价的软件生产和 维护的关键。为此,卡耐基梅隆大学(CMU/SEI)提 出了软件产品线(software Product Line)的概念。D什么是软件产品线一个软件产品线是一组具有共

2、同特征的 软件密集型的系统,这些特征用来满足 一类特定市场部门或商业行为的需求; 同时这些系统是以一种预定义的方式、 利用一组共享的核心资产来开发的。D产品线软件开发的特点在开发过程中使用公共的软件资产,包括产 品线体系结构、构件和过程模型等。产品线的产品是根据特定的用户需求对标准 的产品体系结构进行定制,将可复用构件与 系统特有的部分集成而得到的。产品线方法集中体现了一种大规模、大粒度 的软件复用。D产品线的益处与代价1/5产品线体系结构提供了产品线中产品的公共 结构、构件间的关系和约束。一旦定义好了 产品线体系结构意味着产品线中所有产品的 系统设计已基本完成,因此产品线体系结构 支持了大粒

3、度的复用。产品线体系结构必须支持产品线内部固有的 变化性,所以除了定义构件本身和构件之间 的约束(必需的,可选的,可替换的),还 要定义在产品线中开发系统时支持变化性的 机制,增加了产品线体系结构的复杂性。 D产品线的益处与代价2/5对于被复用的构件来说,真正被复用的 是其中的设计决策、数据结构、算法、 文档、编码和调试信息等,它们在产品 线的所有产品中可被反复使用;因为构件要适应不同产品之间的差异, 所以要求构件有足够通用的特性,同时 要保证构件性能不被降低,增加了构件 设计的复杂性。D产品线的益处与代价3/5性能建模和分析:可以认为产品线的每一个 新系统在实时性和分布性方面是没有问题的 ,

4、因为过程调度、网络负载平衡、死锁检测 、数据一致性等性能问题已经在产品线的建 设中被解决,这种软件性能和分析在产品线 中所有产品中被复用。性能分析的复用可能导致对处理器之间进程 的迁移产生约束,特别是新进程的创建或者 已有进程的同步。D产品线的益处与代价4/5为软件开发购买的开发环境、配置管理 工具、设备管理工具可以在整个产品线 中使用,相当于投资的“分期付款”;要求这些可复用的工具和环境有足够的 适应性来适应一个产品线的通用性又可 以适应单独产品的变化性 ,因此对这 些工具和环境的要求较高。D产品线的益处与代价5/5由于产品线是面向特定领域的,所以基 于产品线中产品的共性,开发人员具有 适应

5、整个产品线的经验,可以按照需要 随时转换项目,提高生产效率;代价:专业人员的培训需要花很大代价 。D核心资产库(Core assets)核心资产库是产品线的基础,是管理支 持产品开发的可复用资源的机构。 核心资产库中的资产通常包括:领域模型 领域知识 产品线体系结 构测试计划和过程 通讯协议描述 需求描述 用户界面描述 代码构件 性能模型和度 量 工作流程 预算和规划 应用生成 器原形 过程构件(方法,工具) 设计标准和设计决策 D领域领域是指一组具有相似或相近软件需求 的应用系统所覆盖的功能区域。 domain is a specialized body of knowledge, an a

6、rea of expertise, or a collection of related functionality. D软件产品线实践软件产品线实践(Software Product Line Practice)是系统化地使用核心资产集成、实 例化或生成多个组成产品线的产品。Software product line practice is the systematic use of core assets to assemble, instantiate, or generate the multiple products that constitute a software produc

7、t line.D产品族 产品族(product family)是一组相关的 软件系统,它们是基于一个公共的软件 核心资产库开发的。D内容软件产品线方法简介软件产品线方法的关键活动软件产品线实践域两个产品线实践范例面临的挑战小结D2、产品线方法的关键活动D领域工程和应用工程领域工程领域工程是为一组相似或相近系统的应用工程建立基 本能力和必备基础的过程,它覆盖了建立可复用软件 构件的所有活动。针对一个领域中的所有系统,而不局限于某个特定的 系统。 应用工程:应用工程是开发单个特定应用系统的活动。针对一组特定的需求,产生一个特定的解决方案。 与应用工程相比,领域工程处于一个较高的抽象级 别上。D行为

8、产品领域工程领域 分析领域 设计领域 实现领域 模型DSSA领域 构件应用工程系统1系统2系统n分析用户 需求设计应用 系统 规约应用系统 实现应用系统 体系结构应用 系统应用工程系统n+1 基于 领域模型 的分析用户 需求基于 DSSA 的设计应用 系统 规约应用系统 实现/集成应用系统 体系结构应用 系统D核心资产库的开发D核心资产库开发活动的输入1/2产品约束: 产品线中的产品有哪些共性和变化性? 根据市场和技术的预测将来产品要具有哪些功能? 生产约束: 产品线的产品要遵循哪些规范:商业、军事或某公司 的规范? 产品线的产品所基于的底层结构是什么:COM或COBAR? 产品推向市场的时间

9、需求和完成初始操作能力的时间 需求是什么? 要用到哪些COTS构件? 哪些遗产构件可被复用?D核心资产库开发活动的输入2/2风格、模式和框架: 符合产品约束和生产约束的相关体系结构是什么 ? 生产策略: 产品线采用自顶向下还是自底向上的开发方法? 转移成本的策略是什么? 通用构件是自行开发还是从市场购买? 已有资产的清单:在开发产品线之前是否有可用的有组织的软件资 产,譬如:库函数,框架,算法,工具等? D核心资产库开发活动的输出产品空间 产品空间是对产品线面向的领域所包含产 品的描述核心资产库 资产库是产品线中开发产品的基础生产计划 生产计划描述了怎样基于资产库开发产品 D输入和输出之间的关

10、系D核心资产库开发的过程定义 产品空间开发 核心资产库开发 生产计划D定义产品空间什么是产品空间产品空间是对产品线面向的领域所包含产品的描 述,不仅仅是产品名称的列举,包括这些产品的 共性和变化性;产品空间会随着市场条件或组织 计划的改变而不断演化。 定义产品空间定义产品线的范围,即产品线面向的领域;产品线的范围决定产品线能够包含多少产品;产品线的范围定义了每个产品共同的性质和产品 之间的差异。D定义产品空间影响产品线范围的因素市场需求、市场竞争和企业的商业目标等 一系列因素; 产品约束,例如产品可以在哪些平台上运 行和产品必须具有的性能; 相关系统和产品; 对于市场和技术的预测;D开发核心资

11、产库核心资产库是产品线中开发产品的基础。核 心资产库的开发包括:可为产品线中所有产品复用的体系结构;支持系统复用的软件构件,包括设计和实 现构件;除了以上提到的构件,核心资产库还包括 测试计划、测试用例、集成计划和各种文 档。D开发核心资产库开发核心资产库的任务 选择或搭建一个满足整个产品线通用性和个别产 品特殊性的体系结构; 解决体系结构与组成核心资产库的构件和形成产 品的构件之间的交互问题; 定义一致性规则以保证产品遵循体系结构规范; 保证体系结构在产品线生命周期中的可行性; 定义由于产品空间演化出现更多的可用资源、技 术改进或者市场转向影响了产品线的范围时核心 资产将如何更新;D开发核心

12、资产库体系结构在产品线中的意义 体系结构是核心资产库的关键部分,既体现了产 品线的共性需求,又通过变化点支持产品空间中 的一个产品谱系; 体系结构描述了产品线中产品的结构,而且给出 了核心资产库中构件的接口规约; 体系结构决定要开发哪些构件,决定哪些构件在 整个产品线中是通用的而哪些构件在不同实例之 间存在变化性; 开发一个体系结构需要产品空间、相关风格、模 式和框架知识以及已有资产清单。D开发核心资产库附加过程(attached processes)D开发生产计划什么是生产计划 生产计划描述了如何基于资产库开发产品 。D开发生产计划开发生产计划的任务生产计划要制定将单个附加过程连接起来的全局

13、 策略; 生产计划要定义度量参数,用来衡量产品线实践 为企业带来的提高和效益,还要负责制定为度量 采集数据的计划; 生产计划还要描述: 决定产品线的开发方式:自顶向下 or 自底向上; 体系结构的开发和维护; 可裁剪、可替换构件在开发产品过程中的使用方式 ; D开发生产计划开发生产计划所需的信息 采用产品线方法组织的市场目标; 生产约束;D产品线方法的关键活动D软件产品的开发/获取D软件产品的开发/获取产品开发活动的输入: 特定产品的特殊需求:在产品线的需求为 基准需求,确定特定产品的变化性; 产品空间:用来确定特定产品是否在产品 线中; 核心资产库 生产计划:如何利用核心资产开发特定产 品D软件产品的开发/获取 产品开发的方式产品线中的产品由一个产品组开发;产品线中的产品由分布在整个企业的不同 产品组开发;D产品开发的活动(应用工程)特定系统需求获取特定系统SA的获取可复用构件的选择和组装变化性处理

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号