




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上第一章 軟件工程概述1. 軟件危機 (software crisis):是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。即“兩低一高” 問題:質量低、效率低、成本高。軟件危機也成為“軟件蕭條(depression)”或“軟件困擾(afflication)”2. 軟件危機主要表現 1)開發成本和進度估計不準 2)用戶對“已完成的”軟件系統不滿意 3)軟件質量往往靠不住 4)軟件常常是不可維護的 5)軟件通常沒有適當的文檔資料 6)軟件成本逐年上升 7)軟件開發生產率滯后于硬件和計算機應用普及的趨勢3. 產生軟件危機的原因 1)與軟件本身的特點有關 a. 軟件不
2、同于硬件,是邏輯部件而不是物理部件 缺乏可見性 難于測試 管理和控制開發過程困難 不會因使用時間過長而被“用壞” 難以維護 b.軟件不同于一般程序,規模龐大,而且程序復雜性隨著程序規模的增加而呈指數上升 2)和軟件開發與維護的方法不正確有關 a.對軟件開發和維護有關的錯誤認識和作法 忽視軟件需求分析的重要性 認為軟件開發就是寫程序 輕視軟件維護 b. 對軟件開發過程與方法的認識與應用 軟件開發要經歷一個漫長的時期(編程占10-20%) 程序僅是完成軟件配置的一個組成部分 軟件開發方法要有利于軟件維護 4. 軟件的特點 (1)軟件是無形的(intangible) (2)軟件副本的大批量生產輕而易
3、舉 (3)軟件業是勞動密集型的 (4)一個沒有經過充分訓練的軟件開發人員很容易編寫出難以理解和修改的軟件 (5)軟件本身很容易修改。但由于它的復雜性,又很難正確地修改 。(6)軟件不像其他的工業產品那樣會因使用而磨損,隨著反復修改,它的設計會逐漸退化5. 消除軟件危機的途徑1)對計算機軟件的正確認識 2)認識到軟件開發不是個體勞動的神秘技巧,而是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目 3)推廣使用成功的軟件開發技術和方法 4)開發和使用更好的軟件開發工具總之, 為了消除軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。6. 對“工程”的理解:大事情,施工的
4、過程,工程學科。施工的過程:分析®設計® 實現® 維護7. 軟件的概念 經典定義:軟件 = 程序 + 文檔 + 數據軟件是計算機程序及其有關的數據和文檔的完整集合。計算機程序是能夠完成功能的可執行的指令序列數據是程序能適當處理的信息,具有適當的數據結構軟件文檔是開發、使用和維護程序所需要的圖文資料8. 軟件工程的概念 概括地說,軟件工程是指導計算機軟件開發和維護的工程學科。 采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟件并有效地維護它,這就是軟件工程。 目標:項
5、目成功(BFC,Better、Faster、Cheaper)9. 軟件工程的本質特征 (1)軟件工程關注于大型程序的構造 (2)軟件工程的中心課題是控制復雜性 (3)軟件經常變化 (4)開發軟件的效率非常重要 (5)和諧地合作是開發軟件的關鍵 (6)軟件必須有效地支持它的用戶 (7)在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品10. 軟件工程的基本原理 (1)用分階段的生命周期計劃進行嚴格管理(2)堅持進行階段評審(3)實行嚴格的產品控制(4)采用現代程序設計技術(5)結果應能清楚地審查(6)開發小組的人員應該少而精(7)承認不斷改進軟件工程實踐的必要性11. 軟
6、件工程方法學 通常把在軟件生命周期全過程中使用的一整套技術的集合稱為方法學(methodology),也稱為范型(paradigm)。1) 傳統方法學(結構化方法學):SA,SD,SP,ST2) 面向對象方法學:OOA,OOD,OOP,OOTS:結構化,structuredOO:面向對象,Object OrientedA:分析,AnalysisD:設計,DesignP:編程,ProgrammingT:測試,Test12. 軟件工程方法學三要素,這就是方法、工具和過程。其中:1)方法是完成軟件開發任務的技術方法,回答“如何做”的問題; 2)工具是為方法的運用提供自動的或半自動的軟件支撐環境; 3
7、)過程規定了完成各項任務的工作階段、工作內容、產品、驗收的步驟和完成準則。第二章 軟件過程1. 過程(process):ISO9000把過程定義為,把輸入轉化為輸出的一組彼此相關的資源和活動。2. 軟件過程(Software Process): 是為了獲得高質量軟件所需要完成的一系列任務的框架(Framework),它規定了完成各項任務的工作步驟。3. 軟件生命周期 軟件生命周期由軟件定義、軟件開發、和運行維護三個時期組成,每個時期又可進一步劃分成若干個階段。(三個時期八個階段) 三個時期八個階段: 三個時期:軟件定義、軟件開發、運行維護 八個階段:(1)問題定義 (2).可行性研究 (3).
8、需求分析 (4).概要設計 (5).詳細設計 (6).編碼和單元測試 (7).綜合測試 (8).軟件維護 4. 軟件開發模型(在課本的1433頁,了解一下)1) 瀑布模型 (Waterfall)2) 快速原型模型Prototype3) 增量模型(Incremental Models) 4) 噴泉模型5) 螺旋模型6) 統一過程(rational unified process,RUP)7) 敏捷過程8) 極限編程(extreme programming,XP)9) 能力成熟模型(capability maturity model,CMM)第三章 結構化的分析(SA)1. 需求分析:發現、求精、
9、建模、規格說明、復審的過程。 發現:獲取需求,完備、正確、有效 求精:細節 建模:形式化描述規格說明:詳述復審:批準2. 需求分析的準則 1) 必須理解和表示問題的信息域,根據這條準則應該建立數據模型。 2)必須定義軟件應完成的功能,這條準則要求建立功能模型。 3)必須表示作為外部事件結果的軟件行為,這條準則要求建立行為模型。 4)必須對描述信息、功能和行為的模型進行分解,用層次的方式展示細節。3. 需求獲取的方法 1) 訪談 正式的:事先準備好的 非正式的訪談:開放的,頭腦風暴,情景分析 2) 面向數據流自頂向下求精 3) 簡易的應用規格說明技術 4) 快速建立軟件原型4. 分析建模 結構化
10、分析實質上是一種創建模型的活動。 通過需求分析而建立的模型必須達到下述的三個基本目標:描述用戶的需求。為軟件設計工作奠定基礎。定義一組需求,一旦開發出軟件產品之后,就可以用這組需求為標準來驗收該產品。5. 模型(Model):是為了理解事物而對事物作出的一種抽象,是對事物的書面上的無歧義文字或圖形的描述.5.1. 模型是對問題的簡化。5.2. 要從多個角度認識事物。 6. 分析模型: 數據模型(實體聯系圖)、功能模型(數據流圖)、行為模型(狀態轉換圖)。 7. 需求分析成果:軟件需求規格說明8. 實體-聯系圖(ER圖,entity-relationship diagram)(P41,要求會畫)
11、(1)數據模型的主要成分:數據對象,數據對象的屬性,數據對象彼此間相互連接的關系數據對象:對軟件必須理解的復合信息的抽象。屬性:定義了數據對象的性質。聯系:數據對象彼此之間相互連接的方式稱為聯系,也稱為關系。類型:一對一聯系、一對多聯系、多對多聯系。聯系也可以有屬性。(2)實體-聯系圖的符號表示: 實體 屬性 聯系9. 數據流圖(DFD,Data Flow Diagram):描繪信息流和數據從輸入移動到輸出的過程中所經受的變換(書本P4347,要會畫)10. 數據字典(DD:,Data Dictionary):是關于數據的信息的集合,是對數據流圖中包含的所有元素的定義的集合(書本P4951,要
12、會畫)11. 狀態轉換圖(SD,State Diagram):通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為。用于建立行為模型。狀態:是任何可以被觀察到的系統行為模式。狀態規定了系統對事件的響應方式事件:是在某個特定時刻發生的事情,是引起系統做動作或(和)轉換狀態的控制信息。(書本P4749)第四章 結構化設計 架構性能 DFD 環境 功能 將來 分析 設計 過程 ERD DD 數據 STD 接口( 五大需求) 數據 (四大設計) 內存 DS 數據 DB 外存 file 架構 C/S,B/S 四大設計 構件之間的接口 接口 人機 接口 Process 過程 Procedure(步
13、驟) 三型兩化 行為模型 三型 功能模型 數據模型 系統化 兩化 層次化 如何設計:必須依據原理、原則、規則、準則模塊:是由邊界元素限定的相鄰的程序元素的序列,而且有一個整體標識符來代表它。模塊化:就是把程序劃分成可獨立命名且獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。(1) 一組相鄰元素(2) 一個邊界(3) 一個名字(標識符ID)Why模塊化1) 降低復雜度2) 有利于團隊分工協作How to 模塊化Meyer模塊化5標準1) 模塊可分解性(降低復雜性)2) 模塊可組裝性(可重用,reuse)3) 模塊可理解性(易于維護)4)
14、模塊連續性(副作用小)5) 模塊保護性(屏蔽異常)抽象(abstract):抽出事物的本質特征,而暫時不考慮它們的細節 找共性,略特性 抓主要,略次要 有效降低模塊數量逐步求精:為了集中精力解決主要問題而盡量推遲對問題細節的考慮。 大 小 粗 細Miller法則:一個人在任何時候都只能把精力集中在7±2個知識塊上。 7±2 全局變量 信息隱藏 局部變量 塊內:高內聚,一個模塊只做一件事模塊獨立 參數少 塊間:低耦合,KIS(keep it simple) 類型簡單結構化設計原理:1) 模塊化2) 抽象3) 信息隱藏4) 逐步求精啟發原則:1) 改進軟件結構提高模塊獨立性2)
15、 模塊規模應該適中(LOC<30)LOC:lines of code note>code3) 深度、寬度、扇出和扇入都應當適中 (7±2原則)4) 模塊的作用域應該在控制域之內5) 力爭降低模塊接口的復雜度(接口KIS)6) 設計單出口單入口的模塊7) 模塊的功能應該可以預測設計結果描述工具:建模工具 軟件工具 工具 建模工具 開發工具IPO圖(Input Process Output):描述模塊(總體)架構表示:C/S,B/S ,層次層次圖 + IPO圖 = HIPO圖結構圖:(P76)Yourdon提出的結構圖是進行軟件結構設計的另一個有力工具 面向設計流的設計方法三
16、種設計方法 面向數據結構的設計方法 面向對象的設計方法設計優化: 無 有 好 優 精人機界面設計問題 MI CUI GUI AUI MMI1. 系統響應時間(長度、易變性) 集成式(內含,開始就設計在軟件中)2. 用戶幫助措施 嵌入式/附加式(聯機文檔)1) 完備性2) 選擇性(menu, F1 , help)3) 如何顯示幫助信息4) 返回/退出(ESC escape , 按鈕) 平面 5) 怎樣組織幫助信息 層次結構(導航) Web頁(超鏈接)3. 出錯信息處理1) 可理解性2) 建設性3) 警示性4) 視聽性5) 友好性4. 命令交互UI設計的重要性:1) 用戶評價產品的依據2) 占總設
17、計量的50%以上3) 涉及到美學、人機工程學、心理學4) UI工程師成為一種崗位UI設計原則: 以人為本、人性化、美、方便 和諧 美 一致 對稱人機界面設計過程: 用戶界面設計是一個迭代的過程 建模(UML的狀態圖) 建立原型(powerpoint,dreamvever) 試用 評估界面設計指南(看看微軟的界面設計)1) 一般交互2) 信息顯示3) 數據輸入結構化方法學 SA SD SP ST 1965 GOTO語句 1968 (書本P89) 1972 如果一個程序的代碼塊僅僅通過順序、選擇和循環這三種控制結構進行連接,并且每一個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。1) 順序
18、2) 選擇(單路、雙路、多路、多重)3) 循環(for 、 當型循環、直到型循環、枚舉)過程設計工具 程序流程圖 N-S盒圖 圖 PAD圖 UML活動圖 判定樹 判定表 表 偽碼語言 語言 (要會畫這些圖,會根據偽碼語言轉化為上述各種圖,還要掌握幾種圖之間的轉換)數據的三類邏輯結構1) 順序2) 選擇3) 重復第五章 結構化實現測試 定義:為了發現錯誤而執行程序的過程 錯誤 編寫時產生的 故障 運行時發生的 測試具有破壞性,而其它的環節都是建設性的。但是其破壞時為了更好的建設,保證質量的有效途徑測試的目標()1) 定義:測試是為了發現程序中的錯誤而執行程序的過程2) 好的測試:好的測試方案是極
19、可能發現迄今為止尚未發現的錯誤的測試方案3) 成功的測試:成功的測試是發現了至今為止尚未發現的錯誤的測試 目的測試方案 一組輸入 一組輸出(預期的結果)測試的準則1) 追溯到需求:所有的測試都應該能追溯到用戶的需求2) 及早計劃:應該在測試之前的相當長時間,就指定出測試計劃3) 2、8定律:把Pareto原理應用于軟件測試。Pareto原理告訴我們,測試發現的錯誤中的80%很可能是由程序中20%的模塊造成的4) 從小到大:測試應該從“小模塊”開始,并逐步進行“大模塊”測試5) 不可窮盡:窮舉測試是不可能的6) 第三方(丙方)測試:為了達到最佳的測試效果,應該由獨立的第三方來從事測試工作所謂最佳
20、效果,就是指最大可能性發現錯誤的測試,這也是測試的基本目標 黑盒測試:接口處、功能測試測試方法 白盒測試:結構測試流圖P110(要會根據程序流程圖轉化) 體現了程序判斷的節點白盒測試技術:1) 邏輯覆蓋2) 路徑覆蓋程序的復雜度度量(P115,要會根據流圖,計算出程序的復雜度) 流圖中的區域數 = 環形復雜度 3種方法 流圖中的環形復雜度 = 流圖中的邊數 圖中節點數 + 2 流圖中的環形復雜度 = 圖中判定節點的數目 + 1 復雜:指人的體力和腦力受到挑戰獨立路徑(P115) 定義:是指至少引入程序的一個新處理語句集合或一個新條件的路徑 自頂向下 找法 從左向右 逐步增加黑盒測試技術(P12
21、0) 等價類劃分 邊界值分析 錯誤預測測試步驟(從小到大) 單元 子系統 系統 驗收 平行運行 集成測試 一邊運行新系統,一邊運行舊系統集成測試的策略 深度優先 自頂向下 寬度優先 自底向上軟件的可靠性 可靠性:時間段,在規定的時間段內,成功運行程序的概率 可用性:時間點,在一個時間點上,成功運行程序的概率 MTTF:Mean Time To Failure,平均無故障時間 MTTR:Mean Time To Repair,平均維修時間測試 發現bug 質量 排除bug 可靠性第六章 面向對象方法學導論面向 觀點、世界觀、軟件觀System1) 若干部件的集合2) 部件具有獨立的功能和邊界3)
22、 部件之間具有相互聯系,這些聯系構成結構4) 部件間相互作用,構成運動對象(P151)在研究或解決問題的過程中關注的人、事物、概念OO(Object Oriented,面向對象)起源 學習、掌握、運用面向對象方法學的四個要點: 面向對象 = 對象 + 類 + 繼承 + 通信1) 認為客觀世界是由各種對象組成的,任何事物都是對象,復雜的對象可以由比較簡單的對象以某種方式組合而成2) 把所有對象都劃分成各種對象類,每個對象類都定義了一組數據和一組方法。3) 按照子類與父類的關系,把若干個對象類組成一個層次結構的系統4) 對象彼此之間僅能通過傳遞消息互相通信面向對象方法學的優點1) 與人類習慣的思維
23、方法一致2) 穩定性好3) 可重用性好4) 較易開發大型軟件產品5) 可維護性好面向對象的一些概念1. 對象:是封裝了數據結構以及可以施加在這些數據結構上的操作的封裝體,這個封裝體有可以唯一標識它的名字,而且向外界提供一組服務。2. 類:就是對具有相同數據和相同操作的一組相似對象的定義3. 實例:就是有某個特定的類所描述的一個具體的對象4. 消息:就是要求某個對象執行在定義它的那個類中所定義的某個操作的規格說明書5. 方法:就是對象所能執行的操作,也就是類中所定義的服務6. 屬性:類中說定義的數據,它是對客觀世界實體所具有的性質的抽象7. 封裝:就是把某個事物包起來,使外界不知道該事物的具體內
24、容8. 繼承:是指能夠直接獲取已有的性質和特征,而不必重復定義他們9. 多態性:是指子類對象可以像父類對象那樣使用,同樣的消息既可以發送給父類也可以發送給子類對象。10. 重載:函數重載是指在同一作用域內的若干個參數特征不同的函數可以使用相同的函數名字面向對象的三種關系:繼承 組成 關聯父類子類子類(這個箭頭是空心的)對象的特點:(1) 以數據為中心(2) 實現了封裝(3) 本質上具有并行性(4) 模塊獨立性好面向對象建模: 功能模型 三種模型的建模工具: 對象模型:類圖 功能模型:用例圖(用況圖) 類 動態模型:狀態圖,時序圖 對象模型 動態模型 (面向對象模型)面向對象的建模步驟:系統觀點
25、啥們UML的9種圖對象模型:最基本、最核心、最重要狀態圖: 描述了單一對象,在其生命周期內的變化規律 事件event 瞬間的 狀態 時間段時序圖: 多個對象的交互。時序圖的每個對象有各自對應一個狀態圖第7&8章 九個圖 九個圖 架構成中心 分析 設計 用況驅動 增量與迭代 For 人 for計算機3型5層 (課本的p166) 對象模型 3型 功能模型 動態模型 自頂向下 5層 逐步求精 啥們之序面向對象(OOA)的任務與過程 分析:搞清楚、弄明白軟件的需求,并根據需求建模 研究需求 識別對象 建立模型面向對象分析的策略:三型五層:自頂向下、逐步求精五層:主題層、類與對象層、結構層、屬性
26、層、服務層需求陳述P167 用戶提供、表現多樣內容:范圍、需求、假設問題:歧義、矛盾對策:甲乙共商 ,原型化需求例子 ATM (課本P167)建立對象模型 類:名詞 a kind of 關系: part of . with 詞法分析 屬性:量詞(重量、身高、年齡)、形容詞 方法:動詞 候選 篩選 確定 優化UC矩陣 user customer建立動態模型 順序圖 狀態圖 (多對象) (單一對象) 需求陳述 編寫腳本 畫順序圖案例研究:電梯系統(課本的P186P190)OOA OOD OOP(3型4圖) (3型4圖) for 需求 for 機器/實現3型4圖: 對象模型 類圖 功能模型 用例圖
27、動態模型 順序圖、狀態圖OOD(面向對象設計)準則:P1921. 模塊化2. 抽象3. 信息隱藏4. 弱耦合5. 強內聚6. 可重用啟發規則:1. 設計結果應該清晰易懂2. 一般/特殊結構的深度應適當3. 設計簡單的類4. 使用簡單的協議5. 使用簡單的服務6. 把設計變動減至最小第9章(老師沒講)第10章UML(P232)(自己看,一定要會畫9種圖)第11章 計劃管理: 就是通過計劃、組織和控制等一系列的活動,合理的配置和使用各種資源,以達到既定目標的過程。軟件項目管理:就是通過計劃、組織、控制等一系列的活動,合理的配置和使用各種資源,以便在預定成本和期限內開發符合客戶需要的軟件的過程(類)工程:大的、復雜的、由眾多人一起完成的(對象)項目:一個具體的工程是項目 人 財估量 工作量 物(代碼行) 時軟件配置:程序、文件、數據 對軟件的配置進行管理的原因:需求的變更是不可避免的風險(risk):導致失敗的因素 識別 評估 避免估算代碼行: 估 概 預 決 代碼行 LOC KLOC估算量 功能點 FP(function
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CACEM 15.2-02-2020城市公共交通運營服務第2部分:現場管理要求
- 金屬表面處理對電子設備性能提升的影響考核試卷
- 貨運火車站物流設施設備智能化改造考核試卷
- 不同用戶場景下的測試方法試題及答案
- 纖維板制造中的供應鏈優化與風險管理考核試卷
- 社會包容性提升考核試卷
- 道路交通之安全規范考題試題及答案
- 拓寬視野的2025年信息系統監理師試題及答案
- 細分市場的營銷策略考核試卷
- 超市陳列與商品展示技巧考核試卷
- 聚合硫酸鐵烘干機-LPGФ8150型噴霧干燥機-天然氣熱風爐
- 2025年平面設計師專業能力測試卷:平面設計行業規范與法規執行技巧分析試題
- 中石油春招試題及答案
- 血壓的護理與評估教案
- 預提費用管理制度
- 臺賬資料管理制度
- 天幕施工承包協議書
- 村衛生室醫療質量相關管理制度
- 2025年全國碩士研究生入學統一考試 (數學三) 真題及答案
- 預防食品藥品誤食
- 新媒體編輯面試題及答案
評論
0/150
提交評論