下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、王孟伟,管群:产品线可变性的需求方法研究计算机工程与设计 computer engineering and design2011, vol. 32, no.11 3725产品线可变性的需求方法研究王孟伟, 管群+( 四川大学 计算机学院,四川 成都 610065)摘 要:软件产品线领域需求记录了不同软件产品的共性和可变性。在现有需求过程框架下,对产品线需求获取方法与需 求分析方法进行了研究,完善了产品线需求可变性的管控机制。以原子需求为视点,提出了利用需求场景获取产品线领域 需求的方法;通过原子需求构建的产品需求矩阵与用例需求矩阵,分析得出需求资源的可变性关系;通过可变性关系的形 式化描述,建
2、立产品线可变性用例模型。关键词:软件产品线; 原子需求; 可变性; 需求获取; 需求分析中图法分类号:tp311.52文献标识码:a文章编号:1000-7024 (2011) 11-3725-04approach of requirement variability in software product linewang meng-wei,guan qun+(college of computer science, sichuan university, chengdu 610065, china)abstract:software product line (spl) domain req
3、uirements record the commonality and variability of different software products. through analyzing the process of requirements, the method of how to elicit and analyze variant spl requirements is improved, and the control mechanism of variability in spl is enhanced. the scenario-based method elicite
4、d domain requirements through the viewpoint of primitive requirement (pr). the commonality and variability of the spl requirements is ascertained by applying the pr-context matrix and pr-use case matrix. the method to model variant requirements is also provided by the formalization expresses of requ
5、irement de- pendence and constrain.key words:software product line; primitive requirement; variability; requirement elicitation; requirement analysis展的双周期模型对需求分析过程进行改进,但它们缺乏有效的领域需求获取手段与变化性需求分析方法,限制了产品线 灵活性。文章通过构建产品线需求元模型,提出使用最低抽 象的原子需求构建领域需求场景,协同利益相关者获取产品 线可变资源,并通过产品需求矩阵拓展用例需求矩阵来识别 产品线的可变特性,再利用可变性的形
6、式化规约对产品线需 求建模,得到产品线领域需求可变性的抽象。0引言软件产品线(software product line)是由多个相关或相似的 软件产品组合而成,实践证明,产品线工程是低成本,短时间, 生产高质量、多样性的软件产品或软件密集型系统的成功实 践。近年来,研究者在产品线基本理论和过程框架上形成了 共识:stars 提出双周期模型,将产品线开发周期分为领域工 程和应用工程,分别对领域资源和产品特例进行分析、设计和 实现;carnegie 大学提出的 plp 方法将开发过程划分为核心资 源开发、产品开发和管理,产品利用核心资源来开发,开发的 产品同时又促进核心资源的完善;在面向特征的软
7、件产品线 技术中,使用特征模型对领域产品的共性和可变性进行建模。软件需求的本质是分析、解构系统的问题空间,构建问题 求解的映射关系。在产品线工程中,为了实现大规模的产品 定制,在需求阶段与设计阶段必须精确定义产品线的通用点 与差异点,保证足够的灵活性以适应不同产品特征。当前产 品线技术在传统需求工程基础上提出了需求过程的指导框 架,但都缺乏需求活动的具体方法和细节。文献1 提出在不 同维度和层次分析产品线需求的过程和方法,文献2利用扩1产品线需求过程在单一系统工程中,每个产品的需求都是独立描述的,不 需要了解不同系统间差异性。在产品线工程中,所有共性需 求和差异化的需求都得到描述,特定产品通过
8、对产品线领域 需求剪裁得到差异性需求。产品线需求工程采用双生命周期模型,基于软件产品 线开发的需求工程,即领域需求工程;基于产品线特定产品 生产的需求工程,即应用需求工程。领域需求工程的主要任 务是通过识别给定领域产品的共性和定义产品线中产品的可 变性,开发共性的、变化性的需求并对他们进行精确描述3。 产品线的领域工程划分为产品管理、领域需求工程、领域收稿日期:2011-01-05;修订日期:2011-03-07。作者简介:王孟伟 (1985),男,四川成都人,硕士研究生,研究方向为需求工程、软件产品线; +通讯作者:管群 (1959),女,四川成都 人,博士,副教授,研究方向为软件工程、智能
9、信息处理技术、地理信息系统。e-mail:guanqun168设计、领域实现和领域测试。领域需求工程与其它子过程之间的信息流如图 1 所示。产品线的规划信息 (如现有产品集 合、产品文档以及产品的预期和变化性)作为输入传递给领域 需求工程,领域需求过程对这些资源进行分析处理后向产品 线规划过程进行反馈。领域需求工程将领域需求模型和变化 性描述传递给领域设计过程,后者分析后决定是否需要向领 域需求过程要求需求细化或复查。领域需求工程向应用需求 工程提供领域需求模型和变化性描述,后者再根据特定产品 的特性向前者提交需求变更要求,或是向产品线添加新的需 求模型。于可变性的产品线需求元模型 (如图 2
10、 所示)。产品线需求元模型将领域需求作为模型的核心元素,并划分为功能性领域 需求和非功能性领域需求,功能性需求由若干原子需求组成, 通过原子需求定义系统的功能,并根据原子需求在多个产品 中的存在性分析原子需求的可变依赖属性。非功能需求,即 质量特征,包含性能、安全性等,非功能属性会影响功能性需 求。领域需求具有可变性,它通过变化点、变量以及两者之间 的关系(可变性依赖与可变性约束)来实现,可变性的强制依赖 和可变依赖是相对的,后者通过可变性依赖实现。通过对模 型中原子需求深入分析,可以识别出原子需求的可变点、变 量,得到可变性关系。领域需求工程产品线规划领域设计具有产品线领域需求可变性0. *
11、 约束 0. *功能性领域需求非功能性领域需求变应用需求工程变0. * 量 1. *约化 0. *1. *点约 束束0. *0. *1. *原子需求1. *质量属性0. *与 矛盾图 1 领域需求与其它子过程之间的信息流0. *1对 有11可变性依赖1影响强制与有关联可选2产品线需求的可变性可变选一2.1 可变性相关术语产品线领域需求表达了产品线所有产品的功能和特性, 共性是所有产品的公共功能和需求,是产品线存在的基础,产 品间的差异性体现了软件产品线的可变性3。变化点描述了产品线中一个可变化对象,变量(variant) 是 对应变化点的实例,描述产品线中可变的对象并定义具体的 可变类型。软件
12、产品线中,可变性常常关联在某个变化点上。 可变性依赖是指变化点绑定变量的表现形式,即是强制的还 是可变的。强制表示若一个变化点被选定,则强制绑定某个 变量;可变表示若一个变化点被选定,通过选一、多选和可选 的 3 种基本形式绑定变量。可变性约束是指变化点和变量在 裁剪或绑定时遵循的组合规则,这种规则分为需要(require) 的 约束关系和排斥(exclude) 的约束关系4,需要约束关系表示变 化点或者变量的存在需要依赖于另一个变化点或者变量的存 在,排斥约束关系表示变化点或者变量的存在排斥相关另一 个变化点或者变量的存在。应用工程中,产品线的变量需要裁剪以满足特定产品,但 裁剪后仍然存在可
13、变性,并一直保留到绑定时刻。所以可变 性在生命周期中存在 4 种状态:剪裁后的保留状态和未保留 状态,绑定后的绑定状态和未绑定状态。2.2 产品线需求元模型软件产品线是若干软件产品的集合,产品线的需求聚合 于不同的软件产品,所有需求都可以被分解为一系列简单易懂 的原子需求(primitive requirement,pr)。原子需求是描述需求的 最基本的语义单位,是构成需求场景的最小单位。原子需求使 用最基本的语义原子以一种简单易懂的方式无偏差地描述需 求。因为原子需求的简单性,使分解过程更易于理解,所以本 文通过原子需求来确定产品线领域需求的共性和可变性。在领域需求元模型5-6 和变化性模型
14、7 的基础上,拓展了基多选图 2 产品线需求元模型基于可变性的产品线需求方法3产品线可变性需求获取方法场景是不同对象为达到某个共同目标而进行的交互行 为。基于自然语言的场景描述具有很强的直观性,易于相关 人员理解 7。层次化地细化场景,有利于在不同层次获取需 求3。本文使用最低抽象层次的原子需求构建领域需求场景, 获取产品线的可变资源。产品线领域需求获取过程涉及 3 种角色:第一种是整个 软件产品线复用库的管理者:负责管理产品线的复用资产,在 此过程中负责领域需求场景的初始化、冻结和解冻。第二种 是利益相关者,他们大多直接参与产品线场景执行过程或者 是产品线直接受益者。一般而言,产品线存在的问
15、题都由利 益相关者发现,他们配合产品线分析师完善问题解决方案。第 三种产品线分析师对产品线领域相关知识有深刻理解,能够 评估与预知产品未来发展,同时熟练需求工程各项技能,在需 求获取时协助利益相关者构建、变更产品线需求。具体的需 求获取过程如下。如图 3 所示,利益相关者在当前软件产品线的基础上,发 现与其利益相悖的问题,通过对差异问题解决方案的分析识 别,提出领域需求变更申请8。复用库管理者查找产品线复用 库,对相应解决方案的需求场景解冻或者初始化,提交由产品 线分析师进一步操作。产品线分析师根据产品线的“整体考 虑”,对场景中的原子需求进行初始输入后,交由产品利益相 关者对输入的原子需求进
16、行核查,明确原子需求与解决方案3.1王孟伟,管群:产品线可变性的需求方法研究2011, vol. 32, no.11 3727表 1 产品需求矩阵复用库管理者利益相关者产品线分析师发现 问题复用资源 是否存在n 初始化 需求场景y输入原子需求评论原子需求解冻需求场景和 pri2 合并为一个大粒度的变性需求 pri。3.2.2 用例需求矩阵产品需求矩阵得到层次适中的需求分析颗粒,识别出原 子需求的可变性。本文再构建如表 2 所示的用例需求矩阵, 通过低抽象层次用例定义原子需求的变化点和变量10,得出可 变需求的依赖关系。表 2 用例需求矩阵修改原子需求冻结需求场景图 3 产品线的需求获取过程的契
17、合程度,后者通过对原子需求添加评论的形式告知产品线分析师。产品线分析师再根据评论信息,进一步完善原子 需求,识别和表示场景的可变性,检查需求的正确性、一致性。 通过多轮的“评论”“修改”过程,使得产品利益相关者和产品 线分析师就当前场景中的各种观点达成充分一致,最后交由 复用库管理者对该需求场景冻结。3.2 产品线可变性需求分析方法基于可变性的产品线需求分析是一个精化需求和识别可 变性的过程9,本文通过两个分析矩阵收集、分析和评估产品 线的功能性需求和该产品线的领域知识,客观地识别出产品 线的共性需求和可变性需求,并形式化表示出可变性需求的 依赖和规约关系。3.2.1 产品需求矩阵产品线需求元
18、模型的原子需求作为功能性领域需求分 析的最小单位,可以清晰完整地展现产品线功能需求。文献 5 提出了一种使用原子需求和上下文(context) 组成的矩阵, 分析产品线的共性和变性的方法,其中 context 为若干应用场 景和应用系统组成的抽象集合。本文使用产品需求矩阵完 成对产品线可变性需求识别,如表 1 所示,以所有原子需求 pr 为行,以特定产品组成的产品序列为列构建产品需求矩 阵。在矩阵行列交汇处,如果特定产品包含此原子需求,则 将对应空格标记为“o”,如果不包含则标记为“x”。如果一 个原子需求出现在所有产品中,则将其标记为共性需求,否 则标记为变性需求。根据不同的产品线,产品线分
19、析师可以 设定共性需求的阈值,共性原子需求比例高于此值为共性需 求,低于则为变性需求。产品线分析师对具有相同标记的行列进行分析,如果这 些原子需求或产品序列之间存在极强的相关性,则将重复的 行列合并为粒度适中的原子需求或特定产品。如表 1 中 pri1利用类似方式对用例需求矩阵中各原子需求的执行者(actor) 和用例进行输入,对应用例存在标记为“o”,不存在标 记为“ ”。根据矩阵对产品线用例进行精化和抽象,如果存一 个用例被多个用例包含,又覆盖至少一个原子需求,则将该用 例从多个用例中分离成为一个独立用例,根据其可变性使用 用例包含关系或可变性依赖关系关联;如果用例包含了一个 原子需求,则
20、将该原子需求独立为一个用例,根据其可变性使 用用例扩展关系或可变性依赖关系关联。如果用例需求矩阵 中出现行或列相同的原子需求或用例,可由产品线分析师对 行列合并。产品线分析师对产品需求矩阵和用例需求矩阵的产品序 列、原子需求和用例多次分解抽象后得高内聚低耦合的产品 线需求分析颗粒及其可变性关系。3.2.3 可变性需求的形式化表示分析矩阵中,产品线不同产品的服务对象可能存在差异, 某些产品可能存在一些特殊功能,所以将存在变化的用例执 行者定义为执行者变化点,用执行者变量表示执行者的变化 实例;将存在变化的用例定义为用例变化点,用用例变量表示 用例的变化实例。在形式化需求定义中,执行者变化点和用
21、例变化点均用变化点 vpi 表示,其对应的变量用 vn 表示,用 c (vpi,vn)表示变化点 vpi 选择了变量 vn。产品线执行者变量和用例变量根据可变性依赖关系关需求执行者用例 1用例 2用例 3用例 mpr1pr2prkpri1pri2prj1prna a b c b b a b cooooooooooooo需求可变性/比例产品 1产品 2产品 3产品 mpr1pr2prkpri1pri2prj1prn共性/100% 共性/100% 共性/100%共性/100%变性/80% 变性/80% 变性/40% 变性/40% 变性/20%o o o o o o oo o o o o oo o
22、o o o oo o o o o o oxxxooxxxxo联到变化点 11,用逻辑语言表示基于可变点 vp 的可变性依i加入购物车赖关系为:强制依赖:mandatory(vi) = def( i)(1in)vi; 可选依赖:optional (v1, v2, , vn) = def ( i) (1in) (vivi);选购商品加入订单短信通知选一依赖:alternative (v1, v2, , vn) = def (1jn)(ij)(vivj); 多选依赖:multipleparallel(v1,v2, ,vn) = def( 产品线中可变性的约束同样表示为:i j) (1in)订阅订单状
23、态站内通知i)(1in)(vi)。顾客货到付款变化点需要变化点 vpi require vpj 表示为 vpivpj;变量排斥变化点 vn exclude vpj 表示为(vnvpj); 类似方式还可表示其它类型的可变性约束关系。 在产品线生成特定产品时,需要对产品线的资源进行剪裁,将部分变量剔除,剪裁后的需求依然具有可变性,这些可 变性将一直保持到绑定阶段。用谓词 t 表示“剪裁以后 被 保留”,用谓词 b 表示“ 处于绑定状态”12,则有裁剪后的可 变性依赖和约束关系,例如:optional(v1,v2, ,vn) = def( i)(1 in)(t(vi)t(vi)。也存在绑定后的可变依
24、赖和约束关系,例如:vn excludevpj 表示为(b(vn)b(vpj)。 通过形式化语义表示的可变性,既可以避免需求描述中的不准确性,为需求规格说明与验证提供必要的支持,又可以 建立可变性的跟踪机制,为产品线未来的可控发展提供参考。3.3 产品线可变性建模软件产品线可变性需求建模以传统用例建模为基础,产 品线分析师根据用例和活动者在分析矩阵的表现,用扩展的 uml 用例模型 13 标记出用例和活动者在产品线的共性和变 性,再用可变性依赖关系展现出变量的取值范围,整个过程可 分为 4 步:(1)分析产品需求矩阵与用例需求矩阵中执行者和用例的 特性,对于所有产品都出现的执行者和用例,直接添
25、加到用例模型中;对于仅存于部分产品中的执行者和用例,将其设置为 变化点。(2) 根据用例需求矩阵考虑整个产品线,增补可选的执行者和用例变量添加到用例模型,并在场景中详细说明变量存 在的条件。(3) 在需求场景中详细描述原子需求的可变性,记录原子 需求中变化点与变量的依赖关系与约束关系。(4)在用例模型中用基本的泛化关系、包含关系、扩展关系 与扩充的依赖关系、约束关系来刻画领域用例间的关系。网络购物系统在不同行业有着不同的表现形态,但这些 站点在功能和服务上有具有很大的共性。本文构建了基本的 网上购物交易过程:选购商品、支付订单和订阅订单状态,生 成如图 4 所示的可变性用例模型。其中“选购商品
26、”和“支付 订单”是共性用例,其它带有圆圈的用例均为可变性用例。“加 入购物车”与“加入订单”是“选购商品”的多选依赖关系,“账 户支付”与“货到付款”是选一关系,“订阅订单状态”与“短息 通知”是可选关系,如果“订阅订单状态”被选择,“站内通知” 必须强制选择,而“短信通知”订阅订单状态的前提是订单由 “账户支付”。以上可变性依赖关系和约束关系根据本文定义支付订单账户支付图 4 可变性用例建模实例可表示为:optional(订阅订单状态)、optional (短信通知)、man-datory(站内通知)、multipleparallel( 加入购物车,加入订单)、al- ternative(
27、 账户支付,货到付款)、短信通知账户支付。4结束语软件产品线需求过程既要表现产品线的共同特征,又要体现特定产品的特殊功能,所以产品线的需求方法需要在传 统需求方法上延伸。文章以产品线需求元模型为基础,提出 了可变性需求的获取方法与分析方法。利用需求场景和原子 需求获取领域需求的方法能够在复杂产品线工程中充分发挥 利益相关者作用,完整、高质量地捕获产品线需求。在产品需 求矩阵上扩展的用例需求矩阵,能够迅速、客观地识别出需求 的可变性,定义变化点、变量及其可变性依赖、约束关系,再通 过形式化表示,用扩展的用例建模生动展现产品线需求的抽 象关系。参考文献:1朱亚峰,姚郑.软件产品线需求过程和方法浅论
28、j.计算机工程与设计,2008,29(16):4215-4219. 唐文忠,李剑.基于产品线需求分析的过程改进研究j.计算机 技术与发展,2008,18(7):104-108.klaus pohl,gnter bckle,frank linden.software product line engineering:foundations,principles and techniques:软件产品线 工程m.张佳骥,李彦平,译.北京:国防工业出版社,2010:38-41. 赵海燕,张伟,麻志毅.面向复用的需求建模m.北京:清华大学 出版社,2008:132-139mikyeong moon,
29、keunhyuk yeom. an approach to develop requirement as a core asset in product linec.proceedings of 8th international conference on software reuse,2004:23-34.李玉琴. 需求工程与软件产品线若干关键技术研究 d. 上海:复旦大学,2007:28-29.buhne s,lauenroth k.modelling requirements variability across product lines c. proceedings of the
30、13th ieee international conference on requirements engineering,2005.(下转第 3893 页)234567秦红磊,张亚珍,丛丽,等:gps/mems-ins 组合导航系统设计2011, vol. 32, no.11 38933walid abdel-hamid. accuracy enhancement of integrated mems imu/gps system for land vehicular navigation applica- tionsd.canada:university of calgary,2004:
31、1-4.李荣冰, 刘建业, 曾庆化, 等. gps/mems-ins 微型组合导航系统研究c.北京:中国航空学会控制与应用第十二届学术年会,2006. 吴建华,李迟生,周卫星.中值滤波与均值滤波的去噪性能比较 j.南昌大学学报,1998,20(1):32-35.dey d,chatterjee b,chakravorti s,et al.a hybrid filtering sche- me for proper denoising of real-time data in dielectric spectros- copyj.ieee transactions on dielectrics
32、and electrical insula- tion,2007,14(5):1323-1331.st-pierre m,gingras d.comparison between the unscented kal- man filter and the extended kalman filter for the position estima- tion module of an integrated navigation information systemc. parma,italy:ieee intelligent vehicles symposium,2004.万莉, 刘焰春,皮亦
33、鸣.ekf、ukf、pf 目标跟踪性能的比较j.雷达科学与技术,2007,5(1):13-16.buhmann a,peters c,cornils m,et al.a gps aided full linear ac- celerometer based gyroscope-free navigation system c. posi- tion location and navigation symposium, 2006:622-629.潘泉, 杨峰, 叶亮, 等. 一类非线性滤波器-ukf 综述j. 控制与决策,2005,20(5):481-489.吴玲, 卢发兴, 刘忠. ukf 算
34、法及其在目标被动跟踪中的应用j.系统工程与电子技术,2005,27(1):49-51.李旸. 多线程计算机仿真研究 j. 高技术产品研发, 2010 (11):72-76.甘群文.c#多线程同步与异步的实现j.电脑开发与应用,2009,22(9):35-40. 陈仲民,王飞.异步共享存储器互斥算法的研究与实现j.计算 机工程与设计,2007,28(11):2527-2529. 张祖昌,曾霞霞.互斥技术在嵌入式系统中的应用j.闽江学院 学报,2007,28(5):68-71.456图 7 跑车试验路线的实物图,图 7 为本次跑车实验的路线图。由路线图可知,在动态情况下 gps/mems-ins 组合导航系统也可以进行实时高 精度地导航定位。74结束
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河南货运从业资格证网上考试答案
- 2025年甘孜道路运输从业资格考试系统
- 脊髓损伤的临床护理
- 中考语文真题专题复习 词语运用(第03期)(解析版)
- Barton骨折的临床护理
- 2024年中国桂鱼干市场调查研究报告
- 超忆症的临床护理
- 假痛风性关节炎的临床护理
- 脊椎结核并发窦道的临床护理
- 【MOOC】金属材料及热处理-中国地质大学(武汉) 中国大学慕课MOOC答案
- 2024届浙江省高三下学期高考模拟测试(一)历史试题(解析版)
- 2024年新人教版四年级数学上册《第6单元第1课时 除数是两位数的除法口算除法》教学课件
- 1500吨批制种玉米果穗烘干生产线建设项目可行性研究报告写作模板-申批备案
- 国家经济安全课件
- 教科版小学科学二年级上册全册期末复习知识点总结
- 2024年婴幼儿发展引导员(高级)职业技能鉴定考试题库(含答案)
- 跨学科融合的劳动教育新生态
- 财务主管岗位招聘面试题与参考回答(某大型国企)
- 第12课《实现人生价值》第1框《树立正确的价值观》同步课堂课件-【中职专用】《哲学与人生》
- 2024至2030年中国纯氢燃气轮机市场现状研究分析与发展前景预测报告
- 主题三:红色之美第10课《巾帼英雄-赵一曼》(教学设计)川教版四年级上册综合实践活动
评论
0/150
提交评论