论文部分内容阅读
随着软件行业的快速发展,软件公司需要开发出满足企业顾客需求的高质量软件系统,努力使开发后的系统能适应企业顾客的商业需求和业务流程变化。在这种环境下,基于构件的软件开发(Component-based Software Development,CBSD)应运而生。CBSD体现了“组装已有构件,而不是重新构造”的哲学思想,将软件开发的重点从程序编写转移到了对已有构件的复用和组装,从而更快地构造软件系统,降低和缩短用来开发和设计大型软件系统所需要的费用和时间。随着CBSD技术的发展,构件市场逐步繁荣,涌现了大量构件产品。同时,软件开发企业内部也积累了大量构件技术和产品。如何在纷繁的构件产品中选择最合适的构件,将他们组装成为高质量的软件产品,是基于构件的软件工程(Component-basedSoftware Engineering,CBSE)所关注和要解决的主要决策问题。在基于构件的软件产品生命周期中各种角色分工逐步明确,企业不再单独依靠自己技术实力,同时也借助构件供应商在特定领域内的专业技术能力来参与软件产品的设计和开发工作。这个过程中,如何根据构件供应商的各项能力,对其进行任务分配也是十分重要的决策问题。目前,对CBSD的研究多局限在从计算机科学技术的角度来研究CBSD的具体实现方式。而对于构件供应商的参与和构件的选择而言,以管理科学和运筹学的视角来审视问题更为合适。这就进一步要求运用数学的方法,对构件的各种特性(如兼容性、复用方法和成本构成等)和供应商的各种特性(开发能力和开发周期等)进行客观描述,并基于这些定量的描述构造决策模型,辅助软件工程管理人员进行正确的决策。本文以此为研究路线,以CBSD为研究背景,在对基于构件的软件产业现状进行深入分析的基础上,运用优化理论和方法,研究了CBSD过程中构件供应商的任务指派和构件的选择若干重要问题。本文的研究成果及核心内容归纳为如下六个方面:1)对CBSD过程中的优化问题的研究综述。分析CBSD过程中构件供应商任务指派和构件选择问题的产生背景和概况;概述目前软件构件的市场格局及市场中的各种角色及角色之间的关系;总结基于构件的软件产品生命周期内的优化问题的学术文献,并重点综述了供应商参与软件产品开发和构件选择优化的研究现状。2)以构件供应商参与软件产品设计和开发任务为研究背景,考虑在构件供应商信息模糊的前提下,运用模糊方法描述构件供应商的各种关键指标(开发能力,成本,开发周期),将质量功能展开(Quality Function Deployment,QFD)理论运用到CBSD开发过程中,设计多目标模糊规划模型,为软件开发商提供构件供应商的任务指派模型和方法。3)以软件开发商依靠企业内部原始构件积累开发软件产品为研究背景,以白盒方式复用构件为问题特点,考虑构件之间的兼容关系和软件开发成本因素,设计优化模型指导软件开发商选择构件。模型运用改进后的非此即彼(Either-or)的0—1约束表示构件之间的兼容关系,通过仿真实验讨论模型中各个关键参数变化对目标函数的影响,揭示模型中所蕴含的管理意义。4)以软件开发商同时承担多个软件产品的开发任务为研究背景,以运用黑盒方式复用商业构件为问题特点,针对构件选择问题,设计优化模型指导软件开发商的构件选择决策。模型以最小化所有软件产品总成本为目标,并考虑构件之间的兼容性因素(要求同一个软件产品中的所有构件相互兼容)。通过仿真实验揭示模型的管理决策意义。5)以面向服务的架构(Service-oriented Architecture,SOA)理论为指导,在阐述SOA与CBSD两者的之间关系的基础上,以使用SOA方式实现一个企业信息系统为背景,以已知服务模块(Service Module)设计方案为前提,以系统整体高内聚低耦合为目标,考虑可替代构件因素,设计商业构件0—1组合优化选择模型指导软件开发商完成SOA服务模块设计过程中的构件选择工作。设计了符合问题特点的遗传算法(GeneticAlgorithm,GA)算法,给出了求解问题的有效手段并通过一个数例来解释模型的使用方法。6)以第五部分工作为基础,以使用SOA方式实现一个企业信息系统为研究背景,在已知服务模块设计方案的前提下,以服务模块个体高内聚低耦合和整体开发成本最低为目标,考虑构件市场上的可替代构件集合因素,设计多目标0—1组合规划模型。利用多目标进化算法SPEA2(Improving the Strength Pareto Evolutionary Algorithm)求解优化模型,并给出运用模型进行服务模块设计的使用方法。