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

正文內(nèi)容

第11章軟件工程課件-在線瀏覽

2025-04-12 10:15本頁面
  

【正文】 整體 部分結構。但是,大多數(shù)現(xiàn)有的面向?qū)ο笳Z言并不顯式支持獨立的關聯(lián)對象。所謂解決名字沖突,是指在支持多重繼承的語言中,處理在多個基類中可能出現(xiàn)的重名問題。無論使用何種語言,程序員都應該盡力避免出現(xiàn)名字沖突。對于實現(xiàn)服務的機制來說,主要應該考慮下列因素:支持消息連接的機制;控制服務可見性的機制;動態(tài)聯(lián)編。動態(tài)聯(lián)編機制使得程序員在向?qū)ο蟀l(fā)送消息時擁有較大自由,在發(fā)送消息前,無須知道接收消息的對象當時屬于哪個類。弱類型:語言僅要求每個變量或?qū)傩噪`屬于一個對象。面向?qū)ο笳Z言包含不同類型的語言,例如, Smalltalk實際上是一種無類型語言 (所有變量都是未指定類的對象 ); C++則是強類型語言。 第 11章 面向?qū)ο髮崿F(xiàn) 強類型語言主要有兩個優(yōu)點:有利于在編譯時發(fā)現(xiàn)程序錯誤;增加了優(yōu)化的可能性。一般來說,強類型語言有助于提高軟件的可靠性和運行效率,現(xiàn)代的程序語言都是強類型的,大多數(shù)理論支持強類型檢查。某些語言本身并沒有規(guī)定提供什么樣的類庫,而是由實現(xiàn)這種語言的編譯系統(tǒng)自行提供類庫。 類庫中通常包含實現(xiàn)通用數(shù)據(jù)結構的類,例如,動態(tài)數(shù)組、表、隊列、棧和樹等,通常把這些類稱為包容類。 更完整的類庫通常還提供了接口類和圖形庫。 第 11章 面向?qū)ο髮崿F(xiàn) 7. 效率 某些早期的面向?qū)ο笳Z言是解釋型的而不是編譯型的。當今的面向?qū)ο笳Z言都擁有完整類庫,類庫中提供了更高效的算法和更好的數(shù)據(jù)結構,與非面向?qū)ο笳Z言相比,能得到更快運行的代碼。 第 11章 面向?qū)ο髮崿F(xiàn) 面向?qū)ο笳Z言在運行時使用動態(tài)聯(lián)編實現(xiàn)多態(tài)性,這似乎需要在運行時查找繼承樹,以得到定義給定操作的類。當今的絕大多數(shù)面向?qū)ο笳Z言都優(yōu)化了這個查找過程,從而實現(xiàn)了高效率查找。 第 11章 面向?qū)ο髮崿F(xiàn) 8. 永久保存對象 在一個程序都對數(shù)據(jù)進行處理時,希望數(shù)據(jù)能夠長時間保存下來,以備后用。長期保存數(shù)據(jù)主要有兩個原因: ① 為實現(xiàn)在不同程序之間傳遞數(shù)據(jù),需要保存數(shù)據(jù); ② 為恢復被中斷了的程序的運行,首先需要保存數(shù)據(jù)。有些面向?qū)ο笳Z言 (例如 C++)沒有提供直接存儲對象的機制,這些語言的用戶必須自己管理對象的輸入/輸出,或者購買面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng)。還有一些面向?qū)ο笳Z言提供了訪問磁盤對象的輸入/輸出操作。然后,可以從“可存儲的類”中派生出需要永久保存的對象,該對象自然繼承了對象存儲管理功能。 第 11章 面向?qū)ο髮崿F(xiàn) 9. 類模板 在實際的應用系統(tǒng)開發(fā)中,經(jīng)常用函數(shù)、類等軟件元素處理不同類型的數(shù)據(jù) (對象 ),但是,對它們的數(shù)據(jù)元素所進行的基本操作都是相同的。在這種情況下,如果程序語言提供一種能抽象出這類共性的機制,則對減少冗余和提高可重用性大有好處。 EIFFEL語言中就有參數(shù)化類, C++語言也提供了類模板。 第 11章 面向?qū)ο髮崿F(xiàn) 10. 開發(fā)環(huán)境 在軟件工程學中,方法和工具之間是相互依賴的關系,方法是工具研制的先導,工具是方法的實在體現(xiàn)。軟件工具和軟件工程環(huán)境對軟件生產(chǎn)率有很大影響。一般來說,面向?qū)ο笳Z言所提供的開發(fā)環(huán)境,至少應該包括下列一些最基本的軟件工具:編輯程序、編譯程序或解釋程序、瀏覽工具和調(diào)試器等。編譯與解釋的差別主要是速度和效率不同。編譯型語言具有良好的優(yōu)化功能,并且生成目標代碼效率很高,適于用來開發(fā)正式的軟件產(chǎn)品。 第 11章 面向?qū)ο髮崿F(xiàn) 有些面向?qū)ο笳Z言雖然提供編譯程序,但是,源程序到目標代碼翻譯是間接的。像這類的編譯程序,就很有可能使調(diào)試器不能理解原始的源程序。如果是針對中間代碼進行調(diào)試的,則會給調(diào)試人員帶來許多不便。 在開發(fā)大型系統(tǒng)的時候,還可能需要系統(tǒng)構造工具和變動控制工具。 第 11章 面向?qū)ο髮崿F(xiàn) 選擇面向?qū)ο笳Z言 總體來說,在使用面向?qū)ο蟮能浖_發(fā)過程中, OO語言明顯優(yōu)于非 OO語言,因此,除了在很特殊的應用領域,如:對程序的執(zhí)行時間和使用空間都有很嚴格限制的情況;需要產(chǎn)生任意的甚至非法的指令序列;體系結構特殊的微處理器等。 第 11章 面向?qū)ο髮崿F(xiàn) 1. 未來能否占主導地位 語言在未來能否占主導地位,是否具有很強的生命力,對于軟件生存期具有相當重要的作用。否則,若干年后,其維護或功能擴充就很難實施了,你所開發(fā)的產(chǎn)品就會自動退役。這樣,人們往往能夠?qū)ξ磥砟姆N面向?qū)ο笳Z言將占據(jù)主導地位做出預測。 第 11章 面向?qū)ο髮崿F(xiàn) 2. 可重用性 采用面向?qū)ο蠓椒ㄩ_發(fā)軟件的基本目的,是通過重用提高軟件質(zhì)量和軟件生產(chǎn)率,增強系統(tǒng)的可維護性。 第 11章 面向?qū)ο髮崿F(xiàn) 3. 類庫和開發(fā)環(huán)境 語言、開發(fā)環(huán)境和類庫是決定可重用性的三個因素。只有語言、開發(fā)環(huán)境和類庫這三個因素綜合起來,才能共同決定可重用性。隨著類庫的日益成熟和豐富,會給開發(fā)應用系統(tǒng)帶來很大的方便,需要開發(fā)人員自己編寫的代碼將越來越少,以致會有事半功倍或更高的效率。用戶在選擇具體的語言作為開發(fā)工具時,除要考慮上述的幾個方面外,還應該考慮的其他因素有:對用戶學習面向?qū)ο蠓治?、設計和編碼技術所能提供的培訓服務;在使用這個面向?qū)ο笳Z言期間能提供的技術支持;能提供給開發(fā)人員使用的開發(fā)工具、開發(fā)平臺;對機器性能和內(nèi)存的需求;集成已有軟件的容易程度;軟件的規(guī)模;軟件的可移植性;軟件的應用領域等。保證程序質(zhì)量的重要方法是有良好的程序設計風格。因此,良好的面向?qū)ο蟪绦蛟O計風格,既要遵循傳統(tǒng)的結構化程序設計風格和準則,同時也要遵循為適應面向?qū)ο蠓椒ㄋ赜械母拍?(例如,繼承性 )而必需的一些新的風格和準則。軟件重用是指在兩次或多次不同的軟件開發(fā)過程中重復使用相同或相似軟件元素的過程。在編碼階段主要考慮代碼重用的問題,代碼級的重用是最簡單,也是最流行的,是迄今為止研究最深入、應用最廣泛的重用技術。現(xiàn)在,由于基于對象和面向?qū)ο蟮某绦蛟O計語言及相應開發(fā)環(huán)境的發(fā)展,代碼級重用部件的內(nèi)容更加豐富,不僅包括結構化程序設計語言中的函數(shù)或過程,同時也包括面向?qū)ο蟪绦蛟O計語言中的程序包和類。內(nèi)部重用主要是找出本項目設計中相同或相似的部分,然后利用繼承機制共享它們。雖然為實現(xiàn)外部重用與內(nèi)部重用需要考慮的范圍不同,但是有助于實現(xiàn)這兩類重用的程序設計準則卻是相同的。 第 11章 面向?qū)ο髮崿F(xiàn) 1. 提高方法的內(nèi)聚,減小方法的規(guī)模 一個方法 (即服務 )應該只完成單個功能,這樣的方法是高內(nèi)聚的。 2. 保持方法的一致性 實現(xiàn)代碼重用的一個重要因素是應該保持方法的一致性。這樣有助于實現(xiàn)代碼重用。策略方法負責做出決策,提供變元,并且管理全局資源;實現(xiàn)方法只負責完成具體的操作,但卻沒有執(zhí)行這個操作的決定權,也不知道為什么執(zhí)行這個操作。該方法通常緊密依賴于具體應用,這類方法易編寫、易理解。實現(xiàn)方法既不制定決策,也不管理全局資源。由于實現(xiàn)方法是自含式算法,與具體應用相對獨立,因此,容易在其他應用系統(tǒng)中重用,具有較高的可重用性。應該把算法的核心部分放在一個單獨的具體實現(xiàn)方法中。 第 11章 面向?qū)ο髮崿F(xiàn) 4. 采用全面覆蓋技術 在編程時,對系統(tǒng)全面考慮,寫出覆蓋整個系統(tǒng)所有可能的方法。例如,如果在當前應用中需要寫一個獲取表中第一個元素的方法,則至少還應該為獲取表中最后一個元素再寫一個方法。 第 11章 面向?qū)ο髮崿F(xiàn) 5. 降低方法的耦合度 降低方法與外界的耦合程度的一項主要措施是在方法中盡可能少使用或不使用全局信息。 (1) 使用子過程。通??梢栽诨愔卸x這個公用方法,供派生類中的方法調(diào)用。提高相似類代碼可重用性的另一個有效途徑,是從不同類的相似方法中分解出公共代碼和不同的代碼 (即因子 )。把這種分解與面向?qū)ο笳Z言提供的多態(tài)性機制結合起來,抽象基類中定義的公用方法可由派生類來繼承,在新子類中只需編寫其特有的代碼,由于增添新子類編寫的代碼減少了,顯然為增添新子類所需付出的工作量也就明顯降低了。當確實存在一般 特殊關系時,利用繼承關系,子類可以繼承父類的所有方法和屬性。要恰當?shù)厥褂美^承機制,否則會降低程序的可理解性、可修改性和可擴充性。解決同一類應用問題時,程序員往往希望重用其他方法編寫的程序代碼。例如,如果開發(fā)一個應用數(shù)學系統(tǒng)時,發(fā)現(xiàn)有現(xiàn)成的實現(xiàn)迭代法的商品軟件包,程序員想重用這個算法,于是先定義一個迭代法類,然后把這個商品軟件包的功能封裝在該類中即可。下面將介紹有助于提高程序的可擴充性的面向?qū)ο蟪绦蛟O計準則。 第 11章 面向?qū)ο髮崿F(xiàn) 2. 方法的功能應該單一 一個方法應該高內(nèi)聚低耦合,包含對象模型中的有限內(nèi)容。 3. 避免使用多分支語句 在實施系統(tǒng)開發(fā)過程中,可以利用 DOCASE語句測試對象的內(nèi)部狀態(tài),避免使用多分支語句來根據(jù)對象類型選擇應有的行為,否則在增添新類時將不得不修改原有的代碼。 第 11章 面向?qū)ο髮崿F(xiàn) 4. 精心選擇和定義公有方法 公有方法是對外公用的接口,私有方法是僅在類內(nèi)使用的方法,通常利用私有方法來實現(xiàn)公有方法。為提高可修改性,降低維護成本,必須精心選擇和定義公有方法。通常需要在健壯性與效率之間做出適當?shù)恼壑?。遵守下述準則將有助于提高健壯性。當用戶操作失誤或輸入數(shù)據(jù)出錯時,不會引起程序運行中斷,更不應該造成“死機”,而應該對操作進行檢查,發(fā)現(xiàn)了的錯誤,必須給出有關的提示信息,并允許用戶再次輸入或正常退出。 第 11章 面向?qū)ο髮崿F(xiàn) 3. 不要預先確定限制條件 預先確定限制條件對所開發(fā)的系統(tǒng)往往會產(chǎn)生一些不良的后果。當系統(tǒng)中使用的數(shù)據(jù)結構的容量大于預先確定的限制條件時,系統(tǒng)有可能引發(fā)一連串的問題。如果有必要和可能的條件下,則應該使用動態(tài)內(nèi)存分配機制來創(chuàng)建數(shù)據(jù)結構,當然,該數(shù)據(jù)結構是未預先確定限制條件的。因此,就需要在效率與健壯性之間做出合理的折衷。然后為提高性能,確定著重優(yōu)化的關鍵部分。 第 11章 面向?qū)ο髮崿F(xiàn) 面向?qū)ο鬁y試 OO軟件的單元測試 在面向?qū)ο蟮能浖_發(fā)中,“封裝”導致了類和對象的定義,這意味著類和類的實例 (對象 )包裝了屬性 (數(shù)據(jù) )和處理這些數(shù)據(jù)的操作 (也稱為方法或服務 )。也就是說,封裝起來的類和對象是最小的
點擊復制文檔內(nèi)容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1