程序設計與軟件工程基礎_第1頁
程序設計與軟件工程基礎_第2頁
程序設計與軟件工程基礎_第3頁
程序設計與軟件工程基礎_第4頁
程序設計與軟件工程基礎_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

北京聯(lián)合大學應用文理學院計算機中心

第9章結構

程序設計的方法與語言

程序設計的風格

程序設計基礎

結構化程序設計方法

、面向對象程序設計方法

廠軟件工程的概念與結構

軟件分析階段常用方法一一SA方法

軟件工程基礎《軟件設計階段常用方法一SD方法

軟件的測試

、軟件的調試

09/11/1聯(lián)大應用文理學院計算機中心2

思考

?:?程序?

?:?程序設計?

?:?程序設計語言?

?:?程序設計方法?

09/11/1聯(lián)大應用文理學院計算機中心4

程序與程序設計

?:?程序

由人所編寫的指揮和控制計算機完成某一任務的指

令序列

?:?程序設計

編寫程序的過程

?:?程序設計語言

人和計算機進行信息交流的語言

09/11/1聯(lián)大應用文理學院計算機中心5

程序設計的發(fā)展

?:?初期的程序設計

高運行效率,少占用內存為目標

?:?結構化程序設計階段

程序的可讀性,可維護性為目標

?:?面向對象的程序設計階段

降低程序的復雜性,提高軟件的開發(fā)效率和改善工

作界面%目標

09/11/1聯(lián)大應用文理學院計算機中心6

?:?程序設計風格

是指編寫程序時所表現(xiàn)出來的特點、習慣和邏輯思路。

?:?程序設計風格會深刻的影響軟件的質量和可維護性。

良好的程序設計風格可以使程序結構清晰合理,使程

序代碼易于維護。

?:?基本出發(fā)點

自己編制的程序還要給別人看

自己編制的程序還要為以后看

?:?程序設計總體風格

強調簡單清晰,程序是可理解的

“清晰第一,效率第二”的論點已成為當今主導的程序設計

風格

09/11/1聯(lián)大應用文理學院計算機中心7

程序設計風格

?良好的程序設計風格包括:

總體設計的風格

語言運用的風格

程序文本的風格

輸入輸出的風格

09/11/1聯(lián)大應用文理學院計算機中心8

總體設計的風格

?:?結構清晰:

程序是模塊化結構的,且按層次組織,合理運用3

種基本結構

模塊功能盡可能單一化,模塊間的聯(lián)系盡量少

?:?思路清晰:

遵循自頂向下、逐步細化的原則

?:?條理清晰:

遵循“簡短樸實”原則,切忌賣弄所謂的“技巧”

09/11/1聯(lián)大應用文理學院計算機中心9

語言運用的風格

?:?選擇合適的程序設計語言

符合軟件工程的要求

符合結構化程序設計的思想

■使用要方便

?:?不要濫用語言中的某些特色

09/11/1聯(lián)大應用文理學院計算機中心10

?注意程序文本的易讀性?:?符號規(guī)范化:

一般情況下每個語句占常用從簡,專用從繁

用一行照顧習慣用法

程序的層次要分明,在數(shù)據(jù)說明的次序規(guī)范化,

各層次之間應采用縮進易于理解、測試排錯及維

規(guī)則

同一結構層次中的語句說明語句中變量安排有序

,縮進相同的字數(shù)化

舉例

Ifx>ythen

max=x

Else

max=y

Endif

09/11/1聯(lián)大應用文理學院計算機中心11

程序文本的風格

?程序中添加必要的注釋

■序言性注釋

$位于每個程序的開頭部分,給出程序的整體說明

$主要描述的內容:程序標題,程序功能說明,主要算法,

接口說明,程序位置,開發(fā)簡歷,程序設計者、復審者,

復審日期,修改日期等

■功能性注釋

$一般嵌在源程序體之中

$主要描述其后的語句或程序做什么

?:?程序中合理使用分隔符

一類是語法所規(guī)定的分隔符

另一類是為提高程序的可讀性,系統(tǒng)允許用戶使用的分隔

符——空格及空行

09/11/1聯(lián)大應用文理學院計算機中心12

輸入輸出的風格

?:?輸入

在需要輸入數(shù)據(jù)時,應該給出必要的提示

輸入格式要簡單,以使得輸入的步驟和操作盡可能

簡單

輸入數(shù)據(jù)時,應允許使用自由格式,允許缺省值

輸入一批數(shù)據(jù)時,最好使用輸入結束標志

以適當?shù)姆绞綄斎霐?shù)據(jù)進行檢驗,以確認其有效

?:?輸出

對輸出數(shù)據(jù)應該加上必要的說明

■設計輸出的報表格式

09/11/1聯(lián)大應用文理學院計算機中心13

結構化程序設計

?:?結構化程序的兩個特點:

以控制結構為單位,只有一個入口和一個出口,使

各單位之間的接口比較簡單,每個單位也容易被人

們理解

縮小了程序的靜態(tài)結構與動態(tài)執(zhí)行之間的差異,使

人們能方便、正確地理解程序的功能

?:?三種基本控制結構的形式

順序結構

選擇結構

循環(huán)結構

09/11/1聯(lián)大應用文理學院計算機中心14

順序結構

09/11/1聯(lián)大應用文理學院計算機中心15

09/11/1聯(lián)大應用文理學院計算機中心16

選擇結構

*If…Then語句(單分支結構)

■If<表達式>Then

語句塊

Else

語句塊

EndIf

09/11/1聯(lián)大應用文理學院計算機中心17

09/11/1聯(lián)大應用文理學院計算機中心18

選擇結構一一多分支結構

?SelectCase語句

SelectCase<測試表達式>

?[Casev表達式列表1>

?卜語句塊1>]]

?[Casev表達式列表3>

?卜語句塊2>]]

?...

?[Casev表達式歹4表n>

?[v語句塊n>]]

?[CaseElse

?[v語句塊n+l>]]

EndSelect

09/11/1聯(lián)大應用文理學院計算機中心19

循環(huán)結構

?循環(huán)結構

當型循環(huán)結構

條件

S

直到型循環(huán)結構

S

條件

09/11/1聯(lián)大應用文理學院計算機中心20

當型循環(huán)結構

判斷循環(huán)條件是否成立

?如果條件成立,則執(zhí)行

循環(huán)體語句組,然后再

次判斷循環(huán)條件是否成

?如果條件不成立,則不

執(zhí)行或退出循環(huán)體結構

,轉向其它操作步驟

09/11/1聯(lián)大應用文理學院計算機中心21

當型循環(huán)結構

判斷循環(huán)條件是否成立

?如果條件不成立,則執(zhí)

行循環(huán)體語句組,然后

再次判斷循環(huán)條件是否

不成立

如果條件成立,則不執(zhí)

行或退出循環(huán)體結構,

轉向其它操作步驟

09/11/1聯(lián)大應用文理學院計算機中心22

直到型循環(huán)結構

先執(zhí)行循環(huán)體語句組1

循環(huán)變量初始化次

?然后判斷循環(huán)條件是否

成立,如果條件成立,

則再次執(zhí)行循環(huán)體語句

其它操作步驟?如果條件不成立,則不

再執(zhí)行或退出循環(huán)體結

構,轉向其它操作步驟

O

09/11/1聯(lián)大應用文理學院計算機中心23

直到型循環(huán)結構

先執(zhí)行循環(huán)體語句組1

?然后判斷循環(huán)條件是否

成立,如果條件不成立

,則再次執(zhí)行循環(huán)體語

句組

*如果條件成立,則不再

執(zhí)行或退出循環(huán)體結構

,轉向其它操作步驟。

09/11/1聯(lián)大應用文理學院計算機中心24

結構化程序設計原則

模塊化的設計理念

自頂向下、逐步求精的設計過程

限制使用GOTO語句

09/11/1聯(lián)大應用文理學院計算機中心25

模塊化程序設計

?:?模塊化程序設計

是指把一個大程序按人們能理解的大小規(guī)模進行分

?:?模塊劃分與組織的方法:

1按功能劃分模塊

$要求

—各模塊功能單一

-各模塊之間的聯(lián)系盡量少

$優(yōu)點

-可讀性和可理解性都比較好

-各模塊間的接口關系比較簡單

-當要修改某一功能時,只涉及一個模塊

-其他應用程序可以充分利用已有的一些模塊

09/11/1聯(lián)大應用文理學院計算機中心26

模塊化程序設計

2按層次組織模塊

$上層模塊指出總任務,即“做什么”;下層模塊精確

描述各個子任務,即“如何做”

模塊4模塊5模塊6

09/11/1聯(lián)大應用文理學院計算機中心27

自頂向下、逐步求精的設計過程

?:?包括兩個方面

將一個復雜問題的解法分解和細化成由若干模塊組

晟的層次結構

將一個模塊的功能逐步分解細化為一系列的處理步

驟,直到某種程序設計語言的語句或某種機器指令

?:?兩條優(yōu)點

符合人們解決復雜問題的規(guī)律,可以顯著提高程序

設計的效率

用先全局后局部、先整體后細節(jié)、先抽象后具體的

方法設計,結構層次清晰,容易閱讀和理解

09/11/1聯(lián)大應用文理學院計算機中心28

自頂向下、逐步求精的設計過程

計算并打印輸出某班某門課程平均分細化的

過程

09/11/1聯(lián)大應用文理學院計算機中心29

面向對象程序設計方法

?:?面向對象(ObjectOriented)方法已經(jīng)發(fā)

展成為主流的軟件開發(fā)方法,起源于對面向對

象語言的研究

?:*20世紀60年代后期首次被提出,80年代開始

走向實用

09/11/1聯(lián)大應用文理學院計算機中心30

面向對象的基本概念

?:?對象

客觀世界中的實體

?:?分類

具體的物理實體:一輛車

任何有明確意義和邊界的東西:一個項目計劃

?:?特點

對象是構成世界的一個獨立單位,通常既有靜態(tài)的

特征(屬性),又有動態(tài)的行為(方法)

09/11/1聯(lián)大應用文理學院計算機中心31

面向對象的基本概念

?:?屬性

對象所包含的信息

在設計對象時確定

?person(姓名,年齡,體重)

不同對象的同一屬性可以具有相同或不同的屬性值

?personl(張三,19,43kg)

?personl(李四,20,65kg)

?:?方法

允許作用于某個對象上的各種操作

事件

由對象識別的某一動作

09/11/1聯(lián)大應用文理學院計算機中心32

面向對象的基本概念

?:?類

■具有相似性質的一組對象

類是對象的抽象,描述了屬于該對象類型的所有對

象的性質,而一個對象則是其對應類的一個實例

例如:

?Integer是一個整數(shù)類,描述了所有整數(shù)的性質

?12是一個具體的整數(shù),是Integer類的一個實例

09/11/1聯(lián)大應用文理學院計算機中心33

面向對象的基本概念

?:?繼承:

表示類之間的相似性的機制

是面向對象方法的一個主要特性

一個類(子類)的定義可以定義在另一個已定義類

(父類)的基礎上,子類可以繼承父類中的屬性和

方法,也可以定義自己的屬性和方法

如:整數(shù)類和正整數(shù)類

?多態(tài)性

指在類的不同層次上可以使用相同的方法名,但不

同層次的類可以按自己的需要來實現(xiàn)這個行為。

09/11/1聯(lián)大應用文理學院計算機中心34

面向對象的基本概念

?:?封裝

一種信息隱蔽技術,目的在于將對象的使用者和對

象的設計者分開

?:?消息

用來請求對象執(zhí)行某一處理或回答某些信息的要求

面向對象方法和技術以對象為中心。對象是由

數(shù)據(jù)和容許的操作組成的封裝體,對象之間通

過傳遞消息互相聯(lián)系,以模擬現(xiàn)實世界中不同

事物彼此之間的聯(lián)系。

09/11/1聯(lián)大應用文理學院計算機中心35

面向對象的基本概念

?:?對象的基本特征

■模塊性

$各個對象之間相對獨立,相互依賴性小

■繼承性和類比性

動態(tài)連接性

易維護性

09/11/1聯(lián)大應用文理學院計算機中心36

面向對象技術

?面向對象技術包括3個方面

■面向對象的分析00A

$主要任務:了解問題域內所涉及的對象、對象之間的關系

和作用,然后構造出對象模型,力爭這個“模型”能反映

所要解決的“實質問題”O(jiān)

$主要方法:抽象

面向對象的設計00D

$主要任務:設計軟件的對象模型。在軟件系統(tǒng)中設計各個

對象、對象之間的關系(如層次關系、繼承關系等)、對

象間的通信方式(消息)等。

■面向對象的實現(xiàn)001

$主要任務:實現(xiàn)軟件功能,實現(xiàn)各個對象所應完成的任務

,包括實現(xiàn)每個對象的內部功能、系統(tǒng)的界面設計和輸出

格卡。

09/11/1聯(lián)大應用文理學院計算機中心37

面向對象技術

?:?面向對象技術的特點

與人類習慣思維方法一致

可重用性----繼承特性

可維護性

表示方法的一致性

09/11/1聯(lián)大應用文理學院計算機中心38

族外工?;?/p>

北京聯(lián)合大學應用文理學院計算機中心

軟件工程的產(chǎn)生

?:?軟件:

與計算機系統(tǒng)的操作有關的計算機程序、規(guī)程、規(guī)

貝h以及可能有的文件、文檔及數(shù)據(jù)。

■軟件=程序+文檔

?:?軟件工程

是指采用工程的概念、原理、技術和方法指導軟件

的開發(fā)與維護。

09/11/1聯(lián)大應用文理學院計算機中心40

軟件工程的結構

工具層

方法層

過程層

質量保證層

3要素:過程、工具、方

09/11/1聯(lián)大應用文理學院計算機中心41

軟件生命周期

?:?定義

從某一軟件被提出并著手開始實現(xiàn),直到軟件完成

其使命為止的全過程

*3個時期,8個階段

09/11/1聯(lián)大應用文理學院計算機中心42

軟件生命周期

09/11/1聯(lián)大應用文理學院計算機中心43

軟件工作的范圍

只考慮I擴展到涉及整個

編寫程1軟件生命周

序期

09/11/1聯(lián)大應用文理學院計算機中心44

軟件定義期

09/11/1聯(lián)大應用文理學院計算機中心45

軟件定義期

*1問題定義

■主要目的

$確定問題的性質、工程目標及規(guī)模

■參加人員

$軟件開發(fā)人員、用戶及使用部門負責人

■提交

$文檔(編寫系統(tǒng)目標與規(guī)范說明書)

09/11/1聯(lián)大應用文理學院計算機中心46

軟件定義期

*2可行性分析

■主要目的

$進一步研究所定義的問題是否可解

■角度

$技術可行性

$經(jīng)濟可行性

$社會可行性

■使用方法

$邏輯模型數(shù)據(jù)流圖和數(shù)據(jù)字典

$物理模型系統(tǒng)流程圖

■提交

$文檔

09/11/1聯(lián)大應用文理學院計算機中心47

軟件定義期

03需求分析

■主要目的

?根據(jù)可行性研究階段提交的文檔,特別是從數(shù)據(jù)流圖

出發(fā),對目標系統(tǒng)提出清晰、準確和具體的要求(做

什么)

■具體任務

?綜合要求者數(shù)據(jù)分析序詳細模型系統(tǒng)

■提交

?文檔(系統(tǒng)的功能說明、數(shù)據(jù)要求和用戶系統(tǒng)描述)

09/11/1聯(lián)大應用文理學院計算機中心48

軟件開發(fā)期*

A

09/11/1聯(lián)大應用文理學院計算機中心49

信息描述

功能描述數(shù)據(jù)設計

設計

行為描述

集成并確

一程序模塊認的軟件

其他需求編碼測試

09/11/1聯(lián)大應用文理學院計算機中心50

軟件開發(fā)期

*1系統(tǒng)設計

■主要任務

$劃分出構成系統(tǒng)的各物理元素

-如程序、文件、數(shù)據(jù)庫、人工過程與文檔等

$設計出軟件的結構

-如確定模塊之間的關系

$階段最后要進行嚴格的技術審查和管理審查

09/11/1聯(lián)大應用文理學院計算機中心51

系統(tǒng)設計過程

AA\A

VV/V文

09/11/1聯(lián)大應用文理學院計算機中心52

軟件開發(fā)期

02詳細設計

■主要任務

?對系統(tǒng)做出精確的描述,以方便編碼階段使用

■目標

?保證程序的可靠性、易讀、易理解、易測試、易修改

和易維護

提交

?詳細的編碼規(guī)格說明

■工具

?層次圖與輸入-處理-輸出圖的結合(HIPO)

?過程描述語言(PDL)

09/11/1聯(lián)大應用文理學院計算機中心53

■主要任務

$將系統(tǒng)設計與詳細設計階段中的結果翻譯成用某種程

序設計語言書寫的程序

影響程序設計的幾個方面

$選擇適當?shù)某绦蛟O計語言

$良好的編程風格

$充分利用已有的軟件工具協(xié)助編碼

提交

$源程序編碼

$面向用戶的文檔:用戶手冊,操作手冊

$單元測試計劃

09/11/1聯(lián)大應用文理學院計算機中心54

■主要任務

?盡量發(fā)現(xiàn)程序中的錯誤

■測試與調試的區(qū)別

?測試是要盡量發(fā)現(xiàn)程序中的錯誤,但絕不能證明程序

的正確性

?調試是要推斷錯誤的原因,從而進一步改正錯誤

■提交

?測試分析報告

09/11/1聯(lián)大應用文理學院計算機中心55

■維護

$是軟件生命周期的最后階段,也是持續(xù)時間最長、付

出代價最大的階段

$程序代碼及文檔的維護

■分類

$改正性維護:糾正使用中出現(xiàn)的錯誤

$適應性維護:適應環(huán)境的變化

$完善性維護:改進原有軟件

$預防性維護:為將來的可維護性和可靠性做的工作

09/11/1聯(lián)大應用文理學院計算機中心56

軟件工具與軟件開發(fā)環(huán)境

?:?軟件支援環(huán)境

是指在宿主硬件和宿主軟件的基礎上,用于輔助、

支援其他軟件的研制和維護的一組軟件

?:?功能

能夠支援軟件生命的全周期

能夠支援大型軟件工程項目

能夠支援軟件配置管理

09/11/1聯(lián)大應用文理學院計算機中心57

軟件工具與軟件開發(fā)環(huán)境

?:?作用

能改進軟件質量、提高軟件生產(chǎn)率

?:?組成

環(huán)境數(shù)據(jù)庫

$包含軟件必要的信息和軟件研制工具的有關信息

■接口軟件

$包括系統(tǒng)與用戶的接口、系統(tǒng)與環(huán)境數(shù)據(jù)庫和工具之

間的接口

■工具組

$包括軟件研制工具、軟件維護工具和控制配置工具等

09/11/1聯(lián)大應用文理學院計算機中心58

軟件詳細設計的表達

?:?工程上常用的表達工具

■圖形工具

$用圖形的方式來描述實現(xiàn)一個算法的過程

■表格工具

$用表格的方式列出實現(xiàn)算法過程的每一步操作

■語言工具

$用某種語言描述算法

09/11/1聯(lián)大應用文理學院計算機中心59

程序流程圖

程序流程圖(流程框圖)

起止框判斷框處理框輸入與輸出

注釋框流程線流程線連接點

09/11/1/、/工IIJA工-J-|VUVI-1/L|-L-?60

程序流程圖

程?順序結構

5?選擇結構

基?多分支選擇結構

制?當型循環(huán)結構

?直到型循環(huán)結構

09/11/1聯(lián)大應用文理學院計算機中心61

程序流程圖

?:?優(yōu)點

獨立,直觀,易學

?:?缺點:

不是逐步求精的好工具,過早考慮程序的控制流程

,忽略全局結構

不易表示層次結構

不易表示數(shù)據(jù)結構和模塊調用關系

轉移控制不受約束

09/11/1聯(lián)大應用文理學院計算機中心62

NS圖

?NS圖(盒圖)

去掉了流程圖中的流程線,全部算法寫在一個框內

,每一種基本結構也是一個框

不允許破壞結構化原則

?:?基本特點

■功能域比較明確

不能任意轉移控制,符合結構化原則

容易確定局部和全程數(shù)據(jù)的作用域

容易表示嵌套關系和層次關系

09/11/1聯(lián)大應用文理學院計算機中心63

4

6

構構大

結構結聯(lián)

擇結環(huán)

構構選環(huán)循

結結支循型

序擇分型到

順選多當直

??

溫馨提示

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

評論

0/150

提交評論