版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第3章計算機軟件
佛山科學(xué)技術(shù)學(xué)院信息中心
2009年9月
主要內(nèi)容
3.1計算機軟件的基礎(chǔ)知識
3.2程序設(shè)計語言基礎(chǔ)
3.3程序設(shè)計語言的實現(xiàn)
3.4算法
3.5程序設(shè)計步驟和程序設(shè)計方法
3.6軟件開發(fā)基礎(chǔ)
3.1計算機軟件的基礎(chǔ)知識
3.L1計算機軟件的概念
計算機軟件:
■(ComputerSoftware)是指計算機系統(tǒng)中的
程序及其文檔
■分為系統(tǒng)軟件和應(yīng)用軟件兩大類。
3.1.1計算機軟件的概念
計算機軟件的特征:
■軟件是一種邏輯實體,具有抽象性。
■軟件沒有明顯的制造過程。
■軟件在使用過程中,沒有磨損、老化的問題。
■軟件對硬件和環(huán)境有著不同程度的依賴性。
■軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方
式,生產(chǎn)效率低。
■軟件是復(fù)雜的,而且以后會更加復(fù)雜。
■軟件的成本相當(dāng)昂貴?!?/p>
■軟件還必須具備可維護性(Maintainability)、獨
立性(Dependability)、效率性(Efficiency)和
可用性(Usability)四個屬性。
計算機系統(tǒng)的層次結(jié)構(gòu)
用戶用戶用戶
應(yīng)用軟件
系統(tǒng)軟件
操作系統(tǒng)
計算機硬件
3.1.2計算機軟件的分類
系統(tǒng)軟件
■操作系統(tǒng)
控制和管理計算機系統(tǒng)內(nèi)各種軟、硬件資源,合理有效
地組織計算機系統(tǒng)的工作
■語言處理程序
用來把匯編語言或高級語言編制的程序解釋或翻譯成計
算機能執(zhí)行的目標(biāo)程序。
主要有匯編程序、解釋程序和編譯程序
■數(shù)據(jù)庫管理系統(tǒng)(DBMS)
數(shù)據(jù)庫是存儲在一起的相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)是結(jié)
構(gòu)化的,無有害的或不必要的冗余,數(shù)據(jù)庫是可以共享
的、相互關(guān)聯(lián)的、以一定結(jié)構(gòu)組織起來的數(shù)據(jù)集合。
數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)庫中的數(shù)據(jù)進行管理的軟件。
3.L2計算機軟件的分類
操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)(DataBase
ManagementSystem,DBMS)和應(yīng)用程序在硬
件系統(tǒng)的支持下形成了數(shù)據(jù)庫系統(tǒng)。
應(yīng)用程序?qū)?shù)據(jù)庫的一切操作,包括定義、查詢、
更新及各種控制,都是通過DBMS進行的。
根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、
網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷取?/p>
■當(dāng)前流行的關(guān)系型DBMS有FoxPro、Access>SQL
Server、Oracle>Sybase等。
3.L2計算機軟件的分類
■各種實用工具程序
能配合各類其他系統(tǒng)軟件為用戶的應(yīng)用提供方便
和幫助。
磁盤碎片整理程序、磁盤清理等。.
應(yīng)用軟件*
■為用戶解決某個實際問題而編制的程序和有關(guān)資料O
■分為通用軟件(MicrosoftWord、Adobe
Photoshop)和專用軟件。
■中間件是在應(yīng)用軟件與各種系統(tǒng)軟件之間使用標(biāo)準(zhǔn)
的編程接口和協(xié)議。
3.L3計算機軟件的發(fā)展
計算機軟件的發(fā)展劃分為四個階段
階段早期第二階段第三階段第四階段
時間段1950-19651962~19741968~19891986-2003
主要特征面向批處理多用戶分布式系統(tǒng)強大的桌面系
有限的分布實時嵌入“智能”統(tǒng)
自定義軟件數(shù)據(jù)庫低成本硬件面向?qū)ο蠹夹g(shù)
軟件產(chǎn)品出面向大眾,消費專家系統(tǒng)
現(xiàn)者人工神經(jīng)網(wǎng)絡(luò)
者的影響日益增并行計算
強網(wǎng)絡(luò)計算機
軟件生產(chǎn)階程序設(shè)計時程序系統(tǒng)時軟件工程時代軟件工程時代
段代代(結(jié)構(gòu)化方法)(面向?qū)ο蠓?/p>
法)
3.1.3計算機軟件的發(fā)展
計算機軟件生產(chǎn)的歷史可劃分為四個階段:
■程序設(shè)計時代(1946年—1956年),使用機器語
言,匯編語言O(shè)
■程序系統(tǒng)時代(1956年—1968年),使用高級語
言,小集團合作生產(chǎn),提出結(jié)構(gòu)化方法。
■軟件工程時代一結(jié)構(gòu)化方法時代(1968年一1989
年)軟件工程學(xué)科的基本學(xué)科體系得到建立并基
本趨向成熟。
■軟件工程時代一面向?qū)ο蠓椒〞r代(1989年至今)
3.2程序設(shè)計語言基礎(chǔ)
3.2」什么是程序
認(rèn)識簡單的程序
■舉例:做兩個數(shù)相加(C語言實現(xiàn))
main()
{
inta,b,sum;〃變量定義
printf(“請輸入加數(shù)和被加數(shù):\n)〃提示信息
scanf("%d,%d",&a,&b);〃輸入加數(shù)和被加數(shù)
sum=a+b;〃求和
printf("和為:%d\n",sum);〃輸出所求得和的任
)
3?2,1什么是程序
程序的執(zhí)行
■概念
■源程序,
目標(biāo)程序
-可執(zhí)行程序
■程序的翻譯過程
源程序—I翻譯目標(biāo)程序一I_連__接__R裝入模塊一*j_裝___入_I-可執(zhí)行程序
3.2.2程序設(shè)計語言的分類
機器語言
例如,計算A=15+10的機器語言程序如下:
1011000000001111:把15放入累加器A中
0010110000001010:10與累加器A的值相加,結(jié)
果仍放入A中
11110100:結(jié)束,停機
編程工作量大,難學(xué)、難記、難修改,只適合專業(yè)人員
使用;由于不同的計算機,其指令系統(tǒng)不同,機器語言
隨機而異,通用性差,是面向機器的語言。
機器語言優(yōu)點:程序代碼不需要翻譯,所占空間少,執(zhí)
行速度快?,F(xiàn)在已經(jīng)沒有人用機器語言直接編程了。
3.2.2程序設(shè)計語言的分類
■匯編語言
將機器指令的代碼用英文助記符來表示,代替機器語言中的指令
和數(shù)據(jù)。例如用ADD表示加、SUB表示減、JMP表示程序跳轉(zhuǎn)等
等,這種指令助記符的語言就是匯編語言。
例如,計算A=15+10的匯編語言程序:■
MOVA,15:把15放入累加器A中
ADDA,10:10與累加器A相加,結(jié)果存入A中
HLT:結(jié)束,停機
匯編語言克服了機器語言難讀等缺點,保持了其編程質(zhì)量高,占
存儲空間少,執(zhí)行速度快的優(yōu)點。常用于過程控制等編程。匯編
語言面向機器,使用者需要專業(yè)知識。
匯編語言編寫的程序,必須翻譯成機器語言,才能被計算機執(zhí)行。
3.2.2程序設(shè)計語言的分類
.高級語言
■是由表達各種意義的詞和數(shù)學(xué)公式按照一定的語法
規(guī)則來編寫程序的語言。高級語言使程序員可以完
全不用與計算機的硬件打交道,可以不必了解機器
的指令系統(tǒng),是面向過程的語言。這樣,程序員就
可以集中精力來解決問題本身而不必受機器制約,
編程效率高;由于與具體機器無關(guān),因此程序的通
用性強。
■例如,計算A=15+10的C語言程序如下:
sum=15+10;〃15與10相加的結(jié)果放入
sum中printf("sum=%d”,sum);〃輸出sum
面向過程的語言需要詳細地描述“怎樣做”
面向問題的語言僅需要說明“做什么”。
322程序設(shè)M它和與數(shù)據(jù)庫的關(guān)系非常密切,能夠?qū)?/p>
高級語言的分類大型數(shù)據(jù)庫進行高效處理。
■面向過程的語言
用這類語言編程時,程序不僅要說明做什么,還要詳細地
告訴計算機如何做,程序需要詳細描述解題的過程和細節(jié),
如FORTRAN、BASIC、PASCAL、C等。
■面向問題的語言
又稱非過程化的語言或稱第四代語言(4GLS)o用面向問
題的語言解題時,不必關(guān)心問題的求解算法和求解的過程,
只需指出問題是要計算機做什么,數(shù)據(jù)的輸入和輸出形式,
就能得到所需結(jié)果。用SQL面向問題的
例3.1語言實現(xiàn)
■教師節(jié)到了,要對教齡滿2只工發(fā)榮譽證書,要求從
存放教職工檔案的“出,dat”文件中,顯示出教齡滿25
年的教職工的聽在部門。
■SELECT海門,教齡FROMd:\zgda.dbfWHERE教齡
>=25
3.2.2程序設(shè)計語言的分類
■面向?qū)ο笳Z言
在20世紀(jì)80年代推出面向?qū)ο笳Z言。它與以往
各種語言的根本不同點在于:它設(shè)計的出發(fā)點就
是為了能更直接地描述客觀世界中存在的事物
(即對象)以及它們之間的關(guān)系。
面向?qū)ο笳Z言將客觀事物看作具有屬性和行為的
對象,通過抽象找出同一類對象的共同屬性和行
為,形成類。通過類的繼承與多態(tài)可以很方便地
實現(xiàn)代碼重用,這大大提高了程序的復(fù)用能力和
程序開發(fā)效率。面向?qū)ο笳Z言已是程序語言的主
要研究方向之一。面向?qū)ο蟮恼Z言有C++、Java、
VisualBasic等。
3.2.2程序設(shè)計語言的分類
■其他語言
為了滿足解決不同問題的需要,一些以工具形式出
現(xiàn)的語言,也在日益被廣泛使用,如著名的科學(xué)計
算軟件MATLAB,除此以外,還有函數(shù)型語言LISP,
人工智能語言PROLOG,超文本鏈接標(biāo)記語言HTML
和XML等。
32.3程序設(shè)計語言的組成
高級程序設(shè)計語言的組成包括如下成分:
數(shù)據(jù)類型、表達式和賦值、控制結(jié)構(gòu)、輸
入/輸出、函數(shù)和過程。
數(shù)據(jù)類型
■基本數(shù)據(jù)類型:整數(shù)類型、實數(shù)類型、字符類
型、邏輯類型、指針類型等。
■構(gòu)造數(shù)據(jù)類型(由基本數(shù)據(jù)類型按某種方式組
合而成)一般有:數(shù)組類型、記錄類型、枚舉
類型、集合類型、字符類型、文件等
3.2.3程序設(shè)計語言的組成
表達式和賦值
-表達式由變量、常量、函數(shù)調(diào)用和運算符組成。
■例3-2,已知圓半徑,求其面積用C語言描述的語句為:
s=3.14*r*r
其中:s、r為變量,3.14為常量,*為運算符;=為賦值號,
它的語義是將右端表達式計算出的結(jié)果賦給左端的變量。
-變量計算的數(shù)據(jù)對象和計算結(jié)果對象在程序中用變量表示。
變量在使用前必須聲明其類型和名稱,編譯程序根據(jù)其數(shù)據(jù)
類型,在內(nèi)存分配相應(yīng)的存儲空間,以存儲該變量的值。
■運算符計算機不但能進行算術(shù)運算,還能進行邏輯運算。
雖然不同的程序設(shè)計語言提供的運算符種類不同,表示形式
也可能不同,但一般都有如下幾類:
①算術(shù)運算力口、減、乘、除、乘方等。
②關(guān)系運算大于、大于等于、小于、小于等于、等于、不等
于等。
③邏輯運算與、或、非等。
3.2.3程序設(shè)計語言的組成
表達式和賦值
■賦值
賦值是改變變量值的基本手段,在程序設(shè)計語言中使用頻率最
高。不同的程序設(shè)計語言有不同的賦值號,一般用等(=)來
表示。表達式和賦值號構(gòu)成了程序設(shè)計的一條賦值語句。
控制結(jié)構(gòu)
■結(jié)構(gòu)化的程序設(shè)計包括三類控制結(jié)構(gòu)
3.2.3程序設(shè)計語言的組成
選擇結(jié)構(gòu)
循環(huán)結(jié),
3.2.3程序設(shè)計語言的組成
輸入/輸出
程序的輸入/輸出分為兩大類:
■以文件形式數(shù)據(jù)傳送
■人_機交互
■輸入、輸出在不同的程序設(shè)計語言中由不同的
語句或函數(shù)來實現(xiàn)。
■例如C語言的輸入/輸出函數(shù)有:scanf,
printso
3.2.3程序設(shè)計語言的組成
過程(函數(shù))
■將重復(fù)處理程序段或分解的子功能編寫成一個邏輯上
獨立的過程,當(dāng)程序需要該過程時,只需調(diào)用它。
■使用過程可降低程序的復(fù)雜度,簡化程序編寫,便于
調(diào)試。
■一般程序設(shè)計語言中有兩種過程:
函數(shù)過程函數(shù)名有返回值
--子過程子過程名沒有返回值
■各種語言系統(tǒng)還提供了已定義好的大量標(biāo)準(zhǔn)函數(shù),如
數(shù)學(xué)函數(shù)、字符串函數(shù)、類型轉(zhuǎn)換函數(shù)等,放在系統(tǒng)
的函數(shù)庫中,供用戶直接調(diào)用。
3.3程序設(shè)計語言的實現(xiàn)
3.3.1翻譯過程
在所有的程序設(shè)計語言中,除了用機器語言編制
的程序能夠被計算機直接理解和執(zhí)行外,其他的
程序設(shè)計語言編寫的程序都必須經(jīng)過一個翻譯過
程才能轉(zhuǎn)換為計算機所能識別的機器語言程序,
實現(xiàn)這個翻譯過程的工具是語言處理程序,即翻
譯程序。
針對不同的程序設(shè)計語言編寫出的程序,有各自
的翻譯程序,且互相不通用。對于匯編語言編寫
的程序需要用匯編程序進行匯編,而用高級語言
編寫的程序,通過兩種方式進行翻譯,一種是解
釋程序,一種是編譯程序。
3.3.1翻譯過程
匯編程序
■匯編程序是將匯編語言編制的程序(源程序)
翻譯成機器語言程序(目標(biāo)程序)的工具。
■匯編程序的具體翻譯工作步驟:
①用機器操作碼代替符號化的操作符。
②用數(shù)值地址代替符號名稱。
③將常數(shù)翻譯為機器的內(nèi)部表示。
④分配指令和數(shù)據(jù)的存儲單元。
3.3.1翻譯過程
解釋程序
■解釋方式的翻譯工作由解釋程序來完成。解釋
程序?qū)υ闯绦蜻M行逐句分析,若沒有錯誤,將
該語句翻譯成一個或多個機器語言指令,然后
立即執(zhí)行這些指令;翻譯一句執(zhí)行一句,若解
釋時發(fā)現(xiàn)錯誤,會立即停止,報錯并提醒用戶
更正代碼。解釋方式不生成目標(biāo)程序。
■BASIC、LISP等語言采用解釋方式。
3.3.1翻譯過程
編譯程序
■編譯程序?qū)φ麄€源程序經(jīng)過編譯處理,產(chǎn)生一個與
源程序等價的目標(biāo)程序;目標(biāo)程序還可能要調(diào)用一
些其他語言編寫的程序和程序庫中的標(biāo)準(zhǔn)子程序,
通過連接程序?qū)⒛繕?biāo)程序和有關(guān)的程序庫組合成一
個完整的可執(zhí)行程序。執(zhí)行速度快,修改源程序后
都必須重新編譯。一般高級語言(C/C++、PASCAL
FORTRAN>COBOL等)都是采用編譯方式。
編譯程序數(shù)據(jù)
源程序——-一目標(biāo)程序A可執(zhí)行程序————?計算結(jié)果
編譯程序的工作過程
3.3.1翻》譯過程一編譯程序
詞法分析
語法分析’
中間代碼生成
優(yōu)化和目標(biāo)代
碼生成
編譯程序的結(jié)構(gòu)與工作過程
3.3.2連接和裝入
連接:連接程序把若干個目標(biāo)程序(先前的和分
別的翻譯的結(jié)果)、操作系統(tǒng)實用例程和其他實
用軟件連接起來產(chǎn)生一個完整的可執(zhí)行的程序,
轉(zhuǎn)而作為一個文件存放在計算機的大容量存儲系
統(tǒng)中。這種程序有時稱為裝入模塊(Load
module)。
裝入:一旦裝入模塊已經(jīng)生成,它在可以執(zhí)行之
前必須由稱為裝入程序的程序放入到存儲器中。
一個程序一旦完成翻譯和連接步驟,那么它就可
以重復(fù)地裝入和執(zhí)行,不再需要回到源程序。
3.4算法
3.4.1算法概述
在計算機中,把解題過程的準(zhǔn)確而完整的描述稱
為解該題的算法。通俗地講,程序就是用計算機
語言表述的算法;流程圖就是圖形化的算法。
算法可以分為兩大類:
■數(shù)值計算算法
求數(shù)值解,其特點是少量的輸入、輸出,復(fù)雜的運算,如求高
次方程的根、求函數(shù)的定積分等。
■非數(shù)值計算算法
對數(shù)據(jù)的處理,其特點是大量的輸入、輸出,簡單的運算,例
如,對數(shù)據(jù)的排序、查找等算法。
3.4.1算法概述
算法的兩個特征
■基本的操作:算術(shù)運算、關(guān)系運算、邏輯
運算和數(shù)據(jù)傳送等。
■算法的控制結(jié)構(gòu),即順序、選擇、循環(huán)這
三種基本結(jié)構(gòu)。
3.4.1算法概述
算法的性質(zhì)
-有窮性:一個算法必須保證執(zhí)行有限步之后
結(jié)束;
■可行性:算法原則上能夠精確地運行,而且
人們用筆和紙做有限次運算后即可完成。
■確定性:算法的每一步驟必須有確切的定義,
無二義性。
■輸入:一個算法有。個或多個輸入,以刻畫
運算對象的初始情況。
■輸出:一個算法有一個或多個輸出,以反映
對輸入數(shù)據(jù)加工后的結(jié)果。
3.4.2算法的表示
自然語言用人們使用的語言描述算法。
傳統(tǒng)的流程圖法用一些圖框、線條以及
文字說明來形象地、直觀地描述算法。
N6流程圖法去掉了傳統(tǒng)流程圖中帶箭
頭的流向線,全部算法以一個大的矩形框
表示,框內(nèi)還可以包含一些從屬于它的小
矩形框,適于結(jié)構(gòu)化程序設(shè)計。
3.4.2算法的表示
A
直到條件成立
(d)
N-S圖的三種基本結(jié)構(gòu)
3.4.2算法的表示
偽代碼法是一種假的代碼,不能被計算機所理解,
但接近于某種語言編寫的程序,便于轉(zhuǎn)換成編程
語言。根據(jù)編程語言的不同,有對應(yīng)的類Pascal、
類C等類-小語言。在數(shù)據(jù)結(jié)構(gòu)教材中,經(jīng)常用類
-AXY語言來描述算法。
計算機語言計算機無法識別自然語言、流程圖、
偽代碼。這些方法僅為了幫助人們描述、理解算
法,要用計算機解題,就要將它們轉(zhuǎn)換成計算機
語言程序。用計算機語言描述算法,只有用計算
機語言編寫的程序才能被計算機執(zhí)行。
343,常用算法
voidswap(x,y)
兩個變量的值交換
intt;
t=x;
x=y;
y=t;
計數(shù)器,N為計數(shù)器變量
count
+im=sum+x累力口器,sum為累
sumnumI器變量
343,常用算法
例3.4某班有35名學(xué)生,輸入每個學(xué)生《C語言程序設(shè)
計》課程的成績,并求出該班該門課程的平均分以及
成績?yōu)閮?yōu)秀的學(xué)生人數(shù)。
用偽代碼描述算法如下:
voidcompute()
{
intscore,i=l,sum=0,count=0;
while(i<=35)
scanf(&score);
sum=sum+score;
if(score>=90)count=count+l;}
printf(sum/35);
printf(count);
343,常用算法
枚舉法?
枚舉法(窮舉法或試湊法)根據(jù)條件確定答案
的范圍,在此范圍內(nèi)對所有可能的情況逐一驗
證。若某個情況符合條件,則為一個解;若全
部情況均不符合條件,則問題無解。
百雞問題:公雞每只5元,母雞每只3
元,小雞3只1元,用n元買n只雞,求
公雞、母雞、小雞的只數(shù)。
343,常用算法
■a+b+c=n
■5a+3b+c/3=n
■c%3=0
343,常用算法
intk=0;
for(a=0;a<=n;a++)
{
for(b=0;b<=n;b++)
{
for(c=0;c<=n;C++)
{
if((a+b+c==n)&&(5*a+3*b+c/3==n)&&(c%3==0))
{
g[k]=a;
m[k]=b;
s[k]=c;
K++;
)
)
)
時間復(fù)雜度
算法的輸入規(guī)模和運行時間的階
時間復(fù)雜度的計算
■順序:加法
■循環(huán):乘法
■遞歸:一般為指數(shù)形式
3.4.3,常用算法
改進之后的算法:
intk=0;
inti=n/5;
intj=n/3;
for(a=0;a<=i;a++)
{
for(b=0;b<=j;b++)
{
c=n-a-b;
if((5*a+3*b+c/3==n)&&(c%3==0))
{
g[k]=a;
m[k]=b;
s[k]=c;
K++;
)
)
)
343.常用算法
遞推法(迭代法)
從初值出發(fā),歸納出新值與舊值間直到最后值為
止存在的關(guān)系,每次重復(fù)main()
出新值,并由新值代替舊{intday,x1,x2;
day=9;
例3.4猴子吃桃子問題。x2=1;
while(day>0)
掉現(xiàn)有數(shù)的一半多一個,{x1=(x2+1)*2;x2=x1;
個了,問小猴原有桃子多day=day-1;
}
設(shè)第冰的桃子為它printf(”total=%d\n”,x1);
半少1個,則遞推公式為:}
343,常用算法
求最值
而”砧?入跖4旦一I-//、樂
main()
次同第2、3、(
大(?。?,馬」intmax,score,n,i;
printf(“請輸入人數(shù):\n");
也就獲得。scant(“%d”,&n);
printf(“請輸入每個同學(xué)的成績:\n");
例3.5對輸,scant(“%d”,&score);
max=score;for(i=2;i<=n;i++)
{scant(“%d”,&score);if(score>max)
max=score;}
printf(“晟績最高分為%d\n”,max);
)
3.5程序設(shè)計步驟和程序設(shè)計方法
3.5.1程序設(shè)計步驟
程序設(shè)計步驟
3.5.2程序設(shè)計方法
結(jié)構(gòu)化程序的結(jié)構(gòu)簡單清晰,可讀性強,模塊化
強,描述方式符合人們解決復(fù)雜問題的普遍規(guī)律,
在軟件重用性、軟件維護等方面有所進步,可以
顯著提高軟件開發(fā)的效率。
程序設(shè)計模式:“數(shù)據(jù)結(jié)構(gòu)+算法”
■在軟件設(shè)計和實現(xiàn)過程中,采用自頂向下、逐步細化
的模塊化程序設(shè)計原則。
■在代碼編寫時,采用順序、選擇、循環(huán)三種基本控制
結(jié)構(gòu),避免使用GOTO語句。
3.5.2程序設(shè)計方法
面向?qū)ο蟪绦蛟O(shè)計
將問題分解為對象,對象的數(shù)據(jù)——屬性,
作用于數(shù)據(jù)的操作——方法,將屬性和方法封
裝成一個整體,供程序設(shè)計者使用。對象之間
的相互作用通過消息傳遞來實現(xiàn)。
程序設(shè)計模式:“對象+消息”
面向?qū)ο蟮某绦蛟O(shè)計語言有:C++、Java、
VisualBasic等
結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計的區(qū)別:
■面向?qū)ο蠓纸馔怀觯鹤鍪裁??大量的工作由相?yīng)的
對塞來完成,程序員在應(yīng)用程序中只需說明要求對
象元成的任務(wù)。
■結(jié)構(gòu)化程序設(shè)計的分解突出:如何做?強調(diào)代碼的
功能是如何得以完成。
3.6軟件開發(fā)基礎(chǔ)
3.6.1軟件工程概述
軟件好壞的判斷準(zhǔn)則
■正確性
■可靠性
■簡明性
■有效性
■可維護性
■適應(yīng)性
軟件的生命周期
■軟件生存周期是指一個軟件從提出開發(fā)要求開始直
到該軟伴報廢為止的整個時期。
■軟件生命周期一種典型的階段分為:問題定義、可
行性研究、需求分析、總體設(shè)計、詳細設(shè)計、編碼、
測試和維護等八個階段。
3.6.1軟件工程概述
軟件開發(fā)過程
從工程學(xué)角度出發(fā),軟件開發(fā)過程包括計劃、
分析、設(shè)計、編碼、測試和維護紳幾個階段。
■計劃:對所要解決的問題進行總體定義。
■分析:對用戶的需求進行去粗取精、去偽存真、
正確理解,然后把它用軟件工程開發(fā)語言(形式功
能規(guī)約,即需求規(guī)格說明書)表達出來的過程。
■設(shè)計:軟件設(shè)計的主要任務(wù)就是將軟件分解成模塊,
然后進行模塊設(shè)計。軟件設(shè)計可以分為概要設(shè)計和
詳細設(shè)計兩個階段
■編碼:把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序
■測試:軟件測試的目的是以較小的代價發(fā)現(xiàn)盡可能
多的錯誤。
■維護:在已完成對軟件的研制工作并交付使用以后,
對軟件進行適當(dāng)修改,以適應(yīng)新的要求,以及糾正
運行中發(fā)現(xiàn)的錯誤。
3.6.1軟件工程概述
軟件開發(fā)原理
■抽象:將要處理的問題按一定的方式和步驟抽象成
計算機能處理的形式后再交給計算機去處理。
■目標(biāo)分解:任何一個復(fù)雜的問題,都可以通過一些
較小的問題表示,這些較小的問題又可以通過更
小的問題表示。
■局部化與信息隱藏:一段程序的控制應(yīng)盡量是局部
的,而不受其他段的影響,也不影響其他段;所處
理的數(shù)據(jù)也應(yīng)該盡量是局部的。局部定義的數(shù)據(jù)外
部無法訪問,達到了信息隱藏的目曲。
■一致性:一致性是指在整個軟件中,所有表示方法
應(yīng)該是一致的。
■可驗證性:可驗證性原理就是所開發(fā)的程序模塊應(yīng)
盡量具有相對的獨立性,能相對獨立地測試,相對
獨立地維護和修改。
3?6?2,軟件開發(fā)方法
結(jié)構(gòu)化方法
■結(jié)構(gòu)化軟件開發(fā)方法采用結(jié)構(gòu)化分析(SA,
StructuredAnalysis)技未對問題進行分析建模,它
將問題表述為“數(shù)據(jù)流圖+實體聯(lián)系圖”的形式。
面向?qū)ο蟮姆椒?/p>
■分析建模:面向?qū)ο筌浖_發(fā)方法采用面向?qū)ο蠓?/p>
柝(OOA,Object—OrientedAnalysis)對問題進
行分析建模,它將問題表述為
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)互聯(lián)網(wǎng)平臺的系統(tǒng)集成與優(yōu)化策略
- 小米公司的數(shù)字化營銷策略與實踐
- 2024版礦產(chǎn)資源勘探鉆井協(xié)議2篇
- 二零二五年度虛擬偶像制作與商業(yè)演出合同3篇
- 2024眼鏡店用工勞動合同
- 2025分期付款機器買賣合同
- 2025年度跨國股權(quán)投資合同3篇
- 心理健康在商業(yè)教育中的重要性
- 2024軟件產(chǎn)品定制開發(fā)與售后服務(wù)變更協(xié)議書3篇
- 2025年人教A新版選修6地理下冊月考試卷含答案
- 2025年西藏拉薩市柳梧新區(qū)城市投資建設(shè)發(fā)展集團有限公司招聘筆試參考題庫附帶答案詳解
- DB51T 1069-2010 四川泡菜生產(chǎn)規(guī)范
- 斷絕關(guān)系協(xié)議書
- 2023-建筑施工技02課件講解
- 2025年部編版一年級語文上冊期末復(fù)習(xí)計劃
- 2024高考物理一輪復(fù)習(xí):觀察電容器的充、放電現(xiàn)象(練習(xí))(學(xué)生版+解析)
- 地理2024-2025學(xué)年人教版七年級上冊地理知識點
- 2024年度內(nèi)蒙古自治區(qū)國家電網(wǎng)招聘之電工類綜合練習(xí)試卷A卷附答案
- 零售服務(wù)質(zhì)量提升
- 2024-2030年中國電子郵箱行業(yè)市場運營模式及投資前景預(yù)測報告
- 基礎(chǔ)設(shè)施零星維修 投標(biāo)方案(技術(shù)方案)
評論
0/150
提交評論