版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)10.用計算機解決問題的步驟
利用計算機解決一個問題時,一般情況要經(jīng)過如下步驟:抽象:數(shù)學(xué)化—模型化;算法:列出求解步驟—步驟化;編成:用計算機描述算法—代碼化;運行:編輯、調(diào)試和測試—實施。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)21.算法算法的定義;算法的要滿足的條件;算法的評價;算法的設(shè)計要求;算法的表示。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)3算法的定義算法的定義:
算法:是對特定求解步驟地一種描述。 是指令的有限序列。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)4算法的要滿足的5個條件算法的要滿足的5個條件:有窮性:確定性:輸入:輸出:可行性:2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)5算法的評價算法的評價: 算法的時間復(fù)雜度—語句重復(fù)次數(shù);T(n)
算法的空間復(fù)雜度—內(nèi)存占用量;S(n)
算法的可讀性—用于交流—便于理解2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)6算法的設(shè)計要求算法設(shè)計的要求:正確:首要條件;合法輸入—正確結(jié)果可讀:便于閱讀交流;算法—程序健壯:滿足各種情況;高效:效率要高—空間、時間2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)7算法的表示算法的表示:自然語言:流程圖;算法描述語言:2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)8(1)輸入n的值(2)2=>i(i作除數(shù))(3)n被i除得余數(shù)r(4)若r=0,表示n能被i整除,則打印“n不是素數(shù)”,算法結(jié)束;否則執(zhí)行(5)(5)i+1=>i(6)若i<=n-1,返回(3);否則打印“n是素數(shù)”,然后結(jié)束自然語言描述例如:判斷正整數(shù)n(n≥3)是不是質(zhì)數(shù)。用算法描述語言描述其算法如下。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)9傳統(tǒng)流程圖表示法例如:判斷正整數(shù)n(n≥3)是不是質(zhì)數(shù)。用算法描述語言描述其算法如下。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)10例如:判斷正整數(shù)n(n≥3)是不是質(zhì)數(shù)。用算法描述語言描述其算法如下。BEGIN(算法開始)輸入正整數(shù)n;i=2;f=1;do{r=n%i;if(r==0)f=0;i=i+1;}while(i<=n-1);if(f==0)輸出“n不是質(zhì)數(shù)”;else輸出“n是質(zhì)數(shù)”;END(算法結(jié)束)算法描述語言2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)112.程序設(shè)計程序:是解決特定問題的指令序列。程序設(shè)計語言:是描述計算機所執(zhí)行的操作的語言。程序設(shè)計:是指使用程序語言產(chǎn)生程序的過程。程序設(shè)計所涉及的問題:不是簡單的代碼編寫過程。程序設(shè)計的分類:結(jié)構(gòu)化(解決簡單問題—過程)和面向?qū)ο?解決復(fù)雜問題—抽象)2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)12程序設(shè)計所涉及的問題程序設(shè)計所涉及的問題:語言的選擇;設(shè)計風(fēng)格;算法;邏輯結(jié)構(gòu);2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)13結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu):structure,各個組成部分的搭配和排列。結(jié)構(gòu)化程序設(shè)計:是進行以模塊功能和處理過程設(shè)計為主的詳細設(shè)計的基本原則。
分類:順序:先后順序,自然順序選擇:分支結(jié)構(gòu);循環(huán):重復(fù)結(jié)構(gòu);2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)14面向?qū)ο蠡绦蛟O(shè)計結(jié)構(gòu)化程序設(shè)計方法可以解決中小規(guī)模的問題,解決較復(fù)雜的問題比較困難,在此基礎(chǔ)上產(chǎn)生了新的方法—面向?qū)ο蟮某绦蛟O(shè)計方法。面向?qū)ο蟪绦蛟O(shè)計的基本概念:對象和類、封裝性、繼承性、多態(tài)性2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)15多態(tài)性多態(tài)性(多形性)
多態(tài)性使指相同的操作或函數(shù)、過程可作用于多種類型的對象上并獲得不同的結(jié)果。不同的對象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。
多態(tài)性允許每個對象以適合自身的方式去響應(yīng)共同的消息。
多態(tài)性增強了軟件的靈活性和重用性。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)16繼承性繼承性是子類自動共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機制,這是類之間的一種關(guān)系。在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)之上來進行,把這個已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)17封裝性封裝性(信息隱藏) 是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ)。面向?qū)ο蟮念愂欠庋b良好的模塊,類定義將其說明(用戶可見的外部接口)與實現(xiàn)(用戶不可見的內(nèi)部實現(xiàn))顯式地分開,其內(nèi)部實現(xiàn)按其具體定義的作用域提供保護。對象是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。面向?qū)ο蟮姆庋b比傳統(tǒng)語言的封裝更為清晰、更為有力。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)18對象和類對象:object,是人們要進行研究的任何事物,從最簡單的整數(shù)到復(fù)雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件。男女朋友;行為或思考時作為目標的人或事。具有狀態(tài)、屬性和行為。類:是對象的定義;是對具有相同行為和屬性的對象的抽象和描述。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)193.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):基本概念;數(shù)據(jù)結(jié)構(gòu)的分類線性表堆棧隊列串數(shù)組樹二叉樹圖線性結(jié)構(gòu)非線性結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)DS2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)20基本概念數(shù)據(jù)(Data):是對客觀事物的物理符號表示。數(shù)據(jù)項(DataItem):也稱為字段、域、屬性。數(shù)據(jù)元素(Element):是數(shù)據(jù)的基本單位—由若干數(shù)據(jù)項組成。數(shù)據(jù)對象(DataObject):是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。數(shù)據(jù)結(jié)構(gòu)2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)21數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):是指相互之間存在一種或多種關(guān)系的數(shù)據(jù)元素的集合。 數(shù)據(jù)結(jié)構(gòu)是帶有結(jié)構(gòu)特征的數(shù)據(jù)元素的集合,三要素:
DS=數(shù)據(jù)的邏輯結(jié)構(gòu)+存儲結(jié)構(gòu)+數(shù)據(jù)的運算 按某種邏輯關(guān)系組織起來的一批數(shù)據(jù),按一定的存儲方式把它存儲在計算機存儲器中,并在這些數(shù)據(jù)上定義了一個運算的集合,叫做一個數(shù)據(jù)結(jié)構(gòu)(DataStructures)。2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)224.軟件工程軟件危機軟件工程的定義軟件生命周期結(jié)構(gòu)化方法學(xué)面向?qū)ο蠓椒▽W(xué)2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)23軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。這些嚴重的問題阻礙著軟件生產(chǎn)的規(guī)模化、商品化以及生產(chǎn)效率。使得軟件的開發(fā)和生產(chǎn)成為制約軟件產(chǎn)業(yè)發(fā)展的“瓶徑”。危機的由來軟件危機(SoftwareCrisis)2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)24硬件生產(chǎn)率大幅提高軟件規(guī)模越來越大軟件生產(chǎn)率很低硬、軟件供需失衡矛盾引發(fā)“軟件危機”軟件危機的由來2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)25軟件工程的定義軟件工程是包含軟件開發(fā)一切流程的學(xué)科。它又是一門交叉學(xué)科;包括計算機科學(xué)、數(shù)學(xué)、工程學(xué)和管理等學(xué)科。主要研究:克服、解決“軟件危機”改進“軟件生產(chǎn)”的方法、工具提高軟件的生產(chǎn)率2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)26一個軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個時期被稱為軟件生命周期。軟件生命周期包括:可行性分析和項目開發(fā)計劃,需求分析,概要設(shè)計,詳細設(shè)計,編碼,測試,維護。生命周期大體分為三個時期:計劃時期(問題定義和可行性分析)、開發(fā)時期(需求分析、軟件設(shè)計(總體、詳細)、編碼、測試)和運行時期(軟件維護)。軟件生命周期2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)27
可行性研究的目的是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。必須記住,可行性研究的目的不是解決問題,而是確定問題是否值得去解。技術(shù)可行性:使用現(xiàn)有的技術(shù)能實現(xiàn)這個系統(tǒng)嗎?經(jīng)濟可行性:這個系統(tǒng)的經(jīng)濟效益能超過它的開發(fā)成本嗎?操作可行性:系統(tǒng)的操作方式在這個用戶組織內(nèi)行得通嗎?可行性研究2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)28
任務(wù)是:收集、分析、理解、確定用戶的要求;然后把用戶的要求精確、完整地描述表達出來。具體任務(wù)包括:確定對系統(tǒng)的綜合要求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型修正系統(tǒng)開發(fā)計劃階段結(jié)果,產(chǎn)生出:軟件計劃、需求說明書需求分析2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)29系統(tǒng)設(shè)計:確定系統(tǒng)的具體實現(xiàn)方案
結(jié)構(gòu)設(shè)計:確定軟件的結(jié)構(gòu)
在進行軟件設(shè)計過程中應(yīng)該遵循的基本原理和有關(guān)的概念:模塊化
抽象和逐步求精
信息屏蔽
模塊獨立
總體設(shè)計2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)30詳細設(shè)計是確定對目標系統(tǒng)的精確描述,也就是為軟件結(jié)構(gòu)圖中的每一個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計技術(shù)是軟件詳細設(shè)計的基礎(chǔ)。詳細設(shè)計階段通常使用的工具有程序流程圖、N-S盒圖、問題分析圖(PAD圖)、判定表、判定樹、過程設(shè)計語言(PDL)。詳細設(shè)計2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)31
編碼時將軟件設(shè)計的結(jié)果翻譯成用某種程序設(shè)計語言書寫的程序。程序的質(zhì)量基本上是由設(shè)計的質(zhì)量決定。但是編碼使用的語言,書寫程序的風(fēng)格和途徑也對程序的質(zhì)量有相當大的影響。在選擇程序設(shè)計語言時不僅要考慮程序設(shè)計語言本身的特點,還要考慮軟件使用環(huán)境等一系列實際因素。程序內(nèi)部良好的文檔資料,有規(guī)律的數(shù)據(jù)說明格式,簡單清晰的語句構(gòu)造和輸入/輸出格式等,都對提高程序的可讀性有很大作用,也在相當程度上改進了程序的可維護性。利用適當?shù)能浖ぞ咻o助編碼過程,可以提高生產(chǎn)率并減少程序中的差錯。編碼2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)32測試的目的就是在軟件投入運行之前,盡可能多地發(fā)現(xiàn)軟件中的錯誤。軟件測試是保證軟件質(zhì)量的關(guān)鍵步驟。軟件測試的方法有兩種:白盒測試和黑盒測試。黑盒測試,又稱功能測試,是指完全不考慮程序內(nèi)部的結(jié)構(gòu)和處理過程,只按照規(guī)格說明書的規(guī)定來檢查程序是否符合要求。白盒測試,又稱結(jié)構(gòu)測試,是指測試人員完全了解程序的內(nèi)部結(jié)構(gòu)和處理過程,測試時按照程序內(nèi)部的邏輯測試程序,檢驗程序中的每條通路是否都能按預(yù)定的要求正確工作。測試2023/12/6第九章軟件開發(fā)設(shè)計基礎(chǔ)33軟件的測試步驟模塊測試:又稱單元測試,是將每個模塊作為一個單獨的實體來測試。子系統(tǒng)測試:是將經(jīng)過單元測試的模塊放在一起形成一個子
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版數(shù)學(xué)一年級下冊教案
- 2024年游艇碼頭物業(yè)委托管理及船舶維護服務(wù)協(xié)議3篇
- 2024年甲乙雙方關(guān)于物聯(lián)網(wǎng)技術(shù)研發(fā)與推廣的合同
- 商場工作計劃模板七篇
- 減溫減壓閥行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 簡短的個人述職報告
- 2022新學(xué)期開學(xué)感悟(10篇)
- 以家為話題作文15篇
- 幼兒園大班體育教案教學(xué)
- 土木工程認知實習(xí)報告4篇
- 山東2022青島農(nóng)商銀行萊西支行行長社會招聘上岸提分題庫3套【500題帶答案含詳解】
- 2023-2024學(xué)年江蘇省啟東市小學(xué)語文五年級上冊期末通關(guān)考試題
- 設(shè)計中重點、難點及關(guān)鍵技術(shù)問題把握控制及相應(yīng)措施把握難點
- YY/T 0698.2-2009最終滅菌醫(yī)療器械包裝材料第2部分:滅菌包裹材料要求和試驗方法
- GB/T 1535-2017大豆油
- 《鄉(xiāng)鎮(zhèn)環(huán)境治理研究開題報告文獻綜述11000字》
- 植物細胞信號轉(zhuǎn)導(dǎo)課件
- 名著黑布林閱讀Treasure Island《金銀島》練習(xí)題(含答案)
- 第二章-地方理論-《旅游目的地管理》課件
- 河北省唐山市藥品零售藥店企業(yè)藥房名單目錄
- 水上運輸大型構(gòu)件安全交底
評論
0/150
提交評論