《軟件工程》教案_第1頁
《軟件工程》教案_第2頁
已閱讀5頁,還剩134頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE教案 學年學期:2014—2015學年第二學期院部:計算科學與信息工程學院專業(yè):計算機科學與技術(shù)教研室:計算機教研室課程名稱:軟件工程年級:2012級授課教師:臧麗職稱:助教PAGE138《軟件工程》教案課程性質(zhì)必修課程類型專業(yè)課總學時/學分67/3學時分配理論51授課時間周一3,4周三1,2授課層次本科實踐16本課程教學目的和要求本課程是計算機軟件與應(yīng)用專業(yè)的主干課程。通過本課程的學習,使得學生不僅了解軟件需求分析、設(shè)計、實現(xiàn)和測試等軟件開發(fā)全過程的相關(guān)原理和概念,掌握當前UML建模等主流軟件開發(fā)方法和技術(shù),而且具備使用ROSE等主流建模工具進行實際軟件項目開發(fā)的能力。本課程教學重點、難點重點:能用軟件工程的方法參與軟件項目的分析、設(shè)計、實現(xiàn)和維護難點:需求分析、軟件測試教材和參考書軟件工程——原理、方法和工具《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第一章軟件危機、軟件工程第1節(jié)軟件工程的發(fā)展史第2節(jié)軟件危機主要表現(xiàn)形式第3節(jié)產(chǎn)生軟件危機的原因及解決途徑課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前幾學期學習的相關(guān)軟件與程序知識新課教學目的1.掌握軟件工程的基本概念(如軟件和軟件工程的定義等);2.理解軟件危機的表現(xiàn)形式、產(chǎn)生的原因及消除的途徑。本章節(jié)重點難點重點:1.掌握軟件工程的基本概念(如軟件和軟件工程的定義等)。難點:1.理解軟件危機的表現(xiàn)形式、產(chǎn)生的原因及消除的途徑。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:第1節(jié)軟件工程的發(fā)展史1.1.1程序設(shè)計時代1.1.2程序系統(tǒng)時代1.1.3軟件工程時代第2節(jié)軟件危機主要表現(xiàn)形式軟件危機:在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。軟件危機主要包含兩方面的問題:一是如何開發(fā)軟件以滿足多軟件日益增長的需求;二是如何維護數(shù)量不斷增長的已有軟件。第3節(jié)產(chǎn)生軟件危機的原因及解決途徑1.3.1產(chǎn)生軟件危機的原因軟件是計算機系統(tǒng)中的邏輯部件,軟件產(chǎn)品往往規(guī)模龐大,結(jié)構(gòu)復(fù)雜軟件開發(fā)的管理困難軟件開發(fā)費用不斷增加,維護費用急劇上升軟件開發(fā)技術(shù)落后生產(chǎn)方式落后開發(fā)工具落后,生產(chǎn)效率提高緩慢1.3.2解決軟件危機途徑應(yīng)該對計算機軟件有一個正確的認識,徹底清除“軟件就是程序”的錯誤觀念。要使用并且不斷研究探索更好、更有效的技術(shù)和方法要有良好的組織、嚴密的管理應(yīng)該開發(fā)和使用好的軟件工具作業(yè)布置1.什么是軟件?軟件和程序的區(qū)別是什么?2.什么是軟件危機?它有哪些主要表現(xiàn)?為什么會產(chǎn)生軟件危機?教學反思本章節(jié)對計算機軟件工程學作了一個簡短的概述。首先通過回顧計算機系統(tǒng)發(fā)展簡史,說明開發(fā)軟件的一些錯誤方法和觀念是怎樣形成的。然后列舉了這些錯誤方法帶來的嚴重弊病(軟件危機),澄清了一些糊涂觀念。為了計算機系統(tǒng)的進一步發(fā)展,需要認真研究開發(fā)和維護軟件的科學技術(shù)。應(yīng)總結(jié)計算機軟件的歷史經(jīng)驗教訓(xùn),借鑒其他工程領(lǐng)域的管理技術(shù),逐步使軟件工程這門新學科發(fā)展和完善起來。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第一章軟件危機、軟件工程第4節(jié)軟件和軟件工程第5節(jié)軟件質(zhì)量第6節(jié)軟件的生存周期及開發(fā)模型課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的軟件和軟件危機的相關(guān)知識。新課教學目的1.了解軟件工程的基本原理、方法學;2.掌握軟件的生存期;3.掌握幾種主要的軟件開發(fā)模型。本章節(jié)重點難點重點:1.掌握軟件工程的基本原理、方法學。難點:1.掌握幾種主要的軟件開發(fā)模型。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:第4節(jié)軟件和軟件工程1.4.1軟件定義一:軟件是程序、數(shù)據(jù)以及開發(fā)、使用和維護程序需要的所有文檔的完整集合。定義二:軟件是計算機程序、方法、規(guī)則、相關(guān)的文檔資料以及在計算機上運行程序時所必須的數(shù)據(jù)。1.4.2軟件工程定義一:軟件工程是指導(dǎo)計算機軟件開發(fā)和維護的一門工程學科。軟件工程采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護軟件。定義二:軟件工程就是為了經(jīng)濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理。定義三:軟件工程是:①是把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運行和維護過程,也就是把工程應(yīng)用于軟件;②研究①中提到的途徑。第5節(jié)軟件質(zhì)量定義:軟件質(zhì)量是軟件產(chǎn)品滿足規(guī)定的和隱含的有關(guān)特征和特性的全體,或者說所有描述計算機軟件優(yōu)秀程度的特性的組合。軟件質(zhì)量的度量標準:功能性、可靠性、易用性、效率、可維護性、可移植性等。第6節(jié)軟件的生存周期及開發(fā)模型1.6.1軟件生存周期定義:軟件生存周期是指某一軟件項目被提出來并著手實現(xiàn)開始直到該軟件報廢或停止使用為止。階段劃分:一般分為軟件計劃、軟件開發(fā)和軟件運行三個時期。軟件計劃時期一般有問題定義和可行性研究兩個階段;開發(fā)時期有需求分析、軟件設(shè)計(包括概要設(shè)計、詳細設(shè)計)、編碼和測試四個階段;運行時期主要是維護階段。1.6.2.軟件開發(fā)模型瀑布模型快速原型模型增量模型螺旋模型作業(yè)布置1.什么是軟件工程?怎樣利用軟件工程消除軟件危機?2.簡述度量軟件質(zhì)量的六個特性,在軟件開發(fā)中如何保證軟件質(zhì)量?3.說明文檔和復(fù)審對于軟件質(zhì)量控制的作用。4.什么是軟件生存周期模型?試比較本章介紹的四種模型的優(yōu)缺點,5.說明每種模型的使用范圍。教學反思本章節(jié)對計算機軟件工程學作了一個簡短的概述。首先通過計算機系統(tǒng)發(fā)展簡史,說明開發(fā)軟件的一些錯誤方法和觀念是怎樣形成的。然后列舉了這些錯誤方法帶來的軟件危機,澄清了一些糊涂觀念。為了計算機系統(tǒng)的進一步發(fā)展,需要認真研究開發(fā)和維護軟件的科學技術(shù)。就總結(jié)計算機軟件的歷史經(jīng)驗教訓(xùn),借鑒其他工程領(lǐng)域的管理技術(shù),逐步使軟件工程這門新興學科發(fā)展和完善起來。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第二章可行性研究第1節(jié)可行性研究的目的與任務(wù)第2節(jié)可行性研究的步驟第3節(jié)系統(tǒng)流程圖課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的軟件工程的相關(guān)知識。新課教學目的1.了解軟件工程的基本原理、方法學;2.掌握軟件的生存期;3.掌握幾種主要的軟件開發(fā)模型。本章節(jié)重點難點重點:1.理解可行性研究的必要性。2.掌握可行性研究的任務(wù)、過程。難點:1.掌握系統(tǒng)流程圖、數(shù)據(jù)流程圖、數(shù)據(jù)字典概念。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:第1節(jié)可行性研究的目的與任務(wù)可行性研究的目的:就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。可行性研究的操作步驟:經(jīng)濟可行性技術(shù)可行性操作可行性法律可行性第2節(jié)可行性研究的步驟復(fù)查并確定系統(tǒng)規(guī)模和目標研究目前正在使用的系統(tǒng)建立新系統(tǒng)的高層邏輯模型導(dǎo)出和評價各種方案推薦可行方案草擬初步的開發(fā)計劃編寫可行性研究報告提交審查第3節(jié)系統(tǒng)流程圖系統(tǒng)流程圖是描述物理系統(tǒng)的工具。2.3.1系統(tǒng)流程圖的符號2.3.2系統(tǒng)流程圖示例作業(yè)布置1.在軟件開發(fā)早期階段為什么要進行可行性研究?可行性研究的任務(wù)是什么?應(yīng)該從哪幾個方面研究目標系統(tǒng)的可行性?2.有人認為,只懂技術(shù)的分析員不一定能圓滿完成可行性研究的任務(wù)。你同意這種看法嗎?為什么?教學反思本章節(jié)著重理解可行性研究的必要性,以及它的基本任務(wù)和基本步驟,在此基礎(chǔ)上再進一步學習具體方法和工具。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第二章可行性研究第4節(jié)成本-效益分析第5節(jié)可行性研究報告的主要內(nèi)容課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的可行性研究和流程圖的相關(guān)知識。新課教學目的1.掌握可行性研究的任務(wù)、過程、成本效益分析以及可行性研究報告的主要內(nèi)容;2.掌握系統(tǒng)流程圖、數(shù)據(jù)流程圖、數(shù)據(jù)字典概念以及項目開發(fā)計劃的基本內(nèi)容。本章節(jié)重點難點重點:1.掌握成本效益分析以及可行性研究報告的主要內(nèi)容。難點:1.掌握項目開發(fā)計劃的基本內(nèi)容。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:第4節(jié)成本-效益分析成本-效益分析的目的使從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行2.4.1貨幣的時間價值通常用利率的形式表示貨幣的時間價值。假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后可得到的錢數(shù)為F,若不記復(fù)利則:F=P*(1+n*i)這也就是P元錢在n年后的價值。反之,如果n年后能收入F元錢,那么這些錢現(xiàn)在的價值是:P=F/(1+n*i)2.4.2投資回收期投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需要的時間。顯然,投資回收期越短,就可以越快獲得利潤,因此該項目就越值得投資開發(fā)投資回收期僅僅是一項經(jīng)濟指標,為了衡量一個開發(fā)工程項目的價值,還應(yīng)考慮其他經(jīng)濟指標。2.4.3純收入純收入,就是在整個生存周期之內(nèi)系統(tǒng)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差。這相當于投資開發(fā)一個軟件系統(tǒng)和把錢存入銀行中(或做其它用)兩種方案的優(yōu)劣比較。第5節(jié)可行性研究報告的主要內(nèi)容引言可行性研究前提對現(xiàn)有系統(tǒng)的分析對所建設(shè)系統(tǒng)的分析其他與設(shè)計有關(guān)選擇方案其他與設(shè)計有關(guān)的專門問題結(jié)論意見作業(yè)布置1.成本-效益分析可用哪些指標進行度量?2.為方便旅客,某航空公司擬開發(fā)一個飛機票預(yù)定系統(tǒng)。旅游公司把預(yù)定機票的旅客信息(姓名、年齡、工作單位、身份證號碼、旅游時間、旅游目的地等)輸入進該系統(tǒng),系統(tǒng)為旅客安排航班,打印出取票通知和帳單,旅客在飛機起飛前的三天之內(nèi)憑取票通知和賬單交款取機票,系統(tǒng)校對無誤即給打印出飛機票給旅客。3.請寫出開發(fā)此系統(tǒng)的問題定義,并通過可行性研究,分析此系統(tǒng)的可行性。4.試為第5題寫可行性研究報告的主要內(nèi)容。教學反思本章節(jié)對成本-效益分析和可行性研究報告的主要內(nèi)容作了一個簡短的概述。通過學習學生可以學會撰寫可行性分析報告。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第三章軟件需求分析第1節(jié)需求分析的任務(wù)和步驟第2節(jié)需求獲取的常用方法課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的系統(tǒng)流程圖的畫法。新課教學目的1.掌握需求分析的任務(wù),需求分析的步驟;2.掌握需求獲取的常用方法。本章節(jié)重點難點重點:1.掌握需求分析的任務(wù),需求分析的步驟。難點:1.掌握需求獲取的常用方法。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:第1節(jié)需求分析的任務(wù)和步驟軟件需求分析是軟件生存周期中重要的一步,也是最關(guān)鍵的一步。只有通過軟件需求分析,才能把軟件功能和性能研究清楚,并將其描述為具體的軟件需求規(guī)格說明,進而建立軟件開發(fā)的基礎(chǔ)。軟件需求分析是一個不斷認識和逐步細化的過程。在該過程中能將軟件計劃階段所確定的軟件范圍逐步細化到可詳細說明的程度。制定軟件的需求規(guī)格說明不僅是軟件開發(fā)者的任務(wù),而且用戶也起著極其重要的作用。首先用戶必須對軟件功能和性能提出初步的基本要求,并澄清一些模糊概念。然后軟件分析人員了解用戶的要求,認真細致地進行調(diào)查研究與分析,把用戶要做什么的要求最終轉(zhuǎn)換成一個完全的、細致的軟件需求規(guī)格說明,準確地表達用戶的要求,進而為概要設(shè)計做好準備工作。需求分析的任務(wù)就是借助于當前系統(tǒng)的邏輯模型導(dǎo)出目標系統(tǒng)的邏輯模型,解決目標系統(tǒng)的“做什么”的問題。3.1.2需求分析的步驟需求獲?。赫{(diào)查研究需求提煉:分析建模需求描述:編寫SRS需求驗證需求分析的原則目前已出現(xiàn)許多分析方法。雖然各種分析方法都有獨特的描述方法,但所有分析方法有共同的基本原則。1.能夠表達和理解問題的數(shù)據(jù)域和功能域2.按自頂向下、逐層分解問題3.給出系統(tǒng)的邏輯視圖和物理視圖3.2需求獲取的常用方法3.2.1需求獲取的常用方法與用戶溝通獲取需求的方法訪談面向數(shù)據(jù)流自頂向下求精簡易的應(yīng)用規(guī)格說明技術(shù)快速建立軟件原型3.2.2快速建立軟件原型模型來獲取需求Andriole提出的以下6個問題,可用來幫助判斷是否選擇原型法來幫助獲取需求:1.需求已經(jīng)建立,并且可以遇見是相當穩(wěn)定嗎?2.軟件開發(fā)人員和用戶已經(jīng)理解了目標系統(tǒng)的應(yīng)用領(lǐng)域嗎?3.問題是否可被模型化?4.用戶能否清楚地確定基本的系統(tǒng)需求?5.有任何需求是含糊的嗎?6.已知的需求中存在矛盾嗎?作業(yè)布置1.為什么要進行需求分析?需求分析需要經(jīng)過哪些步驟?2.需求分析的基本任務(wù)是什么?教學反思本章節(jié)對對需求分析做了簡介,強調(diào)需求分析是回答“要做什么”,而不是回答“怎么做”的問題。為后續(xù)需求分析的方法與圖形工具的學習奠定基礎(chǔ)。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第三章軟件需求分析第3節(jié)需求分析的方法第4節(jié)結(jié)構(gòu)化分析方法課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的需求分析的任務(wù)和步驟的相關(guān)知識。新課教學目的1.掌握需求分析的相關(guān)方法;2.掌握結(jié)構(gòu)化分析方法;3.掌握數(shù)據(jù)流圖的畫法;4.掌握數(shù)據(jù)字典的描述。本章節(jié)重點難點重點:1.掌握需求分析的相關(guān)方法;2.掌握結(jié)構(gòu)化分析方法。難點:1.掌握數(shù)據(jù)流圖的畫法;2.掌握數(shù)據(jù)字典的描述。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:第3節(jié)需求分析的方法1.

需求分析方法:

是由對軟件的數(shù)據(jù)域和功能域的系統(tǒng)分析過程及其表示方法組成。

包括:面向數(shù)據(jù)流,面向數(shù)據(jù)結(jié)構(gòu)。

2.

不同的需求分析方法具有的共性:

1)

支持數(shù)據(jù)域分析的機制:

所有方法都直接或間接地涉及到數(shù)據(jù)流,數(shù)據(jù)內(nèi)容或數(shù)據(jù)結(jié)構(gòu)等數(shù)據(jù)域的屬性。

2)

功能表示的方法:

一般用數(shù)據(jù)變換或加工來表示。

3)

接口的定義:

是數(shù)據(jù)表示和功能表示的直接產(chǎn)物。(功能間的接口—數(shù)據(jù)流)

4)

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

在不同抽象層次上表示數(shù)據(jù)域和功能域,以逐層細化的手段建立分層結(jié)構(gòu)。

5)

邏輯視圖和物理視圖:

6)

系統(tǒng)抽象模型:

是對現(xiàn)實世界中存在的有關(guān)實體和活動的抽象和精化。第4節(jié)結(jié)構(gòu)化分析方法一.結(jié)構(gòu)化分析方法:是面向數(shù)據(jù)流進行需求分析的方法,是用抽象模型的概念,按軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現(xiàn)的軟件為止。二.

數(shù)據(jù)流圖:

1.

數(shù)據(jù)流圖(DFD):

是軟件系統(tǒng)邏輯模型的一種圖形表示,是從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程的工具。

2.

組成符號:

1)

基本符號:

→箭頭,表示數(shù)據(jù)流;○圓或橢圓,表示變換數(shù)據(jù)的處理;□方框,表示數(shù)據(jù)的三原點或終點;雙杠或單杠,表示數(shù)據(jù)存儲(文件)。2)數(shù)據(jù)流與加工之間的關(guān)系其中星號“*”表示相鄰的一對數(shù)據(jù)流同時出現(xiàn),?則表示相鄰的兩數(shù)據(jù)流只取其一。數(shù)據(jù)流圖加工關(guān)系3)分層的數(shù)據(jù)流圖4.數(shù)據(jù)流圖畫法畫數(shù)據(jù)流圖的基本步驟概括地說,就是自外向內(nèi),自頂向下,逐層細化,完善求精。具體步驟如下:①先找系統(tǒng)的數(shù)據(jù)源點與匯點。它們是外部實體,由它們確定系統(tǒng)與外界的接口。②找出外部實體的輸出數(shù)據(jù)流與輸入數(shù)據(jù)流。③在圖的邊上畫出系統(tǒng)的外部實體。④從外部實體的輸出數(shù)據(jù)流(即系統(tǒng)的源點)出發(fā),按照系統(tǒng)的邏輯需要,逐步畫出一系列邏輯加工,直到找到外部實體所需的輸入數(shù)據(jù)流(即系統(tǒng)的匯點),形成數(shù)據(jù)流的封閉。⑤按照下述的原則進行檢查和修改。⑥按照上述步驟,再從各加工出發(fā),畫出所需的子圖。數(shù)據(jù)流圖的分層方法一個分層的數(shù)據(jù)流圖由頂圖、底圖和中間層的數(shù)據(jù)流圖所組成。頂圖說明了系統(tǒng)的邊界,即系統(tǒng)的輸入和輸出的數(shù)據(jù)流,頂圖只有一張。底圖由一些不必再分解的處理邏輯組成,分層數(shù)據(jù)流圖三、數(shù)據(jù)字典1.數(shù)據(jù)字典的定義數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,對數(shù)據(jù)流圖中的各個元素作完整的定義與說明,是數(shù)據(jù)流圖的補充工具。l)數(shù)據(jù)流在一個數(shù)據(jù)流圖上,數(shù)據(jù)按數(shù)據(jù)流為單位傳輸。主要內(nèi)容有;①數(shù)據(jù)流名稱及其稱號表示。②數(shù)據(jù)流的來源:一個外部實體、處理邏輯、數(shù)據(jù)存貯。③數(shù)據(jù)流的去處:一個外部實體。④數(shù)據(jù)流的組成:一個數(shù)據(jù)流可能包括若干個數(shù)據(jù)結(jié)構(gòu),若只有一個數(shù)據(jù)結(jié)構(gòu),就不需要專門定義。⑤數(shù)據(jù)流的流通量:單位時間的傳輸次數(shù)。⑥高峰時期的流通量:業(yè)務(wù)的頻繁程度和時間有關(guān)。2)數(shù)據(jù)項數(shù)據(jù)項也稱數(shù)據(jù)元素,是不可再分的數(shù)據(jù)最小組成單位,主要內(nèi)容有:①數(shù)據(jù)項名稱及編號:數(shù)據(jù)項名稱必須唯一地標識這個數(shù)據(jù)項,以區(qū)別于其他數(shù)據(jù)項;給數(shù)據(jù)項取名時,要反映該數(shù)據(jù)項的含義,易于他人理解與記憶。②別名:同一數(shù)據(jù)項的名稱可能不止一個,稱為別名。③取值的范圍和取值的含義④數(shù)據(jù)項的長度:指數(shù)據(jù)項所包含的字符或數(shù)字的位數(shù)。3)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)描述了某些數(shù)據(jù)項之間的關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)組成,也可以由若干個數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)組成。主要內(nèi)容包括如下。據(jù)結(jié)構(gòu)的名稱及其編號②數(shù)據(jù)結(jié)構(gòu)的組成:如果是一個簡單的數(shù)據(jù)結(jié)構(gòu),只要列出它所包含的數(shù)據(jù)項即可。如果是一個嵌套的數(shù)據(jù)結(jié)構(gòu),只需列出它所包含的數(shù)據(jù)結(jié)構(gòu)名稱,因為這些數(shù)據(jù)結(jié)構(gòu)同樣在數(shù)據(jù)字典中有定義。4)數(shù)據(jù)存貯數(shù)據(jù)存貯是數(shù)據(jù)結(jié)構(gòu)停留或保存的場所。主要內(nèi)容:①數(shù)據(jù)存貯的名稱及其編號:在數(shù)據(jù)流程圖中對數(shù)據(jù)存貯給以命名,并編上一個唯一的編號。②流入、流出的數(shù)據(jù)流:流入的數(shù)據(jù)流指出其來源,流出的數(shù)據(jù)流指出其去向。③數(shù)據(jù)存貯的組成:指它所包含的數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)。5)處理邏輯。主要內(nèi)容:①處理邏輯的名稱及編號②簡述:對處理邏輯的簡明描述,其目的是使人了解這個處理邏輯是做什么用的。③處理邏輯的輸入和輸出。④處理邏輯的主要功能⑤處理邏輯的小說明(文檔之一)處理邏輯小說明對處理邏輯的功能作明確的描述,詳細地描述其輸入/輸出的數(shù)據(jù)流,以及這些數(shù)據(jù)的基本轉(zhuǎn)換路徑和策略,它補充了數(shù)據(jù)字典的不足。目前較流行的表達處理邏輯小說明的工具有:結(jié)構(gòu)式語言、判斷樹、判斷表等。6)外部實體外部實體是系統(tǒng)的“人-機”界面,也就是系統(tǒng)的數(shù)據(jù)流由外部實體流入,或者系統(tǒng)的數(shù)據(jù)向外部流出。主要內(nèi)容:①外部實體的名稱及編號②與外部實體有關(guān)的數(shù)據(jù)流為了更加清晰簡潔起見,建議采用下列符號:=意思是等價于(或定義為);+意思是和(即,連接兩個分量);[]意思是或(即,從方括號內(nèi)列出的若干個分量中選擇一個);{}意思是重復(fù)(即,重復(fù)花括號內(nèi)的分量);()意思是可選(即,圓括號里的分量可有可無)。常常使用上限和下限進一步注釋表示重復(fù)的花括號。四、加工邏輯的描述加工邏輯也稱為“小說明”,是對數(shù)據(jù)流圖中每個加工所作的說明。描述加工邏輯一般用結(jié)構(gòu)化語言、判定表和判定樹。結(jié)構(gòu)化語言:介于自然語言和形式語言之間的一種半形式語言判定表:適用于加工邏輯包含多個條件,而不同的條件組合需做不同的動作一張判定表由4部分組成。左上部列出所有條件;左下部列出所有可能做的工作;右上部每一列表示出各種條件的一種可能組合,填入“T”表示條件成立,填入“F”表示條件不成立,空白表示條件成立與否不影響。所以所有列表示條件組合全部可能情況;右下部的每一列是和每一種條件組合相對應(yīng)的工作,填入“×”表示在該列上部規(guī)定的條件下做該行左邊列出的那項工作,空白表示不做該項工作。判定樹:判定表的變種,它本質(zhì)上與判定表是相同的,只是表示形式不同判定樹是判定表的圖形化表示,是判定表的變種。由于判定表不直觀,需要仔細推敲才能看出它的含義。所以引入判定樹后,可以很直觀地看出各種復(fù)雜的條件組合與相應(yīng)的動作之間的對應(yīng)關(guān)系。作業(yè)布置1.什么是結(jié)構(gòu)化分析方法?該方法使用什么描述工具?2.什么是數(shù)據(jù)流圖?其作用是什么?其中的基本符號各表示什么含義?3.畫數(shù)據(jù)流圖的步驟是什么?注意事項。4.什么是數(shù)據(jù)字典?其作用有哪些?有哪些條目?5.描述加工邏輯的工具有幾種?各是什么?教學反思本章節(jié)對需求分析的方法和結(jié)構(gòu)化分析的方法的相關(guān)內(nèi)容作了介紹,著重講解了數(shù)據(jù)流圖、數(shù)據(jù)字典、判定表和判定樹的相關(guān)知識,為后續(xù)的需求分析報告做鋪墊。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第三章軟件需求分析第5節(jié)需求分析圖形工具第6節(jié)SA方法的應(yīng)用課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的需求分析方法和結(jié)構(gòu)化分析方法的相關(guān)知識。新課教學目的1.掌握層次圖、Warnier圖和IPO圖的畫法;2.掌握SA方法的應(yīng)用。本章節(jié)重點難點重點:1.掌握層次圖、Warnier圖和IPO圖的畫法。難點:1.掌握SA方法的應(yīng)用。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:第5節(jié)需求分析圖形工具3.5.1層次方框圖層次方框圖是用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu)下面各層的矩形框代表這個數(shù)據(jù)的子集,最低層的各個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素(不可再分割)例如,某計算機公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)如圖3-10所示.這家公司的產(chǎn)品由硬件、軟件和服務(wù)三類產(chǎn)品組成,軟件產(chǎn)品又分為系統(tǒng)軟件和應(yīng)用軟件,系統(tǒng)軟件又進一步分為操作系統(tǒng)、編譯程序和軟件工具,。3.5.2Warnier圖Warnier圖是法國科學家提出的表示層次或樹形數(shù)據(jù)的工具。和層次方框圖類似。圖3-11是用Warnier圖描繪一類軟件產(chǎn)品的例子,它說明了這種圖形工具的用法。圖中的花括號用來區(qū)分數(shù)據(jù)結(jié)構(gòu)的層次,在一個花括號中的所有名字都屬于一類信息;異或信息⊕表明一類信息或者一個數(shù)據(jù)元素在一定條件下才出現(xiàn),而且在這個符號上、下方的兩個名字所代表的數(shù)據(jù)只能出現(xiàn)一個;在一個名字下面(或右邊)的括號中的數(shù)字表明了這個名字所代表的信息類(或元素)在這個數(shù)據(jù)結(jié)構(gòu)中重復(fù)出現(xiàn)的次數(shù)。3.5.3IPO圖IPO(InputProcessOutput)圖IPO圖是輸入/處理/輸出圖的簡稱,能夠方便地描繪輸入數(shù)據(jù)、對數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。常用于對當前系統(tǒng)簡單的算法描述。這種描述比較粗糙,隱含了詳細的數(shù)據(jù)流?;拘问绞牵涸谧蠓娇蛑辛谐鲚斎霐?shù)據(jù),中間列出加工處理的條目,右方框中列出輸出數(shù)據(jù)條目,各框之間用粗箭頭表示數(shù)據(jù)通訊信息。圖3-12是一個主文件更新的例子,通過此例可以加快理解IPO圖的用法。第6節(jié)SA方法的應(yīng)用1項目說明2數(shù)據(jù)流圖3數(shù)據(jù)字典需求規(guī)格說明的主要內(nèi)容軟件需求規(guī)格說明作為分析結(jié)果,它是軟件開發(fā),軟件驗收和管理的依據(jù)。因此,必須特別重視這一項工作,否則將可能要付出很大代價。軟件需求規(guī)格說明的一般格式如下。1.引言1)編寫目的(闡明編寫需求說明書的目的,指明讀者對象。)2)項目背景(應(yīng)包括:項目的委托單位、開發(fā)單位和主管部門;該軟件系統(tǒng)與其他系統(tǒng)的關(guān)系。)3)定義(列出文檔中所用到的專門術(shù)語的定義和縮寫詞的原文。)4)參考資料(可包括:項目經(jīng)核準的計劃任務(wù)書、合同或上級機關(guān)的批文;項目開發(fā)計劃;文檔所引用的資料、標準和規(guī)范。列出這些資料的作者、標題、編號、發(fā)表日期、出版單位或資料來源。)2.任務(wù)概述1)目標2)運行環(huán)境3)條件與限制3.數(shù)據(jù)描述1)靜態(tài)數(shù)據(jù)2)動態(tài)數(shù)據(jù)(包括輸入數(shù)據(jù)和輸出數(shù)據(jù)。)3)數(shù)據(jù)庫描述(給出使用數(shù)據(jù)庫的名稱和類型。)4)數(shù)據(jù)詞典5)數(shù)據(jù)采集4.功能要求1)功能劃分2)功能描述5.性能需求1)數(shù)據(jù)精確度2)時間特性(如響應(yīng)時間、更新處理時間、數(shù)據(jù)轉(zhuǎn)換與傳輸時間、運行時間等。)3)適應(yīng)性(在操作方式、運行環(huán)境、與其他軟件的接口以及開發(fā)計劃等發(fā)生變化時,應(yīng)具有的適應(yīng)能力。)6.運行需求1)用戶界面(如屏幕格式、報表格式、菜單格式、輸入輸出時間等。)2)硬件接口3)軟件接口4)故障處理7.其他要求:如可使用性、安全保密、可維護性、可移植性等8.附錄作業(yè)布置1.根據(jù)下列描述,畫出教材征訂系統(tǒng)的第一層數(shù)據(jù)流圖。學生入學后到教材科訂書,教材科根據(jù)教材庫存情況分析是否需要買書,如需購買,則向書店購買。各種資金往來通過學校的會計科辦理。2.圖書館的預(yù)定圖書子系統(tǒng)有如下功能:(1)由供書部門提供書目給訂購組;(2)訂書組從各單位取得要訂的書目;(3)根據(jù)供書目錄和訂書書目產(chǎn)生訂書文檔留底;(4)將訂書信息(包括數(shù)目,數(shù)量等)反饋給供書單位;(5)將未訂書目通知訂書者;(6)對于重復(fù)訂購的書目由系統(tǒng)自動檢查,并把結(jié)果反饋給訂書者。試根據(jù)要求畫出該問題的數(shù)據(jù)流程圖。教學反思本章節(jié)對需求分析的圖形工具層次方框圖、Warnier圖和IPO圖作了詳細的講解,并對SA的應(yīng)用進行了舉例說明,通過本次學習對后續(xù)的需求分析報告奠定基礎(chǔ)。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第四章軟件總體設(shè)計第1節(jié)軟件總體設(shè)計的目標和任務(wù)第2節(jié)軟件設(shè)計的概念和原理課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的軟件需求分析的相關(guān)知識。新課教學目的1.了解軟件總體設(shè)計的目標和任務(wù);2.掌握模塊和模塊化;3.掌握抽象/信息隱蔽和局部化/模塊獨立性及其度量。本章節(jié)重點難點重點:1.掌握模塊和模塊化。難點:1.掌握抽象/信息隱蔽和局部化/模塊獨立性及其度量。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:第1節(jié)軟件總體設(shè)計的目標和任務(wù)軟件總體設(shè)計:解決“怎么做”.軟件總體設(shè)計的任務(wù):以軟件需求規(guī)格說明書為依據(jù),著手實現(xiàn)軟件的需求,并將設(shè)計的結(jié)果反映在“設(shè)計規(guī)格說明書”文檔中。軟件總體設(shè)計的重要性:是軟件開發(fā)階段的第一步,最終影響軟件實現(xiàn)的成敗和軟件維護的難易程度。第一階段:概要設(shè)計(總體設(shè)計)根據(jù)軟件需求,設(shè)計軟件系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),確定程序的組成模塊及模塊之間的相互關(guān)系。回答“概括地說,系統(tǒng)應(yīng)該如何實現(xiàn)?”。第二階段:詳細設(shè)計(過程設(shè)計)確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu);選定某種過程的表達形式來描述各種算法;產(chǎn)生精確描述各模塊程序過程的詳細文檔,并進行評審。將需求分析模型轉(zhuǎn)換為軟件總體設(shè)計軟件結(jié)構(gòu)設(shè)計以需求分析中得到的數(shù)據(jù)流圖為基礎(chǔ)而進行。第一個階段總體設(shè)計的任務(wù)①制定規(guī)范②設(shè)計軟件系統(tǒng)結(jié)構(gòu)(簡稱軟件結(jié)構(gòu))③處理方式設(shè)計④數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計⑤可靠性設(shè)計⑥編寫概要設(shè)計文檔⑦概要設(shè)計評審設(shè)計的過程軟件設(shè)計的概念和原理4.2.1模塊和模塊化模塊:又稱構(gòu)件,是能夠單獨命名并獨立地完成一定功能的程序語句的集合。模塊化:就是指把一個待開發(fā)的軟件系統(tǒng)分解成若干小的部分,即將一個大的問題分成若干小的問題逐一解決。4.2.2抽象抽象就是抽出事物的本質(zhì)特性而暫時忽略其他不重要、存在差異的細節(jié)。什么是抽象思想?在認識事物、分析和解決問題的過程中,忽略那些與當前研究目標不相關(guān)的部分,以便將注意力集中于與當前目標相關(guān)的方面。軟件開發(fā)實際上就是一個從高層次抽象到低層次抽象逐步過渡的過程。逐步求精:在軟件開發(fā)的過程中,每前進一步實際上就是對軟件解法抽象層次的進一步細化,即為我們所說的逐步求精。或者說逐步求精即為抽象的細化過程。逐步求精是一種自頂向下的設(shè)計策略,按這種設(shè)計策略,程序的體系結(jié)構(gòu)是通過逐步精化處理過程的層次而設(shè)計出來的。4.2.3信息隱蔽和局部化信息隱蔽:在設(shè)計和確定模塊時,使得一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),不允許其它不需要這些信息的模塊訪問,獨立的模塊間僅僅交換為完成系統(tǒng)功能而必須交換的信息。信息隱蔽的思想主要是強調(diào)模塊的獨立特性及其信息的隱蔽,即對于一個整體的程序劃分為若干模塊,而每個模塊隱藏、封裝一定功能的程序成分,并盡可能少地顯露其內(nèi)部實現(xiàn)細節(jié)。局部化則是指把一些關(guān)系密切的軟件元素彼此間靠近,使關(guān)系密切的元素位于同一局部范圍之內(nèi)。4.2.4模塊獨立性及其度量模塊的獨立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其它的模塊的接口盡可能簡單。模塊的獨立性是軟件質(zhì)量好的關(guān)鍵。模塊獨立性的度量:一般采用兩個準則度量模塊獨立性。即模塊間的耦合性和模塊的內(nèi)聚性。耦合性也稱塊間的聯(lián)系是模塊之間互相連接的緊密程度的度量。模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高,而其獨立性就越弱。內(nèi)聚性是一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。一個模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則它的內(nèi)聚性就越高,相對地,它與其它模塊之間的耦合性就會減低,而模塊獨立性就越強。模塊獨立性比較強的模塊應(yīng)是高內(nèi)聚低耦合的模塊。模塊的耦合性有以下幾種類型:無直接耦合兩個模塊沒有直接關(guān)系,模塊獨立性最強。數(shù)據(jù)耦合屬松散耦合。一模塊訪問另一模塊時,通過數(shù)據(jù)參數(shù)交換輸入、輸出信息。標記耦合兩個模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)加以聯(lián)系,或都與一個數(shù)據(jù)結(jié)構(gòu)有關(guān)系,則稱這兩個模塊間存在特征耦合??赡艹霈F(xiàn)的情況:當把整個數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞時,被調(diào)用的模塊雖然只需要使用其中的一部分數(shù)據(jù)元素,但實際可以使用的數(shù)據(jù)多于它真正需要的數(shù)據(jù),這將導(dǎo)致對數(shù)據(jù)訪問失去控制??刂岂詈夏K之間傳遞的是控制信息(如開關(guān)、標志、名字等),控制被調(diào)用模塊的內(nèi)部邏輯。公共環(huán)境耦合一組模塊引用同一個公用數(shù)據(jù)區(qū)(也稱全局數(shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境)。公共數(shù)據(jù)區(qū)指:全局數(shù)據(jù)結(jié)構(gòu)。共享通訊區(qū)。內(nèi)存公共覆蓋區(qū)等。內(nèi)容耦合有下列情況之一的。是最不好的耦合形式!模塊內(nèi)聚性:又稱塊內(nèi)聯(lián)系內(nèi)聚。是描述一個模塊內(nèi)各個元素之間關(guān)系的一個概念,是對各元素彼此結(jié)合的緊密程度的一種度量。模塊的內(nèi)聚性有以下幾種類型:偶然內(nèi)聚塊內(nèi)各組成成份在功能上是互不相關(guān)的。缺點:可理解性差,可修改性差邏輯內(nèi)聚幾個邏輯上相關(guān)的功能被放在同一模塊中,則稱為邏輯內(nèi)聚。時間內(nèi)聚模塊完成的功能必須在同一時間內(nèi)執(zhí)行,這些功能只因時間因素關(guān)聯(lián)在一起。通信內(nèi)聚模塊內(nèi)各部分使用相同的輸入數(shù)據(jù),或產(chǎn)生相同的輸出結(jié)果。順序內(nèi)聚如果一個模塊內(nèi)處理元素和同一功能密切相關(guān),而且這些處理元素必須順序執(zhí)行,則稱為順序內(nèi)聚。功能內(nèi)聚模塊中的各個程序段聯(lián)合起來共同完成一個特定的具體的單一的功能,模塊中各個部分都是完成該功能必不可少的部分,模塊的各個部分協(xié)同工作、緊密聯(lián)系、不可分割。內(nèi)聚性最強??偨Y(jié):耦合、內(nèi)聚與模塊獨立性關(guān)系耦合與內(nèi)聚都是模塊獨立性的定性標準,都反映模塊獨立性的良好程度。但耦合是直接的主導(dǎo)因素,內(nèi)聚則輔助耦合共同對模塊獨立性進行衡量。設(shè)計要求:低耦合,高內(nèi)聚作業(yè)布置課后習題1,2,3教學反思本節(jié)對軟件總體設(shè)計的目標和任務(wù)做了一個簡單的介紹,對軟件設(shè)計的概念和原理進行了詳細的講解,著重講解了模塊和模塊化,模塊獨立性及其度量的相關(guān)內(nèi)容。通過本節(jié)課的學習,可以更好的設(shè)計出高質(zhì)量的軟件。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容4.3軟件結(jié)構(gòu)設(shè)計準則4.4軟件結(jié)構(gòu)設(shè)計的圖形工具課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的軟件總體設(shè)計的相關(guān)知識。新課教學目的1.了解軟件結(jié)構(gòu)設(shè)計準則;2.掌握軟件結(jié)構(gòu)設(shè)計的圖形工具:軟件結(jié)構(gòu)圖、層次圖和HIPO圖。本章節(jié)重點難點重點:1.了解軟件結(jié)構(gòu)設(shè)計準則;2.掌握軟件結(jié)構(gòu)設(shè)計的圖形工具:軟件結(jié)構(gòu)圖、層次圖和HIPO圖。難點:1.掌握軟件結(jié)構(gòu)設(shè)計的圖形工具:軟件結(jié)構(gòu)圖、層次圖和HIPO圖。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:4.3軟件結(jié)構(gòu)設(shè)計準則軟件結(jié)構(gòu)設(shè)計準則:改進原則:高內(nèi)聚、低耦合①改進軟件結(jié)構(gòu),提高模塊獨立性通過模塊分解或合并,降低耦合提高內(nèi)聚②深度、寬度、扇出和扇入適中③將模塊的影響限制在控制范圍內(nèi)作用域是指受模塊內(nèi)一個判定影響的所有模塊的集合控制域是指這個模塊本身及其所有的下屬模塊的集合④降低模塊接口的復(fù)雜性接口傳遞信息應(yīng)簡單且和模塊功能一致。模塊的接口要簡單、清晰、含義明確,便于理解,易于實現(xiàn)、測試與維護。⑤模塊功能可預(yù)測單一的模塊具有高內(nèi)聚。但模塊功能過分局限,可使用范圍將過分狹窄,缺乏靈活性和擴充性。⑥模塊規(guī)模適中模塊過大:可理解程度下降模塊過小:開銷大于有效操作系統(tǒng)接口復(fù)雜⑦設(shè)計單入口單出口的模塊不要使模塊間出現(xiàn)內(nèi)容耦合。4.4軟件結(jié)構(gòu)設(shè)計的圖形工具在總體設(shè)計階段可能會用到以下幾種圖形工具:軟件結(jié)構(gòu)圖、層次圖和HIPO圖。4.4.1軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖的主要內(nèi)容有:模塊:用方框表示,方框中寫上模塊的名字,模塊名最好能反映模塊功能;模塊的調(diào)用關(guān)系:兩個模塊之間用單向箭頭或直線連接起來表示它們的調(diào)用關(guān)系;輔助符號:弧形箭頭表示循環(huán)調(diào)用;菱形表示選擇或者條件調(diào)用;主要成分說明:一個方框表示一個模塊;一個模塊指向另一個模塊的箭頭或直線,表示前一模塊對后一模塊的調(diào)用;調(diào)用直線邊的小箭頭,表示調(diào)用時從一個模塊傳給另一個模塊的數(shù)據(jù),也指出了傳送方向。軟件結(jié)構(gòu)圖的基本符號4.4.2層次圖描述軟件的層次結(jié)構(gòu)。層次圖中,一個方框代表一個模塊,方框間的連線表示調(diào)用關(guān)系。4.4.3HIPO圖HIPO圖=層次圖+IPO圖作業(yè)布置1.某電器集團公司下屬的廠包括技術(shù)科、生產(chǎn)科等基層單位。現(xiàn)在想建立一個計算機輔助企業(yè)管理系統(tǒng),其中:生產(chǎn)科的任務(wù)是:1)根據(jù)銷售公司轉(zhuǎn)來的內(nèi)部合同制定車間月生產(chǎn)計劃。2)根據(jù)車間實際生產(chǎn)日報表、周報表調(diào)整月生產(chǎn)計劃。3)以月生產(chǎn)計劃產(chǎn)生組裝計劃以及產(chǎn)生產(chǎn)品裝配圖給生產(chǎn)科,制定產(chǎn)品設(shè)計(結(jié)構(gòu)、工藝)及產(chǎn)品組裝月計劃。4)將產(chǎn)品的組裝計劃傳達到各科,將組裝月計劃分解為周計劃,下達給車間。技術(shù)科的任務(wù)是:1)根據(jù)生產(chǎn)科轉(zhuǎn)來的組裝計劃進行產(chǎn)品結(jié)構(gòu)設(shè)計,產(chǎn)生產(chǎn)品裝配圖給生產(chǎn)科,產(chǎn)生外購需求計劃給供應(yīng)科,并產(chǎn)生產(chǎn)品自制物料清單。2)根據(jù)組裝計劃進行產(chǎn)品工藝設(shè)計,根據(jù)產(chǎn)品自制物料清單產(chǎn)生工藝流程圖給零件廠。試寫出以上系統(tǒng)中生產(chǎn)科和技術(shù)科處理的軟件結(jié)構(gòu)圖。教學反思本節(jié)對軟件結(jié)構(gòu)設(shè)計準則進行了簡單的介紹,詳細講解了軟件結(jié)構(gòu)設(shè)計的圖形工具:軟件結(jié)構(gòu)圖、層次圖和HIPO圖,通過本節(jié)課的學習,可以對某一軟件的結(jié)構(gòu)設(shè)計進行作圖,從而設(shè)計出高質(zhì)量的軟件。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容4.5結(jié)構(gòu)化設(shè)計方法課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的軟件結(jié)構(gòu)設(shè)計的圖形工具:軟件結(jié)構(gòu)圖、層次圖和HIPO圖。新課教學目的1.了解結(jié)構(gòu)化設(shè)計方法;2.掌握數(shù)據(jù)流圖的類型;3.掌握變換型分析設(shè)計;4.掌握事務(wù)型分析設(shè)計。本章節(jié)重點難點重點:1.掌握數(shù)據(jù)流圖的類型;2.掌握變換型分析設(shè)計。難點:1.掌握事務(wù)型分析設(shè)計。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:4.5結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計即SD(StructuredDesign)方法是一種把在需求分析階段得到的數(shù)據(jù)流圖如何映射為軟件結(jié)構(gòu)圖的一種基于數(shù)據(jù)流的設(shè)計方法。又稱面向數(shù)據(jù)流的設(shè)計方法。結(jié)構(gòu)化設(shè)計的目標:將軟件設(shè)計為多個結(jié)構(gòu)合理、功能單一的模塊,建立系統(tǒng)的模塊結(jié)構(gòu)圖。它的主要表示方法是一種分層次的結(jié)構(gòu)圖。SD設(shè)計方法的主要思想:認為一個程序、一組程序或一個系統(tǒng),是由一組功能模塊來構(gòu)成的。軟件設(shè)計者首先必須無視程序、模塊或過程的內(nèi)部情況,而只對它們之間的關(guān)系進行分析。將系統(tǒng)看作是邏輯功能的抽象集合——功能模塊的集合。描述工具:結(jié)構(gòu)化設(shè)計方法提出了一種圖形工具——結(jié)構(gòu)圖。結(jié)構(gòu)圖是精確表達程序結(jié)構(gòu)的圖形表示方法。它作為軟件文檔的一部分,清楚地反映出程序中模塊之間的層次調(diào)用關(guān)系和聯(lián)系。結(jié)構(gòu)圖的主要符號:1、模塊:方框表示,并用名字標識該模塊。2、模塊的調(diào)用關(guān)系:用單向箭頭或直線連接模塊間的控制關(guān)系。3、模塊間的信息傳遞:用帶注釋的短箭頭表示模塊間傳遞的信息。4、兩個附加符號:弧形線表示循環(huán)調(diào)用,菱形表示選擇調(diào)用。系統(tǒng)結(jié)構(gòu)圖中有4種類型的模塊:1.傳入模塊:從下屬模塊取得數(shù)據(jù),經(jīng)過某些處理,再將其送給上級模塊。它傳送的數(shù)據(jù)叫做邏輯輸入數(shù)據(jù)流。2、傳出模塊:從上級模塊取得數(shù)據(jù),進行某些處理后,傳送給下屬模塊。它傳送的數(shù)據(jù)流叫做邏輯輸出數(shù)據(jù)流。3、變換模塊:從上級模塊取得數(shù)據(jù),進行特定處理后,送回原上級模塊。它加工的數(shù)據(jù)流叫做變換數(shù)據(jù)流。4、協(xié)調(diào)模塊:對其下屬模塊進行控制和管理的模塊。在一個好的系統(tǒng)結(jié)構(gòu)圖中,協(xié)調(diào)模塊應(yīng)在較高層出現(xiàn)。數(shù)據(jù)流圖的類型SD方法是以數(shù)據(jù)流圖為基礎(chǔ)設(shè)計系統(tǒng)的模塊結(jié)構(gòu)的。不同類型的數(shù)據(jù)流圖設(shè)計的過程以及所導(dǎo)出的初始的軟件結(jié)構(gòu)不同。不管系統(tǒng)的數(shù)據(jù)流圖如何龐大和復(fù)雜,一般均可分為變換型、事務(wù)型和變換/事務(wù)混合型。⑴變換型(IPO型)變換型的數(shù)據(jù)流圖是一個線性結(jié)構(gòu),由輸入、變換和輸出三部分組成。數(shù)據(jù)沿輸入通路進入系統(tǒng),同時數(shù)據(jù)由外部形式變換成內(nèi)部形式。進入系統(tǒng)的數(shù)據(jù)通過變換中心經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。⑵事務(wù)型事務(wù)型的數(shù)據(jù)流圖中,數(shù)據(jù)沿輸入通路到達一個加工處理(如下圖中的C),這個處理將輸入分為許多相互平行的加工路徑,并根據(jù)輸入數(shù)據(jù)的類型,選擇某一加工路徑。其中C為事務(wù)處理中心,其任務(wù)是得到輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務(wù))、分析每個事務(wù)以確定它的類型、根據(jù)事務(wù)類型選取一條活動通路。事務(wù)中心的任務(wù):接受輸入數(shù)據(jù)(事務(wù))分析每個事務(wù)以確定它的類型。根據(jù)事務(wù)類型選取一條活動通路系統(tǒng)結(jié)構(gòu)特征可歸納為兩種典型形式綜合設(shè)計在實際的軟件系統(tǒng)中,數(shù)據(jù)流圖往往是變換型和事務(wù)型的混合體。綜合設(shè)計方法:一般以“變換分析”為主,“事務(wù)分析”為輔進行設(shè)計。即先找出子加工,設(shè)計出結(jié)構(gòu)圖的上層,然后根據(jù)數(shù)據(jù)流圖的各個部分的結(jié)構(gòu)特點適當?shù)剡\用“變換分析”或“事務(wù)分析”進行處理,可得到初始的結(jié)構(gòu)圖??偨Y(jié):面向數(shù)據(jù)流的設(shè)計過程作業(yè)布置1.如何區(qū)分數(shù)據(jù)流圖的類型?試述“變換型數(shù)據(jù)流圖”和“事務(wù)型數(shù)據(jù)流圖”的設(shè)計步驟。2.試將下面的變換型數(shù)據(jù)流圖轉(zhuǎn)換成軟件結(jié)構(gòu)圖。工資管理系統(tǒng)中的一個子系統(tǒng)有如下功能:由基本工資計算應(yīng)扣除(例如水電氣費等)的部分;根據(jù)職工的出勤情況計算獎金部分;根據(jù)輸入的扣除額及獎金計算工資總額部分;由工資總額計算應(yīng)扣除稅金部分;根據(jù)計算總額部分和計算稅金部分傳遞來的有關(guān)職工工資詳細信息生成工資表。試根據(jù)需求畫出該問題的數(shù)據(jù)流圖,并將其轉(zhuǎn)換為軟件結(jié)構(gòu)圖。教學反思本節(jié)著重講解了結(jié)構(gòu)化設(shè)計方法的相關(guān)知識,講解數(shù)據(jù)流圖的類型,結(jié)構(gòu)化設(shè)計方法的步驟,變換型分析設(shè)計和事務(wù)型分析設(shè)計。通過本節(jié)的講解學生可以學會應(yīng)用所學知識把在需求分析階段得到的數(shù)據(jù)流圖映射為軟件結(jié)構(gòu)圖。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第五章軟件詳細設(shè)計5.1詳細設(shè)計的目的與任務(wù)5.2結(jié)構(gòu)化程序設(shè)計課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的結(jié)構(gòu)化設(shè)計方法的相關(guān)知識。新課教學目的1.了解詳細設(shè)計的目的和任務(wù);2.掌握結(jié)構(gòu)化程序設(shè)計。本章節(jié)重點難點重點:1.了解詳細設(shè)計的目的和任務(wù);2.掌握結(jié)構(gòu)化程序設(shè)計。難點:1.掌握結(jié)構(gòu)化程序設(shè)計。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:5.1詳細設(shè)計的目的與任務(wù)詳細設(shè)計的根本目的:就是確定應(yīng)該怎樣具體實現(xiàn)所要求的系統(tǒng)。詳細設(shè)計是在總體設(shè)計的基礎(chǔ)上確定每個模塊的具體執(zhí)行過程,是軟件設(shè)計的第二步。詳細設(shè)計每個模塊,確定實現(xiàn)模塊所需要的算法和數(shù)據(jù)結(jié)構(gòu),同時將設(shè)計出的模塊進行組裝。詳細設(shè)計的任務(wù)還不是具體地編寫程序,而是要設(shè)計出程序的“藍圖”,以后程序員將根據(jù)這個藍圖寫出實際的程序代碼。因此,過程設(shè)計的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。主要任務(wù):(1)確定每一模塊的數(shù)據(jù)結(jié)構(gòu)。(2)確定模塊接口細節(jié)。(3)確定每個模塊的算法,用工具表達算法的過程,寫出模塊的詳細過程性描述。(4)編寫詳細設(shè)計說明書。詳細設(shè)計是編碼的先導(dǎo)。詳細設(shè)計的過程在詳細設(shè)計過程中,需要完成的工作是:①確定軟件各個組成部分內(nèi)的算法以及各部分的內(nèi)部數(shù)據(jù)組織。②選定某種工具來描述各種算法。③進行詳細設(shè)計評審。詳細設(shè)計的原則由于詳細設(shè)計是給程序員編碼提供依據(jù)的,因而要求做到:①模塊的邏輯描述正確可靠、清晰易懂。②采用結(jié)構(gòu)化程序設(shè)計方法,改善控制結(jié)構(gòu),降低程序復(fù)雜度,從而提高程序的可讀性、可測試性、可維護性。③選擇恰當描述工具來描述各模塊算法。5.2結(jié)構(gòu)化程序設(shè)計詳細設(shè)計的方法1.結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)程序設(shè)計是一種設(shè)計程序的技術(shù),它采用自頂向下逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu)。(1)結(jié)構(gòu)化程序設(shè)計的基本要點:①采用自頂向下、逐步求精的程序設(shè)計方法②使用三種基本控制結(jié)構(gòu)構(gòu)造程序。任何程序都可以由順序、選擇、重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)構(gòu)造,這三種基本結(jié)構(gòu)的共同點是單入口、單出口。③主程序員組的組織形式。(2)使用結(jié)構(gòu)程序設(shè)計技術(shù)的好處:①自頂向下逐步求精的方法符合人類解決復(fù)雜問題的普遍規(guī)律,可以顯著提高軟件開發(fā)的成功率和生產(chǎn)率。②先全局后局部、先整體后細節(jié)、先抽象后具體的逐步求精過程開發(fā)出的程序有清晰的層次結(jié)構(gòu)。③使用單入口單出口的控制結(jié)構(gòu)而不使用GOTO語句,使得程序的靜態(tài)結(jié)構(gòu)和它的動態(tài)執(zhí)行情況比較一致。④控制結(jié)構(gòu)有確定的邏輯模式,編寫程序代碼只限于使用很少幾種直截了當?shù)姆绞?。⑤程序清晰和模塊化使得在修改和重新設(shè)計一個軟件時可以重用的代碼量最大。⑥程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明。結(jié)構(gòu)化程序設(shè)計所使用的結(jié)構(gòu)有順序、條件和重復(fù)三種。結(jié)構(gòu)化程序設(shè)計采用自頂向下,逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu)。作業(yè)布置1.軟件詳細設(shè)計的基本任務(wù)是什么?有哪幾種描述方法?2.結(jié)構(gòu)化程序設(shè)計的基本要點是什么?教學反思本節(jié)對詳細設(shè)計的目的任務(wù)和結(jié)構(gòu)化程序設(shè)計做了系統(tǒng)的介紹,為后續(xù)的詳細設(shè)計工具的講解奠定基礎(chǔ)。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容5.3詳細設(shè)計工具6.1程序設(shè)計語言的分類課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的結(jié)構(gòu)化程序設(shè)計的相關(guān)知識。新課教學目的1.掌握程序流程圖;2.掌握N-S圖;3.掌握PAD圖;4.掌握過程設(shè)計語言;5.了解程序設(shè)計語言的分類。本章節(jié)重點難點重點:1.掌握程序流程圖;2.掌握N-S圖;3.掌握PAD圖。難點:1.掌握過程設(shè)計語言。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:5.3詳細設(shè)計工具描述程序處理過程的工具稱為詳細設(shè)計工具,可以分為圖形、表格和語言三類。5.3.1程序流程圖程序流程圖也稱為程序框圖,程序流程圖使用五種基本控制結(jié)構(gòu)是:方框表示一個處理步驟,菱形代表一個邏輯條件,箭頭表示控制流向。注意,程序流程圖中使用的箭頭代表控制流,而不是數(shù)據(jù)流。5.3.2N-S圖用方框圖代替?zhèn)鹘y(tǒng)的流程圖,以保證結(jié)構(gòu)化。N-S圖的基本控制結(jié)構(gòu)如圖所示。N-S圖有以下一些特點:①功能域(即某一個特定控制結(jié)構(gòu)的作用域)有明確的規(guī)定,并且可以很直觀地從N-S圖上看出來;②它的控制轉(zhuǎn)移不能任意規(guī)定,必須遵守結(jié)構(gòu)化程序設(shè)計的要求;③很容易確定局部數(shù)據(jù)和全局數(shù)據(jù)的作用域;④很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。5.3.3PAD圖5.3.4過程設(shè)計語言過程設(shè)計語言(ProcessDesignLanguage,簡稱PDL,也稱為偽碼,是一種用于描述模塊算法設(shè)計和處理細節(jié)的語言。稱為設(shè)計程序用語言。它是一種偽碼。用PDL表示的程序結(jié)構(gòu)除三種基本結(jié)構(gòu)以外還有出口結(jié)構(gòu)和擴充等。偽碼的語法規(guī)則分為“外語法”和“內(nèi)語法”。2.PDL程序結(jié)構(gòu)(1)順序結(jié)構(gòu)采用自然語言描述順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)1)IF-ELSE結(jié)構(gòu)2)IF-ORIF-ELSE結(jié)構(gòu)3)CASE結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)1)FOR結(jié)構(gòu)2)WHILE結(jié)構(gòu)3)UNTIL結(jié)構(gòu)(5)出口結(jié)構(gòu)1)ESCAPE結(jié)構(gòu)(退出本層結(jié)構(gòu))2)CYCLE結(jié)構(gòu)(循環(huán)內(nèi)部進入循環(huán)的下一次)(6)擴充結(jié)構(gòu)1)模塊定義2)模塊調(diào)用3)數(shù)據(jù)定義4)輸入輸出6.1程序設(shè)計語言的分類編碼之前的一項重要工作就是選擇一種適當?shù)某绦蛟O(shè)計語言。1、程序設(shè)計語言的介紹現(xiàn)有的程序設(shè)計語言五花八門、品種繁多,基本上可以分為低級語言和高級語言?!靖呒壵Z言】從軟件工程的角度,編程語言可分為基礎(chǔ)語言,結(jié)構(gòu)化語言和面向?qū)ο笳Z言三大類。6.1.1基礎(chǔ)語言基礎(chǔ)語言是通用語言,它的特點是適用性強,應(yīng)用面廣,歷史悠久。FORTRAN,COBOL,BASIC和ALGOL都屬于這類語言。6.1.2結(jié)構(gòu)化語言結(jié)構(gòu)化語言也是通用語言。特點是直接提供結(jié)構(gòu)化的控制結(jié)構(gòu),具有很強的過程能力和數(shù)據(jù)結(jié)構(gòu)能力。作為基礎(chǔ)語言的ALGOL語言是結(jié)構(gòu)化語言的基礎(chǔ),它衍生出了Pascal、C、Ada等結(jié)構(gòu)化語言。6.1.3面向?qū)ο蟮恼Z言C++語言:在C語言的基礎(chǔ)上增加了數(shù)據(jù)抽象、繼承、封裝、多態(tài)性、消息傳遞等概念實現(xiàn)的機制。Java語言:是一種面向?qū)ο蟮?,不依賴于特定平臺的程序設(shè)計語言。編程語言按代劃分可分為一代、二代、三代和四代。第一代:面向機器的。機器語言和匯編語言。第二代語言:主要代表是FORTRAN、ALGOL、COBOL和BASIC。第三代語言:也成現(xiàn)代編程語言,分三類:通用高級語言、面向?qū)ο笳Z言和專用語言。Pacal、c、ada等和C++等以及Lisp、prolog第四代語言:delphi、VFP、VB等。作業(yè)布置1.使用流程圖、PAD圖、N-S圖和PDL語言描述下列程序的算法:(1)在數(shù)據(jù)A(1)—A(10)式中求最小數(shù)和次小數(shù)。(2)輸入三個正整數(shù)作為邊長,判斷由這三條邊構(gòu)成的三角形是直角、等腰或一般三角形。2.任選一種排序(從大到小)算法,分別用流程圖、N-S圖和PPL語言描述其詳細過程。3.程序流程圖、N-S圖、PAD圖和PDL語言的特點各是什么?你認為這四種詳細設(shè)計工具哪一種最好?為什么?教學反思本節(jié)對程序流程圖、N-S圖、PAD圖和過程設(shè)計語言做了詳細的講解,為軟件工程的設(shè)計階段做好保證;簡單介紹了程序設(shè)計語言的分類,為后續(xù)軟件編碼做好鋪墊。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第六章軟件編碼6.2設(shè)計語言的選擇6.3程序設(shè)計風格課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的程序設(shè)計語言的分類的相關(guān)知識。新課教學目的1.了解程序設(shè)計語言的選擇;2.掌握程序設(shè)計風格。本章節(jié)重點難點重點:1.了解程序設(shè)計語言的選擇;2.掌握程序設(shè)計風格。難點:1.掌握程序設(shè)計風格。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:6.2程序設(shè)計語言的選擇程序設(shè)計語言的特點軟件工程的觀點詳細設(shè)計應(yīng)能被直接地、容易地翻譯成代碼程序。源程序應(yīng)具有可移植性。(3種解釋)1)對源程序不做修改或少做修改就可以實現(xiàn)處理機上的移植或編譯程序上的移植。2)即使程序的運行環(huán)境改變(例如,改用一個新版本的操作系統(tǒng)),源程序也不用改變。3)源程序的許多模塊可以不做修改或少做修改就能集成為功能性和各種軟件包,以適應(yīng)不同的需要??删S護性。通??紤]的因素有:項目的應(yīng)用范圍;算法和計算的復(fù)雜性;軟件執(zhí)行的環(huán)境;性能上的考慮與實現(xiàn)的條件;數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性;軟件開發(fā)人員的知識水平和心理因素等。其中,項目的應(yīng)用范圍是最關(guān)鍵的因素。實用標準從以下方面來說明:系統(tǒng)用戶的要求、工程的規(guī)模、軟件的運行環(huán)境、可以得到的軟件開發(fā)工具、軟件開發(fā)人員的知識、軟件的可移植性要求、軟件的應(yīng)用領(lǐng)域。6.3程序設(shè)計風格我們將從以下幾個方面來說明編碼風格:內(nèi)部文檔、標識符的命名及說明、語句的構(gòu)造及書寫、輸入/輸出和效率。1)符號名的命名符號名即標識符,包括模塊名、變量名、常量名、標號名、子程序名、數(shù)據(jù)區(qū)名以及緩沖區(qū)名等。這些名字應(yīng)能反映它所代表的實際東西,應(yīng)有一定實際意義。名字不是越長越好,應(yīng)當選擇精煉的意義明確的名字。必要時可使用縮寫名字,但這時要注意縮寫規(guī)則要一致,并且要給每一個名字加注釋。同時,在一個程序中,一個變量只應(yīng)用于一種用途。2)程序的注釋夾在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段。注釋決不是可有可無的。一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個源程序的1/3到1/2,甚至更多。注釋分為序言性注釋和功能性注釋。1)序言性注釋通常置于每個程序模塊的開頭部分,它應(yīng)當給出程序的整體說明,對于理解程序本身具有引導(dǎo)作用。有些軟件開發(fā)部門對序言性注釋做了明確而嚴格的規(guī)定,要求程序編制者逐項列出。有關(guān)項目包括:程序標題;有關(guān)本模塊功能和目的的說明;主要算法;接口說明:包括調(diào)用形式,參數(shù)描述,子程序清單;有關(guān)數(shù)據(jù)描述:重要的變量及其用途,約束或限制條件,以及其它有關(guān)信息;模塊位置:在哪一個源文件中,或隸屬于哪一個軟件包;開發(fā)簡歷:模塊設(shè)計者,復(fù)審者,復(fù)審日期,修改日期及有關(guān)說明等。2)功能性注釋功能性注釋嵌在源程序體中,用以描述其后的語句或程序段是在做什么工作,或是執(zhí)行了下面的語句會怎么樣。而不要解釋下面怎么做。6.3.2數(shù)據(jù)說明在設(shè)計階段已經(jīng)確定了數(shù)據(jù)結(jié)構(gòu)的組織及其復(fù)雜性。在編寫程序時,則需要注意數(shù)據(jù)說明的風格。為了使程序中數(shù)據(jù)說明更易于理解和維護,必須注意以下幾點。數(shù)據(jù)說明的次序應(yīng)當規(guī)范化說明語句中變量安排有序化使用注釋說明復(fù)雜數(shù)據(jù)結(jié)構(gòu)6.3.3語句結(jié)構(gòu)(1)在一行內(nèi)只寫一條語句(2)程序編寫首先應(yīng)當考慮清晰性(3)程序要能直截了當?shù)卣f明程序員的用意(4)除非對效率有特殊要求,程序編寫要做到清晰第一,效率第二。不要為了追求效率而喪失了清晰性。程序效率的提高主要應(yīng)通過選擇高效的算法來實現(xiàn)。(5)首先要保證程序正確,然后才要求提高速度。(6)避免使用臨時變量而使可讀性下降。(7)讓編譯程序做簡單的優(yōu)化(8)盡可能使用庫函數(shù)(9)避免不必要的轉(zhuǎn)移。同時如果能保持程序可讀性,則不必用GOTO語句。(10)盡量只采用三種基本的控制結(jié)構(gòu)來編寫程序(11)避免使用空的ELSE語句和IF…THENIF…的語句。(12)避免采用過于復(fù)雜的條件測試。(13)盡量減少使用“否定”條件的條件語句。(14)數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡化。(15)盡可能用通俗易懂的偽碼來描述程序的流程,然后再翻譯成必須使用的語言。(16)要模塊化,使模塊功能盡可能單一化,模塊間的耦合能夠清晰可見。(17)利用信息隱蔽,確保每一個模塊的獨立性。(18)從數(shù)據(jù)出發(fā)去構(gòu)造程序。(19)不要修補不好的程序,要重新編寫。也不要一味地追求代碼的復(fù)用,要重新組織。(20)對太大的程序,要分塊編寫、測試,然后再集成。(21)對遞歸定義的數(shù)據(jù)結(jié)構(gòu)盡量使用遞歸過程。6.3.4輸入和輸出輸入和輸出信息是與用戶的使用直接相關(guān)的。輸入和輸出的方式和格式應(yīng)當盡可能方便用戶的使用。一定要避免因設(shè)計不當給用戶帶來的麻煩。因此,在軟件需求分析階段和設(shè)計階段,就應(yīng)基本確定輸入和輸出的風格。系統(tǒng)能否被用戶接受,有時就取決于輸入和輸出的風格。6.3.5程序效率程序的效率是指程序的執(zhí)行速度及程序所需占用的內(nèi)存的存儲空間。(1)程序執(zhí)行時間源程序的效率與詳細設(shè)計階段確定的算法的效率直接有關(guān)。在詳細設(shè)計翻譯轉(zhuǎn)換成源程序代碼后,算法效率反映為程序的執(zhí)行速度和存儲容量的要求。(2)存儲器效率在大中型計算機系統(tǒng)中,存儲限制不再是主要問題。在這種環(huán)境下,對內(nèi)存采取基于操作系統(tǒng)的分頁功能的虛擬存儲管理。存儲效率與操作系統(tǒng)的分頁功能直接有關(guān)。采用結(jié)構(gòu)化程序設(shè)計,將程序功能合理分塊,使每個模塊或一組密切相關(guān)模塊的程序體積大小與每頁的容量相匹配,可減少頁面調(diào)度,減少內(nèi)外存交換。(3)輸入/輸出效率輸入/輸出可分為兩種類型:面向人(操作員)的輸入/輸出面向設(shè)備的輸入/輸出作業(yè)布置1.在軟件項目開發(fā)時,選擇程序設(shè)計語言通常考慮哪些因素?2.舉例說明各種程序設(shè)計語言的特點及適用范圍?3.什么是程序設(shè)計風格?為了具有良好的程序設(shè)計風格,應(yīng)該注意哪些方面的問題?4.以下3個表達式表示的是同一個內(nèi)容:(a)-6**A/3*B;(b)-(6**A/3)*B;(c)+(((6**A)/(-3))*x)(1)你認為哪一種可讀性最好?哪一種最差?(2)如果讓你列出幾條關(guān)于書寫表達式的指導(dǎo)原則,你對表達式中運算符的數(shù)量和圓滿括號的層數(shù)將作何規(guī)定教學反思本節(jié)對程序設(shè)計語言的選擇和設(shè)計風格做了一個全面的講解,通過本節(jié)課的講解可以使學生在日后的編程中能夠選擇合適的編程語言,根據(jù)合理的編程風格編寫出合適的程序。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第七章軟件測試7.1軟件測試的目標7.2軟件測試的原則課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的程序編碼的相關(guān)知識。新課教學目的1.了解軟件測試的目標;2.掌握軟件測試的原則。本章節(jié)重點難點重點:1.掌握軟件測試的原則。難點:1.掌握軟件測試的原則。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:7.1軟件測試的目標GrenfordJ.Myers在《TheArtOfSoftwareTesting》一書中的觀點常被許多人作為軟件測試的目的或定義:軟件測試是為了發(fā)現(xiàn)缺陷而執(zhí)行程序的過程。測試是為了證明程序中有錯誤,而不是證明程序中無錯誤。一個好的測試用例指的是它可能發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的缺陷。一次成功的測試指的是發(fā)現(xiàn)了新的軟件缺陷的測試。測試的目的是想以最少的時間和人力找出軟件中潛在的各種錯誤和缺陷。測試只能盡可能多的查找出程序中錯誤,而不能證明程序中沒有錯誤。軟件測試的范圍并不只是對編碼階段的語法錯、語義錯、運行錯進行查找的一系列活動。而是對軟件計劃、軟件設(shè)計、軟件編碼進行查錯和糾錯的活動,它涉及到軟件開發(fā)周期中各個階段的錯誤,并分析錯誤的性質(zhì)與位置而加以糾正。糾正過程可能涉及到改正或重新設(shè)計相關(guān)的文檔活動。找錯的活動稱軟件測試,糾錯的活動稱軟件調(diào)試。軟件測試的概念1.錯誤(error)、缺陷(fault)和故障(failure)人們在進行軟件開發(fā)的過程中犯了一個錯,則稱為一個錯誤(error)。應(yīng)用到測試過程時,有兩種不同的使用方式。在第—種使用方式中,錯誤是指一個實際測量值與理論預(yù)期值之間的差異,這種差異就是錯誤;第二種使用方式中,錯誤是指一些人的行為引起的軟件中的某種故障,通常這些故障是由軟件錯誤造成的。缺陷(fault)常被稱為bug,它是導(dǎo)致軟件失敗的一個條件。當開發(fā)人員犯了一個錯,就會在軟件中引人一個或多個缺陷。故障(failure)又稱失效,它是指軟件不能按軟件規(guī)格說明要求執(zhí)行,從而引起軟件行為與用戶需求的不一致現(xiàn)象。失效可能發(fā)生在測試階段,也可能發(fā)生在軟件交付之后的運行階段和維護階段。缺陷是開發(fā)人員所看到的軟件系統(tǒng)的內(nèi)部問題,而故障是用戶從外部觀察到的軟件行為與軟件需求的偏差。并不是每個軟件缺陷都一定會導(dǎo)致軟件發(fā)生故障,缺陷只有在滿足某種條件的情況下才會導(dǎo)致軟件故障。7.2軟件測試的原則測試用例既要有輸入數(shù)據(jù),又要有對應(yīng)的輸出結(jié)果測試用例不僅要選用合理的輸入數(shù)據(jù),還應(yīng)選擇不合理的輸入數(shù)據(jù)除了檢查程序是否做了它應(yīng)該做的工作,還應(yīng)該檢查程序是否做了它不應(yīng)該做的工作應(yīng)該遠在測試開始之前就制定測試計劃測試計劃、測試用例、測試報告必須作為文檔長期保存Pareto原理說明,測試發(fā)現(xiàn)的錯誤中80%很可能是由程序中20%的模塊造成的為了達到最佳的測試效果,程序員應(yīng)該避免測試自己的程序不完全原則:不完全原則表明測試是不完全的,窮舉測試是不可能的。免疫性原則:軟件缺陷具有免疫性,測試人員完成的測試越多,其免疫能力就越強,尋找更多軟件缺陷也就更加困難。全程測試原則:全程測試原則要求軟件測試不僅存在于完成程序之后,而應(yīng)該跨越整個軟件開發(fā)流程。80/20原則:80/20原則是指80%的軟件缺陷存在于軟件20%的空間里,軟件缺陷具有空間聚集性。作業(yè)布置1.軟件測試的基本任務(wù)是什么?簡述測試的目標和基本原則。教學反思本節(jié)對計算機軟件測試的目標和原則進行了詳細的講解,通過本節(jié)的學習,為以后進行軟件測試做好鋪墊。教研室主任簽字:《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第七章軟件測試7.3軟件測試方法7.4軟件測試用例的設(shè)計課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的軟件測試的相關(guān)知識。新課教學目的1.掌握軟件測試的分類;2.掌握靜態(tài)測試與動態(tài)測試;3.掌握黑盒測試法與白盒測試法;4.掌握白盒技術(shù)和黑盒技術(shù)。本章節(jié)重點難點重點:1.掌握軟件測試的分類;2.掌握黑盒測試法與白盒測試法。難點:1.掌握白盒技術(shù)和黑盒技術(shù)。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:7.3軟件測試方法黑盒測試:把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。黑盒測試又叫做功能測試或數(shù)據(jù)驅(qū)動測試。白盒測試:把測試對象看做一個透明的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。不論黑盒還是白盒測試都不能進行窮盡測試,所以軟件測試不可能發(fā)現(xiàn)程序中存在的所有錯誤,因此需精心設(shè)計測試方案,力爭盡可能少的次數(shù),測出盡可能多的錯誤。7.4軟件測試用例的設(shè)計白盒法:常用的白盒測試方法有邏輯覆蓋法、基本路徑覆蓋法、數(shù)據(jù)流測試和循環(huán)測試等。1.邏輯覆蓋法邏輯覆蓋主要考察使用測試數(shù)據(jù)運行被測程序時對程序邏輯的覆蓋程度。通常希望選擇最少的測試用例來滿足所需的覆蓋標準。(1)語句覆蓋(2)判定覆蓋(3)條件覆蓋(4)判定/條件覆蓋(5)條件組合覆蓋(6)路徑覆蓋(7)點覆蓋(8)邊覆蓋2.基本路徑測試法3.判定結(jié)構(gòu)分析4.循環(huán)結(jié)構(gòu)分析黑盒法:黑盒測試是依據(jù)軟件的需求規(guī)約,檢查程序的功能是否符合需求規(guī)約的要求。主要的黑盒測試方法有等價類劃分、邊界值分析、錯誤猜測、比較測試和因果圖等方法。作業(yè)布置1.簡述靜態(tài)測試與動態(tài)測試的含義。它們之間有什么不同點和相同點。2.白盒測試用例和黑盒測試用例設(shè)計的基本方法。教學反思本節(jié)對軟件測試方法和軟件測試用例的設(shè)計進行了詳細的講解,通過本節(jié)的學習,為以后進行軟件測試做好鋪墊。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第七章軟件測試7.5軟件測試過程7.6調(diào)試課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的軟件測試的相關(guān)知識。新課教學目的1.掌握單元測試、集成測試、確認測試、系統(tǒng)測試;2.掌握調(diào)試的執(zhí)行步驟;3.掌握排錯策略方法。本章節(jié)重點難點重點:1.掌握單元測試、集成測試、確認測試、系統(tǒng)測試。難點:1.掌握排錯策略方法。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:7.5軟件測試過程軟件測試步驟分為4步,即單元測試、集成測試、確認測試、系統(tǒng)測試。單元測試:檢驗每個模塊能否單獨工作。集成測試:檢驗概要設(shè)計中模塊接口設(shè)計問題(可分子系統(tǒng)和系統(tǒng))。確認測試:以需求規(guī)格說明書為檢驗尺度(可分內(nèi)部確認和驗收)。系統(tǒng)測試:綜合檢驗軟件與整個計算機系統(tǒng)。廣義的測試可視為分析、設(shè)計、編碼三個階段的最終復(fù)審,以保證軟件質(zhì)量。7.5.1單元測試1.單元測試的內(nèi)容主要對模塊的五個基本特性進行評價:2.單元測試的方法單元測試一般為編碼步驟的附屬部分.模塊不是獨立的程序,自己不能運行,要靠其它部分來調(diào)用和驅(qū)動,要為每個單元測試開發(fā)兩個軟件:(1)驅(qū)動模塊(驅(qū)動程序):相當于主模塊。(2)樁模塊(測試存根、連接程序):代替所測模塊調(diào)用的子模塊。7.5.2集成測試1.集成測試策略通常采用黑盒測試技術(shù)實施策略:非漸增式測試,漸增式測試。7.5.3確認測試確認測試是根據(jù)軟件需求規(guī)約對集成的軟件進行確認。7.5.4系統(tǒng)測試常用的系統(tǒng)測試包括:恢復(fù)測試(recoverytesting)安全測試(securitytesting)壓力測試(stresstesting)性能測試(performancetesting)7.6調(diào)試(糾錯技術(shù))排錯策略方法:1.蠻干法(強行排錯)2.回溯法(跟蹤法)3.消去原因作業(yè)布置1.測試用例設(shè)計、組織和測試過程組織之間的關(guān)系和實踐過程。2.簡述測試和調(diào)試的含義,它們之間有什么區(qū)別?3.軟件測試要經(jīng)過哪些步驟?這些測試與軟件開發(fā)各階段之間有什么關(guān)系?4.什么是單元測試,什么是集成測試,什么是確認測試?教學反思本節(jié)對軟件測試過程和調(diào)試進行了詳細的講解,通過本節(jié)的學習,為以后進行軟件測試做好鋪墊。教研室主任簽字:

《軟件工程》教案內(nèi)容授課章節(jié)及內(nèi)容第八章軟件維護8.1軟件維護的分類8.2軟件維護的特點課時數(shù)2授課時間周一3,4周三1,2授課班級12級計算機科學與技術(shù)專業(yè)復(fù)習舊課要點復(fù)習前節(jié)課講述的軟件測試的相關(guān)知識。新課教學目的1.掌握單元測試、集成測試、確認測試、系統(tǒng)測試;2.掌握調(diào)試的執(zhí)行步驟;3.掌握排錯策略方法。本章節(jié)重點難點重點:1.掌握單元測試、集成測試、確認測試、系統(tǒng)測試。難點:1.掌握排錯策略方法。教學方法多媒體教學教學過程設(shè)計啟發(fā)式和討論式教學授課內(nèi)容:8.1軟件維護的分類軟件維護的分類比較復(fù)雜,角度不同,分類的方法也不同,分類的結(jié)果也就不一樣。傳統(tǒng)軟件維護一般分為四大類:改正性維護在軟件交付使用后,因開發(fā)時測試的不徹底、不完全,必然會有部分隱藏的錯誤遺留到運行階段。這些隱藏下來的錯誤在某些特定的使用環(huán)境下就會暴露出來。為了識別和糾正軟件錯誤、改正軟件性能上的缺陷、排除實施中的誤使用,應(yīng)當進行的診斷和改正錯誤的過程就叫做改正性維護。適應(yīng)性維護在使用過程中,外部環(huán)境(新的硬、軟件配置),數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲介質(zhì))可能發(fā)生變化。為使軟件適應(yīng)這種變化,而去修改軟件的過程就叫做適應(yīng)性維護。完善性維護在軟件的使用過程中,用戶往往會對軟件提出新的功能與性能要求。為了滿足這些要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。這種情況下進行的維護活動叫做完善性維護。預(yù)防性維護。預(yù)防性維護是為了提高軟件的可維護性、可靠性等,為以后進一步改進軟件打下良好基礎(chǔ)。預(yù)防性維護定義為:采用先進的軟件工程方法對需要維護的軟件或軟件中的某一部分(重新)進行設(shè)計、編制和測試。8.2軟件維護的特點1.非結(jié)構(gòu)化維護與結(jié)構(gòu)化維護(1)非結(jié)構(gòu)化維護因為只有源程序,而文檔很少或沒有文檔,維護活動只能從閱讀、理解、分析源程序開始。這是軟件工程時代以前進行維護的情況。(2)結(jié)構(gòu)化維護用軟件工程思想開發(fā)的軟件具有各階段的文檔,這對于理解和掌握軟件功能、性能、系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口和設(shè)計約束有很大作用。這種維護對減少精力、減少花費、提高軟件維護效率有很大的作用。影響維護工作量的因素:系統(tǒng)大小程序設(shè)計語言系統(tǒng)年齡數(shù)據(jù)庫技術(shù)的應(yīng)用先進的軟件開發(fā)技術(shù)作業(yè)布置為什么軟件需要維護?維護有哪幾種類型?簡述它們的維護過程。教學反思本節(jié)對軟件維護的分類和軟件維護的特點進行了詳細的講解,通過本節(jié)的學習,為以后進行軟件維護

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論