版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三講結構化方法內容和目的了解結構化方法的產生和有關概念掌握結構化方法的基本原則了解結構化分析、設計、編程方法的基本內容了解軟件開發(fā)的一般原則評價軟件開發(fā)方法的四大特征技術特征:支持各種技術概念的方法特色,如層次性、抽象性、并行性、安全性、正確性等使用特征:用于具體開發(fā)時的特色,如易理解性、易移植性、易復用性、工具的支持、任務范圍、使用的廣度、活動過渡的可行性、產品的易修改性、對正確性的支持等管理特征:增強對軟件開發(fā)活動管理的能力方面的特色,如易管理性、支持或阻礙團隊工作的程度、中間階段的確定、工作產品、配置管理、階段結束準則、費用估計等經濟特征:給軟件組織產生的在質量和生產力方面的可見效益,如分析活動的局部效益、全生存周期效益、獲得該開發(fā)方法的代價、使用它的代價、管理的代價等選用軟件開發(fā)方法的考慮因素1對該開發(fā)方法是否已具有經驗,或者已有受過培訓的人員2開發(fā)項目的進度、人員組成情況3為開發(fā)項目提供的資源如何4計劃、組織、管理的可行性5開發(fā)項目的領域知識準備情況航天的考慮結構化方法較全面、最成熟、最基礎、使用最廣泛、有成功經驗結構化方法適合航天軟件研制工作結構化方法是基礎性方法結構化方法包括就形成了配套的軟件結構化分析方法、結構化設計方法和結構化編程方法,其核心和基礎是結構化程序設計理論論據1966年,Boehm和Jacopini證明了程序設計語言只要上旬、選擇和重復三種形式的控制結構就足以表達出各種其他形式的結構1970年McKeeman稱其XPL編譯程序僅用一個GOTO語句1972年C.Strachey設計的操作系統(tǒng)只在五處使用了標號和GOTO語句爭辯否定GOTO取消GOTO后,程序易理解、易排錯、易維護沒有其它好的結構代替GOTO的話,容易濫用GOTO無GOTO的程序容易進行正確性證明肯定GOTO在塊和進程的非正常出口處往往需要使用GOTO會使程序執(zhí)行效率較高在合成程序目標時,GOTO語句往往是有用的,如返回語句用GOTO結論1974年Knuth發(fā)表了總結性文章:“帶有GOTO的結構化程序設計”令人信服地總結和證實了以下三點:濫用GOTO語句確實有害,應盡量避免完全避免使用GOTO語句也并非是個明智的方法,有些地方使用GOTO語句,會使程序流程更清楚、效率更高爭論的焦點不應該放在是否取消GOTO語句,而應該放在用什么樣的程序結構上最后一點使關鍵,肯定以提高程序清晰性為目標的結構化方法1清晰第一效率第二著名的“清晰第一,效率第二”已成為當今主導的程序設計風格“先求清楚后求快”“保持程序簡單以求快”“寫清楚——不要為‘效率’犧牲清晰”2設計先于編碼“開始寫程序越早,完成程序需要的時間就越長?!薄霸O計先于編碼”已成為所有程序設計必須遵守的一條原則。設計一定要利用各種設計工具來進行。3逐步細化的設計方法…逐步細化方法是結構化程序設計的心臟。1)中心思想a.程序設計是一個由粗到細的過程;b.程序設計不僅包括對控制結構的設計,也包括對數據結構的設計,兩者都要一步步地細化。模塊化原則主要思想是:將整個系統(tǒng)進行分解成為若干功能獨立的,能分別設計、編程和測試的模塊程序員能單獨地負責一個或幾個模塊的開發(fā)開發(fā)一個模塊不需要知道系統(tǒng)其它模塊的內部結構和編程細節(jié)模塊之間的接口盡可能簡明,模塊應盡可能彼此隔離模塊化應達到的要求具有可修改性:對整個系統(tǒng)的一次修改只涉及少數幾個模塊,這種局部性的修改不僅能滿足系統(tǒng)修改的要求,而且不會影響系統(tǒng)已經具有的良好質量具有易讀性:每個模塊的含義和職責被明確,模塊之間的接口關系清楚,從而降低復雜性,使得閱讀和理解比較方便具有易驗證性:只有每個模塊能實現正確,才可能使整個系統(tǒng)的正確性有必要的前提信息隱藏方法Parnas提出信息隱藏是模塊化程序設計的基本方法信息隱藏:為了實現部件的可見性控制,在分層構造軟件模塊時,要求這些部件只在模塊內部可見,在模塊外部不可見結構化分析五個步驟1)通過對用戶的調查,以軟件的需求為線索,獲得當前系統(tǒng)的具體模型;2)去掉具體模型中非本質因素,抽象出當前系統(tǒng)的邏輯模型;3)根據計算機的特點分析當前系統(tǒng)與目標系統(tǒng)的差別,建立目標系統(tǒng)的邏輯模型;4)完善目標系統(tǒng)并補充細節(jié),寫出目標系統(tǒng)的軟件需求規(guī)格說明;5)評審直到確認完全符合用戶對軟件的需求。八條指導原則1)請用戶共同參與開發(fā);2)編寫用戶資料,考慮他們的專門技術水平和閱讀與使用資料的目的;3)使用畫圖工具做媒介,減少與用戶交流時發(fā)生問題的可能性;4)進行系統(tǒng)設計之前建立一個系統(tǒng)的邏輯模型;5)自頂向下進行分析設計;6)自頂向下的方法進行測試;7)驗收之前,就讓用戶看到系統(tǒng)的某些主要輸出,使用戶能夠盡早地看到結果,及時地提出意見;8)對系統(tǒng)的評價不僅是指開發(fā)和運行費用的評價,而是對整個生存過程中的費用和收益的評價。結構化分析方法四大特點一是用畫圖的方法二是自頂向下地分解三是強調邏輯而不是物理四是沒有重復性四句指導工作的準則分層分片,均衡分解;父子平衡,推遲細節(jié)。分層就是逐步細化;分片就是用一組數據流圖來代替一大張包羅萬象的總圖。均衡分解是指自頂向下畫分層數據流圖時,各個子系統(tǒng)的分解程度應大致均勻。父子平衡是指數據流圖的父圖與子圖在輸入數據和輸出數據上應該分別保持一致。推遲細節(jié)是指為了優(yōu)先考慮重要問題,允許將一些細節(jié)推遲到下層數據流圖來處理。結構化設計方法70年代提出的面向數據流、重點確定軟件結構的設計方法“結構化設計就是采用最佳的可能方法設計系統(tǒng)的各個組成部分以及各成分之間的內部聯系的技術。也就是說,結構化設計是這樣一個過程,它決定用哪些方法把哪些部分聯系起來,才能解決好某個具體有清楚定義的問題?!被舅枷胧菍④浖O計成由相對獨立、單一功能的模塊組成的結構。評價模塊結構質量的兩個具體標準——內聚度和耦合度結構化設計方法設計步驟1)建立初始結構圖;2)改進初始結構圖。建立初始結構圖開始細化/修改軟件需求規(guī)格說明中的數據流圖是變換型嗎?變換分析事物分析將映射得來的初始結構圖改進為最終結構圖對最終結構圖進行評審結束是否從數據流圖過渡到結構圖傳入傳入部分變換中心傳出部分(a)變換型結構傳出變換接受事務分析動作1動作2動作3接受部分事務中心(b)事務型結構DFD主模塊輸入模塊主加工模塊輸出模塊(a)事務控制模塊接受模塊動作發(fā)送模塊動作1模塊動作1模塊動作1模塊(b)SC改進初始結構圖…
1)減少塊間聯系,降低耦合度:可從方式、作用、數量等方面著手,其中最常用的是減少模塊間傳遞的參數個數;2)消除管道性模塊,提高內聚度:管道性模塊的塊內聯系很弱,只是像管道一樣將一些參數從主模塊傳送到它的幾個下層模塊,對這樣的模塊,應予以消除;3)適當考慮系統(tǒng)將來可能發(fā)生的變化;改進初始結構圖4)注意模塊的大?。合拗颇K大小是降低復雜性的手段之一;5)適當調整調用和被調用的次數,即深度、寬度、扇出和扇入都要適當。一個模塊調用或被調用過多,往往是設計不好的跡象;6)整體考慮問題:即盡可能研究整張結構圖,而不是只分別考慮一張結構圖的各個部分。三條指導規(guī)則1)對模塊分割、合并和變動模塊調用關系的指導規(guī)則2)保持高扇入/低扇出的規(guī)則3)把作用域保持在控制域之內的規(guī)則對模塊分割、合并和變動模塊調用關系的指導規(guī)則分割或合并結構圖中的模塊,應以提高模塊獨立性為首要的標準:力求提高內聚,降低耦合,簡化接口,少用全局性和控制型信息要適當考慮快的大小對模塊位置應否變更,視處理是否方便來定,不必拘泥于數據流圖保持高扇入/低扇出的規(guī)則扇入數指調用該模塊的模塊個數扇出數指該模塊調用的模塊個數扇入高則上級模塊多,能增加利用率扇出低則下級模塊少,能減少復雜度扇出數以3-4為宜,最好不超過5-7軟件結構通常具有“甕”形或“清真寺”形的形狀把作用域保持在控制域之內的規(guī)則一個模塊的控制域,等于模塊本身加上其下級模塊。一個模塊的作用域,是受這個模塊中的判定所影響的模塊。規(guī)則的含義是:a.作用域不要超過控制域的范圍;b.軟件系統(tǒng)的判定,其位置離受它控制的模塊越近越好。結構化編程方法用一組標準的準則和工具從事程序設計,稱為結構化程序設計;這些準則和工具包括一組基本控制結構,自頂向下擴展原則,模塊化和逐步求精結構化編程方法派生于結構化程序設計理論,它要求使用順序、選擇、循環(huán)等基本控制結構,并遵循增加程序產量、提高程序可讀性、容易測試和驗證的原則來編寫程序。結構化編程應遵循的原則…1)使用程序設計語言中的順序、選擇、循環(huán)等有限的控制結構表示程序的控制邏輯;2)選用的控制結構只準許有一個入口和一個出口;3)程序語句組成容易識別的塊,每塊只有一個入口和一個出口;4)復雜結構應該用嵌套的基本控制結構來實現;結構化編程應遵循的原則5)語言中所沒有的控制結構,應該采用前后一致的方法來模擬;6)嚴格控制GOTO語句,僅在下列情況才可使用:a.用一個非結構化的程序設計語言去實現一個結構化的構造;b.若不使用GOTO語句會使功能模糊;c.在某種可以改善而不是損害程序可讀性的情況下。結構化編程方法的主要優(yōu)點1)易于理解、使用和維護。程序員采用結構化編程方法,降低了程序的復雜性,因此容易編寫程序。程序員能夠進行逐步求精、程序證明和測試,以確保程序的正確性,程序容易閱讀并被人理解,便于用戶使用和維護。2)提高編程工作的效率,降低了軟件開發(fā)成本。由于結構化編程方法能夠把錯誤控制到最低限度,因此能夠減少調試和查錯時間。結構化程序是由一些為數不多的基本結構模塊組成,這些模塊甚至可以由機器自動生成,從而極大地減輕了編程工作量。軟件開發(fā)的原則(1)規(guī)范嚴格的原則遵循嚴格化原則,可以達到開發(fā)出正確、成功的軟件產品的目的軟件開發(fā)過程是創(chuàng)造性的工作過程,但嚴格化不會抑制創(chuàng)造性嚴格的分析設計可以增強對創(chuàng)造性成果的信心嚴格化對可靠性、維護性、可移植性、可理解性等產生影響過程詳細記錄可供精確地掌握和控制開發(fā)過程軟件開發(fā)的原則(2)分隔化的原則解決復雜問題時從不同的方面把問題分隔開,然后單獨集中精力解決每一個方面的問題分隔化原則是要將相互關系不太緊密的方面分割開,對相互聯系僅考慮其影響分隔的途徑:以時間次序、以質量指標、以軟件規(guī)模、以不同的視圖、以開發(fā)人員的技能軟件開發(fā)的原則(3)模塊化的原則先對復雜問題進行分析,找出基本要素,盡量使之獨立,然后各個擊破簡單的單元易于加工、維修,可以標準化、通用化復雜問題的分解,基于自頂向下的思路已有模塊的組合,基于自底向上的思路軟件開發(fā)的原則(4)抽象化的原則重要、帶有普遍意義特征的方面或內容被抽象出來,次要的、缺乏普遍意義的方面或內容被忽略抽象是分隔化原則的一種特殊應用軟件開發(fā)的原則(5)預見變動的原則軟件由于其錯誤、新需求、新環(huán)境而產生變化要求開發(fā)時就要考慮到軟件變動的要求PARNAS的原則開發(fā)系列產品漸進開發(fā),從子集出發(fā),信息隱藏,保持接口不變采用為變化而設計的技術軟件開發(fā)的原則(6)通用化的原則盡量找出對類似問題或相關問題的具有一定普遍意義的解決方法,并在相應產品開發(fā)中應用,使軟件產品具有一定的通用性對普遍性、通用性問題的解決方法具有質量、經濟方面的價值對通用和專用,需要在經濟和效率方面進行權衡通用性原則是設計通用的軟件產品的一個最基本原則軟件開發(fā)的原則(7)逐步完善的原則由于難以確定用戶的具體需求,只能從不完善逐步走向完善必須注意:記錄每一個有意義的漸進文檔必須盡早反映變動,變動得到控制MICROSOFT在采用逐步完善原則方面取得了成功軟件開發(fā)的原則(8)有關軟件質量的原則用戶至上的原則以用戶的利益為前提處處為用戶使用方便著想千方百計幫助用戶使用好軟件注意與用戶的交流質量可靠的原則在質量、成本之間進行權衡軟件開發(fā)的原則(9)有關軟件文檔的原
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年鄭州航空工業(yè)管理學院馬克思主義基本原理概論期末考試題附答案解析
- 2025年奇臺縣幼兒園教師招教考試備考題庫帶答案解析(必刷)
- 2026年影視制片人專業(yè)試題庫
- 2025年黟縣招教考試備考題庫含答案解析(必刷)
- 2025年商河縣招教考試備考題庫帶答案解析(奪冠)
- 2025年杭州電子科技大學信息工程學院馬克思主義基本原理概論期末考試模擬題及答案解析(奪冠)
- 2026年興安職業(yè)技術學院單招職業(yè)傾向性測試模擬測試卷帶答案解析
- 梧州2025年廣西梧州市公安局招聘輔警20人筆試歷年參考題庫附帶答案詳解
- 2025年甘孜職業(yè)學院單招職業(yè)傾向性測試題庫帶答案解析
- 2025年開江縣招教考試備考題庫帶答案解析(奪冠)
- 電烘箱設備安全操作規(guī)程手冊
- 2026云南昆明市公共交通有限責任公司總部職能部門員工遴選48人筆試模擬試題及答案解析
- 2025至2030中國數字經濟產業(yè)發(fā)展現狀及未來趨勢分析報告
- 上海市松江區(qū)2025-2026學年八年級(上)期末化學試卷(含答案)
- 導管室護理新技術
- 中國信通服務:2025算力運維體系技術白皮書
- 2026年焦作大學單招試題附答案
- 電力行業(yè)五新技術知識點梳理
- 《DLT 849.1-2004電力設備專用測試儀器通 用技術條件 第1部分:電纜故障閃測儀》專題研究報告 深度
- 餐飲業(yè)店長運營效率考核表
- 超市安全生產協(xié)議書
評論
0/150
提交評論