您好,欢迎访问三七文档
第七章软件产品线本章内容7.1软件产品线的起源7.2软件产品线定义7.3软件产品线的基本活动7.4软件产品线需求分析7.4.1软件产品线需求建模7.4.2软件产品线需求分析的特点7.4.3利用扩展的UML描述产品线需求7.4.4软件产品线需求分析中潜藏的风险本章内容7.5软件产品线开发评价7.6软件产品线的建立7.7软件产品线开发模型7.7.1软件产品线的双生命周期模型7.7.2软件产品线的N生命周期模型7.8软件产品线的组织结构7.9软件产品线测试本章内容7.10软件产品线的优点7.11软件产品线开发所面临的问题7.1软件产品线的起源软件开发可以象制造业一样,在产品线上采用标准的软件构件来进行组装生产软件产品线的起源可以追溯到1976年Parnas对程序族的研究软件产品线是软件复用的一种重要方法,是一种预先规划的和系统化的软件复用技术软件产品线的基本思想是:大部分的软件需求并不是全新的,而是已有系统需求的变体7.1软件产品线的起源大部分组织都只关注某一具体应用领域,他们不断地重复开发该领域已有的软件变体这些变体之间通常存在着大量的相似性,而这又为系统化和大规模软件复用奠定了基础在软件开发过程中,不能采用统计数据进行定量化的度量,而只能通过文字描述和图表显示来进行定性化的度量定性化度量要求:在分析和评判过程中,需要对有意义和可观察的模式或主题进行对比和解释7.1软件产品线的起源在借鉴制造业产品线创建软件产品线时,需要注意以下几个问题:与生产一个具体的产品相比,软件开发过程是难以预测的,其可变的因素太多软件不能像具体产品一样进行大规模的生产不是所有的软件错误都会引发系统失败软件产品不会磨损软件系统不受自然界规律的限制在软件产品线工程中,主要讨论如何确定领域范围和软件资源7.1软件产品线的起源在建立软件产品线和识别领域潜在资源时,需要考虑不同的实现技术、各种领域信息、相关的经济收益和由此所引发的风险软件产品线是最高级别的软件复用技术软件产品线是一组具有共同体系构架和可复用构件的应用系统,构建了一个支持特定领域产品开发的软件平台在软件产品线中,根据产品线架构对用户需求进行定制,通过继承可复用成分和应用中的独特部分来创建应用系统7.1软件产品线的起源软件产品线已经发展为一个新兴的、多学科交叉的研究领域它涉及软件工程、管理技术和商业规划等多个方面,几乎涵盖了软件工程的所有方向目前,软件产品线方法已成为学术界研究的一个热点问题,在软件开发行业中得到了初步的应用应用软件产品线方法,能够大幅度地减少开发成本,缩短开发周期,同时提高软件产品的质量7.2软件产品线定义软件产品线(SoftwareProductLine,SPL)是指一组可管理的,具有公共特性的软件应用系统的集合在利用软件产品线方法构建一个应用系统时,主要的工作是组装和繁衍,而不是创造,其重要的活动是集成而不是编程核心资源是软件产品线的实现基础,通常包括:7.2软件产品线定义产品线体系结构、可复用软件构件、领域模型、需求陈述、文档技术资料、规格说明书、性能模型、进度表、预算、测试计划、测试用例、工作计划和过程描述等其中产品线体系结构是核心资源中的最关键部分关于软件产品线的定义主要包括以下几种:Parnas提出了程序家族的概念,认为“软件产品线是具有广泛公共属性的一组程序7.2软件产品线定义Weiss和Lai认为“从项目之间的公共方面出发,预期考虑可变性等因素所设计的程序族就是软件产品线”Lee认为“软件产品线工程是一种新兴的软件工程范型,指导软件开发组织利用核心资源完成软件项目开发任务,而不是从零开始”Bosch认为“软件产品线由一个产品线体系结构,一组可复用构件和由共享的核心资源派生的产品集合构成”7.2软件产品线定义Kruege认为“软件产品线是一种工程技术,利用通用的产品构建方法和一组共享的软件资源来开发功能相似的应用系统”Pohl给出的定义是“软件产品线工程是使用公用平台、大规模定制技术来开发功能密集型系统和软件产品的范型”MargaretDavis认为“软件产品线是,在组成和功能方面具有共性(Commonalities)和个性(Variabilities)的多个相似系统所形成的一个系统族”7.2软件产品线定义Bass、Clements和Kazman认为“软件产品线是在一个公共的软件资源集合基础上建立起来的,共享同一个特性集合的应用系统集”卡耐基梅隆大学的软件工程研究所给出了软件产品线的经典定义,软件产品线是一个应用系统的集合,这些产品共享一个公共的、可管理的特征集,这个特征集能够满足选定的市场或任务领域的特定需求软件产品线的主要组成部分包括核心资源和软件项目集合7.2软件产品线定义核心资源是领域工程所获得的成果的集合,是软件产品线中应用系统构造的前提基础,也有组织将核心资源称为集成开发平台核心资源包含了软件产品线中所有系统共享的产品线体系结构,以及新设计开发的或者通过对现有系统再工程得到的、需要在整个产品线中进行系统化重用的构件此外,与产品线体系结构相关的实时性能模型、体系结构评估结果、与软件构件相关的测试计划、测试实例、设计文档、需求说明书、领域模型、领域范围定义都属于核心资源7.2软件产品线定义产品线的定义强调了以下几点:预先定义的生产方式共享的软件核心资源以核心资源为基础的软件开发软件产品线的成功则恰恰是因为在实践过程中,将技术、过程、组织和业务等进行了综合考虑在软件产品线中,管理层必须指导、跟踪和强制核心资源的使用7.3软件产品线的基本活动软件产品线包括核心资源开发、利用核心资源的项目开发以及在这两部分中所需要的技术协调和组织管理软件产品线开发活动核心资源开发技术协调组织管理软件项目开发7.3软件产品线的基本活动核心资源开发被称之为领域工程,利用核心资源的软件项目开发也被称为应用工程软件产品线总是针对某一特定领域而创建的,在创建之后,又要为该领域的应用开发服务在核心资源开发和软件项目开发之间,存在着反馈循环核心资源促进了应用系统的快速创建,核心资源随着新应用系统的开发而不断地被更新7.3软件产品线的基本活动通过跟踪核心资源的使用情况,其结果将被反馈到核心资源的开发活动中,以创建更多有利于复用的基础设施核心资源开发和软件项目开发都需要人力、物力和财力的投入,因此需要持久的、强有力的和卓有远见的组织管理管理必须促进企业文化的交流,将新项目的开发放到可用资源环境下进行考虑7.3软件产品线的基本活动核心资源开发、软件项目开发和技术协调、组织管理三大活动不断迭代循环,促进产品线的基础设施不断完善迭代是软件产品线活动所固有的特性,循环存在于核心开发中,循环存在于软件项目开发中,同时,循环也存在于两者的技术协调和组织管理中核心资源开发活动的输出包括:7.3软件产品线的基本活动产品线范围:是关于产品线所能包含的产品描述,列举出所有产品的共性和彼此之间存在的个性差异核心资源:是产品线中应用系统创建的基础设施开发计划:描述了如何利用产品线中的核心资源去开发软件项目7.3软件产品线的基本活动核心资源开发活动核心资源开发技术协调组织管理■产品约束条件■风格、模式和框架■开发约束条件■开发策略■已有资源清单■产品线范围■核心资源■开发计划7.3软件产品线的基本活动软件项目开发活动技术协调组织管理软件项目开发▲项目实际需求▲产品线范围▲核心资源▲开发计划▲项目1▲项目2……▲项目n7.3软件产品线的基本活动软件项目开发活动依赖于核心资源开发活动的输出结果,即产品线范围、核心资源和开发计划软件项目开发活动的输人包括:项目实际需求,被表示为领域中一些通用产品描述的变化或增量,也可表示为产品线需求集合的一个增量,通过比较应用需求与产品线需求模型来获得7.3软件产品线的基本活动产品线范围,指出当前所要开发的软件项目是否可由产品线来实现,指明该项目可由产品线实现的模块,同时,还应该说明应用系统开发依赖于产品线的程度用于创建该项目的核心资源开发计划,详细描述了如何利用核心资源来设计实现该软件项目软件产品线就是一组相关的应用系统,但是它们如何存在却取决于具体的核心资源、开发计划、作用范围和组织环境7.3软件产品线的基本活动软件产品线就是一组相关的应用系统,但是它们如何存在却取决于具体的核心资源、开发计划、作用范围和组织环境技术协调和组织管理对于软件产品线的成功是至关重要的产品线工程是在核心资源的基础上,遵循用户的实际需求所开展的一种监督和协调工作软件产品线是一种正在成熟的软件工程范型,用于开发同一领域中具有相似需求的应用系统7.3软件产品线的基本活动在一个特定领域中,基础架构是支持一组具有相似应用需求的领域模型和参考架构,这一基础架构经常被称为产品线体系结构(ProductLineArchitecture,PLA)描述产品线体系结构的最好手段就是框架,框架是一个可复用的和已经部分实现的软件制品,框架能够被扩展实例化,以生成特定的应用系统7.3软件产品线的基本活动软件产品线工程与其它复用技术相比,主要存在以下两方面的差异:软件产品线工程涉及一系列具有相似应用需求的软件产品软件项目开发是以公共核心资源为基础来进行的7.4软件产品线需求分析软件产品线需求建模是产品线开发过程中的关键性活动,其质量将直接决定整个产品线的成败需求是对系统要做什么、系统如何工作、系统要表现的特性、系统必须具备的质量以及系统开发过程所必须满足的约束条件的一种叙述在软件产品线需求建模过程中,需要对产品线内所有产品的公共特性和变化特性进行描述7.4软件产品线需求分析分析公共特性和变化特性是产品线工程的一个显著特征公共特性是指隶属于软件产品线的所有成员产品都必须具备的公有功能和共同特征,公共特性集合是创建软件产品线的基础,是建立产品线体系结构的依据变化特性是指只存在于软件产品线中某些成员产品的独有功能和个性特征,使其区别于产品线内的其它成员产品,约束和限定产品线体系架构的预期变化7.4软件产品线需求分析软件产品线需求建模可以划分为面向产品线的需求过程,即领域需求,和面向产品线中某个具体应用的需求过程,即应用需求领域需求过程确定了产品需求的范围,在产品线范围内建立面向产品线的需求模型,找出产品线中所有产品的公共特性和变化特性,以形成整个产品线的核心需求资源领域需求是产品线需求的核心,领域需求过程应对领域内的所有产品进行分析,包括已有的应用系统和潜在的应用系统7.4软件产品线需求分析领域需求的来源包括已有的系统功能,潜在的用户需求,以及竞争对手的需求领域需求过程的输出结果是核心需求资源应用需求过程根据具体产品的定义和要求,参照可复用的核心需求资源来建立系统的需求模型,获得需求规格说明书领域需求过程的成果促进了应用需求过程的进展,同时,应用需求过程的反馈又有利于领域需求过程的完善7.4软件产品线需求分析软件产品线需求定义了产品线中的产品及其相关特性,涵盖了一系列应用系统的共同特性产品线需求分析对于产品线开发有着重要的指导作用产品线需求分析确定了产品线需求与特定产品需求之间的差异和变化点,这种差异和变化点为业务用例提供了输入7.4.1软件产品线需求建模产品线领域需求规格说明产品线领域需求层次划分产品线领域需求分析产品线领域需求收集产品线领域范围定义应用系统需求规格说明■用户需求调研■竞争对手分析■行业发展动向分析■企业竞争能力分析▲用户具体要求▲系统功能定义应用系统需求收集应用系统需求分析反馈反馈反馈领域需求应用需求7.4.1软件产品线需求建模产品线领域范围定义产品线领域范围定义是一项重要的活动,确定了产品线的共性特征和变化因素产品线领域范围定义的参照信息主要包括以下几个部分用户需求调研,了解用户需求的基本情况分析竞争对手,了解市场上有哪些类似的产品,存在着什么样的问题,解决这些问题能给自己带来怎样的收益7
本文标题:第七章 软件产品线
链接地址:https://www.777doc.com/doc-3189350 .html