第10章程序設(shè)計(jì)基礎(chǔ).ppt_第1頁
第10章程序設(shè)計(jì)基礎(chǔ).ppt_第2頁
第10章程序設(shè)計(jì)基礎(chǔ).ppt_第3頁
第10章程序設(shè)計(jì)基礎(chǔ).ppt_第4頁
第10章程序設(shè)計(jì)基礎(chǔ).ppt_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章程序設(shè)計(jì)基礎(chǔ),本章教學(xué)目的:,了解程序設(shè)計(jì)的基本概念、思想和方法,為今后更好地學(xué)習(xí)程序設(shè)計(jì)語言打好基礎(chǔ)。,本章教學(xué)內(nèi)容:,程序設(shè)計(jì)語言概述2.程序:程序的類型及程序的執(zhí)行方式。3.軟件工程:目前軟件開發(fā)和維護(hù)的方法。4.軟件生命周期:軟件開發(fā)的具體步驟。,10.1程序設(shè)計(jì)語言概述,任何以計(jì)算機(jī)為處理工具的任務(wù)都是對處理對象和處理規(guī)則的完整描述,稱為程序。軟件是程序、數(shù)據(jù)及相關(guān)文檔的集合,是用戶與硬件之間的接口。,機(jī)器語言是計(jì)算機(jī)硬件系統(tǒng)能唯一識別并執(zhí)行的語言,計(jì)算機(jī)指令。計(jì)算機(jī)指令是硬件唯一能識別的、實(shí)現(xiàn)計(jì)算機(jī)基本功能的二進(jìn)制編碼,是指揮計(jì)算機(jī)工作的基本命令。指令:計(jì)算機(jī)指令是計(jì)算機(jī)執(zhí)行命令的最小功能單位,是指揮計(jì)算機(jī)工作的命令,是軟件與硬件的接口。,一般來說,指令由操作碼和操作數(shù)兩部分組成:操作碼用于指明操作,不同指令具有不同的操作碼。操作數(shù)可以是要操作的數(shù)據(jù)(稱為立即數(shù)),也可以是存放操作數(shù)的內(nèi)存單元地址或寄存器地址等。,2.指令系統(tǒng),指令系統(tǒng):一臺計(jì)算機(jī)中全部指令的集合構(gòu)成指令系統(tǒng)。一臺計(jì)算機(jī)的指令系統(tǒng)決定了它的基本性能,現(xiàn)代計(jì)算機(jī)一般都有幾十條到上百條指令。,早期計(jì)算機(jī),從簡化計(jì)算機(jī)硬件結(jié)構(gòu)和降低成本考慮,指令系統(tǒng)都比較簡單,指令條數(shù)少、功能弱。為增加計(jì)算機(jī)功能及縮小指令系統(tǒng)與高級程序設(shè)計(jì)語言之間的差異,人們研制了復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC,ComplexInstructionSetComputer)。CISC計(jì)算機(jī)指令條數(shù)多達(dá)二三百條,能直接處理多種數(shù)據(jù)類型。,RISC,ReducedInstructionSetComputer,指令系統(tǒng)具有指令少、功能簡單、指令執(zhí)行時(shí)間短等特點(diǎn),RISC成為計(jì)算機(jī)設(shè)計(jì)的主流。,10.1.2匯編語言,匯編語言:指令由英文單詞或縮寫構(gòu)成,用符號和十進(jìn)制數(shù)代替機(jī)器語言中的二進(jìn)制編碼,便于人們記憶和書寫。,101110000000100000000000000001010000011100000000,以計(jì)算A=8+7為例:,機(jī)器語言為:,匯編語言為:,MOVAX,8ADDAX,7,;將8存入累加器A中;7與累加器A中的內(nèi)容相加,;結(jié)果仍存放在A中,計(jì)算機(jī)程序設(shè)計(jì)語言總體上可以分為低級語言和高級語言兩大類,低級語言是指機(jī)器語言和匯編語言;低級語言的低級并不是說語言的功能性差,而是指與計(jì)算機(jī)硬件密切相關(guān),編寫程序難度較大。機(jī)器語言和匯編語言都與計(jì)算機(jī)類型有關(guān);匯編語言一般用于編制系統(tǒng)軟件和過程控制軟件,10.1.3結(jié)構(gòu)化程序設(shè)計(jì)語言,結(jié)構(gòu)化程序設(shè)計(jì)語言:脫離具體計(jì)算機(jī)硬件結(jié)構(gòu)的程序設(shè)計(jì)語言。程序設(shè)計(jì)的核心是數(shù)據(jù)結(jié)構(gòu)和算法;通過數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)的存儲形式;通過算法研究如何用快捷、高效的方法來組織解決問題的具體過程。,20世紀(jì)50年代后期,出現(xiàn)了許多脫離具體計(jì)算機(jī)硬件結(jié)構(gòu)的程序設(shè)計(jì)語言,人們稱之為高級程序設(shè)計(jì)語言。例如Basic、FORTRAN、Pascal等。例如,計(jì)算A=8+7并輸出結(jié)果的BASIC語言程序段如下:A=8+7PrintA,結(jié)構(gòu)化程序設(shè)計(jì)語言將注意力從機(jī)器轉(zhuǎn)移到問題本身,它致力于用計(jì)算機(jī)能理解的邏輯來描述解決問題的具體方法和步驟。面向過程的程序設(shè)計(jì)的核心是數(shù)據(jù)結(jié)構(gòu)和算法。通過數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)的存儲形式;通過算法研究如何用快捷、高效的方法來組織解決問題的具體過程。,1.結(jié)構(gòu)化程序設(shè)計(jì)語言的基本特征:,程序內(nèi)部結(jié)構(gòu)化:程序由順序、選擇(分支)和重復(fù)(循環(huán))3種結(jié)構(gòu)組成。程序模塊化:一個(gè)大程序由若干個(gè)功能獨(dú)立的、相互關(guān)聯(lián)的程序模塊(子程序、函數(shù)等)組成。程序模塊之間通過調(diào)用關(guān)系完成程序的整體功能??梢浦残院茫杭礊橐活愑?jì)算機(jī)設(shè)計(jì)的程序,經(jīng)少量改動(dòng)后可以在另一類計(jì)算機(jī)上運(yùn)行。與低級語言相比,結(jié)構(gòu)化程序具有較好的移植性。,具有代表性的結(jié)構(gòu)化程序設(shè)計(jì)語言:,FORTRAN語言:是FormulaTranslator的縮寫,在工程、數(shù)學(xué)和科學(xué)研究上是使用最廣泛的語言,尤其是在科學(xué)計(jì)算中發(fā)揮著極其重要的作用。Pascal語言:作為一門實(shí)用程序設(shè)計(jì)語言和教學(xué)工具,Pascal語言在高校計(jì)算機(jī)軟件教學(xué)中一直處于主導(dǎo)地位。C語言:適合于系統(tǒng)描述,可以用于編寫系統(tǒng)和應(yīng)用軟件。,10.1.4面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,ObjectOrientedProgramming,OOP早在20世紀(jì)60年代在實(shí)驗(yàn)室中就提出了面向?qū)ο蠓椒?,最早的面向?qū)ο筌浖?966年開發(fā)的Simula它首次提出模擬人類思維方式,將數(shù)據(jù)和相關(guān)操作集成在一起。使得數(shù)據(jù)和處理數(shù)據(jù)的方法融為一體,更方便處理現(xiàn)實(shí)世界中復(fù)雜的事物。,面向?qū)ο蟮某绦蛟O(shè)計(jì)語言:,對象:是程序中最基本的運(yùn)行實(shí)體,一個(gè)程序由若干個(gè)對象組成,各個(gè)對象既相互獨(dú)立,又通過消息相互聯(lián)系。類:是具有相同特征對象的抽象,是創(chuàng)建對象的模板,2.可視化程序設(shè)計(jì),在可視化程序設(shè)計(jì)中,屬性、事件和方法是用于控制和管理對象的3個(gè)要素。屬性:用于描述對象的特征。事件:是對象響應(yīng)某種操作時(shí)的一種反映機(jī)制,是響應(yīng)某種操作的程序代碼入口。方法:一種子程序,調(diào)用時(shí)依附于對象,運(yùn)行時(shí)執(zhí)行相關(guān)的操作,也稱之為對象函數(shù)。,具有代表性的面向?qū)ο蟪绦蛟O(shè)計(jì)語言:,C+語言:在C語言基礎(chǔ)上增加了面向?qū)ο蟮闹С?,基本兼容C語言程序。其特點(diǎn)是既支持結(jié)構(gòu)化程序設(shè)計(jì)方法,又支持面向?qū)ο蟪绦蛟O(shè)計(jì)方法,因此,也稱之為混合型語言。Delphi語言:是在Pascal基礎(chǔ)上開發(fā)出來的可視化程序設(shè)計(jì)語言,是真正的面向?qū)ο缶幊陶Z言,執(zhí)行效率高,具有強(qiáng)大的數(shù)據(jù)庫管理功能,是開發(fā)中小型數(shù)據(jù)庫軟件的理想編程工具。Java語言:Java也是一種跨平臺的程序設(shè)計(jì)語言,適合開發(fā)基于網(wǎng)絡(luò)、多媒體、與平臺無關(guān)的應(yīng)用程序,應(yīng)用程序可以在網(wǎng)絡(luò)上傳輸,并可以運(yùn)行在任何計(jì)算機(jī)上。,網(wǎng)頁設(shè)計(jì)語言:,通過網(wǎng)絡(luò)瀏覽器瀏覽的網(wǎng)頁可分為動(dòng)態(tài)網(wǎng)頁、靜態(tài)網(wǎng)頁兩種。標(biāo)記語言主要用于設(shè)計(jì)靜態(tài)網(wǎng)頁,利用標(biāo)記標(biāo)注信息的類型和位置。腳本語言是介于HTML和編程語言之間的一種語言,主要用于設(shè)計(jì)動(dòng)態(tài)網(wǎng)頁。,在計(jì)算機(jī)中,通常將結(jié)構(gòu)化程序設(shè)計(jì)語言和面向?qū)ο蟪绦蛟O(shè)計(jì)語言統(tǒng)稱為高級程序設(shè)計(jì)語言,簡稱高級語言。,10.2程序,任何以計(jì)算機(jī)為處理工具的任務(wù)都是對處理對象和規(guī)則的完整描述,這種描述稱為程序。程序是用計(jì)算機(jī)語言設(shè)計(jì)的,為完成某一任務(wù)、按一定順序編排的指令序列。要使程序起作用,必須將其裝入到內(nèi)存中執(zhí)行,程序的實(shí)際工作過程稱為執(zhí)行或運(yùn)行。,在屏幕上顯示字符串“HelloWorld”,DSEGSEGMENTSTRINGDBHelloWorld,0DH,OAH,$;定義緩沖區(qū)DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXLEADX,STRINGMOVAH,09HINT21HMOVAH,4CHINT21HCSEGENDSENDSTART,【例81】計(jì)算階乘的C語言程序JSJC.C。Longfun(Intx)/*函數(shù)fun,用來計(jì)算x的階乘*/LongResult=1;/*result是變量,用來保存計(jì)算結(jié)果*/IntI;/*i為循環(huán)控制變量*/For(i=2;i10)/*判斷輸入數(shù)據(jù)范圍*/Printf(“Datamustbewteen1and10.n”);/*數(shù)據(jù)超界,提示合理范圍*/Continue;/*回到循環(huán)開始位置,繼續(xù)判斷循環(huán)條件*/s=fun(i);/*調(diào)用函數(shù)fun計(jì)算i階乘,結(jié)果存于變量s中*/Printf(%d!=%ldn,I,s);/*在屏幕上輸出計(jì)算結(jié)果*/圖8.1.1程序JSJC運(yùn)行過程,DimaAsIntegerDimbAsIntegerPrivateSubCommand1_Click()k=InStr(a,Text2,Text1)Ifk0ThenCommand1.Caption=查找下一個(gè)a=k+Len(Text1)Text2.SetFocusText2.SelStart=k-1Text2.SelLength=Len(Text1)b=b+1ElseMsgBox查找完畢!共找到&b&個(gè)&Text1Command1.Caption=查找“a=1EndIfPrintkEndSub,根據(jù)程序所處軟件的開發(fā)階段或運(yùn)行方式的不同,程序主要有源程序、可執(zhí)行程序和動(dòng)態(tài)鏈接庫3種類型。人們將利用程序設(shè)計(jì)語言設(shè)計(jì)的內(nèi)容稱為源程序。將保存這些內(nèi)容的文件稱為源程序文件。,可執(zhí)行程序是由源程序翻譯(編譯)生成的、真實(shí)的機(jī)器語言程序。在Windows中,最常用的可執(zhí)行程序文件擴(kuò)展名為EXE和COM。,動(dòng)態(tài)鏈接庫是由源程序生成的機(jī)器語言程序的另一種形式,主要作為可執(zhí)行程序的輔助文件,不能獨(dú)立運(yùn)行。主要作用:(1)提供應(yīng)用程序接口(API),User32.dll(2)程序動(dòng)態(tài)加載,源程序的翻譯方式:,編譯方式:通過程序設(shè)計(jì)語言提供的編譯或生成工具,系統(tǒng)自動(dòng)對整個(gè)源程序逐句進(jìn)行詞法分析、語法分析和機(jī)器語言指令翻譯。解釋方式:在程序設(shè)計(jì)語言環(huán)境中直接運(yùn)行源程序,在執(zhí)行每條語句前,系統(tǒng)先分析語句的詞法和語法,若語句正確,則生成并執(zhí)行機(jī)器語言指令,直到程序運(yùn)行結(jié)束。,10.3軟件工程基礎(chǔ),軟件工程是將系統(tǒng)的、規(guī)范的、可度量的方法應(yīng)用于軟件開發(fā)和維護(hù)整體過程的一門科學(xué),用數(shù)學(xué)、計(jì)算機(jī)科學(xué)和管理科學(xué)的原理,借助傳統(tǒng)工程科學(xué)的原則和方法創(chuàng)建與維護(hù)軟件,從而達(dá)到提高軟件質(zhì)量、降低軟件成本的目的。軟件工程學(xué)出現(xiàn)的目的是為緩解軟件危機(jī)。,軟件工程的誕生背景,程序設(shè)計(jì)時(shí)代:程序設(shè)計(jì)語言是機(jī)器語言和匯編語言,這個(gè)階段被稱為程序設(shè)計(jì)時(shí)代。軟件開發(fā)主要是個(gè)體手工勞動(dòng),完全依賴程序設(shè)計(jì)者的個(gè)人技能,不重視程序設(shè)計(jì)方法。,程序系統(tǒng)時(shí)代:高級程序設(shè)計(jì)語言出現(xiàn)后,提出了結(jié)構(gòu)化程序設(shè)計(jì)的方法,并成為軟件開發(fā)的主要工具,稱此階段為程序系統(tǒng)時(shí)代。,供需矛盾;開發(fā)成本和時(shí)間失控;質(zhì)量難以保障;維護(hù)困難。,主要表現(xiàn):,軟件危機(jī)是泛指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。,軟件工程主要包括軟件開發(fā)技術(shù)和軟件工程管理。,軟件工程是一門交叉科學(xué),包含方法、工具和過程3個(gè)要素。,軟件工程包括三個(gè)要素:方法、工具和過程。1.方法:完成軟件工程項(xiàng)目的技術(shù)手段,它支持項(xiàng)目計(jì)劃和估算、系統(tǒng)和軟件需求分析、軟件設(shè)計(jì)、編碼、測試和維護(hù)。2.工具:支持軟件的開發(fā)和管理,支持各種軟件文檔的生成。人們將用于軟件開發(fā)的軟、硬件工具和軟件工程數(shù)據(jù)庫集成在一起,建立了集成軟件工程環(huán)境;3.過程:支持軟件開發(fā)各個(gè)環(huán)節(jié)的控制、管理。,軟件工程的基本目標(biāo)是付出較低的開發(fā)成本,達(dá)到要求的軟件功能;按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;開發(fā)出來的軟件具有良好的穩(wěn)定性、可靠性、適應(yīng)性和可操作性,易于移植和維護(hù)。,在軟件開發(fā)過程中,必須遵循抽象性、信息隱藏性、模塊化、局部化、一致性、完整性和可驗(yàn)證性等原則。,10.4軟件生命周期,軟件產(chǎn)品從形成概念開始,經(jīng)過開發(fā)、使用和維護(hù),直到最后退役的全過程稱為軟件的生命周期。,在“計(jì)算機(jī)軟件開發(fā)規(guī)范”的國家標(biāo)準(zhǔn)中,將軟件生存周期劃分為可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、代碼實(shí)現(xiàn)、軟件測試、使用與維護(hù)7個(gè)階段,在每個(gè)階段中都明確規(guī)定了任務(wù)、實(shí)施方法、步驟和完成標(biāo)志等,并要求產(chǎn)生相關(guān)的文檔。,軟件定義階段:,1.可行性研究:也稱軟件計(jì)劃或策劃階段。此階段主要對待開發(fā)系統(tǒng)涉及到的經(jīng)費(fèi)、軟/硬件技術(shù)、效益和法律等方面的問題進(jìn)行可行性論證,制定系統(tǒng)開發(fā)任務(wù)的實(shí)施計(jì)劃。,2.需求分析:需求是用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能和約束等方面的要求或期望。需求分析是對應(yīng)用問題及其環(huán)境的理解與分析,為應(yīng)用問題涉及的事物、功能及系統(tǒng)行為建立模型,將需求精確化和完整化,最終形成需求規(guī)格說明書。,需求分析的主要工作:,獲取資料資料分析形成需求規(guī)格說明書需求評審,軟件開發(fā)階段:,3.概要設(shè)計(jì):也稱結(jié)構(gòu)設(shè)計(jì)或總體設(shè)計(jì),根據(jù)需求確定軟件和數(shù)據(jù)的總體框架。,數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):也稱數(shù)據(jù)對象設(shè)計(jì),主要任務(wù)是依據(jù)需求分析的數(shù)據(jù)模型,結(jié)合程序中涉及的算法,設(shè)計(jì)數(shù)據(jù)文件的邏輯結(jié)構(gòu)。軟件結(jié)構(gòu)設(shè)計(jì):按自頂向下、逐步求精和模塊化的設(shè)計(jì)原則,將一個(gè)軟件分解和規(guī)劃成若干個(gè)模塊,確定各模塊之間的關(guān)聯(lián)信息。概要文檔:概要設(shè)計(jì)說明書、數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫設(shè)計(jì)說明書和軟件集成調(diào)試計(jì)劃等。,4.詳細(xì)設(shè)計(jì):主要任務(wù)是設(shè)計(jì)軟件功能結(jié)構(gòu)圖中每個(gè)最低層模塊的局部算法和數(shù)據(jù)結(jié)構(gòu),確定每個(gè)模塊調(diào)用和數(shù)據(jù)傳輸接口。,描述算法的常用工具有偽代碼(ProcedureDesignLanguage,PDL)、程序流程圖和NS圖等,設(shè)計(jì)成果是詳細(xì)設(shè)計(jì)說明書。,5.編碼實(shí)現(xiàn):需要選擇一種程序設(shè)計(jì)語言,進(jìn)入程序設(shè)計(jì)階段。通常利用菜單或窗口結(jié)合工具欄設(shè)計(jì)軟件功能結(jié)構(gòu)圖的總體框架,依據(jù)詳細(xì)設(shè)計(jì)中的算法和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)每個(gè)功能模塊的程序代碼,設(shè)計(jì)成果是源程序。,6.軟件測試:是對需求規(guī)格說明書、概要設(shè)計(jì)說明書及程序代碼等內(nèi)容的最后復(fù)審。,軟件質(zhì)量保證貫穿于軟件開發(fā)的整個(gè)過程,其中關(guān)鍵步驟是軟件測試;軟件測試目的是在軟件產(chǎn)品交付使用之前盡可能發(fā)現(xiàn)潛在的錯(cuò)誤;軟件測試主要檢測和更正語義和功能錯(cuò)誤。,軟件測試的方法:,靜態(tài)測試:不需要運(yùn)行軟件,由人工直接進(jìn)行閱讀和檢查源程序,包括代碼檢

溫馨提示

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

最新文檔

評論

0/150

提交評論