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

正文內(nèi)容

[工學(xué)]軟件工程第六章復(fù)習(xí)資料-在線瀏覽

2025-02-26 14:39本頁面
  

【正文】 比檢查一個點是否在一個一般的四邊形內(nèi)的效率要高一些。用面向?qū)ο箝_發(fā)方法構(gòu)造的軟件具有以下特點: ? 面向?qū)ο蟮募夹g(shù)建立的模型與客觀世界一致,因而便于理解; ? 適應(yīng)變化的需要,修改局限在模塊中; ? 可復(fù)用性。在圖中各個階段的順序是線性的,但實際上開發(fā)過程不是線性的。有退休者 教師 退休教師 多邊形 四邊形 矩形 三角形 6 一部分分析工作在設(shè)計之 前實行,但有些分析工作與其它部分的設(shè)計與實現(xiàn)并行進(jìn)行。面向?qū)ο?方法以 類作為單元,并分別考慮類的生存期與應(yīng)用生存期。 (2) 類生存期 在面向?qū)ο筌浖_發(fā)過程中特別重視復(fù)用。構(gòu)件的開發(fā)瞄準(zhǔn)某些局部的設(shè)計和實現(xiàn),它們可用于當(dāng)前問題的解決,但為了在以后的項目中使用,它們還應(yīng)當(dāng)足夠通用。因此,應(yīng)使得類成為一個可復(fù)用的單元, 圖 提出了一個類生存期。在應(yīng)用生存期的 每 一個階段都可做類的標(biāo)識。按照這些步驟,可以完整地描述一個基本實體。系統(tǒng)開發(fā)的各個階段都可能會標(biāo)識新的類。 例如,在應(yīng)用分析中已經(jīng)標(biāo)識了對一個圖形顯示設(shè)備的要求。但是,用到顯示器所有可能操作的應(yīng)用寥 寥無幾。但如果考慮讓構(gòu)件獨立于應(yīng)用,就必須能夠綜合出超出當(dāng)前系統(tǒng)需求的開發(fā)要求,生成一種能表示成一個完全的概念的模型并可建立為以后其它系統(tǒng)復(fù)用的類?;镜念悾?list 類,可不涉及應(yīng)用,但基本類的實例要聚合到其它類的定義中。 下面概括了類生存期各個階段主要做的事情。類的規(guī)格說明定義了施加于對象的數(shù)據(jù)存儲上的一組操作。操作的名字應(yīng)能反映這個操作本身的含義。 ② 類的設(shè)計與實現(xiàn) :此時盡可能利用既存類提供為當(dāng)前應(yīng)用所需要的功能。 ? 對 既存類進(jìn)行演化以得到滿足要求的類 。橫向的演化生成既存類的一個新的版本,而縱向的演化將從既存類導(dǎo)出新類。 一個新的繼承結(jié)構(gòu)將建立兩種類:一種是抽象類,它概括了將要表達(dá)的概念;另一種是具體類,它要實現(xiàn)這個概念。因為我們利用抽象進(jìn)行開發(fā),因此,維護(hù)活動每時每刻都可能修改這些抽象。 為便于類的調(diào)整,應(yīng)盡量做到定義與實現(xiàn)分離,實現(xiàn)概念封裝和信息隱蔽,使得類具有更大的獨 立性。但對一個類的公有界面所做的多次修改不應(yīng)影響使用它的那些類,在公有界面上增加新的操作不應(yīng)改變既存的軟件。 (3) 面向?qū)ο筌浖?開發(fā)過程 面向?qū)ο筌浖拈_發(fā)過程開始于問題論域,經(jīng)歷從問題提出到解決的一系列過程。 ① 分析階段 :分析階段包括兩個步驟:論域分析和應(yīng)用分析。在分析中,需要找到特定對象,基于對象的公共特性把它們組合成集合,標(biāo)識出對這 個問題的一個抽象。 ? 論域分析 :論域分析開發(fā)問題論域的模型。 ? 應(yīng)用分析 :應(yīng)用 (或系統(tǒng) )分析細(xì)化在論域分析階段所開發(fā)出來的信息,并且把注意力集中于當(dāng)前要解決的問題。 ② 高層設(shè)計 :在一個純面向?qū)ο蟓h(huán)境中,軟件體系結(jié)構(gòu)設(shè)計與類設(shè)計常常 是同樣的過程,但還是應(yīng)當(dāng)把體系結(jié)構(gòu)設(shè)計與類的設(shè)計分開。這相當(dāng)于開發(fā)一個代表系統(tǒng)的類,通過建立該類的一個實例并發(fā)送一個消息給它來完成系統(tǒng)的“執(zhí)行”。因為一個應(yīng)用系統(tǒng)往往是一個類的繼承層次。 ④ 實例的建立:建立各個對象的實例,實現(xiàn)問題的解決方案。各個類的封裝和類測試的完備性可減少 組裝測試所需要的時間。繼承 關(guān)系 可支持對現(xiàn)有應(yīng)用的擴(kuò)充,或者加入新的行為,或者改變某些行為的工作方式。應(yīng)用的維護(hù)能夠簡化對類實例的定位、修改其類的實現(xiàn)、通過改變消息或接收消息的次序來改變應(yīng)用中特殊對象的角色。 ? 類的維護(hù) :把類的實現(xiàn)與其規(guī)格說明分離可局部化修改的影響。然而,為了在系統(tǒng)中增加新的行為 ,偶爾會有改變界面的需求。論域分析建立大致的系統(tǒng)實現(xiàn)環(huán)境,應(yīng)用分析則根據(jù)特定應(yīng)用的需求進(jìn)行論域分析。這些原則形成 OOA 的基礎(chǔ)。為此, OOA 需完成的任務(wù)是: ① 軟件工程師和用戶必須充分溝通,以了解基本的用戶需求; ② 必須標(biāo)識類 (即定義其屬性和操作 ); ③ 必須定義類的層次; ④ 應(yīng)當(dāng)表達(dá)對象與對象之間的關(guān)系 (即對象的連接 ); ⑤ 必須模型化對象的行為; ⑥ 反復(fù)地做任務(wù)①―⑤,直到模型建成。每種方法都有各自的進(jìn)行產(chǎn)品或系統(tǒng)分析的過程,有一組可描述過程演進(jìn)的圖形標(biāo)識,以及能使得軟件工程師以一致的方式建立模型的符號體系。微開發(fā)過程定義了一組任務(wù),并在宏開發(fā)過程的每一步驟中反復(fù)使用它們,以維持演進(jìn)途徑。 ② Rumbaugh 方法 : Rumbaugh 和他的同事提出的對象模型化技術(shù) (OMT)用于分析、系統(tǒng)設(shè)計和對象級設(shè)計。 ③ Coad 和 Yourdon 方法 : Coad 和 Yourdong 方法常常被認(rèn)為是最容易學(xué)習(xí)的 OOA方法。其 OOA 過程概述如下: ? 使用“要找什么”準(zhǔn)則標(biāo)識對象; ? 定義對象之間的一般化∕特殊化結(jié)構(gòu); ? 定義對象之間的整體∕部分結(jié)構(gòu); ? 標(biāo)識主題 (系統(tǒng)構(gòu)件的表示 ); ? 定義屬性及對象之間的實例連接; ? 定義服務(wù)及對象之間的消息連接。 Jacobson 方法與其它方法的不同之處在于他特別強(qiáng)調(diào)使用實例 (use case)—— 用以描述用戶與系統(tǒng)之間如何交互的場景。 ⑤ Wirfs― Brock 方法 : Wirfs― Brock 方法不明確區(qū)分分析和設(shè)計任務(wù)。與 Wirfs― Brock 分析有關(guān)的任務(wù)概述如下: ? 評估客戶規(guī)格說明; ? 使用語法分析從規(guī)格說明中提取候選類; 9 ? 將類分組以表示超類; ? 定義每一個類的職責(zé); ? 將職責(zé)賦予每個類; ? 標(biāo)識類之間的關(guān)系; ? 基于職責(zé)定義類之間的協(xié)作; ? 建立類的層次表示; ? 構(gòu)造系統(tǒng)的協(xié)作圖。 UML 允許軟件工程師使用由 一組語法的語義的實用的規(guī)則支配的符號來表示分析模型。每一個視圖由一組圖形來定義。它用使用實例 (use case)來建立模型,并用它來描述來自終端用戶方面的可用的場景。即對靜態(tài)結(jié)構(gòu) (類、對象和關(guān)系 )模型化。它還描述了在用戶模型視圖和結(jié)構(gòu)模型視圖 中所描述的各種結(jié)構(gòu)元素之間的交互和協(xié)作。 ? 環(huán)境模型視圖 :表示系統(tǒng)實現(xiàn)環(huán)境的結(jié)構(gòu)和行為。 (3) 論域分析 (Domain Analysis) 論域分析是 基于特定應(yīng)用論域,標(biāo)識、分析、定義可復(fù)用于應(yīng)用論域內(nèi)多個項目的公共需求的技術(shù)。 論域分析可以被視為軟件過程的一種保護(hù)傘活動,是與任一軟件項目都沒有牽連的軟件工程活動。 論域分析過程的關(guān)鍵輸入∕輸出參看圖 。其中, OO 項包括既存應(yīng)用的類的規(guī)格說明、設(shè)計和代碼;支持類(GUI 類或數(shù)據(jù) 庫存取類 );與論域相關(guān)的市售構(gòu)件庫;測試用例等。 領(lǐng) 域 知 識 源 論 域 分 析 模 型 論 域 分 析 技術(shù)文化 現(xiàn)有應(yīng)用 客戶調(diào)查 專家建議 當(dāng)前 ∕ 未來需求 類的分類法 復(fù)用標(biāo)準(zhǔn) 功能模型 論域語言 10 ② 分類從論域抽取的項 :對所有的項進(jìn)行歸類并定義各個種類的一般定義特征。適當(dāng)?shù)臅r候建立分類的層次。 ④ 分析樣例中的每一個應(yīng)用 :分析員接下來要做的事情是: ? 標(biāo)識候選的可復(fù)用的對象; ? 指 明標(biāo)識對象為可復(fù)用的理由; ? 定義可復(fù)用對象的適合性; ? 估計在論域中可做到對象復(fù)用的應(yīng)用的百分比; ? 用名字標(biāo)識對象并使用配置管理技術(shù)控制它們。 此外,論域分析員還應(yīng)建立一組復(fù)用指南,并給出一個例子,說明如何使用論域?qū)ο髞斫⑿碌膽?yīng)用。論域的邊界可能很模糊,很多是憑借經(jīng)驗和實際考慮 (如可用資源 )。當(dāng)用戶改變他們對系統(tǒng)的需求時,范圍廣泛的分析可以幫助預(yù)測這些變化??蛻魧ο到y(tǒng)的需求可以當(dāng)做限制來使用,用它們縮減論域的信息量。論域分析產(chǎn)生的模型并不需要用任何基于計算機(jī)系統(tǒng)的程序設(shè)計語言來表示,而應(yīng)用分析階段產(chǎn)生影響的條件則伴隨著某種基于計算機(jī)系統(tǒng)的程序設(shè)計語言的表示。 許多模型識別的要求是針對不止一個應(yīng)用的。必須對每個類的規(guī)格說明和操作詳細(xì)化,還必須對形成應(yīng)用結(jié)構(gòu)的類之間的相互作用加以表示。分析處理以問題為中心,可以不考慮任何與特定計算機(jī)有關(guān)的問題,而 OOD 則把我們帶進(jìn)了面向計算機(jī)的“實地”開發(fā)活動中去。高 層設(shè)計 建立應(yīng)用的體系結(jié)構(gòu) 。 (1) 高層設(shè)計 高層設(shè)計階段開發(fā) 軟件的體系 結(jié)構(gòu),構(gòu)造 軟件 的總 體 模型。這些類包括那些可使應(yīng)用軟件與系統(tǒng)的外部世界交互的類。通常,利用面向?qū)ο笤O(shè)計得到的系統(tǒng)框架如 圖 所示。 客戶-服務(wù)器 模型的想法是讓系統(tǒng)的一個部分 (服務(wù)器子系統(tǒng) )提供一組服務(wù)給系統(tǒng)的另一個部分 (客戶子系統(tǒng) )。 X- window 系統(tǒng)在用戶界面設(shè)計時就使用了客戶 — 服務(wù)器方法來構(gòu)造它的圖形 11 交互界面。 圖 OOD 設(shè)計導(dǎo)出的體系結(jié)構(gòu) 在 Smalltalk 中使用的軟件體系結(jié)構(gòu)是模型/視圖/控制器 (MVC, Model/ View/Controller),參看 圖 。輸入事件給出要發(fā)送給模型的消息。這個關(guān)聯(lián)機(jī)制定義了在模型與各個視圖之間的關(guān)系,它允許模型的運(yùn)行獨立于與它相關(guān)聯(lián)的視圖。 此外,在軟件體系結(jié)構(gòu)中還使用了許多其它配置。它們是一些抽 象類的集合,可以定義這些抽象類的新的 派生類,并 把它們實例化,以實現(xiàn)所要求的特定行為,籍此構(gòu)造要求的應(yīng)用軟件。用戶界面通過定義視圖和控制器的 派生類 來建立,這些 派生類中 許多是可復(fù)用的既存類,像按鈕和對話框等在多數(shù) Smalltalk 系統(tǒng)中已經(jīng)存在。 ② 高層設(shè)計的規(guī)則 ? 最小化各構(gòu)件間的通信 :在子系統(tǒng)的各個高層構(gòu)件之間的通信量應(yīng)當(dāng)達(dá)到最小。 ? 隱藏復(fù)雜性 :子系統(tǒng)應(yīng)當(dāng)把那些成組的類打包,形成高度的內(nèi)聚。這樣比較容易識別并定位問題論域中的事件。事實上,每個子系統(tǒng)都可以被當(dāng)做一個類來實現(xiàn),這個類聚集它的構(gòu)件,提供了一組操作。 高層設(shè)計階段增加了一批必要的類,主要包括了那些可使應(yīng)用軟件與系統(tǒng)的外部世界交互的類 。 高層設(shè)計可以表征為標(biāo)識和定義模塊的過程。定義過程是職責(zé)驅(qū)動的。在這種情況下,應(yīng)用軟件中的每一個事物都是一個對象,包括應(yīng)用軟件自身在內(nèi) ! 根據(jù)這個思想,這兩個階段又是連接的。 (2) 類設(shè) 計的目標(biāo)和方針 類設(shè)計的第一步是標(biāo)識應(yīng)用所需的概念。在類設(shè)計的過程中應(yīng)當(dāng)做這些工作。一般人們在使用面向?qū)ο?方法開發(fā)軟件時,常常把 一個概念進(jìn)行分解,用一組類來表示這個概念。 ② 可復(fù)用的“插接相容性”構(gòu)件 :我們希望所開發(fā)的構(gòu)件可以在未來的應(yīng)用中使用。例如,在相關(guān)的類的集合中界面的標(biāo)準(zhǔn)化,在一個集合內(nèi)部的類的“插接相容性”等。而這種可靠性與它的構(gòu)件有關(guān)。但由于成本關(guān)系,往往測試不夠完備。 ④ 可集成的構(gòu)件 :我們希望把類的實例用到其它類的開發(fā)和應(yīng)用中,這要求類的界面應(yīng)當(dāng)盡可能小,一個類所需要的數(shù)據(jù)和操作都定義在類定義中。面向?qū)ο笳Z言的消息語法可 通過鑒別帶有實例名的操作名來減少可能的命名沖突。封裝特性保證了把一個概念的所有細(xì)節(jié)都組合在一個界面下,而信息隱蔽則保證了實現(xiàn)級的名字將不會其它類的名字互相干擾。 ① 信息隱蔽 :軟件設(shè)計通過信息隱蔽可增強(qiáng)抽象,并可保護(hù) 類 的存儲表示不被抽象數(shù)據(jù)類型實例的用戶直接存取。 ② 消息限制 :類的設(shè)計者應(yīng)當(dāng)為類的命令設(shè)計一個明確的界面,該類實例的用戶應(yīng)當(dāng)只使 用界面提供的操作。只有對其它類的實例是必要的操作才放到界面上 ,其它操作 應(yīng)是隱蔽實現(xiàn)的部分。 ⑤ 弱耦合 :一個單獨模塊應(yīng)盡量不依賴于其它模塊。一個類應(yīng)當(dāng)盡可能少地依賴于其它類。類 A 之所以依賴于類 B,是因為類 A 要求類 B提供服務(wù) 。但代碼的復(fù)制減少了系統(tǒng)的靈活性并增加了維護(hù)的困難。因為在建立 一般化 特殊化關(guān)系 的時候,繼承引入了依賴。在類之間全局變量的共享隱含了信息的傳遞,并且是一種依賴形式。顯式信息傳遞是通過參數(shù)表來完成的。每個 派生類 應(yīng)該當(dāng)做基類的 特殊化 來開發(fā),而基類所 具有的公共界面成為 派生類 的共有界面的一個子 13 圖 建立子類 集。如果 基類 是共有的,則其共有界面將成為新的 派生類 的共有界面部分,這表明 基類 的行為成為 派生類 的行為部分。如果 基類 是私有的,它的行為將不是繼承類的公共行為部分而是實現(xiàn)部分。 ⑧ 抽象類 :某些語言提供了一個類,用它做為繼承結(jié)構(gòu)的開始點,所有用戶定義的類都直接或間接以這個類為 基類 。每一種結(jié)構(gòu)都包含了一組類,它們是 (或應(yīng)該是 )某種概念的 特殊化 。因此,每個繼承結(jié)構(gòu)的根類應(yīng)當(dāng)是目標(biāo)概念的一個抽象模型。它定義了一個最小的共有界面,許多 派生類 可以加到這個界面上以給出概念的一個特定視圖。這是面向?qū)ο蠹夹g(shù)的一個重要優(yōu)點。 ① 選擇 : 設(shè)計類最簡單的方法是從既存構(gòu)件中簡單地選擇合乎需要的構(gòu)件。一個 OO 開發(fā)環(huán)境應(yīng)提供常用構(gòu)件庫,大多數(shù)語言環(huán)境都帶有一個原始構(gòu)件庫 (如整數(shù)、實數(shù)和字符 ),它是基礎(chǔ)層。這些都是些一般的和可復(fù)用的類。表 顯示了建立在這些層上面的特定域的庫。特定項目和特定組的庫包括一些論域庫,它包含為相應(yīng)層所定義的信息。在設(shè)計時,可能會發(fā)現(xiàn)所標(biāo)識的操作落在分散的幾個概念中,或者會發(fā)現(xiàn) ,數(shù)據(jù)屬性被分開放到模型中拆散概念形成的幾個組內(nèi)。 ③ 配置 : 在設(shè)計類時,可能會要求由既存類的實例提供類的某些特性。例如,一種仿真服務(wù)器可能要求
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1