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

    基于交互的軟件模型研究

    2016-04-12 00:00:00劉增鎖師勝利王靜紅
    現(xiàn)代電子技術(shù) 2016年15期

    摘 要: 從Peter Wegner的交互計算理論出發(fā),將軟件中的交互與計算進行分離,提出了基于交互的軟件模型。對交互單元、無交互構(gòu)件、交互運行支撐環(huán)境以及基于交互的軟件模型進行了詳細敘述,并提出軟件的開發(fā)過程可以劃分為交互設計和無交互構(gòu)件生產(chǎn)兩個獨立的階段,無交互構(gòu)件的復用是軟件復用的重要方式,基于交互的軟件將形成不同于C/S,B/S的網(wǎng)構(gòu)軟件體系結(jié)構(gòu)。

    關鍵詞: 交互計算; 交互模型; 交互運行支撐環(huán)境; 網(wǎng)構(gòu)軟件

    中圖分類號: TN711?34 文獻標識碼: A 文章編號: 1004?373X(2016)15?0119?04

    Abstract: Proceeding from the interaction computing theory proposed by Peter Wegner, the software model based on inte?raction is proposed by separating the interaction and computation from software. The software model based on interaction, inte?raction unit, no?interaction component and interaction run?time infrastructure are described in detail. It is pointed that the software development process can be divided into two independent stages of interaction design and no?interaction component production, the multiplex of the no?interaction component is an important method of software multiplex, and the software based on interaction can form the internetware architecture different from C/S and B/S.

    Keywords: interaction computing; interaction model; interaction run?time infrastructure; internetware

    1 交互計算模型

    長期以來,人們對軟件的認識一直處于探索過程中,傳統(tǒng)的圖靈機可計算理論認為,“可計算”意味著首先能夠把問題形式化,并設計一個復雜度合理的算法[1]。

    1.1 圖靈機與可計算

    圖靈機(Turing Machines)是為了研究可計算問題而構(gòu)思的一個理論裝置,它實現(xiàn)了人類對計算本質(zhì)的真正認識,是計算機科學中可計算性理論和計算復雜性理論的基礎。

    圖靈機可以定義為五元組:[TM=(S,Σ,Δ,S0,SF),]其中[S]是狀態(tài)集;[S0]是初始狀態(tài);[Σ]是輸入字符集;[Δ]是狀態(tài)轉(zhuǎn)換關系。一個圖靈機有一個工作帶完成輸入輸出,工作帶的左右兩端可以無限延長。圖靈機工作時從工作帶上讀入字符,然后根據(jù)轉(zhuǎn)換規(guī)則[Δ]確定輸出字符、下一狀態(tài)和下一動作(右移、左移),輸出字符被寫到工作帶上,然后執(zhí)行動作繼續(xù)計算,直到最終狀態(tài),最后工作帶上的內(nèi)容就是輸出。

    1.2 交互計算理論

    Peter Wegner在算法和圖靈機理論研究的基礎上提出了交互計算模型[2?3]。Peter Wegner認為:從理論上說,“軟件危機”是由于圖靈機并非表示處理人類思維的合理模型,面向?qū)ο髮⒔换ヒ肫渲校珗D靈機無法描述交互式計算[4],必須用交互機(IM)替換圖靈機(TM)來描述。

    定義1 交互性質(zhì)[5]

    一個計算主體具有交互性質(zhì),是指它與不受它控制的外部環(huán)境存在交互的輸入和輸出動作。

    定義2 交互機(Interaction machine)[5]

    對圖靈機(TM)用具有交互性質(zhì)的輸入和輸出動作擴展,就得到交互機(IM)。他們的不同之處在于:TM的輸入帶是確定的,而IM的輸入流是不確定的,輸入動作由不在其控制之下的外部機制動態(tài)產(chǎn)生。

    一個交互機(IM)是用具有交互性質(zhì)的輸入和輸出動作擴展了的圖靈機(TM),TM具有確定的輸入帶,而IM的輸入流的元素是由不在其控制之下的一個外部機制動態(tài)提供的。

    2 軟件中的交互行為

    WEGNER Peter的理論啟發(fā)人們從軟件的交互行為入手認識軟件和軟件開發(fā)過程,改變以往以計算為核心的分析和認識方法。本文在交互計算理論的基礎上對這一思想進一步做了擴展,認為現(xiàn)代軟件的本質(zhì)是交互,一個軟件實際上是包含了1個或多個交互單元及相關無交互構(gòu)件的集合。關注的焦點將從軟件內(nèi)部執(zhí)行過程過渡到交互行為。

    2.1 交互單元

    軟件具有交互性質(zhì),一個交互單元就是一個交互機(IM)的具體實現(xiàn)。交互單元之間也可以存在交互關系,形成網(wǎng)狀關系結(jié)構(gòu),從而構(gòu)成一個規(guī)模更大的交互單元,最后形成一個完整的軟件,如圖1所示(交互單元A為主交互單元, 即軟件啟動后第一個運行的交互單元)。

    交互單元是一個具體實現(xiàn)的交互機,是人機交互對話的基本運行單位,它由交互界面、交互數(shù)據(jù)集、交互邏輯三部分組成。

    為了保存交互單元運行的輸入、輸出狀態(tài)信息,需要操作系統(tǒng)提供統(tǒng)一的交互運行支撐環(huán)境,交互單元經(jīng)過授權(quán)可以存取交互運行支撐環(huán)境(IRE)的相應數(shù)據(jù)區(qū)。

    為了與現(xiàn)有的軟件界面相匹配,交互單元可以按傳統(tǒng)意義上的窗體劃分,也可以按HTML/XML頁面劃分,還可以按特定的交互設備或交互區(qū)域劃分。為了將一個長的、復雜的處理過程分拆、封裝成多個交互單元,還可以虛擬一個交互界面,從而建立多個交互單元。

    交互單元可看作一個三元組,即:交互單元 =(交互界面[I,]交互數(shù)據(jù)集[D,]交互腳本S),見圖2。

    2.2 交互界面

    交互界面已經(jīng)不僅是用戶和計算機交流信息的界面,它實際上還決定了用戶使用軟件完成日常工作的處理邏輯,界面設計在很大程度上決定了軟件的功能模塊劃分。

    交互界面可以是個傳統(tǒng)意義上的窗體,也可以是一般的HTML/XML頁面,還可以是一個特定的交互設備和交互區(qū)域。界面設計只解決界面上有什么,只需要定義界面的構(gòu)成元素,而動作、事件的處理由交互腳本完成。界面元素應包括常見的各種Windows控件,每個界面元素都要有惟一的ID和NAME屬性。界面元素可以分為數(shù)據(jù)綁定元素和非綁定元素,數(shù)據(jù)綁定元素綁定到交互數(shù)據(jù)集的數(shù)據(jù)表中。

    操作簡單、賞心悅目的界面是軟件成功的基礎,WIMP風格界面已經(jīng)在Windows世界中得到了一致的認可,但目前各種軟件集成開發(fā)環(huán)境的IDE界面都使用各不相同的描述格式,例如VB的FRM,Delphi的DFM和PB的PBL等,互相之間不兼容,給大型應用軟件的開發(fā)帶來了極大的不便。因此,軟件界面描述應采用統(tǒng)一的標準,以XML格式為首選。典型的基于XML的界面描述語言有Mozilla基金會的XUI、微軟Longhorn平臺的XAML、Macromedia的MXML等,但其標準尚未統(tǒng)一。

    2.3 交互數(shù)據(jù)集

    交互數(shù)據(jù)集(Interaction Data Set)是獨立于物理數(shù)據(jù)庫之外、只提供給當前交互單元使用的數(shù)據(jù)集合。數(shù)據(jù)集中有1個或多個數(shù)據(jù)表,這些表可以來自同一個數(shù)據(jù)庫,也可以來自不同的數(shù)據(jù)源。交互界面元素只與數(shù)據(jù)島中的數(shù)據(jù)表進行綁定。交互數(shù)據(jù)集類似于ADO.Net中的DataSet,也是和物理數(shù)據(jù)庫斷開的,表示數(shù)據(jù)的緩存,具有類似數(shù)據(jù)庫的結(jié)構(gòu)屬性,如表、列、關系、約束等。但交互數(shù)據(jù)集和交互腳本都在客戶端存在和運行,以便實現(xiàn)交互腳本、交互控件的讀寫處理,這一點和ADO.Net有所不同。

    交互數(shù)據(jù)集與物理數(shù)據(jù)庫之間的連接由交互運行支撐環(huán)境(IRE)維護。交互腳本可以通過調(diào)用IRE方法完成交互數(shù)據(jù)集的填充、刷新、保存等操作,還可以通過調(diào)用無交互構(gòu)件對交互數(shù)據(jù)集中的數(shù)據(jù)進行處理。

    交互數(shù)據(jù)集設計結(jié)果應以XML方式存儲。數(shù)據(jù)島中除了保存數(shù)據(jù)表的數(shù)據(jù)格式外,還必須提供范例數(shù)據(jù),這是交互測試的基礎。交互單元初始化運行時顯示的是范例數(shù)據(jù),交互腳本填寫交互數(shù)據(jù)集后交互界面顯示的才是真正的運行數(shù)據(jù)。范例數(shù)據(jù)是交互模型初始運行的基礎,其作用在于使得交互邏輯更直觀,同時也可以對交互腳本和無交互構(gòu)件進行初步演示和測試。

    交互數(shù)據(jù)集中的數(shù)據(jù)表可以與交互界面的元素進行綁定,它們之間的一致性由軟件交互支撐環(huán)境保證。

    2.4 交互腳本

    交互腳本(Interaction Script)用來描述各交互元素之間的交互邏輯,是交互單元運行的核心。交互邏輯用來處理操作員以及交互界面中各元素之間的互動。

    交互腳本的功能包括:調(diào)用交互支撐環(huán)境刷新交互界面;調(diào)用數(shù)據(jù)集對象或無交互構(gòu)件操作交互數(shù)據(jù)集;控制交互界面的交互元素;調(diào)用交互支撐環(huán)境將交互數(shù)據(jù)集中的數(shù)據(jù)寫入數(shù)據(jù)庫;讀寫公共交互環(huán)境變量;其他功能。

    交互腳本是通過調(diào)用無交互構(gòu)件完成主要數(shù)據(jù)處理過程的,在交互設計階段,需要在交互腳本編寫過程中給出無交互構(gòu)件的調(diào)用接口,但不應涉及無交互構(gòu)件的具體實現(xiàn)。和以往的高級語言如VB,VC++等不同,交互腳本語言應以VBScript/JavaScript/ActionScript為基礎來設計,以大大降低交互設計的難度和進度。

    2.5 無交互構(gòu)件

    為了把計算行為與交互行為進行分離,在這里把交互中的計算過程獨立出來,組成無交互構(gòu)件集,交互單元通過調(diào)用無交互構(gòu)件實現(xiàn)數(shù)據(jù)的處理過程。

    一般認為,構(gòu)件是軟件系統(tǒng)中具有一定意義的、相對獨立的、可復用的軟件實體。這里的無交互構(gòu)件還應具備如下性質(zhì):

    (1) 無交互構(gòu)件是編譯過、可供交互單元調(diào)用的構(gòu)件程序;

    (2) 無交互界面不能對交互界面進行操作,具有界面無關性;

    (3) 可以部署到任意網(wǎng)絡位置,并且支持調(diào)用時按需及時下載;

    (4) 可以在授權(quán)情況下進行分拆和組合。

    這樣不同的交互單元可以調(diào)用同一個無交互構(gòu)件;無交互構(gòu)件之間也可以互相調(diào)用。

    3 基于交互的軟件系統(tǒng)

    3.1 交互運行支撐環(huán)境

    交互單元本身是不能獨立運行的,交互界面、交互數(shù)據(jù)集僅僅是對應的XML描述,交互單元的啟動、輸入、輸出都由交互運行支撐環(huán)境(Interaction Runtime Environment)來管理和維護。IRE的功能應包括:創(chuàng)建、維持上下文交互環(huán)境;提供交互單元運行所需要的公共類庫;提供交互數(shù)據(jù)集訪問類庫;對交互腳本進行解釋執(zhí)行;繪制、管理交互界面;對交互腳本提供動態(tài)修改交互元素屬性的方法。

    IRE的特點是其通用性,它是所有符合基于交互的應用軟件的運行平臺,但它不是應用軟件的一部分。IRE既可以集成在瀏覽器(如IE)中,也可以作為獨立的交互應用瀏覽器。

    3.2 基于交互的軟件系統(tǒng)模型

    通過上述分析,一個完整的軟件從邏輯上可以劃分為交互層、構(gòu)件層兩個層次,見圖3。交互層描述了軟件的交互行為,而構(gòu)件層則完成數(shù)據(jù)的處理過程。交互運行支撐環(huán)境層屬于系統(tǒng)程序,負責完成交互單元和構(gòu)件庫的調(diào)度、權(quán)限管理、版本管理、數(shù)據(jù)庫驅(qū)動等功能。

    這樣劃分的意義在于:由于不同軟件的交互行為很少能夠一致,因此交互層的重用幾乎是不可能的,而構(gòu)件層由于不涉及交互行為,因而有很好的重用性。

    一個完整的軟件系統(tǒng),包括如下元素:軟件交互配置文件;1個或多個交互單元;1個或多個無交互構(gòu)件庫。它們之間的關系見圖3。

    圖3采用了類似計算機硬件的總線結(jié)構(gòu),交互運行支撐環(huán)境相當于CPU,負責交互單元之間、交互單元與無交互構(gòu)件之間的交互與調(diào)用;交互單元的運行參數(shù)由交互運行支撐環(huán)境提供,交互單元的輸出信息也提交給交互運行支撐環(huán)境。也就是說交互單元之間不直接發(fā)生關系,交互單元調(diào)用無交互構(gòu)件時,首先提交請求給交互運行支撐環(huán)境,由后者調(diào)用無交互構(gòu)件并將運行結(jié)果返回給調(diào)用的交互單元。

    3.3 基于交互的網(wǎng)構(gòu)軟件

    交互單元和無交互構(gòu)件可以以開放、自主的方式在Internet的各個節(jié)點進行發(fā)布,并以協(xié)同方式與其他節(jié)點的交互單元和無交互構(gòu)件等實體進行跨網(wǎng)絡的互連、互通、協(xié)作和聯(lián)盟,形成一種與當前信息Web類似的Software Web,形成一種全新的、不同于C/S,B/S的軟件體系結(jié)構(gòu),即網(wǎng)構(gòu)軟件(InternetWare)。

    一方面交互單元和無交互構(gòu)件可以分布在網(wǎng)絡上任意位置,另一方面交互發(fā)生在本地,交互腳本和交互數(shù)據(jù)集在本地的交互運行支撐環(huán)境中運行,這樣既保留了B/S軟件易于開發(fā)和維護升級的特點,又可以象C/S軟件那樣方便地使用本地的計算機資源。

    3.4 基于交互的軟件層次劃分

    基于交互的軟件模型實質(zhì)上把軟件劃分為交互層、構(gòu)件層、系統(tǒng)環(huán)境層三個層次,見圖4。其中系統(tǒng)環(huán)境層是所有軟件通用的、統(tǒng)一的支撐軟件,與Web瀏覽器類似,也可以稱之為“軟件瀏覽器”。

    軟件不再是普通意義的EXE程序,也不再是簡單的多個動態(tài)網(wǎng)頁,而是由軟件交互配置文件、交互單元定義、無交互構(gòu)件組成的集合。

    4 基于交互的軟件模型應用展望

    4.1 基于交互的軟件開發(fā)過程

    需求分析完成后,傳統(tǒng)的軟件開發(fā)模型是直接進入到實現(xiàn)過程/模塊/類的設計階段的,軟件的設計和生產(chǎn)沒有明確的區(qū)分。在完成需求分析后應進入軟件交互設計過程,其目標是建立一個可運行、可進行需求分析測試的軟件交互模型。交互設計階段的工作包括如下幾個方面:

    (1) 交互活動定義。根據(jù)UML模型和功能清單定義交互活動,有的對象或功能需要分解成多個交互單元完成,多個對象或功能也可以合并用一個交互單元完成。

    (2) 交互界面設計。界面設計只解決界面上有什么,界面元素的操作與互動由交互腳本描述。交互界面設計的結(jié)果是XML格式的界面描述文件。

    (3) 交互數(shù)據(jù)集設計。交互數(shù)據(jù)集是交互單元的私有數(shù)據(jù)定義。

    (4) 交互腳本設計。用交互腳本表示外界環(huán)境與軟件之間的交互行為,以及界面元素之間的相互關聯(lián),但不涉及具體的數(shù)據(jù)處理過程。交互腳本運行時,對于尚未實現(xiàn)的描述標記,IRE將以適當?shù)姆绞斤@示該描述標記的內(nèi)容,反之則不顯示。這樣設計是為了使交互單元在設計完成之前就可以運行。

    (5) 交互模型測試。交互模型測試通過后,軟件的功能、處理邏輯就確定下來,軟件作為一個產(chǎn)品的設計階段基本完成,除了生成由交互單元組成的交互模型外,還生成了無交互構(gòu)件需求清單。無交互構(gòu)件可以外購或者自行開發(fā)。

    4.2 無交互構(gòu)件的復用

    軟件的不同,最大的表現(xiàn)是其交互行為的不同,而其內(nèi)部實現(xiàn)有可能存在不同程度上的相似之處。比如財務軟件,雖然其外在界面、操作定義有所不同,但對于記帳憑證、帳本的數(shù)據(jù)處理則有可能是相同的。通過把交互和計算分離,可以最大程度地實現(xiàn)無交互構(gòu)件的復用。

    無交互構(gòu)件不涉及交互行為,因而有更好的復用性。交互設計和構(gòu)件生產(chǎn)是兩個不同的開發(fā)階段,可以分別由不同的專業(yè)團隊完成。構(gòu)件生產(chǎn)團隊的目的是生成有效的、可以大規(guī)模復用的無交互構(gòu)件庫,而不再是生成可執(zhí)行程序。不同的無交互構(gòu)件可以采用不同的編程語言實現(xiàn)。

    在獲得授權(quán)的情況下,多個無交互構(gòu)件可以合并到一個構(gòu)件庫中,多個構(gòu)件庫可以連編成一個更大的交互構(gòu)件庫文件,一個無交互構(gòu)件庫也可以分拆成多個獨立的無交互構(gòu)件庫。

    不同的交互單元,不同的基于交互模型的軟件都可以調(diào)用同一個無交互構(gòu)件;無交互構(gòu)件之間也可以互相調(diào)用。無交互構(gòu)件的復用將是軟件復用的最主要形式,為實現(xiàn)不同軟件開發(fā)團隊之間交互構(gòu)件的復用,實現(xiàn)軟件生產(chǎn)的工業(yè)化奠定基礎。

    4.3 基于交互的軟件模型的特性

    交互是應用軟件的靈魂,通過引入交互設計過程建立可運行的軟件交互模型,可以在軟件設計開始之前完全確定軟件的數(shù)據(jù)處理邏輯,從而將開發(fā)迭代過程局限在軟件設計之前?;诮换サ能浖P途哂腥缦绿攸c:

    (1) 無交互構(gòu)件復用

    無交互構(gòu)件是不同軟件開發(fā)商之間進行軟件復用的最小單位。同類應用軟件的主體功能有重復之處,通過無交互構(gòu)件的復用可以大大縮短軟件開發(fā)周期。軟件交互模型就如同建筑設計中的圖紙,無交互構(gòu)件的開發(fā)則類似傳統(tǒng)意義的建筑施工。

    同類應用軟件之間可以通過復用對方的交互單元和交互構(gòu)件實現(xiàn)兩個軟件的優(yōu)勢互補。用戶可以將A軟件的一部分交互單元和B軟件的一部分交互單元合并為一個可用的、個性化的軟件系統(tǒng)。

    (2) 支持并行運行與并行開發(fā)

    交互單元之間、無交互構(gòu)件之間的交互和調(diào)用行為可以是并發(fā)的。同時,由于軟件交互模型的總線結(jié)構(gòu),它們的開發(fā)過程可以是各自獨立的。

    (3) 網(wǎng)構(gòu)軟件體系

    交互單元、無交互構(gòu)件可以在Internet上部署和運行,軟件存在形態(tài)也將從現(xiàn)有的C/S,B/S體系發(fā)展為網(wǎng)構(gòu)軟件體系。

    5 結(jié) 語

    本文對基于交互的軟件模型進行了較詳細的論述,但也存在一些不足,對于該方法中用到的交互運行支撐環(huán)境等基礎性軟件還需要做大量的研究,這將是下一步努力的方向。

    參考文獻

    [1] 汪成為.請教我國計算機發(fā)展的12個問題[R].北京:中國計算機學會第七屆理事會,2000.

    [2] WEGNER Peter. Why interaction is more powerful than algorithms [J]. Communications of the ACM, 1997, 40(5): 81?91.

    [3] WEGNER Peter. Towards empirical computer science [EB/OL]. [1999?02?07]. http://www.cs.brown.edu/people/pw.

    [4] 付巖,黃鐵軍,余珂,等.交互計算模型概述[J].計算機研究與發(fā)展,2002,39(6):701?706.

    [5] 楊芙清.軟件工程技術(shù)發(fā)展思索[J].軟件學報,2005,16(1):1?6.

    [6] 楊芙清,王千祥,梅宏,等.基于復用的軟件生產(chǎn)技術(shù)[J].中國科學(E輯),2001(4):363?371.

    [7] WEGNER Peter. Interactive foundations of computing [J]. Theoretical computer science, 1998, 192: 315?351.

    [8] 許旻鴻,鄭巍.基于指數(shù)平滑模型的大型開源軟件開發(fā)成本預測分析[J].湘潭大學自然科學學報,2011,33(1):123?126.

    临泉县| 儋州市| 称多县| 图片| 神池县| 富源县| 花垣县| 岑溪市| 营口市| 金川县| 政和县| 沾益县| 诸城市| 田东县| 武功县| 准格尔旗| 平阴县| 扎囊县| 阿尔山市| 乐昌市| 福鼎市| 鹰潭市| 县级市| 东山县| 教育| 清新县| 安阳市| 沈阳市| 兰考县| 道真| 上林县| 正定县| 武川县| 白银市| 永嘉县| 江达县| 铁力市| 柘城县| 扎鲁特旗| 策勒县| 平乡县|