實用軟件工程 第7章 軟件建模.ppt_第1頁
實用軟件工程 第7章 軟件建模.ppt_第2頁
實用軟件工程 第7章 軟件建模.ppt_第3頁
實用軟件工程 第7章 軟件建模.ppt_第4頁
實用軟件工程 第7章 軟件建模.ppt_第5頁
已閱讀5頁,還剩127頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實用軟件工程 第7章軟件建模 軟件開發(fā)的主要工作是軟件需求和軟件設計 軟件需求和軟件設計的關鍵問題是軟件建模 建模的工具很多 最時尚的是uml提供的九種圖 類圖 對象圖 用例圖 時序圖 協(xié)作圖 狀態(tài)圖 活動圖 構件圖和實施圖 重點是建立系統(tǒng)的用例圖 時序圖和類圖 uml不是一種建模方法 而只是一種建模語言或建模工具而已 本章導讀 提出了 業(yè)務模型 功能模型 數(shù)據(jù)模型 三個模型的建模思想與建模方法 以及這三個模型的描述方式與 用例圖 時序圖和類圖 之間的關系 論述數(shù)據(jù)庫設計的理論 方法 技巧與藝術 即數(shù)據(jù)模型的設計方法與藝術 軟件建模 要求了解 1 軟件建模的概念 2 uml的建模思想要求理解 1 uml的支撐環(huán)境rose 2 uml建模思想的優(yōu)缺點 3 三個模型建模思想的優(yōu)缺點要求掌握 1 業(yè)務模型的概念及表示方式 2 功能模型的概念及表示方式 3 數(shù)據(jù)模型的概念及表示方式 4 數(shù)據(jù)庫設計的方法 技巧 7 1三個模型的建模思想7 1 1三個模型概論 功能模型fm functionmodel 描述系統(tǒng)能做什么 即對系統(tǒng)的功能 性能 接口和界面進行定義 業(yè)務模型om operationmodel 對系統(tǒng)的操作流程進行定義 怎么做 數(shù)據(jù)模型dm datamodel 對系統(tǒng)的數(shù)據(jù)結(jié)構進行定義 數(shù)據(jù)怎么組織 三個模型概論 續(xù) 數(shù)據(jù)模型 powerdesigner erwin oracledesigner或classdiagram功能模型 功能點列表 usecasediagram業(yè)務模型 自然語言加上流程圖 sequencediagram 1 建模時機 功能模型和業(yè)務模型 需求分析時建模 數(shù)據(jù)模型 軟件設計 2 三個模型建模工具 思考 三種模型建模思想是否適合系統(tǒng)軟件建模 問題 1 操作系統(tǒng)的三個模型是什么 2 編譯系統(tǒng)的三個模型是什么 3 解釋系統(tǒng)的三個模型是什么 7 1 2業(yè)務模型 系統(tǒng)的業(yè)務流程圖加上相應的業(yè)務規(guī)則 這里的業(yè)務流程圖 是指企業(yè)在業(yè)務流程再造bpr businessprocessreengineering 之后形成的操作流程和業(yè)務規(guī)則 1 業(yè)務模型 2 業(yè)務模型的范圍 企業(yè)的組織結(jié)構 部門職責及崗位 或角色 職能 崗位操作流程 崗位業(yè)務規(guī)則 每個流程的輸入 響應 輸出 3 業(yè)務模型的描述方法 組織結(jié)構圖 崗位 或角色 職能表 業(yè)務流程圖加上業(yè)務規(guī)則說明 4 業(yè)務流程圖 業(yè)務流程圖也可以用業(yè)務操作步驟來描述 還可以用類似于程序流程圖的圖形來表達 在uml中 完整的業(yè)務模型由用例圖 時序圖 交互圖 狀態(tài)圖 活動圖來表述 但是 時序圖在表述中起到核心作用 業(yè)務模型有時稱為動態(tài)模型或操作模型 業(yè)務模型的作用 既是功能模型設計的基礎 又是用戶操作手冊編寫的依據(jù) 取100元人民幣的時序圖 取100元人民幣的交互圖 開戶 的活動圖 7 1 3功能模型 1 功能模型是什么 系統(tǒng)功能需求列表 用戶角度 系統(tǒng)內(nèi)部功能模塊 功能部件 的有機排列和組合 設計者 系統(tǒng)的用例的集合 rose 用戶操作手冊 產(chǎn)品 功能菜單 操作菜單 總之 功能模型描述系統(tǒng)能做什么 是系統(tǒng)所有功能的集合 具體表現(xiàn)在系統(tǒng)的功能 性能 接口和界面上 2 功能模型的表示方法 系統(tǒng)功能需求列表性能需求列表接口需求列表界面需求列表uml規(guī)定采用用例圖來描述功能模型 3 功能模型的設計實現(xiàn)方法 將相同的功能歸并 設計為構件或組件 部件 將不同的功能設計成模塊 然后用面向?qū)ο蟮恼Z言將這些離散的部件或模塊組裝起來 形成一個完整的系統(tǒng) 供最終用戶使用 4 功能模型的特點 功能模型既是動態(tài)的 又是靜態(tài)的 因為有的功能與系統(tǒng)運行的時間序列有關 5 功能模型的作用 功能模型既是數(shù)據(jù)庫和數(shù)據(jù)結(jié)構設計的基礎 又是功能模塊 功能部件 設計 編程實現(xiàn)和測試驗收的依據(jù) 7 1 4數(shù)據(jù)模型 企業(yè)信息系統(tǒng)中的數(shù)據(jù)模型 是指它的e r圖及其相應的數(shù)據(jù)字典 這里的數(shù)據(jù)字典 包括實體字典 屬性字典 關系字典 1 數(shù)據(jù)模型是什么 數(shù)據(jù)模型分為概念數(shù)據(jù)模型cdm和物理數(shù)據(jù)模型pdm兩個層次 cdm就是數(shù)據(jù)庫的邏輯設計 即e r圖 pdm就是數(shù)據(jù)庫的物理設計 即物理表 2 數(shù)據(jù)模型的表示方法 系統(tǒng)的概念數(shù)據(jù)模型cdm和物理數(shù)據(jù)模型pdm 加上相應的表結(jié)構 uml規(guī)定 用類圖加上對象圖來表述數(shù)據(jù)模型 在uml的實現(xiàn)工具rose2003中 可以建立系統(tǒng)的數(shù)據(jù)模型 3 數(shù)據(jù)模型的特點 數(shù)據(jù)模型本身是靜態(tài)的 但是在設計者心目中 應該盡量將它由靜態(tài)變成動態(tài) 設計者可以想象數(shù)據(jù) 或記錄 在相關表上的流動過程 即增加 刪除 修改 傳輸與處理等 圖書銷售系統(tǒng)數(shù)據(jù)庫cdm 7 2數(shù)據(jù)模型設計概論 以不變應萬變 就是當用戶的功能需求發(fā)生某些變化時 數(shù)據(jù)庫設計的框架不需要做任何改動 就可以適應用戶的功能需求 1 什么是好的數(shù)據(jù)模型 1 一是滿足功能需求 2 二是滿足性能需求 3 三是該模型能長期穩(wěn)定 盡量做到 以不變應萬變 數(shù)據(jù)庫設計的難易程度取決于兩個要素 1 數(shù)據(jù)關系的復雜程度 2 數(shù)據(jù)量的大小 2 數(shù)據(jù)庫設計的主要工作 設計數(shù)據(jù)庫的表 表的結(jié)構就是數(shù)據(jù)的存儲結(jié)構 7 2 1數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng) 管理用戶的數(shù)據(jù)庫及其在數(shù)據(jù)庫上的各種操作 以及數(shù)據(jù)庫對外的各種接口 1 兩者區(qū)別 數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)是有區(qū)別的 前者是應用軟件 后者是系統(tǒng)軟件 2 數(shù)據(jù)庫管理系統(tǒng)基本功能 關系數(shù)據(jù)庫管理系統(tǒng)rdbms自帶許多編程語句 命令 這些語句可分為三大類 數(shù)據(jù)定義語言ddl 如create alter drop 數(shù)據(jù)操縱語言dml 如select update insert delete 數(shù)據(jù)控制語言dcl 如分支語句 循環(huán)語句 7 2 2數(shù)據(jù)庫的組成 數(shù)據(jù)庫是表的集合 表由字段組成 表中存放著記錄 由于記錄的數(shù)據(jù)可以是原始數(shù)據(jù) 信息代碼數(shù)據(jù) 統(tǒng)計數(shù)據(jù)和臨時數(shù)據(jù)4種 所以又可將表劃分為基本表 代碼表 中間表和臨時表4種 1 組成 一個數(shù)據(jù)庫由一臺數(shù)據(jù)庫服務器 一個數(shù)據(jù)庫管理系統(tǒng)dbms 一個數(shù)據(jù)庫管理員dba 多張表 每張表中有許多條記錄 表上的視圖和索引 許多用戶和角色所組成 2 表的劃分 原始數(shù)據(jù)和信息代碼數(shù)據(jù) 統(tǒng)稱為基礎數(shù)據(jù) 本表和代碼表 統(tǒng)稱為基表 數(shù)據(jù)庫設計主要是指基本表設計 包括代碼表 中間表 臨時表和視圖的設計 基本表的設計較難 代碼表 中間表 臨時表和視圖的設計較易 3 數(shù)據(jù)庫的表 1 存放原始數(shù)據(jù)的表 稱為基本表 2 存放信息代碼數(shù)據(jù)的表 稱為代碼表 3 存放統(tǒng)計數(shù)據(jù)的表 稱為中間表 4 存放臨時數(shù)據(jù)的表 稱為臨時表 基本表與中間表 臨時表不同 有如下4個特性 1 原子性 基本表中的字段是不可再分解的 2 原始性 基本表中的記錄是原始數(shù)據(jù)的記錄 3 演繹性 由基本表與代碼表中的數(shù)據(jù) 可以派生出所有的輸出數(shù)據(jù) 4 穩(wěn)定性 基本表的結(jié)構是相對穩(wěn)定的 表中的記錄是需要長期保存的 4 基本表的性質(zhì) 基表和中間表由dba維護 臨時表由程序員自己用程序自動維護 5 其他表 代碼表又稱為 數(shù)據(jù)字典 它是存放單位代碼 物資代碼 人員代碼 科目代碼等等信息編碼的表 中間表是存放統(tǒng)計數(shù)據(jù)的表 它是為數(shù)據(jù)倉庫 輸出報表或查詢結(jié)果而設計的 臨時表是程序員個人設計的 存放臨時記錄 為個人所用 視圖是一種虛表 它依賴數(shù)據(jù)源的實表而存在 這些實表是基本表和代碼表 6 數(shù)據(jù)庫視圖 視圖是供程序員使用數(shù)據(jù)庫的一個窗口 是基表數(shù)據(jù)綜合的一種形式 是數(shù)據(jù)處理的一種方法 是用戶數(shù)據(jù)保密的一種手段 7 2 3數(shù)據(jù)庫設計的內(nèi)容與步驟 三項內(nèi)容 十大步驟 數(shù)據(jù)庫需求分析的步驟 1 收集系統(tǒng)所有的原始單據(jù) 信息源產(chǎn)生的數(shù)據(jù) 和統(tǒng)計報表 2 弄清楚兩者之間的關系 寫明輸出數(shù)據(jù)項中的數(shù)據(jù)來源與算法 3 若原始單據(jù)覆蓋了所有需要的業(yè)務內(nèi)容 并且能滿足所有統(tǒng)計報表的輸出數(shù)據(jù)要求 則需求分析完畢 4 反之繼續(xù)分析 重復步驟 1 3 1 數(shù)據(jù)庫需求分析 例7 1 姓名 性別 身高 體重 民族 這一組相關元數(shù)據(jù)的集合 就組成人這個實體 而 張三 男 1 8 90 漢族 就是人這個實體的一次表現(xiàn) 它不是一個實體 而是一個實例 如果將 體重 改為 毛重 則 姓名 性別 身高 毛重 民族 就不是一個實體 因為人不能用毛重 凈重描述 豬和貨物可以用毛重 凈重描述 概念設計的特點是 與具體的數(shù)據(jù)庫管理系統(tǒng)和網(wǎng)絡系統(tǒng)無關 它就是數(shù)據(jù)庫的邏輯設計 2 數(shù)據(jù)庫概念設計 數(shù)據(jù)庫概念設計是指設計出數(shù)據(jù)庫的概念數(shù)據(jù)模型cdm 以及相應的數(shù)據(jù)字典 dd 所謂實體 就是一組相關元數(shù)據(jù)的集合 所謂實例 就是實體的一次表現(xiàn) 數(shù)據(jù)庫物理設計的方法是 1 確定關系數(shù)據(jù)庫管理系統(tǒng)平臺 即選定具體的rdbms 2 利用數(shù)據(jù)庫提供的命令和語句 建立表 索引 觸發(fā)器 存儲過程 視圖等 3 列出表與功能模塊之間的關系矩陣 便于詳細設計 3 數(shù)據(jù)庫物理設計 數(shù)據(jù)庫物理設計是指設計出數(shù)據(jù)庫的物理數(shù)據(jù)模型pdm 包括數(shù)據(jù)庫服務器物理空間上的表 字段 索引 視圖 儲存過程 觸發(fā)器 以及相應的數(shù)據(jù)字典 數(shù)據(jù)庫設計十大步驟 7 3數(shù)據(jù)庫設計的理論與方法 原始單據(jù)與實體之間關系在一般是一對一的關系 即一張原始單據(jù)對應且只對應一個實體 在特殊情況下 它們可能是一對多或多對一的關系 這里的實體可以理解為基本表 例7 2 在人力資源信息系統(tǒng)中 一份員工履歷對應三個基本表 員工基本情況表 社會關系表 工作簡歷表 這就是 一張原始單據(jù)對應多個實體 的典型例子 1 數(shù)據(jù)庫原始單據(jù)與實體之間的關系 實體在哪兒呢 即如何發(fā)現(xiàn) 找到 抽象出實體呢 其實 實體就蘊涵在原始單據(jù)中 主張主鍵原子化 即只用一個字段做主鍵 其中外鍵必須對應主鍵 2 主鍵與外鍵 一個實體不能既無主鍵 pk 又無外鍵 fk 在e r圖中 處于葉子部位的實體 可以不定義主鍵 因為它無子孫 但必須要有外鍵 因為它有父親 pk是供程序員使用的表間連接工具 可以是一個無物理意義的數(shù)字串 由程序自動加1來實現(xiàn) 也可以是有物理意義的字段名或字段名的組合 不過前者比后者好 第三范式 3nf是對字段冗余性的約束 即任何字段不能由其他字段派生出來 它要求字段沒有冗余 3 通俗地理解范式理論 第一范式 1nf是對屬性的原子性約束 要求屬性具有原子性 不可再分解 第二范式 2nf是對記錄的惟一性約束 要求記錄有惟一標識 即實體的惟一性 在數(shù)據(jù)庫設計時 作為惟一性標志的主鍵 最好是一個字段 而不是組合字段 這就是主鍵的原子性 數(shù)據(jù)庫設計規(guī)范化理論的實質(zhì) 就是引導并幫助設計人員實現(xiàn) 實體 屬性 主鍵的原子化 其他更高級的范式 bcf 4nf 5nf等各級范式 研究的內(nèi)容是解決實體本身的原子性問題 只要實現(xiàn)了屬性 主鍵 實體三者的原子化 就從根本上符合了各級范式的要求了 這就是范式理論的實質(zhì) 降低范式就是增加字段 允許冗余 常稱 降低范式的過程 為 反規(guī)范化設計過程 沒有冗余的數(shù)據(jù)庫設計 為了提高運行效率 必須降低范式標準 適當保留冗余數(shù)據(jù) 這就是用空間換時間 具體做法是 在概念數(shù)據(jù)模型設計時遵守第三范式 降低范式標準的工作放到物理數(shù)據(jù)模型設計時考慮 低級冗余和高級冗余 主鍵與外鍵在多表中的重復出現(xiàn) 不屬于數(shù)據(jù)冗余 非鍵字段的重復出現(xiàn) 才是數(shù)據(jù)冗余 而且是一種低級冗余 即重復性的冗余 高級冗余不是字段的重復出現(xiàn) 而是字段的派生出現(xiàn) 低級冗余會導致數(shù)據(jù)的不一致 例7 3 有一張存放商品的基本表 如p163表7 3所示 金額 這個字段的存在 表明該表的設計不滿足第三范式 因為 金額 可以由 單價 乘以 數(shù)量 得到 說明 金額 是冗余字段 但是 增加 金額 這個冗余字段 可以提高查詢統(tǒng)計的速度 這就是以空間換時間的做法 在rose2002中 規(guī)定列有兩種類型 數(shù)據(jù)列和計算列 金額 這樣的列被稱為 計算列 而 單價 和 數(shù)量 這樣的列被稱為 數(shù)據(jù)列 4 數(shù)據(jù)庫設計中的兩大竅門 竅門之二 要建立穩(wěn)定的數(shù)據(jù)模型 就要掌握 以不變應萬變 的設計技巧 這個技巧就是 列變行 站在it企業(yè)的數(shù)據(jù)庫開發(fā)上講 數(shù)據(jù)庫設計的核心竅門只有兩個 竅門之一 如果兩個實體 或多個實體 之間的關系非常復雜 那么它們之間就可能存在多對多的關系 對于這種情況 我們不但要善于認別它 而且要正確處理它 增加第三者 增加第三者的實質(zhì) 是解決關系的原子化問題 在現(xiàn)實生活中 到處存在多對多的關系 例如 老師與課程 學生與課程 讀者與圖書 旅客與客房 司機與車輛 船舶與貨物 飛機與機場 運動員與項目等 增加第三者 尋找 笛卡爾積的子集 的竅門 就是 要善于認別與正確處理實體之間的多對多關系 兩者之間增加第三個實體 這樣 原來一個多對多的關系 現(xiàn)在變?yōu)閮蓚€一對多的關系 剩下的問題是 要將原來兩個實體的共同屬性分配到第三個實體中去 還要將原來兩個實體的主鍵當作第三個實體的外鍵 這里的第三個實體 就是 笛卡爾積的子集 它是一個實體 對應一張基本表 多對多關系 多對多關系 具體做法 請看p165 例7 7 學生成績單的管理 就是一個 列變行 的例子 列變行 所謂 列變行 就是將第一個表中的某些列 變?yōu)榈诙€表中的某些行 將原來設計不科學的一個表 變?yōu)楝F(xiàn)在設計很科學的兩個表 其中一個為主表或父表 另一個為從表或子表 又稱明細表 通過主鍵與外鍵 兩個表進行連接 共同完成相關的操作 1 列變行 之前的表結(jié)構 2 列變行 之后的表結(jié)構 列變行之后的輸出方案 建立 學生成績表 視圖 createview學生成績表asselect學生表 學號 姓名 課程名稱 成績from學生表 成績表where學生表 學號 成績表 學號 列變行 的實質(zhì) 列變行 的實質(zhì)是解決實體的原子性問題 在現(xiàn)實生活中 到處存在需要 列變行 的例子 因為到處有主表與明細表的關系 例如 部門與員工 員工基本情況與個人簡歷 月基本工資與月補貼 訂單頭與訂單體等等 列變行 之后的表結(jié)構設計中的優(yōu)點 就是 實事求是 第一 在四年級之前 他們沒有學完三十門課程 這種設計也不會浪費一點存儲空間 第二 到四年級時 即使個別學生修了兩個學位 共計有三十多門課程 這種設計也不需要改動表結(jié)構 達到了 以不變應萬變 的目的 5 西瓜理論和西瓜方法 定義7 5 所謂西瓜方法 就是在數(shù)據(jù)庫設計時 如果將屬性比作芝麻 將主要實體比作大西瓜 將次要實體比作小西瓜 那么在用case工具設計e r圖時 應先畫出大西瓜 后畫出小西瓜 用西瓜統(tǒng)帥芝麻 用大西瓜統(tǒng)帥小西瓜 定義7 4 所謂西瓜理論 就是在數(shù)據(jù)庫分析時 如果將屬性比作芝麻 將主要實體比作大西瓜 將次要實體比作小西瓜 那么芝麻必須圍繞西瓜轉(zhuǎn) 小西瓜必須圍繞大西瓜轉(zhuǎn) 西瓜理論和西瓜方法 排除了 屬性主導型 方法 主張 實體主導型 方法 實體主導型 方法只是提出了 以實體統(tǒng)帥屬性 的思想 在數(shù)據(jù)庫分析與設計時 首先要抓住實體 從實體出發(fā)去尋找 發(fā)現(xiàn) 確定屬性 而不要采取本末倒置的 屬性主導型 方法 即從屬性出發(fā) 通過屬性的分解與歸約 來尋找 發(fā)現(xiàn) 確定實體 1 在數(shù)據(jù)庫需求分析和設計時 一方面要以實體去統(tǒng)帥屬性 另一方面要以主要實體去統(tǒng)帥次要實體 2 不但要使屬性圍繞實體轉(zhuǎn) 而且要使次要實體圍繞主要實體轉(zhuǎn) 3 在任何信息系統(tǒng)的全局e r圖中 其主要實體的數(shù)目都是有限的 數(shù)據(jù)庫分析與設計的任務 就是善于發(fā)現(xiàn) 捕獲主要實體 并用主要實體去組織 規(guī)劃 設計全局e r圖 西瓜理論和西瓜方法 除了繼承 實體主導型 方法的特點之外 還更進一步地提出 畫e r圖的步驟 在西瓜理論和西瓜方法的指導下 利用case工具畫e r圖的步驟是 1 先畫主要實體 抓大西瓜 用大西瓜來統(tǒng)帥中小西瓜 2 再畫次要實體 抓中西瓜 使中西瓜圍繞大西瓜轉(zhuǎn) 3 后畫代碼實體 抓小西瓜 使小西瓜圍繞中西瓜轉(zhuǎn) 4 最后分配或補充實體的屬性 撿芝麻 5 畫關系 調(diào)整e r圖的部署 檢查數(shù)據(jù)庫設計是否實現(xiàn)了四化 屬性 實體 主鍵 關系的原子化 6 完整性約束表現(xiàn)在三個方面 3 用戶定義完整性 它是用戶單位規(guī)定的一些業(yè)務規(guī)則 這些業(yè)務規(guī)則有時用存儲過程實現(xiàn) 有時用觸發(fā)器來實現(xiàn) 有時用定義域 對字段的取值范圍進行定義 來實現(xiàn) 業(yè)務規(guī)則反映用戶單位的業(yè)務邏輯 必須在數(shù)據(jù)庫需求分析時徹底搞清 1 實體完整性 每個實體必須有唯一性標志 這個唯一性標志是用實體的主鍵 pk 來實現(xiàn) 2 參照完整性 就是由主表到從表的方向是參照關系 由從表到主表的方向是依賴關系 參照和依賴關系 是通過主鍵 pk 外鍵 fk 和觸發(fā)器來加以實現(xiàn) 關系數(shù)據(jù)庫的本質(zhì) 就是分析 研究 處理主表與從表的關系 即主鍵與外鍵的關系 7 防止數(shù)據(jù)庫設計打補丁的方法是 三少原則 3 一個表中的字段個數(shù)越少越好 只有字段的個數(shù)少 才能說明系統(tǒng)中不存在數(shù)據(jù)重復 且很少有數(shù)據(jù)冗余 學會 列變行 這樣就防止了將子表中的字段拉入到主表中去 在主表中留下許多空余的字段 1 一個數(shù)據(jù)庫中表的個數(shù)越少越好 只有表的個數(shù)少了 才能說明系統(tǒng)的e r圖少而精 去掉了重復的 多余的實體 形成了對客觀世界的高度抽象 2 一個表中組合主鍵的字段個數(shù)越少越好 最好是用一個字段做主鍵 即主鍵原子化 因為主鍵的作用 一是建立主鍵索引 二是作為從表的外鍵 所以組合主鍵的字段個數(shù)少了 不僅節(jié)省了運行時間 而且節(jié)省了索引存儲空間 7 4信息系統(tǒng)建模實例分析省級新華書店信息系統(tǒng)建模案例 以上面三個主要實體為中心 并將所有的次要實體統(tǒng)帥起來 使所有的次要實體都以這三個實體為中心 形成一個完整的新華書店信息系統(tǒng)數(shù)據(jù)模型 1 數(shù)據(jù)模型分析 從全局實體關系圖中 cdm有以下3個主要實體 1 圖書 它存放了新華書店歷年來發(fā)行的全部圖書信息 2 倉庫圖書 它存放了儲運中心倉庫現(xiàn)有的全部圖書信息 3 門市圖書 它存放了書城或連鎖書店各自現(xiàn)有的全部圖書信息 數(shù)據(jù)模型分析 續(xù) 每個實體的名稱 主鍵 屬性在cdm圖上顯示得很清楚 根據(jù)概念數(shù)據(jù)模型cdm 利用powerdesignerdataarchitect工具 就可自動生成物理數(shù)據(jù)模型pdm 在省級新華書店信息系統(tǒng)的概念數(shù)據(jù)模型cdm中 與 圖書 直接關聯(lián)的實體有 出版社 倉庫圖書 書城入庫 訂購單體 書城訂單 圖書警戒線 與 倉庫圖書 直接關聯(lián)的實體有 現(xiàn)貨批銷 付退貨 圖書報廢 入庫單 倉庫貨位 市外調(diào)撥 內(nèi)部遷移 內(nèi)退入庫 市內(nèi)配送 圖書 與 門市圖書 直接關聯(lián)的實體有 市內(nèi)配送 內(nèi)退入庫 銷售記錄 書店 書城入庫 2 功能模型分析 1 輸入內(nèi)容 是用戶對信息系統(tǒng)的錄入 2 輸出內(nèi)容 是信息系統(tǒng)對外的顯示或打印 3 系統(tǒng)響應 是系統(tǒng)對用戶操作的處理過程 省級新華書店信息系統(tǒng)的功能模型具有16項功能 用 功能點列表 的方式來描述和分析 現(xiàn)將分析結(jié)果列在表7 7之中 3 業(yè)務模型分析 步驟1 制作訂購單操作流程 步驟2 制作訂單操作流程 步驟3 圖書期貨入庫操作流程 步驟4 圖書配送操作流程 步驟5 圖書銷售操作流程 步驟6 圖書退貨操作流程 步驟7 圖書調(diào)撥操作流程 步驟8 圖書現(xiàn)貨批銷操作流程 步驟9 查詢統(tǒng)計 步驟10 制作記賬憑證 業(yè)務模型屬于動態(tài)模型 本實例分析中用 業(yè)務操作步驟 來描述 省級新華書店信息系統(tǒng)的業(yè)務模型由下列10大步驟組成 4 分析結(jié)論 在此基礎上 再對新華書店信息系統(tǒng)進行概要設計和詳細設計 當詳細設計評審通過 不符合項為零 后 再利用powerbuilder delphi c 等語言進行實現(xiàn) 加上面向功能的測試和面向過程的管理 系統(tǒng)按計劃 進度 成本 質(zhì)量 實現(xiàn) 對上述 三個模型 研究分析之后 完成了需求分析的主要工作量及概要設計中的主要內(nèi)容 數(shù)據(jù)庫設計 7 5三個模型建模思想總結(jié) 2 符合客觀事物的發(fā)展規(guī)律 做什么 系統(tǒng) 功能模型 的任務 怎么做 系統(tǒng) 業(yè)務模型 的任務 在什么地方做 做事的原材料在什么地方 做完后的產(chǎn)品放到什么地方 這就是系統(tǒng) 數(shù)據(jù)模型 的任務 1 三個模型建模思想的優(yōu)點 1 符合中國人的心理 系統(tǒng)有什么功能 對應系統(tǒng)的 功能模型 系統(tǒng)怎么操作 對應系統(tǒng)的 業(yè)務模型 系統(tǒng)的數(shù)據(jù)怎樣組織 對應系統(tǒng)的 數(shù)據(jù)模型 4 符合 簡單 方便 直觀 的原則 功能模型 看得見 菜單 界面 報表 業(yè)務模型 摸得著 操作說明書 業(yè)務流程圖 業(yè)務規(guī)則 數(shù)據(jù)模型 聽得懂 實體 屬性 關系 表 字段 記錄 數(shù)據(jù)字典 原始數(shù)據(jù) 統(tǒng)計數(shù)據(jù) 臨時數(shù)據(jù) 3 符合將復雜問題簡單化的哲學思想 項目經(jīng)理主要負責 三抓 抓系統(tǒng)的 功能模型 抓系統(tǒng)的 業(yè)務模型 抓系統(tǒng)的 數(shù)據(jù)模型 6 三個模型的建模思想既適合應用軟件建模 又適合系統(tǒng)軟件建模 5 符合節(jié)省成本降低費用的經(jīng)濟效益目標 中國軟件的開發(fā)方法與文檔標準 不應該完全與發(fā)達國家相同 而結(jié)合中國的國情來做 3 只能覆蓋需求分析和設計兩個階段 不能覆蓋整個軟件生存周期 業(yè)務模型和功能模型主要適合在軟件需求階段建模 數(shù)據(jù)模型主要適合在軟件設計階段建模 2 三個模型建模思想的缺點 1 功能模型表述不規(guī)范 目前 功能模型還只能用 功能點列表 性能點列表 接口列表 這三個列表來表示 或者用uml的用例圖和用況規(guī)約來描述 其他還沒有找到更好的方法 2 業(yè)務模型表述不規(guī)范 目前 業(yè)務模型還只能從 業(yè)務操作步驟 業(yè)務流程圖 用戶操作手冊 這三個方面來表示 在uml中 完整的業(yè)務模型由用例圖 時序圖 交互圖 狀態(tài)圖 活動圖來表述 其他還沒有找到更好的辦法 2 數(shù)據(jù)模型能否可以用類圖來創(chuàng)建呢 不可以 uml中新增加了數(shù)據(jù)模型的語法 其實現(xiàn)工具rose2003支持這一功能 在rose2003的邏輯視圖中 可以創(chuàng)建表以及表中的字段 約束 主鍵 外鍵 關系 索引 觸發(fā)器和存儲過程 這樣 就將rose的建模方式與三個模型的建模思想結(jié)合在一起 3 值得思考的問題 1 業(yè)務模型和功能模型描述方法的改進和提高 是三個模型建模思想的發(fā)展方向 uml只是一種建模語言 不是一種方法論 它獨立于過程 不包括過程中的方法與步驟 方法論與語言工具是不同的 三個模型的建模思想屬于方法論 uml屬語言工具 4 三個模型 的思想 加上 五個面向 的實施理論 就構成了一個完整的方法論 該方法論不僅適合信息系統(tǒng)建設 而且也適合其他應用軟件和系統(tǒng)軟件的建設 3 三個模型應以數(shù)據(jù)模型為中心 以業(yè)務模型和功能模型為兩個基本點 尤其是在企業(yè)信息系統(tǒng)的分析 設計和實現(xiàn)中 因為關系型數(shù)據(jù)庫管理系統(tǒng)rdbms仍然是其支撐平臺 所以應該這樣去理解三個模型的建模思想 7 6uml的建模思想7 6 1uml對軟件工程的重大影響 uml不是一種建模思想 只是一種建模語言或工具 uml和rose的組合已構成了一種新的軟件建模思想和開發(fā)方式 勢必會對軟件工程的發(fā)展與創(chuàng)新產(chǎn)生重大影響 這種影響將主要表現(xiàn)在如下四個方面 uml是rationalrose的理論基礎 rationalrose是uml的建模實現(xiàn)途徑 即rose是uml的實現(xiàn)工具 uml對軟件工程的重大影響 1 軟件生存周期 uml用統(tǒng)一的軟件開發(fā)生存周期rup來替代原有的軟件生存周期 2 軟件建模方式 uml用可視化的語言實現(xiàn)軟件整個生存周期各個階段的建模 3 軟件文檔規(guī)范 正向工程和逆向工程的文檔全部由uml建模工具自動產(chǎn)生 4 軟件人員分工 uml使得分析 設計 實現(xiàn) 維護的崗位界線逐漸趨向模糊 7 6 2uml的概念模型 1 面向?qū)ο蟮幕?構造塊 積木塊 2 支配這些構造塊放在一起建模的 規(guī)則 建模的粘合劑 3 運用于整個uml的 公共機制 模型的圖紙說明 使用uml的關鍵是用它來簡明 準確地建立模型 為了理解uml的建模元素 關鍵是要學習它的三個要素 第1種構造塊 事物 事物是構造塊 uml中有4種事物 它們分別是結(jié)構事物 行為事物 分組事物和注釋事物 1 結(jié)構事物 structuralthing 它是uml模型中的靜態(tài)元素 包括類 接口 協(xié)作 用況 主動類 構件和節(jié)點7種元素 1 uml的 構造塊 uml中有3種基本構造塊 分別是 事物 關系 和 圖 它們是uml建模中的積木元素或積木組合體 4 注釋事物 annotationalthing 它是uml模型的解釋元素 主要是注解 note 用一個包含注解內(nèi)容的右上角為折角的矩形表示 2 行為事物 behavioralthing 它是uml模型中的動態(tài)元素 包括交互和狀態(tài)機2種元素 3 分組事物 groupingthing 它是uml模型的組織元素 主要是包 package 用一個包含名稱的左上角帶有一個小矩形的大矩形表示 uml事物 結(jié)構事物 class 類 interface 接口 描述了一個類或構件的服務 操作 集 collaboration 協(xié)作 合作完成某個特定任務的一組類及其關聯(lián)的集合 用于對usecase的實現(xiàn)建模 usecase 用例 表示系統(tǒng)想要實現(xiàn)的行為 不關心這些行為是怎樣實現(xiàn)的 activeclass 主動類 與一般類相同 但它至少擁有一個進程或線程 故能夠啟動控制活動 component 構件 系統(tǒng)中物理的 可替代的部件 node 節(jié)點 系統(tǒng)在運行時存在的物理元素 uml事物 行為事物 interaction 交互 由在特定環(huán)境中共同完成一定任務的一組對象之間交換的消息組成 statemachine 狀態(tài)機 描述了一個對象或一個交互在生存期內(nèi)響應事件所經(jīng)歷的狀態(tài)序列 uml事物 分組事物 package 包 uml事物 注釋事物 note 注釋 依附于一個元素或一組元素之上 對其進行約束或解釋的簡單符號 關系也是構造塊 uml中有5種關系 利用這些關系可以設計出結(jié)構良好的模型 1 依賴 dependency 2 關聯(lián) association 3 泛化 generalization 4 實現(xiàn) realization 第2種構造塊 關系 umlrelationships 關系 dependency 依賴 兩個事物之間的語義關系 其中一個事物發(fā)生變化會影響另一個事物的語義 association 關聯(lián) 一種描述一組對象之間連接的結(jié)構關系 聚合是一種特殊類型的關聯(lián) 描述了整體和部分間的結(jié)構關系 generalization 泛化 一種一般化 特殊化的關系 realization 實現(xiàn) 類之間的語義關系 其中的一個類元指定了由另一個類保證執(zhí)行的契約 兩種情況出現(xiàn)實現(xiàn)關系 1 在接口和實現(xiàn)它們的類或構件之間 2 在用例和它們的協(xié)作之間 1 類圖 classdiagram 2 對象圖 objectdiagram 3 用況圖 usecasediagram 4 順序圖 sequencediagram 5 協(xié)作圖 collaborationdiagram 6 狀態(tài)圖 statechartdiagram 7 活動圖 activitydiagram 8 構件圖 componentdiagram 9 實施圖 deploymentdiagram 第3種構造塊 圖 圖也是構造塊 uml中有9種圖 模型中主要的圖形元素 uml模型的圖形 模型 1 用例圖 usecasediagram 用例圖展現(xiàn)了一組用例 參與者以及它們間的關系 可以用用例圖描述系統(tǒng)的靜態(tài)使用情況 它定義了系統(tǒng)的功能需求 但這是從系統(tǒng)的外部觀看系統(tǒng)功能 并不描述系統(tǒng)內(nèi)部對功能的具體實現(xiàn) 在對系統(tǒng)行為組織和建模方面 用例圖是相當重要的 用例規(guī)格說明 銷售商品 2 類圖 classdiagram 類圖展示了一組類 接口和協(xié)作及它們間的關系 類圖沒有時間概念 是概念數(shù)據(jù)模型 如e r圖 的一種延伸 用類圖說明系統(tǒng)的靜態(tài)結(jié)構視圖 包含主動類的類圖 專注于系統(tǒng)的靜態(tài)處理視圖 系統(tǒng)可有多個類圖 單個類圖僅表達了系統(tǒng)的一個方面 要在高層給出類的主要職責 在低層給出類的屬性和操作 類圖是從系統(tǒng)構成的角度來描述正在開發(fā)的系統(tǒng) 類的表示 限定關聯(lián) 聚合 引用和重復度 關聯(lián)名 類1 類2 角色1 角色2 關聯(lián)類 泛化關系 3 對象圖 objectdiagram 對象圖展示了一組對象及它們間的關系 用對象圖說明類圖中類的對象實例的數(shù)據(jù)結(jié)構和靜態(tài)快照 即在某一時刻 一組對象的狀態(tài)及其關系 對象圖表達了系統(tǒng)的靜態(tài)設計視圖或靜態(tài)過程視圖 除了現(xiàn)實和原型的方面的因素外 它與類圖作用是相同的 4 包圖 packagediagram 嚴格地講 包圖只是表明包及其之間的依賴的類圖 包是對模型中涉及的元素分組所得的結(jié)果 是具有特定語義的一個子集 必須保證低耦合 高內(nèi)聚 廣義地講 包可以包含類 接口 構件 節(jié)點 協(xié)作 用例等 還可以內(nèi)嵌其他子包 包之間的訪問權限通過輸出 export 和導入 import 設置 虛箭頭從源包到目標包 5 構件圖 componentdiagram 構件圖展現(xiàn)了一組構件之間的組織和依賴 用于對源代碼 可執(zhí)行的發(fā)布 物理數(shù)據(jù)庫等的系統(tǒng)建模 構件圖表示系統(tǒng)的靜態(tài)實現(xiàn)視圖 課程 用戶 課表系統(tǒng) 6 部署圖 deploymentdiagram 部署圖展現(xiàn)了對運行時處理節(jié)點以及其中構件的配置 每一節(jié)點代表一個計算單元 它描述系統(tǒng)硬件的物理拓撲結(jié)構 包括網(wǎng)絡布局和構件在網(wǎng)絡上的位置 以及在此結(jié)構上執(zhí)行的軟件 即運行時軟構件在節(jié)點中的分布情況 用部署圖說明系統(tǒng)結(jié)構的靜態(tài)環(huán)境視圖 即說明分布 交付和安裝的物理系統(tǒng) 8 活動圖 activitydiagram 活動圖是一種特殊的狀態(tài)圖 描述需要做的活動 執(zhí)行這些活動的順序 多為并行的 以及工作流 完成工作所需要的步驟 它對于系統(tǒng)的功能建模特別重要 強調(diào)對象間的控制流程 高層活動圖用于表示任務 即用于分析用例 理解涉及多個用例的工作流 多線程及并行 顯示相互聯(lián)系的行為整體 還可用于業(yè)務過程建模 對系統(tǒng)的功能建模 低層活動圖用于表示類的方法 9 狀態(tài)圖 statechartdiagram 狀態(tài)圖展示了一個特定對象的所有可能狀態(tài)以及由于各種事件的發(fā)生而引起的狀態(tài)間的轉(zhuǎn)移 一個狀態(tài)圖描述了一個狀態(tài)機 用狀態(tài)圖說明系統(tǒng)的動態(tài)視圖 狀態(tài)圖對于接口 類或協(xié)作的行為建模尤為重要 可用它描述用例實例的生存期 project對象的狀態(tài)圖 10 交互圖 interactiondiagram 交互圖展現(xiàn)了按一定的目的進行的一種交互 它由在一個上下文中的一組對象及它們之間交互的信息組成 交互圖可用于描述一個用例的行為 順序圖和協(xié)作圖都是交互圖 它們可以相互轉(zhuǎn)換 如果希望查看單個對象跨用例的行為 要使用狀態(tài)圖 如果希望查看跨用例跨線程的行為 要使用活動圖 10 1順序圖 sequencediagram 順序圖展現(xiàn)了一組對象和由這組對象收發(fā)的消息 用于按時間順序?qū)刂屏鹘?對象表述為虛垂線頂端的矩形小框 垂線是對象的生命線 說明對象的生命 生命線之間的箭頭表示消息 消息出現(xiàn)的次序自上而下 消息箭頭可以回到同一條生命線 指明自調(diào)用 即對象發(fā)給自己的消息 用 可表示條件 用 表明迭代依據(jù) 移動電話系統(tǒng)的用例圖 移動電話系統(tǒng)的順序圖 10 2協(xié)作圖 collaborationdiagram 協(xié)作圖展現(xiàn)了一組對象 這組對象之間的連接以及這組對象收發(fā)的消息 它強調(diào)收發(fā)消息的對象的結(jié)構組織 按組織結(jié)構對控制流建模 協(xié)作圖中的協(xié)作不是參與者與系統(tǒng)之間的交互 而是系統(tǒng)內(nèi)部某一個用例中各個對象之間信息傳遞的方式 消息上所附編號指明執(zhí)行順序 移動電話系統(tǒng)的協(xié)作圖 順序圖與協(xié)作圖的比較 順序圖和協(xié)作圖都是表示在某一個用例中一條執(zhí)行路徑上的執(zhí)行情況 表明這時各個對象之間的交互 順序圖強調(diào)順序 易于看出其中出現(xiàn)的時間的順序 協(xié)作圖可以利用布局指明各個對象是如何連接的 對于有多個可供選擇的情況 使用交互圖太不方便 可用crc卡片代替 描述 類 職責 協(xié)作 為了將uml的構造塊有機地組裝在一起形成一個結(jié)構良好的模型 uml需要描述下列事物的5種語義規(guī)則 1 命名 為事物 關系和圖命名 2 范圍 給一個名字以特定含義的語境 即范圍 3 可見性 怎樣使用或看見名字 即可見性 4 完整性 事物如何正確 一致地相互聯(lián)系 5 執(zhí)行 運行或模擬動態(tài)模型的含義是什么 即執(zhí)行 2 uml運用構造塊的 規(guī)則 uml的規(guī)則 命名 names 為事物 關系和圖起名 如 student personinfo student 作用域 scope 把施于類而不是施于實例的操作和屬性說明為類作用域 相當于c 靜態(tài)變量 可見性 visibility 對類中任一屬性或操作定義存取權限 加前綴 公用 私用 保護 完整性 integrity 保持事物之間聯(lián)系的正確性和一致性 單個模型是不充分的 應建立互補的連鎖的模型 從整體描述軟件的藍圖 保持模型與現(xiàn)實的一致性 執(zhí)行 execution 通過運行或模擬動態(tài)模型 才能真正理解和領會程序代碼的含義是什么 3 uml的 公共機制 uml有4種在整個語言中一致應用的機制 使得該語言變得較為簡單 1 規(guī)格說明 2 修飾 3 通用劃分 4 擴展機制 uml的公共機制

溫馨提示

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

評論

0/150

提交評論