第一篇:《軟件工程》理論教學大綱
《軟件工程》理論教學大綱
(2000年制訂,2004年修訂)
課程編號:210024 英 文 名:Software Engineering 課程類別:專業(yè)主干課
前 置 課:計算機導論、程序設計基礎、數(shù)據結構、面向對象程序設計、離散數(shù)學 后 置 課:畢業(yè)設計和畢業(yè)論文 學
分:3學分
課
時:48課時(其中理論教學32課時,實驗教學16課時)主講教師: 韓忠愿等
選定教材: 張海藩.軟件工程.北京:人民郵電出版社.2002年.課程概述:
本課程面向信息系統(tǒng)與信息管理專業(yè)的學生,介紹軟件系統(tǒng)性質、目標、環(huán)境的分析方法,目標系統(tǒng)邏輯聯(lián)系、功能聯(lián)系、控制聯(lián)系和狀態(tài)轉換過程的描述方法,軟件結構、測試方案的設計要求和分析方法,軟件工程學新進展,以及上述過程所用的規(guī)范化圖文數(shù)表模型。具體包括:軟件工程概念及其過程模型、結構化分析/設計/實現(xiàn)方法和工具,面向對象方法學及面向對象的概念、模型、分析方法、設計方法、實現(xiàn)方法,軟件項目管理及其定量度量方法、相關國際標準。最后介紹佩特網等形式化方法、統(tǒng)一建模語言、軟件常用技術和軟構件的分類與檢索。教學目的:
本課程的教學目的,應使學生掌握大型復雜軟件系統(tǒng)的開發(fā)方法、規(guī)則和工具。首先,應使其克服長期書寫小程序形成的“重編碼、輕分析設計;重編碼、輕技術資料建設和管理”的習慣;其次,要理解軟件工程原理/方法/規(guī)則的必要性和掌握其技術細節(jié);第三,要了解軟件工程學的進展和前沿動態(tài);第四,要通過軟件系統(tǒng)設計的練習,鞏固和應用所學知識。教學方法:
本課程的難點在于,學生不曾經過大型軟件開發(fā)的訓練,因此在講解中要適時插入大量軟件開發(fā)事例,要求教師具有一定的軟件開發(fā)經驗;本課程不安排具體編程環(huán)境和開發(fā)語言的學習,但必須以大型軟件開發(fā)實例說明問題,因此要求教師熟悉多種開發(fā)環(huán)境和開發(fā)語言;此外,軟件開發(fā)技術的滯后和軟件應用的廣泛性所形成的反差,要求教師了解并適時提出計算機輔助軟件工程(CASE)的問題。因此,作為教師,應把案例的收集和規(guī)律的提取作為重點;作為學生,重點是掌握基本思想和基本方法及其綜合應用。教學中以講授和討論為主,實驗內容則是在Power Designer、Project、IBM Rational Rose等CASE環(huán)境下實習理論教學中的建模、分析和管理過程。各章教學要求及教學要點
第一章 軟件工程概述
課時分配:2課時 教學要求:
本章對計算機軟件工程學進行簡短的概述。首先要通過回顧計算機系統(tǒng)軟硬件關系的發(fā)展簡史,說明開發(fā)軟件的一些錯誤方法和觀念是怎樣形成的。然后列舉這些錯誤方法帶來的嚴重弊病(軟件危機),澄清一些糊涂觀念。為了計算機系統(tǒng)的進一步發(fā)展,需要認真研究開發(fā)和維護軟件的科學技術。應總結計算機軟件技術發(fā)展的歷史經驗教訓,借鑒其他工程領域的管理技術。教學內容:
第一節(jié)
軟件工程
一、什么是軟件工程
概括地說,軟件工程是指導計算機軟件開發(fā)和維護的工程學科。采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發(fā)出高質量的軟件并有效地維護它,這就是軟件工程。
二、軟件工程的基本原理
1.用分階段的生命周期計劃嚴格管理; 2.堅持進行階段評審; 3.實行嚴格的產品控制; 4.采用現(xiàn)代程序設計技術; 5.結果應能清楚地審查; 6.開發(fā)小組的人員應該少而精;
7.承認不斷改進軟件工程實踐的必要性。
第二節(jié) 軟件工程方法學
一、方法學(methodology)范型(paradigm)瀑布模型、噴泉模型、快速原型模型、增量模型、螺旋模型。
二、軟件工程方法學三要素:方法、工具和過程。
三、傳統(tǒng)方法學和面向對象方法學 思考題:
1.什么是軟件工程?怎么應用軟件工程消除軟件危機? 2.軟件工程化的觀點認為,軟件生命周期包含哪些階段?
3.簡要論述結構化范式和面向對象范式的要點,并比較這兩種范式的優(yōu)缺點。
第二章 軟件過程
課時分配:2課時 教學要求:
本章需要明確:軟件過程是為了獲得高質量軟件產品所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟。軟件過程必須科學、合理,才能開發(fā)出高質量的軟件產品。按照在軟件生命周期全過程中應完成任務的性質,在概念上可以把軟件生命周期劃分成問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼和單元測試、綜合測試以及維護等八個階段。實際從事軟件開發(fā)工作時,軟件規(guī)模、種類、開發(fā)環(huán)境及使用的技術方法等因素,都影響階段的劃分。因此,一個科學、有效的軟件過程應該定義一組適合于所承擔的項目特點的任務集合。據此,本章講授五類典型的軟件生命周期模型及其特點。教學要點
第一節(jié) 軟件生命周期的基本任務
一、問題定義—“要解決的問題是什么?”
二、可行性研究—“上一個階段所確定的問題是否有行得通的解決辦法?”
三、需求分析—用規(guī)格說明(specification)定義“目標系統(tǒng)必須做什么?”
四、概要設計—“怎樣實現(xiàn)目標系統(tǒng)?”
五、詳細設計—“怎樣具體地實現(xiàn)這個系統(tǒng)?”
六、編碼和單元測試—寫出正確的容易理解、容易維護的程序模塊。
七、綜合測試—通過各種類型的測試及相應的調試,使軟件達到預定的要求。
八、軟件維護—通過各種必要的維護活動使系統(tǒng)持久地滿足用戶的需要(改正性維護、適應性維護、完善性維護、預防性維護)。
第二節(jié) 瀑布模型
一、階段間具有順序性和依賴性。
二、推遲實現(xiàn)的觀點。
三、質量保證的觀點。思考題:
1.什么是軟件過程?它與軟件工程方法學有什么關系?
2.假設你要開發(fā)一個軟件,它的功能是把某個數(shù)開平方,所得的結果應該精確到小數(shù)點后4位。一旦實現(xiàn)并測試完畢后,該產品將會被拋棄。你打算選用哪種軟件生命周期模型?
3.列出上一題所述軟件產品在開發(fā)過程中可能遇到的風險。
第三章 結構化分析
課時分配:3課時 教學要求:
本章講授用戶需求的發(fā)現(xiàn)、求精、建模、規(guī)格說明和復審的過程。本章還要說明模型的以下作用:1.模型能幫助分析員更好地理解軟件系統(tǒng)的信息、功能和行為,從而使得需求分析工作更容易完成,使需求分析的結果更系統(tǒng)化。2.模型是復審需求分析成果時的焦點,因此,也成為驗證規(guī)格說明的完整性、一致性和準確性的重要依據。3.模型是設計的基礎,為設計者提供軟件的實質性表示,通過設計工作將把這些表示轉化成軟件實現(xiàn)。在此基礎上,引導學生使用實體—關系圖來建立數(shù)據模型,掌握數(shù)據流圖的基本符號,并能正確地使用這些符號建立目標系統(tǒng)的功能模型。此外,簡要說明狀態(tài)轉換圖和數(shù)據字典。教學內容:
第一節(jié)
概述
一、需求分析的含義(發(fā)現(xiàn)、求精、建模、規(guī)格說明和復審的過程)。
二、模型—為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。
三、結構化分析通常建立數(shù)據模型、功能模型和行為模型等三種模型。
四、用分析模型表示軟件需求并寫出準確的軟件需求規(guī)格說明。
第二節(jié) 需求分析與需求工程
一、訪談—訪談(或稱為會談)。
最早開始運用的獲取用戶需求的技術,也是迄今為止仍然廣泛使用的主要的需求分析技術。
二、規(guī)格說明技術。
這種方法提倡用戶與開發(fā)者密切合作,共同標識問題,提出解決方案的要素,商討不同的方法并指定基本的需求。
三、軟件原型化方法。
構建原型的要點是,它應該實現(xiàn)用戶看得見的功能(例如屏幕顯示或打印報表),省略目標系統(tǒng)的“隱含”功能(例如修改文件)。
第三節(jié) 軟件需求規(guī)格說明
一、軟件需求規(guī)格說明簡略大綱。
引言、信息描述、功能描述、行為描述、確認標準、參考書目、附錄。
二、需求規(guī)格說明書各部分的撰寫要點。
第四節(jié) 實體—關系圖
數(shù)據模型包含三種相互關聯(lián)的信息:數(shù)據對象、描述數(shù)據對象的屬性及數(shù)據對象彼此間相互連接的關系。
第五節(jié) 數(shù)據流圖
一、數(shù)據流圖符號。正方形(或立方體)表示數(shù)據的源點或終點;圓角矩形(或圓形)代表變換數(shù)據的處理;開口矩形(或兩條平行橫線)代表數(shù)據存儲;箭頭表示數(shù)據流,即特定數(shù)據的流動方向。
二、例子。
三、圖元命名。
第六節(jié) 狀態(tài)轉換圖
一、狀況轉換圖的各種圖形結構要素。
二、換圖的應用實例。
第七節(jié) 數(shù)據字典
一、數(shù)據字典是為了描述在結構化分析過程中定義的對象的內容而使用的一種半形式化的工具。
二、數(shù)據字典是所有與系統(tǒng)相關的數(shù)據元素的有組織的列表。
三、數(shù)據字典是對系統(tǒng)中使用的所有數(shù)據元素的定義的集合。
四、數(shù)據字典的內容(名字、別名、使用地點與方式、內容描述、補充信息)。
五、數(shù)據字典中表示數(shù)據構成的符號。思考題:
1.銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫存款單和取款單,由業(yè)務員鍵入系統(tǒng)。如果是存款,則系統(tǒng)記錄存款人姓名、住址(或電話號碼)、身份證號、存儲類型、存款日期、到期日起、利率及密碼等信息,并打印存款單給儲戶;如果是取款而且存款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確和存款時未留密碼,則計算利息并打印利息清單。
2.用數(shù)據流圖描繪本系統(tǒng)的功能,并用實體聯(lián)系圖描繪系統(tǒng)中的數(shù)據對象。
第四章 結構化設計
課時分配:6課時 教學要求:
本章應使學生學會用各種圖形描繪軟件結構。描述程序處理過程的工具,可分為圖形、表格和語言三類,這三類工具各有所長,教學中應該讓學生能夠根據需要選用適當?shù)墓ぞ摺=虒W內容:
第一節(jié)
結構化設計與結構化分析的關系
結構化分析的結果為結構化設計提供了最基本的輸入信息,結構化設計是結構化分析的繼續(xù)。
第二節(jié) 軟件設計的概念和原理
一、模塊化。模塊是由邊界元素限定的相鄰的程序元素(例如,數(shù)據說明,可執(zhí)行的語句)的序列,而且有一個總體標識符來代表它。像Pascal或Ada這樣的塊結構語言中的Begin?end對,或者C,C++和Java語言中的{?}對,都是邊界元素的例子。因此,過程、函數(shù)、子程序和宏等,都可作為模塊。面向對象范型中的對象是模塊,對象內的方法也是模塊。模塊是構成程序的基本構件。
模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。
1.模塊可分解性; 2.模塊可組裝性; 3.模塊可理解性; 4.模塊連續(xù)性; 5.模塊保護性。
二、抽象。
三、逐步求精。
四、信息隱藏。
第三節(jié) 模塊獨立
一、耦合。
耦合是對一個軟件結構內不同模塊之間互連程度的度量,分為數(shù)據耦合,控制耦合,公共環(huán)境耦合,內容耦合。
二、內聚。
內聚標志一個模塊內各個元素彼此結合的緊密程度,它是信息隱蔽和局部化概念的自然擴展。分為功能內聚、順序內聚、通訊內聚、過程內聚、時間內聚、邏輯內聚、偶爾內聚。
第四節(jié) 啟發(fā)規(guī)則
一、改進軟件結構提高模塊獨立性。
二、模塊規(guī)模應該適中。
三、深度、寬度、扇出和扇入都應適當。
四、模塊的作用域應該在控制域之內。
五、力爭降低模塊接口的復雜程度。
六、設計單入口單出口的模塊。
七、模塊功能應該可以預測。
第五節(jié) 表示軟件結構的圖形工具
一、層次圖。
二、HIPO圖。
三、層次圖和HIPO圖的區(qū)別和所適用的情況。
第六節(jié) 面向數(shù)據流的設計方法
一、概念。
1.變換流—如果數(shù)據流圖中的輸入經過加工處理后才沿輸出通道變換成外部形式后離開軟件系統(tǒng),這種數(shù)據流稱為變換流。
2.事務流—如果數(shù)據流圖中的輸入未經加工處理后就沿多個輸出通道離開軟件系統(tǒng)進入下一個分支,這種數(shù)據流稱為變換流。
二、變換分析。
復查基本系統(tǒng)模型、復查并精化數(shù)據流圖、確定數(shù)據流圖具有變換特性還是事務特性、確定輸入流和輸出流的邊界,從而孤立出變換中心、完成“第一級分解”、完成“第二級分解”、使用設計度量和啟發(fā)規(guī)則對第一次分割得到的軟件結構進一步精化。
三、事務分析。
事務分析的設計步驟和變換分析的設計步驟大部分相同或類似,主要差別僅在于由數(shù)據流圖到軟件結構的映射方法不同。
四、設計優(yōu)化。
第七節(jié) 過程設計
一、經典的結構程序設計。
只允許使用順序、IF-THEN-ELSE型分支和DO-WHILE型循環(huán)這三種基本控制結構。
二、擴展的結構程序設計。
除了上述三種基本控制結構之外,還允許使用DO-CASE型多分支結構和DO-UNTIL型循環(huán)結構。
三、修正的結構程序設計。
在上述結構的基礎上,再加上允許使用LEAVE(或BREAK)的結構。
第八節(jié) 過程設計的工具
描述程序處理過程的工具稱為過程設計的工具,它們可以分為圖形、表格和語言三類。
一、程序流程圖。
二、盒圖(N-S圖)。
盒圖沒有箭頭,因此不允許隨意轉移控制。堅持使用盒圖作為詳細設計的工具,可以使程序員逐步養(yǎng)成用結構化的方式思考問題和解決問題的習慣。
三、PAD圖。
用二維樹形結構的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。
四、判定表。
當算法中包含多重嵌套的條件選擇時,判定表能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系。
五、判定樹。
判定表雖然能清晰地表示復雜的條件組合與應做的動作之間的對應關系,但其含義卻不是一眼就能看出來的,初次接觸這種工具的人要理解它需要有一個簡短的學習過程。判定樹是判定表的變種,也能清晰地表示復雜的條件組合與應做的動作之間的對應關系。
六、過程設計語言(PDL)。思考題:
1.分析模型中的哪些信息為數(shù)據設計奠定了基礎?哪些信息為軟件體系結構設計奠定了基礎?那些信息為接口設計奠定了基礎?那些信息為過程設計奠定了基礎?
2.為每種類型的模塊偶合舉一個具體例子。3.對每種類型的模塊內聚舉一個具體例子。4.舉例說明信息隱藏和模塊獨立的關系。5.舉例說明藕合和可移植性的關系。
第五章 結構化實現(xiàn)
課時分配:3課時 教學要求:
學習本章后,為了設計出有效的測試方案,學生必須深入理解并應用指導軟件測試的基本準則,應該能夠應用各種測試方法設計軟件系統(tǒng)的測試方案,并根據測試結構進行錯誤定位、軟件調試和軟件可靠性估計等后續(xù)工作。教學內容:
第一節(jié) 軟件實現(xiàn)的基本問題
一、選擇程序設計語言。
二、編碼風格。
程序內部的文檔、數(shù)據說明、語句構造、輸入/輸出、效率。
第二節(jié) 軟件測試基礎
一、測試目標。
1.測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;
2.好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案; 3.成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。
二、黑盒測試和白盒測試。
三、測試準則。
1.所有的測試都應該能追溯到用戶需求;
2.應該在測試開始之前的相當長時間,就制定出測試計劃; 3.測試發(fā)現(xiàn)的錯誤中的80%很可能是由程序中20%的模塊造成的; 4.測試應該從“小規(guī)模”開始,并逐步進行“大規(guī)模”測試; 5.窮舉測試是不可能的;
6.為了達到最佳的測試效果,應該由獨立的第三方來從事測試工作。
四、流圖。
第三節(jié) 邏輯覆蓋
一、語句覆蓋。
二、判定覆蓋。
三、條件覆蓋。
四、判定/條件覆蓋。
五、條件組合覆蓋。
第四節(jié) 控制結構測試
一、基本路徑測試。
1.根據過程設計結果畫出相應的流圖; 2.計算流圖的環(huán)形復雜度; 3.確定線性獨立路徑的基本集合;
4.設計可強制執(zhí)行基本集合中每條路徑的測試用例。
二、條件測試。
三、數(shù)據流測試。
四、循環(huán)測試。1.簡單循環(huán); 2.嵌套循環(huán); 3.串接循環(huán)。
第五節(jié) 黑盒測試技術
一、等價劃分。
1.如果規(guī)定了輸入值的范圍,則可劃分出一個有效的等價類輸入值在此范圍內(兩個無效的等價類輸入值小于最小值或大于最大值)。2.如果規(guī)定了輸入數(shù)據的個數(shù),則類似地也可以劃分出一個有效的等價類和兩個無效的等價類。
3.如果規(guī)定了輸入數(shù)據的一組值,則每個允許的輸入值是一個有效的等價類,此外還有一個無效的等價類(任一個不允許的輸入值)。
4.如果規(guī)定了輸入數(shù)據必須遵循的規(guī)則,則可以劃分出一個有效的等價類(符合規(guī)則)和若干個無效的等價類(從各種不同角度違反規(guī)則)。
5.如果規(guī)定了輸入數(shù)據為整型,則可以劃分出正整數(shù)、零和負整數(shù)等三個有效類。6.如果程序的處理對象是表格,則應該使用空表,以及含一項或多項的表。
二、邊界值分析。
三、錯誤推測。
第六節(jié) 測試策略
一、測試步驟。
二、單元測試。1.代碼審查; 2.軟件測試。
三、集成測試。1.自頂向下集成; 2.自底向上集成; 3.回歸測試;
4.不同集成測試策略的比較。
四、確認測試。
第七節(jié) 調試
一、調試過程。
二、調試途徑。1.蠻干法; 2.回溯法; 3.原因排除法。思考題:
航空公司向軟件公司訂購了一個規(guī)劃飛行路線的程序。假設你是另一軟件公司的軟件工程師。航空公司已雇用你在的公司對上述程序進行驗收測試。你的任務是,根據下述事實設計驗收測試的輸入數(shù)據,并解釋你選取這些數(shù)據的理由:領航員向程序輸入出發(fā)點和目的地,以及根據天氣和飛機型號而初步確定的飛行高度。程序讀入途中的風向風力等數(shù)據,并且制定出三套飛行計劃(高度、速度、方向及途中的五個位子校核點)。所制定的飛行計劃應做到燃油消耗和飛行時間都最少。
第六章 面向對象的概念與模型
課時分配:3課時 教學要求:
面向對象方法學比較自然地模擬了人類認識客觀世界的思維方式,本章教學應使學生了解面向對象方法的概念和規(guī)律和工具,能夠用面向對象的思想描述問題域,從而建立關于軟件系統(tǒng)的對象模型,當然,出于面向對象建模的需要,也要重溫過程建模和功能建模方法。教學內容:
第一節(jié)
概述
一、面相對象思想基本內涵:OO=Objects+ Classes+ Inheritance+ Communication with messages。
二、面向對象方法學的主要優(yōu)點。
與人類習慣的思維方法一致、穩(wěn)定性好、可重用性好、較易開發(fā)大型軟件產品、可維護性好。
三、面向對象方法的其他概念。
(類Class)、對象、消息(Message)、方法(Method)、屬性(Attribute)、封裝(Encapsulation)、繼承(Inheritance)、多態(tài)性(Polymorphism)、重載(Overloading)。
第二節(jié) 對象模型
一、表示類—&—對象的圖形符號。
二、表示結構的圖形符號。
三、對象模型之例。
第三節(jié) 動態(tài)模型
一、概念。
二、符號。
第四節(jié) 功能模型
一、表示方法。二、三種模型之間的關系。思考題:
1.試分析傳統(tǒng)的生命周期方法學的優(yōu)缺點。2.什么是面向對象方法學?這種方法有什么優(yōu)點? 3.什么是對象?它與傳統(tǒng)的數(shù)據有何關系?有何不同? 4.什么是模型?開發(fā)軟件為什么要建立模型? 5.什么是對象模型? 6.什么是動態(tài)模型? 7.什么是功能模型?
第七章 面向對象分析
課時分配:2課時 教學要求:
本章介紹面向對象思想和方法在具體軟件系統(tǒng)分析中的應用,包括一些具體的操作技術,如對象、屬性、聯(lián)系和行為的初選和求精等。本章講述的自動取款機系統(tǒng)和電梯系統(tǒng)這兩個實例,應該有助于讀者更深入、具體地理解面向對象分析的方法與過程。教學內容:
第一節(jié) 分析過程
一、概述。二、三個子模型與五個層次。
第二節(jié) 需求陳述
一、書寫要點。
二、例子。
第三節(jié) 建立對象模型
一、確定類—&—對象。1.找出候選的類—&—對象; 2.篩選出正確的類—&—對象。
二、確定關聯(lián)。1.初步確定關聯(lián); 2.篩選; 3.進一步完善。
三、劃分主題。
四、確定屬性。1.分析; 2.選擇。
五、識別繼承關系。
六、反復修改。
第四節(jié) 其他過程
一、建立動態(tài)模型。
二、建立功能模型。
三、定義服務。
第五節(jié) 面向對象分析實例
思考題:
1.用面向對象方法分析研究一個儲蓄系統(tǒng),試建立它的對象模型、動態(tài)模型和功能模型。2.用面向對象方法分析研究一個機票預定系統(tǒng),試建立它的對象模型、動態(tài)模型和功能模型。
3.用面向對象方法分析研究一個患者監(jiān)護系統(tǒng),試建立它的對象模型、動態(tài)模型和功能模型。
第八章 面向對象設計
課時分配:2課時 教學要求:
本章在前面兩章關于面向對象思想及其基本應用的系統(tǒng)介紹的基礎上,考慮到面向對象分析與結構化分析在過程、要求和原則等方面的相似性,講授從略;同時考慮到具體實現(xiàn)技術的差異,著重介紹在面向對象方法中實現(xiàn)模塊化、信息隱蔽的若干技術。教學內容:
第一節(jié) 面相對象設計方法與過程
一、面向對象設計的準則。
二、啟發(fā)規(guī)則。
三、系統(tǒng)分解。
四、設計問題域子系統(tǒng)。
五、設計人-機交互子系統(tǒng)。
六、設計任務管理子系統(tǒng)。
七、設計數(shù)據管理子系統(tǒng)。
八、設計類中的服務。
九、設計關聯(lián)。
十、設計優(yōu)化。
十一、面向對象分析與設計實例。
第九章 計劃
課時分配:4課時 教學要求:
軟件工程包括技術和管理兩方面的內容,是管理與技術緊密結合的產物。只有在科學而嚴格的管理之下,先進的技術方法和優(yōu)秀的軟件工具才能真正發(fā)揮出它們的威力。因此,本章教學應使學生在認識軟件管理特點的基礎上,掌握主流的估算和評價指標,并能據此安排和優(yōu)化軟件項目的進度。教學內容:
第一節(jié) 度量軟件規(guī)模
一、代碼行技術。
二、功能點技術。
功能點技術依據對軟件信息域特性和軟件復雜性的評估結果,估算軟件規(guī)模。1.信息域特性—輸入項數(shù)(Inp)、輸出項數(shù)(Out)、查詢數(shù)(Inq),主文件數(shù)(Maf)和外部接口數(shù)(Inf)。
2.計算未調整的功能點數(shù)UFP。3.計算技術復雜性因子TCF。
第二節(jié) 工作量估算
一、靜態(tài)單變量模型:E=A+B×(ev)C。
二、動態(tài)多變量模型:E=〔LOC×B0.333/P〕3×(1/t)4。
三、COCOMO模型。
第三節(jié) 進度計劃
一、基本原則。
二、Gantt圖。
三、工程網絡。
四、估算進度。
五、關鍵路徑。
六、機動時間。思考題:
分析研究一個倉庫管理信息系統(tǒng),要求: 1.用代碼行技術估算本系統(tǒng)的規(guī)模; 2.用功能點技術估算本系統(tǒng)的規(guī)模; 3.用靜態(tài)單變量模型估算開發(fā)本系統(tǒng)所需的工作量; 4.假設由一個人開發(fā)本系統(tǒng),請制定進度計劃; 5.假設由兩個人開發(fā)本系統(tǒng),請制訂進度計劃。
第十章 軟件工程項目管理組織
課時分配:2課時 教學要求:
本章教學要具體介紹國外比較流行的民主制程序員組、主程序員組和現(xiàn)代程序員組的組織方式,討論不同組織方式的優(yōu)缺點和適用范圍。然后再從更廣闊的角度進一步討論通用的軟件項目組的組織結構問題,主要講述風險管理、質量保證和配置管理等三類軟件工程控制活動。教學內容:
第一節(jié) 組織策略
一、民主制程序員組;
二、主程序員組;
三、現(xiàn)代程序員組;
四、軟件項目組。
第二節(jié) 控制策略
一、風險管理;
二、質量保證;
三、配置管理。
第十一章 國際標準
課時分配:3課時 教學要求:
本章簡要地介紹幾個與軟件項目管理有關的國際標準,供學生在實際工作中參考、借鑒。教學內容:
第一節(jié) 常用標準
一、IEEE1058.1軟件項目管理計劃標準。
二、ISO9000質量標準。
三、ISO/IEC12207軟件生命周期過程標準。
四、ISO/IECTR15504軟件過程評估標準。
五、能力成熟度模型。
附 錄:參考書目
1.齊治昌等.軟件工程[M].北京:高等教育出版社,北京.1997.2.王選.軟件設計方法[M].北京:清華大學出版社,1992.3.Pont M J.Software Engineering with C++ and CASE Tools[M].Addison-Wesle,1996.4.周之英.現(xiàn)代軟件工程[M].北京:科學出版社,1999.5.張海藩.軟件工程導論(第三版)[M].北京:清華大學出版社,1998.6.張海藩.牟永敏.面向對象程序設計實用教程[M].北京:清華大學出版社,2001.7.張海藩等.計算機第四代語言[M].北京:電子工業(yè)出版社,1996.8.蔣慧等.UML設計核心技術[M].北京:希望電子出版社,2001.9.柏路等譯.C++面向對象的程序開發(fā)技術[M].北京:電子工業(yè)出版社,1996.10.Roger S.Pressman.Software Engineering—A Practitioner’s Approach.Fourth Edition[M].McGraw-Hill,1997.11.Stephen R.Schach.Software Engineering with Java[M].McGraw-Hill,1999.執(zhí)筆人:
韓忠愿
審定人:
程國達
2004年6月
2004年6月
2004年6月
院(系、部)負責人:韓忠愿
第二篇:《軟件工程》教學大綱
《軟件工程》教學大綱
《軟件工程》教學大綱 課程編號及名稱:040112軟件工程 2 教學目的與要求:
軟件工程是計算機科學與技術專業(yè)開設的一門專業(yè)必修課,是指導計算機軟件開發(fā)與維護、培養(yǎng)學生計算機軟件開發(fā)與應用綜合能力的一門綜合性課程。學生通過本課程的學習與課程實踐,應能了解軟件項目開發(fā)和維護的一般過程,掌握軟件開發(fā)的基本原理和技術,掌握現(xiàn)代化的軟件開發(fā)方法和步驟,為今后從事軟件開發(fā)打下堅實基礎。3學時學分:
總學時48學時,總學分3。其中授課40學時,實驗8學時。4 先修課程的要求:
數(shù)據結構、C語言程序設計、面向對象的程序設計、數(shù)據庫系統(tǒng)原理 教材與教學參考書目:
[1]
選用教材:《軟件工程(第二版)》齊治昌,高等教育出版社 [2] 《軟件工程導論》(第四版)張海藩編著,清華大學出版社 [3] 《實用軟件工程》(第二版)鄭人杰編著,清華大學出版社 [4] 《軟件工程技術概論》朱三元 等編著,科學出版社 [5] 《現(xiàn)代軟件工程》(上、中、下)周之英 編著,科學出版社 [6] 《面向對象的系統(tǒng)分析》 邵維忠 楊芙清 著,清華大學出版社 [7] 《軟件測試》(美)Ron Patton 著,周予濱 等譯,機械工業(yè)出版社 [8] 《System Analysis and Design Methods, fifth Edition》,Jeffrey L.等著,高等教育出版社
[9] 《能力成熟度模型(CMM):軟件過程改進指南》,SEI編著,劉孟仁 等譯,電子工業(yè)出版社
[10] 《軟件測試自動化技術與實例詳解》,Mark Fewster & Dorothy Graham 著,舒智勇等譯,電子工業(yè)出版社
[11] 《軟件工程》第二版 王立福等編著,北京大學出版社 [12] 《UML參考手冊》Ivar Jacobson,James Rumbaugh,Grady Booch著,姚淑蘭、唐發(fā)根譯,機械工業(yè)出版社 [13] 劉超編,《可視化面向對象建模技術--標準建模語言UML》,北航出版,1999年7月第一版 6 課程主要內容:
軟件危機與軟件工程;軟件、軟件工程過程與典型的軟件工程過程模型;與瀑布模型、演化模型等相對應的軟件開發(fā)方法;面向對象的開發(fā)方法等。
(一)緒論(2學時)
軟件危機與軟件工程概念;軟件工程過程及其典型開發(fā)模型;軟件開發(fā)應遵循的基本原則;軟件質量評價與軟件度量等
(二)可行性分析與需求分析(6學時)
可行性研究的任務、種類與方法;軟件需求及需求分析的任務、意義;需求獲取技術;結構化分析技術
(三)系統(tǒng)設計(6學時)
系統(tǒng)設計的階段與任務;模塊獨立、內聚與耦合概念;結構化設計方法;Jackson方法;詳細設計工具
(四)系統(tǒng)編碼(2學時)
軟件實現(xiàn);開發(fā)工具選擇的原則;軟件編程的風格與規(guī)范
(五)系統(tǒng)測試(4學時)
《軟件工程》教學大綱
軟件測試的概念、任務與原則;軟件測試的階段及過程管理;軟件測試方法及方案設計;軟件調試;軟件測試自動化;軟件可靠性研究
(六)系統(tǒng)運行及維護(2學時)
系統(tǒng)交付使用的方式及相關工作;軟件維護的種類與相關概念;軟件維護的實施過程與責任分工;提高軟件可維護性的技術
(七)原型開發(fā)方法(6學時)
傳統(tǒng)開發(fā)方法的問題;原型概念;原型開發(fā)方法及其支撐條件
(八)面向對象的軟件工程開發(fā)方法(8學時)
面向對象方法概述及其優(yōu)勢;面向對象的分析方法;面向對象的設計方法;統(tǒng)一建模語言UML; 軟件復用
(九)軟件項目管理與質量保證(4學時)
軟件項目管理概述;軟件項目規(guī)劃與估算;軟件項目風險管理;軟件項目的組織與進度計劃;軟件配置管理概述、配置管理的內容與工具;軟件質量保證與軟件過程能力成熟度模型CMM 教學內容重點:軟件工程過程與典型的軟件工程過程模型;軟件開發(fā)應遵循的基本原則;結構化分析與設計技術;原型開發(fā)方法;面向對象的分析與設計方法
教學內容難點:結構化分析與設計技術;面向對象的分析與設計方法 7 實驗教學安排:
在結構化分析方法、結構化設計方法與Jackson方法、原型開發(fā)方法、面向對象的軟件工程開發(fā)方法教學過程中安排3-4次實驗活動,要求學生認真完成。8 課程考核方式:
由于本課具有實踐性強的特點,建議采用大作業(yè)平時成績與結課考試相結合的方法綜合評定學生成績。本課特點及教學中應注意的問題:
本課特點:
1、實踐性強;
2、表面理解顯得較易,切實掌握非常困難。針對以上特點,教學過程中應極為重視實踐環(huán)節(jié)的指導與檢查,要求學生認真完成實踐活動,以求學得扎實、深刻。
第三篇:軟件工程教學大綱
《軟件工程》教學大綱
課程名稱:軟件工程
英文名稱:Software Engineering 學時數(shù)及學分:54學時 3學分 教材名稱及作者、出版社:《軟件工程導論》齊治昌、譚慶平、寧洪,高等教育出版社。大綱主筆人:郭
一、課程的目的、要求和任務
“軟件工程”是計算機科學軟件專業(yè)的一門重要專業(yè)骨干課程,它的主要目地和任務是: 1. 系統(tǒng)地介紹軟件工程的基本原理、概念、技術和方法,簡介軟件工程的最新技術及其研究發(fā)展方向;2. 通過本課程的學習,使學生了解、掌握軟件生存周期階段的工程任務、具體過程、技術過程、技術方法和各種工具;3. 通過本課程的學習,使學生了解軟件工程管理的重要性及基本的管理技術;4. 能將上述知識用于該課程的課程設計實習中,實現(xiàn)一個具體題目的全部軟件開發(fā)過程。
二、大綱基本內容及學時分配 1.概論(4學時)
1)軟件危機
2)軟件工程概論
3)技術審查和管理復審
說明:要求學生掌握本節(jié)內容;2)、3)是本節(jié)重點。2.可行性研究(4學時)
1)可行性研究的任務及步驟 2)系統(tǒng)流程圖與數(shù)據流圖 3)數(shù)據字典
4)成本效益分析
說明:要求學生掌握本節(jié)內容;1)、2)、4)是本節(jié)重點。3.需求分析(8學時)
1)需求分析的任務及分析過程 2)驗證分析的圖型工具
3)驗證軟件需求 4)原型法
說明:要求學生掌握本節(jié)內容;1)、2)、3)是本節(jié)重點。4.總體設計(8學時)
1)總體設計的任務及過程 * 2)軟件設計的重要概念及規(guī)則 3)軟件設計的圖形工具 * 4)面向數(shù)據流的設計方法 * 說明:要求學生掌握本節(jié)內容;1)、3)、4)是本節(jié)重點。5.詳細設計(8學時)1)結構化程序設計
2)詳細設計的工具 3)Jackson 設計方法 4)Warnier 設計方法
5)程序復雜度的定量度量方法
說明:要求學生掌握本節(jié)內容;1)、2)、5)是本節(jié)重點。6.編碼(4學時)
1)程序設計語言的分類及選擇 2)程序設計的風格及方法 3)程序設計自動化及工具
說明:要求學生掌握本節(jié)內容;2)是本節(jié)重點。7.測試(8學時)
1)軟件測試的目標及測試的步驟
2)黑盒測試、白盒測試及測試方案的設計 3)單元測試、集成測試、驗收測試 4)調試及軟件可靠性的估算
5)自動測試工具
說明:要求學生掌握本節(jié)內容;1)、2)、4)是本節(jié)重點。8.維護(4學時)
1)軟件維護的定義及特點 * 2)維護的進行過程和可維護性
說明:要求學生掌握本節(jié)內容;1)是本節(jié)重點。9.軟件工程的管理技術(6學時)
1)成本估算
2)進度計劃及人員組織
3)軟件的質量保證
4)項目計劃的制定及管理
5)軟件工程的管理工具
說明:要求學生掌握本節(jié)內容;1)、3)、4)是本節(jié)重點。10.面向對象方法學引論(6學時)
1)基本概念及面向對象建模 2)對象模型 3)動態(tài)模型 4)功能模型
說明:本節(jié)內容選講;1)是本節(jié)重點。11.面向對象分析(4學時)
1)面向對象分析的基本過程及需求陳述 2)建立對象模型、動態(tài)模型、功能模型 3)定義服務
說明:本節(jié)內容選講;1)、2)是本節(jié)重點。12.面向對象設計(6學時)
1)面向對象設計的準則、啟發(fā)規(guī)則及軟件重用 2)系統(tǒng)分解
3)問題域、人-機交互、任務管理、數(shù)據管理等子系統(tǒng)的設計 4)設計類中的服務、關聯(lián)及設計優(yōu)化 說明:本節(jié)內容選講;1)、3)是本節(jié)重點。13. 面向對象的實現(xiàn)(4學時)
1)程序設計語言的選擇 2)程序設計風格
3)面向對象測試
說明:本節(jié)內容選講。
三、與其它課程的關系
1.先行課程: 程序設計語言、數(shù)據結構、操作系統(tǒng)、編譯原理、數(shù)據庫等。
2.后續(xù)課程:高級程序設計語言概論、軟件工具與環(huán)境、信息管理系統(tǒng)(MIS)、計算機輔助教育等。
四、考核方式
1.期末閉卷考試 占總成績的50–60% 2.課程設計 占總成績的30% 3.平時成績(作業(yè)、上機和課堂考勤等)占總成績的 10-20%
五、參考書目
《軟件工程導論》齊治昌、譚慶平、寧洪,高等教育出版社。《軟件工程概論》,孫振飛 應振澍 編著,湖南科學技術出版社。
第四篇:軟件工程實驗教學大綱
軟件工程實驗教學大綱
前 言
軟件工程實驗是為計算機相關專業(yè)本科《軟件工程》課程配套設置的,是《軟件工程》課程講授中一個重要的、不可或缺的實踐環(huán)節(jié)。其目的是使學生能夠針對具體軟件工程項目,全面掌握軟件工程管理、軟件需求分析、軟件初步設計、軟件詳細設計、軟件測試等階段的方法和技術,通過該課程設計使學生進一步理解和掌握軟件開發(fā)模型、軟件生命周期、軟件過程等理論在軟件項目開發(fā)過程中的意義和作用,培養(yǎng)學生按照軟件工程的原理、方法、技術、標準和規(guī)范,進行軟件開發(fā)的能力,培養(yǎng)學生的合作意識和團隊精神,培養(yǎng)學生對技術文檔的編寫能力,從而使學生提高軟件工程的綜合能力,提高軟件項目的管理能力。
按該課程的特點,實驗內容包括軟件開發(fā)的兩大方法學的專題訓練,即結構化(生命周期學)的方法學和面向對象的方法學,通過對一個簡單項目,要求學生利用結構化軟件開發(fā)技術或面向對象的軟件開發(fā)技術完成對該項目的開發(fā)。因此設置五個實驗項目,從項目發(fā)的準備工作,系統(tǒng)分析過程,系統(tǒng)設計過程,軟件測試到系統(tǒng)實施,覆蓋軟件開發(fā)的整個過程,此外又引入我國國家《計算機開發(fā)規(guī)范》,以規(guī)范技術文檔的書寫標準,提高實驗教學質量。
通過實驗訓練,達到如下目的:
使學生進一步了解和掌握軟件工程原理,提高對實際項目的分析和設計能力,通過實驗課程,熟悉和基本掌握軟件工程方法學、軟件開發(fā)的過程,文檔資料的編寫格式及規(guī)范,全面領會和貫通所學習的理論知識,從而培養(yǎng)學生綜合運用所學課程知識,分析解決問題的能力,培養(yǎng)學生理論聯(lián)系實際作風,實事求是,嚴肅認真的科學態(tài)度和良好的工作作風,為今后從事科學研究工作打下基礎。
實驗一:項目開發(fā)的準備工作
實驗學時:2 實驗類型:驗證性
一、目的與任務
目的:確定課題,組織組員,合理分工,熟悉軟件開發(fā)環(huán)境,培養(yǎng)團隊精神。
任務:學習軟件開發(fā)小組的組織和管理,合理分工,將項目開發(fā)各階段的任務明確,并熟悉相應的軟件開發(fā)環(huán)境。
二、內容、要求與安排方式
1、實驗內容與要求:
根據各組選擇的課題,實行項目經理制,各組推薦一名組長,統(tǒng)一管理整個項目的實施過程,并合理調整資源和負責項目全局;根據項目的難易合理分配組員的任務,對問題達成一致的看法;針對項目的實施,熟悉相應的軟件開發(fā)工具的使用環(huán)境。
2、實驗安排方式:
本實驗為開放實驗,各組可同時進行實驗,每組4-6人。3.準備參考資料和閱讀相關的國家有關軟件開發(fā)的標準文檔。
三、思考題
1、項目開發(fā)首先要做的事是什么?
2、你認為該軟件應具備的最重要的特性是什么。
3、你認為怎樣分工是最合理的?
實驗二:系統(tǒng)分析過程
實驗學時:4 實驗類型:驗證性
一、目的與任務
目的:確定項目的可實施性,在此基礎上完成系統(tǒng)的邏輯功能模型的建立。
任務:采用不同的軟件開發(fā)技術,完成對項目的分析過程,給出系統(tǒng)的邏輯功能模型,數(shù)據字典以及規(guī)格說明書。
二、內容、要求與安排方式
1、實驗內容與要求:
明白項目的業(yè)務流程圖,繪制數(shù)據流程圖,功能分析圖,編寫數(shù)據字典,數(shù)據加工處理的描述,軟件系統(tǒng)流程設想圖(新系統(tǒng)模型),需求規(guī)格說明書。
2、實驗安排方式:
本實驗為開放實驗,各組可同時進行實驗,每組8-10人。
三、思考題
1、需求分析在軟件開發(fā)中真的有那么重要嗎?
2、分析系統(tǒng)流程圖,流程圖和數(shù)據流圖的區(qū)別和各自的特點。
3、怎樣寫合乎規(guī)范的數(shù)據流圖和數(shù)據詞典?
4、怎樣組織對該工作的評審?
實驗三:系統(tǒng)設計過程
實驗學時:4 實驗類型:設計性
一、目的與任務
目的:在實驗二基礎上完成系統(tǒng)的體系結構的建立和系統(tǒng)詳 2 細設計,并給出相應的規(guī)格說明書。
任務:認真分析實驗二的結果,給出系統(tǒng)合理的體系結構,描繪系統(tǒng)結構圖,并合理劃分系統(tǒng)的各組成模塊,最后給出系統(tǒng)的各部分設計規(guī)格說明書。
二、內容、要求與安排方式
1、實驗內容與要求:
功能結構圖設計,軟件處理流程設計,輸出設計(主要指打印輸出設計),存儲文件格式設計(數(shù)據庫結構設計),輸入設計(主要指數(shù)據錄入卡設計),代碼設計,程序設計說明書
2、實驗安排方式:
本實驗為開放實驗,各組可同時進行實驗,每組8-10人。
三、思考題
1.系統(tǒng)設計和需求分析的關系是什么?兩者必須先后關聯(lián)嗎? 2.怎樣描繪系統(tǒng)的體系結構? 3.怎樣繪制復合規(guī)范的流程圖。4.怎樣組織對設計階段工作的評審?
實驗四:系統(tǒng)實現(xiàn)
實驗學時:4 實驗類型:設計性
一、目的與任務
目的:系統(tǒng)運行和軟件后期制作,了解程序設計的風格。任務:編寫源程序,正確書寫軟件說明書和用戶手冊,總結軟件開發(fā)中的得失。
二、內容、要求與安排方式
1、實驗內容與要求:
完善系統(tǒng)所涉及的程序框圖,源程序,模擬運行數(shù)據,打印報表,軟件使用說明書和用戶手冊等。
2、驗安排方式:
本實驗為開放實驗,各組可同時進行實驗,每組8-10人。
三、思考題
1、怎樣合理選擇軟件開發(fā)的工具?
2、怎樣進行用戶說明手冊和使用手冊的編寫。
3、總結項目實施中的得失。
實驗五:軟件測試
實驗學時:4 實驗類型:綜合性
一、目的與任務
目的:在實驗四的基礎上,完成對系統(tǒng)的組裝和測試。
任務:正確運用軟件測試技術和方法,完成系統(tǒng)的單元測試、綜合測試、確認測試、系統(tǒng)測試的方法,掌握測試用例的設計方法,并給出測試報告。
二、內容、要求與安排方式
1、實驗內容與要求:
(1)能夠正確運用軟件測試的過程與方法,結合一個模擬課題,復習、鞏固、軟件工程中系統(tǒng)測試知識,提高軟件測試的實踐能力。
(2)熟悉單元測試、綜合測試、確認測試、系統(tǒng)測試的方法,掌握測試用例的設計方法。
(3)樹立正確的軟件測試思想,培養(yǎng)分析問題、解決問題的能力,提高查詢資料和撰寫書面文件的能力。
2、驗安排方式:
本實驗為開放實驗,各組可同時進行實驗,每組8-10人。
三、思考題
1.怎樣看待測試的重要性。2.怎樣選擇測試的技術和方案。
3.比較邏輯測試和基本路徑測試的不同和聯(lián)系。4.怎樣組織對測試階段工作的評審?
附錄一:
實驗要求
軟件工程實驗要求學生采用“項目小組”的形式,結合具體的開發(fā)項目進行設計。具體要求如下:
1、班級按項目小組進行分組,每組不得超過6人
2、每個項目小組選出項目負責人或項目經理,由項目經理召集項目組成員討論、選定開發(fā)項目
3、項目中的每項任務要落實到人且規(guī)定該任務的起止日期和時間
4、每個項目小組必須按照《軟件工程實驗教學大綱》附錄中給定的文檔規(guī)范標準提供項目文檔
5、題目自定或采用附錄二中的題目
6、軟件開發(fā)的方法自定(結構化或面向對象的方法學)
附錄二:
實驗題目
題目一:“基于最小二乘法的公交車輛GPS補償定位系統(tǒng)的研究” 1. 研究內容: 本項目主要研究智能公交調度系統(tǒng)中,在不增加硬件設備的基礎上,通過軟件來解決GPS在動態(tài)環(huán)境中信號失鎖問題的方法。提出了基于最小二乘曲線擬合方法的GPS數(shù)據補償算法,該算法將公交車輛的行駛線路數(shù)字化為一個曲線模型,并且在客觀條件影響車載GPS設備無法接收到GPS信號時,利用對應線路的曲線模型模擬公交車輛的行駛,實現(xiàn)補償定位。解決由于GPS失鎖引起的三個問題。2. 研究意義: 城市智能公共交通管理系統(tǒng)公交車輛的定位跟蹤、輔助導航、車輛調度指揮、動態(tài)發(fā)布公交信息以及出行者最佳路徑查詢等功能。通過建設智能公交管理系統(tǒng)可以大大提高城市公交車輛的綜合管理和調度的智能化,從而有效緩解城市交通的壓力。3. 研究方案:
針對公交行業(yè)中公交車輛的行駛路線相對固定的特點,根據車輛的歷史定位數(shù)據,對該行駛線路進行曲線擬合,形成一條數(shù)字曲線模型。由于公交線路形狀存在復雜和多樣性,所以在擬合中采用分段擬合,將線路根據其形狀分成幾條分別擬合。在GPS無法接收到定位信號時,將最后一次獲得的定位坐標投影到曲線模型上,以此為起點,在曲線模型上模擬車輛行駛并按原定GPS采樣間隔發(fā)送曲線模型上的對應坐標值,作為車輛的定位數(shù)據信息,解決GPS的失鎖問題。當GPS定位信號重新獲取后,停止模擬行駛,以實際定位數(shù)據為準。本項目采用最小二乘二次曲線擬合。4. 研究成果:
本系統(tǒng)以公交業(yè)務三級調度模式為系統(tǒng)設計框架,集計算機控制技術、無線通信技術、全球衛(wèi)星定位技術、地理信息技術為一體的公共交通系統(tǒng)。該系統(tǒng)基本上實現(xiàn)了公交調度業(yè)務的覆蓋和公交調度的智能化的要求,是一款比較出色的智能公交調度系統(tǒng),本項目所探討的用最小二乘曲線擬合解決GPS失鎖問題的方法將在將來的智能公交調度系統(tǒng)軟件中得到實際應用。
題目二:物業(yè)小區(qū)“一站式” 收費終端系統(tǒng)的軟件實現(xiàn)
1、研究內容:
在選擇合適的終端設備及運行系統(tǒng)平臺基礎上,利用目前流行的的面向對象程序設計語言Visual Basic 6.0和SQL的底層數(shù)據庫設計的軟件支持,硬件采用觸摸式液晶屏幕實現(xiàn)用戶與終端交互,通過網絡實現(xiàn)終端和銀行的交互,預先模擬出收費企業(yè)、銀行、小區(qū)住戶三方的數(shù)據庫信息(以銀行為交易中心),當住戶在小區(qū)的終端上刷卡消費時,終端將實時發(fā)送信息至銀行,實現(xiàn)銀行數(shù)據庫相應企業(yè)賬戶和該刷卡用戶賬戶信息的更改和刷新。軟件實現(xiàn)功能暫定代繳水費、電費、煤氣費、電話費(固定電話、移動手機用戶、聯(lián)通手機用戶)。
2、研究意義:
隨著現(xiàn)代都市生活節(jié)奏的加快,人們對生活的便捷性也隨之提出了更高的要求。而日常生活中消費性資源的固定費用,如電話費,燃氣費,水電費等的交納也面臨著越來越突出的矛盾:一方面,周末到銀行交納各項費用的用戶劇增,加大了銀行的工作量;另一方面,也使用戶浪費了大量的時間在排隊上,產生了一些負面影響;第三,雖然目前銀行開通了在網上在線交費業(yè)務,但由于互聯(lián)網的很多安全漏洞,用戶無法安心的在網上進行交費。針對目前用戶需要解決這種矛盾的迫切性,我們設計了“物業(yè)小區(qū)一站式收費終端系統(tǒng)”:該終端有點像銀行的自動取款機,位于中間位置的是一個觸摸式的液晶屏幕,在正常狀態(tài)下,屏幕上播放著城市(合肥)的風光片等信息,用手指觸摸后,直接進入首頁。利用該終端可以使用儲蓄卡交納水氣煤電等各項費用。該項目的開發(fā)可以很好的解決銀行與用戶之間的不協(xié)調性,不僅可以提高銀行處理數(shù)據的能力,而且為用戶節(jié)省了時間。目前合肥市的大部分小區(qū)還沒有這種終端,因此市場前景廣闊。
3、研究方案:
在選擇合適的終端設備及運行系統(tǒng)平臺基礎上,預先模擬出收費企業(yè)、銀行、小區(qū)住戶三方的數(shù)據庫信息(以銀行為交易中心),當住戶在小區(qū)的終端上刷卡消費時,終端將實時發(fā)送信息至銀行,實現(xiàn)銀行數(shù)據庫相應企業(yè)賬戶和該刷卡用戶賬戶信息的更改和刷新。軟件實現(xiàn)功能暫定代繳水費、電費、煤氣費、電話費(固定電話、移動手機用戶、聯(lián)通手機用戶)。軟件開發(fā)將以瀑布模型為主要依托,進行問題陳述、問題定義、需求分析、可行性研究報告,并配以相應E-R圖、DFD圖、SC圖和數(shù)據字典等,然后用統(tǒng)一建模語言UML描述軟件,再結合動態(tài)模型機制構造狀態(tài)圖、順序圖、協(xié)作圖、活動圖等,以文檔為驅動逐步進行系統(tǒng)的整體設 6 計。在硬件上,主要在于如何選擇合適的服務器、客戶機、交換機、打印機及網絡設備來構建完整安全的終端;軟件方面,集中體現(xiàn)在操作系統(tǒng)、數(shù)據庫系統(tǒng)、開發(fā)語言的選擇。需要解決的關鍵問題還有終端液晶屏幕是采用什么觸發(fā)方式(電容觸發(fā)等方式),服務器平臺用LINUX還是用Windows 2000 Server及更高版本等。
4、研究成果:
利用目前流行的的面向對象程序設計語言Visual Basic 6.0和SQL的底層數(shù)據庫設計的軟件支持,硬件采用觸摸式液晶屏幕實現(xiàn)用戶與終端交互,通過網絡實現(xiàn)終端和銀行的交互。當住戶在小區(qū)的終端上刷卡消費時,終端將實時發(fā)送信息至銀行,實現(xiàn)銀行數(shù)據庫相應企業(yè)賬戶和該刷卡用戶賬戶信息的更改和刷新。軟件實現(xiàn)功能暫定代繳水費、電費、煤氣費、電話費。
題目三:“大型超市品類管理子系統(tǒng)的研究與開發(fā)” 1.系統(tǒng)簡介
隨著社會經濟的飛速發(fā)展,我國的大型超市及連鎖企業(yè)步入多元化,跨地區(qū),高效率為特點的新階段。隨之而來的是對超市物品管理,人員管理,庫存量統(tǒng)計及物品進出超市記錄管理的需要。而由于統(tǒng)計量大,管理過程中會出現(xiàn)很多問題,市場就需要一個全面的,詳細的品類管理子系統(tǒng)對超市進行管理工作。研究的內容包括:商品陳列、庫存量、各類商品的銷售數(shù)量、單價、利潤及供求關系。首先,品類管理系統(tǒng)主要分為三個子系統(tǒng):采購系統(tǒng),銷售系統(tǒng)和管理系統(tǒng)。采購系統(tǒng)的主要工作過程是:在數(shù)據庫中統(tǒng)計庫存量小于一定數(shù)目的物品,將需要采購的物品上報給采購人員。在新的物品進庫后,對物品數(shù)量進行重新統(tǒng)計。銷售系統(tǒng)的主要工作過程是:每一次采購將物品單備份并儲存,以便在月末結帳時進行核對。管理系統(tǒng)的主要工作過程是:每隔固定時間或者是在系統(tǒng)需要時統(tǒng)計出物品進出量以及超市盈利。以上功能要求在計算機上實現(xiàn)。2.技術要求和限制條件
(1)在當超市物品庫中的各種物品數(shù)量發(fā)生變化(包括進貨和出貨)時,都應修改相關的物品記錄,如庫存表或進/出庫表。(2)正當出貨或進貨時不得對物品數(shù)量進行統(tǒng)計,只有在出,進貨完成后才可以統(tǒng)計
(3)系統(tǒng)的外部項要包括超市服務人員,出貨人員和進貨人員
題目四:“基于感應式門禁的中小學家校通系統(tǒng)的設計與實現(xiàn)” 1.系統(tǒng)簡介
目前,學生的在校管理工作越來越受到學校和家長的重視。管理的好壞將直接影響到學生的安全,以及學生的學習狀況與水平。而傳統(tǒng)的管理工具及方法有著很大的局限性,例如,學生離開家時,家長不能很好的了解到他們在學校的情況,而離開學校時,校方又不能了解到學生在校外的表現(xiàn)與行為。近幾年來,孩子經常讓家長擔心的事情莫過于放學不回家,甚至逃課去網吧和游戲廳。時間一長,他們就可能會生成網癮、游戲癮。
本套系統(tǒng)的開發(fā),就是在于加強校方和家長之間的交流與聯(lián)系,讓家長在校外就能了解到孩子在學校的表現(xiàn),這樣,更有助于家長對孩子的管理、孩子成績的提高。
當學生離開家來上學時,一旦他們從學校大門經過,門禁系統(tǒng)的感應器將感應到該同學的到來,并記錄下來。然后將記錄傳到校方服務器,由校方服務器與移動電話公司服務系統(tǒng)建立聯(lián)系。這時,移動電話公司便會以短信的形式把“孩子已經到校”的信息告訴給家長。相反的,如果家長在孩子離開家來學校的很長時間后沒有受到信息,那么家長就可以知道他的孩子沒有來學校。這樣 就實現(xiàn)了 學校與家長時時的管理孩子。2.研究方案:
系統(tǒng)的建設描述:第一,采集學生的信息。這主要包括學生的班級、姓名、年級、家長姓名、家長手機。特別的就是家長的手機,這是系統(tǒng)的關鍵信息所在。第二,建立校園內部網絡;首先,在每個學生的學生證件上安裝磁條,并保證磁條與學生的學號一一對應,每個磁條中存儲著持卡學生的信息。在學校大門安裝磁條感應器,并與校園主機相連接。這樣可以把磁條所感應到的信息第一時間反饋給主機。第三,班主任將根據學生在學校的表現(xiàn)分成不同的等級,然后將它輸入主機。第四,學生每次的模擬成績或作業(yè)完成情況也將輸入主機。第五,校方和移動電話公司或網絡公司建立聯(lián)系,校方把所要向學生家長公布的信息通過移動電話公司的短信息業(yè)務或網絡公司的電子郵件業(yè)務發(fā)送給家長。
題目五:基于手機短信業(yè)務的銀行信用卡消費告知系統(tǒng)
1、系統(tǒng)簡介
據調查,目前越來越多的人們放棄使用固定電話,更愿意使用方便、快捷的移動通訊工具。為方便人們及時掌握消費情況,通訊商需要開發(fā)一個信用卡消費告知系統(tǒng)。通訊商把用戶的基本資料(手機號碼、信用卡帳號、開戶銀行等)輸入系統(tǒng)中,并且事先與銀行、消費場所的數(shù)據庫建立連接。用戶申請開通此項業(yè)務后,系 8 統(tǒng)隨時與用戶建立聯(lián)系,消費場所通過終端機把顧客的消費信息映射到銀行的數(shù)據庫中,銀行通過與通訊商之間的共享關系,由通訊商以短信息形式將消費信息發(fā)給用戶。此外系統(tǒng)應定時檢查更新數(shù)據庫用戶的基本資料及其他相關信息。
2、技術要求及限制條件
(1)在使用本系統(tǒng)時應考慮用戶信息的合法性(如銀行帳號、身份證號碼)等。
(2)對于本系統(tǒng)還應補充如下功能:
用戶要對應多個銀行帳號; 用戶取消此業(yè)務的處理; 用戶更改手機號碼的處理;
一個銀行帳號對應多個手機號碼的處理;
(3)外部輸入項至少包括:手機運營商、銀行、消費場所。
第五篇:軟件工程課程設計教學大綱
專業(yè)實踐教學大綱
《軟件工程課程設計》教學大綱
英文名稱
課程代碼:
學分:1 分
執(zhí)筆人:金霜 審定人:
一、前言
《軟件工程課程設計》是一個綜合的設計性實驗,是在學習完核心課程《軟件工程》后,對《軟件工程》所學內容的一次綜合運用;旨在使學生進一步掌握軟件工程的方法和技術,樹立團隊合作精神,培養(yǎng)學生的自主學習能力和創(chuàng)造性的工程設計能力,提高綜合分析和解決問題的能力。
二、教學大綱
1、目的要求
《軟件工程》是一門理論性和實踐性非常強的課程,學生僅僅通過課堂獲取知識是遠遠不夠的,必須加強實踐教學,利用具有實際工程背景的軟件設計題目,和軟件工程設計工具(rose、viso),培養(yǎng)學生對軟件系統(tǒng)的需求分析、系統(tǒng)分析、軟件測試能力。初步掌握系統(tǒng)分析、系統(tǒng)設計、系統(tǒng)測試的方法,讓學生掌握軟件工程設計工具(rose、viso)使用方法。
2、主要內容
(1)項目可行研究
☆ 成立項目小組,六人一組,其中4名開發(fā)人員,2名測試人員,并選定項目組長一名。
☆ 項目組長召集小組成員選擇設計項目
項目可由老師指定,也可以學生自選后報老師審核。
☆ 項目組長召集成員進行項目可行性研究,確定項目的大小、范圍和復雜程度等。☆ 確定任務進度、分工和完成項目設計的工具。
☆ 按照《軟件工程課程設計報告》的格式要求,完成報告中的《項目可行性研究》部分。(2)需求分析
☆ 根據項目的大小、范圍和復雜程度等情況,由全體組員共同完成項目的需求分析,包括項目功能、項目運行環(huán)境、項目開發(fā)環(huán)境、項目角色等。
☆ 使用軟件工程設計工具繪制項目總功能圖、總用例圖,并進行文字闡述。☆ 按照《軟件工程課程設計報告》的格式要求,完成報告中的《需求分析》部分。(3)系統(tǒng)概要設計
☆ 項目組長根據需求分析,進行任務分工,由開發(fā)人員進行系統(tǒng)概要設計
☆ 開發(fā)人員根據自己所分的模塊任務,對模塊的功能和參與者進行詳細闡述,使用軟件工程設計工具,繪制模塊用例圖
☆ 按照《軟件工程課程設計報告》的格式要求,完成報告中的《系統(tǒng)概要設計》部分。
(4)系統(tǒng)詳細設計
☆ 開發(fā)人員根據自己所分的模塊的概要設計,進行詳細設計
☆ 開發(fā)人員對自己所分模塊的實現(xiàn)流程進行闡述,并使用軟件工程設計工具,繪制類圖、活動圖(或者是狀態(tài)圖,二選一)。
☆ 組長繪制項目的ER圖。
☆ 按照《軟件工程課程設計報告》的格式要求,完成報告中的《系統(tǒng)詳細設計》部分。
(5)系統(tǒng)測試計劃
☆ 根據系統(tǒng)需求分析,由測試人員共同完成測試計劃編寫。
☆ 按照《軟件工程課程設計報告》的格式要求,完成報告中的《測試計劃》部分。(6)系統(tǒng)功能測試用例設計
☆ 組長根據測試需求分析,對測試人員進行任務分工。☆ 測試人員根據任務分工,繪制自己所分模塊的實現(xiàn)順序圖。☆ 測試人員根據自己所繪制的順序圖,進行系統(tǒng)功能測試用例設計
☆ 按照《軟件工程課程設計報告》的格式要求,完成報告中的《系統(tǒng)功能測試用例設計》部分。
(7)答辯(根據進度可選)
☆ 將各部分文檔進行整合,完成《軟件工程課程設計報告》
☆ 制作PPT,答辯時間5分鐘,提問3~5分鐘。(8)課時安排參考 ☆ 項目可行研究、需求分析4學時
☆ 系統(tǒng)概要設計、系統(tǒng)詳細設計(系統(tǒng)測試需求分析、系統(tǒng)功能測試用例設計)8學時 ☆ 答辯4學時
三、成績考核與評定
成績考核由以下幾部分組成:
(1)平時考勤占10%。
(2)設計表現(xiàn)占20%。組員的設計表現(xiàn)成績由組長提供;組長的設計表現(xiàn)成績由老師根據小組整體完成情況給于。
(3)答辯表現(xiàn)占20%,若沒有答辯環(huán)節(jié),以考勤分代替。(4)文檔完成情況占50%。
成績評定實行優(yōu)、良、中、及格、不及格五個等級。
四、重點說明執(zhí)行本大綱應注意的問題
1、嚴格審核學生所選項目,提倡項目的新穎性和實用性。
2、嚴格審核學生的需求分析和任務分工,確保每個學生有足夠的工作量。
3、嚴格考勤,遲到15分鐘之內算遲到,遲到2次算曠課1次;遲到15分鐘以上算曠課。曠課2次,成績即為不及格
4、允許學生上網查資料,但嚴格控制學生不得上網進行玩游戲、看電影等與課程設計無關的活動。
5、答辯主要圍繞項目設計的合理性和可實現(xiàn)性提3-5個問題,根據學生回答情況,確定答辯分數(shù)。
6、審核文檔,允許學生有所借鑒,但不得完全抄襲,一旦發(fā)現(xiàn),以0分計。
附:教學參考書目(添加教材信息)
1、《軟件工程》(第4版)人民郵電出版社
張海藩
2、《軟件工程概論》 清華大學出版社
鄭人杰、殷人昆
3、《軟件工程課程設計大綱》由老師提供
4、《軟件工程課程設計報告》由老師提供
5、《UML系統(tǒng)建模與分析設計課程設計》 機械工業(yè)出版社 刁成嘉、刁奕
6、《Rose工具使用方法參考》由老師提供