• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    應(yīng)用軟件復(fù)雜條件處理的詳細(xì)設(shè)計(jì)方法
    —— N+2表法

    2013-03-23 01:18:54
    關(guān)鍵詞:元組邏輯編碼

    王 詠

    (溫州大學(xué)物理與電子信息工程學(xué)院,浙江溫州 325035)

    應(yīng)用軟件復(fù)雜條件處理的詳細(xì)設(shè)計(jì)方法
    —— N+2表法

    王 詠

    (溫州大學(xué)物理與電子信息工程學(xué)院,浙江溫州 325035)

    對(duì)于應(yīng)用軟件中復(fù)雜條件處理或加工的詳細(xì)設(shè)計(jì),針對(duì)傳統(tǒng)的過程設(shè)計(jì)工具存在的問題,依據(jù)集合論提出了N+2表方法.該方法通過構(gòu)造特定結(jié)構(gòu)的二維表——N+2表來快速獲取處理邏輯,用行掃描算法替代嵌套的多層條件判斷以實(shí)現(xiàn)處理邏輯,更為重要的是該方法使得條件組合、動(dòng)作以及二者之間的映射獨(dú)立于程序和算法,通過元組增、刪、改操作就可以實(shí)現(xiàn)處理邏輯的動(dòng)態(tài)變化.多個(gè)信息系統(tǒng)的開發(fā)實(shí)踐表明,該方法比傳統(tǒng)方法具有明顯的優(yōu)勢.

    復(fù)雜條件處理;詳細(xì)設(shè)計(jì)方法;N+2表

    詳細(xì)設(shè)計(jì)階段是軟件生命周期中的一個(gè)重要階段.詳細(xì)設(shè)計(jì)的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序[1].因此,在詳細(xì)設(shè)計(jì)階段,人們會(huì)根據(jù)需要選擇圖形、表格和語言等過程設(shè)計(jì)工具來簡明清晰地表示程序處理過程,即處理算法.

    應(yīng)用軟件的分析設(shè)計(jì)中經(jīng)常會(huì)涉及復(fù)雜條件的處理或加工問題,比如保險(xiǎn)、貸款等信息系統(tǒng),需要根據(jù)給出的多個(gè)條件的不同組合及其處理規(guī)則設(shè)計(jì)出處理算法.傳統(tǒng)方法是采用判定表[2]或判定樹作為過程設(shè)計(jì)工具,即首先構(gòu)造一張判定表(如表1所示),然后將其歸并去除冗余優(yōu)化為判定樹,最后將判定樹轉(zhuǎn)變?yōu)榍短椎亩鄬佣鄺l件判斷(IF-THEN-ELSE)從而得到處理算法.隨著條件數(shù)量的增多和每種條件取值的增多,這種傳統(tǒng)方法將存在以下3個(gè)問題:

    表1 傳統(tǒng)判定表

    1)快速獲取處理邏輯困難

    條件越多,每種條件的取值越多,條件的組合就會(huì)越多,判定表也就會(huì)越復(fù)雜,判定表向判定樹的轉(zhuǎn)換也隨之會(huì)變得更加復(fù)雜,因此快速獲取處理邏輯很難做到,同時(shí)也會(huì)使獲取處理邏輯這一過程更加依賴于分析設(shè)計(jì)人員的經(jīng)驗(yàn).

    2)業(yè)務(wù)邏輯動(dòng)態(tài)改變無法實(shí)現(xiàn)

    處理邏輯或處理規(guī)則是否能夠?qū)崿F(xiàn)動(dòng)態(tài)改變是很多應(yīng)用軟件用戶關(guān)注的問題之一.對(duì)于復(fù)雜條件的處理或加工,這就要求條件組合和處理動(dòng)作之間的對(duì)應(yīng)關(guān)系能夠動(dòng)態(tài)改變.但是采用傳統(tǒng)的判定表等方法,條件組合和處理動(dòng)作的對(duì)應(yīng)關(guān)系都是通過編程在代碼級(jí)定義的,因而,一旦軟件開發(fā)完成,這種對(duì)應(yīng)關(guān)系就無法改變,除非每次業(yè)務(wù)邏輯改變都去修改源代碼,否則無法實(shí)現(xiàn)業(yè)務(wù)邏輯的動(dòng)態(tài)變化要求.

    3)程序可讀性和維護(hù)性差

    傳統(tǒng)做法中將判定表轉(zhuǎn)換為判定樹之后,詳細(xì)設(shè)計(jì)人員采用嵌套的多層多條件判斷(IFTHEN-ELSE)來實(shí)現(xiàn)處理邏輯.隨著條件的增多和每種條件的取值的增多,條件判斷的嵌套層次數(shù)和條件數(shù)量都會(huì)隨之增加,這就使得程序算法變得更加繁冗復(fù)雜,程序可讀性和維護(hù)性隨之大幅下降.

    近十年來國內(nèi)外涉及判定表的研究大都與問題1)相關(guān).在這些工作中判定表是一個(gè)重要的獲取加工邏輯的工具,學(xué)者們在規(guī)則生成算法、規(guī)則約簡以及判定表處理性能等方面提出了不少方法.

    張福源團(tuán)隊(duì)、王立榮團(tuán)隊(duì)和張永強(qiáng)的工作雖然屬于軟件測試范疇,但是他們研究的測試用例技術(shù)是由因果圖借助判定表生成測試用例,這實(shí)質(zhì)上就是借助判定表獲取輸入(處理)邏輯.張福源團(tuán)隊(duì)和王立榮團(tuán)隊(duì)分別提出了由因果圖生成判定表的算法和改進(jìn)算法,提高了判定表的生成效率[3-4];張永強(qiáng)提出了基于粗糙集理論的判定表約簡步驟和方法,簡化了判定表的歸并和優(yōu)化過程[5];C.Grana團(tuán)隊(duì)提出減小判定表大小來降低復(fù)雜度的方法[6].他們對(duì)判定表的定義進(jìn)行了擴(kuò)充,提出了或判定表(OR-decision table)的概念,將傳統(tǒng)的判定表稱為與判定表(AND- decision table),通過把與判定表中相同的動(dòng)作合并形成或判定表以達(dá)到降低判定表大小的目的.Phaisarn Sutheebanjard等人提出了將或判定表快速轉(zhuǎn)換為判定樹的算法,通過加快判定表轉(zhuǎn)化為判定樹的過程來提高處理的性能[7].

    國防科技大學(xué)謝紅衛(wèi)等人[8]在故障樹分析軟件MFTA的開發(fā)中采用字符串表格組件實(shí)現(xiàn)判定表的直接輸入,實(shí)現(xiàn)了系統(tǒng)內(nèi)邏輯關(guān)系的動(dòng)態(tài)變化.這對(duì)于問題2)的解決提供了一種獨(dú)特的思路.除此之外,業(yè)務(wù)處理管理領(lǐng)域的工作也涉及判定表的應(yīng)用研究,成果主要是給出應(yīng)用判定表獲取和編輯商業(yè)邏輯的方法和步驟[9-10].同時(shí),有軟件公司開發(fā)出了基于判定表的業(yè)務(wù)邏輯管理軟件,如IBM公司的WebSphere ILOG JRules BRMS①IBM? WebSphere? ILOG? JRules BRMS 版本7.1文檔.參見:http://pic.dhe.ibm.com/infocenter/brjrules/v7r1/index.jsp?topic=%2Fcom.ibm.websphere.ilog.jrules.doc%2FContent%2FBusiness_Rules%2FDocumentation%2F_pubsk el%2FJRules%2Fps_JRules_Global510.html.,Catalyst development公司的LogicGem②LogicGem 3.0(Logic Processor and Decision Table Analysis Tool).參見:http://www.catalyst.com/products/logicgem/index.html.等,在其中能夠靈活地編輯和管理規(guī)則,并對(duì)規(guī)則進(jìn)行完備性檢查,最后自動(dòng)生成特定語言的業(yè)務(wù)規(guī)則程序源代碼,這為信息系統(tǒng)的開發(fā)提供了極大的便利.但是,這些方法仍然采用的是傳統(tǒng)的判定表形式和處理方法,不能很好地解決上述提及的2)和3)的問題.

    遺憾的是鮮有文章專門探討判定表在詳細(xì)設(shè)計(jì)階段存在的問題及改進(jìn),這似乎也印證了圖靈獎(jiǎng)得主Sifakis教授在CCF CNCC2011大會(huì)上的所講,“在廣大計(jì)算機(jī)科學(xué)研究人員的研究日程和計(jì)劃上,系統(tǒng)設(shè)計(jì)并未得到足夠的重視”[11].

    為了完整解決上述問題,筆者依據(jù)集合論提出了一種全新的詳細(xì)設(shè)計(jì)方法——N+2表法,該方法通過構(gòu)造一張?zhí)囟ńY(jié)構(gòu)的二維表(本文稱之為N+2表)以確立條件組合和動(dòng)作之間的映射,從而方便快速地獲取處理邏輯.這些處理邏輯表現(xiàn)為該二維表中的元組,因此對(duì)它的處理算法不再是復(fù)雜的多層多條件判斷而是簡單的行選擇,從而使得處理算法簡單高效.更為重要的是該方法使得條件組合、處理動(dòng)作以及二者之間的映射獨(dú)立于程序和算法,因而能夠很好地實(shí)現(xiàn)處理邏輯動(dòng)態(tài)變化的要求.

    1 方法原理

    根據(jù)集合論,每個(gè)條件可以看成是一個(gè)集合,該條件的所有取值就是該集合的元素.

    定義1(條件集合) 如果條件D有m個(gè)取值,則條件D定義為一個(gè)基數(shù)為m的集合,條件D的諸個(gè)取值就是該條件集合的元素.

    定義2(條件組合) 條件組合定義為:

    定義3(條件組合的總個(gè)數(shù)) 條件組合的總個(gè)數(shù)M定義為:

    M等于各集合Di的基數(shù)之積.每一個(gè)動(dòng)作或計(jì)算模型也可以看成是一個(gè)集合的元素,該集合就是動(dòng)作或計(jì)算模型集合.每一個(gè)條件組合與一個(gè)動(dòng)作或計(jì)算模型相關(guān),一個(gè)動(dòng)作或計(jì)算模型可以與多個(gè)條件組合相關(guān),因此動(dòng)作集合的基數(shù)k小于等于條件組合的總個(gè)數(shù)M.

    定義4(動(dòng)作或計(jì)算模型集合) 動(dòng)作或計(jì)算模型定義為:

    該集合的元素Aj可以表示每一個(gè)動(dòng)作或計(jì)算模型.

    對(duì)于復(fù)雜條件處理問題,如果能夠確定條件組合和動(dòng)作之間的映射關(guān)系就意味著獲取了處理邏輯.借助上述定義可以明確:獲取處理邏輯的實(shí)質(zhì)就是找出上述公式(1)中笛卡爾集的每一元組(d1, d2, d3,?, dn)與公式(3)中動(dòng)作或計(jì)算模型集合A中元素Aj存在的映射關(guān)系,也就是說,一旦能夠表示出公式(1)和(3)的映射關(guān)系,也就獲取了該問題的處理邏輯或處理規(guī)則.如果能夠方便快速地表達(dá)公式(1)和(3)的映射關(guān)系就能實(shí)現(xiàn)快速獲取處理邏輯.

    借助上述定義還可以看到:處理邏輯發(fā)生變化,其實(shí)質(zhì)就是公式(3)中某個(gè)動(dòng)作或計(jì)算模型元素發(fā)生變化或是公式(1)和(3)的映射發(fā)生改變,如果能夠不修改源程序就能實(shí)現(xiàn)二者的改變,就能實(shí)現(xiàn)處理規(guī)則的動(dòng)態(tài)改變.

    由于笛卡爾集可以表示為一個(gè)二維表[12],因此,本文提出一種基于二維表的方法來解決傳統(tǒng)判定表方法在復(fù)雜條件情況下存在的問題.

    2 N+2表法

    由于笛卡爾集可以表示為一個(gè)二維表,因此公式(1)定義的n個(gè)條件的條件組合可以用一張n列二維表表示,表中的一列表示一個(gè)條件集合,一行(即元組)表示條件的一個(gè)組合.為了提高處理性能,將該二維表再增加2列,一列表示公式(3)定義的動(dòng)作集合,另一列用于表示條件組合的編碼.由此構(gòu)造的這個(gè)n+2列二維表本文稱之為N+2表,如表2所示.基于N+2表進(jìn)行復(fù)雜條件處理的詳細(xì)設(shè)計(jì)方法本文稱之為N+2表法.

    表2 N+2表的結(jié)構(gòu)

    下面詳細(xì)介紹該方法中N+2表的構(gòu)造、處理邏輯實(shí)現(xiàn)算法和方法步驟.

    2.1 N+2表的構(gòu)造

    根據(jù)需求,如果問題域中涉及的條件有n個(gè),那么N+2表的結(jié)構(gòu)就為n+2列的二維表.第1列到第n列對(duì)應(yīng)n個(gè)條件,第n+1列存放動(dòng)作或計(jì)算模型,第n+2列存放條件組合編碼.該條件組合編碼是一個(gè)n位編碼,每位代表一個(gè)條件的某個(gè)取值,每一條件取值用一位編碼表示,編碼規(guī)則由設(shè)計(jì)人員自主定義.假定最高位為第一位,第一位代表第一個(gè)條件的某個(gè)取值,第二位代表第二個(gè)條件的某個(gè)取值,以此類推,由此可由該編碼唯一標(biāo)識(shí)一個(gè)條件組合的取值,也就是該N+2表的一行元組.

    我們可以根據(jù)需求將各條件的組合和動(dòng)作添加到該N+2表中,其中每行元組包括n列的條件組合信息、1列的動(dòng)作信息和1列的條件組合編碼.顯然,得到了這個(gè)二維表中各元組數(shù)據(jù)實(shí)質(zhì)上就是獲得了條件組合和動(dòng)作二者的對(duì)應(yīng)關(guān)系,即獲得了公式(1)和(3)的映射,這其實(shí)就是獲得了該復(fù)雜條件判斷的處理邏輯.

    表3 判斷二維表結(jié)構(gòu)示例

    例如:某處理涉及性別、年齡、學(xué)歷、婚否4個(gè)條件,則構(gòu)造的N+2表是一個(gè)6(4+2)列的二維表,如表3所示.表3前4列對(duì)應(yīng)4個(gè)條件,第5列存放動(dòng)作或計(jì)算模型,第6列存放4位條件組合編碼,分別表示性別、年齡、學(xué)歷、婚否四個(gè)條件的某個(gè)取值.假定條件取值編碼規(guī)則為“性別”條件取值為“男”用“1”表示,“年齡”條件取值在30 – 39歲之間用“c”表示,“學(xué)歷”條件取值為本科用“5”表示,“婚否”條件取值為已婚用“1”表示,那么,“性別為男、年齡在30 – 39歲之間、學(xué)歷為本科、婚否為已婚”這一條件組合編碼則為“1c51”.

    2.2 處理邏輯實(shí)現(xiàn)算法

    構(gòu)造了上述的N+2表后,就可以根據(jù)需求將各條件及其動(dòng)作以元組(行)的方式插入到表中.N+2表中的所有元組實(shí)質(zhì)上就是該復(fù)雜條件判斷問題的處理邏輯,此時(shí),要實(shí)現(xiàn)這個(gè)處理邏輯將不再需要多層嵌套的多條件判斷,而只需用簡單的行選擇算法,即逐行掃描N+2表以尋找與輸入的條件組合編碼相同的元組(行)即可,如果找到,則該元組的動(dòng)作或計(jì)算模型就是所需結(jié)果,如果沒有找到,則說明處理規(guī)則還需要補(bǔ)充,可以給出提示.

    基于N+2表的復(fù)雜條件處理算法如圖1所示.圖1中t[i]表示N+2表中的第i行元組,“t[i]條件編碼”表示該表中第i行元組的條件編碼的分量值.

    如果采用RDBMS建立上述N+2表,上述處理的實(shí)現(xiàn)將變得更加簡單,我們就可以直接使用RDBMS提供的元組增、刪、改操作獲取處理邏輯,使用“SELECT-FROM-WHERE”查詢語句實(shí)現(xiàn)處理.同時(shí),處理邏輯表現(xiàn)為二維表中的元組,通過修改元組數(shù)據(jù)就可以方便實(shí)現(xiàn)處理邏輯的改變,這時(shí)處理邏輯的改變是獨(dú)立于程序和算法的,因而不需修改源程序就能實(shí)現(xiàn)處理邏輯的動(dòng)態(tài)改變.

    圖1 基于判定二維表的復(fù)雜條件處理算法

    2.3 N+2表法方法步驟

    針對(duì)復(fù)雜條件處理的詳細(xì)設(shè)計(jì),可以應(yīng)用N+2表法進(jìn)行,其主要步驟如下:

    第一步:分析、整理處理涉及的條件及其數(shù)量,條件的總個(gè)數(shù)即為n;

    第二步:構(gòu)造N+2表,即構(gòu)造n+2列的二維表,前n列存放n個(gè)條件的取值,第n+1列存放動(dòng)作或計(jì)算模型,第n+2列存放條件組合編碼,該條件組合編碼是一個(gè)n位編碼,每位代表一個(gè)條件的某個(gè)取值,每一條件取值用一位編碼表示,編碼規(guī)則由設(shè)計(jì)人員自主定義,條件組合編碼唯一標(biāo)識(shí)每個(gè)條件組合,是N+2表的主鍵;

    第三步:列出每個(gè)條件的不同取值,用1位編碼表示,編碼規(guī)則自定;

    第四步:建立該N+2表(可在RDBMS中建立);

    第五步:根據(jù)需求將各條件及其動(dòng)作以元組(行)的方式插入到表中,每行元組表示一個(gè)處理邏輯或處理規(guī)則;

    第六步:根據(jù)2.2中給出的算法編碼.

    3 應(yīng)用實(shí)例

    筆者在研發(fā)某高校宣傳獎(jiǎng)勵(lì)綜合信息系統(tǒng)時(shí)應(yīng)用上述N+2表法簡便高效地解決了復(fù)雜條件處理問題.該系統(tǒng)是涵蓋高校對(duì)外宣傳獎(jiǎng)勵(lì)工作全業(yè)務(wù)過程的管理信息系統(tǒng),功能包括作品收錄、作品審核、作品獎(jiǎng)勵(lì)、作品歸檔、調(diào)檔查詢、獎(jiǎng)勵(lì)規(guī)則設(shè)置等,其中的獎(jiǎng)勵(lì)計(jì)算和獎(jiǎng)勵(lì)規(guī)則設(shè)置功能是系統(tǒng)的核心功能。獎(jiǎng)勵(lì)計(jì)算功能要求按照獎(jiǎng)勵(lì)規(guī)則對(duì)已經(jīng)通過審核的作品自動(dòng)進(jìn)行獎(jiǎng)勵(lì)計(jì)算,獎(jiǎng)勵(lì)規(guī)則涉及的因素(條件)有9個(gè),分別是作者的單位部門、媒體級(jí)別、媒體類型、作品類型、作者身份、報(bào)刊版面、文字字?jǐn)?shù)、作品時(shí)長以及是否批閱轉(zhuǎn)發(fā),而每個(gè)條件又有多種不同的取值,獎(jiǎng)勵(lì)規(guī)則設(shè)置功能則要求實(shí)現(xiàn)每年都能改變部分具體的獎(jiǎng)勵(lì)規(guī)則.

    該獎(jiǎng)勵(lì)部分涉及的條件有9個(gè)之多,每個(gè)條件的取值少則3個(gè),多則9個(gè),如果采用傳統(tǒng)設(shè)計(jì)方法,不僅構(gòu)造判定表困難重重,容易出錯(cuò),而且隨后要快速得到清晰的處理邏輯也是非常困難的,更致命的是無法簡便地實(shí)現(xiàn)獎(jiǎng)勵(lì)規(guī)則的動(dòng)態(tài)變化.

    在上述功能的詳細(xì)設(shè)計(jì)過程中,我們按照2.3所述的N+2表方法步驟,構(gòu)造了2.1所述的N+2表,如表4所示.該獎(jiǎng)勵(lì)計(jì)算涉及的條件有9個(gè),因此該N+2表是11列(9+2)的二維表,其中前9列為9個(gè)條件,第10列是獎(jiǎng)金數(shù)額或計(jì)算公式,第11列是9位數(shù)構(gòu)成的條件組合編碼(每位代表一個(gè)條件的某個(gè)取值),其中條件組合編碼作為該表的鍵碼.

    表4 某高校宣傳獎(jiǎng)勵(lì)綜合信息系統(tǒng)獎(jiǎng)勵(lì)計(jì)算判定二維表

    表5 獎(jiǎng)勵(lì)計(jì)算判定二維表邏輯結(jié)構(gòu)

    把上述二維表在RDBMS中創(chuàng)建,其邏輯結(jié)構(gòu)如表5所示.之后,根據(jù)獎(jiǎng)勵(lì)文件(共有21頁)將各條件組合、獎(jiǎng)金金額和條件組合編碼填入該二維表中,得到的二維表中的元組數(shù)據(jù)實(shí)質(zhì)上就是獎(jiǎng)勵(lì)規(guī)則.獎(jiǎng)勵(lì)計(jì)算功能的實(shí)現(xiàn)按照2.2所述的算法,只需對(duì)表中的元組進(jìn)行行掃描即可實(shí)現(xiàn).這里直接使用RDBMS的SELECT-FROM-WHERE查詢就可高效簡便地實(shí)現(xiàn),無須使用多層多條件判斷.由于元組數(shù)據(jù)就是獎(jiǎng)勵(lì)規(guī)則,因此獎(jiǎng)勵(lì)規(guī)則設(shè)置功能實(shí)質(zhì)就是對(duì)表中元組的增加、修改和刪除,只要該二維表的結(jié)構(gòu)不發(fā)生變化,也就是條件的種類不發(fā)生變化,那么僅僅通過增加、刪除和修改二維表的元組數(shù)據(jù)就能方便地實(shí)現(xiàn)獎(jiǎng)勵(lì)規(guī)則的改變,而不需要修改算法和程序,真正實(shí)現(xiàn)了處理邏輯動(dòng)態(tài)變化的要求.

    4 結(jié) 論

    本文依據(jù)集合論提出了N+2表法,通過構(gòu)造特定結(jié)構(gòu)的二維表N+2表快速獲取復(fù)雜條件處理問題的處理邏輯,通過對(duì)該表的行掃描實(shí)現(xiàn)處理邏輯,通過對(duì)該表中元組的增、刪、改操作實(shí)現(xiàn)處理邏輯的動(dòng)態(tài)變化.自2011年6月起,筆者在多個(gè)應(yīng)用系統(tǒng)的開發(fā)實(shí)踐中應(yīng)用該方法進(jìn)行復(fù)雜條件處理的詳細(xì)設(shè)計(jì),實(shí)踐表明,與傳統(tǒng)詳細(xì)設(shè)計(jì)工具相比,該方法在以下3方面有明顯優(yōu)勢:

    1)獲取處理邏輯 為了將需求轉(zhuǎn)變?yōu)檩^為清晰便于實(shí)現(xiàn)的處理規(guī)則,采用傳統(tǒng)的判定表和判定樹方法需要分析設(shè)計(jì)人員多次進(jìn)行合并和轉(zhuǎn)換以實(shí)現(xiàn)規(guī)則的約簡,這使得處理邏輯的獲取時(shí)間較長,同時(shí)也非常依賴于分析設(shè)計(jì)人員的經(jīng)驗(yàn).而N+2表方法只需經(jīng)過簡單的條件分析就能方便快速地構(gòu)造出一張二維表形式的N+2表,這張二維表中的元組就是處理邏輯(規(guī)則),因此,不再需要依賴設(shè)計(jì)人員依據(jù)經(jīng)驗(yàn)進(jìn)行規(guī)則約簡就能方便、迅速、直觀地獲取處理邏輯(規(guī)則).

    2)算法實(shí)現(xiàn) 傳統(tǒng)的判定表和判定樹為了實(shí)現(xiàn)處理邏輯(規(guī)則)需要多層多條件的復(fù)雜判斷,這使得算法繁冗復(fù)雜,可讀性和可維護(hù)性都較差,這也就是傳統(tǒng)的判定表須進(jìn)行多次合并和轉(zhuǎn)換以進(jìn)行規(guī)則約簡的根本原因,目的在于降低判斷的復(fù)雜度,增強(qiáng)程序的可讀性和可維護(hù)性.而使用N+2法,二維表中的元組就是處理邏輯,實(shí)現(xiàn)處理邏輯時(shí)只需進(jìn)行“行選擇”即可,不僅算法簡單,程序易實(shí)現(xiàn),更為重要的是可以不必對(duì)眾多規(guī)則進(jìn)行約簡,處理效率也較高.假設(shè)整個(gè)處理涉及5個(gè)條件,每個(gè)條件有4個(gè)不同取值,則條件的組合為45=1 024種,即至多應(yīng)有1 024條處理規(guī)則才能完整涵蓋整個(gè)處理,如果采用傳統(tǒng)的判定表,為了獲取處理加工邏輯,即使進(jìn)行長時(shí)間約簡,一般情況下算法的復(fù)雜程度也仍會(huì)十分驚人,但如果采用N+2表法,只需構(gòu)造一張7列的二維表,其中的每一行即表示一個(gè)處理規(guī)則,要完整涵蓋整個(gè)處理只需向表中添加1 024行規(guī)則即可,同時(shí)也不需進(jìn)行規(guī)則約簡,直接通過執(zhí)行“行選擇”操作就可以實(shí)現(xiàn)處理邏輯.

    3)適應(yīng)變化的能力 傳統(tǒng)方法中,處理邏輯是嵌入在程序代碼中的,因而,適應(yīng)變化的能力很差,一旦處理邏輯發(fā)生變化,就必須修改源程序代碼.盡管有一些商業(yè)軟件能夠進(jìn)行規(guī)則或邏輯的管理、審查以至自動(dòng)生成處理邏輯的源代碼,但是,這些規(guī)則或邏輯仍然是嵌入到源代碼中的,也無法實(shí)現(xiàn)處理邏輯的動(dòng)態(tài)改變要求.而N+2表法中的處理邏輯就是二維表的元組,因此,這些處理邏輯與關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)一樣是完全獨(dú)立于程序和算法的,只需通過增、刪、改元組操作就能實(shí)現(xiàn)處理規(guī)則的動(dòng)態(tài)改變,因而適應(yīng)變化的能力強(qiáng),很好地解決了傳統(tǒng)工具無法實(shí)現(xiàn)規(guī)則動(dòng)態(tài)變化的要求.

    隨著信息技術(shù)在各領(lǐng)域的應(yīng)用普及,各類應(yīng)用系統(tǒng)研發(fā)的數(shù)量日益增多,系統(tǒng)要求也日益提高,這就要求我們勇于對(duì)傳統(tǒng)的軟件工程方法和技術(shù)進(jìn)行改進(jìn)和創(chuàng)新,從而推動(dòng)軟件工程持續(xù)不斷的發(fā)展.

    [1] 張海藩.軟件工程導(dǎo)論[M].第五版.北京:清華大學(xué)出版社, 2008:117-118.

    [2] Codasyl.A Modern Appraisal of Decision Tables:Report of the Decision Table Task Group [R].New York:ACM, 1982:2-4.

    [3] 張福源, 楊云.基于因果圖的軟件測試工具的研究與設(shè)計(jì)[J].計(jì)算機(jī)學(xué)報(bào), 1993, 16(3):219-224.

    [4] 王立榮, 何煒.基于因果圖的軟件測試方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用, 2010, 19(4):104-107.

    [5] 張永強(qiáng), 劉彥瑞.基于粗糙集的因果圖方法簡化研究[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2006, 16(7):42-44.

    [6] Grana C, Borghesani D, Cucchiara R.Optimized block-based connected components labeling with decision trees [J].IEEE Transactions on Image Processing, 2010, 19(6):1596-1609.

    [7] Sutheebanjard P, Premchaiswadi W.Fast Convert OR-Decision Table to Decision Tree [C] //Sterritt R.2010 Eighth International Conference on ICT and Knowledge Engineering.New York:IEEE, 2010:37-40.

    [8] 謝紅衛(wèi), 夏家海, 張明.基于立方體理論的MFTA軟件設(shè)計(jì)與實(shí)現(xiàn)[J].國防科技大學(xué)學(xué)報(bào), 2000, 22(15):99-102.

    [9] Auechaikul T, Vatanawood W.A Development of Business Rules with Decision Tables for Business Processes [C] //Sterritt R.TENCON 2007-2007 IEEE Region 10 Conference.New York:IEEE, 2007:1-4.

    [10] Thirumaran M, Dhavachelvan P, Subhashree S.Business Rule Management Framework for N-Tier E-Business Applications [J].International Journal of Managing Public Sector Information and Communication Technologies, 2010, 1(1):1-14.

    [11] Sifakis J.GreenOrbs綠野千傳項(xiàng)目組譯.計(jì)算機(jī)科學(xué)的愿景:系統(tǒng)發(fā)展觀[J].中國計(jì)算機(jī)學(xué)會(huì)通訊, 2012, 8(3):11-18.

    [12] 王珊, 薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].第四版.北京:高等教育出版社, 2006:41-44.

    The Detailed Design Method for Complicated Multi-conditions Process of Application Software —— N+2 Table

    WANG Yong
    (School of Physics and Electronic Information Engineering, Wenzhou University, Wenzhou, China 325035)

    During the development of application software, many problems will occur when using traditional tools in detailed design stage of complicated multi-conditions process.A new method called ―N+2 table” is then proposed on the basis of set theory in this paper.With the method, a particular two-dimensional table, N+2 table, is constructed to acquire process logics rapidly.When programming process logics, the algorithm of row-scanning is adopted instead of nested multi-layer ―IF-THEN-ELSE” structures.Furthermore, the method makes independent of algorithm the combinations of conditions, actions and the mapping between them.Thus it makes the dynamic changes of process logics come true just by inserting, deleting and updating tuples.The method has been applied to the development of some application system.Practice indicates that it has obvious advantages over the traditional methods.

    Complicated Multi-conditions Process;Detailed Design Method;N+2 Table

    TP311.52

    A

    1674-3563(2013)04-0032-08

    10.3875/j.issn.1674-3563.2013.04.006 本文的PDF文件可以從xuebao.wzu.edu.cn獲得

    (編輯:王一芳)

    2013-03-01

    王詠(1968- ),女,湖北武漢人,高級(jí)工程師,碩士,研究方向:軟件工程,商務(wù)智能

    猜你喜歡
    元組邏輯編碼
    刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
    法律方法(2022年2期)2022-10-20 06:44:24
    邏輯
    創(chuàng)新的邏輯
    Python核心語法
    基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
    《全元詩》未編碼疑難字考辨十五則
    子帶編碼在圖像壓縮編碼中的應(yīng)用
    電子制作(2019年22期)2020-01-14 03:16:24
    海量數(shù)據(jù)上有效的top-kSkyline查詢算法*
    Genome and healthcare
    基于減少檢索的負(fù)表約束優(yōu)化算法
    临沂市| 北安市| 苏尼特右旗| 清流县| 凯里市| 凉城县| 资中县| 青河县| 容城县| 绥宁县| 右玉县| 台东县| 新沂市| 富宁县| 西乌| 和硕县| 大港区| 巴彦淖尔市| 诸暨市| 汝州市| 彭泽县| 北川| 陇西县| 成都市| 绥滨县| 柳河县| 台东市| 周口市| 微山县| 延边| 无锡市| 寿宁县| 辽阳县| 湛江市| 金乡县| 宁乡县| 清流县| 兴和县| 洪湖市| 恩平市| 津市市|