2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第8講 設(shè)計概念與原理,需求模型翻譯到軟件設(shè)計,,,,,,,,,,,,,需求分析模型,,,,,,,,設(shè)計模型,數(shù)據(jù)對象描述,處理規(guī)格說明,控制規(guī)格說明,E-R,DFD,STD,DD,翻譯分析模型到軟件設(shè)計,數(shù)據(jù)設(shè)計將分析時創(chuàng)建的信息域模型變換為軟件所需的數(shù)據(jù)結(jié)構(gòu),側(cè)重于數(shù)據(jù)結(jié)構(gòu)的定義。體系結(jié)構(gòu)設(shè)計定義軟件系統(tǒng)各主要結(jié)構(gòu)構(gòu)件之間的關(guān)系。過程設(shè)計則是把結(jié)構(gòu)構(gòu)件轉(zhuǎn)換成軟件的過程性描述。在編碼步驟,根據(jù)這種過程性描述,生成源程序代碼,然后通

2、過測試最終得到完整有效的軟件。接口設(shè)計是建立軟件內(nèi)部的關(guān)系以及軟件人-機之間的交互機制。,1.設(shè)計過程,從項目管理的角度來看,軟件設(shè)計分兩步完成。概要設(shè)計,將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件體系結(jié)構(gòu)。詳細設(shè)計,即過程設(shè)計。通過對體系結(jié)構(gòu)表示進行細化,得到軟件的詳細的數(shù)據(jù)結(jié)構(gòu)和算法。,概要設(shè)計,從回答“做什么”到回答“怎樣做”劃分出組成系統(tǒng)的物理元素——程序、文件、數(shù)據(jù)庫、過程和文檔等等每個元素還是黑盒子---“全局高度,抽象層次

3、”體系結(jié)構(gòu)設(shè)計,體系結(jié)構(gòu)設(shè)計,文學中有科學,音樂中有數(shù)學,漫畫中有現(xiàn)代數(shù)學的拓撲學。漫畫家可以“幾筆”就把一個人畫出來,不管怎么美化或丑化,就是活像。為什么?因為那“幾筆”不是別的,而是拓撲學中的特征不變量,這是事物最本質(zhì)的東西。 ——楊叔子,(1)體系結(jié)構(gòu)是對復(fù)雜事物的一種抽象。,(2)體系結(jié)構(gòu)在一定的時間內(nèi)保持穩(wěn)定。,體系

4、結(jié)構(gòu)設(shè)計,2.設(shè)計基本原理,1.模塊化:Modularity模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,是單獨命名的并且可以通過名字來訪問,例如過程、函數(shù)、子程序、宏、modula等。軟件被劃分成獨立命名和可獨立訪問的被稱作模塊的構(gòu)件,每個構(gòu)件完成一個子功能,它們集成到一起滿足問題需求。,模塊化,模塊化論據(jù):C(x)定義為問題x的復(fù)雜性E(x)定義為解決問題x所需要的工作量對p1和p2兩個問題, 若 C(p1) >

5、; C(p2),則 E(p1) > E(p2)C(p1 + p2) > C(p1) + C(p2)E(p1 + p2) > E(p1) + E(p2)不要過度模塊化!每個模塊的簡單性將被集成的復(fù)雜性所掩蓋。,模塊化,模塊化和軟件本如何確定地預(yù)測最小成本區(qū)?,,,,,成本 / 模塊,接口成本,軟件總成本,設(shè)計基本原理,2.抽象 Abstraction:忽略細節(jié),分層理解問題,自頂向下層層細化,包括對過程、數(shù)據(jù)和

6、控制的抽象。過程抽象:一個命名的指令序列,具有特定和有限的功能。數(shù)據(jù)抽象是命名的數(shù)據(jù)集合,描述一個數(shù)據(jù)對象??刂瞥橄箅[含了不必說明的內(nèi)部細節(jié)的程序控制機制。是實現(xiàn)模塊化的手段之一。,設(shè)計基本原理,3.求精Refinement自頂向下的設(shè)計策略。,walk to door;reach for knob;Switch the knob;open door;walk through;close door.,設(shè)計基本原理,4

7、.信息隱藏 information hiding 信息隱藏:在設(shè)計和確定模塊時,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不可訪問的。每個客戶只能通過接口來了解該模塊,而所有的實現(xiàn)都隱藏起來。,信息隱藏,,“信息隱藏”,更準確地描述應(yīng)是“細節(jié)隱藏”,因為隱藏的不是信息,而是實現(xiàn)的細節(jié)。,3、模塊化設(shè)計,模塊獨立性度量標準:內(nèi)聚 cohesion 和耦合 coupling內(nèi)聚是一個模塊內(nèi)部的交互程度;耦

8、合是模塊之間交互的程度。功能獨立性是良好設(shè)計的關(guān)鍵,設(shè)計又是軟件質(zhì)量的關(guān)鍵。,耦合,耦合(couple)是度量系統(tǒng)中模塊之間的交互程度。Goal: 模塊之間盡可能獨立耦合從低到高依次為:非直接耦合(最好),數(shù)據(jù)耦合,標記耦合,控制耦合,外部耦合,公共耦合和內(nèi)容耦合(最差)。,耦合,內(nèi)容耦合 content coupling如果兩個模塊中的一個直接引用了另一個模塊的內(nèi)容,則它們之間是內(nèi)容耦合。One module

9、modifies another.,例1:A訪問C的內(nèi)部數(shù)據(jù)或不通過正常入口而轉(zhuǎn)入C的內(nèi)部。,耦合,例2:部分代碼重疊(常出現(xiàn)在匯編程序中),例3:一個模塊有多個入口(功能),耦合,公共耦合 common coupling 如果兩個模塊都可以存取相同的全局數(shù)據(jù),則它們之間是公共耦合。a common data store.,耦合,公共耦合存在的問題: 公共部分的改動將影響所有調(diào)用它的模塊; 公共部分的數(shù)據(jù)存取無法控制; 復(fù)雜

10、程度隨耦合模塊的個數(shù)增加而增加。解決方法:通過使用信息隱藏來避免公共耦合。,耦合,控制耦合 control coupling 如果兩個模塊中的一個模塊給另一個模塊傳遞控制信息,則它們具有控制耦合。One module passes parameters to control the activity of another module.,特點:接口單一,但仍然影響被控模塊的內(nèi)部邏輯。,耦合,標記耦合 stamp coupling

11、如果兩個模塊都要使用同一數(shù)據(jù)結(jié)構(gòu)的一部分,不是采用全局公共數(shù)據(jù)區(qū)共享,而是通過模塊結(jié)構(gòu)傳遞數(shù)據(jù)結(jié)構(gòu)的一部分,則它們之間為標記耦合。數(shù)據(jù)耦合 data coupling被調(diào)用模塊的輸入與輸出是簡單的參數(shù)或者是數(shù)據(jù)結(jié)構(gòu)(該數(shù)據(jù)結(jié)構(gòu)中的所有元素為被調(diào)用的模塊使用),則它們之間為數(shù)據(jù)耦合。非直接耦合 no direct coupling 兩個模塊之間沒有聯(lián)系,則它們之間為非直接耦合。,耦合,實現(xiàn)低耦合,采取下列措施:耦合方式采用非

12、直接耦合,不采用內(nèi)容耦合。傳遞信息類型盡量使用數(shù)據(jù)耦合,少采用控制耦合,外部耦合和公共耦合限制使用。耦合數(shù)量模塊間相互調(diào)用時,傳遞參數(shù)最好只有一個。原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合。,內(nèi)聚,內(nèi)聚:cohesion.Goal: 盡可能高內(nèi)聚.內(nèi)聚級別: 偶然內(nèi)聚 邏輯內(nèi)聚 時間內(nèi)聚 過程內(nèi)聚

13、 通信內(nèi)聚 順序內(nèi)聚 功能內(nèi)聚,低內(nèi)聚,偶然內(nèi)聚(Coincidental cohesion): 指一個模塊內(nèi)的各處理元素之間沒有任何聯(lián)系。例: read disk file; calculate current values; produce user output; …嚴重的缺點:產(chǎn)品的可維護性退化

14、;模塊是不可復(fù)用的,增加軟件成本。解決途徑:將模塊分成更小的模塊,每個小模塊執(zhí)行一個操作。,低內(nèi)聚,邏輯內(nèi)聚(Logical cohesion):邏輯上相關(guān)的功能或數(shù)據(jù)放在一個模塊中。問題:接口難于理解;完成多個操作的代碼互相糾纏在一起,導(dǎo)致嚴重的維護問題。,低內(nèi)聚,時間內(nèi)聚(Temporal cohesion): 如果一個模塊包含的任務(wù)必須在同一段時間內(nèi)執(zhí)行。例如:系統(tǒng)的初始化 open old master

15、 file; new master file, transaction file and print file; initialize sales region table; read first transaction record and first old master file record;問題:不同的功能混在一個模塊中,有時共用

16、部分編碼,使局部功能的修改牽動全局。,中內(nèi)聚,過程內(nèi)聚 (Procedural cohesion): Functions are grouped together in a module to ensure a certain order of performance.例子:Read part number from database and update repair record on maintenance file.,中內(nèi)聚

17、,通信內(nèi)聚(Communicational cohesion):All the functions in a module operate on or produce the same data set. 例如:從數(shù)據(jù)庫的操作 —— 可能破壞獨立性。,高內(nèi)聚,順序內(nèi)聚 (Sequential cohesion):一個處理元素的輸出數(shù)據(jù)作為下一個處理元素的輸入數(shù)據(jù)。 功能內(nèi)聚 (Functional cohesion):模塊內(nèi)的所有

18、處理元素屬于一個整體,完成一個單一的功能。 原則:在實際工作中,確定內(nèi)聚的精確級別是不必要的,重要的是力爭高內(nèi)聚和識別低內(nèi)聚,可以使得設(shè)計的軟件具有較高的功能獨立性。,封閉——開放,如果一個模塊可以作為一個獨立體被其它程序引用,則稱模塊具有封閉性。如果一個模塊可以被擴充,則稱模塊具有開放性。,可復(fù)用性——可擴充性,小結(jié),軟件設(shè)計的重要性設(shè)計過程設(shè)計的基本原理抽象、細化、模塊化、體系結(jié)構(gòu)、控制層次、數(shù)據(jù)結(jié)構(gòu)、軟件過程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論