




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