《軟件工程》教案_第1頁(yè)
《軟件工程》教案_第2頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余137頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

需求分析方法:

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

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

2.

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

1)

支持?jǐn)?shù)據(jù)域分析的機(jī)制:

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

2)

功能表示的方法:

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

3)

接口的定義:

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

4)

問(wèn)題分解的機(jī)制以及對(duì)抽象的支持:

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

5)

邏輯視圖和物理視圖:

6)

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

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

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

1.

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

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

2.

組成符號(hào):

1)

基本符號(hào):

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論