第一篇:大連理工大學軟件工程總結(jié)復習
基于XX技術(shù)的XX行業(yè)的XX系統(tǒng) 緒論(不要copy,用自己的語言整理)
A系統(tǒng)開發(fā)背景(XX行業(yè)介紹)B國內(nèi)的研究現(xiàn)狀(XX系統(tǒng)介紹)
C系統(tǒng)的開發(fā)意義(在XX行業(yè)中開發(fā)XX系統(tǒng)的作用)D本文的主要工作及組織結(jié)構(gòu)
(主要做了什么)
(第二章。。;第三章。。;第四章。。;第五章。。)系統(tǒng)需求分析
A需求描述(用文字陳述需求,以用戶口吻)B用例模型(主要為用例圖)
見《1 用例分析練習.ppt》
C數(shù)據(jù)模型(主要為ER圖)
請為某倉庫的管理設計一個ER模型。
該倉庫主要管理零件的訂購和供應等事項。倉庫向工程項目提供零件,并且根據(jù)需要向供應商訂購零件。
D動態(tài)模型(主要為狀態(tài)圖、時序圖)
1、復印機的工作過程大致如下:未接到復印命令時處于閑置狀態(tài),一旦接到復印命令則進入復印狀態(tài),完成一個復印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個復印命令;如果執(zhí)行復印命令時發(fā)現(xiàn)沒紙,則進入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后進入閑置狀態(tài),準備接收復印命令;如果復印時發(fā)生卡紙故障,則進入卡紙狀態(tài),發(fā)出警告,等待維修人員來排除故障,故障排除后回到閑置狀態(tài)。試用狀態(tài)轉(zhuǎn)換圖描繪復印機的行為。
2、打印操作的工作流程如下:通過計算機輸入打印命令,計算機將需要打印的文件傳送到打印機服務器。打印機服務器根據(jù)打印機的狀態(tài)選擇如下操作:如果打印機空閑,則將文件傳送給打印機將其打印;如果打印機忙碌,則將文件放入打印隊列,待打印機空閑時再做打印。
試用時序圖描繪上述各個對象的合作行為。
E功能模型(主要為數(shù)據(jù)流圖)見《2 數(shù)據(jù)流圖練習.ppt》 F對象模型(主要為類圖)見《3 面向?qū)ο蠼>毩?ppt》 系統(tǒng)設計
A架構(gòu)設計(三層架構(gòu)、MVC等)B數(shù)據(jù)庫設計(數(shù)據(jù)庫表結(jié)構(gòu))C類設計(核心類)
D 流程設計(核心算法)見《4 詳細設計練習.ppt》 系統(tǒng)實現(xiàn)(截圖+使用說明)系統(tǒng)測試
A 測試策略(測試流程)B 測試方法(黑盒、白盒測試)
C測試用例及結(jié)果(測試數(shù)據(jù)及結(jié)果)見《5 軟件測試練習.ppt》
第二篇:軟件工程復習總結(jié)
第1章
1什么是軟件危機,產(chǎn)生軟件危機的原因,消除軟件危機的途徑。
落后的軟件生產(chǎn)方式無法滿足迅速增長的計算機軟件需求,從而導致軟件開發(fā)與維護過程中出現(xiàn)一系列嚴重問題的現(xiàn)象。
軟件維護費用的急劇上升,直接威脅計算機應用的擴大;軟件生產(chǎn)技術(shù)進步緩慢,是加劇軟件危機的重要原因。
既要有技術(shù)措施,又要有必要的組織管理措施。2什么是軟件,軟件的精確定義。
軟件是程序以及開發(fā)、使用和維護程序所需的所有文檔.。3軟件工程的精確定義,軟件工程的7個特征,7基本原理。
軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科。1,軟件工程關(guān)注于大型程序的構(gòu)造; 2,軟件工程的中心課題是控制復雜性; 3,軟件經(jīng)?;?;
4,開發(fā)軟件的效率非常重要; 5,和諧地合作是開發(fā)軟件的關(guān)鍵; 6,軟件必須有效地支持它的用戶;
7,在軟件工程領域中是由一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品?;驹恚?/p>
1,用分階段的生命周期計劃嚴格管理; 2,堅持進行階段評審; 3,實行嚴格的產(chǎn)品控制; 4,采用現(xiàn)代程序設計的技術(shù); 5,結(jié)果應能清楚地審查;
6,開發(fā)小組的人員應該少而精;
7,承認不斷改進軟件工程實踐的必要性。
4軟件工程方法學的精確定義,它的三要素。二種方法學,面向結(jié)構(gòu),面向?qū)ο?/p>
3個要素:方法 工具和過程 兩種方法學:1傳統(tǒng)方法學2面向?qū)ο蠓椒▽W 5什么是軟件生命周期,它有哪幾個階段(8個階段),各個階段分別做什么,這些階段的重要性。
一個軟件從定義到開發(fā)、使用和維護,直到最終被棄用,要經(jīng)歷一個漫長的時期,通常把軟件經(jīng)歷的這個漫長的時期稱為生存周期。階段:1問題定義2可行性研究3需求分析4總體設計5詳細設計6編碼和單元測試7綜合測試8軟件維護
6軟件過程的精確定義,它與軟件工程的關(guān)系,它的各種模型,各種模型的優(yōu)缺點,適用范 圍。
軟件過程為一個為建造高質(zhì)量軟件所需完成的任務的框架,它規(guī)定了完成各項任務的工作步驟。瀑布模型 快速原型模型 增量模型 螺旋模型 噴泉模型 第2章
1什么是可行性研究,它的目的,它的任務,可行性研究是在項目建議書被批準后,對項目在技術(shù)上和經(jīng)濟上是否可行所進行的科學分析和論證。目的:用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。任務:對以后的行動方針提出建議。
2從哪幾個方面進行可行性研究,每個方面研究什么,它的目的,它的任務。
1技術(shù)可行性2經(jīng)濟可行性3操作可行性 3可行性研究的過程,8個階段。
1.復查系統(tǒng)規(guī)模和目標2.研究目前正在使用的系統(tǒng)3.導出新系統(tǒng)的高層邏輯模型4.進一步定義模型5.導出和評價供選擇的解法6.推薦行動方針7.草擬開發(fā)計劃8.書寫文檔提交審查 4系統(tǒng)流程圖,表達什么,它的符號,符號含義 概括地描繪物理系統(tǒng)的傳統(tǒng)工具。
5數(shù)據(jù)流程圖,描繪什么,它的符號,符號含義,畫法,數(shù)據(jù)流程圖的用途(重點)描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。
6數(shù)據(jù)字典的精確定義,作用,內(nèi)容(4類定義組成)定義數(shù)據(jù)的方法,用途,實現(xiàn)。
數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合。對數(shù)據(jù)流圖中包含的所有元素的定義的集合。
內(nèi)容1.數(shù)據(jù)流2數(shù)據(jù)流分量3數(shù)據(jù)存儲4處理 7成本效益分析,使用的方法 第3章
1需求分析,它的任務,它的重要性,它的結(jié)果,要遵守的4條準則。
開發(fā)人員準確地理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應的需求規(guī)格說明的過程。
基本任務: ⑴問題識別:雙方確定對問題的綜合需求,這些需求包括功能需求,性能需求,環(huán)境需求,用戶界面需求。
重要性:需求分析可以使得開發(fā)和測試更能夠了解客戶的需求,把一些技術(shù)難點和可能遇到的難點問題提出來,盡早解決,并且達到一致,便于以后的開發(fā)和測試
需求分析結(jié)果是產(chǎn)生:需求規(guī)格說明書
⑵分析與綜合,導出軟件的邏輯模型
⑶編寫文檔:包括編寫“需求規(guī)格說明書”,“初步用戶使用手冊”,“確認測試計劃”,“修改完善軟件開發(fā)計劃” 任務的7項要求,與用戶溝通的方法
獲取需求的方法,用到的圖形工具:E_R圖,圖描述什么,使用符號 狀態(tài)轉(zhuǎn)換圖,其他圖形,IPO圖等 驗證需求,4個方面 第5章
1總體設計的目的,任務
總體設計的基本目的就是回答“概括地說,系統(tǒng)應該如何實現(xiàn)?”這個問題。任務是設計軟件的結(jié)構(gòu),也就是明確系統(tǒng)中每個程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。必要性:可以站在全局的高度上,花較少成本,從較抽象的層次上分析對比多種可能的系統(tǒng)實現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的軟件結(jié)構(gòu),從而用較低成本開發(fā)出較高質(zhì)量的軟件系統(tǒng)。2設計過程,二個階段9個步驟
兩個階段:1系統(tǒng)設計階段,確定系統(tǒng)的具體實現(xiàn)方案2結(jié)構(gòu)設計階段,確定軟件結(jié)構(gòu)。設計過程的9個步驟:1設想供選擇的方案2選取合理的方案3推薦最佳方案4功能分解5設計軟件結(jié)構(gòu)6設計數(shù)據(jù)庫7制定測試計劃8書寫文檔9審查和復審。3設計原理,模塊化,與模塊化有關(guān)的獨立,度量標準:耦合,內(nèi)驟
設計原理:1模塊化2抽象3逐步求精。模塊獨立程度的兩個定性標準度量:1內(nèi)聚2耦合。
4啟發(fā)式7條規(guī)則,啟發(fā)規(guī)則:1改進軟件結(jié)構(gòu)提高模塊獨立性2模塊規(guī)模應該適中3深度、寬度、扇出、扇入都應適中4模塊的作用域應該在控制域之內(nèi)5力爭降低模塊接口的復雜程度6設計單入口單出口的模塊7模塊功能應該可以預測。5各種圖形工具,HIPO,結(jié)構(gòu)圖,數(shù)據(jù)流圖
描繪軟件結(jié)構(gòu)的圖形工具:1層次圖2 HIPO圖3結(jié)構(gòu)圖;面向數(shù)據(jù)流的設計方法把信息流映射程軟件結(jié)構(gòu),信息流的類型決定了映射的方法信息流有下述兩種類型:1變換流2事務流。第6章
1詳細設計的目的,任務
詳細設計的根本目標 :是確定應該怎樣具體地實現(xiàn)所要求的系統(tǒng),經(jīng)過這個階段的設計工作,應該得出對目標系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設計語言寫的程序。
任務:是要設計出程序的“藍圖”,以后程序員將根據(jù)這個藍圖寫出實際的程序代碼。必要性:衡量程序的質(zhì)量不僅看它的邏輯是否正確,性能是否滿足要求,更重要的是要看它能夠簡單易懂,詳細設計的目的不僅僅是邏輯上正確地實現(xiàn)每個模塊的功能,更重要的是設計出的處理過程應該盡可能簡明易懂。
2結(jié)構(gòu)化:定義,指導思想,哪幾種結(jié)構(gòu),使用的工具,建立什么模型使用什么工具
結(jié)構(gòu)化的定義:結(jié)構(gòu)化程序設計是盡可能少用GOTO語句的程序設計方法,最好僅在檢測出錯誤時才使用GOTO語句,而且應該總是使用前向goto語句。結(jié)構(gòu)有三種:順序,選擇,和循環(huán)。
指導思想:采用自頂向下,逐步求精的程序設計方法,使用三種基本控制結(jié)構(gòu)構(gòu)造程序,任何程序都可由順序,選擇,重復三種基本控制結(jié)構(gòu)構(gòu)造。結(jié)構(gòu):順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu) 工具:圖形,表格,和語言
3人機界面設計,要解決的問題,設計過程,設計指南
人機界面設計是接口設計的一個重要組成部分,遇到的四個問題:系統(tǒng)響應時間,用戶幫助設施,出錯信息處理和命令交互。
設計過程,用戶界面設計是一個迭代的過程,通常先創(chuàng)建設計模型,再用原型實現(xiàn)這個設計模型,并由用戶試用和評價,然后根據(jù)用戶意見進行修改。設計指南:一般交互指南,信息顯示指南和數(shù)據(jù)輸入指南
4過程設計的各種工具,程序流程圖,盒圖,PAD圖,判定表,判定樹,過程設計語言
過程設計的工具有三類:圖形,表格,語言。具體有如下幾種
程序流程圖,盒圖,pad圖,判定表,判定樹,過程設計語言(PDL)
5面向數(shù)據(jù)結(jié)構(gòu)的設計方法,jackson方法,使用的圖形工具
設計方法:根據(jù)數(shù)據(jù)結(jié)構(gòu)設計程序處理過程的方法。
數(shù)據(jù)的3種使用方法:順序,選擇,重復。Jackson方法
Jackson結(jié)構(gòu)程序設計方法基本上由下述5個步驟組成,(1)分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用jackson圖描述這些數(shù)據(jù)結(jié)構(gòu)(2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應關(guān)系的數(shù)據(jù)單元。
(3)用下述3條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的jackson圖導出描繪程序結(jié)構(gòu)的jackson圖。
1、為每對有對應關(guān)系的數(shù)據(jù)單元,按照它們在數(shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應層次畫一個處理框。
2根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應層次分別為它們畫上對應的處理框。總之,描繪程序結(jié)構(gòu)的jackson圖應該綜合輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)的層次關(guān)系而導出來。在導出程序結(jié)構(gòu)圖的過程中,由于改進的jackson圖規(guī)定在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復出現(xiàn)或選擇出現(xiàn)的元素,因此可能需要增加中間層次的處理框圖。(4)、列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當位置。(5)用偽碼表示程序。使用的圖形工具:jackson圖
6復雜度的度量,McCabe方法,流圖,(2014年重點)
復雜度度量:把程序的復雜程度乘以適當?shù)某?shù)即可估算出軟件中的錯誤的數(shù)量以及軟件開發(fā)需要的工作量
Mccabe方法:根據(jù)程序控制流的復雜程度定量度量程序的復雜程度 第7章
1實現(xiàn)的重點是測試
2軟件測試的基礎:目標,準則,方法,測試5步驟
軟件測試的基礎:在測試階段測試的人員努力設計出一系列的方案,目的卻是為了“破壞”已經(jīng)建造好的軟件系統(tǒng)—竭力證明程序中有錯誤,不能按照預定要求正確工作。發(fā)現(xiàn)問題是為了解決問題,測試階段的根本目標是盡可能多地發(fā)現(xiàn)并排除軟件中潛在的錯誤,最終把一個高質(zhì)量的軟件系統(tǒng)交給用戶使用。軟測的目標:①測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。②好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案。③成功的測試是發(fā)現(xiàn)至今為止尚未發(fā)現(xiàn)的錯誤的測試。
軟測的準則:①所有的測試都應該能追溯到用戶的需求。②應該遠在測試開始之前就制定出測試計劃。③把Pareto原理應用到軟測中。④應該從“小規(guī)?!睖y試開始,并逐步進行“大規(guī)?!睖y試。⑤窮舉測試是不可能的。⑥為了達到最佳的測試效果,應該由獨立的第三方從事測試工作。
測試方法:白盒測試(結(jié)構(gòu)測試)、黑盒測試(功能測試)。
測試步驟:①模塊測試②子系統(tǒng)測試③系統(tǒng)測試④驗收測試⑤平行測試。3單元測試,測試的重點,測試方案
單元測試:在軟件開發(fā)過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試;集中檢測軟件設計的最小單元---模塊。
單元測試方法有:人工測試和計算機測試;單元測試主要使用白盒測試技術(shù),而且對多個模塊的測試可以并行的進行。
單元測試的重點:①模塊接口②局部數(shù)據(jù)結(jié)構(gòu)③重要的執(zhí)行通路④出錯處理通路⑤邊界條件
4集成測試:集成的策略,自頂向下,自底向上
集成測試:測試和組裝軟件的系統(tǒng)化技術(shù)。
集成測試的策略:自頂向下和自底向上。
自頂向下集成方法是一個日益為人們廣泛采用的測試和組成軟件的途徑。從主控制模塊開始,沿著程序的控制層次向下移動,逐漸把各個模塊結(jié)合起來。自底向上集成:從“原子”模塊開始組成和測試。
5確認測試,范圍,Alpha測試Beta測試
確認測試:又稱驗收測試,它目標是驗證軟件的有效性。
Alpha測試由用戶在開發(fā)者的場所進行,并且在開發(fā)者對用戶的“指導”下進行測試,其是在受控的環(huán)境中進行的。
Beta測試由軟件的最終用戶們在一個或多個客戶場所進行。與Alpha測試不同,開發(fā)者通常不在Beta測試的現(xiàn)場,因此Beta測試是軟件開發(fā)者不能控制的環(huán)境中的“真實”應用。6白盒測試,黑盒測試(重點)
白盒測試:通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設計規(guī)格說明書的規(guī)定正常進行。黑盒測試:通過測試來檢測每個功能是否都能正常使用。
7軟件的可靠性,計算公式
軟件的可靠性:程序在給定的時間間隔內(nèi),按照規(guī)格說明書的規(guī)定成功的運行的概率。設計白盒測試方案的技術(shù)主要有邏輯技術(shù)和控制結(jié)構(gòu)測試;設計黑盒測試方案的技術(shù)主要有等價劃分、分界值分析和錯誤推測。
第8章
1軟件維護的定義,4項活動,4類維護
軟件維護的定義:在軟件已經(jīng)交付使用后,為了改正錯誤或滿足新的需要而修改軟件的過程。
四項維護:第一項維護活動:在任何大型程序的使用期間,用戶必然會發(fā)現(xiàn)程序錯誤,并且把他們遇到的問題報告給維護人員,讓維護人員診斷和改正的過程。第二項維護活動:為了和變化了的環(huán)境適當?shù)嘏浜隙M行的修改軟件的活動,是既必要又經(jīng)常的維護活動。第三項維護活動:在使用軟件的過程中用戶往往提出增加新功能或修改已有功能的建議,還可能提出一般性的改進意見。第四項維護活動:為了改進未來的可維護性或可靠性,或為了給未來的改進奠定更好的基礎而修改軟件。
四類維護:改正性維護、適應性維護、完善性維護、預防性維護 2軟件維護的特點,問題,軟件維護的特點:結(jié)構(gòu)化維護與非結(jié)構(gòu)化維護差別巨大、維護的代價高昂、維護的問題很多
軟件維護的問題:
1)理解別人寫的程序通常非常困難,而且困難程度隨著軟件配置成分的減少而迅速增加。2)需要維護的軟件往往沒有合格的文檔,或者文檔資料顯著不足。
3)當要求對軟件進行維護時,不能指望有開發(fā)人員給人們仔細說明軟件。由于維護階段持續(xù)的時間很長,因此,當需要解釋軟件時,往往原來寫程序的人已經(jīng)不在附近了。4)絕大多數(shù)軟件在設計時沒有考慮將來的修改。5)軟件維護不是吸引人的工作。3軟件維護的過程
軟件維護的過程:維護組織、維護報告、維護的事件流、保存維護記錄、評價維護活動 4軟件的可維護性
軟件可維護性定義:維護人員理解、改正、改動或改進這個軟件的難易程度。決定軟件可維護性的因素:可理解性、可測試性、可修改性、可移植性、可重用性 5預防性維護與軟件再工程。
預防性維護由Miller提出來把今天的方法學應用到昨天的系統(tǒng)上以支持明天的明天的需求
6軟件再工程
6類活動:1.庫存目錄分析2.文檔重構(gòu)3.逆向工程4.代碼重構(gòu)5.數(shù)據(jù)重構(gòu)6.正向工程 第9章
1面向?qū)ο蠓椒▽W的定義,要點,優(yōu)點
定義:面向?qū)ο蠓椒ㄊ且环N把面向?qū)ο蟮乃枷霊糜谲浖_發(fā)過程中,指導開發(fā)活動的系統(tǒng)方法,簡稱OO(Object-Oriented)方法,是建立在“對象”概念基礎上的方法學。
要點:1認為客觀世界是由各種對象構(gòu)成的,任何事物都是對象,復雜的對象可以由簡單的對象以某種方式組合而成。2,把所有的對象都劃分成各種對象類,每個對象類都定義了一組數(shù)據(jù)和一組方法。3,按照子類與父類的關(guān)系,把若干個對象組成一個層次結(jié)構(gòu)的的系統(tǒng)。4,對象之間僅能通過傳遞消息互相聯(lián)系。
優(yōu)點:1.與人類習慣的思維方法一致2.穩(wěn)定性好3.可重用性好4.較易開發(fā)大型軟件產(chǎn)品5.可維護性好
2對象的定義,要點,優(yōu)點
定義:1.對象是具有相同狀態(tài)的一組操作的集合2.對象是對屬性值和操作的封裝。3.對象::=
3面向?qū)ο蟮母拍?,定義,特點
面向?qū)ο笫且环N對現(xiàn)實世界理解和抽象的方法,是計算機編程技術(shù)[1]發(fā)展到一定階段后的產(chǎn)物。
特點:1對象唯一性2分類性3繼承性4多態(tài)性 優(yōu)點:1易維護2質(zhì)量高3效率高4易擴展 4類的定義,實例、消息、方法、屬性,繼承等概念
類的定義:類就是具有相同數(shù)據(jù)和相同操作的一組相似對象的定義。實例:實例就是由某個特定類所描述的一個具體的對象。
消息:小時就是要求某個對象執(zhí)行在定義它的那個類中所定義的某個操作的規(guī)格說明。方法:方法就是對象所能執(zhí)行的操作,也就是類中所定義的服務。
屬性:屬性就是類中所定義的數(shù)據(jù),它是對客觀世界實體說具有的性質(zhì)的抽象。封裝:在面向?qū)ο蟮某绦蛑?,把?shù)據(jù)和實現(xiàn)操作的代碼集中放在對象內(nèi)部。
繼承:在面向?qū)ο蟮能浖夹g(shù)中,繼承是子類自動地共享基類中的數(shù)據(jù)和方法的機制。多態(tài):多態(tài)性是指子類對象可以像父類對象那樣使用,同樣地消息既可以發(fā)給父類對象也可以發(fā)給子類對象。重載:函數(shù)重載是指在同一作用域類的若干個參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字,運送符號重載是指同一個運算符可以施加在不同類型操作數(shù)上面。5面向?qū)ο蠼#瑢ο竽P停ㄖ攸c),功能模型(重點)動態(tài)模型,模型怎么畫,各種符號 6面向?qū)ο蠓椒▽W使用的語言
面向?qū)ο笳Z言是一類以對象作為基本程序結(jié)構(gòu)單位的程序設計語言,指用于描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。語言中提供了類、繼承等成分。第10章
3個子模型和5個層次 怎樣確定類與對象
類是對象的抽象,對象是類的具體實例。確定關(guān)聯(lián),各種關(guān)聯(lián)怎樣確定
建立動態(tài)模型,編寫腳本,畫事件跟蹤圖
第三篇:軟件工程復習知識點總結(jié)
1.軟件危機的概念,內(nèi)容,原因及消除的途徑; 2.軟件工程的定義,基本原理;
3.軟件工程方法學的基本概念、內(nèi)容;
4.軟件生命周期的具體內(nèi)容,每一個階段的任務是什么?結(jié)合具體的工程例子來理解做軟件項目主要分那幾個階段。
5.理解幾個典型軟件過程的內(nèi)容及其優(yōu)點與缺點:瀑布模型、增量模型、快速原型模型、螺旋模型、噴泉模型等; 6.了解可行性研究中的任務和過程;
7.掌握系統(tǒng)流程圖的概念和方法,會從具體的案例中抽象出系統(tǒng)流程圖; 8.掌握數(shù)據(jù)流圖的概念和方法,會從具體的案例中畫出0層數(shù)據(jù)流圖和功能級數(shù)據(jù)流圖;
9.掌握數(shù)據(jù)字典的內(nèi)容、方法、用戶和實現(xiàn); 10.了解成本/效益分析方法;
11.了解需求分析過程中任務是什么.12.理解面向數(shù)據(jù)流自頂向下逐步求精的方法和意義;
13.理解分析及建模的意義,需求分析中應該建立哪三種模型?有哪些工具來幫助建立這些模型?
14.掌握實體關(guān)系(E-R)圖的概念,內(nèi)容和實現(xiàn)方法,能結(jié)合具體實例建立實體關(guān)系圖;
15.掌握狀態(tài)圖的概念,內(nèi)容,實現(xiàn)方法和作用;
16.掌握層次方框圖、warnier圖、IPO圖的概念,內(nèi)容和作用; 17.有窮狀態(tài)機的概念和內(nèi)容;
18.總體設計是做什么?總體設計的過程是怎樣的?總體結(jié)構(gòu)設計的目的是什么?
19.掌握幾個設計原理,理解他們的內(nèi)容和意義;
20.掌握耦合和內(nèi)聚的概念和內(nèi)容,理解這些原理對設計有哪些指導意義; 21.耦合包含了哪些類型?每個類型的具體內(nèi)容是什么?要求能通過程序代碼識別出耦合類型。
22.啟發(fā)性規(guī)則的內(nèi)容及部分概念。23.層次圖、HIPO圖和結(jié)構(gòu)圖的內(nèi)容;
24.掌握面向數(shù)據(jù)流的設計方法,了解其中涉及到的概念(變換流,事務流),結(jié)合例子理解變換分析的具體過程。25.詳細設計是做什么? 26.什么是結(jié)構(gòu)程序設計?
27.人機界面設計問題包含哪些?
28.掌握設計過程中用到的工具:程序流程圖的概念,內(nèi)容和方法;盒圖的概念、內(nèi)容和方法;會結(jié)合實例使用這些工具;掌握PAD 圖的概念和內(nèi)容;掌握判定表的概念和內(nèi)容。要結(jié)合實例來掌握它們。
29.了解結(jié)合Jackson圖來掌握面向數(shù)據(jù)結(jié)構(gòu)的設計方法;會用Jackson程序設計方法對具體的實例進行設計。
30.掌握幾種測試:單元測試、集成測試、確認測試、白盒測試技術(shù)和黑盒測試技術(shù);掌握它們的概念,內(nèi)容和方法;
31.對每一種測試方法,理解其具體細節(jié):比如理解什么是漸增式測試和非漸增式測試,什么是Alpha測試和Beta測試.....; 32.結(jié)合G.J.Myers的觀點理解軟件測試的目的;(教材p150)33.掌握白盒測試的技術(shù)細節(jié)(比如:掌握邏輯覆蓋中的8個覆蓋點;掌握基本路徑測試,會根據(jù)過程設計結(jié)果畫出相應的流圖;會計算流圖的環(huán)形復雜度;會計算出線性獨立路徑的基本集合);掌握黑盒測試的技術(shù)細節(jié); 34.理解軟件維護的定義、特點和維護過程; 自測練習題:
一、選擇題
1.瀑布模型的存在問題是()
A.用戶容易參與開發(fā)
B.缺乏靈活性
C.用戶與開發(fā)者易溝通
D.適用可變需求
2.可行性分析是在系統(tǒng)開發(fā)的早期所做的一項重要的論證工作,它是決定該系統(tǒng)是否開發(fā)的決策依據(jù),因必須給出()的回答。
A.確定
B.行或不行
C.正確
D.無二義
3. 系統(tǒng)流程圖是用來
()
A 描繪程序結(jié)構(gòu)的 B 描繪系統(tǒng)的邏輯模型
C 表示信息層次結(jié)構(gòu)的圖形工具 D 描繪物理系統(tǒng)的 4.下列屬于維護階段的文檔是()
A.軟件規(guī)格說明
B.用戶操作手冊
C.軟件問題報告
D.軟件測試分析報告 5.軟件按照設計的要求,在規(guī)定時間和條件下達到不出故障,持續(xù)運行的要求的質(zhì)量特性稱為()
A.可用性
B.可靠性
C.正確性
D.完整性
6、快速原型模型的主要特點之一是()A.開發(fā)完畢才見到產(chǎn)品
B.及早提供全部完整的軟件產(chǎn)品 C.開發(fā)完畢后才見到工作軟件 D.及早提供工作軟件
7、軟件需求分析的主要任務是準確地定義出要開發(fā)的軟件系統(tǒng)是()A.如何做
B.怎么做 C.做什么
D.對誰做
8.若有一個計算類型的程序,它的輸入量只有一個X,其范圍是[-1.0,1.0],現(xiàn)從輸入的角度考慮一組測試用例:-1.001,-1.0,1.0,1.001。設計這組測試用例的方法是()
A.條件覆蓋法
B.等價分類法
C.邊界值分析法
D.錯誤推測法
9.研究開發(fā)所需要的成本和資源是屬于可行性研究中的研究的一方面。()A.技術(shù)可行性
B.經(jīng)濟可行性 C.社會可行性
D.法律可行性 10.模塊的內(nèi)聚性最高的是()A.邏輯內(nèi)聚
B.時間內(nèi)聚 C.偶然內(nèi)3 聚
D.功能內(nèi)聚
12.()是把對象的屬性和操作結(jié)合在一起,構(gòu)成一個獨立的對象,其內(nèi)部信息對外界是隱蔽的,外界只能通過有限的接口與對象發(fā)生聯(lián)系。A 多態(tài)性 B 繼承 C 封裝 D 消息
二、填空題
1.將數(shù)據(jù)流圖映射為程序結(jié)構(gòu)時, 所用映射方法涉及信息流的類型。其信息流分為 和 兩種類型。
2.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的_ _____兩部分組成。3.軟件由程序、、組成。
4.在學校中,一個學生可以選修多門課程,一門課程可以由多個學生選修,那么學生和課程之間是
關(guān)系。
5.軟件工程釆用層次化的方法,每個層次都包括、方法、三要素。6.一個模塊擁有的直屬下級模塊的個數(shù)稱為,一個模塊的直接上級模塊的個數(shù)稱為。
三、名詞解釋題 1.內(nèi)聚性 2.軟件危機 3.完善性維護 4.數(shù)據(jù)字典 5.程序流圖 6.驅(qū)動程序 7.數(shù)據(jù)耦合 8.類圖
9.Alpha測試與Beta測試 10.軟件產(chǎn)品
四、簡答題
1.黑盒測試旨在測試軟件是否滿足功能要求,它主要診斷哪幾類錯誤? 2.瀑布模型、增量模型的優(yōu)缺點
3.程序流程圖或者盒圖的5種基本結(jié)構(gòu)的畫法 4.簡述過程設計語言(PDL)的特點。
5.根據(jù)特定的項目,你會考慮哪些因素來選擇合適的程序設計語言。6.(教材P141)畫出下列偽碼程序的程序流程圖和盒圖 START IF p THEN WHILE q DO f END DO ELSE BLOCK 4 g n END BLOCK END IF STOP 7.(教材P141)研究下面的PDL語言(過程設計語言,也稱偽碼程序): LOOP: Set I to(START + FINISH)/2 If TABLE(I)=ITEM goto FOUND If TABLE(I)
五、綜合題(三題分別5,7,8分,共20分)
1.某培訓中心要研制一個計算機管理系統(tǒng)。它的業(yè)務是: 將學員發(fā)來的信件收集分類后,按幾種不同的情況處理。
如果是報名的,則將報名數(shù)據(jù)送給負責報名事務的職員,他們將查閱課程文件,檢查該課程是否額滿,然后在學生文件、課程文件上登記,并開出報告單交財務部門,財務人員開出發(fā)票給學生。
如果是想注銷原來已選修的課程,則由注銷人員在課程文件、學生文件和帳目文件上做相應的修改,并給學生注銷單。
3)如果是付款的,則由財務人員在帳目文件上登記,也給學生一張收費收據(jù)。要求:
(1).對以上問題畫出功能級數(shù)據(jù)流程圖。(2).畫出該培訓管理的軟件結(jié)構(gòu)圖。
2.某旅館的電話服務如下:
可以撥分機號和外線號碼。分機號是從7201至7299。外線號碼先撥9,然后是市話號碼或長話號碼。長話號碼是以區(qū)號和市話號碼組成。區(qū)號是從100到300中任意的數(shù)字串。市話號碼是以局號和分局號組成。局號可以是455,466,888,552中任意一個號碼。分局號是任意長度為4的數(shù)字串。
要求:寫出在數(shù)據(jù)字典中,電話號碼的數(shù)據(jù)條目的定義即組成。
3.軟件測試的過程包括哪些?黑盒測試與白盒測試的具體內(nèi)容是什么?它們分別針對哪幾類錯誤?
一.集成測試中自頂向下集成和自底向上集成的優(yōu)缺點?
1、自頂向下集成 優(yōu)點:較早地驗證了主要控制和判斷點;按深度優(yōu)先可以首先實現(xiàn)和驗證一個完整的軟件功能;功能較早證實,帶來信心;只需一個驅(qū)動,減少驅(qū)動器開發(fā)的費用;支持故障隔離。
缺點:柱的開發(fā)量大;底層驗證被推遲;底層組件測試不充分。適應于產(chǎn)品控制結(jié)構(gòu)比較清晰和穩(wěn)定;高層接口變化較小;底層接口未定義或經(jīng)常可能被修改;產(chǎn)口控制組件具有較大的技術(shù)風險,需要盡早被驗證;希望盡早能看到產(chǎn)品的系統(tǒng)功能行為。
2、自底向上集成
優(yōu)點:對底層組件行為較早驗證;工作最初可以并行集成,比自頂向下效率高;減少了樁的工作量;支持故障隔離。
缺點:驅(qū)動的開發(fā)工作量大;對高層的驗證被推遲,設計上的錯誤不能被及時發(fā)現(xiàn)。
適應于底層接口比較穩(wěn)定;高層接口變化比較頻繁;底層組件較早被完成。
二.簡述螺旋模型的基本開發(fā)過程。正確答案
(1)需求定義。利用需求分析技術(shù)理解應用領域,獲取初步的用戶需求,制定項目開發(fā)計劃。
(2)風險分析。根據(jù)初始需求或改進意見評審可選用的方案,給出消除或減少風險的途徑。
(3)工程實現(xiàn)。利用快速原型構(gòu)造方法針對已知的用戶需求生成快速原型。(4)評審。將原型提交用戶使用并征詢用戶改進意見。
上述過程將不斷迭代,直至給出用戶滿意的目標軟件產(chǎn)品。
三.一般而言,衡量某種程序語言是否適合于特定的項目,應考慮哪些因素?(1)應用領域;(2)算法和計算復雜性;(3)軟件運行環(huán)境;(4)用戶需求中關(guān)于性能方面的需要;(5)數(shù)據(jù)結(jié)構(gòu)的復雜性;(6)軟件開發(fā)人員的知識水平;(7)可用的編譯器與交叉編譯器。
四.名詞解釋:
軟件危機是指落后的軟件生產(chǎn)方式無法滿足迅速增長的計算機軟件需求,從而導致軟件開發(fā)與維護過程中出現(xiàn)一系列嚴重問題的現(xiàn)象
軟件質(zhì)量是軟件符合明確敘述的功能和性能需求、文檔中明確描述的開發(fā)標準、以及所有專業(yè)開發(fā)的軟件都應具有的和隱含特征相一致的程度。
恢復測試是指采取各種人工干預方式強制性地使軟件出錯,使其不能正常工作,6 進而檢驗系統(tǒng)的恢復能力。
類圖(Class diagram)是顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等
數(shù)據(jù)耦合指兩個模塊之間有調(diào)用關(guān)系,傳遞的是簡單的數(shù)據(jù)值,相當于高級語言的值傳遞
第四篇:軟件工程復習點總結(jié)
軟件工程
第一章
1.軟件過程模型有:線性順序模型(瀑布模型),原型實現(xiàn)模型,螺旋模型,快速應用開發(fā)模型RAD,并發(fā)模型,基于構(gòu)件的開發(fā)模型,形式化方法模型,第四代技術(shù)。2.軟件危機變現(xiàn):《1》軟件代價高
《2》開發(fā)進度難以控制
《3》工作量估計困難 《4》質(zhì)量差
《5》修改、維護困難
3.維護類型:改正性維護,適應性維護,完善性維護,預防性維護。
4.軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序在,數(shù)據(jù)及其相關(guān)文檔的集合。
5.軟件工程是一門旨在生產(chǎn)無故障的,及時交付的,在預算之內(nèi)的和滿足用戶需求的軟件學科。
6.軟件生命周期包括了軟件定義,軟件開發(fā)和運行維護3個時期組成。
7.軟件生命周期模型有問題定義,可行性研究,需求分析,總體詳細設計,總體編碼和單元測試,綜合測試軟件維護組。
8.CMM是用于評價一個組織軟件過程成熟度和識別增加這些過程的成熟度所需要的關(guān)鍵實踐的一個模型,是建立軟件組織所使用的進程成熟度的模型以及定義和測量過程成熟度的有效方法,在實際中被軟件開發(fā)組織用于軟件過程改進和評估。9.軟件過程開發(fā)模型: 1)線性模型(瀑布模型):特點:自上而下,相互銜接如同瀑布流水,逐級下落,體現(xiàn)不可逆轉(zhuǎn)性。
優(yōu)點:強調(diào)開發(fā)的階段性、強調(diào)早期計劃和需求調(diào)查以及強調(diào)產(chǎn)品測試。
(1)為項目提供了按階段劃分的檢查點
(2)當前一階段完成后,你自需要去關(guān)注后序階段。(3)開在迭代模型中應用瀑布模型。
缺點:(1)在項目各階段之間極少有反饋。
(2)只用在項目生命周期的后期才能看到結(jié)果。
(3)通過過多的強制完成時期和里程碑來跟蹤各個階段。
適用性:用戶的需求非常清楚全面。2)快速原型模型:(1)可以得到比較良好的需求定義,容易適應需求的變化。
(2)有利于開發(fā)與培訓的同步
(3)開發(fā)費用低,開發(fā)周期短且對用戶更友好
缺點:(1)客戶與開發(fā)者對原型模型理解不同
(2)準確的原型設計比較困難(3)不利于開發(fā)人員開發(fā)
3)增量型優(yōu)點:(1)人員分配靈活
(2)如果核心產(chǎn)品很受歡迎,則可增加人力實現(xiàn)下一個增量(3)可先發(fā)布部分功能給客戶,對客戶起到鎮(zhèn)靜劑的作用
缺點:(1)并行開發(fā)構(gòu)件有可能遇到不能集成的風險,軟件必須具備開放式的體系結(jié)構(gòu)。
(2)容易退化為邊做邊改模型。從而使軟件過程的控制失去整體性。
4)螺旋模型:(1)設計上的靈活性,可以在項目的各個階段進行變更。
(2)以小的分段來構(gòu)建大型系統(tǒng),使成本計算變得簡單容易。
(3)隨著項目推進,客戶始終掌握項目的最新消息,從而他或她能夠和管理層有效交互。
缺點:(1)采用螺旋模型需要具有相當豐富的風險評估經(jīng)驗和專門知識,在風險較大的項目開發(fā)中,如果未能夠及時標識風險,勢必造成重大損失。
(3)過多的迭代次數(shù)會增加開發(fā)成本,延遲提交時間。
10.可行性分析法包括:(1)經(jīng)濟可行性(2)技術(shù)可行性(3)運行可行性(4)法律可行性
(5)開發(fā)方案的選擇 11.需求工程分為:
(1)系統(tǒng)可行性研究:它指的現(xiàn)有的軟件、硬件技術(shù)能否實現(xiàn)用戶對新系統(tǒng)的需求。,從業(yè)務角度來決定系統(tǒng)開發(fā)是否劃算以及在預算范圍內(nèi)能否開發(fā)出來。
(2)需求導出和分析:這是一個通過對現(xiàn)有系統(tǒng)分析與潛在用戶和購買者討論。進行任務分析等導出系統(tǒng)需求的過程,也可能需要一個或多個不同的系統(tǒng)模型和原型
(3)需求描述。需求描述就是把分析活動中收集信息以文檔的形式確定下來。(4)需求有效性驗證。這個活動檢查需求實現(xiàn)、一致和完備。
(5)需求管理。需求管理是一種系統(tǒng)化方法,可用于獲取、組織和記錄系統(tǒng)需求并使客戶和項目團隊在系統(tǒng)變更需求上達成并保持一致。12.軟件需求5個方面:(1)問題識別(2)評估與綜合(3)建模
(4)規(guī)約(5)評審 13.需求獲取方法:(1)建立聯(lián)合分析小組
(2)客戶訪談(3)問題分析與確認(4)快速原型法
14.需求分析原則:(1)必須能夠表達和理解問題的數(shù)據(jù)域和功能域
(2)按按自頂向下,逐層分解。
(3)要給出系統(tǒng)的邏輯視圖和物理視圖。15.軟件設計分為總體設計和詳細設計。16.總體設計任務:
(1)系統(tǒng)分析員審查軟件計劃、軟件需求分析、提供的文檔、提出最佳推薦方案,用系統(tǒng)流程圖,組成物理元素清單,成本效益分析,系統(tǒng)的進度計劃,供專家審定后進入設計。(2)去頂模塊結(jié)構(gòu),劃分功能模塊,將軟件功能需求分配給所劃分的最小單元模塊。確定模塊之間的聯(lián)系,確定數(shù)據(jù)結(jié)構(gòu)、文件結(jié)構(gòu)、數(shù)據(jù)庫模式,確定測試方法與策略。(3)編寫概要設計說明書,用戶手冊、測試計劃、選用相關(guān)的軟件工具來描述軟件結(jié)構(gòu),結(jié)構(gòu)圖是經(jīng)常使用的軟件的軟件描述工具。選擇分解功能與劃分模塊的設計原則,例如模塊劃分獨立性原則,信息隱藏原則等。
17.信息隱蔽是指每個模塊內(nèi)部信息對于其他不需要此信息的模塊來說是不可訪問的,即外部模塊對模塊內(nèi)部的實現(xiàn)過程的不可見性。
18.模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能,以滿足用戶的需求。
19.模塊獨立性概括了把軟件劃分為模塊時要遵守的準則,也是判斷模塊夠著是否合理的標準。
20.衡量模塊獨立的兩個標準是耦合性和內(nèi)聚性。21.耦合性:也稱塊間聯(lián)系,指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系和緊密程度的一種度量。模塊之間聯(lián)系月緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取決于模塊間接口的復雜性,調(diào)用的方式以及傳遞的信息。
22.內(nèi)聚性:又稱為塊間聯(lián)系。指模塊的躬耕強度的度量即一個模塊內(nèi)部各個元素,彼此結(jié)合的緊密程度的度量。若一個模塊內(nèi)各個元素聯(lián)系的越緊密,則它的內(nèi)聚性越高。23.模塊獨立原則也稱為模塊設計的原則:高內(nèi)聚、低耦合。
24.耦合性包括:非直接耦合,數(shù)據(jù)耦合,標記耦合,控制耦合,外部耦合,公共耦合,內(nèi)容耦合
25.內(nèi)聚性包括:巧合內(nèi)聚,邏輯內(nèi)聚,時間性內(nèi)聚,過程內(nèi)聚,通信內(nèi)聚,信息內(nèi)聚,功能內(nèi)聚。
26.數(shù)據(jù)流程圖的定義和作用:數(shù)據(jù)流程圖有兩個特征:抽象性和概括性。抽象性指的是數(shù)據(jù)流程圖把具體的組織機構(gòu)、工作場所、物質(zhì)流都去掉,只剩下信息和數(shù)據(jù)存儲,流動,使用以及加工情況。
概括性則是指數(shù)據(jù)流圖把系統(tǒng)對各種業(yè)務的處理過程聯(lián)系起來考慮,形成一個總體。27.數(shù)據(jù)流程圖的組成:外部實體、數(shù)據(jù)流、處理、數(shù)據(jù)存儲。
28.面向?qū)ο蟮幕靖拍睿簩ο笫怯擅枋鲈搶ο髮傩缘臄?shù)據(jù)以及可以對這些數(shù)據(jù)施加的所有操作封裝在一起構(gòu)成的統(tǒng)一體。
29.對象:它是分裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體。30.類:用于表示某些對象的共同特征(屬性和操作),對象是類的實例。31.實例:就是由某個特定類所描述的一個具體對象。32.消息:消息傳遞時對象與外界相互關(guān)系的唯一途徑。
33.方法:方法就是對象所能執(zhí)行的操作,也就是類中所定義的服務。
34.屬性:屬性就是類中定義的數(shù)據(jù),它是對客觀世界實體所具有的性質(zhì)的抽象。35.封裝:封裝也就是信息隱藏,通過封裝對外界隱藏了對象的實現(xiàn)細節(jié)。36.繼承:是現(xiàn)實世界中遺傳關(guān)系的直接模擬。
37.多態(tài)性:指允許不同類的對象對同一信息做出響應
38.重載:函數(shù)重載是指在同一個作用域內(nèi)的若干個參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字
運算重載是指同一個運算符可以施加不同類型的操作數(shù)上面 39.UML是面向?qū)ο蟮姆椒?/p>
40.靜態(tài)結(jié)構(gòu)圖包括類圖和對象圖 41.UML由九種圖構(gòu)成:
用例圖
類圖
對象圖
活動圖
狀態(tài)圖
序列圖(順序圖)
協(xié)作圖
構(gòu)件圖(組件圖)
部署圖(配置圖)
42.UML視圖大體分為三大類:
結(jié)構(gòu)分類
動態(tài)行為
模型管理
43.類圖有3種屬性
“+”public(公共)
“#”protected(保護)
“-”private(私有)
操作一樣
44.類之間的關(guān)系有用關(guān)聯(lián):泛化
聚合依賴
組合
45.用例圖有3種關(guān)系:communicates(通信)
extends(延伸)
uses(使用)46.程序設計語言3種結(jié)構(gòu):順序
判斷
循環(huán)
47.良好的編碼風格:
縮進良好,沒有過多嵌套
變量名,空間名,類名都取直接有意義的字眼
有一些必要注釋
符合思維習慣使用運算符
模塊化 48.軟件測試定義:為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程 49.測試方法
黑盒測試(功能測試)
白盒測試(結(jié)構(gòu)測試)
50.黑盒測試如果已經(jīng)知道了產(chǎn)品應該具有的功能,可以通過測試來檢驗是否每個功能都正常使用 白盒測試:如果知道產(chǎn)品內(nèi)部工作過程,可以通過測試來檢驗產(chǎn)品內(nèi)部動作是否按照規(guī)格說明的規(guī)定正常進行
51.軟件測試:
單元測試
集成測試
確認測試
系統(tǒng)測試
52.單元測試也稱為模塊測試或結(jié)構(gòu)測試,通??煞旁诰幊绦蚨?,主要采用邏輯覆蓋技術(shù),目的是檢查模塊是否能實現(xiàn)了詳細設計說明書種規(guī)定的功能和算法 53.單元測試主要發(fā)現(xiàn)編程和詳細設計中產(chǎn)生的錯誤 54.測試一個模塊是需要為該模塊編寫一個驅(qū)動模塊和若干樁模塊。頂層測試無需驅(qū)動模塊,底層測試無需樁模塊
55.集成測試也稱為組裝測試,在單元測試的基礎上把所有模塊組裝成一個系統(tǒng)進行測試。主要測試設計階段產(chǎn)生的錯誤
56.非漸增式集成測試(先測試后組裝)和漸增式集成測試(測試一個組裝一個)57.確認測試目標是檢驗軟件的有效性,在需求分析階段制定
58.白盒測試技術(shù):語句覆蓋
判定覆蓋
條件覆蓋
判定條件覆蓋
條件組合覆蓋
路徑覆蓋
59.黑盒測試技術(shù):等價類劃分,邊值分析,錯誤推測和因果圖等 60.按照測試過程是否在實際應用過程中來分,有靜態(tài)分析與動態(tài)測試
測試方法有分析法(靜態(tài)分析和白盒測試)與非分析法(黑盒法)
61.軟件維護分為以下4類:改正性維護;適應性維護;完善性維護;預防性維護
62.決定軟件可維護性的因素: 可理解性
可測試性
可修改性
可移植性
可重用性 63.基本路徑測試:環(huán)路復雜性的3種計算方法: <1>將環(huán)路復雜度定義為流圖種區(qū)域的數(shù)量
<2>設E為流圖的邊數(shù),N為圖中的節(jié)點數(shù),則定義環(huán)路復雜度
V(G)=E-N+2 <3>設p為流圖G中的制定節(jié)點數(shù),則有V(G)=p+1 64.關(guān)鍵路徑測試
第五篇:軟件工程復習重點總結(jié)
第一章
軟件過程:需求設計實現(xiàn)發(fā)布
軟件過程三要素: 過程+方法+工具
瀑布rup scrum Iconix
Scrum是一種迭代式增量軟件開發(fā)過程,通常用于敏捷軟件開發(fā)。Product Owner、Scrum Master、Team Product Backlog、SprintBacklog、Burndown Chart、Sprint、Sprint Planning Meeting、Daily Standup Meeting、Review Meeting、Retrospective Meeting ICONIX軟件開發(fā)過程
愿景、業(yè)務建模、需求分析、健壯性分析、系統(tǒng)設計??
思想是重點;過程是方式;方法和工具是載體
第二章
敏捷開發(fā)是一種以人為核心、迭代、循序漸進的開發(fā)方法。敏
捷是一種思想?Scrum是一個框架
敏捷開發(fā)過程知多少?
?Scrum、?極限編程(XP)、?Crystal Methods(水晶方法族)
?特性驅(qū)動開發(fā)(FDD)
?動態(tài)系統(tǒng)開發(fā)(DSDM)
?輕量型統(tǒng)一過程(RUP)
調(diào)查結(jié)果:敏捷開發(fā)方法—Scrum最流行!
Scrum的適用場景
?7人,+or-2
?偏小一些會更適合?最好能坐在一起
?客戶參不度高
?快速移動互聯(lián)網(wǎng)項目
?自主性研發(fā)的產(chǎn)品
第三章
軟件項目是為了改善某個組織的某些方面
–老大就是要改善的組織中最有權(quán)力的干系人。
用戶建模四步曲列出盡可能多的用戶識別關(guān)鍵用戶(購買決策者/主要使用者)分類,合并次要用戶
4添加虛擬和極端用戶
第四章
?產(chǎn)品backlog是Scrum的核心
產(chǎn)品功能列表格式
?ID(標示符)
–統(tǒng)一標識符
?Name(標題)
–簡短的、描述性的故事名
?Story(故事)
–故事內(nèi)容描述
?Priority(重要性)
–產(chǎn)品負責人評出一個數(shù)值,指示這個故事有多重要
?Initial estimate(初始估計)
–團隊的初步估算,表示不其他故事相比,完成該故事所需的工作量
?How to demo(如何做演示)
–它大略描述了這個故事應該如何在sprint 演示上進行示范
?Notes(注解)
–相關(guān)信息、解釋說明和對其它資料的引用等等
產(chǎn)品功能列表由誰來寫?
?思考:由誰來寫?
–主要是Product Owner
–Team也有權(quán)利,但最終由PO進行取舍。
用戶故事是一種敏捷的需求挖掘方式,其側(cè)重點不是將需求書寫出來,而是將需求討論出來。
按“作為一個??,可以??,以便??”樣式和思路寫成的用戶需求,就是用戶故事。
用戶故事的三個變量
范圍,重要性,估算
好故事的準則
?獨立的(Independ)
?可討論的(Negotiable)
?對用戶戒客戶有價值的(Valuable)
?可估計的(Estimatable)
?小的(Small)
?可測試的(Testable)
Sprint會議如何迚行
–確定Sprint目標及長度
–講解Story、估算時間、任務分解
–決定 sprint 要包含的故事
–一些其他問題
第六章
什么是界面原型
?界面原型指使用工具根據(jù)客戶需求及軟件分析人員的理解,將頭腦中的界面快速的反映到介質(zhì)上。
界面原型的目的?盡早驗證需求
?盡早明確不確定性的因素
?方便溝通交流
?為后續(xù)界面設計提供基礎
第八章
ICONIX過程
?ICONIX過程的規(guī)模介于RUP和XP之間
?適合中小型的、需求相對明確的軟件項目
?ICONIX核心思想
?開源!節(jié)流!
ICONIX軟件過程是用例驅(qū)動的軟件過程。
ICONIX過程中的第一步:明確愿景
?愿景是確保項目成功的第一步;
?愿景必須來自老大;
?愿景必須是可度量。
如何獲取軟件項目的愿景
?獲取軟件項目愿景的三步曲:
?第一步:找到軟件項目的“老大”;
?第二步:得到“老大”對項目的期望(愿景);
?第三步:描述出愿景的度量指標;
要點:系統(tǒng)要改善哪個組織的流程?
老大就是要改善的組織中最有權(quán)力的干系人
第九章
業(yè)務建模的目的:從組織的角度來定位系統(tǒng)的價值。
業(yè)務建模
?業(yè)務建模的目的是把視角從系統(tǒng)轉(zhuǎn)向組織,站在客戶角度看問題。
?業(yè)務用例是對組織為外部業(yè)務執(zhí)行者提供的價值的建模。
?現(xiàn)狀業(yè)務序列圖是對組織價值內(nèi)部實現(xiàn)流程(業(yè)務工人與業(yè)務實體的協(xié)作)的建模 ?改迚業(yè)務序列圖是對新系統(tǒng)為組織提供的改良的建模。
業(yè)務建模的步驟:
1.明確我們?yōu)檎l服務(選定愿景要改進的組織)。
2.要改進的組織是什么現(xiàn)狀(業(yè)務用例圖、現(xiàn)狀業(yè)務序列圖)。
3.我們?nèi)绾胃倪M(改進業(yè)務序列圖)。
第十章
域建模的步驟
第一步:提取名詞或名詞短語
第二步:排除重復、相似
第三步:排除系統(tǒng)范圍外
第四步:畫出第一版域模型圖
第五步:整理第一版域模型
域模型之間的關(guān)系
?泛化[Generalization],一般元素和特殊元素的關(guān)系。
?關(guān)聯(lián)[Association],兩個類乊間存在著某種語義上的聯(lián)系。
系統(tǒng)需求分析的目的是把視角轉(zhuǎn)向新系統(tǒng),站在最織
用戶(及其它干系人)的角度看問題。
?系統(tǒng)用例是對(新)系統(tǒng)為系統(tǒng)執(zhí)行者提供的價值的建模
系統(tǒng)用例建模步驟
1.繪制系統(tǒng)用例圖
2.編寫系統(tǒng)用例描述
3.更新域模型
繪制系統(tǒng)用例圖
1.確定系統(tǒng)邊界
2.識別系統(tǒng)執(zhí)行者
3.識別系統(tǒng)用例
4.確定用例間的關(guān)系
用例描述的作用
?用例圖描述總體,用例文檔描述紳節(jié)。
?每個用例必須對應有用例描述。
用例描述的基本組成?干系人利益
?基本路徑
?擴展路徑
?業(yè)務觃則
軟件產(chǎn)品的典型非功能性需求(RUPS)
?可靠性[Reliability]。
?可用性[Usability]。
?性能[Performance]。
?可支持性[Supportability]。
需求獲取的方法
?研究文檔。
?問卷調(diào)查。
?訪談。
?觀察。
?研究競爭對手。
需求分析結(jié)果復核
?形式:面對面會議。
?參會人:甲乙雙方在需求分析階段的主要參與者。
?被審材料:域模型、用例圖、用例描述、非功能性需求;
?過程:需求分析師主持,最終需求分析成果,所有參與者交流討論,達成統(tǒng)一理解和確認。?結(jié)論:所有參與者簽字確認。(當然,也有可能是未達成共識,需要返工。)
?注意:后續(xù)的工作基本不需要用戶的參不了。
第十一章
健壯性分析的步驟
第一步:創(chuàng)建一個空的健壯性圖。
第三步:從基本路徑的第一句話開始畫健壯性圖。
第二步:直接將用例文本粘貼到圖上(基本路徑和擴展路徑)。
第四步:貫串整個用例基本路徑,一次一個句子,畫執(zhí)行者、適當?shù)倪吔鐚ο蠛蛯嶓w對象以及控制器,和各元素乊間的連線。
第五步:將每一個擴展路徑畫在健壯性圖上,并以紅色標示出。
在用例驅(qū)動的開發(fā)模式中,用例的準確完整性是關(guān)鍵;
?健壯性分析技術(shù)兩個主要的價值:其一幫助完善用例分析結(jié)果;其二完善域模型,做為需求分析走向系統(tǒng)設計的過度技術(shù);
?丌要花費太多的精力和時間在本階段,本階段的成果也僅起到過度作用,不納入最終文檔; 第十二章
關(guān)鍵設計是功能性需求的設計,成果為類圖和序列圖;
?關(guān)鍵設計還沒考慮真實實現(xiàn)的平臺相關(guān)因素,因此不能基于這個階段的設計成果開始編碼; ?關(guān)鍵設計的方法就是在域模型、用例描述和健壯性分析的基礎上,迭代生成類圖和序列圖;
關(guān)鍵設計的步驟
?第一步:將現(xiàn)有的域模型直接作為第一版靜態(tài)類模型;
?第二步:基于用例描述和健壯性分析結(jié)果,畫出每個用例的序列圖;
?健壯性圖中的控制類會轉(zhuǎn)化為方法;
?如果也轉(zhuǎn)化為控制類,那么就添加到類圖中(注意:邊界類丌添加到類圖中); ?第三步:整理靜態(tài)類圖和序列圖;
?第四步:關(guān)鍵設計復核,迭代更新用例圖、類圖和序列圖;
高內(nèi)聚、低耦合。是判斷設計好壞的標準。
關(guān)鍵設計復核的指導建議
?確保關(guān)鍵設計的“如何做”和需求階段的“做什么”匹配。也就是說每個用例都要和序列圖匹配,包含了用例的基本流程和分支流程。
?復核設計的品質(zhì)。應該至少有一個設計與家在場。
?檢查消息的連貫性。檢查時序圖上消息箭頭的指向,有時我們會發(fā)現(xiàn)對象乊間缺少消息而造成跳躍,我們必須消除這些邏輯跳躍。
?確保方法分配給了適當?shù)念?,類視圖中的每一個類擁有適當?shù)姆椒ê蛯傩浴?/p>