最新-需求分析-任務81-PPT精品課件_第1頁
最新-需求分析-任務81-PPT精品課件_第2頁
最新-需求分析-任務81-PPT精品課件_第3頁
最新-需求分析-任務81-PPT精品課件_第4頁
最新-需求分析-任務81-PPT精品課件_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2.4 需求分析-任務一、需求分析的任務基本任務:準確地回答“系統(tǒng)必須做什么?”1.確定對系統(tǒng)的綜合需求(1)系統(tǒng)功能要求(2)系統(tǒng)性能要求(3)運行要求(4)將來可能提出的要求2.分析系統(tǒng)的數據要求采用建立“概念模型”的方法,并輔助圖形工具,如:層次方框圖、Warnier圖等。2.4 需求分析-過程3.導出系統(tǒng)的邏輯模型數據流程圖、數據字典、主要算法4.修正系統(tǒng)開發(fā)計劃5.開發(fā)原型系統(tǒng)二、分析過程1.沿數據流程圖回溯從“輸出端”到“輸入端”回溯,分析數據元素。2.用戶復查借助已有的數據流程圖,幫助復查,再次完善數據流程圖。2.4 需求分析-過程3.細化數據流程圖4.修正開發(fā)計劃5.書寫文檔系

2、統(tǒng)規(guī)格說明:系統(tǒng)的概貌、功能要求、運行要求、將來可能的要求。數據要求:數據字典、圖形工具(數據結構的層次圖、Warnier圖)用戶系統(tǒng)描述:初步的用戶手冊修正的開發(fā)計劃2.4 需求分析-過程分析追蹤數據流程圖用戶復查細化數據流程圖有補充修正無補充修正需要分解不需分解需求分析的基本過程2.4 需求分析-概念模型和規(guī)范化三、概念模型和規(guī)范化1.概念模型最常用的表示概念性數據模型的方法:實體聯系方法(Entity-Relationship Approach),簡稱E-R模型。E-R模型包含三個基本成分:“實體”、“聯系”、“屬性”(1)實體:是客觀世界中存在的、且可相互區(qū)分的事物。它可以是人或物,也

3、可以是具體事物或抽象事物。例如:教師、學生、課程是實體。2.4 需求分析-概念模型和規(guī)范化實體用矩形框表示,如:教師(2)聯系:客觀世界中的事物彼此之間有聯系,描述實體與實體之間的關系。聯系有三種:1:1(一對一聯系)例如:實體“校長”與“大學”之間的聯系為“1:1”1:N(一對多聯系)例如:實體“學校”與“院系”之間的聯系為“1:N”M:N(多對多聯系)例如:實體“學生”與“課程”之間的聯系為“M:N”聯系用菱形框表示,如:2.4 需求分析-概念模型和規(guī)范化(3)屬性:屬性是實體或聯系所具有的性質。通常一個實體或聯系由若干屬性來刻畫。教師學生課程教學1NMN成績2.4 需求分析-概念模型和規(guī)

4、范化2.范式第一范式每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內部結構。第二范式滿足第一范式條件,而且每個非關鍵字屬性都由整個關鍵字決定(而不是由關鍵字的一部分來決定)。第三范式符合第二范式的條件,每個非關鍵字屬性都僅由關鍵字決定,而且一個非關鍵字屬性不能僅僅是對另一個非關鍵字屬性的進一步描述(即一個非關鍵字屬性值不依賴于另一個非關鍵字屬性值)一般使用第三范式,避免第三范式2.4 需求分析-圖形工具四、圖形工具1.層次方框圖層次方框圖用樹形結構的一系列多層次的矩形框描繪數據的層次結構。樹形結構的頂層是一個單獨的矩形框,它表達完整的數據結構,下面的各層矩形框代表這個數據的子集,最底層的各

5、個框代表組成這個數據的實際數據元素(不能再分解的元素)例如:P46頁 圖3-32.4 需求分析-圖形工具2.Warnier圖Warnier圖也用樹形結構描繪信息,且更豐富,能表達邏輯關系。例如:P46頁 圖3.42.4 需求分析-圖形工具3.IPO圖IPO圖是輸入/處理/輸出圖的簡稱,能夠方便地描述輸入數據、對數據的處理和輸出數據之間的關系?;拘问绞窃谧筮叺目蛑辛谐鲇嘘P的輸入數據,在中間的框內列出主要的處理,在右邊的框內列出產生的輸出數據。例如:P47頁 圖3.5、圖3.62.4 需求分析五、驗證軟件需求1.驗證軟件需求的四個方面一致性完整性現實性有效性2.驗證軟件需求的方法3.驗證軟件需求

6、的軟件工具2.4 需求分析六、軟件需求說明書(P15)引言任務概述需求規(guī)定運行環(huán)境規(guī)定2.5 總體設計-過程一、總體設計的過程1.設想供選擇的方案在數據流程圖的基礎上,一個邊界一個邊界設想并列出供選擇的方案。不評價這些供選擇的方案2.5 總體設計-過程2.選取合理的方案從上一步得到的一系列供選擇的方案中選取若干個合理的方案,通常至少選取低成本、中等成本和高成本的三種方案。根據系統(tǒng)分析確定的目標,來判斷哪些方案是合理的。2.5 總體設計-過程3.推薦最佳方案綜合分析對比各種合理方案的利弊,推薦一個最佳的方案,并為最佳方案制定詳細的實現計劃。2.5 總體設計-過程4.功能分解對流程圖進一步細化,進

7、行功能分解2.5 總體設計-過程5.設計軟件結構軟件結構反映系統(tǒng)中模塊的相互調用關系:頂層模塊調用它的下層模塊以實現程序的完整功能,每個下層模塊再調用更下層的模塊,最下層的模塊完成最具體的功能。軟件結構通過層次圖或結構圖來描繪,可以直接從數據流程圖映射出軟件結構。2.5 總體設計-過程6.數據庫設計2.5 總體設計-過程7.制定測試計劃2.5 總體設計-過程8.書寫文檔文檔包括:系統(tǒng)說明用戶手冊測試計劃詳細的實現計劃數據庫設計結果2.5 總體設計-過程9.審查和復審先技術審查后管理審查2.5 總體設計-模塊二、模塊的概念1.定義具有四種屬性的一組程序語句稱為一個模塊,四種屬性:輸入/輸出、邏輯

8、功能、運行程序、內部數據。前兩個屬性又稱為外部屬性,后兩個屬性又稱為內部屬性。(1)一個模塊的輸入/輸出都是指同一個調用者。(2)模塊的邏輯功能是指模塊能夠做什么事,表達了模塊把輸入轉換成輸出的功能,可以是單純的輸入/輸出功能。(3)模塊的運行程序指模塊如何用程序實現其邏輯功能。2.5 總體設計-模塊(4)模塊的數據指屬于模塊自己的數據。2.屬性外部屬性:輸入/輸出、邏輯功能內部屬性:運行程序、內部數據在結構化系統(tǒng)設計中。人們主要關心的是模塊的外部屬性,至于內部屬性,將在系統(tǒng)實施工作中完成3.大小模塊有大有小,它可以是一個程序,也可以是程序中的一個程序段或者一個子程序。2.5 總體設計-模塊4

9、.理想模塊(黑箱模塊)理想模塊的特點:(1)每個理想模塊只解決一個問題。(2)每個理想模塊的功能都應該明確,使人容易理解。(3)理想模塊之間的聯結關系簡單,具有獨立性。(4)由理想模塊構成的系統(tǒng),容易使人理解,易于編程,易于測試,易于修改和維護。對用戶來說,其感興趣是模塊的功能,而不必去理解模塊內部的結構和原理。2.5 總體設計-模塊5.模塊的理論根據設函數C(x)定義問題x的復雜程度,函數E(x)確定解決問題x需要的工作量。對于兩個問題P1和P2,如果:C(P1)C(P2),則顯然有: E(P1)E(P2)根據人類解決一般問題的經驗,有:C(P1+P2)C(P1)+C(P2)進而獲得:E(P

10、1+P2)E(P1)+E(P2)2.5 總體設計-模塊6.模塊的圖形及符號(1)模塊的圖形:用矩形表示。模塊的名稱寫在方框內,由一個動詞和一個作為賓語的名詞組成。例如:修改庫存(2)模塊間通訊的圖形模塊間通訊有兩種:數據通訊、控制通訊。數據通訊是一個數據流,它表示了一個經過處理的數據從一個模塊傳向另一個模塊。2.5 總體設計-模塊控制通訊,只傳送一個標志,該標志只表達了處理工作的某種狀態(tài),而不是由被發(fā)送模塊真正進行過處理的數據。AB模塊間的聯結獲得配件庫存量讀庫存記錄模塊間的通訊配件編號庫存量無此配件2.5 總體設計-模塊(3)模塊間判斷調用的圖形一個模塊是否調用某一個從屬模塊,依賴于調用模塊

11、中判斷的條件。如果條件成立,則產生調用命令。ABCD2.5 總體設計-模塊(4)模塊間循環(huán)調用的圖形指一個模塊需要循環(huán)調用某一個或若干個從屬模塊。AC2.5 總體設計-模塊7.模塊設計的基本原則模塊設計的基本原則:降低系統(tǒng)中模塊之間的聯結程度,提高每個模塊的獨立性、聚合度。(1)模塊間的聯結兩個模塊之間的聯結有五種形式,按照聯結程度由低到高排列為:數據聯結、特征聯結、控制聯結、公共聯結、內容聯結。2.5 總體設計-模塊A.數據聯結如果兩個模塊間的通訊信息是若干參數,其中每一個參數都是一個數據元素,稱這種聯結為數據聯結。這是模塊之間影響最小的聯結關系。開發(fā)貨單計算金額單價數量金額2.5 總體設計

12、-模塊B.特征聯結如果兩個模塊都與同一個數據結構有關,則稱為特征聯結。計算水費和電費計算水費計算電費住戶詳情水費住戶詳情電費模塊之間的特征聯結2.5 總體設計-模塊住戶詳情數據結構中包括“本月用水量”、“本月用電量”。上面的“特征聯結”圖可改進為下面“數據聯結”圖。計算水量和電費計算水費計算電費水費電費本月用水量本月用電量模塊之間的數據聯結2.5 總體設計-模塊C.控制聯結如果模塊A向模塊B所傳遞的信息控制了模塊B的內部邏輯,那么A和B之間的聯結稱為控制聯結??刂菩畔⒖梢钥醋魇且粋€開關量,它傳遞了一個控制信息或狀態(tài)的標志??刂菩畔⒉煌跀祿畔ⅲ瑪祿畔⒁话阃ㄟ^處理過程處理被處理的數據,而控制

13、信息則是控制處理過程中的某些參數。2.5 總體設計-模塊當要查找的庫存編號找不到時,經上級模塊反饋一個控制信息,要求上級模塊打印“無此庫存記錄”錯誤信息。獲得庫存記錄檢索庫存記錄庫存編號庫存量打印“無此庫存記錄”錯誤信息2.5 總體設計-模塊D.公共聯結如果兩個模塊都和同一個公共數據域有關,則稱為公共聯結。公用聯結是一種不良的聯結關系,它給模塊的維護和修改帶來困難。如公共數據要作修改,很難判定有多少模塊應用了該公共數據,故在模塊設計時,一般不允許有公共聯結關系的模塊存在。ABC公用數據2.5 總體設計-模塊E.內容聯結(病態(tài)聯結)如果一個模塊和另一個模塊的內部屬性(即運行程序和內部數據)有關,

14、則稱為內部聯結。例如:模塊A中TRC:模塊B中GO TO TRC模塊A與模塊B存在內容聯結,這是一種最壞的聯結。2.5 總體設計-模塊設計模塊時,應以數據聯結為主,輔以特征聯結與控制聯結,消除公共聯結和內容聯結。2.5 總體設計-模塊(2)模塊的聚合模塊的聚合是指一個模塊內部的各個組成部分的緊湊性,其處理動作的組合強度。聚合的七種形式:A.功能聚合如果一個模塊內部的各組成部分的處理動作全都為執(zhí)行同一個功能而存在,并且只執(zhí)行一個功能,則稱為功能聚合。判斷一個模塊是不是功能聚合,只要看這個模塊是“做什么”,是完成一個具體的任務,還是完成多任務。2.5 總體設計-模塊B.順序聚合如果一個模塊內部的各

15、個組成部分執(zhí)行的幾個處理動作有這樣的特征:前一個處理動作所產生的輸出數據是后一個處理動作的輸入數據,稱為順序聚合。順序聚合維護起來不如功能聚合方便,要修改模塊中的一個功能,會影響到同一個模塊中的其他功能。ABC功能1功能22.5 總體設計-模塊C.通訊聚合如果一個模塊內各組成部分的處理動作都使用相同的輸入數據或相同的輸出數據,稱為通訊聚合。獲得配件單價和庫存量配件編號庫存量單價兩個工作:1.按配件編號查詢“數據存儲”,獲得單價。2.按配件編號查詢“數據存儲”,獲得庫存量。這兩個處理動作都使用相同的輸入數據,稱為通訊聚合。2.5 總體設計-模塊D.過程聚合如果一個模塊內部的各個組成部分的處理動作

16、各不相同,彼此也沒有聯系,但他們都受同一個控制流支配,決定他們的執(zhí)行次序,稱為過程聚合。循環(huán)體計算累積事務記錄累積銷售額累積訂貨量通過循環(huán)體,計算兩種累積數。2.5 總體設計-模塊E.暫時聚合如果一個模塊內的各組成部分的處理動作和時間有關,則稱為暫時聚合。暫時聚合模塊的處理動作必須在特定的時間內完成。例如:程序設計中的初始化模塊。2.5 總體設計-模塊F.邏輯聚合如果一個模塊內部的各組成部分的處理動作在邏輯上相似,但功能都彼此不同或無關,則稱為邏輯聚合。一個邏輯聚合模塊往往包括若干個邏輯相似的動作,使用時可以選用一個或幾個功能。例如:把編輯各種輸入數據的功能放在一個模塊中。2.5 總體設計-模

17、塊G.機械聚合如果一個模塊的內部各組成部分的處理動作彼此沒有任何聯系,則稱為機械聚合。2.5 總體設計-模塊模塊聚合性的判斷該模塊只能執(zhí)行一個功能嗎?功能聚合模塊內各組成部分的關系如何?是否次序重要嗎?次序重要嗎?邏輯相似嗎?數據流控制流兩者都不是是是是否否否順序聚合通訊聚合過程聚合暫時聚合邏輯聚合機械聚合2.5 總體設計-模塊七種聚合模塊的性能比較2.5 總體設計-模塊8.模塊設計的其他原則(1)模塊的分解分解是指把一個模塊分解成若干個從屬于它的下層模塊。一般按功能分解,分解到成為一個小的功能單一的模塊為止。一般一個模塊內包含的語句在3050條左右較好(指高級語言)。2.5 總體設計-模塊(

18、2)模塊的扇出和扇入模塊的扇出指一個模塊擁有的直屬下級模塊的個數,一般扇出數控制在7以內。模塊的扇入是指一個模塊的直接上級模塊的個數。在設計中,扇入系數大,說明模塊分解得好,通用性強,冗余度低。2.5 總體設計-模塊(3)模塊的控制范圍和判斷作用范圍模塊的控制范圍:本身及其所有下級模塊。模塊的判斷作用范圍:被判斷調用的模塊。原則:A.對于任何一個內部存在判斷調用的模塊,它的判斷作用的范圍應該是其控制范圍的一個子集。B.存在判斷調用的模塊,所在層次不要與那些屬于判斷作用范圍的模塊所在的層次相隔太遠。2.5 總體設計-模塊ABCDEFG模塊G中有一條判斷調用D的語句,違反第1條原則2.5 總體設計

19、-模塊ABCDEFG違反第2條原則2.5 總體設計-模塊ABCDEFG違反第2條原則2.5 總體設計-模塊ABCDEFG正確2.5 總體設計-模塊(4)力爭降低模塊接口的復雜程度模塊接口復雜是軟件發(fā)生錯誤的一個主要原因。應該仔細設計模塊接口,使得信息傳遞簡單并且和模塊的功能一致。接口復雜或不一致(即看起來傳遞的數據之間沒有聯系),是緊聯結或低聚合的征兆,應該重新分析這個模塊的獨立性。(5)設計單入口單出口的模塊2.5 總體設計-模塊(6)模塊功能應該可以預測模塊的功能應該能夠預測,但也要防止模塊功能過分局限。2.5 總體設計-面向數據流的設計方法三、面向數據流的設計方法(一)概念1.變換流2.

20、事務流3.設計過程2.5 總體設計-面向數據流的設計方法1.變換流外部表示內部表示信息輸入流輸出流變換流信息流時間參看圖形,信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內部形式,進入系統(tǒng)的信息通過變換中心,經過加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當數據流具有這些特征時,這種信息流稱為變化流。2.5 總體設計-面向數據流的設計方法2.事務流T事務事務中心數據沿輸入通路到達一個處理T,這個處理根據輸入數據的類型在若干個動作序列中選出一個來執(zhí)行。這種“以事務為中心的”的數據流,成為“事務流”。處理T稱為事務中心,完成以下任務:接收輸入數據;分析每個事務以確定它的類型;根據事務類型選取

21、一條活動通路。精化數據流程圖流類型區(qū)分事務中心和數據接收通路區(qū)分輸入和輸出分支映射成事務結構映射成變換結構運用模塊設計規(guī)則,精化軟件結構導出接口描述和全程數據結構復查詳細設計事務分析變換分析事務變換面向數據流的設計過程2.5 總體設計-面向數據流的設計方法(二)變換分析1.復查基本系統(tǒng)模型復查的目的是確保系統(tǒng)的輸入數據和輸出數據符合實際。2.復查并精華數據流程圖3.確定數據流程圖具有變換特性還是事務特性只有當遇到有明顯事務特性的信息流時,才采用事務分析方法,否則,一般都認為是變換流,采用變換分析的方法。2.5 總體設計-面向數據流的設計方法4.確定輸入流和輸出流的邊界,從而孤立出變換中心(1)

22、檢查“輸入流”的邊界從輸入的數據源開始,沿著每一個由數據源傳入的數據流的移動方向進行跟蹤分析,逐個分析它所經過的處理邏輯功能。如果僅是傳入的數據流作形式上的轉換,邏輯上沒有進行實際的數據處理功能,則這些處理邏輯屬于系統(tǒng)的“輸入處理部分”。順著傳入的數據流的移動方向,一直跟蹤到它被真正地處理為止。2.5 總體設計-面向數據流的設計方法(2)檢查“輸出流”的邊界從輸出結果的地方開始,逆著每一個傳遞出去的數據流,由外向里反方向跟蹤,逐個分析它的處理邏輯功能,一直反方向跟蹤到它被真正地產生出來為止。(3)得到變換中心根據前兩步的分析結果,畫出一個閉環(huán)界線,在界線以內的就是變換中心。2.5 總體設計-面

23、向數據流的設計方法5.完成“第一級分解”CmCaCtCe第一級分解的方法2.5 總體設計-面向數據流的設計方法控制模塊Cm是抽象出來的,它位于軟件結構最頂層,協調控制下屬模塊。輸入信息處理控制模塊Ca,協調對所有輸入數據的接收。變換中心控制模塊Ct,管理對內部形式的數據的所有操作。輸出信息處理控制模塊Ce,協調輸出信息的產生過程。2.5 總體設計-面向數據流的設計方法6.完成“第二級分解”所謂第二級分解就是把數據流程圖中的每個處理映射成軟件結構中一個適當的模塊。完成第二級分解的方法是,從變換中心的邊界開始沿著輸入通路向外移動,把輸入通路中每個處理邏輯映射成軟件結構中Ca控制下的一個低層模塊;然

24、后沿輸出通路向外移動,把輸入通路中每個處理邏輯映射成直接或間接受模塊Ce控制的一個低層模塊;最后把變換中心內的每個處理映射成受Ct控制的一個模塊。2.5 總體設計-面向數據流的設計方法ADCBCmCaCBDA第二級分解的方法2.5 總體設計-面向數據流的設計方法7.使用模塊的設計原則,對第一次分割得到的軟件結構進一步精化。為了得到一個易于實現、易于測試和易于維護的軟件結構,根據軟件設計的基本原則和其它啟發(fā)性原則,對初步分割得到的模塊進行再分解或合并。2.5 總體設計-面向數據流的設計方法(三)事務分析事務分析的設計步驟和變換分析的設計步驟大部分相同或類似,主要差別僅在由數據流程圖到軟件結構的映

25、射方法不同。由事務流映射成的軟件結構包括一個接收分支和一個發(fā)送分支。映射出接收分支結構的方法和變換分析映射出輸入結構的方法相似,即從事務中心的邊界開始,把沿著接收流通路的處理邏輯映射成模塊。發(fā)送分支的結構包含一個調度模塊,它控制下層的所有活動模塊;然后把數據流程圖中的每一個活動流通路映射成與它的特征相對應的結構??偪卣{度A_CTLB_CTLC_CTL接收通路C通路B通路A通路事務分析的映射方法2.5 總體設計-面向數據流的設計方法(四)總結對于一個大系統(tǒng),常常把變換分析和事務分析應用到同一個數據流程圖的不同部分,由此得到的子結構形成“構件”,可以利用它們構造完整的軟件結構。一般說來,如果數據流

26、不具有顯著的事務特點,最后使用變換分析;反之,如果具有明顯的事務中心,則應該采用事務分析技術。2.5 總體設計-總體設計說明書四、總體設計說明書引言總體設計接口設計運行設計系統(tǒng)數據結構設計系統(tǒng)出錯處理設計2.6詳細設計-基本任務一、基本任務回答的關鍵問題:“怎樣具體地實現這個系統(tǒng)”主要任務是設計出程序的“藍圖”,供程序員日后根據這個藍圖編寫出實際的程序代碼。注意:設計程序的藍圖,不是具體地編寫程序。設計程序主要采用結構化的程序設計方法。2.6詳細設計-基本步驟二、基本步驟確定模塊如何實現編寫詳細設計說明書制定單元測試計劃詳細設計評審2.6詳細設計-結構程序設計三、結構程序設計1.什么是結構程序

27、設計結構程序設計是一種設計程序的技術,它采用自頂向下逐步求精的設計方法和單入口單出口的控制結構。2.6詳細設計-結構程序設計三種基本的控制結構ABexpBAFTexpATFexpAFT2.6詳細設計-結構程序設計2.逐步求精的含義詳細設計階段逐步求精的含義:把一個模塊的功能逐步分解細化為一系列具體的處理步驟或某種高級語言的語句??傮w設計階段逐步求精的含義:把一個復雜問題的解法分解和細化成一個由許多模塊組成的層次結構的軟件系統(tǒng)。2.6詳細設計-結構程序設計3.結構程序設計技術的優(yōu)越性(1)自頂向下逐步求精的方法符合人類解決復雜問題的普遍規(guī)律,因此可以顯著提高軟件開發(fā)工程的成功率和生產率。(2)用

28、先全局后局部、先整體后細節(jié)、先抽象后具體的逐步求精過程開發(fā)出的程序有清晰的層次結構,因此容易閱讀和理解。(3)不使用GO TO語句僅使用單入口單出口的控制結構,使得程序的靜態(tài)結構和它的動態(tài)執(zhí)行情況比較一致,易于閱讀和理解。2.6詳細設計-結構程序設計(4)控制結構有確定的邏輯模式,編寫程序代碼只限于很少幾種直截了當的方式,因此源程序清晰流暢。(5)程序清晰和模塊化使得在修改和重新設計一個軟件時可以重用的代碼量最大。(6)程序的邏輯結構清晰,有利于程序正確性證明。2.6詳細設計-詳細設計的工具四、詳細設計的工具(含義、圖例、評價)1.程序流程圖2.盒圖(NS圖)3.PAD圖4.判定表5.判定樹6

29、.過程設計語言(PDL)7.模塊開發(fā)文件夾2.6詳細設計-詳細設計的工具1.程序流程圖(1)程序流程圖又稱為程序框圖,是早期軟件設計的主要工具。(2)優(yōu)點:對控制流程的描繪很直觀,便于初學者掌握。(3)缺點:程序流程圖本質上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結構。2.6詳細設計-詳細設計的工具程序流程圖中用箭頭代表控制流,因此程序員不受約束,可以完全不顧結構程序設計的精神,隨意轉移控制。程序流程圖不易表示數據結構。2.6詳細設計-詳細設計的工具2.盒圖(N_S圖)盒圖由Nassi和Shneiderman提出,又稱為N_S圖,它有以下特點:(1)功能

30、域(即一個特定控制結構的作用域)明確,很容易從盒圖上看出。(2)不可能任意轉移控制(3)很容易確定局部和全程數據的作用域(4)很容易表現嵌套關系,也可以表示模塊的層次結構(5)盒圖沒有箭頭,不可以隨意轉移控制,不允許違背程序設計的原則。2.6詳細設計-詳細設計的工具3.PAD圖PAD圖由日本日立公司在1973年發(fā)明,它用二維樹型結構的圖來表示程序的控制流,比較容易翻譯成程序代碼。主要特點:(1)使用PAD圖設計的程序必然是結構化程序(2)PAD圖描繪的程序結構十分清晰。(3)用PAD圖表現程序邏輯,易讀、易懂、易記。(4)容易將PAD圖轉換成高級語言源程序2.6詳細設計-詳細設計的工具(5)P

31、AD圖既可用于表示程序邏輯,也可用于描繪數據結構。(6)PAD圖的符號支持自頂向下、逐步求精方法的使用。(7)PAD圖面向高級語言。2.6詳細設計-詳細設計的工具4.判定表判定表能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系,而其它的工具不易表示。一張判定表由四部分組成,左上部列出所有條件,左下部是所有可能做的動作,右上部是表示各種條件組合的一個矩陣,右下部是和每種條件組合相對應的動作。判定表的每一列實質上是一條規(guī)則,規(guī)定了與特定的條件組合相對應的動作。2.6詳細設計-詳細設計的工具5.判定樹判定樹是判定表的變種,也能清晰地表示復雜的條件組合與應做的動作之間的對應關系。優(yōu)點:形式簡單,

32、不需任何說明,易看出含義,易于掌握和使用。缺點:簡潔性不如判定表,相同的數據元素往往要重復寫多遍,而且越接近樹的葉端重復次數越多。2.6詳細設計-詳細設計的工具6.過程設計語言PDLPDL也稱為偽碼,是用正文形式表示數據和處理過程的設計工具。PDL具有嚴格的關鍵字外部語法,用于定義控制結構和數據結構;另一方面,PDL表示實際操作和條件的內部語法通常又是靈活自由的,以便可以適應各種工程項目的需要。2.6詳細設計-詳細設計說明書五、詳細設計說明書引言程序系統(tǒng)的組織結構關鍵程序的設計說明2.7編碼-程序設計概述一、程序設計概述1. 50年代用機器指令代碼進行手工編寫程序當時程序設計是繁雜而又仔細的勞

33、動,重復0與1,后期逐漸被用符號指令的匯編程序代替。當時評價程序的好壞是指令條數少,運行速度快,存儲單元少。2.7編碼-程序設計概述2. 60年代初,第一個高級語言Fortran的出現,大大簡化了程序設計。用高級語言編寫程序,基本與機器無關,可集中精力于算法本身。隨著計算機的應用推廣而滲透到各學科和技術領域,一系列不同程序風格和不同服務對象的專用語言和通用語言大量出現,至今已有1000多種。2.7編碼-程序設計概述3. 70年代初期,大型軟件(如操作系統(tǒng)、數據庫)的出現,給程序設計帶來了新的問題。如花費大量的資金和人力編制程序,還有產品的可靠性、維護、修改和移植等,形成軟件危機。例:IBM公司

34、的OS/360系統(tǒng),花費了幾千人年的努力,歷盡艱辛,但結果令人失望。OS/360系統(tǒng)的負責人Brooks生動地描述了研制過程中的困難和混亂:“象巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能逃脫淹沒在泥潭中得命運程序設計就象這樣一個泥潭一批批程序員在泥潭中掙扎沒有人料到問題竟會這樣”2.7編碼-程序設計概述4. 從60年代末開始,出現了許多程序設計的方法,比較成功或流行的有:結構化的程序設計、逐步求精的程序設計、程序的推導技術、程序變換技術、面向對象的程序設計。如果說70年代、80年代是“結構化的程序設計”年代,那么90年代則是“面向對象的程序設計”的天下。2.7編碼-

35、程序設計概述總之,軟件的發(fā)展大體上經歷了三個階段:程序設計階段、軟件階段、軟件工程階段。在當今軟件工程時代,軟件不再是建立在個別人“手藝”基礎上的、個體或“作坊”生產的“工藝品”,而是以工程的方式批量生產的產品。2.7 編碼-程序設計語言二、程序設計語言1.分類機器語言匯編語言高級語言語言2.7 編碼-程序設計語言高級語言從應用特點分從內在特點分基礎語言,如BASIC結構化語言,如PASCAL、C專用語言,如APL系統(tǒng)實現語言,如C靜態(tài)高級語言,如COBOL塊結構高級語言,如PASCAL動態(tài)高級語言,不屬于通用語言2.7 編碼-程序設計語言2.特點名字說明類型說明初始化程序對象的局部性程序模塊

36、控制結構:順序、分支、循環(huán)異常處理獨立編譯2.7 編碼-程序設計途徑三、程序設計途徑1.寫程序的風格程序內部的文檔:恰當的標識符、適當的注釋和程序的視覺組織等。數據說明語句構造:原則是每個語句都應該簡單而直接,并注意以下規(guī)則:不要為了節(jié)省空間而把多個語句寫在同一行。盡量避免復雜的條件測試盡量減少對“非”條件的測試避免大量使用循環(huán)嵌套和條件嵌套利用括號使邏輯表達式或算術表達式的運算次序清晰直觀。2.7 編碼-程序設計途徑輸入/輸出:好的設計原則:(1)對所有輸入數據進行檢驗(2)檢查輸入項重要組合的合法性(3)保持輸入格式簡單(4)使用數據結束標記,不要要求用戶指定數據的數目(5)明確提示交互式

37、輸入的請求,詳細說明可用的選擇或邊界數值(6)當程序設計語言對格式有嚴格要求時,應保持輸入格式一致(7)設計良好的輸出報表(8)給所有輸出數據加標志。2.7 編碼-程序設計途徑效率:主要指處理機時間和存儲器容量兩個方面。提高程序運行時間的原則:(1)寫程序之前先簡化算術的和邏輯的表達式(2)仔細研究嵌套的循環(huán),以確定是否有語句可以從內層往外移(3)盡量避免使用多維數組(4)盡量避免使用指針和復雜的表(5)使用執(zhí)行時間短的算術運算(6)不要混合使用不同的數據類型(7)盡量使用整數運算和布爾表達式存儲效率輸入/輸出的效率2.7 編碼-程序設計途徑2.程序設計方法論自頂向下的程序設計方法自底向上的程

38、序設計方法3.程序設計自動化4.程序設計工具-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbN

39、eQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+

40、A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMeP

41、hSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w

42、)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%vH9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-E5H9KcNfRiUlXp#

43、s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbNeQiTlW&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9Lc

44、OgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B3E6I9LcOgRnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmY*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C

45、4G7JaMePhSkWnZr(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#sz0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$

46、u(x+A2E5H8KcNfQiUlXp#s%v)y5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcN

47、fRiUmXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp#s&v)z0C3

48、F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&wD5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3cNfQiUlXo#s%v)y

溫馨提示

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

評論

0/150

提交評論