基于产品线的软件开发技术研究及应用硕士学位论文Word文档下载推荐.docx
《基于产品线的软件开发技术研究及应用硕士学位论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于产品线的软件开发技术研究及应用硕士学位论文Word文档下载推荐.docx(44页珍藏版)》请在冰豆网上搜索。
![基于产品线的软件开发技术研究及应用硕士学位论文Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/10/c3e9414a-a38d-4f96-8424-62d2abc5cdab/c3e9414a-a38d-4f96-8424-62d2abc5cdab1.gif)
1.1论文研究背景与意义1
1.2产品线技术国内外研究现状2
1.3论文的研究内容及组织结构3
1.4本章小结4
第2章软件产品线技术相关研究现状5
2.1软件产品线基本理论5
2.2核心资产开发的定义6
2.2.1什么是产品开发7
2.2.2管理的作用8
2.3软件产品线的实践域8
2.4软件产品线的优势9
2.5本章小结12
第3章软件产品线技术实现与应用难点分析13
3.1产品线方法实现的基本原则13
3.2产品线方法的生命周期14
3.3产品线方法的开发特点16
3.4产品线方法开发的误区与难点16
3.5本章小结17
第4章产品线模型做成工具的设计与实现18
4.1概要18
4.2逻辑机能19
4.2.1PLSE项目构成19
4.2.2打开PLSE项目20
4.2.3关闭PLSE项目22
4.3画面操作机能23
4.3.1通常EA项目的场合23
4.3.2PLSE项目的场合24
4.4领域分析机能25
4.4.1特性要素26
4.4.2状态迁移图的做成26
4.4.3顺序图的做成27
4.5需求分析机能27
4.5.1特性要素删除机能27
4.5.2PSM模式检查机能28
4.6EAAPI一览28
4.7AddIn在产品线开发中的作用29
4.8本章小结30
第5章产品线技术在自动售货机软件开发中的应用31
5.1自动售货机软件系统概述31
5.2产品线技术应用在自动售货机系统的提出32
5.3电机部分的设计与组织33
5.4电机部分的领域工程模型做成34
5.5电机部分的应用工程模型做成35
5.6本章小结39
第6章本文工作总结与展望40
6.1本文工作总结40
6.2进一步的研究与展望40
参考文献42
作者简历44
致谢45
图目录
图2.1软件产品线的三大基本活动5
图2.2软件产品线核心资产开发过程6
图2.3软件产品线产品开发过程7
图2.4软件产品线的重用10
图2.5产品线的经济走线图11
图3.1产品线双生命周期14
图3.2产品线方法生命周期15
图4.1PLSE项目结构图20
图4.2模式选择功能流程图21
图4.3PLSE项目构造检查流程图22
图4.4核心资产设定确认画面22
图4.5核心情报设定画面23
图4.6PLSE项目AddIn菜单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
表目录
表2.1软件产品线的29个实践域9
表4.1开发环境和动作环境18
表4.2各选项初始状态23
表4.3领域分析模式子菜单初始状态24
表4.4需求分析模式子菜单初始状态25
表4.5EAAPI一览29
表5.1电机部分需求分析表33
绪论
1.1引言
近年来,软件技术不断的发展,重用慢慢成为提高软件生产效率的一个最为核心的问题。
重用技术不仅可以减少软件开发活动中大量重复的工作,还能大大的提高软件生产率。
降低开发成本的同时,缩短开发周期。
[1]软件的架构都需要经过严格的品质和质量的认证,并要求在实际运行环境中得到校验。
所以,软件的重用能够大大的改善软件质量的同时,软件开发的灵活性和软件过程的标准化程度也能够到显著提高。
就目前的软件重用技术看来,不管是面向结构编程的函数重用还是面向过程和面向对象编程中的类和对象的重用,这些重用技术都能在目前的软件开发活动中得到大量的应用,但是不能否认这些重用方法都是在源代码的基础上进行小粒度的重用,那就意味着这些重用有时可能只局限在某一个特定平台,不得不说这些重用对象的适用范围很小。
在此之后有了构件技术,改变了小粒度的源代码级重用的情况,实现重用的粒度大。
但是构件模型在解决一些特定领域内的系列产品开发活动中却没有能起到很好的效果。
基于此,软件产品线的出现,完成系统需要一种基于领域的大规模软件重用。
软件产品线工程对于开发成本和产品上市周期等方面都有着极大地改善意义,使在软件复用方面达到了空前未有的高水平。
[2]
1.1论文研究背景与意义
随着软件应用的普及,企业对软件也越来越重视,不断的要求采用软件提高效率,提升技能增强企业竞争力。
随着客户的增多,软件企业这时需要面对更多的客户,处理共性和个性问题。
软件产品线在一个机构的内提供实现方法,用来实现软件的复用,软件资产的复用能够提高软件复用度、软件质量和提升开发速度并降低开发成本、维护成本。
通常的软件产品线技术的软件开发包括两个过程,首先是建立一个特定领域的公共的核心资产集,其次将核心资产集作为基础,用来满足客户所提出的需求,实现多项软件产品。
那么在软件开发中,保证低成本的高质量软件产品开发,做到快速上市等要求就成为了软件企业竞争力的主要表现之一,而产品线工程方法就是能够支持这种大粒度、大范围的重用。
产品线区别于传统的代码重用最大的特点就是在代码、需求和业务实现都能大量的重用。
本课题将基于对软件产品线的研究,提出一种产品线的模型做成工具,并做成自动售货机电机部分软件的平台无关模型。
将自动售货机的电机系统软件的各项关注点进行全面的分离,并建立与之相对应的平台无关模型。
主要是为了能够将电机模块部分的模型做成该条产品线的核心资产,在以后的持续开发中起到关键作用,为产品线的开发打下坚实基础。
1.2产品线技术国内外研究现状
产品线(ProductLine)的概念是由卡耐基--梅隆大学的软件工程研究所(SEI)提出的。
软件产品线能够提供在一个特定平台即一个机构内部的实现软件复用的方法,软件资产的复用,提高软件复用度、软件质量,缩短开发周期并降低开发与维护成本。
但是产品线的开发方式不仅需要强大的人力和物力支持,而且前期的开发耗时较长、成本高。
[3]目前中国的软件公司的平均规模都算是比较小的,但是项目的竞争却非常激烈,同时客户要求的工期一般都比较紧,以上的这些因素都导致了目前基于产品线思想的软件开发在中国的软件开发还是比较少的。
到目前为止,软件业界从事产品线研究并且将其应用于软件生产领域的公司主要有东软集团和北大青鸟。
东软自主研发的UniEAP业务基础平台产品,就是一款面向软件产品线开发模式的业务基础平台,UniEAP充分的体现了面向软件产品线的开发模式的优势。
UniEAP是由开发框架、公共构件和方法学三个部分组成的。
同时通过多层次、结构化的基础架构、组件及相关开发工具,用于支撑应用软件快速构造、支撑业务开发的全面解决方案。
该解决方案的目标是使应用软件的设计与开发人员能够通过复用和重载的手段,快速的完成应用软件的构造。
当用户的需求发生变化时,可以将对开发的影响降至最低,最终达到并满足用户需求。
国内北京大学在青鸟工程中引入了软件产品线的概念和思想,实现了一个支持可复用构件来描述、管理、存储和检索的构件库。
将软件的生产车间和基于构件、体系结构复用的应用集成车间,将软件开发人员划分为构件生产者、构件库管理者和构件复用者,从而形成软件产业内部的合理分工,实现软件的工业化生产。
以此来实现产品线技术的优势。
1.3论文的研究内容及组织结构
本文主要针对本人工作所在公司的研究型项目,产品线技术开发—ProductLineSoftwareEngine(以下简称PLSE)。
基于对产品线技术的研究,而开发的一个名叫的PLSESupportAddIn(以下简称AddIn)的产品线模型做成工具。
该工具是以产品线作为指导思想,以方便快捷的做成产品线模型为目标而开发工具,做成之后将作为核心资产在该条产品线的持续开发中起到至关重要的作用。
根据论文的主要研究内容,本文的组织结构如下:
第一章阐明论文的研究背景与意义以及产品线技术在国内外的研究现状,最后介绍论文的研究内容和组织结构。
第二章主要介绍软件产品线技术的基本理论,核心资产以及产品开发的定义、目的与原则,以及管理的作用。
其次,介绍了产品线技术的主要实践域。
最后,通过对产品线技术的相关概念的理解,对产品线的优势做了分析与总结。
第三章主要介绍了产品线方法实现的基本原则及其类型,并且着重介绍了领域分析和需求分析的作用。
其次通过分析产品线开发的生命周期,说明领域分析和需求分析之间的相互关系,最后着重分析介绍了软件产品线开发的难点与误区。
第四章的重点为产品线模型做成工具的设计与实现。
首先介绍了产品线模型做成工具的整体设计思路与原则,其次在了解了产品线技术相关知识的基础上,对产品线模型做成工具需要实现的功能进行了分析,表明其在产品线开发中的重要作用与地位。
第五章的重点在于产品线技术在自动售货机电机软件开发的应用。
首先根据自动售货机电机部分软件的需要实现的功能,介绍了电机部分软件的设计和组织的方法,并将产品线模型做成工具为开发工具,做成了电机部分的平台无关模型。
用来表明产品线模型做成工具实际的产品线开发中确实的作用。
第六章对全文进行总结,指出产品线开发中有待于进一步改进的地方以及对今后的工作进行展望。
1.4本章小结
本章首先介绍了论文的研究背景与意义,其次对于产品线技术在国内外的发展情况进行研究,最后阐述了本论文的主要研究内容以及各个章节的组织与分布。
软件产品线技术相关研究现状
1.5软件产品线基本理论
早期,卡耐基.梅隆大学软件工程研究所将软件产品线定义为具有一组可管理的公共特性的软件密集性系统的集合。
这些系统满足特定的市场需求或任务需求并且按预定义的方式使用一组公共的核心资产构建而成。
[4]软件产品线包含了三大基本活动。
他们分别是核心资产开发(CoreAssetDevelopment)、产品开发(ProductDevelopment)及技术组织管理(Management)。
产品线技术的三大基本活动之间存在紧密的联系,彼此之间不可分割,我们用图2.1来显示了这三大基本活动的联系,将核心资产开发、产品开发和技术组织管理连接在一起。
持续运作的同时,要求反复的循环。
为了能够将核心资产作用于开发产品,并且产品开发的过程还能反过来促进核心资产版本的更新和新资产数量的增加。
那么理所当然的,在图中我们可以看到核心资产与产品开发之间存在着一种非常强势的反馈循环。
核心资产被用到产品开发过程时,其价值被体现,使用情况被反馈到资产开发活动的同时反馈给核心资产。
在这种反复的循环当中,达到核心资产随着新产品的开发而更新的目的;
同时核心资产库,通过对未来产品需求的开发,使核心资产更为通用。
这样的迭代操作,使产品线的运行需要持久的、强有力的、有远见的管理。
图2.1软件产品线的三大基本活动
1.6核心资产开发的定义
核心资产开发在产品线方法中的目标是建立并保证产品的生产能力,核心资产是产品线方法中软件产品做成的基础,地位至关重要。
在开发中利用什么得到核心资产,得到的核型资产又被用于什么呢?
用图2.2描述了核心资产开发的输入和输出又分别是什么。
其中输入由以下四项组成:
(1)产品约束:
包括各个产品之间的相同点和差异,产品遵循的标准包含的外部系统有哪些接口,以及必须满足的质量属性。
(2)生产约束:
包括上市时间要求,产品开发中需要遵守的企业特定的标准,构建产品由谁来担当,生产环境是否投入开发环境,以及核心资产提供的什么样的变量管理方式方法。
(3)生产策略:
这一方法是实现核心资产的总体方法。
是从核心资产开始到产品导出的自顶向下的方式,还是从一系列产品开发出发到抽取核心资产的自底向上的方式。
通用组件是通过内部生产,还是购买,产品是否需要装配或是通过核心资产自动生产。
(4)现有资产清单:
遗留的系统都有可能成为资产库组件的重要候选者。
图2.2软件产品线核心资产开发过程
根据输入端的产品约束、框架、生产约束、生产策略和遗留资产清单,核心资产开发活动产出三项输出:
(1)产品线范围(ProductLineScope):
产品线范围用来描述产品线所能包括的产品。
描述中需要列举出所有产品的共性和差异。
如产品所特征和具体的操作、产品所应该表现出的性能和其它品质属性等。
(2)核心资产(CoreAssets):
核心资产是产品线中产品生产的基础。
包括构架、可重用软件组件、领域模型、需求、文档、测试用例、工作计划和过程描述等都属于核心资产的范畴,其中构架是核心资产集合中的关键。
[5]
每种核心资产都应和一个附属过程相关联,以指出它将如何被应用到实际产品的开发中。
这个过程一般包括:
基线需求是利用产品线的共性需求得到;
变化的需求通过利用产品线的扩展功能实现;
添加产品线需求之外的任何需求的方法;
构架所支持的变化和扩展的确认;
产品线中产品生产的基础是核心资产。
(3)生产计划(ProductionPlan):
生产计划描述了如何从核心资产中生产产品。
每种核心资产都有一个附属过程,其中定义了如何将其运用到产品开发中。
生产计划描述了一个整体方案,说明如何将这些单个的过程装配在一起构建产品。
第2章
2.1
2.2
2.2.1什么是产品开发
成熟的产品线组织优先考虑整个产品线而不是个别产品的健壮性,但是生产最终产品的活动才是产品线的最终目标。
产品开发活动依赖于核心资产开发的三个输出以及目标产品的个性化需求。
图3描述了这些关系。
图2.3软件产品线产品开发过程
从根本上讲,软件产品线就是一组相关产品,但是它们如何存在却取决于具体的资产、生产计划和组织环境,并且其产品生产过程通常不是线性的,产品的创建对产品线的范围、核心资产、生产计划,甚至对特定的产品需求都会产生强烈的反馈作用。
[6]
2.2.2管理的作用
管理在在软件产品线技术开发中是至关重要的。
软件开发活动必须有指定的资源、协调和监督,而管理则是在技术和组织上为软件产品线服务的。
技术管理负责对核心资产和产品的开发活动进行监视,这样的工作方式能够最大限度的保证各开发组成员都在从事所要求的活动、遵循产品线所定义的过程,并收集足够的数据,实时的跟踪进度。
而组织管理必须建立起适当的组织结构,并确保各组织单元得到足够的适当资源。
[7]
1.7软件产品线的实践域
软件产品线有一个特点,既可以称之为优点又可以称为缺点,那就是面向一种特定业务领域或系统化的开发方式。
只有在这一基础上,软件产品线才能实现其大粒度低耦合的软件开发复用。
说是缺点是因为产品线的开发只能够基于一种特定领域,或与之类似的领域之中,在长期的开发历程之后,很可能局限于某一领域,移植性大大降低。
称为优点是因为,这样的开发是在面向整个领域或系统的共同需求以及可变部分的分析为基础,通过系统的产品线体系结构设计以及领域构件开发,使得面向特定客户的应用产品可以在这些核心资产基础上快速开发出来,从而降低开发成本、提高产品质量、缩短产品上市时间。
[8]这样的优点有很足够的立场使我们忘却它所存在的缺点。
所以为了实现充分发挥产品线开发的优点,开发团队首先要做的事情,就是必须明确市场定位,对产品线范围内各种现存的应用产品的业务需求有所认识,并能够全面而准确的把握未来产品的需求走向趋势。
基于三大基本活动,以及对于产品线技术多年的研究后,专家们对于软件产品线的实践领域有了一个总结。
明确了软件产品线的29个实践域,实践域是用来描述产品线实施主体,以及它必须要掌握的一整套活动。
为了使关键活动在开发中更加易于实现,通过定义实践域中比基本活动更精确、更有指导性的活动。
实践域的定义为企业在使用软件产品线方法中的不断进步提供了起点。
表2.1总结了这29个实践域。
[9]
表2.1软件产品线的29个实践域
软件工程
技术管理
组织管理
架构定义
配置管理
建立业务案例
架构评估
数据收集、度量和跟踪
客户接口管理
组件开发
自制/购买/挖掘/委托分析
实施需求获取策略
COTS利用
过程定义
资金筹备
挖掘现有资产
确定范围
启动和贯彻执行
需求工程
技术规划
市场分析
软件系统集成
技术风险管理
运作
测试
工具支持
组织规划
相关领域
组织风险管理
确定组织结构
技术预测
培训
1.8软件产品线的优势
通过上面对于软件产品线定义的介绍,我们大致了解了软件产品线的内容。
那么它在软件开发中又有什么优势呢?
软件产品线简单的说就是一组软件平台它具有共同的体系构架和大量的可复用组件,被用来构建支持某一特定领域中的产品开发。
体系结构和重用技术的发展,使软件产品线有了对于一种大规模、大粒度的软件复用并集中实践。
除了满足特定市场或特定任务需求,实现具有一组公共的、可管理特性的系统集合的同时,它还增加了一些新内容。
首先在软件产品线中增加系统开发方式上的限制,它需要按照某种指定的方式用来进行核心资产的开发,产品的独立开发。
这样与传统的从零开始开发、随机开发等方式相比较,可以获得显著的生产经济效益。
[10]
其次,提高了生产的经济效益,因为当使用产品线技术开发是,每个产品不再是传统的单向开发实现,而是根据一个产品线范围内的公共架构来组装这些组件,简单的说就是从公共的核心资产库抽出组件,并按照软件产品的需求,分析出变化机制(如参数化、继承等),对抽