易于客制化对象属性的方法

文档序号:6368677阅读:167来源:国知局

专利名称::易于客制化对象属性的方法
技术领域
:本发明涉及一种软件系统客制化开发的方法,特别是一种易于客制化对象属性的方法,举凡系统需依客户需求而量身定制,且需将系统以对象为导向的分析设计,都可使用此一方法,以加速系统开发及修改时程。
背景技术
:在科技进步,信息进入爆炸的时代,越来越多的厂家和个人喜欢拥有选择的权利,而科技的进步,适时满足了这样的需求。一方面,能提供多样的选择,另一方面,又可以满足大量的客户。即为大量客制化(massCustomization),客制化的概念是为了达到这样的目标,在为客户提供大量多样化的产品的同时,又可维持最低生产成本。本发明针对的是软件系统的客制化开发的方法。个人计算机所拥有的资料及讯息,常常已经无法满足个人工作的需要,更遑论对于企业的需求,而网络发达的今日,以网站架构(WebBase)来传递信息已经成为一主流趋势,为了降低客户端(Client)的维护及达到省略安装的目的,所以许多伺服系统(Server)则通过下述的方式加以完成采用以对象为导向的分析方法,将分析出来的对象类别及属性以对象导向程序语言(OOPL)进行实作,此外对象与对象之间相互引用及生命周期等的关连,亦需要由系统开发人员以程序代码加以规范撰写,如此一来相当旷日费时,若当使用者需求一开始变更,便会造成对象属性需新增或修改,这使得整个修改过程需经过(1)需求变,(2)程序修改,(3)程序重新编译,(4)测试,(5)交付等过程,即使增修的对象属性并无关于系统的逻辑运算。上述问题会造成下列的缺陷1.以对象导向程序语言将对象属性硬代码程序(Hard-Code)在系统的程序代码中,修改及维护上较为困难。2.对象间的相互引用、生命周期等的关连,以硬代码(hard-code)的方式来规范,易造成开发周期的冗长及程序测试过程的复杂性。3.使用者需求变更,需依赖原开发单位方能完成系统的调整,即使增修的对象属性并无关于系统的逻辑运算,系统也同样要经过程序修改及重新编译的过程,造成开发单位的系统维护负担及使用需求单位上线时程的延宕。所以如何解决上述的缺陷,实为一亟待解决的技术课题。
发明内容有鉴于以上已知技术的问题,本发明的目的在于提供一种易于客制化对象属性的方法,通过MetaData或资料表(table)的方式来定义对象属性,并配合对象定义控制程序(ObjController)动态产生对象属性及维护资料的一致性,如此一来,系统弹性较佳。对于客制需求较高的系统,可作较快速的修改与调整。然而,对象属性记录于元数据(MetaData)中,可避免如硬代码(Hard-Code)时,系统要修改需重新编译等复杂的过程。此外,对象间的相依性、生命周期亦记录在MetaData中,执行期的生命周期等相关行为由对象定义控制程序(ObjController)统一控制,仅需事先定义,无需程序撰写,简化开发及测试过程;使用者不需有程序撰写的能力,仅需简单的说明,即可做基本的调整,减低开发人员的负担。本发明至少包含下列步骤通过呼叫端传入欲开启的客户代码及对象代码,接着读取对象定义表并根据所传入的客户代码及对象代码取得对象定义,然后根据客户代码及对象代码从对象定义表中进行搜寻,便记录所有相关连对象的客户关系代码及对象关系代码及其对象间的对应关系,再搜寻是否已无法发现有关连的对象,并读取有关连的阶层性对象定义动态转换成呼叫端可使用的对象,并将读取来源字段中所定义的字段转换为对象的属性,及最后将产生的对象通过对象的方式传回至呼叫端以供呼叫端使用。有关本发明的特征与操作,兹配合附图作最佳实施例详细说明如后。图1为本发明易于客制化对象属性的方法的初期设定流程图;图2-a及图2-b为本发明易于客制化对象属性的方法的处理逻辑流程图;图3为本发明对象定义的示意图;图4为对象定义(ObjDef)的说明表;图5为对象关系(ObjRel)的说明表;图6-a为本发明实施例中的采购订单Master资料表;图6-b为本发明实施例中的采购订单项次资料表(PODetail);图6-c为本发明实施例中的厂商基本资料(Factory)表;图6-d为本发明实施例中的料品资料基料(Item)表;图6-e为本发明实施例中的对象定义(ObjDef)表;图6-f为本发明实施例中的对象关系(ObjRel)表;及图6-g为本发明实施例中的对象定义控制程序(ObjController)在执行期间所产生的对象结构图。图中符号说明步骤100定义元数据Metadata中一对象定义表及一对象关系表步骤110设定一对象定义控制程序步骤200通过一呼叫端传入欲开启的一客户代码及一对象代码步骤210读取该对象定义表并根据所传入的该客户代码及该对象代码取得对象定义步骤220根据该客户代码及该对象代码从该对象定义表中进行搜寻步骤230记录所有相关连对象的一客户关系代码及一对象关系代码及其对象间的对应关系步骤240搜寻是否已无法发现有关连的对象步骤250纪录有关连对象的阶层性步骤260读取有关连的阶层性对象定义动态转换成该呼叫端可使用的对象并将一读取来源字段中所定义的字段转换为对象的属性步骤270将产生的对象通过对象的方式传回至该呼叫端以供该呼叫端使用具体实施方式一种易于客制化对象属性的方法,首先请参照图1,为本发明易于客制化对象属性的方法的初期设定流程图。在初期设定对象定义控制程序(ObjController)时,首先需定义Metadata中一对象定义表及一对象关系表(步骤100),对象定义表(ObjDef)则定义不同客户的对象代码及对象读入、写出的资料来源等等(如DB中的Table/VieworExcelorXML...);而对象关系表(ObjRel)则定义由对象定义表中所定义的对象间的关连、是否为生命周期相关等特性,定义完成的后,则才可以设定一对象定义控制程序(步骤110)。接下来就对象定义控制程序(ObjController)的处理逻辑做一详细说明,请参照图2-a及图2-b,为本发明易于客制化对象属性的方法的处理逻辑流程图。首先通过一呼叫端传入欲开启的一客户代码(CustID)及一对象代码(BOID)(步骤200),然后读取该对象定义表(ObjDef)并根据所传入的该客户代码(CustID)及该对象代码(BOID)取得对象定义(步骤210),取得对象定义后,再根据该客户代码(CustID)及该对象代码(BOID)从该对象定义表(ObjDef)中进行搜寻(步骤220),并记录所有相关连对象的一客户关系代码(RelCustID)及一对象关系代码(RelBOID)及其对象间的对应关系(步骤230),接着再继续搜寻是否已无法发现有关连的对象(步骤240),如果仍有关连的对象,则再纪录有关连对象的阶层性(步骤250),并回到步骤220,重复上述的步骤;若以无法搜寻有关连的对象,则读取有关连的阶层性对象定义动态(Run-Time)转换成该呼叫端可使用的对象(ex.COMcomponent...)并将一读取来源字段(ReadFrom)中所定义的字段转换为对象的属性(步骤260),最后将产生的对象通过对象的方式传回至该呼叫端以供该呼叫端使用(步骤270),并结束本流程。而本发明的Metadata所定义对象定义表及对象关系表如下,请参照图3,为本发明对象定义的示意图。有对象定义表(ObjDef)及对象关系表(ObjRel)两种表格,通过对象定义控制程序(ObjController)相互连结,而处理呼叫端所下达的需求,而对象定义表(ObjDef)及对象关系表(ObjRel)中的字段则在图4与图5加以解释。请参阅图4,为对象定义(ObjDef)的说明表。对象定义表包含下列字段一客户代码(CustomerID;CustID)、一对象代码(BusinessObjectID;BOID)、一读取来源(ReadFrom)、一写入地址(WriteTo)、一识别键(KeyProperty;KeyProp);说明如下客户代码(CustomerID;CustID)定义对象所隶属的客户代码。对象代码(BusinessObjectID;BOID)定义对象的代码。读取来源(ReadFrom)定义要读取此对象的资料时的资料来源。写入地址(WriteTo)定义此对象在资料储存时,要写入的资料储存区。识别键(KeyProperty;KeyProp)表示此对象在开启时,用以唯一识别每一个别对象案例(Instance)的属性(性质与关连式数据库的主钥〔PrimaryKey〕类似)。接着请参阅图5,为对象关系(ObjRel)的说明表。对象关系表包含下列字段一主对象客户代码(CustomerID;CustID)、一主对象代码(BusinessObjectID;BOID)、一客户关系代码(RelationCustomerID;RelCustID)、一对象关系代码(RelationBusinessObjectID;RelBOID)、一主对象链接(FromProp)、一从属对象链接(ToProp)、一主从对象关系(RelType);说明如下主对象客户代码(CustomerID;CustID)主对象(Master)所隶属的客户代码。主对象代码(BusinessObjectID;BOID)主对象的对象代码。CustID+BOID会对应到[ObjDef]中的一项定义。客户关系代码(RelationCustomerID;RelCustID)从属对象(Detail)所隶属的客户代码。对象关系代码(RelationBusinessObjectID;RelBOID)从属对象的对象代码。RelCustID+RelBOID也会对应到[ObjDef]中的一项定义。主对象链接(FromProp)主对象中链接至从属对象的属性。从属对象链接(ToProp)从属对象中链接至主对象的属性。主从对象关系(RelType)设定主从对象间是否生命周期相关。最后本发明提出一较佳实施例加以详细说明,请参照图6-a为本发明实施例中的采购订单Master资料表。如图6-a所示,采购订单Master资料表中记载了五个字段,如订单代码(PONo)、厂商代码(FacID)、订购日期(PODate)、采购人员代码(BuyerID)及付款方式(PayType)。接着再看到图6-b为本发明实施例中的采购订单项次资料表(PODetail)。如图6-b所示,采购订单项次资料表中的五个字段,如订单代码(PONo)、项次(ItemNo)、订购品号(ItemID)、订购数量(Qty)、单价(Price)。接着图6-c为本发明实施例中的厂商基本资料(Factory)表。如图6-c所示,厂商基本资料(Factory)表中的四个字段,如厂商代码(FacID)、厂商名称(FacName)、地址(Addr)、电话(Tel)。接着图6-d为本发明实施例中的料品资料(Item)表。如图6-d所示,料品资料(Item)表中的三个字段,如料品代码(ItemID)、料品名称(ItemName)、料品规格(Spec)。接着图6-e为本发明实施例中的对象定义(ObjDef)表。如图6-e所示,对象定义(ObjDef)表诚如图4所定义般,通过五个字段来分析上述的表格,而图6-f为本发明实施例中的对象关系(ObjRel)表中的对象关系(ObjRel)表也如同图5般的7个字段来分析上述的表格。最后图6-g,为本发明实施例中的对象定义控制程序(ObjController)在执行期间所产生的对象结构图。通过对象定义控制程序(ObjController)将所有表格的关系结合在一起,并呈现给呼叫端并加以执行使用。虽然本发明以前述的较佳实施例揭露如上,然其并非用以限定本发明,任何熟习相关技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书的权利要求范围所界定者为准。权利要求1.一种易于客制化对象属性的方法,其特征在于,其通过定义Metadata中一对象定义表及一对象关系表,并设定一对象定义控制程序加以实施,该方法包含下列步骤通过一呼叫端传入欲开启的一客户代码及一对象代码;读取该对象定义表并根据所传入的该客户代码及该对象代码取得对象定义;根据该客户代码及该对象代码从该对象定义表中进行搜寻;记录所有相关连对象的一客户关系代码及一对象关系代码及其对象间的对应关系;搜寻是否已无法发现有关连的对象;读取有关连的阶层性对象定义动态转换成该呼叫端可使用的对象并将一读取来源字段中所定义的字段转换为对象的属性;及将产生的对象通过对象的方式传回至该呼叫端以供该呼叫端使用。2.如权利要求1所述的一种易于客制化对象属性的方法,其特征在于,该对象定义表至少包含下列字段一客户代码(CustomerID;CustID)、一对象代码(BusinessObjectID;BOID)、一读取来源(ReadFrom)、一写入地址(WriteTo)及一识别键(KeyProperty;keyprop)。3.如权利要求1所述的一种易于客制化对象属性的方法,其特征在于,该对象关系表至少包含下列字段一主对象客户代码(CustomerID;CustID)、一主对象代码(BusinessObjectID;BOID)、一客户关系代码(RelationCustomerID;RelCustID)、一对象关系代码(RelationBusinessObjectID;RelBOID)、一主对象链接(FromProp)、一从属对象链接(ToProp)及一主从对象关系(RelType)。4.如权利要求1所述的一种易于客制化对象属性的方法,其特征在于,该将搜寻是否已无法发现有关连的对象的步骤中,当仍搜寻到有关连的对象,则便纪录有关连对象的阶层性,直至不再发现关连对象为止。全文摘要本发明涉及一种软件系统客制化开发的方法,特别是一种易于客制化(masscustomization)对象属性的方法,该方法通过元数据(MetaData)或资料表(table)的方式来定义对象属性,并配合对象定义控制程序(ObjController)的动态产生对象属性及维护资料的一致性,本方法的MetaData至少包含对象定义及对象关系两种表格来实施,更由对象定义控制程序(ObjController)统一控制,仅需事先定义,无需程序撰写,简化开发及测试过程,减低开发人员的负担。文档编号G06F17/22GK1553376SQ0314319公开日2004年12月8日申请日期2003年6月5日优先权日2003年6月5日发明者刘炎坤申请人:鼎新电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1