版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Chapter 6語言、程序和軟件,CS, ZJU 7/16/2020,Overview,程序和指令 程序設(shè)計語言 程序的程序:翻譯系統(tǒng) 高級語言的概念 怎樣編寫程序 軟件工程簡介,2020/7/16,2,6.1 概述,程序和軟件是兩個不同的概念,整個程序設(shè)計過程是軟件設(shè)計與開發(fā)的基礎(chǔ) ,是軟件開發(fā)的一個部分;程序加上該程序的文檔就是軟件。 程序設(shè)計需要使用程序設(shè)計語言。 可視化程序設(shè)計成為今天程序設(shè)計的主流 。,2020/7/16,3,6.2 程序和指令,程序:按步驟執(zhí)行 從廣義上看,程序是計算機進行某種任務(wù)操作的一系列步驟的總和,是一組計算機指令的有序集合 。 程序設(shè)計既是工程師又是藝術(shù)家
2、的工作。 指令和指令系統(tǒng) 指令和指令系統(tǒng)構(gòu)成計算機處理器的重要部分,又是整個程序的基礎(chǔ)。 指令就是計算機執(zhí)行的最基本的操作。 指令系統(tǒng)是所有指令的集合。 從計算機硬件和軟件的關(guān)系來看,指令及指令系統(tǒng)是計算機硬件和軟件的接口。 從CPU角度看,指令是計算機處理器執(zhí)行的二進制代碼。,2020/7/16,4,指令系統(tǒng)的主要類型: 數(shù)據(jù)傳輸類指令: 將數(shù)據(jù)從一個地方(源)傳輸?shù)搅硗庖粋€地方(目的); 算術(shù)邏輯類指令: 包括基本的算術(shù)運算和邏輯、比較運算,操作對象是數(shù)據(jù); 控制操作類指令: 實現(xiàn)程序的不同執(zhí)行結(jié)構(gòu),分為有條件轉(zhuǎn)移和無條件轉(zhuǎn)移;,2020/7/16,5,6.3 程序設(shè)計語言,計算機程序設(shè)計
3、語言的級別就是根據(jù)它們和機器的密切程度劃分的:越接近機器的語言級別越低,越遠(yuǎn)離機器的語言越“高級”。 面向機器硬件的機器語言 二進制語言,用二進制機器指令來編寫程序 匯編語言 機器語言的符號化,一般用英文單詞或縮寫表示機器指令,因此也是面向機器的。 面向過程的高級語言 接近數(shù)學(xué)描述求解問題的過程,它和機器沒有直接關(guān)系。語法與自然語言接近。 面向?qū)ο蟮母呒壵Z言,2020/7/16,6,機器語言和指令 機器語言就是指令:二進制代碼,能被計算機直接執(zhí)行, 一條機器指令需要包含如下信息: 操作類型:有幾十種到上百種,如加法、訪問存儲器、輸入輸出操作等; 操作數(shù)或者操作數(shù)的存儲位置:它是操作數(shù)的位置信息
4、,如內(nèi)存單元、CPU內(nèi)部寄存器,或指令中的立即數(shù); 操作結(jié)果的存儲地址:它說明將結(jié)果存儲到什么地方; 下一條指令的地址信息:它說明到哪里去取下一條指令;,2020/7/16,7,2020/7/16,8,機器指令的一般格式,例:加法指令,2020/7/16,9,指令的執(zhí)行過程,匯編語言 用容易記憶的文字符號來表示指令中的操作碼和地址碼,這種符號叫助記符。 CPU所有指令助記符的集合以及使用規(guī)則構(gòu)成了助記符語言叫匯編語言(Assemble Language)。 例子(匯編語言的一條加法語句) ADD A,B 意思是將存儲地址A和B的內(nèi)容相加,結(jié)果存儲在地址A或B的存儲單元(不同的計算機有不同的規(guī)定
5、)。 特點 與二進制的機器指令相比,匯編語言指令可讀性較好。 它仍然是一種面向計算機硬件的言,程序員必須熟悉計算機硬件結(jié)構(gòu)、指令系統(tǒng)和指令格式等。 程序移植性也較差。,2020/7/16,10,高級語言 是一種與機器指令系統(tǒng)無關(guān)、表達(dá)形式更接近于被描述問題的語言。任何一種高級語言都有其語義和語法規(guī)定,程序員熟悉了該語言的規(guī)則就可以靈活地設(shè)計出解決各種實際問題的程序。 分為兩種類型 : 面向過程的高級語言 面向?qū)ο蟮母呒壵Z言,2020/7/16,11,面向過程的高級語言 每一個語句都是為完成一個特定的任務(wù)而對計算機發(fā)出執(zhí)行的命令 Basic(Beginner ALL-Purpose Symbol
6、ic Instruction Code) 在計算機技術(shù)發(fā)展史上應(yīng)用得最廣泛的語言一 適于編程初學(xué)者編程,簡單易學(xué) 非計算機專業(yè)出身的編程者廣泛使用 C語言 C是一種高級語言,被廣泛用于專業(yè)程序設(shè)計 既有高級語言的優(yōu)點,又有匯編語言的效率,因此也有人把它定位為“中級語言” 它的命令可直接對計算機內(nèi)存單元中的數(shù)據(jù)進行位操作,適合編寫較接近硬件操作又要求處理速度的程序,2020/7/16,12,Pascal語言 Pascal為紀(jì)念計算機先驅(qū)Pascal命名的 作為一種教學(xué)和應(yīng)用開發(fā)語言被普遍接受 Fortran語言 第一個高級語言:IBM公司在1957年開發(fā)的 更適合于科學(xué)、數(shù)學(xué)和應(yīng)用工程方面的應(yīng)用
7、,編程人員可用它方便地描述數(shù)學(xué)問題,解決數(shù)學(xué)計算 Cobol語言 COBOL是一種專門的商用的高級程序設(shè)計語言 大部分命令都與英語類似 比較適用于存儲、檢索公司的財務(wù)信息,實現(xiàn)票據(jù)管理和工資報表等功能 Ada語言 它是為美國國防部開發(fā)署(DoD)設(shè)計的,由所有承包DoD工程的廠商統(tǒng)一使用的語言。 Ada還具有實時處理和并行處理能力。,2020/7/16,13,面向?qū)ο蟮母呒壵Z言 封裝。 封裝是指把對象的屬性和操作結(jié)合在一起,構(gòu)成一個獨立體。 繼承。 繼承(Inheritance)是指子類可以擁有父類的屬性和行為,這里的類(Class)就是對象繼承提高了軟件代碼的復(fù)用性。 多態(tài)性。 多態(tài)性(Po
8、lymorphism)是指對象可以具有不同的行為。多態(tài)性機制不僅為軟件的結(jié)構(gòu)設(shè)計提供了靈活性,還減少了信息冗余,提高了軟件的可擴展性。,2020/7/16,14,Visual Basic 簡稱VB,BASIC引入了面向?qū)ο蟮脑O(shè)計方法 為開發(fā)圖形界面的應(yīng)用程序而設(shè)計的 它比較簡單易學(xué),功能強大,得到廣泛應(yīng)用 JAVA Sun Microsystem公司開發(fā) 具有純面向?qū)ο蟆⑵脚_無關(guān)性、多線程、高安全性等特點 解決了困擾軟件界多年的軟件移植問題 C+ 傳統(tǒng)的C語言進行面向?qū)ο蟮臄U展而成的語言 它在C語言的基礎(chǔ)上增加了面向?qū)ο蟪绦蛟O(shè)計的支持 Delphi語言 Delphi使用Pascal編程語言,它
9、是面向?qū)ο蟮?,也是開發(fā)GUI程序很好的工具。 類似的語言或叫做開發(fā)工具的還有Borland公司的PB(Power Build)等,2020/7/16,15,其他語言 函數(shù)型語言:主要有LISP和Scheme 。 說明型語言:也叫邏輯語言,它被用于根據(jù)邏輯推理的原 則回答問題 。 超文本鏈接標(biāo)記語言 :由一種格式標(biāo)記何超鏈接組成的“偽語言”,主要用于網(wǎng)絡(luò)上的信息服務(wù)。 Perl:一種“腳本語言”,程序以ASCII文本保存,只在執(zhí)行時對程序進行解釋或者編譯。 Python:腳本語言:它包含了一組完善而且容易理解的標(biāo)準(zhǔn)庫,能夠輕松完成很多常見的任務(wù)。 SQL :是一種結(jié)構(gòu)化查詢的語言。 基于組件的程
10、序設(shè)計,2020/7/16,16,6.4 程序的程序:翻譯系統(tǒng),“翻譯程序”本身也是程序,它所執(zhí)行的任務(wù)就是把其他語言程序翻譯為機器語言程序。 翻譯程序根據(jù)功能的不同分為: 解釋程序 對源代碼中的程序進行逐句翻譯,翻譯一句執(zhí)行一句,翻譯過程中并不生成可執(zhí)行文件。 編譯程序 將整個源程序代碼文件一次性翻譯成目標(biāo)程序代碼,最終生成可執(zhí)行文件,一旦編譯完成,程序就可以被單獨執(zhí)行。,2020/7/16,計算機科學(xué)基礎(chǔ),17,使用編譯系統(tǒng)的程序執(zhí)行效率較高。編譯系統(tǒng)是一個十分復(fù)雜的程序系統(tǒng),它是一個信息加工流水線,被加工的是源程序,最終產(chǎn)品是目標(biāo)程序。 大多數(shù)語言系統(tǒng)都將源程序的編輯、翻譯、調(diào)試、運行等
11、功能集成為開發(fā)環(huán)境。 編譯系統(tǒng)只能夠發(fā)現(xiàn)不合法的語句和表達(dá),它并不能發(fā)現(xiàn)算法上的錯誤,2020/7/16,18,6.5 高級語言的概念,常量、變量和數(shù)據(jù)類型 數(shù)據(jù)類型 程序設(shè)計語言需要給參與運算的各種數(shù)據(jù)定義其類型,每一種數(shù)據(jù)類型都有其取值范圍。 一般程序設(shè)計語言的基本數(shù)據(jù)類型有三種:整型、實型和字符型。 其他 ,如Java語言,有邏輯型(Boolean),VB語言有貨幣、日期/時間等類型。 語法規(guī)則要求運算對象的數(shù)據(jù)類型保持一致,如果不一致的話則按規(guī)則強制轉(zhuǎn)換。,2020/7/16,計算機科學(xué)基礎(chǔ),19,常量 常量在程序執(zhí)行過程中,這個量將固定不變。 程序中的常量有兩種:文字常量、符號常量。
12、 變量 變量就是可以被改變的量。程序使用標(biāo)識符代表變量的內(nèi)存位置,程序員只需要對這個變量進行賦值、運算即可。 變量在使用之前需要對其先行定義類型。 有些語言規(guī)定使用變量之前還必須先給這個變量賦一個初值。,2020/7/16,20,構(gòu)造數(shù)據(jù)類型 將基本類型和數(shù)據(jù)結(jié)構(gòu)聯(lián)系起來組成的新的、復(fù)雜的數(shù)據(jù)類型,一般稱為構(gòu)造數(shù)據(jù)類型,也稱為派生數(shù)據(jù)類型。 數(shù)組 使用一個標(biāo)識符代表一組相同類型的數(shù)據(jù),以下標(biāo)形式區(qū)分各個元素。 結(jié)構(gòu)和指針 結(jié)構(gòu)可以表示復(fù)雜的數(shù)據(jù)記錄。 指針是一種對變量訪問的形式,存放的 是數(shù)據(jù)變量的地址。 字符串、鏈表、堆棧、隊列、樹、圖,2020/7/16,21,基本語句 語句是使程序執(zhí)行的
13、動作,被翻譯程序翻譯成一條或幾條指令。 賦值語句 按規(guī)則將一個值存入到變量名所代表的存儲單元中。 表達(dá)式語句 不同表達(dá)式構(gòu)成的語句。 復(fù)合語句 用括號將多行語句定義為一個語句稱為復(fù)合語句(語句塊)。程序?qū)?fù)合語句視做一個語句進行處理。 轉(zhuǎn)移語句 著名的goto語句。 返回語句 通過調(diào)用的方法構(gòu)造程序時,使用Return語句可以將運算結(jié)果返回調(diào)用程序。 輸入、輸出語句,2020/7/16,22,分支語句 實現(xiàn)分支結(jié)構(gòu)的語句,根據(jù)條件決定程序下一步該執(zhí)行程序的哪一條語句或語句塊。,2020/7/16,23,循環(huán)語句 實現(xiàn)循環(huán)結(jié)構(gòu)的語句為循環(huán)語句; 大多數(shù)高級語言有多種循環(huán)語句;,2020/7/16
14、,24,函數(shù)和方法,2020/7/16,25,6.6 怎樣編寫程序,程序設(shè)計不僅是編寫程序代碼,它是一個系統(tǒng)過程。通常把這個過程分為6個步驟: 問題的定義 設(shè)計方案 編碼 測試 編寫文檔 運行維護,2020/7/16,26,理解問題 設(shè)計一個程序首先要了解問題,對問題進行清晰、明確的定義是解決問題過程中最重要、也是最容易被忽略的一步。一個組織得好的程序項目,花在這個階段的時間應(yīng)該占到整個程序開發(fā)設(shè)計時間的25% 30%,甚至更多。 這項工作一般可由具有比較豐富程序設(shè)計經(jīng)驗的系統(tǒng)分析員來做。在這個階段主要弄清以下幾個問題: 程序目標(biāo)是什么?即程序需要解決什么樣的問題 可能需要輸入哪些數(shù)據(jù)? 數(shù)據(jù)
15、具體的處理過程和要求是什么? 程序可能產(chǎn)生的數(shù)據(jù)輸出以及輸出形式是什么?,2020/7/16,27,程序設(shè)計 在本階段需要對問題設(shè)計出具體的解決方案,要一步一步地顯示解決問題的過程。其關(guān)鍵是設(shè)計出一個好的算法,并使用合適的邏輯結(jié)構(gòu)。 要確定使用的程序范式(Programming Paradigm)。即選擇使用哪種編程技術(shù)或者選擇哪種語言作為開發(fā)工具。 考慮程序運行在網(wǎng)絡(luò)環(huán)境中還是單臺機器上。 如果原來有舊的程序在運行,那么新程序如何兼容以前的程序。,2020/7/16,28,編寫程序代碼 在此階段,使用所選擇的編程語言,按照設(shè)計過程中形成的算法編寫程序代碼。 不同的語言適合不同的應(yīng)用,通用語言
16、能夠適合大多數(shù)編程任務(wù),而較為特殊的應(yīng)用則應(yīng)選擇針對性更強的其他語言。 同時,語言的選擇還取決于編程者對語言的熟悉程度,當(dāng)然也要看它是否能夠完成任務(wù)。,2020/7/16,29,尋找錯誤:程序測試 在此階段,要調(diào)試已編好的程序,找出程序中的邏輯錯誤和語法錯誤。 如果違反編程語言的語法規(guī)則,就會發(fā)生語法錯誤; 如果程序得到的輸出不對,則可能是由于程序沒有正確地實現(xiàn)算法,這是邏輯錯誤。 程序測試和糾正錯誤交錯進行,但程序測試是“測試程序中的錯誤,而不是使得程序中沒有錯誤”。 常用的測試方法有: 黑盒測試是把一組測試數(shù)據(jù)輸入程序,檢查程序的結(jié)果是否是預(yù)期的。大多數(shù)專業(yè)軟件公司提供給用戶的Beta()
17、版也叫測試版,就是屬于黑盒方法。 白盒測試一般是專業(yè)測試,輸入一組特意設(shè)計的數(shù)據(jù)讓程序執(zhí)行,測試程序是否按照設(shè)計流程要求執(zhí)行,2020/7/16,30,編寫程序文檔 程序文檔包括設(shè)計過程中形成的文檔和設(shè)計完成后的使用說明,文檔形式有兩種: 一種是在編寫程序代碼時在代碼行后面加注釋。 另一種是按照一定規(guī)則專門編寫。 運行與維護 程序的安裝、系統(tǒng)配置 對用戶的培訓(xùn) 軟件維護,2020/7/16,31,6.7 軟件工程簡介,什么是軟件開發(fā) 開發(fā)軟件需要進行系統(tǒng)分析,需要設(shè)計,需要編碼,需要測試。 大型程序無法由一個程序員完成,因此眾多開發(fā)人員的協(xié)調(diào)、管理也是軟件開發(fā)需要考慮的問題。 開發(fā)軟件不是一個
18、單純的計算機問題,這里面需要運用有關(guān)的系統(tǒng)分析原理,需要建立必要的數(shù)據(jù)模型,需要使用工程管理的方法進行開發(fā)管理。,2020/7/16,32,軟件生命周期 軟件危機 軟件工程 和工業(yè)產(chǎn)品一樣,軟件也有一個生產(chǎn)、使用和消亡的過程,稱為軟件的生命周期。 軟件生命周期法從總體上包括分析、設(shè)計、實現(xiàn)(開發(fā)軟件)和維護等過程, 一般較大型的軟件系統(tǒng)都需要經(jīng)歷以上這幾個階段,當(dāng)新的系統(tǒng)替代原系統(tǒng)后,原系統(tǒng)的生命周期也就結(jié)束了。,2020/7/16,33,軟件開發(fā)模式 建立開發(fā)過程模型是建立對軟件開發(fā)過程的總體認(rèn)識和描述,主要有: 瀑布模型 增量模型 螺旋模型 RAD模型,2020/7/16,34,瀑布模型
19、這是軟件開發(fā)過程最為流行的一個模型,包括了分析、設(shè)計、實現(xiàn)(編碼)、測試和維護5個方面,結(jié)構(gòu)自上而下,如瀑布流水一般,故得名瀑布模型。 由于它的線形特點,下一個過程必須在上一個過程結(jié)束的基礎(chǔ)上,如編寫代碼前,設(shè)計工作必須完成。 它的缺點是缺乏靈活性,無法解決軟件需求不明確的問題。,2020/7/16,35,增量模型 又稱為演化模型。 軟件在該模型中是“逐漸”開發(fā)出來的。開發(fā)人員先開發(fā)出一部分程序,向用戶展示,用戶提出修改意見,不斷完善,最終獲得滿意的軟件產(chǎn)品。 該模型具有較大的靈活性,適合于軟件需求不明確、設(shè)計方案有一定風(fēng)險的軟件項目。 軟件開發(fā)是一個迭代的過程。,2020/7/16,36,螺
20、旋模型 螺旋模型(Spiral Model),沿著螺線旋轉(zhuǎn),在4個象限上分別表達(dá)了4個方面的活動,即:編制計劃、風(fēng)險分析、實施工程和客戶評估。 螺旋模型將瀑布模型與演化模型結(jié)合起來,并且加入兩種模型均忽略了的風(fēng)險分析,比較適應(yīng)具有高風(fēng)險項目的開發(fā)過程。,2020/7/16,37,RAD模型 強調(diào)極快的開發(fā)周期。它主要用于大型信息系統(tǒng)的開發(fā),包含了以下5個階段。 業(yè)務(wù)建模。業(yè)務(wù)活動中的信息流被模型化,確定信息來源及流向和使用者。 數(shù)據(jù)建模。業(yè)務(wù)信息流被精確定義為對象和屬性以及對象間的關(guān)系。 處理建模。創(chuàng)建對這些數(shù)據(jù)對象的操作,如增加、刪除、修改、檢索等。 應(yīng)用生成。使用面向?qū)ο蟮募夹g(shù),可使用工具軟件進行開發(fā)。 測試和反復(fù)。強調(diào)復(fù)用,且測試復(fù)用在當(dāng)前系統(tǒng)中的功用。,2020/7/16,38,開發(fā)軟
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 首醫(yī)大婦產(chǎn)科護理學(xué)學(xué)習(xí)指導(dǎo)第14章 妊娠滋養(yǎng)細(xì)胞疾病病人的護理
- 2026年程序員中級職稱評審練習(xí)題
- 2026年文學(xué)創(chuàng)作與寫作技巧題庫
- 未來五年調(diào)研咨詢企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 未來五年新形勢下醫(yī)院制氣供氣設(shè)備及裝置行業(yè)順勢崛起戰(zhàn)略制定與實施分析研究報告
- 未來五年人造纖維企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略分析研究報告
- 未來五年三相電子式有功電能表企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 未來五年馬蹄蓮企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 國際物流“一單制”提單電子化協(xié)議
- 2026年振動臺定期維護保養(yǎng)合同
- 復(fù)方蒲公英注射液在類風(fēng)濕關(guān)節(jié)炎中的應(yīng)用研究
- 漁夫和他的靈魂-練習(xí)及答案
- 探析鐵路橋涵施工中缺陷和應(yīng)對策略
- LYT 1279-2020聚氯乙烯薄膜飾面人造板
- 聲樂教學(xué)與藝術(shù)指導(dǎo)的有效結(jié)合淺析
- 電解質(zhì)紊亂護理查房-課件
- 城市軌道交通工程竣工驗收管理培訓(xùn)
- 運動訓(xùn)練的監(jiān)控
- GB/T 6730.62-2005鐵礦石鈣、硅、鎂、鈦、磷、錳、鋁和鋇含量的測定波長色散X射線熒光光譜法
- 中考?xì)v史第一輪復(fù)習(xí)教案
- 中國郵政《國際及臺港澳郵件處理規(guī)則》
評論
0/150
提交評論