freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件工程課件:swguide8-文庫(kù)吧資料

2025-09-05 13:25本頁(yè)面
  

【正文】 支持工具 關(guān) 鍵 子 任 務(wù) 支 持 工 具 構(gòu)件的修改 源程序代碼的比較工具 構(gòu)件的實(shí)例化 宏擴(kuò)展工具,模板程序的實(shí)例數(shù)據(jù)生成工具 修改后構(gòu)件的正確性驗(yàn)證 用于支持在軟件維護(hù)階段修改軟件元素的 CASE 工具 將構(gòu)件合成到目標(biāo)軟件系統(tǒng) 編譯器,連接器以及集成化 CASE 環(huán)境中的其它合成機(jī)制 三、例題分析 【例 1】實(shí)施軟件復(fù)用的目的是要使軟件開(kāi)發(fā)工作進(jìn)行得 ( A )。下面主要介紹復(fù)用技術(shù)的各個(gè)子任務(wù)對(duì)于 CASE 工具的大致需求。子類法利用了面向?qū)ο蟮姆庋b和繼承的特性。 ② 子類法:與構(gòu)造法完全不同,子類法把新子類直接說(shuō)明為庫(kù)中基類的子類。 ① 構(gòu)造法:為了在子類中使用庫(kù)中的基類的屬性和操作,可以考慮在子類中引進(jìn)基類的實(shí)例作為作為子類的實(shí)例變量,然后在子類中通過(guò)實(shí)例變量來(lái)復(fù)用基類的屬性或操作。否則必須以類庫(kù)中的基類為父類,采用構(gòu)造法或子類法派生出子類。這與其它可復(fù)用構(gòu)件庫(kù)的檢索截然不同。借助于類庫(kù)的超 文本文檔,用戶一方面可以在Cobject CWnd CMenu Frame Windows Dialog Boxes Views CMDIFrameWnd CMDIChildWnd CMiniFrameWnd CDialog CCommonDialog CFileDialog CColorDialog CPropertyPage ?? ?? CView ?? CCrtView CEditView CListView CTreeView ?? CFormView CScrollView 15 類庫(kù)的繼承層次結(jié)構(gòu)中查閱各基類的屬性、操作和其它特征,另一方面可按照基類之間的語(yǔ)義關(guān)聯(lián)實(shí)現(xiàn)自由跳轉(zhuǎn)。常用的類庫(kù)檢索方法是對(duì)類庫(kù)中類的繼承層次結(jié)構(gòu)進(jìn)行樹(shù)形瀏覽,以及基于類庫(kù)文檔的超文本檢索。 與圖形用戶界面有關(guān)的一種典型的類庫(kù)結(jié)構(gòu)如圖 所示。這種結(jié)構(gòu)與現(xiàn)實(shí)問(wèn)題空間的實(shí)體繼承關(guān)系有某種自然、直接的對(duì)應(yīng)??蓮?fù)用基類的建立取決于論域分析階段對(duì)當(dāng)前應(yīng)用 (族 )中具有一般適用性的對(duì)象和類的標(biāo)識(shí)。理論上構(gòu)件的用戶不需要了解構(gòu)件的實(shí)現(xiàn)細(xì)節(jié)。繼承是指在定義新的子類時(shí)可利用庫(kù)中已有的父類的屬性和操作。封裝意味著可以將表示構(gòu)件的類看作黑盒子。這種合成技術(shù)也要求庫(kù)中的構(gòu)件以子程序的形式出現(xiàn),但它所依賴的軟件設(shè)計(jì)方法不再是功能分解,而是面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,如 Jackson 系統(tǒng)開(kāi)發(fā)方法。 14 ② 基于數(shù)據(jù)的合成技術(shù) 基于數(shù)據(jù)的合成技術(shù)首先根據(jù)當(dāng)前應(yīng)用問(wèn)題的核心數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)出一個(gè)框架,然后根據(jù)框架中各結(jié)點(diǎn)的需求提取構(gòu)件并進(jìn)行適應(yīng)性修改,再把它們逐個(gè)分配給框架中的適當(dāng)位置。它要求在 庫(kù)中的構(gòu)件必須以標(biāo)準(zhǔn)子程序 (標(biāo)準(zhǔn)過(guò)程或函數(shù) )的形式出現(xiàn),并且接口說(shuō)明必須準(zhǔn)確、清楚。下面簡(jiǎn)單介紹前兩種。 (4) 構(gòu)件的合成 構(gòu)件合成是指將可復(fù)用構(gòu)件庫(kù)中的構(gòu)件 (經(jīng)適當(dāng)修改后 )相互連接,或?qū)⑺鼈兣c當(dāng)前軟件項(xiàng)目中的軟件元素相連接以構(gòu)成最終的目標(biāo)系統(tǒng)。例如,可以利用不同數(shù)據(jù)結(jié)構(gòu) (如鏈表和數(shù)組 )之間的相似性自動(dòng)修改構(gòu)件外部接口中的參數(shù)類型。例如,如果需要將用 C 語(yǔ)言編寫的構(gòu)件 (源程序代碼 )改寫為其它語(yǔ)言的形式,構(gòu)件的算法描述就十分必要。如果這種調(diào)整仍不能使構(gòu)件適應(yīng)新的軟件項(xiàng)目,用戶就必須借助設(shè)計(jì)信息和說(shuō)明文檔來(lái)理解、修改構(gòu)件。為了減少修改的工作量,要求構(gòu)件的開(kāi)發(fā)人員盡量使構(gòu)件的功能、行為、接口抽象化、通用化、參數(shù)化。 (3) 修改構(gòu)件 理想的情況是對(duì)庫(kù)中的構(gòu)件 不做修改就可以直接用于新的軟件項(xiàng)目。 對(duì)軟件構(gòu)件的可復(fù)用性進(jìn)行評(píng)價(jià),主要通過(guò)收集和分析構(gòu)件的用戶在實(shí)際復(fù)用構(gòu)件的過(guò)程中所得到的各種反饋信息,按照某種論域模型來(lái)完成。 逆向工程是理解構(gòu)件的另一種重要手段。例如,對(duì)于以 C 或 C++ 源程序 形式出現(xiàn)的構(gòu)件,用戶可借助于 CASE 工具查詢標(biāo)識(shí)符 (包括變量、常量、宏、函數(shù)等 )的定義和引用。此時(shí)軟件人員必須借助 CASE 工具對(duì)待選構(gòu)件進(jìn)行分析??紤]到設(shè)計(jì)信息對(duì)于理解構(gòu)件的必要性和構(gòu)件庫(kù)的用戶逆向發(fā)掘設(shè)計(jì)信息的困難性,要求構(gòu)件的開(kāi)發(fā)過(guò)程必須遵循公共的軟件工程規(guī)范,并在構(gòu)件庫(kù)的說(shuō)明文檔中全面、準(zhǔn)確地說(shuō)明下列內(nèi)容: ① 構(gòu)件的功能和行為; ② 相關(guān)的論域知識(shí); ③ 可適應(yīng)性約束條件和例外情況; ④ 可以預(yù)見(jiàn)的修改部分和修改方法。理論上,理想的檢索方法是語(yǔ)義匹配:可復(fù)用構(gòu)件庫(kù)的用戶以形 13 式化的手段描述所需要的構(gòu)件的功能或行為的語(yǔ)義,系統(tǒng)通過(guò)定理證明或基于知識(shí)的推理過(guò)程尋找語(yǔ)義上等價(jià)的或相近的構(gòu)件。 這種方法的優(yōu)點(diǎn)是用戶界面友好。為了避免用戶在跳轉(zhuǎn)過(guò)程中迷失方向,系統(tǒng)可以通過(guò)圖形用戶界面顯示瀏覽歷史圖,允許將特定畫面定義為有名“書簽”并可隨時(shí)跳轉(zhuǎn)到“書簽”。這些構(gòu)件說(shuō)明是含有許多超文本結(jié)點(diǎn)的正文。 ③ 超文本檢索 這種 檢索方法的步驟是:用戶首先給出一個(gè)或若干個(gè)關(guān)鍵詞,系統(tǒng)在構(gòu)件的說(shuō)明文檔中做精確的或模糊的語(yǔ)法匹配。 ? 對(duì)構(gòu)件進(jìn)行排序:按照相似程度對(duì)被檢索出來(lái)的構(gòu)件進(jìn)行排序,還可以按照與復(fù)用有關(guān)的度量信息 (如構(gòu)件的復(fù)雜性、可復(fù)用性、成功復(fù)用的次數(shù)等 )進(jìn)行排序。在構(gòu)造查詢的過(guò)程中,可以利用同義詞庫(kù)和概念距離圖來(lái)幫助用戶正確選擇特征值。此時(shí),用戶可以從可復(fù) 用構(gòu)件庫(kù)已有的“概念”中挑選,也可以將某些特征值置為空。 ② 多面檢索 這種檢索方法基于多面分類法。當(dāng)然,用戶也可以直接給出關(guān)鍵詞 (其中可含有通配符 ),由系統(tǒng)自動(dòng)地給出合適的候選構(gòu)件清單。 7. 軟件構(gòu)件的復(fù)用 (1) 檢 索與提取構(gòu)件 可復(fù)用構(gòu)件庫(kù)的檢索方法與庫(kù)的組織方式密切相關(guān)。 為了確保分層式系統(tǒng)可管理,規(guī)定在一個(gè)系統(tǒng)內(nèi),不能從低層復(fù)用高層的構(gòu)件。但還可以把 Java 看作是組織分布對(duì)象的一個(gè)重要部分,通過(guò)Java 可將對(duì)象移到不同的機(jī)器上,從而改變客戶機(jī) ― 服務(wù)器系統(tǒng)的應(yīng)用劃分。例如 Java 就是這種情況。 最低層是系統(tǒng)軟件層,此層包括計(jì)算和網(wǎng)絡(luò)等基礎(chǔ)設(shè)施軟件,如操作系統(tǒng)、專用的硬件接口軟件等。此層經(jīng)常包括:圖形用戶界面構(gòu)筑者使用的構(gòu)件庫(kù)系統(tǒng)、與數(shù)據(jù)庫(kù)管理系統(tǒng) (DBMS)的接口、不依賴平臺(tái)的操作系統(tǒng)服務(wù)、對(duì)象請(qǐng)求代理 (ORBs)、對(duì)象鏈接和嵌入 OLE 構(gòu)件,如電子表格和框圖編輯器。 中間件層位于次高層下面,它為次頂層的各個(gè)構(gòu)件庫(kù)系統(tǒng)提供實(shí)用軟件類,以及不依賴于平臺(tái)的服務(wù)。這樣的構(gòu)件庫(kù)系統(tǒng)向用戶提供可復(fù)用的使用事例和對(duì)象構(gòu)件,用于開(kāi)發(fā)應(yīng)用系統(tǒng),支持復(fù)用業(yè)務(wù)。 次頂層 (即次高層 )是“特定業(yè)務(wù)”層。有的應(yīng)用系統(tǒng)還可具有不同的版本或若干變體。圖 給出一種典型的 4 層次體系結(jié)構(gòu)。 即使按照上述的原則,人們?nèi)匀欢x出多種形式的分層式體系結(jié)構(gòu)。一個(gè)系統(tǒng)的動(dòng)態(tài)特征時(shí)由使用事例、協(xié)作、過(guò)程和結(jié)點(diǎn)模型來(lái)定義的。應(yīng)用系統(tǒng)建立在構(gòu)件層之上,而此構(gòu)件層中的許多構(gòu)件庫(kù)系統(tǒng)又是建立在更低層次的構(gòu)件庫(kù)系統(tǒng)之上。 因此,在分層的體系結(jié)構(gòu)中,最高層是應(yīng)用層,可包容許多應(yīng)用系統(tǒng)。位于同一層的軟件系統(tǒng)或子系統(tǒng)具有同等的通用性,在下一層的軟件比在上一層的軟件通用性更強(qiáng)。“不受控的索引詞匯表”則對(duì)描述的自然狀態(tài)不加限制。圖 給出了一個(gè)使用圖書館科學(xué)索引法的分類法。所有的方法大致歸 為 3 個(gè)主要的方面:圖書館和信息科學(xué)方法、人工智能方法和超文本系統(tǒng)。 為了在實(shí)際背景下使用,必須把概念、內(nèi)容和上下文轉(zhuǎn)換成具體的規(guī)格說(shuō)明模式。 ? 上下文:將可復(fù)用的構(gòu)件安置到它的應(yīng)用論域中。 ? 內(nèi)容:描述軟件構(gòu)件的概念如何實(shí)現(xiàn)。為此,需要完全地描述構(gòu)件的接口和表示語(yǔ)義 (表示在前置條件和后置條件的上下文中 )。 (5) 可復(fù)用構(gòu)件的 3C 模型 可以有很多方法來(lái)描述可復(fù)用的構(gòu)件,其中最理想的是由 Tracz 提出的 3C 模型:概念(Concept)、內(nèi)容 (Content)和 上下文 (Context)。為了構(gòu)造可復(fù)用構(gòu)件庫(kù)的文檔,首先要根據(jù)論域分析的結(jié)果,在說(shuō)明文檔中標(biāo)識(shí)超文本結(jié)點(diǎn),并在相關(guān)文檔中建立鏈接關(guān)系。由于網(wǎng)狀結(jié)構(gòu)比較自由、松散,因此,超文本方法更容易修改可復(fù)用構(gòu)件庫(kù)的結(jié)構(gòu)。對(duì)于可復(fù)用構(gòu)件庫(kù)而言,結(jié)點(diǎn)可以是論域的概念、功能或行為名稱、構(gòu)件名稱等,在圖形用戶界面上,結(jié)點(diǎn)可以是字符串,也可以是圖像、聲音、動(dòng)畫等。 超文本是一種非線性的網(wǎng)狀信息組織方法,它以結(jié)點(diǎn)為基本單位,鏈作為結(jié)點(diǎn)之間的聯(lián)想式關(guān)聯(lián),如圖 所示。檢索者在閱讀文檔的過(guò)程中可按照人類的聯(lián)想思維方式任意跳轉(zhuǎn)到包含相關(guān)概念或軟件構(gòu)件的文檔中去。必要時(shí)可以考慮增加新的“概念”,此時(shí)必須根據(jù)新“概念”完善同義詞庫(kù)和概念距離圖。多面分類法的所有語(yǔ)法構(gòu)件 (“面”、“概念”、同義詞、一般化概念、差 異性權(quán)值 )均取材于論域分析的結(jié)果。 多面分類機(jī)制 dc = ( T1A, T2B, ? , TNJ ) F1 F2 ? FN T11 T21 ? TN1 T12 T22 ? TN2 T13 T23 ? TN3 ? ? ? ? T1J T2J ? TNJ 同義詞庫(kù) T11 ? S111, S112, ? , S11k T12 ? S121, S122, ? , S12m T13 ? S131, S132, ? , S13n 概念距離圖 ? T11 ? T12 ? T13 ? ? T1M 一般化概念 ? ? 同義詞 F1 F2 概念 面 面描述子 構(gòu)件 用戶界面 窗口 菜單 對(duì)話框 事件處理 圖形窗口 文本窗口 信息對(duì)話框 數(shù)據(jù)錄入對(duì)話框 拖放處理 鍵盤事件處理 10 圖 超文本結(jié)構(gòu)示意圖 圖 多面分類法的組成 采用多面分類法進(jìn)行可復(fù)用構(gòu)件庫(kù)的組織,必須在存儲(chǔ)軟件構(gòu)件的同時(shí),表示并存儲(chǔ)多面分類機(jī)制、同義詞庫(kù)和概念距離圖。 ③ 概念距離圖:用于度量每個(gè)“面”中“概 念”的相似性程度。 ② 同義詞庫(kù):意義相同或相近的若干詞匯組成同義詞庫(kù)。 作為一個(gè)簡(jiǎn)單的在構(gòu)件分類中使用“面”的例子,面描述子的模式可以是: { 功能,對(duì)象類型,系統(tǒng)類型 } 面描述子中每一個(gè)“面” 可含有 1 個(gè) 或多個(gè)特征值,這些值一般是描述性的關(guān)鍵詞。描述某一構(gòu)件的“面”的集合稱為面描述子。這些特征根據(jù)它們的重要性排隊(duì)。 圖 關(guān)鍵詞分類結(jié)構(gòu)示例 (3) 多面分類 此方法 由 3 部分構(gòu)成:多面分類機(jī)制、同義詞庫(kù)和概念距離圖。如果無(wú)法找到構(gòu)件應(yīng)從屬的關(guān)鍵詞,可以擴(kuò)充現(xiàn)有的關(guān)鍵詞分類結(jié)構(gòu),引進(jìn)新的關(guān)鍵詞。圖 給出了可復(fù)用構(gòu)件庫(kù)的關(guān)鍵詞分類結(jié)構(gòu),它支持圖形用戶界面設(shè)計(jì)。每個(gè)概念用一個(gè)描述性的關(guān)鍵詞表示。但在建立層次之前,必須進(jìn)行論域工程,這樣層次中各個(gè)項(xiàng)可以有充足的知識(shí)以供使用。真實(shí)的構(gòu)件都被羅列在枚舉層次中任一路徑的最低層。 (1) 枚舉分類 此方法通過(guò)定義一個(gè)層次結(jié)構(gòu)類描述構(gòu)件。 復(fù)用技術(shù)對(duì)可復(fù)用構(gòu)件庫(kù)組織方法的要求是: ? 支持構(gòu)件庫(kù)的各種維護(hù)操作。 5. 可復(fù)用構(gòu)件庫(kù)的組織 需要對(duì)收集和開(kāi)發(fā)的軟件構(gòu)件進(jìn)行分類,然后把它們放入到可復(fù)用構(gòu)件庫(kù)的適當(dāng)為止。 8 ⑥ 成立構(gòu)件質(zhì)量保證小組。 ⑤ 制訂并執(zhí)行統(tǒng)一的、良好的程序設(shè)計(jì)風(fēng)格。移植性錯(cuò)誤包括數(shù)值計(jì)算錯(cuò)誤、多任務(wù)調(diào)度錯(cuò)誤、內(nèi)存使用錯(cuò)誤等;適應(yīng)性錯(cuò)誤包括并發(fā)性錯(cuò)誤、重名錯(cuò)誤、表達(dá)式求值順序錯(cuò)誤等。 ③ 應(yīng)當(dāng)盡可能將構(gòu)件的與環(huán)境有關(guān)的因素抽象成為構(gòu)件的參數(shù),或者可將這些因素作為使用構(gòu)件的約束條件在接口說(shuō)明中詳細(xì)闡述,甚至可以將這些約束條件標(biāo)識(shí)成精確的邏輯斷言插裝到構(gòu)件的源程 序中。 ② 在構(gòu)件的設(shè)計(jì)過(guò)程中必須預(yù)先考慮構(gòu)件對(duì)于各類可能的硬件環(huán)境的可移植性和對(duì)于不同軟件環(huán)境的適應(yīng)能力。但是。 (4) 軟件構(gòu)件的質(zhì)量保證 由于軟件構(gòu)件將在多種硬件和軟件環(huán)境下運(yùn)行,因此,除采用軟件工程的一般的質(zhì)量保證措施之外,還要針對(duì)可復(fù)用構(gòu)件的特征進(jìn)行特別的質(zhì)量保證。 ② 正確性 ? 使用顯式的、標(biāo)準(zhǔn)的、完備的出錯(cuò)處理機(jī)制; ? 使用強(qiáng)類型的程序設(shè)計(jì); ? 在構(gòu)件上附加重要的測(cè)試數(shù)據(jù)和測(cè)試報(bào)告。對(duì)于代碼級(jí)軟件構(gòu)件的開(kāi)發(fā)者,必須注意遵循以下的程序設(shè)計(jì)原則。 (3) 程序設(shè)計(jì)的主要原則 可復(fù)用性、可理解性、正確性和易組裝性是衡量軟件構(gòu)件質(zhì)量的重要標(biāo)準(zhǔn)。使用構(gòu)件的多個(gè)線程之間通過(guò)全局共享數(shù)據(jù)或消息傳遞進(jìn)行信息交換。軟件構(gòu)件提供端口,以便為多個(gè)用戶同時(shí)訪問(wèn)軟件構(gòu)件中的資源進(jìn)行同步控制。面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中的“類”是一種典型的基于數(shù)據(jù)抽象的軟件構(gòu)件。構(gòu)件的功能或行為由輸入?yún)?shù)和構(gòu)件自身記憶的內(nèi)部狀態(tài)決定。典型的抽象方法有 如下 3 種?,F(xiàn)在,在基于對(duì)象和面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言及相應(yīng)的開(kāi)發(fā)環(huán)境下,軟件構(gòu)件可 以用 Ada 程序包或 C++類來(lái)實(shí)現(xiàn)。這些輔助可以用結(jié)構(gòu)化語(yǔ)言或其它標(biāo) 識(shí)機(jī)制描述,但最好以相應(yīng)的需求級(jí)或設(shè)計(jì)級(jí)軟件構(gòu)件的形式出現(xiàn)。 (2) 代碼級(jí)的軟件構(gòu)件 代碼級(jí)復(fù)用是迄今為止研究最深入、應(yīng)用最廣泛的復(fù)用技術(shù)。 需求級(jí)、設(shè)計(jì)級(jí)與代碼級(jí)軟件構(gòu)件相結(jié)合,有助于代碼級(jí)軟件構(gòu)件的提取和理解。這時(shí),若能將需求級(jí)的軟件構(gòu)件和設(shè)計(jì)級(jí)的軟件構(gòu)件相結(jié)合,使需求級(jí)軟件構(gòu)件和設(shè)計(jì)級(jí)軟件構(gòu)件的復(fù)用同時(shí)發(fā)生,就能夠簡(jiǎn)化對(duì)這些軟件構(gòu)件的理解和組
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1