軟件需求分析的任務(wù)過程 PPT課件_第1頁
軟件需求分析的任務(wù)過程 PPT課件_第2頁
軟件需求分析的任務(wù)過程 PPT課件_第3頁
軟件需求分析的任務(wù)過程 PPT課件_第4頁
軟件需求分析的任務(wù)過程 PPT課件_第5頁
已閱讀5頁,還剩120頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1 軟件需求分析的任務(wù)和過程結(jié)構(gòu)化分析方法原型化方法動態(tài)分析方法數(shù)據(jù)及數(shù)據(jù)庫需求 軟件需求分析 2 軟件需求分析的任務(wù) 深入描述軟件的功能和性能確定軟件設(shè)計的約束和軟件同其它系統(tǒng)元素的接口細(xì)節(jié)定義軟件的其它有效性需求 3 需求分析研究的對象是軟件項目的用戶要求準(zhǔn)確地表達(dá)被接受的用戶要求確定被開發(fā)軟件系統(tǒng)的系統(tǒng)元素將功能和信息結(jié)構(gòu)分配到這些系統(tǒng)元素中 4 需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型 解決目標(biāo)系統(tǒng)的 做什么 的問題 5 通常軟件開發(fā)項目是要實現(xiàn)目標(biāo)系統(tǒng)的物理模型目標(biāo)系統(tǒng)的具體物理模型是由它的邏輯模型經(jīng)實例化 即具體到某個業(yè)務(wù)領(lǐng)域而得到的 6 需求分析的過程 1 問題識別從系統(tǒng)的角度來理解軟件并評審軟件范圍是否恰當(dāng)確定對目標(biāo)系統(tǒng)的綜合要求 即軟件的需求提出這些需求實現(xiàn)條件 以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn) 7 軟件的需求包括 功能需求性能需求環(huán)境需求可靠性需求安全保密要求用戶界面需求 資源使用需求成本消耗需求開發(fā)進(jìn)度需求預(yù)先估計以后系統(tǒng)可能達(dá)到的目標(biāo) 8 問題識別的另一項工作是建立分析所需要的通信途徑 以保證能順利地對問題進(jìn)行分析 9 2 分析與綜合從信息流和信息結(jié)構(gòu)出發(fā) 逐步細(xì)化所有的軟件功能 找出系統(tǒng)各元素之間的聯(lián)系 接口特性和設(shè)計上的約束 分析它們是否滿足功能要求 是否合理 剔除其不合理的部分 增加其需要部分 最終綜合成系統(tǒng)的解決方案 給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型 10 常用的分析方法 面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法 SA 面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法 JSD 面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法 DSSD 面向?qū)ο蟮姆治龇椒?OOA 等 11 3 編制需求分析階段的文檔軟件需求說明書數(shù)據(jù)要求說明書初步的用戶手冊修改 完善與確定軟件開發(fā)實施計劃 12 4 需求分析評審 系統(tǒng)定義的目標(biāo)是否與用戶的要求一致 系統(tǒng)需求分析階段提供的文檔資料是否齊全 文檔中的所有描述是否完整 清晰 準(zhǔn)確反映用戶要求 與所有其它系統(tǒng)成分的重要接口是否都已經(jīng)描述 13 被開發(fā)項目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否足夠 確定 所有圖表是否清楚 在不補(bǔ)充說明時能否理解 主要功能是否已包括在規(guī)定的軟件范圍之內(nèi) 是否都已充分說明 設(shè)計的約束條件或限制條件是否符合實際 開發(fā)的技術(shù)風(fēng)險是什么 14 是否考慮過軟件需求的其它方案 是否考慮過將來可能會提出的軟件需求 是否詳細(xì)制定了檢驗標(biāo)準(zhǔn) 它們能否對系統(tǒng)定義是否成功進(jìn)行確認(rèn) 15 需求分析流程 16 軟件需求分析的原則 需要能夠表達(dá)和理解問題的信息域和功能域要能以層次化的方式對問題進(jìn)行分解和不斷細(xì)化要給出系統(tǒng)的邏輯視圖和物理視圖 17 18 軟件需求規(guī)格說明的原則 從現(xiàn)實中分離功能 即描述要 做什么 而不是 怎樣實現(xiàn) 要求使用面向處理的規(guī)格說明語言 或稱系統(tǒng)定義語言 如果被開發(fā)軟件只是一個大系統(tǒng)中的一個元素 那么整個大系統(tǒng)也包括在規(guī)格說明的描述之中 19 規(guī)格說明必須包括系統(tǒng)運(yùn)行環(huán)境規(guī)格說明必須是一個認(rèn)識模型規(guī)格說明必須是可操作的規(guī)格說明必須容許不完備性并允許擴(kuò)充規(guī)格說明必須局部化和松散耦合 20 軟件需求方法 需求分析方法由對軟件問題的信息域和功能域的系統(tǒng)分析過程及其表示方法組成大多數(shù)的需求分析方法是由信息驅(qū)動的信息域具有三種屬性 信息流 信息內(nèi)容和信息結(jié)構(gòu) 21 結(jié)構(gòu)化分析方法 面向數(shù)據(jù)流進(jìn)行需求分析的方法結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析具體來說 結(jié)構(gòu)化分析方法就是用抽象模型的概念 按照軟件內(nèi)部數(shù)據(jù)傳遞 變換的關(guān)系 自頂向下逐層分解 直到找到滿足功能要求的所有可實現(xiàn)的軟件為止 22 結(jié)構(gòu)化分析方法使用工具 數(shù)據(jù)流圖數(shù)據(jù)詞典結(jié)構(gòu)化英語判定表與判定樹 23 數(shù)據(jù)流圖 數(shù)據(jù)流圖中的主要圖形元素 數(shù)據(jù)加工 數(shù)據(jù)變換 數(shù)據(jù)源點(diǎn)或終點(diǎn) 外部實體 數(shù)據(jù)流 數(shù)據(jù)存儲文件 24 描述銀行取款過程的數(shù)據(jù)流圖 25 數(shù)據(jù)流與數(shù)據(jù)加工之間的關(guān)系 26 數(shù)據(jù)流圖的層次結(jié)構(gòu) 為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況 需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖 按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解 并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系 能清楚地表達(dá)和容易理解整個系統(tǒng) 27 分層的數(shù)據(jù)流圖 28 在多層數(shù)據(jù)流圖中 頂層流圖僅包含一個加工 它代表被開發(fā)系統(tǒng) 它的輸入流是該系統(tǒng)的輸入數(shù)據(jù) 輸出流是系統(tǒng)所輸出數(shù)據(jù)底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖 它處在最底層中間層流圖則表示對其上層父圖的細(xì)化 它的每一加工可能繼續(xù)細(xì)化 形成子圖 29 結(jié)構(gòu)化分析方法步驟示例商店業(yè)務(wù)處理系統(tǒng) 30 這個數(shù)據(jù)流圖只是一個高層的系統(tǒng)邏輯模型 它反映了目標(biāo)系統(tǒng)要實現(xiàn)的功能數(shù)據(jù)流圖繪制步驟首先確定系統(tǒng)的輸入和輸出根據(jù)商店業(yè)務(wù) 畫出頂層數(shù)據(jù)流圖 以反映最主要業(yè)務(wù)處理流程 31 經(jīng)過分析 商店業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有銷售 采購 會計三大項 主要數(shù)據(jù)流輸入的源點(diǎn)和輸出終點(diǎn)是顧客和供應(yīng)商 然后從輸入端開始 根據(jù)商店業(yè)務(wù)工作流程 畫出數(shù)據(jù)流流經(jīng)的各加工框 逐步畫到輸出端 得到第一層數(shù)據(jù)流圖 32 第一層數(shù)據(jù)流圖 33 加細(xì)每一個加工框銷售細(xì)化 34 采購細(xì)化 35 檢查和修改數(shù)據(jù)流圖的原則 數(shù)據(jù)流圖上所有圖形符號只限于前述四種基本圖形元素數(shù)據(jù)流圖的主圖必須包括前述四種基本元素 缺一不可數(shù)據(jù)流圖的主圖上的數(shù)據(jù)流必須封閉在外部實體之間每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流 36 在數(shù)據(jù)流圖中 需按層給加工框編號 編號表明該加工所處層次及上下層的親子關(guān)系規(guī)定任何一個數(shù)據(jù)流子圖必須與它上一層的一個加工對應(yīng) 兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致 此即父圖與子圖的平衡可以在數(shù)據(jù)流圖中加入物質(zhì)流 幫助用戶理解數(shù)據(jù)流圖 37 圖上每個元素都必須有名字?jǐn)?shù)據(jù)流圖中不可夾帶控制流初畫時可以忽略瑣碎的細(xì)節(jié) 以集中精力于主要數(shù)據(jù)流 38 數(shù)據(jù)詞典 數(shù)據(jù)詞典與數(shù)據(jù)流圖配合 能清楚地表達(dá)數(shù)據(jù)處理的要求詞條描述 對于在數(shù)據(jù)流圖中每一個被命名的圖形元素 均加以定義 其內(nèi)容有 名字 別名或編號 分類 描述 定義 位置 其它 等 39 1 數(shù)據(jù)流詞條描述 數(shù)據(jù)流名 說明 簡要介紹作用即它產(chǎn)生的原因和結(jié)果數(shù)據(jù)流來源 來自何方數(shù)據(jù)流去向 去向何處數(shù)據(jù)流組成 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)量流通量 數(shù)據(jù)量 流通量 40 2 數(shù)據(jù)元素詞條描述 數(shù)據(jù)元素名 類型 數(shù)字 離散值 連續(xù)值 文字 編碼類型 長度 取值范圍 相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu) 41 3 數(shù)據(jù)文件詞條描述 數(shù)據(jù)文件名 簡述 存放的是什么數(shù)據(jù)輸入數(shù)據(jù) 輸出數(shù)據(jù) 數(shù)據(jù)文件組成 數(shù)據(jù)結(jié)構(gòu)存儲方式 順序 直接 關(guān)鍵碼存取頻率 42 4 加工邏輯詞條描述 加工名 加工編號 反映該加工的層次簡要描述 加工邏輯及功能簡述輸入數(shù)據(jù)流 輸出數(shù)據(jù)流 加工邏輯 簡述加工程序 加工順序 43 5 源點(diǎn)及匯 終 點(diǎn)詞條描述 名稱 外部實體名簡要描述 什么外部實體有關(guān)數(shù)據(jù)流 數(shù)目 44 數(shù)據(jù)結(jié)構(gòu)的描述 符號含義舉例 被定義為 與x a b 或 或x a b x a b 或m n重復(fù)x a x 3 a 8 可選x a 基本數(shù)據(jù)元素x a 連結(jié)符x 1 9 45 存折格式 46 存折 戶名 所號 帳號 開戶日 性質(zhì) 印密 1 存取行 50戶名 2 字母 24所號 001 999 帳號 00000001 99999999 開戶日 年 月 日性質(zhì) 1 6 注 1 表示普通戶 5 表示工資戶等印密 0 注 印密在存折上不顯示存取行 日期 摘要 支出 存入 余額 操作 復(fù)核 47 對數(shù)據(jù)流圖的每一個基本加工 必須有一個基本加工邏輯說明基本加工邏輯說明必須描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則加工邏輯說明必須描述實現(xiàn)加工的策略而不是實現(xiàn)加工的細(xì)節(jié)加工邏輯說明中包含的信息應(yīng)是充足的 完備的 有用的 無冗余的 基本加工邏輯說明 48 用于寫加工邏輯說明的工具 結(jié)構(gòu)化英語判定表判定樹 49 1 結(jié)構(gòu)化英語 結(jié)構(gòu)化英語的詞匯表由英語命令動詞數(shù)據(jù)詞典中定義的名字有限的自定義詞邏輯關(guān)系詞IF THEN ELSE CASE OF WHILE DO REPEAT UNTIL等組成 50 是一種介于自然語言和形式化語言之間的語言語言的正文用基本控制結(jié)構(gòu)進(jìn)行分割 加工中的操作用自然語言短語來表示其基本控制結(jié)構(gòu)有三種 簡單陳述句結(jié)構(gòu) 避免復(fù)合語句 重復(fù)結(jié)構(gòu) while do或repeat until結(jié)構(gòu) 判定結(jié)構(gòu) if then else或case of結(jié)構(gòu) 51 商店業(yè)務(wù)處理系統(tǒng)中 檢查發(fā)貨單 if發(fā)貨單金額超過 500thenif欠款超過了60天then在償還欠款前不予批準(zhǔn)else 欠款未超期 發(fā)批準(zhǔn)書 發(fā)貨單else 發(fā)貨單金額未超過 500 if欠款超過60天then發(fā)批準(zhǔn)書 發(fā)貨單及賒欠報告else 欠款未超期 發(fā)批準(zhǔn)書 發(fā)貨單 52 2 判定表 如果數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件的取值 使用判定表來描述比較合適 53 以 檢查發(fā)貨單 為例 54 55 3 判定樹 判定樹也是用來表達(dá)加工邏輯的一種工具 有時侯它比判定表更直觀 檢查發(fā)貨單 金額 500 金額 500 欠款 60天 不發(fā)出批準(zhǔn)書 欠款 60天 發(fā)貨單 發(fā)出批準(zhǔn)書 欠款 60天 發(fā)出批準(zhǔn)書 發(fā)貨單及賒欠報告 欠款 60天 發(fā)出批準(zhǔn)書 發(fā)貨單 56 原型化方法 在開發(fā)初期 要想得到一個完整準(zhǔn)確的規(guī)格說明不是一件容易的事 特別是對一些大型的軟件項目 用戶往往對系統(tǒng)只有一個模糊的想法 很難完全準(zhǔn)確地表達(dá)對系統(tǒng)的全面要求 軟件開發(fā)者對于所要解決的應(yīng)用問題認(rèn)識更是模糊不清 57 隨著開發(fā)工作向前推進(jìn) 用戶可能會產(chǎn)生新的要求 或因環(huán)境變化 要求系統(tǒng)也能隨之變化 開發(fā)者又可能在設(shè)計與實現(xiàn)的過程中遇到些沒有預(yù)料到的實際困難 需要以改變需求來解脫困境 因此規(guī)格說明難以完善 需求的變更 以及通信中的模糊和誤解 都會成為軟件開發(fā)順利推進(jìn)的障礙 為解決這些問題 逐漸形成了軟件系統(tǒng)的快速原型的概念 58 軟件原型的分類 在軟件開發(fā)中 原型是軟件的一個早期可運(yùn)行的版本 它反映最終系統(tǒng)的部分重要特性 探索型 目的是要弄清對目標(biāo)系統(tǒng)的要求 確定所希望的特性 并探討多種方案的可行性 59 實驗型 這種原型用于大規(guī)模開發(fā)和實現(xiàn)之前 考核方案是否合適 規(guī)格說明是否可靠 進(jìn)化型 這種原型的目的不在于改進(jìn)規(guī)格說明 而是將系統(tǒng)建造得易于變化 在改進(jìn)原型的過程中 逐步將原型進(jìn)化成最終系統(tǒng) 60 原型使用策略 廢棄策略追加策略 61 建立快速原型 進(jìn)行系統(tǒng)的分析和構(gòu)造的好處 增進(jìn)軟件者和用戶對系統(tǒng)服務(wù)需求的理解 使比較含糊的具有不確定性的軟件需求 主要是功能 明確化 軟件原型化方法提供了一種有力的學(xué)習(xí)手段 62 使用原型化方法 可以容易地確定系統(tǒng)的性能 確認(rèn)各項主要系統(tǒng)服務(wù)的可應(yīng)用性 確認(rèn)系統(tǒng)設(shè)計的可行性 確認(rèn)系統(tǒng)作為產(chǎn)品的結(jié)果 軟件原型的最終版本 有的可以原封不動地成為產(chǎn)品 有的略加修改就可以成為最終系統(tǒng)的一個組成部分 這樣有利于建成最終系統(tǒng) 63 64 65 原型開發(fā)技術(shù) 可執(zhí)行規(guī)格說明基于腳本 scenario 的設(shè)計自動程序設(shè)計專用語言可復(fù)用 reusable 的軟件簡化假設(shè) 66 可執(zhí)行規(guī)格說明 可執(zhí)行規(guī)格說明是用于需求規(guī)格說明的一種自動化技術(shù) 使用這種方法 人們可以直接觀察他們用語言規(guī)定的任何系統(tǒng)性行為 包括代數(shù)規(guī)格說明有限狀態(tài)模型可執(zhí)行的數(shù)據(jù)流圖 67 1 代數(shù)規(guī)格說明 代數(shù)規(guī)格說明使用集合 定義于這些集合上的函數(shù)和定義于這些函數(shù)上的方程來描述對象 規(guī)格說明的操作語義用這些方程表示 68 NEW STACK StackPUSH Stack Element StackPOP Stack Element Undefined POP NEW STACK UndefinedPOP PUSH stk elem elem其中 前三行定義了操作的語法 后兩行把它們的語義定義為一些方程 舉例 定義一個無界的棧及其操作 69 2 有限狀態(tài)模型 parnas提出的使用最廣泛的一種可執(zhí)行規(guī)格說明形式 從一個初始狀態(tài)開始接收輸入 到產(chǎn)生輸出 狀態(tài)在推移變化 施加在狀態(tài)元素上的約束確定了有效狀態(tài)的推移 70 舉例 建立用戶 程序?qū)υ?71 3 可執(zhí)行的數(shù)據(jù)流圖 數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)格說明用一種可執(zhí)行的語言程序代替定義處理邏輯的結(jié)構(gòu)化英語 數(shù)據(jù)流圖就成為由可執(zhí)行語言程序模塊組成的網(wǎng)絡(luò) 在一定環(huán)境或工具的支持下就可成為一個可以執(zhí)行的原型系統(tǒng) 72 基于腳本的設(shè)計 腳本是指用戶界面的原型 一個腳本用以模擬在系統(tǒng)運(yùn)行期間用戶經(jīng)歷的事件 它提供了輸入 處理 輸出的屏幕格式和有關(guān)對話的模型 因此 軟件開發(fā)者能夠給用戶顯示系統(tǒng)的逼真的視圖 使用戶得以判斷是否符合他的意圖 73 可在任一腳本中使用一套可復(fù)用的軟件模塊 以表達(dá)某一方面的要求 可使用一種原型語言來描述原型系統(tǒng) 原型開發(fā)過程中用這種語言來定義屏幕 數(shù)據(jù)項 及其相關(guān)的操作 從系統(tǒng)的外部描述開始 開發(fā)與數(shù)據(jù)庫的接口 錯誤處理和恢復(fù)過程等系統(tǒng)的與外部視圖一致的細(xì)節(jié) 74 自動程序設(shè)計 自動程序設(shè)計是指在程序自動生成環(huán)境的支持下 利用計算機(jī)實現(xiàn)軟件的開發(fā) 它可以自動地或半自動地把用戶的非過程式問題規(guī)格說明轉(zhuǎn)換為某種高級語言程序 演繹綜合手段 基于數(shù)學(xué)推理的構(gòu)造式證明 75 程序變換手段 將一程序轉(zhuǎn)換成另一功能等價的程序 并保持其正確性不變 實例推廣手段 從實例特征出發(fā) 將它推廣為待編程序的特征 最后得到程序 過程化手段 研究甚高級語言的編譯和知識的過程化 76 專用語言 專用語言是應(yīng)用領(lǐng)域的模型化語言 在原型開發(fā)中使用專用語言 可方便用戶和軟件開發(fā)者在計劃中的系統(tǒng)特性方面的交流 77 軟件復(fù)用技術(shù) 利用可復(fù)用的模塊 做出適當(dāng)?shù)慕M合 就可得到快速構(gòu)造的原型系統(tǒng) 為了快速地構(gòu)造原型 這些模塊首先必須有簡單而清晰的界面 其次它們應(yīng)當(dāng)盡量不依賴其它的模塊或數(shù)據(jù)結(jié)構(gòu) 第三 它們應(yīng)具有一些通用的功能 78 簡化假設(shè) 簡化假設(shè)是在開發(fā)過程中使設(shè)計者迅速得到一個簡化的系統(tǒng)所做的假設(shè) 盡管這些假設(shè)可能實際上并不能成立 但它們在原型開發(fā)過程中可以使開發(fā)者的注意力集中在一些主要的方面 79 在修改一個文件時 可以假設(shè)這個文件確實存在在存取文件時 待存取的記錄總是存在一旦計劃中的系統(tǒng)滿足用戶所有的要求 就可以撤消這些假設(shè) 并追加一些細(xì)節(jié) 80 系統(tǒng)動態(tài)分析 系統(tǒng)的需求規(guī)格說明通常是用自然語言來敘述的 但是用自然語言描述往往會出現(xiàn)歧義性 為了直觀地分析系統(tǒng)的動作 從特定的視點(diǎn)出發(fā)描述系統(tǒng)的行為 需要采用動態(tài)分析的方法 81 最常用的動態(tài)分析方法 狀態(tài)遷移圖時序圖Petri網(wǎng) 82 狀態(tài)遷移圖 狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何相應(yīng)外部的信號進(jìn)行推移的一種圖形表示 圓圈 表示可得到的系統(tǒng)狀態(tài)箭頭 表示從一種狀態(tài)向另一種狀態(tài)的遷移 83 例如 當(dāng)有多個申請占用CPU運(yùn)行的進(jìn)程時 有關(guān)CPU分配的進(jìn)程的狀態(tài)遷移 84 可得到的狀態(tài) 就緒 運(yùn)行 等待生成的事件 t1 t2 t3 t4 t1 中斷事件 t2 中斷已處理 t3 分配CPU t4 用完CPU時間 85 狀態(tài)遷移圖的優(yōu)點(diǎn) 狀態(tài)之間的關(guān)系能夠直觀地捕捉到由于狀態(tài)遷移圖的單純性 能夠機(jī)械地分析許多情況 可很容易地建立分析工具 86 在系統(tǒng)分析中 用時序圖于對比在系統(tǒng)中處理事件的時序和相應(yīng)的處理時間 在右圖中 對于事件e 功能1 功能3的處理時間總計為 T1 T2 T3 其中功能間切換時間0 時序圖 87 采用擴(kuò)充時序圖可表示進(jìn)程間的通信流 用于分析幾個事件的交錯現(xiàn)象 C1與C2 R1與R2是交錯的 因此 可以做如下分析 必須設(shè)計成 HOST1在等待C1的回答R1期間要能接收從HOST2發(fā)出的命令C2 88 Petri網(wǎng) Petri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開發(fā)中 它適用于描述與分析相互獨(dú)立 協(xié)同操作的處理系統(tǒng) 也就是并發(fā)執(zhí)行的處理系統(tǒng) 89 Petri網(wǎng)簡稱PNG PetriNetGraph 它有兩種結(jié)點(diǎn) 位置 place 符號為 它用來表示系統(tǒng)的狀態(tài) 轉(zhuǎn)移 transition 符號為 它用來表示系統(tǒng)中的事件 圖中的有向邊表示對轉(zhuǎn)移的輸入 或由轉(zhuǎn)移的輸出 90 標(biāo)記 或稱令牌 token 是表明系統(tǒng)當(dāng)前處于什么狀態(tài)的標(biāo)志 91 92 93 處理兩個進(jìn)程的同步問題 94 95 數(shù)據(jù)及數(shù)據(jù)庫需求 在數(shù)據(jù)詞典中 強(qiáng)調(diào)對數(shù)據(jù)存儲結(jié)構(gòu)的邏輯設(shè)計 并用數(shù)據(jù)結(jié)構(gòu)表達(dá)數(shù)據(jù)項之間的邏輯關(guān)系 但任何一個軟件系統(tǒng)都可能有成千上萬個數(shù)據(jù)項 僅僅描述這些數(shù)據(jù)項是不夠的 更重要的是如何把它們以最優(yōu)的方式組織起來 以滿足系統(tǒng)對數(shù)據(jù)的要求 96 有關(guān)數(shù)據(jù)庫的基本概念 在軟件系統(tǒng)中需要處理的數(shù)據(jù)是現(xiàn)實世界中存在的事物及其聯(lián)系的反映 人們通常將與數(shù)據(jù)處理有關(guān)的的領(lǐng)域分為三個世界 現(xiàn)實世界信息世界數(shù)據(jù)世界 97 現(xiàn)實世界是存在于人們頭腦之外的客觀世界 現(xiàn)實世界中的事物可分成對象和性質(zhì)兩大類 對象可以是人 是物 還可以是實際的東西或概念的東西 例如 大學(xué) 城市等 對象還可以指事物與事物間的聯(lián)系 性質(zhì)則是指事物的性質(zhì)或特征 98 信息世界也叫做觀念世界 是現(xiàn)實世界在人們頭腦中的反映 客觀世界中的事物在信息世界中叫做實體 反映事物之間聯(lián)系的叫做實體模型 實體是由若干屬性的屬性值組成 屬性是實體某一方面的特征 相應(yīng)于事物的性質(zhì) 例如 一個學(xué)生實體是如下的一個5元組 951149 袁秋慧 女 19 軟件 99 5元組中每一元素是學(xué)生的某一屬性的屬性值 他們對應(yīng)的屬性集合是 這些屬性集合表征了 學(xué)生 實體的類型 叫做實體型 同一類型的實體的集合叫做實體集 數(shù)據(jù)世界則是信息世界中信息的數(shù)據(jù)化 現(xiàn)實世界中的事物及其聯(lián)系在數(shù)據(jù)世界中用數(shù)據(jù)模型描述 學(xué)號 姓名 性別 年齡 專業(yè) 100 描述每一實體的數(shù)據(jù)稱為記錄 描述屬性的數(shù)據(jù)叫做數(shù)據(jù)項或字段 與實體集相對應(yīng)的稱為文件 例如 學(xué)生文件就由多個記錄組成 這些記錄放在一起構(gòu)成一個二維表 表中每一橫排叫做一個記錄或元組 每一縱列叫做一個屬性 101 102 記錄由數(shù)據(jù)項組成 正如實體由若干屬性的屬性值組成一樣 一般數(shù)據(jù)項沿用屬性名 用做屬性名時表示觀念信息 用做數(shù)據(jù)項名時表示數(shù)據(jù)信息 每個數(shù)據(jù)項包括兩個特征 即數(shù)據(jù)類型和數(shù)據(jù)長度 若干同類型的記錄構(gòu)成文件 為了對文件中的記錄有效組織和存取 通常指定一個數(shù)據(jù)項進(jìn)行區(qū)別 這個數(shù)據(jù)項叫做關(guān)鍵字 103 E R方法 Entity RelationshipApproach 和實體模型 在需求分析階段進(jìn)行數(shù)據(jù)庫邏輯設(shè)計過程中 使用E R圖 可定義一個實體模型 實體模型是現(xiàn)實世界的純表示 它不涉及數(shù)據(jù)世界的數(shù)據(jù)結(jié)構(gòu) 存取路徑 存取效率等問題 因此 它可以轉(zhuǎn)換成數(shù)據(jù)庫中的數(shù)據(jù)模型 104 數(shù)據(jù)可以按相應(yīng)數(shù)據(jù)模型進(jìn)行組織 E R圖中表示實體聯(lián)系的符號如下 105 在E R圖中 每個方框表示實體型或?qū)傩?方框之間的連線表示實體之間 或?qū)嶓w與屬性之間的聯(lián)系 出現(xiàn)在連線上的短豎線可以看成是 1 而圓圈隱含表示 0 例如 在教學(xué)管理中 一個教師可以教授零門 一門或多門課程 每位學(xué)生也需要學(xué)習(xí)幾門課程 因此 教學(xué)管理中涉及的對象 實體型 有學(xué)生 教師和課程 106 用E R圖描述它們之間的聯(lián)系 得下圖 其中 學(xué)生與課程是多對多的聯(lián)系 而教師與課程的聯(lián)系是零 一對多 107 進(jìn)一步 要確定屬性 例如 學(xué)生具有學(xué)號 姓名 性別 年齡 專業(yè) 其它略 等屬性 課程具有課程號 課程名 學(xué)分 學(xué)時數(shù)等屬性 教師具有職工號 姓名 年齡 職稱等屬性 此外 學(xué)生通過學(xué)號 分?jǐn)?shù)與課程發(fā)生聯(lián)系 如此可得教學(xué)實體模型 108 教學(xué)實體模型 109 數(shù)據(jù)結(jié)構(gòu)的規(guī)范化 信息域分析需要確定數(shù)據(jù)的內(nèi)容 每個數(shù)據(jù)項要用表格列出 最后組織成文件的邏輯結(jié)構(gòu) 即面向應(yīng)用而不是面向存儲的結(jié)構(gòu) 為了便于數(shù)據(jù)庫的設(shè)計 常常要對這種結(jié)構(gòu)做一些簡化 其中最常見的一種方法就是規(guī)范化技術(shù) 110 規(guī)范化 將數(shù)據(jù)的邏輯結(jié)構(gòu)歸結(jié)為滿足一定條件的二維表 關(guān)系 表格中每個信息項必須是一個不可分割的數(shù)據(jù)項 不可是組項 表格中每一列 列表示屬性 中所有信息項必須是同一類型 各列的名字 屬性名 互異 列的次序任意 表格中各行 行表示元組 互不相同 行的次序任意 111 不滿足上述要求的二維表或關(guān)系 叫做非規(guī)范化關(guān)系 對于非規(guī)范化的關(guān)系 必須將它規(guī)范化 即利用更單純 更規(guī)則的關(guān)系來代替原來的關(guān)系 規(guī)范化的目的是 消除數(shù)據(jù)冗余 即消除表格中數(shù)據(jù)的重復(fù) 消除多義性 使關(guān)系中的屬性含義清楚 單一 112 使關(guān)系的 概念 單一化 讓每個數(shù)據(jù)項只是一個簡單的數(shù)或字符串 而不是一個組項或重復(fù)組 方便操作 使數(shù)據(jù)的插入 刪除與修改操作可行并方便 使關(guān)系模式更靈活 易于實現(xiàn)接近自然語言的查詢方式 113 用教學(xué)管理例說明如何規(guī)范化 有三個實體型 即課程 學(xué)生和教師 用三個關(guān)系保存它們的信息 學(xué)生 學(xué)號 姓名 性別 年齡 專業(yè) 籍貫 教師 職工號 姓名 年齡 職稱 工資級別 工資 課程 課程號 課程名 學(xué)分 學(xué)時 課程類型 114 為表示實體型之間的聯(lián)系 又建立兩個關(guān)系 選課 學(xué)號 課程號 聽課出勤率 作業(yè)完成率 分?jǐn)?shù) 教課 職工號 課程號 這五個關(guān)系 組成了數(shù)據(jù)庫的模型 在每個關(guān)系中 屬性名下加下劃線 指明關(guān)鍵字 并規(guī)定關(guān)鍵字能唯一地標(biāo)識一個元組 115 關(guān)系規(guī)范化的程度 通常按屬性間的依賴程度來區(qū)分 并以范式NF NormalForm 來表達(dá) 常用的范式分為第一范式 1NF 第二范式 2NF 和第三范式 3NF 設(shè) 是一個關(guān)系 和 是 中的兩個屬性 若對于 的任一個值 僅有一個值與之對應(yīng) 則稱 的屬性 函數(shù)依賴于屬性 例如 116 教師 職工號 姓名 年齡 其中 屬性 姓名 年齡 等都函數(shù)依賴于屬性 職工號 屬性 可以是復(fù)合屬性 如 選課 學(xué)號 課程號 聽課出勤率 117 如果屬性 函數(shù)依賴于復(fù)合屬性 而不與 的任何真子集

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論