軟件工程課件.ppt_第1頁
軟件工程課件.ppt_第2頁
軟件工程課件.ppt_第3頁
軟件工程課件.ppt_第4頁
軟件工程課件.ppt_第5頁
已閱讀5頁,還剩361頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件工程 內(nèi)容摘要 本書為配合國家技能型緊缺人才培養(yǎng)培訓工程并根據(jù) 計算機應用和軟件專業(yè)領(lǐng)域技能型緊缺人才培養(yǎng)培訓指導方案 的要求而編寫 本書針對職業(yè)院校學生的特點 充分體現(xiàn) 指導方案 中素質(zhì)為基礎(chǔ) 能力為本位 需求為依據(jù) 就業(yè)為導向的基本原則 教學內(nèi)容注重選擇當前軟件工程中的一些新理論 新方法與新技術(shù) 通過一個小型軟件項目為案例貫穿全書 使學生在學完后能基本掌握軟件工程的基本理論與方法在軟件項目開發(fā)中的實際應用 其主要內(nèi)容涉及軟件工程中的軟件策劃 需求分析 軟件設(shè)計 編碼實現(xiàn) 軟件測試及實施與維護等方面的內(nèi)容 考慮職業(yè)院校學生的就業(yè)定位 重點側(cè)重于詳細設(shè)計 軟件編碼 軟件測試 軟件維護這幾個方面的基本知識與技能 為保持教學內(nèi)容的先進性同時便于對教學進行科學靈活的組織 對諸如UML方法 面向?qū)ο蟮姆治?設(shè)計與編程 面向?qū)ο筌浖y試 CMM等也作了介紹 本書可以作為職業(yè)院校計算機類專業(yè)的軟件工程課程的教材或教學參考書 也可作為IT行業(yè)程序員 測試員 維護員等的培訓教材或參考書 主要內(nèi)容 第1章軟件工程概述 第2章系統(tǒng)策劃 第3章需求分析 第4章軟件設(shè)計 第5章編碼 第6章軟件測試 第7章軟件實施與維護 第8章軟件項目管理 第9章軟件過程管理 第一章軟件工程概述 本章主要內(nèi)容 1 1軟件與軟件工程 1 2軟件生存周期與開發(fā)模型 1 3軟件工程過程 1 4軟件開發(fā)工具簡介 1 5學習指南 11軟件及軟件工程 軟件 軟件的定義 在運行中能提供所希望的功能與性能的程序使程序能夠正確運行的數(shù)據(jù)及其結(jié)構(gòu)描述軟件研制過程和方法所用的文檔 軟件的特點 軟件角色的雙重性軟件不是傳統(tǒng)意義上的被制造軟件不會 磨損 但會退化軟件都是手工定制的開發(fā)過程的復雜與費用的昂貴 11軟件及軟件工程 軟件 軟件的分類 11軟件及軟件工程 軟件工程 軟件危機 軟件開發(fā)的生產(chǎn)率遠遠不能滿足客觀需要開發(fā)的軟件產(chǎn)品往往不能滿足用戶的實際需要軟件產(chǎn)品的質(zhì)量低下且可維護性差很難估計軟件開發(fā)的進度計劃與成本 軟件神話 有了軟件開發(fā)書籍 就可以解決軟件開發(fā)中的一切問題進度滯后了 好 增加程序員只要程序正確 項目就成功 文檔可有可無軟件質(zhì)量只能在正式投入運行后才知道 11軟件及軟件工程 軟件工程 軟件工程的定義 IEEE定義 軟件工程是將系統(tǒng)化的 嚴格約束的 可量化的方法應用于軟件的開發(fā) 運行和維護 即將工程化應用于軟件 通俗地說 軟件工程是指導軟件開發(fā)和維護的一門工程學科 它采用工程的概念 原理 技術(shù)和方法 把經(jīng)過時間檢驗而證明是正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起來 用于開發(fā)和維護軟件 11軟件及軟件工程 軟件工程 軟件工程 層次化技術(shù) 軟件工程三個要素 方法 工具 過程 11軟件及軟件工程 軟件工程 軟件工程的作用 成功案例 美國聯(lián)邦速遞公司 FedEX 的管理信息系統(tǒng) 失敗案例 英國倫敦的急救服務管理信息系統(tǒng) 軟件工程的基本原理 用分階段的生存周期計劃嚴格管理堅持進行階段評審實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應能清楚地審查開發(fā)小組的人員應該少而精承認不斷改進軟件工程實踐的必要性 12軟件生存周期與開發(fā)模型 生存周期 軟件生存周期 人的生存周期 嬰兒 幼兒 兒童 少年 青年 中年 老年 死亡 軟件的生存周期 軟件定義 軟件開發(fā) 軟件支持 問題定義 可行性分析 需求分析 概要設(shè)計 詳細設(shè)計 編碼 測試 軟件發(fā)布 軟件運行 維護或退役 12軟件生存周期與開發(fā)模型 生存周期 軟件定義階段 問題定義可行性分析立項或簽訂合同 軟件開發(fā)階段 需求分析軟件設(shè)計編碼與測試發(fā)布或安裝驗收 軟件開發(fā)階段 軟件的使用 運行軟件維護 12軟件生存周期與開發(fā)模型 開發(fā)模型 問題的提出 軟件工程需要解決什么問題 軟件開發(fā)模型 做什么軟件 怎么做軟件 軟件如何適應變化 軟件開發(fā)過程概括 是軟件工程思想的具體化它是跨越整個軟件生存周期的各個階段所需要的全部工作與任務的結(jié)構(gòu)框架 12軟件生存周期與開發(fā)模型 開發(fā)模型 瀑布模型 線性順序模型 可行性分析 需求分析 設(shè)計 編碼 測試 支持 12軟件生存周期與開發(fā)模型 開發(fā)模型 瀑布模型的特點 瀑布模型的應用范圍 階段間具有順序性和依賴性每個階段必須完成規(guī)定的文檔 每個階段結(jié)束前完成文檔審查 及早改正錯誤 但 開發(fā)過程一般不能逆轉(zhuǎn) 否則代價太大 實際的項目開發(fā)很難嚴格按該模型進行 客戶往往很難清楚地給出所有的需求 而該模型卻要求如此 軟件的實際情況必須到項目開發(fā)的后期客戶才能看到 這要求客戶有足夠的耐心 用戶的需求非常清楚全面 且在開發(fā)過程中沒有或很少變化開發(fā)人員對軟件的應用領(lǐng)域很熟悉 用戶的使用環(huán)境非常穩(wěn)定 開發(fā)工作對用戶參與的要求很低 12軟件生存周期與開發(fā)模型 開發(fā)模型 原型模型 用戶測試運行原型 建造 修改原型 聽取用戶意見 12軟件生存周期與開發(fā)模型 開發(fā)模型 原型模型的特點 原型模型的應用范圍 可以得到比較良好的需求定義 容易適應需求的變化 有利于開發(fā)與培訓的同步 開發(fā)費用低 開發(fā)周期短 維護容易且對用戶更友好 客戶與開發(fā)者對原型理解不同準確的原型設(shè)計比較困難不利于開發(fā)人員的創(chuàng)新 對所開發(fā)的領(lǐng)域比較熟悉而且有快速的原型開發(fā)工具項目招投標時 可以以原型模型作為軟件的開發(fā)模型進行產(chǎn)品移植或升級時 或?qū)σ延挟a(chǎn)品原型進行客戶化工作時 原型模型是非常適合的 12軟件生存周期與開發(fā)模型 開發(fā)模型 基于構(gòu)件的開發(fā)模型 特點 屬于演化式開發(fā)或迭代式開發(fā) 其開發(fā)過程 客戶的交流 獲得問題的定義標識基本類計劃與風險分析類的復用或重新開發(fā)構(gòu)造系統(tǒng)用戶評估 采用了先進的面向?qū)ο蠹夹g(shù) 基于構(gòu)件庫的開發(fā) 這是軟件復用的基礎(chǔ) 開發(fā)速度快 融合了螺旋模型特征支持軟件開發(fā)的迭代方法 是一種演化型的開發(fā)技術(shù) 13軟件工程過程 軟件工程過程的概念 ISO9000 過程 軟件工程的三要素之一從開發(fā)到維護軟件相關(guān)產(chǎn)品所采取一系列管理活動 主要包括項目管理 配置管理 質(zhì)量管理 文檔管理等 IS09001 設(shè)計 開發(fā) 生產(chǎn) 安裝和服務的質(zhì)量保證模式IS09002 生產(chǎn) 安裝和服務的質(zhì)量保證模式IS09003 最終檢驗和試驗的質(zhì)量保證模式 13軟件工程過程 CMM軟件能力成熟度模型 CMM CapabilityMaturityModel CMM的級別 開發(fā)工具的作用與功能 14軟件開發(fā)工具簡介 CASE工具 計算機輔助軟件工程 CASE 作用 認識與描述系統(tǒng)需求 保存與管理開發(fā)過程中的信息 代碼的生成 文檔的編制與生成 軟件項目的管理 開發(fā)工具的分類 14軟件開發(fā)工具簡介 CASE工具 分類方法 按應用階段劃分 按功能劃分 設(shè)計工具 分析工具 項目管理 軟件配置 質(zhì)量保證 分析設(shè)計 計劃工具 界面開發(fā) 客戶服務器 Web開發(fā) IBMRational工具 14軟件開發(fā)工具簡介 常用CASE工具 Rational公司是專門從事CASE工具研制與開發(fā)的軟件公司 2003年被IBM公司收購 該公司所研發(fā)的Rational系列軟件是完整的CASE集成工具 貫穿從需求分析到軟件維護的整個軟件生存周期 需求分析與設(shè)計工具 產(chǎn)品主要構(gòu)成 測試工具 軟件配置管理工具 Rose PurifyPlusRobot ClearCase 北大青鳥工具 14軟件開發(fā)工具簡介 常用CASE工具 北大青鳥系列CASE工具北京北大青鳥軟件有限公司開發(fā)研制的 在國內(nèi)有較高的知名度 北京大學軟件工程國家工程研究中心就設(shè)在該公司 產(chǎn)品主要構(gòu)成 微軟版本管理器 VSS 14軟件開發(fā)工具簡介 常用CASE工具 版本管理是軟件配置管理中的核心工作 由Microsoft公司開發(fā)的VisualSourceSafe6 0使用非常廣泛而且很容易獲得 文件檢入與檢出 產(chǎn)品主要功能 版本控制 文件的拆分與共享 權(quán)限管理 本書案例介紹 教師教學網(wǎng)絡(luò)測評系統(tǒng) 15學習指南 學習案例 為實現(xiàn)教學質(zhì)量的量化考核 借此評價教師的教學水平并有針對性的提高教學質(zhì)量 某高校開發(fā)了基于校園網(wǎng)的教學質(zhì)量網(wǎng)上測評系統(tǒng)四大功能模塊數(shù)據(jù)采集模塊 學生對一個學期中所學課程的各任課教師的教學水平及師德兩個方面給予的百分制評價分值數(shù)據(jù)統(tǒng)計模塊 根據(jù)教務處規(guī)定的統(tǒng)計方法統(tǒng)計出每位任課教師在一個學期中的教學水平及師德的最終測評得分 數(shù)據(jù)查詢模塊 查詢?nèi)H握n教師的最終得分及名次 還能夠查詢各個班級的學生對任課教師的教學水平及師德的評分情況 輔助功能模塊 包括基礎(chǔ)數(shù)據(jù)的管理 測評類型的管理等 本書案例介紹 教師教學網(wǎng)絡(luò)測評系統(tǒng) 15學習指南 學習案例 系統(tǒng)運行界面 瀏覽器端 本書案例介紹 教師教學網(wǎng)絡(luò)測評系統(tǒng) 15學習指南 學習案例 系統(tǒng)運行界面 服務器端 第二章系統(tǒng)策劃 這個項目是做還是不做呢 還是先去做一下市場調(diào)研或與客戶談談簽約的事吧 2 1可行性研究 2 2軟件項目計劃 本章主要內(nèi)容 21可行性研究 問題的定義 問題定義 確定軟件開發(fā)項目必須完成的目標 其關(guān)鍵問題是 要解決什么問題 含義 主要內(nèi)容 問題的背景 總體要求與目標 類型范圍 功能規(guī)模 實現(xiàn)目標的方案 開發(fā)的條件 環(huán)境要求等 問題定義報告應包括內(nèi)容 項目名稱 使用方 對問題的概括定義 項目的目標 項目的規(guī)模 21可行性研究 問題的定義 案例分析 某校在校生近5000人 每學期在期中都要進行一次對教師的教學質(zhì)量測評 要求所有學生都要參加 以前測評的方式都是手工操作 由教務處發(fā)出書面問卷調(diào)查表 每個同學填寫完成后交回到教務處 然后教務處再使用手工的方法對問卷進行統(tǒng)計匯總 最后得出學生對每一位教師的總體評價 這種方法一方面浪費了大量的財力 人力 另一方面統(tǒng)計繁瑣且容易出錯 考慮到現(xiàn)在學校校園網(wǎng)已經(jīng)建成 為節(jié)省開支 提高效率 學校決定委托計算機系開發(fā)一套基于校園網(wǎng)的 教師教學網(wǎng)絡(luò)測評系統(tǒng) 1 問題的提出 21可行性研究 問題的定義 案例分析 2 問題分析 系統(tǒng)分析人員經(jīng)過與學校教務部門及各相關(guān)單位進行充分的調(diào)查后 了解了該項目的一些背景資料與基本要求 教師測評分兩大部分 一是師德測評 二是教學質(zhì)量測評 師德測評有4項指標 教學質(zhì)量測評有14項指標 系統(tǒng)要實現(xiàn)的目標是 所有學生在指定時間內(nèi)在指定機房的計算機上完成對任課教師的測評打分 測評過程全部采用選擇的方法 不需要輸入任何信息 所有的測評數(shù)據(jù)保存在學校中心服務器上 有較為嚴格的安全措施 系統(tǒng)能對所有的數(shù)據(jù)進行統(tǒng)計匯總 得出每一位教師的測評結(jié)果 并能進行排序 輸出 系統(tǒng)開發(fā)的大體費用在1 2萬元左右 開發(fā)周期大約6個人月 21可行性研究 問題的定義 案例分析 3 系統(tǒng)定義報告 根據(jù)以上分析 形成如下的系統(tǒng)定義報告 案例文檔之一 系統(tǒng)定義報告用戶單位 XX學校教務處負責人 XXX開發(fā)單位 XX學校計算機系分析員 XXX項目名稱 基于校園網(wǎng)的教學質(zhì)量測評系統(tǒng)問題概述 教師教學質(zhì)量測評每學期必須進行一次 原有的手工方法存在資源浪費 效率極低 結(jié)果不準確等問題 其它的相關(guān)說明 項目目標 開發(fā)一個效率高且相對通用的教師教學網(wǎng)絡(luò)測評系統(tǒng) 項目規(guī)模 開發(fā)成本大約1 2萬元 開發(fā)周期約6個人月 可行性研究 建議進行一周 費用不超過500元 21可行性研究 可行性研究的任務與步驟 一 可行性研究的任務 2 經(jīng)濟可行性 3 社會因素的考慮 分析成本 收益與短期效益 長遠利益這兩個方面 要作出投資的估算和系統(tǒng)投入運行后可能獲得的經(jīng)濟效益或可節(jié)約的費用估算 分析利用現(xiàn)有的技術(shù)能否實現(xiàn) 能否解決系統(tǒng)中的技術(shù)難題 所開發(fā)的系統(tǒng)能否達到所要求的功能和性能 系統(tǒng)對技術(shù)人員的要求 現(xiàn)有的技術(shù)人員能否勝任 開發(fā)所需要的軟件與硬件能否如期得到等 1 技術(shù)可行性 主要考慮的是市場 政策與法律方面的問題 21可行性研究 可行性研究的任務與步驟 二 可行性研究的步驟 1 重新檢查系統(tǒng)定義報告中相關(guān)內(nèi)容 明確對目標系統(tǒng)限制與約束 2 研究目前正在使用的系統(tǒng) 找出其基本功能和所需要的基本信息 繪制系統(tǒng)流程圖 3 設(shè)想新系統(tǒng)高層邏輯模型 分析歸納現(xiàn)有系統(tǒng) 最后建造新物理系統(tǒng) 4 導出各種實現(xiàn)方案并對方案進行評價 5 推薦可行性方案 6 編寫可行性研究報告 21可行性研究 技術(shù)可行性分析 技術(shù)可行性分析的三個方面 1 在給定的時間內(nèi)能否實現(xiàn)系統(tǒng)定義中的功能 2 軟件的質(zhì)量如何 如實時性 正確性和精確性 3 軟件的生產(chǎn)率如何 高生產(chǎn)率意味著利潤 做得了嗎 做得好嗎 做得快嗎 先分析 21可行性研究 技術(shù)可行性分析 在進行技術(shù)可行性分析時 一個重要的內(nèi)容是對現(xiàn)有系統(tǒng)與擬開發(fā)的系統(tǒng)繪制系統(tǒng)流程圖 系統(tǒng)流程圖中所用的符號與程序設(shè)計語言中的程序流程圖所用的符號類似 但系統(tǒng)流程圖與程序流程圖不同 系統(tǒng)流程圖表達的是信息在系統(tǒng)中各個部件之間的流動情況 而程序流程圖表達的是程序?qū)π畔⑦M行加工處理的控制過程 系統(tǒng)流程圖 21可行性研究 技術(shù)可行性分析 系統(tǒng)流程圖中的常用符號 系統(tǒng)流程圖中的常用符號 21可行性研究 技術(shù)可行性分析 教師教學網(wǎng)絡(luò)測評系統(tǒng)流程圖 21可行性研究 技術(shù)可行性分析 21可行性研究 經(jīng)濟可行性分析 經(jīng)濟可行性分析 1 成本分析 2 收益分析 辦公成本 人員成本 資源成本 其它成本 貨幣的時間價值 純收入 如果從經(jīng)濟可行性的角度分析得出純收入小于或等于零的結(jié)論 則這個項目是不能投資的 最難準確核算 純收入 總收入折現(xiàn) 總成本折現(xiàn) P F 1 i n稱為折現(xiàn) 21可行性研究 經(jīng)濟可行性分析 常用成本估算策略 1 在項目后期進行估算 即完全精確核算 2 基于已經(jīng)完成的類似項目進行估算 3 使用相對簡單的分解技術(shù)以生成項目成本及工作量的估算 4 使用一個或多個經(jīng)驗模型進行軟件成本及工作量的估算估算 不能選擇 比較切實可行 兩種常用策略 21可行性研究 經(jīng)濟可行性分析 兩種成本估算方法 代碼行法 LOC 功能點法 FP 每行代碼的平均成本乘以程序的行數(shù) 采用軟件所提供的功能來測量的 21可行性研究 案例分析 可行性研究 可行性研究最終生成可行性研究報告 案例文檔之二 可行性研究報告1 引言1 1編寫目的本報告分析了 教師教學網(wǎng)絡(luò)測評系統(tǒng) 開發(fā)的可行性 請院領(lǐng)導審閱并對是否進行該系統(tǒng)的開發(fā)做出批示 1 2項目背景建議進行 教師教學網(wǎng)絡(luò)測評系統(tǒng) 的開發(fā) 背景介紹略 我院計算機系具備進行該軟件系統(tǒng)開發(fā)的能力并承擔本軟件系統(tǒng)的開發(fā)與維護工作 該軟件系統(tǒng)由我院教務處使用 詳見教材 22軟件項目計劃 系統(tǒng)定義報告 用戶的需求報告 可行性研究報告 項目開發(fā)計劃及相關(guān)的一些專題計劃 如 測試計劃 質(zhì)量保證計劃 配置管理計劃 人員培訓計劃 系統(tǒng)安裝計劃 22軟件項目計劃 軟件項目計劃的主要內(nèi)容制訂方法 軟件項目計劃 資源計劃 軟件估算計劃 進度安排計劃 人力資源 可復用的構(gòu)件 開發(fā)環(huán)境 高層管理人員 項目經(jīng)理 開發(fā)人員 客戶 最終用戶 軟件 硬件環(huán)境 采用任務分解技術(shù)對軟件的規(guī)模與工作量進行估算 并將總的開發(fā)費用分配到開發(fā)的各個階段中 軟件規(guī)模 工作量 進度 成本 進度安排要確定最終的軟件交付日期 并在限定的日期內(nèi)安排和分配工作量 或者在合理復用各種資源分配工作量的基礎(chǔ)上確定最終交付日期 其它專題計劃 如質(zhì)量保證計劃 配置管理計劃 里程碑及評審計劃 測試計劃等 22軟件項目計劃 案例分析 軟件項目開發(fā)計劃書 案例文檔之三 軟件項目開發(fā)計劃書1 引言1 1編寫目的為保證 教師教學網(wǎng)絡(luò)測評系統(tǒng) 的開發(fā)成功 按期交付使用 特編寫項目開發(fā)計劃 請參與開發(fā)的人員遵照執(zhí)行 1 2項目背景 略 1 3定義 教師教學網(wǎng)絡(luò)測評系統(tǒng) 以下簡稱 測評系統(tǒng) 詳見教材 第三章需求分析 本章主要內(nèi)容 3 1需求分析概述 3 2結(jié)構(gòu)化分析 3 3面向?qū)ο蠓治?3 4UML概述 31需求分析概述 需求分析的重要性 需求分析是發(fā)現(xiàn) 求精 建模 規(guī)格說明和復審的過程 需求分析是系統(tǒng)設(shè)計的基礎(chǔ) 關(guān)系到程的成敗和軟件產(chǎn)品的質(zhì)量 重要性 需求獲取困難 原因有三 一是用戶需求的動態(tài)性 不穩(wěn)定性 二是需求的模糊性 不準確性 三是需求必須得到用戶的確認 否則毫無意義 31需求分析概述 需求分析的任務 1 確定對系統(tǒng)的綜合要求 系統(tǒng)界面要求 系統(tǒng)功能要求 系統(tǒng)性能要求 完全性可靠性保密性要求 系統(tǒng)運行要求 異常處理要求 將來可能提出的要求 分析系統(tǒng)的數(shù)據(jù)要求 2 分析系統(tǒng)的數(shù)據(jù)要求3 異出系統(tǒng)的邏輯模型4 修正項目開發(fā)劃5 開發(fā)原型系統(tǒng) 需求分析任務 需求工程層次分解圖 31需求分析概述 需求分析的過程與方法 一 需求分析過程 需求獲取 用戶 概要信息 業(yè)務需求 功能需求 用戶需求 非功能性需求 可行性報告 系統(tǒng)定義報告 分析 調(diào)研 座談法調(diào)查表法觀察法 31需求分析概述 需求分析的過程與方法 需求分析 獲取數(shù)據(jù) 目標邏輯模型 需求獲取 從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā) 找出系統(tǒng)各元素之間的聯(lián)系 接口特征及設(shè)計限制 能否滿足功能需求 31需求分析概述 需求分析的過程與方法 需求規(guī)格說明書 編寫 目標系統(tǒng)的基本描述系統(tǒng)各項需求系統(tǒng)限制及條件系統(tǒng)數(shù)據(jù)定義 需求分析結(jié)果 需求文檔編寫 31需求分析概述 需求分析的過程與方法 評審 驗證的四個方面 一致性 完整性 現(xiàn)實性 有效性 所有需求必須一致 不能前 后和相互矛盾 說明書應包括用戶需求的每一方面 在現(xiàn)有基礎(chǔ)上可實現(xiàn) 必須證明需求有效 能解決用戶提出的問題 需求評審與確認 31需求分析概述 需求分析的過程與方法 31需求分析概述 需求分析的過程與方法 二 需求分析的方法 分析方法 結(jié)構(gòu)化分析方法 面向?qū)ο蟮姆治龇椒?面向數(shù)據(jù)的方法 以數(shù)據(jù)流為中心 其核心概念包括 進程 數(shù)據(jù)流 數(shù)據(jù)存儲 外部實體 數(shù)據(jù)組和數(shù)據(jù)元素 有代表性的模擬工具有 數(shù)據(jù)流圖 數(shù)據(jù)字典 原始進程規(guī)格說明 面向?qū)ο蠓治鲆詫ο蠹捌浞兆鳛榻藴?比較自然 對象也具有相對的穩(wěn)定性 主要模擬的元素有 對象 類 屬性 關(guān)系 方法 消息傳遞 用例等 其主要原理包括分類 繼承 層次 信息隱藏 匯集關(guān)系等 基本思想 自頂向下逐層分解 結(jié)構(gòu)化分析 StructuredAnalysis 它是一種面向數(shù)據(jù)流的需求分析方法 適用分析大型數(shù)據(jù)處理系統(tǒng) 是一種簡單 實用的方法 32結(jié)構(gòu)化分析 問題域 問題 行為 功能 對應于軟件子系統(tǒng) 對應于子軟件的軟構(gòu)件 對應于軟件子系統(tǒng) 32結(jié)構(gòu)化分析 自頂向下需求分析模型圖 S D1 D2 D3 Dn Di P1 P2 P3 Pm Pj F1 F2 F3 Fk 概念 是描述數(shù)據(jù)信息的集合 是對系統(tǒng)中所有數(shù)據(jù)元素定義的集合 包含信息 數(shù)據(jù) 控制項 數(shù)據(jù)存儲或外部實體的主要名稱和別名 使用數(shù)據(jù)和對象的列表 使用對象的方式 描述數(shù)據(jù)或控制內(nèi)容的符號 關(guān)于數(shù)據(jù)類型 預置值 限制等其他補充信息 32結(jié)構(gòu)化分析 數(shù)據(jù)字典 一 定義 32結(jié)構(gòu)化分析 數(shù)據(jù)字典 二 數(shù)據(jù)項的定義 數(shù)據(jù)字典符號 三 數(shù)據(jù)字典舉例 教師測評系統(tǒng)中 數(shù)據(jù)字內(nèi)部分內(nèi)容 測評子項得分 測評子項編號 子項得分 學生評測數(shù)據(jù) 序號 教師姓名 所任課程 測評子項得分 以測評子項得分為單位的評測數(shù)據(jù)記錄 學期 被評對象編號 測評類型編號 評測者區(qū)別編號 測評子項名稱 測評子項所得分值 以測評類型得分為單位的評測數(shù)據(jù)記錄 學期 被評對象編號 測評類型編號 評測者區(qū)別編號 本測評類型所得分值 被評對象各測評類型的得分記錄 學期 被評對象編號 測評類型編號 測評類型得分 本測評類型占總分的比率 32結(jié)構(gòu)化分析 數(shù)據(jù)字典 定義 數(shù)據(jù)流 變換數(shù)據(jù)的處理 數(shù)據(jù)存儲 數(shù)據(jù)的源 宿 32結(jié)構(gòu)化分析 數(shù)據(jù)流圖 數(shù)據(jù)流圖 DFD 是一種圖形化技術(shù) 它描繪信息和數(shù)據(jù)從輸入到輸出的過程中所經(jīng)受的變換 符號 數(shù)據(jù)流圖說明 描繪 做什么 不考慮 怎么做 箭頭 數(shù)據(jù)流圖和程序圖中用箭頭表示的控制流有本質(zhì)不同 不能混淆 在數(shù)據(jù)流圖中應該描繪所有可能的數(shù)據(jù)流向 而不應該描繪出現(xiàn)某個數(shù)據(jù)流的條件 處理 處理并不一定是一個程序 一個處理框可以代表一系列程序 單個程序或者程序的一個模塊 也可代表一個人工處理過程 如用戶目視檢查數(shù)據(jù)正確性 數(shù)據(jù)存儲 一個數(shù)據(jù)存儲并不等同于一個文件 它可以表示一個文件 文件的一部分 數(shù)據(jù)庫的元素或記錄的一部分等 數(shù)據(jù)可以存儲在磁盤 磁帶 磁鼓 主存 微縮膠片 穿孔卡片及其他任何介質(zhì)上 包括人腦 數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù) 僅僅所處的狀態(tài)不同 數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù) 數(shù)據(jù)流是處于運動中的數(shù)據(jù) 32結(jié)構(gòu)化分析 數(shù)據(jù)流圖 32結(jié)構(gòu)化分析 數(shù)據(jù)流圖 案例 狀態(tài)轉(zhuǎn)換圖簡稱狀態(tài)圖 描述的是系統(tǒng)的狀態(tài)及引系統(tǒng)狀態(tài)轉(zhuǎn)換的事件 可用來表示系統(tǒng)的行為 狀態(tài)圖指出了作為特定事件的結(jié)果將執(zhí)行哪些動作 如處理數(shù)據(jù) 所以說 狀態(tài)圖提供了行為建模機制 表示從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)換 箭頭的方向表示轉(zhuǎn)換的方向 表示狀態(tài) 定義 符號 狀態(tài)圖示例 32結(jié)構(gòu)化分析 狀態(tài)轉(zhuǎn)換圖 軟件需求規(guī)格說明闡述一個軟件系統(tǒng)必須提供的功能和性能以及它所要考慮的限制條件 它不僅是系統(tǒng)測試和用戶文檔的基礎(chǔ) 也是所有子系列項目規(guī)劃 設(shè)計和編碼的基礎(chǔ) 它應該盡可能完整地描述系統(tǒng)預期的外部行為和用戶可視化行為 除了設(shè)計和實現(xiàn)上的限制 軟件需求規(guī)格說明不應該包括設(shè)計 構(gòu)造 測試或工程管理的細節(jié) 說明 格式 見教材 32結(jié)構(gòu)化分析 需求規(guī)格說明書 33面向?qū)ο蟮姆治?面向?qū)ο蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?它包含面向?qū)ο蟮膱D形語言機制以及用于指導需求分析的面向?qū)ο蟮姆椒▽W 本節(jié)主要介紹面向?qū)ο蟮母拍?面向?qū)ο蠓椒懊嫦驅(qū)ο蠓治鲞^程 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?面向?qū)ο?對象 分類 繼承 通信 對象 對象是現(xiàn)實世界中個體或事物的抽象表示 它封裝了特殊的屬性 數(shù)據(jù) 和行為方法 例如 大型客機可視為對象 它具有位置 速度 顏色 容量等屬性 對于該對象可施行起飛 降落 加速 維修等操作 這些操作將或多或少地改變飛機的屬性值 狀態(tài) 類 類是具有相同屬性和操作的一組相似對象的抽象 例如 飛行器類是所有能夠飛行的器械的抽象 如各種飛機 航天器等 它可以包含位置 速度 顏色等屬性 同時也具有起飛 降落 加速等操作 顯然類是一個支持繼承的抽象數(shù)據(jù)類型 而對象就是類的實例 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?實例 是由某個特定的類所描述的一個具體的對象 例如 圓具有半徑和圓心等屬性 它是一個抽象類 可用circle類來定義 有許多不同半徑和不同圓心的具體的圓 它們是類的一個個實例 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?屬性 是類或?qū)ο笾兴x的數(shù)據(jù) 它是描述客觀世界實體靜態(tài)特征的數(shù)據(jù)項 當類被實例化而形成具體的對象后 它不僅包含類所具有的一些屬性 而且還有自己所特有的屬性值 例如 Circle類中定義的代表圓心坐標 半徑 顏色等的數(shù)據(jù)成員 就是圓類所具有的屬性 當實例一個具體的圓后 其屬性也必然存在 還可能增加一些特殊的屬性 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?方法 方法是對象所能執(zhí)行的操作 也就是類中所定義的服務 方法描述了對象執(zhí)行操作的算法 響應消息的方法 在C 語言中把方法稱為成員函數(shù) 例如在圓的對象中可以定義一個方法GetColor 用來取得圓的顏色 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?消息 就是要求某個對象執(zhí)行在定義它的那個類中所定義的某個操作的規(guī)格說明 通常 一個消息由以下三部分組成 接收消息的對象 消息選擇符即消息名 零個或多個變元 例如 MyCircle是一個半徑4cm 圓心位于 100 200 的Circle類 也就是一個實例 當要求它以綠顏色在屏幕上顯示自己時 在C 語言中應該向它發(fā)下列消息 MyCircle Show GREEN 其中 MyCircle是接受消息的對象名 Show是消息選擇符 即消息名 圓括號內(nèi)的GREEN是消息的變元 當Mycircle接收到這個消息后 將執(zhí)行在Circle類中所定義的Show操作 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?封裝 所謂封裝就是把某個事物包起來 使外界不知道該事物的具體內(nèi)容 在面向?qū)ο蟮某绦蛑?把數(shù)據(jù)和實現(xiàn)操作的代碼集中起來放在對象內(nèi)部 數(shù)據(jù)與方法代碼的內(nèi)部細節(jié)對外界隱藏 這樣對其的任何改變可能引起的副作用只能作用在內(nèi)部 不會傳播 封裝是軟件復用的基礎(chǔ) 被封裝對象間的接口大大地簡化了 對象之間通過消息聯(lián)系它時不再關(guān)心對象內(nèi)部的數(shù)據(jù)結(jié)構(gòu) 系統(tǒng)的耦合度降低了 含義 優(yōu)點 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?繼承 含義 分類 類之間的繼承關(guān)系是現(xiàn)實世界中遺傳關(guān)系的直接模擬 它表示類之間的內(nèi)在聯(lián)系以及對屬性和操作的共享 即子類可沿用父類 被繼承 的某些特征 當然也可以具有自己獨有的屬性和操作 單重繼承 多重繼承 子類僅從一個父類繼承屬性和行為 而且子類可以覆蓋父類的部分屬性和方法 子類可從多個父類繼承屬性和方法 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?類繼承實例 汽車是抽象層次較高的概念 在汽車類的基礎(chǔ)上可以分出轎車類與貨車類等 如果再細分 還可在轎車類的基礎(chǔ)上分出商用轎車與家用轎車等 由于商用轎車與家用轎車作為轎車在絕大多數(shù)的屬性和行為上是一致的 可以把轎車類看成是家用轎車的父類 而家用轎車這個子類繼承了父類所擁有的屬性與行為 并在父類的基礎(chǔ)上加入了特殊化的屬性與行為而形成了新的類 在類的層次結(jié)構(gòu)中 相對上層的是超類 superclass 相對下層的是子類 subclass 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蟮母拍?33面向?qū)ο蟮男枨蠓治?面向?qū)ο蠓椒ê喗?面向?qū)ο蠓椒ㄖС秩N基本的活動 識別對象和類描述對象和類之間的關(guān)系通過描述每個類的功能定義對象的行為 面向?qū)ο蠓椒?Booch方法 提出面象對象的軟件工程的概念OMT方法 提出面象對象的建模技術(shù)方法OOSE方法 用例貫穿于軟件整個開發(fā)過程 UML 在Booch方法 OMT方法和OOSE方法的基礎(chǔ)上推出了統(tǒng)一的建模語言 UML 1997年被國際對象管理組織 OMG 確定為標準的建模語言 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蠓治鲞^程 面向?qū)ο蠓椒▽嶋H上是一整套的軟件開發(fā)方法 它包括面向?qū)ο蟮姆治鯫OA 面向?qū)ο蟮脑O(shè)計OOD 面向?qū)ο蟮木幊蘋OP 面向?qū)ο蟮臏y試OOT等 可以看出面向?qū)ο蠓椒梢载灤┸浖_發(fā)的整個過程 OOA方法的關(guān)鍵 是識別問題域內(nèi)的對象 并分析它們相互間的關(guān)系 最終建立起問題域的簡潔 精確 可理解的正確模型 這是面向?qū)ο蠓治龅氖滓蝿赵趯嶋H工作中 建模的步驟并不一定嚴格按照前面講述的次序進行 OOA分析過程 分析用戶需求 識別類與對象 確定對象的內(nèi)部特征 識別對象之間的關(guān)系 定義主題詞 系統(tǒng)分析員應該深入地理解用戶需求 抽象出目標系統(tǒng)的本質(zhì)屬性 并用模型準確表示來 另外要向領(lǐng)域?qū)<覍W習 確定問題域中的類和對象 確定對象的屬性的操作 分類關(guān)系 一般 特殊 組成關(guān)系 整體 部分 還有反映對象屬性之間聯(lián)系的實例連接 反映對象行為之間依賴關(guān)系的消息等 概念上把大型的 復雜的系統(tǒng)包含的內(nèi)容分解成若干個范疇 33面向?qū)ο蟮男枨蠓治?面向?qū)ο蠓治鲞^程 34UML概述 1997年UML1 1被對象管理組織OMG確定為標準建模語言是軟件工程領(lǐng)域最重要的 具有劃時代重大意義的事件 UML是一種定義良好 易于表達 功能強大且普遍適用的標準的圖形化建模語言 用它可以簡明 準確地為目標系統(tǒng)建立模型 它融入了軟件工程領(lǐng)域的新思想 新方法和新技術(shù) 它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計 還支持從需求分析開始的軟件開發(fā)的全過程 34UML概述 UML的結(jié)構(gòu) 一 UML中的基本構(gòu)造塊 UML建模的積木塊 構(gòu)成UML模型的基本構(gòu)造塊有三種積木元素或積木組合體 即 反應的是類與類之間聯(lián)系的方法與性質(zhì) 關(guān)系有依賴 關(guān)聯(lián) 繼承 實現(xiàn)和聚合5種 圖是軟件系統(tǒng)在不同角度上的投影 它是一組元素的表示 包含了事物及其關(guān)系的組合 UML有九種圖 事物是UML模型中的靜態(tài)元素 UML中共有11種不同的事物 事物 關(guān)系 圖 UML中的 事物 34UML概述 UML的結(jié)構(gòu) 二 UML中的規(guī)則 UML建模的 粘合劑 UML中的規(guī)則是為了將UML中的構(gòu)造塊有機地組裝在一起形成一個結(jié)構(gòu)良好的模型而對事物進行描述的語義規(guī)則 5種規(guī)則 1 為事物 關(guān)系命名的命名規(guī)則2 給一個名字以特定含義的范圍規(guī)則3 使名字可見或如何使用的可見性規(guī)則4 描述事件正確 一致地相互聯(lián)系的完整性規(guī)則5 描述運行或模擬動態(tài)模型含義的執(zhí)行規(guī)則 34UML概述 UML的結(jié)構(gòu) 三 應用于UML的通用機制 UML模型的圖紙說明 為了對UML模型進行進一步的說明 同時增強其表達能力 UML提供了4種在整個語言中可以一致應用的 通用機制 可以認為是對UML模型的圖紙說明 四種機制 規(guī)格說明 修飾 通用劃分 擴展機制 UML圖形每個部分后面的語法語義描述 UML表示法中每個元素都有一個基本符號 UML構(gòu)造塊有兩種劃分 即類與對象 接口與實現(xiàn) 提高UML語言表達能力 它包含構(gòu)造型 標記值和約束等3種類型 34UML概述 UML的結(jié)構(gòu) 34UML概述 UML的圖 UML主要用圖來表達模型的內(nèi)容 而圖又由代表模型元素的圖形符號組成 學會使用UML的圖 是學習 使用統(tǒng)一建模語言UML的關(guān)鍵 UML的重要內(nèi)容可以由下列五類圖 共9種圖形 UML圖 用例圖 Use casediagram 靜態(tài)圖 Staticdiagram 行為圖 Behaviordiagram 交互圖 Interactivediagram 實現(xiàn)圖 Implementationdiagram 34UML概述 UML的應用 UML的目標是用面向?qū)ο蟮膱D形方式來描述任何類型的系統(tǒng) 因此 具有很寬的應用領(lǐng)域 其中最常用的是建立軟件系統(tǒng)模型 但是它同樣也可以用于描述非計算機軟件的其他系統(tǒng) 如機械系統(tǒng) 商業(yè)系統(tǒng) 企業(yè)機構(gòu)或業(yè)務過程 處理復雜數(shù)據(jù)的信息系統(tǒng) 具有實時要求的工業(yè)系統(tǒng)或工業(yè)過程等 總之 UML是一個通用的標準建模語言 可以為任何具有靜態(tài)結(jié)構(gòu)和動態(tài)行為的系統(tǒng)建立模型 UML適用于系統(tǒng)開發(fā)全過程 需求分析 分析 設(shè)計 編碼 測試 捕獲用戶的需求 用例建模 用UML的邏輯視圖和動態(tài)視圖來描述問題域中的基本概念 例如抽象 類和對象等 和機制 類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu) 合作圖 順序圖 活動圖和狀態(tài)圖描述系統(tǒng)的動態(tài)行為 把分析階段的結(jié)果擴展成技術(shù)解決方案 加入新的類來定義軟件系統(tǒng)的技術(shù)方案細節(jié) 設(shè)計階段用和分析階段類似的方式使用UML 這個階段的任務是把來自設(shè)計階段的類轉(zhuǎn)換成某種面對象程序語言的代碼 如VB C Java等 UML模型可作為測試階段的依據(jù) 單元測試使用類圖和類規(guī)格說明 集成測試使用構(gòu)件圖和合作圖 系統(tǒng)測試使用用例圖來驗證系統(tǒng)的行為 34UML概述 UML的應用 一 UML的應用領(lǐng)域 二 UML的建模機制 UML9個模型 UML9種圖 UML5個視圖 業(yè)務模型 領(lǐng)域模型 用例模型 分析模型 設(shè)計模型 過程模型 部署模型 實現(xiàn)模型 測試模型 用例視圖 設(shè)計視圖 進程視圖 實現(xiàn)視圖 實施視圖 用例圖 靜態(tài)圖 包括類圖 對象圖和包圖 行為圖 包括狀態(tài)圖和活動圖 交互圖 包括順序圖和協(xié)作圖 實現(xiàn)圖 構(gòu)件圖和配置圖 34UML概述 UML的應用 靜態(tài)建模 動態(tài)建模 反映的是目標系統(tǒng)的靜態(tài)數(shù)據(jù) 用例圖 類圖 對象圖 包 構(gòu)件圖 配置圖等是靜態(tài)建模機制 其中尤以用例圖和類圖最為重要 強調(diào)的是系統(tǒng)的行為 動態(tài)建模所建立的模型或者可以執(zhí)行 或者表示執(zhí)行時的時序狀態(tài)或交互關(guān)系 它包括狀態(tài)圖 活動圖 順序圖和合作圖等四個圖形 是標準建模語言UML的動態(tài)建模機制 UML建模 34UML概述 UML的應用 在UML中可以通過用例圖來構(gòu)造目標系統(tǒng)的用例模型 它通過用例來捕獲用戶需求 通過用例建模 描述對系統(tǒng)感興趣的外部角色及其對系統(tǒng) 用例 的功能要求 它從系統(tǒng)外部觀察系統(tǒng) 而不涉及到技術(shù)上如何做這些事 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 一 用例模型 Usecasemodel 描述的是外部執(zhí)行者 Actor 所理解的系統(tǒng)功能 用例模型用于需求分析階段 在UML中 一個用例模型由若干個用例圖描述 用例圖的主要元素是用例和執(zhí)行者 用例模型是開發(fā)者和用戶對需求規(guī)格達成的共識 用例模型 描述了待開發(fā)系統(tǒng)的功能需求 它將系統(tǒng)看作黑盒 從外部執(zhí)行者的角度來理解系統(tǒng) 它驅(qū)動了需求分析之后各階段的開發(fā)工作 影響開發(fā)工作的各個階段和UML的各個模型 用例模型功能 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 二 用例 usecase 一個用例是用戶與計算機之間的一次典型交互過程 在UML中 用例表示為一個橢圓 含義 1 用例捕獲某些用戶可見的需求 實現(xiàn)一個具體的用戶目標 2 用例由執(zhí)行者激活 并提供確切的值給執(zhí)行者 3 用例可大可小 但它必須是對一個具體的用戶目標實現(xiàn)的完整描述 特點 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 舉例 教師測評系統(tǒng)用例圖 以 測評系統(tǒng) 為例 一個學生測評某位老師 和 管理員進行測評數(shù)據(jù)處理 便是兩個典型的用例 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 三 執(zhí)行者 Actor 含義 執(zhí)行者是指用戶在系統(tǒng)中所扮演的角色 其圖形化的表示是一個小人 通信聯(lián)系 不帶箭頭的線段將執(zhí)行者與用例連接到一起 表示兩者之間交換信息 注意 盡管執(zhí)行者在用例圖中是用類似人的圖形來表示的 但執(zhí)行者未必是人 意義 面對一個大系統(tǒng) 要列出用例清單常常是十分困難 這時可先列出執(zhí)行者清單 再對每個執(zhí)行者列出它的用例 問題就會變得容易很多 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 四 使用和擴展 UseandExtend 擴展關(guān)系 當一個用例使用另一個用例時 這兩個用例之間就構(gòu)成了使用關(guān)系 當一個用例與另一個用例相似 但所做的動作多一些 就可以用到擴展關(guān)系 使用關(guān)系 說明 使用和擴展是兩種不同形式的繼承關(guān)系 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 舉例 例中學位課程的學習包括課程設(shè)計 因此構(gòu)成了使用關(guān)系 學位課程學習比專業(yè)課程學習有更多的要求 因此構(gòu)成了擴展關(guān)系 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 五 用例模型的獲取 步驟 獲取執(zhí)行者 1 使用系統(tǒng)的主要功能 主要使用者 l2 誰需要系統(tǒng)支持他們的日常工作 l3 誰來維護 管理使系統(tǒng)正常工作 輔助使用者 4 系統(tǒng)需要操縱哪些硬件 5 系統(tǒng)需要與哪些其它系統(tǒng)交互 包含其它計算機系統(tǒng)和其它應用程序 獲取用例 l執(zhí)行者要求系統(tǒng)提供哪些功能 執(zhí)行者需要做什么 l執(zhí)行者需要讀 產(chǎn)生 刪除 修改或存儲的信息有哪些類型 l必須提醒執(zhí)行者的系統(tǒng)事件有哪些 或者執(zhí)行者必須提醒系統(tǒng)的事件有哪些 怎樣把這些事件表示成用例中的功能 l為了完整地描述用例 還需要知道執(zhí)行者的某些典型功能能否被系統(tǒng)自動實現(xiàn) l系統(tǒng)需要何種輸入輸出 輸入從何處來 輸出到何處 當前運行系統(tǒng) 也許是一些手工操作而不是計算機系統(tǒng) 的主要問題 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 舉例 教師測評系統(tǒng)用例模型 34UML概述 UML中的需求分析 用例圖的創(chuàng)建 第四章軟件設(shè)計 41軟件設(shè)計基本概念 軟件設(shè)計工作內(nèi)容 將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu) 確定系統(tǒng)級接口 全局數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式 確立每個模塊的實現(xiàn)算法 局部數(shù)據(jù)結(jié)構(gòu) 用適當方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細節(jié) 41軟件設(shè)計基本概念 軟件模塊定義 整個軟件被劃分成若干單獨命名和可編址的部分 稱之為模塊 模塊的基本屬性 模塊實現(xiàn)什么功能 模塊的內(nèi)部實現(xiàn)邏輯 該模塊使用時的環(huán)境和條件 41軟件設(shè)計基本概念 模塊劃分的原則 劃分模塊的重要目標是提高模塊的獨立性 度量模塊獨立性的兩個準則是模塊間的內(nèi)聚性和耦合性 好的軟件結(jié)構(gòu)應該具有高內(nèi)聚 低耦合的模塊化結(jié)構(gòu) 內(nèi)聚性 耦合性 內(nèi)聚性是一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量 耦合性是模塊間互相連接的緊密程度的度量 它取決于各個模塊之間接口的復雜度 調(diào)用方式以及哪些信息通過接口 41軟件設(shè)計基本概念 內(nèi)聚性 模塊內(nèi)聚按照模塊獨立性由高到低的順序敘述如下 1 功能內(nèi)聚 2 信息內(nèi)聚 3 通信內(nèi)聚 4 過程內(nèi)聚 5 時間內(nèi)聚 6 邏輯內(nèi)聚 7 巧合內(nèi)聚 41軟件設(shè)計基本概念 耦合性 1 非直接耦合 2 數(shù)據(jù)耦合 3 標記耦合 4 控制耦合 5 外部耦合 6 公共耦合 7 內(nèi)容耦合 模塊間的耦合按照模塊獨立性由高到低的順序列舉如下 42概要設(shè)計 概要設(shè)計需要完成的工作 1 制定規(guī)范 2 軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計 3 處理方式設(shè)計 4 數(shù)據(jù)結(jié)構(gòu)設(shè)計 5 可靠性設(shè)計 6 編寫概要設(shè)計階段的文檔 42概要設(shè)計 概要設(shè)計的目標 概要設(shè)計的主要目標是把需求轉(zhuǎn)換為軟件的體系結(jié)構(gòu) 軟件的體系結(jié)構(gòu) 程序的模塊結(jié)構(gòu) 程序的數(shù)據(jù)結(jié)構(gòu) 42概要設(shè)計 設(shè)計程序的模塊結(jié)構(gòu) 程序的模塊結(jié)構(gòu)表明了程序各個部件 模塊 的組織情況 是軟件的過程表示 42概要設(shè)計 模塊間關(guān)系的表示 結(jié)構(gòu)圖反映程序中模塊間的調(diào)用關(guān)系和模塊間信息的傳遞 結(jié)構(gòu)圖的要素包括 1 模塊 模塊用矩形框表示 并用模塊的名字標記它 2 模塊的調(diào)用關(guān)系和接口 模塊之間用單向箭頭聯(lián)結(jié) 箭頭從調(diào)用模塊指向被調(diào)用模塊 表示調(diào)用模塊調(diào)用了被調(diào)用模塊 42概要設(shè)計 設(shè)計程序的數(shù)據(jù)結(jié)構(gòu) 1 確定軟件涉及的文件系統(tǒng)的結(jié)構(gòu)以及數(shù)據(jù)庫的模式 子模式 進行數(shù)據(jù)完整性和安全性的設(shè)計 2 確定輸入 輸出文件的詳細的數(shù)據(jù)結(jié)構(gòu) 3 結(jié)合算法設(shè)計 確定算法所必需的邏輯數(shù)據(jù)結(jié)構(gòu)及其操作 4 確定對邏輯數(shù)據(jù)結(jié)構(gòu)所必需的那些操作的程序模塊 軟件包 5 限制和確定各個數(shù)據(jù)設(shè)計決策的影響范圍 6 若需要與操作系統(tǒng)或調(diào)度程序接口所必須的控制表等數(shù)據(jù)時 確定其詳細的數(shù)據(jù)結(jié)構(gòu)和使用規(guī)則 7 數(shù)據(jù)的保護性設(shè)計 43詳細設(shè)計 詳細設(shè)計需要完成的工作 在詳細設(shè)計過程中 需要完成的工作是 1 確定軟件各個組成部分內(nèi)的算法以及各部分的內(nèi)部數(shù)據(jù)組織 2 選定某種過程的表達形式來描述各種算法 可選用的過程表達形式有 流程圖 盒圖 PAD圖等 3 編寫詳細設(shè)計說明書 4 制定單元測試計劃 5 進行詳細設(shè)計評審 43詳細設(shè)計 詳細設(shè)計的表示 詳細設(shè)計中應采用合適的方式來描述模塊內(nèi)問題解決過程的細節(jié) 采用結(jié)構(gòu)化的圖形設(shè)計表示法是人們易于使用 易于理解的方式 43詳細設(shè)計 程序流程圖 43詳細設(shè)計 標準流程圖符號 我國國家標準局批準的國家標準 GB1525 89 流程圖符號 43詳細設(shè)計 標準流程圖示例 43詳細設(shè)計 盒圖 N S圖 43詳細設(shè)計 面向數(shù)據(jù)結(jié)構(gòu)的詳細設(shè)計方法Jackson方法 44面向?qū)ο蟮姆治雠c設(shè)計 面向?qū)ο蟮姆治雠c設(shè)計步驟 使用面向?qū)ο蟮脑O(shè)計方法 同樣需要得出軟件的體系結(jié)構(gòu) 首先 需要將系統(tǒng)劃分為子系統(tǒng) 可以使用包來描述子系統(tǒng) 根據(jù)子系統(tǒng)提供的操作定義它們的接口 然后設(shè)計子系統(tǒng)的概念模型 對復雜的子系統(tǒng) 可以繼續(xù)將其分解 得到更簡單的子系統(tǒng) 直到得出子系統(tǒng)內(nèi)待解決問題域中的類 確定子系統(tǒng)中存在的類及類之間的關(guān)系 并定義了子系統(tǒng)的接口及關(guān)系后 便完成了系統(tǒng)的靜態(tài)建模工作 接下來需要描述待解決問題域中類的動態(tài)行為 從而建立問題解決過程的系統(tǒng)動態(tài)模型 44面向?qū)ο蟮姆治雠c設(shè)計 識別類 為了描述一個軟件系統(tǒng) 識別其中的對象并將其抽象為類是極為關(guān)鍵的 識別類和對象的一些好的方法 1 通過實體 關(guān)系模型識別類和對象 2 基于自然語言信息識別類和對象 3 基于用例與序列圖識別類和對象 44面向?qū)ο蟮姆治雠c設(shè)計 篩選出正確的類 篩選時主要依據(jù)下列標準 刪除不正確或不必要的類 對象 冗余如果兩個類表達了同樣的信息 則應該保留在此問題域中最富于描述的類 無關(guān)現(xiàn)實世界中存在許多對象 不能把它們都納入到系統(tǒng)中去 僅需要把與本問題密切相關(guān)的類 對象放進目標系統(tǒng)中 有些類在其他問題中可能很重要 但與當前要解決的問題無關(guān) 同樣也應該把它們刪掉 44面向?qū)ο蟮姆治雠c設(shè)計 篩選出正確的類 續(xù) 籠統(tǒng)在需求陳述中常常使用一些籠統(tǒng)的 泛指的名詞 雖然在初步分析時把它們作為候選的類 對象列出來了 但是 要么系統(tǒng)無須記憶有關(guān)它們的信息 要么在需求陳述中有更明確更具體的名詞對應它們所暗指的事務 因此 通常把這些籠統(tǒng)的或模糊的類去掉 屬性在需求陳述中有些名詞實際上描述的是其他對象的屬性 應該把這些名詞從候選類 對象中去掉 當然 如果某個性質(zhì)具有很強的獨立性 則應把它作為類而不是作為屬性 44面向?qū)ο蟮姆治雠c設(shè)計 篩選出正確的類 續(xù) 操作在需求陳述中有時可能使用一些既可作為名詞 又可作為動詞的詞 應該慎重考慮它們在本問題中的含義 以便正確地決定把它們作為類還是作為類中定義的操作 實現(xiàn)在分析階段不應該過早地考慮怎樣實現(xiàn)目標系統(tǒng) 因此 應該去掉僅和實現(xiàn)有關(guān)的候選的類 對象 在設(shè)計和實現(xiàn)階段 這些類 對象可能是重要的 但在分析階段過早地考慮它們反而會分散我們的注意力 44面向?qū)ο蟮姆治雠c設(shè)計 確定屬性 一般來說 確定屬性的過程包括分析和選擇兩個步驟 分析在需求陳述中用名詞詞組表示屬性 例如 汽車的顏色 或 光標的位置 往往用形容詞表示可枚舉的具體屬性 例如 紅色的 打開的 但是 不可能在需求陳述中找到所有屬性 分析員還必須藉助于領(lǐng)域知識和常識才能分析得出需要的屬性 選擇認真考察經(jīng)初步分析而確定下來的那些屬性 從中刪除不正確的或不必要的屬性 44面向?qū)ο蟮姆治雠c設(shè)計 使用類圖來描述類 類圖通常表示為長方形 長方形又分三個部分 分別用來表示類的名字 屬性和操作 44面向?qū)ο蟮姆治雠c設(shè)計 類圖中類之間的關(guān)系及表示普通關(guān)聯(lián) 44面向?qū)ο蟮姆治雠c設(shè)計 類圖中類之間的關(guān)系及表示導航關(guān)聯(lián) 44面向?qū)ο蟮姆治雠c設(shè)計 類圖中類之間的關(guān)系及表示關(guān)聯(lián)中的角色 44面向?qū)ο蟮姆治雠c設(shè)計 類圖中類之間的關(guān)系及表示聚合 44面向?qū)ο蟮姆治雠c設(shè)計 類圖中類之間的關(guān)系及表示復合聚合 44面向?qū)ο蟮姆治雠c設(shè)計 類圖中類之間的關(guān)系及表示通用化 繼承 44面向?qū)ο蟮姆治雠c設(shè)計 使用包來組織類 包 package 是一種組合機制 把許多類集合成一個更高層次的單位 形成一個高內(nèi)聚 低耦合的類的集合 包圖是一個很有用的工具 特別是對于改進系統(tǒng)的結(jié)構(gòu)非常有幫助 44面向?qū)ο蟮姆治雠c設(shè)計 動態(tài)建模表示方法 順序圖 狀態(tài)圖 合作圖 其它 44面向?qū)ο蟮姆治雠c設(shè)計 狀態(tài)圖 所有對象都具有狀態(tài) 狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果 當某個事件發(fā)生后 對象的狀態(tài)將發(fā)生變化 狀態(tài)圖中定義的狀態(tài)有 初態(tài) 終態(tài) 中間狀態(tài) 復合狀態(tài) 其中 初態(tài)是狀態(tài)圖的起始點 而終態(tài)則是狀態(tài)圖的終點 一個狀態(tài)圖只能有一個初態(tài) 而終態(tài)則可以有多個 44面向?qū)ο蟮姆治雠c設(shè)計 順序圖 順序圖用來描述對象之間動態(tài)的交互關(guān)系 著重體現(xiàn)對象間消息傳遞的時間順序 44面向?qū)ο蟮姆治雠c設(shè)計 合作圖 合作圖用于描述相互合作的對象間的交互關(guān)系和鏈接關(guān)系 44面向?qū)ο蟮姆治雠c設(shè)計 動態(tài)建模表示方法小結(jié) 狀態(tài)圖描述跨越多個用例的單個對象的行為 順序圖和合作圖適合描述單個用例中幾個對象的行為 第五章編碼 本章主要內(nèi)容 5 1程序設(shè)計語言 5 2編碼規(guī)范 5 3結(jié)構(gòu)化程序設(shè)計 5 4面向?qū)ο蟮脑O(shè)計 5 5用戶界面設(shè)計 計算機語言分類 面向機器的程序設(shè)計語言 面向過程的程序設(shè)計語言 面向?qū)ο蟮某绦蛟O(shè)計語言 web編程語言 net程序設(shè)計語言 51程序設(shè)計語言 常用程序設(shè)計語言及其特點 51程序設(shè)計語言 常用程序設(shè)計語言及其特點 51程序設(shè)計語言 常用程序設(shè)計語言及其特點 51程序設(shè)計語言 程序設(shè)計語言的選擇 選擇語言的理想標準 為使程序易測試和維護以減少生存周期的總成本 選用高級語言應用理想的模塊化機制 以及可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu) 為便于調(diào)試和提高軟件可靠性 應選用編譯程序能夠盡可能多地發(fā)現(xiàn)程序中錯誤的語言 為降低軟件開發(fā)和維護成本 選用的語言應具有良好的獨立的編譯機制 51程序設(shè)計語言 程序設(shè)計語言的選擇 選用語言綜合考慮標準 系統(tǒng)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論