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

正文內(nèi)容

[工學]軟件工程第六章復(fù)習資料-展示頁

2025-01-18 14:39本頁面
  

【正文】 nt ( ) 針對消息對象是 int array 還是 int,其實現(xiàn)是不同的。 這 就是多態(tài)性。如在 C 程序中使用命令 ClearInt ( ) 時要嚴格區(qū)分該命令適合一個整數(shù),還是一個整數(shù)數(shù)組。 (7) 多態(tài)性和動態(tài)綁定 對象互相通信,即一個對象發(fā)消息給另一個對象,執(zhí)行某些行為或又發(fā)消息給另外的對象,從而執(zhí)行系統(tǒng)的功能。 (6) 多 繼承 如果一個類需要用到多個既存類的特征,可以從多個類中繼承,稱為多繼承。各個特殊類可以從一般類中繼承共性,這樣避免了重復(fù)。 (5) 繼承 (inheritance) 如果某幾個類之間具有共性的東西 (信息結(jié)構(gòu)和行為 ),抽取出來放在一個一般類中,而將各個類的特有的東西放在特殊類中分別描述,則可建立起特殊類對一般類的繼承。事實上,類是單個的語義單元,它可以很自然地管理系統(tǒng)中的對象,匹配數(shù)據(jù)定義與操作。 類常??煽醋鍪且粋€抽象數(shù)據(jù)類型 (ADT)的實現(xiàn)。 C++還允許每個類定義自己的析構(gòu)方法,在撤消一個對象時調(diào)用它。此外,程序設(shè)計語言給出了不同的方法,來撤消 (稱為析構(gòu) )實例,即當某些對 象不再使用時把它們刪去,把存儲釋放以備其它對象使用。 圖 對象、類與實例 面向?qū)ο蟪绦蛟O(shè)計語言,如 C++和 smalltalk 都定義了一個 new 操作,可建立一個類的新實例。 類定義了各個實例所共有的結(jié)構(gòu),類的每一個實例都可以 使用類中定義的操作。 如 圖 所示。屬于某個類的對象叫做該類的實例。 (4) 類 (class)和實例 (instance) 把具有相同特征和行為的對象歸在一起就形成了類。從實現(xiàn)方面來看,一個對象表示了 在應(yīng)家具 價格 尺寸 重量 位置 顏色 屬性 服務(wù) 購買 銷售 稱重 移動 桌子 價格 尺寸 重量 位置 顏色 購買 銷售 稱重 移動 屬性 服務(wù) 4 用程序中出現(xiàn)的實體的實際數(shù)據(jù)結(jié)構(gòu)。 對象有兩個視圖,分別表現(xiàn)在分析設(shè)計和實現(xiàn)方面。對象的狀態(tài)通過給對象賦予具體的屬性值而得到。 ? 操作規(guī)程 :如操作菜單、某種數(shù)據(jù)輸入過程等。 ? 組織機構(gòu) :有關(guān)機構(gòu),如單位、小組等。 ? 需要記憶的事件 :在系統(tǒng)運行過程中可能產(chǎn)生并需要系統(tǒng)記憶的事件,如單擊鼠標左鍵、擊打鍵盤 “?”鍵等。 ② 對象的分類 ? 外部實體 :與軟件系統(tǒng)交換信息的外部設(shè)備、相關(guān)子系統(tǒng)、操作員或用戶等。接收對象對消息的處理可能會改變對象中 的狀態(tài),即改變接收對象的屬性,并發(fā)送一個消息給自己或另一個對象。發(fā)送給一個對象的消息定義了一個操作名和一個參數(shù)表 (可能是空的 ),并指定某一個對象。 操作 又稱為方法或服務(wù),在 C++中稱為成員函數(shù),它描述了對象執(zhí)行的功能,若通過消息傳遞,還可以為其它對象使用。 ① 對象、屬性、操作、消息定義 對象 可以定義為系統(tǒng)中用來描述客觀事物的一個實體,它是構(gòu)成系統(tǒng)的一個基本 單位,由一組屬性和一組對屬性進行操作的服務(wù)組成。對象是構(gòu)成現(xiàn)實世界的一個獨立的單位,具有自己的靜態(tài)特征 (用數(shù)據(jù)描述 )和動態(tài)特征 (行為或具有的功能 )。 (3) 對象 (object) 一般意義來講,對象是現(xiàn)實世界中存在的一個事物。如果一個軟件系統(tǒng)是使用這樣 4 個概念設(shè)計和實現(xiàn)的,則認為這個軟件系統(tǒng)是面向?qū)ο蟮摹? (2) 面向?qū)ο蟮母拍? 關(guān)于“面向?qū)ο蟆?,有許多不同的看法。系統(tǒng)可以使用單一的語言,利用兩種或多種范型寫成。像 C++和并發(fā) C 這樣的語言都是多范型語言,支持過程性范型和面向?qū)ο蠓缎?。許多流行的功能不斷增強的語 3 圖 對象的定義 言支持不只一種設(shè)計范型。系統(tǒng)的數(shù)據(jù)庫界面,可以使用面向?qū)ο蟮姆椒ㄟM行設(shè)計;智能數(shù)據(jù)分析用邏輯范型設(shè)計;而分析算法則是過程性的;系統(tǒng)通過一個用戶界面來實用化,這個用戶界面是用面向存取范型設(shè)計出來的。對于每個子問題可以采用適當?shù)能浖缎汀? ⑤ 混合范型 :在大型系統(tǒng)的開發(fā)中,很難說哪種 范型對整個問題的解決最好。在面向?qū)ο蠓缎椭?,各個對象是相對獨立的,但也存在單線索 (單線程 )控制。一個進程中的活動獨立于其它進程的活動,但可以要求從其它進程得到信息,或為其它進程提供信息。這些進程互相配合,解決問題。 圖 過程性系統(tǒng)和 面向?qū)ο笙到y(tǒng)的基本構(gòu)造 ④ 面向進程的范型 :面向進程的范型是把一個問題分解成獨立執(zhí)行的模塊。完成的系統(tǒng)體系結(jié)構(gòu)更復(fù)雜但也更靈活,如圖 (b)所示??刂屏靼诟鱾€數(shù)據(jù)抽象中的操作內(nèi)。 面向?qū)ο笙到y(tǒng)中的對象是數(shù)據(jù)抽象與過程抽象的綜合。 ③ 面向?qū)ο蠓缎? :在過程性范型中優(yōu)先考慮的是過程抽象,而在面向?qū)ο蠓缎椭袃?yōu)先考慮的是實體,即問題論域的對象。對這種方法已有許多支持工具。系統(tǒng)的狀態(tài)是一組全局變量,這組 2 圖 一個智能數(shù)據(jù)分析系統(tǒng) 全局變量保存狀態(tài)的值,把它們從一個過程傳送到另一個過程。每一步驟都是帶有預(yù)定輸入和特定輸出的一個過程,把這些步驟串聯(lián)在一起可產(chǎn)生合理的穩(wěn)定的貫通于整個程序的控制流,最終產(chǎn)生一個簡單的具有靜態(tài)結(jié)構(gòu)的體系結(jié)構(gòu),如圖 (a)所示。 ② 過程性范型 :過程性范型是使用最廣泛、歷史最長的軟件范型。下面主要討論三種范型。面向存取范型是一種在構(gòu)造用戶界面方面很有用的技術(shù)。每個范型都有它的支持者和用戶,每個范型都特別適合于某種類型的問題或子問題。 ① 流行的范型 : 目前流行多種范型,它們提供了許多方法,可進行系統(tǒng)分解。因此,范型的選擇影響整個軟件開發(fā)生存期。從軟件開發(fā)角度來看,范型與問題解決技術(shù)有關(guān)。 ? 把面向?qū)ο蠓治?(OOA)、面向?qū)ο笤O(shè)計 (OOD)和面向?qū)ο蟪绦蛟O(shè)計 (OOP)集成到生存期的相應(yīng)階段。它的特 征是: ? 方法的唯一性,即方法是對軟件開發(fā)過程所有階段進行綜合考慮而得到的。 5. 了解有影響的 coad 方法、 Booch 方法和 OMT 方法的基本思想。 3. 了解面向?qū)ο蠓治龇椒ǎ?論域分析, 應(yīng)用分析的介紹 。 1 第六章 面向?qū)ο蟮能浖こ? 一、復(fù)習要求 1. 了解面向?qū)ο蟮母拍?,包括什么是范型?面向?qū)ο蟮母拍睿瑢ο蠛?對象的分類等。 2. 了解用面向?qū)ο蠓椒?gòu)造軟件的開發(fā)過程,包括 應(yīng)用生存期和類生存期的概念 。 4. 了解面向?qū)ο笤O(shè)計方法,包括 高層設(shè)計模型和設(shè)計原則, 類設(shè)計的目標和方針,復(fù)用設(shè)計及 類設(shè)計 的方法 。 二、內(nèi)容提要 面向?qū)ο蠹夹g(shù)是一個非常實用而強有力的軟件開發(fā)方法。 ? 從生存期的一個階段到下一個階段的高度連續(xù)性,即生存期后一階段的成果只是在前一階段成果的補充和修改。 1. 面向?qū)ο蟮母拍? (1) 范型 范型 (Paradigm)又稱為范例、風范或模式 (Pattern)。范型定義了特定的問題和應(yīng)用的開發(fā)過程中將要遵循的步驟,確定將用于表示問題和它 的解決的那些成分的類型,并利用這些成分表示與問題解決有關(guān)的抽象,直接得到問題的結(jié)構(gòu)。就是說,它支配了設(shè)計方法、編碼語言、測試和檢驗技術(shù)的選擇。流行的范型有:過程性的,邏輯的,面向存取的,面向進程的,面向?qū)ο蟮?,函?shù)型的,說明性的。例如,邏輯程序設(shè)計范型是基于規(guī)則的,它把有關(guān)問題的知識分解成一組具體規(guī)則,用語言的“ if_then”等結(jié)構(gòu)來表示這些規(guī)則。此外,每一個范型都用不同的方式考慮問題,每一個范型都使用不同的方法來分解問題,而且每一個范型都導(dǎo)致不同種類的塊、過程、產(chǎn)生規(guī)則。研究的目的是幫助我們找到解決問題的入手點。它產(chǎn)生過程的抽象,這些抽象把軟件視為處理流,并定義成由一系列步驟構(gòu)成的算法。 過程性范型側(cè)重建立構(gòu)成問題解決的處理流,數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構(gòu)是根據(jù)算法步驟的要求開發(fā)的,它貫穿于過程,提供過程所要求操作的信息。 過程性范型是一種成熟的應(yīng)用開發(fā)過程。然而,在大型系統(tǒng)的開發(fā)上存在一些問題。在面向?qū)ο蠓?型中,把標識和模型化問題論域中的主要實體做為系統(tǒng)開發(fā)的起點,主要考慮對象的行為而不是必須執(zhí)行的一系列動作。系統(tǒng)的狀態(tài)保存在各個數(shù)據(jù)抽象的核心所定義的數(shù)據(jù)存儲中。不像在過程性范型里那樣,把數(shù)據(jù)從一個過程傳送到另一個過程,而是把控制流從一個數(shù)據(jù)抽象通過消息傳送到另一個數(shù)據(jù)抽象。把控制流分離成塊,這樣可以把復(fù)雜的動作視為各個局部間的相互作用。讓不只一個程序同時運行。面向進程范型產(chǎn)生的主要的塊是進程。甚至可以異步處理,僅需要進程暫停發(fā)送或接收信息。面向進程范型支持與面向?qū)ο蠓缎拖嗤姆庋b,但可提供多線索 (多線程 )執(zhí)行。系統(tǒng)開發(fā)現(xiàn)在有一種補充步驟,可把大型問題分解成一組子問題。例如,設(shè)計一個智能數(shù)據(jù)分析系統(tǒng)時,可把它分解為 4 個子系統(tǒng),如圖 所示。 這種設(shè)計需要有某種實現(xiàn)語言或一組協(xié)同語言的支持。對于混合范型,現(xiàn)在已經(jīng)存在不少技術(shù)。并發(fā) C 還支持面向進程范型。還可以利用可共享數(shù)據(jù)格式和連接規(guī)約的某些語言,把用這些語言分別編寫的塊鏈接到某個單一的應(yīng)用中去。 Coad 和 Yourdon 給出了一個定義:“面向?qū)ο? = 對象 + 類 + 繼承 + 消息 通信”。一個面向?qū)ο蟮某绦虻拿恳怀煞輵?yīng)是對象, 計算是通過新的對象的建立和對象之間的消息通信來執(zhí)行的??梢允俏锢淼模缫粋€家具或桌子,如圖 所示,可以是概念上的,如一個開發(fā)項目。 例如:人的特征:姓名、性別、年齡等,行為:衣、食、住、行等。 屬性 一般只能通過執(zhí)行對象的操作來改變。 而所謂的 消息 是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行類中定義的某個操作的規(guī)格說明。由一個對象接收的消息則調(diào)用消息中指定的操作,并將傳遞過來的實際參數(shù)與參數(shù)表中相應(yīng)的形式參數(shù)結(jié)合起來??梢哉J為,這種消息的傳遞大致等價于過程性范型中的函數(shù)調(diào)用。 ? 信息結(jié)構(gòu) :問題信息域中的概念實體,如信號、報表、顯示信息等。 ? 角色 :與軟件系統(tǒng)交互的人員所扮演的角色,如經(jīng)理、部長、技術(shù)支持等。 ? 位置 :作為 系統(tǒng)環(huán)境或問題上下文的場所、位置,如客戶地址、收件人 (機構(gòu) )地址等。 在標識對象時必需注意遵循“信息隱蔽”的原則:必需將對象的屬性隱藏在對象的內(nèi)部,使得從對象的外部看不到對象的信息是如何定義的,只能通過該對象界面上的操作來使用這些信息。它只能通過該對象的操作來改變。從分析及設(shè)計方面來看,對象表示了一種概念,它們把有關(guān)的現(xiàn)實世界的實體模型化。之所以有兩個視圖,是為了把說明與實現(xiàn)分離,對數(shù)據(jù)結(jié)構(gòu)和相關(guān)操作的實現(xiàn)進行封裝。類成為某些對象的模板,抽象地描述了屬于該類的全部對象的屬性和操作。 對象的狀態(tài)則包含在它的實例變量 ,即實例的屬性 中。從“李杰”、“王輝”和“楊芳”等對象可得到類“學生”,而這些對象就稱為該類的實例。實例的當前狀態(tài)是由實例所執(zhí)行的操作定義的。 C++還引入了構(gòu)造函數(shù),用它在聲明一個對象時建立實例。 C++給出了一個操作 delete,可以釋放一個對象所用的空間。 smalltalk 沒有提供一個機制來撤消對象,但可以進行無用單元收集。但更重要的是把類看做是表示某種概念的一個模型。類加進了操作,給通常的記錄賦予了語義,可提供各種級別的可訪問性。如圖 所示。 圖 特殊類對一般類的繼承關(guān)系 李杰 李杰 男 廣東 軟件 9樓 129室 看書 實驗 上課 運動 楊芳 服務(wù) 王輝 男 湖南 計算機控制 9樓 320室 楊芳 女 北京 系統(tǒng)結(jié)構(gòu) 5樓 418室 姓名 性別 籍貫 專業(yè) 出生年月 住址 學生 屬性 王輝 屬性 屬性 屬性 看書 實驗 上課 運動 服務(wù) 看書 實驗 上課 運動 服務(wù) 看書 實驗 上課 運動 服務(wù) 汽車 運貨車 救火車 大轎車 起重車 5 圖 4 個類的繼承層次 圖 多繼承 建立繼承結(jié)構(gòu)的好處: ? 易編程、易理解 代碼短 , 結(jié)構(gòu)清晰; ? 易修改:共同部分只要在一處修改即可; ? 易增加新類:只須描述不同部分。例如退休教師是繼承退休者和教師這兩個類的某些特征或行為而得到的一個新類。 發(fā)送消息的對象可能不知道另一個對象的類型是什么。但在 C++情形, ClearInt ( ) 對兩者都適用,它自己判斷對象是哪一個。它意味著一個操作在不同類中可以有不同的實現(xiàn)方式。 在一個面向?qū)ο蟮亩鄳B(tài)性語言中,可能代替一個特定類型的類型的集合就是它的子類集合。使 用這個繼承結(jié)構(gòu),發(fā)送給多邊形類的所有消息,它的所有子類都能夠響應(yīng)。通過遍歷這個表 ,發(fā)送給各個表元素以 draw 消息,畫出所有的多邊形。這樣,只有發(fā)送消息時才與接收消息實例的一個操作綁定。做為動態(tài)綁定的例子,考慮在多邊形類中的方法 contains? (aPoint)。例如,假定一個矩形有某些邊與屏幕的邊平行,這時,檢查一個點是否包含在矩形內(nèi),
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1