中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于軟件復用領域中一些詞的定義

發布時間:2020-08-04 11:25:58 來源:網絡 閱讀:675 作者:cvdef01020304 欄目:開發技術

關于軟件復用領域中一些詞的定義

                      程學先

在代碼類軟件復用領域中有子程序、宏、函數、類、方法、軟構件、軟部件、組件等等名詞,關于它們的定義有許多不同的說法。

一、百度詞條或當前各類文獻中的定義

1

1)類是一種復雜的數據類型,它是將不同類型的數據和與這些數據相關的操作封裝在一起的集合體。類具有更高的抽象性,類中的數據具有隱藏性,類還具有封裝性。類的結構(也即類的組成)是用來確定一類對象的行為的,而這些行為是通過類的內部數據結構和相關的操作來確定的。這些行為是通過一種操作接口來描述的(也即平時我們所看到的類的成員函數),使用者只關心的是接口的功能(也就是我們只關心類的各個成員函數的功能),對它是如何實現的并不感興趣。而操作接口又被稱為這類對象向其他對象所提供的服務。類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含數據成員的說明和成員函數的說明。成員函數是用來對數據成員進行操作的,又稱為“方法”。實現部分是用來對成員函數的定義。概括說來,說明部分將告訴使用者“干什么”,而實現部分是告訴使用者“怎么干”。

2)類是對一群有共同特征的事物或事件的集合。而類對象就是類的實例化。一個類的所有對象對應同一個類對象。如現實世界中的動物是一種類,植物也是一種類,可以理解人就是動物類的一種對象,草是植物類的一種對象。類對象的生成過程,包括對象的聲明、實例化和初始化。實例化一個對象就是通過new運算符為對象分配空間(類屬于復合數據類型,在聲明對象時,系統并沒有為對象分配空間,用戶需要應用new完成分配空間的任務)。既可以在聲明對象時實例化(創建)對象,也可以先聲明對象,然后再創建。

2 軟部件

1) 概念或功能相對獨立的一個或一組相關模塊定義為一個軟部件。可重用的軟部件有的可以不加修改直接使用,有的需要修改后再用。可重用軟部件應具有清晰的結構和注解,應具有正確的編碼和較低的時/空開銷。各種可重用軟部件還可以按照某種規則存放在軟部件庫中,供軟件工程師選用。

2)計算機軟件部件CSU(Computer SoftwareComponent)是計算機軟件單元(Computer SoftwareUnit)。例如,操作系統是一種控制計算機不同部件運行的軟件。

3 軟構件

1構件(component)是可復用的軟件組成成份,可被用來構造其他軟件。構件具有相對獨立的功能和可復用價值。它可以是被封裝的對象類、類樹、一些功能模塊、軟件框架 (framwork)、軟件構架(或體系結構Architectural)、文檔、分析文件、設計模式 (Pattern)等。構件分為構件類和構件實例,通過給出構件類的參數,生成實例,通過實例的組裝和控制來構造相應的應用軟件

2)軟件成分包括程序代碼、測試用例、設計文檔、設計過程、需求分析文檔、軟件構件的可信×××、甚至領域知識,通常把這種可復用的軟件成分稱為軟件構件,簡稱軟構件或者構件。

 3)將現有系統模塊封裝起來,等到有新的類似需求時可以不必重復開發,可以把事先封裝好的系統模塊直接組裝進去,這樣封裝的、易于復用的軟件稱為構件。要達到這一目的就必須進行域分析,以確定軟件的體系結構、框架和構件,從而快速實例化出一系列適應性很強的軟件產品族(Product Family),在特定領域進行軟件復用相對容易取得成功。這是由特定領域本身的相對內聚性和穩定性所決定的。內聚性保證了領域有足夠的共性,可以通過分析、抽象這種共性;穩定性保證了領城工程的投資可以獲得足夠的回報。領城工程就是創建可復用構件的活動,并在領城中尋求共性和變化性,然后將其表示出來,在設計和實現構件時加以利用,來支持新應用系統的建立。

 這一定義的典型例如青鳥工程,青鳥領域工程方法是在青鳥工程的研究和開發工作的基礎上,吸收當前領域工程的研究和實踐活動中的一些成果而形成的。它是一種面向對象的領城工程方法,描述了領域工程中各個階段的活動和產品,并給出了相應的指南,其中強調了對領域范圍的確定、結合設計模式進行領城設計、組織特定領域的可復用構件庫等方面的問題。

 青鳥領域工程分為三個主要的階段。即領域分析、領域設計和領城實現。領域分析的主要產品是領域分析模型,它包括領城豁求定義、領城面向對象分析棋型(領城OOA模型)、領城術語字典三個部分。領域設計的主要產品是特定領域的軟件體系結構(DSSA), DSSA表示為面向對象設計棋型(OOD模型)。領域實現的主要產品是特定于領城的可復用構件庫。在各個階段的產品之間存在可追蹤性。

4)其他定義

(1)1996年ECOOP(European Conference on object--Oriented Programming) 將軟件構件定義為:一個具有規范接口和確定的上下文依賴的組裝單元,它能夠被獨立部署或被第三方組裝。

(2)美國卡內基。梅隆大學的軟件工程研究所的構件定義:“構件是一個不透明的功能實體,能夠被第三方組織,且符合一個構件模型”。

(3)Szyperski將構件定義為:可單獨生產、獲取、部署的二進制單元,它們之間可以相互作用構成一個功能系統。

(4)CMU/SEI把構件定義為:一個不透明的功能實現;能夠被第三方組裝;還符合一個構件模型。

(5)從編寫程序代碼這個狹義的角度來描述一個構件:構件是一些二進制代碼,它隱藏了內部的實現細節。它們是二進制代碼的形式,但都符合一種模型--構件模型,且具有可插拔性。

(6)從使用側面給出定義:一個軟件構件是可執行軟件的一個可分離的單元;只能通過構件的接口來訪問它的服務;可以與其他構件實現互操作;為了能與其他構件一同工作,必須能得到其接口的細節;該構件的應用需要某種環境的支持。

(7)構件是為了復用目的而針對性開發的軟件實體,是一個獨立發布的功能部分,可以通過它的接口訪問它的服務。它體現了包裝、服務、完整性等觀點。利用軟構件技術開發應用系統,一般是先構筑系統的總體框架,然后構造各個構件,并依次把構件安裝到系統中去。大部分應用系統,在功能上有類似之處,因而利用軟件的復用技術就可以把開發過程大大簡化。在開發之初就應該準備軟件構件類集合,如可以搜集一些已經開發出的應用系統的總體設計、規范、局部流程以及某些人機界面、通用功能模塊、簡化開發工具。采用構件軟件不需要重新編譯,也不需要源代碼并且不局限于某一種編程語言。該過程叫做二進制復用(Binary Reuse),因為它是建立在接口而不是源代碼級別的復用之上的。雖然軟件構件必須遵守一致的接口,但是它們的內部實現是完全自動的。因此,可以用過程語言和面向對象語言創建構件。

 由于構件技術是由基于面向對象技術而發展起來的,與面向對象的設計中的對象相類似,它們都是針對軟件復用,都是被封裝的代碼,但它們之間仍存在很大差異。在純面向對象的設計中,對象(類)、封裝和繼承三者缺一不可,但對構件可以沒有繼承性,只要實現封裝即可;從構件和對象的生成方式上,對象生成屬于實例化的過程,比較單一,而生成構件的方式較多;構件是設計的概念,與具體編程語言無關,不像對象屬于編程中的概念,要依賴于具體的編程語言;在對構件操作時不允許直接操作構件中的數據,數據真正被封裝了。而對象的操作通過公共接口部分,這樣數據是可能被訪問操作的;對象對軟件復用是通過繼承實現的,構件對軟件復用不僅可以通過繼承還可以通過組裝時的引用來實現。因此,構件不是對象,只是與對象類似。

 4、組件

1)組件就是對象。C++ Builder中叫組件,Delphi中叫部件,而在Visual BASIC中叫控件。組件是對數據和方法的簡單封裝。C++Builder中,一個組件就是一個從TComponent派生出來的特定對象。組件可以有自己的屬性和方法。屬性是組件數據的簡單訪問者。方法則是組件的一些簡單而可見的功能。

對象管理小組(ObjectManagementGroup,OMG)的“建模語言規范”中將組件定義為:“系統中一種物理的、可代替的部件、它封裝了實現并提供了一系列可用的接口。一個組件代表一個系統中實現的物理部分,包括軟件代碼源代碼二進制代碼,可執行代碼)或者一些類似內容,如腳本或者命令文件。”

自己開發的組件通常有三種類型:復合組件(CompositeControls),擴展組件(Extended Controls),自定義組件(Custom Controls)。

復合組件:將現有的各種組件組合起來,形成一個新的組件,將集中組件的性能集中起來。

擴展組件:在現有組件的組件的基礎上派生出一個新的組件,為原有組件增加新的性能或者更改原有組件的控能。

自定義組件:直接從System.作windows.Forms.Control類派生出來。Control類提供組件所需要的所有入門性能,包括鍵盤和鼠標的事件處理。

 組件與構件之間有細致的區別。組件是封裝粒度小的構件。C++ Builder中叫組件,Delphi中叫部件,而在Visual BASIC中叫控件。組件是對數據和方法的簡單封裝。C++ Builder中,一個組件就是一個從TComponent派生出來的特定對象。組件可以有自己的屬性和方法。屬性是組件數據的簡單訪問者。方法則是組件的一些簡單而可見的功能。使用組件可以實現拖放式編程、快速的屬性處理以及真正的面向對象的設計。VCL和CLX組件是C++Builder系統的核心。

2)來自卡耐基梅隆大學的定義:組件是一個不透明的功能實體,能夠被第三方組裝,且符合一個構件模型。

3)計算機百科全書:組件是軟件系統中具有相對獨立功能、接口由契約指定、和語境有明顯依賴關系、可獨立部署、可組裝的軟件實體。

4)軟件構件著作中定義組件是一個組裝單元,它具有約定式規范的接口,以及明確的依賴環境。構建可以被獨立的部署,由第三方組裝。它是對邏輯的封裝,不限于圖形元素。即我們可以把if做成組件、把一個倒計時做成組件、把一段動畫做成組件、把路由做成組件、把數據架構做成組件,而這些并不能稱為控件。

 組件具備單個可移植性,即“隨加載隨用”,不需要為其準備復雜的基礎條件(如引入樣式、引入框架等)。然而這一點現有那些所謂組件庫做得并不好,技術上也不大現實

 組件是聲明式定義的,而非命令式。

 組件與傳統開發框架的最大區別就是統一了圖形元素與非圖形元素。在這個概念下,包括router、ajax、module loader、timer、animation、interval等都是組件,共享統一的生命周期管理和對外接口,且都是聲明式地進行組合。

5)軟件組件開發主要是開發與維護系統構造過程中用到的組件。將軟件組件作為一個單獨的過程,目的是將組件作為構造軟件的“零部件”。隨著軟件技術的不斷發展及軟件工程的不斷完善,軟件組件將會作為一種獨立的軟件產品出現在市場上,供應用開發人員在構造應用系統時選用。

6)從軟件模型的角度考慮,

人們希望把龐大的應用程序分割成為多個模塊,每個模塊完成獨立的功能,模塊之間協同工作。這樣的模塊我們稱為組件。這些組件可以進行單獨開發、單獨編譯、單獨測試;把所有的組件組合在一起得到了完整的系統。許多人都認為,未來的應用程序都將利用組件實現。一個組件可以實現多個組件接口,而一個特定的組件接口也可以被多個組件來實現。 組件接口必須是能夠自我描述的。這意味著組件接口應該不依賴于具體的實現

 從以上分析可以看出,以上定義十分繁雜,彼此存在交叉或矛盾,定義不夠清晰,對于學習與使用不利。

二、中文字義

 從1989辭海縮印本可以查到關于某些詞的和上面某些定義有關的解釋。

 1、類:把相類的事物概括為一類。

 2、對象:觀察或思考的客體,也指行動的目標。

 3、函數:簡述如下:當自變量改變時函數有確定的值與之對應。

 4、構件:1)機構的組成單元,如滑塊機構中的曲柄、連桿、滑塊和機架。構件是研究機械運動時經過抽象和概括而形成的概念,它是一個和其相鄰構件有相對運動的剛體。2)結構物的組成單元。如梁、柱、板、大型板材等。

 5、部件:機器中的一個組成部分,由若干零件裝配而成。

 6、組:結合、構成。

 組裝:把零件組合起來構成部件,或把部件與零件組合起來構成器誡或裝置。

 在2002現代漢語詞典中解釋構件1)是組成機構的單元,可以是一個零件,也可以是許多零件構成的剛體。2)是組成建筑物某一結構的單元,例如梁、柱。

 從這些名詞的中文解釋可見,組件是一個大的籠統的概念,可以是零件的組合、可以是構件的組合、也可以是部件的組合,涵蓋構件與部件;構件也是較為籠統的概念,可以是零件、可以是多個零件、可以是零件與部件的組合,涵蓋部件的概念;而部件是比較明確的概念,就是零件組合而成的機器的組成部分。

為適應軟件生產工業化等應用的需要,為方便學習與討論,建議站在程序員角度對這些名詞進行統一的定義,要求盡量一詞一意,在借用中文詞匯時,不妨作適當限定,形成軟件復用領域的專用詞匯。

三、站在程序員角度進行定義。

1、語句

語句是組成具有一定功能的程序的基本單位,其主要內容由某具體語言的指令和操作數構成,指令說明做什么,操作數說明怎樣做并向操作提供所需要的信息。

2、子程序

子程序是能被其他程序調用,在實現某種功能后能自動返回到調用程序去的程序。它由多條語句構成,按固定的格式寫成,可在主程序中用指令調用執行,執行時程序指針轉移到子程序執行,其最后一條指令一定是返回指令,使能保證重新返回到調用它的程序中去。可約定若干變量傳遞參數,當參數不同時,子程序的功能及運行結果可不相同。

可以建立子程序庫,存放多個子程序,應用時在不同程序中打開子程序庫,應用轉子語句及子程序名可調用子程序,重復執行其中語句。

3、函數

函數是允許設置固定的參數的子程序,其格式包括函數頭與括號括起的參數描述。在定義時的參數稱為形式參數,調用時直接用函數名調用,并給出具體參數值,稱為實際參數。當實際參數不同時,函數的功能及運行結果可不相同。

可以建立函數庫,在不同程序中打開函數庫,應用函數名調用并執行函數程序,重復執行其中語句。

4、宏

宏是能被其他程序調用的程序,由多條語句按固定的格式寫成,在主程序中調用時宏名相當于指令,在預編譯時根據預定義的規則將宏中的語句等內容轉換成對應的內容嵌入到主程序調用處,之后在執行程序時可以復用宏中的內容。在宏定義時可以按格式定義形式參數,在調用時以實際參數替代形式參變量,使每次執行的功能、結果不同。

5、方法

類似于子程序,在“類”中定義,調用時用類名或對象名加點加方法名調用。方法可以有自己的參數,可以沒有。如果方法有自己的參數(變量),在調用時系統會分配一定的空間給予這些變量,并帶入實際參數值,此時的表現與格式與函數相似。

6、類

類是可被復用的程序,由一到多個方法組合而成,在每個類中可以定義多個變量,在運行時會被分配一定的空間。類被集中到類庫中保存,在應用時只要打開類庫就可復用類的方法與變量,在JAVA語言環境下,類以CLASS文件形式保存,類庫實際上是文件夾。

在程序中可以復用類中的方法與變量,復用時采用的一種方法是以類名加方法名調用類的方法,類似于子程序執行過程,其中變量按某約定范圍使用。另一種方法是復制類的定義在內存中,用另外的名字命名,稱為對象,同時為變量另外分配空間。可以用對象名加點加方法名或對象名加點加變量名進行訪問,實現復用,運行結束時釋放在內存中所占用的空間。

可以在程序中對類局部進行修改后形成一個子類,所依據的類稱為父類。在程序中可以訪問新定義的方法與變量,也可訪問未被修改的父類中的方法與變量,稱為繼承。(采用某種方法也能訪問在子類中被修改了的原來的父類中的方法與變量。)

7、控件

是一種包括界面設計與實現的特殊的類,是對數據和方法的封裝,提供了一系列可用的接口。它可以有自己的屬性和方法。屬性是控件數據的簡單訪問者,方法則是控件的一些簡單而可見的功能。

8、軟部件

軟部件將一到多個類及若干語句組合為可執行程序文件,可被應用系統控制器直接調用,成為應用系統組成部分。在編譯時部件的全部內容被編譯到系統中。在調用時可以定義不同的參數,在編譯時根據參數內容選用其中不同的功能并表現出不同的性能,使得同一軟部件在使用不同參數被調用時有不同的程序表現。在執行時常被分配一個進程,安排一定空間。

通用軟部件可簡稱為軟部件,是實現軟件生產工業化、建立軟件生產線的基本單位。采用從上而下方式設計,首先對所知的一切實際應用系統進行需求分析,設計不同的但數量有限的軟部件程序覆蓋全部應用。每個部件程序集成多個功能與多種性能,相當于多道程序,可以通過實際參數值使被編譯時實現不同功能、表現不同性能。

軟部件可存放到部件庫中,部件庫實際上只是一個文件夾,在其中存放了多個部件程序文檔。

應用軟部件技術開發應用系統,可先將部件庫中所需要的軟部件文件拷貝到系統文件夾中,設計并建立數據模型,選擇不同部件,設置必要的參數,構筑系統的控制器,就能全自動地建立應用系統。

可以對軟部件文件進行修改,修改后成為完全獨立的部件文檔,存放到部件庫中,與原部件文件不存在邏輯、繼承關系,可以與原部件并行地被使用。

 9、軟構件

 軟構件將一到多個類及若干語句組合封裝為軟件實體,是一個獨立發布的功能部分,可以通過它的接口訪問它的服務。它體現了包裝、服務、完整性等觀點。利用軟構件技術開發應用系統,一般是先構筑系統的總體框架,然后構造各個構件,并依次把構件安裝到系統中去, 通過組裝時的引用實現復用。

 可將領域構件稱為軟構件。領域構件采用自下而上方式設計,首先對某一領域進行分析,歸納與綜合該域中一到多個應用程序設計為一個軟構件。

 10、組件

 組件是不被稱為軟構件和軟部件的將一到多個類及若干語句組合封裝而成的軟件實體。

四、結束語

 以上定義是我們的初步設想,希望廣泛接受批評意見并修改后能得到大家認可,并形成最終定義。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲江县| 伊吾县| 长沙市| 体育| 新昌县| 巴彦县| 武鸣县| 新巴尔虎右旗| 绿春县| 亚东县| 图们市| 诸暨市| 黄石市| 黑龙江省| 广水市| 涿州市| 海丰县| 桐梓县| 曲阳县| 乳源| 丽江市| 克东县| 专栏| 荆门市| 蕲春县| 达日县| 芦溪县| 门头沟区| 澎湖县| 白沙| 稻城县| 珠海市| 杨浦区| 三原县| 临江市| 乐东| 鄂州市| 晴隆县| 金坛市| 东源县| 拉萨市|