《軟件工程》教案_第1頁
《軟件工程》教案_第2頁
《軟件工程》教案_第3頁
《軟件工程》教案_第4頁
《軟件工程》教案_第5頁
已閱讀5頁,還剩132頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

QILUINSTITUTEOFTECHNOLOGY

教案

學年學期:學年一期15學年第二學期

院部:計算科學與信息工程學院

專業:計算機科學與技術

教研室:計算機教研室

課程名稱:軟件工程___________

年級:2012級___________

授課教師:臧麗_____________

職稱:助教

《軟件工程》教案

課程性質必修課程類型專業課總學時/學分67/3

時理論51

周一3,4

分授課時間授課層次本科

周三1,2

配實踐16

本課程是計算機軟件與應用專業的主干課程。通過本課程的學

本課程教習,使得學生不僅了解軟件需求分析、設計、實現和測試等軟件開

學目的和發全過程的相關原理和概念,掌握當前UML建模等主流軟件開發方

要求法和技術,而且具備使用ROSE等主流建模工具進行實際軟件項目

開發的能力。

重點:

本課程教1能用軟件工程的方法參與軟件項目的分析、設計、實現和維護

學重點、難難點:

點工需求分析、軟件測試

教材和參

軟件工程—原理、方法和工具

考書

《軟件工程》教案內容

第一章軟件危機、軟件工程

第1節軟件工程的發展史

授課章節及內容

第2節軟件危機主要表現形式

第3節產生軟件危機的原因及解決途徑

12級計算

周一3,4

課時數2授課時間授課班級機科學與

周三1,2

技術專業

復習舊課要點復習前幾學期學習的相關軟件與程序知識

1.掌握軟件工程的基本概念(如軟件和軟件工程的定義等);

新課教學目的

2.理解軟件危機的表現形式'產生的原因及消除的途徑。

■重^^八占、、*?

1.掌握軟件工程的基本概念(如軟件和軟件工程的定義等)。

本章節重點難點

難點:

1.理解軟件危機的表現形式'產生的原因及消除的途徑。

教學方法多媒體教學教學過程設計啟發式和討論式教學

2

授課內容:

第1節軟件工程的發展史

1.1.1程序設計時代

1.1.2程序系統時代

1.1.3軟件工程時代

第2節軟件危機主要表現形式

1軟件危機:在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。

1軟件危機主要包含兩方面的問題:

一是如何開發軟件以滿足多軟件日益增長的需求;

二是如何維護數量不斷增長的已有軟件。

第3節產生軟件危機的原因及解決途徑

1.3.1產生軟件危機的原因

1軟件是計算機系統中的邏輯部件,軟件產品往往規模龐大,結構復雜

1軟件開發的管理困難

1軟件開發費用不斷增加,維護費用急劇上升

1軟件開發技術落后

1生產方式落后

1開發工具落后,生產效率提高緩慢

1.3.2解決軟件危機途徑

1應該對計算機軟件有一個正確的認識,徹底清除“軟件就是程序”的錯

誤觀念。

1要使用并且不斷研究探索更好、更有效的技術和方法

3

1要有良好的組織、嚴密的管理

1應該開發和使用好的軟件工具

4

1.什么是軟件?軟件和程序的區別是什么?

2.什么是軟件危機?它有哪些主要表現?為什么會產生軟件危機?

作業布置

本章節對計算機軟件工程學作了一個簡短的概述。首先通過回

顧計算機系統發展簡史,說明開發軟件的一些錯誤方法和觀念是怎

樣形成的。然后列舉了這些錯誤方法帶來的嚴重弊病(軟件危機),澄

清了一些糊涂觀念。為了計算機系統的進一步發展,需要認真研究

教學反思

開發和維護軟件的科學技術。應總結計算機軟件的歷史經驗教訓1,

借鑒其他工程領域的管理技術,逐步使軟件工程這門新學科發展和

完善起來。

教研室主任簽字:

5

《軟件工程》教案內容

第一章軟件危機、軟件工程

第4節軟件和軟件工程

授課章節及內容

第5節軟件質量

第6節軟件的生存周期及開發模型

12級計算

周一3,4

課時數2授課時間授課班級機科學與

周三1,2

技術專業

復習舊課要點復習前節課講述的軟件和軟件危機的相關知識。

1.了解軟件工程的基本原理'方法學;

新課教學目的2.掌握軟件的生存期;

3.掌握幾種主要的軟件開發模型。

重占?

1.掌握軟件工程的基本原理'方法學。

本章節重點難點

難點:

1.掌握幾種主要的軟件開發模型。

教學方法多媒體教學教學過程設計啟發式和討論式教學

6

授課內容:

第4節軟件和軟件工程

1.4.1軟件

定義一:軟件是程序'數據以及開發、使用和維護程序需要的所有文檔的

完整集合。

定義二:軟件是計算機程序、方法'規則、相關的文檔資料以及在計算機

上運行程序時所必須的數據。

1.4.2軟件工程

定義一:軟件工程是指導計算機軟件開發和維護的一門工程學科。軟件工

程采用工程的概念'原理、技術和方法來開發和維護軟件。

定義二:軟件工程就是為了經濟地獲得可靠的且能在實際機器上有效地運

行的軟件,而建立和使用完善的工程原理。

定義三:軟件工程是:①是把系統的'規范的'可度量的途徑應用于軟

件開發、運行和維護過程,也就是把工程應用于軟件;②研究①中提到的途徑。

第5節軟件質量

定義:軟件質量是軟件產品滿足規定的和隱含的有關特征和特性的全體,或

者說所有描述計算機軟件優秀程度的特性的組合。

軟件質量的度量標準:

功能性'可靠性、易用性、效率、可維護性、可移植性等。

第6節軟件的生存周期及開發模型

1.6.1軟件生存周期

定義:軟件生存周期是指某一軟件項目被提出來并著手實現開始直到該軟

7

件報廢或停止使用為止。

階段劃分:

一般分為軟件計劃、軟件開發和軟件運行三個時期。

時期

i軟件計劃時期一般有問題定義和可行性研究兩個階段;

1開發時期有需求分析、軟件設計(包括概要設計'詳細設計)'編碼和測

試四個階段;

1運行時期主要是維護階段。

1.6.2.軟件開發模型

X瀑布模型

上快速原型模型

X增量模型

X螺旋模型

8

1.什么是軟件工程?怎樣利用軟件工程消除軟件危機?

2.簡述度量軟件質量的六個特性,在軟件開發中如何保證軟件質量?

3.說明文檔和復審對于軟件質量控制的作用。

4.什么是軟件生存周期模型?試比較本章介紹的四種模型的優缺點,

5.說明每種模型的使用范圍。

作業布置

本章節對計算機軟件工程學作了一個簡短的概述。首先通過計

算機系統發展簡史,說明開發軟件的一些錯誤方法和觀念是怎樣形

成的。然后列舉了這些錯誤方法帶來的軟件危機,澄清了一些糊涂

觀念。為了計算機系統的進一步發展,需要認真研究開發和維護軟

教學反思件的科學技術。就總結計算機軟件的歷史經驗教訓,借鑒其他工程

領域的管理技術,逐步使軟件工程這門新興學科發展和完善起來。

教研室主任簽字:

9

《軟件工程》教案內容

第二章可行性研究

第節可行性研究的目的與任務

授課章節及內容1

第2節可行性研究的步驟

第3節系統流程圖

12級計算

周一3,4

課時數2授課時間授課班級機科學與

周三1,2

技術專業

復習舊課要點復習前節課講述的軟件工程的相關知識。

1.了解軟件工程的基本原理'方法學;

新課教學目的2.掌握軟件的生存期;

3.掌握幾種主要的軟件開發模型。

重占?

1.理解可行性研究的必要性。

本章節重點難點2.掌握可行性研究的任務、過程。

難點:

1.掌握系統流程圖、數據流程圖、數據字典概念。

教學方法多媒體教學教學過程設計啟發式和討論式教學

1()

授課內容:

第1節可行性研究的目的與任務

可行性研究的目的:就是用最小的代價在盡可能短的時間內確定問題是否能

夠解決。

可行性研究的操作步驟:

1經濟可行性

1技術可行性

£操作可行性

1法律可行性

第2節可行性研究的步驟

1復查并確定系統規模和目標

1研究目前正在使用的系統

1建立新系統的高層邏輯模型

1導出和評價各種方案

1推薦可行方案

1草擬初步的開發計劃

1編寫可行性研究報告提交審查

第3節系統流程圖

系統流程圖是描述物理系統的工具。

2.3.1系統流程圖的符號

2.3.2系統流程圖示例

II

輸入變更記錄

庫存管理系統的系統流程圖

12

1.在軟件開發早期階段為什么要進行可行性研究?可行性研究的任

務是什么?應該從哪幾個方面研究目標系統的可行性?

2.有人認為,只懂技術的分析員不一定能圓滿完成可行性研究的任

務。你同意這種看法嗎?為什么?

作業布置

本章節著重理解可行性研究的必要性,以及它的基本任務和基

本步驟,在此基礎上再進一步學習具體方法和工具。

教學反思

教研室主任簽字:

13

《軟件工程》教案內容

第二章可行性研究

授課章節及內容第4節成本-效金在分析

第5節可行性什『究報告的主要內容

12級計算

周一3,4

課時數2授課時間授課班級機科學與

周三1,2

技術專業

復習舊課要點復習前節課講述的可行性研究和流程圖的相關知識。

1.掌握可行性研究的任務、過程、成本效益分析以及可行性研

究報告的主要內容;

新課教學目的

2.掌握系統流程圖、數據流程圖、數據字典概念以及項目開

發計劃的基本內容。

重占?

1.掌握成本效益分析以及可行性研究報告的主要內容。

本章節重點難點

難點:

1.掌握項目開發計劃的基本內容。

教學方法多媒體教學教學過程設計啟發式和討論式教學

14

授課內容:

第4節成本-效益分析

成本-效益分析的目的使從經濟角度評價開發一個新的軟件項目是否可行

2.4.1貨幣的時間價值

通常用利率的形式表示貨幣的時間價值。假設年利率為i,如果現在存入P

元,則n年后可得到的錢數為F,若不記復利則:

F=P*(l+n*i)

這也就是P元錢在n年后的價值。反之,如果n年后能收入F元錢,那么

這些錢現在的價值是:

P=F/(1+n*i)

2.4.2投資回收期

投資回收期就是使累計的經濟效益等于最初的投資費用所需要的時間。顯

然,投資回收期越短,就可以越快獲得利潤,因此該項目就越值得投資開發

投資回收期僅僅是一項經濟指標,為了衡量一個開發工程項目的價值,還應

考慮其他經濟指標。

2.4.3純收入

純收入,就是在整個生存周期之內系統的累計經濟效益(折合成現在值)與

投費之差。這相當于投資開發一個軟件系統和把錢存入銀行中(或做其它用)兩

種方案的優劣比較。

第5節可行性研究報告的主要內容

,引言

1可行性研究前提

15

1對現有系統的分析

1對所建設系統的分析

1其他與設計有關選擇方案

1其他與設計有關的專門問題

1結論意見

16

1.成本-效益分析可用哪些指標進行度量?

2.為方便旅客,某航空公司擬開發一個飛機票預定系統。旅游公司把

預定機票的旅客信息(姓名、年齡、工作單位'身份證號碼、旅游

時間'旅游目的地等)輸入進該系統,系統為旅客安排航班,打印

出取票通知和帳單,旅客在飛機起飛前的三天之內憑取票通知和賬

作業布置

單交款取機票,系統校對無誤即給打印出飛機票給旅客。

3.請寫出開發此系統的問題定義,并通過可行性研究,分析此系統的

可行性。

4.試為第5題寫可行性研究報告的主要內容。

本章節對成本-效益分析和可行性研究報告的主要內容作了一個

簡短的概述。通過學習學生可以學會撰寫可行性分析報告。

教學反思

教研室主任簽字:

17

《軟件工程》教案內容

第三章軟件需求分析

授課章節及內容第1節需求分析的任務和步驟

第2節需求獲取的常用方法

12級計算

周一3,4

課時數2授課時間授課班級機科學與

周三1,2

技術專業

復習舊課要點復習前節課講述的系統流程圖的畫法。

1.掌握需求分析的任務,需求分析的步驟;

新課教學目的

2.掌握需求獲取的常用方法。

重占?

1.掌握需求分析的任務,需求分析的步驟。

本章節重點難點

難點:

1.掌握需求獲取的常用方法。

教學方法多媒體教學教學過程設計啟發式和討論式教學

18

授課內容:

第1節需求分析的任務和步驟

軟件需求分析是軟件生存周期中重要的一步,也是最關鍵的一步。只有通過

軟件需求分析,才能把軟件功能和性能研究清楚,并將其描述為具體的軟件需求

規格說明,進而建立軟件開發的基礎。

軟件需求分析是一個不斷認識和逐步細化的過程。在該過程中能將軟件計劃

階段所確定的軟件范圍逐步細化到可詳細說明的程度。制定軟件的需求規格說明

不僅是軟件開發者的任務,而且用戶也起著極其重要的作用。首先用戶必須對軟

件功能和性能提出初步的基本要求,并澄清一些模糊概念。然后軟件分析人員了

解用戶的要求,認真細致地進行調查研究與分析,把用戶要做什么的要求最終轉

換成一個完全的、細致的軟件需求規格說明,準確地表達用戶的要求,進而為概

要設計做好準備工作。

需求分析的任務就是借助于當前系統的邏輯模型導出目標系統的邏輯模型,

解決目標系統的“做什么”的問題。

3.1.2需求分析的步驟

需求獲取:調查研究

19

需求提煉:分析建模

需求描述:編寫SRS

需求驗證

1需求分析的原則

目前已出現許多分析方法。雖然各種分析方法都有獨特的描述方法,但所

有分析方法有共同的基本原則。

1.能夠表達和理解問題的數據域和功能域

2.按自頂向下'逐層分解問題

3.給出系統的邏輯視圖和物理視圖

3.2需求獲取的常用方法

3.2.1需求獲取的常用方法

1與用戶溝通獲取需求的方法

訪談

面向數據流自頂向下求精

簡易的應用規格說明技術

快速建立軟件原型

3.2.2快速建立軟件原型模型來獲取需求

Andriole提出的以下6個問題,可用來幫助判斷是否選擇原型法來幫助獲取

需求:

1.需求已經建立,并且可以遇見是相當穩定嗎?

2.軟件開發人員和用戶已經理解了目標系統的應用領域嗎?

3.問題是否可被模型化?

20

4.用戶能否清楚地確定基本的系統需求?

5.有任何需求是含糊的嗎?

6.已知的需求中存在矛盾嗎?

21

1.為什么要進行需求分析?需求分析需要經過哪些步驟?

2.需求分析的基本任務是什么?

作業布置

本章節對對需求分析做了簡介,強調需求分析是回答“要做什

么”,而不是回答“怎么做”的問題。為后續需求分析的方法與圖形

工具的學習奠定基礎。

教學反思

教研室主任簽字:

22

《軟件工程》教案內容

第三章軟件需求分析

授課章節及內容第3節需求分析的方法

第4節結構化分析方法

12級計算

周一3,4

課時數2授課時間授課班級機科學與

周三1,2

技術專業

復習舊課要點復習前節課講述的需求分析的任務和步驟的相關知識。

1.掌握需求分析的相關方法;

2.掌握結構化分析方法;

新課教學目的

3.掌握數據流圖的畫法;

4.掌握數據字典的描述。

重占?

1.掌握需求分析的相關方法;

2.掌握結構化分析方法。

本章節重點難點

難點:

1.掌握數據流圖的畫法;

2.掌握數據字典的描述。

教學方法多媒體教學教學過程設計啟發式和討論式教學

23

授課內容:

第3節需求分析的方法

1.需求分析方法:

是由對軟件的數據域和功能域的系統分析過程及其表示方法組成。包括:

面向數據流,面向數據結構。2.不同的需求分析方法具有的共性:1)支持數據

域分析的機制:所有方法都直接或間接地涉及到數據流,數據內容或數據結構

等數據域的屬性。

2)功能表示的方法:

一般用數據變換或加工來表示。

3)接口的定義:

是數據表示和功能表示的直接產物。(功能間的接口一數據流)

4)問題分解的機制以及對抽象的支持:

在不同抽象層次上表示數據域和功能域,以逐層細化的手段建立分層結構。

5)邏輯視圖和物理視圖:

6)系統抽象模型:

是對現實世界中存在的有關實體和活動的抽象和精化。

第4節結構化分析方法

結構化分析方法:是面向數據流進行需求分析的方法,是用抽象模型

的概念,按軟件內部數據傳遞、變換的關系,自頂向下逐層分解,直到找到滿足

功能要求的所有可實現的軟件為止。

數據流圖:

1.數據流圖(DFD):

24

是軟件系統邏輯模型的一種圖形表示,是從數據傳遞和加工的角度,以圖形

的方式刻畫數據流從輸入到輸出的移動變換過程的工具。

2.組成符號:

1)基本符號:

T箭頭,表示數據流;

O圓或橢圓,表示變換數據的處理;

□方框,表示數據的三原點或終點;

雙杠或單杠,表示數據存儲(文件)。

2)數據流與加工之間的關系

其中星號“*”表示相鄰的一對數據流同時出現,?則表示相鄰的兩數據流

只取其一。

25

數據A和B同時榆入變換成C

數據A變換成B和C

數據A或數據B(不能同時)輸入使變換成C

數據A變換成B或C(不能變換成B和C)

數據A或B,或A和B同時輸入變換成C

數據A變換成B或C,或B和C

數據流圖加工關系

3)分層的數據流圖

4.數據流圖畫法

畫數據流圖的基本步驟概括地說,就是自外向內,自頂向下,逐層細化,完

善求精。具體步驟如下:

①先找系統的數據源點與匯點。它們是外部實體,由它們確定系統與外界的

接口。

②找出外部實體的輸出數據流與輸入數據流。

26

③在圖的邊上畫出系統的外部實體。

④從外部實體的輸出數據流(即系統的源點)出發,按照系統的邏輯需要,

逐步畫出一系列邏輯加工,直到找到外部實體所需的輸入數據流(即系統的匯

點),形成數據流的封閉。

⑤按照下述的原則進行檢查和修改。

⑥按照上述步驟,再從各加工出發,畫出所需的子圖。

數據流圖的分層方法

一個分層的數據流圖由頂圖'底圖和中間層的數據流圖所組成。頂圖說明了

系統的邊界,即系統的輸入和輸出的數據流,頂圖只有一張。底圖由一些不必再

分解的處理邏輯組成,

分層數據流圖

三'數據字典

1.數據字典的定義

數據字典是關于數據的信息的集合,對數據流圖中的各個元素作完整的定義

與說明,是數據流圖的補充工具。

1)數據流

27

在一個數據流圖上,數據按數據流為單位傳輸。主要內容有:

①數據流名稱及其稱號表示。

②數據流的來源:一個外部實體、處理邏輯'數據存貯。

③數據流的去處:一個外部實體。

④數據流的組成:一個數據流可能包括若干個數據結構,若只有一個數據結

構,就不需要專門定義。

⑤數據流的流通量:單位時間的傳輸次數。

⑥高峰時期的流通量:業務的頻繁程度和時間有關。

2)數據項

數據項也稱數據元素,是不可再分的數據最小組成單位,主要內容有:

①數據項名稱及編號:數據項名稱必須唯一地標識這個數據項,以區別于其

他數據項;給數據項取名時,要反映該數據項的含義,易于他人理解與記憶。

②別名:同一數據項的名稱可能不止一個,稱為別名。

③取值的范圍和取值的含義

④數據項的長度:指數據項所包含的字符或數字的位數。

3)數據結構

數據結構描述了某些數據項之間的關系。一個數據結構可以由若干個數據項

組成,也可以由若干個數據組成,也可以由若干個數據項和數據結構組成。主要

內容包括如下。

②據結構的名稱及其編號

②數據結構的組成:如果是一個簡單的數據結構,只要列出它所包含的數據

項即可。如果是一個嵌套的數據結構,只需列出它所包含的數據結構名稱,因為

28

這些數據結構同樣在數據字典中有定義。

4)數據存貯

數據存貯是數據結構停留或保存的場所。主要內容:

①數據存貯的名稱及其編號:在數據流程圖中對數據存貯給以命名,并編上

一^唯一的編號。

②流入、流出的數據流:流入的數據流指出其來源,流出的數據流指出其去

向。

③數據存貯的組成:指它所包含的數據項或數據結構。

5)處理邏輯。

主要內容:

①處理邏輯的名稱及編號

②簡述:對處理邏輯的簡明描述,其目的是使人了解這個處理邏輯是做什么

用的。

③處理邏輯的輸入和輸出。

④處理邏輯的主要功能

⑤處理邏輯的小說明(文檔之一)

處理邏輯小說明對處理邏輯的功能作明確的描述,詳細地描述其輸入/輸出

的數據流,以及這些數據的基本轉換路徑和策略,它補充了數據字典的不足。

目前較流行的表達處理邏輯小說明的工具有:結構式語言、判斷樹、判斷表

等。

6)外部實體

外部實體是系統的“人-機”界面,也就是系統的數據流由外部實體流入,

29

或者系統的數據向外部流出。主要內容:

①外部實體的名稱及編號

②與外部實體有關的數據流

為了更加清晰簡潔起見,建議采用下列符號:

=意思是等價于(或定義為);

+意思是和(即,連接兩個分量);

口意思是或(即,從方括號內列出的若干個分量中選擇一個);

{}意思是重復(即,重復花括號內的分量);

()意思是可選(即,圓括號里的分量可有可無)。

常常使用上限和下限進一步注釋表示重復的花括號。

四、加工邏輯的描述

加工邏輯也稱為“小說明”,是對數據流圖中每個加工所作的說明。

描述加工邏輯一般用結構化語言、判定表和判定樹。

1結構化語言:介于自然語言和形式語言之間的一種半形式語言

1判定表:適用于加工邏輯包含多個條件,而不同的條件組合需做不同的

動作

一張判定表由4部分組成。左上部列出所有條件;左下部列出所有可能做的

工作;右上部每一列表示出各種條件的一種可能組合,填入“丁’表示條件成立,

填入“F”表示條件不成立,空白表示條件成立與否不影響。所以所有列表示條

件組合全部可能情況;右下部的每一列是和每一種條件組合相對應的工作,填入

“X”表示在該列上部規定的條件下做該行左邊列出的那項工作,空白表示不做

該項工作。

30

I條件類別條件組合II

III操作定義操作執行IV

判定表結構描述

1判定樹:判定表的變種,它本質上與判定表是相同的,只是表示形式不

判定樹是判定表的圖形化表示,是判定表的變種。由于判定表不直觀,需要

仔細推敲才能看出它的含義。所以引入判定樹后,可以很直觀地看出各種復雜的

條件組合與相應的動作之間的對應關系。

31

1.什么是結構化分析方法?該方法使用什么描述工具?

2.什么是數據流圖?其作用是什么?其中的基本符號各表示什么含

義?

3.畫數據流圖的步驟是什么?注意事項。

4.什么是數據字典?其作用有哪些?有哪些條目?

作業布置

5.描述加工邏輯的工具有幾種?各是什么?

本章節對需求分析的方法和結構化分析的方法的相關內容作了

介紹,著重講解了數據流圖、數據字典、判定表和判定樹的相關知

識,為后續的需求分析報告做鋪墊。

教學反思

教研室主任簽字:

32

《軟件工程》教案內容

第三章軟件需求分析

授課章節及內容第5節需求分析圖形工具

第6節SA方法的應用

12級計算

周一3,4

課時數2授課時間授課班級機科學與

周三1,2

技術專業

復習前節課講述的需求分析方法和結構化分析方法的相關知

復習舊課要點

識。

1.掌握層次圖、Wamier圖和IPO圖的畫法;

新課教學目的

2.掌握SA方法的應用。

重占?

1.掌握層次圖、Wamier圖和IPO圖的畫法。

本章節重點難點

難點:

1.掌握SA方法的應用。

教學方法多媒體教學教學過程設計啟發式和討論式教學

33

授課內容:

第5節需求分析圖形工具

3.5.1層次方框圖

層次方框圖是用樹形結構的一系列多層次的矩形框描繪數據的層次結構

樹形結構的頂層是一個單獨的矩形框,它代表完整的數據結構

下面各層的矩形框代表這個數據的子集,最低層的各個框代表組成這個數據

的實際數據元素(不可再分割)

例如,某計算機公司全部產品的數據結構如圖3-10所示.這家公司的產品由

硬件、軟件和服務三類產品組成,軟件產品又分為系統軟件和應用軟件,系統軟

件又進一步分為操作系統、編譯程序和軟件工具,……o

~產品"

硬件系統編譯程序軟件工具“

3.5.2Warnier圖

Warnier圖是法國科學家提出的表示層次或樹形數據的工具。和層次方框圖

類似。

圖3-11是用Warnier圖描繪一類軟件產品的例子,它說明了這種圖形工具的

用法。圖中的花括號用來區分數據結構的層次,在一個花括號中的所有名字都屬

34

于一類信息;異或信息十表明一類信息或者一個數據元素在一定條件下才出現,

而且在這個符號上、下方的兩個名字所代表的數據只能出現一個;在一個名字下

面(或右邊)的括號中的數字表明了這個名字所代表的信息類(或元素)在這個

數據結構中重復出現的次數。

r操作系統(N1)P

編譯程序(N2),

系統軟件J俾輯程序(N3),

軟件產品(|軟件工乳測試驅動程序(N4),

、]設計輔助工具(N5)P

?I

k應用軟件,

圖3TlWarnier圖的一個例子”

3.5.3IPO圖

IPO(InputProcessOutput)圖

IPO圖是輸入/處理/輸出圖的簡稱,能夠方便地描繪輸入數據'對數據的處

理和輸出數據之間的關系。常用于對當前系統簡單的算法描述。這種描述比較粗

糙,隱含了詳細的數據流。

基本形式是:在左方框中列出輸入數據,中間列出加工處理的條目,右方框

中列出輸出數據條目,各框之間用粗箭頭表示數據通訊信息。

圖3-12是一個主文件更新的例子,通過此例可以加快理解IPO圖的用法。

35

輸入處理輸出。

舊的主文,A1、校喊“有效的,

件"主記錄。----------主記錄"

事務文件"2、校驗“__________有效的,

事務記錄"事務記錄P

p

3、更新。更新后的。

主記錄Q----------一二-主文件"

圖3-12IPO圖的一個例子-

第6節SA方法的應用

1項目說明

2數據流圖

3數據字典

1需求規格說明的主要內容

軟件需求規格說明作為分析結果,它是軟件開發,軟件驗收和管理的依據。

因此,必須特別重視這一項工作,否則將可能要付出很大代價。軟件需求規格說

明的一般格式如下。

1.引言

1)編寫目的(闡明編寫需求說明書的目的,指明讀者對象。)

2)項目背景(應包括:項目的委托單位、開發單位和主管部門;該軟件系統

與其他系統的關系。)

3)定義(列出文檔中所用到的專門術語的定義和縮寫詞的原文。)

4)參考資料(可包括:項目經核準的計劃任務書'合同或上級機關的批文;

項目開發計劃;文檔所引用的資料、標準和規范。列出這些資料的作者、標題、

編號、發表日期、出版單位或資料來源。)

36

2.任務概述

1)目標

2)運行環境

3)條件與限制

3.數據描述

1)靜態數據

2)動態數據(包括輸入數據和輸出數據。)

3)數據庫描述(給出使用數據庫的名稱和類型。)

4)數據詞典

5)數據采集

4.功能要求

1)功能劃分

2)功能描述

5.性能需求

1)數據精確度

2)時間特性(如響應時間'更新處理時間、數據轉換與傳輸時間、運行時間

等。)

3)適應性(在操作方式、運行環境、與其他軟件的接口以及開發計劃等發生

變化時,應具有的適應能力。)

6.運行需求

1)用戶界面(如屏幕格式、報表格式、菜單格式'輸入輸出時間等。)

2)硬件接口

37

3)軟件接口

4)故障處理

7.其他要求:如可使用性、安全保密、可維護性、可移植性等

8.附錄

38

1.根據下列描述,畫出教材征訂系統的第一層數據流圖。學生入學

后到教材科訂書,教材科根據教材庫存情況分析是否需要買書,如

需購買,則向書店購買。各種資金往來通過學校的會計科辦理。

2.圖書館的預定圖書子系統有如下功能:

(1)由供書部門提供書目給訂購組;

作業布置(2)訂書組從各單位取得要訂的書目;

(3)根據供書目錄和訂書書目產生訂書文檔留底;

(4)將訂書信息(包括數目,數量等)反饋給供書單位;

(5)將未訂書目通知訂書者;

(6)對于重復訂購的書目由系統自動檢查,并把結果反饋給訂書者。

試根據要求畫出該問題的數據流程圖。

本章節對需求分析的圖形工具層次方框圖、Warnier圖和IPO圖

作了詳細的講解,并對SA的應用進行了舉例說明,通過本次學習對

后續的需求分析報告奠定基礎。

教學反思

教研室主任簽字:

39

《軟件工程》教案內容

第四章軟件總體設計

授課章節及內容第1節軟件總體設計的目標和任務

第2節軟件設計的概念和原理

12級計算

周一3,4

課時數2授課時間授課班級機科學與

周三1,2

技術專業

復習舊課要點復習前節課講述的軟件需求分析的相關知識。

1.了解軟件總體設計的目標和任務;

新課教學目的2.掌握模塊和模塊化;

3.掌握抽象/信息隱蔽和局部化/模塊獨立性及其度量。

重占?

1.掌握模塊和模塊化。

本章節重點難點

難點:

1.掌握抽象/信息隱蔽和局部化/模塊獨立性及其度量。

教學方法多媒體教學教學過程設計啟發式和討論式教學

40

授課內容:

第1節軟件總體設計的目標和任務

軟件總體設計:解決“怎么做”.

軟件總體設計的任務:以軟件需求規格說明書為依據,著手實現軟件的需

求,并將設計的結果反映在“設計規格說明書”文檔中。

軟件總體設計的重要性:是軟件開發階段的第一步,最終影響軟件實現的成

敗和軟件維護的難易程度。

第一階段:概要設計(總體設計)

根據軟件需求,設計軟件系統結構和數據結構,確定程序的組成模塊及模塊

之間的相互關系。

回答“概括地說,系統應該如何實現?

第二階段:詳細設計(過程設計)

確定模塊內部的算法和數據結構;選定某種過程的表達形式來描述各種算

法;產生精確描述各模塊程序過程的詳細文檔,并進行評審。

將需求分析模型轉換為軟件總體設計

軟件結構設計以需求分析中得到的數據流圖為基礎而進行。

?第一個階段總體設計的任務

41

①制定規范

②設計軟件系統結構(簡稱軟件結構)

③處理方式設計

④數據結構及數據庫設計

⑤可靠性設計

⑥編寫概要設計文檔

⑦概要設計評審

?設計的過程

提供選推薦最功能設計軟

擇方案佳方案分解件結構

制訂測

數據流圖?系統流程圖試計劃I設計

______r-組成系統的物理

元素清單?系統說明

?成本/效益分析書寫?用戶手冊

文檔?測試計劃

?實現系統的進度

詳細的實現計劃

計劃?

?數據庫設計結果

審查和

復審

第2節軟件設計的概念和原理

4.2.1模塊和模塊化

模塊:又稱構件,是能夠單獨命名并獨立地完成一定功能的程序語句的集

合。

模塊化:就是指把一個待開發的軟件系統分解成若干小的部分,即將一個

大的問題分成若干小的問題逐一解決。

4.2.2抽象

42

抽象就是抽出事物的本質特性而暫時忽略其他不重要、存在差異的細節。

什么是抽象思想?

在認識事物'分析和解決問題的過程中,忽略那些與當前研究目標不相關

的部分,以便將注意力集中于與當前目標相關的方面。

軟件開發實際上就是一個從高層次抽象到低層次抽象逐步過渡的過

程。

逐步求精:在軟件開發的過程中,每前進一步實際上就是對軟件解法抽象

層次的進一步細化,即為我們所說的逐步求精。或者說逐步求精即為抽象的細化

過程。

逐步求精是一種自頂向下的設計策略,按這種設計策略,程序的體系結構

是通過逐步精化處理過程的層次而設計出來的。

4.2.3信息隱蔽和局部化

信息隱蔽:在設計和確定模塊時,使得一個模塊內包含的信息(過程或數

據),不允許其它不需要這些信息的模塊訪問,獨立的模塊間僅僅交換為完成系

統功能而必須交換的信息。

信息隱蔽的思想主要是強調模塊的獨立特性及其信息的隱蔽,即對于一個

整體的程序劃分為若干模塊,而每個模塊隱藏、封裝一定功能的程序成分,并盡

可能少地顯露其內部實現細節。

局部化則是指把一些關系密切的軟件元素彼此間靠近,使關系密切的元素

位于同一局部范圍之內。

4.2.4模塊獨立性及其度量

模塊的獨立性是指軟件系統中每個模塊只涉及軟件要求的具體的子功能,

43

而和軟件系統中其它的模塊的接口盡可能簡單。模塊的獨立性是軟件質量好的關

鍵。

模塊獨立性的度量:

一般采用兩個準則度量模塊獨立性。即模塊間的耦合性和模塊的內聚性。

?耦合性也稱塊間的聯系是模塊之間互相連接的緊密程度的度量。模塊之間的

連接越緊密,聯系越多,耦合性就越高,而其獨立性就越弱。

?內聚性是一個模塊內部各個元素彼此結合的緊密程度的度量。一個模塊內部

各個元素之間的聯系越緊密,則它的內聚性就越高,相對地,它與其它模塊

之間的耦合性就會減低,而模塊獨立性就越強。

模塊獨立性比較強的模塊應是高內聚低耦合的模塊。

模塊的耦合性有以下幾種類型:

?無直接耦合

兩個模塊沒有直接關系,模塊獨立性最強。

圖例:模塊1與模塊2;模塊3與模塊4

?數據耦合

屬松散耦合。一模塊訪問另一模塊時,通過數據參數交換輸入'輸出信息。

44

例:

標記耦合

兩個模塊通過傳遞數據結構加以聯系,或都與一個數據結構有關系,則稱

這兩個模塊間存在特征耦合。

可能出現的情況:當把整個數據結構作為參數傳遞時,被調用的模塊雖然

只需要使用其中的一部分數據元素,但實際可以使用的數據多于它真正需要的數

據,這將導致對數據訪問失去控制。

控制耦合

模塊之間傳遞的是控制信息(如開關、標志、名字等),控制被調用模塊的

內部邏輯。

45

?公共環境耦合

一組模塊引用同一個公用數據區(也稱全局數據區、公共數據環境)。

公共數據區指:

全局數據結構。

共享通訊區。

內存公共覆蓋區等。

?內容耦合

有下列情況之一的。是最不好的耦合形式!

46

AB

B、一個模塊不通過

A、一模塊直接訪問另正常入口轉換到

一模塊的內部信息另一個模塊內部

Entry1

Entry1

C、兩個模塊有一D、一個模塊有

部分代碼重疊多入口模塊

無直接耦合

低強

低耦合數據耦合

耦特征耦合塊

合獨

中耦合控制耦合立

較強耦合公共環境耦合性

高強耦合內容耦合弱

模塊內聚性:

又稱塊內聯系內聚。是描述一個模塊內各個元素之間關系的一個概念,是

對各元素彼此結合的緊密程度的一種度量。

模塊的內聚性有以下幾種類型:

?偶然內聚

塊內各組成成份在功能上是互不相關的。

缺點:可理解性差,可修改性差

邏輯內聚

幾個邏輯上相關的功能被放在同一模塊中,則稱為邏輯內聚。

時間內聚

47

模塊完成的功能必須在同一時間內執行,這些功能只因時間因素關聯在一

起。

通信內聚

模塊內各部分使用相同的輸入數據,或產生相同的輸出結果。

?順序內聚

如果一個模塊內處理元素和同一功能密切相關,而且這些處理元素必須順

序執行,則稱為順序內聚。

?功能內聚

模塊中的各個程序段聯合起來共同完成一個特定的具體的單一的功能,模

塊中各個部分都是完成該功能必不可少的部分,模塊的各個部分協同工作、緊密

聯系'不可分割。內聚性最強。

些熊內聚

高內聚功能單一

順序內聚強

溫馨提示

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

最新文檔

評論

0/150

提交評論