摘 要: 從Peter Wegner的交互計(jì)算理論出發(fā),將軟件中的交互與計(jì)算進(jìn)行分離,提出了基于交互的軟件模型。對(duì)交互單元、無(wú)交互構(gòu)件、交互運(yùn)行支撐環(huán)境以及基于交互的軟件模型進(jìn)行了詳細(xì)敘述,并提出軟件的開(kāi)發(fā)過(guò)程可以劃分為交互設(shè)計(jì)和無(wú)交互構(gòu)件生產(chǎn)兩個(gè)獨(dú)立的階段,無(wú)交互構(gòu)件的復(fù)用是軟件復(fù)用的重要方式,基于交互的軟件將形成不同于C/S,B/S的網(wǎng)構(gòu)軟件體系結(jié)構(gòu)。
關(guān)鍵詞: 交互計(jì)算; 交互模型; 交互運(yùn)行支撐環(huán)境; 網(wǎng)構(gòu)軟件
中圖分類號(hào): TN711?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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 交互計(jì)算模型
長(zhǎng)期以來(lái),人們對(duì)軟件的認(rèn)識(shí)一直處于探索過(guò)程中,傳統(tǒng)的圖靈機(jī)可計(jì)算理論認(rèn)為,“可計(jì)算”意味著首先能夠把問(wèn)題形式化,并設(shè)計(jì)一個(gè)復(fù)雜度合理的算法[1]。
1.1 圖靈機(jī)與可計(jì)算
圖靈機(jī)(Turing Machines)是為了研究可計(jì)算問(wèn)題而構(gòu)思的一個(gè)理論裝置,它實(shí)現(xiàn)了人類對(duì)計(jì)算本質(zhì)的真正認(rèn)識(shí),是計(jì)算機(jī)科學(xué)中可計(jì)算性理論和計(jì)算復(fù)雜性理論的基礎(chǔ)。
圖靈機(jī)可以定義為五元組:[TM=(S,Σ,Δ,S0,SF),]其中[S]是狀態(tài)集;[S0]是初始狀態(tài);[Σ]是輸入字符集;[Δ]是狀態(tài)轉(zhuǎn)換關(guān)系。一個(gè)圖靈機(jī)有一個(gè)工作帶完成輸入輸出,工作帶的左右兩端可以無(wú)限延長(zhǎng)。圖靈機(jī)工作時(shí)從工作帶上讀入字符,然后根據(jù)轉(zhuǎn)換規(guī)則[Δ]確定輸出字符、下一狀態(tài)和下一動(dòng)作(右移、左移),輸出字符被寫(xiě)到工作帶上,然后執(zhí)行動(dòng)作繼續(xù)計(jì)算,直到最終狀態(tài),最后工作帶上的內(nèi)容就是輸出。
1.2 交互計(jì)算理論
Peter Wegner在算法和圖靈機(jī)理論研究的基礎(chǔ)上提出了交互計(jì)算模型[2?3]。Peter Wegner認(rèn)為:從理論上說(shuō),“軟件危機(jī)”是由于圖靈機(jī)并非表示處理人類思維的合理模型,面向?qū)ο髮⒔换ヒ肫渲?,但圖靈機(jī)無(wú)法描述交互式計(jì)算[4],必須用交互機(jī)(IM)替換圖靈機(jī)(TM)來(lái)描述。
定義1 交互性質(zhì)[5]
一個(gè)計(jì)算主體具有交互性質(zhì),是指它與不受它控制的外部環(huán)境存在交互的輸入和輸出動(dòng)作。
定義2 交互機(jī)(Interaction machine)[5]
對(duì)圖靈機(jī)(TM)用具有交互性質(zhì)的輸入和輸出動(dòng)作擴(kuò)展,就得到交互機(jī)(IM)。他們的不同之處在于:TM的輸入帶是確定的,而IM的輸入流是不確定的,輸入動(dòng)作由不在其控制之下的外部機(jī)制動(dòng)態(tài)產(chǎn)生。
一個(gè)交互機(jī)(IM)是用具有交互性質(zhì)的輸入和輸出動(dòng)作擴(kuò)展了的圖靈機(jī)(TM),TM具有確定的輸入帶,而IM的輸入流的元素是由不在其控制之下的一個(gè)外部機(jī)制動(dòng)態(tài)提供的。
2 軟件中的交互行為
WEGNER Peter的理論啟發(fā)人們從軟件的交互行為入手認(rèn)識(shí)軟件和軟件開(kāi)發(fā)過(guò)程,改變以往以計(jì)算為核心的分析和認(rèn)識(shí)方法。本文在交互計(jì)算理論的基礎(chǔ)上對(duì)這一思想進(jìn)一步做了擴(kuò)展,認(rèn)為現(xiàn)代軟件的本質(zhì)是交互,一個(gè)軟件實(shí)際上是包含了1個(gè)或多個(gè)交互單元及相關(guān)無(wú)交互構(gòu)件的集合。關(guān)注的焦點(diǎn)將從軟件內(nèi)部執(zhí)行過(guò)程過(guò)渡到交互行為。
2.1 交互單元
軟件具有交互性質(zhì),一個(gè)交互單元就是一個(gè)交互機(jī)(IM)的具體實(shí)現(xiàn)。交互單元之間也可以存在交互關(guān)系,形成網(wǎng)狀關(guān)系結(jié)構(gòu),從而構(gòu)成一個(gè)規(guī)模更大的交互單元,最后形成一個(gè)完整的軟件,如圖1所示(交互單元A為主交互單元, 即軟件啟動(dòng)后第一個(gè)運(yùn)行的交互單元)。
交互單元是一個(gè)具體實(shí)現(xiàn)的交互機(jī),是人機(jī)交互對(duì)話的基本運(yùn)行單位,它由交互界面、交互數(shù)據(jù)集、交互邏輯三部分組成。
為了保存交互單元運(yùn)行的輸入、輸出狀態(tài)信息,需要操作系統(tǒng)提供統(tǒng)一的交互運(yùn)行支撐環(huán)境,交互單元經(jīng)過(guò)授權(quán)可以存取交互運(yùn)行支撐環(huán)境(IRE)的相應(yīng)數(shù)據(jù)區(qū)。
為了與現(xiàn)有的軟件界面相匹配,交互單元可以按傳統(tǒng)意義上的窗體劃分,也可以按HTML/XML頁(yè)面劃分,還可以按特定的交互設(shè)備或交互區(qū)域劃分。為了將一個(gè)長(zhǎng)的、復(fù)雜的處理過(guò)程分拆、封裝成多個(gè)交互單元,還可以虛擬一個(gè)交互界面,從而建立多個(gè)交互單元。
交互單元可看作一個(gè)三元組,即:交互單元 =(交互界面[I,]交互數(shù)據(jù)集[D,]交互腳本S),見(jiàn)圖2。
2.2 交互界面
交互界面已經(jīng)不僅是用戶和計(jì)算機(jī)交流信息的界面,它實(shí)際上還決定了用戶使用軟件完成日常工作的處理邏輯,界面設(shè)計(jì)在很大程度上決定了軟件的功能模塊劃分。
交互界面可以是個(gè)傳統(tǒng)意義上的窗體,也可以是一般的HTML/XML頁(yè)面,還可以是一個(gè)特定的交互設(shè)備和交互區(qū)域。界面設(shè)計(jì)只解決界面上有什么,只需要定義界面的構(gòu)成元素,而動(dòng)作、事件的處理由交互腳本完成。界面元素應(yīng)包括常見(jiàn)的各種Windows控件,每個(gè)界面元素都要有惟一的ID和NAME屬性。界面元素可以分為數(shù)據(jù)綁定元素和非綁定元素,數(shù)據(jù)綁定元素綁定到交互數(shù)據(jù)集的數(shù)據(jù)表中。
操作簡(jiǎn)單、賞心悅目的界面是軟件成功的基礎(chǔ),WIMP風(fēng)格界面已經(jīng)在Windows世界中得到了一致的認(rèn)可,但目前各種軟件集成開(kāi)發(fā)環(huán)境的IDE界面都使用各不相同的描述格式,例如VB的FRM,Delphi的DFM和PB的PBL等,互相之間不兼容,給大型應(yīng)用軟件的開(kāi)發(fā)帶來(lái)了極大的不便。因此,軟件界面描述應(yīng)采用統(tǒng)一的標(biāo)準(zhǔn),以XML格式為首選。典型的基于XML的界面描述語(yǔ)言有Mozilla基金會(huì)的XUI、微軟Longhorn平臺(tái)的XAML、Macromedia的MXML等,但其標(biāo)準(zhǔn)尚未統(tǒng)一。
2.3 交互數(shù)據(jù)集
交互數(shù)據(jù)集(Interaction Data Set)是獨(dú)立于物理數(shù)據(jù)庫(kù)之外、只提供給當(dāng)前交互單元使用的數(shù)據(jù)集合。數(shù)據(jù)集中有1個(gè)或多個(gè)數(shù)據(jù)表,這些表可以來(lái)自同一個(gè)數(shù)據(jù)庫(kù),也可以來(lái)自不同的數(shù)據(jù)源。交互界面元素只與數(shù)據(jù)島中的數(shù)據(jù)表進(jìn)行綁定。交互數(shù)據(jù)集類似于ADO.Net中的DataSet,也是和物理數(shù)據(jù)庫(kù)斷開(kāi)的,表示數(shù)據(jù)的緩存,具有類似數(shù)據(jù)庫(kù)的結(jié)構(gòu)屬性,如表、列、關(guān)系、約束等。但交互數(shù)據(jù)集和交互腳本都在客戶端存在和運(yùn)行,以便實(shí)現(xiàn)交互腳本、交互控件的讀寫(xiě)處理,這一點(diǎn)和ADO.Net有所不同。
交互數(shù)據(jù)集與物理數(shù)據(jù)庫(kù)之間的連接由交互運(yùn)行支撐環(huán)境(IRE)維護(hù)。交互腳本可以通過(guò)調(diào)用IRE方法完成交互數(shù)據(jù)集的填充、刷新、保存等操作,還可以通過(guò)調(diào)用無(wú)交互構(gòu)件對(duì)交互數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行處理。
交互數(shù)據(jù)集設(shè)計(jì)結(jié)果應(yīng)以XML方式存儲(chǔ)。數(shù)據(jù)島中除了保存數(shù)據(jù)表的數(shù)據(jù)格式外,還必須提供范例數(shù)據(jù),這是交互測(cè)試的基礎(chǔ)。交互單元初始化運(yùn)行時(shí)顯示的是范例數(shù)據(jù),交互腳本填寫(xiě)交互數(shù)據(jù)集后交互界面顯示的才是真正的運(yùn)行數(shù)據(jù)。范例數(shù)據(jù)是交互模型初始運(yùn)行的基礎(chǔ),其作用在于使得交互邏輯更直觀,同時(shí)也可以對(duì)交互腳本和無(wú)交互構(gòu)件進(jìn)行初步演示和測(cè)試。
交互數(shù)據(jù)集中的數(shù)據(jù)表可以與交互界面的元素進(jìn)行綁定,它們之間的一致性由軟件交互支撐環(huán)境保證。
2.4 交互腳本
交互腳本(Interaction Script)用來(lái)描述各交互元素之間的交互邏輯,是交互單元運(yùn)行的核心。交互邏輯用來(lái)處理操作員以及交互界面中各元素之間的互動(dòng)。
交互腳本的功能包括:調(diào)用交互支撐環(huán)境刷新交互界面;調(diào)用數(shù)據(jù)集對(duì)象或無(wú)交互構(gòu)件操作交互數(shù)據(jù)集;控制交互界面的交互元素;調(diào)用交互支撐環(huán)境將交互數(shù)據(jù)集中的數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù);讀寫(xiě)公共交互環(huán)境變量;其他功能。
交互腳本是通過(guò)調(diào)用無(wú)交互構(gòu)件完成主要數(shù)據(jù)處理過(guò)程的,在交互設(shè)計(jì)階段,需要在交互腳本編寫(xiě)過(guò)程中給出無(wú)交互構(gòu)件的調(diào)用接口,但不應(yīng)涉及無(wú)交互構(gòu)件的具體實(shí)現(xiàn)。和以往的高級(jí)語(yǔ)言如VB,VC++等不同,交互腳本語(yǔ)言應(yīng)以VBScript/JavaScript/ActionScript為基礎(chǔ)來(lái)設(shè)計(jì),以大大降低交互設(shè)計(jì)的難度和進(jìn)度。
2.5 無(wú)交互構(gòu)件
為了把計(jì)算行為與交互行為進(jìn)行分離,在這里把交互中的計(jì)算過(guò)程獨(dú)立出來(lái),組成無(wú)交互構(gòu)件集,交互單元通過(guò)調(diào)用無(wú)交互構(gòu)件實(shí)現(xiàn)數(shù)據(jù)的處理過(guò)程。
一般認(rèn)為,構(gòu)件是軟件系統(tǒng)中具有一定意義的、相對(duì)獨(dú)立的、可復(fù)用的軟件實(shí)體。這里的無(wú)交互構(gòu)件還應(yīng)具備如下性質(zhì):
(1) 無(wú)交互構(gòu)件是編譯過(guò)、可供交互單元調(diào)用的構(gòu)件程序;
(2) 無(wú)交互界面不能對(duì)交互界面進(jìn)行操作,具有界面無(wú)關(guān)性;
(3) 可以部署到任意網(wǎng)絡(luò)位置,并且支持調(diào)用時(shí)按需及時(shí)下載;
(4) 可以在授權(quán)情況下進(jìn)行分拆和組合。
這樣不同的交互單元可以調(diào)用同一個(gè)無(wú)交互構(gòu)件;無(wú)交互構(gòu)件之間也可以互相調(diào)用。
3 基于交互的軟件系統(tǒng)
3.1 交互運(yùn)行支撐環(huán)境
交互單元本身是不能獨(dú)立運(yùn)行的,交互界面、交互數(shù)據(jù)集僅僅是對(duì)應(yīng)的XML描述,交互單元的啟動(dòng)、輸入、輸出都由交互運(yùn)行支撐環(huán)境(Interaction Runtime Environment)來(lái)管理和維護(hù)。IRE的功能應(yīng)包括:創(chuàng)建、維持上下文交互環(huán)境;提供交互單元運(yùn)行所需要的公共類庫(kù);提供交互數(shù)據(jù)集訪問(wèn)類庫(kù);對(duì)交互腳本進(jìn)行解釋執(zhí)行;繪制、管理交互界面;對(duì)交互腳本提供動(dòng)態(tài)修改交互元素屬性的方法。
IRE的特點(diǎn)是其通用性,它是所有符合基于交互的應(yīng)用軟件的運(yùn)行平臺(tái),但它不是應(yīng)用軟件的一部分。IRE既可以集成在瀏覽器(如IE)中,也可以作為獨(dú)立的交互應(yīng)用瀏覽器。
3.2 基于交互的軟件系統(tǒng)模型
通過(guò)上述分析,一個(gè)完整的軟件從邏輯上可以劃分為交互層、構(gòu)件層兩個(gè)層次,見(jiàn)圖3。交互層描述了軟件的交互行為,而構(gòu)件層則完成數(shù)據(jù)的處理過(guò)程。交互運(yùn)行支撐環(huán)境層屬于系統(tǒng)程序,負(fù)責(zé)完成交互單元和構(gòu)件庫(kù)的調(diào)度、權(quán)限管理、版本管理、數(shù)據(jù)庫(kù)驅(qū)動(dòng)等功能。
這樣劃分的意義在于:由于不同軟件的交互行為很少能夠一致,因此交互層的重用幾乎是不可能的,而構(gòu)件層由于不涉及交互行為,因而有很好的重用性。
一個(gè)完整的軟件系統(tǒng),包括如下元素:軟件交互配置文件;1個(gè)或多個(gè)交互單元;1個(gè)或多個(gè)無(wú)交互構(gòu)件庫(kù)。它們之間的關(guān)系見(jiàn)圖3。
圖3采用了類似計(jì)算機(jī)硬件的總線結(jié)構(gòu),交互運(yùn)行支撐環(huán)境相當(dāng)于CPU,負(fù)責(zé)交互單元之間、交互單元與無(wú)交互構(gòu)件之間的交互與調(diào)用;交互單元的運(yùn)行參數(shù)由交互運(yùn)行支撐環(huán)境提供,交互單元的輸出信息也提交給交互運(yùn)行支撐環(huán)境。也就是說(shuō)交互單元之間不直接發(fā)生關(guān)系,交互單元調(diào)用無(wú)交互構(gòu)件時(shí),首先提交請(qǐng)求給交互運(yùn)行支撐環(huán)境,由后者調(diào)用無(wú)交互構(gòu)件并將運(yùn)行結(jié)果返回給調(diào)用的交互單元。
3.3 基于交互的網(wǎng)構(gòu)軟件
交互單元和無(wú)交互構(gòu)件可以以開(kāi)放、自主的方式在Internet的各個(gè)節(jié)點(diǎn)進(jìn)行發(fā)布,并以協(xié)同方式與其他節(jié)點(diǎn)的交互單元和無(wú)交互構(gòu)件等實(shí)體進(jìn)行跨網(wǎng)絡(luò)的互連、互通、協(xié)作和聯(lián)盟,形成一種與當(dāng)前信息Web類似的Software Web,形成一種全新的、不同于C/S,B/S的軟件體系結(jié)構(gòu),即網(wǎng)構(gòu)軟件(InternetWare)。
一方面交互單元和無(wú)交互構(gòu)件可以分布在網(wǎng)絡(luò)上任意位置,另一方面交互發(fā)生在本地,交互腳本和交互數(shù)據(jù)集在本地的交互運(yùn)行支撐環(huán)境中運(yùn)行,這樣既保留了B/S軟件易于開(kāi)發(fā)和維護(hù)升級(jí)的特點(diǎn),又可以象C/S軟件那樣方便地使用本地的計(jì)算機(jī)資源。
3.4 基于交互的軟件層次劃分
基于交互的軟件模型實(shí)質(zhì)上把軟件劃分為交互層、構(gòu)件層、系統(tǒng)環(huán)境層三個(gè)層次,見(jiàn)圖4。其中系統(tǒng)環(huán)境層是所有軟件通用的、統(tǒng)一的支撐軟件,與Web瀏覽器類似,也可以稱之為“軟件瀏覽器”。
軟件不再是普通意義的EXE程序,也不再是簡(jiǎn)單的多個(gè)動(dòng)態(tài)網(wǎng)頁(yè),而是由軟件交互配置文件、交互單元定義、無(wú)交互構(gòu)件組成的集合。
4 基于交互的軟件模型應(yīng)用展望
4.1 基于交互的軟件開(kāi)發(fā)過(guò)程
需求分析完成后,傳統(tǒng)的軟件開(kāi)發(fā)模型是直接進(jìn)入到實(shí)現(xiàn)過(guò)程/模塊/類的設(shè)計(jì)階段的,軟件的設(shè)計(jì)和生產(chǎn)沒(méi)有明確的區(qū)分。在完成需求分析后應(yīng)進(jìn)入軟件交互設(shè)計(jì)過(guò)程,其目標(biāo)是建立一個(gè)可運(yùn)行、可進(jìn)行需求分析測(cè)試的軟件交互模型。交互設(shè)計(jì)階段的工作包括如下幾個(gè)方面:
(1) 交互活動(dòng)定義。根據(jù)UML模型和功能清單定義交互活動(dòng),有的對(duì)象或功能需要分解成多個(gè)交互單元完成,多個(gè)對(duì)象或功能也可以合并用一個(gè)交互單元完成。
(2) 交互界面設(shè)計(jì)。界面設(shè)計(jì)只解決界面上有什么,界面元素的操作與互動(dòng)由交互腳本描述。交互界面設(shè)計(jì)的結(jié)果是XML格式的界面描述文件。
(3) 交互數(shù)據(jù)集設(shè)計(jì)。交互數(shù)據(jù)集是交互單元的私有數(shù)據(jù)定義。
(4) 交互腳本設(shè)計(jì)。用交互腳本表示外界環(huán)境與軟件之間的交互行為,以及界面元素之間的相互關(guān)聯(lián),但不涉及具體的數(shù)據(jù)處理過(guò)程。交互腳本運(yùn)行時(shí),對(duì)于尚未實(shí)現(xiàn)的描述標(biāo)記,IRE將以適當(dāng)?shù)姆绞斤@示該描述標(biāo)記的內(nèi)容,反之則不顯示。這樣設(shè)計(jì)是為了使交互單元在設(shè)計(jì)完成之前就可以運(yùn)行。
(5) 交互模型測(cè)試。交互模型測(cè)試通過(guò)后,軟件的功能、處理邏輯就確定下來(lái),軟件作為一個(gè)產(chǎn)品的設(shè)計(jì)階段基本完成,除了生成由交互單元組成的交互模型外,還生成了無(wú)交互構(gòu)件需求清單。無(wú)交互構(gòu)件可以外購(gòu)或者自行開(kāi)發(fā)。
4.2 無(wú)交互構(gòu)件的復(fù)用
軟件的不同,最大的表現(xiàn)是其交互行為的不同,而其內(nèi)部實(shí)現(xiàn)有可能存在不同程度上的相似之處。比如財(cái)務(wù)軟件,雖然其外在界面、操作定義有所不同,但對(duì)于記帳憑證、帳本的數(shù)據(jù)處理則有可能是相同的。通過(guò)把交互和計(jì)算分離,可以最大程度地實(shí)現(xiàn)無(wú)交互構(gòu)件的復(fù)用。
無(wú)交互構(gòu)件不涉及交互行為,因而有更好的復(fù)用性。交互設(shè)計(jì)和構(gòu)件生產(chǎn)是兩個(gè)不同的開(kāi)發(fā)階段,可以分別由不同的專業(yè)團(tuán)隊(duì)完成。構(gòu)件生產(chǎn)團(tuán)隊(duì)的目的是生成有效的、可以大規(guī)模復(fù)用的無(wú)交互構(gòu)件庫(kù),而不再是生成可執(zhí)行程序。不同的無(wú)交互構(gòu)件可以采用不同的編程語(yǔ)言實(shí)現(xiàn)。
在獲得授權(quán)的情況下,多個(gè)無(wú)交互構(gòu)件可以合并到一個(gè)構(gòu)件庫(kù)中,多個(gè)構(gòu)件庫(kù)可以連編成一個(gè)更大的交互構(gòu)件庫(kù)文件,一個(gè)無(wú)交互構(gòu)件庫(kù)也可以分拆成多個(gè)獨(dú)立的無(wú)交互構(gòu)件庫(kù)。
不同的交互單元,不同的基于交互模型的軟件都可以調(diào)用同一個(gè)無(wú)交互構(gòu)件;無(wú)交互構(gòu)件之間也可以互相調(diào)用。無(wú)交互構(gòu)件的復(fù)用將是軟件復(fù)用的最主要形式,為實(shí)現(xiàn)不同軟件開(kāi)發(fā)團(tuán)隊(duì)之間交互構(gòu)件的復(fù)用,實(shí)現(xiàn)軟件生產(chǎn)的工業(yè)化奠定基礎(chǔ)。
4.3 基于交互的軟件模型的特性
交互是應(yīng)用軟件的靈魂,通過(guò)引入交互設(shè)計(jì)過(guò)程建立可運(yùn)行的軟件交互模型,可以在軟件設(shè)計(jì)開(kāi)始之前完全確定軟件的數(shù)據(jù)處理邏輯,從而將開(kāi)發(fā)迭代過(guò)程局限在軟件設(shè)計(jì)之前?;诮换サ能浖P途哂腥缦绿攸c(diǎn):
(1) 無(wú)交互構(gòu)件復(fù)用
無(wú)交互構(gòu)件是不同軟件開(kāi)發(fā)商之間進(jìn)行軟件復(fù)用的最小單位。同類應(yīng)用軟件的主體功能有重復(fù)之處,通過(guò)無(wú)交互構(gòu)件的復(fù)用可以大大縮短軟件開(kāi)發(fā)周期。軟件交互模型就如同建筑設(shè)計(jì)中的圖紙,無(wú)交互構(gòu)件的開(kāi)發(fā)則類似傳統(tǒng)意義的建筑施工。
同類應(yīng)用軟件之間可以通過(guò)復(fù)用對(duì)方的交互單元和交互構(gòu)件實(shí)現(xiàn)兩個(gè)軟件的優(yōu)勢(shì)互補(bǔ)。用戶可以將A軟件的一部分交互單元和B軟件的一部分交互單元合并為一個(gè)可用的、個(gè)性化的軟件系統(tǒng)。
(2) 支持并行運(yùn)行與并行開(kāi)發(fā)
交互單元之間、無(wú)交互構(gòu)件之間的交互和調(diào)用行為可以是并發(fā)的。同時(shí),由于軟件交互模型的總線結(jié)構(gòu),它們的開(kāi)發(fā)過(guò)程可以是各自獨(dú)立的。
(3) 網(wǎng)構(gòu)軟件體系
交互單元、無(wú)交互構(gòu)件可以在Internet上部署和運(yùn)行,軟件存在形態(tài)也將從現(xiàn)有的C/S,B/S體系發(fā)展為網(wǎng)構(gòu)軟件體系。
5 結(jié) 語(yǔ)
本文對(duì)基于交互的軟件模型進(jìn)行了較詳細(xì)的論述,但也存在一些不足,對(duì)于該方法中用到的交互運(yùn)行支撐環(huán)境等基礎(chǔ)性軟件還需要做大量的研究,這將是下一步努力的方向。
參考文獻(xiàn)
[1] 汪成為.請(qǐng)教我國(guó)計(jì)算機(jī)發(fā)展的12個(gè)問(wèn)題[R].北京:中國(guó)計(jì)算機(jī)學(xué)會(huì)第七屆理事會(huì),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ì)算模型概述[J].計(jì)算機(jī)研究與發(fā)展,2002,39(6):701?706.
[5] 楊芙清.軟件工程技術(shù)發(fā)展思索[J].軟件學(xué)報(bào),2005,16(1):1?6.
[6] 楊芙清,王千祥,梅宏,等.基于復(fù)用的軟件生產(chǎn)技術(shù)[J].中國(guó)科學(xué)(E輯),2001(4):363?371.
[7] WEGNER Peter. Interactive foundations of computing [J]. Theoretical computer science, 1998, 192: 315?351.
[8] 許旻鴻,鄭巍.基于指數(shù)平滑模型的大型開(kāi)源軟件開(kāi)發(fā)成本預(yù)測(cè)分析[J].湘潭大學(xué)自然科學(xué)學(xué)報(bào),2011,33(1):123?126.