1、Abstracti硕士学位论文基于产品线的软件开发技术研究及应用Abstractii摘要随着软件技术的不断发展,软件重用成为提高软件生产效率的一个核心问题。就目前来看,不管是面向结 构还是面向对象的重用都是属于小粒度的源代码级重用,而构件技术的出现虽然 实现了软件重用的大粒度,但是构件模型在系统需要一种基于领域的大规模软件重用的开发活动中不能起到很好的效果。基于此,软件产品线应运而生, 软件产 品线工程不仅能够降低开发成本还可以大大缩短产品上市时间,极大地改善了 软 件开发过程。在 软件复用 方面达到了空前未有的高水平。本课题根据软件产品线技术的研究现状,分析软件产品线的优势、生命周期、难点与
2、误区。在此基础上做成一个产品线模型做成工具。该工具的开发过程以产品线作为指导思想,以方便快捷的做成产品线模型为目标。做成后被作为核心资产在产品线的持续开发中起到至关重要的作用。之后该工具应用在自动售货机电机部分软件系统的开发上,做成了电机部分的平台无关模型。目标主要是为了验证模型做成工具作为核心资产,在产品线的持续开发中起到的关键作用,为产品线的开发打下坚实基础。关键词: 产品线技术,产 品线模型做成工具,自动售货机浙江大学硕士学位论文 AbstractiiiAbstractWith the continuous development of software technology, soft
3、ware reuse has become a core issue to improve the production efficiency of software problems. From the current point of view, whether it is structure-oriented or object-oriented reuses belong to the source code-level reuse in small granularity. Although the emergence of component technology to achie
4、ve the software reuse in large granularity, the component model cant play a good effect when the system requires a development activity based on the field of large-scale software reuse. As a result, software product line arises at the historic moment. The engineering of software product line can not
5、 only reduce the development costs, greatly shorten the product time to market, but also optimize the process of software development. In the aspect of software reuse has reached the unprecedented high level as well. According to the current research status of software product line technology, this
6、topic analyzes the advantages, life cycle, difficulties and misunderstandings of software product line, and makes a product line modeling tool on this basis. The development process of the tool regards product line as the guiding ideology, in order to make product line model in a convenient and effi
7、cient way for the target. After being made, the products play a crucial role in the continuous development as the core assets in line. Then, the application in the automatic vending machine on the part of the software system development used by the tool, and made it to the platform independent model
8、 of motor parts successfully. The main goal is to verify the model which made tool as the core asset plays a significant part in the product line of continuous development, and lay a solid foundation for the development of product line at the same time.Key Words: Product line technology, Product lin
9、e modeling tool, Vending machine 浙江大学硕士学位论文 目录I目录摘要 .iAbstract.ii图目录 .III表目录 .IV第 1 章 绪论 .11.1 引言 .11.1 论文研究背景与意义 .11.2 产品线技术国内外研究现状 .21.3 论文的研究内容及组织结构 .31.4 本章小结 .4第 2 章 软件产品线技术相关研究现状 .52.1 软件产品线基本理论 .52.2 核心资产开发的定义 .62.2.1 什么是产品开发 .72.2.2 管理的作用 .82.3 软件产品线的实践域 .82.4 软件产品线的优势 .92.5 本章小结 .12第 3 章 软件
10、产品线技术实现与应用难点分析 .133.1 产品线方法实现的基本原则 .133.2 产品线方法的生命周期 .143.3 产品线方法的开发特点 .163.4 产品线方法开发的误区与难点 .163.5 本章小结 .17第 4 章 产品线模型做成工具的设计与实现 .184.1 概要 .184.2 逻辑机能 .194.2.1 PLSE 项目构成 .194.2.2 打开 PLSE 项目 .204.2.3 关闭 PLSE 项目 .224.3 画面操作机能 .234.3.1 通常 EA 项目的场合 .234.3.2 PLSE 项目的场合 .244.4 领域分析机能 .254.4.1 特性要素 .264.4.
11、2 状态迁移图的做成 .26浙江大学硕士学位论文 目录II4.4.3 顺序图的做成 .274.5 需求分析机能 .274.5.1 特性要素删除机能 .274.5.2 PSM 模式检查机能 .284.6 EA API 一览 .284.7 Add In 在产品线开发中的作用 .294.8 本章小结 .30第 5 章 产品线技术在自动售货机软件开发中的应用 .315.1 自动售货机软件系统概述 .315.2 产品线技术应用在自动售货机系统的提出 .325.3 电机部分的设计与组织 .335.4 电机部分的领域工程模型做成 .345.5 电机部分的应用工程模型做成 .355.6 本章小结 .39第 6
12、 章 本文工作总结与展望 .406.1 本文工作总结 .406.2 进一步的研究与展望 .40参考文献 .42作者简历 .44致谢 .45浙江大学硕士学位论文 图目录III图目录图 2.1 软件产品线的三大基本活动 .5图 2.2 软件产品线核心资产开发过程 .6图 2.3 软件产品线产品开发过程 .7图 2.4 软件产品线的重用 .10图 2.5 产品线的经济走线图 .11图 3.1 产品线双生命周期 .14图 3.2 产品线方法生命周期 .15图 4.1 PLSE 项目结构图 .20图 4.2 模式选择功能流程图 .21图 4.3 PLSE 项目构造检查流程图 .22图 4.4 核心资产设
13、定确认画面 .22图 4.5 核心情报设定画面 .23图 4.6 PLSE 项目 Add In 菜单 .24图 4.7 特性元素追加画面 .26图 4.8 状态迁移图追加画面 .27图 4.9 顺序图追加画面 .27图 4.10 特性图画面 .28图 5.1 自动售货机系统结构图 .31图 5.2 模拟平台 .34图 5.3 自动售货机电机部分特性图 .35图 5.4 电机状态表示类的状态迁移图 .35图 5.5 状态迁移图的代码实现 .36图 5.6 电机类的状态迁移图 .37图 5.7 电机状态表示类和电机状态类的顺序图 .38图 5.8 顺序图代码实现 .39浙江大学硕士学位论文 表目录
14、IV表目录表 2.1 软件产品线的 29 个实践域 .9表 4.1 开发环境和动作环境 .18表 4.2 各选项初始状态 .23表 4.3 领域分析模式子菜单初始状态 .24表 4.4 需求分析模式子菜单初始状态 .25表 4.5 EA API 一览 .29表 5.1 电机部分需求分析表 .33浙江大学硕士学位论文 第 1 章 绪论1章 1 章 绪论1.1 引言近年来,软件技术不断的发展,重用慢慢成 为提高软件生产效率的一个最为核心的问题。重用技术不仅 可以减少软件开发活动中大量重复的工作,还能大大的提高软件生产率。降低开 发成本的同时, 缩短开发 周期。 1软件的架构都需要经过严格的品质和质
15、量的认证,并要求在实际运行环境中得到校验。所以, 软件的重用能够大大的改善 软件质量的同时,软件开发的灵活性和软件过程的标准化程度也能够到显著提高。就目前的软件重用技术看来,不管是面向结构编程的函数重用还是面向过程和面向对象编程中的类和对象的重用,这些重用技术都能在目前的软件开发活动中得到大量的应用,但是不能否认这些重用方法都是在源代码的基础上进行小粒度的重用,那就意味着这些重用有时可能只局限在某一个特定平台,不得不说这些重用对象的适用范围很小。在此之后有了构件技术,改变了小粒度的源代码级重用的情况,实现重用的粒度大。但是构件模型在解决一些特定领域内的系列产品开发活动中却没有能起到很好的效果。
16、基于此,软 件产品线的出现,完成系 统需要一种基于领域的大规模软件重用。 软件产品线工程对于开发成本和产品上市周期等方面都有着极大地改善意义,使在 软件复用方面达到了空前未有的高水平。21.1 论文研究背景与意义随着软件应用的普及,企业对软件也越来越重视,不断的要求采用软件提高效率,提升技能增强企业竞 争力。随着客 户的增多,软件企业这时需要面对更多的客户, 处理共性和个性问题 。软件产品线在一个机构的内提供实现方法,用来实现软件的复用,软件资产 的复用能够提高软件复用度、软件质量和提升开发速度并降低开发成本、维护成本。通常的软件产品线技 术的软件开发包括两个过程,首先是建立一个特定领域的公共
17、的核心资产集,其次将核心资产集作为基础,用来满足客户所提出的需求, 实现多项软件产品。那么在软件开发中,保证低成本的高质量软件产品开发,做到快速上市等要求就成为了软件企业竞争力的主要表现之一,而产品线工程方法就是能够支持这浙江大学硕士学位论文 第 1 章 绪论2种大粒度、大范围的重用。产品线区别于传统的代码重用最大的特点就是在代码、需求和业务实现都能大量的重用。本课题将基于对软件产品线的研究,提出一种产品线的模型做成工具,并做成自动售货机电机部分软件的平台无关模型。将自动售货机的电机系统软件的各项关注点进行全面的分离,并建立与之相对应的平台无关模型。主要是为了能够将电机模块部分的模型做成该条产
18、品线的核心资产,在以后的持续开发中起到关键作用, 为产品线的开发打下 坚实基础。1.2 产品线技术国内外研究现状产品线(Product Line)的概念是由卡耐基 -梅隆大学的软件工程研究所(SEI)提出的。软 件产品线能够提供在一个特定平台即一个机构内部的实现软件复用的方法,软件 资产的复用,提高软件复用度、 软件质量, 缩短开发周期并降低开发与维护成本。但是产品线的开发 方式不仅需要强大的人力和物力支持,而且前期的开发耗时较长、成本高。 3目前中国的 软件公司的平均 规模都算是比较小的,但是项目的竞争却非常激烈,同时 客户要求的工期一般都比较紧,以上的这些因素都导致了目前基于产品线思想的软
19、件开发在中国的软件开发还是比较少的。到目前为止,软件业界从事产品线研究并且将其应用于软件生产领域的公司主要有东软集团和北大青鸟。 东软自主研发的 UniEAP 业务基础平台产品,就是一款面向软件产品线开发模式的业务基础平台,UniEAP 充分的体现了面向软件产品线的开发模式的优势。 UniEAP 是由开发框架、公共构件和方法学三个部分组成的。同时通过多层次、结构化的基础架构、组件及相关开 发工具,用于支撑应用软件快速构造、支撑业务 开发的全面解决方案。 该 解决方案的目标是使应用软件的设计与开发人员能够通过复用和重载的手段,快速的完成应用软件的构造。当用户的需求发生变化时,可以将对开发的影响降
20、至最低,最终达到并满足用户需求。国内北京大学在青鸟工程中引入了软件产品线的概念和思想,实现了一个支持可复用构件来描述、管理、存储和检索的构件库。将 软件的生产车间和基于构件、体系结构复用的应用集成 车间,将 软件开发人员 划分为构件生产者、构件 库管理者和构件复用者,从而形成软件产业内部的合理分工,实现软件的工业化生产。以此来实现产品线技术 的优势。浙江大学硕士学位论文 第 1 章 绪论31.3 论文的研究内容及组织结构本文主要针对本人工作所在公司的研究型项目,产品线技术开发Product Line Software Engine(以下简称 PLSE)。基于 对产品线技术的研究,而开发的一个名
21、叫的 PLSE Support Add In(以下简称 Add In)的产品线模型做成工具。该工具是以产品线作为指导思想,以方便快捷的做成产品线模型为目标而开发工具,做成之后将作为核心资产在该条产品线的持续开发中起到至关重要的作用。根据论文的主要研究内容,本文的组织结构如下:第一章阐明论文的研究背景与意义以及产品线技术在国内外的研究现状,最后介绍论文的研究内容和组织结构。第二章主要介绍软件产品线技术的基本理论,核心资产以及产品开发的定义、目的与原则,以及管理的作用。其次,介绍了产品线技术的主要实践域。最后,通过对产品线技术的相关概念的理解,对产品线的优势做了分析与总结。第三章主要介绍了产品线方
22、法实现的基本原则及其类型,并且着重介绍了领域分析和需求分析的作用。其次通过分析产品线开发的生命周期,说明领域分析和需求分析之间的相互关系,最后着重分析介绍了软件产品线开发的难点与误区。第四章的重点为产品线模型做成工具的设计与实现。首先介绍了产品线模型做成工具的整体设计思路与原则,其次在了解了产品线技术相关知识的基础上,对产品线模型做成工具需要实现的功能进行了分析,表明其在产品线开发中的重要作用与地位。第五章的重点在于产品线技术在自动售货机电机软件开发的应用。首先根据自动售货机电机部分软件的需要实现的功能,介绍了电机部分软件的设计和组织的方法,并将产品线模型做成工具为开发工具,做成了电机部分的平台无关模型。用来表明产品线模型做成工具实际的产品线开发中确实的作用。第六章对全文进行总结,指出产品线开发中有待于进一步改进的地方以及对今后的工作进行展望。1.4 本章小结本章首先介绍了论文的研究背景与意义,其次对于产品线技术在国内外的发展情况进行研究,最后阐述了本论文的主要研究内容以及各个章节的组织与分布。