999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

構件的服務模式規約

2008-01-01 00:00:00唐龍業王志堅程永上
計算機應用研究 2008年4期

摘要: 基于用戶需求和構件服務在匹配情況下的等價性考慮,從方法調用序列角度給出了服務的定義;依據方法之間的關聯性分析,給出了服務模式的概念和確定構件服務模式的方法;最后給出了構件的服務模式規約。通過建立服務模式規約,從構件提供者角度提供了一種確定構件匹配有效性的方法。

關鍵詞:軟件構件; 構件服務; 服務模式; 服務模式規約; 匹配有效性

中圖分類號:TP311文獻標志碼:A

文章編號:1001-3695(2008)04-1073-02

構件組裝式的軟件開發實現了構件開發與軟件開發的分離,使得構件提供者專注于構件的內部功能和接口的設計;而構件使用者通過了解構件的接口,專注于構件的選擇及組裝,從而提高軟件開發效率。但是,基于構件的軟件開發技術仍有許多問題亟待解決,如構件檢索的效率。構件檢索效率主要包括查準率、查全率和響應速度。由于構件設計與組裝工作的分離,使得構件化軟件的組裝、測試工作也更加復雜[1]。

構件規約是構件提供者與使用者之間重要的交流信息,它是構件使用者了解構件接口功能的惟一途徑。因此,規約中構件描述的精確性和完備性對于構件的易用性(包括檢索、適配以及測試)有重要影響。構件規約應該提供構件使用者所需要的信息[2]。但是目前的構件規約對于構件能夠提供的服務缺乏一些必要信息的描述,如構件匹配即服務的有效性等。

本文的基本思想是:提供者基于其對構件源代碼、內部結構及功能的把握,從構件在應用中可能的上下文關系角度確定一個服務應該遵循的模式,從構件提供者角度給出服務模式規約,可以快速實施構件的檢索匹配,保證構件匹配的有效性。本文工作基于如下假設:使用者的需求和構件提供的服務在兩者匹配情況下是等價的。從構件使用者的角度,一個具體的需求就是可以使用哪個或哪些構件接口提供的服務;而對于構件而言,構件的哪個或哪些接口提供的服務可以響應使用者需求。

1三種常見的構件規約

目前,依據描述內容的不同,構件規約主要有三種形式:接口規約(interface specification)、行為規約(behavior specification)和非功能性規約(non-function specification)。由于構件的非功能性描述比較復雜,目前研究的重點主要集中于前兩者。

1)接口規約

構件接口規約是關于構件接口的語法描述,如接口名稱、類型、屬性等,提供用戶理解和使用構件的基本信息,其描述簡單并易于實現。在接口規約中,一個構件提供一組被命名的接口(或類型),每個接口命名一組操作,每個操作有零個或多個輸入/輸出參數及相關聯的語法規約。接口規約的典型例子是CCM(CORBA component model)中對構件的描述,CCM為CORBA構件定義了多種接口[3]。但是接口規約缺乏對構件內部邏輯的描述,所以其對構件的描述是初步的。

2)行為規約

行為規約可看做是接口規約的擴展,是對構件操作語義的描述。一個構件實現一組接口;接口由一組操作組成;一組前置條件和后置條件與操作相關聯。行為規約包括實例不變式、操作的前置條件和后置條件、一般斷言、循環變量和循環不變式[4,5]。行為規約一般采用基于一階謂詞邏輯的進程代數來描述,也有使用UML等來描述的。Michihiro利用一個特殊的代數行為規約Projection-style來描述構件行為。該規約包括構件規約和通信規約兩個部分,用于描述構件的樹結構如事件模式、靜態結構和動態結構[6,7]。Eriksson利用UML的協作、序列和狀態圖來描述構件的行為[8]。

3)非功能性規約

目前對非功能性規約的研究剛剛開始,如Steffen用mea-surement的概念表達系統的非功能性,定義了四種非功能規約,即內在規約、外部規約、資源規約和容器規約,分別描述構件實現屬性、一個服務的屬性、資源屬性和與非功能屬性相關的容器行為[9]。Franch認為非功能性信息包括非功能性屬性、非功能性行為和非功能性需求。非功能性屬性包括用于描述和評價該軟件的屬性,如所屬領域、類別、適用范圍等;非功能性行為是所有值的指派;非功能性需求則涉及到的所有約束[10]。

目前,上述構件規約的主要不足是對構件可能被應用的環境缺乏考慮,沒有一種有效的描述形式對構件匹配的有效性進行驗證。

2構件的服務模式規約

2.1基本概念

為了便于描述,本文采用如下結構描述一個構件、構件接口及接口中的方法:

comp_1(interface_1,…,interface_n),名字為comp_1,包含n(可以是1)個用戶可視接口。

interface_i(func_1,…,func_m),名字為interface_i的接口提供m個可調用的方法(或功能)。該接口的所有方法構成一個集合,記做method_i。

func_i(input,output,mexpresions),名字為func_i的方法,包含輸入、輸出及相關約束條件(包括調用方法必須滿足的前置、后置條件)。

一個構件能夠提供的一個服務可以用定義1描述。

定義1服務構件接口中若干方法組成的一個有序調用序列稱做構件的一個服務。

一個構件所有接口中的方法集合記做method_all,則method_all=method_1∪method_2∪…∪method_n(“∪”表示集合的并運算)。

設|method_all|=N,則所有方法可能組成的有序序列個數為N!+…+2!+1。顯然,并不是所有的方法有序序列都構成服務,因為在構件設計期間,根據構件的功能設計規范,方法之間的關聯關系已經確定,即若干個方法之間通過協作(依賴)提供相應的對外服務。因此,構件提供者依據構件的功能設計規范,分析方法之間的關聯關系,進而確定合理的方法有序序列即構件服務。

定義2頭方法(head)和尾方法(tail) 一個調用序列中的起始方法和結束方法。

定義3方法依賴(function dependence) 方法func_i依賴于func_ j當且僅當序列中出現func_i時必有func_ j是其直接或間接的前驅,記為func_ j→func_i。

定義3強調的是這樣一個事實:當一個方法被調用時,與之相依賴的其他方法會同時被調用。

根據定義2,在一個方法調用序列中,所有其他方法都依賴于頭方法,稱為頭方法依賴;而尾方法依賴于序列中的其他方法,稱為尾方法依賴。

定義4服務模式(service pattern),即構件的服務必須滿足的序列約束,是一個三元組(H,T,R)。其中:H是可作為調用序列頭方法的方法集合;T是可以作為調用序列尾方法的方法集合;R是調用序列中除了頭方法依賴和尾方法依賴之外存在的方法依賴。

2.2創建服務模式的方法和遵循的原則

為了給出一個構件的服務模式,構件提供者需要對構件接口中的每一個方法實施確認下面三個問題:

a)該方法能否作為一個服務(調用序列)的頭方法?

b)該方法能否作為一個服務(調用序列)的尾方法?

c)除了作為服務的頭或尾方法外,該方法的調用依賴于哪些方法?

按照上述三個問題要求實施的操作過程就構成了創建一個構件的服務模式的方法步驟。

本文創建的服務模式遵循如下原則:服務應該滿足構件的功能設計規范;服務模式體現構件服務的有效性特征。

示例:一個自動機描述的構件video,提供的方法如圖1所示。根據功能設計規范,構件video提供play(播放),vol_up、vol_down(音量調節),bright_up、bright_down(亮度調節),pause(暫停),stop(停止)等功能方法。

構件video要提供一個完整的服務,這些方法之間具有下列關聯關系:a)任意一個調用序列中,play是服務的起始調用方法,而stop是結束調用方法;b)在序列中間如果調用了pause,則其后會有play調用,即有pause→play; c)如果調用了vol_up或vol_down或bright_up或bright_down,則它們可出現在序列中除了起始和結束位置外的任意一個位置。

根據上述分析,構件video的服務模式是(H,T,R)。其中:H={play},T={stop},R={pause→play}。

根據得到的video服務模式,調用序列{play,pause,bright_up,play,stop}、{play,bright_up,bright_down,stop}是有效的構件服務,而{pause,stop}就不構成服務。

2.3服務模式規約

在2.1和2.2節的基礎上,對構件的服務模式進行如下規約:

service pattern {

head-functions: //頭方法集合H

function-name,interface-name; //方法及所在接口

……

tail-functions: //尾方法集合T

function-name, interface-name;

……

dependces: //方法依賴集合R

〈function-name1,function-name2〉;

//表示function-name1→function-name2

……

}

根據服務模式定義,規約包含三個部分:head-functions聲明可用做服務(方法序列)頭的方法集合,并聲明該方法所在的接口;tail-functions對應尾方法集合聲明;dependces對應除了頭方法和尾方法依賴之外的其他方法依賴聲明。

3結束語

隨著軟件規模的擴大和復雜程度的提高,構件化軟件復用

開發技術以及軟件開發自動化成為適應軟件發展趨勢的主流開發技術。但是構件技術(如模型、規約方法)沒有一個統一的標準,這阻礙了構件化軟件開發技術的廣泛應用。提高構件的易用性是亟待研究解決的問題。

本文從提供者角度,依據構件的功能設計規范對構件可能提供的服務(對應于被應用環境)進行了模式分析。構件的服務模式規約可以作為目前常用構件規約的一種擴充,對于自動化實現構件服務的有效性驗證提供了一種可能。本文通過服務模式規約的方式,最大程度擴展了構件提供者對于構件使用者服務需求的一種預測,而不是針對某一個具體的服務。其優點是:a)對構件提供者,通過構件方法之間的依賴性分析,了解構件可能行為以及運行方式,這對于生成有效測試用例、實施構件行為測試是有幫助的;b)從構件使用者角度,自己的需求應該盡可能地與構件的功能設計規范一致,而構件服務模式正是構件功能設計規范的邏輯體現,有助于提高需求與構件之間的匹配有效性。

參考文獻:

[1]HARROLD M J. Testing: a roadmap[C]//Proc of International Conference on Software Engineering. New York: ACM Press, 2000:35-46.

[2]LUDERS F, LAU K K, HO S M. Specification of software components[M]//Building reliable component-based software systems.[S.l.]: Artech House, 2002.

[3]OMG. CORBA component v3.0 formal/02-06-65[R/OL]. http://www.omg.org/technology/documents/corba-spec-catalog.htm.

[4]HOLLOWAY C M, BUTLER R W. Impediments to industrial use of formal methods[J]. IEEE Computer, 1996,29(4):25-26.

[5]FINNEY K. Mathematical notation in formal specification: too difficult for the masses?[J]. IEEE Trans on Software Engineering, 1996,22(2):158-159.

[6]MASTSUMOTO M, FUTATSUGI K. Highly reliable component-based software development by using algebraic behavioral specification[C]//Proc of the 3rd IEEE International Conference on Formal Engineering Methods. Washington DC: IEEE Computer Society, 2000:35-43.

[7]MATSUMOTO M, FUTATSUGI K. Simply observable behavioral specification[C]//Proc of the 6th Asia-Pacific Software Engineering Conference. Washington DC: IEEE Computer Society, 1999:460-467.

[8]ERIKSSON H E, PENKER M. UML toolkit[M]. New York: Wiley, 1997.

[9]ZSCHALER S. Towards a semantic framework for non-functional specifications of component-based systems[C]//Proc of the 30th EUROMICRO Conference. Washington DC: IEEE Computer Society, 2004:92-99.

[10]FRANCH X. Systematic formulation of non-functional characteristics of software[C]//Proc of the 3rd International Conference on Requirements Engineering: Putting Requirements Engineering to Practice. Washington DC: IEEE Computer Society, 1998:174-181.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 国产成人狂喷潮在线观看2345| 99中文字幕亚洲一区二区| 欧美成人午夜视频| 成人免费网站久久久| AV在线天堂进入| 国产精品福利导航| 六月婷婷激情综合| 精品视频第一页| 狠狠五月天中文字幕| 久久无码免费束人妻| 毛片免费在线| 亚洲国产欧美国产综合久久| 99久久亚洲综合精品TS| 在线毛片网站| 国产欧美日韩另类精彩视频| 久久一日本道色综合久久| 亚洲开心婷婷中文字幕| 日韩无码视频专区| 久久亚洲黄色视频| a天堂视频在线| 国产亚洲男人的天堂在线观看| 最新日本中文字幕| 99精品视频播放| 鲁鲁鲁爽爽爽在线视频观看| 国产成人免费视频精品一区二区| 精品夜恋影院亚洲欧洲| 色婷婷电影网| 国产一在线| 日日拍夜夜操| 国产女人在线视频| 亚洲成人精品| 精品视频第一页| 中文成人在线视频| 精品成人免费自拍视频| 亚洲中文字幕手机在线第一页| 欧美一级片在线| 精品国产毛片| 日韩一区二区在线电影| 日本人真淫视频一区二区三区| 国产av色站网站| 中文字幕乱码中文乱码51精品| 日韩人妻无码制服丝袜视频| 成人午夜视频免费看欧美| 亚洲中文字幕久久无码精品A| 毛片在线看网站| 色婷婷综合在线| 国产综合精品日本亚洲777| 老司机午夜精品网站在线观看| 国产成人在线无码免费视频| 久久一本日韩精品中文字幕屁孩| 久久久久亚洲AV成人网站软件| 午夜国产精品视频| 婷婷午夜天| 亚洲欧美人成人让影院| 久久青草热| 亚洲无码免费黄色网址| 久久成人免费| 9966国产精品视频| 欧美一级夜夜爽www| 国产精品人人做人人爽人人添| 精品一区国产精品| 亚洲综合狠狠| 国产成人免费手机在线观看视频| 欧美怡红院视频一区二区三区| 四虎在线高清无码| 又大又硬又爽免费视频| 国产高清在线精品一区二区三区| 国内精品视频区在线2021| 亚洲三级电影在线播放| 操国产美女| 99久视频| 亚洲精品日产AⅤ| 好紧好深好大乳无码中文字幕| 中文字幕1区2区| 人妻中文久热无码丝袜| 五月婷婷亚洲综合| 亚洲成AV人手机在线观看网站| 久久网欧美| 国产成人精品男人的天堂下载| 三级视频中文字幕| 欧美色综合网站| 久久久精品国产SM调教网站|