CN1928814A - 基于组织实体能力的软件过程建模方法和系统 - Google Patents
基于组织实体能力的软件过程建模方法和系统 Download PDFInfo
- Publication number
- CN1928814A CN1928814A CN 200610088999 CN200610088999A CN1928814A CN 1928814 A CN1928814 A CN 1928814A CN 200610088999 CN200610088999 CN 200610088999 CN 200610088999 A CN200610088999 A CN 200610088999A CN 1928814 A CN1928814 A CN 1928814A
- Authority
- CN
- China
- Prior art keywords
- main body
- target
- knowledge
- engine
- process main
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于组织实体能力的软件过程建模方法和系统,针对软件生产的特点实现软件过程建模。在建模系统中使用过程主体(Agent)来代表软件组织中具有确定资源和资源能力的组织实体,这些过程主体具有资源和它们能力的描述,且拥有资源在实现目标的过程知识和经验,能够在环境的驱动下实现自治的行为。它们被部署到系统的工作区中,在系统中可以独立地建立特定目标和环境下的软件过程。用户只要将目标输入到系统中,系统中的过程主体根据自身的资源情况和知识,以及项目的约束目标,自主运行匹配目标并产生具有资源调度情况的项目软件过程。
Description
技术领域
本发明涉及一种软件过程建模技术,特别涉及一种基于组织实体能力的软件过程建模方法和系统,属于计算机软件工程领域。
背景技术
规模化、过程化生产的首要因素是建立规范的生产过程模型。软件具有固有的知识性产物特征,因其对生产者能力的过分依赖而导致软件过程模型在建立和维护时的诸多困难。最典型的问题表现在:(1)软件过程的不确定性,不同的生产者实现同一个目标可以使用不同的过程;(2)软件过程能力对生产者的高度依赖性:对软件生产而言,人不仅是过程的执行者,而且是一种生产资源甚至“生产设备”。这至少反映了人对软件过程有着至关重要的影响。由于生产者之间能力的差异,他们即使在相同的计算机上做同一件事情,在工期和质量方面完全可能出现截然不同的结果。所以,对于建立软件生产的过程体系,“人”的因素被提高到了一种十分重要的地位;(3)软件过程的动态多变性:软件组织所承揽的软件项目通常都是不重复的工作,这与制造业批量重复的生产有很大不同。对于不同的软件项目,由于其涉及的软件技术、应用领域、用户要求以及商业环境不同,其软件开发的过程不尽相同,甚至于完全不同。针对每一个软件项目的开发和生产,都有可能要求相关的软件过程进行必要的变化和调整。这种软件过程的动态多变性对软件过程的建模也提出新的挑战;(4)软件组织资源的流动性:软件组织中资源具有较大的流动性,从而导致组织现有资源的不确定,要求相应的软件过程模型在资源变化情况下保持稳定。
传统的软件过程模型试图沿用制造工业过程的建模方法,将软件开发的相关要素(如:活动、工作产品、角色以及软件工程工具等)组成软件过程,并通过一定的过程纪律来规范软件过程的行为。传统的软件过程模型要求建模时预计可能发生的情况,将软件开发人员视为一个可以被操作的对象,将它们之间的协同或其它可预见的变化视为一组确定的事务或控制规则,并显式地将这些事务或规则的处理方案定义在模型中。当出现预定义的情况时,就触发相应的处理程序。显然,这样的模型一旦确定就难以在环境变化时自适应地进行调整,而且模型忽略了软件过程主体“人”的主观意愿和利益,表现出结构刚性和协同刚性的特点。软件生产在计划时往往只能凭借管理者的经验和主观判断,容易造成局部的利益失衡;而在执行时个体的差异则常常导致计划的失控甚至失败,更谈不上保证过程整体的最优结果。
还有一些方法将智能主体(Agent)技术引入软件过程建模中,它们通过引入多种类型的主体对过程的各个方面实施管理。
这些方法在应用主体时,存在两个主要问题:(1)需要引入很多不同种类的主体对过程的各个方面实施管理,从一定程度上增加了问题的复杂程度;(2)这些方法从传统的软件过程模型和工作流技术发展而来,忽略了很多软件过程中的部分关键问题,如资源的分配等等。
发明内容
针对上述问题,本发明的目的在于提供一种基于组织实体能力的软件过程建模方法和系统,针对软件生产的特点实现软件过程建模。发明构思为:在建模系统中使用过程主体(Agent)来代表软件组织中具有确定资源和资源能力(确定的目标、技能、知识、生产率、经验、历史数据记录、设备等等)的组织实体,这些过程主体具有资源和它们能力的描述,且拥有资源在实现目标的过程知识和经验,能够在环境的驱动下实现自治的行为。它们被部署到系统的工作区中,在系统中可以独立地建立特定目标和环境下的软件过程。
这种构思的目的在于:如果系统的用户希望得到一个开发过程,则将该目标输入到系统中,系统中的过程主体根据自身的资源情况和知识,以及项目的约束目标,自主运行匹配目标并产生具有资源调度情况的项目软件过程。
为实现上述发明目的,基于组织实体能力的软件过程建模系统采用下述的技术方案:
所述系统采用访问界面/工作区/数据库三层结构,如图1所示,分别包含如下内容:
A.访问界面层包括用户过程主体的创建/编辑界面、建模目标的创建编辑界面、建模结果的查看界面,以及外部工具接口;
B.工作区层包含过程主体管理、目标管理、外部工具接口输入处理三个功能模块,以及目标、过程执行数据和一组过程主体三个实体,工作区层的核心是过程主体,其中每个过程主体都是能够自主运行、独立实现目标的实体,包含了知识结构和行为引擎。
C.数据库层包括过程主体的描述性知识、过程主体的过程性知识和过程主体的经验知识。
其中,所述数据库层的三个部分分别存储如下的内容:
C1.描述知识数据库:存储过程主体的描述性信息,包括过程主体能够实现的目标、拥有资源以及资源能力(如技能、生产率、所做产品质量等);
C2.过程知识数据库:存储过程主体实现其自身目标的过程,它由一组过程步骤组成,这些步骤将在过程主体实现目标时实例化为资源具体要执行的任务;
C3.经验知识数据库:存储过程主体包含的资源在每个历史项目中实施步骤所得到的历史数据记录及其统计数据。过程主体根据经验知识,估算实现特定目标的过程所需要分配的资源。
所述工作区层的功能模块分别包含如下功能:
B1.过程主体管理模块用于过程主体信息(包括描述性知识、过程性知识和经验知识)的创建和编辑,并将创建和编辑的结果输入到数据库中;
B2.目标管理模块用于目标信息(包括目标描述、目标约束)的创建和编辑,并将创建和编辑的结果输入到工作区中;
B3外部工具接口输入处理模块用于对外部计划执行工具产生的过程执行数据输入进行加工并输入到工作区中。
所述工作区层的过程主体是能够自主运行、独立实现目标的实体,它的知识结构包括描述性知识、过程性知识和经验知识,这些知识在系统启动时,从数据库层加载到过程主体中。它的行为引擎包括感知器、效应器、推理引擎、学习引擎和实施引擎,分别具有如下功能:
(1)感知器用于从工作区中识别目标、约束条件等,并将这些内容转换为过程主体的内部知识表示(感知);
(2)效应器用于将过程主体的计划输出到访问界面层的建模结果查看界面;
(3)推理引擎用于基于知识的推理,从而实现根据感知的目标生成项目计划。包括目标分析器、过程选择器和计划生成器,功能如下:
●目标分析器利用目标匹配推理算法,根据数据库描述性知识所提供的过程主体自身目标的描述、拥有的技能、资源情况等信息判断是否满足感知器感知的目标描述和技能约束;
●过程生成器根据数据库过程性知识确定实现目标所需的过程;
●计划生成器利用资源进度估算算法,基于过程选择器确定的过程并根据数据库经验知识确定执行该过程需要的资源数量、进度安排以及工作量,并生成相应的计划;
(4)学习引擎用于对感知到的过程执行数据进行分析,如果过程执行数据是过程主体所包含的资源执行产生的,则将该数据加入到该过程主体的经验知识中,从而再次进行估算的时候有更多的数据作经验支持,结果更精确,从而达到过程主体自学习的目的;
(5)实施引擎用于作为过程主体行为引擎的控制核心,控制行为引擎各部分的协调工作。
如图2所示,过程主体在实施引擎的控制下,进行建模的步骤如下:
a.实施引擎定时地通知感知器对工作区进行感知;
b.感知器判断工作区中是否有新增的目标和过程执行数据,如果有则将其读入到过程主体中作为感知,并通知实施引擎感知完成,其中,感知到的数据为过程执行数据或目标;
c.实施引擎判断感知数据的类型,如果是目标,则实施引擎通知推理引擎推理目标;
d.推理引擎首先调用目标分析器判断目标是否与过程主体自身目标相符合,如果不符合则抛弃该目标,并转到步骤a;
e.推理引擎调用过程生成器生成实现目标的过程;
f.推理引擎调用计划生成器生成实现目标的计划,生成结束后通知实施引擎计划生成完成;
g.实施引擎通知效应器输出计划;
h.效应器输出计划,针对一个目标的建模过程完成,转到步骤a。
除了为目标建模,生成实现目标的计划,过程主体还可以对感知器感知的过程数据进行学习,从而增加其经验知识。在实施引擎的控制下,学习引擎学习的过程如下:
i.实施引擎通知学习引擎处理过程执行数据;
j.学习引擎判断该过程执行数据是否为该过程主体的资源所执行产生,如果是则将其加入该过程主体的经验知识中,否则将该数据抛弃;
过程主体进行建模的过程是一个循环的过程,在系统运行后,过程主体将不断地寻找可能实现的目标并实现或者不断增加经验,达到自学习目的。
本发明的技术效果在于:1)将传统的以活动、制品、角色为中心的软件过程建模转变为以人为中心;2)当目标确定时,具体的开发过程只有在实现该目标的过程主体确定后才能确定,这种过程是实现目标恰当的过程,它按照实体能力分配资源,选择适当的开发者执行该过程,能够确保过程的稳定性和可预测性;3)资源的变动不影响建模过程;4)完成为系统输入过程主体后,过程主体在根据目标生成项目计划的过程中独立运行,独立决策,不需要人的参与。
附图说明
图1是基于组织实体能力的软件过程建模系统的架构示意图;
图2是过程主体建模过程的流程示意图;
图3是用户的使用流程示意图。
具体实施方式
下面结合附图,通过为实现Web类型软件设计和编码目标建模的具体实施方式对本发明作进一步的说明,但不构成对本发明的限制。
(一)数据库层:过程主体的数据基础
在所述基于组织实体能力的软件过程建模系统的数据库层中(图1),过程主体的描述性知识、过程主体的过程性知识和过程主体的经验知识是过程主体的数据基础。
下面详细描述这三个数据库。
1.过程主体的描述性知识
过程主体的描述性知识包括过程主体能够实现的目标、拥有资源以及资源能力(如技能、生产率、所做产品质量等),它被定义为一个5元组:DK=(BA,AG,AGP,SK,RC),其中:
BA是过程主体的基本属性描述,包括它的名称(Name)以及过程主体的描述(Description);
AG由一个目标字符串构成,它是过程主体能够实现的目标的描述;
AGP是过程主体的一个资源实现自身目标的平均生产率;
SK是过程主体拥有的全部技能(Skill)的描述集合,例如领域技能、语言技能等;
RC是过程主体自身资源约束(Resource Constraint)的描述,即,过程主体拥有的可调用资源,包括资源的数量(RN)、每个资源的名称和可以调用的时间描述(RT)。
例如具有编码目标的两个过程主体PA1、PA2的描述性知识分别如下:
描述表示PA1的目标是设计和编码,它的资源实现目标的平均生产率是3.5千代码行每人月,具有Web领域的Java语言开发技能,它有两个资源R1、R2,空闲时间都为2006年6月1日到8月31日。PA2的目标是设计和编码,它的资源实现目标的平均生产率是2.2千代码行每人月,具有Compiler领域的Java语言开发技能,它有一个资源R1,空闲时间为2006年5月10日到9月10日。
2.过程主体的过程性知识
过程主体的过程性知识描述过程主体实现其目标的过程,它由一组过程步骤组成,每个步骤定义为5元组,ST=(StepID,Name,Input,Output,Order)
StepID是步骤的唯一标识;
Name是步骤的名称,同时也表明了这个步骤的工作;
Input是步骤的输入,即执行该步骤需要的制品或参数;
Output是步骤的输出,即执行该步骤能够产生的制品或参数;
Order是步骤在该过程中执行的顺序,如果一个步骤的Order值小于另一个步骤,则该步骤将先被执行,如果两个步骤的Order值相同,则表示他们应该同时执行。
例如PA1的过程性知识由如下四个顺序执行的步骤构成:
第一个步骤是“提取分析类”,它的StepID=11;StepName=“提取分析类”;输入Input=“需求规格说明”,输出Output=“分析类”,执行顺序Order=1;
第二个步骤是“接口设计”,它的StepID=12;StepName=“接口设计”;输入Input=“分析类”,输出Output=“接口”,执行顺序Order=2;
第三个步骤是“实体定义”,它的StepID=13;StepName=“实体定义”;输入Input=“分析类和接口”,输出Output=“实体类”,执行顺序Order=3;
第四个步骤是“编码”,它的StepID=14;StepName=“编码”;输入Input=“分析类、接口和实体类”,输出Output=“实现代码”,执行顺序Order=4;
PA2的过程性知识由如下四个步骤构成,其中步骤1、2可以并发执行,步骤3、4可以并发执行:
第一个步骤是“运行环境设计”,它的StepID=21;StepName=“运行环境设计”;输入Input=“需求规格说明”,输出Output=“运行环境设计”,执行顺序Order=1;
第二个步骤是“语言处理设计”,它的StepID=22;StepName=“语言处理设计”;输入Input=“需求规格说明”,输出Output=“语言处理设计”,执行顺序Order=1;
第三个步骤是“运行环境实现”,它的StepID=23;StepName=“运行环境实现”;输入Input=“运行环境设计”,输出Output=“运行环境实现代码”,执行顺序Order=2;
第四个步骤是“语言处理实现”,它的StepID=24;StepName=“语言处理实现”;输入Input=“语言处理设计”,输出Output=“语言处理实现代码”,执行顺序Order=2;
3.过程主体的经验知识
过程主体的经验知识部分存储过程主体包含的资源在每个历史项目中实施步骤所得到的历史数据记录及其统计数据。过程主体根据经验知识,估算实现特定目标的过程所需要分配的资源。它的原始数据记录可以定义为一个7元组,HD=(StepID,ResourceName,Size,PlanTime,ActualTime,PlanEffort,ActualEffort),其中:
StepID是步骤的标识,它是历史数据记录所对应过程性知识中的过程步骤的标识;
ResourceName表示该历史数据是哪个资源执行步骤产生的;
Size表示目标的规模,如一个代码开发的目标可以用千代码行数来表示;
PlanTime是步骤的计划执行时间;
ActualTime是步骤的实际执行时间;
PlanEffort是步骤的计划执行工作量;
ActualEffort是步骤的实际执行工作量。
该数据记录可以根据需要扩展,例如如果希望得到成本和质量数据,则需要为HD加入步骤执行时计划和实际的成本以及计划和实际的缺陷数据。
根据原始数据可以计算出步骤执行的统计数据,例如根据过程主体每次执行过程步骤的历史数据,可以得到步骤间的工作量平均使用比例。对于PA1和PA2,我们给出各步骤的比例如下:
步骤 | 提取分析类 | 接口设计 | 实体定义 | 编码 |
工作量比例 | 24% | 20% | 16% | 40% |
步骤 | 运行环境设计 | 语言处理设计 | 运行环境实现 | 语言处理实现 |
工作量比例 | 30% | 23% | 26% | 21% |
(二)工作区层的实体
在所述基于组织实体能力的软件过程建模系统的工作区层中(图1),包含运行的过程主体、用户输入的目标以及从外部工具接口获得的过程执行数据。下面详细描述这三部分实体。
1.过程主体
运行的过程主体包括知识结构和行为引擎,其中知识结构中的知识通过数据库中的描述性知识、过程性知识和经验知识构造,每个过程主体有自己的行为引擎,使用类Engine实现,包括感知器、效应器、推理引擎、学习引擎和实施引擎,分别具有如下的功能和实现方式(图3):
(1)感知器使用类Perceptor实现,通过getPerception方法从工作区中识别目标、过程执行数据等,并将这些内容转换为过程主体的内部知识表示(用perception对象表示的感知);
(2)效应器使用类Reactor实现,通过setPlan方法将过程主体的计划输出到访问界面层的建模结果查看界面;
(3)推理引擎使用类ReasoningEngine实现,用于基于知识的推理,从而实现根据感知的目标生成项目计划。包括目标分析器、过程选择器和计划生成器,功能如下:
●目标分析器使用类GoalAnalyzer实现,它的goalMatch方法利用目标匹配推理算法,根据数据库描述性知识所提供的过程主体自身目标的描述、拥有的技能、资源情况等信息判断是否满足感知器感知的目标描述和技能约束;
●过程生成器使用类ProcessGenerator实现,它的processGenerate方法根据数据库过程性知识确定实现目标所需的过程;
●计划生成器使用类PlanGenerator实现,它的planGenerate方法利用资源进度估算算法,基于过程选择器确定的过程并根据数据库经验知识确定执行该过程需要的资源数量、进度安排以及工作量,并生成相应的计划;
(4)学习引擎使用类LearningEngine实现,它使用经验学习算法实现过程主体的学习功能。该算法首先通过analysisData方法对感知到的过程执行数据进行分析,如果过程执行数据是过程主体所包含的资源执行产生的,则调用addToEL方法,将该数据加入到该过程主体的经验知识中,从而使过程主体再次进行估算的时候有更多的数据作经验支持,结果更精确,从而达到它的自学习目的;
(5)实施引擎使用类EnactmentEngine实现,用于作为过程主体行为引擎的控制核心,通过control方法控制行为引擎各部分的协调工作。
系统启动后,过程主体开始不断地运行,自主地寻找可以实现的目标并生成项目计划。
2.目标
目标被定义为一个4元组,G=(G_Description,G_Size,G_Constraints,G_Skills),其中:
G_Description是目标的描述,它通过一个字符串描述目标是什么;
G_Size是目标的规模;
G_Constraints是实现目标G的约束条件集合,它可以是进度约束(Time Constraint,TC)、成本约束(Cost Constraint,CC)、质量约束(Quality Constraint,QC)等;
G_Skills是实现目标所需的技能集合,如领域方面的技能、编程语言方面的技能等。
例如,如下目标:
G=(设计和编码,12KLOC,{TC=[2006-06-01,2006-07-30]},{领域=”Web”,语言=”Java”})
该目标表示实现Web类型软件设计和编码,目标的规模是12KLOC,要求在2006年6月1日至2006年7月30日之间完成。
3.过程执行数据
过程执行数据由一条条的数据记录构成,被定义为一个7元组,PD=(StepID,ResourceName,Size,PlanTime,ActualTime,PlanEffort,ActualEffort)
StepID是步骤的标识,它是过程执行数据记录是执行哪个过程步骤所产生数据的标识;
ResourceName表示该过程执行数据是哪个资源执行步骤产生的;
Size表示执行该步骤对应目标的规模,如一个代码开发的目标可以用千代码行数来表示;
PlanTime是过程步骤的计划执行时间;
ActualTime是过程步骤的实际执行时间;
PlanEffort是过程步骤的计划执行工作量;
ActualEffort是过程步骤的实际执行工作量。
同历史数据记录类似,过程执行数据可以根据需要扩展,例如如果希望得到成本和质量数据,则需要为PD加入步骤执行时计划和实际的成本数据项以及计划和实际的缺陷数据项。
例如工作区中有如下两条过程执行数据:
PD1=(12,R1,6KLOC,0.37M,0.375,64Hours,60Hours),该数据表示资源R1执行步骤12的数据,其中步骤的目标规模是6KLOC,计划时间是0.37月,实际用0.375月,计划工作量64小时,实际工作量60小时;
PD2=(14,R2,8KLOC,0.96M,1.0M,154Hours,160Hours)该数据表示资源R2执行步骤14的数据,其中步骤的目标规模是8KLOC,计划时间是0.96月,实际用1.0月,计划工作量154小时,实际工作量160小时。
(三)基于知识的推理和学习所用的支持算法
基于上述数据基础以及目标的表示,过程主体通过行为引擎得到目标的实现计划需要通过两个算法实现:目标匹配的推理算法、资源进度估算算法;过程主体实现自学习的目的需要通过经验学习算法。下面详细描述这三个算法。
1.目标匹配的推理算法如下:
本算法根据当前推理引擎的目标分析器获取的目标判断过程主体是否有能力实现该目标。其具体步骤如下:
(1)判断目标的描述G_Descirption是否与自身目标AG相同,如果不同,则返回过程主体无法实现该目标消息,算法结束;
过程主体PA1和PA2的AG都与G的G_Descirption相同,因此都可以做后续的步骤。
(2)过程主体的AG满足目标的G_Descirption,判断过程主体的技能是否覆盖目标要求的所有技能,即任取sk∈G_Skills,都有sk∈SK,如果缺少目标要求的技能,则返回过程主体无法实现该目标消息,算法结束;
由于PA2不具有(领域=”Web”)技能,因此无法覆盖G_Skills,所以PA2无法实现目标G,算法结束;而PA1.SK=G.G_Skills,因此可以继续后面的算法。
(3)根据目标的规模G_Size和过程主体资源实现目标的平均生产率AGP计算实现目标所需的工作量,Effort=G_Size/AGP;
对于PA1,Effort=12KLOC/(3.2KLOC/P-M)=3.75P-M。
(4)根据目标的约束条件G_Constraints所描述的时间约束TC,利用过程主体每个资源的可以调用的时间描述RT,计算过程主体在该时间约束内可提供的资源及工作量(PA.Effort);
因为PA1有两个资源,在[2006-06-01,2006-07-30]之间都可以调用,因此可以提供4P-M的工作。
(5)判断是否PA.Effort≥Effort,如果成立,过程主体具有实现目标的能力,返回过程主体能够实现该目标消息,算法结束;否则过程主体没有足够的资源实现目标,返回过程主体无法实现该目标消息,算法结束;
因为4P-M≥3.75P-M,所以PA1具有足够的资源实现目标。
2.资源进度估算算法如下:
过程主体利用目标分析器判断一个目标能够实现后,由过程生成器根据过程性知识给出了实现目标的过程,该过程确定了步骤的执行顺序。接下来,计划生成器利用资源进度估算算法根据数据库经验知识确定执行该过程的每个步骤需要的资源数量、进度安排以及工作量,算法具体描述如下:
(1)确定实现过程所需的资源数量;设过程主体有N个资源Ri(i=1,2,...,N),每个资源在G的时间约束范围内可调用的工作量是Rei(i=1,2,...,N),则得到方法如下:
For i=1to N do
TotalEffort=TotalEffort+Rei;
If TotalEffort>Effort then return i End If
End For
在例子中,PA1需要使用2个资源实现目标G。
(2)根据目标所需的工作量和经验知识描述的每个步骤需要的工作量平均比例,计算每个步骤需要的工作量;
按照经验知识提供的工作量平均比例,PA1各个步骤的工作量分别为:提取分析类0.9人月、接口设计0.75人月、实体定义0.6人月、编码1.5人月。
(3)按照步骤的执行顺序,确定每个步骤的起止时间;
在例子中,第一个执行的步骤是提取分析类,两个资源分别用0.45个人月工作量,需用13.5天,从2006年6月1日~6月14日;第二个执行的步骤是接口设计,两个资源分别用0.375人月工作量,需用11.25天,从2006年6月15日~6月26日;第三个执行的步骤是实体定义,两个资源分别用0.3人月工作量,需用9天,从2006年6月27日~7月5日;第四个执行的步骤是编码,两个资源分别用0.75人月工作量,需用22.5天,从2006年7月6日~7月28日。由此,资源、进度和工作量分配完毕,生成最后的计划。
3.经验学习算法:
实施引擎在判断感知器感知的是过程执行数据后,通知学习引擎处理过程执行数据,学习引擎调用经验学习算法实现过程主体的学习功能,具体步骤如下:
(1)根据过程执行数据中的步骤标识和资源名称,判断该过程执行数据是否为当前过程主体中的资源执行产生的;
过程主体PA1具有步骤12和资源R1,以及步骤14和资源R2,分别与过程执行数据PD1和PD2表示的步骤和资源相同,因此,PD1和PD2都是过程主体PA1的资源产生的数据;相反,过程主体PA2不具备上述的步骤和资源,因此PD1和PD2不是过程主体PA2的资源产生的数据。
(2)将感知到的数据加入到经验知识数据库中,实现其经验不断增加的自学习过程。
PD1和PD2分别被过程主体PA1加入到PA1的经验知识中,从而使PA1的经验知识中增加了两条数据。
根据上述方法,用户使用所述系统进行建模的步骤如下(图4):
(1)通过过程主体的创建/编辑界面进行过程主体的创建,将软件组织中具有相同能力的资源建立成一个过程主体输入到系统中;
(2)通过目标创建/编辑界面创建或编辑目标,输入到系统中;
(3)等待系统输出;
(4)如果在目标允许的范围内没有输出计划,则系统不具备实现该目标的过程主体,如果用户希望通过修改目标达到实现,则转到步骤(3),否则,目标未实现而完成;
(5)如果计划已经生成,则在建模结果查看界面获取生成的计划;
(6)将生成的计划放入计划执行工具执行,从而完成系统的建模过程。
对于计划执行工具执行计划所产生的数据,用户可以自行选择手动的方式通过外部工具接口输入到系统中,也可以通过计划执行工具与外部工具接口连接,自动输入到系统中。
上述实施例中既包含了对本发明系统的描述,本领域的技术人员应能理解,软件过程建模的过程也包含在其中,依照本实施例,本领域的技术人员可以很容易地实现基于组织实体能力的软件过程建模方法。
Claims (8)
1.一种软件过程建模系统,采用访问界面/工作区/数据库三层结构,其特征在于,所述的结构包括:
A.访问界面层包括用户过程主体的创建/编辑界面、建模目标的创建编辑界面、建模结果的查看界面,以及外部工具接口;
B.工作区层包含过程主体管理、目标管理、外部工具接口输入处理三个功能模块,以及目标、过程执行数据和一组过程主体三个实体,工作区层的核心是过程主体,其中每个过程主体都是能够自主运行、独立实现目标的实体,包含了知识结构和行为引擎;
C.数据库层包括过程主体的描述性知识、过程主体的过程性知识和过程主体的经验知识。
2.如权利要求1所述的软件过程建模系统,其特征在于,所述数据库层的三个部分分别存储如下的内容:
C1.描述知识数据库:存储过程主体的描述性信息,包括过程主体能够实现的目标、拥有资源以及资源能力;
C2.过程知识数据库:存储过程主体实现其自身目标的过程,它由一组过程步骤组成,这些步骤将在过程主体实现目标时实例化为资源具体要执行的任务;
C3.经验知识数据库:存储过程主体包含的资源在每个历史项目中实施步骤所得到的历史数据记录及其统计数据。
3.如权利要求1所述的软件过程建模系统,其特征在于,所述工作区层的功能模块分别包含如下功能:
B1.过程主体管理模块用于过程主体信息的创建和编辑,并将创建和编辑的结果输入到数据库中;
B2.目标管理模块用于目标信息的创建和编辑,并将创建和编辑的结果输入到工作区中;
B3外部工具接口输入处理模块用于对外部计划执行工具产生的过程执行数据输入进行加工并输入到工作区中。
4.如权利要求1所述的软件过程建模系统,其特征在于,所述工作区层的过程主体是能够自主运行、独立实现目标的实体,它的知识结构包括描述性知识、过程性知识和经验知识,这些知识在系统启动时,从数据库层加载到过程主体中。
5.如权利要求4所述的软件过程建模系统,其特征在于,所述过程主体的行为引擎包括:
感知器,用于从工作区中识别目标、约束条件等,并将这些内容转换为过程主体的内部知识表示;
效应器,用于将过程主体的计划输出到访问界面层的建模结果查看界面;
推理引擎,用于基于知识的推理,从而实现根据感知的目标生成项目计划;
学习引擎,用于对感知到的过程执行数据进行分析,如果过程执行数据是过程主体所包含的资源执行产生的,则将该数据加入到该过程主体的经验知识中;
实施引擎,用于作为过程主体行为引擎的控制核心,控制行为引擎各部分的协调工作。
6.如权利要求5所述的软件过程建模系统,其特征在于,所述的推理引擎还包括:
目标分析器,用于通过目标匹配推理算法,根据数据库描述性知识所提供的过程主体自身目标的描述、拥有的技能、资源情况等信息判断是否满足感知器感知的目标描述和技能约束;
过程生成器,用于根据数据库过程性知识确定实现目标所需的过程;
计划生成器,用于通过资源进度估算算法,基于过程选择器确定的过程并根据数据库经验知识确定执行该过程需要的资源数量、进度安排以及工作量,并生成相应的计划。
7、一种软件过程建模方法,包括步骤:
a.实施引擎定时地通知感知器对工作区进行感知;
b.感知器判断工作区中是否有新增的目标和过程执行数据,如果有则将其读入到过程主体中作为感知,并通知实施引擎感知完成,其中,感知到的数据为过程执行数据或目标;
c.实施引擎判断感知数据的类型,如果是目标,则实施引擎通知推理引擎推理目标;
d.推理引擎首先调用目标分析器判断目标是否与过程主体自身目标相符合,如果不符合则抛弃该目标,并转到步骤a;
e.推理引擎调用过程生成器生成实现目标的过程;
f.推理引擎调用计划生成器生成实现目标的计划,生成结束后通知实施引擎计划生成完成;
g.实施引擎通知效应器输出计划;
h.效应器输出计划,针对一个目标的建模过程完成,转到步骤a。
8.如权利要求7所述的软件过程建模方法,其特征在于,还包括步骤:
i.实施引擎通知学习引擎处理过程执行数据;
j.学习引擎判断该过程执行数据是否为该过程主体的资源所执行产生,如果是则将其加入该过程主体的经验知识中,否则将该数据抛弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610088999 CN1928814A (zh) | 2006-07-28 | 2006-07-28 | 基于组织实体能力的软件过程建模方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610088999 CN1928814A (zh) | 2006-07-28 | 2006-07-28 | 基于组织实体能力的软件过程建模方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1928814A true CN1928814A (zh) | 2007-03-14 |
Family
ID=37858789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610088999 Pending CN1928814A (zh) | 2006-07-28 | 2006-07-28 | 基于组织实体能力的软件过程建模方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1928814A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100465888C (zh) * | 2007-08-03 | 2009-03-04 | 中国科学院软件研究所 | 一种自动创建过程主体的方法 |
CN100472437C (zh) * | 2007-07-31 | 2009-03-25 | 南京大学 | 一种基于软件主体的应用自主流动方法 |
CN101957794A (zh) * | 2010-09-21 | 2011-01-26 | 中国科学院软件研究所 | Web应用部署约束自动检测方法 |
CN104346152A (zh) * | 2013-07-31 | 2015-02-11 | 国际商业机器公司 | 用于代码开发的方法及其系统 |
CN116257220A (zh) * | 2023-05-16 | 2023-06-13 | 长春慧程科技有限公司 | 基于云边协同的软件开发数据管理方法及系统 |
-
2006
- 2006-07-28 CN CN 200610088999 patent/CN1928814A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100472437C (zh) * | 2007-07-31 | 2009-03-25 | 南京大学 | 一种基于软件主体的应用自主流动方法 |
CN100465888C (zh) * | 2007-08-03 | 2009-03-04 | 中国科学院软件研究所 | 一种自动创建过程主体的方法 |
CN101957794A (zh) * | 2010-09-21 | 2011-01-26 | 中国科学院软件研究所 | Web应用部署约束自动检测方法 |
CN104346152A (zh) * | 2013-07-31 | 2015-02-11 | 国际商业机器公司 | 用于代码开发的方法及其系统 |
CN104346152B (zh) * | 2013-07-31 | 2018-10-30 | 国际商业机器公司 | 用于代码开发的方法及其系统 |
CN116257220A (zh) * | 2023-05-16 | 2023-06-13 | 长春慧程科技有限公司 | 基于云边协同的软件开发数据管理方法及系统 |
CN116257220B (zh) * | 2023-05-16 | 2023-08-08 | 长春慧程科技有限公司 | 基于云边协同的软件开发数据管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1288519C (zh) | 机器人系统控制 | |
CN1300693C (zh) | 用于调节系统资源的使用的装置及其方法 | |
CN1439137A (zh) | 优化成果驱动作业流程合成及简化的方法、处理和系统 | |
CN1955991A (zh) | 在业务模型中集成模型语义和领域语义的方法和装置 | |
CN1280716C (zh) | 计算机处理方法、分布式计算方法和网络计算方法 | |
CN1293465C (zh) | Gui显示装置及光标或gui组件动画显示处理方法 | |
CN1680959A (zh) | 进程编辑设备和方法以及进程管理设备和方法 | |
CN100351822C (zh) | 用简化视图定义、处理和表示用户界面组件的方法和工具 | |
CN1258154C (zh) | 多处理器系统、数据处理系统和数据处理方法 | |
CN1975720A (zh) | 一种基于Web的数据挖掘系统及其控制方法 | |
CN101052948A (zh) | 对象过程图应用程序开发系统 | |
CN1783123A (zh) | 基于资源需求和业务影响的过程执行管理 | |
CN1967488A (zh) | 任务分配方法和任务分配装置 | |
CN1867933A (zh) | 评估和优化原油选择的方法及系统 | |
CN1967588A (zh) | 交互式问卷定制、交互系统及方法 | |
CN1815499A (zh) | 工作排程管理系统与方法 | |
CN1946075A (zh) | 确定消息的用户特定关联性得分的方法和系统 | |
CN1920837A (zh) | 面向复杂装备多学科设计软件集成的参数映射方法 | |
CN1685346A (zh) | 优化专家系统 | |
CN1144569A (zh) | 资源分配 | |
CN1928814A (zh) | 基于组织实体能力的软件过程建模方法和系统 | |
CN1766835A (zh) | 用于在设计和运行时间无缝制作和编辑工作流的框架 | |
CN1866250A (zh) | 对系统数据进行管理的方法和系统 | |
CN1719832A (zh) | 一种规范驱动的网格工作流描述和验证方法 | |
CN1851655A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |