




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章軟件開發(fā)方法(二)軟件工程計算機教學實驗中心
1問題的提提出什么是軟軟件工程程?為什么提提出軟件件工程??主要研究究哪些問問題?軟件工程程的目標標、原理理軟件開發(fā)發(fā)活動……21.了解軟軟件工程程的基本本概念、、基本原原則2.理解軟軟件工程程的主要要定義3.理解軟軟件過程程及模型型4.了解軟軟件工程程方法學學31.2..1軟件工程程概述什么是軟軟件工程程?為什么要要學習軟軟件工程程?軟件工程程包括哪哪些內容容?……4“軟件工程程是一種種描述規(guī)規(guī)范?!盡ichaelJackson軟件工程程?軟件工程程專家Boehm定義著名軟件件工程專專家B.W.Boehm為軟件工工程的定定義是::運用現(xiàn)代代科學技技術知識識來設計計并構造造計算機機程序及及為開發(fā)發(fā)、運行行和維護護這些程程序所必必需的相相關文件件資料。。6IEEE給出的定定義1983年IEEE給出的定定義為::以優(yōu)質、、高效、、低成本本為目標標,研究究開發(fā)、、運行和和維護軟軟件以及及使之退退役的系系統(tǒng)方法法。其中,““軟件””的定義義為:計計算機程程序、方方法、規(guī)規(guī)則、相相關的文文檔資料料以及在在計算機機上運行行時所必必需的數數據。7關于軟件件工程學學軟件工程程是一門門交叉學學科,涉涉及到計計算機科科學、管管理科學學、工程程學和數數學。軟件工程程的理論論、方法法、技術術都是建建立在計計算機科科學的基基礎上;;它是用管管理學的的原理、、方法進進行軟件件生產管管理;用工程學學的觀點點進行費費用估算算、制定定進度和和實施方方案;用數學方方法建立立軟件可可靠性模模型以及及分析各各種算法法。81.2..2軟件工程程的目標標1、開發(fā)生生產盡可可能多的的軟件產產品;2、提高軟軟件的生生產效率率;3、滿足應應用的功功能需要要;4、降低軟軟件開發(fā)發(fā)成本。。但是,目目標與實實現(xiàn)過程程是矛盾盾的:功能強、、系統(tǒng)則則復雜,,難于開開發(fā)和維維護;注重發(fā)揮揮硬件功功能,則則可移植植性差;;快速開發(fā)發(fā),則可可能影響響質量;;……9軟件工程程的本質質特征軟件工程程關注于于大型程程序的構構造軟件工程程的中心心課題是是控制復復雜度軟件經常常變化開發(fā)軟件件的效率率非常重重要和諧地合合作是開開發(fā)軟件件的關鍵鍵軟件必須須有效地地支持它它的用戶戶在軟件工工程領域域中是由由具有一一種文化化背景的的人替具具有另一一種文化化背景的的人創(chuàng)造造產品101.2..3軟件工程程原理自1968年提出““軟件工工程”的的概念以以來,專專家學者者又陸續(xù)續(xù)提出了了100多條關于于軟件工工程的準準則。著名軟件件工程專專家B.W..Boehm于1983年發(fā)表的的一篇論論文中提提出了軟軟件工程程的七條條基本原原理。他他認為這這七條原原理是確確保軟件件產品質質量和開開發(fā)效率率的最小小準則集集合。11軟件工程程七條基本原理理用分階段段的生命命周期計計劃嚴格格管理堅持進行行階段評評審實行嚴格格的產品品控制采用現(xiàn)代代程序設設計技術術結果應能能清楚地地審查開發(fā)小組組人員少少而精承認不斷斷改進軟軟件工程程實踐的的必要性性12①用分階階段生命命周期計計劃嚴格格管理據統(tǒng)計發(fā)發(fā)現(xiàn):不成功軟軟件項目目中半數數是因計計劃不周周造成的的。在軟件的的整個生生命周期期中應該該制定并并嚴格執(zhí)執(zhí)行六類類計劃::項目概要要、項目目進度表表、項目目控制、、產品控控制、驗驗證及運行維護護計劃。不同層次次的管理理人員必必須嚴格格按照計計劃各盡盡其職地地去管理理軟件開開發(fā)與維維護工作作,絕不不能受客客戶或上上級的影影響而擅擅自背離離預定計計劃。13②堅持進進行階段段評審軟件的質質量保證證工作不不能等到到編碼階階段結束束之后再再進行。。這是因因為:大部分錯錯誤是在在編碼之之前造成成的(根根據Boehm統(tǒng)計,設設計錯誤誤占軟件件錯誤的的63%,編碼錯錯誤占37%)。錯誤發(fā)現(xiàn)現(xiàn)與改正正得越晚晚,所付付出的代代價也越越高。因此,在在每個階階段進行行嚴格的的評審,,盡早發(fā)發(fā)現(xiàn)并修修正各個個階段中中所犯的的錯誤是是一條必必須遵循循的重要要原則。。14示意圖關關于階段段評審作作用
15③實行嚴嚴格的產產品控制制在軟件開開發(fā)過程程中不應應隨意改改變需求求,但不不能禁止止更改需需求。當當必須修修改時,,為了保保持軟件件各配置置成分的的一致性性,必須須實行嚴嚴格的產產品控制制。一切有關關修改軟軟件的建建議都必必須按照照嚴格的的規(guī)程進進行評審審,獲準準后才能能實施修修改。絕對不能能誰想修修改就隨隨意進行行修改的的行為。。16④采用現(xiàn)現(xiàn)代程序序設計技技術以前的結構化程序設計計技術,,如今的的面向對象象程序設計計技術都都被實踐踐證明是是各個不不同歷史史階段的的優(yōu)秀程程序設計計技術和和方法。。采用先進進的技術術既可以以提高軟軟件開發(fā)發(fā)的效率率,又可可以提高高軟件維維護的效效率。17⑤結果應應能清楚楚地審查查軟件產品品是看不不見、摸摸不著的的邏輯產產品,軟軟件開發(fā)發(fā)人員的的工作進進展情況況可見性性差。為了提高高開發(fā)過過程的可可見性,,應根據據軟件開開發(fā)項目目中的目目標完成成期限,,規(guī)定開開發(fā)組織織的責任任和產品品標準,,使得到到的結果果能夠清清楚的審審查。18⑥開發(fā)小小組人員員少而精精開發(fā)小組組成員的的素質應應該高,,人員不不宜過多多。人員員素質和和數量是是影響產產品質量量和開發(fā)發(fā)效率的的重要因因素。素質高的的人開發(fā)發(fā)效率比比低的人人高幾倍倍甚至幾幾十倍,,而錯誤誤則明顯顯得少;;人數增加加,管理理難度也也增加。。19⑦承認不不斷改進進軟件工工程實踐踐的必要要性要積極主主動地采采納新的的軟件技技術,要要不斷總總結經驗驗;不能能自以為為是,固固步自封封,唯我我獨好。。大千世界界,錯綜綜復雜,,只有不不斷學習習,才能能不斷進進取,不不斷進步步。201.2..4軟件開發(fā)發(fā)活動軟件工程程過程是是由一系系列軟件件工程的的階段任任務和活活動組成成。1995年ISO將軟件生生存周期期的活動動和任務務劃分為為3個過程::主要過程程(需求、、設計、、構造、、測試和和維護))支持過程程(軟件配配置、軟軟件工程程管理、、軟件過過程和軟軟件質量量)組織過程程(基礎設設施建設設、工具具和方法法、改進進、培訓訓)21(一)主要過程程主要過程程包括的的軟件開開發(fā)活動動和任務務是:軟件需求求軟件設計計軟件構造造軟件測試試軟件維護護221、軟件需需求任務:收集、、分析、、理解、、確定用用戶的要要求;然然后把用用戶的要要求精確確、完整整地描述述表達出出來。目的:要回答答“要解決什什么問題題?”,既系統(tǒng)““做什么??”。分兩步驟驟:可行性研研究、制制定軟件件開發(fā)計計劃結果:可行性報報告、軟軟件計劃劃、需求求說明書書需求說明明書是讓讓用戶理理解:“什么是他他們真正正需要的的”。23了解用戶戶需求有有關的問問題什么是需需求?希望,功功能,限限制,必必需品,,任何必必要的東東西;什么時候候?從確定方方案開始始;為什么?用戶的需需求是開開發(fā)需要要的依據據;來自哪里里?來自用戶戶,工業(yè)業(yè)標準,,和實踐踐經驗;;如何實現(xiàn)現(xiàn)?使所有相相關的人人參與需需求分析析活動,,通過有有效的交交流實現(xiàn)現(xiàn);誰來做?用戶,工工程管理理人員,,開發(fā)人人員,維維護人員員。24用戶參與與需求分分析的重重要性根據StandishGroup1994年發(fā)表的的一份研研究報告告統(tǒng)計,,延遲的的、超出出預算的的、未完完成工程程的最普普遍的原原因是::⑴缺少少用戶參參與;⑵不完完備的需需求規(guī)范范;⑶改變變需求規(guī)規(guī)范。25需求分析析的難點點⑴問題題的復雜雜性涉及因素素多而;;如運行行環(huán)境和和系統(tǒng)功功能等。。⑵交流流障礙涉及不同同類型人人員較多多,知識識背景、、角度、、角色的的不同;;⑶不完完備性和和不一致致性用戶對問問題的陳陳述有矛矛盾、片片面性等等造成;;⑷需求求易變性性需求是變變化的。。26需求工作作的重要要性IBM公司有關關研究的的結果表表明:有效的需需求管理理可以降降低開發(fā)發(fā)成本。。通常改正正需求錯錯誤需要要付出改改正其他他錯誤10倍以上的的代價。。需求錯誤誤通常導導致軟件件工程中中全部錯錯誤的25-40%。改正很少少的需求求錯誤可可以避免免大量耗耗費在返返工上的的成本和和時間。。27需求活動動⑴識別別問題通過調研研和收集集資料,,了解用用戶的確確切需求求,并將將用戶提提出的功功能行為為和特殊殊要求等等用雙方方都能理理解的表表達方式式逐條列列出。在在整個分分析期間間要和用用戶充分分協(xié)商。。⑵可行行性研究究對于大型型復雜問問題,要要對用戶戶的要求求及實現(xiàn)現(xiàn)環(huán)境從從技術、、經濟和和社會因因素三個個方面進進行可行行性研究究,以確確定問題題是否可可解。⑶分析析建模建立軟件件求解模模型;信信息、行行為和表表示。⑷需求求規(guī)格化化及編寫寫文檔需求規(guī)格格說明書書、初步步用戶使使用手冊冊等。282、軟件設設計任務:給出實實現(xiàn)系統(tǒng)統(tǒng)的實施施藍圖。。目的:要回答答“如何解決決該問題題?”,既系統(tǒng)““怎樣做??”。步驟:概要設計計:解決決系統(tǒng)的的模塊劃劃分、模模塊的層層次結構構及數據據庫設計計。詳細設計計:解決決每個摸摸塊內部部算法和和數據結結構。結果:系統(tǒng)設計計說明書書和模塊塊功能說說明書29軟件設計計工作軟件設計計要做的的工作總總的可以以歸結為為:軟件系統(tǒng)統(tǒng)結構(軟件結構構)設計、數數據設計計、界面面設計和和過程設設計。設計辦法法是功能能分解,,包括::⑴采用用某種設設計方法法,將一一個復雜雜的系統(tǒng)統(tǒng)按功能能劃分成成模塊;;⑵確定定每個模模塊的功功能;⑶確定定模塊之之間的接接口,即即模塊之之間傳遞遞的信息息;⑸評價價模塊結結構的質質量。30軟件設計計準則(1)軟件結構構準則;分層結結構、便便于控制制;軟件件結構的的深度和和寬度要要適中;;具有合合理的扇扇出和扇扇入數。。(2)模塊化準準則;分解復復雜問題題;(3)模塊獨立立性準則則;應使模模塊之間間和與外外部環(huán)境境之間接接口的復復雜性盡盡量地減減??;模模塊應具具有低耦耦合、高高內聚;;(4)數據和和過程描描述清晰晰、可區(qū)區(qū)分(表表達式));(5)成果可可重復。。31軟件設計計方法⑴面向向數據流流的設計計方法((分為變換流和事務流流方法));⑵結構化設設計方法法;⑶面向向數據結結構設計計方法((Jackson方法);;⑷Warnier方法⑸面向向對象方方法32使用的開開發(fā)工具具⑴數據流圖圖、層次圖、HIPO圖、結構圖圖⑵程序流程程圖、N-S圖、問題分析析圖PAD(ProgramAnalysisDiagram)⑶類語言、、過程設設計語言言PDL(ProceduralDesignLanguage)等⑷統(tǒng)一建模模語言UML(UnifiedModelingLanguage)333、軟件構構造任務:根據設設計說明明書中每每個模塊塊的控制制流程編編寫出相相應的源源程序。。目的:寫出高高質量的的代碼和和相應餓餓文檔。。構造要注注意使系系統(tǒng)更易易于使用用和系統(tǒng)統(tǒng)的可重重用性。。選擇合適適的開發(fā)發(fā)工具及及系統(tǒng)軟軟件、數數據庫軟軟件、中中間件等等。制定定編程規(guī)規(guī)范。結果:源程序和和文檔34編程風格格編程風格格主要體體現(xiàn)在如如何描述述源程序序文件、、數據說說明、輸輸入輸出出等。(1)源程序序文件;;變量名名的命名名、源程程序中的的注解以以及源程程序的書書寫格式式;(2)數據說說明;按按不同類類型數據據的順序序以及字字典順序序說明、、對數據據結構加加注釋說說明;(3)語句構構造;語語句構造造一般規(guī)規(guī)則;(4)輸入輸輸出語句句;輸入入輸出語語句的規(guī)規(guī)則。35語句構造造規(guī)則不要為節(jié)節(jié)省空間間而把多多個語句句寫在同同一行;;盡量避免免復雜的的條件測測試;盡量減少少對“非非”條件件的測試試;避免使用用多層嵌嵌套的循循環(huán)和重重復;利用括號號使表達達式的運運算順序序清晰直直觀?!纠?6程序設計計語言選用程序序設計語語言時要要考慮它它的三種種特性::(1)心理特特性對人-機通信質質量有重重要影響響。例如如,人們們習慣使使用已熟熟悉的程程序設計計語言,,由此產產生的惰惰性影響響人們學學習新語語言。(2)工程特特性它涉及到到軟件的的可移植植性、開開發(fā)工具具的可利利用性等等。(3)技術特特性它對設計計質量、、人和整整個軟件件工程有有影響。。例如,,對數據據結構復復雜性要要求很高高的系統(tǒng)統(tǒng),考慮慮選用C及C++等語言;若若對高性性能和實實時功能能要求高高,可考考慮選用用Ada語言。374、軟件測測試任務:檢查、、發(fā)現(xiàn)程程序中的的錯誤,,提高系系統(tǒng)可靠靠性。目的:保證系系統(tǒng)的正正確性、、可靠性性和可用用性。回答:“該系系統(tǒng)是否否能實現(xiàn)現(xiàn)規(guī)定的的操作??”。方式:模塊測測試、組組裝測試試、確確認測試試和系統(tǒng)統(tǒng)測試結果:測試報告告和軟件件修改報報告等。。38測試分類類⑴單元測試試。對一一個模塊塊的測試試,一般般以白盒盒法測試試為主,,多個模模塊可以以并行進進行。⑵集成測試試。最終將將本項目目所有模模塊集成成在一起起測試,,交出完完整程序序產品。。⑶確認測試試。以用戶戶為主的的測試。。證實系系統(tǒng)能否否正確地地實現(xiàn)其其功能。。⑷系統(tǒng)測試試。軟件只只是整個個應用系系統(tǒng)的一一部分。。最后要要集成為為一個整整體,包包括硬件件、軟件件以及相相關的其其它設備備。此時時的測試試稱系統(tǒng)統(tǒng)測試。。39α測試與β測試α阿爾法測測試:對于商品品軟件在在研制方方有客戶戶(訂貨方)參與的確確認測試試叫阿爾爾法測試試。β貝塔測試試:指在若干干客戶場場地由客客戶組織織,最終終用戶參參與的測測試,此此時所有有文檔均均予凍結結,作為為本軟件件版本的的基線。。對于新新軟件,,改版則則為里程程碑。40設計測試試用例應應考慮的的問題①界面:內界面主主要檢查查參數個個數及類類型匹配配。外界界面主要要檢查I/O文件、數數據格式式、類型型匹配。。②模塊的數數據結構構:類型是否否不正確確或不一一致?初初始化、、缺省值值使用情情況;變變量名拼拼錯;上上、下界界溢出等等數據異異常,測測試能否否正確處處理等。③邊界條件件:保證在邊邊界值的的情況下下模塊依依然可以以正確操操作,值值出界時時要有正正確反應應。④獨立路徑徑:保證至少少所有語語句都要要執(zhí)行一一次,每每個條件件或子條條件都執(zhí)執(zhí)行一次次更好。。⑤錯誤處理理路徑::不管程序序有無異異常處理理都要察察看出錯錯處理路路徑。特特別要考考察是否否死機。。41程序調試試調試是在在測試發(fā)發(fā)現(xiàn)錯誤誤之后排排除錯誤誤的過程程。調試試過程會會發(fā)生兩兩種結果果:找到原因因并把問問題排除除;沒找到問問題的原原因。調試是軟軟件開發(fā)發(fā)過程中中最艱苦苦的腦力力勞動。。在調試試過程中中遇到的的錯誤有有所不同同,錯誤誤的后果果越嚴重重,查找找錯誤原原因的壓壓力也越越大。通通常,壓壓力會導導致軟件件開發(fā)人人員在改改正一個個錯誤的的同時可可能引入入更多的的錯誤。。42調試技術術①輸出出存儲器器內容;;特點是是效率低低、難定定位、輸輸出的是是靜止狀狀態(tài)的程程序內容容。②加打印語語句;特點是是顯示的的是程序序的動態(tài)態(tài)信息,,但大量量的輸出出,時間間慢,可可能引出出新的問問題。③用調調試工具具;特點點是動態(tài)態(tài)調試,,可自動動執(zhí)行,,是目前前廣泛采采用的一一種調試試技術。。43調試策略略①試探法。大概分分析、估估計錯誤誤的位置置。②回溯法。確定最最先出現(xiàn)現(xiàn)“癥狀狀”的地地方,然然后沿程程序的控控制流程程往回追追蹤源程程序,直直到找出出錯誤源源為止。。③對分查找找法。若已知知程序中中若干個個關鍵點點的正確確值,然然后用調調試工具具在關鍵鍵點附近近處輸入入正確值值;若輸輸出正確確,則故故障在前前半部分分;否則則,再查查后半部部分。④歸納法。從線索索出發(fā),,通過分分析線索索之間的的關系而而找出故故障。主主要步驟驟為:收收集有關關數據,,組織數數據,導導出假設設,證明明假設。。44調試的啟啟發(fā)性原原則這部分內內容大多多是心理理學的問問題:要思考,,不要盲盲目地修修改程序序,至使使錯誤越越改越多多;如陷入困困境,放放到第22天去解解決;陷入絕境境后,要要與別人人交談你你的問題題,或許許對你有有所啟發(fā)發(fā);避免用試試驗法。。不要在在問題沒沒有搞清清楚之前前,就改改動程序序,這樣樣對找出出錯誤不不利,程程序越改改越亂,,以致于于面目全全非。455、軟件維維護任務:改正軟軟件系統(tǒng)統(tǒng)在使用用過程中中發(fā)現(xiàn)的的隱含錯錯誤,擴擴充在使使用過程程中新的的功能要要求。目的:維護軟軟件系統(tǒng)統(tǒng)的正常常運行。?;卮穑合到y(tǒng)是是否滿足足用戶的的應用要要求。階段結果果:軟件系統(tǒng)統(tǒng)的問題題報告和和軟件修修改報告告。46軟件維護護的原因因⑴軟件件的原有有功能和和性能可可能不再再適應用用戶的要要求;⑵軟件件的工作作環(huán)境改改變了((例如,,增加了了新的外外部設備備),軟軟件也要要做相應應的變更更;⑶軟件件運行中中發(fā)現(xiàn)錯錯誤,需需要修改改。47維護活動動的特點點⑴非結結構化維維護和結結構化維維護。主主要區(qū)別別是開發(fā)發(fā)過程是是否用軟軟件工程程方法,,若各階階段均有有相應的的文檔記記錄,系系統(tǒng)則容容易維護護。采用用結構化化維護可可以大大大提高軟軟件維護護效率。。⑵軟件件維護的的困難性性。是由由于軟件件需求分分析和開開發(fā)方法法的缺陷陷。⑶軟件件維護的的費用在在總費用用中的比比重不斷斷增加,,已經上上升到了了70%~80%或更多,,我們看看到的軟軟件不斷斷升級就就是維護護的具體體體現(xiàn)。。48維護活動動流程建立維護護機構,,組織維維護活動動:⑴制定定維護申申請報告告;⑵審查查維護申申請報告告并批準準;⑶進行行維護并并做詳細細記錄;;⑷復審審。49軟件的可可維護性性軟件可維維護性是是指維護護人員理理解、修修改軟件件的難易易程度。。⑴可維維護性因因素軟件的可可維護性性因素主主要包括括:可理理解性、、可測試試性、可可修改性性、可靠靠性和可可使用性性。⑵提高高可維護護性的方方法提高軟件件的可維維護性必必須從軟軟件生存存周期各各個階段段的工作作入手,,每個階階段都把把可維護護性貫徹徹到階段段的開發(fā)發(fā)活動過過程中,,并按規(guī)規(guī)范對階階段工作作進行評評估,以以保證個個階段的的工作按按質按量量完成。。⑶文檔檔文檔是影影響軟件件可維護護性的決決定性因因素。文文檔分為為用戶文文檔和系系統(tǒng)文檔檔兩類。。50(二)支持過程程支持過程程包括的的軟件開開發(fā)活動動和任務務是:軟件配置置管理軟件工程程管理軟件過程程軟件質量量51軟件配置置管理軟件修改改后會發(fā)發(fā)生什么么呢?同步更新新——當兩個或或兩個以以上的角角色各自自工作在在同一產產物上時時,最后后一個修修改者會會破壞前前者的工工作。通知不達達——當被若干干開發(fā)者者共享的的產品中中的問題題被解決決時,修修改未被被通知到到一些開開發(fā)者。。多個版本本——軟件修改改與文檔檔不一致致。新版本公公布的管管理和監(jiān)監(jiān)控。配置和變變更管理理提供了了準則管管理演化化系統(tǒng)中中的多個個變體,,跟蹤給給定軟件件創(chuàng)建過過程中的的版本。。52軟件工程程管理軟件工程程管理是是一門藝藝術。其其主要活活動有::管理項項目的框框架、計計劃配備備執(zhí)行監(jiān)監(jiān)控項目目的實踐踐準則、、管理風風險的框框架。項目管理理是過程程管理的的主要體體現(xiàn):(1)建立與客客戶的通通信;(2)作計劃,,定義資資源、時時限、落落實到開開發(fā)組;;(3)風險分析析,評估估所采用用的技術術和管理理帶來的的風險;;(4)工程,即即軟件分分析與設設計;(5)構造和發(fā)發(fā)布,即即編碼、、測試、、交付、、安裝、、文檔、、培訓;;(6)客戶評審審,獲得得客戶的的反饋。。53軟件質量量控制軟件質量量保證SQA活動,貫貫穿于軟軟件過程程始終。。開發(fā)單單位成立立SQA小組負責責全面質質量管理理。在開開發(fā)項目目計劃時時就要做做出SQA計劃。其其工作::各種測試試測試軟件件是否滿滿足規(guī)格格說明要要求。各種評審審為多種人人員參與與的討論論會,以以規(guī)格說說明或各各種標準準,規(guī)范范為準評評價各項項軟件工工作。各種審計計以職能人人員為主主審,審審查軟件件過程產產物是否否符合標標準或規(guī)規(guī)格說明明書。報告和記記錄所有測試試、評審審、審計計都要詳詳細記錄錄并寫出出報告,,報告和和記錄均均要整理理、歸檔檔。以上活動動均應在在軟件質質量保證證計劃中中列出。。54(三)組織過程程組織過程程包括的的軟件開開發(fā)活動動和任務務是:基礎設施施建設軟件工程程工具和和方法改進培訓55基礎設施施建設建立、維維護和管管理用于于軟件開開發(fā)過程程中的::硬件和軟軟件的基基礎設施施;軟件開發(fā)發(fā)工具和和方法;;開發(fā)技術術、技技術規(guī)范范和標準準;其他活動動的其他他基礎設設施。56軟件工程程工具和和方法編程依賴賴環(huán)境,,環(huán)境由由開發(fā)工工具組成成(如編編譯器、、連接器器、加載載和運行行工具、、排錯、、信息顯顯示及編編輯工具具)。稱稱為最小小環(huán)境工工具集。。70年代中期期,軟件工程程師迫于于軟件危危機的壓壓力,提出了計計算機輔輔助軟件件工程(CASE)的設想,開發(fā)出一一系列工工具盡量量使軟件件過程的的各項活活動自動動化、半半自動化化。相應問題題:工具具日益增增多,給使用者者帶來不不便,例如,各各工具的的使用方方法、格格式、參參數等差差異的問問題。這這就在客客觀上產產生了對對于集成成的CASE工具的需需求。57計算機輔輔助軟件件工程CASE人們期望望借助CASE工具,使使得軟件件開發(fā)可可以像在在自動流流水線上上生產計計算機那那樣生產產。CASE工具應具具有的特特征:支持專用用的個人人計算環(huán)環(huán)境;使用圖形形功能對對軟件系系統(tǒng)進行行說明并并建立文文檔;將生命周周期各階階段的工工作連接接在一起起;收集和連連接軟件件系統(tǒng)從從最初的的軟件需需求到軟軟件維護護各個環(huán)環(huán)節(jié)的所所有信息息;用人工智智能實現(xiàn)現(xiàn)軟件開開發(fā)和維維護工作作的自動動化。信息工程程工具過程模型型和管理理工具項目計劃劃工具風險分析析工具項目管理理工具需求追蹤蹤工具度量和管管理工具具文檔工具具系統(tǒng)軟件件工具質量保證證工具數據庫管管理工具具58改進改進活動動的基本本內容有有:對整個軟軟件生存存過程進進行評估估;對現(xiàn)行過過程進行行度量;;對現(xiàn)行過過程進行行改進。。59培訓為了使用用戶能夠夠盡快掌掌握使用用軟件系系統(tǒng),要要對用戶戶進行培培訓?;顒影ɡǎ褐贫ㄅ嘤栍栍媱?。。編寫培訓訓教材。。實施培訓訓計劃。。601.2..5軟件工程程方法學學通常把在在軟件生生命周期期全過程程中使用用的一整整套技術術方法的的集合稱稱為方法法學,也稱為范范型。軟件工程程方法學學包括3個要素::方法、工工具和過過程。這三者之之間是相相互聯(lián)系系的。方方法是回回答“怎怎樣做””的問題題;工具具是為運運用方法法而提供供的軟件件支撐環(huán)環(huán)境;過過程是為為了獲得得高質量量的軟件件所需完完成的一一系列任任務的框框架,它它規(guī)定了了完成各各項任務務的工作作步驟。。61軟件工程程的基本本問題軟件工程程開發(fā)技技術的角角度軟件工程程開發(fā)技技術思想與原原則過程方法工具解決軟件工程程的三目目標質量成本進度62傳統(tǒng)方法法學傳統(tǒng)方法法學是建建立在軟軟件生存存周期方方法學和和結構化化方法學學的基礎礎上。因因此,具具有明顯顯的那個個時代的的特點。。70年代,計計算機技技術水平平不高,,開發(fā)工工具少而而且性能能差。對于大型型復雜問問題的求求解,人人們不得得不采用用“將大大化小““、“將將難化簡簡”,最最后“分分而治之之”的開開發(fā)策略略。63結構化方方法概述述結構化方方法是由由下列過過程組成成:結構化分分析方法法SA結構化設設計方法法SD結構化程程序設計計方法SP方法的核核心是::基于功能能分解的的模塊化化層次結結構方法法。64結構化分分析SA自頂向下下逐步求精精模塊化設設計結構化分分析的要要點是::將大問題題化為小小問題,,找出關關鍵點、、難點,,定量描描述;核心是::分解;手段是::模塊化。65結構化設設計SD模塊化結結構模塊獨立立性結構化設設計方法法的要點點是:將將系統(tǒng)設設計成由由相對獨獨立、單單一功能能的模塊塊組成的的軟件結結構。模模塊獨立立性用模模塊內的的內聚性性和模塊塊間的耦耦合性來來衡量。。66結構化程程序設計計SP自頂向下下逐步加加細;模塊只有有一個入入口,一一個出口口;三種基本本結構;;開發(fā)支持持庫;主程序員員組結構化程程序設計計方法SP的要點是是用三種種基本結結構的語語句編寫寫只有一一個入口口和一個個出口的的模塊程程序,盡盡可能地地采用重重用程序序,開發(fā)發(fā)組織形形式為主主程序員員組。67傳統(tǒng)方法法學的缺缺點過分強調調了分階階段實施施,使得得開發(fā)過過程各個個階段之之間存在在嚴重的的順序性性和依賴賴性;很難將一一個復雜雜的問題題化簡、、分解;;設計方法法存在很很大的主主觀隨意意性;基于功能能分解的的系統(tǒng)結結構難于于修改和和擴充;;思維成果果的可重重用性很很差;數據和對對數據的的處理是是分離的的;忽視了人人在軟件件開發(fā)過過程中的的地位和和作用。。68現(xiàn)代方法法學現(xiàn)代方法法學是在在傳統(tǒng)方方法學的的基礎上上,為了了強調人人在軟件件開發(fā)中中的作用用,同時時為了適適應軟件件新技術術的發(fā)展展趨勢而而提出的的。其基基本要點點是:⑴軟件件開發(fā)過過程是以以人為主主,充分分利用軟軟件開發(fā)發(fā)方法及及軟件開開發(fā)工具具;⑵開發(fā)發(fā)人員的的組織管管理對軟軟件開發(fā)發(fā)成功與與否至關關重要;;⑶基于于軟件組組件的軟軟件開發(fā)發(fā)技術。。⑷由于于軟件組組件是標標準化設設計、成成品化生生產的,,極易構構造使用用,從而而大大簡簡化了設設計、編編程、測測試各個個環(huán)節(jié)的的工作量量,提高高了生產產效率和和產品質質量。69現(xiàn)代方法法學中生生命周期期在現(xiàn)代方方法學中中軟件生生命周期期的階段段劃分::系統(tǒng)分析析系統(tǒng)構造造系統(tǒng)測試試軟件組件件70面向對象象方法學學為克服““軟件危危機”帶帶來的災災難,業(yè)業(yè)界人士士研究、、探索出出的一種種新方法法。當面向對對象(OO)思想和方方法一經經出現(xiàn),,就引起起計算機機業(yè)界的的極大關關注,使使得對這這種新方方法的研研究和應應用得到到迅速發(fā)發(fā)展。OO方法將客客觀世界界看成是是由許多多不同種種類的對對象構成成。通過過分析、、研究客客觀世界界中的實實體、實實體的屬屬性及其其相互關關系,從從中抽象象出求解解問題的的對象,,最后求求解這些些對象,,得到問問題的解解。這一過程程更接近近人類認認識問題題、解決決問題的的思維方方式,使使得計算算機求解解的對象象與客觀觀事物具具有一一一對應的的關系。。71對象(Object)標識用來區(qū)別別其它對對象;狀態(tài)用來描述述對象的的屬性,,用數據據成員來來表示;;行為對對象的的操作,,用于改改變對象象的狀態(tài)態(tài);行為分兩兩類:自身所承承受的操操作施加于其其它對象象的操作作例如,一一個人叫叫王東,,男,1.80M,68kg,會修電器器,可教計算算機課。。描述如如下:對象名名:王東對象狀態(tài)態(tài):性別:男男身身高:1.80m體重:68kg對象功能能:回答身高高、體重重、性別別(屬于自自身所承承受的操操作)修理電器器、教計計算機課課程(屬于施施加于其其它對象象的操作作)72類(Class)人們習慣慣于把有有相似特特征的事事物歸為為一類,,分類是是人類認認識客觀觀世界的的基本方方法。在在OO方法中,,“類””就是對對具有相相同數據據和操作作的一組組相似對對象的定定義。例如,““人“類類,可以以是黑人人、白人人,可以以是教師師、工人人等,他他們具有有相同的的人類特特征和行行為特征征。類是OO技術中最最重要的的概念。。OO方法中所所有的操操作都可可歸結為為對類的的操作。。73C++中對象類類的定義義舉例CLASSperson{{Private:&&私有數據據和操作作charname[[20]];intage;;cahraddress[40];charsex[10];;voidPrintName();;viodPrintAge();;voidPrintAddress();;voidPrintSex();;Public::&&公有操作作voidPrint()){PrintName();;PrintAge();;PrintAddress();;PrintSex();;}}};結構特征征數據成員員行為特征征成員函數數74繼承性舉舉例在“人””類中,,大學生生可以繼繼承“人人”和““學生””的特征征(繼承承傳遞));對于于在職研研究生既既可以繼繼承“學學生”特特征,又又可以繼繼承“教教師”特特征(多多重繼承承)。人身份證號號:姓名:學號:校名學生大學生專業(yè):班級:身份證號號:xxxxxxx姓名:劉劉小明學生:學生:9601078校名:西西安交通通大學大學生::專業(yè):計計算機班級:962班班人:75消息(Message)在面向對對象的技技術中,,消息是是對象之之間相互互請求或或相互協(xié)協(xié)作的惟惟一途徑徑。對象象間的聯(lián)聯(lián)系,只只能通過過傳遞消消息來進進行。對對象也只只能在收收到消息息時,才才被激活活。前例中人人的對象象——王東。他他可以修修理電器器、講計計算機課課;這是是他為別別人可提提供的服服務。但但是,他他什么時時候修理理電器,,什么時時候講課課,都要要得到其其他對象象的請求求后才進進行。76什么是OO方法現(xiàn)在比較較一致的的看法是是:OO方法是基基于“對對象、類類、繼承承性、消消息機制制、多態(tài)態(tài)性等技技術特征征”的構構造軟件件系統(tǒng)的的開發(fā)方方法。OO方法具有有以下幾幾個要點點:⑴把對對象作為為一種統(tǒng)統(tǒng)一的軟軟件構件件,它將將數據及及在數據據上的操操作行為為融合為為一體。。OO方法處理理的基本本元素是是對象;;程序是是由對象象組成的的,復雜雜的對象象是由簡簡單的對對象組合合而形成成的。⑵把所所有對象象都用類類來表示示;每個個類都有有自己的的屬性和和方法,,具體的的對象只只是類中中的一個個實例。。⑶類具具有層次次結構,,子類可可以繼承承父類的的特性和和方法((繼承性性);⑷對象象之間只只能通過過傳遞消消息構成成相互之之間的聯(lián)聯(lián)系(消消息機制制)。77OO方法的主主要優(yōu)點點⑴與人人類習慣慣的思維維方式一一致⑵穩(wěn)定定性好⑶可重重用性好好⑷可維維護性好好78軟件工程程模型1瀑布模型型2增量模型型3螺旋模型型4噴泉模型型5基于知識識的模型型6面向對象象模型79①瀑布模型型瀑布模型型是上個個世紀80年代廣泛泛應用的的一種模模型,至至今仍然然是最廣廣泛使用用的過程程模型之之一。在在應用程的應用用模式也也稱為軟軟件生存存周期模模式(B.W..Boehm提出的該該模型))。80瀑布模型型示意圖圖
需求分析析7%系統(tǒng)設計計6%軟件編程程7%軟件測試試13%%軟件維護護67%%用戶要求求分析報告告系統(tǒng)設計計報告源程序測試報告告更改要求求UAMATMMPUTPUAMPA系統(tǒng)分析析員M項目管理理員P程序員T高級程序序員U用戶81瀑布模型型的特點點瀑布模型型具有順序性和依賴性,即后一階階段工作作必須在在前一階階段工作作完成后后才能開開始。推遲實現(xiàn)現(xiàn)的觀點點;把邏輯設設計與物物理設計計清楚地地劃分開開,盡可可能推遲遲物理模模型的實實現(xiàn),這是瀑布布模型的的重要指指導思想想。質量保證證的觀點點。瀑布模模型強調調的是優(yōu)優(yōu)質,即即每一步步都循序序漸進,,及早消消除隱患患,從而而保證軟軟件質量量。致命缺點是只有做出出精確的的需求分分析,才才能取得得預期的的結果。。由于各各種客觀觀、主觀觀的原因因,需求求分析往往往不很很精確,,常常給給日后的的開發(fā)帶帶來隱患患。82②原型模模型—樣品模型型原型模型型的主要思想想:先借用已已有系統(tǒng)統(tǒng)作為原原型模型型,通過過“樣品”不斷改改進,使使得最后后的產品品就是用用戶所需需要的。。原形模型型的特點:⑴開發(fā)人人員和用用戶在““原型”上達成成一致。。這樣可可以減少少設計中中的錯誤誤和開發(fā)發(fā)中的風風險,以以及對用用戶培訓訓的時間間,而提提高了系系統(tǒng)的實實用、正正確性以以及用戶戶的滿意意程度。。⑵縮短開開發(fā)周期期,加快快工程進進度。⑶降低成成本。原型模型型的缺點:當告訴用用戶,還還必須重重新生產產該產品品時,用用戶是很很難接受受的。這這往往給給工程繼繼續(xù)開展展帶來不不利因素素。83快速原型型模型
分析原型樣品模型設計編程測試使用修改與改進在系統(tǒng)分分析與設計中,,采用交互式,,反復修改與不不斷改進的方式式進行。。還有的把把原型模模式嵌套套在瀑布布模型中中運用。。84③增量模模型也稱漸增增模型。。它把軟軟件產品品作為一一系列的的增量構構件來設設計、編編碼、集集成和測測試。增量模型型是一種種非整體體開發(fā)的的模型。。軟件在在該模型型中是““逐漸””開發(fā)出出來的,,開發(fā)出出一部分分,向用用戶展示示一部分分,讓用用戶及早早看到部部分軟件件,及早早發(fā)現(xiàn)問問題。或者先開開發(fā)一個個“原型型”軟件件,完成成部分主主要功能能,展示示給用戶戶征求意意見,然然后逐步步完善,,最終后后的滿意意的軟件件產品。。該模型具具有較大大的靈活活性,適適合于軟軟件需求求不明確確、設計計方案有有一定風風險的軟軟件項目目。缺點:要求軟軟件具有有開放的的結構是是這種模模型固有有的困難難。85④螺旋模模型將工程劃劃分為4個主要活活動:制定計劃劃、風險分析析、實現(xiàn)工程程和用戶評價價。4個活動螺螺旋式地地重復執(zhí)執(zhí)行,直直到最終終得到用用戶認可可的產品品。制定計劃劃:確定軟軟件目標標,選定實施施方案,弄清項目目開發(fā)限限制條件件。風險分析析:分析可選選方案,分析識別別風險,研究解決決化解風風險的辦辦法。實現(xiàn)工程程:實施軟件件產品的的開發(fā)。。用戶評價價:對當前工工作結果果進行評評價,提提出改進進產品的的建議。。螺旋模型型的缺點:很難讓用用戶確信信這種演演化方法法的結果果是可以以控制的的。86螺旋模型型的缺陷陷建立在風風險分析析的基礎礎上需要有一一個非常常有經驗驗的小組組來準確確地分析析和檢測測風險絕對依賴賴人的素素質(本身就是是冒險!)不適合新新手開發(fā)中的的每一層層都很有有彈性,,并不是是很明確確的界限限每一層的的目標和和計劃都都是由小小組本身身來制定定。要求求有經驗驗的人來來組成。87⑤智能模模型也稱基于于知識的的軟件開開發(fā)模型型,它與與專家系系統(tǒng)結合合在一起起。該模型在在實施過過程中要要建立知知識庫,,將模型型本身、、軟件工工程知識識與特定定領域的的知識分分別存入入數據庫庫。以軟軟件工程程知識為為基礎的的生成規(guī)規(guī)則構成成的專家家系統(tǒng)與與含應用用領域知知識規(guī)則則的其他他專家系系統(tǒng)相結結合,構構成這一一應用領領域的軟軟件開發(fā)發(fā)系統(tǒng)。。88⑥面向對對象的開開發(fā)模型型其主導思思想是::在整個個軟件開開發(fā)過程程中將面面向對象象技術貫貫穿于整整個生存存周期。。當然,,還要結結合傳統(tǒng)統(tǒng)開發(fā)模模式中好好的、已已被無數數成功開開發(fā)活動動證明是是可行的的經驗和和技術。。具備3個個主要的的階段:分析:模擬“關鍵系統(tǒng)統(tǒng)”來表示用用戶要求求,并設計獨獨立實現(xiàn)現(xiàn)的“關鍵類”。設計:限制并優(yōu)優(yōu)化關鍵鍵類,在在特定的的環(huán)境中中實現(xiàn),,得到另另外的類類。實現(xiàn):定義類的的接口和和實現(xiàn)方方法,然后編寫寫并統(tǒng)一一測試所所有的類類。89面向對象象開發(fā)的的缺陷還不成熟熟幾個有影影響的面面向對象象開發(fā)的的過程對對不同的的步驟意意見不一一。在大的項項目上經經驗不多多,在小小項目上上尚可。。在每個過過程步上上細節(jié)少少,新手手難于理理解。晚期的測測試開發(fā)過程程沒有中中間的版版本,幾幾乎所有有的測試試都留在在最后的的實現(xiàn)階階段。結構上的的死板假設所有有的結構構設計都都定義好好在要求求階段,,對于設設計和實實現(xiàn)階段段基本上上沒有結結構上變變化的余余地。.90開發(fā)流程程模型的的比較線性有序序模型(瀑布模型型)結構性好好基于原型型模型需要在短短時間內內建立原原型系統(tǒng)統(tǒng)在系統(tǒng)要要求模糊糊或者未未知時較較有效重復使用用模型假如條件件適合,,是開發(fā)發(fā)速度最最快的模模型積累模型型容許早期期測試和和用戶反反饋螺旋模型型適于大規(guī)規(guī)模系統(tǒng)統(tǒng)91軟件工程程前景軟件學科科的核心心問題是是“如何何提高軟軟件的生生產效率率和運行行效率””。在對提高高運行效效率問題題的研究究上,人人們已經經探索出出一條有有效的途途徑并取取得重大大成果。。表現(xiàn)在在:⑴集成成電路技技術、計計算機體體系結構構技術和和計算機機網絡技技術的發(fā)發(fā)展,為為軟件系系統(tǒng)的運運行提供供了日益益強大的的硬件基基礎設施施,極大大地提高高了軟件件運行的的效率。。在此方方面目前前的研究究熱點是是高性能能計算和和高性能能網絡。。⑵軟件件學科的的并行計計算和分分布計算算理論的的新進展展也在很很大程度度上解決決了提高高運行效效率的問問題。近近十年來來研究的的熱點是是系統(tǒng)軟軟件技術術和中間間件技術術。92提高軟件件生產效效率的方方法研究途徑徑分分理理論方法法和技術術方法::技術方法法主要是是以美國國軟件產產業(yè)為代代表。它它以“軟軟件工廠廠”為目目標來提提高軟件件的生產產效率。。主要辦辦法是提提高軟件件的可重重用性。。面向對象象方法是是解決軟軟件危機機,提高高軟件開開發(fā)效率率和質量量的有效效途徑,,是一種種社會化化的方法法,有助助于軟件件工程化化、工廠廠化生產產的實現(xiàn)現(xiàn)。這種種方法在在近二十十年來處處于主導導地位,,也使美美國的軟軟件業(yè)在在全球領領先。理論方法法是以西西歐的學學術界為為首的形形式化方方法,即即純自動動化方法法。它以以精確的的語義描描述軟件件系統(tǒng),,在此基基礎上進進行自動動生成、、轉化及及驗證。。此方法法提出來來很早,,但難度度很大,,大部分分處于原原型討論論,離實實用還有有很大差差距。這兩種方方法的優(yōu)優(yōu)、缺點點很明顯顯。技術術的方法法實用性性很強,,得到了了產業(yè)界界的大力力擁護。。但是隨隨著軟件件的規(guī)模模越來越越大,復復雜度越越來越高高,很難難保證軟軟件的可可靠性和和軟件的的開發(fā)效效率。理理論的方方法則實實用性差差,很難難投入實實際應用用。93軟件工程程主要技技術發(fā)展展趨勢1.基于軟軟件復用用庫的軟軟件重用用2.面向對對象技術術3.針對幾幾種中間間件平臺臺開發(fā)組組件交互互的標準準和基于于組件的的軟件開開發(fā)94歡迎參加加計教中中心網站站的學習習討論。。中心網址址:http://ctec.xjtu..教學資源源地址:http:///202.117..35..160/moodle我的E-mail地址:lzq@@謝謝,再再見!95經典的設設計準則則模塊化準準則模塊獨立立性準則則模塊的內內聚性模塊的耦耦合性軟件的結結構準則則96模塊化準準則設C(X)是關于問問題X的復雜性性,E(X)是完成問問題X的工作量量,有兩兩個問題題P1和P2:若C(P1)>C((P2)),((即P1比P2復雜)E(P1)>>E((P2)),((即P1比P2用的工作作量多)而C(P1+P2)>>C((P1))+C(P2),,(即組合問題題比單個個問題復復雜)則E(P1+P2)>>E((P1))+E(P2)(組合問題題的工作作量大于于單個問問題的工工作量之之和)這說明:軟件分解解為若個個模塊后后,則總的工工作量減減少,但但并不是是說,模模塊分解解的越多多,工作作量就一一定越少少。因為為分解到到一定程程度后,,模塊之之間的接接口工作作量就上上升,從從而使總總的代價價上升。。97模塊化準準則示意意圖
開發(fā)代價價模塊數模塊代價價接口代價價軟件成本本M最小區(qū)域—End—98模塊獨立立性準則則模塊獨立立性是指指開發(fā)具具有功能能專一、、模塊之之間無過過多相互互作用的的模塊。。具有獨獨立性的的模塊,,開發(fā)容容易、能能減少錯錯誤的傳傳播,使使模塊重重組、分分解方便便,容易易調試和和維護。。度量模塊塊的獨立立性標準準:模塊間的的藕合性性越小,,獨立性性越強模塊的內內聚性越越大,獨獨立性越越強—End—99軟件結構構準則好的軟件件結構應應具有倒倒置水缸缸形,在在頂部有有較高的的扇出數(一個模模塊直接接下屬的的子模塊塊數),,在底部部有較高高的扇入數(模塊的的直接上上屬模塊塊的個數數)。示意圖100結構形態(tài)態(tài)準則示示意圖
深度寬度扇出扇入—End—101層次圖層次圖用用來描述述軟件的的層次結結構。這這種工具具很適合合在自頂頂向下設設計軟件件的過程程中使用用。正文加工工系統(tǒng)輸入輸出編輯加標題存儲檢索編目錄格式化添加刪除插入修改合并列表銷售管理理系統(tǒng)的H圖—End—102HIPO圖HIPO圖是美美國IBM公司司發(fā)明的的“層次次圖加IPO圖圖”的英英文縮寫寫。為了了使HIPO圖圖具有可可追蹤性性,在層層次圖內內的每個個方框內內加入編編號(頂頂層框除除外)。。編號反反映了模模塊在不不同層次次中的位位置。正文加工工系統(tǒng)輸入1.0輸出2.0編輯3.0加標題4.0存儲5.0檢索6.0編目錄7.0格式化8.0添加3.1刪除3.2插入3.3修改3.4合并3.5列表3.6—End—103IPO圖圖IPO圖是“輸輸入|處理|輸出”圖圖的簡稱稱,它是是美國IBM公司發(fā)展展完善起起來的一一種圖形形工具,,它可以以方便地地描述輸輸入數據據、數據據處理和和輸出數數據之間間的關系系。IPO圖用法::左邊框是是輸入數數據中間框是是數據處處理右邊框是是輸出數數據粗箭頭指指出數據據流動情情況104IPO圖舉例主文件更更新。舊的主文件事物文件1.校驗主記錄2.校驗事物記錄3.更新主記錄有效的主記錄有效的事物記錄更新后的主文件輸入處理輸出105改進的IPO圖改進的IPO圖包含了了一些附附加信息息,主要要是使IPO圖描述的的問題更更加清晰晰。增加的附附加信息息有:系統(tǒng)名稱稱圖的作者者完成日期期描述的模模塊名稱稱模塊在層層次結構構中的編編號調用本模模塊的模模塊清單單模塊內使使用的局局部數據據元素等等106改進的IPO圖舉例
系統(tǒng):___________作作者:______________模塊:___________日日期:______________編號:___________被調用:調用:注釋:局部數據據元素::處理:輸入:輸出:確定能否否供貨的的IPO圖—End—107數據流圖圖的符號號它有四種種基本符符號:SPX數據源及及數據終終點加工對數據的的加工或或變換,,指向加加工的數據流是是輸入數數據;離離開的是是輸出數數據。數據流具具有名字字且有流流向的數數據文件存存放放數據的的場所108舉例——賓館管理理系統(tǒng)
客人預訂登錄房管客人信息息庫可售房庫庫售出房庫庫客帳庫公安預付款財務IDD—End—109流程圖用圖形描描述問題題的處理理過程的的工具即即用一些些約定的的幾何圖圖形來描描述算法法。傳統(tǒng)流程程圖(的的符號及及意義))圓邊框工工作的開開始或停停止平行四邊邊形框輸輸入入或輸出出判斷框邏邏輯判判斷或檢檢查矩形框各各種處處理功能能箭頭線流流程程的路線線圓圈連連接接點110
開始輸入x,yX=0輸出錯誤誤信息z=y//x輸出z結束YN例:計算算z=y//x并輸出z—End—111NS圖NS圖是以年年美國學學者I.Nassi和B.Schneiderman的名字命命名的。。它是根根據1977年這兩位位計算機機科學家家提出的的一種適適合于結結構化設設計的流流程圖。。而命名名。它的主要要特點是是取消了了流程線線,即規(guī)規(guī)定了幾幾種基本本結構作作為構造造算法的的基本單單元。112NS圖基本單元元順序結構構A塊B塊選擇結構構滿足條件P不滿足A塊B塊CASE條件值1值2值n……Case1部分Case2部分Casen部分……113NS圖基本單單元(續(xù)續(xù))循環(huán)結構構直到條件件滿不足足為止執(zhí)行A塊當條件滿滿足時執(zhí)行A塊條件P?執(zhí)行A塊成立
條件P?不成立條件P?執(zhí)行A塊成立不成立114NS圖基本單單元(續(xù)續(xù))調用子程程序A綜合舉例例輸入10個數,,求其均值值。N=0,,SUM=0,,X=0當N<<10輸入X的值SUM==SUM+XN=N++1AVER=SUM/10輸出AVER值—End—115PAD圖圖PAD是問題分分析圖((ProgramAnalysisDiagram)的英文縮縮寫,1973年由日本本日立公公司發(fā)明明并推廣廣。它也也是一種種二維圖圖形的表表示方法法,是從從左到右右生長和和求精的的。116PAD圖的基本符號號PAD有三種表表示符號號:A塊B塊C塊輸入處理輸出依順序執(zhí)執(zhí)行輸入入、處理、、輸出條件CA塊條件C成立執(zhí)行A塊否則,執(zhí)行B塊。B塊選擇結構構順序結構構循環(huán)執(zhí)行A塊條件成立立,循環(huán)執(zhí)行行A塊。循環(huán)結構構117PAD圖舉例輸入10個數,求求并打印印其均值值。AVER=SUM/10WHILEN<10SUM==SUM+X置初值SUM==0,N=0輸入XN=N++1輸出AVER—End—118過程設計計語言PDLPDL(ProgramDesignLanguage)是過程設設計語言言的英文文縮寫,,也稱偽偽碼。PDL和結構英英語相似似,它把把結構程程序設計計的基本本元素和和英語結結合在一一起。允許程序序員按求求解的問問題思考考,用與與高級語語言無關關的方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學年吉林省四平市鐵西區(qū)某中學高二上學期開學英語試卷(解析版)
- 2025年河北邢臺內丘縣人力資源和社會保障局就業(yè)見習245個崗位考前自測高頻考點模擬試題及答案詳解(易錯題)
- 2025湖北武漢市中南財經政法大學教師招錄模擬試卷及答案詳解(全優(yōu))
- 企業(yè)文化建設方案模板跨行業(yè)
- 2025內蒙古鄂爾多斯市水發(fā)燃氣有限公司招聘6人模擬試卷及完整答案詳解1套
- 《初中物理力學平衡原理及其應用教案》
- 2025貴州安順學院高層次人才引進考前自測高頻考點模擬試題及答案詳解(必刷)
- 2025湖南懷化市溆浦縣衛(wèi)健局招聘鄉(xiāng)鎮(zhèn)衛(wèi)生院編外專技人員20人考前自測高頻考點模擬試題附答案詳解(突破訓練)
- 企業(yè)知識產權保護登記及維護方案
- 2025黑龍江齊齊哈爾市訥河市發(fā)展和改革局所屬事業(yè)單位選調9人考前自測高頻考點模擬試題及答案詳解(歷年真題)
- 2025教科版三年級科學上冊教學計劃、教學設計(附目錄)
- 木質素降解微生物促進秸稈飼料化營養(yǎng)價值提升的機制研究
- 深圳2025中考英語真題及答案
- 全科醫(yī)學進修匯報
- 六年級下學期英語期末考試質量分析
- 三基培訓及知識課件
- 監(jiān)控運維:方案與實施
- 河南歷史課件
- 全國青少年“學憲法、講憲法”知識競賽題庫及答案
- 單元四-一般道路駕駛(教案)
- 油庫消防培訓課件
評論
0/150
提交評論