專利名稱:應(yīng)用框架的開發(fā)方法使用的上位框架的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于作成應(yīng)用程序(下面也簡(jiǎn)稱為應(yīng)用)的應(yīng)用框架(下面也簡(jiǎn)稱為框架),尤其涉及利用上位框架開發(fā)框架的方法、和該方法中使用的上位框架。
背景技術(shù):
框架是構(gòu)成應(yīng)用的構(gòu)件的種類和規(guī)定它們的關(guān)系的對(duì)象指向程序。利用這種框架,應(yīng)用開發(fā)者可通過根據(jù)框架定義獨(dú)立的構(gòu)件來作成應(yīng)用,從而大大減輕了應(yīng)用開發(fā)中的設(shè)計(jì)負(fù)擔(dān)。由于這種利用狀態(tài),框架常常被叫作“半完成的應(yīng)用”。
原來,這種框架的考察方法被廣泛熟知,關(guān)于框架的基本設(shè)計(jì)要素,一般也是公知的(參考文獻(xiàn)1“E.Gamma等的DesignPatternsElements of Reusable Object-Oriented Software.USAAddison-Wesley.1995.(本位田等(編譯)??擅嫦?qū)ο笤倮玫脑O(shè)計(jì)方案。東京softbank(日本最大的軟件出版商)出版社.1995年”)下面由圖49說明利用框架作成的應(yīng)用的一般構(gòu)成。
如圖49所示,原來的應(yīng)用110備有包含彼此具有參照關(guān)系的多個(gè)抽象類114的框架111、包含對(duì)框架111的各抽象類114定義的操作(方法)提供安裝的多個(gè)構(gòu)件115的構(gòu)件群112、利用框架111和構(gòu)件群112執(zhí)行整體處理的應(yīng)用主體113。這里,應(yīng)用主體113具有選擇應(yīng)用110利用的構(gòu)件115并對(duì)它們進(jìn)行初始化和設(shè)定(配置)的工廠部116、通過參照并調(diào)出由構(gòu)件115提供安裝的抽象類114來執(zhí)行處理的客戶部117。
這種應(yīng)用110中,需要處理變更和追加時(shí),通過進(jìn)行對(duì)構(gòu)件群112的各個(gè)構(gòu)件115的追加、變更和替換等來對(duì)應(yīng)。這里,各構(gòu)件115是通過繼承框架111中包含的特定的抽象類114而作成的程序模塊,各構(gòu)件115的追加、變更和替換可通過在框架111和應(yīng)用主體113(尤其是客戶部117)中透過的形式,即,不使這些設(shè)計(jì)和安裝等中產(chǎn)生變更地來進(jìn)行。
如上所述,通過利用框架開發(fā)應(yīng)用,可大幅度減輕應(yīng)用開發(fā)的設(shè)計(jì)負(fù)擔(dān),也能容易進(jìn)行應(yīng)用中的處理變更和追加。
但是,開發(fā)適合于開發(fā)應(yīng)用的高品質(zhì)的框架需要較大成本(參考文獻(xiàn)2“D.Robert等的Patterns for Evolving Frameworks.InPattern Languages of Program Design 3.USAAddison-Wesley.1997.(細(xì)谷等(編譯)。用于框架發(fā)展的模式。用于程序設(shè)計(jì)的模式語言Pattern Languages of Program Design選集(收錄)。東京softbank(日本最大的軟件出版商)出版社.2001年”).實(shí)際的應(yīng)用開發(fā)中,必須組合運(yùn)用多個(gè)框架的情況居多(參考文獻(xiàn)3“M.Fayad等的Building Application Frameworks.USAAddison-Wesley.1999.),但一般討論以相互運(yùn)用為前提的框架的具體設(shè)計(jì)方法。
發(fā)明內(nèi)容
本發(fā)明是在考慮了上述幾點(diǎn)之后作出的,其目的是提供可容易且高效地開發(fā)適合于開發(fā)應(yīng)用程序的高品質(zhì)的應(yīng)用框架,即應(yīng)用框架間的相互運(yùn)用性、擴(kuò)展性和附加價(jià)值等高的應(yīng)用框架的、利用上位框架應(yīng)用框架的開發(fā)方法和該方法中使用的上位框架。
在本發(fā)明的解決方案,提供一種作成應(yīng)用框架的上位框架,其特征在于包括具有用于將對(duì)象間構(gòu)造規(guī)定為圖形構(gòu)造的類構(gòu)造的對(duì)象間構(gòu)造機(jī)構(gòu);具有用于進(jìn)行對(duì)象間移動(dòng)和進(jìn)行對(duì)象的處理執(zhí)行的類構(gòu)造的處理執(zhí)行機(jī)構(gòu),通過將上述上位框架的上述對(duì)象間構(gòu)造機(jī)構(gòu)和上述處理執(zhí)行機(jī)構(gòu)中包含的對(duì)象直接地或以邊對(duì)其擴(kuò)展邊組合的方式來定義構(gòu)件、并作成應(yīng)用框架的步驟。
在上述解決方案中,更好是還具有用于向?qū)ο笞芳有碌墓δ艿墓δ軘U(kuò)展機(jī)構(gòu)。
在上述解決方案中,更好是還具有對(duì)隨著對(duì)象的處理的執(zhí)行而產(chǎn)生的錯(cuò)誤執(zhí)行錯(cuò)誤處理的錯(cuò)誤處理機(jī)構(gòu)。
在上述解決方案中,更好是還具有通知與隨著上述各機(jī)構(gòu)的處理產(chǎn)生的事件相關(guān)的信息的事件通知機(jī)構(gòu)、根據(jù)經(jīng)該事件通知機(jī)構(gòu)通知的信息、記錄與對(duì)象的處理的執(zhí)行有關(guān)的登錄信息的登錄機(jī)構(gòu)。
在上述解決方案中,更好是還具有通知與隨著上述各機(jī)構(gòu)的處理產(chǎn)生的事件相關(guān)的信息的事件通知機(jī)構(gòu)、根據(jù)經(jīng)該事件通知機(jī)構(gòu)通知的信息、將與對(duì)象間構(gòu)造有關(guān)的信息和與對(duì)象的處理的執(zhí)行有關(guān)的信息中的至少一個(gè)進(jìn)行可視化的可視化機(jī)構(gòu)。
在上述解決方案中,更好是還具有進(jìn)行上述各機(jī)構(gòu)的初始化和設(shè)定的配置機(jī)構(gòu)。
根據(jù)本發(fā)明,可容易且高效地開發(fā)適合于開發(fā)應(yīng)用程序的高品質(zhì)的應(yīng)用框架,即應(yīng)用框架間的相互運(yùn)用性、擴(kuò)展性和附加價(jià)值等高應(yīng)用框架。
圖1是表示本發(fā)明的一實(shí)施例的上位框架的整體構(gòu)成的類圖;圖2是說明圖1所示的上位框架的框架開發(fā)時(shí)和應(yīng)用開發(fā)時(shí)的利用方法的圖;圖3是說明圖1所示的上位框架的對(duì)象間構(gòu)造機(jī)構(gòu)的利用方法的圖;圖4是說明圖1所示的上位框架的處理執(zhí)行機(jī)構(gòu)的利用方法的圖;圖5是說明圖1所示的上位框架的功能擴(kuò)展機(jī)構(gòu)的利用方法的圖;圖6是說明圖1所示的上位框架的錯(cuò)誤處理機(jī)構(gòu)的利用方法的圖;
圖7是說明圖1所示的上位框架的事件通知機(jī)構(gòu)的利用方法的圖;圖8是說明圖1所示的上位框架的登錄機(jī)構(gòu)的利用方法的圖;圖9是說明圖1所示的上位框架的可視化機(jī)構(gòu)的利用方法的圖;圖10是說明圖1所示的上位框架的配置機(jī)構(gòu)的利用方法的圖;圖11是表示圖1所示的上位框架的對(duì)象間構(gòu)造機(jī)構(gòu)的基本構(gòu)造的類圖;圖12是表示使用圖11所示的對(duì)象間構(gòu)造機(jī)構(gòu)相互連接2個(gè)框架的構(gòu)件之間的例子的類圖;圖13是表示把圖12所示的2個(gè)框架適用于具體應(yīng)用例時(shí)的對(duì)象間構(gòu)造的一例的圖;圖14是表示把圖12所示的2個(gè)框架適用于具體應(yīng)用例時(shí)的對(duì)象間構(gòu)造的另一例的圖;圖15是表示圖1所示的上位框架的處理執(zhí)行機(jī)構(gòu)的基本構(gòu)造的類圖;圖16是說明使用圖15所示的處理執(zhí)行機(jī)構(gòu)執(zhí)行會(huì)計(jì)發(fā)票數(shù)據(jù)登錄處理流程的例子的圖;圖17是表示圖1所示的上位框架的功能擴(kuò)展機(jī)構(gòu)的基本構(gòu)造的類圖;圖18是說明在圖17所示的功能擴(kuò)展機(jī)構(gòu)中對(duì)可擴(kuò)展的構(gòu)件執(zhí)行新的擴(kuò)展功能對(duì)象時(shí)動(dòng)態(tài)進(jìn)行追加的情況下的順序的圖;圖19是表示將圖17所示的功能擴(kuò)展機(jī)構(gòu)適用于圖12所示的框架的情況下的例子的圖;圖20是表示將圖17所示的功能擴(kuò)展機(jī)構(gòu)適用于圖16所示的框架時(shí)的例子的圖;圖21是說明在圖17所示的功能擴(kuò)展機(jī)構(gòu)中分類節(jié)點(diǎn)訪客對(duì)象取得對(duì)發(fā)票分類算法對(duì)象的參照并利用它的順序的圖;圖22是表示與對(duì)象間構(gòu)造機(jī)構(gòu)一起使用圖17所示的功能擴(kuò)展機(jī)構(gòu)時(shí)的例子的類圖;
圖23是表示向圖27所示的功能擴(kuò)展機(jī)構(gòu)追加多個(gè)功能擴(kuò)展類的狀況圖;圖24是表示圖1所示的上位框架的錯(cuò)誤處理機(jī)構(gòu)的基本構(gòu)造的類圖;圖25是與圖1所示的上位框架的對(duì)象間構(gòu)造機(jī)構(gòu)、處理執(zhí)行機(jī)構(gòu)、功能擴(kuò)展機(jī)構(gòu)和錯(cuò)誤處理機(jī)構(gòu)一起表示的會(huì)計(jì)發(fā)票數(shù)據(jù)登錄處理系統(tǒng)用的框架的類圖;圖26是表示圖25所示的框架執(zhí)行時(shí)的對(duì)象間構(gòu)造的圖;圖27是表示圖1所示的上位框架的事件通知機(jī)構(gòu)的基本構(gòu)造的類圖;圖28是將圖27所示的事件通知機(jī)構(gòu)適用于對(duì)象間構(gòu)造機(jī)構(gòu)時(shí)的例子的圖;圖29是將圖27所示的事件通知機(jī)構(gòu)適用于處理執(zhí)行機(jī)構(gòu)時(shí)的例子的圖;圖30是將圖27所示的事件通知機(jī)構(gòu)適用于功能擴(kuò)展機(jī)構(gòu)時(shí)的例子的圖;圖31是表示圖27所示的事件通知機(jī)構(gòu)的其他例子的圖;圖32是表示圖1所示的上位框架的登錄機(jī)構(gòu)的基本構(gòu)造的類圖;圖33是表示用于實(shí)現(xiàn)圖1所示的上位框架的可視化機(jī)構(gòu)中應(yīng)用非執(zhí)行中進(jìn)行的可視化處理的部分的基本構(gòu)造的類圖;圖34是表示用于實(shí)現(xiàn)圖1所示的上位框架的可視化機(jī)構(gòu)中應(yīng)用執(zhí)行中進(jìn)行的可視化處理的部分的基本構(gòu)造的類圖;圖35是表示應(yīng)用執(zhí)行中和非執(zhí)行中使用的顯示畫面的一例的圖;圖36是表示應(yīng)用執(zhí)行中和非執(zhí)行中使用的顯示畫面的另一例的圖;圖37是表示應(yīng)用執(zhí)行中顯示的按鈕顯示畫面的一例的圖;圖38是表示應(yīng)用執(zhí)行中顯示的按鈕顯示畫面的另一例的圖;
圖39是表示應(yīng)用執(zhí)行中顯示的上下文(context)顯示畫面的一例的圖;圖40是表示圖39所示的上下文顯示畫面的應(yīng)用例的圖;圖41是表示圖1所示的上位框架的配置機(jī)構(gòu)的基本構(gòu)造的圖;圖42是表示圖41所示的配置機(jī)構(gòu)的動(dòng)作例的圖;圖43是表示成為配置對(duì)象的框架的構(gòu)成的類圖;圖44是表示與圖43所示的框架對(duì)應(yīng)的框架定義信息的圖;圖45是表示與圖43所示的框架對(duì)應(yīng)的對(duì)象間構(gòu)造的例子的圖;圖46是表示記述圖45所示的對(duì)象間構(gòu)造的腳本信息的一例的圖;圖47是表示根據(jù)圖44所示的框架定義信息和圖46所示的腳本信息構(gòu)筑的對(duì)象間構(gòu)造的一例的圖;圖48是表示用于實(shí)現(xiàn)關(guān)于本發(fā)明的一個(gè)實(shí)施例的、利用上位框架的框架的開發(fā)方法的計(jì)算機(jī)的一例的框圖;圖49是說明利用框架作成的應(yīng)用的一般構(gòu)成的圖。
具體實(shí)施例方式
下面參考
本發(fā)明的實(shí)施例。圖1到圖48是說明本發(fā)明的一實(shí)施例的圖。本實(shí)施例中,以利用上位框架開發(fā)事務(wù)處理系統(tǒng)的框架的情況為例來舉例說明。圖中,類圖等的表示法中,使用UML(Unified Modeling Language)規(guī)定的一般程序構(gòu)造圖表示法(參考文獻(xiàn)4“グラデイブチ著的UML用戶指南。東京皮爾遜版本。1999”)1.上位框架的構(gòu)成首先,說明用于作成框架的上位框架的構(gòu)成。這里,上位框架用于實(shí)現(xiàn)多種框架公共的處理,統(tǒng)一對(duì)框架提供通常要求的非功能處理。上位框架通過作為對(duì)象指向語言的Java(商標(biāo))等進(jìn)行安裝。
圖1是表示本實(shí)施例的上位框架的整體構(gòu)成的類圖。如圖1所示,上位框架1作為上位框架核心10,具有對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13。上位框架1具有錯(cuò)誤處理機(jī)構(gòu)14、事件通知機(jī)構(gòu)15、登錄機(jī)構(gòu)16、可視化機(jī)構(gòu)17和配置機(jī)構(gòu)18。上位框架1的各機(jī)構(gòu)11~18分別如下所示。
(a)對(duì)象間構(gòu)造機(jī)構(gòu)對(duì)象間構(gòu)造機(jī)構(gòu)11是具有將對(duì)象間構(gòu)造規(guī)定為圖形構(gòu)造的類構(gòu)造的組件(package)。根據(jù)需要,通過類繼承等來擴(kuò)展功能擴(kuò)展機(jī)構(gòu)13,由此可構(gòu)成對(duì)象間構(gòu)造機(jī)構(gòu)11。
(b)處理執(zhí)行機(jī)構(gòu)處理執(zhí)行機(jī)構(gòu)12是具有用于進(jìn)行對(duì)象間的移動(dòng)和對(duì)象的處理的執(zhí)行的類構(gòu)造的組件。處理執(zhí)行機(jī)構(gòu)12更好是利用對(duì)象間構(gòu)造機(jī)構(gòu)11和功能擴(kuò)展機(jī)構(gòu)13來構(gòu)成。
(c)功能擴(kuò)展機(jī)構(gòu)功能擴(kuò)展機(jī)構(gòu)13是用于在編碼時(shí)或執(zhí)行時(shí)對(duì)對(duì)象追加新功能(動(dòng)作和處理能力等)的組件。
(d)錯(cuò)誤處理機(jī)構(gòu)錯(cuò)誤處理機(jī)構(gòu)14是對(duì)隨著對(duì)象的處理的執(zhí)行產(chǎn)生的錯(cuò)誤執(zhí)行錯(cuò)誤處理的組件。錯(cuò)誤處理機(jī)構(gòu)14更好是通過類繼承等擴(kuò)展上位框架核心10來構(gòu)成。
(e)事件通知機(jī)構(gòu)事件通知機(jī)構(gòu)15是通知與隨著對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13等的處理產(chǎn)生的事件相關(guān)的信息的組件。事件通知機(jī)構(gòu)14更好是通過類繼承擴(kuò)展上位框架核心10來構(gòu)成。
(f)登錄機(jī)構(gòu)登錄機(jī)構(gòu)16是根據(jù)經(jīng)事件通知機(jī)構(gòu)15通知的信息,記錄與對(duì)象的處理執(zhí)行有關(guān)的登錄碼(登錄信息)的組件。登錄機(jī)構(gòu)16更好是利用上位框架核心10和事件通知機(jī)構(gòu)15來構(gòu)成。
(g)可視化機(jī)構(gòu)可視化機(jī)構(gòu)17是根據(jù)經(jīng)事件通知機(jī)構(gòu)15通知的信息,將與對(duì)象間構(gòu)造有關(guān)的信息和與對(duì)象的處理的執(zhí)行有關(guān)的信息中的至少一個(gè)進(jìn)行可視化的組件??梢暬瘷C(jī)構(gòu)17更好是利用上位框架核心10和事件通知機(jī)構(gòu)15來構(gòu)成。
(h)配置機(jī)構(gòu)配置機(jī)構(gòu)18是進(jìn)行上位框架核心10(對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13)、錯(cuò)誤處理機(jī)構(gòu)14和登錄機(jī)構(gòu)16的初始化和設(shè)定(配置)的組件。如圖2所示,配置機(jī)構(gòu)18(和將其擴(kuò)展了的配置機(jī)構(gòu)28)讀入記述框架利用的機(jī)構(gòu)的種類和它們的關(guān)系的框架定義信息29、和記述利用框架作成的應(yīng)用的對(duì)象間構(gòu)造的腳本(script)信息31,并根據(jù)這些信息構(gòu)筑應(yīng)用中使用的對(duì)象間構(gòu)造實(shí)體。
上述各機(jī)構(gòu)11~18作為組件,即類的集合體提供,其細(xì)節(jié)后述。
2.上位框架的利用方法接著由圖2說明圖1所示上位框架1的框架開發(fā)和應(yīng)用開發(fā)時(shí)的利用方法。圖2是模式表示上位框架、框架和應(yīng)用間的關(guān)系的圖。
(框架開發(fā)時(shí))首先說明利用上位框架1開發(fā)框架20的方法。
如圖2所示,首先,準(zhǔn)備具有上述的對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12、功能擴(kuò)展機(jī)構(gòu)13、錯(cuò)誤處理機(jī)構(gòu)14、事件通知機(jī)構(gòu)15、登錄機(jī)構(gòu)16、可視化機(jī)構(gòu)17和配置機(jī)構(gòu)18的上位框架1。
接著框架開發(fā)者根據(jù)成為開發(fā)對(duì)象的框架20的設(shè)計(jì)方針等,通過將上位框架1的對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12、功能擴(kuò)展機(jī)構(gòu)13、錯(cuò)誤處理機(jī)構(gòu)14、事件通知機(jī)構(gòu)15、登錄機(jī)構(gòu)16、可視化機(jī)構(gòu)17和配置機(jī)構(gòu)18中包含的對(duì)象直接、或以邊擴(kuò)展邊組合的方式來定義構(gòu)件,作成框架20。
下面說明上位框架1的各機(jī)構(gòu)11~18的具體利用方法。
(a)對(duì)象間構(gòu)造機(jī)構(gòu)11的利用方法如圖3所示,上位框架1的對(duì)象間構(gòu)造機(jī)構(gòu)11中包含實(shí)現(xiàn)基本圖形構(gòu)造的構(gòu)件。具體說,包含為了實(shí)現(xiàn)有向圖像(DG)結(jié)構(gòu)、有向非循環(huán)圖像(DAG)結(jié)構(gòu)和樹結(jié)構(gòu)的構(gòu)件。
作成框架20時(shí),框架開發(fā)者使用上述圖形構(gòu)造中的任一個(gè)的情況下,直接利用該構(gòu)件。與此相反,需要上述圖形構(gòu)造以外的構(gòu)造時(shí),擴(kuò)展上位框架1的對(duì)象間構(gòu)造機(jī)構(gòu)11,并定義新的圖形構(gòu)造的構(gòu)件(圖形構(gòu)造X)(對(duì)象間構(gòu)造機(jī)構(gòu)21)。
(b)處理執(zhí)行機(jī)構(gòu)12的利用方法如圖4所示,上位框架1的處理執(zhí)行機(jī)構(gòu)12作為用于進(jìn)行對(duì)象間的移動(dòng)和對(duì)象處理的執(zhí)行的機(jī)構(gòu),具有圖形(graph)行人類和節(jié)點(diǎn)訪客類(圖形行人類和節(jié)點(diǎn)訪客類具體在后面說明)。
作成框架20時(shí),框架開發(fā)者繼承處理執(zhí)行機(jī)構(gòu)12中包含的圖形行人類和節(jié)點(diǎn)訪客類定義具體的圖形行人類(圖形訪客X)和節(jié)點(diǎn)訪客類(節(jié)點(diǎn)訪客X1,X2)(處理執(zhí)行機(jī)構(gòu)22)。
(c)功能擴(kuò)展機(jī)構(gòu)13的利用方法如圖5所示,上位框架1的功能擴(kuò)展機(jī)構(gòu)13作為在編碼時(shí)或執(zhí)行時(shí)用于對(duì)對(duì)象追加新的功能(動(dòng)作和處理能力等)的結(jié)構(gòu),具有可擴(kuò)展構(gòu)件和擴(kuò)展接口(可擴(kuò)展構(gòu)件和擴(kuò)展接口具體在后面說明)。
作成框架20時(shí),框架開發(fā)者對(duì)安裝功能擴(kuò)展機(jī)構(gòu)13中包含的擴(kuò)展接口的具體擴(kuò)展功能類(擴(kuò)展功能X1,X2)(功能擴(kuò)展機(jī)構(gòu)23)進(jìn)行定義。此時(shí),對(duì)于可擴(kuò)展構(gòu)件,使用上位框架1中預(yù)先提供的,通常不需要擴(kuò)展自身。
利用框架20作成應(yīng)用30時(shí),具有應(yīng)用30獨(dú)自追加的擴(kuò)展功能時(shí),可對(duì)裝功能擴(kuò)展機(jī)構(gòu)13中包含的擴(kuò)展接口的具體擴(kuò)展功能類(擴(kuò)展功能A1,A2)進(jìn)行定義(功能擴(kuò)展機(jī)構(gòu)33)。
(d)錯(cuò)誤處理機(jī)構(gòu)14的利用方法如圖6所示,上位框架1的錯(cuò)誤處理機(jī)構(gòu)14作為對(duì)隨著對(duì)象的處理的執(zhí)行產(chǎn)生的錯(cuò)誤執(zhí)行錯(cuò)誤處理的機(jī)構(gòu),具有錯(cuò)誤處理管理構(gòu)件和錯(cuò)誤處理類(錯(cuò)誤處理管理構(gòu)件和錯(cuò)誤處理類具體在后面說明)。
作成框架20時(shí),框架開發(fā)者繼承錯(cuò)誤處理機(jī)構(gòu)14中包含的錯(cuò)誤處理類之后,定義(錯(cuò)誤處理機(jī)構(gòu)24)具體的錯(cuò)誤處理類(錯(cuò)誤處理X1,X2)。此時(shí),對(duì)于錯(cuò)誤處理管理構(gòu)件,使用上位框架1中預(yù)先提供的,通常不需要擴(kuò)展自身。
利用框架20作成應(yīng)用30時(shí),有應(yīng)用30獨(dú)自追加的錯(cuò)誤處理時(shí),可繼承錯(cuò)誤處理機(jī)構(gòu)14中包含的錯(cuò)誤處理類來定義(錯(cuò)誤處理機(jī)構(gòu)34)具體錯(cuò)誤處理類(錯(cuò)誤處理A1,A2)。
(e)事件通知機(jī)構(gòu)15的利用方法如圖7所示,上位框架1的事件通知機(jī)構(gòu)15作為通知在對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13等的處理時(shí)產(chǎn)生的事件相關(guān)的信息的接口,具有節(jié)點(diǎn)事件通知接口、圖形行人事件通知接口、節(jié)點(diǎn)訪客事件通知接口和功能擴(kuò)展事件通知接口(這些通知接口具體在后面說明)。
作成框架20時(shí),框架開發(fā)者選擇事件通知機(jī)構(gòu)15中包含的通知接口中的必要通知接口,并對(duì)安裝該選擇的通知接口的具體被通知者類(節(jié)點(diǎn)事件被通知者X、處理執(zhí)行事件被通知者X、功能擴(kuò)展事件被通知者X)進(jìn)行定義(功能擴(kuò)展機(jī)構(gòu)25)。被通知者類中用1個(gè)對(duì)象同時(shí)接收多個(gè)事件群的通知。
(f)登錄機(jī)構(gòu)16的利用方法如圖8所示,上位框架1的登錄機(jī)構(gòu)16根據(jù)經(jīng)事件通知機(jī)構(gòu)15通知的信息,作為記錄與對(duì)象的處理執(zhí)行有關(guān)的登錄碼(登錄信息)的機(jī)構(gòu),具有安裝了圖形行人事件通知接口和節(jié)點(diǎn)訪客事件通知接口的公共部登錄構(gòu)件(公共部登錄構(gòu)件具體在后面說明)。
作成框架20時(shí),框架開發(fā)者在有框架20獨(dú)自追加的登錄處理時(shí),對(duì)安裝圖形行人事件通知接口和節(jié)點(diǎn)訪客事件通知接口的具體的固有部登錄構(gòu)件(固有部登錄X)進(jìn)行定義(登錄機(jī)構(gòu)26)。
(g)可視化機(jī)構(gòu)17的利用方法如圖9所示,上位框架1的可視化機(jī)構(gòu)17根據(jù)事件通知機(jī)構(gòu)15通知的信息,作為將與對(duì)象間構(gòu)造有關(guān)的信息和與對(duì)象的處理的執(zhí)行有關(guān)的信息中的至少一個(gè)進(jìn)行可視化的機(jī)構(gòu),具有公共節(jié)點(diǎn)信息顯示構(gòu)件、有向圖形顯示構(gòu)件、上下文顯示構(gòu)件、處理開始按鈕顯示構(gòu)件和處理繼續(xù)進(jìn)行按鈕顯示構(gòu)件(這些顯示構(gòu)件具體在后面說明)。
作成框架20時(shí),框架開發(fā)者在有框架20獨(dú)自追加的顯示處理時(shí),對(duì)具體的顯示構(gòu)件(框架固有節(jié)點(diǎn)信息顯示)進(jìn)行定義(可視化機(jī)構(gòu)27)。
(h)配置機(jī)構(gòu)18的利用方法如圖10所示,上位框架1的配置機(jī)構(gòu)18作為進(jìn)行上位框架核心10(對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13)、錯(cuò)誤處理機(jī)構(gòu)14和登錄機(jī)構(gòu)16的初始化和設(shè)定(配置)的機(jī)構(gòu),具有工廠。這樣的工廠有兩種情況由全部的框架共同使用的情況、和對(duì)每個(gè)框架擴(kuò)展來使用的情況。
作成框架20時(shí),框架開發(fā)者在原樣使用上述工廠時(shí),直接利用該工廠。與此相反,在需要對(duì)每個(gè)框架擴(kuò)展來使用工廠時(shí),擴(kuò)展上位框架1的配置機(jī)構(gòu)18,定義框架20固有的工廠(框架固有工廠)(配置機(jī)構(gòu)28)??蚣荛_發(fā)者將框架20利用的機(jī)構(gòu)種類和它們的關(guān)系作為框架定義信息29(參考圖2)記述。
通過以上作成擴(kuò)展了上位框架1的高品質(zhì)的框架20。
(應(yīng)用開發(fā)時(shí))接著返回圖2,說明利用這樣被開發(fā)的框架20開發(fā)應(yīng)用30的方法。
首先,應(yīng)用開發(fā)者在有由應(yīng)用30獨(dú)自追加的擴(kuò)展功能或錯(cuò)誤處理時(shí),如上所述,根據(jù)功能擴(kuò)展機(jī)構(gòu)13,23或錯(cuò)誤處理機(jī)構(gòu)14,24對(duì)應(yīng)用30固有的構(gòu)件進(jìn)行追加定義(功能擴(kuò)展機(jī)構(gòu)33和錯(cuò)誤處理機(jī)構(gòu)34)。
應(yīng)用開發(fā)者將利用框架20作成的應(yīng)用30執(zhí)行時(shí)的對(duì)象間構(gòu)造記述為腳本信息31。
(應(yīng)用執(zhí)行時(shí))之后,執(zhí)行應(yīng)用30時(shí),如圖2所示,啟動(dòng)配置機(jī)構(gòu)18,28,通過配置機(jī)構(gòu)18,28讀入框架定義信息29和腳本信息31(參考符號(hào)(1)(2))。并且配置機(jī)構(gòu)18,28根據(jù)該讀入的信息,通過對(duì)對(duì)象間構(gòu)造機(jī)構(gòu)11,21、功能擴(kuò)展機(jī)構(gòu)13,23、錯(cuò)誤處理機(jī)構(gòu)14,24和登錄機(jī)構(gòu)16,26中包含的對(duì)象(構(gòu)件)進(jìn)行初始化和設(shè)定,構(gòu)筑應(yīng)用30使用的對(duì)象間構(gòu)造實(shí)體37(參考符號(hào)(3))。此時(shí),配置機(jī)構(gòu)18,28也對(duì)事件通知機(jī)構(gòu)25中包含的各被通知者類(參考圖7)進(jìn)行初始化和登錄。
接著啟動(dòng)可視化機(jī)構(gòu)17,27,生成用于監(jiān)視構(gòu)筑的對(duì)象間構(gòu)造實(shí)體37的可視化對(duì)象35(參考符號(hào)(4))。
之后,由配置機(jī)構(gòu)18,28啟動(dòng)處理執(zhí)行機(jī)構(gòu)12,22(參考圖2的符號(hào)(5)),生成處理執(zhí)行對(duì)象36(參考符號(hào)(6))。由此,在處理執(zhí)行對(duì)象36的控制下,執(zhí)行對(duì)象間構(gòu)造實(shí)體37的處理。
3.上位框架中包含的各機(jī)構(gòu)的構(gòu)成和動(dòng)作下面詳細(xì)說明上位框架1中包含的對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13、錯(cuò)誤處理機(jī)構(gòu)14、事件通知機(jī)構(gòu)15、登錄機(jī)構(gòu)16、可視化機(jī)構(gòu)17和配置機(jī)構(gòu)18的構(gòu)成和動(dòng)作。
(概要)通過連接對(duì)象間形成的對(duì)象間構(gòu)造通??杀硎緸橛邢驁D像構(gòu)造。所謂有向圖像構(gòu)造是像節(jié)點(diǎn)A→節(jié)點(diǎn)B那樣,通過母與子的關(guān)系表示節(jié)點(diǎn)間的圖形構(gòu)造,通過這種構(gòu)造,可表現(xiàn)成為框架或應(yīng)用的處理對(duì)象的事物或處理的順序。
原來的框架中,一般地,在框架中的構(gòu)件中,獨(dú)立實(shí)現(xiàn)形成有向圖形構(gòu)造的接口和結(jié)構(gòu),因此不能用1個(gè)有向圖形構(gòu)造連接不同的框架的構(gòu)件。
(基本構(gòu)造)本實(shí)施例的上位框架1為解決這種問題提供一種具有將對(duì)象間構(gòu)造規(guī)定為有向圖形構(gòu)造等的圖形構(gòu)造的類構(gòu)造的對(duì)象間構(gòu)造機(jī)構(gòu)11。
圖11是表示對(duì)象間構(gòu)造機(jī)構(gòu)11的基本構(gòu)造的類圖。如圖11所示,對(duì)象間構(gòu)造機(jī)構(gòu)11具有含有0個(gè)以上的構(gòu)件(實(shí)節(jié)點(diǎn))的節(jié)點(diǎn)類41。節(jié)點(diǎn)類41表示有向圖形構(gòu)造中的1個(gè)節(jié)點(diǎn),各節(jié)點(diǎn)可參照0個(gè)以上的子節(jié)點(diǎn)。此時(shí),參照子節(jié)點(diǎn)的節(jié)點(diǎn)為這些子節(jié)點(diǎn)的母節(jié)點(diǎn),從而表示形成有向圖形構(gòu)造的節(jié)點(diǎn)間的母子關(guān)系。
(具體例)接著通過圖12到圖14說明圖11所示的對(duì)象間構(gòu)造機(jī)構(gòu)11的具體例。
圖12是表示使用圖11所示的對(duì)象間構(gòu)造機(jī)構(gòu)11去相互連接2個(gè)框架的組件之間的例子的類圖,圖13是表示將圖12所示的2個(gè)框架適用于具體應(yīng)用例中時(shí)的對(duì)象間構(gòu)造的一例的圖。如圖12和圖13所示,通過把形成有向圖形構(gòu)造的各節(jié)點(diǎn)連接于框架的構(gòu)件(實(shí)節(jié)點(diǎn)),可將對(duì)象間構(gòu)造({會(huì)計(jì)發(fā)票數(shù)據(jù)分類處理→會(huì)計(jì)頁(yè)面區(qū)分處理→會(huì)計(jì)頁(yè)面打印處理}和{會(huì)計(jì)發(fā)票數(shù)據(jù)分類處理→出納頁(yè)面區(qū)分處理→出納頁(yè)面打印處理})作為有向圖形構(gòu)造表示。這里,形成有向圖形構(gòu)造的各節(jié)點(diǎn)可連接于不同的框架的構(gòu)件(實(shí)節(jié)點(diǎn)),因此可彼此連接不同的框架的構(gòu)件。
可同時(shí)使用多個(gè)圖11所示的對(duì)象間構(gòu)造機(jī)構(gòu)11,此時(shí),如圖14所示,可同時(shí)將同一構(gòu)件集合作為多個(gè)有向圖形構(gòu)造表示。圖14中,除圖13所示的對(duì)象間構(gòu)造(用“x1~x5節(jié)點(diǎn)”間的結(jié)合表示)外,還表示另外的對(duì)象間構(gòu)造({會(huì)計(jì)頁(yè)面區(qū)分處理→出納頁(yè)面區(qū)分處理→會(huì)計(jì)頁(yè)面打印處理→出納頁(yè)面打印處理})。
(效果)通過圖11所示的對(duì)象間構(gòu)造機(jī)構(gòu)11得到如下效果。
(1)不需要對(duì)每個(gè)框架進(jìn)行有向圖形構(gòu)造的維持和管理用的機(jī)構(gòu)的設(shè)計(jì)和安裝等,因此框架開發(fā)效率和維修性得到提高。
(2)可將跨不同框架的多個(gè)對(duì)象間構(gòu)造表示為1個(gè)有向圖形構(gòu)造,因此容易實(shí)現(xiàn)框架間的相互連接。
(3)可同時(shí)將同一構(gòu)件(實(shí)節(jié)點(diǎn))的集合表示為多個(gè)有向圖形構(gòu)造,因此對(duì)于同一對(duì)象的集合,可根據(jù)情況區(qū)分使用不同的處理流程。這種特性(多態(tài)性(polymorphism))尤其在需要根據(jù)處理種類更換對(duì)象間構(gòu)造的系統(tǒng)中有效。如果全部預(yù)先定義需要的有向圖形構(gòu)造,則執(zhí)行時(shí)對(duì)象間構(gòu)造的更換可瞬時(shí)進(jìn)行,可將對(duì)處理性能的影響抑制到最小限度。
(4)可不對(duì)構(gòu)件(實(shí)節(jié)點(diǎn))產(chǎn)生影響,僅單獨(dú)定義或變更或再利用與有向圖形構(gòu)造相關(guān)的信息。
(5)可不對(duì)有向圖形構(gòu)造產(chǎn)生影響,僅追加地定義、替換或在多個(gè)有向圖形中共有構(gòu)件(實(shí)節(jié)點(diǎn))。
(6)在同一存儲(chǔ)器空間內(nèi)結(jié)合構(gòu)件(實(shí)節(jié)點(diǎn))的情況下和跨過不同存儲(chǔ)器空間(即在網(wǎng)絡(luò)上)結(jié)合的情況下,連接方法不同。但是,在具有連接規(guī)定對(duì)象間構(gòu)造的專用節(jié)點(diǎn)類的方法的情況下,不對(duì)構(gòu)件(實(shí)節(jié)點(diǎn))產(chǎn)生影響,可同時(shí)使用或相互更換各種連接方法。這種特性叫作配置透過性(deployment transparency)。
(概要)原來的框架中,一般是對(duì)框架中的構(gòu)件(實(shí)節(jié)點(diǎn))轉(zhuǎn)移執(zhí)行順序的控制等,變更執(zhí)行順序、變更把控制從節(jié)點(diǎn)移動(dòng)到節(jié)點(diǎn)時(shí)要進(jìn)行的處理時(shí),需要變更現(xiàn)有的類的編碼。
(基本構(gòu)造)本實(shí)施例的上位框架1為解決這種問題,提供具有用于進(jìn)行對(duì)象間的移動(dòng)和對(duì)象的處理執(zhí)行的類構(gòu)造的處理執(zhí)行機(jī)構(gòu)12。
圖15是表示處理執(zhí)行機(jī)構(gòu)12的基本構(gòu)造的類圖。如圖15所示,處理執(zhí)行機(jī)構(gòu)12具有圖形行人類45和節(jié)點(diǎn)訪客類46。
圖形行人類45用于在對(duì)象間構(gòu)造機(jī)構(gòu)11等實(shí)現(xiàn)的類構(gòu)造中在節(jié)點(diǎn)間移動(dòng)。與圖形行人類45對(duì)應(yīng)的圖形行人對(duì)象在移動(dòng)目的地的節(jié)點(diǎn)中,根據(jù)節(jié)點(diǎn)訪客類46生成該節(jié)點(diǎn)用的節(jié)點(diǎn)訪客對(duì)象,派遣到節(jié)點(diǎn)。生成的節(jié)點(diǎn)訪客對(duì)象執(zhí)行該節(jié)點(diǎn)的處理(節(jié)點(diǎn)處理),圖形行人對(duì)象根據(jù)其結(jié)果和圖形構(gòu)造決定接著要執(zhí)行的1個(gè)或多個(gè)節(jié)點(diǎn),移動(dòng)到該決定的節(jié)點(diǎn)。圖形行人對(duì)象在節(jié)點(diǎn)訪客對(duì)象派遣前后和圖形行人對(duì)象移動(dòng)前后執(zhí)行節(jié)點(diǎn)處理以外的追加的處理,可擴(kuò)展整個(gè)處理。
節(jié)點(diǎn)訪客類46用于在特定節(jié)點(diǎn)中執(zhí)行節(jié)點(diǎn)處理。與節(jié)點(diǎn)訪客類46對(duì)應(yīng)的節(jié)點(diǎn)訪客對(duì)象每當(dāng)執(zhí)行時(shí)從該節(jié)點(diǎn)取得必要信息,把節(jié)點(diǎn)處理的結(jié)果返回圖形行人對(duì)象。節(jié)點(diǎn)訪客類46可通過一種叫做訪客(Visitor)的設(shè)計(jì)方法實(shí)現(xiàn)(參考上述文獻(xiàn)1)。
各節(jié)點(diǎn)中要如何執(zhí)行節(jié)點(diǎn)處理,這將依賴于對(duì)應(yīng)該節(jié)點(diǎn)的構(gòu)件種類。因此,使圖形行人類45具有用于執(zhí)行節(jié)點(diǎn)處理的編碼時(shí),每當(dāng)構(gòu)件種類增加或減少時(shí),必須變更圖形行人類45。因此,用于執(zhí)行依賴于構(gòu)件種類的節(jié)點(diǎn)處理的編碼存在于對(duì)每個(gè)構(gòu)件種類設(shè)置的各個(gè)節(jié)點(diǎn)訪客類46中。由此,構(gòu)件種類增加或減少時(shí),可通過追加或刪除與其對(duì)應(yīng)的節(jié)點(diǎn)訪客類來對(duì)應(yīng)。
(具體例)接著由圖16(a)(b)說明圖15所示的處理執(zhí)行機(jī)構(gòu)12的具體例。
圖16(a)(b)是說明使用圖15所示的處理執(zhí)行機(jī)構(gòu)12執(zhí)行會(huì)計(jì)發(fā)票數(shù)據(jù)登錄處理流程的例子的圖。圖16(a)是與處理執(zhí)行機(jī)構(gòu)一起表示會(huì)計(jì)發(fā)票數(shù)據(jù)登錄處理系統(tǒng)用的框架的類圖,圖16(b)是表示圖16(a)所示的框架執(zhí)行時(shí)的對(duì)象間構(gòu)造的圖。
如圖16(a)(b)所示,會(huì)計(jì)發(fā)票數(shù)據(jù)登錄處理系統(tǒng)用的框架47的各構(gòu)件僅具有自己的子節(jié)點(diǎn)是哪個(gè)、自己提供的功能是什么的信息,關(guān)于從節(jié)點(diǎn)到節(jié)點(diǎn)的移動(dòng),由繼承了圖形行人類45的具體的圖形行人類(數(shù)據(jù)處理行人類45a)和繼承節(jié)點(diǎn)訪客類46的具體的節(jié)點(diǎn)訪客類(分類節(jié)點(diǎn)訪客類46a和登錄節(jié)點(diǎn)訪客類46b)進(jìn)行。數(shù)據(jù)處理行人類45a可呼叫登錄構(gòu)件48,登錄節(jié)點(diǎn)訪客類46b可呼叫數(shù)據(jù)庫(kù)構(gòu)件49。
下面說明圖16(a)(b)所示的框架中裝入會(huì)計(jì)數(shù)據(jù)時(shí)的處理的流程。
(1)客戶(未示出)生成1個(gè)數(shù)據(jù)處理行人對(duì)象,并提供會(huì)計(jì)數(shù)據(jù),指示處理開始。
(2)數(shù)據(jù)處理行人對(duì)象移動(dòng)到發(fā)票數(shù)據(jù)分類節(jié)點(diǎn),生成并派遣分類節(jié)點(diǎn)訪客對(duì)象。
(3)[數(shù)據(jù)處理行人對(duì)象向發(fā)票數(shù)據(jù)分類節(jié)點(diǎn)移動(dòng)的記錄作為登錄碼傳遞到登錄構(gòu)件。](4)數(shù)據(jù)分類訪客對(duì)象進(jìn)行下面動(dòng)作。
(4-1)從節(jié)點(diǎn)取得發(fā)票分類算法。
(4-2)啟動(dòng)發(fā)票分類算法,取得會(huì)計(jì)數(shù)據(jù)的分類目的地。
(4-3)把會(huì)計(jì)數(shù)據(jù)的分類目的地返回到數(shù)據(jù)處理行人對(duì)象。
裝入的數(shù)據(jù)是會(huì)計(jì)數(shù)據(jù)的情況下,通過發(fā)票數(shù)據(jù)分類節(jié)點(diǎn)的算法(發(fā)票分裂算法)將會(huì)計(jì)登錄節(jié)點(diǎn)作為分類目的地返回,因此也向數(shù)據(jù)處理行人對(duì)象返回該結(jié)果。
(5)[數(shù)據(jù)處理行人對(duì)象把發(fā)票數(shù)據(jù)分類節(jié)點(diǎn)的節(jié)點(diǎn)處理的結(jié)果作為登錄碼傳遞到登錄構(gòu)件。](6)數(shù)據(jù)處理行人對(duì)象向會(huì)計(jì)數(shù)據(jù)登錄節(jié)點(diǎn)移動(dòng),生成并派遣登錄節(jié)點(diǎn)訪客對(duì)象。
(7)[將數(shù)據(jù)處理行人對(duì)象向發(fā)票數(shù)據(jù)分類節(jié)點(diǎn)的移動(dòng)的記錄作為登錄碼傳遞到登錄構(gòu)件。](8)登錄節(jié)點(diǎn)訪客對(duì)象根據(jù)自身的程序碼,取得作為節(jié)點(diǎn)屬性提供的會(huì)計(jì)數(shù)據(jù)庫(kù)信息,通過把該會(huì)計(jì)數(shù)據(jù)庫(kù)信息和會(huì)計(jì)數(shù)據(jù)傳遞到另外設(shè)定的數(shù)據(jù)庫(kù)構(gòu)件,執(zhí)行實(shí)際登錄動(dòng)作。
(9)[數(shù)據(jù)處理行人對(duì)象把會(huì)計(jì)數(shù)據(jù)登錄節(jié)點(diǎn)的節(jié)點(diǎn)處理結(jié)果作為登錄碼傳遞到登錄構(gòu)件。](10)指定接著要移動(dòng)的節(jié)點(diǎn)期間,反復(fù)進(jìn)行上述處理。在圖16(a)(b)所示的框架情況下,未指定接著要移動(dòng)的節(jié)點(diǎn),因此數(shù)據(jù)處理行人對(duì)象執(zhí)行該處理的完成動(dòng)作。
(11)[數(shù)據(jù)處理行人對(duì)象將發(fā)票數(shù)據(jù)登錄處理流程完成作為登錄碼傳遞到登錄構(gòu)件。](效果)通過圖15所示的處理執(zhí)行機(jī)構(gòu)12得到如下效果。
(1)由于可分離各節(jié)點(diǎn)的功能和處理的執(zhí)行控制,因此可單獨(dú)變更或擴(kuò)展每一個(gè)。具體說,例如上述具體例的處理流程中,執(zhí)行對(duì)應(yīng)括號(hào)包圍的部分([~])的登錄處理的編碼存在于數(shù)據(jù)處理行人類內(nèi),因此在變更登錄處理時(shí)僅變更數(shù)據(jù)處理行人類內(nèi)的編碼?;蛘卟粌H登錄處理,例如取得了執(zhí)行的集合(通過了幾個(gè)節(jié)點(diǎn)等)的處理追加也可以只通過變更數(shù)據(jù)處理行人類中的編碼來進(jìn)行對(duì)應(yīng)。
(2)有時(shí)通過框架跨構(gòu)件(實(shí)節(jié)點(diǎn))不同的存儲(chǔ)器空間(即網(wǎng)絡(luò)上)結(jié)合的情況。此時(shí),處理的執(zhí)行也必須跨存儲(chǔ)器空間(處理空間)執(zhí)行。但是,對(duì)象間移動(dòng)和對(duì)象的處理執(zhí)行用的專用對(duì)象(圖形行人對(duì)象)中具有處理執(zhí)行方法的情況下,通過變更或擴(kuò)展該專用對(duì)象的功能可不對(duì)構(gòu)件(實(shí)節(jié)點(diǎn))作任何變更地進(jìn)行對(duì)應(yīng)。這種特性叫作配置透過性(deployment transparency)。
(3)由于構(gòu)件(實(shí)節(jié)點(diǎn))不具有特定處理的執(zhí)行方法(或不依賴于其他構(gòu)件),其他框架中也可利用構(gòu)件(實(shí)節(jié)點(diǎn)),提高其再利用性。具體說,例如上述具體例的發(fā)票數(shù)據(jù)分類構(gòu)件除在數(shù)據(jù)庫(kù)登錄發(fā)票數(shù)據(jù)的框架外,還可在用于開票打印發(fā)票數(shù)據(jù)的框架中使用,這是由于發(fā)票數(shù)據(jù)分類構(gòu)件不依賴于數(shù)據(jù)處理行人類的處理執(zhí)行。
(概要)所謂功能擴(kuò)展是在編碼時(shí)或執(zhí)行時(shí)對(duì)對(duì)象追加新的功能(動(dòng)作或處理能力等)。
原來的框架中一般地,通過使用類繼承的擴(kuò)展(靜態(tài)擴(kuò)展)或使用轉(zhuǎn)移的擴(kuò)展(動(dòng)態(tài)擴(kuò)展)之中的任一個(gè)方法進(jìn)行這種功能擴(kuò)展。
但是,上述方法中,使用類繼承的擴(kuò)展(靜態(tài)擴(kuò)展)中,進(jìn)行多重?cái)U(kuò)展,即多重繼承時(shí),容易引起方法名和屬性名的沖突,進(jìn)行多重繼承實(shí)際上很困難。也不能通過對(duì)象指向語言使用多重繼承(例如Java(商標(biāo)))。
使用轉(zhuǎn)移的擴(kuò)展(動(dòng)態(tài)擴(kuò)展)中,擴(kuò)展功能時(shí),必須變更現(xiàn)有的類的定義。為避免這種轉(zhuǎn)移進(jìn)行的功能擴(kuò)展的缺點(diǎn),已知使用兼用了類繼承的類構(gòu)造(一般叫作裝飾器(Decorator))(參考上述文獻(xiàn)1)。但是,該方法中,必須特別注意把功能擴(kuò)展的對(duì)象設(shè)計(jì)為通過類繼承進(jìn)行功能擴(kuò)展,成為功能擴(kuò)展對(duì)象的擴(kuò)征功能類也必須注意不損壞功能擴(kuò)展的對(duì)象的功能來附加追加的功能,因此設(shè)計(jì)不容易。并且這種類構(gòu)造中,難以進(jìn)行多重?cái)U(kuò)展。
(基本構(gòu)造)本實(shí)施例的上位框架1為解決這個(gè)問題,作為在編碼時(shí)或執(zhí)行時(shí)對(duì)對(duì)象追加新的功能(動(dòng)作或處理能力等)的功能擴(kuò)展機(jī)構(gòu)13,提供一種使用了已知的擴(kuò)展對(duì)象(Extension Object)的方法(參考上述文獻(xiàn)2)的功能擴(kuò)展機(jī)構(gòu)13。
圖17是表示功能擴(kuò)展機(jī)構(gòu)13的基本構(gòu)造的類圖。如圖17所示,功能擴(kuò)展機(jī)構(gòu)13具有由客戶50參照的可擴(kuò)展構(gòu)件51和可擴(kuò)展構(gòu)件51具有的擴(kuò)展接口52,功能擴(kuò)展可擴(kuò)展構(gòu)件51的擴(kuò)展功能類53是通過繼承擴(kuò)展接口52而形成的??蓴U(kuò)展構(gòu)件51具有取得對(duì)擴(kuò)展功能類53的參照的getExtension方法。
這里,通過圖18(a)(b)(c)說明執(zhí)行時(shí)對(duì)可擴(kuò)展構(gòu)件動(dòng)態(tài)追加新的擴(kuò)展功能對(duì)象時(shí)的順序。圖18中,對(duì)象X對(duì)應(yīng)客戶50、對(duì)象A對(duì)應(yīng)可擴(kuò)展構(gòu)件51、對(duì)象B對(duì)應(yīng)擴(kuò)展功能類53。
如圖18(a)(b)(c)所示,首先,存在通過對(duì)象X參照的功能擴(kuò)展前的對(duì)象A(圖18(a))。
該狀態(tài)下,配置擴(kuò)展對(duì)象A的對(duì)象B時(shí),該時(shí)刻完成對(duì)象A的擴(kuò)展(圖18(b))。
之后,對(duì)象X利用對(duì)象B時(shí),通過對(duì)象A的getExtension方法取得對(duì)對(duì)象B的參照,在與對(duì)象B之間構(gòu)筑暫時(shí)的參照關(guān)系(圖18(c))。該參照關(guān)系在對(duì)象B的利用結(jié)束后消除。
(具體例)接著通過圖19到圖21說明圖17所示功能擴(kuò)展機(jī)構(gòu)13的具體例。
圖19是將功能擴(kuò)展機(jī)構(gòu)13適用于圖12所示的框架43時(shí)的例子的圖,圖20是表示將功能擴(kuò)展機(jī)構(gòu)13適用于圖16(a)(b)所示的框架47中時(shí)的例子的圖。
如圖19和圖20所示,數(shù)據(jù)分類構(gòu)件(發(fā)票數(shù)據(jù)分類對(duì)象)是功能擴(kuò)展的對(duì)象,發(fā)票分類算法對(duì)象是對(duì)發(fā)票數(shù)據(jù)分類節(jié)點(diǎn)進(jìn)行功能擴(kuò)張,并將分類發(fā)票的功能賦給它的對(duì)象。
這里,如圖20所示,功能擴(kuò)展機(jī)構(gòu)13可與處理執(zhí)行機(jī)構(gòu)12一起使用。此時(shí),節(jié)點(diǎn)訪客對(duì)象(分類節(jié)點(diǎn)訪客對(duì)象)為客戶,節(jié)點(diǎn)(發(fā)票數(shù)據(jù)分類對(duì)象)為功能擴(kuò)展的對(duì)象。節(jié)點(diǎn)訪客對(duì)象被設(shè)計(jì)成可預(yù)先知道訪問目的地的節(jié)點(diǎn)具有哪種擴(kuò)展功能對(duì)象,從而可以適當(dāng)利用擴(kuò)展功能對(duì)象。
下面通過圖21(a)(b)說明分類節(jié)點(diǎn)訪客對(duì)象取得對(duì)發(fā)票分類算法對(duì)象的參照并利用其的順序。
首先,如圖21(a)所示,分類節(jié)點(diǎn)訪客對(duì)象利用發(fā)票數(shù)據(jù)分類對(duì)象的getExtension方法取得對(duì)發(fā)票分類算法對(duì)象的參照,在與發(fā)票分類算法對(duì)象之間構(gòu)筑暫時(shí)的參照關(guān)系(步驟(1))。
之后,如圖21(b)所示,分類節(jié)點(diǎn)訪客對(duì)象根據(jù)構(gòu)筑的參照關(guān)系利用發(fā)票分類算法對(duì)象對(duì)發(fā)票數(shù)據(jù)進(jìn)行分類(步驟(2))。
功能擴(kuò)展機(jī)構(gòu)13也可與對(duì)象間構(gòu)造機(jī)構(gòu)11一起使用。如圖22所示,功能擴(kuò)展機(jī)構(gòu)13的可擴(kuò)展構(gòu)件51作為框架的構(gòu)件(實(shí)節(jié)點(diǎn)),可將擴(kuò)展功能類53用作對(duì)象間構(gòu)造機(jī)構(gòu)11的節(jié)點(diǎn)類41(參考圖11)。如上所述,對(duì)象間構(gòu)造機(jī)構(gòu)11中,1個(gè)構(gòu)件可(實(shí)節(jié)點(diǎn))同時(shí)成為多個(gè)有向圖形構(gòu)造的節(jié)點(diǎn)。因此,構(gòu)件(實(shí)節(jié)點(diǎn))可作為功能擴(kuò)展對(duì)象具有多個(gè)節(jié)點(diǎn)對(duì)象。此時(shí),客戶(例如圖形行人對(duì)象)對(duì)一個(gè)構(gòu)件選擇并取得特定有向圖形構(gòu)造的節(jié)點(diǎn)對(duì)象,因此對(duì)象間構(gòu)造機(jī)構(gòu)11的可擴(kuò)展構(gòu)件51中,getExtension方法可將擴(kuò)展名作為自變數(shù)設(shè)置為2個(gè)以上的數(shù)據(jù)構(gòu)造(例如getExtension(擴(kuò)展名部分1,擴(kuò)展名部分2,.....)。由此取得屬于特定有向圖形構(gòu)造的節(jié)點(diǎn)對(duì)象時(shí),例如可通過用“getExtension(節(jié)點(diǎn)名、有向圖形構(gòu)造名)”形式提供2個(gè)自變數(shù)來對(duì)應(yīng)。
(效果)通過圖17所示的功能擴(kuò)展機(jī)構(gòu)13可得到如下效果。
(1)由于不是使用類繼承的擴(kuò)展,因此如圖23所示,不受到許可繼承時(shí)必要的設(shè)計(jì)上的制約,可追加多個(gè)擴(kuò)展功能類53。追加擴(kuò)展功能類53(例如擴(kuò)展功能C,D)時(shí)對(duì)現(xiàn)有的類(客戶X,可擴(kuò)展構(gòu)件A和擴(kuò)展功能B等)設(shè)計(jì)不產(chǎn)生影響。
(2)參照客戶(對(duì)象X)由于通常是功能擴(kuò)展的對(duì)象原樣,即便在執(zhí)行中配置對(duì)其進(jìn)行動(dòng)態(tài)擴(kuò)展的擴(kuò)展功能對(duì)象(擴(kuò)展功能B),也不需要更換基本的參照關(guān)系。
(3)通過把功能擴(kuò)展機(jī)構(gòu)13的可擴(kuò)展構(gòu)件51作為框架的構(gòu)件(實(shí)節(jié)點(diǎn))、把對(duì)象間構(gòu)造機(jī)構(gòu)11的節(jié)點(diǎn)類41定義為擴(kuò)展功能類53,各個(gè)構(gòu)件(實(shí)節(jié)點(diǎn))設(shè)計(jì)不依賴于對(duì)象間構(gòu)造機(jī)構(gòu)11的節(jié)點(diǎn)對(duì)象,即不具有裝入節(jié)點(diǎn)對(duì)象的設(shè)計(jì),一般將其處理為簡(jiǎn)單的擴(kuò)展功能對(duì)象中的一個(gè)。
(概要)原來的框架中,一般地向框架中的構(gòu)件(實(shí)節(jié)點(diǎn))轉(zhuǎn)移隨著該構(gòu)件的處理產(chǎn)生的錯(cuò)誤處理,因此難以容易地變更、追加、刪除錯(cuò)誤處理。
(基本構(gòu)造)本實(shí)施例的上位框架1為解決這個(gè)問題,提供對(duì)隨著構(gòu)件(實(shí)節(jié)點(diǎn))等的對(duì)象的處理產(chǎn)生的錯(cuò)誤執(zhí)行錯(cuò)誤處理(或例外處理)的錯(cuò)誤處理機(jī)構(gòu)14。
圖24是表示錯(cuò)誤處理機(jī)構(gòu)14的基本構(gòu)造的類圖。圖24表示出錯(cuò)誤處理機(jī)構(gòu)14與處理執(zhí)行機(jī)構(gòu)12一起使用的情況。如圖24所示,錯(cuò)誤處理機(jī)構(gòu)14具有錯(cuò)誤處理管理構(gòu)件54和錯(cuò)誤處理類55。
錯(cuò)誤處理管理構(gòu)件54從處理執(zhí)行機(jī)構(gòu)12的節(jié)點(diǎn)訪客類46調(diào)出,對(duì)應(yīng)來自節(jié)點(diǎn)訪客類46的委托,選擇與隨著構(gòu)件(實(shí)節(jié)點(diǎn))等的對(duì)象處理產(chǎn)生的錯(cuò)誤對(duì)應(yīng)的錯(cuò)誤處理類55來執(zhí)行錯(cuò)誤處理。
錯(cuò)誤處理類55安裝與隨著構(gòu)件(實(shí)節(jié)點(diǎn))等的對(duì)象處理產(chǎn)生的特定錯(cuò)誤對(duì)應(yīng)的錯(cuò)誤處理。
錯(cuò)誤處理管理構(gòu)件54和錯(cuò)誤處理類55可作成一個(gè)對(duì)象,但通過作為另外的對(duì)象可將與錯(cuò)誤處理的鑒定等相關(guān)的碼匯總為1個(gè),提高編碼的維修性。
如圖24所示,隨著對(duì)象處理產(chǎn)生錯(cuò)誤的情況下,節(jié)點(diǎn)訪客類46把對(duì)象產(chǎn)生的錯(cuò)誤返回圖形行人類45(步驟(1))。
接著圖形行人類45進(jìn)行每當(dāng)錯(cuò)誤處理時(shí)需要的被準(zhǔn)和登錄處理等后(步驟(2)),對(duì)節(jié)點(diǎn)訪客類46指示開始錯(cuò)誤處理(步驟(3))。
之后,節(jié)點(diǎn)訪客類46把錯(cuò)誤信息傳遞到錯(cuò)誤處理管理構(gòu)件54,委托錯(cuò)誤處理(步驟(4))。
這里,錯(cuò)誤處理管理構(gòu)件54根據(jù)從節(jié)點(diǎn)訪客類46傳遞來的錯(cuò)誤信息鑒定必要的錯(cuò)誤處理后(步驟(5)),向可執(zhí)行該鑒定的錯(cuò)誤處理的錯(cuò)誤處理類55委托錯(cuò)誤處理(步驟(6))。
最后,委托了錯(cuò)誤處理的錯(cuò)誤處理類55執(zhí)行錯(cuò)誤處理(步驟(7)),返回其結(jié)果(“處理完成”、“未處理”、“產(chǎn)生新錯(cuò)誤”等)(步驟(8))。
(具體例)接著根據(jù)圖25和圖26說明圖24所示的錯(cuò)誤處理機(jī)構(gòu)14的具體例。圖25是與對(duì)象間構(gòu)造機(jī)構(gòu)、處理執(zhí)行機(jī)構(gòu)、功能擴(kuò)展機(jī)構(gòu)和錯(cuò)誤處理機(jī)構(gòu)一起表示會(huì)計(jì)發(fā)票數(shù)據(jù)登錄處理系統(tǒng)用框架的類圖,圖26是表示圖25所示的框架執(zhí)行時(shí)的對(duì)象間構(gòu)造的圖。
下面說明在圖25和圖26所示框架中通過數(shù)據(jù)分類構(gòu)件的節(jié)點(diǎn)產(chǎn)生分類錯(cuò)誤時(shí)的處理流程。
(1)分類節(jié)點(diǎn)訪客對(duì)象訪問具有發(fā)票分類算法對(duì)象的數(shù)據(jù)分類構(gòu)件的節(jié)點(diǎn)(發(fā)票數(shù)據(jù)分類對(duì)象)。
(2)數(shù)據(jù)分類算法對(duì)象的處理失敗時(shí),數(shù)據(jù)分類構(gòu)件的節(jié)點(diǎn)(發(fā)票數(shù)據(jù)分類對(duì)象)把錯(cuò)誤(數(shù)據(jù)分類錯(cuò)誤)返回分類節(jié)點(diǎn)訪客對(duì)象。
(3)分類節(jié)點(diǎn)訪客對(duì)象把錯(cuò)誤返回?cái)?shù)據(jù)處理行人對(duì)象。
(4)數(shù)據(jù)處理行人對(duì)象把錯(cuò)誤發(fā)生的事實(shí)作為登錄碼記錄下來。
(5)數(shù)據(jù)處理行人對(duì)象向分類節(jié)點(diǎn)訪客對(duì)象指示開始錯(cuò)誤處理。
(6)分類節(jié)點(diǎn)訪客對(duì)象通過getExtension(“錯(cuò)誤處理管理”)方法取得對(duì)數(shù)據(jù)分類構(gòu)件的節(jié)點(diǎn)(發(fā)票數(shù)據(jù)分類對(duì)象)中設(shè)定的錯(cuò)誤處理管理構(gòu)件的參照,對(duì)錯(cuò)誤處理管理構(gòu)件委托錯(cuò)誤處理。
(7)錯(cuò)誤處理管理構(gòu)件從自己具有的錯(cuò)誤處理對(duì)象中鑒定與數(shù)據(jù)分類錯(cuò)誤對(duì)應(yīng)的(即,數(shù)據(jù)分類錯(cuò)誤處理對(duì)象)那個(gè),向其委托處理。
(8)數(shù)據(jù)分類錯(cuò)誤處理對(duì)象執(zhí)行與數(shù)據(jù)分類錯(cuò)誤對(duì)應(yīng)的錯(cuò)誤處理,返回處理完成的結(jié)果。
(9)最后把錯(cuò)誤處理結(jié)果返回分類節(jié)點(diǎn)訪客對(duì)象,結(jié)束該節(jié)點(diǎn)的處理。
(10)數(shù)據(jù)處理行人對(duì)象根據(jù)構(gòu)件(實(shí)節(jié)點(diǎn))的對(duì)象間構(gòu)造繼續(xù)進(jìn)行處理。
(效果)通過圖24所示的錯(cuò)誤處理機(jī)構(gòu)14,錯(cuò)誤處理被定義在從構(gòu)件(實(shí)節(jié)點(diǎn))獨(dú)立的對(duì)象中,因此框架開發(fā)者和應(yīng)用開發(fā)者可簡(jiǎn)單地變更、追加或刪除錯(cuò)誤處理。
(概要)登錄處理、可視化處理等中使用與對(duì)象的處理執(zhí)行有關(guān)的信息。
原來的框架中一般明確地從信息提供者對(duì)象呼叫信息利用者對(duì)象來提供信息。
但是,上述方法中,有下面缺點(diǎn)。即,第一,必須在信息提供者對(duì)象側(cè)進(jìn)行用于信息提供的設(shè)計(jì)。第二,每當(dāng)追加初始的設(shè)計(jì)時(shí)未知的信息利用者對(duì)象時(shí),必須變更信息提供者對(duì)象側(cè)的設(shè)計(jì)。第三,對(duì)每個(gè)信息利用者對(duì)象而言,其呼叫方法不同,因此在信息提供者對(duì)象側(cè),必須具有用于提供配合各方法的信息的碼。
(基本構(gòu)造)本實(shí)施例的上位框架1為解決上述問題,作為通知與隨著對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13等的處理產(chǎn)生的事件相關(guān)的信息的事件通知機(jī)構(gòu)15,提供使用已知為多點(diǎn)傳送(Multicast)的方法(參考文獻(xiàn)5“Vlissides.Pattern HatchingDesignPatterns Applied.USAAddison-Wesley.”)的事件通知機(jī)構(gòu)15。
圖27是表示事件通知機(jī)構(gòu)15的基本構(gòu)造的類圖。如圖27所示,事件通知機(jī)構(gòu)15具有向信息利用者對(duì)象58的每一個(gè)通知事件發(fā)生并提供信息的信息提供者對(duì)象56、接收來自信息提供者對(duì)象56的通知的事件通知接口57。通過安裝事件通知接口57,定義信息利用者對(duì)象58。信息提供者對(duì)象56具有登錄信息利用者對(duì)象的addReceiver方法和抹除信息利用者對(duì)象的登錄的removeReceiver方法。事件通知接口57具有通知信息利用者對(duì)象58產(chǎn)生的事件的eventFired方法的定義。
圖27所示的事件通知機(jī)構(gòu)15中,信息提供者對(duì)象56通過addReceiver方法事前登錄各信息利用者對(duì)象58后,經(jīng)事件通知接口57對(duì)各信息利用者對(duì)象58通知事件發(fā)生并提供信息時(shí)(步驟(1)),各信息利用者對(duì)象58經(jīng)事件通知接口57接收來自信息提供者對(duì)象56的通知,利用信息(步驟(2)(3))。
圖28,29,30表示出把圖27所示的事件通知機(jī)構(gòu)15分別用于對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13的每一個(gè)時(shí)的例子。
這里,從對(duì)象間構(gòu)造機(jī)構(gòu)11提供信息時(shí),如圖28所示,對(duì)象間構(gòu)造機(jī)構(gòu)11的節(jié)點(diǎn)類41為信息提供者對(duì)象,從該節(jié)點(diǎn)類41經(jīng)節(jié)點(diǎn)事件通知接口59通知事件的發(fā)生。節(jié)點(diǎn)事件通知接口59具有通知節(jié)點(diǎn)類41產(chǎn)生的事件(“追加子節(jié)點(diǎn)”和“刪除子節(jié)點(diǎn)的”)的方法的定義。
從處理執(zhí)行機(jī)構(gòu)12提供信息時(shí),如圖29所示,處理執(zhí)行機(jī)構(gòu)12的圖形行人類45和節(jié)點(diǎn)訪客類46成為信息提供者對(duì)象,從節(jié)點(diǎn)訪客類46經(jīng)圖形行人事件通知接口60通知事件的發(fā)生,從節(jié)點(diǎn)訪客類46經(jīng)節(jié)點(diǎn)訪客事件通知接口61通知事件的發(fā)生。圖形行人事件通知接口60具有通知圖形行人類45產(chǎn)生的事件(“開始圖形步行”和“結(jié)束圖形步行)的方法的定義。節(jié)點(diǎn)訪客事件通知接口61具有通知節(jié)點(diǎn)訪客類46產(chǎn)生的事件(“要訪問節(jié)點(diǎn)”、“結(jié)束訪問節(jié)點(diǎn)”和“處理錯(cuò)誤”)的方法的定義。錯(cuò)誤處理機(jī)構(gòu)14的錯(cuò)誤處理結(jié)果的通知也經(jīng)這種處理執(zhí)行機(jī)構(gòu)12進(jìn)行。
另外,從功能擴(kuò)展機(jī)構(gòu)13提供信息時(shí),如圖30所示,功能擴(kuò)展機(jī)構(gòu)13的功能擴(kuò)展的對(duì)象51成為信息提供者對(duì)象,從該功能擴(kuò)展的對(duì)象51經(jīng)功能擴(kuò)展事件通知接口62通知事件的發(fā)生。功能擴(kuò)展事件通知接口62具有通知功能擴(kuò)展的對(duì)象51產(chǎn)生的事件(“追加擴(kuò)展功能的”和“刪除擴(kuò)展功能的”)的方法的定義。
(具體例)事件通知機(jī)構(gòu)15與登錄機(jī)構(gòu)16、可視化機(jī)構(gòu)17一起使用。事件通知機(jī)構(gòu)15的具體例與登錄機(jī)構(gòu)16和可視化機(jī)構(gòu)17的構(gòu)成與動(dòng)作一起在后面說明。
(效果)通過圖27所示的事件通知機(jī)構(gòu)15得到如下效果。
(1)信息提供者對(duì)象56不管信息利用者對(duì)象58的種類、設(shè)計(jì)、數(shù)目如何,都用公共方法提供信息,即便追加、變更信息利用者對(duì)象58,也不需要變更信息提供者對(duì)象56側(cè)的設(shè)計(jì)。
(2)框架中有在放置信息提供者對(duì)象56的存儲(chǔ)器空間和放置信息利用者對(duì)象58的存儲(chǔ)器空間不同的情況,此時(shí),如圖31所示,可通過在信息提供者對(duì)象56和信息利用者對(duì)象58之間放置安裝事件通知接口57的遠(yuǎn)程代理(プロキシ)63(參考上述文獻(xiàn)1)來對(duì)應(yīng)。這種特性叫作配置透過性(deployment transparency)。
(概要)原來的框架中一般分別獨(dú)立進(jìn)行登錄處理(記錄與對(duì)象的處理執(zhí)行有關(guān)的登錄碼(登錄信息)的處理),作成登錄碼的信息的取出方式也各不相同。因此在不同的框架之間統(tǒng)一登錄碼的形式不是件容易的事。
(基本構(gòu)造)本實(shí)施例的上位框架1為解決這種問題,根據(jù)對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13經(jīng)事件通知機(jī)構(gòu)15通知的信息,提供記錄與對(duì)象的處理執(zhí)行中有關(guān)的登錄碼(登錄信息)的登錄機(jī)構(gòu)16。作為登錄碼,包含根據(jù)通常從上位框架1的構(gòu)造得到的信息的部分(公共部)和根據(jù)由從上位框架1作成的框架附加的信息的部分(固有部)。
圖32是表示登錄機(jī)構(gòu)16的基本構(gòu)造的類圖。圖32是表示登錄機(jī)構(gòu)16與處理執(zhí)行機(jī)構(gòu)12(圖形行人類45和節(jié)點(diǎn)訪客類46)一起使用時(shí)的例子的圖。如圖32所示,登錄機(jī)構(gòu)16具有安裝圖形行人事件通知接口60和節(jié)點(diǎn)訪客事件通知接口61的公共部登錄構(gòu)件64。在由框架20獨(dú)自追加的登錄處理的情況下,框架開發(fā)者定義安裝圖形行人事件通知接口60和節(jié)點(diǎn)訪客事件通知接口61的具體的固有部登錄構(gòu)件65。
如圖32所示,圖形行人事件通知接口60中,作為輸出框架和應(yīng)用獨(dú)自定義的登錄碼的方法,可追加通知“用戶登錄事件發(fā)生”事件的方法的定義。這種方法的定義可追加到節(jié)點(diǎn)訪客事件通知接口61。
圖32所示的登錄機(jī)構(gòu)16中,可省略公共部登錄構(gòu)件64和固有部登錄構(gòu)件65之中的任何一方。這里,省略公共部登錄構(gòu)件64時(shí),登錄碼的記錄方法由該框架全權(quán)決定。因此,框架開發(fā)者可更自由地設(shè)計(jì)登錄處理。與此相反,省略固有部登錄構(gòu)件65時(shí),上位框架1提供的公共部登錄構(gòu)件64完全進(jìn)行登錄碼的記錄。因此不需要根據(jù)框架固有的信息等追加內(nèi)容時(shí),不需要登錄處理的設(shè)計(jì)。
(具體例)接著說明圖32所示的登錄機(jī)構(gòu)16的具體例。這里,說明從處理執(zhí)行機(jī)構(gòu)12(圖形行人類45和節(jié)點(diǎn)訪客類46)提供信息時(shí)的處理流程。
(1)圖形行人對(duì)象向公共部登錄構(gòu)件和固有部登錄構(gòu)件通知“開始圖形步行”事件。
(2)公共部登錄構(gòu)件把下一個(gè)登錄記錄(公共部)輸出到登錄文件中。
“開始2001/09/01 11:10:05 XXX處理”。
(3)固有部登錄構(gòu)件向登錄文件輸出下一個(gè)登錄記錄(固有部)。
“>>服務(wù)器處理ID0123456”(4)節(jié)點(diǎn)訪客向公共部登錄構(gòu)件和固有部登錄構(gòu)件通知“要訪問節(jié)點(diǎn)”事件。
(5)公共部登錄構(gòu)件把下一個(gè)登錄記錄(公共部)輸出到登錄文件中。
“開始2001/09/01 11:10:06 YYY節(jié)點(diǎn)的處理”。
(6)固有部登錄構(gòu)件向登錄文件輸出下一個(gè)登錄記錄(固有部)。
“>>節(jié)點(diǎn)種類數(shù)據(jù)分類>>數(shù)據(jù)種類發(fā)票數(shù)據(jù)”(7)圖形行人對(duì)象向公共部登錄構(gòu)件和固有部登錄構(gòu)件通知“用戶登錄事件發(fā)生”(表示作成對(duì)應(yīng)框架或應(yīng)用獨(dú)自定義的登錄事件的登錄記錄)。
(8)共部登錄構(gòu)件把框架或應(yīng)用的登錄碼(公共部)輸出到登錄文件中。(該例中,固有部登錄構(gòu)件在“用戶登錄事件發(fā)生”中什么也不輸出)。
“2001/09/01 11:10:08應(yīng)用初始設(shè)定讀入完成。
初始設(shè)定文件名my_init.conf”。
(9)下面繼續(xù)同樣的處理。
(效果)通過圖32所示的登錄機(jī)構(gòu)16得到如下效果。
(1)可按統(tǒng)一形式取出登錄處理(與對(duì)象的處理的執(zhí)行有關(guān)的登錄記錄(登錄信息))。
(2)把進(jìn)行登錄處理的構(gòu)件分給公共部登錄構(gòu)件64和固有部登錄構(gòu)件65,因此對(duì)于框架公共的登錄處理的設(shè)計(jì)和安裝等,不需要對(duì)每個(gè)框架作成,可將開發(fā)成本設(shè)為最小限度。
(3)由于作為獨(dú)立的機(jī)構(gòu)安裝登錄處理,框架開發(fā)者和應(yīng)用開發(fā)者容易變更、追加、刪除登錄處理。
(4)通過將多個(gè)登錄構(gòu)件作為信息利用者對(duì)象登錄,可同時(shí)實(shí)現(xiàn)多個(gè)登錄處理。
(概要)像框架那樣,由利用其的應(yīng)用開發(fā)者使用內(nèi)部處理的細(xì)節(jié)未必知道的設(shè)計(jì)和安裝等的程序通常難以調(diào)試。這是由于程序的控制在框架的碼和應(yīng)用開發(fā)者獨(dú)自作成的碼之間急進(jìn)急出,并且并不清楚框架碼內(nèi)的處理狀況的緣故。
(基本構(gòu)造)本實(shí)施例的上位框架1為解決這個(gè)問題,根據(jù)經(jīng)事件通知機(jī)構(gòu)15從對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13通知的信息,把與對(duì)象間構(gòu)造有關(guān)的信息和與對(duì)象的處理的執(zhí)行有關(guān)的信息經(jīng)圖形用戶界面(GUI)提供給可視化的可視化機(jī)構(gòu)17。作為可視化的信息,包含根據(jù)通常從上位框架1的構(gòu)造得到的信息的部分(公共部)和根據(jù)由上位框架1作成的框架附加的信息的部分(固有部)。這種可視化處理,在應(yīng)用不動(dòng)作的非執(zhí)行中進(jìn)行,也在應(yīng)用動(dòng)作的執(zhí)行中進(jìn)行。在動(dòng)作的非執(zhí)行中進(jìn)行的可視化處理中,進(jìn)行對(duì)象間構(gòu)造和節(jié)點(diǎn)信息的閱覽、從應(yīng)用獨(dú)立的狀態(tài)的處理的執(zhí)行的試運(yùn)行。另一方面,應(yīng)用執(zhí)行中進(jìn)行的可視化處理中,除與對(duì)象間構(gòu)造有關(guān)的信息和與節(jié)點(diǎn)有關(guān)的信息的閱覽外,還進(jìn)行與應(yīng)用的動(dòng)作一致的處理的執(zhí)行監(jiān)視和上下文的操作。所謂上下文信息是包含對(duì)處理執(zhí)行機(jī)構(gòu)12提供的數(shù)據(jù)(例如發(fā)票數(shù)據(jù))等的信息。
圖33和圖34是分別表示可視化機(jī)構(gòu)17中實(shí)現(xiàn)應(yīng)用非執(zhí)行中進(jìn)行的可視化處理的部分和實(shí)現(xiàn)執(zhí)行中進(jìn)行的可視化處理部分的基本構(gòu)造的類圖。
這里,如圖33所示,可視化機(jī)構(gòu)17作為實(shí)現(xiàn)應(yīng)用的非執(zhí)行中進(jìn)行的可視化處理的機(jī)構(gòu),具有有向圖形顯示構(gòu)件66、公共節(jié)點(diǎn)信息顯示構(gòu)件67和框架固有節(jié)點(diǎn)信息顯示構(gòu)件68。
有向圖形顯示構(gòu)件66顯示與規(guī)定為有向圖形構(gòu)造的對(duì)象間構(gòu)造有關(guān)的信息,也構(gòu)筑圖35和圖36所示的顯示畫面72的顯示部73。
公共節(jié)點(diǎn)信息顯示構(gòu)件67顯示與節(jié)點(diǎn)相關(guān)的信息中上位框架1公有的信息,并構(gòu)筑圖35和圖36所示的顯示畫面72中的顯示部74或顯示部75。
框架固有節(jié)點(diǎn)信息顯示構(gòu)件68顯示與節(jié)點(diǎn)相關(guān)的信息中對(duì)框架特定的信息,構(gòu)筑圖35和圖36所示的顯示畫面72中的顯示部74或顯示部76。
如圖34所示,可視化機(jī)構(gòu)17作為實(shí)現(xiàn)應(yīng)用的執(zhí)行中進(jìn)行的可視化處理的機(jī)構(gòu),具有處理開始按鈕顯示構(gòu)件69、處理繼續(xù)進(jìn)行按鈕顯示構(gòu)件70和上下文顯示構(gòu)件71。
處理開始按鈕顯示構(gòu)件69安裝圖形行人事件通知接口60和節(jié)點(diǎn)訪客對(duì)象事件通知接口61,對(duì)框架指示處理執(zhí)行開始。
處理繼續(xù)進(jìn)行按鈕顯示構(gòu)件70安裝圖形行人事件通知接口60和節(jié)點(diǎn)訪客對(duì)象事件通知接口61,對(duì)框架指示處理執(zhí)行繼續(xù)。
上下文顯示構(gòu)件71在應(yīng)用執(zhí)行中顯示上下文信息。
(具體例)接著通過圖35到圖39說明圖34所示的可視化機(jī)構(gòu)17的具體例。
圖35是表示應(yīng)用執(zhí)行中和非執(zhí)行中使用的顯示畫面的一例的圖。如圖35所示,顯示畫面72上有顯示與對(duì)象間構(gòu)造有關(guān)的信息的顯示部73、顯示與顯示部73選擇的節(jié)點(diǎn)有關(guān)的信息的顯示部74。
這里顯示部73中,在有向圖形顯示構(gòu)件66的控制下,對(duì)象間構(gòu)造作為有向圖形構(gòu)造被可視化地顯示,這種有向圖形構(gòu)造中,通過選擇一個(gè)以上的節(jié)點(diǎn)(圖35中選擇的節(jié)點(diǎn)用粗線框包圍),與該選擇的節(jié)點(diǎn)有關(guān)的信息在公共節(jié)點(diǎn)信息顯示構(gòu)件67和框架固有節(jié)點(diǎn)信息顯示構(gòu)件68的控制下在顯示部74顯示。圖35中,1個(gè)顯示部74中,簡(jiǎn)略表示與節(jié)點(diǎn)有關(guān)的信息中上位框架公共的信息和對(duì)框架特定的信息,但如圖36所示,可設(shè)置2個(gè)顯示部(顯示部75和顯示部76),其中在顯示部75中一覽顯示上位框架公共的信息(從對(duì)象間構(gòu)造機(jī)構(gòu)11和功能擴(kuò)展機(jī)構(gòu)13得到的信息),同時(shí)在顯示部76中顯示對(duì)框架特定的信息(設(shè)定為框架固有的類的信息)。
該顯示畫面72中,還可顯示與應(yīng)用的執(zhí)行中對(duì)象的處理的執(zhí)行有關(guān)的信息。此時(shí),顯示部73中,在作為有向圖形構(gòu)造顯示的對(duì)象間構(gòu)造中,順序選擇顯示當(dāng)前執(zhí)行中的節(jié)點(diǎn),與當(dāng)前執(zhí)行中的節(jié)點(diǎn)相關(guān)的信息顯示在顯示部74中。
圖37和圖38是表示應(yīng)用執(zhí)行中顯示的按鈕顯示畫面的一例的圖,其中圖37表示由處理開始按鈕顯示構(gòu)件69顯示的處理開始按鈕顯示畫面77,圖38表示由處理繼續(xù)進(jìn)行按鈕顯示構(gòu)件70顯示的處理繼續(xù)進(jìn)行按鈕顯示畫面80。處理開始按鈕顯示畫面77和處理繼續(xù)進(jìn)行按鈕顯示畫面80分別具有處理開始按鈕78或處理繼續(xù)進(jìn)行按鈕81,用戶可以控制處理的開始或繼續(xù)進(jìn)行的定時(shí)。
這里,框架的處理的執(zhí)行由處理執(zhí)行機(jī)構(gòu)12進(jìn)行時(shí),圖34所示構(gòu)成中,由節(jié)點(diǎn)訪客類45進(jìn)行構(gòu)件(實(shí)節(jié)點(diǎn))間的移動(dòng),之后,節(jié)點(diǎn)訪客類46進(jìn)行構(gòu)件(實(shí)節(jié)點(diǎn))的處理。此時(shí),處理開始按鈕顯示構(gòu)件69和處理繼續(xù)進(jìn)行按鈕顯示構(gòu)件70中,設(shè)計(jì)為框架的處理,一直停止到與經(jīng)圖形行人事件通知接口60和節(jié)點(diǎn)訪客事件通知接口61通知的事件接受有關(guān)的處理完成,壓下處理開始按鈕78或處理繼續(xù)進(jìn)行按鈕81時(shí),框架的處理開始或繼續(xù)進(jìn)行。
這種構(gòu)成中,節(jié)點(diǎn)訪客類45完成構(gòu)件(實(shí)節(jié)點(diǎn))間的移動(dòng)時(shí),節(jié)點(diǎn)訪客類46開始構(gòu)件(實(shí)節(jié)點(diǎn))的處理之前,顯示圖37所示的處理開始按鈕顯示畫面77。
這種狀態(tài)下,處理開始按鈕顯示畫面77中,用戶壓下處理開始按鈕78時(shí),處理執(zhí)行機(jī)構(gòu)12的節(jié)點(diǎn)訪客類46開始構(gòu)件(實(shí)節(jié)點(diǎn))的處理,其完成之后,顯示圖38所示的處理繼續(xù)進(jìn)行按鈕顯示畫面80。
之后,在處理繼續(xù)進(jìn)行按鈕顯示畫面80中,當(dāng)用戶按下處理繼續(xù)進(jìn)行按鈕81時(shí),通過處理執(zhí)行機(jī)構(gòu)12的圖形行人類45,向下一構(gòu)件(實(shí)節(jié)點(diǎn))移動(dòng),在移動(dòng)完成時(shí)刻,顯示圖37所示處理開始按鈕顯示畫面77。
處理開始按鈕顯示畫面77和處理繼續(xù)進(jìn)行按鈕顯示畫面80中,與處理開始按鈕79或處理繼續(xù)進(jìn)行按鈕81一起,設(shè)置顯示部79,82,一起顯示此時(shí)產(chǎn)生的錯(cuò)誤信息(例如“錯(cuò)誤(發(fā)票分類錯(cuò)誤)產(chǎn)生”)或錯(cuò)誤處理完成信息(例如處理“錯(cuò)誤(發(fā)票分類錯(cuò)誤)”)。
圖39是表示應(yīng)用執(zhí)行中顯示的上下文顯示畫面的一例的圖。如圖39所示,上下文顯示畫面83由上下文顯示構(gòu)件71(參考圖34)顯示,并可顯示執(zhí)行中的上下文信息。這種上下文顯示畫面83中,如圖40所示,通過用戶指定可更換上下文信息。
(效果)通過圖33和圖34所示的可視化機(jī)構(gòu)17得到如下效果。
(1)應(yīng)用執(zhí)行中可閱覽與對(duì)象間構(gòu)造和節(jié)點(diǎn)等相關(guān)的信息,因此容易確認(rèn)是否正確進(jìn)行框架的初始化和設(shè)定(配置)。
(2)可實(shí)時(shí)地把握應(yīng)用和框架的動(dòng)作,從而容易進(jìn)行調(diào)試和執(zhí)行分析等。
(3)幾乎不變更應(yīng)用和框架的設(shè)計(jì),可實(shí)現(xiàn)可視化處理。
(4)用于進(jìn)行可視化處理的構(gòu)件分為公共部節(jié)點(diǎn)信息顯示構(gòu)件67和框架固有節(jié)點(diǎn)信息顯示構(gòu)件68,不必要對(duì)每個(gè)框架作成框架公共的可視化處理的設(shè)計(jì)和安裝等,從而可將開發(fā)成本降低到最小限度。
(概要)利用上位框架1作成的框架的特征可由下面的(1)~(5)中組合與該框架利用的機(jī)構(gòu)對(duì)應(yīng)的那些來記述。這種記述叫作框架定義信息。
(1)與對(duì)象間構(gòu)造機(jī)構(gòu)11相關(guān),框架準(zhǔn)備的構(gòu)件的定義(2)與處理執(zhí)行機(jī)構(gòu)12相關(guān),框架準(zhǔn)備的圖形行人類和節(jié)點(diǎn)訪客類的定義以及這些構(gòu)件(實(shí)節(jié)點(diǎn))的定義的對(duì)應(yīng)關(guān)系(3)與功能擴(kuò)展機(jī)構(gòu)13相關(guān),框架準(zhǔn)備的擴(kuò)展功能類的定義和其構(gòu)件(實(shí)節(jié)點(diǎn))的定義的對(duì)應(yīng)關(guān)系(4)與錯(cuò)誤處理機(jī)構(gòu)14相關(guān),框架準(zhǔn)備的錯(cuò)誤處理管理構(gòu)件和錯(cuò)誤處理類的定義(5)與登錄機(jī)構(gòu)16相關(guān),框架準(zhǔn)備的固有部登錄構(gòu)件的定義如上所述,利用由框架定義信息定義的框架的應(yīng)用中,每當(dāng)執(zhí)行處理時(shí),需要進(jìn)行框架中包含的各機(jī)構(gòu)的初始化和設(shè)定(配置),并構(gòu)筑對(duì)象間構(gòu)造實(shí)體。對(duì)象間構(gòu)造在框架定義信息的范圍內(nèi)與應(yīng)用的處理內(nèi)容一致被決定,但此時(shí),需要準(zhǔn)備面向各個(gè)應(yīng)用的多個(gè)對(duì)象間構(gòu)造,或?qū)?yīng)1個(gè)應(yīng)用規(guī)格(處理內(nèi)容)的變更迅速更換對(duì)象間構(gòu)造。
(基本構(gòu)造)本實(shí)施例的上位框架1為解決上述問題,提供具有進(jìn)行對(duì)象間構(gòu)造機(jī)構(gòu)11、處理執(zhí)行機(jī)構(gòu)12和功能擴(kuò)展機(jī)構(gòu)13、錯(cuò)誤處理機(jī)構(gòu)14和登錄機(jī)構(gòu)16的初始化和設(shè)定(配置)的工廠85的配置機(jī)構(gòu)18。
圖41是表示配置機(jī)構(gòu)18的基本構(gòu)造的圖。如圖41所示,配置機(jī)構(gòu)18具有工廠85,讀入記述框架利用的機(jī)構(gòu)的種類和它們的關(guān)系的框架定義信息86、和記述利用框架作成的應(yīng)用的對(duì)象間構(gòu)造的腳本(script)信息87(步驟(1)),根據(jù)這些信息構(gòu)筑應(yīng)用使用的對(duì)象間構(gòu)造實(shí)體88(步驟(2))。
此時(shí),工廠85把邊解釋腳本(script)信息87邊進(jìn)行的配置的結(jié)果作為緩存信息89存儲(chǔ)。由此,如圖42所示對(duì)應(yīng)提供的框架定義信息86或腳本信息87的最初的配置后,僅讀入緩存信息89(步驟(1)),可再構(gòu)筑對(duì)象間構(gòu)造實(shí)體88(步驟(2)),大大縮短對(duì)象間構(gòu)造實(shí)體88的構(gòu)筑的處理時(shí)間。例如Java(商標(biāo))中,對(duì)這樣構(gòu)筑的對(duì)象間構(gòu)造實(shí)體88,通過“串行化(serialize)”等功能進(jìn)行緩存。工廠85在更新框架定義信息86和腳本信息87后的最初的配置中,將緩存信息89視為無效并廢棄,再次邊解釋框架定義信息86和腳本信息87邊進(jìn)行配置,作成新的緩存信息89。
框架定義信息86和腳本信息87可按文件和程序模塊等形式準(zhǔn)備。對(duì)于框架定義信息86,在工廠85中可記述為編碼。
(具體例)接著通過圖43到圖47說明圖41和42所示的配置機(jī)構(gòu)18的具體例。
圖43是表示成為配置對(duì)象的框架90的構(gòu)成的類圖,圖44是表示與圖43所示的框架90對(duì)應(yīng)的框架定義信息91的圖。圖44所示的框架定義信息91由框架開發(fā)者作成,與框架一起傳遞給應(yīng)用開發(fā)者,應(yīng)用開發(fā)者本人不需要看到該內(nèi)容。
這里,作為與圖43所示的框架90對(duì)應(yīng)的對(duì)象間構(gòu)造,假定圖45(a)(b)所示的2種對(duì)象間構(gòu)造時(shí),記述這2種對(duì)象間構(gòu)造的腳本信息的一例如圖46所示。圖46中,符號(hào)(A)的部分中記述與圖45(a)對(duì)應(yīng)的定義,符號(hào)(B)的部分中記述與圖45(b)對(duì)應(yīng)的定義。圖46所示腳本信息92由應(yīng)用開發(fā)者作成,與應(yīng)用的安裝一起傳遞給用戶,用戶本人不需要看到該內(nèi)容。
圖47是表示根據(jù)圖44所示的框架定義信息91和圖46所示的腳本信息92構(gòu)筑的對(duì)象間構(gòu)造的一例的圖。
(效果)圖41和42所示配置機(jī)構(gòu)18得到如下效果。
(1)通過腳本信息的變更可對(duì)應(yīng)對(duì)象間構(gòu)造的變更,因此可不進(jìn)行編碼和編譯等,可準(zhǔn)備面向各種應(yīng)用的多個(gè)對(duì)象間構(gòu)造,或可對(duì)應(yīng)1個(gè)應(yīng)用的規(guī)格(處理內(nèi)容)的變更迅速更換對(duì)象間構(gòu)造。
(2)根據(jù)腳本信息進(jìn)行配置,因此與根據(jù)編碼等的情況相比,可大幅度降低配置成本。
(3)按文件等形式作為外部信息源提供框架定義信息,或把腳本信息的形式公用化時(shí),可公用工廠,不需要對(duì)每個(gè)框架作成工廠。
(4)公共化工廠時(shí),提供的框架和根據(jù)其構(gòu)筑的對(duì)象間構(gòu)造通過改換框架定義信息和腳本信息,可由作為框架的利用者的應(yīng)用開發(fā)者和用戶自由更換。此時(shí),框架和對(duì)象間構(gòu)造叫作反射性的(reflective)(參考文獻(xiàn)6“Reflection”Buschmann(著)出自“Pattern Languages of Program Design 2”Vlissides等(編)USAAddison-Wesley)。
這樣根據(jù)本實(shí)施例,可容易且高效地開發(fā)適合于開發(fā)應(yīng)用的高品質(zhì)的框架,即框架間的相互運(yùn)用性、擴(kuò)展性和附加價(jià)值等高的框架。
更具體說,得到如下效果。
(1)開發(fā)成本降低和品質(zhì)提高不需要在各個(gè)框架20的開發(fā)中新設(shè)置多種框架公共的處理,因此框架開發(fā)者可集中于構(gòu)件的設(shè)計(jì)和安裝等。從而提高開發(fā)效率和維修性等,實(shí)現(xiàn)開發(fā)成本降低和品質(zhì)提高。
(2)擴(kuò)展性提高通過擴(kuò)展上位框架1的安裝,可在利用其作成的全部框架20中反映該擴(kuò)展。在各個(gè)框架20中,通過功能擴(kuò)展機(jī)構(gòu)13容易進(jìn)行功能擴(kuò)展。
(3)抑制框架的利用成本對(duì)于上位框架1提供的功能等,適用于利用其作成的全部框架20,因此框架20的功能等的學(xué)習(xí)中能夠以其自身提供的功能等為中心進(jìn)行。
(4)再利用性提高由上位框架1按同一形式定義各機(jī)構(gòu),因此應(yīng)用開發(fā)者對(duì)某個(gè)框架準(zhǔn)備的構(gòu)件容易組裝到其他框架中。
(5)框架間的相互連接性的獲得上位框架1中一起設(shè)置對(duì)象間構(gòu)造機(jī)構(gòu)11、事件通知機(jī)構(gòu)15等。不同的框架20的對(duì)象之間的相互連接容易進(jìn)行。因此用于框架20間的連接的設(shè)計(jì)和安裝等不重新進(jìn)行,滿足多個(gè)功能要件的1個(gè)應(yīng)用30中可直接組合各個(gè)框架20。
(6)附加價(jià)值的獲得個(gè)別的框架開發(fā)中,成本不劃算的機(jī)構(gòu)(例如可視化機(jī)構(gòu)17等)也作為上位框架1提供時(shí),可按相對(duì)低的成本實(shí)現(xiàn)。因此,利用這種上位框架1作成的框架20獲得高的附加價(jià)值。
(7)相乘價(jià)值的提高上位框架1上設(shè)置的登錄機(jī)構(gòu)16和可視化機(jī)構(gòu)17統(tǒng)一了多個(gè)框架20的登錄處理和可視化處理的結(jié)果的形式,因此可按將它們統(tǒng)一的形式進(jìn)行信息分析。
(8)特征的選擇上位框架1設(shè)置的機(jī)構(gòu)11~18中僅選擇使用必要的,從而可控制伴隨框架20的開發(fā)和維修等的成本。
(9)調(diào)試等容易上位框架1上設(shè)置登錄機(jī)構(gòu)16和可視化機(jī)構(gòu)17,因此應(yīng)用開發(fā)者容易得到關(guān)于框架20的處理執(zhí)行的詳細(xì)信息,與原來的框架相比,容易進(jìn)行調(diào)試和執(zhí)行分析等。
上述實(shí)施例中,以利用上位框架1開發(fā)事務(wù)處理系統(tǒng)的框架20的情況為例進(jìn)行了說明,但不限于此,也適用于開發(fā)面向組裝設(shè)備框架等的任意框架的情況。
上述實(shí)施例中,上位框架1、框架20和應(yīng)用30任一個(gè)都安裝在圖48所示的計(jì)算機(jī)系統(tǒng)100上,計(jì)算機(jī)101中,根據(jù)上述順序,由上位框架1作成框架20,由框架20作成應(yīng)用30。這里,計(jì)算機(jī)系統(tǒng)100除計(jì)算機(jī)101外,還備有CRT等的顯示裝置102、打印機(jī)103、鍵盤和鼠標(biāo)等的輸入裝置104、FD驅(qū)動(dòng)器105和CD-ROM驅(qū)動(dòng)器106等各種外圍設(shè)備。上述的上位框架1、框架20和應(yīng)用30可存儲(chǔ)在軟盤107、CD-ROM108等的計(jì)算機(jī)可讀記錄媒體中。
作為本發(fā)明的記錄媒體,不限于軟盤、CD-ROM,像磁盤、內(nèi)部存儲(chǔ)器、硬盤、光盤(CD-R、DVD(數(shù)字多能盤)等)、磁光盤(MO(Magneto Optical)等)、半導(dǎo)體存儲(chǔ)器等,可記錄上位框架等,并且只要是計(jì)算機(jī)可讀的記錄媒體,其記錄形式是任何形式都行。作為記錄媒體,也包含網(wǎng)絡(luò)上傳輸時(shí)的載波、信息傳遞媒體。
本發(fā)明的記錄媒體,不限于和計(jì)算機(jī)獨(dú)立的媒體,也包含下載通過LAN、互聯(lián)網(wǎng)等傳輸?shù)某绦虿⒋鎯?chǔ)或暫時(shí)存儲(chǔ)的記錄媒體。
記錄媒體不限于1個(gè),本發(fā)明的記錄媒體中也包含從多個(gè)媒體執(zhí)行本發(fā)明的處理的情況,任一媒體構(gòu)成都無妨。
發(fā)明效果如以上說明,根據(jù)本發(fā)明,可容易且高效地開發(fā)適合于開發(fā)應(yīng)用程序的高品質(zhì)的應(yīng)用框架,即應(yīng)用框架間的相互運(yùn)用性、擴(kuò)展性和附加價(jià)值等高的應(yīng)用框架。
權(quán)利要求
1.一種作成應(yīng)用框架的上位框架,其特征在于包括具有用于將對(duì)象間構(gòu)造規(guī)定為圖形構(gòu)造的類構(gòu)造的對(duì)象間構(gòu)造機(jī)構(gòu);具有用于進(jìn)行對(duì)象間移動(dòng)和進(jìn)行對(duì)象的處理執(zhí)行的類構(gòu)造的處理執(zhí)行機(jī)構(gòu),通過將上述上位框架的上述對(duì)象間構(gòu)造機(jī)構(gòu)和上述處理執(zhí)行機(jī)構(gòu)中包含的對(duì)象直接地或以邊對(duì)其擴(kuò)展邊組合的方式來定義構(gòu)件、并作成應(yīng)用框架的步驟。
2.如權(quán)利要求1所述的上位框架,其特征在于還具有對(duì)對(duì)象追加新的功能的功能擴(kuò)展機(jī)構(gòu),作成上述應(yīng)用框架時(shí),通過將上述功能擴(kuò)展機(jī)構(gòu)包含的對(duì)象直接地或邊對(duì)其擴(kuò)展邊組合的方式來定義構(gòu)件。
3.如權(quán)利要求1或2所述的上位框架,其特征在于還具有對(duì)隨著對(duì)象的處理的執(zhí)行產(chǎn)生的錯(cuò)誤執(zhí)行錯(cuò)誤處理的錯(cuò)誤處理機(jī)構(gòu)。
4.如權(quán)利要求1到3中的任意一個(gè)所述的上位框架,其特征在于還具有通知與隨著上述各機(jī)構(gòu)的處理產(chǎn)生的事件相關(guān)的信息的事件通知機(jī)構(gòu)、根據(jù)經(jīng)該事件通知機(jī)構(gòu)通知的信息,記錄對(duì)象的處理的執(zhí)行有關(guān)的登錄信息的登錄機(jī)構(gòu)。
5.如權(quán)利要求1到3之中的任意一個(gè)所述的上位框架,其特征在于還具有通知與隨著上述各機(jī)構(gòu)的處理產(chǎn)生的事件相關(guān)的信息的事件通知機(jī)構(gòu)、根據(jù)經(jīng)該事件通知機(jī)構(gòu)通知的信息,將對(duì)象間構(gòu)造有關(guān)的信息和與對(duì)象的處理的執(zhí)行有關(guān)的信息中的至少一個(gè)進(jìn)行可視化的可視化機(jī)構(gòu)。
6.如權(quán)利要求1到5之中的任意一個(gè)所述的上位框架,其特征在于還具有進(jìn)行上述各機(jī)構(gòu)的初始化和設(shè)定的配置機(jī)構(gòu)。
全文摘要
提供可容易且有效地開發(fā)適合于開發(fā)應(yīng)用軟件的高品質(zhì)的框架(framework)的、利用上位框架的應(yīng)用框架的開發(fā)方法。首先,準(zhǔn)備上述具有對(duì)象間構(gòu)造機(jī)構(gòu)(11)、處理執(zhí)行機(jī)構(gòu)(12)、功能擴(kuò)展機(jī)構(gòu)(13)、錯(cuò)誤處理機(jī)構(gòu)(14)、事件通知機(jī)構(gòu)(15)、登錄機(jī)構(gòu)(16)、可視化機(jī)構(gòu)(17)和配置機(jī)構(gòu)(18)的上位框架(1)。接著,框架開發(fā)者根據(jù)成為開發(fā)對(duì)象的框架(20)的設(shè)計(jì)方針等,通過將上位框架(1)的對(duì)象間構(gòu)造機(jī)構(gòu)(11)、處理執(zhí)行機(jī)構(gòu)(12)、功能擴(kuò)展機(jī)構(gòu)(13)、錯(cuò)誤處理機(jī)構(gòu)(14)、事件通知機(jī)構(gòu)(15)、登錄機(jī)構(gòu)(16)、可視化機(jī)構(gòu)(17)和配置機(jī)構(gòu)(18)中包含的對(duì)象直接或以對(duì)其邊擴(kuò)展邊組合的方式來定義構(gòu)件,作成框架(20)。
文檔編號(hào)G06F9/06GK1696897SQ20051007636
公開日2005年11月16日 申請(qǐng)日期2003年3月7日 優(yōu)先權(quán)日2002年3月11日
發(fā)明者細(xì)谷竜一 申請(qǐng)人:株式會(huì)社東芝