版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1
軟件工程基礎
2第1章概述
31.1軟件工程簡介
1.1.1軟件生產的發(fā)展軟件是指計算機程序及其有關的數(shù)據(jù)和文檔。軟件生產的各個階段必需完成的有關計算機程序的功能、設計、編制的文字或圖形資料,這些資料稱為“文檔”。1.程序設計時期2.軟件=程序+文檔時期3.軟件工程階段4.第4階段41.1.2軟件危機
軟件危機是指在計算機軟件開發(fā)和維護時所遇到的一系列問題。軟件危機主要包含的問題:如何開發(fā)軟件以滿足對軟件日益增長的需求;如何維護數(shù)量不斷增長的已有軟件。1.軟件危機主要表現(xiàn)形式2.軟件危機產生的原因3.解決軟件危機的途徑51.1.3軟件工程1.什么是軟件?軟件是指計算機程序及其有關的數(shù)據(jù)和文檔。軟件文檔(softwaredocumentation)是以人們可讀的形式出現(xiàn)的技術數(shù)據(jù)和信息?!败浖浅绦蛞约伴_發(fā)、使用和維護所需要的所有文檔(document)?!?.什么是軟件工程?軟件工程(softwareengineering)是軟件開發(fā)、運行、維護和引退的系統(tǒng)方法。軟件工程是指導計算機軟件開發(fā)和維護的工程學科。軟件工程采用工程的概念、原理、技術和方法來開發(fā)與維護軟件。軟件工程的目標是實現(xiàn)軟件的優(yōu)質高產。6
1.2軟件工程學
1.2.1軟件工程學的內容軟件開發(fā)技術和軟件工程管理。軟件開發(fā)技術包含軟件工程方法學、軟件工具和軟件工程環(huán)境。軟件工程管理學包含軟件工程經濟學和軟件管理學。1.軟件工程方法學三個要素:方法,工具,過程。2.軟件工具3.軟件工程環(huán)境:是方法和工具的結合?!败浖_發(fā)環(huán)境是相關的一組軟件工具集合,它支持一定的軟件開發(fā)方法或按照一定的軟件開發(fā)模型組織而成”。計算機輔助軟件工程(ComputerAidedSoftwareEngineering,CASE)是一組工具和方法的集合,可以輔助軟件生存周期各階段進行軟件開發(fā)活動。4.軟件工程管理目的是為了能按預定的時間和費用,成功地生產軟件產品。內容:費用管理、人員組織、工程計劃管理、軟件配置管理。軟件工程各階段所產生的全部文檔和軟件本身構成軟件配置。71.2.2軟件工程過程
軟件過程是“把輸入轉化為輸出的一組彼此相關的資源和活動”。軟件過程是軟件工程方法學的三個要素(方法、工具和過程)之一。1.2.3軟件工程基本原理用分階段的生存周期計劃進行嚴格的管理;堅持進行階段評審;實行嚴格的產品控制;采用現(xiàn)代程序設計技術;軟件工程結果應能清楚地審查;開發(fā)小組的人員應該少而精;承認不斷改進軟件工程實踐的必要性。81.3軟件生存周期1.軟件生存周期定義從設計軟件產品開始到產品不能使用為止的時間周期。軟件生存周期中,軟件開發(fā)與維護時的費用越低,軟件的使用壽命越長,產生的價值就越大,這就是掌握軟件工程學的目的。2.軟件生存周期劃分的原則3.軟件生存周期的階段劃分由軟件計劃、軟件開發(fā)和軟件運行維護三個時期組成。軟件計劃時期分為問題定義、可行性研究、需求分析三階段。軟件開發(fā)時期分為軟件概要設計、軟件詳細設計、軟件實現(xiàn)、綜合測試等階段。軟件運行過程中需要不斷地進行維護,使軟件持久滿足用戶需要。91.4軟件開發(fā)模型1.4.1瀑布模型(WaterfallModel)
101.4.2快速原型模型快速原型模型(RapidPrototypeModel)是快速開發(fā)一個可以運行的原型系統(tǒng),通常有三種類型:漸增式的原型:也稱增量模型。用于驗證軟件需求的原型。用于驗證設計方案的原型。111.4.3增量模型增量方式包括:增量開發(fā)增量提交121.4.4噴泉模型適用于面向對象方法。主張分析和設計過程的重疊、不嚴格區(qū)分。模塊集成過程:反復經過分析、設計、測試、集成,再分析、設計、測試、集成。
131.4.5螺旋模型
142.1軟件定義與可行性研究
系統(tǒng)定義的目的系統(tǒng)定義的任務2.1.1軟件定義1.明確系統(tǒng)目標規(guī)模、基本要求2.對現(xiàn)有系統(tǒng)的分析3.設計新系統(tǒng)可能的解決方案2.1.2可行性研究技術可行性經濟可行性社會因素方面的可行性2.1.3可行性研究的結論1.可以進行開發(fā)。2.需要等待某些條件3.需要對開發(fā)目標進行某些修改之后才能開發(fā)。4.不能進行或不必進行開發(fā)。152.2軟件工程開發(fā)計劃2.2.1軟件工程項目概述和實施計劃1.項目概述2.軟件工程實施計劃Gantt圖法工程網絡技術。2.2.2軟件開發(fā)計劃與復審項目開發(fā)計劃的編寫內容163.1需求分析任務需求分析的基本任務是軟件人員和用戶一起完全弄清用戶對系統(tǒng)的確切要求。需求分析是發(fā)現(xiàn)、逐步求精、建模、規(guī)格說明和復審的過程。3.1.1確定目標系統(tǒng)的具體要求(1)確定系統(tǒng)的運行環(huán)境要求(2)系統(tǒng)的性能要求(3)確定系統(tǒng)功能173.1需求分析任務3.1.2建立目標系統(tǒng)的邏輯模型模型是為了理解事物而對事物做出一種抽象,對事物的無歧義的書面描述。模型由一組圖形符號和組成圖形的規(guī)則組成。建模的基本目標是:描述用戶需求為軟件的設計奠定基礎定義一組需求,用以驗收產品。模型分為:數(shù)據(jù)模型:用實體—關系圖功能模型:用數(shù)據(jù)流圖行為模型:用狀態(tài)轉換圖數(shù)據(jù)字典用來描述軟件使用或產生的所有數(shù)據(jù)對象,并對各種圖形工具所不能表達的內容加以補充。18【例3.1】某高校醫(yī)療費管理系統(tǒng)
醫(yī)療費:校內門診費、校外門診費、住院費、子女醫(yī)療費。要求數(shù)據(jù)庫中存放每個職工的職工號、姓名、所屬部門。報銷時填寫所屬部門、職工號、姓名、日期、醫(yī)療費種類和數(shù)額。該校規(guī)定,每年每個職工的醫(yī)療費報銷有限額(如480元),限額在年初時確定,每個職工一年內報銷的醫(yī)療費不超過限額時可全部報銷;超過限額時,超出部分只可報銷90%。職工子女的醫(yī)療費也有限額(如240元)。醫(yī)療費管理系統(tǒng)每天記錄當天報銷的若干職工或職工子女的醫(yī)療費的類別、金額。讓系統(tǒng)自動結賬、統(tǒng)計當天報銷的醫(yī)療費總額,供出納員核對。每筆賬要保存?zhèn)洳?,每天所報銷的費用要和各個職工已報銷的金額累計起來,以檢查哪些職工已超額。系統(tǒng)要設計適當?shù)牟樵児δ?。年終結算、下一年度開始時,要對數(shù)據(jù)庫文件進行初始化,職工醫(yī)療費余額累加到下一年度的余額中。
193.2.1進行調查研究調查研究的目的:是了解用戶的真正需要調查研究的方法訪談:正式訪談和非正式訪談。分發(fā)調查表。開會—討論—確認的方法。203.2.2分析和描述系統(tǒng)的邏輯模型
1.建立起目標系統(tǒng)的邏輯模型2.沿數(shù)據(jù)流圖回溯3.2.3需求分析的復審內容包括:一致性完整性現(xiàn)實性有效性213.3需求分析圖形工具
實體-關系圖數(shù)據(jù)流圖狀態(tài)轉換圖
IPO圖。223.3.1實體-關系圖1.數(shù)據(jù)對象2.屬性3.關系【例3.2】學生成績管理系統(tǒng)233.3.2數(shù)據(jù)流圖
1、數(shù)據(jù)流圖的基本符號242、數(shù)據(jù)流圖的附加符號
*表示數(shù)據(jù)流之間是“與”關系(同時存在)+表示數(shù)據(jù)流之間是“或”關系⊕表示只能從幾個數(shù)據(jù)流中選一個(互斥關系)253、畫數(shù)據(jù)流圖的步驟
畫頂層數(shù)據(jù)流圖畫分層數(shù)據(jù)流圖畫總的數(shù)據(jù)流圖4、幾點注意事項【例3-3】畫學生成績管理系統(tǒng)的數(shù)據(jù)流圖。263.3.3狀態(tài)轉換圖
1.什么情況下要畫狀態(tài)轉換圖2.狀態(tài)轉換圖的符號【例3.4】畫出數(shù)據(jù)結構中“?!睂ο蟮臓顟B(tài)轉換圖。273.3.4IPO圖輸入/處理/輸出(InputProcessOutput)圖的簡稱?!纠?.5】畫出學生成績管理系統(tǒng)的IPO圖。283.4數(shù)據(jù)字典
數(shù)據(jù)字典(DataDictionary,DD)是對實體-關系圖、狀態(tài)轉換圖和數(shù)據(jù)流圖中出現(xiàn)的所有數(shù)據(jù)對象、屬性、關系、狀態(tài)、數(shù)據(jù)流、文件、處理等元素的定義的集合。3.4.1數(shù)據(jù)字典的內容1.數(shù)據(jù)元素2.數(shù)據(jù)流3.數(shù)據(jù)存儲4.數(shù)據(jù)處理293.4.2數(shù)據(jù)字典使用的符號
=表示“等價于”或“定義為”+連接[],|表示“或”,用“|”分隔,表示可任選其中某一項{}表示“重復”
()表示“可選”,用“,”號隔開1{A}表示A的內容至少要出現(xiàn)1次。{B}表示B的內容允許重復0
至任意次。如:成績單=學號+姓名+1{課程名+成績}3也可寫為成績單=學號+姓名+{課程名+成績}30
3.5需求分析文檔
3.5.1軟件需求規(guī)格說明框架:1.引言
2.信息描述3.功能描述
4.行為描述
5.確認標準
6.運行需求7.附錄。3.5.2編寫需求分析文檔的步驟編寫軟件需求分析說明書編寫初步的用戶手冊編寫確認測試的計劃,作為今后軟件確認和驗收的依據(jù)。修改、完善項目開發(fā)計劃。3.5.3用戶手冊編寫提示1.引言2.用途3.運行環(huán)境4.使用過程314.1概要設計步驟
概要設計的基本任務1.
審查可行性研究報告和需求分析規(guī)格說明書。2.
確定模塊結構、數(shù)據(jù)文件結構、系統(tǒng)接口設計和測試方案策略。3.
編寫概要設計說明書、用戶手冊和測試計劃。4.
復審。概要設計的基本步驟:進行軟件結構設計、數(shù)據(jù)文件設計、系統(tǒng)接口設計、測試方案設計、復審。324.1.1軟件結構設計1.設計供選擇的方案2.推薦最佳實現(xiàn)方案3.設計軟件結構4.1.2數(shù)據(jù)結構及數(shù)據(jù)庫設計數(shù)據(jù)結構設計數(shù)據(jù)庫設計4.1.3系統(tǒng)接口設計系統(tǒng)接口包括內部接口、外部接口和用戶接口。數(shù)據(jù)流圖和控制情況是接口設計的基礎。4.1.4設計測試方案在概要設計階段,測試方案主要根據(jù)系統(tǒng)功能來設計,稱為黑盒法測試。334.2軟件設計的基本原理
4.2.1模塊與信息隱蔽(1)模塊模塊(module)是能夠單獨命名,能獨立地完成一定功能,由邊界元素限定的程序元素的序列。模塊的基本屬性:名稱、接口、功能、邏輯、狀態(tài)。(2)信息隱蔽指在設計和確定模塊時,使一個模塊內包含的信息,對于不需要這些信息的其他模塊來說,是不能訪問的。344.2.2模塊化模塊化(Modularization)是把系統(tǒng)分割成能完成獨立功能的模塊。1.模塊化可產生的效果2.模塊分割方法(1)抽象與詳細化(2)根據(jù)功能來劃分模塊
①橫向分割
②縱向分割③先確定中心控制模塊,由控制模塊指示從屬模塊,逐次進行分解。354.2.3模塊的耦合和內聚
1.模塊的耦合軟件結構中模塊之間互相依賴的程度用耦合來度量。數(shù)據(jù)耦合控制耦合公共環(huán)境耦合內容耦合總之,應:在盡量使用數(shù)據(jù)耦合,少用控制耦合。用參數(shù)傳遞信息,不采用內容耦合,盡量控制公共環(huán)境耦合。362.模塊的內聚
一個模塊內各個元素彼此結合的緊密程度用內聚來度量。(1)偶然內聚(2)邏輯內聚(3)時間內聚
(4)通信內聚
(5)順序內聚
(6)功能內聚內聚按緊密程度從低到高排列:偶然內聚、邏輯內聚、時間內聚、通信內聚、功能內聚。374.2.4軟件結構設計優(yōu)化準則1.提高模塊獨立性2.模塊接口的準則模塊的接口要簡單、清晰,含義明確,便于理解,易于實現(xiàn)、測試與維護。3.模塊的作用范圍應在控制范圍之內4.模塊的深度、寬度、扇出和扇入應適當5.模塊的大小應適中384.3軟件結構設計的圖形工具
4.3.1層次圖(或HIPO圖)394.3.2結構圖
1.結構圖的符號(1)方框代表模塊,框內注明模塊的名字和主要功能。(2)方框之間的大箭頭或直線表示模塊的調用關系。(3)帶注釋的小箭頭表示模塊調用時傳遞的信息及其傳遞方向。尾部加空心圓的小箭頭表示傳遞數(shù)據(jù)信息。尾部加實心圓的小箭頭表示傳遞控制信息。(4)選擇結構(5)循環(huán)結構,模塊H循環(huán)調用模塊A,B,C,見圖4.5(b)。402.結構圖的繪制
【例4-6】學生成績管理系統(tǒng)的結構圖414.4概要設計方法4.4.1結構化方法結構化方法又稱面向數(shù)據(jù)流設計方法(StructuredDesign,SD)。設計步驟是先根據(jù)系統(tǒng)數(shù)據(jù)流圖建立系統(tǒng)邏輯模型,再進行結構設計。1.建立系統(tǒng)邏輯模型(1)變換型數(shù)據(jù)流(2)事務型數(shù)據(jù)流【例4.7】學生成績管理系統(tǒng)系統(tǒng)屬于變換型數(shù)據(jù)流?!纠?.8】工資管理系統(tǒng)屬于事務型數(shù)據(jù)流?!纠?.9】醫(yī)療費管理系統(tǒng)中事務型、變換型兩種數(shù)據(jù)流同時存在
2.完成軟件結構設計424.4.2面向數(shù)據(jù)結構設計方法
Jackson把數(shù)據(jù)結構(或程序結構)分為以下三種基本類型:(a)順序(b)選擇(c)循環(huán)43Jacksan圖特點:
l
能對結構進行自頂向下分解,可以清晰地表示層次結構
l
結構易讀、形象、直觀
l
既可表示數(shù)據(jù)結構也可表示程序結構
Jackson設計方法的四個步驟:1、分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結構;2、找出輸入數(shù)據(jù)結構和輸出數(shù)據(jù)結構中有對應關系的數(shù)據(jù)單元;3、從描述數(shù)據(jù)結構的Jackson圖導出描述程序結構的Jackson圖;4、列出所有的操作和條件,并把它們分配到程序結構圖中去。
44【例4.11】用Jacksan方法對學生成績管理系統(tǒng)進行結構設計。例3.2學生成績管理系統(tǒng)在學生入學時輸入學生基本信息。每次單科成績是按班級內學生學號的順序依次輸入每位學生的平時成績和考試成績,成績輸入格式見表4.1。然后由計算機計算每位學生的單科成績總評分。輸出的學生個人成績單格式,見表4.2;班級各科成績匯總表格式,見表4.3。4546474.5代碼設計
1.代碼的定義和作用代碼是為了對數(shù)據(jù)進行識別、分類、排序等操作所使用的數(shù)字、文字或符號。2.代碼的性質
4.5.1代碼設計原則1、標準化:國際標準、國家標準、部頒標準或習慣標準2、惟一性
3、可擴充性4、
簡單性5、規(guī)范化6、適應性
484.5.2代碼種類
1.順序碼
2.信息塊碼
3.歸組分類碼
見表4.4歸組代碼示例
4.助記碼
5.數(shù)字式字符碼
6.組合碼
49表4.4歸組代碼示例信息代碼哲學100宗教200社會科學300法律320商法325公司法3252股份公司法32524合股公司法32525504.5.3代碼設計方法
基本步驟如下:1.確定編碼對象2.明確編碼目的3.確定代碼的個數(shù)4.確定代碼使用范圍和使用期限5.確定代碼體系和代碼位數(shù)6.確定編碼規(guī)則7.編寫代碼8.編寫代碼詞典514.6數(shù)據(jù)輸入輸出設計4.6.1輸入設計4.6.2輸出設計524.7數(shù)據(jù)安全設計
軟件系統(tǒng)發(fā)生的事故類型。數(shù)據(jù)安全控制方法:1.檢查數(shù)據(jù)的正確性、完整性2.檢查用戶使用權限3.系統(tǒng)運行日志4.監(jiān)督檢查違規(guī)行為5.加密6.數(shù)據(jù)安全受破壞時的措施534.8概要設計文檔與復審
4.8.1概要設計說明書4.8.2概要設計復審4.8.3數(shù)據(jù)庫設計說明書54詳細設計的主要任務:
過程設計和系統(tǒng)界面設計系統(tǒng)界面設計要完成系統(tǒng)外部接口、系統(tǒng)內部模塊接口和用戶界面的設計。用戶界面設計是軟件與使用它的人之間的通信接口的設計。過程設計的任務是設計軟件結構中每個模塊功能的實現(xiàn)算法。結構化設計建立在自頂向下設計、逐步求精方法和數(shù)據(jù)流分析等原則基礎上。結構化設計只用三種基本控制結構:順序結構、條件結構和循環(huán)結構。555.1用戶界面設計
5.1.1用戶界面設計問題1.系統(tǒng)響應時間2.用戶幫助設施3.出錯信息處理4.命令交互5.1.2用戶界面設計過程用戶界面設計是一個迭代的過程,一般步驟如下:先設計和實現(xiàn)用戶界面原型。用戶試用該原型,向設計者提出對界面的評價。設計者根據(jù)用戶的意見修改設計并實現(xiàn)下一級原型。不斷進行下去,直到用戶滿意為止。5.1.3用戶界面設計的基本原則(1)可靠性(2)簡單性(3)易學習性和易使用性(4)立即反饋性5.1.4用戶界面設計指南1.一般交互2.信息顯示3.數(shù)據(jù)輸入56
5.2過程設計
過程設計就是用順序、選擇和循環(huán)三種結構的有限次組合或嵌套,描述模塊功能的實現(xiàn)算法。過程設計階段的工具:流程圖、N_S圖、問題分析圖(PAD圖)、判定表、判定樹、過程設計語言(PDL)等。5.2.1流程圖1.流程圖的分類(1)數(shù)據(jù)流程圖(2)程序流程圖(3)系統(tǒng)流程圖(4)程序網絡圖(5)系統(tǒng)資源圖572.流程圖符號583.流程圖使用約定
594.流程圖的三種基本結構:
順序、選擇、循環(huán)。
605.2.2盒圖
盒圖是Nassi和Shneiderman提出的,又稱N_S圖。
1.盒圖的符號61【例5.1】將下述含有GOTO語句的用程序流程圖,改為N_S圖。
62【例5.2】學生成績管理系統(tǒng)的N-S圖。
635.2.3PAD圖
基本符號64【例5.3】學生成績管理系統(tǒng)的PAD圖
655.2.4判定表
1.判定表的組成左上部列出所有條件。左下部列出所有可能做的工作。右上部每一列表示各種條件的一種可能組合,所有列表示條件組合的全部可能情況。右下部的每一列是和每一種條件組合所對應的應做的工作。2.判定表中的符號右上部用“T”表示條件成立,用“F”表示條件不成立,空白表示條件成立與否不影響。右下部畫“X”表示做該行左邊列出的那項工作,空白表示不做該項工作。66例5.4用判定表表示旅游票價的優(yōu)惠規(guī)定。
某旅行社根據(jù)旅游淡季、旺季及是否團體訂票,確定旅游票價的折扣率。具體規(guī)定如下:人數(shù)在20人以上的屬團體,20人以下的是散客。每年的4-5月、7-8月、10月為旅游旺季,其余為旅游淡季。旅游旺季,團體票優(yōu)惠5℅,散客不優(yōu)惠。旅游淡季,團體票優(yōu)惠30℅,散客優(yōu)惠20℅。用判定表表示旅游訂票的優(yōu)惠規(guī)定。67例5.5用判定樹表示旅游價格優(yōu)惠規(guī)定。某旅行社根據(jù)旅游淡季、旺季及是否團體訂票,確定旅游票價的折扣率。具體規(guī)定如下:人數(shù)在20人以上的屬團體,20人以下的是散客。每年的4-5月、7-8月、10月為旅游旺季,其余為旅游淡季。旅游旺季,團體票優(yōu)惠5℅,散客不優(yōu)惠。旅游淡季,團體票優(yōu)惠30℅,散客優(yōu)惠20℅。用判定表表示旅游訂票的優(yōu)惠規(guī)定。685.2.6過程設計語言
過程設計語言(ProgramDesignLanguage,簡稱PDL),也稱偽碼,是一種混雜語言,說明某種結構化的程序設計語言的語法形式。用PDL表示的程序結構:1順序結構
處理1處理2
…處理3選擇結構
IF-THEN-ELSE結構:IF條件處理1ELSE處理2ENDIFIF-THEN結構:IF條件處理1NDIF69CASE結構:CASE條件OFCASE(1)處理1CASE(2)處理2
…CASE(n)處理n3。循環(huán)結構FOR循環(huán)結構:FORi=1TOn循環(huán)體ENDFORWHILE循環(huán)結構:WHILE條件循環(huán)體ENDWHILEUNTIL循環(huán)結構:REPEAT循環(huán)體UNTIL條件704.模塊定義和調用模塊定義PROCEDURE模塊名(參數(shù))
…RETURE模塊調用CALL模塊名(參數(shù))數(shù)據(jù)定義DECLARE類型變量名,…其中,類型可以有:字符、整型、實型、雙精度、指針、數(shù)組及結構等類型。5.輸入或輸出GET(輸入變量表)PUT(輸出變量表)715.3詳細設計文檔與復審5.3.1詳細設計說明書5.3.2操作手冊編寫提示5.3.3詳細設計的復審用下列形式之一完成:設計者和設計組的另一成員一起進行靜態(tài)檢查;由檢查小組進行較正式的軟件結構設計檢查;由檢查小組進行正式的設計檢查,對軟件設計質量給出評價。72
用戶界面設計的質量直接影響用戶對軟件產品的評價,應對用戶界面設計給以足夠的重視。過程設計應在數(shù)據(jù)設計、概要設計、接口設計完成之后進行,是詳細設計階段應完成的主要任務。詳細設計階段使用的工具:流程圖、N_S圖、PAD圖、判定表、判定樹、過程設計語言(PDL)等,讀者應當熟練掌握這些工具。736.1結構化程序設計方法
1.什么是結構化程序設計結構化程序(StructuredProgram)是由基本的控制結構,構造而成的程序。每個控制結構只有一個入口點和一個出口點。結構化程序設計(StructuredProgramming,SP)結構化程序設計強調對模塊采用自上而下、逐步細化的設計方法;不主張用GOTO語句來隨意轉移程序的控制;主張僅采用順序、選擇、重復三種基本控制結構;每種基本控制結構只有一個入口、一個出口、完成一個操作;將這三種基本控制結構根據(jù)程序的邏輯,嵌套或組合成結構化程序,完成預定的功能。2.結構化程序設計的特點源程序有清晰性,并能較好地適合自頂向下或自底向上的程序設計技術。在詳細設計階段,使系統(tǒng)結構具有模塊化和清晰性的特性。在軟件編碼階段,使軟件易于理解、修改,便于重復使用。746.2選擇程序設計語言1.程序設計語言的分類(1)面向機器語言:包括機器語言和匯編語言。(2)高級程序設計語言2.高級語言選用的實用標準(1)項目的應用領域(2)軟件開發(fā)環(huán)境(3)根據(jù)系統(tǒng)用戶的要求來選擇(4)軟件開發(fā)人員的知識
如果和其他標準不矛盾,則應選擇一種軟件開發(fā)人員熟悉的語言,使開發(fā)速度更快,質量更易保證。但是開發(fā)人員應仔細分析軟件項目的類型,敢于學習新知識、掌握新技術。756.3程序設計風格源程序文檔編寫規(guī)則1.源程序文檔編寫時,其標識符名稱、注解和程序布局等要合理。2.數(shù)據(jù)說明3.語句構造要簡單直接4.輸入輸出語句5.程序效率程序設計主要應考慮的是程序的正確性、可理解性、可測試性和可維護性。766.4程序設計質量的評價正確性清晰的結構易使用性易維護性簡單性易移植性776.5程序設計文檔軟件編碼階段的主要文檔是源程序。程序設計文檔在保存時要記載:開發(fā)時間、開發(fā)者、測試記錄、用戶手冊等。每次程序修改要及時更改程序所對應的各項軟件配置。786.6軟件測試目標和原則6.6.1軟件測試目標(1)軟件測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;(2)好的測試方案能夠發(fā)現(xiàn)尚未發(fā)現(xiàn)的錯誤;(3)成功的測試是發(fā)現(xiàn)了尚未發(fā)現(xiàn)的錯誤的測試。軟件測試的目的是,通過人工或計算機執(zhí)行程序來有意識地發(fā)現(xiàn)程序中的設計錯誤和編碼錯誤。6.6.2測試原則796.7軟件測試方法
6.7.1靜態(tài)分析與動態(tài)測試1.靜態(tài)分析2.動態(tài)測試:以執(zhí)行程序并分析程序來查錯。為了進行軟件測試,需要預先準備好兩種數(shù)據(jù):①輸入數(shù)據(jù);②預期的輸出結果。我們把以發(fā)現(xiàn)錯誤為目標的用于軟件測試的輸入數(shù)據(jù)及與之對應的預期輸出結果叫測試用例。6.7.2黑盒法與白盒法1.黑盒法黑盒法(Black.BoxTesting)又稱功能測試,其測試用例完全是根據(jù)程序的功能說明來設計的。2.白盒法白盒法(WhiteBoxTesting)又稱結構測試,其測試用例是根據(jù)程序內部的邏輯結構和執(zhí)行路徑來設計的。常把黑盒法和白盒法聯(lián)合起來進行,這也稱為灰盒法。806.8軟件測試步驟
6.8.1模塊測試模塊測試也稱單元測試,其目的是檢查每個模塊是否能獨立、正確地運行。模塊測試通常在程序設計時進行。驅動程序代替主程序,用來測試子程序。存根程序也稱“虛擬子程序”,測試主模塊。6.8.2集成測試子系統(tǒng)的組裝稱為集成化。集成測試分為子系統(tǒng)測試和系統(tǒng)測試兩種。漸增式測試、非漸增式測試1、自頂向下集成2、自底向上集成6.8.3程序審查會和人工運行1.程序審查會2.人工運行6.8.4確認測試1.確認測試必須有用戶積極參與,或以用戶為主進行。2.軟件配置復審3.Alpha測試和Beta測試6.8.5平行運行816.9設計測試方案測試方案包括三個內容:要測試的功能輸入的數(shù)據(jù)對應的預期輸出結果826.9.1等價類劃分法1、方法2、等價類劃分的規(guī)則3、等價類劃分法步驟4、等價類測試步驟6.9.2邊界值分析法6.9.3錯誤推測法6.9.4邏輯覆蓋法1.語句覆蓋2.判定覆蓋3.條件覆蓋4.判定/條件覆蓋5.條件組合覆蓋6.點覆蓋7.邊覆蓋8.路徑覆蓋83【例6.1】按不同邏輯覆蓋法設計測試數(shù)據(jù)
例6.1測試數(shù)據(jù)的條件組合及對應的執(zhí)行路徑846.9.5因果圖法1.因果圖法測試用例設計步驟2.因果圖基本符號圖6.3因果圖基本符號853.因果圖約束符號
86【例6.2】用因果圖法設計測試用例某規(guī)格說明規(guī)定:輸入的第一列字符必須是A或B,第二列字符必須是一個數(shù)字。第一、二列都滿足條件時執(zhí)行操作H;如果第一列字符不正確,則給出信息L;如果第二列字符不正確,則給出信息R。根據(jù)上述要求畫出因果圖,并設計測試用例。87圖6.5例6.2因果圖
表6.2例6.2判定表886.9.6實用測試策略
用等價類劃分法設計測試方案。
使用邊界值分析方法,既測試輸入數(shù)據(jù)的邊界情況又包括輸出數(shù)據(jù)的邊界情況。(3)如果含有輸入條件的組合情況,一開始就用因果圖法。(4)必要時用錯誤推斷法補充測試方案。(5)用邏輯覆蓋法檢查現(xiàn)有測試方案,若沒有達到邏輯覆蓋標準,再補充一些測試用例?!纠?.3】對學生成績管理系統(tǒng)“輸入學生成績”子模塊設計測試用例。896.10軟件調試、驗證與確認
6.10.1軟件調試軟件調試也稱糾錯。首先進行軟件測試,第二步是糾錯6.10.2程序正確性驗證(軟件驗證)是確定軟件開發(fā)周期中的一個給定階段的產品是否達到需求的過程。6.10.3軟件確認軟件確認的方法:1.系統(tǒng)功能和性能滿足需求說明書中的全部要求,得到用戶認可。2.完成測試計劃中的所有要求,并書寫測試分析報告和開發(fā)總結。3.按用戶手冊和操作手冊進行軟件實際運行。本階段結束時應完成的文檔有:1.測試分析報告;2.經確認的用戶手冊和操作手冊;3.軟件開發(fā)總結。906.11軟件測試計劃和分析報告1.軟件測試計劃2.測試說明文件測試設計說明測試用例說明測試規(guī)程說明3.軟件測試分析報告91第6章小結
程序設計也稱軟件編碼,通過軟件編碼得到軟件設計的結果。在設計應用軟件時,應當優(yōu)先選用高級程序設計語言,只有三種情況選用匯編語言。結構化程序設計是將順序、選擇、重復三種基本控制結構進行組合和嵌套,以容易理解的形式和避免使用GOTO語句等原則,進行的程序設計方法。軟件設計風格直接影響軟件的質量,影響軟件的可維護性和可移植性。軟件編碼階段應對源程序進行靜態(tài)分析和模塊測試,以保證程序的正確性。軟件測試(testing)是由人工或計算機來執(zhí)行或評價系統(tǒng)或系統(tǒng)部件的過程,以驗證它是否滿足規(guī)定的需求或識別期望的結果和實際結果之間有無差別。測試的根本任務是發(fā)現(xiàn)并改正軟件中的錯誤。測試過程的早期使用白盒法,后期使用黑盒法。設計測試方案的基本目標是,選用盡可能少的高效測試數(shù)據(jù),做到盡可能完善的測試,從而盡可能多地發(fā)現(xiàn)軟件中的錯誤。92
1.使用邊界值分析方法。既包括輸入數(shù)據(jù)的邊界情況又包括輸出數(shù)據(jù)的邊界情況。2.用等價類劃分法補充測試方案。3.必要時用錯誤推斷法補充測試方案。4.用邏輯覆蓋法檢查現(xiàn)有測試方案,若沒有達到邏輯覆蓋標準,再補充一些測試方案。軟件調試是查找、分析和糾正程序中錯誤的過程。測試和調試常常交替進行。軟件確認是指在軟件開發(fā)過程結束時,對所開發(fā)的軟件進行評價,以確定它是否和軟件需求相一致的過程。937.1.2結構性維護與非結構性維護
947.1.3維護的費用
7.1.4維護的困難
7.1.5維護的實施
1.維護組織2.維護文檔有兩種:維護要求表,維護修改報告。3.維護的流程(1)確定類型(2)維護記錄的保存(3)維護的復審7.1.6維護的副作用編碼副作用數(shù)據(jù)副作用文檔副作用957.2軟件的可維護性軟件可維護性指軟件被理解、改正、調整和改進的難易程度。7.2.1決定可維護性的因素是否擁有一組訓練有素的軟件人員;系統(tǒng)結構是否可理解、是否合理;文檔結構是否標準化;測試用例是否合適;是否已有嵌入系統(tǒng)的調試工具;是否使用標準的程序設計語言;是否使用標準的操作系統(tǒng)和程序設計語言等。967.2.2可維護性的度量
7.2.3提高軟件的可維護性1.明確軟件工程的質量目標2.利用先進的軟件技術和工具3.選擇便于維護的程序設計語言4.采取有效的質量保證措施5.完善程序的文檔97
軟件維護(softwaremaintenance)就是在軟件產品交付之后對其進行修改,以糾正故障,或改進性能和其它屬性,或使產品適應改變了的環(huán)境。四種軟件維護:改正性維護、適應性維護、完善性維護和預防性維護。軟件可維護性就是維護人員對該軟件進行維護的難易程度,具體包括理解、改正、改動和改進該軟件的難易程度。提高軟件的可維護性是軟件工程各階段追求的目標之一。在開發(fā)時明確質量目標、考慮軟件的維護問題是必須的、重要的。在軟件開發(fā)階段提供完整、一致的文檔,采用先進的軟件開發(fā)方法和軟件開發(fā)工具是提高軟件可維護性的關鍵。98面向對象方法簡稱為OO(ObjectedOriented)方法面向對象分析(ObjectOrientedAnalysis,簡稱OOA)面向對象設計(ObjectOrientedDesign,簡稱OOD)統(tǒng)一建模語言UML(UnifiedModelingLanguage)是一種直觀的、通用的、可視化建模語言。本章主要內容:面向對象方法概述
UML概述
UML圖本章重點:面向對象方法學的主要概念
UML圖998.1面向對象方法概述
對象(Object):面向對象方法把客觀世界中的實體抽象為問題域中的對象。類(Class):類是對具有相同數(shù)據(jù)和相同操作的一組相似對象。繼承(Inheritance):在層次結構中,下層的派生類具有和上層的基類相同的特性(包括數(shù)據(jù)和方法),這種現(xiàn)象稱為繼承。消息傳遞:對象彼此之間僅能通過傳遞消息相互聯(lián)系。封裝性:對象的信息都被封裝在該對象類的定義中,必須發(fā)消息請求它執(zhí)行其某個操作,處理它的數(shù)據(jù),不能從外界直接對它的數(shù)據(jù)進行操作。OO=Objects+Classes+Inheritance+CommunicationwithMessages面向對象=對象+類+繼承+消息傳遞1008.1.1面向對象方法學的主要優(yōu)點
1.與人類習慣的思維方法一致2.穩(wěn)定性好3.可重用性好4.較易開發(fā)大型軟件產品5.可維護性好1018.1.2面向對象的概念
1.對象(object)(1)對象的定義:在應用領域中有意義的、與所要解決的問題有關系的任何事物都可作為對象。
(2)對象的特點2.類(Class):類是具有相同屬性和相同方法的一組對象的集合。3.實例(Instance):一個對象是類的一個實例。4.屬性(Attribute):是類中所定義的數(shù)據(jù)。5.消息(Message):消息就是向對象發(fā)出的服務請求。6.方法(Method):方法是對象所能執(zhí)行的操作,是類中所定義的服務。7.封裝(Encapsulation)8.繼承(Inheritance)
單繼承和多重繼承。9.多態(tài)性(Polymorphism)10.重載(Overloading)1028.2UML概述
8.2.1UML的發(fā)展統(tǒng)一建模語言UML(UnifiedModelingLanguage)模型由一組圖形符號和組織這些符號的規(guī)則組成,模型的描述應當無歧義。8.2.2UML設計目標和內容UML是一種描述、構造、可視化和文檔化的軟件建模語言。UML是面向對象技術軟件分析與設計中的標準建模語言統(tǒng)一了面向對象建模的基本概念、術語及其圖形符號,建立了便于交流的通用語言。1.UML的設計目標2.UML的內容包括UML語義、UML表示法和幾種模型。UML表示法由UML圖、視圖、模型元素、通用機制和擴展機制組成。103UML表示法:
由UML圖、視圖、模型元素、通用機制和擴展機制組成。
(1)圖(diagram)5類9種圖。
1)用例圖
2)靜態(tài)圖:包括類圖及包、對象圖。
3)行為圖:包括狀態(tài)圖和活動圖
4)交互圖:包括順序圖和合作圖
5)實現(xiàn)圖:包括構件圖和配置圖
(2)視圖(view)(3)模型元素(modelelement)(4)通用機制:(5)擴展機制:標簽、約束、版型UML模型:用例模型靜態(tài)模型動態(tài)模型1048.3UML圖以下幾種符號在各種UML圖中可能都要用。注釋(a)消息(b)105
8.3.1用例圖
用例圖從用戶的角度描述系統(tǒng)功能,并指出各功能的操作者。
(1)用例
(2)執(zhí)行者:執(zhí)行者也稱為角色,用一個小人圖形表示。
(3)通信聯(lián)系
(4)腳本
106【例8.1】飲用水自動售水系統(tǒng)如果投入1元硬幣,則自動放水5立升;投入5角硬幣,放水2.5立升;如果選擇1元,投入2個硬幣,也可放水5立升。如果飲用水來不及生成,會把硬幣落下來并亮紅燈。硬幣由收銀員定時回收。1078.3.2類圖和包
1.類圖的符號屬性的語法格式為:可見性屬性名:類型名=初值{性質串}操作的語法規(guī)則為:可見性操作名(參數(shù)表):返回值類型{性質串}1082.類的關聯(lián)關系
類的關聯(lián)關系表示類與類之間存在某種聯(lián)系。
普通關聯(lián)限定關聯(lián)關聯(lián)類共享聚集復合聚集1093.類的一般-特殊關系4.類的依賴關系.1105.類的細化關系:
用于表示類的模型的相互關系。
類圖可分為三個層次概念層類圖說明層類圖實現(xiàn)層類圖1116.包重用等價原則共同閉包原則共同重用原則非循環(huán)依賴原則8.3.3對象圖對象有三種表示方式:對象名:類名:類名對象名1128.3.4狀態(tài)圖
【例8.2】狀態(tài)機舉例1138.3.5順序圖
順序圖有兩個方向:
【例8.3】用順序圖描述打電話的操作過程。
1148.3.6活動圖
活動圖(activitydiagram)是狀態(tài)圖的一種特殊情況。
【例8.4】用活動圖描述打電話過程。
115.3.7協(xié)作圖1168.3.8構件圖1178.3.9部署圖
含有以下要素:結點及其連接,構件及其接口,對象。
【例8.5】用部署圖描述使用金龍卡的飲食銷售系統(tǒng)。1189.1面向對象分析9.1.1面向對象分析過程1.分析對象的屬性、服務及消息的傳遞。2.分析對象在系統(tǒng)中的不同狀態(tài)及狀態(tài)的轉換。建立三種模型:描述系統(tǒng)數(shù)據(jù)結構的對象模型。描述系統(tǒng)控制結構的動態(tài)模型。描述系統(tǒng)功能的功能模型。9.1.2面向對象分析原則1.包含原則2.排斥原則1199.2建立對象模型
9.2.1確定對象和類1.對象2.類類是具有相同屬性和服務的一組對象的集合。對象有三種表示方式:對象名:類名:類名對象名1209.2.2確定類的相互關系1.類的一般-特珠關系1212.聚集關系
“整體—部分”關系1223.關聯(lián)關系階鏈屬性限定123【例9.1】教師指導學生畢業(yè)設計,多對多關聯(lián)的分解。1244.主動對象
一組屬性和一組服務的封裝體,其中至少有一個服務不需要接收消息就能主動執(zhí)行(稱為主動服務)。125
9.2.3劃分主題
【例9.2】商品銷售管理系統(tǒng)主題圖1269.3建立動態(tài)模型
9.3.1編寫腳本
【例9.3】打電話、通話過程的腳本打電話、通話過程的一系列事件列出如下:打電話者拿起電話受話器電話撥號音開始打電話者撥數(shù)字(8)電話撥號音結束打電話者撥數(shù)字(2).......打電話者撥數(shù)字(3)如果電話號碼撥錯,交換機提示出錯信息;如果號碼正確,且對方空閑,則接電話者的電話開始振鈴鈴聲在打電話者的電話上傳出如果在30秒鐘內,接電話者拿起話筒接電話者的電話停止振鈴打電話者的電話停止振鈴通電話.........接電話者掛斷電話電話切斷打電話者掛斷電話如果撥號正確,對方忙,打電話者的電話上傳出忙音如果接電話者在30秒鐘內,不接聽電話,雙方電話停止振鈴1279.3.2設計用戶界面
9.3.3畫UML順序圖或活動圖
【例9.4】畫出招聘考試管理系統(tǒng)的順序圖
某市人事局舉行統(tǒng)一招聘考試。首先,各招聘單位向人事局登記本單位各專業(yè)的招聘人數(shù),由人事局向社會公布招聘情況;考生報名、填志愿;人事局組織安排考試;錄入考試成績;向考生和招聘單位公布成績;招聘單位進行錄用;發(fā)錄用通知書。這里,共有三個對象類:人事局、考生和招聘單位。128【例9.4】畫出招聘考試管理系統(tǒng)的順序圖1299.3.4畫狀態(tài)轉換圖
【例9.5】分別畫出旅館管理系統(tǒng)中旅客和床位的狀態(tài)轉換圖。1309.4建立功能模型
確定輸入、輸出值數(shù)據(jù)流圖中的輸入、輸出值是系統(tǒng)與外部之間進行交互的事件的參數(shù)。畫數(shù)據(jù)流圖定義服務1319.5面向對象設計9.5.1系統(tǒng)設計1.將系統(tǒng)分解為子系統(tǒng)2.設計問題域子系統(tǒng)3.設計人-機交互子系統(tǒng)4.設計任務管理子系統(tǒng)5.設計數(shù)據(jù)管理子系統(tǒng)9.5.2對象設計1.對象描述2.設計類中的服務3.設計類的關聯(lián)4.鏈屬性的實現(xiàn)5.設計的優(yōu)化1329.5.3面向對象設計的準則1.模塊化2.抽象3.信息隱藏4.低耦合(弱耦合)5.高內聚(強內聚)6.重用性9.5.4面向對象設計的啟發(fā)規(guī)則1.設計結果應該清晰易懂2.一般—特殊結構的深度應適當3.設計簡單的類4.使用簡單的協(xié)議5.使用簡單的服務6.把設計變動減到最小1339.6UML的應用
9.6.1UML模型1.用例模型2.靜態(tài)模型3.動態(tài)模型4.實現(xiàn)模型1349.6.2UML視圖視圖域視圖圖主要概念結構分類靜態(tài)視圖類圖類、關聯(lián)、泛化、依賴關系、實現(xiàn)、接口用例視圖用例圖用例、執(zhí)行者、關聯(lián)、擴展、包含、用例繼承實現(xiàn)視圖構件圖構件、接口、依賴關系、實現(xiàn)動態(tài)行為部署視圖部署圖結點、構件、依賴關系、位置。狀態(tài)視圖狀態(tài)圖狀態(tài)、事件、轉換、動作活動視圖活動圖狀態(tài)、活動、轉換、分叉、連接交互視圖順序圖交互、對象、消息、激活協(xié)作圖協(xié)作、交互、角色、消息模型管理模型管理視圖類圖包、子系統(tǒng)、模型??蓴U展性所有所有約束、版型、標簽值1359.6.3UML使用準則
選擇使用合適的UML圖只對關鍵事物建立模型分層次地畫模型圖模型應具有協(xié)調性模型和模型的元素大小適中1369.6.4UML的擴展機制1.標簽值2.約束3.版型9.6.5UML的應用領域UML的目標是,用面向對象的圖形方式來描述任何系統(tǒng)。UML適用于系統(tǒng)開發(fā)的全過程,應用于需求分析、設計、編碼和測試的所有階段。1379.7面向對象系統(tǒng)的實現(xiàn)9.7.1選擇程序設計語言1.選擇編程語言的關鍵因素2.面向對象語言的技術特點3.選擇面向對象語言的實際因素9.7.2面向對象程序設計1.提高軟件的可重用性2.可擴充性3.健壯性1389.7.3面向對象的測試
1.
面向對象的測試步驟分為四個層次:a)
算法層:測試類的每個服務。b)
類層:測試同一類中的所有服務與屬性之間相互作用。c)
模板層:測試協(xié)同工作的類之間的相互作用。d)
系統(tǒng)層:把子系統(tǒng)組裝成完整的面向對象軟件系統(tǒng),同時進行測試。2.面向對象的確認測試主要用黑盒法,根據(jù)動態(tài)模型和描述系統(tǒng)行為的腳本來設計測試用例。1399.8統(tǒng)一過程RUPRUP(RationalUnifiedProcess)9.8.1RUP的開發(fā)模式1409.8.2統(tǒng)一過程的特點1.基于構件2.使用UML統(tǒng)一建模語言3.Rational統(tǒng)一過程是用例驅動的4.RUP采用迭代增量方式5.Rational統(tǒng)一過程采用構架優(yōu)先方法9.8.3統(tǒng)一過程的要素.項目產品人員過程工具建議訪問中文網站
和http://www.uml。14110.1軟件開發(fā)工具
軟件開發(fā)工具是一種計算機程序系統(tǒng),用來幫助軟件的開發(fā)、維護和管理。1.軟件開發(fā)工具的功能是指在軟件開發(fā)過程中能提供哪些支持或幫助。2.軟件開發(fā)工具的性能則是支持或幫助的程度。3.軟件開發(fā)工具的分類4.軟件工具發(fā)展的特點10.2軟件工程環(huán)境1.軟件工程環(huán)境的定義軟件開發(fā)環(huán)境是指在計算機基本軟件的基礎上,為了支持軟件的開發(fā)而提供的一組工具軟件系統(tǒng)?!败浖こ汰h(huán)境是一組方法、過程及計算機程序的整體化構件,它支持從需求定義、程序生成直到維護的整個軟件生存周期?!?.軟件工程環(huán)境的分類3.軟件工程環(huán)境的構成和特性10.3CASE技術計算機輔助軟件工程(ComputerAidedSoftwareEngineering,CASE)技術是一組工具和方法的集合,可以輔助軟件生存周期各階段進行軟件開發(fā)活動。1.CASE技術種類2.CASE工具的分類3.CASE的集成14211.1可重用的軟件成分軟件的重用分為三個層次知識重用方法和標準的重用軟件成分的重用:源代碼的重用設計結果重用分析結果重用14311.2軟件重用過程11.2.1軟件重用過程模型1.軟件重用的組裝模型1442.類構件
實例重用
繼承重用
多態(tài)重用
3.軟件重用過程模型
14511.2.2開發(fā)可重用的軟件構件
分析過程開發(fā)可重用的軟件構件。傳播軟件構件。11.2.3分類和檢索軟件構件枚舉分類(EnumeratedClassification)刻面分類(FacetedClassification)屬性值分類(Attribute-ValueClassification)11.2.4軟件重用環(huán)境構件庫:存放軟件構件和檢索構件所需要的分類信息。構件庫管理系統(tǒng):管理對構件庫的訪問。軟件構件庫檢索系統(tǒng):用戶應用系統(tǒng)通過檢索系統(tǒng),檢索構件、重用構件。CASE工具:幫助用戶把重用的構件集成到新的設計中。14612.1軟件工程管理概述1.軟件產品的特點2.軟件工程管理的重要性3.軟件工程管理的內容包括對軟件開發(fā)成本、控制、開發(fā)人員、組織機構、用戶、軟件開發(fā)文檔、軟件質量等方面的管理。14712.2軟件規(guī)模估算12.2.1軟件開發(fā)成本估算方法12.2.2代碼行技術和任務估算技術1.代碼行技術2.任務估算技術14812.2.3功能點技術
信息域特性
輸入項數(shù)、輸出項數(shù)、查詢數(shù)、主文件數(shù)和外部接口數(shù)。
估算功能點的步驟
估算功能點的步驟有三個。
計算未調整的功能點數(shù)UFP149計算未調整的功能點數(shù)UFP
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf
其中,ai(1≤i≤5)是信息域特性系數(shù),值由相應特性的復雜級別決定。
計算技術復雜因子TCF序號技術因素Fi技術因子值1數(shù)據(jù)通信F12分布式數(shù)據(jù)處理F23性能標準F34高負荷的硬件F45高處理率F56聯(lián)機數(shù)據(jù)輸入F67終端用戶效率F78聯(lián)機更新F89復雜的計算F912可重用性F1211安裝方便F1112操作方便F1213可移植性F1314可維護性F14150計算技術因子對軟件規(guī)模的綜合影響程度DI:技術復雜性因子TCP由下式計算:TCP=0.65+0.01×DI計算功能點數(shù)FP
FP=UFP×TCP15112.2.4COCOMO模型1.COCOMO(COnstructiveCOstMOdel)模型是Boehm提出的構造性成本模型。三種COCOMO模型1)基本COCOMO模型2)中級COCOMO模型3)高級COCOMO模型15212.2.4COCOMO模型
2.COCOMO估算公式1)基本COCOMO模型估算公式式中,E為開發(fā)所需的人力(人月),D為所需的開發(fā)時間(月),KLOC為估計提交的代碼行數(shù),ab,bb,cb和db是指不同軟件開發(fā)方式對應的值,導出生產率(代碼行/人月)和所需人員數(shù)的計算公式:生產率=(KLOC)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版灰土施工項目變更管理合同范本3篇
- 2025年度廣告創(chuàng)意策劃與制作服務合同3篇
- 二零二五年大蒜種植基地農機設備租賃合同2篇
- 二零二五年土方材料購銷及工程變更評估合同3篇
- 2025年度能源設施安全監(jiān)控服務合同
- 電子商務項目合同
- 2025版家用空調租賃及售后安裝維護合同3篇
- 2024年高頻開關逆變電源項目可行性研究報告
- 2025版?zhèn)鶆粘袚c財產分割離婚協(xié)議范本
- 軍訓心得體會100字小學生作文
- 倍加福-KFU8-UFC-信號隔離或轉換模塊中文操作指導
- 大學生勞動教育課件:發(fā)展專業(yè)技能進行創(chuàng)造性勞動
- 2024年意識形態(tài)工作專題會議記錄【6篇】
- 北師大版九年級《數(shù)學》上冊全冊教案
- 人民大會堂介紹課件
- 建行家裝貸產品介紹
- 護理分級標準2023版(新舊標準對比詳解)
- 機電運輸安全基本知識
- XX藥業(yè)公司受試者日記卡
- 連鎖藥店GSP質量管理體系詳細文件
- 《電氣工程講》課件
評論
0/150
提交評論