一種程序中邏輯單元之間數(shù)據(jù)傳輸?shù)姆椒ㄅc系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及程序中數(shù)據(jù)傳輸領(lǐng)域,尤指一種程序中邏輯單元之間數(shù)據(jù)傳輸?shù)姆椒ㄅc系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有軟件開(kāi)發(fā)的流程是:
[0003]一、需求分析
[0004]1、系統(tǒng)分析員向用戶初步了解需求,然后用word列出要開(kāi)發(fā)的系統(tǒng)的大功能模塊,每個(gè)大功能模塊有哪些小功能模塊,對(duì)于有些需求比較明確時(shí),在這一步里面可以初步定義好少量的界面。
[0005]2、系統(tǒng)分析員深入了解和分析需求,根據(jù)自己的經(jīng)驗(yàn)針對(duì)需求用WORD或相關(guān)的工具再做出一份文檔系統(tǒng)的功能需求文檔。這次的文檔會(huì)清楚列出系統(tǒng)大致的大功能模塊,大功能模塊有哪些小功能模塊,并且還列出相關(guān)的界面和界面功能。
[0006]二、系統(tǒng)設(shè)計(jì)
[0007]1、概要設(shè)計(jì)
[0008]概要設(shè)計(jì)需要對(duì)軟件系統(tǒng)的設(shè)計(jì)進(jìn)行考慮,包括系統(tǒng)的基本處理流程、系統(tǒng)的組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計(jì)、運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,為軟件的詳細(xì)設(shè)計(jì)提供基礎(chǔ)。
[0009]2、詳細(xì)設(shè)計(jì)
[0010]在概要設(shè)計(jì)的基礎(chǔ)上,開(kāi)發(fā)者需要進(jìn)行軟件系統(tǒng)的詳細(xì)設(shè)計(jì)。在詳細(xì)設(shè)計(jì)中,描述實(shí)現(xiàn)具體模塊所涉及到的主要算法、數(shù)據(jù)結(jié)構(gòu)、類的層次結(jié)構(gòu)及調(diào)用關(guān)系,需要說(shuō)明軟件系統(tǒng)各個(gè)層次中的每一個(gè)程序(每個(gè)模塊或子程序)的設(shè)計(jì)考慮。
[0011 ] 二、編碼
[0012]在軟件編碼階段,開(kāi)發(fā)者根據(jù)系統(tǒng)設(shè)計(jì)對(duì)數(shù)據(jù)結(jié)構(gòu)、算法分析和模塊實(shí)現(xiàn)等方面的設(shè)計(jì)要求,開(kāi)始具體的編寫程序工作,分別實(shí)現(xiàn)各模塊的功能,從而實(shí)現(xiàn)對(duì)目標(biāo)系統(tǒng)的功能、性能、接口、界面等方面的要求。
[0013]四、測(cè)試
[0014]測(cè)試編寫好的系統(tǒng),測(cè)試通過(guò)后交給用戶使用。
[0015]這種開(kāi)發(fā)模式存在以下問(wèn)題:
[0016]系統(tǒng)的所有界面,界面之間的關(guān)系都是需求分析階段所設(shè)定,而受系統(tǒng)分析員能力所限,系統(tǒng)分析員可能對(duì)用戶需求不夠了解;或者用戶對(duì)軟件可以實(shí)現(xiàn)的功能沒(méi)有預(yù)判能力,不能明確需求;或者受外部環(huán)境影響需求發(fā)生改變。這些原因都造成開(kāi)發(fā)過(guò)程中的需求改變,需求改變時(shí)需要改變界面,或者增加界面,或者改變界面之間的關(guān)系,再根據(jù)新的需求進(jìn)行設(shè)計(jì)、編碼、測(cè)試。
[0017]軟件開(kāi)發(fā)面臨的最大困難就是需求不斷改變,使得開(kāi)發(fā)整個(gè)流程都受到影響,軟件交付后,因需求改變還會(huì)帶來(lái)二期、三期甚至更多期的開(kāi)發(fā),只要軟件在使用,開(kāi)發(fā)就在一直進(jìn)行。
[0018]用戶一直在等待新的軟件版本完成,這期間需要付出大量金錢和時(shí)間;
[0019]或者受限于原有軟件,僅能接受和適應(yīng)程序員預(yù)設(shè)的實(shí)現(xiàn)邏輯,這種人機(jī)交互的局限有悖于軟件輔助工作的初衷,同時(shí)由于交互的局限反而把使用者限制在條條框框里。
【發(fā)明內(nèi)容】
[0020]本發(fā)明的目的是提供一種程序中邏輯單元之間數(shù)據(jù)傳輸?shù)姆椒ㄅc系統(tǒng),以解決只要用戶需求改變就要重新開(kāi)發(fā)軟件的問(wèn)題。
[0021]本發(fā)明提供的技術(shù)方案如下:
[0022]一種程序中邏輯單元之間數(shù)據(jù)傳輸?shù)姆椒ǎ?br>[0023]包括若干邏輯單元,其中至少包括第一邏輯單元、第二邏輯單元;每個(gè)所述邏輯單元包含具有特定關(guān)聯(lián)性的一組數(shù)據(jù),邏輯單元繼承于該邏輯單元所屬類型的基類,基類具有輸出數(shù)據(jù)和接收輸入數(shù)據(jù)功能模塊;
[0024]當(dāng)每?jī)蓚€(gè)所述邏輯單元之間具有關(guān)系時(shí),所述關(guān)系具有方向和類型;
[0025]當(dāng)?shù)谝贿壿媶卧嬖谥赶虻诙壿媶卧臄?shù)據(jù)關(guān)系時(shí),所述程序解析所述數(shù)據(jù)關(guān)系,實(shí)現(xiàn)所述第一邏輯單元數(shù)據(jù)輸出到所述第二邏輯單元。
[0026]第一邏輯單元與第二邏輯單元是若干邏輯單元中的任意兩個(gè)邏輯單元,并不特指具體的邏輯單元。
[0027]通過(guò)這種方法,可以實(shí)現(xiàn)數(shù)據(jù)傳輸代碼模塊重復(fù)利用,只要建立邏輯單元之間的數(shù)據(jù)關(guān)系,而不需要寫數(shù)據(jù)傳輸代碼,就可以實(shí)現(xiàn)新建邏輯單元之間數(shù)據(jù)傳輸。
[0028]優(yōu)選的,
[0029]程序解析所述數(shù)據(jù)關(guān)系的步驟包括如下兩種:
[0030]第一種先打開(kāi)第一邏輯單元的步驟為:
[0031]打開(kāi)第一邏輯單元,第一邏輯單元產(chǎn)生輸出數(shù)據(jù);
[0032]打開(kāi)第二邏輯單元,第二邏輯單元根據(jù)第一邏輯單元指向第二邏輯單元的數(shù)據(jù)關(guān)系找到第一邏輯單元,第一邏輯單元的輸出數(shù)據(jù)作為第二邏輯單元的輸入數(shù)據(jù);
[0033]第二種先打開(kāi)第二邏輯單元的步驟為:
[0034]打開(kāi)第二邏輯單元,第二邏輯單元根據(jù)第一邏輯單元指向第二邏輯單元的數(shù)據(jù)關(guān)系找到第一邏輯單元;
[0035]打開(kāi)第一邏輯單元,第一邏輯單元產(chǎn)生輸出數(shù)據(jù)作為第二邏輯單元的輸入數(shù)據(jù)。
[0036]優(yōu)選的,
[0037]當(dāng)首先打開(kāi)第一邏輯單元時(shí),打開(kāi)第一邏輯單元之后還包括步驟:
[0038]判斷所述第一邏輯單元是否存在數(shù)據(jù)關(guān)系指向其它邏輯單元,若存在數(shù)據(jù)關(guān)系指向其它邏輯單元,則產(chǎn)生輸出數(shù)據(jù);否則不產(chǎn)生輸出數(shù)據(jù)。
[0039]通過(guò)判斷第一邏輯單元是否存在指向其它邏輯單元的數(shù)據(jù)關(guān)系,當(dāng)存在第一邏輯單元指向其它邏輯單元的數(shù)據(jù)關(guān)系時(shí)才產(chǎn)生輸出數(shù)據(jù),可以提高工作效率,防止第一邏輯單元產(chǎn)生輸出數(shù)據(jù),但并沒(méi)有其它邏輯單元會(huì)使用這些輸出數(shù)據(jù)情況的產(chǎn)生。
[0040]優(yōu)選的,
[0041]第一邏輯單元產(chǎn)生輸出數(shù)據(jù)作為第二邏輯單元的輸入數(shù)據(jù)之后還包括步驟:
[0042]判斷所述第一邏輯單元的輸出數(shù)據(jù)是否發(fā)生改變;
[0043]若所述第一邏輯單元的數(shù)據(jù)發(fā)生改變,則發(fā)出所述第一邏輯單元的輸出數(shù)據(jù)已改變的通知;
[0044]監(jiān)聽(tīng)是否存在所述第一邏輯單元的輸出數(shù)據(jù)已改變的通知;
[0045]當(dāng)監(jiān)聽(tīng)到所述第一邏輯單元的輸出數(shù)據(jù)已改變的通知時(shí),所述第二邏輯單元根據(jù)所述數(shù)據(jù)關(guān)系找到所述第一邏輯單元,并將所述第一邏輯單元發(fā)生改變后的輸出數(shù)據(jù)作為第二邏輯單元的輸入數(shù)據(jù)。
[0046]通過(guò)這種方式,可以實(shí)現(xiàn)第二邏輯單元的輸入數(shù)據(jù)實(shí)時(shí)根據(jù)第一邏輯單元輸出數(shù)據(jù)改變而改變。
[0047]優(yōu)選的,
[0048]第一邏輯單元輸出的數(shù)據(jù)格式為表格所構(gòu)成的數(shù)組;或由所述邏輯單元和所述關(guān)系所構(gòu)成的圖的數(shù)組。
[0049]將傳輸數(shù)據(jù)的格式統(tǒng)一化,可以使數(shù)據(jù)傳輸代碼模塊變得簡(jiǎn)單,只需要處理這兩種格式數(shù)據(jù)的輸入輸出。
[0050]優(yōu)選的,
[0051]所述邏輯單元與所述數(shù)據(jù)關(guān)系存儲(chǔ)于圖形數(shù)據(jù)庫(kù)。
[0052]圖形數(shù)據(jù)庫(kù)是一種非關(guān)系型數(shù)據(jù)庫(kù),應(yīng)用圖形理論存儲(chǔ)實(shí)體與實(shí)體之間的關(guān)系信息,與本發(fā)明的數(shù)據(jù)抽象模式一致,是最適合的存儲(chǔ)數(shù)據(jù)庫(kù)。
[0053]優(yōu)選的,
[0054]所述第一邏輯單元是數(shù)據(jù)邏輯單元,所述第二邏輯單元是界面邏輯單元。
[0055]數(shù)據(jù)邏輯單元的數(shù)據(jù)展示于界面,是比較常見(jiàn)的應(yīng)用方式。
[0056]優(yōu)選的,
[0057]所述第一邏輯單元與所述第二邏輯單元都是界面邏輯單元,至少一部分所述第一邏輯單元的數(shù)據(jù)作為輸出數(shù)據(jù)的源數(shù)據(jù)。
[0058]界面邏輯單元到界面邏輯單元的數(shù)據(jù)傳輸,在程序中是最常見(jiàn)的數(shù)據(jù)傳輸方式,傳統(tǒng)編程都是通過(guò)傳遞參數(shù)方式實(shí)現(xiàn),通過(guò)本發(fā)明方法,只要建立界面邏輯單元到界面邏輯單元的數(shù)據(jù)關(guān)系,就可以實(shí)現(xiàn)界面到界面的數(shù)據(jù)傳輸,使編程變得更靈活、更簡(jiǎn)單,用戶可以根據(jù)自己的需要?jiǎng)?chuàng)建界面,建立界面之間的數(shù)據(jù)傳輸關(guān)系。
[0059]優(yōu)選的,
[0060]所述第二邏輯單元相對(duì)應(yīng)的界面所展示內(nèi)容與所述第一邏輯單元所輸出數(shù)據(jù)聯(lián)動(dòng)。
[0061]第一邏輯單元的輸出數(shù)據(jù)發(fā)生改變時(shí),第二邏輯單元所對(duì)應(yīng)的界面展示內(nèi)容隨之發(fā)生改變,使得程序更友好,尤其在一些需要使用大量圖表的行業(yè)中,使工作變得更輕松。
[0062]優(yōu)選的,
[0063]第一邏輯單元所對(duì)應(yīng)的界面與第二邏輯單元所對(duì)應(yīng)的界面位于不同的智能設(shè)備。
[0064]兩界面位于不同的智能設(shè)備,界面的聯(lián)動(dòng)可以跨用戶,也可以跨設(shè)備。
[0065]優(yōu)選的,
[0066]所述程序包括客戶端程序和服務(wù)器端程序,所述第一邏輯單元與所述第二邏輯單元位于客戶端程序中,第一邏輯單元的輸出數(shù)據(jù)經(jīng)過(guò)服務(wù)器端運(yùn)算得到運(yùn)算結(jié)果數(shù)據(jù),所述運(yùn)算結(jié)果數(shù)據(jù)作為第二邏輯單元的輸入數(shù)據(jù)。
[0067]服務(wù)器具有較強(qiáng)數(shù)據(jù)處理能力,將復(fù)雜的數(shù)據(jù)處理過(guò)程設(shè)于服務(wù)器端,第一邏輯單元輸出的數(shù)據(jù)經(jīng)服務(wù)器端處理后再作為第二邏輯單元的輸入數(shù)據(jù),可以提高數(shù)據(jù)處理效率。
[0068]優(yōu)選的,
[0069]所述關(guān)系包括循環(huán)屬性,當(dāng)所述第一邏輯單元輸出的數(shù)據(jù)為一個(gè)或一個(gè)以上表格所構(gòu)成的數(shù)組,或由所述邏輯單元和所述關(guān)系組成的圖所構(gòu)成的數(shù)組時(shí),所述第二邏輯單元所對(duì)應(yīng)的界面循環(huán)展示所述數(shù)組中的至少一個(gè)所述表格或所述圖。
[0070]通過(guò)設(shè)置循環(huán)屬性,可以實(shí)現(xiàn)傳輸數(shù)據(jù)是表格或圖所構(gòu)成的數(shù)組時(shí),展示多個(gè)表格或圖的效果,每一表格或圖展示完成后再展示下一個(gè)表格或圖。
[0071]優(yōu)選的,
[0072]所述關(guān)系還包括等待屬性,所述等待屬性用于設(shè)置等待時(shí)間,控制所述第二邏輯單元所對(duì)應(yīng)的界面展示每一所述表格或所述圖所用的時(shí)間或展示停留時(shí)間。
[0073]設(shè)置等待時(shí)間可以控制展示的節(jié)奏。
[0074]優(yōu)選的,
[0075]所述第二邏輯單元所對(duì)應(yīng)的界面根據(jù)所述數(shù)據(jù)組中的多個(gè)數(shù)據(jù)對(duì)象進(jìn)行展示時(shí),依照一定次序進(jìn)行展示。
[0076]優(yōu)選的,
[0077]第二邏輯單元所對(duì)應(yīng)的界面根據(jù)所述數(shù)據(jù)組中的多個(gè)數(shù)據(jù)對(duì)象進(jìn)行展示時(shí),隨機(jī)進(jìn)行展示。
[0078]優(yōu)選的,
[0079]所述邏輯單元在界面建立關(guān)系。
[0080]通過(guò)在程序界面創(chuàng)建或編輯邏輯單元之間的關(guān)系,可以建立圖形化程序,用戶可以根據(jù)自己需要定制邏輯單元之間的傳輸關(guān)系,用戶不需要寫代碼,就可以完成編程。
[0081]本發(fā)明還提供一種程序中邏輯單元之間數(shù)據(jù)傳輸?shù)南到y(tǒng),包括:
[0082]若干邏輯單元,其中至少包括第一邏輯單元、第二邏輯單元;每個(gè)所述邏輯單元包含具有特定關(guān)聯(lián)性的一組數(shù)據(jù),所述邏輯單元繼承于該邏輯單元所屬類型的基類,所述基類包含輸出數(shù)據(jù)模塊和接收輸入數(shù)據(jù)模塊,所述輸出數(shù)據(jù)模塊用于輸出數(shù)據(jù),所述接收輸入數(shù)據(jù)模塊用于接收數(shù)據(jù);
[0083]所述邏輯單元之間的關(guān)系,所述關(guān)系具有方向和類型;
[0084]解析模塊,用于解析所述關(guān)系,當(dāng)解析所述第一邏輯單元指向所述第二邏輯單元的數(shù)據(jù)關(guān)系時(shí),實(shí)現(xiàn)所述第一邏輯單元的數(shù)據(jù)輸出到所述第二邏輯單元。
[0085]優(yōu)選的,
[0086]所述解析模塊還包含:
[0087]第一判斷模塊,用于首先打開(kāi)所述第一邏輯單元時(shí),判斷所述第一邏輯單元是否存在數(shù)據(jù)關(guān)系指向其它邏輯單元,若存在數(shù)據(jù)關(guān)系指向其它邏輯單元,則產(chǎn)生輸出數(shù)據(jù);否則不產(chǎn)生輸出數(shù)據(jù)。
[0088]優(yōu)選的,
[0089]所述系統(tǒng)還包含:
[0090]第二判斷模塊,用于判斷所述第一邏輯單元的輸出數(shù)據(jù)是否發(fā)生改變;
[0091]通知發(fā)送模塊,用于當(dāng)所述第二判斷模塊判斷第一邏輯單元的輸出數(shù)據(jù)發(fā)生改變時(shí)發(fā)出通知;
[0092]監(jiān)聽(tīng)模塊,用于監(jiān)聽(tīng)是否存在所述第一邏輯單元的輸出數(shù)據(jù)已改變的通知;
[0093]數(shù)據(jù)替換模塊,用于實(shí)現(xiàn)所述第二邏輯單元根據(jù)所述數(shù)據(jù)關(guān)系找到所述第一邏輯單元,將所述第一邏輯單元發(fā)生改變后的輸出數(shù)據(jù)作為所述第二邏輯單元的輸入數(shù)據(jù)。
[0094]優(yōu)選的,
[0095]所述系統(tǒng)還