法律状态公告日
法律状态信息
法律状态
2019-01-01
未缴年费专利权终止 IPC(主分类):G06F9/44 授权公告日:20170503 终止日期:20180116 申请日:20140116
专利权的终止
2017-05-03
授权
授权
2014-06-11
实质审查的生效 IPC(主分类):G06F9/44 申请日:20140116
实质审查的生效
2014-05-14
公开
公开
技术领域
本发明涉及普适计算应用的开发领域,尤其涉及一种普适应用代码框 架的快速生成方法。
背景技术
普适计算的多种应用,为提高人类生活质量,提供了更多具有现实价 值的实现,比如老年人记忆辅助等。然而构建具有可行性的普适计算应用 却是一项需要时间和精力投入的复杂工程。普适计算应用本质上是多学科 技术的融合,因此应用的设计者需要具有广泛的跨学科知识背景,这无形 中加深了迭代设计的难度。近年来,普适计算领域越来越重视普适环境中 的自然人机交互应用以及用户研究。如何构筑支持普适计算应用的高效原 型设计,提供易用的抽象工具库,使设计者在关注用户需求和体验的条件 下能够快速地设计及开发普适应用,是当前普适计算面临的重要问题。
鉴于上述缺陷,本发明创作者经过长时间的研究和实践终于获得了本 创作。
发明内容
本发明的目的在于提供一种普适应用代码框架快速生成方法及原型系 统,用以克服上述技术缺陷。
为实现上述目的,本发明提供一种普适应用代码框架快速生成方法, 该具体过程为:
步骤1,某一具体应用的场景的元素解析后,首先查找规则与模板库, 如果规则与模板库中存在该场景时,跳转到步骤6;如果规则与模板库中 不存在该场景,则进行步骤2;
步骤2,分解具体场景中的元素,分解完成后查找规则与模板库,如 果规则与模板库中存储有部分元素或者全部元素时,跳转到步骤4;否则 进行步骤3;
步骤3:对步骤2中模板库中不存在的元素进行规则定义,并进行规 则描述,同时将该元素以及规则定义存储于规则与模板库中;
步骤4:对步骤2中模板库中存在的元素进行查找并直接使用模板库 中定义的元素;
步骤5:基于上述步骤中的元素及元素组合规则对场景进行描述,生 成场景描述文档,并将场景存入场景模板库中;
步骤6:对代码模板进行设计以及具体应用的逻辑进行设计,生成应 用描述文档及代码模板;
步骤7:根据应用描述文档以及场景的描述文档及转换规则生成目标 代码。
进一步,上述步骤2中分解具体场景中的元素,分解后的基本元素包 括:用户任务、用户行为、客体行为、发生前提、作用对象。
进一步,上述步骤3中,规则与模板保存到模板库中的过程为:
步骤41:定义步骤1中元素的语法规则以及元素的组合规则;
步骤42:基于步骤41中定义的规则进行元素描述,并将元素保存入 元素模板库中。
进一步,上述步骤7的具体过程为:
步骤71:定义目标代码框架;
步骤72:定义步骤6的应用描述文档及场景描述文档到步骤71中目 标代码框架的转换规则;
步骤73:实现基于步骤72中应用的描述文档及场景描述文档到目标 代码框架的转换。
进一步,上述步骤71中目标代码包括类定义、类实体以及逻辑流程, 其中有两种类定义:component和context,另外还包括两种类型的事 件:comonent和context之间的通信采用″sendevent″事件,不同 的component的通信采用″receiveevent″事件。
进一步,定义步骤41中场景中的元素描述规则及元素组合规则,具 体描述规则如下:
a)发生前提和作用对象使用如下规则描述:
Precondition:Type Operator Instance
Effect:Type Operator Instance
其中Precondition表示发生前提,Effect为作用对象,Type为情境 类型,Operator为操作符,Instance为情境实体;
b)用户行为和客体行为使用如下规则描述:
UserAction/ObjectAction:Name,Precondition,Effect
其中UserAction表示用户行为,ObjectAction表示客体行为;Name 为该用户行为或客体行为的名称,Precondition为上述a)中定义的发生 前提的语法规则,Effect为上述a)中定义的作用对象的语法规则;
c)元素的组合规则使用如下规则描述:
元素的组合规则包括包含和顺序关系,顺序关系描述如下:
Flows(sequence(action1->action2))
其中Flow表示元素的顺序关系,含义为action1发生后,action2 才发生;
组合关系描述如下:
Subaction(action1,action2,...,acitonn);
d)用户任务使用如下规则描述:
Task:Name,Subaction(),flows(sequence())
其中Task表示用户任务,Name为该用户任务的名称,Subaction 为该用户任务中包含的用户行为和客体行为,flows为该用户任务中用户 行为和客体行为的顺序。
进一步,上述步骤5中的场景描述规则如下:
Situation:Name,
Task(
Subaction(
action1(name,precondition,effcect),
action2(name,precondition,effcect),...,
actionn(name,precondition,effect))
Flows(action1->action2->action3,aciton4->actionn))
其中Situation表示场景,name为场景的名称,Task为该场景中的 用户任务,subaction和flows见步骤41中d的定义。
进一步,步骤6中对应用的逻辑关系描述规则如下:
Service:serviceName
Function1:funciton1Name
Subcomponent(component1,component2,...),
Percondition(component1(action1),component2(action2),...),
Depedence component1->action1,component2->action2,...
Function2:function2Name
其中Service表示服务,serviceName为服务名称;subcomponent 为函数包含的方法;percondition为函数中的方法与步骤6中定义的主体 行为或者客体行为之间的关系;dependence为函数中的方法所依赖的步 骤6中定义的主体行为或者客体行为。
本发明还提供一种普适应用代码框架快速生成原型系统,其基于上述 方法实现的,其包括三个模块,即互动的图形用户界面、转换模块、模板 库,其中,所述图形用户界面完成场景的描述工作,提供图形界面包括工 具条和编辑面板;所述转换模块实现从场景描述文档到目标代码的转换; 所述模板库,存储所有的规则以及基础模板。
进一步,所述图形用户界面能够创建基于场景规则描述的模板和构建 代码模板;在完成对所有模板定制后,所述图形用户界面会自动生成规则 描述文档。
与现有技术相比较本发明的有益效果在于:本发明中提供了一个系统 的方法支持普适应用程序代码的快速生成。通过基于场景的元素规则描述 到代码框架的快速构建,为普适应用的开发提供了一个方法指导,并节省 了开发时间,使得功能原型迅速成立,而不编写任何代码。
附图说明
图1为本发明方法的场景的示意图;
图2为本发明方法的框架示意图。
图3为本发明中实现上述方法的系统示意图。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的 说明。
本发明提供一种基于场景的面向普适计算应用的代码快速生成方法, 其中,所述场景的定义请参阅图1所示,所述场景是指在特定环境下执行 的一组用户任务。场景反映了用户需求及其用户行为的相关信息,比如用 户被什么吸引,什么对用户是最重要的等。这种信息同时被共享、合并, 并允许重复使用。任务的完成依靠用户和目标对象的一系列交互。
请参阅图2所示,本发明基于场景的面向普适计算应用的代码快速生 成方法的具体过程为:
步骤1,某一具体应用的场景的元素解析后,首先查找规则与模板库, 如果规则与模板库中存在该场景时,跳转到步骤6;如果规则与模板库中 不存在该场景,则进行步骤2;
步骤2,分解具体场景中的元素,分解完成后查找规则与模板库,如 果规则与模板库中存储有部分元素或者全部元素时,跳转到步骤4;否则 进行步骤3;在该步骤中,分解后的基本元素包括:用户任务、用户行为、 客体行为、发生前提、作用对象;
步骤3:对步骤2中模板库中不存在的元素进行规则定义,并进行规 则描述,同时将该元素以及规则定义存储于规则与模板库中;
步骤4:对步骤2中模板库中存在的元素进行查找并直接使用模板库 中定义的元素;
本发明将规则与模板保存到模板库中的过程为:
步骤41:定义步骤1中元素的语法规则以及元素的组合规则;
步骤42:基于步骤41中定义的规则进行元素描述,并将元素保存入 元素模板库中。
步骤5:基于上述步骤中的元素及元素组合规则对场景进行描述,生 成场景描述文档,并将场景存入场景模板库中;
步骤6:对代码模板进行设计以及具体应用的逻辑进行设计,生成应 用描述文档及代码模板;
步骤7:根据应用描述文档以及场景的描述文档及转换规则生成目标 代码。具体步骤如下:
步骤71:定义目标代码框架;
步骤72:定义步骤6的应用描述文档及场景描述文档到步骤71中目 标代码框架的转换规则;
步骤73:实现基于步骤72中应用的描述文档及场景描述文档到目标 代码框架的转换。
上述步骤中涉及的具体规则定义如下:
首先定义步骤41中场景中的元素描述规则及元素组合规则,具体描 述规则如下:
a)发生前提和作用对象使用如下规则描述:
Precondition:Type Operator Instance
Effect:Type Operator Instance
其中Precondition表示发生前提,Effect为作用对象,Type为情境 类型,Operator为操作符,Instance为情境实体,例如Location is changed,Loaction为Type,is为Operator,changed为Instance。
b)用户行为和客体行为使用如下规则描述:
UserAction/ObjectAction:Name,Precondition,Effect
其中UserAction表示用户行为,ObjectAction表示客体行为;Name 为该用户行为或客体行为的名称,Precondition为上述a中定义的发生前 提的语法规则,Effect为上述a中定义的作用对象的语法规则。
c)元素的组合规则使用如下规则描述:
元素的组合规则包括包含和顺序关系,顺序关系描述如下:
Flows(sequence(action1->action2))
其中Flow表示元素的顺序关系,含义为action1发生后,action2 才发生。
组合关系描述如下:
Subaction(action1,action2,...,acitonn)
d)用户任务使用如下规则描述:
Task:Name,Subaction(),flows(sequence())
其中Task表示用户任务,Name为该用户任务的名称,Subaction 为该用户任务中包含的用户行为和客体行为,flows为该用户任务中用户 行为和客体行为的顺序。
上述步骤5中的场景描述规则如下:
Situation:Name,
Task(
Subaction(
action1(name,precondition,effcect),
action2(name,precondition,effcect),...,
actionn(name,precondition,effect))
Flows(action1->action2->action3,aciton4->actionn))
其中Situation表示场景,name为场景的名称,Task为该场景中的 用户任务,subaction和flows见步骤41中d的定义。
上述步骤6中应用由不同的服务组成,步骤6中对应用的逻辑关系描 述规则如下:。
Service:serviceName
Function1:funciton1Name
Subcomponent(component1,component2,...),
Percondition(component1(action1),component2(action2),...),
Depedence component1->action1,component2->action2,...
Function2:function2Name
其中Service表示服务,serviceName为服务名称;subcomponent 为函数包含的方法;percondition为函数中的方法与步骤6中定义的主体 行为或者客体行为之间的关系;dependence为函数中的方法所依赖的步 骤6中定义的主体行为或者客体行为。
上述步骤71中目标代码包括类定义、类实体以及逻辑流程。其中有 两种类定义:component和context,另外还包括两种类型的事件: comonent和context之间的通信采用″sendevent″事件,不同的 component的通信采用″receiveevent″事件。
上述步骤72中的转换规则描述如下:
步骤6中的service对应步骤7中目标代码中的服务类;function对 应目标代码中服务类的函数;component对应目标代码中的component 类;percondition中的component(action)对应条件关系,即 if(action){component};depedence中的component->action中的 action对应component类中的实体。步骤5中场景描述文档中的action 中的effect对应context类。
上述步骤完成后,能够生成普适应用的代码框架。
本发明还提供了一种基于上述方法实现的原型系统。
请参见图3所示,该原型系统包括三个模块,即互动的图形用户界面 PerEditor、转换模块Conveter、模板库PerDataBase,其中,所述图形 用户界面完成场景的描述工作,提供图形界面包括工具条和编辑面板;所 述转换模块实现从场景描述文档到目标代码的转换;所述模板库,存储所 有的规则以及基础模板。
所述图形用户界面能够创建基于场景规则描述的模板和构建代码模 板。
模板定义一些规则来解析场景中涉及的概念,例如″先决条件″和″作 用对象″以及元素间的组合规则,并且提供了可重用的模板作为用户特定 的场景模型和步骤级的开发方法的桥梁。开发人员只需从工具面板上拖动 所需的图标到编辑器中,并定义相应的属性。每个动作的前提条件和作用 对象被描述为从场景模型中提取的上下文。所有基础模板被自动添加到模 板库中。
通过模板库中定义的场景描述文档到目标代码的规则,提供目标代码 模板。
所述原型系统具有以下特点:采用共享文件机制,对于模板和规则描 述,以及用于模型转换和生成应用的代码模板,以数据库进行存储,并提 供统一的访问模式。
所述原型系统通过对场景模型实例化,以规则描述的场景将被集成至 模板的定制工作中。在完成了对所有模板定制后,所述图形用户界面会自 动生成规则描述文档,为快速原型提供支持。在得到规则描述文档后,设 计者可使用转换模块工具获得应用的代码实现。
下面通过一个具体的应用案例介绍本发明中所述方法的实施步骤。具 体场景描述如下:会议结束后,主席皮特邀请与会者参观他的实验室,他 的实验室中部署了部分传感器设备,当参观者漫步在实验室中时,传感器 设备能够感知用户的位置,在显示屏上向他们展示相关信息。
步骤一:创建与该场景相关的元素,并将其添加到模板库中。在该场 景中有三种类型的动作(″walking″、″sensing″、″playing″)、 一种类型的任务(″Looking″)和一个核心场景(″visit a lab″)。
步骤二:构建用户任务。建立″Looking″和″Walking″,″Sensing″, ″Playing″
之间的关系为Looking(Sensing->Walking->Playing)。
步骤三:构建场景″visit a lab″,该场景包含任务Looking。生成 场景的描述文件。
Stituation
!Situation Visiting_lab:task Looking
:subaction(walking)
:effect((Position is changed))
subaction(sensing)
:precondition((Request.start is comming))
subaction(playing)
:precondition((Request.start is comming))
:effect((State=OPEN))
:flows(sequence(sensing-->walking,walking-->playing,))
步骤四:设计具体应用逻辑,定义服务″DisplayService″中函数 ″Display"的功能及流程。其功能与流程为″Detect->Walking->Show″, 其条件关系为show(walking),依赖关系为Show->playing, Detect->sensing,并生成应用的描述文档。
Service:Display
:Function Display
:subcomponent(Detect,Show,)
:percondition(Show(walking))
:dependence Display.Show->playing\
:dependence Display.Detect->sensing
步骤五:定义目标代码模板,本实例以java语言为目标代码模板。
步骤六:将应用的描述文档并结合场景的描述文档,翻译为目标代码。
本发明中提供了一个系统的方法支持普适应用程序代码的快速生成。 通过基于场景的元素规则描述到代码框架的快速构建,为普适应用的开发 提供了一个方法指导,并节省了开发时间,使得功能原型迅速成立,而不 编写任何代码。
以上所述仅为本发明的较佳实施例,对发明而言仅仅是说明性的,而 非限制性的。本专业技术人员理解,在发明权利要求所限定的精神和范围 内可对其进行许多改变,修改,甚至等效,但都将落入本发明的保护范围 内。
机译: 基于传感器网关设备的普适传感器网络,使用该传感器网关设备提供应用服务的系统以及用于提供基于用户上下文日期的普适传感器网络的方法
机译: 一种在多领域支持一项服务的普适服务框架系统及其方法
机译: 普适个性化服务代码建立管理系统及其服务方法。