系统分析师考试论文案例集(第三辑)论文下载

系统分析师考试论文案例集(第三辑)论文下载

面向软件产品家族的变化性建模方法∗

Modeling Variability in Software Product Family
ZOU Sheng-Xiang, ZHANG Wei, ZHAO Hai-Yan+
, MEI Hong
(Institute of Software, School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China)
+ Corresponding author: E-mail: +86-10-62757670, E-mail: zhhy@sei.pku.edu.cn, http://162.105.203.104/belljointlab/index.jsp
Received 2004-06-03; Accepted 2004-07-29
Zou SX, Zhang W, Zhao HY, Mei H. Modeling variability in software product family. Journal of Software,
2005,16(1):37~49. http://www.jos.org.cn/1000-9825/16/37.htm
Abstract: To accommodate the frequent changes of user requirements and operating environments, software
systems have to be much more flexible. Fortunately, modeling variability is just a realistic and efficient approach to
controlling variability and implementing software reuse, which does well not only in identifying and expressing
variability, but also in assisting the management of variability evolution. This paper proposes an approach to
modeling variability in product family. In this approach, variabilities of system behaviors are modeled through
extended use case models, while variabilities in functionality and quality are captured by feature models, and above
all, both the models adopt consistent mechanisms to model variability. Summarily, the whole modeling process of
the approach is discussed systematically through a real software family on mobile phone.
Key words: software product family; variability; use case model; feature model; software reuse
摘 要: 用户需求和运行环境的变化增加了软件产品开发、维护和演化的难度.另一方面,如果能对同类软件
(比如软件产品家族)的变化性实施有效的控制,则可以极大地促进软件复用,提高软件生产效率和质量.对变化
性建模是控制变化性的有效手段,既有助于变化性的识别和规约,又能够提供足够的机制支持变化性的演化.提
出了一种面向产品家族的变化性建模方法,以变化性的管理策略为指导,从扩展的用况(use case)模型入手捕获
系统行为的变化性,以特征模型来组织功能性需求和质量属性并识别其变化性,两种模型对变化性的建模采用
相同的机制.还结合一个实例讨论了产品家族变化性建模的全过程.该研究对产品家族变化性的分析与建模具
软件复用被认为是解决软件危机、实现软件产业工业化生产方式的有效途径[1]
.软件复用活动包含两个相
关的阶段:可复用软件资产的生产阶段(development for reuse)和基于可复用软件资产的应用系统开发阶段
(development with reuse)
[2]
.领域工程对应于可复用软件资产的生产阶段,即系统地识别、开发和组织领域可复
用软件资产,为后期的应用系统开发提供必备的物质和技术基础.
软件产品家族方法即是应用软件复用的相关原理和技术,把整个产品家族作为同一问题空间来看待的软
件开发方法.这里的产品家族是指一类共享体系结构、特征、代码、构件、中间件或者需求的软件产品[3,4]
.研
究和实践表明,由于很好地应用了软件复用技术,软件产品家族方法极大地节省了软件产品的开发成本和时
间[5,6]
,软件产品家族方法也因此被认为是一种提高软件开发效率和控制软件复杂性的有效措施,因而在软件产
业界得到越来越多的重视[3]
.
产品家族方法要实现对软件复用以及对家族产品演化的支持,必须支持对变化性的有效管理.类比于软件
复用的基本过程,产品家族方法过程也可分为两个基本的阶段,即:生产家族核心资产的阶段和根据家族核心资
产生产单个产品的阶段.通常,对变化性的识别、设计和实现主要体现在第 1 阶段,第 2 阶段则要对变化性进行
定制、配置、绑定等.在家族核心资产的生产过程中,采用怎样的模型来组织核心资产以及对变化性进行控制
和管理一直是一个备受关注的问题[7,8]
.
Parnas 在 20 世纪 70 年代提出了模块化和信息隐藏两大原则来避免软件中不同成分之间不必要的耦合关
系,使得系统中的成分可以相对独立地发生变化[9]
.20 世纪 90 年代,Keepence 提出了一种面向对象的家族模型,
用预定义的模式来建模产品家族内的变化性,但这种模型只是在详细设计阶段的解决方案[6]
.另一方面,Will
Tracz 在 1990 年提出了一种基于特定领域的体系结构来捕获产品家族的共性的方法,该方法能够很好地组织
核心资产,但对变化性的支持却讨论不多[10]
.Zhang 和 Jarzabek 改进了 Bassett 的框架技术(frame technology)
[11]
,
提出了 XVCL(XML-based variant configuration language)方法来处理变化点[12,13]
;Becker 提出的变化性规约语
言 VSL(variability specification language)
[7,14]
也是基于 Bassett 的框架技术.XVCL 和 VSL 都是基于 XML 的配

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注