软件产品线:重用构架
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
好处3 为软件开发购买的开发环境、 配置管理工具、 好处3:为软件开发购买的开发环境、 配置管理工具、 设备管理工具可以在整个产品线中使用, 设备管理工具可以在整个产品线中使用,相当于投资 分期付款” 的“分期付款”。 代价3 代价3:要求这些可复用的工具和环境有足够的适应 性,适应一个产品线的通用性又可以适应单独产品的 变化性,因此对这些工具和环境的要求较高。 变化性,因此对这些工具和环境的要求较高。
使用产品线的好处和代价( ) 使用产品线的好处和代价(3)
好处4 产品线是面向特定领域中的共性产品, 好处4:产品线是面向特定领域中的共性产品,开发人员 具有适应整个产品线的经验, 具有适应整个产品线的经验,可以按照需要随时转换项 提高生产效率。 目,提高生产效率。 代价4 专业人员的培训需要花很大代价。 代价4:专业人员的培训需要花很大代价。
Hale Waihona Puke Baidu
与软件体系结构的发展类似,软件产品线的发展也很大地得益 于军方的支持。如美国国防部支持的两典型项目:基于特定领域软 件体系结构的软件开发方法的研究项目(DSSA)和关于过程驱动、 特定领域和基于重用的软件开发方法的研究项目(STARS)。这两 个项目在软件体系结构和软件重用两方面极大地推动了软件产品线 的研究和发展。产品线在制造业中得到广泛应用,包括汽车、飞机 等大型设备的制造往往通过产品线来实现。1969年,McIlroy首先 认识到了开创可重用软件组件行业的需要,但是,直到今天现在软 件团体也没有实现这一目标。
成功采用产品线能够带来的生产成本的降低、 上市时间的缩短和生产效率的提高
14.2 软件产品线有效的原因 产品线的本质是在生产产品家族时,以 一种规范的、策略性的方法重用资产
产品线之所以有效,是因为可以通过重 用充分利用产品的共性,从而实现生产的 经济性
相关概念 公共核心资产库( base) 公共核心资产库(core assets base) 其中保存可重用资产,这些资产可被应用 到多个系统中。 - 是产品线的基础,是管理支持产品开发的 可复用资源的机制 可复用
14.4 产品线构架 建立产品线构架 在产品线的核心资产库中,软件构 架是重中之重。构建一个成功产品线的 本质就是区别在产品线家族所有成员中, 什么会保持不变,什么会发生变化。确 定产品的变化点和提供对这些变化点的 支持是产品线构架的重要组成部分。
产品线设计师需要考虑以下三件事 情: *确定变化点 *支持变化点 *对产品线构造的适宜性进行评估
范围较大的产品线很可能会开发为框架或服务的集合。
可以重用的范围包括: 1、需求:大多数需求与早期开发的系统相同,因此不再需要进一 步的需求分析 2、构架设计:已有成功系统的构架证明是合时的,设计产品线产 品利用成功的构架可以节约大量的时间 3、元素:软件产品的元素在产品线中是可重用的,包括元素接口、 文档、测试计划等 4、建模和分析:以前关于性能分析、可调度性分析等模型和分析 均可重用 5、测试:以前的测试计划、测试过程、测试用例、测试数据、测 试工具均可重用 6、过程、方法和工具等 7、人员:开发相似系统的人员已经具有了开发此类系统的经验和 技术积累 8、样本系统:已开发系统可以作为新开发系统的样本 9、缺陷消除:产品线可以提高产品质量,因为以前的缺陷在新产 品设计时可以避免
使用产品线的好处和代价( ) 使用产品线的好处和代价(1) 和产品复用(Reuse)有关
好处1 好处1:产品线体系结构提供了在产品线中进行系统开 发的结构,构件间的关系和约束。 发的结构,构件间的关系和约束。一旦定义好了产品线 体系结构, 体系结构,意味着产品线中所有产品的系统设计已基本 完成。 完成。 代价1 代价1:产品线体系结构必须支持产品线内部固有的变 化性,所以除了定义构件本身和构件之间的约束( 化性,所以除了定义构件本身和构件之间的约束(必需 可选的、可替换的), ),还要定义在产品线中开发系 的、可选的、可替换的),还要定义在产品线中开发系 统时构件使用和演化的原则, 统时构件使用和演化的原则,增加了产品线体系结构定 义的复杂性。 义的复杂性。
核心资产库中的资源通常包括:
- 体系结构、可复用软件构件、领域模型、需 求描述、文档和规约、性能模型和度量、日 程、预算、测试计划、测试用例、工作计划、 过程描述、通讯协议和描述、用户界面描述、 应用生成器、设计准则和设计决策,… - 其中,体系结构是最关键的资产
可重用库中存储了以前项目的元素,我们期望开发人员在 对新元素进行编码前会检查该可重用库。 大多数重用库中,谱系最多只是模糊的。开发人员不能准确 确定元素的功能、其可靠性以及在什么条件下对该元素进行了测试。 在新应用需要的质量属性和库中的元素所提供的质量属性之间,几 乎从来没有一个完全匹配。 在任何情况下,这些元素都有可能并不适合新系统的开发 人员所使用的构架模型。 软件产品线通过为重用建立一个非常严格的上下文来使其 发挥作用。
使用产品线的好处和代价( ) 使用产品线的好处和代价(2)
好处2 设计决策、数据结构、 算法、 文档、 好处2:设计决策、数据结构、 算法、 文档、 编码 和调试信息等都属于可复用资产, 和调试信息等都属于可复用资产,它们在产品线的所 有产品中可被反复使用。 有产品中可被反复使用。 代价2 因为可复用资产要适应不同产品之间的差异, 代价2:因为可复用资产要适应不同产品之间的差异, 所以要求可复用资产要有足够通用的特性, 所以要求可复用资产要有足够通用的特性,同时要保 证性能不被降低,增加了资产设计和实现的复杂性。 证性能不被降低,增加了资产设计和实现的复杂性。
产品线构架的评估重点应该放在产品线的变化点 上,以确保: 1、变化点是适当的 2、提供了足够的灵活性,从而能够覆盖产 品线的预期范围 3、支持快速构建产品 4、不会产生不可接受的运行时性能成本
14.5 采用软件产品线的困难之处
所采用的策略
创建产品并演变产品线 (1)外部源 (2)内部源
组织结构 (1)开发部门 (2)业务单元 (3)领域工程单元 (4)分层次的领域工程单元
软件产品线: 软件产品线:重用构架
Contents
1 2 3 4 5
概述
软件产品线有效的原因
确定范围
产品线构架 采用软件产品线的困难之处
www.themegallery.com
概述
软件产品线是一组具有共同体系构架和可复用组件的软件系 统,它们共同构建支持特定领域内产品开发的软件平台。软件产品 线的产品则是根据基本用户需求对产品线架构进行定制,将可复用 部分和系统独特部分集成而得到。软件产品线方法集中体现一种大 规模、大粒度软件复用实践,是软件工程领域中软件体系结构和软 件重用技术发展的结果。
14.3
确定范围
产品线的范围定义了哪些系统属于该产品 线,哪些系统不属于该产品线。就是说,产品 线的范围就是关于哪些系统是组织愿意作为其 产品线的一部分开发,哪些系统组织不愿意作 为其产品线的一部分开发的陈述。 定义产品线的范围就像是所有可能的系统 上画的一个圆环图。如图。
确定范围中的问题不在于发现共性,而在于发现可以充分利用 的共性,以极大的降低组织要构建系统的构造成本。 在确定产品线范围时候,不仅要考虑所构建的系统。市场划分 和所家丁的客户交互的类型都可以帮助确定产品线的范围。 范围较小的产品线提供了构建专用工具,以支持新产品规范的 机
导致产品线失败的因素 尽管产品线的设计方法给我们带来很多好处,但不 注意管理往往会造成产品线的失败 1、在具有足够控制和管理权力的位置缺乏倡导者 2、管理层未能持续提供坚定的支持 3、中层管理人员不愿放弃对项目的独立控制 4、未能明确采用产品线方法的商业目标 5、遇到困难就放弃 6、未能就产品线方法对员工进行充分的培训,未能 充分解释变化或进行变化的理由
www.themegallery.com
软件产品线的基本概念
目前,软件产品线没有一个统一的定义,常见的定义有: 定义1、将利用了产品间公共方面,预期考虑了可变性等设计的产品 族称为产品线(Weiss和Lai)。 定义2、产品线就是由在系统的组成元素和功能方面具有共性和个性 的相似的多个系统组成的一个系统族。 定义3、软件产品线就是在一个公共的软件资源集合基础上建立起来 的,共享同一个特性集合的系统集合(Bass、Clements和Kazman)。 定义4、一个软件产品线由一个产品线体系结构、一个可重用构件集 合和一个源自共享资源的产品集合组成,是组织一组相关软件产品 开发的方式(Jan Bosch)。