




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、v 1.什么是軟件?v 是一系列按照特定順序組織的計算機數據和指令的集合,包括程序、數據和文檔。v 附:軟件的特征:成本高、風險大、維護困難vv 2.什么是軟件危機,其內容主要是指什么?v 原因:1、與軟件本身的特點有關;2、與軟件開發(fā)人員有關; 定義: 在計算機軟件開發(fā)和維護過程中所遇到的一系列嚴重的問題。 1)對軟件開發(fā)成本和進度的估計常常不準確。 2)用戶對“已完成”系統(tǒng)不滿意的現象經常發(fā)生。 3)軟件產品的質量不可靠。 4)軟件的可維護程度非常之低。 5)軟件通常沒有適當的文檔資料。 6)軟件的成本不斷提高。 7)軟件開發(fā)生產率無法滿足人們對軟件的生產要求,軟件開發(fā)生產率的提高落后于硬
2、件的發(fā)展。3.什么是軟件工程?開發(fā)、運行和維護軟件的系統(tǒng)方法 軟件工程主要研究軟件生產的客觀規(guī)律性,建立與系統(tǒng)化軟件生產有關的概念、原則、方法、技術和工具,指導和支持軟件系統(tǒng)的生產活動,以期達到降低軟件生產成本 、改進軟件產品質量、提高軟件生產率水平的目標。4.軟件工程的目標( PP.41 )及其組成部分。方法、工具和過程。 軟件工程的目標是:在給定成本、進度的前提下,開發(fā)出具有適用性、有效性、可修改性、可靠性、可理解性、可維護性、可重用性、可移植性、可追蹤性、可互操作性和滿足用戶需求的軟件產品。方法: 是指產生某些結果的形式化過程, 工具: 是用更好的方式完成某件事情的設備或自動化系統(tǒng),如各
3、種集成開發(fā)環(huán)境、編譯工具、測試工具等。 過程: 生產特定產品的工具和技術的結合 軟件工程方法學包含3個要素:方法、工具和過程。5.軟件開發(fā)方法的定義。 通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學。比如SASD方法、面向對象的軟件開發(fā)方法。6.好的軟件的一些主要衡量指標。例如McCall 的質量模型。 (1)質量,它的衡量:產品的質量、過程的質量、商業(yè)環(huán)境背景下產品的質量。McCall 的質量模型: 需求分析員: 與客戶合作,確定并文檔化客戶需求 設計人員: 生成系統(tǒng)描述:系統(tǒng)要做什么 程序員: 編寫事先指定需求的代碼 測試人員: 發(fā)現錯誤 培訓人員: 向用戶說明如何使用這
4、個系統(tǒng) 維護小組: 修復系統(tǒng)驗收之后出現的錯誤 資料管理員: 準備和存儲軟件需求文檔等 配置管理團隊: 保持各工件之間的通信附:開發(fā)團隊的成員 第二章1.什么是軟件生命周期?主要分為哪些階段?各個階段的主要任務及產生的主要制品?定義:當過程是在開發(fā)軟件產品時,把這種軟件開發(fā)過程稱為軟件生命周期。階段:(1)可行性研究與計劃任務:對于問題是否有行得通的解決方法(技術、經濟、操作、社會)制品:可行性論證報告初步的項目開發(fā)計劃(2)需求分析任務:為了解決這個問題,目標系統(tǒng)必須做什么制品:軟件需求規(guī)格說明書(3)總體(概要)設計 任務:概括地說,應該怎樣實現目標系統(tǒng)制品:概要設計規(guī)格說明書數據庫或數據
5、結構設計說明書集成測試計劃(4)詳細設計任務:應該怎樣具體地實現這個系統(tǒng)制品:詳細設計規(guī)格說明書單元測試計劃(5)實現任務:寫出正確的容易理解、容易維護的程序模塊制品:源程序代碼(6)集成測試任務:根據概要設計規(guī)格說明書,將經過單元測試的模塊逐步進行集成和測試制品:生成滿足概要設計要求、可運行的系統(tǒng)源程序和系統(tǒng)集成測試報告(7)確認測試 任務:根據軟件需求規(guī)格說明書,測試軟件系統(tǒng)是否滿足用戶的需求制品:可供用戶使用的軟件產品(文檔,源程序)(8)使用和維護任務:通過各種必要的維護活動使系統(tǒng)持久地滿足用戶的需要制品:版本更新的軟件產品2.需求分析的定義。 確定用戶對待開發(fā)軟件系統(tǒng)的需求包括: 功
6、能 性能 運行環(huán)境約束3.典型的軟件開發(fā)過程模型的特點(優(yōu)缺點)及要求,特別是原型法、瀑布模型、增量和迭代等(1)瀑布模型:需求分析-系統(tǒng)設計-程序設計-編碼-單元測試和集成測試-系統(tǒng)測試-驗收測試-運行和維護; 優(yōu)點:采用規(guī)范的方法;嚴格規(guī)定每個階段提交的文檔;要求每個階段交出的產品必須經過驗證;缺點:對如何處理開發(fā)中產品和活動的變化沒有提供相關的指導 將軟件開發(fā)視為制造而不是創(chuàng)造 創(chuàng)造一個產品沒有迭代的活動 需要等待很長時間(2)V模型: 用單元測試驗證程序設計 用系統(tǒng)測試驗證系統(tǒng)設計 用驗收測試驗證需求 如果在驗證和確認過程中發(fā)現了問題,那么在再次執(zhí)行右邊的測試步驟之前,重新執(zhí)行左邊的步
7、驟以修正左邊(3)原型化模型: 允許需求或設計反復調查 減少開發(fā)中的風險和不確定性 原型模型存在的問題 為了使原型盡快的工作,沒有考慮軟件的總體質量和長期的可維護性。 為了演示,可能采用不合適的操作系統(tǒng)、編程語言、效率低的算法,這些不理想的選擇成了系統(tǒng)的組成部分。 開發(fā)過程不便于管理。(3)增量開發(fā): 先定義一個小的功能子系統(tǒng),再在每個新的發(fā)布中增加新功能迭代開發(fā): 一開始就提交完整的系統(tǒng),再在每一個新的發(fā)布中改變每個子系統(tǒng)的功能 減少循環(huán)時間 系統(tǒng)一部分一部分地交付 兩個系統(tǒng)功能可以并行4. 原型法的特點以及分類:探索型原型、實驗型原型和演化型原型法定義原型法是指在獲取一組基本的需求定義后,
8、利用高級軟件工具可視化的開發(fā)環(huán)境,快速地建立一個目標系統(tǒng)的最初版本,并把它交給用戶試用、補充和修改,再進行新的版本開發(fā)。反復進行這個過程,直到得出系統(tǒng)的“精確解”,即用戶滿意為止。 演化型原型 不僅幫我們回答問題,而且還要演變?yōu)樽罱K產品 原型必須展現最終產品的質量需求,并且這些質量的要求不能改進 5.極限編程的特點 交流: 保持客戶和開發(fā)者的交換看法 簡單性: 選擇簡單設計和實現 勇氣: 盡早并經常性交付功能(敢于承諾并信守諾言) 反饋:開發(fā)過程中各種活動循環(huán) 第三章v 1. 了解項目計劃和管理的主要內容和常用的方法。v Ppt71到81vv 2.軟件可行性研究的內容。v 技術、經濟、操作、社
9、會四個可行性vv 3. 估算工作量的主要方法:代碼行、任務分解技術、自動估算成本技術。v 1)代碼行技術v 軟件成本 = 每行代碼的平均成本估計的源代碼總行數 估算方法: 由多名有經驗的軟件工程師分別做出估計。 每個人都估計程序的最小規(guī)模(a)、最大規(guī)模(b)和最可能的規(guī)模(m), 分別算出這3種規(guī)模的平均值、和之后,再用下式計算程序規(guī)模的估計值: L=(a的平均值+4*m的平均值+b的平均值)/6單位: LOC或KLOC。 代碼行技術的優(yōu)點: 代碼是所有軟件開發(fā)項目都有的“產品”,而且很容易計算代碼行數; 有大量參考文獻和數據 。代碼行技術的缺點: 源程序僅是軟件配置的一個成分,由源程序度量
10、軟件規(guī)模不太合理; 用不同語言實現同一個軟件所需要的代碼行數并不相同; 不適用于非過程性語言。 2)任務分解技術 軟件開發(fā)項目分解為若干個相對獨立的任務,分別估計每個單獨任務的成本: 單獨任務成本 = 任務所需人力估計值每人每月平均工資; 軟件開發(fā)項目總成本估計 = 各個單獨任務成本估計值之和。 3)自動估計成本技術 采用自動估計成本的軟件工具估計 第四章v 1.了解需求的重要性及需求分析階段的主要產物。v 如果開發(fā)過程的早期沒有檢測到并修復需求錯誤,那么會造成很高的代價,甚至使項目失敗。v 產物:軟件需求規(guī)格說明書vv 2.需求的類型:功能需求、非功能需求或質量需求、設計約束、過程約束。v
11、功能需求: 根據要求的活動描述需求行為v 質量需求或非功能需求: 描述軟件必須擁有的質量特征v 設計約束: 已經做出的設計決策或對問題解決方案集的限制的設計決策v 過程約束: 對用于構建系統(tǒng)的技術和資源的限制vv 3. 兩種需求文檔:需求定義文檔和需求規(guī)格說明書。v 需求定義: 用戶想要得到的每一件事情的完整列表。v 描述打算構建的系統(tǒng)將要安裝的環(huán)境中的實體v 需求規(guī)格說明: 將需求重新陳述為關于要構建的系統(tǒng)將如何運轉的規(guī)格說明vv 4. 需求規(guī)格說明書的主要內容。v 詳細描述輸入和輸出 ,包括v 輸入的源v 輸出的目的地, v 有效范圍 v 輸入輸出的數據格式v 數據協(xié)議v 窗口格式和組織v
12、 計時約束 v 根據接口的輸入輸出重新陳述要求的功能v 對用戶的質量需求,設計適配標準 vvv 5. 常用的需求建模表示方法:ER圖、事件跟蹤、狀態(tài)機、Petri網、數據流圖、用例圖和原型法。v ER圖:v 一種表示概念模型的流行圖形表示法v 三個核心結構v 實體: 表示為矩形,代表具有共同性質和行為的現實世界對象構成的集合v 關系: 表示為兩個實體之間的邊,邊中間有一個菱形,表示關系的類型屬性: 是實體的注釋,描述實體相關的數據或性質 事件跟蹤: 關于現實世界實體之間交換的時間序列的圖形描述 垂直線: 不同實體的時間線,其名字出現在線的頂部 水平線: 兩個實體之間的一個事件或交互 時間按從頂
13、到下跟蹤進展 每一個圖描述一個跟蹤,表示只是若干個可能行為中的一個 事件跟蹤語義相對簡單,易于理解狀態(tài)機: 是一種圖形描述,描述了系統(tǒng)與其環(huán)境之間的所有對話 點(狀態(tài)) 表示存在于事件發(fā)生之間的一個穩(wěn)定的條件集合 邊(轉移) 表示由于一個事件的發(fā)生而產生的行為或條件的變化 在表示動態(tài)行為方面,以及在描述在響應已經發(fā)生的歷史事件時行為將如何變化方面很有用 Petri網: Petri 網是狀態(tài)-轉移表示法的一種形式,用于建模并發(fā)活動以及他們之間的交互。 圓圈:位置 條:變遷 ?。杭^ 點:令牌數據流圖: 數據流圖 (DFD) 建模功能以及從一個功能到另一個功能數據流 一個泡泡表示: 一個 加工 箭
14、頭表示: 數據流 平行線:數據存儲: 正式的庫或信息庫 矩形:表示參與者: 提供輸入數據或接受輸出的實體 用例圖: 構成 大的方框: 系統(tǒng)邊界 方框外的小人: 參與者,人或者系統(tǒng) 方框內的橢圓: 用例,表示必須的主要功能及其變種 參與者和用例之間的線: 參與者參與了該用例 用例不一定建模系統(tǒng)應該提供的所有任務,而是用于說明用戶對重要系統(tǒng)行為的觀察 v 6.v (1)UML的作用:是為軟件系統(tǒng)的制品進行描述(specifying)、可視化(visualizing)、構造(constructing)、文檔化(documenting)的一種語言。vv (2)UML中的41視圖:用例視圖,設計視圖,進
15、程視圖,實現視圖, 分布視圖。vv (3)UML中的三種擴展機制 構造型Stereotype,標記值 tagged value,約束 contraint.v (4)UML中所包含的10種圖形及各自的作用。vv (5)用例圖的作用。v 用例圖用來描述軟件需求模型中的系統(tǒng)功能,通過一組用例可以描述軟件系統(tǒng)能夠給用戶提供的功能。v 用例圖可以作為整個系統(tǒng)開發(fā)過程中的開發(fā)依據,指導和驅動其他模型。vv (6)用例圖的主要構成部分。v 執(zhí)行者、系統(tǒng)邊界和用例 第五章5.獲取需求 概念設計:告訴客戶系統(tǒng)將做什么數據來自哪里?系統(tǒng)中數據會發(fā)生什么情況?對用戶來說,系統(tǒng)將會是什么?向用戶提供的選擇是什么?事件
16、的計時是什么?報表和屏幕是什么樣的?) 技術設計:告訴變成這系統(tǒng)將做什么對主要硬件部分及其功能的描述 軟件構件的層次和功能 數據結構 數據流好設計的衡量:耦合和內聚耦合度: 高度耦合:當兩個構件之間有大量依賴關系的時候 松散耦合:當兩個構件具有某種程度的依賴,但他們之間的相互連接比較弱 非耦合:構件之間不存在相互連接 耦合度的類型: 內容耦合:當一個構件修改了另一個構件的內部數據項時,或一個構件內的分支轉移到另外一個構件中的時候,可能出現內容耦合 公共耦合:對公共數據的改變意味著需要通過反向跟蹤所有訪問過該數據的構件來評估該改變的影響 控制耦合 標記耦合 數據耦合 內聚:如果構件的所有元素都是
17、直接面向執(zhí)行同一個任務的并且必須的,那么該構件是內聚的 6.細述對象 1. OOM中的典型特征,其中特別是封裝、繼承和多態(tài)。 標識 抽象 分類 封裝 繼承 多態(tài) 持久性 對象的概念:對象是指某個事物,大多對應于真實世界中的某個客觀實體;但有些對象在真實世界中沒有直接的對應物,是人們對某個事物的一種抽象描述。對象的基本特征可以歸納為對象的屬性和行為兩類。類的概念:類是指對一組具有相同特征的對象的抽象描述;任何對象都是某個類的實例。類圖的作用:類圖技術是OO方法的核心技術,應用非常廣泛,其中類、對象以及它們之間的關系是最基本的建模元素。類模型和對象模型揭示了系統(tǒng)的結構。2.了解類之間的各種關系:關
18、聯、依賴、繼承或泛化、組合/聚合等。v 關聯用來表示來表示兩個(或多個)類的對象之間的結構關系,它在代碼中表現為一個類以屬性的形式包含對另一個類的一個或多個對象的引用。v 泛化關系:(繼承關系)定義類和包之間的一般元素和特殊元素之間的分類關系。v 繼承(Inheritance): 泛化關系的一種實現機制并非所有的泛化關系都適合用繼承關系實現v 聚合:是表示類和類之間的“整體部分”關系,用空心菱形表示。聚合表示類之間的整體與部分的關系。聚合意味著一個類擁有但共享另一個類的對象組合是聚合的一種特殊情形,用實心菱形表示。與聚合相比,它有兩個特點:1. 一個部分類最多只能屬于一個整體類2. 當整體類不
19、存在時,部分類將同時被銷毀。3.了解類圖的基本建模步驟。v (1)尋找出需求中的名詞(候選對象)。v (2)合并含義相同的名詞,排除范圍以外的名詞,并尋找隱含的名詞。v (3)去掉只能作為類屬性的名詞。v (4)剩下的名詞就是要找的分析類(候選類)。v (5)根據常識、問題域、系統(tǒng)責任確定該類有那些屬性。v (6)補充該類動態(tài)屬性,如狀態(tài)、對象間聯系(如聚合、關聯)等屬性。v (7)從需求中的動詞、功能或系統(tǒng)責任中尋找類的操作(候選操作)。4. 接口和抽象類的定義及各自的特點。v 抽象類是指那些不具有任何對象的類,其作用是為其他的類描述它們的公共屬性和行為。通常,抽象類具有一組抽象操作。一個擁
20、有至少一個抽象操作的類必定是一個抽象類。v 接口是一組沒有實現的操作的集合。接口只提供操作的聲明,不提供任何相應的功能代碼。具體的功能代碼由使用該接口的類實現,這叫作實現關系。一個類和一個接口不同:一個類可以有它形態(tài)的真實實例,然而一個接口必須至少有一個類來實現它。5.交互圖的分類:順序圖和協(xié)作圖。這兩種圖形各自的優(yōu)缺點。注意UML 2.0中協(xié)作圖改稱通信圖。 序列圖主要用來描述對象之間信息交換時的時間順序,它強調的是消息發(fā)送的時間的先后順序 而協(xié)作圖則用來描述系統(tǒng)對象之間如何協(xié)作共同完成系統(tǒng)功能的要求。協(xié)作圖描述對象之間消息的連接關系,側重說明哪些對象之間有消息傳遞。與序列圖相比,通過編號來
21、看消息的執(zhí)行順序比較困難,但協(xié)作圖中對象間靈活的空間布局可以更方便地展示動態(tài)連接關系等有用信息。 序列圖和協(xié)作圖都屬于交互圖,用來描述對象之間的動態(tài)關系。 序列圖強調消息的時間順序,協(xié)作圖強調參與交互的對象的組織關系。 序列圖和協(xié)作圖在語義上是等價的,兩者可以相互轉換。 相同點: 1.它們都表現出了對象之間的交互信息。 2.兩個圖對象的繪制方式相同 不同點: 1.順序圖反映了對象之間交互的時間關系,而通信圖反映了對象之間交互的空間關系。 2.順序圖用于展示特定的業(yè)務場景,而通信圖用來展示詳細的業(yè)務過程。 3.順序圖的對象在圖形的頂部一字排開,而通信圖對象的擺放位置在二維空間只要選擇合適的位置即
22、可。 4.通信圖不能表現組合片段。6. 狀態(tài)圖和活動圖各自的作用。注意活動圖中泳道的作用。v 狀態(tài)圖:描述交互對對象內部的影響,交互圖中的消息在這里變成外部事件對對象發(fā)出的命令,對象對這些命令的響應導致對象的狀態(tài)發(fā)生變化。因此,從這個意義上說,狀態(tài)圖是順序圖的進一步細化,并且是對核心對象(選擇核心對象的依據是看是否在多個交互圖中有多個消息指向該對象)的細化。v 活動圖是一種特殊形式的狀態(tài)機,用于對計算流程和工作流程建模.v 與交互圖相比:活動圖著重表現活動的控制流,描述在對象之間傳遞的操作;交互圖著重表現的是對象到對象的控制流,描述在對象之間傳遞的消息v 泳道是活動圖里對其中的活動按照其職責上
23、的關聯進行的劃分。泳道在活動圖內是一系列的垂直的隔斷(這也是泳道這個名字的由來)7.組件圖的作用以及組件與接口間的關系。組件是系統(tǒng)的一個物理的和可替代的組成部分,該組成部分遵循并實現了一組給定的接口。組件屬于實現視圖8. 部署圖的作用。用來描述軟件產品在計算機硬件系統(tǒng)和網絡上的- 安裝- 分發(fā)(delivery )- 分布(distribution )1. 主要的面向對象設計原則及各自的原理:設計原則名稱簡介重要性里氏替換原則LSP任意父類可以出現的地方,子類也可以出現開閉原則OCP對擴展開發(fā),對修改關閉單一職責原則SRP類的職責單一依賴倒轉原則DIP針對抽象(或接口)編程,而不針對具體編程接
24、口隔離原則ISP使用多個專門接口要優(yōu)于使用單一的接口組合聚合原則CRP優(yōu)先使用組合或聚合關系,不要過于使用繼承關系迪米特原則LoD一個軟件實體對其他實體的引用越少越好。2. LSP中的子類型與繼承的關系及區(qū)別。 軟件實體(類、模塊、函數等)應該是可擴展的,但是不可修改的 特征:對于擴展是開放的(Open for extension):模塊的行為可以擴展,當應用的需求改變時,可以對模塊進行擴展,以滿足新的需求對于更改是封閉的(Closed for modification):對模塊行為擴展時,不必改動模塊的源代碼或二進制代碼開閉原則的思想及關鍵。OCP(The Open-Close Princi
25、ple, 開放-封閉原則)軟件實體(類、模塊、函數等)應該是可擴展的,但是不可修改的特征:對于擴展是開放的(Open for extension):模塊的行為可以擴展,當應用的需求改變時,可以對模塊進行擴展,以滿足新的需求對于更改是封閉的(Closed for modification):對模塊行為擴展時,不必改動模塊的源代碼或二進制代碼4. 設計模式的分類。創(chuàng)建型 結構型 行為型5. 設計模式與面向對象設計原則之間的關系,特別是OCP原則。6. 掌握各種工廠模式的設計思想及其原理,了解如何從OCP的角度進行分析。/藍色的字指的是ppt上沒有的問題。黃色是了解內容7.編寫程序1. 注意編程程序
26、過程中應遵循一定的標準和過程。對單個開發(fā)人員的標準 編寫代碼文檔的方法對其他開發(fā)人員的標準 集成人員, 維護人員, 測試人員 文檔序言 對代碼分析的自動化工具設計和實現的匹配 低耦合, 高內聚, 定義明確的接口2. 了解一些編程指導原則。l 控制結構使程序容易閱讀根據模塊化的塊來構建程序不要讓代碼太過特殊,也不要太過普通用參數名和注釋來展現構件之間的耦合度構件之間的關系必須是可見的 l 算法重點關注: 性能效率可能會伴隨著一些隱藏的代價 編寫更快代碼的代價 測試代碼的代價 用戶理解代碼的代價 修改代碼的代價l 數據結構有幾種使用數據結構的技術提出應該怎樣對程序進行組織 保持程序簡單 用數據結構
27、來決定程序結構l 保持程序簡單 (continued)n 通用性指導原則局部化輸入和輸出包含偽代碼改正和重寫,而不是打補丁復用 生產者復用: 在設計的構建要在以后的應用中進行復用 消費者復用: 正在使用的構件是原先為其他項目開發(fā)的構件3. 注意實現容錯技術的主要手段是冗余,冗余通常分為四類:(1)結構冗余。 (2)信息冗余 (3)時間冗余和(4)冗余附加技術。4.軟件中的注釋主要分:序言性注釋和功能性注釋兩種。8. 測試程序和9.測試系統(tǒng)1. 測試的目標和衡量標準。測試目標: 發(fā)現錯誤只有當發(fā)現了錯誤時,測試才被認為是成功的 故障識別是確定由哪一個故障或哪些故障引起失效的過程 故障改正是修改系
28、統(tǒng)使得故障得以去除過程 2. 測試的分類(或組織)。各種類型的測試的主要任務及所依賴的文檔。模塊測試、構件測試、單元測試集成測試功能測試性能測試驗收測試安裝測試Alpha測試 Beta測試3. 黑盒測試和白盒測試的思想,了解白盒測試中的基本路徑測試等方法。閉盒或黑盒: 測試對象的功能 開盒或白盒: 測試對象的結構 黑盒優(yōu)點免于受強加給測試對象內部結構和邏輯的約束缺點不可能總是進行完備的測試4. 單元測試的主要內容。檢查代碼 代碼走查代碼審查典型的審查準備時間和會議時間錯誤發(fā)現率證明代碼的正確性 形式化證明技術 符號執(zhí)行 自動定理證明測試與證明證明: 在假設環(huán)境下測試: 實際操作環(huán)境下運轉的相關
29、信息選擇測試用例的步驟 確定測試目標 選擇測試用例定義測試 測試的完全性語句測試分支測試路徑測試定義使用的路徑測試所有使用的測試所有謂詞使用/部分計算使用的測試所有計算使用/部分謂詞使用的測試5. 集成測試的類型及主要的測試策略。自底向上的測試自頂向下測試一次性測試三明治測試改進的自頂向下測試: 進行合并之前每一個層的構件進行單獨測試改進的三明治測試: 允許在將較上層的構件和其他構件合并前,先對這些較上層的構件進行測試6. 了解測試計劃的主要內容。計劃的目的構建測試目標設計測試用例編寫測試用例測試測試用例執(zhí)行測試評估測試結果計劃的內容測試的目標是什么怎樣進行測試用什么標準確定何時測試完成7.
30、測試系統(tǒng)中的測試過程:功能測試、性能測試、驗收(或確認)測試、安裝測試,及它們的內容。功能測試: 集成系統(tǒng)是否按照需求規(guī)格說明執(zhí)行它的功能?性能測試: 是否滿足非功能需求?驗收測試: 系統(tǒng)是客戶期望的嗎?安裝測試: 系統(tǒng)能在客戶端運行嗎 ?11. 系統(tǒng)維護1. 維護活動的類型:改正性、適應性、完善性、預防性。 2. 各種維護活動的主要內容和目標。改正性: 維護對日常的系統(tǒng)功能的控制適應性: 維護對系統(tǒng)修改的控制完善性: 完善現有系統(tǒng)預防性: 防止系統(tǒng)性能下降到不可接受的程度3. 軟件再生:文檔重構、重組、逆向工程、再工程,以及它們各自的內容和含義。文檔重構: 對原代碼進行靜態(tài)分析,給出更多的信
31、息重組: 改變代碼結構 逆向工程: 根據代碼重新創(chuàng)建設計和規(guī)格說明信息再工程: 對現有工程進行逆向工程,接著再改變規(guī)格說明和設計以完成邏輯模型 ;然后,根據修改的規(guī)格說明和設計生成新的系統(tǒng) 其他1. 了解產品評估的幾種方法:特征分析、調查、案例研究和正式的試驗。特征分析: 對屬性進行評分和排列調查: 記錄數據 確定項目參與者對某一方法、工具或技術的反應是怎樣的確定趨勢或關系獲取產品或項目的相關信息 記錄構件規(guī)模、故障數目、花費的工作量 案例研究確定可能影響活動的結果的關鍵因素,隨后記錄下它們 包括一系列步驟: 概念、設計、準備、執(zhí)行、分發(fā)以及決策 將一種情形和另一種情形進行比較 正式試驗操縱自
32、變量用一些方法來減少偏見和消除混雜因素通常測量一個活動的復制實例實例具有代表性: 通過變量研究樣本2. 了解幾種主要的產品質量模型:Boehm 的模型、ISO 9126和Dromey 的模型。產品質量模型Boehm 的質量模型反映了對質量的一種理解軟件做了用戶想要它做的事情軟件正確、有效地使用了計算機 軟件易于用戶學習和使用 軟件是設計良好的、代碼良好的,并且易于測試和維護 ISO 9126 質量模型是一個層次結構的模型,具有6個影響質量的主要屬性每一個右邊的特性都嚴格與左邊的一個屬性相聯系 Dromey 質量模型產品質量很大程度上由組成產品的構件、構件組成部分的實際性質決定的 正確的屬性內部
33、屬性上下文性質描述性性質ISO 9126的6種屬性可復用性屬性機器無關性可分離性可配置性過程成熟度屬性包括客戶傾向良好定義保證有效性3. 了解常用的過程評估模型:CMM、SPICE、CMMI和ISO 9000等。過程和能力成熟度CMMISO 9000SPICE4. 了解軟件工程與計算機科學的關系。軟件工程即涉及計算機科學又涉及工程學l 計算機科學 集中于數據、數據轉換和算法高級課程介紹特定領域的設計和編程技術 l 軟件工程集中于構建軟件產品考慮開發(fā)一個軟件系統(tǒng)所涉及的所有活動(從初始想法到最終的產品) 設計概念往往集中于通用的設計原理、模式和標準 高級的課程介紹適應于大型的軟件系統(tǒng)的設計和分析
34、技術 1第1部分:軟件工程概論要求掌握:軟件的概念,軟件的本質特征是什么?軟件:是相對硬件而言的,是計算機系統(tǒng)中的程序、數據,及其相關文檔的總稱。軟件的本質是:對人的意識的反映軟件的特征:抽象性、智能性、無形性、依附性、復雜性、泛域性、非損性、復制性、演化性軟件工程概念軟件工程是采用工程概念、原理、技術和方法來指導計算機軟件開發(fā)和維護的工程學科,該學科運用到計算機科學、數學、管理學等原理和方法,遵循系統(tǒng)化的思想,運用工程化方法,指導軟件開發(fā)和維護工作。軟件工程提出的原因,軟件危機的主要表現形式答:因軟件危機提出了軟件工程表現形式:軟件開發(fā)不能按照計劃進行控制和完成,普遍存在拖延工期的現象;軟件
35、開發(fā)生產率滿足不了巨大的市場需要;開發(fā)出來的軟件滿足不了用戶的需求;軟件投資嚴重超出預算;軟件可靠性和可用性差。軟件工程學科的發(fā)展過程,各階段的時間范圍,以及在每一個發(fā)展階段突出的特征軟件工程學科的發(fā)展可以粗略劃分為四個時期:1.軟件工程準備期:20世紀40年代中-60年代末特征:程序是軟件的核心內容;強調程序的藝術化和個性化;軟件概念出現;軟件危機出現。2.軟件工程形成期:20世紀60年代末-80年代中特征:軟件工程概念出現;沒有形成完整軟件工程學科體系;以軟件開發(fā)方法研究帶動整個軟件工程的發(fā)展,出現了典型的結構化方法,JSD方法等經典軟件開發(fā)方法;程序設計方法深入研究:程序設計=算法+數據
36、結構;數據結構,操作系統(tǒng),數據庫技術發(fā)展3.軟件工程發(fā)展期:20世紀80年代末-90年代中特征:軟件需求旺盛,軟件產業(yè)形成;微機、網絡等技術出現并飛速發(fā)展;軟件開發(fā)集成環(huán)境;面向對象方法開始受到重視;文件服務器模式,C/S模式出現。4.軟件工程縱深期:20世紀90年代末-今天特征:WWW技術出現并趨于成熟;軟件體系結構;軟件工程過程以UML為代表的軟件建模語言和軟件建模技術出現;云計算和物聯網。軟件工程學科的基本內容,在什么時間提升為一級學科?答:內容:軟件工程理論,軟件工程技術,軟件工程管理,軟件服務工程,在2011年.軟件生存期模型,都有哪些形式,每一種模型的特征及優(yōu)缺點答:1.瀑布模型:
37、各階段明確任務、自上而下、順序固定、逐級過渡的結構模式,各階段的聯系就象瀑布流水一樣自上而下、不可逆返。特點:軟件各階段之間具有順序性和依賴性的觀點;問題放大效應的觀點;推遲實現的觀點;質量保障的觀點缺點:開發(fā)過程不允許往返,缺乏靈活性;在軟件開發(fā)出來之前,用戶無法知道軟件的真實面目。2.演化模型特點:針對事先不能完整地定義需求;針對用戶的核心需求,開發(fā)核心系統(tǒng);根據用戶的反饋,實施活動的迭代。優(yōu)點:解決了瀑布模型不允許階段返回的問題;適合不能及時確定需求的開發(fā)場景;缺點:每一個迭代期,仍然以瀑布模型為基礎。3.增量模型優(yōu)點:每個階段交付一個可用的產品;減少一個全新產品給客戶帶來的心理上的影響
38、;分階段地交 BAIDU_CLB_fillSlot( 920314 ); 2付產品不需要大的資金支出;需求經常變化,增量模型的靈活性使其具有更加優(yōu)越的適用性。缺點:需要一個開放的結構,方便構件的加入;增量模型本身就是一個矛盾的名詞。4.螺旋模型:分步推進、逐步深化的螺旋方式優(yōu)點:更符合人們的認知規(guī)律;容易確定某個軟件產品何時測試完成。缺點:開發(fā)和維護的界限變得不十分清晰;僅適應于大型軟件開發(fā)。5.噴泉模型特點:軟件生存期需要劃分成為多個相對獨立的階段,但各個階段之間的界限并不是十分明確,相鄰階段之間存在明顯的重迭和交叉。6.智能模型什么叫軟件工程過程,國際標準化組織規(guī)定了有哪些過程?RUP的含義是什么?它有哪些典型特征?答:軟件工程過程:是指軟件在其生命周期中,一系列相關活動按照確定的次序演繹變化的進程.包括:獲取過程運作過程供應過程維護過程管理過程支持過程開發(fā)過程裁剪過程統(tǒng)一軟件開發(fā)過程RUP時間維:初始、細化、構建、移交4個階段。工作維:領域分析、需求分析、系統(tǒng)設計、實現和測試等核心工作。第2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品付款協(xié)議書范本
- 音色錄音測試題及答案
- 基礎運營考試題及答案
- 平面幾何 試題分類及答案
- 助理廣告師試題及答案全面解析
- 運動品牌廣告設計的特殊性試題及答案
- 設計中的可持續(xù)性2024年國際商業(yè)美術設計師考試試題及答案
- 2025年工業(yè)互聯網平臺微服務架構性能測試工具與平臺對比報告
- 檢視國際商業(yè)美術設計師考試試題及答案細節(jié)
- 2025年在線職業(yè)技能培訓課程國際化發(fā)展策略研究
- 九型人格之職場心理學習通超星期末考試答案章節(jié)答案2024年
- 基于機器學習的緩存優(yōu)化
- 肝損傷患者的護理
- 學術論文文獻閱讀與機助漢英翻譯智慧樹知到答案2024年重慶大學
- 老年心房顫動診治中國專家共識(2024)解讀
- 新高考背景下2025屆高三歷史一輪復習策略講座
- 學校五好關工委方案 - 副本
- 電力施工總承包合同范本2024年
- 汽車行業(yè)智能駕駛輔助系統(tǒng)開發(fā)方案
- 化工1.4丁二醇介紹及生產流程設計書
- 急性冠脈綜合征
評論
0/150
提交評論