CN102646040B - 基于功件和功件树的软件生成方法及装置 - Google Patents
基于功件和功件树的软件生成方法及装置 Download PDFInfo
- Publication number
- CN102646040B CN102646040B CN201210117034.XA CN201210117034A CN102646040B CN 102646040 B CN102646040 B CN 102646040B CN 201210117034 A CN201210117034 A CN 201210117034A CN 102646040 B CN102646040 B CN 102646040B
- Authority
- CN
- China
- Prior art keywords
- merit part
- merit
- tree
- software
- parts
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于功件和功件树的软件生成方法及装置。基于功件和功件树的软件生成方法包括:在已创建的功件和功件树的集合中,检索目标软件需要的第一功件以及与所述第一功件相关联的第二功件,其中,所述功件为软件系统或产品中完整并且独立的功能模块,所述功件树为通过关联关系组合在树形或网状结构中的功件的集合;提取所述第一功件和所述第二功件;将所述第一功件与所述第二功件进行匹配;对所述第一功件和所述第二功件进行组合,生成所述目标软件。本发明的基于功件和功件树的软件生成方法及装置,大大降低了软件的重复开发率,缩短了软件开发周期,因而提高了软件开发速度,节约了劳动力。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种基于功件和功件树的软件生成方法及装置。
背景技术
从软件这个概念诞生开始,关于软件复用和快速开发技术,人们就不断寻找各种解决办法。例如,二进制语言、汇编语言、C语言、java语言等从低级语言发展到高级语言,或者以面向过程、面向对象、面向函数、面向服务等方式进行软件开发,以至于各种中间件(Middleware)技术、框架技术、组件技术等,都在尝试提高软件复用率和加快软件开发速度。
在现有的软件开发领域,无论是中间件技术、框架技术、组件技术等,都属于正向的传统开发模式,即提供一个开发平台,由程序员向其中添加代码和业务逻辑来完成软件开发,或者根据既有的特定流程编写代码或生成组件,最终形成软件系统或产品。从根本上说,现有的技术和解决方案都还没有脱离传统的软件开发模式,不能解决由模块组合开发生成软件中所遇到的问题;比如,现有技术无法解决软件需求的不可确定性与功能模块的单一性之间的矛盾,针对一个新的软件系统开发,往往需要从头进行设计、开发工作,即使其中大部分功能在已有系统中已经具备。
现有技术,都不能抹煞一个事实:那就是需要软件工程师根据不同的需求和设计需要,一行行编写代码,最后再测试通过后,去部署实施。这种软件作坊式的开发方式,要求每个软件项目都需要组建一个独立的软件开发团队,在需求分析、设计、开发、测试、实施、维护等软件生命周期中,全程参与,即使是两个相似的项目,上述过程也不可缺少。
现有技术,也不利于形成一个统一的软件知识库,不能有效地将已有的软件成果快速应用到新的软件项目中,从而不利于软件知识和技术的积累以及快速利用。
上述这些缺点,造成的结果就是:软件的重复开发率高,劳动力浪费严重,软件生命周期短但开发周期长。
发明内容
本发明所要解决的技术问题是提供一种基于功件和功件树的软件生成方法及装置,提高软件开发速度,节约劳动力。
为解决上述技术问题,本发明提出了一种基于功件和功件树的软件生成方法,所述功件为软件系统或产品中完整并且独立的功能模块,所述功件树为通过关联关系组合在树形或网状结构中的功件的集合,包括:
在已创建的功件和功件树的集合中,检索目标软件需要的第一功件以及与所述第一功件相关联的第二功件;
提取所述第一功件和所述第二功件;
将所述第一功件与所述第二功件进行匹配;
对所述第一功件和所述第二功件进行组合,生成所述目标软件。
进一步地,上述方法还可具有以下特点,在所述检索目标软件需要的第一功件以及与所述第一功件相关联的第二功件之前还包括:
创建并管理功件和功件树。
进一步地,上述方法还可具有以下特点,所述功件包括连接接口、属性描述和配置参数、自完备数据存储。
进一步地,上述方法还可具有以下特点,所述功件树的表现方式为下列两种方式中的任意一种或两种的组合:
功件树的根由某个或某些功件构成,其他功件为枝干;
功件树的根由某个或某些功件构成,每个功件根据需求衍生出不同的功件版本分枝。
进一步地,上述方法还可具有以下特点,所述创建并管理功件和功件树包括:
创建、显示、编辑、升级、扩展、删除功件或功件树,以及功件关联和功件树关联。
为解决上述技术问题,本发明提出了一种基于功件和功件树的软件生成装置,所述功件为软件系统或产品中完整并且独立的功能模块,所述功件树为通过关联关系组合在树形或网状结构中的功件的集合,所述基于功件和功件树的软件生成装置包括:
检索模块,用于在已创建的功件和功件树的集合中,检索目标软件需要的第一功件以及与所述第一功件相关联的第二功件;
提取模块,用于提取所述第一功件和所述第二功件;
匹配模块,用于将所述第一功件与所述第二功件进行匹配;
组合模块,用于对所述第一功件和所述第二功件进行组合,生成所述目标软件。
进一步地,上述装置还可具有以下特点,还包括:
管理模块,用于创建并管理功件和功件树。
进一步地,上述装置还可具有以下特点,所述功件包括连接接口、属性描述和配置参数、自完备数据存储。
进一步地,上述装置还可具有以下特点,所述功件树的表现方式为下列两种方式中的任意一种或两种的组合:
功件树的根由某个或某些功件构成,其他功件为枝干;
功件树的根由某个或某些功件构成,每个功件根据需求衍生出不同的功件版本分枝。
进一步地,上述装置还可具有以下特点,所述管理模块包括:
创建单元,用于创建功件或功件树;
显示单元,用于显示功件或功件树;
编辑单元,用于编辑功件或功件树;
升级单元,用于升级功件或功件树;
扩展单元,用于扩展功件或功件树;
删除单元,用于删除功件或功件树;
关联单元,用于进行功件关联和功件树关联。
本发明的基于功件和功件树的软件生成方法及装置,大大降低了软件的重复开发率,缩短了软件开发周期,因而提高了软件开发速度,节约了劳动力。
附图说明
图1为用户管理系统组成示意图;
图2为本发明实施例中基于功件和功件树的软件生成方法的流程图;
图3为本发明实施例中基于功件和功件树的软件生成装置的结构框图。
具体实施方式
首先对本发明的两个重要概念“功件”和“功件树”进行阐述。
将软件项目对比现实生活中的大型工程建设,假如将一个螺丝、一个传动轴、一个二级管等零件比作一行代码,一个电动机、一个水泵、一个计算机等设备对应一个软件功能组件,一个车间、一个厂房对应一个软件子系统,那么一个软件项目就可以看作一个现实生活中的工程建设。从工程建设的角度来看,其关心的是如何安装设备来建立车间、厂房,而不是关心如何生产一个电动机或水泵设备;因此,在软件模块式开发项目中,最基本的软件复用单元应该是软件功能组件(或软件功能模块),下面将软件功能组件称为“功件”。
为了有效地将功件组织起来,并且便于功件的创建、检索和使用,就需要用到功件树。为了快速生成具备特殊需求的软件系统或产品,而不需要额外的代码开发,则需要创建海量的功件和功件树;如果缺失某种功能的功件或用于某种目的的功件树,则需根据已有的功件和功件树,创建新的功件和功件树;然后在海量的功件和功件树中,通过功件查询检索、功件匹配、功件提取、功件组合等操作,实时将功件组合成一个个符合特定需求的软件系统或产品。
功件(即软件功能组件或软件功能模块)可以是软件系统或产品中的一个基本的逻辑或物理概念,也可以是一个多功能复合体,但功件必须是一个完整而且独立的功能模块(类似机械工程领域当中的设备或工件,具有各自特有功能,且能够组合在一起完成更复杂的功能或组成一个系统),以便可以快捷地将相关联的功件组合起来,从而不需要进行额外的开发工作,即可完成软件系统或产品的开发工作。
根据功件在软件系统或产品中的重要性来区分,可以将功件分为主要功件和辅助功件等类别。其中,主要功件是指在软件系统中占据主导地位的软件功能组件,能够体现软件所包含的功能特性。辅助功件在软件系统中不能独立存在,必须依赖或辅助于主要功件。比如图1所示的用户管理系统中,用户(User)、角色(Role)、权限(Permission)等可以作为主要功件,用户角色关联(UserToRole)、用户权限关联(UserToPermission)、角色权限关联(RoleToPermission)等则为作为辅助功件。
根据功件的功能角色来区分,可以将功件分为基本、连接、转换、显示、控制、数据等类别。其中,基本功件是软件系统中的基本功能组件,代表了软件所具备的基本功能;连接功件是将两个或两个以上的基本功件连接或关联起来的功件;转换功件主要是指接口转换,可以将功件的接口转换为其他功件所需要的和匹配的接口;显示功件主要给用户提供显示和操作方面的功能;控制功件提供逻辑控制或授权认证等功能;数据功件主要用于数据的持久化部分。
如果根据功件在软件系统中所处层次来区分,可以将功件分为UI(用户界面)层功件、控制逻辑层功件、数据层功件等。其中,UI层功件主要给用户提供人机交互的功能界面;控制逻辑层功件则包括功能逻辑控制部分、认证授权部分、校验部分等;数据层功件则包括数据持久化部分,包括数据寻址、数据定义、数据的增删改查、数据存储、数据索引、数据分析统计等多个部分。
单一功能的功件,可以组合成复杂功能的功件;将不同类别的功件有效的组织、衔接起来,并使其在一定环境下独立运行,即可成为一个软件系统或产品。
功件的定义,可以有从上到下和从下到上这两种方式。从上到下定义(这种定义方式为传统软件开发模式)是指,从软件系统的总体流程来考虑,以物理或逻辑概念为主,抽象出主要功件,然后为了将这些主要功件联系组合起来,抽象出相应的辅助功件。从下到上定义是指,不考虑软件系统的流程,只是从软件系统所可能包含的功能来考虑,将所有可能包含的功能抽象成主要功件,以及根据所有主要功件之间所有可能的关联组合关系,抽象出相应的辅助功件。
功件的实现可以多种多样,不限于语言、开发运行环境或操作系统。功件可以以源代码方式存在,也可以以二进制、字节码或其他计算机可以理解的方式存在,也不限于进程内或进程外、源代码或二进制、解释型或编译链接型、静态或动态。功件产生和实现方式服务于其在软件系统或产品中所处位置、所起作用。因此,功件可以是一个类或方法集合,可以是一段程序代码或一个文件,也可以是一个独立线程或进程。
根据功件所包含功能不同或满足需求不同或所使用技术的不同,同一个功件可以产生不同的版本分枝。比如上述User(用户)功件,可以衍生1、2、3这3个版本,第1个版本只包含用户相关的增、删、改、查等基本功能,第2个版本则还包含给用户邮箱发送Email进行激活的功能,第3个版本包括发送短信进行生日提醒的功能。这样分别满足三种不同的需求,可以让使用者针对自己的需求灵活选取并使用。
每个独立的功件,应具备完整的功能、连接接口(可以理解为设备接口)、详细的属性描述(可以理解为设备规格)和配置参数、自完备数据存储等。
功件内部的变化,只要不涉及接口变化,就不会影响到其关联功件。如果功件的接口发生改变,则其关联功件(即与其有调用(主调或被调)关系的功件)也要做相应变化,这种行为可以视为功件的升级。
功件可以包括连接接口、属性描述和配置参数、自完备数据存储,其中:
连接接口:连接接口是功件之间联系通讯的基本途径和手段。每个功件的连接接口(或调用地址、方法等)可以有多个。按接口的调用方式,连接接口可以分为两类,一类是暴露在外供其它功件或其它系统调用的接口,称之为被调接口,一类是需要调用其他相关功件或其它系统的接口来完成逻辑操作,称之为主调接口。按数据流向来分,则连接接口又可以分为输入接口和输出接口。连接接口的接口调用方式、传输协议、数据格式可以多种多样,所以连接接口的接口定义、实现、调用、通讯方式不限于特定协议或数据格式。连接接口的接口内部功能实现一般包括逻辑控制部分、认证授权部分、校验部分、数据输入输出等。调用功件的主调接口与被调用功件的被调接口,只有100%匹配(即保证接口调用方式匹配、方法名称一致或调用地址一致、输入参数一致和返回参数一致)时,才能连接或调用成功,这种接口的连接或调用关系就是一种关联关系,即调用功件和被调功件是可关联的。
属性描述和配置参数:功件的属性包括名称、型号、规格、接口数量、接口调用方式、开发环境、运行环境等。功件的配置参数则包括一些如地址、口令等的常量设置。功件的属性是给使用者提供功件的描述说明和检索依据,功件的配置参数需要功件使用者确定以便于功件组合来自动生成软件。
自完备数据存储:有些功件包含数据持久化部分,其与一般的数据持久化不同,它包括数据寻址、数据定义、数据的增删改查、数据存储、数据索引、数据分析统计等多个部分,即可以视为程序功能与数据库的综合体。如果功件需要外部数据存储(如MySQL、0racle数据库等,除非将这些数据库当作关联功件)支持,则功件内部应具备数据库、表、索引等定义,以至于其可以作为独立的功能模块存在,而不需要额外的数据库相关开发工作。也就是说,包含数据持久化部分的功件应具备数据自定义、自包含、自操作的特性,如果脱离这一点,那么这类功件就失去了可组合、可插拔、可替换的基本特性。
不同功件之间的基本关联关系是由接口的调用关系来体现的,同一个功件不同版本或同一种类型功件间的关联关系是通过相似性来体现的,为了有效地将功件的起始、承接关系表达出来,引入“功件树”这个概念。
一个功件树,可能是一个为实现某种目的的软件系统所需要的所有功件的集合,可能是某个或某些功件的不同版本的功件的集合,可能是某个或某些类型的功件的集合,其中的功件通过关联关系组合在一种树形或网状的结构中。
一个软件系统类型的功件树代表一个用于某种目的的软件系统或产品,比如一个操作系统、一个应用程序、一种类型的网站;一个软件系统类型的功件树,包含了此软件系统或产品中可能有的所有功能相关的功件,这些功件以连接接口进行关联;一个软件系统类型的功件树,是软件系统或产品的功件超级集合,其局部的分枝即可组合成为一个软件系统或产品。一个由不同版本的功件组成的功件树,由某个或某些功件的不同版本分枝所构成。同类功件组成的功件树,是由某个或某些类型的功件所构成,例如UI类型的功件或数据类型的功件。
在一个软件系统类型的功件树中,不同功件之间通过接口调用关系连接在一起组成一个功件树。根据功件接口连接时的调用和被调用关系,可以将接口分为主调接口和被调接口,同样可以将有关联关系的两个功件分为主调功件和被调功件。功件间的接口调用关系,可以用匹配度、利用率、关联度这3个指标来判定。
一个功件的所有主调接口,可能调用多个被调功件的多个被调接口。当功件的所有主调接口被100%满足时,此功件才能完美运行,此时该功件的匹配度达到100%。
一个功件的所有被调接口,可以被多个主调功件的多个主调接口调用。当该功件的所有被调接口被100%调用时,则该功件的利用率达到100%。
一个主调功件的主调接口100%调用一个被调功件的被调接口,则说这两个功件间的关联度达到100%。
在一个由不同版本的功件或某些类型的功件组成的功件树中,功件间以接口定义、功能实现的相似性关联起来,组成一个功件树。因此可以用接口相似度、功能相似度这两个指标来判定其关联关系。
一个功件的不同版本,如上述User(用户)功件,可以有1、2、3这三个版本,就是三个功件,这三个功件各自满足不同的需求,但其接口定义、功能实现有一定的相似性;当两个功件间的接口定义完全一致时,说明其接口相似度为100%;当两个功件间的功能实现完全一致时,其功能相似度为100%。
同类型的功件间的相似度表述同上。
功件树可以有如下几种表现方式:
(1)一个功件树的根可以是某个或某些功件构成,其他功件为枝干。例如,一个功件树的根可以由组成一个软件系统的一系列的主要功件构成,枝干由其他辅助功件构成:在用户管理系统中,User(用户)、Role(角色)、Permission(权限)为主要功件,可以作为根;UserToRole或UserToPermission或RoleToPermission功件为辅助功件,这些辅助功件与主要功件通过接口进行关联。当需要生成软件系统或产品时,可以提取User、UserToPermissio、Permissionn功件做组合,生成一个用户权限管理系统;也可以提取User、UserToRole、Role、RoleToPermission、Permission来做组合,生成一个用户角色权限管理系统;功件树的根可以是UI层的功件,以UI层的功件的排列、组合形成整个软件工作流程的总体框架,并以与UI层功件相关联的控制逻辑层或数据层的功件为枝干,从而组合为一个完整的功件树;
(2)一个功件树的根可以是某个或某些功件,每个功件可以根据不同需求衍生出不同的功件版本分枝,来组成完整的功件树;
(3)功件树可以是上述两种功件树中任意一种或两种的组合。
用于同一目的的功件树,根据编程语言、开发运行环境不同,以至于接口调用方式、数据存储形式、数据格式的不同,都可以产生不同的功件树,其所含功件的实现方式也可以不同。与功件类似,功件树也具备版本升级的概念,当一个功件树内部的功件和功件间的关系发生很大变化时,功件树可以进行版本升级。因此,功件树之间具有功件之间类似的关联关系。
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明的基于功件和功件树的软件生成方法基于功件和功件树,首先创建功件树,再在功件树中创建大量的功件,然后在海量的功件的集合中,或在由大量功件组合成的某个功件树中,或在不同的功件树中,通过检索、提取、匹配、组合和/或编译链接等操作,来完成用于某种目的的软件系统或软件产品的开发。
图2为本发明实施例中基于功件和功件树的软件生成方法的流程图。如图2所示,本实施例中,基于功件和功件树的软件生成方法包括如下步骤:
步骤101,在已创建的功件和功件树的集合中,检索目标软件需要的第一功件以及与该第一功件相关联的第二功件;
可以根据目标软件的需要设置查询条件进行检索。
第一功件的种类和数量根据具体要生成的目标软件的功能来确定,第一功件可以来自同一功件树,也可以来自不同的功件树,也可以来自根据目标软件需求实时产生新的功件或功件树。第二功件与第一功件通过连接接口相关联,其种类和数量根据第一功件的需要来确定;与第一功件关联的第二功件,可以来自已有的功件树,也可以通过查询检索方式查找其他功件树的功件。例如,第一功件可以是UI层的功件,其关联的控制逻辑层功件或数据层功件为第二功件。
功件和功件树的功能描述是必不可少的,功件和功件树的功能描述是使用者挑选合适功件的依据。同时,功件的接口定义、依赖关系、开发运行环境等功件规格参数,是进行检索、匹配、提取、组合功件成为软件系统或产品的关键。
在步骤101之前,还可以包括:创建并管理功件和功件树,功件为软件系统或产品中完整并且独立的功能模块,功件树为通过关联关系组合在树形或网状结构中的功件的集合。
其中,对功件和功件树的管理可以包括创建、显示、编辑、升级、扩展、删除功件或功件树,以及功件关联和功件树关联等。
功件树的管理用于维护功件树的相关属性信息,以及功件间和功件树间的关联关系,计算功件和功件树的匹配度、利用率、关联度、相似度等信息;
功件的管理用于维护功件的基本属性信息,例如功件名称、型号、规格、接口数量、接口调用方式、开发环境、运行环境等,以及功件相关的程序文件等。
步骤102,提取第一功件和第二功件;
具体地,从海量功件或功件树中,根据步骤101的检索结果,提取相关功件(这里指第一功件)及其关联功件(这里指第二功件)。
步骤103,将第一功件与第二功件进行匹配;
具体地,将步骤102提取的功件(即第一功件和第二功件)进行接口匹配,以确定被提取功件的主调接口100%匹配被调接口,以满足下述步骤104的组合要求;如果第二功件与第一功件的接口不匹配,可以修改接口或用转换类型功件使得第二功件能够与第一功件的接口匹配。
步骤104,对第一功件和第二功件进行组合,生成目标软件。
可以按照目录、文件的方式将第一功件和第二功件组合起来,使得第一功件和第二功件能够通过连接接口匹配组合在一起,以便于使用者使用,最终生成目标软件。例如将程序文件按规则存放,以便于在某种开发环境中进行编译链接操作,或者便于程序的打包、下载、制作、部署和应用。
本发明的基于功件和功件树的软件生成方法是以一种全新的思路重新探究软件开发领域,是一种开创性的软件开发方式。本发明的基于功件和功件树的软件生成方法使得软件开发从代码开发转向功件组合开发,利用功件树将功件有机组合并管理起来,从而便于使用者方便的查找、定位、使用功件,并通过创建和管理海量的功件和功件树,最终能够形成有效的软件知识库,以快速开发软件系统或软件产品。本发明以海量的、功能相对单一的功件的组合,来适应软件系统或软件产品开发中的个性化需求以及需求变化,最终将软件开发从软件作坊式开发向大规模模块协作式开发方向迈进。
本发明的基于功件和功件树的软件生成方法,大大降低了软件的重复开发率,缩短了软件开发周期,因而提高了软件开发速度,节约了劳动力。
本发明还提出了一种基于功件和功件树的软件生成装置,用以实施上述的基于功件和功件树的软件生成方法。
图3为本发明实施例中基于功件和功件树的软件生成装置的结构框图。如图3所示,本实施例中,基于功件和功件树的软件生成装置200包括检索模块210、提取模块220、匹配模块230和组合模块240。其中,检索模块210用于在已创建的功件和功件树的集合中,检索目标软件需要的第一功件以及与第一功件相关联的第二功件。提取模块220用于提取检索模块210所检索出的第一功件和所述第二功件。匹配模块230用于将提取模块220提取的第一功件与所述第二功件进行匹配。组合模块240用于对第一功件和所述第二功件进行组合,生成目标软件。
在本发明的其他实施例中,基于功件和功件树的软件生成装置中还可以包括管理模块。管理模块用于创建并管理功件和功件树,其中,功件为软件系统或产品中完整并且独立的功能模块,功件树为通过关联关系组合在树形或网状结构中的功件的集合。
管理模块还可以进一步包括创建单元、显示单元、编辑单元、升级单元、扩展单元、删除单元和关联单元。其中,创建单元用于创建功件或功件树。显示单元用于显示功件或功件树。编辑单元用于编辑功件或功件树。升级单元用于升级功件或功件树。扩展单元用于扩展功件或功件树。删除单元用于删除功件或功件树。关联单元用于进行功件关联和功件树关联。
其中,功件可以包括连接接口、属性描述和配置参数、自完备数据存储。
其中,功件树的表现方式可以为下列两种方式中的任意一种或两种的组合:
(1)功件树的根由某个或某些功件构成,其他功件为枝干;
(2)功件树的根由某个或某些功件构成,每个功件根据需求衍生出不同的功件版本分枝。
本发明的基于功件和功件树的软件生成装置,大大降低了软件的重复开发率,缩短了软件开发周期,因而提高了软件开发速度,节约了劳动力。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于功件和功件树的软件生成方法,所述功件为软件系统或产品中完整并且独立的功能模块,功件是软件系统或产品中的一个基本的逻辑或物理概念或者是一个多功能复合体,根据功件所包含功能不同或满足需求不同或所使用技术的不同,同一个功件可以产生不同的版本分枝;所述功件的定义有从上到下和从下到上这两种方式,从上到下是指,从软件系统的总体流程来考虑,以物理或逻辑概念为主,抽象出主要功件,然后为了将这些主要功件联系组合起来,抽象出相应的辅助功件,从下到上是指,不考虑软件系统的流程,只是从软件系统所可能包含的功能来考虑,将所有可能包含的功能抽象成主要功件,以及根据所有主要功件之间所有可能的关联组合关系,抽象出相应的辅助功件,所述功件以源代码、二进制、字节码或其他计算机可以理解的方式存在,也不限于进程内或进程外、源代码或二进制、解释型或编译链接型、静态或动态,所述功件是一个类或方法集合、一段程序代码或一个文件或一个独立线程或进程,所述功件包括连接接口、属性描述和配置参数、自完备数据存储;
所述功件树为通过关联关系组合在树形或网状结构中的功件的集合,所述功件树是一个软件系统所需要的所有功件的集合、一个或多个功件的不同版本的功件的集合或者一个或多种类型的功件的集合,不同功件之间的基本关联关系是由接口的调用关系来体现的,同一个功件不同版本或同一种类型功件间的关联关系是通过相似性来体现的,所述功件树用以将所述功件的起始、承接关系表达出来;
通过创建和管理海量的功件和功件树,最终能够形成有效的软件知识库,首先创建功件树,再在功件树中创建大量的功件,然后在海量的功件的集合中,或在由大量功件组合成的某个功件树中,或在不同的功件树中,通过检索、提取、匹配、组合和/或编译链接等操作,来完成用于某种目的的软件系统或软件产品的开发,其特征在于,包括:
在已创建的功件和功件树的集合中,检索目标软件需要的第一功件以及与所述第一功件相关联的第二功件,所述第一功件的种类和数量根据具体要生成的目标软件的功能来确定,所述第一功件来自同一功件树或不同的功件树或根据目标软件需求实时产生新的功件或功件树,所述第二功件与所述第一功件通过连接接口相关联,其种类和数量根据所述第一功件的需要来确定,与所述第一功件关联的所述第二功件,来自已有的功件树或通过查询检索方式查找其他功件树的功件;
提取所述第一功件和所述第二功件;
将所述第一功件与所述第二功件进行匹配;
对所述第一功件和所述第二功件进行组合,生成所述目标软件。
2.根据权利要求1所述的基于功件和功件树的软件生成方法,其特征在于,在所述检索目标软件需要的第一功件以及与所述第一功件相关联的第二功件之前还包括:
创建并管理功件和功件树。
3.根据权利要求2所述的基于功件和功件树的软件生成方法,其特征在于,所述功件树的表现方式为下列两种方式中的任意一种或两种的组合:
功件树的根由某个或某些功件构成,其他功件为枝干;
功件树的根由某个或某些功件构成,每个功件根据需求衍生出不同的功件版本分枝。
4.根据权利要求2所述的基于功件和功件树的软件生成方法,其特征在于,所述创建并管理功件和功件树包括:
创建、显示、编辑、升级、扩展、删除功件或功件树,以及功件关联和功件树关联。
5.一种基于功件和功件树的软件生成装置,所述功件为软件系统或产品中完整并且独立的功能模块,功件是软件系统或产品中的一个基本的逻辑或物理概念或者是一个多功能复合体,根据功件所包含功能不同或满足需求不同或所使用技术的不同,同一个功件可以产生不同的版本分枝;所述功件的定义有从上到下和从下到上这两种方式,从上到下是指,从软件系统的总体流程来考虑,以物理或逻辑概念为主,抽象出主要功件,然后为了将这些主要功件联系组合起来,抽象出相应的辅助功件,从下到上是指,不考虑软件系统的流程,只是从软件系统所可能包含的功能来考虑,将所有可能包含的功能抽象成主要功件,以及根据所有主要功件之间所有可能的关联组合关系,抽象出相应的辅助功件,所述功件以源代码、二进制、字节码或其他计算机可以理解的方式存在,也不限于进程内或进程外、源代码或二进制、解释型或编译链接型、静态或动态,所述功件是一个类或方法集合、一段程序代码或一个文件或一个独立线程或进程,所述功件包括连接接口、属性描述和配置参数、自完备数据存储;
所述功件树为通过关联关系组合在树形或网状结构中的功件的集合,所述功件树是一个软件系统所需要的所有功件的集合、一个或多个功件的不同版本的功件的集合或者一个或多种类型的功件的集合,不同功件之间的基本关联关系是由接口的调用关系来体现的,同一个功件不同版本或同一种类型功件间的关联关系是通过相似性来体现的,所述功件树用以将所述功件的起始、承接关系表达出来;
通过创建和管理海量的功件和功件树,最终能够形成有效的软件知识库,首先创建功件树,再在功件树中创建大量的功件,然后在海量的功件的集合中,或在由大量功件组合成的某个功件树中,或在不同的功件树中,通过检索、提取、匹配、组合和/或编译链接等操作,来完成用于某种目的的软件系统或软件产品的开发,其特征在于,所述基于功件和功件树的软件生成装置包括:
检索模块,用于在已创建的功件和功件树的集合中,检索目标软件需要的第一功件以及与所述第一功件相关联的第二功件,所述第一功件的种类和数量根据具体要生成的目标软件的功能来确定,所述第一功件来自同一功件树或不同的功件树或根据目标软件需求实时产生新的功件或功件树,所述第二功件与所述第一功件通过连接接口相关联,其种类和数量根据所述第一功件的需要来确定,与所述第一功件关联的所述第二功件,来自已有的功件树或通过查询检索方式查找其他功件树的功件;
提取模块,用于提取所述第一功件和所述第二功件;
匹配模块,用于将所述第一功件与所述第二功件进行匹配;
组合模块,用于对所述第一功件和所述第二功件进行组合,生成所述目标软件。
6.根据权利要求5所述的基于功件和功件树的软件生成装置,其特征在于,还包括:
管理模块,用于创建并管理功件和功件树。
7.根据权利要求6所述的基于功件和功件树的软件生成装置,其特征在于,所述功件树的表现方式为下列两种方式中的任意一种或两种的组合:
功件树的根由某个或某些功件构成,其他功件为枝干;
功件树的根由某个或某些功件构成,每个功件根据需求衍生出不同的功件版本分枝。
8.根据权利要求6所述的基于功件和功件树的软件生成装置,其特征在于,所述管理模块包括:
创建单元,用于创建功件或功件树;
显示单元,用于显示功件或功件树;
编辑单元,用于编辑功件或功件树;
升级单元,用于升级功件或功件树;
扩展单元,用于扩展功件或功件树;
删除单元,用于删除功件或功件树;
关联单元,用于进行功件关联和功件树关联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210117034.XA CN102646040B (zh) | 2012-04-19 | 2012-04-19 | 基于功件和功件树的软件生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210117034.XA CN102646040B (zh) | 2012-04-19 | 2012-04-19 | 基于功件和功件树的软件生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102646040A CN102646040A (zh) | 2012-08-22 |
CN102646040B true CN102646040B (zh) | 2015-08-26 |
Family
ID=46658870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210117034.XA Active CN102646040B (zh) | 2012-04-19 | 2012-04-19 | 基于功件和功件树的软件生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102646040B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615425A (zh) * | 2015-01-16 | 2015-05-13 | 贾志东 | 一种基于功件和功件树开发软件系统的方法和系统 |
CN104834513B (zh) * | 2015-03-26 | 2018-12-07 | 北京煤科天玛自动化科技有限公司 | 一种综采工作面液压支架控制器软件自动生成的方法和系统 |
CN105242933A (zh) * | 2015-10-22 | 2016-01-13 | 浪潮电子信息产业股份有限公司 | 一种将软件开发方法及装置 |
CN105930514B (zh) * | 2016-05-16 | 2019-05-24 | 珠海格力电器股份有限公司 | 配套关系检索方法和系统 |
CN108170424A (zh) * | 2017-12-28 | 2018-06-15 | 重庆南华中天信息技术有限公司 | 一种基于云知识库的自我扩展方法及系统 |
CN109343831A (zh) * | 2018-08-22 | 2019-02-15 | 平安普惠企业管理有限公司 | 一种html组件的管理方法及装置 |
CN109871208B (zh) * | 2019-01-04 | 2023-10-17 | 平安科技(深圳)有限公司 | 软件系统生成方法、装置、计算机可读存储介质及服务器 |
CN112579075B (zh) * | 2019-09-29 | 2024-05-17 | 北京沃东天骏信息技术有限公司 | 同质化系统重构的方法和装置 |
CN112306543B (zh) * | 2020-11-13 | 2023-08-29 | 成都中科大旗软件股份有限公司 | 一种ios系统衍生项目的管理方法 |
CN114912086B (zh) * | 2022-03-29 | 2024-08-30 | 超音速人工智能科技股份有限公司 | 一种软件权限管理分配方法及系统 |
CN114896192B (zh) * | 2022-06-09 | 2024-04-09 | 苏州华兴源创科技股份有限公司 | 接口的匹配方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877523A (zh) * | 2006-06-23 | 2006-12-13 | 清华大学 | 一种支持异构构件的构件库统一管理方法 |
-
2012
- 2012-04-19 CN CN201210117034.XA patent/CN102646040B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877523A (zh) * | 2006-06-23 | 2006-12-13 | 清华大学 | 一种支持异构构件的构件库统一管理方法 |
Non-Patent Citations (1)
Title |
---|
应时,周顺等.基于构件库及构件组合的软件重用.《计算机工程》.1998,第24卷(第11期),第1-3节. * |
Also Published As
Publication number | Publication date |
---|---|
CN102646040A (zh) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102646040B (zh) | 基于功件和功件树的软件生成方法及装置 | |
CN110168518A (zh) | 准备和整理用于后续分析的数据的用户界面 | |
CN107533453B (zh) | 用于生成数据可视化应用的系统和方法 | |
CN104615425A (zh) | 一种基于功件和功件树开发软件系统的方法和系统 | |
CN102012945B (zh) | 一种面向用户的数据库管理系统 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
CN104966239A (zh) | 一种基于规则引擎的智能核保平台 | |
CN103049251B (zh) | 一种数据库持久层装置及数据库操作方法 | |
CN103279088A (zh) | 图形编程语言对象编辑及报告工具 | |
CN102054217B (zh) | 基于元模型的工具中的实体变形 | |
CN106873974A (zh) | 智能代码生成引擎系统及方法 | |
CN103309904A (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
CN105468793A (zh) | 一种仿真模型数据的自动化管理方法 | |
CN103914290A (zh) | 一种操作命令处理方法及装置 | |
CN108205454A (zh) | 基于可扩展模板库的数据管理页面自动生成方法及系统 | |
CN104317595A (zh) | 基于svg的后台推送的组件化图形监控装置及其运行方法 | |
CN101609473A (zh) | 一种重构报表查询的结构化查询语言的方法及装置 | |
CN103197932A (zh) | 一种开发无模式文档型数据库应用的业务组件模型 | |
CN110750553A (zh) | 一种在业务管理系统中对数据进行自定义导出的方法 | |
CN114117645B (zh) | 一种舰船总体性能预报集成应用系统 | |
CN101706840A (zh) | 基于产品节点树的产品性能仿真信息的表示方法 | |
CN112035466A (zh) | 一种区块链查询外置索引开发框架 | |
Liao et al. | A study of automatic code generation | |
CN101968747A (zh) | 一种机群应用管理系统及其应用管理方法 | |
CN104007972A (zh) | 用于石油化工装置开停车操作的导航系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |