一种软件生产线构造方法及系统的制作方法

文档序号:7759581阅读:185来源:国知局
专利名称:一种软件生产线构造方法及系统的制作方法
技术领域
本发明属于计算机软件领域,具体涉及一种新的软件生产环境一软件生产线、 构造软件生产线的方法一软件生产线框架、和软件生产线框架系统。
背景技术
软件生产工具是一类用来辅助计算机软件开发、运行、维护、管理、支持等过程中 的活动或任务的软件。使用软件生产工具能节省软件生产开销,提高软件生产率和产品质 量。软件生产环境是指软件生产过程中所有构件,包括工具、制品、平台支撑集成的基础设 施(平台服务),协同工作,形成统一、一致、和谐的整体。最早的软件生产环境是一种集代码编写、调试、运行等工具于一体的集成开发环 境(Integrated Development Environment, IDE)。集成开发环境提供的特性主要聚焦于 以语法为导向的编辑器扩展,增强用户的开发过程体验。典型的代表为Smalltalk、第一个 PC图形化IDE工具Visual Basic、支持增量编译的Rational开发环境,后期微软的Visual Studio、IBM 的 WebSphere Studio 以及 Sun 的 Studio One 也属于此类。虽然集成开发环境是一个集成了编码、编译、调试、运行功能的统一生产环境,但 是仍然只局限于“以编码为中心的软件开发过程”。随着人们对软件过程概念认识的逐步提 高以及软件应用规模的不断上升,支持软件需求分析、设计、编码、测试、维护和管理等活动 的软件生产工具逐步在软件生产过程中发挥了越来越大的作用,并逐渐形成了扩展开发环 境(extended Development Environment, XDE)。扩展开发环境不仅支持时间上的松耦合 开发,也支持空间上的分布开发,并且开始考虑对非软件依赖因素的管理。扩展开发环境的 典型代表是支持软件开发全生命周期的Rational XDE。软件开发不仅仅是单纯的编码,也是团队开发者相互合作设计解决方案, 构建高质量代码的协同过程,从而出现了以协同开发思想为基础的协同开发环境 (CollaborativeDevelopment Environment, CDE)。协同开发环境以协同开发思想为基础, 通过整合协同工具,实现无缝、完整的软件开发。协同开发环境的使用者扩展到了目标软 件的行业领域专家、网络与硬件工程师等,使得软件产品相关的所有利益相关方均能配置 其感兴趣的属性,在互动的软件开发协作过程中及时沟通并做出对策。协同开发环境提供 的特性包括虚拟团队、即时通讯、网络会议、论坛等协同机制。典型的代表为Collabnet的 SourceForge、Team Forge(http://www. collab. net/), IBM 的 Jazz(http://jazz, net/)寸。软件产品线(Software Product Line)是多个软件密集系统组成的集合,这些系 统共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需 求。软件产品线遵循一个预描述的方式,在公共的核心资源(Core Assets)基础上开发的。 (CMU, http://www. sei. emu. edu/productlines/frame_report/terminology, htm)软件产 品线强调的是软件产品家族。本发明涉及的软件生产线(Software Production Line)强 调的是软件生产工具和构件有序组织起来的软件开发环境,能够为软件开发提供完整的、成套的软件开发支撑。当前软件生产环境仍然有一些工具集成问题需要解决。(1)面向不同领域的工具 集成需求随着软件开发技术的发展,积累了越来越多的工具辅助软件开发实践,不同领域 的软件开发具有不同的领域特征,面向领域的工具集成复杂;(2)软件工具间需要灵活的 过程逻辑当前的软件生产工具集成方法在集成过程中缺失工具的使用逻辑,并且软件的 开发逻辑无法显式化、可定制化;(3)开发者、工具、制品数据之间更加不可分割的关系制 品加工活动、加工操作人员与制品数据管理间相互关联与依存,而当前生产环境割裂这三 者之间的关系。针对这些问题,研究灵活、可扩展的软件工具集成框架、实现软件生产工具、 制品、和开发协同平台之间的集成方法和交互机制,支持生产线的灵活构造,进而规范软件 工具、制品的集成和共享能力。

发明内容
针对上述软件生产环境中所存在的问题和不足,本发明的目的是定义一种面向互 联网的、集成化、可扩展、协同化的软件开发环境——软件生产线,提出构造软件生产线的 方法——软件生产线框架,指导构建灵活、高效的软件开发环境,从而提高软件开发效率、 提升软件产品质量;同时提供软件生产线框架系统,为软件生产线的实施提供帮助。软件生产线是将软件开发过程中涉及的开发者、工具、制品等要素,按照一定的软 件开发方法,有序组织起来,并使其相互协作,形成集成化、可扩展、协同化的软件开发环 境。软件生产线能够提供成套的软件开发支撑,其内在驱动是软件生产活动,目的是生产软 件制品。软件生产线框架系统是用于支撑软件生产线的基础设施,为生产线的构造和运行 提供基础服务。本发明的技术方案为一种软件生产线构造方法,其步骤为1)客户端根据软件开发环境的需求创建软件生产线模型文件并将其保存到服务 器端;2)客户端装配模块从服务器端下载并解析该软件生产线模型文件,获得该软件生 产线中的角色信息;3)客户端装配模块依据客户端的角色和软件生产线模型文件中角色与加工步骤、 加工步骤与工具集的映射信息,获得该客户端所需的工具集地址,并从服务器端下载工具 集装配该客户端;4)客户端任务管理模块定期轮询服务器端任务管理模块,下载与所在客户端相关 的任务信息;其中任务信息包括输入制品信息、输出制品信息、所需工具;5)客户端制品管理模块根据下载的任务信息完成该任务,并将该任务状态改为完 成。进一步的,创建所述软件生产线模型文件的方法为1)根据软件生产线元模型,将软件开发过程提取为一组有序的加工步骤;所述软 件生产线元模型包含加工工序、加工步骤、角色、工具和制品五个元素以及它们之间的关 系;2)设定每个加工步骤相关的角色信息、所需工具集、输入制品信息和输出制品信 息,建立软件生产线元模型实例,形成所述的软件生产线模型文件。
进一步的,采用基于Eclipse插件的生产线图形化建模工具创建所述软件生产线 模型文件。进一步的,所述软件生产线模型文件为XML格式文件。进一步的,所述客户端装配模块利用XML解析器解析所述软件生产线模型文件。进一步的,所述客户端装配模块通过HTTP协议从服务器端下载并解析该软件生 产线模型文件。进一步的,所述客户端装配模块采用Eclipse插件更新机制从服务器端获得客户 端所需的工具集。进一步的,所述任务信息还包括增加任务的时机、任务类型、完成任务的人员、 任务计划持续时间、任务实际持续的时间、任务计划的剩余时间、任务对应的生产线加工工序。一种软件生产线构造系统,其特征在于包括服务器端和若干客户端,服务器端和 客户端通过HTTP协议互联;其中服务器端包括生产线管理模块、工具管理模块、任务管理模块、制品管理模块;所述生产线管理模块,用于维护软件生产线模型文件;所述工具管理模块,用于将生产线中涉及的工具按照Eclipse更新站点的形式进 行组织管理;所述任务管理模块,用于输入任务说明,并维护任务的状态;所述制品管理模块,用于存储、提取、更新软件开发过程中所产生的软件制品,支 持制品在整个软件开发过程中的共享;客户端包括生产线建模工具、客户端装配模块、客户端任务管理模块、客户端制品 管理模块;所述生产线建模工具,用于根据软件开发环境创建软件生产线模型文件;所述客户端装配模块,用于从所述工具管理模块的生产线工具库中下载并安装相 应的工具集,装配出所需的客户端;所述客户端任务管理模块,用于从服务器端的所述任务管理模块中获取客户端相 关的软件开发任务,并根据任务描述的制品位置,提取待加工制品;在制品加工完成后,根 据制品输出位置存储制品;所述客户端制品管理模块,用于从服务器端的所述制品管理模块终获取制品信 息、更新制品信息或者提交工具产生的制品。进一步的,所述任务说明包括加工步骤的开发任务,任务的属性信息,任务的要 求;服务器端的所述制品管理模块采用配置管理系统管理生产线中的制品;所述软件生产 线模型文件为XML格式文件。本发明中生产线框架包括软件生产线建模、软件生产线装配和加工任务执行三部 分。1.软件生产线建模软件生产线不仅是开发者、工具、制品的静态集合,更是一种动态的、能够反映软 件开发方法的软件开发环境。这种动态特性通过软件生产线过程模型表达,软件生产线过 程模型是对软件生产线的过程抽象,描述了基于某种软件开发方法的软件开发过程,是反映软件生产线特征的关键。软件生产线过程模型是由一系列制品加工步骤组成的加工工 序。软件生产线模型以软件生产线过程模型为核心,将软件生产线中开发者、工具、制品等 要素有机联系在一起,如图1所示。本发明定义软件生产线元模型及其过程元模型如图2 所示。软件生产线元模型包含以下要素 加工工序,是一组用于描述软件开发过程的软件生产活动序列,是对软件生产 线的过程抽象。 加工步骤,是加工工序中的一道“工序”环节,是对一类软件生产活动的抽象。 角色,是对软件生产线用户在利用软件生产线实施软件开发实践的过程中所承 担的职能的定义。 工具,是软件生产线中用以辅助完成软件生产活动的各类软件。 软件制品,是软件工具作用的对象。软件生产线中可能存在各种形态的制品,例 如代码编辑器产生的源代码文件,需求工具产生的需求分析文档等。加工工序由一组有序的加工步骤组成。加工步骤定义本步骤相关的角色、工具集 以及制品集,同时定义软件生产线中开发者、工具、制品间的关联。加工步骤需要对应一个 特定的工具集、一个特定的输出制品集,以及一个或多个可能的输入制品集,如图2所示。项目管理人员依据软件开发环境的需要,比如需要的软件开发过程、软件开发工 具等,在软件生产线元模型的基础上,将软件生产线中的加工工序、加工步骤、工具集、软件 制品等实例化,形成具有一定格式的软件生产线模型,比如利用XML表示的软件生产线模 型。2.软件生产线装配在完成软件生产线模型设计后,客户端装配模块利用该软件生产线模型,构建个 人工作平台。软件生产线装配的步骤(图3)如下1)客户端装配模块通过HTTP协议从服务器端的生产线管理模块获得一个软件生 产线模型文件;2)客户端装配模块利用XML解析器解析该生产线模型文件,获得该软件生产线中 的角色信息;3)开发者根据需要,选择自己对应的角色;依据选择的角色,客户端装配模块通 过软件生产线模型文件中定义角色与加工步骤、加工步骤与工具集的映射信息,获得个人 工作平台需要的工具集的地址;4)客户端装配模块从工具管理模块下载相应的工具集;5)客户端装配模块依据Eclipse插件更新机制,安装下载的工具集;6)客户端装配模块热启动相应的工具集。3.加工任务执行上一步完成客户端装配,这一步利用客户端完成任务加工;软件生产线装配完成 后,形成了个人工作平台。开发者基于个人工作平台开始执行加工任务。客户端任务管理模 块从服务器端任务管理模块接收相应的开发任务,并开始相应的开发活动,具体步骤(图 4)如下1)客户端任务管理模块定期轮询服务器端任务管理模块,并从服务器端任务管理 模块中下载用户相关的任务;
2)任务中包括该任务相关的输入制品信息,客户端制品管理模块依据该任务的输 入制品信息,下载任务中指定的输入制品;3)任务中包含执行该任务需要的生产工具,用户利用该生产工具,加工输入制
P
m ;4)任务中包含任务输出制品的存储位置,客户端制品管理模块将加工后生成的制 品存入到任务指定的制品输出位置;5)客户端任务管理模块修改任务状态,将该任务状态修改为“完成”。与现有技术相比,本发明的积极效果为本发明提出一种面向互联网的、集成化、可扩展、协同化的软件开发环境——软件 生产线以及构造软件生产线的方法,其优点和应用如下1、本发明的方法以更细粒度的方法提出软件生产线的构造方法,为基于领域的生 产线构造提供指导。2、本发明提出的基于软件生产过程的生产线构造方法,弥补了软件开发中生产过 程、工具、制品、开发者之间关系的缺失,实现工具之间数据集成、控制集成、过程集成需求。


图1软件生产线概念模型;图2软件生产线元模型;图3软件生产线装配步骤;图4加工任务执行步骤;图5软件生产线框架系统。
具体实施例方式本发明的目的是提出软件生产线框架。软件生产线框架的核心思想是利用其他领 域的生产线思想,为软件开发提供一个软件工具集成方法;同时提供制品管理、软件工具管 理、任务管理以及工具便捷的组装,形成一个协同的、深度集成的软件开发环境。在软件生产线框架中,软件生产线模型采用XML(http://www.w3. org/XML/)描 述,如下列描述所示<software_production_line><name>ISCAS_BPCI</name>〈description〉支持异构集成的生产线〈/description〉<roles>......</roles>〈toolsets〉......〈/toolsets〉<spl_process>......
</spl_process></software_production_line>其中,软件生产线元素由<software_production_line>标识,它由生产线名字 <name>、生产线描述〈description〉、生产线中涉及的角色<roles>、生产线中涉及的工具 集<toolesets>以及生产线的加工工序<spl_process>组成。软件生产线涉及多个角色,每个角色<role>由名字<name>和描述〈description〉 组成,如下列描述所示<roles><role><name>BPMNDeveloper</name>〈description〉〈/description〉</role>......</roles>软件生产线涉及多个工具集,每个工具集〈toolset〉由工具集名字〈name〉、工具 集描述〈description〉和工具集更新地址<url>组成,如下列描述所示〈toolsets〉〈toolset〉<name>process_design_toolset</name>〈description〉、流程建模工具〈/description〉<url>http//localhost/toolsets/process_design_tool_updateSite</ url>〈/toolset〉......</toolsets>软件生产线的加工工序由一系列加工步骤组成,每个加工步骤<spl_st印〉由加
工步骤的名字Oname、加工步骤的描述〈description〉、加工步骤涉及的角色〈require, ro 1 e>、加工步骤涉及的输入制品位置〈artifact_input>和输出制品位置〈artifact output〉组成。如下列描述所示<spl_process><spl_st印 name = 〃流程建模〃 >〈description/〉<require_role ref = “ BPMNDeveloper" /><required_toolset ref = “ process_design_toolset“ /><artifact_input/><artifact_output>http//localhost/repostrunk/BPMN</artifact output)</spl_step>......
</spl_process>本发明中的软件生产线框架系统在软件生产线模型的基础上,实现了软件生产线 的构建,其中包括服务器端和若干客户端,服务器端包括生产线管理模块、工具管理模块、 任务管理模块、制品管理模块;客户端包括生产线建模工具、客户端装配模块、客户端任务 管理模块、客户端制品管理模块(如图5所示)。服务器端和客户端通过HTTP协议互联,具 体描述如下1)生产线建模工具软件生产线框架系统基于Eclipse GEF(http//www. eclipse, org/gef/)和 GMF(http//www. eclipse, org/modeling/gmp/),实现了基于 Eclipse 插件的生产线图形 化建模工具。项目管理人员根据自身软件生产环境的需要,利用生产线建模工具,构建软件 生产线模型,并最终形成基于XML的软件生产线模型。软件生产线建模工具将生成的软件 生产线模型通过HTTP协议保存在生产线管理模块中。2)生产线管理模块生产线管理模块是基于Web的服务器应用。利用生产线管理模块,可以添加、修 改、删除服务器上的软件生产线模型文件。个人工作平台装配客户端通过HTTP协议从生产 线管理模块中获得软件生产线模型文件。3)工具管理模块工具管理模块将生产线中涉及的工具按照Eclipse更新站点的形式组织 (http://www. eclipse, org/articles/article. php ? file = Article-Update/index, html)。客户端装配模块采用Eclipse插件更新机制,从工具管理模块下载新的工具或者更 新软件工具。4)任务管理模块利用任务管理模块,输入任务说明,并在执行过程中,修改任务的状态。在软件开 发过程中,利用任务管理模块制定各个加工步骤的开发任务,设置任务的相关属性(如输 入/输出制品位置),制定任务的要求(如任务的完成时间)等。并在任务执行过程中,由 客户端任务管理模块更新任务的状态。任务的属性描述如下所示task_dep Ioyment task_category task_people task_during task_actual_during task_rest_time task_spl_step task_input_artifact
增加任务的时机 任务类型 完成任务的人员 任务计划持续时间 任务实际持续的时间 任务计划的剩余时间 任务对应的生产线加工工序 任务对应的输入制品位置task_output_artifact 任务对应的输出制品位置5)制品管理模块制品管理模块负责存储、提取、更新软件开发过程中所产生的软件制品,支持制品 在整个软件开发过程中的共享。软件生产线框架采用配置管理系统管理生产线中的制品, 比如 SVN(http//subversion, tigris. org/)。
6)客户端装配模块客户端装配模块是基于Eclipse插件的工具,帮助用户灵活构建个人工作平台。 在软件开发过程中,客户端装配模块通过HTTP协议,从生产线工具库中下载并安装相应的 工具集,以此形成个人工作平台(即客户端)。7)客户端任务管理模块客户端任务管理模块采用Client/Server架构,获得软件生产线中的任务信息。 客户端任务管理模块从服务器端任务管理模块中获取本用户相关的软件开发任务,根据任 务描述的制品位置,提取待加工制品;在制品加工完成后,根据制品位置存储制品。8)客户端制品管理模块客户端制品管理模块负责从服务器端制品管理模块获取制品信息、更新制品信息 或者提交工具产生的制品。基于上述软件生产线框架与系统,可以实现软件工具集成。项目管理人员利用生 产线建模工具构建软件生产线模型;并在此基础上,利用客户端生产线装配模块构建开发 人员的个人工作平台,并在客户端任务管理模块的指导下,完成开发任务。尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明 的内容并据以实施,但是本领域的技术人员可以理解在不脱离本发明及所附的权利要求 的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例 和附图所公开的内容。
权利要求
一种软件生产线构造方法,其步骤为1)客户端根据软件开发环境的需求创建软件生产线模型文件并将其保存到服务器端;2)客户端装配模块从服务器端下载并解析该软件生产线模型文件,获得该软件生产线中的角色信息;3)客户端装配模块依据客户端的角色和软件生产线模型文件中角色与加工步骤、加工步骤与工具集的映射信息,获得该客户端所需的工具集地址,并从服务器端下载工具集装配该客户端;4)客户端任务管理模块定期轮询服务器端任务管理模块,下载与所在客户端相关的任务信息;其中任务信息包括输入制品信息、输出制品信息、所需工具;5)客户端制品管理模块根据下载的任务信息完成该任务,并将该任务状态改为完成。
2.如权利要求1所述的方法,其特征在于创建所述软件生产线模型文件的方法为1)根据软件生产线元模型,将软件开发过程提取为一组有序的加工步骤;所述软件生 产线元模型包含加工工序、加工步骤、角色、工具和制品五个元素以及它们之间的关系;2)设定每个加工步骤相关的角色信息、所需工具集、输入制品信息和输出制品信息,建 立软件生产线元模型实例,形成所述的软件生产线模型文件。
3.如权利要求2所述的方法,其特征在于采用基于Eclipse插件的生产线图形化建模 工具创建所述软件生产线模型文件。
4.如权利要求3所述的方法,其特征在于所述软件生产线模型文件为XML格式文件。
5.如权利要求4所述的方法,其特征在于所述客户端装配模块利用XML解析器解析所 述软件生产线模型文件。
6.如权利要求1或2或3或4或5所述的方法,其特征在于所述客户端装配模块通过 HTTP协议从服务器端下载并解析该软件生产线模型文件。
7.如权利要求1所述的方法,其特征在于所述客户端装配模块采用Eclipse插件更新 机制从服务器端获得客户端所需的工具集。
8.如权利要求1所述的方法,其特征在于所述任务信息还包括增加任务的时机、任务 类型、完成任务的人员、任务计划持续时间、任务实际持续的时间、任务计划的剩余时间、任 务对应的生产线加工工序。
9.一种软件生产线构造系统,其特征在于包括服务器端和若干客户端,服务器端和客 户端通过HTTP协议互联;其中服务器端包括生产线管理模块、工具管理模块、任务管理模块、制品管理模块;所述生产线管理模块,用于维护软件生产线模型文件;所述工具管理模块,用于将生产线中涉及的工具按照Eclipse更新站点的形式进行组 织管理;所述任务管理模块,用于输入任务说明,并维护任务的状态;所述制品管理模块,用于存储、提取、更新软件开发过程中所产生的软件制品,支持制 品在整个软件开发过程中的共享;客户端包括生产线建模工具、客户端装配模块、客户端任务管理模块、客户端制品管理 模块;所述生产线建模工具,用于根据软件开发环境创建软件生产线模型文件; 所述客户端装配模块,用于从所述工具管理模块的生产线工具库中下载并安装相应的 工具集,装配出所需的客户端;所述客户端任务管理模块,用于从服务器端的所述任务管理模块中获取客户端相关的 软件开发任务,并根据任务描述的制品位置,提取待加工制品;在制品加工完成后,根据制 品输出位置存储制品;所述客户端制品管理模块,用于从服务器端的所述制品管理模块终获取制品信息、更 新制品信息或者提交工具产生的制品。
10.如权利要求9所述的系统,其特征在于所述任务说明包括加工步骤的开发任务, 任务的属性信息,任务的要求;服务器端的所述制品管理模块采用配置管理系统管理生产 线中的制品;所述软件生产线模型文件为XML格式文件。
全文摘要
本发明公开了一种软件生产线构造方法及系统,属于计算机软件领域。本方法为1)客户端创建软件生产线模型文件并将其保存到服务器端;2)客户端装配模块从服务器端下载并解析该软件生产线模型文件,获得该软件生产线中的角色信息;3)客户端装配模块依据客户端的角色和软件生产线模型文件获得该客户端所需的工具集地址,并从服务器端下载工具集装配该客户端;4)客户端任务管理模块轮询服务器端任务管理模块,下载与所在客户端相关的任务信息;5)客户端制品管理模块根据下载的任务信息完成该任务,并将该任务状态改为完成。本发明弥补了软件开发中生产过程、工具、制品、开发者之间关系的缺失,实现工具之间数据集成、控制集成、过程集成。
文档编号H04L29/06GK101957753SQ20101027906
公开日2011年1月26日 申请日期2010年9月10日 优先权日2010年9月10日
发明者张若定, 王伟, 白琳, 窦文生, 钟华, 陈伟, 高楚舒, 魏峻, 黄涛 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1