《計算機軟件》教學(xué)課件_第1頁
《計算機軟件》教學(xué)課件_第2頁
《計算機軟件》教學(xué)課件_第3頁
《計算機軟件》教學(xué)課件_第4頁
《計算機軟件》教學(xué)課件_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論