大學(xué)計(jì)算機(jī)基礎(chǔ):第10章 軟件設(shè)計(jì)基礎(chǔ)_第1頁
大學(xué)計(jì)算機(jī)基礎(chǔ):第10章 軟件設(shè)計(jì)基礎(chǔ)_第2頁
大學(xué)計(jì)算機(jī)基礎(chǔ):第10章 軟件設(shè)計(jì)基礎(chǔ)_第3頁
大學(xué)計(jì)算機(jī)基礎(chǔ):第10章 軟件設(shè)計(jì)基礎(chǔ)_第4頁
大學(xué)計(jì)算機(jī)基礎(chǔ):第10章 軟件設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1/33本 章 概 要1.1. 程序設(shè)計(jì)語言概述程序設(shè)計(jì)語言概述:程序設(shè)計(jì)語言的分:程序設(shè)計(jì)語言的分類及常見語言類及常見語言2.2. 程序程序:程序的類型及程序的執(zhí)行方式。:程序的類型及程序的執(zhí)行方式。3.3. 軟件工程軟件工程:目前軟件開發(fā)和維護(hù)的方法。:目前軟件開發(fā)和維護(hù)的方法。 4.4. 軟件生命周期軟件生命周期:軟件開發(fā)的具體步驟。:軟件開發(fā)的具體步驟。2/33程序設(shè)計(jì)語言概述機(jī)器語言機(jī)器語言是計(jì)算機(jī)硬件系統(tǒng)能唯一識別并是計(jì)算機(jī)硬件系統(tǒng)能唯一識別并執(zhí)行的語言,基本要素是執(zhí)行的語言,基本要素是計(jì)算機(jī)指令計(jì)算機(jī)指令。計(jì)算機(jī)指令計(jì)算機(jī)指令是硬件唯一能識別的、實(shí)現(xiàn)計(jì)算是硬件唯一能識別的、實(shí)現(xiàn)計(jì)

2、算機(jī)基本功能的機(jī)基本功能的二進(jìn)制編碼二進(jìn)制編碼,是指揮計(jì)算機(jī)工,是指揮計(jì)算機(jī)工作的基本命令。作的基本命令。 3/33程序設(shè)計(jì)語言概述計(jì)算機(jī)計(jì)算機(jī)指令的格式指令的格式操作碼操作碼用于指明用于指明操作操作(功能),不同指令具(功能),不同指令具有不同的操作碼。有不同的操作碼。 操作碼操作碼操作數(shù)操作數(shù)操作數(shù)操作數(shù)可能是可能是數(shù)據(jù)數(shù)據(jù)(稱為立即數(shù))、存放操(稱為立即數(shù))、存放操作數(shù)的作數(shù)的內(nèi)存單元地址內(nèi)存單元地址或或寄存器地址寄存器地址,也可能,也可能有多個操作數(shù)。有多個操作數(shù)。 例例計(jì)算計(jì)算8 + 78 + 7的機(jī)器語言程序示例:的機(jī)器語言程序示例:10111000 00001000 000000

3、0010111000 00001000 00000000 ;將將8 8存入累加器存入累加器AXAX中中00000101 00000111 0000000000000101 00000111 00000000 ; 7 7與累加器與累加器AXAX中的內(nèi)容相加,中的內(nèi)容相加,結(jié)果仍存放在結(jié)果仍存放在AXAX中中指令系統(tǒng)指令系統(tǒng):一臺計(jì)算機(jī)中一臺計(jì)算機(jī)中全部指令全部指令的的集合集合。從計(jì)算機(jī)組成來看,指令系統(tǒng)與計(jì)算機(jī)系統(tǒng)從計(jì)算機(jī)組成來看,指令系統(tǒng)與計(jì)算機(jī)系統(tǒng)的性能和硬件結(jié)構(gòu)的復(fù)雜程度密切相關(guān),因的性能和硬件結(jié)構(gòu)的復(fù)雜程度密切相關(guān),因此,此,同類型計(jì)算機(jī)具有相同的指令系統(tǒng)同類型計(jì)算機(jī)具有相同的指令系統(tǒng)。

4、 4/33程序設(shè)計(jì)語言概述匯編語言匯編語言:指令指令由由英文單詞英文單詞或或縮寫縮寫構(gòu)成,用構(gòu)成,用符號符號和和十進(jìn)制數(shù)十進(jìn)制數(shù)代替機(jī)器語言中的二進(jìn)制編代替機(jī)器語言中的二進(jìn)制編碼,便于人們記憶和書寫。碼,便于人們記憶和書寫。 特點(diǎn)特點(diǎn):機(jī)器語言和匯編語言都與機(jī)器語言和匯編語言都與計(jì)算機(jī)類型有關(guān)計(jì)算機(jī)類型有關(guān) ;匯編語言與機(jī)器語言比較,在匯編語言與機(jī)器語言比較,在助記助記方面有了方面有了較大的改善;較大的改善;匯編語言一般用于編制匯編語言一般用于編制系統(tǒng)軟件系統(tǒng)軟件和和過程控制過程控制軟件軟件 。例例計(jì)算計(jì)算8 + 78 + 7的匯編語言程序示例:的匯編語言程序示例:Mov AXMov AX,8

5、 8 ;將將8 8存入累加器存入累加器AXAX中中Add AXAdd AX,7 7 ;7 7與累加器與累加器A A中的內(nèi)容相加,中的內(nèi)容相加,結(jié)果仍存放在結(jié)果仍存放在AXAX中中5/33程序設(shè)計(jì)語言概述結(jié)構(gòu)化程序設(shè)計(jì)語言結(jié)構(gòu)化程序設(shè)計(jì)語言:脫離具體計(jì)算機(jī)硬件脫離具體計(jì)算機(jī)硬件結(jié)構(gòu)的程序設(shè)計(jì)語言結(jié)構(gòu)的程序設(shè)計(jì)語言 。 程序設(shè)計(jì)的核心是程序設(shè)計(jì)的核心是數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)和和算法算法;通過通過數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)定義定義數(shù)據(jù)的存儲形式數(shù)據(jù)的存儲形式;通過通過算法算法研究如何用快捷、高效的方法研究如何用快捷、高效的方法來來組織解決問題組織解決問題的的具體過程具體過程。 特點(diǎn):特點(diǎn):6/33程序設(shè)計(jì)語言概述結(jié)

6、構(gòu)化程序設(shè)計(jì)語言的基本特征結(jié)構(gòu)化程序設(shè)計(jì)語言的基本特征: 程序內(nèi)部結(jié)構(gòu)化程序內(nèi)部結(jié)構(gòu)化:程序由順序、選擇:程序由順序、選擇(分支)和重復(fù)(循環(huán))(分支)和重復(fù)(循環(huán))3 3種結(jié)構(gòu)組成。種結(jié)構(gòu)組成。程序模塊化程序模塊化:一個大程序由若干個功能:一個大程序由若干個功能獨(dú)立的、相互關(guān)聯(lián)的程序模塊(子程序、獨(dú)立的、相互關(guān)聯(lián)的程序模塊(子程序、函數(shù)等)組成。函數(shù)等)組成。可移植性好可移植性好:即為一類計(jì)算機(jī)設(shè)計(jì)的程:即為一類計(jì)算機(jī)設(shè)計(jì)的程序,經(jīng)少量改動后可以在另一類計(jì)算機(jī)上序,經(jīng)少量改動后可以在另一類計(jì)算機(jī)上運(yùn)行。運(yùn)行。 7/33程序設(shè)計(jì)語言概述具有代表性的結(jié)構(gòu)化程序設(shè)計(jì)語言具有代表性的結(jié)構(gòu)化程序設(shè)計(jì)語

7、言: FORTRANFORTRAN語言語言:是:是Formula TranslatorFormula Translator的的縮寫,在工程、數(shù)學(xué)和科學(xué)研究上是使用縮寫,在工程、數(shù)學(xué)和科學(xué)研究上是使用最廣泛的語言,尤其是在最廣泛的語言,尤其是在科學(xué)計(jì)算科學(xué)計(jì)算中發(fā)揮中發(fā)揮著極其重要的作用。著極其重要的作用。 PascalPascal語言語言:作為一門實(shí)用程序設(shè)計(jì)語:作為一門實(shí)用程序設(shè)計(jì)語言和教學(xué)工具,言和教學(xué)工具,PascalPascal語言在高校計(jì)算機(jī)語言在高校計(jì)算機(jī)軟件軟件教學(xué)教學(xué)中一直處于主導(dǎo)地位。中一直處于主導(dǎo)地位。 C C語言語言:適合于:適合于系統(tǒng)描述系統(tǒng)描述,可以用于編寫,可以用于

8、編寫系統(tǒng)和應(yīng)用軟件。系統(tǒng)和應(yīng)用軟件。8/33程序設(shè)計(jì)語言概述面向?qū)ο蟮某绦蛟O(shè)計(jì)語言面向?qū)ο蟮某绦蛟O(shè)計(jì)語言:類:類:是具有相同特征對象的抽象,是創(chuàng)建是具有相同特征對象的抽象,是創(chuàng)建對象的模板。對象的模板。 對象對象:是程序中最基本的運(yùn)行實(shí)體,一個:是程序中最基本的運(yùn)行實(shí)體,一個程序由若干個對象組成,各個對象既相互程序由若干個對象組成,各個對象既相互獨(dú)立,又通過獨(dú)立,又通過消息消息相互相互聯(lián)系聯(lián)系。 9/33程序設(shè)計(jì)語言概述可視化程序設(shè)計(jì)可視化程序設(shè)計(jì)事件事件:是對象響應(yīng)某種操作時的一種反映:是對象響應(yīng)某種操作時的一種反映機(jī)制,是響應(yīng)某種操作的程序代碼入口。機(jī)制,是響應(yīng)某種操作的程序代碼入口。 屬

9、性屬性:用于描述對象的特征。:用于描述對象的特征。 方法方法:對象的方法實(shí)質(zhì)是一種子程序,調(diào):對象的方法實(shí)質(zhì)是一種子程序,調(diào)用時依附于對象,運(yùn)行時執(zhí)行相關(guān)的操作,用時依附于對象,運(yùn)行時執(zhí)行相關(guān)的操作,也稱之為對象函數(shù)。也稱之為對象函數(shù)。 10/33程序設(shè)計(jì)語言概述具有代表性的面向?qū)ο蟪绦蛟O(shè)計(jì)語言具有代表性的面向?qū)ο蟪绦蛟O(shè)計(jì)語言: C+C+語言語言:在在C C語言基礎(chǔ)上增加了面向?qū)ο蟮闹С?,基語言基礎(chǔ)上增加了面向?qū)ο蟮闹С?,基本兼容本兼容C C語言程序。其特點(diǎn)是既支持結(jié)構(gòu)化程序設(shè)計(jì)方法,語言程序。其特點(diǎn)是既支持結(jié)構(gòu)化程序設(shè)計(jì)方法,又支持面向?qū)ο蟪绦蛟O(shè)計(jì)方法,因此,也稱之為混合型語又支持面向?qū)ο蟪?/p>

10、序設(shè)計(jì)方法,因此,也稱之為混合型語言。言。 DelphiDelphi語言語言:是在是在PascalPascal基礎(chǔ)上開發(fā)出來的可視化程基礎(chǔ)上開發(fā)出來的可視化程序設(shè)計(jì)語言,是真正的面向?qū)ο缶幊陶Z言,執(zhí)行效率高,序設(shè)計(jì)語言,是真正的面向?qū)ο缶幊陶Z言,執(zhí)行效率高,具有強(qiáng)大的數(shù)據(jù)庫管理功能,是開發(fā)中小型數(shù)據(jù)庫軟件的具有強(qiáng)大的數(shù)據(jù)庫管理功能,是開發(fā)中小型數(shù)據(jù)庫軟件的理想編程工具。理想編程工具。 JavaJava語言語言:JavaJava也是一種跨平臺的程序設(shè)計(jì)語言,適也是一種跨平臺的程序設(shè)計(jì)語言,適合開發(fā)基于網(wǎng)絡(luò)、多媒體、與平臺無關(guān)的應(yīng)用程序,應(yīng)用合開發(fā)基于網(wǎng)絡(luò)、多媒體、與平臺無關(guān)的應(yīng)用程序,應(yīng)用程序可

11、以在網(wǎng)絡(luò)上傳輸,并可以運(yùn)行在任何計(jì)算機(jī)上。程序可以在網(wǎng)絡(luò)上傳輸,并可以運(yùn)行在任何計(jì)算機(jī)上。11/33程序設(shè)計(jì)語言概述網(wǎng)頁設(shè)計(jì)語言:網(wǎng)頁設(shè)計(jì)語言:標(biāo)記語言標(biāo)記語言主要用于主要用于設(shè)計(jì)靜態(tài)網(wǎng)頁設(shè)計(jì)靜態(tài)網(wǎng)頁,利用,利用標(biāo)記標(biāo)注信息的類型和位置。標(biāo)記標(biāo)注信息的類型和位置。 腳本語言腳本語言是介于是介于HTMLHTML和編程語言之間的和編程語言之間的一種語言,主要用于一種語言,主要用于設(shè)計(jì)動態(tài)網(wǎng)頁設(shè)計(jì)動態(tài)網(wǎng)頁。 12/33程序任何以計(jì)算機(jī)為處理工具的任務(wù)都是對處任何以計(jì)算機(jī)為處理工具的任務(wù)都是對處理對象和規(guī)則的完整描述,這種描述稱為理對象和規(guī)則的完整描述,這種描述稱為程序程序。 要使程序起作用,必須將其

12、要使程序起作用,必須將其裝入裝入到到內(nèi)存內(nèi)存中中執(zhí)行執(zhí)行,程序的實(shí)際工作過程稱為,程序的實(shí)際工作過程稱為執(zhí)行執(zhí)行或或運(yùn)行運(yùn)行。 程序中包含的成分內(nèi)容有:程序中包含的成分內(nèi)容有:表達(dá)式、數(shù)表達(dá)式、數(shù)據(jù)類型、常量、變量、語句結(jié)構(gòu)、子程序據(jù)類型、常量、變量、語句結(jié)構(gòu)、子程序或函數(shù)或函數(shù)。13/59表表 達(dá)達(dá) 式式表達(dá)式表達(dá)式是程序中完成運(yùn)算的工具和手段,是程序中完成運(yùn)算的工具和手段,常常量量、變量變量、對象的屬性對象的屬性和和函數(shù)函數(shù)本身都是簡單本身都是簡單的的表達(dá)式表達(dá)式,用,用運(yùn)算符運(yùn)算符將將表達(dá)式表達(dá)式正確正確連接連接起來起來又構(gòu)成更復(fù)雜的表達(dá)式。又構(gòu)成更復(fù)雜的表達(dá)式。 14/59數(shù)數(shù) 據(jù)據(jù)

13、類類 型型數(shù)據(jù)數(shù)據(jù)是程序處理的對象,是程序進(jìn)行運(yùn)算的是程序處理的對象,是程序進(jìn)行運(yùn)算的基礎(chǔ)。為了便于存儲和運(yùn)算數(shù)據(jù),計(jì)算機(jī)語基礎(chǔ)。為了便于存儲和運(yùn)算數(shù)據(jù),計(jì)算機(jī)語言都對數(shù)據(jù)進(jìn)行言都對數(shù)據(jù)進(jìn)行分類管理分類管理。根據(jù)數(shù)據(jù)的運(yùn)算。根據(jù)數(shù)據(jù)的運(yùn)算性質(zhì)、數(shù)據(jù)范圍和存儲方式,性質(zhì)、數(shù)據(jù)范圍和存儲方式,VBVB有有數(shù)值數(shù)值、字字符符、日期日期和和邏輯邏輯等多種等多種基本數(shù)據(jù)類型基本數(shù)據(jù)類型。 15/59數(shù)數(shù) 據(jù)據(jù) 類類 型型常用數(shù)據(jù)類型常用數(shù)據(jù)類型: : 數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字關(guān)鍵字字節(jié)數(shù)字節(jié)數(shù)范范 圍圍整型整型IntegerInteger2 2-32768-327683276732767長整型長整型Lon

14、gLong4 4-2147483648-214748364821474836472147483647單精度實(shí)數(shù)單精度實(shí)數(shù)SingleSingle4 4-3.402823E38-3.402823E383.402823E383.402823E38雙精度實(shí)數(shù)雙精度實(shí)數(shù)DoubleDouble8 8-1.79769313486232E308-1.79769313486232E3081.79769313486232E3081.79769313486232E308字節(jié)字節(jié)ByteByte1 10 0255255字符串型字符串型StringString與內(nèi)容有關(guān)與內(nèi)容有關(guān)0 06553565535個字符個字

15、符日期型日期型DateDate8 81/1/100 1/1/100 12/31/999912/31/9999邏輯型邏輯型BooleanBoolean2 2True True 或或 FalseFalse16/59常常量量的的表表示示形形式式常量常量是程序處理的初始數(shù)據(jù),是程序運(yùn)行過是程序處理的初始數(shù)據(jù),是程序運(yùn)行過程中不發(fā)生變化的量,有程中不發(fā)生變化的量,有常數(shù)常數(shù)和和符號常量符號常量兩兩種形式。種形式。 1.1.常數(shù)常數(shù)整型整型:由數(shù)字和正(:由數(shù)字和正(+ +)負(fù)()負(fù)(- -)號)號組成。組成。 長整型長整型:在數(shù)的最后添加:在數(shù)的最后添加“& &”表示。表示。單精度型單精度型:末尾為:末

16、尾為“! !” 和和E E指數(shù)形式指數(shù)形式的數(shù)的數(shù)都是單精度型常數(shù)。都是單精度型常數(shù)。雙精度型雙精度型:末尾為:末尾為“# #”、D D指數(shù)形式指數(shù)形式和和直接直接寫帶小數(shù)點(diǎn)的數(shù)寫帶小數(shù)點(diǎn)的數(shù)都是雙精度型常數(shù)。都是雙精度型常數(shù)。 17/59常常量量的的表表示示形形式式常數(shù)常數(shù)字符串型字符串型:是:是半角雙引號半角雙引號引起來的一串字引起來的一串字符,其內(nèi)容可以是字母、數(shù)字、漢字及標(biāo)點(diǎn)符,其內(nèi)容可以是字母、數(shù)字、漢字及標(biāo)點(diǎn)符號等。當(dāng)字符串?dāng)?shù)據(jù)中有雙引號時,其雙符號等。當(dāng)字符串?dāng)?shù)據(jù)中有雙引號時,其雙引號用連續(xù)兩個雙引號表示。引號用連續(xù)兩個雙引號表示。 日期型日期型:用一對:用一對“# #”將表示日

17、期和時間數(shù)將表示日期和時間數(shù)據(jù)括起來。據(jù)括起來。 邏輯型邏輯型:只有兩個值:只有兩個值:TrueTrue和和FalseFalse。18/59常常量量的的表表示示形形式式2. 2. 符號常量符號常量為了便于閱讀程序,經(jīng)常將一些特殊的常為了便于閱讀程序,經(jīng)常將一些特殊的常數(shù)用符號表示。例如,用數(shù)用符號表示。例如,用PIPI表示表示3.14159263.1415926,用用E E表示表示2.718282.71828等。等。定義符號常量定義符號常量的語句:的語句: ConstConst AsAs = = 例例ConstConst PI PI AsAs DoubleDouble =3.1415926 =

18、3.1415926 Const xm=“zhang3”Const HJS#=0.61819/59變變量量及及其其賦賦值值變量變量是在程序運(yùn)行過程中可以隨時改變的是在程序運(yùn)行過程中可以隨時改變的量,通常用于存儲程序處理的原始數(shù)據(jù)或中量,通常用于存儲程序處理的原始數(shù)據(jù)或中間結(jié)果。間結(jié)果。在在VBVB中,變量有兩種形式,即中,變量有兩種形式,即內(nèi)存變量內(nèi)存變量和和對象屬性變量對象屬性變量(如(如CaptionCaption和和ValueValue等)。等)。 20/59變變量量及及其其賦賦值值變量命名:變量命名:每個變量必須有符合規(guī)定的名稱,每個變量必須有符合規(guī)定的名稱,在在VBVB中為中為變量命名

19、的規(guī)則變量命名的規(guī)則如下。如下。變量名必須以變量名必須以字母字母或或漢字開頭漢字開頭,由,由英文英文字母字母、漢字漢字、數(shù)字?jǐn)?shù)字或或下劃線下劃線組成,字母組成,字母不不區(qū)分大小寫區(qū)分大小寫,變量名,變量名最大長度為最大長度為255255個個字字符。符。不能用不能用VBVB的的保留字保留字作為變量名。作為變量名。21/59變變量量及及其其賦賦值值變量聲明:變量聲明:聲明變量就是為變量命名及說明聲明變量就是為變量命名及說明數(shù)據(jù)類型。數(shù)據(jù)類型。聲明變量的語句聲明變量的語句格式如下:格式如下: DimDim 1 As As , n As As 例例Dim X As Integer, Y As Stri

20、ng X = 10Y = “zhang3”22/59變變量量及及其其賦賦值值當(dāng)程序中需要處理多個有聯(lián)系的數(shù)據(jù)時,當(dāng)程序中需要處理多個有聯(lián)系的數(shù)據(jù)時,可以用可以用數(shù)組數(shù)組減少變量個數(shù)。減少變量個數(shù)。數(shù)組數(shù)組是使用是使用一個名字一個名字同時同時定義多個定義多個同類型同類型的的變量變量,每一個變量稱為一個,每一個變量稱為一個數(shù)組元素?cái)?shù)組元素。例例Dim Score(99) as IntegerDim Score(99) as Integer 定義數(shù)組定義數(shù)組ScoreScore,其含有,其含有100100個元素,即個元素,即Score(0), Score(1),Score(0), Score(1),

21、,Score(99)Score(99)23/59表表 達(dá)達(dá) 式式算術(shù)運(yùn)算算術(shù)運(yùn)算:+ +(加)、(加)、(減)、(減)、* *(乘)、(乘)、(除)、(除)、ModMod(求余數(shù))和(求余數(shù))和 (乘方)等,(乘方)等,運(yùn)算優(yōu)先級別遵循數(shù)學(xué)中的規(guī)定。運(yùn)算優(yōu)先級別遵循數(shù)學(xué)中的規(guī)定。字符運(yùn)算字符運(yùn)算:& &或或+ +將兩個字符串連接成一個將兩個字符串連接成一個字符串。字符串。日期運(yùn)算日期運(yùn)算:主要有如下兩種格式。:主要有如下兩種格式。 - - 2:兩個日期相減,得到相隔天數(shù)。:兩個日期相減,得到相隔天數(shù)。 n:得到日期:得到日期n n天后或天后或n n天前的日期。天前的日期。VBVB常用常用基本運(yùn)

22、算符號基本運(yùn)算符號有如下幾類:有如下幾類:24/59表表 達(dá)達(dá) 式式關(guān)系運(yùn)算關(guān)系運(yùn)算:運(yùn)算結(jié)果為邏輯型數(shù)據(jù)。運(yùn)算:運(yùn)算結(jié)果為邏輯型數(shù)據(jù)。運(yùn)算符號有:符號有:= =(等于)、(等于)、(不等)、(不等)、 (大于)、(大于)、=(大于或等于)。(大于或等于)。邏輯運(yùn)算邏輯運(yùn)算:ANDAND(并且)、(并且)、OR (OR (或者或者) )、NOTNOT(否定)。運(yùn)算優(yōu)先級(否定)。運(yùn)算優(yōu)先級NOTNOT最高,最高,OROR最低。最低。標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù):是程序設(shè)計(jì)語言提供的內(nèi)部函:是程序設(shè)計(jì)語言提供的內(nèi)部函數(shù),供人們設(shè)計(jì)程序時調(diào)用。數(shù),供人們設(shè)計(jì)程序時調(diào)用。VBVB常用基本運(yùn)算符號常用基本運(yùn)算符號

23、有如下幾類:有如下幾類:25/59程程序序控控制制結(jié)結(jié)構(gòu)構(gòu) 語句的執(zhí)行順序與操作的數(shù)據(jù)和程序的語句的執(zhí)行順序與操作的數(shù)據(jù)和程序的控制結(jié)構(gòu)有關(guān)。程序有控制結(jié)構(gòu)有關(guān)。程序有順序順序、分支分支(選擇)(選擇)和和循環(huán)循環(huán)(重復(fù))(重復(fù))3 3種控制結(jié)構(gòu)。種控制結(jié)構(gòu)。 順序結(jié)構(gòu)順序結(jié)構(gòu)是按照程序的編寫順序執(zhí)行是按照程序的編寫順序執(zhí)行的一種控制結(jié)構(gòu)。的一種控制結(jié)構(gòu)。 語句1語句226/59分分 支支 結(jié)結(jié) 構(gòu)構(gòu)分支結(jié)構(gòu)分支結(jié)構(gòu)是一種根據(jù)條件(邏輯值表達(dá)式)是一種根據(jù)條件(邏輯值表達(dá)式)確定程序執(zhí)行取向的控制結(jié)構(gòu),也稱確定程序執(zhí)行取向的控制結(jié)構(gòu),也稱選擇選擇結(jié)構(gòu)結(jié)構(gòu)。 VBVB有有簡單分支簡單分支和和多分

24、支多分支兩種結(jié)構(gòu)。兩種結(jié)構(gòu)。27/59簡簡單單分分支支結(jié)結(jié)構(gòu)構(gòu)語句格式語句格式1 1:If If Then Then Else Else 2 語句格式語句格式2 2: If If Then Then 1 Else Else 2 End If End If表達(dá)式表達(dá)式可以是可以是關(guān)系關(guān)系、邏輯邏輯或或算術(shù)表達(dá)式算術(shù)表達(dá)式。算。算術(shù)表達(dá)式的值術(shù)表達(dá)式的值0 0為為FalseFalse,非非0 0為為TrueTrue。TrueTrue語句序語句序列列1 1FalseFalse不使用不使用ElseElse短語短語TrueTrue表達(dá)表達(dá)式式語句序語句序列列2 2語句序語句序列列1 1FalseFals

25、e使用使用ElseElse短語短語表達(dá)表達(dá)式式28/59步驟:步驟:1.1.啟動啟動VBVB,創(chuàng)建,創(chuàng)建標(biāo)準(zhǔn)標(biāo)準(zhǔn)EXEEXE工程。工程。2.2.設(shè)計(jì)設(shè)計(jì)程序界面程序界面。3.3.編寫求解按鈕的編寫求解按鈕的ClickClick事件代碼事件代碼。4.4.單擊單擊標(biāo)準(zhǔn)標(biāo)準(zhǔn)工具欄中的工具欄中的啟動啟動圖標(biāo),查看程圖標(biāo),查看程序執(zhí)行效果序執(zhí)行效果。簡簡單單分分支支結(jié)結(jié)構(gòu)構(gòu)例:例:求解一元二次方程求解一元二次方程 axax2 2+bx+c=0+bx+c=0的解。的解。Dim A As Single, B As Single, C As SingleDim A As Single, B As Single

26、, C As SingleA = Text1.Text : B = Text2.Text : C = A = Text1.Text : B = Text2.Text : C = Text3.Text Text3.Text If B2 -4If B2 -4* *A A* *C 0 Then C 0 Then Text4.Text = (-B+Sqr(B2-4 Text4.Text = (-B+Sqr(B2-4* *A A* *C)/(2C)/(2* *A) A) Text5.Text = (-B-Sqr(B2-4 Text5.Text = (-B-Sqr(B2-4* *A A* *C)/(2C)

27、/(2* *A)A) Text5.Visible = True Text5.Visible = TrueElseElse Text5.Visible = False Text5.Visible = False If B2-4 If B2-4* *A A* *C = 0 Then C = 0 Then Text4.Text = -B/(2 Text4.Text = -B/(2* *A) A) Else Else Text4.Text = Text4.Text = 無解無解 End If End IfEnd IfEnd If29/59簡簡單單分分支支結(jié)結(jié)構(gòu)構(gòu)分支函數(shù)分支函數(shù):在一些程序中充分利用分

28、支函在一些程序中充分利用分支函數(shù)數(shù)iifiif代替代替ifif結(jié)構(gòu),可以簡化程序。結(jié)構(gòu),可以簡化程序。格式:格式: IIfIIf(, , , , )說明說明:如果表達(dá)式的值為:如果表達(dá)式的值為TrueTrue,則,則IIfIIf函數(shù)函數(shù)的值為表達(dá)式的值為表達(dá)式1 1的值,否則,函數(shù)的值為表的值,否則,函數(shù)的值為表達(dá)式達(dá)式2 2的值。的值。例例:判斷一元二次方程的根的情況:判斷一元二次方程的根的情況:Text4.Text = IIf( B2-4Text4.Text = IIf( B2-4* *A A* *C = 0 , -B/(2C = 0 , -B/(2* *A) ,A) ,無解無解)30/5

29、9簡簡單單分分支支結(jié)結(jié)構(gòu)構(gòu)MsgBoxMsgBox對話框函數(shù)對話框函數(shù)在執(zhí)行程序過程中,經(jīng)常彈出對話框,根在執(zhí)行程序過程中,經(jīng)常彈出對話框,根據(jù)用戶單擊對話框上的按鈕,程序進(jìn)行適當(dāng)據(jù)用戶單擊對話框上的按鈕,程序進(jìn)行適當(dāng)?shù)奶幚?。的處理。函?shù)格式函數(shù)格式: MsgBoxMsgBox( ( , , )。MsgBoxMsgBox ( (是否關(guān)閉窗口是否關(guān)閉窗口,292292, , 詢問詢問)292=256+4+32 292=256+4+32 其中:其中:256 256 默認(rèn)第默認(rèn)第2 2個按鈕個按鈕 4 4 使用使用“是是”和和“否否”兩個按鈕兩個按鈕 32 32 問號圖標(biāo)問號圖標(biāo)例例31/59多多分

30、分支支結(jié)結(jié)構(gòu)構(gòu)多分支多分支可以使用可以使用SelectCaseSelectCase多分支語句多分支語句或或IfIf語句的嵌套格式語句的嵌套格式實(shí)現(xiàn),用來進(jìn)行多種可能取實(shí)現(xiàn),用來進(jìn)行多種可能取值的判斷。值的判斷。32/59多多分分支支結(jié)結(jié)構(gòu)構(gòu)多分支多分支IfIf語句語句格式為:格式為:IfIf 1 Then Then 1ElseIf ElseIf 2 ThenThen 2ElseIfElseIf n ThenThen n Else Else n+1 End IfEnd If表達(dá)式表達(dá)式1 1TrueTrue語句序列語句序列1 1FalseFalse表達(dá)式表達(dá)式2 2語句序列語句序列2 2Fals

31、eFalseTrueTrueFalseFalse表達(dá)式表達(dá)式n n語句序列語句序列n nFalseFalseTrueTrueElseElse語句序列語句序列n+1n+133/59多多分分支支結(jié)結(jié)構(gòu)構(gòu)多分支多分支Select CaseSelect Case語句語句: :適用于可能出現(xiàn)適用于可能出現(xiàn)的多種取值判斷的多種取值判斷,其使用格式如下其使用格式如下:Select Case Select Case Case Case 1 CaseCase 2 2 CaseCase n n Case Else Case Else n+1 End SelectEnd Select表達(dá)式表達(dá)式列表列表1 1之一為

32、之一為TrueTrue語句序列語句序列1 1全為全為FalseFalse語句序列語句序列2 2語句序列語句序列n nCase ElseCase Else語句序列語句序列n+1n+1表達(dá)式列表表達(dá)式列表2 2表達(dá)式列表表達(dá)式列表n n之一為之一為TrueTrue之一為之一為TrueTrue全為全為FalseFalse全為全為FalseFalse全部為全部為FalseFalse表達(dá)式表達(dá)式表達(dá)式表達(dá)式可以是可以是數(shù)值數(shù)值或或字符串字符串表達(dá)式。執(zhí)行到表達(dá)式。執(zhí)行到Select CaseSelect Case語句時,首先計(jì)算語句時,首先計(jì)算表達(dá)式表達(dá)式的值,的值,然后從然后從Case Case 1開

33、始,將表達(dá)式開始,將表達(dá)式列表列表i i中各個表達(dá)式的值與中各個表達(dá)式的值與表達(dá)式表達(dá)式比較。比較。 允許允許多個比較表達(dá)式多個比較表達(dá)式,之間用逗號,之間用逗號“,”分分隔隔 ; ; 可以使用可以使用Is Is 運(yùn)算運(yùn)算; ; 可以使用可以使用 To To 2 運(yùn)算運(yùn)算。34/59循循環(huán)環(huán)程程序序設(shè)設(shè)計(jì)計(jì)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)又稱為又稱為重復(fù)結(jié)構(gòu)重復(fù)結(jié)構(gòu),根據(jù)判斷條件,根據(jù)判斷條件確定是否重復(fù)執(zhí)行某段程序代碼,將重復(fù)執(zhí)確定是否重復(fù)執(zhí)行某段程序代碼,將重復(fù)執(zhí)行的程序段稱為行的程序段稱為循環(huán)體循環(huán)體。重復(fù)結(jié)構(gòu)可以簡化程序,適用于重復(fù)結(jié)構(gòu)可以簡化程序,適用于有規(guī)律有規(guī)律變變化的重復(fù)計(jì)算或操作。循環(huán)體的重

34、復(fù)執(zhí)行次化的重復(fù)計(jì)算或操作。循環(huán)體的重復(fù)執(zhí)行次數(shù)由數(shù)由循環(huán)控制條件循環(huán)控制條件決定。一般有決定。一般有當(dāng)型當(dāng)型和和直到直到型型兩種循環(huán)結(jié)構(gòu)。兩種循環(huán)結(jié)構(gòu)。35/59循循環(huán)環(huán)程程序序設(shè)設(shè)計(jì)計(jì)ForFor循環(huán)循環(huán)是一種是一種當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu),主要用于設(shè),主要用于設(shè)計(jì)循環(huán)步長固定的程序。計(jì)循環(huán)步長固定的程序。語句格式:語句格式:ForFor = ToTo StepStep NextNext 循環(huán)變量循環(huán)變量也稱也稱循環(huán)控制變量循環(huán)控制變量。初值、終值。初值、終值和步長都是數(shù)值型表達(dá)式,它們決定了循環(huán)和步長都是數(shù)值型表達(dá)式,它們決定了循環(huán)體的執(zhí)行次數(shù)。體的執(zhí)行次數(shù)。當(dāng)型循環(huán)當(dāng)型循環(huán)首先首先判斷

35、循環(huán)條件判斷循環(huán)條件,如果條件為,如果條件為TrueTrue,則則執(zhí)行循環(huán)體執(zhí)行循環(huán)體,之后,之后再再轉(zhuǎn)而轉(zhuǎn)而判斷判斷條件,重復(fù)這條件,重復(fù)這個過程;如果條件為個過程;如果條件為FalseFalse,則,則終止循環(huán)語句終止循環(huán)語句,如果第一次判斷條件即為如果第一次判斷條件即為FalseFalse,則直接跳出,則直接跳出循環(huán),執(zhí)行后續(xù)語句。循環(huán),執(zhí)行后續(xù)語句。 FalseFalseTrueTrue表達(dá)式表達(dá)式循環(huán)體循環(huán)體36/59步驟:步驟: 1. 1. 啟動啟動VBVB,創(chuàng)建,創(chuàng)建標(biāo)準(zhǔn)標(biāo)準(zhǔn)EXEEXE工程。工程。 2. 2. 設(shè)計(jì)設(shè)計(jì)程序界面程序界面。 3. 3. 編寫計(jì)算按鈕的編寫計(jì)算按鈕的

36、ClickClick事件代碼事件代碼。 4. 4. 單擊標(biāo)準(zhǔn)工具欄上的啟動按鈕,查看程單擊標(biāo)準(zhǔn)工具欄上的啟動按鈕,查看程序的運(yùn)行效果。序的運(yùn)行效果。循循環(huán)環(huán)程程序序設(shè)設(shè)計(jì)計(jì)例例:計(jì)算階乘。計(jì)算階乘。Dim M As Long, N As Long, S As LongDim M As Long, N As Long, S As LongS = 1S = 1N = Text1.Text N = Text1.Text For M = 1 To NFor M = 1 To N S = S S = S * * M MNextNextText2.Text = S Text2.Text = S 37/59

37、循循環(huán)環(huán)程程序序設(shè)設(shè)計(jì)計(jì)Do WhileDo While循環(huán)循環(huán)也是一種也是一種當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu),主,主要用于設(shè)計(jì)循環(huán)步長不確定的程序。要用于設(shè)計(jì)循環(huán)步長不確定的程序。語句格式語句格式: Do WhileDo While Loop LoopDim M As Long, N As Long, S As LongDim M As Long, N As Long, S As LongS = 1S = 1N = Text1.Text N = Text1.Text Do While M=NDo While M=N S = S S = S * * M : M=M+1 M : M=M+1LoopLo

38、opText2.Text = S Text2.Text = S 階乘的階乘的Do WhileDo While循環(huán)實(shí)現(xiàn)循環(huán)實(shí)現(xiàn)38/59循循環(huán)環(huán)程程序序設(shè)設(shè)計(jì)計(jì)DoDo循環(huán)循環(huán)是一種是一種直到型循環(huán)直到型循環(huán)結(jié)構(gòu),主要用于結(jié)構(gòu),主要用于設(shè)計(jì)循環(huán)步長不確定,并且循環(huán)體至少執(zhí)行設(shè)計(jì)循環(huán)步長不確定,并且循環(huán)體至少執(zhí)行一次的程序。一次的程序。語句格式語句格式: D Do o Loop Until Loop Until 直到型循環(huán)直到型循環(huán)是是先運(yùn)行先運(yùn)行一次一次循環(huán)體循環(huán)體,隨后判斷條,隨后判斷條件,檢測到件,檢測到條件條件為為TrueTrue時再執(zhí)行循環(huán)體;條件時再執(zhí)行循環(huán)體;條件為為FalseFal

39、se則則終止循環(huán)終止循環(huán)。 TrueTrue循環(huán)體循環(huán)體FalseFalse表達(dá)式表達(dá)式39/59循循環(huán)環(huán)程程序序設(shè)設(shè)計(jì)計(jì)例例:階乘計(jì)算按鈕的:階乘計(jì)算按鈕的DoDo循環(huán)循環(huán)實(shí)現(xiàn)。實(shí)現(xiàn)。Dim M As Long, N As Long, S As LongS = 1M = 1 N = Text1.Text Do S = S * M M=M+1Loop Until MNText2.Text = S 40/59子子程程序序設(shè)設(shè)計(jì)計(jì)一個功能比較復(fù)雜的結(jié)構(gòu)化程序一般由若干一個功能比較復(fù)雜的結(jié)構(gòu)化程序一般由若干個功能相對獨(dú)立的、相關(guān)聯(lián)的程序模塊組成。個功能相對獨(dú)立的、相關(guān)聯(lián)的程序模塊組成。在程序設(shè)計(jì)中,

40、將每個程序模塊稱為在程序設(shè)計(jì)中,將每個程序模塊稱為子程序子程序、過程過程或或函數(shù)函數(shù)。為區(qū)別子程序(過程)和函數(shù),通常將為區(qū)別子程序(過程)和函數(shù),通常將沒有沒有返回值返回值的程序模塊稱為的程序模塊稱為過程過程;有返回值有返回值的程的程序模塊稱為序模塊稱為函數(shù)函數(shù)或或用戶定義函數(shù)用戶定義函數(shù)。41/59子子程程序序設(shè)設(shè)計(jì)計(jì)在在VBVB中,程序模塊分為中,程序模塊分為事件過程事件過程(如(如ClickClick)、)、SubSub子程序子程序和和FunctionFunction函數(shù)函數(shù)3 3種。種。所謂所謂事件過程事件過程就是當(dāng)發(fā)生某個事件時,執(zhí)行該事就是當(dāng)發(fā)生某個事件時,執(zhí)行該事件的程序代碼,

41、件的程序代碼,VBVB的可視化設(shè)計(jì)方法自動生成其的可視化設(shè)計(jì)方法自動生成其SubSub子程序子程序。 SubSub子程序子程序即過程,沒有返回值的程序模塊即過程,沒有返回值的程序模塊。命令按鈕命令按鈕Command1Command1的的ClickClick代碼代碼42/59子子程程序序設(shè)設(shè)計(jì)計(jì)通過下列格式通過下列格式設(shè)計(jì)函數(shù)設(shè)計(jì)函數(shù):Function Function ( (參數(shù)列表參數(shù)列表) ) As As = = End FunctionEnd Function 定義函數(shù)時的參數(shù)稱為定義函數(shù)時的參數(shù)稱為形式參數(shù)形式參數(shù),簡稱,簡稱形參形參,用于接收調(diào)用程序傳來的數(shù)據(jù)。,用于接收調(diào)用程序傳來

42、的數(shù)據(jù)。As As 類型類型 是是函數(shù)值的數(shù)據(jù)類型函數(shù)值的數(shù)據(jù)類型,通過函,通過函數(shù)體中的語句:數(shù)體中的語句: = ,返回,返回函數(shù)的運(yùn)算結(jié)果。函數(shù)的運(yùn)算結(jié)果。說明說明:43/59子子程程序序設(shè)設(shè)計(jì)計(jì)FunctionFunction JC( JC(ByValByVal N As LongN As Long) ) As LongAs Long Dim m As Long Dim m As Long 函數(shù)體中用到的變量函數(shù)體中用到的變量 JC = 1 JC = 1 為函數(shù)名賦初值為函數(shù)名賦初值 For m = 1 To N NFor m = 1 To N N為形參,其值由調(diào)用程序傳來為形參,其值由

43、調(diào)用程序傳來 JC = JC JC = JC * * m m 階乘存于函數(shù)名階乘存于函數(shù)名JCJC中,作為函中,作為函 數(shù)的返回值數(shù)的返回值 NextNextEnd FunctionEnd Function 結(jié)束結(jié)束JCJC的函數(shù)體的函數(shù)體例:例:使用使用函數(shù)方式函數(shù)方式實(shí)現(xiàn)實(shí)現(xiàn)階乘的計(jì)算階乘的計(jì)算,函數(shù),函數(shù)名為名為JC,JC,形參形參N N為長整型為長整型, ,返回值為長整型返回值為長整型44/33程序WindowsWindows操作系統(tǒng)中操作系統(tǒng)中運(yùn)行應(yīng)用程序運(yùn)行應(yīng)用程序的的方法方法:開始開始按鈕按鈕程序,選擇應(yīng)用程序單擊;程序,選擇應(yīng)用程序單擊;雙擊雙擊桌面桌面上的應(yīng)用程序上的應(yīng)用程序

44、圖標(biāo)圖標(biāo);雙擊打開雙擊打開文件夾文件夾中應(yīng)用程序中應(yīng)用程序圖標(biāo)圖標(biāo);雙擊快捷方式圖標(biāo);雙擊快捷方式圖標(biāo);單擊單擊開始開始按鈕按鈕運(yùn)行運(yùn)行,輸入應(yīng)用程序的路,輸入應(yīng)用程序的路徑及文件名稱徑及文件名稱 確定確定按鈕。按鈕。45/33用程序設(shè)計(jì)語言(匯編或高級語言)編寫程序時,用程序設(shè)計(jì)語言(匯編或高級語言)編寫程序時,都是用符號代碼(指令、語句或命令)或?qū)ο螅ㄈ缍际怯梅柎a(指令、語句或命令)或?qū)ο螅ㄈ绱翱凇⒉藛危┻M(jìn)行程序設(shè)計(jì)。通常,將窗口、菜單)進(jìn)行程序設(shè)計(jì)。通常,將設(shè)計(jì)的內(nèi)容設(shè)計(jì)的內(nèi)容稱為稱為源程序源程序,將保存這些內(nèi)容的文件稱為,將保存這些內(nèi)容的文件稱為源程序文源程序文件件。 程序及其類型

45、根據(jù)程序所處軟件的開發(fā)階段或運(yùn)行方式的不根據(jù)程序所處軟件的開發(fā)階段或運(yùn)行方式的不同,程序主要有同,程序主要有源程序源程序、可執(zhí)行程序可執(zhí)行程序和和動態(tài)鏈動態(tài)鏈接庫接庫3 3種類型。種類型。 可執(zhí)行程序可執(zhí)行程序是由源程序翻譯(編譯)生成的、是由源程序翻譯(編譯)生成的、真實(shí)的機(jī)器語言程序。在真實(shí)的機(jī)器語言程序。在WindowsWindows中,最常用中,最常用的可執(zhí)行程序文件擴(kuò)展名為的可執(zhí)行程序文件擴(kuò)展名為EXEEXE和和COMCOM。 動態(tài)鏈接庫動態(tài)鏈接庫是由源程序生成的機(jī)器語言程序的是由源程序生成的機(jī)器語言程序的另一種形式,主要作為可執(zhí)行程序的輔助文件,另一種形式,主要作為可執(zhí)行程序的輔助

46、文件,不能獨(dú)立運(yùn)行。不能獨(dú)立運(yùn)行。46/33程序及其類型源程序的源程序的翻譯方式翻譯方式:編譯方式編譯方式:通過程序設(shè)計(jì)語言提供的編譯:通過程序設(shè)計(jì)語言提供的編譯或生成工具,系統(tǒng)自動對或生成工具,系統(tǒng)自動對整個源程序整個源程序逐句進(jìn)逐句進(jìn)行詞法分析、語法分析和機(jī)器語言指令翻譯。行詞法分析、語法分析和機(jī)器語言指令翻譯。 解釋方式解釋方式:在程序設(shè)計(jì)語言環(huán)境中直接運(yùn):在程序設(shè)計(jì)語言環(huán)境中直接運(yùn)行源程序,在執(zhí)行行源程序,在執(zhí)行每條語句每條語句前,系統(tǒng)先分析前,系統(tǒng)先分析語句的詞法和語法,若語句正確,則生成并語句的詞法和語法,若語句正確,則生成并執(zhí)行機(jī)器語言指令,直到程序運(yùn)行結(jié)束。執(zhí)行機(jī)器語言指令,直

47、到程序運(yùn)行結(jié)束。47/33軟件工程概述軟件工程軟件工程是將系統(tǒng)的、規(guī)范的、可度量的方法是將系統(tǒng)的、規(guī)范的、可度量的方法應(yīng)用于軟件開發(fā)和維護(hù)整體過程的一門科學(xué),應(yīng)用于軟件開發(fā)和維護(hù)整體過程的一門科學(xué),用用數(shù)學(xué)數(shù)學(xué)、計(jì)算機(jī)科學(xué)計(jì)算機(jī)科學(xué)和和管理科學(xué)管理科學(xué)的原理,借助的原理,借助傳統(tǒng)傳統(tǒng)工程科學(xué)工程科學(xué)的原則和方法的原則和方法創(chuàng)建與維護(hù)軟件創(chuàng)建與維護(hù)軟件,從而達(dá)到提高軟件質(zhì)量、降低軟件成本的目的。從而達(dá)到提高軟件質(zhì)量、降低軟件成本的目的。 數(shù)學(xué)用于構(gòu)造數(shù)學(xué)模型和算法。數(shù)學(xué)用于構(gòu)造數(shù)學(xué)模型和算法。計(jì)算機(jī)科學(xué)負(fù)責(zé)軟件實(shí)現(xiàn)和運(yùn)行計(jì)算機(jī)科學(xué)負(fù)責(zé)軟件實(shí)現(xiàn)和運(yùn)行 。管理科學(xué)用于進(jìn)度、資源、質(zhì)量和經(jīng)費(fèi)管理管理科

48、學(xué)用于進(jìn)度、資源、質(zhì)量和經(jīng)費(fèi)管理 。工程科學(xué)用于制定規(guī)范、確定樣例和評估成本工程科學(xué)用于制定規(guī)范、確定樣例和評估成本 。48/33軟件工程概述軟件工程軟件工程的誕生背景的誕生背景程序設(shè)計(jì)時代程序設(shè)計(jì)時代:軟件開發(fā)主要是個體手軟件開發(fā)主要是個體手工勞動,程序設(shè)計(jì)語言是機(jī)器語言和匯編工勞動,程序設(shè)計(jì)語言是機(jī)器語言和匯編語言,這個階段被稱為程序設(shè)計(jì)時代。軟語言,這個階段被稱為程序設(shè)計(jì)時代。軟件開發(fā)完全依賴程序設(shè)計(jì)者的件開發(fā)完全依賴程序設(shè)計(jì)者的個人技能個人技能,不重視程序設(shè)計(jì)方法。不重視程序設(shè)計(jì)方法。 程序系統(tǒng)時代程序系統(tǒng)時代:高級程序設(shè)計(jì)語言出現(xiàn)高級程序設(shè)計(jì)語言出現(xiàn)后,提出了后,提出了結(jié)構(gòu)化程序設(shè)計(jì)

49、的方法結(jié)構(gòu)化程序設(shè)計(jì)的方法,并成,并成為軟件開發(fā)的主要工具,稱此階段為程序?yàn)檐浖_發(fā)的主要工具,稱此階段為程序系統(tǒng)時代。系統(tǒng)時代。 49/33供需矛盾供需矛盾;開發(fā)成本和時間失控;開發(fā)成本和時間失控;質(zhì)量難以保障質(zhì)量難以保障;維護(hù)困難維護(hù)困難。主要表現(xiàn)主要表現(xiàn) :軟件工程概述軟件危機(jī)軟件危機(jī)是泛指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)是泛指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。過程中所遇到的一系列嚴(yán)重問題。 軟件發(fā)展速度落后于硬件發(fā)展水平,人們對軟軟件發(fā)展速度落后于硬件發(fā)展水平,人們對軟件的需求得不到滿足。件的需求得不到滿足。 管理人員缺少開發(fā)軟件的經(jīng)驗(yàn),需求描述不準(zhǔn)確,管理人員缺少開發(fā)軟件

50、的經(jīng)驗(yàn),需求描述不準(zhǔn)確,而開發(fā)人員又缺少管理經(jīng)驗(yàn),二者之間缺乏交流工而開發(fā)人員又缺少管理經(jīng)驗(yàn),二者之間缺乏交流工具,過分依賴開發(fā)人員在軟件開發(fā)過程中的技巧和具,過分依賴開發(fā)人員在軟件開發(fā)過程中的技巧和創(chuàng)造力,因此,很難開發(fā)出高質(zhì)量的實(shí)用軟件。創(chuàng)造力,因此,很難開發(fā)出高質(zhì)量的實(shí)用軟件。 由于缺乏軟件開發(fā)規(guī)范和技術(shù)文檔,人們很難閱讀由于缺乏軟件開發(fā)規(guī)范和技術(shù)文檔,人們很難閱讀和修改其他人開發(fā)的軟件,使軟件維護(hù)、移植和升和修改其他人開發(fā)的軟件,使軟件維護(hù)、移植和升級困難,導(dǎo)致軟件重復(fù)開發(fā)問題嚴(yán)重,軟件復(fù)用性級困難,導(dǎo)致軟件重復(fù)開發(fā)問題嚴(yán)重,軟件復(fù)用性降低。降低。 50/33軟件工程軟件工程主要包括主

51、要包括軟件開發(fā)技術(shù)軟件開發(fā)技術(shù)和和軟件工程軟件工程管理管理。 軟件工程的內(nèi)容軟件開發(fā)技術(shù)軟件開發(fā)技術(shù)根據(jù)軟件的類型,制定軟件的開根據(jù)軟件的類型,制定軟件的開發(fā)策略、原則、步驟和相關(guān)文檔資料,將軟件發(fā)策略、原則、步驟和相關(guān)文檔資料,將軟件開發(fā)納入規(guī)范化和工程化管理。開發(fā)納入規(guī)范化和工程化管理。軟件工程軟件工程是一門交叉科學(xué),包含是一門交叉科學(xué),包含方法方法、工具工具和和過程過程3 3個要素。個要素。方法方法是完成軟件項(xiàng)目的是完成軟件項(xiàng)目的技術(shù)手段技術(shù)手段,它支持項(xiàng)目,它支持項(xiàng)目的計(jì)劃和估算、系統(tǒng)環(huán)境和軟件需求分析、軟的計(jì)劃和估算、系統(tǒng)環(huán)境和軟件需求分析、軟件設(shè)計(jì)、編碼、測試和維護(hù)。件設(shè)計(jì)、編碼、

52、測試和維護(hù)。 除了程序設(shè)計(jì)語言(如除了程序設(shè)計(jì)語言(如C C、VBVB等)和數(shù)據(jù)庫管等)和數(shù)據(jù)庫管理系統(tǒng)(理系統(tǒng)(AccessAccess、VFPVFP和和SQL ServerSQL Server等)外,等)外,還應(yīng)該包括還應(yīng)該包括軟件輔助設(shè)計(jì)工具軟件輔助設(shè)計(jì)工具,協(xié)助管理項(xiàng)目,協(xié)助管理項(xiàng)目和生成相關(guān)的文檔。和生成相關(guān)的文檔。 過程過程用于控制和管理軟件開發(fā)和維護(hù)的各個重用于控制和管理軟件開發(fā)和維護(hù)的各個重要環(huán)節(jié)。要環(huán)節(jié)。 軟件工程管理軟件工程管理按按工程化思想工程化思想管理軟件生產(chǎn)過程管理軟件生產(chǎn)過程的的各個重要環(huán)節(jié)各個重要環(huán)節(jié),按計(jì)劃、進(jìn)度和預(yù)算實(shí)施軟,按計(jì)劃、進(jìn)度和預(yù)算實(shí)施軟件開發(fā)和維護(hù)

53、,以達(dá)到預(yù)期的目標(biāo)。件開發(fā)和維護(hù),以達(dá)到預(yù)期的目標(biāo)。 51/33軟件工程的基本目標(biāo)軟件工程的基本目標(biāo)是軟件工程的基本目標(biāo)是付出較低的開付出較低的開發(fā)成本發(fā)成本,達(dá)到達(dá)到要求的要求的軟件功能軟件功能;按時完成按時完成開發(fā)任務(wù),開發(fā)任務(wù),及時交付及時交付使用;使用;開發(fā)出來的軟件具有良好的開發(fā)出來的軟件具有良好的穩(wěn)定性穩(wěn)定性、可靠性可靠性、適應(yīng)性適應(yīng)性和和可操作性可操作性,易于移植易于移植和和維護(hù)維護(hù)。 52/33軟件工程的原則 在軟件開發(fā)過程中,必須遵循在軟件開發(fā)過程中,必須遵循抽象性抽象性、信息隱藏性信息隱藏性、模塊化模塊化、局部化局部化、一致性一致性、 完整性完整性和和可驗(yàn)證性可驗(yàn)證性等原則

54、。等原則。抽取抽取事物事物最基本最基本的的特性和行為特性和行為,忽略某些無關(guān),忽略某些無關(guān)緊要的細(xì)節(jié)。緊要的細(xì)節(jié)。 模塊化模塊化是程序中邏輯上相對獨(dú)立的成分,是是程序中邏輯上相對獨(dú)立的成分,是功功能相對獨(dú)立的程序單位能相對獨(dú)立的程序單位(VB(VB語言中的子程序、語言中的子程序、窗體等窗體等) ),具有良好的接口定義,具有良好的接口定義( (如子程序的形如子程序的形式參數(shù)、對象的事件等式參數(shù)、對象的事件等) )。隱藏隱藏信息模塊的信息模塊的實(shí)現(xiàn)細(xì)節(jié)實(shí)現(xiàn)細(xì)節(jié)(如子程序?qū)崿F(xiàn)代碼、(如子程序?qū)崿F(xiàn)代碼、對象的構(gòu)造代碼等),對象的構(gòu)造代碼等),通過通過模塊模塊接口接口實(shí)現(xiàn)實(shí)現(xiàn)操作操作,將注意力集中在更高

55、層次的對象上。將注意力集中在更高層次的對象上。 一個一個模塊模塊的的功能盡量獨(dú)立功能盡量獨(dú)立和完整,不受其他模和完整,不受其他模塊運(yùn)行(如改變同名變量的值)的干擾,在模塊運(yùn)行(如改變同名變量的值)的干擾,在模塊內(nèi)部有較強(qiáng)的內(nèi)聚力,其他模塊只能通過接塊內(nèi)部有較強(qiáng)的內(nèi)聚力,其他模塊只能通過接口與之建立聯(lián)系,以便降低求解問題的復(fù)雜性??谂c之建立聯(lián)系,以便降低求解問題的復(fù)雜性。 在一個軟件系統(tǒng)的各個模塊中,使用規(guī)范、統(tǒng)在一個軟件系統(tǒng)的各個模塊中,使用規(guī)范、統(tǒng)一的符號和術(shù)語;一的符號和術(shù)語;軟件與硬件接口軟件與硬件接口一致;一致;模塊模塊內(nèi)外接口內(nèi)外接口一致;一致;系統(tǒng)規(guī)格說明書與軟件系統(tǒng)的系統(tǒng)規(guī)格說明

56、書與軟件系統(tǒng)的行為行為一致等。一致等。 軟件系統(tǒng)不丟失任何重要成分,軟件系統(tǒng)不丟失任何重要成分,完全實(shí)現(xiàn)完全實(shí)現(xiàn)系統(tǒng)系統(tǒng)所需要的功能。所需要的功能。 開發(fā)大型軟件系統(tǒng)需要逐步分解,開發(fā)大型軟件系統(tǒng)需要逐步分解,系統(tǒng)分解系統(tǒng)分解應(yīng)應(yīng)遵循系統(tǒng)容易檢查、測試和評審的原則,以保遵循系統(tǒng)容易檢查、測試和評審的原則,以保證系統(tǒng)的證系統(tǒng)的可驗(yàn)證性可驗(yàn)證性。 53/33軟件生命周期軟件產(chǎn)品從形成概念開始,經(jīng)過開發(fā)、使用軟件產(chǎn)品從形成概念開始,經(jīng)過開發(fā)、使用和維護(hù),直到最后退役的全過程稱為和維護(hù),直到最后退役的全過程稱為軟件的軟件的生命周期生命周期。 在在“計(jì)算機(jī)軟件開發(fā)規(guī)范計(jì)算機(jī)軟件開發(fā)規(guī)范”的國家標(biāo)準(zhǔn)中,的

57、國家標(biāo)準(zhǔn)中,將將軟件生存周期軟件生存周期劃分為劃分為可行性研究可行性研究(計(jì)劃)、(計(jì)劃)、需求分析需求分析、概要設(shè)計(jì)概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)、代碼實(shí)現(xiàn)代碼實(shí)現(xiàn)、軟件測試軟件測試、使用與維護(hù)使用與維護(hù)7 7個階段,在每個階個階段,在每個階段中都明確規(guī)定了任務(wù)、實(shí)施方法、步驟和段中都明確規(guī)定了任務(wù)、實(shí)施方法、步驟和完成標(biāo)志等,并要求產(chǎn)生相關(guān)的文檔。完成標(biāo)志等,并要求產(chǎn)生相關(guān)的文檔。54/33軟件定義階段1. 可行性研究可行性研究:也稱:也稱軟件計(jì)劃軟件計(jì)劃或或策劃階段策劃階段 。此階段主要對待開發(fā)系統(tǒng)涉及到的此階段主要對待開發(fā)系統(tǒng)涉及到的經(jīng)費(fèi)經(jīng)費(fèi)、軟、軟/ /硬件技術(shù)、硬件技術(shù)、效益效益和和法

58、律法律等方面的問題進(jìn)行等方面的問題進(jìn)行可行性論證,制定系統(tǒng)開發(fā)任務(wù)的實(shí)施計(jì)可行性論證,制定系統(tǒng)開發(fā)任務(wù)的實(shí)施計(jì)劃劃 。 2. 需求分析需求分析:需求需求是用戶對目標(biāo)軟件系統(tǒng)在是用戶對目標(biāo)軟件系統(tǒng)在功能功能、行為行為、性能性能和和約束約束等方面的等方面的要求或期要求或期望望。需求分析需求分析是對是對應(yīng)用問題應(yīng)用問題及其及其環(huán)境環(huán)境的理解的理解與分析,為應(yīng)用問題涉及的事物、功能及系與分析,為應(yīng)用問題涉及的事物、功能及系統(tǒng)行為統(tǒng)行為建立模型建立模型,將,將需求精確化需求精確化和和完整化完整化,最終形成最終形成需求規(guī)格說明書需求規(guī)格說明書。 55/33軟件定義階段需求分析的主要工作:需求分析的主要工作

59、:獲取資料獲取資料 資料分析資料分析 形成需求規(guī)格說明書形成需求規(guī)格說明書 需求評審需求評審 系統(tǒng)分析員系統(tǒng)分析員與與用戶用戶進(jìn)行業(yè)務(wù)交流和探討,不斷進(jìn)行業(yè)務(wù)交流和探討,不斷收集、積累相關(guān)的業(yè)務(wù)資料(文件或表格等),收集、積累相關(guān)的業(yè)務(wù)資料(文件或表格等),加深理解需求,澄清模糊的概念,對有爭議的加深理解需求,澄清模糊的概念,對有爭議的業(yè)務(wù)環(huán)節(jié)業(yè)務(wù)環(huán)節(jié)達(dá)成共識達(dá)成共識等。等。 系統(tǒng)分析員系統(tǒng)分析員對收集的資料進(jìn)行綜合分析和總結(jié),對收集的資料進(jìn)行綜合分析和總結(jié),確確認(rèn)業(yè)務(wù)范圍和處理細(xì)節(jié)認(rèn)業(yè)務(wù)范圍和處理細(xì)節(jié),規(guī)劃業(yè)務(wù)流程規(guī)劃業(yè)務(wù)流程,排除不合,排除不合理的需求,理的需求,確定應(yīng)用問題的解決方案確定

60、應(yīng)用問題的解決方案、目標(biāo)系統(tǒng)的、目標(biāo)系統(tǒng)的功能模塊功能模塊以及以及數(shù)據(jù)模型數(shù)據(jù)模型(如(如E ER R圖形),圖形),建立建立各功能各功能模塊之間的模塊之間的關(guān)聯(lián)關(guān)聯(lián)等。等。 需求分析需求分析的的成果成果是是需求規(guī)格說明書需求規(guī)格說明書,通常包括,通常包括數(shù)據(jù)數(shù)據(jù)描述描述、功能描述功能描述和和性能描述性能描述等信息。它是用戶、系等信息。它是用戶、系統(tǒng)分析員和軟件開發(fā)人員進(jìn)行交流的共識資料,是統(tǒng)分析員和軟件開發(fā)人員進(jìn)行交流的共識資料,是待開發(fā)軟件系統(tǒng)的預(yù)期目標(biāo),同時作為控制軟件的待開發(fā)軟件系統(tǒng)的預(yù)期目標(biāo),同時作為控制軟件的開發(fā)過程,系統(tǒng)功能測試、評估和驗(yàn)收的依據(jù)。開發(fā)過程,系統(tǒng)功能測試、評估和驗(yàn)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論