一種軟件項(xiàng)目開發(fā)方法及裝置制造方法
【專利摘要】本申請(qǐng)公開了一種軟件開發(fā)方法及裝置,應(yīng)用于軟件開發(fā)平臺(tái),所述軟件開發(fā)平臺(tái)設(shè)置有能夠建立功能模型的功能模型模版,所述方法包括獲取配置文件,所述配置文件包括目標(biāo)開發(fā)項(xiàng)目的標(biāo)題配置信息、頁面布局配置信息、業(yè)務(wù)邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外部資源配置信息;在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型;其中,所述功能模型包括標(biāo)題項(xiàng)、頁面布局項(xiàng)、業(yè)務(wù)邏輯項(xiàng)、數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù)據(jù)源關(guān)系項(xiàng)、工具欄項(xiàng)及外部資源項(xiàng);運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目。
【專利說明】一種軟件項(xiàng)目開發(fā)方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及軟件開發(fā)【技術(shù)領(lǐng)域】,特別涉及一種軟件項(xiàng)目開發(fā)方法及裝置。
【背景技術(shù)】
[0002] 目前,客戶化軟件應(yīng)用項(xiàng)目由于其業(yè)務(wù)功能點(diǎn)多、需求多變等特點(diǎn),要求軟件項(xiàng)目 的開發(fā)周期短于普通軟件項(xiàng)目,使得客戶化軟件項(xiàng)目的開發(fā)任務(wù)較緊。在實(shí)施軟件項(xiàng)目 的開發(fā)時(shí),項(xiàng)目團(tuán)隊(duì)通常會(huì)采用現(xiàn)有較為成熟的技術(shù)框架或架構(gòu)來代替加班或增加人工 成本的方案,來縮短項(xiàng)目開發(fā)周期、降低項(xiàng)目開發(fā)的成本,而常用的技術(shù)框架包括struts、 spring或hibernate等技術(shù)框架。
[0003] 但上述采用技術(shù)框架縮短開發(fā)周期的方案,需要項(xiàng)目開發(fā)技術(shù)人員掌握對(duì)應(yīng)的技 術(shù)框架的應(yīng)用開發(fā)技能,需要特定的架構(gòu)師完成對(duì)技術(shù)架構(gòu)的整體設(shè)計(jì),還需要在項(xiàng)目開 發(fā)完成之后,還需要考慮本項(xiàng)目的開發(fā)成果如何在其他各種業(yè)務(wù)場(chǎng)景復(fù)用性應(yīng)用,由此不 僅增加了軟件項(xiàng)目開發(fā)的人工成本,在一定程度上增加了軟件項(xiàng)目開發(fā)流程,甚至延長(zhǎng)項(xiàng) 目的開發(fā)周期。
【發(fā)明內(nèi)容】
[0004] 本申請(qǐng)所要解決的技術(shù)問題是提供一種軟件開發(fā)方法及裝置,用以解決現(xiàn)有軟件 項(xiàng)目開發(fā)過程中開發(fā)成本高、開發(fā)周期長(zhǎng)的技術(shù)問題。
[0005] 本申請(qǐng)?zhí)峁┝艘环N軟件開發(fā)方法,應(yīng)用于軟件開發(fā)平臺(tái),所述軟件開發(fā)平臺(tái)設(shè)置 有能夠建立功能模型的功能模型模版,所述方法包括:
[0006] 獲取配置文件,所述配置文件包括目標(biāo)開發(fā)項(xiàng)目的標(biāo)題配置信息、頁面布局配置 信息、業(yè)務(wù)邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信 息及外部資源配置信息;
[0007] 在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型;
[0008] 其中,所述功能模型包括標(biāo)題項(xiàng)、頁面布局項(xiàng)、業(yè)務(wù)邏輯項(xiàng)、數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù) 據(jù)源關(guān)系項(xiàng)、工具欄項(xiàng)及外部資源項(xiàng);
[0009] 運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng) 目。
[0010] 上述方法,優(yōu)選的,所述在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功 能模型,包括:
[0011] 在所述軟件開發(fā)平臺(tái)中建立一個(gè)與所述配置文件的文件名稱相對(duì)應(yīng)的功能模型 對(duì)象;
[0012] 根據(jù)所述配置文件中的業(yè)務(wù)邏輯配置信息項(xiàng),設(shè)置所述功能模型對(duì)象中所要加載 并調(diào)用的業(yè)務(wù)邏輯實(shí)現(xiàn)類名稱;
[0013] 根據(jù)所述配置文件中頁面布局配置信息,設(shè)置所述功能模型對(duì)象中所要加載并調(diào) 用的頁面布局類和風(fēng)格構(gòu)造類名稱,并依據(jù)所述工具欄配置信息,設(shè)置所述功能模型對(duì)象 中所要加載并調(diào)用的工具條及按鈕構(gòu)造類名稱;
[0014] 根據(jù)所述配置文件中數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息及外部資源 配置信息,依次設(shè)置所述功能模型對(duì)象中的數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù)據(jù)源關(guān)系項(xiàng)及外部資源 項(xiàng)。
[0015] 上述方法,優(yōu)選的,在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模 型之后,在所述運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo) 開發(fā)項(xiàng)目之前,所述方法還包括:
[0016] 將存儲(chǔ)于預(yù)設(shè)服務(wù)器的軟件開發(fā)平臺(tái)加載至應(yīng)用中間件。
[0017] 上述方法,優(yōu)選的,所述將存儲(chǔ)于預(yù)設(shè)服務(wù)器的軟件開發(fā)平臺(tái)加載至應(yīng)用中間件 中,包括:
[0018] 接收項(xiàng)目調(diào)用請(qǐng)求,所述項(xiàng)目調(diào)用請(qǐng)求包括所述軟件開發(fā)平臺(tái)中的目標(biāo)開發(fā)項(xiàng)目 的功能模型參數(shù);
[0019] 依據(jù)所述功能模型參數(shù),讀取所述目標(biāo)開發(fā)項(xiàng)目的功能模型對(duì)象,由所述功能模 型對(duì)象調(diào)用其內(nèi)部的業(yè)務(wù)邏輯類執(zhí)行其業(yè)務(wù)邏輯方法;
[0020] 依據(jù)所述業(yè)務(wù)邏輯類的調(diào)用結(jié)果,啟動(dòng)應(yīng)用中間件中預(yù)設(shè)的模版頁面;
[0021] 調(diào)用與所述功能模型對(duì)象中頁面布局項(xiàng)相對(duì)應(yīng)的頁面構(gòu)造器實(shí)現(xiàn)類,由所述頁面 構(gòu)造器實(shí)現(xiàn)類調(diào)用與所述數(shù)據(jù)操作區(qū)中每個(gè)數(shù)據(jù)區(qū)塊相對(duì)應(yīng)的數(shù)據(jù)塊構(gòu)造類;
[0022] 運(yùn)行所述數(shù)據(jù)塊構(gòu)造類,依據(jù)所述數(shù)據(jù)操作區(qū)中各個(gè)數(shù)據(jù)區(qū)塊的顯示組件調(diào)用屬 性控件構(gòu)造類,生成所述目標(biāo)開發(fā)項(xiàng)目的顯示內(nèi)容,將所述顯示內(nèi)容返回至所述模版頁面 進(jìn)行展示。
[0023] 上述方法,優(yōu)選的,所述配置文件以可擴(kuò)展標(biāo)記語言XML標(biāo)準(zhǔn)編寫實(shí)現(xiàn)。
[0024] 本申請(qǐng)還提供了一種軟件開發(fā)裝置,應(yīng)用于軟件開發(fā)平臺(tái),所述軟件開發(fā)平臺(tái)設(shè) 置有能夠建立功能模型的功能模型模版,所述裝置包括:
[0025] 文件獲取單元,用于獲取配置文件,所述配置文件包括目標(biāo)開發(fā)項(xiàng)目的標(biāo)題配置 信息、頁面布局配置信息、業(yè)務(wù)邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置 信息、工具欄配置信息及外部資源配置信息;
[0026] 模型建立單元,用于在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模 型;
[0027] 其中,所述功能模型包括標(biāo)題項(xiàng)、頁面布局項(xiàng)、業(yè)務(wù)邏輯項(xiàng)、數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù) 據(jù)源關(guān)系項(xiàng)、工具欄項(xiàng)及外部資源項(xiàng);
[0028] 項(xiàng)目構(gòu)建單元,用于運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè)務(wù)場(chǎng)景 相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目。
[0029] 上述裝置,優(yōu)選的,所述模型建立單元包括:
[0030] 模型初始化子單元,用于在所述軟件開發(fā)平臺(tái)中建立一個(gè)與所述配置文件的文件 名稱相對(duì)應(yīng)的功能模型對(duì)象;
[0031] 邏輯配置子單元,用于根據(jù)所述配置文件中的業(yè)務(wù)邏輯配置信息項(xiàng),設(shè)置所述功 能模型對(duì)象中所要加載并調(diào)用的業(yè)務(wù)邏輯實(shí)現(xiàn)類名稱;
[0032] 頁面配置子單元,用于根據(jù)所述配置文件中頁面布局配置信息,設(shè)置功能模型對(duì) 象中所要加載并調(diào)用的頁面布局類和風(fēng)格構(gòu)造類名稱;,并依據(jù)所述工具欄配置信息,設(shè) 置功能模型對(duì)象中所要加載并調(diào)用的工具條及按鈕構(gòu)造類名稱;
[0033] 數(shù)據(jù)配置子單元,用于根據(jù)所述配置文件中數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān) 系配置信息及外部資源配置信息,依次設(shè)置所述功能模型對(duì)象中的數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù) 據(jù)源關(guān)系項(xiàng)及外部資源項(xiàng)。
[0034] 上述裝置,優(yōu)選的,還包括:
[0035] 平臺(tái)加載單元,用于在所述模型建立單元建立所述功能模型之后,在所述項(xiàng)目構(gòu) 建單元生成所述目標(biāo)開發(fā)項(xiàng)目之前,將存儲(chǔ)于預(yù)設(shè)服務(wù)器的軟件開發(fā)平臺(tái)加載至應(yīng)用中間 件。
[0036] 上述裝置,優(yōu)選的,所述平臺(tái)加載單元包括:
[0037] 請(qǐng)求接收子單元,用于接收項(xiàng)目調(diào)用請(qǐng)求,所述項(xiàng)目調(diào)用請(qǐng)求包括所述軟件開發(fā) 平臺(tái)中的目標(biāo)開發(fā)項(xiàng)目的功能模型參數(shù);
[0038] 對(duì)象加載子單元,用于依據(jù)所述功能模型參數(shù),讀取所述目標(biāo)開發(fā)項(xiàng)目的功能模 型對(duì)象,由所述功能模型對(duì)象調(diào)用其內(nèi)部的業(yè)務(wù)邏輯類執(zhí)行其業(yè)務(wù)邏輯方法;
[0039] 頁面啟動(dòng)子單元,用于依據(jù)所述業(yè)務(wù)邏輯類的調(diào)用結(jié)果,啟動(dòng)應(yīng)用中間件中預(yù)設(shè) 的模版頁面;
[0040] 構(gòu)造類調(diào)用子單元,用于調(diào)用與所述功能模型對(duì)象中頁面布局項(xiàng)相對(duì)應(yīng)的頁面構(gòu) 造器實(shí)現(xiàn)類,由所述頁面構(gòu)造器實(shí)現(xiàn)類調(diào)用與所述數(shù)據(jù)操作區(qū)中每個(gè)數(shù)據(jù)區(qū)塊相對(duì)應(yīng)的數(shù) 據(jù)塊構(gòu)造類;
[0041] 內(nèi)容展示子單元,用于運(yùn)行所述數(shù)據(jù)塊構(gòu)造類,依據(jù)所述數(shù)據(jù)操作區(qū)中各個(gè)數(shù)據(jù) 區(qū)塊的顯示組件調(diào)用屬性控件構(gòu)造類,生成所述目標(biāo)開發(fā)項(xiàng)目的顯示內(nèi)容,將所述顯示內(nèi) 容返回至所述模版頁面進(jìn)行展示。
[0042] 上述裝置,優(yōu)選的,所述配置文件以可擴(kuò)展標(biāo)記語言XML標(biāo)準(zhǔn)編寫實(shí)現(xiàn)。
[0043] 由上述方案可知,本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)方法及裝置,應(yīng)用于軟件開發(fā)平臺(tái), 該軟件開發(fā)平臺(tái)設(shè)置有能夠建立功能模型的功能模型模版,本申請(qǐng)通過開發(fā)人員編寫完配 置文件之后,獲取配置文件,該配置文件所包括的各項(xiàng)配置信息描述出開發(fā)人員需要的目 標(biāo)開發(fā)項(xiàng)目的業(yè)務(wù)場(chǎng)景,如標(biāo)題配置信息、頁面布局配置信息、業(yè)務(wù)邏輯配置信息、數(shù)據(jù)操 作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外部資源配置信息,在獲取到 該配置文件之后,在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型,運(yùn)行該 功能模型,生成與所述配置文件中描述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目。本申請(qǐng)?jiān)趯?shí)現(xiàn) 項(xiàng)目開發(fā)的過程中,開發(fā)人員只需掌握配置文件的編寫工作,而對(duì)于文件的編寫工作的學(xué) 習(xí)成本明顯要低于現(xiàn)有技術(shù)中需要開發(fā)人員熟練掌握多種技術(shù)框架的應(yīng)用開發(fā)技能的學(xué) 習(xí)成本,更加無需特定的架構(gòu)師對(duì)技術(shù)框架進(jìn)行設(shè)計(jì),同時(shí),本申請(qǐng)開發(fā)得到的項(xiàng)目是與用 戶所要求的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的項(xiàng)目,直接滿足于用戶需求,無需再次關(guān)于項(xiàng)目的業(yè)務(wù)場(chǎng)景 進(jìn)行重復(fù)設(shè)計(jì),因此,本申請(qǐng)不僅降低了項(xiàng)目開發(fā)的人工成本,還在一定程度上節(jié)省了軟件 項(xiàng)目開發(fā)的流程,縮短了項(xiàng)目的開發(fā)周期。
【專利附圖】
【附圖說明】
[0044] 為了更清楚地說明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使 用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其 他的附圖。
[0045] 圖1為本申請(qǐng)的應(yīng)用實(shí)例發(fā)票報(bào)銷軟件項(xiàng)目中各模型的示例圖;
[0046] 圖2為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)方法實(shí)施例一的流程圖;
[0047] 圖3為本申請(qǐng)中軟件開發(fā)平臺(tái)的技術(shù)架構(gòu)示意圖;
[0048] 圖4為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)方法實(shí)施例二的部分流程圖;
[0049] 圖5為本申請(qǐng)?jiān)趯?shí)際應(yīng)用中所述軟件開發(fā)平臺(tái)中的注冊(cè)界面示例圖;
[0050] 圖6為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)方法實(shí)施例三的流程圖;
[0051] 圖7為本申請(qǐng)實(shí)施例三的部分流程圖;
[0052] 圖8為本申請(qǐng)實(shí)施例三中所述目標(biāo)開發(fā)項(xiàng)目加載至應(yīng)用中間件中的視圖準(zhǔn)備階 段切入點(diǎn)示例分析圖;
[0053] 圖9為本申請(qǐng)實(shí)施例三中所述目標(biāo)開發(fā)項(xiàng)目加載至應(yīng)用中間件中的視圖展示階 段切入點(diǎn)示例分析圖;
[0054] 圖10為本申請(qǐng)中軟件開發(fā)平臺(tái)的技術(shù)架構(gòu)中展示層的示例圖;
[0055] 圖11為本申請(qǐng)中軟件開發(fā)平臺(tái)的技術(shù)架構(gòu)中控制層的示例圖;
[0056] 圖12為本申請(qǐng)中軟件開發(fā)平臺(tái)的技術(shù)架構(gòu)中業(yè)務(wù)邏輯的層示例圖;
[0057] 圖13為本申請(qǐng)中軟件開發(fā)平臺(tái)的技術(shù)架構(gòu)中系統(tǒng)層的示例圖;
[0058] 圖14為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)裝置實(shí)施例四的結(jié)構(gòu)示意圖;
[0059] 圖15為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)裝置實(shí)施例五的部分結(jié)構(gòu)示意圖;
[0060] 圖16為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)裝置實(shí)施例六的結(jié)構(gòu)示意圖;
[0061] 圖17為本申請(qǐng)實(shí)施例六的部分結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0062] 下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;?本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0063] 針對(duì)客戶化的軟件開發(fā)項(xiàng)目具有業(yè)務(wù)功能點(diǎn)多、需求多變、項(xiàng)目周期短、開發(fā)任務(wù) 緊等特點(diǎn),在軟件項(xiàng)目開發(fā)過程中,項(xiàng)目開發(fā)團(tuán)隊(duì)一般都通過縮短項(xiàng)目開發(fā)周期、增加項(xiàng)目 人力成本或應(yīng)用技術(shù)框架等方式來實(shí)現(xiàn)具有大需求大任務(wù)量的項(xiàng)目開發(fā),其中:
[0064] 縮短項(xiàng)目開發(fā)周期對(duì)于項(xiàng)目開發(fā)團(tuán)隊(duì)而言,一般通過開發(fā)人員加班的方式實(shí)現(xiàn), 但開發(fā)人員加班通常會(huì)導(dǎo)致項(xiàng)目開發(fā)的效率降低,還會(huì)影響項(xiàng)目的質(zhì)量和效果;
[0065] 增加項(xiàng)目人力成本則會(huì)使得項(xiàng)目開發(fā)的總體成本增加,減少了項(xiàng)目的利潤(rùn)額,同 時(shí)會(huì)增加項(xiàng)目的管理成本;
[0066] 上述縮短項(xiàng)目開發(fā)周期和增加項(xiàng)目人力成本無法在本質(zhì)上提高項(xiàng)目開發(fā)的效率, 目前在開發(fā)針對(duì)客戶化的軟件項(xiàng)目時(shí),一般項(xiàng)目開發(fā)團(tuán)隊(duì)會(huì)采用了一些比較成熟的技術(shù)框 架或架構(gòu)來降低項(xiàng)目的實(shí)施成本,例如,采用struts、spring、hibernate等技術(shù)框架,將整 體技術(shù)框架按照MVC (Model View Controller,模型視圖控制器)的思想進(jìn)行技術(shù)實(shí)現(xiàn)分 層,從而達(dá)到開發(fā)項(xiàng)目的每層架構(gòu)的相對(duì)獨(dú)立,而層與層之間通過接口的方式進(jìn)行調(diào)用,達(dá) 到不依賴實(shí)現(xiàn),提高各層的靈活擴(kuò)展機(jī)制。
[0067] 采用struts、spring、hibernate等技術(shù)框架,固然能解決客戶定制化項(xiàng)目的技術(shù) 需求,但是,它們的引入會(huì)帶來新的問題:
[0068] 需要項(xiàng)目團(tuán)隊(duì)中的開發(fā)人員學(xué)習(xí)和掌握struts、spring、hibernate等技術(shù)框架 的應(yīng)用開發(fā)技能,使得項(xiàng)目開發(fā)的學(xué)習(xí)成本較高或?qū)?xiàng)目開發(fā)人員的技能要求較高;
[0069] 需要需要一個(gè)特定的架構(gòu)師,完成對(duì)技術(shù)框架的整體設(shè)計(jì),提供一套完整的項(xiàng)目 技術(shù)實(shí)現(xiàn)解決方案;
[0070] 當(dāng)上述兩點(diǎn)都達(dá)到時(shí),架構(gòu)師或項(xiàng)目開人員,除了關(guān)注項(xiàng)目自身的客戶功能需求, 還需要關(guān)注系統(tǒng)登錄驗(yàn)證、系統(tǒng)權(quán)限管理、系統(tǒng)安全管理及還圍繞著安裝、發(fā)布及部署等環(huán) 節(jié)的內(nèi)容;
[0071] 當(dāng)項(xiàng)目完成后,開發(fā)人員還需要考慮設(shè)計(jì)項(xiàng)目的開發(fā)成果如何在其他項(xiàng)目的類似 場(chǎng)景中得到應(yīng)用。
[0072] 因此,針對(duì)如何才能解決上述各種技術(shù)問題,需要項(xiàng)目團(tuán)隊(duì)的開發(fā)人員尋找既可 以滿足客戶需求還可以解決業(yè)務(wù)場(chǎng)景的應(yīng)用問題。
[0073] 本申請(qǐng)采用了"業(yè)務(wù)模型為驅(qū)動(dòng)"的思想,以業(yè)務(wù)模型作為管理軟件開發(fā)的目標(biāo)對(duì) 象,進(jìn)行信息系統(tǒng)的設(shè)計(jì)、構(gòu)造、集成、發(fā)布、維護(hù)和管理,通過軟件開發(fā)平臺(tái)進(jìn)行業(yè)務(wù)模型 的創(chuàng)建,依托于頁面模版,完成業(yè)務(wù)場(chǎng)景的技術(shù)實(shí)現(xiàn),其中,所述軟件開發(fā)平臺(tái)中的模型包 括:
[0074] 數(shù)據(jù)模型:從數(shù)據(jù)的角度對(duì)目標(biāo)開發(fā)項(xiàng)目進(jìn)行描述,用于存儲(chǔ)、維護(hù)以及處理與目 標(biāo)開發(fā)項(xiàng)目相關(guān)的所有數(shù)據(jù),這些數(shù)據(jù)是聯(lián)系各個(gè)功能單元的紐帶;
[0075] 功能模型:以功能活動(dòng)為視角對(duì)整個(gè)目標(biāo)開發(fā)項(xiàng)目進(jìn)行描述,對(duì)目標(biāo)開發(fā)項(xiàng)目中 功能模型的各個(gè)項(xiàng)之間的關(guān)系進(jìn)行表現(xiàn);
[0076] 組織模型:用于描述組織結(jié)構(gòu)樹、團(tuán)隊(duì)、能力、角色和權(quán)限等。
[0077] 所述軟件開發(fā)平臺(tái)以數(shù)據(jù)模型、功能模型和組織模型等眾多動(dòng)態(tài)模型,覆蓋項(xiàng)目 管理和業(yè)務(wù)所涉及的對(duì)象和要素,動(dòng)態(tài)構(gòu)建目標(biāo)開發(fā)項(xiàng)目的業(yè)務(wù)對(duì)象和業(yè)務(wù)場(chǎng)景,從而從 模型體系的方式來設(shè)計(jì)和構(gòu)建客戶定制化的目標(biāo)開發(fā)項(xiàng)目,如圖1中所示,為發(fā)票報(bào)銷軟 件項(xiàng)目中各模型的示例圖。
[0078] 在本申請(qǐng)中,開發(fā)人員無需掌握多種技術(shù)框架的應(yīng)用開發(fā)技能,更加無需特定的 架構(gòu)師對(duì)技術(shù)框架進(jìn)行設(shè)計(jì),只需掌握功能模型的配置文件的編寫工作,同時(shí),本申請(qǐng)開發(fā) 得到的項(xiàng)目是與用戶所要求的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的項(xiàng)目,直接滿足于用戶需求,無需再次關(guān) 于項(xiàng)目的業(yè)務(wù)場(chǎng)景進(jìn)行重復(fù)設(shè)計(jì),因此,本申請(qǐng)不僅降低了項(xiàng)目開發(fā)的人工成本,還在一定 程度上節(jié)省了軟件項(xiàng)目開發(fā)的流程,縮短了項(xiàng)目的開發(fā)周期。
[0079] 參考圖2,為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)方法實(shí)施例一的流程圖,所述方法應(yīng)用于 軟件開發(fā)平臺(tái),所述軟件開發(fā)平臺(tái)中設(shè)置有能夠建立功能模型的功能模型模版,所述方法 可以包括以下步驟:
[0080] 步驟201 :獲取配置文件;
[0081] 其中,所述配置文件包括目標(biāo)開發(fā)項(xiàng)目的標(biāo)題配置信息、頁面布局配置信息、業(yè)務(wù) 邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外部資 源配置信息。
[0082] 在本申請(qǐng)實(shí)施例中,項(xiàng)目團(tuán)隊(duì)中的開發(fā)人員的業(yè)務(wù)功能開發(fā)主要圍繞在所述配置 文件的編寫工作上,通過所述配置文件中的標(biāo)題配置信息、頁面布局配置信息、業(yè)務(wù)邏輯配 置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外部資源配置 信息,來構(gòu)建目標(biāo)開發(fā)項(xiàng)目的業(yè)務(wù)場(chǎng)景的頁面數(shù)據(jù)、展示風(fēng)格、頁面操作和業(yè)務(wù)邏輯。
[0083] 需要說明的是,所述軟件開發(fā)平臺(tái)的功能模型模版中預(yù)設(shè)有默認(rèn)的實(shí)現(xiàn),包括展 示風(fēng)格、頁面操作和業(yè)務(wù)邏輯,開發(fā)人員可以通過調(diào)用這些默認(rèn)的實(shí)現(xiàn)來構(gòu)建滿足客戶需 求的項(xiàng)目對(duì)應(yīng)的功能模型,在默認(rèn)的實(shí)現(xiàn)無法滿足客戶的需求時(shí),開發(fā)人員可以通過所述 軟件開發(fā)平臺(tái)提供的靈活擴(kuò)展注冊(cè)機(jī)制,自定義設(shè)計(jì)功能模型,編寫配置文件,滿足客戶的 個(gè)性化需求。
[0084] 如圖3所示,所述軟件開發(fā)平臺(tái)在技術(shù)架構(gòu)上分為:顯示層、控制層、業(yè)務(wù)邏輯層、 數(shù)據(jù)持久層、模型層和系統(tǒng)層,其中:
[0085] 顯示層:用于web頁面的構(gòu)造和顯示,包含JSP模板頁面、Tag Libray、JS工具庫 等;
[0086] 控制層:負(fù)責(zé)前端頁面的請(qǐng)求,安全校驗(yàn)及解析請(qǐng)求的指令,并委托業(yè)務(wù)邏輯類處 理前端請(qǐng)求,響應(yīng)前端請(qǐng)求;
[0087] 業(yè)務(wù)邏輯層:平臺(tái)的核心業(yè)務(wù)邏輯模塊,分為頁面校驗(yàn)、⑶RD基礎(chǔ)邏輯、ajaxHttp 邏輯及輔助性邏輯等;
[0088] 數(shù)據(jù)持久層:實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理和存儲(chǔ),業(yè)務(wù)邏輯層通過數(shù)據(jù)持久層完成對(duì)數(shù)據(jù) 的存儲(chǔ)或訪問;
[0089] 模型層:支持業(yè)務(wù)場(chǎng)景運(yùn)行的基礎(chǔ)支撐,負(fù)責(zé)對(duì)平臺(tái)中各種模型的定義和解析;
[0090] 系統(tǒng)層:對(duì)業(yè)務(wù)邏輯層或控制層提供系統(tǒng)級(jí)或應(yīng)用級(jí)的支撐。
[0091] 其中,所述模型層主要包含了功能模型、數(shù)據(jù)模型、代碼模型:
[0092] 數(shù)據(jù)模型:用于定義所有業(yè)務(wù)對(duì)象的基本屬性,對(duì)應(yīng)的實(shí)體就是數(shù)據(jù)表,通過數(shù)據(jù) 建模工具配置維護(hù)。
[0093] 功能模型:用于定義業(yè)務(wù)功能的信息來源、業(yè)務(wù)處理規(guī)則,是實(shí)現(xiàn)基礎(chǔ)業(yè)務(wù)事件的 元數(shù)據(jù),通過功能設(shè)計(jì)器配置維護(hù)。
[0094] 代碼模型:代碼模型表示對(duì)象屬性跟對(duì)象之間的關(guān)系,例如某個(gè)對(duì)象中有個(gè)性別 屬性,用1代表男,0代表女。
[0095] 步驟202 :在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型;
[0096] 其中,所述功能模型包括標(biāo)題項(xiàng)、頁面布局項(xiàng)、業(yè)務(wù)邏輯項(xiàng)、數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù) 據(jù)源關(guān)系項(xiàng)、工具欄項(xiàng)及外部資源項(xiàng)。
[0097] 需要說明的是,所述步驟202具體由以下方式實(shí)現(xiàn):
[0098] 依據(jù)所述配置文件中的標(biāo)題配置信息、頁面布局配置信息、業(yè)務(wù)邏輯配置信息、數(shù) 據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外部資源配置信息,在所 述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型。
[0099] 在所述軟件開發(fā)平臺(tái)中設(shè)置的功能模型模版內(nèi)部,包含有多個(gè)配置項(xiàng),如標(biāo)題配 置項(xiàng)、頁面布局樣式配置項(xiàng)、業(yè)務(wù)邏輯配置項(xiàng)、數(shù)據(jù)操作區(qū)配置項(xiàng)、頁面數(shù)據(jù)源關(guān)系配置項(xiàng)、 工具欄配置項(xiàng)、外部資源配置項(xiàng),在所述步驟201中獲取到所述目標(biāo)開發(fā)項(xiàng)目的配置文件 之后,所述步驟202依據(jù)所述配置文件,在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì) 應(yīng)的功能模型,建立的功能模型中的每一項(xiàng)與所述軟件開發(fā)平臺(tái)中的功能模型模版中相應(yīng) 項(xiàng)對(duì)應(yīng)。
[0100] 所述功能模型模版的技術(shù)實(shí)現(xiàn)中包括功能模型XML配置,功能模型XML配置是對(duì) 按照所述功能模型模版建立的功能模型的組成部分的具體描述,以下為所述功能模型模版 中各項(xiàng)的具體實(shí)現(xiàn)示例:
[0101] 1、標(biāo)題配置項(xiàng):〈Title Style=〃CSS 樣式〃〉標(biāo)題〈/Title〉
[0102] 2、頁面布局樣式配置項(xiàng):
[0103] 〈Type〉功能模型加載解析類型〈/Type〉
[0104] 〈Display Style="none (default) |Detail|MultiTab|View"
[0105] PageStyle=〃頁面CSS樣式〃IncludeStyle=〃js文件引入構(gòu)造類的注冊(cè)bean名"
[0106] PromptStyle = 〃頁面提醒框構(gòu)造類的注冊(cè)bean名 "LinkAlign="T0P|BOTTOM|LEFT"/>
[0107] 3、業(yè)務(wù)邏輯配置項(xiàng):
[0108] 〈Model Jsp=〃重定向JSP頁面路徑〃〉業(yè)務(wù)邏輯類〈/Model〉
[0109] 4、數(shù)據(jù)操作區(qū)配置項(xiàng):
[0110] 〈FunctionObject Name="input,update, summary, view, search')
[0111] 〈Tables〉
[0112] 〈Table Name=〃數(shù)據(jù)模型名稱〃Style=〃指定該功能頁面展現(xiàn)風(fēng)格〃
[0113] Main=〃是否是主表〃FilterSQL=〃數(shù)據(jù)模型過濾條件〃
[0114] Description'表模型的描述〃Main=〃是否為主表〃0rder=〃序位〃〉
[0115] 〈 ! 一數(shù)據(jù)模型中字段信息一>
[0116] 〈Field FieldName=〃數(shù)據(jù)模型中字段名稱〃
[0117] HtmlCtrl="text | combo | date 等"Width="寬度"
[0118] Height=〃 高度〃Min=〃 最小值〃Max=〃 最大值"
[0119] DefaultValue=〃 默認(rèn)值〃DisplayName=〃 控件顯不名稱"
[0120] Type=〃 字段類型;例如:string"
[0121] CodeType=〃代碼模型名稱〃
[0122] Alignment="left|center|right"
[0123] Length=〃長(zhǎng)度〃CheckValue=〃設(shè)置控件的檢查值〃
[0124] Empty="true|false"/〉
[0125] 〈/TableX/Tables〉
[0126] 〈/FunctionObject>
[0127] 5、頁面數(shù)據(jù)源關(guān)系配置項(xiàng):
[0128] 〈Relation〉
[0129] 〈MasterTable〉主表數(shù)據(jù)模型的名稱〈/MasterTable〉
[0130] 〈DetailTable〉從表數(shù)據(jù)模型的名稱〈/DetailTable〉
[0131] 〈MasterField〉主鍵字段〈/MasterField〉
[0132] 〈DetailField〉外鍵字段〈/DetailFieldX/Relation〉
[0133] 6、工具欄配置項(xiàng):
[0134] 〈Toolbar Function="summary I input I update I view"Title="功能頁面顯不名稱 //Prompt=////>
[0135] 〈Command Event=〃 按鈕事件,search | summary | add 等"
[0136] Description' 按鈕頁面顯不名稱"Name=""Enabled="true | false"/〉
[0137] 〈/Toolbar〉
[0138] 7、外部資源配置項(xiàng)
[0139] <JS>javascript 代碼塊 </JS>
[0140] 〈Resource Style="css 樣式"Function="">〈/Resource>
[0141] 步驟203 :運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的 目標(biāo)開發(fā)項(xiàng)目。
[0142] 由上述方案中可以看出,本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)方法實(shí)施例一,應(yīng)用于設(shè)置 有功能模型模版的軟件開發(fā)平臺(tái),通過開發(fā)人員編寫完配置文件之后,獲取配置文件,該配 置文件所包括的各項(xiàng)配置信息描述出開發(fā)人員需要的目標(biāo)開發(fā)項(xiàng)目的業(yè)務(wù)場(chǎng)景,如標(biāo)題配 置信息、頁面布局配置信息、業(yè)務(wù)邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配 置信息、工具欄配置信息及外部資源配置信息,在獲取到該配置文件之后,在所述軟件開發(fā) 平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型,運(yùn)行該功能模型,生成與所述配置文件中 描述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目。本申請(qǐng)實(shí)施例在實(shí)現(xiàn)項(xiàng)目開發(fā)的過程中,開發(fā)人 員只需掌握配置文件的編寫工作,而對(duì)于文件的編寫工作的學(xué)習(xí)成本明顯要低于現(xiàn)有技術(shù) 中需要開發(fā)人員熟練掌握多種技術(shù)框架的應(yīng)用開發(fā)技能的學(xué)習(xí)成本,更加無需特定的架構(gòu) 師對(duì)技術(shù)框架進(jìn)行設(shè)計(jì),同時(shí),本申請(qǐng)開發(fā)得到的項(xiàng)目是與用戶所要求的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng) 的項(xiàng)目,直接滿足于用戶需求,無需再次關(guān)于項(xiàng)目的業(yè)務(wù)場(chǎng)景進(jìn)行重復(fù)設(shè)計(jì),因此,本申請(qǐng) 實(shí)施例不僅降低了項(xiàng)目開發(fā)的人工成本,還在一定程度上節(jié)省了軟件項(xiàng)目開發(fā)的流程,縮 短了項(xiàng)目的開發(fā)周期。
[0143] 參考圖4,為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)方法實(shí)施例二的部分流程圖,其中,所述 步驟202中在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型時(shí),可以通過以 下方式實(shí)現(xiàn):
[0144] 步驟401 :在所述軟件開發(fā)平臺(tái)中建立一個(gè)與所述配置文件的文件名稱相對(duì)應(yīng)的 功能模型對(duì)象。
[0145] 如圖5所示,為在實(shí)際應(yīng)用中所述軟件開發(fā)平臺(tái)中的注冊(cè)界面示例圖。在圖5中, 注冊(cè)的功能模型的注冊(cè)名與所述標(biāo)題配置信息相對(duì)應(yīng)。
[0146] 步驟402 :根據(jù)所述配置文件中的業(yè)務(wù)邏輯配置信息項(xiàng),設(shè)置所述功能模型對(duì)象 中所要加載并調(diào)用的業(yè)務(wù)邏輯實(shí)現(xiàn)類名稱。
[0147] 步驟403 :根據(jù)所述配置文件中頁面布局配置信息,設(shè)置功能模型對(duì)象中所要加 載并調(diào)用的頁面布局類和風(fēng)格構(gòu)造類名稱,并依據(jù)所述工具欄配置信息,設(shè)置功能模型對(duì) 象中所要加載并調(diào)用的工具條及按鈕構(gòu)造類名稱。
[0148] 步驟404 :根據(jù)所述配置文件中數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息 及外部資源配置信息,依次設(shè)置所述功能模型對(duì)象中的數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù)據(jù)源關(guān)系項(xiàng) 及外部資源項(xiàng)。
[0149] 需要說明的是,在所述步驟401執(zhí)行完成之后,可以同時(shí)執(zhí)行所述步驟402至所述 步驟404,實(shí)現(xiàn)所述功能模型對(duì)象的建立。
[0150] 其中,所述功能模型對(duì)象即為所述步驟202中的功能模型。
[0151] 其中,所述標(biāo)題配置信息與所述功能模型中的標(biāo)題項(xiàng)相對(duì)應(yīng),表明所述目標(biāo)開發(fā) 項(xiàng)目的名稱信息;
[0152] 所述業(yè)務(wù)邏輯配置信息與所述功能模型中的業(yè)務(wù)邏輯項(xiàng)相對(duì)應(yīng),在所述功能模型 中,通過所述業(yè)務(wù)邏輯配置項(xiàng),使得Action層自動(dòng)加載,及調(diào)用對(duì)應(yīng)的業(yè)務(wù)邏輯具體實(shí)現(xiàn) 類;
[0153] 所述頁面布局配置信息與所述功能模型中的頁面布局項(xiàng)相對(duì)應(yīng),在所述頁面布局 配置信息中,指定了頁面布局、風(fēng)格構(gòu)造類的注冊(cè)名稱,實(shí)現(xiàn)頁面默認(rèn)或個(gè)性化的頁面布局 或風(fēng)格;
[0154] 所述工具欄配置信息與所述功能模型中的工具欄項(xiàng)相對(duì)應(yīng),定義了頁面模版中顯 示的工具欄信息,包含工具條內(nèi)部的按鈕定義說明;
[0155] 所述數(shù)據(jù)操作區(qū)配置信息與所述功能模型中的數(shù)據(jù)操作區(qū)項(xiàng)相對(duì)應(yīng),包括對(duì)頁面 數(shù)據(jù)展示區(qū)的定義,例如,常規(guī)的表單、表格等展示元素的定義,包含表單、表格內(nèi)部所對(duì)應(yīng) 的屬性項(xiàng);
[0156] 所述頁面數(shù)據(jù)源關(guān)系配置信息與所述功能模型中的頁面數(shù)據(jù)源關(guān)系項(xiàng)相對(duì)應(yīng),包 括對(duì)數(shù)據(jù)模型之間的關(guān)系定義;
[0157] 所述外部資源配置信息與所述功能模型中的外部資源項(xiàng)相對(duì)應(yīng),包括對(duì)外部資源 的定義或引用。
[0158] 參考圖6,為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)方法實(shí)施例三的流程圖,在所述步驟202 之后,在所述步驟203之前,所述方法還可以包括以下步驟:
[0159] 步驟S204 :將存儲(chǔ)于預(yù)設(shè)服務(wù)器的軟件開發(fā)平臺(tái)加載至應(yīng)用中間件。
[0160] 在滿足客戶需求的所述目標(biāo)開發(fā)項(xiàng)目生成之前,通常會(huì)把建立有所述目標(biāo)開發(fā)項(xiàng) 目的功能模型的軟件開發(fā)平臺(tái)存儲(chǔ)于預(yù)設(shè)服務(wù)器中,客戶在需要應(yīng)用所述目標(biāo)開發(fā)項(xiàng)目 時(shí),首先將帶有目標(biāo)開發(fā)項(xiàng)目的功能模型的軟件開發(fā)平臺(tái)加載至應(yīng)用中間件中,如web應(yīng) 用,再在所述應(yīng)用中間件中運(yùn)行所述目標(biāo)開發(fā)項(xiàng)目的功能模型,生成與所述配置文件中描 述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目,對(duì)客戶提供響應(yīng)的服務(wù)。
[0161] 在本申請(qǐng)實(shí)施例的具體實(shí)現(xiàn)中,需要將帶有所述目標(biāo)開發(fā)項(xiàng)目的功能模型的軟件 開發(fā)平臺(tái)加載至某一應(yīng)用中間件中,進(jìn)行運(yùn)行該功能模型構(gòu)建得到所述目標(biāo)開發(fā)項(xiàng)目,因 此,參考圖7,為本申請(qǐng)實(shí)施例的部分流程圖,所述步驟S204可以通過以下各個(gè)步驟實(shí)現(xiàn) :
[0162] 步驟701 :接收項(xiàng)目調(diào)用請(qǐng)求,所述項(xiàng)目調(diào)用請(qǐng)求包括所述軟件開發(fā)平臺(tái)中的目 標(biāo)開發(fā)項(xiàng)目的功能模型參數(shù)。
[0163] 在所述步驟701執(zhí)行之前,客戶登陸所述預(yù)設(shè)服務(wù)器,觸發(fā)所述軟件開發(fā)平臺(tái)的 調(diào)用程序,生成項(xiàng)目調(diào)用請(qǐng)求,此時(shí),本申請(qǐng)實(shí)施例對(duì)所述包括有所述軟件開發(fā)平臺(tái)中的目 標(biāo)開發(fā)項(xiàng)目的功能模型參數(shù)的項(xiàng)目調(diào)用請(qǐng)求進(jìn)行接收。例如,在實(shí)際實(shí)現(xiàn)時(shí),由客戶發(fā)送一 個(gè)HTTP請(qǐng)求到服務(wù)器,根據(jù)配置文件struts-congfig. xml中的配置信息,由具體的action 類接收該HTTP請(qǐng)求。
[0164] 步驟702 :依據(jù)所述功能模型參數(shù),讀取所述目標(biāo)開發(fā)項(xiàng)目中的功能模型對(duì)象,由 所述功能模型對(duì)象調(diào)用其內(nèi)部的業(yè)務(wù)邏輯類執(zhí)行其業(yè)務(wù)邏輯方法。
[0165] 其中,所述功能模型參數(shù)包括功能模型的名稱和動(dòng)作標(biāo)志。例如,action類根據(jù) 功能模型的名稱與動(dòng)作標(biāo)志,加載功能模型對(duì)象,由功能模型對(duì)象依據(jù)內(nèi)部注冊(cè)的業(yè)務(wù)邏 輯注冊(cè)名稱調(diào)用具體的業(yè)務(wù)邏輯類,并根據(jù)所述動(dòng)作標(biāo)志執(zhí)行其業(yè)務(wù)邏輯方法。其中,所述 業(yè)務(wù)邏輯類把執(zhí)行所述業(yè)務(wù)邏輯方法取得的業(yè)務(wù)數(shù)據(jù)按照一定的命名規(guī)則存放在request 類中,并返回actionerrors對(duì)象,所述業(yè)務(wù)數(shù)據(jù)及所述actionerrors對(duì)象作為所述業(yè)務(wù)邏 輯類的調(diào)用結(jié)果。
[0166] 步驟703 :依據(jù)所述業(yè)務(wù)邏輯類的調(diào)用結(jié)果,啟動(dòng)應(yīng)用中間件中預(yù)設(shè)的模版頁面。
[0167] 例如,在action類取得所述業(yè)務(wù)邏輯類的調(diào)用結(jié)果,如所述業(yè)務(wù)數(shù)據(jù)和所述 actionerrors對(duì)象之后,根據(jù)struts-congfig. xml中的配置信息,跳轉(zhuǎn)到所述應(yīng)用中間中 的Jsp模版頁面中。
[0168] 其中,上述步驟701至所述步驟703為所述目標(biāo)開發(fā)項(xiàng)目在加載至應(yīng)用中間件中 的視圖準(zhǔn)備階段描述,對(duì)該視圖準(zhǔn)備階段的切入點(diǎn)示例分析如圖8所示,其中:
[0169] 1、用戶通過瀏覽器中的頁面URL訪問請(qǐng)求項(xiàng)發(fā)送參數(shù)至structs控制器,如功能 模型名稱、動(dòng)作標(biāo)志;
[0170] 2、加載功能模型對(duì)象;
[0171] 3、通過所述功能模型中的模型管理模塊調(diào)用業(yè)務(wù)邏輯實(shí)現(xiàn)類;
[0172] 4、執(zhí)行業(yè)務(wù)邏輯方法;
[0173] 5、返回業(yè)務(wù)數(shù)據(jù)集對(duì)象至structs控制器;
[0174] 6、返回業(yè)務(wù)數(shù)據(jù)集對(duì)象至應(yīng)用中間件如web瀏覽器中啟動(dòng)的web頁面。
[0175] 步驟704 :調(diào)用與所述功能模型對(duì)象中頁面布局項(xiàng)相對(duì)應(yīng)的頁面構(gòu)造器實(shí)現(xiàn)類, 由所述頁面構(gòu)造器實(shí)現(xiàn)類調(diào)用與所述數(shù)據(jù)操作區(qū)中每個(gè)數(shù)據(jù)區(qū)塊相對(duì)應(yīng)的數(shù)據(jù)塊構(gòu)造類。
[0176] 在實(shí)際應(yīng)用中,在啟動(dòng)所述Jsp t旲版頁面之后,Jsp t旲版頁面開始調(diào)用具體的Tag 標(biāo)簽處理器,所述Tag標(biāo)簽處理器調(diào)用相應(yīng)的頁面構(gòu)造器實(shí)現(xiàn)類,生成整個(gè)頁面的顯示風(fēng) 格和樣式,在所述頁面構(gòu)造實(shí)現(xiàn)類被觸發(fā)調(diào)用時(shí),會(huì)調(diào)用各個(gè)所述數(shù)據(jù)區(qū)塊的構(gòu)造實(shí)現(xiàn)類, 即所述數(shù)據(jù)塊構(gòu)造類。
[0177] 步驟705 :運(yùn)行所述數(shù)據(jù)塊構(gòu)造類,依據(jù)所述數(shù)據(jù)操作區(qū)中各個(gè)數(shù)據(jù)區(qū)塊的顯示 組件調(diào)用屬性控件構(gòu)造類,生成所述目標(biāo)開發(fā)項(xiàng)目的顯示內(nèi)容,將所述顯示內(nèi)容返回至所 述模版頁面進(jìn)行展示。
[0178] 在實(shí)際應(yīng)用中,調(diào)用所述數(shù)據(jù)塊構(gòu)造類時(shí),由所述數(shù)據(jù)塊構(gòu)造類根據(jù)具體數(shù)據(jù)區(qū) 塊的顯示組件,調(diào)用屬性空間構(gòu)造類,完成最小子集頁面的構(gòu)造,而各級(jí)構(gòu)造類(構(gòu)造器)封 裝所有子集頁面的顯示元素,生成頁面完整的HTML內(nèi)容,返回所述Jsp模版頁面,將所述 HTML內(nèi)容在所述Jsp模版頁面中進(jìn)行展示。
[0179] 所述步驟704與所述步驟705為所述目標(biāo)開發(fā)項(xiàng)目在加載至應(yīng)用中間件中的視圖 展示階段描述,對(duì)該視圖展示階段的切入點(diǎn)示例分析如圖9所示,其中:
[0180] 1、所述Jsp頁面調(diào)用具體的Tag標(biāo)簽處理器;
[0181] 2、所述Tag標(biāo)簽處理器調(diào)用相應(yīng)的頁面構(gòu)造實(shí)現(xiàn)類,即調(diào)用頁面構(gòu)造器;
[0182] 3、在所述頁面構(gòu)造實(shí)現(xiàn)類中,調(diào)用數(shù)據(jù)塊構(gòu)造類,即數(shù)據(jù)塊構(gòu)造器;
[0183] 4、執(zhí)行所述數(shù)據(jù)塊構(gòu)造類,調(diào)用屬性空間構(gòu)造類;
[0184] 5、返回所述屬性空間構(gòu)造類輸出的子集頁面至所述數(shù)據(jù)塊構(gòu)造類;
[0185] 6、所述數(shù)據(jù)塊構(gòu)造類將所有的子集頁面進(jìn)行拼裝,生成頁面完整的Html內(nèi)容;
[0186] 7、返回所述Html內(nèi)容至Tag標(biāo)簽處理器;
[0187] 8、返回所述web頁面進(jìn)行展示。
[0188] 在上述本申請(qǐng)的各個(gè)實(shí)施例的實(shí)際實(shí)現(xiàn)時(shí),所述配置文件以可擴(kuò)展標(biāo)記語言XML 標(biāo)準(zhǔn)編寫實(shí)現(xiàn)。
[0189] 需要說明的是,本申請(qǐng)實(shí)施例中的功能模型時(shí)對(duì)客戶所參與的業(yè)務(wù)場(chǎng)景的整體定 義,包含了業(yè)務(wù)操作對(duì)象、操作時(shí)間及不同頁面流的定義,每個(gè)頁面流對(duì)應(yīng)功能模型中的一 部分進(jìn)行處理描述,包含標(biāo)題、處理數(shù)據(jù)、展示效果、業(yè)務(wù)邏輯引用及操作時(shí)間。
[0190] 以下為從所述軟件開發(fā)平臺(tái)的技術(shù)架構(gòu)的各層面實(shí)現(xiàn)機(jī)制上,對(duì)本申請(qǐng)給予功能 模型的軟件開發(fā)方法即快速變成技術(shù)的實(shí)現(xiàn)方式進(jìn)行闡述,其中,由設(shè)置于所述軟件開發(fā) 平臺(tái)中的數(shù)據(jù)庫對(duì)項(xiàng)目開發(fā)過程中的數(shù)據(jù)處理提供支持:
[0191] 如圖10所示,所述軟件開發(fā)平臺(tái)中的展示層負(fù)責(zé)頁面展示邏輯的封裝,主要由 JSP模板、Tag標(biāo)簽、Π樣式、JS工具類庫、頁面構(gòu)造器、頁面構(gòu)造器、輔助構(gòu)造器、數(shù)據(jù)區(qū)構(gòu) 造器和控件構(gòu)造器組成。
[0192] JSP模板:即為JSP頁面,根據(jù)業(yè)務(wù)需求,將各級(jí)構(gòu)造器所生成的HTML片段進(jìn)行封 裝組合,并附上頁面公共JSP語句,及頁面樣式腳本;
[0193] Tag標(biāo)簽:是對(duì)后端Java構(gòu)造器的封裝;根據(jù)不同類型構(gòu)造器,對(duì)Tag標(biāo)簽進(jìn)行分 類;它主要由JSP模板進(jìn)行引用,通過標(biāo)簽參數(shù)的指定,完成特定構(gòu)造器的調(diào)用;
[0194] Π樣式:就是將修飾某一類段落的一組參數(shù),其中包括如字體類型、字體大小、字 體樣式、對(duì)齊方式等,命名為一個(gè)特定的段落格式名稱。通常,將這個(gè)名稱稱為樣式;
[0195] JS工具類庫:JS工具類庫主要負(fù)責(zé)前端頁面的屬性數(shù)據(jù)校驗(yàn),提供一些控件的事 件處理默認(rèn)函數(shù),及控件的數(shù)據(jù)加載及展示控制工具函數(shù)等;
[0196] 頁面構(gòu)造器:完成頁面除JSP模板之前,頂層頁面布局、樣式的構(gòu)造和引入;并負(fù) 責(zé)對(duì)數(shù)據(jù)區(qū)構(gòu)造器、輔助構(gòu)造器的調(diào)用;
[0197] 輔助構(gòu)造器;主要完成一些公共的頁面元素構(gòu)造,例如:系統(tǒng)異常的頁面構(gòu)造、操 作提醒,及其他外部資源的構(gòu)造等;
[0198] 數(shù)據(jù)區(qū)構(gòu)造器:完成數(shù)據(jù)區(qū)的頁面元素構(gòu)造,例如表單、表格等頁面元素的構(gòu)造; 并負(fù)責(zé)對(duì)控件構(gòu)造器的調(diào)用;
[0199] 控件構(gòu)造器:是頁面元素最小集合的構(gòu)造,例如:控件。
[0200] 如圖11所示,所述軟件開發(fā)平臺(tái)中的控制層負(fù)責(zé)前端請(qǐng)求的捕獲,且對(duì)請(qǐng)求進(jìn)行 處理,最終反饋請(qǐng)求處理結(jié)果,主要包含了請(qǐng)求接入、協(xié)議轉(zhuǎn)換、業(yè)務(wù)映射調(diào)用、請(qǐng)求響應(yīng)、 安全認(rèn)證、日志記錄、權(quán)限驗(yàn)證及本地化處理等模塊:
[0201] 請(qǐng)求接入:處理程序接收來自Web服務(wù)器的HTTP Post或Get請(qǐng)求,并從請(qǐng)求中檢 索相關(guān)參數(shù);
[0202] 協(xié)議轉(zhuǎn)換:根據(jù)不同的請(qǐng)求類型,及請(qǐng)求參數(shù),轉(zhuǎn)換成業(yè)務(wù)邏輯層所能識(shí)別的請(qǐng)求 參數(shù)或請(qǐng)求對(duì)象;
[0203] 業(yè)務(wù)映射調(diào)用:映射請(qǐng)求到指定的業(yè)務(wù)邏輯實(shí)現(xiàn)類,完成調(diào)用;
[0204] 請(qǐng)求響應(yīng):獲取業(yè)務(wù)邏輯類的處理結(jié)果,并約定的協(xié)議轉(zhuǎn)換返回給前端頁面或頁 面請(qǐng)求;
[0205] 安全認(rèn)證:包含了系統(tǒng)用戶認(rèn)證、IP地址訪問控制等;
[0206] 日志記錄:主要包含了系統(tǒng)用戶登錄日志,及系統(tǒng)異常或業(yè)務(wù)校驗(yàn)的錯(cuò)誤信息的 記錄等;
[0207] 權(quán)限驗(yàn)證:包含了功能模型授權(quán)驗(yàn)證、數(shù)據(jù)記錄級(jí)權(quán)限驗(yàn)證及數(shù)據(jù)字段級(jí)權(quán)限控 制等;
[0208] 本地化處理:通過本地描述文件的方式,實(shí)現(xiàn)本地化處理。
[0209] 如圖12所示,所述軟件開發(fā)平臺(tái)中的業(yè)務(wù)邏輯層負(fù)責(zé)向控制層提供各類服務(wù),完 成對(duì)頁面請(qǐng)求的實(shí)際操作或響應(yīng),并形成操作結(jié)果,返回給控制層。它主要包含了業(yè)務(wù)邏 輯、輔助邏輯、代碼邏輯和校驗(yàn)邏輯四部分:
[0210] 業(yè)務(wù)邏輯:主要針對(duì)某一類業(yè)務(wù)操作模式,而實(shí)現(xiàn)了通用的邏輯方法;
[0211] 輔助邏輯:主要針對(duì)XmlHttp的各種請(qǐng)求實(shí)現(xiàn)了通用的邏輯方法;
[0212] 代碼邏輯:主要針對(duì)各種組合形式的代碼模型,而實(shí)現(xiàn)的通用的邏輯方法;
[0213] 校驗(yàn)邏輯:主要針對(duì)頁面數(shù)據(jù)合法性,及模型權(quán)限合法性等方面實(shí)現(xiàn)了邏輯方法。
[0214] 如圖13所示,所述軟件開發(fā)平臺(tái)的系統(tǒng)層為業(yè)務(wù)邏輯層或控制層提供系統(tǒng)級(jí)或 應(yīng)用級(jí)的幫助,主要包含了應(yīng)用初始化、模型緩存、模型管理和授權(quán)管理等模塊:
[0215] 應(yīng)用初始化:負(fù)責(zé)系統(tǒng)加載時(shí),系統(tǒng)環(huán)境變量的讀取和緩存;
[0216] 模型緩存:負(fù)責(zé)在非調(diào)試模式下對(duì)所有配置文件的加載和緩存,并為業(yè)務(wù)邏輯提 供統(tǒng)一服務(wù)調(diào)用;
[0217] 模型管理:針對(duì)各類模型文件,提供默認(rèn)加載或操作接口;
[0218] 授權(quán)管理:定義框架所需的用戶授權(quán)或模型授權(quán)的認(rèn)證標(biāo)準(zhǔn)接口,并提供了默認(rèn) 實(shí)現(xiàn)。
[0219] 參考圖14、其示出了本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)裝置實(shí)施例四的結(jié)構(gòu)示意圖,所 述裝置應(yīng)用于軟件開發(fā)平臺(tái),所述軟件開發(fā)平臺(tái)設(shè)置有能夠建立功能模型的功能模型模 版,所述裝置包括:
[0220] 文件獲取單元1401,用于獲取配置文件;
[0221] 其中,所述配置文件包括目標(biāo)開發(fā)項(xiàng)目的標(biāo)題配置信息、頁面布局配置信息、業(yè)務(wù) 邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外部資 源配置信息。
[0222] 在本申請(qǐng)實(shí)施例中,項(xiàng)目團(tuán)隊(duì)中的開發(fā)人員的業(yè)務(wù)功能開發(fā)主要圍繞在所述配置 文件的編寫工作上,通過所述配置文件中的標(biāo)題配置信息、頁面布局配置信息、業(yè)務(wù)邏輯配 置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外部資源配置 信息,來構(gòu)建目標(biāo)開發(fā)項(xiàng)目的業(yè)務(wù)場(chǎng)景的頁面數(shù)據(jù)、展示風(fēng)格、頁面操作和業(yè)務(wù)邏輯。
[0223] 需要說明的是,所述軟件開發(fā)平臺(tái)的技術(shù)架構(gòu)由展示層、控制層、業(yè)務(wù)邏輯層、數(shù) 據(jù)持久層及、模型層和系統(tǒng)層,對(duì)上述各層面實(shí)現(xiàn)機(jī)制的說明請(qǐng)參考本申請(qǐng)方法實(shí)施例,再 次不再詳細(xì)描述。
[0224] 模型建立單元1402,用于在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功 能豐吳型;
[0225] 其中,所述功能模型包括標(biāo)題項(xiàng)、頁面布局項(xiàng)、業(yè)務(wù)邏輯項(xiàng)、數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù) 據(jù)源關(guān)系項(xiàng)、工具欄項(xiàng)及外部資源項(xiàng)。
[0226] 需要說明的是,所述模型建立單元1402具體可以由以下方式實(shí)現(xiàn):
[0227] 依據(jù)所述配置文件中的標(biāo)題配置信息、頁面布局配置信息、業(yè)務(wù)邏輯配置信息、數(shù) 據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外部資源配置信息,在所 述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型。
[0228] 需要說明的是,所述模型建立單元1402與所述文件獲取單元1401相連接。
[0229] 項(xiàng)目構(gòu)建單元1403,用于運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè)務(wù) 場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目。
[0230] 需要說明的是,所述項(xiàng)目構(gòu)建單元1403與所述模型建立單元1402相連接。
[0231] 由上述方案中可以看出,本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)裝置實(shí)施例四,應(yīng)用于設(shè)置 有功能模型模版的軟件開發(fā)平臺(tái),通過開發(fā)人員編寫完配置文件之后,獲取配置文件,該配 置文件所包括的各項(xiàng)配置信息描述出開發(fā)人員需要的目標(biāo)開發(fā)項(xiàng)目的業(yè)務(wù)場(chǎng)景,如標(biāo)題配 置信息、頁面布局配置信息、業(yè)務(wù)邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配 置信息、工具欄配置信息及外部資源配置信息,在獲取到該配置文件之后,在所述軟件開發(fā) 平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型,運(yùn)行該功能模型,生成與所述配置文件中 描述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目。本申請(qǐng)實(shí)施例在實(shí)現(xiàn)項(xiàng)目開發(fā)的過程中,開發(fā)人 員只需掌握配置文件的編寫工作,而對(duì)于文件的編寫工作的學(xué)習(xí)成本明顯要低于現(xiàn)有技術(shù) 中需要開發(fā)人員熟練掌握多種技術(shù)框架的應(yīng)用開發(fā)技能的學(xué)習(xí)成本,更加無需特定的架構(gòu) 師對(duì)技術(shù)框架進(jìn)行設(shè)計(jì),同時(shí),本申請(qǐng)開發(fā)得到的項(xiàng)目是與用戶所要求的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng) 的項(xiàng)目,直接滿足于用戶需求,無需再次關(guān)于項(xiàng)目的業(yè)務(wù)場(chǎng)景進(jìn)行重復(fù)設(shè)計(jì),因此,本申請(qǐng) 實(shí)施例不僅降低了項(xiàng)目開發(fā)的人工成本,還在一定程度上節(jié)省了軟件項(xiàng)目開發(fā)的流程,縮 短了項(xiàng)目的開發(fā)周期。
[0232] 參考圖15,其示出了本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)裝置實(shí)施例五的部分結(jié)構(gòu)示意 圖,其中,所述模型建立單元1402包括:
[0233] 模型初始化子單元1421,用于在所述軟件開發(fā)平臺(tái)中建立一個(gè)與所述配置文件的 文件名稱相對(duì)應(yīng)的功能模型對(duì)象。
[0234] 如圖5所示,為在實(shí)際應(yīng)用中所述軟件開發(fā)平臺(tái)中的注冊(cè)界面示例圖。在圖5中, 注冊(cè)的功能模型的注冊(cè)名與所述標(biāo)題配置信息相對(duì)應(yīng)。
[0235] 邏輯配置子單元1422,用于根據(jù)所述配置文件中的業(yè)務(wù)邏輯配置信息項(xiàng),設(shè)置所 述功能模型對(duì)象中所要加載并調(diào)用的業(yè)務(wù)邏輯實(shí)現(xiàn)類名稱。
[0236] 需要說明的是,所述邏輯配置子單元1422與所述模型初始化子單元1421相連接。
[0237] 頁面配置子單元1423,用于根據(jù)所述配置文件中頁面布局配置信息,設(shè)置功能模 型對(duì)象中所要加載并調(diào)用的頁面布局類和風(fēng)格構(gòu)造類名稱;,并依據(jù)所述工具欄配置信 息,設(shè)置功能模型對(duì)象中所要加載并調(diào)用的工具條及按鈕構(gòu)造類名稱。
[0238] 需要說明的是,所述頁面配置子單元1423與所述模型初始化子單元1421相連接。
[0239] 數(shù)據(jù)配置子單元1424,用于根據(jù)所述配置文件中數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù) 源關(guān)系配置信息及外部資源配置信息,依次設(shè)置所述功能模型對(duì)象中的數(shù)據(jù)操作區(qū)項(xiàng)、頁 面數(shù)據(jù)源關(guān)系項(xiàng)及外部資源項(xiàng)。
[0240] 需要說明的是,所述數(shù)據(jù)配置子單元1424與所述模型初始化子單元1421相連接。
[0241] 需要說明的是,在所述模型初始化子單元1421運(yùn)行完成之后,所述邏輯配置子單 元1422、所述頁面配置子單元1423和所述數(shù)據(jù)配置子單元1424可以同時(shí)運(yùn)行,還可以以某 一預(yù)設(shè)的順序運(yùn)行,最終得到所述功能模型。
[0242] 參考圖16,為本申請(qǐng)?zhí)峁┑囊环N軟件開發(fā)裝置實(shí)施例六的結(jié)構(gòu)示意圖,其中,所述 裝置還包括:
[0243] 平臺(tái)加載單元1404,用于在所述模型建立單元1402建立所述功能模型之后,在所 述項(xiàng)目構(gòu)建單元1403生成所述目標(biāo)開發(fā)項(xiàng)目之前,將存儲(chǔ)于預(yù)設(shè)服務(wù)器的軟件開發(fā)平臺(tái) 加載至應(yīng)用中間件。
[0244] 需要說明的是,所述平臺(tái)加載單元1404分別與所述模型建立單元1402和所述項(xiàng) 目構(gòu)建單元1403相連接。
[0245] 在滿足客戶需求的所述目標(biāo)開發(fā)項(xiàng)目生成之前,通常會(huì)把建立有所述目標(biāo)開發(fā)項(xiàng) 目的功能模型的軟件開發(fā)平臺(tái)存儲(chǔ)于預(yù)設(shè)服務(wù)器中,客戶在需要應(yīng)用所述目標(biāo)開發(fā)項(xiàng)目 時(shí),首先將帶有目標(biāo)開發(fā)項(xiàng)目的功能模型的軟件開發(fā)平臺(tái)加載至應(yīng)用中間件中,如web應(yīng) 用,再在所述應(yīng)用中間件中運(yùn)行所述目標(biāo)開發(fā)項(xiàng)目的功能模型,生成與所述配置文件中描 述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目,對(duì)客戶提供響應(yīng)的服務(wù)。
[0246] 參考圖17,為本申請(qǐng)實(shí)施例六的部分結(jié)構(gòu)示意圖,所述平臺(tái)加載單元1404包括:
[0247] 請(qǐng)求接收子單元1441,用于接收項(xiàng)目調(diào)用請(qǐng)求,所述項(xiàng)目調(diào)用請(qǐng)求包括所述軟件 開發(fā)平臺(tái)中的目標(biāo)開發(fā)項(xiàng)目的功能模型參數(shù)。
[0248] 在所述請(qǐng)求接收子單元1441運(yùn)行之前,客戶登陸所述預(yù)設(shè)服務(wù)器,觸發(fā)所述軟件 開發(fā)平臺(tái)的調(diào)用程序,生成項(xiàng)目調(diào)用請(qǐng)求,此時(shí),本申請(qǐng)實(shí)施例對(duì)所述包括有所述軟件開發(fā) 平臺(tái)中的目標(biāo)開發(fā)項(xiàng)目的功能模型參數(shù)的項(xiàng)目調(diào)用請(qǐng)求進(jìn)行接收。例如,在實(shí)際實(shí)現(xiàn)時(shí),由 客戶發(fā)送一個(gè)HTTP請(qǐng)求到服務(wù)器,根據(jù)配置文件struts-congfig. xml中的配置信息,由 具體的action類接收該HTTP請(qǐng)求。
[0249] 對(duì)象加載子單元1442,用于依據(jù)所述功能模型參數(shù),讀取所述目標(biāo)開發(fā)項(xiàng)目中的 功能模型對(duì)象,由所述功能模型對(duì)象調(diào)用其內(nèi)部的業(yè)務(wù)邏輯類執(zhí)行其業(yè)務(wù)邏輯方法。
[0250] 需要說明的是,所述對(duì)象加載子單元1442與所述請(qǐng)求接收子單元1441相連接。
[0251] 其中,所述功能模型參數(shù)包括功能模型的名稱和動(dòng)作標(biāo)志。例如,action類根據(jù) 功能模型的名稱與動(dòng)作標(biāo)志,加載功能模型對(duì)象,由功能模型對(duì)象依據(jù)內(nèi)部注冊(cè)的業(yè)務(wù)邏 輯注冊(cè)名稱調(diào)用具體的業(yè)務(wù)邏輯類,并根據(jù)所述動(dòng)作標(biāo)志執(zhí)行其業(yè)務(wù)邏輯方法。其中,所述 業(yè)務(wù)邏輯類把執(zhí)行所述業(yè)務(wù)邏輯方法取得的業(yè)務(wù)數(shù)據(jù)按照一定的命名規(guī)則存放在request 類中,并返回actionerrors對(duì)象,所述業(yè)務(wù)數(shù)據(jù)及所述actionerrors對(duì)象作為所述業(yè)務(wù)邏 輯類的調(diào)用結(jié)果。
[0252] 頁面啟動(dòng)子單元1443,用于依據(jù)所述業(yè)務(wù)邏輯類的調(diào)用結(jié)果,啟動(dòng)應(yīng)用中間件中 預(yù)設(shè)的模版頁面。
[0253] 需要說明的是,所述頁面啟動(dòng)子單元1443與所述對(duì)象加載子單元1442相連接。
[0254] 例如,在action類取得所述業(yè)務(wù)邏輯類的調(diào)用結(jié)果,如所述業(yè)務(wù)數(shù)據(jù)和所述 actionerrors對(duì)象之后,根據(jù)struts-congfig. xml中的配置信息,跳轉(zhuǎn)到所述應(yīng)用中間中 的Jsp模版頁面中。
[0255] 其中,上述請(qǐng)求接收子單元1441至所述頁面啟動(dòng)子單元1443為所述目標(biāo)開發(fā)項(xiàng) 目在加載至應(yīng)用中間件中的視圖準(zhǔn)備階段描述,對(duì)該視圖準(zhǔn)備階段的切入點(diǎn)示例分析如圖 8所示。
[0256] 構(gòu)造類調(diào)用子單元1444,用于調(diào)用與所述功能模型對(duì)象中頁面布局項(xiàng)相對(duì)應(yīng)的頁 面構(gòu)造器實(shí)現(xiàn)類,由所述頁面構(gòu)造器實(shí)現(xiàn)類調(diào)用與所述數(shù)據(jù)操作區(qū)中每個(gè)數(shù)據(jù)區(qū)塊相對(duì)應(yīng) 的數(shù)據(jù)塊構(gòu)造類。
[0257] 需要說明的是,所述構(gòu)造類調(diào)用子單元1444與所述頁面啟動(dòng)子單元1443相連接。
[0258] 在實(shí)際應(yīng)用中,在啟動(dòng)所述Jsp t旲版頁面之后,Jsp t旲版頁面開始調(diào)用具體的Tag 標(biāo)簽處理器,所述Tag標(biāo)簽處理器調(diào)用相應(yīng)的頁面構(gòu)造器實(shí)現(xiàn)類,生成整個(gè)頁面的顯示風(fēng) 格和樣式,在所述頁面構(gòu)造實(shí)現(xiàn)類被觸發(fā)調(diào)用時(shí),會(huì)調(diào)用各個(gè)所述數(shù)據(jù)區(qū)塊的構(gòu)造實(shí)現(xiàn)類, 即所述數(shù)據(jù)塊構(gòu)造類。
[0259] 內(nèi)容展示子單元1445,用于運(yùn)行所述數(shù)據(jù)塊構(gòu)造類,依據(jù)所述數(shù)據(jù)操作區(qū)中各個(gè) 數(shù)據(jù)區(qū)塊的顯示組件調(diào)用屬性控件構(gòu)造類,生成所述目標(biāo)開發(fā)項(xiàng)目的顯示內(nèi)容,將所述顯 示內(nèi)容返回至所述模版頁面進(jìn)行展示。
[0260] 需要說明的是,所述內(nèi)容展示子單元1445與所述構(gòu)造類調(diào)用子單元1444相連接。
[0261] 在實(shí)際應(yīng)用中,調(diào)用所述數(shù)據(jù)塊構(gòu)造類時(shí),由所述數(shù)據(jù)塊構(gòu)造類根據(jù)具體數(shù)據(jù)區(qū) 塊的顯示組件,調(diào)用屬性空間構(gòu)造類,完成最小子集頁面的構(gòu)造,而各級(jí)構(gòu)造類(構(gòu)造器)封 裝所有子集頁面的顯示元素,生成頁面完整的HTML內(nèi)容,返回所述Jsp模版頁面,將所述 HTML內(nèi)容在所述Jsp模版頁面中進(jìn)行展示。
[0262] 其中,所述構(gòu)造類調(diào)用子單元1444與所述內(nèi)容展示子單元1445為所述目標(biāo)開發(fā) 項(xiàng)目在加載至應(yīng)用中間件中的視圖展示階段描述,對(duì)該視圖展示階段的切入點(diǎn)示例分析如 圖9所示。
[0263] 在上述本申請(qǐng)的各個(gè)實(shí)施例的實(shí)際實(shí)現(xiàn)時(shí),所述配置文件以可擴(kuò)展標(biāo)記語言XML 標(biāo)準(zhǔn)編寫實(shí)現(xiàn)。
[0264] 需要說明的是,本申請(qǐng)實(shí)施例中的功能模型時(shí)對(duì)客戶所參與的業(yè)務(wù)場(chǎng)景的整體定 義,包含了業(yè)務(wù)操作對(duì)象、操作時(shí)間及不同頁面流的定義,每個(gè)頁面流對(duì)應(yīng)功能模型中的一 部分進(jìn)行處理描述,包含標(biāo)題、處理數(shù)據(jù)、展示效果、業(yè)務(wù)邏輯引用及操作時(shí)間。
[0265] 所述軟件開發(fā)平臺(tái)采用XTHML標(biāo)準(zhǔn)作為所述功能模型的基礎(chǔ)實(shí)現(xiàn)技術(shù),從而提供 業(yè)務(wù)場(chǎng)景功能的靈活配置。由所述功能模型中多個(gè)項(xiàng),如標(biāo)題項(xiàng)、業(yè)務(wù)邏輯項(xiàng)、頁面布局項(xiàng)、 數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù)據(jù)源關(guān)系項(xiàng)、工具欄及外部資源項(xiàng),主要分為業(yè)務(wù)邏輯定義、頁面操 作定義、頁面數(shù)據(jù)定義、展示風(fēng)格定義和頁面流定義。其中,上述各種定義請(qǐng)參考本申請(qǐng)方 法實(shí)施例內(nèi)容,再次不再詳細(xì)闡述。
[0266] 需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重 點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0267] 最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體 意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括 那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或 者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句"包括一個(gè)……"限定的要素,并 不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0268] 以上對(duì)本發(fā)明所提供的一種軟件開發(fā)方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了 具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本 發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體 實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的 限制。
【權(quán)利要求】
1. 一種軟件開發(fā)方法,其特征在于,應(yīng)用于軟件開發(fā)平臺(tái),所述軟件開發(fā)平臺(tái)設(shè)置有能 夠建立功能模型的功能模型模版,所述方法包括: 獲取配置文件,所述配置文件包括目標(biāo)開發(fā)項(xiàng)目的標(biāo)題配置信息、頁面布局配置信息、 業(yè)務(wù)邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、工具欄配置信息及外 部資源配置信息; 在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型; 其中,所述功能模型包括標(biāo)題項(xiàng)、頁面布局項(xiàng)、業(yè)務(wù)邏輯項(xiàng)、數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù)據(jù)源 關(guān)系項(xiàng)、工具欄項(xiàng)及外部資源項(xiàng); 運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè)務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在所述軟件開發(fā)平臺(tái)中建立與所述 配置文件相對(duì)應(yīng)的功能模型,包括: 在所述軟件開發(fā)平臺(tái)中建立一個(gè)與所述配置文件的文件名稱相對(duì)應(yīng)的功能模型對(duì) 象; 根據(jù)所述配置文件中的業(yè)務(wù)邏輯配置信息項(xiàng),設(shè)置所述功能模型對(duì)象中所要加載并調(diào) 用的業(yè)務(wù)邏輯實(shí)現(xiàn)類名稱; 根據(jù)所述配置文件中頁面布局配置信息,設(shè)置所述功能模型對(duì)象中所要加載并調(diào)用的 頁面布局類和風(fēng)格構(gòu)造類名稱,并依據(jù)所述工具欄配置信息,設(shè)置所述功能模型對(duì)象中所 要加載并調(diào)用的工具條及按鈕構(gòu)造類名稱; 根據(jù)所述配置文件中數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息及外部資源配置 信息,依次設(shè)置所述功能模型對(duì)象中的數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù)據(jù)源關(guān)系項(xiàng)及外部資源項(xiàng)。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述軟件開發(fā)平臺(tái)中建立與所述配置 文件相對(duì)應(yīng)的功能模型之后,在所述運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè) 務(wù)場(chǎng)景相對(duì)應(yīng)的目標(biāo)開發(fā)項(xiàng)目之前,所述方法還包括: 將存儲(chǔ)于預(yù)設(shè)服務(wù)器的軟件開發(fā)平臺(tái)加載至應(yīng)用中間件。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述將存儲(chǔ)于預(yù)設(shè)服務(wù)器的軟件開發(fā)平 臺(tái)和目標(biāo)開發(fā)項(xiàng)目加載至應(yīng)用中間件中,包括: 接收項(xiàng)目調(diào)用請(qǐng)求,所述項(xiàng)目調(diào)用請(qǐng)求包括所述軟件開發(fā)平臺(tái)中的目標(biāo)開發(fā)項(xiàng)目的功 能模型參數(shù); 依據(jù)所述功能模型參數(shù),讀取所述目標(biāo)開發(fā)項(xiàng)目的功能模型對(duì)象,由所述功能模型對(duì) 象調(diào)用其內(nèi)部的業(yè)務(wù)邏輯類執(zhí)行其業(yè)務(wù)邏輯方法; 依據(jù)所述業(yè)務(wù)邏輯類的調(diào)用結(jié)果,啟動(dòng)應(yīng)用中間件中預(yù)設(shè)的模版頁面; 調(diào)用與所述功能模型對(duì)象中頁面布局項(xiàng)相對(duì)應(yīng)的頁面構(gòu)造器實(shí)現(xiàn)類,由所述頁面構(gòu)造 器實(shí)現(xiàn)類調(diào)用與所述數(shù)據(jù)操作區(qū)中每個(gè)數(shù)據(jù)區(qū)塊相對(duì)應(yīng)的數(shù)據(jù)塊構(gòu)造類; 運(yùn)行所述數(shù)據(jù)塊構(gòu)造類,依據(jù)所述數(shù)據(jù)操作區(qū)中各個(gè)數(shù)據(jù)區(qū)塊的顯示組件調(diào)用屬性控 件構(gòu)造類,生成所述目標(biāo)開發(fā)項(xiàng)目的顯示內(nèi)容,將所述顯示內(nèi)容返回至所述模版頁面進(jìn)行 展示。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述配置文件以可擴(kuò)展標(biāo)記語言XML標(biāo)準(zhǔn) 編寫實(shí)現(xiàn)。
6. -種軟件開發(fā)裝置,其特征在于,應(yīng)用于軟件開發(fā)平臺(tái),所述軟件開發(fā)平臺(tái)設(shè)置有能 夠建立功能模型的功能模型模版,所述裝置包括: 文件獲取單元,用于獲取配置文件,所述配置文件包括目標(biāo)開發(fā)項(xiàng)目的標(biāo)題配置信息、 頁面布局配置信息、業(yè)務(wù)邏輯配置信息、數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配置信息、 工具欄配置信息及外部資源配置信息; 模型建立單元,用于在所述軟件開發(fā)平臺(tái)中建立與所述配置文件相對(duì)應(yīng)的功能模型; 其中,所述功能模型包括標(biāo)題項(xiàng)、頁面布局項(xiàng)、業(yè)務(wù)邏輯項(xiàng)、數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù)據(jù)源 關(guān)系項(xiàng)、工具欄項(xiàng)及外部資源項(xiàng); 項(xiàng)目構(gòu)建單元,用于運(yùn)行所述功能模型,生成與所述配置文件中描述的業(yè)務(wù)場(chǎng)景相對(duì) 應(yīng)的目標(biāo)開發(fā)項(xiàng)目。
7. 根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述模型建立單元包括: 模型初始化子單元,用于在所述軟件開發(fā)平臺(tái)中建立一個(gè)與所述配置文件的文件名稱 相對(duì)應(yīng)的功能模型對(duì)象; 邏輯配置子單元,用于根據(jù)所述配置文件中的業(yè)務(wù)邏輯配置信息項(xiàng),設(shè)置所述功能模 型對(duì)象中所要加載并調(diào)用的業(yè)務(wù)邏輯實(shí)現(xiàn)類名稱; 頁面配置子單元,用于根據(jù)所述配置文件中頁面布局配置信息,設(shè)置功能模型對(duì)象中 所要加載并調(diào)用的頁面布局類和風(fēng)格構(gòu)造類名稱;,并依據(jù)所述工具欄配置信息,設(shè)置功 能模型對(duì)象中所要加載并調(diào)用的工具條及按鈕構(gòu)造類名稱; 數(shù)據(jù)配置子單元,用于根據(jù)所述配置文件中數(shù)據(jù)操作區(qū)配置信息、頁面數(shù)據(jù)源關(guān)系配 置信息及外部資源配置信息,依次設(shè)置所述功能模型對(duì)象中的數(shù)據(jù)操作區(qū)項(xiàng)、頁面數(shù)據(jù)源 關(guān)系項(xiàng)及外部資源項(xiàng)。
8. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 平臺(tái)加載單元,用于在所述模型建立單元建立所述功能模型之后,在所述項(xiàng)目構(gòu)建單 元生成所述目標(biāo)開發(fā)項(xiàng)目之前,將存儲(chǔ)于預(yù)設(shè)服務(wù)器的軟件開發(fā)平臺(tái)加載至應(yīng)用中間件。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述平臺(tái)加載單元包括: 請(qǐng)求接收子單元,用于接收項(xiàng)目調(diào)用請(qǐng)求,所述項(xiàng)目調(diào)用請(qǐng)求包括所述軟件開發(fā)平臺(tái) 中的目標(biāo)開發(fā)項(xiàng)目的功能模型參數(shù); 對(duì)象加載子單元,用于依據(jù)所述功能模型參數(shù),讀取所述目標(biāo)開發(fā)項(xiàng)目的功能模型對(duì) 象,由所述功能模型對(duì)象調(diào)用其內(nèi)部的業(yè)務(wù)邏輯類執(zhí)行其業(yè)務(wù)邏輯方法; 頁面啟動(dòng)子單元,用于依據(jù)所述業(yè)務(wù)邏輯類的調(diào)用結(jié)果,啟動(dòng)應(yīng)用中間件中預(yù)設(shè)的模 版頁面; 構(gòu)造類調(diào)用子單元,用于調(diào)用與所述功能模型對(duì)象中頁面布局項(xiàng)相對(duì)應(yīng)的頁面構(gòu)造器 實(shí)現(xiàn)類,由所述頁面構(gòu)造器實(shí)現(xiàn)類調(diào)用與所述數(shù)據(jù)操作區(qū)中每個(gè)數(shù)據(jù)區(qū)塊相對(duì)應(yīng)的數(shù)據(jù)塊 構(gòu)造類; 內(nèi)容展示子單元,用于運(yùn)行所述數(shù)據(jù)塊構(gòu)造類,依據(jù)所述數(shù)據(jù)操作區(qū)中各個(gè)數(shù)據(jù)區(qū)塊 的顯示組件調(diào)用屬性控件構(gòu)造類,生成所述目標(biāo)開發(fā)項(xiàng)目的顯示內(nèi)容,將所述顯示內(nèi)容返 回至所述模版頁面進(jìn)行展示。
10. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述配置文件以可擴(kuò)展標(biāo)記語言XML標(biāo) 準(zhǔn)編寫實(shí)現(xiàn)。
【文檔編號(hào)】G06F9/44GK104111826SQ201310138921
【公開日】2014年10月22日 申請(qǐng)日期:2013年4月19日 優(yōu)先權(quán)日:2013年4月19日
【發(fā)明者】張仁信 申請(qǐng)人:杭州新世紀(jì)電子科技有限公司