《軟件開發(fā)方法》由會員分享,可在線閱讀,更多相關(guān)《軟件開發(fā)方法(50頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 計算機語言的發(fā)展 第一代語言 機 器 語 言第二代語言 匯 編 語 言第三代語言 高 級 語 言 ,亦 稱 過 程 語 言 FORTRAN、 COBOL、 C、 PASCAL 第四代語言 非 過 程 化 語 言 SQL第五代語言 智 能 性 語 言 程 序 是 按 事 先 設(shè) 計 的 功 能 和 性 能要 求 執(zhí) 行 的 指 令 序 列 數(shù) 據(jù) 是 使 程 序 能 正 常 操 縱 的 信 息的 數(shù) 據(jù) 結(jié) 構(gòu) 文 檔 是 與 程 序 開 發(fā) 、 維 護 和 使 用有 關(guān) 的 圖 文 材 料 定 義 軟 件 開 發(fā) 和 維 護 過 程 中 遇 到 的 一 系 列嚴 重 問 題表 現(xiàn)e用 戶 很
2、 不 滿 意e質(zhì) 量 很 不 可 靠 ( 產(chǎn) 品 無 評 價 手 段 )e軟件不可維護e對軟件開發(fā)成本和進度的估算很不準確e沒有適當?shù)奈臋ne軟件成本比重上升e軟件供不應(yīng)求 產(chǎn)生的原因: (1) 軟 件 是 邏 輯 的 系 統(tǒng) 部 件 不 是 物 理 的 系 統(tǒng) 部 件 , 以 程 序 和 文 檔 形 式 存 在 (2) 軟 件 規(guī) 模 越 來 越 大 , 功 能 越 來 越 強 , 軟 件 結(jié) 構(gòu) 非 常 復(fù) 雜結(jié)論:軟件危機產(chǎn)生的根本原因與軟件產(chǎn)品的特征和軟件產(chǎn)品開發(fā)與維護的方法不正確有關(guān) 解決軟件危機的根本出路: (1) 認 識 問 題 的 原 因 所 在 , 吸 取 前 人 的 經(jīng) 驗
3、(2) 要 有 相 應(yīng) 的 理 論 、 技 術(shù) 、 工 具 軟件工程軟 件 工 程 的 目 的 在 于 獲 得 廉 價 的 、 能 在實 際 機 器 上 高 效 和 可 靠 地 工 作 的 軟 件 。為 此 需 要 建 立 并 應(yīng) 用 牢 固 的 工 程 準 則 和方 法軟件工程定義很多,其核心思想是:“采 用 工 程 化 的 原 理 和 方 法 對 軟 件 進 行 計劃 、 開 發(fā) 和 維 護”,因此需要建立和應(yīng)用工程準則和方法 軟件生存周期 e計劃時期有問題定義和可行性研究兩個階段 e開發(fā)時期有需求分析、系統(tǒng)設(shè)計、編碼和測試四個階段 e運行時期主要是系統(tǒng)維護階段 問題定義可行性研究需求分析
4、軟件設(shè)計編碼測試維護典型的軟件生存周期 開發(fā)階段維護階段(軟件系統(tǒng)目標與范圍說明書)(可行性論證報告)(需求說明書)定義階段(設(shè)計說明書)(程序)(測試報告) (軟件維護報告) 計劃時期計 劃 時 期 的 主 要 任 務(wù) :調(diào)查和分析調(diào) 查 用 戶 需 求分 析 新 系 統(tǒng) 的 主 要 目 標 , 分 析 開 發(fā)該 系 統(tǒng) 的 可 行 性 。計 劃 時 期 還 應(yīng) 制 定 出 人 力 、 資 源 及進 度 計 劃 。 開發(fā)時期開 發(fā) 時 期 的 任 務(wù) 設(shè)計和實現(xiàn)設(shè) 計 包 括 : 需 求 分 析 、 軟 件 設(shè) 計實 現(xiàn) 包 括 : 編 碼 和 測 試 把 設(shè) 計 和 實 現(xiàn) 分 成 兩 步
5、 走 , 目 的 是在 開 發(fā) 初 期 讓 程 序 人 員 集 中 全 力 搞 好 軟件 的 邏 輯 結(jié) 構(gòu) , 避 免 過 早 地 為 實 現(xiàn) 的 細節(jié) 分 散 精 力 。 需求分析其任務(wù)在于弄清用戶對軟件系統(tǒng)的全部需求,并用 “需求規(guī)格說明書” 的形式準確地表達出來。 軟 件 設(shè) 計 主 要 任 務(wù) 是 將 需 求轉(zhuǎn) 變 為 軟 件 的 表 示 形 式 , 有 時 又可 細 分 為 總 體 設(shè) 計 和 詳 細 設(shè) 計 。 設(shè) 計 階 段 要 編 寫 設(shè) 計 文 檔 。 編 碼 即 按 照 選 定 的 語 言, 把 設(shè) 計 的 過 程 性 描 述 翻 譯 為 源程 序 。 與 “ 需 求 分
6、 析 ” 或 “ 設(shè) 計” 相比 , “ 編 碼 ” 要 簡 單 得 多 , 所 以通常 由 編 碼 員 ( coder) 或 初 級 程序 員 擔 任 。 測 試 是 開 發(fā) 時 期 最 后 一 個 階 段 。 按 照 不 同 的 層 次 , 又 可 細 分 為 單 元 測 試 、 綜 合 測 試 、 確 認 測 試 和 系 統(tǒng) 測 試 等 步 驟 。 測 試 是 保 證 軟 件 質(zhì) 量 的 重 要 手 段 。 測 試 階 段 的 文 檔 稱 為 “ 測 試 報 告 ” ,包 括 測 試 計 劃 、 測 試 用 例 與 測 試 結(jié)果 等 內(nèi) 容 。 運行時期運 行 時 期 是 軟 件 生 存
7、 周 期 的 最 后 一個 時 期 。 軟 件 人 員 在 這 一 時 期 的 工作 , 主 要 是 做 好 軟 件 維 護 。 軟 件 開 發(fā) 模 型傳 統(tǒng) 的 軟 件 開 發(fā) 模 型 瀑 布 模 型 基于生存期的開發(fā)范型自頂向下,逐步細化每一步都要求給出相應(yīng)的技術(shù)文檔 主要特點堅 持 結(jié) 構(gòu) 化 (將邏輯實現(xiàn)與物理實現(xiàn)分開)思 想 和 強 調(diào) 文 檔 齊套 , 是 瀑 布 開 發(fā) 模 型 的 兩 條 重要 準 則 。瀑 布 模 型 Waterfall Model(1976) 傳 統(tǒng) 的 軟 件 開 發(fā) 模 型快 速 原 型 模 型需求分析原型開發(fā)最終系統(tǒng)設(shè)計原型評價 最終系統(tǒng)實現(xiàn)用戶反饋
8、快 速 原 型 范 型Rapid Prototyping Paradigm (1) 建立原型 (2) 實現(xiàn)最終軟件原型開發(fā)范型的最大優(yōu)點: 用戶的早期介入 面 向 對 象 開 發(fā) 模 型面 向 對 象 思 想 的 最 重 要 特 征 ,是 在 解 題 空 間 中 引 入 了 “ 對象 ” 的 概 念 , 使 之 逼 真 地 模擬 問 題 空 間 中 的 客 觀 實 體 ,從 而 達 到 與 人 類 的 思 維 習 慣相 一 致 。 兩 種 程 序 設(shè) 計 方 法程 序 設(shè) 計 的 兩 次 飛 躍結(jié) 構(gòu) 化 程 序 設(shè) 計e程序=數(shù)據(jù)結(jié)構(gòu)+算法面 向 對 象 程 序 設(shè) 計e程序 = 對象 +
9、消息 兩 類 軟 件 工 程 方 法傳 統(tǒng) 軟 件 工 程e軟件分析 總體設(shè)計 詳細設(shè)計 面向過程的編碼 測試 面 向 對 象 軟 件 工 程e軟件分析與對象抽取 對象詳細設(shè)計 面向?qū)ο蟮木幋a 測試 基 本 思 路 : 把 整 個 系 統(tǒng) 開 發(fā) 過 程 分 成 若干 階 段 , 每 個 階 段 進 行 若 干 活 動 , 每 項活 動 應(yīng) 用 一 系 列 標 準 、 規(guī) 范 、 方 法 和 技術(shù) , 完 成 一 個 或 者 多 個 任 務(wù) , 形 成 符 合給 定 規(guī) 范 的 產(chǎn) 品 。 分 而 治 之“ 結(jié) 構(gòu) 化 ” 的 含 義 : 用 一 組 規(guī) 范 的 步 驟、 準 則 和 工 具
10、來 進 行 某 項 工 作 。 核 心 思 想 :自 頂 向 下 和 逐 步 求 精SA方 法 的 特 點 使 用 描 述 需 求 說 明 書 的 規(guī) 范 工 具 (數(shù) 據(jù) 流 圖 、 數(shù) 據(jù) 詞 典 、 小 說 明 ( 加工 邏 輯 的 描 述 ) ) , 使 文 檔 規(guī) 范 化 基 本 手 段 :分 解 和 抽 象 分 解 :大 問 題 分 割 成 小 問 題 ,分 別 解 決 抽 象 :把 細 節(jié) 略 去 ,先 考 慮 最 本 質(zhì) 屬 性 SA方 法分 析 步 驟 :e建立當前系統(tǒng)的具體模型e抽象出當前系統(tǒng)的邏輯模型e建立目標系統(tǒng)的邏輯模型e對目標系統(tǒng)做完整的描述??紤]人機界面和其它一些
11、問題主 要 描 述 工 具 :e 數(shù)據(jù)流圖 表達需求 e 數(shù)據(jù)詞典 記錄數(shù)據(jù)的邏輯定義 數(shù) 據(jù) 流 圖 (DFD) 數(shù)據(jù)流圖(Data Flow Diagram)是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具。它標識了一個系統(tǒng)的邏輯輸入和邏輯輸出以及把邏輯輸入轉(zhuǎn)換為邏輯輸出所需要的加工處理 帳 卡存 折 取 款 信 息 存 折核 查付 款 登 錄無 余 拒 付儲 戶 付 款 信 息可 行 性 數(shù) 據(jù) 流 圖 (DFD) 數(shù)據(jù)流圖以圖形的方式表達了系統(tǒng)中的信息變換和傳遞的過程基本符號:數(shù)據(jù)流 加工 數(shù)據(jù)存儲 數(shù)據(jù)源點或 終點 付款信息取 款 信 息無余拒付取款單 存折取 款 過 程 的 數(shù) 據(jù) 流 圖核查付款登
12、錄存折儲戶 帳卡 數(shù) 據(jù) 流 圖 (DFD) SA方法要求:先全局后局部、先整體后細 節(jié)、先抽象后具體 總體數(shù)據(jù)流圖 局部數(shù)據(jù)流圖逐步細化 數(shù) 據(jù) 流 圖 (DFD) 一 個 復(fù) 雜 的 軟 件 其 數(shù) 據(jù) 流 圖 通 常 分 為 頂層 、 中 間 層 和 底 層e頂 層 : 是 一 個 高 度 抽 象 的 軟 件 系 統(tǒng) 的 邏輯 模 型 e中 間 層 : 它 既 是 上 一 層 的 加 工 的 分 解 結(jié)果 , 又 是 下 一 層 若 干 加 工 的 抽 象e底 層 : 由 基 本 加 工 構(gòu) 成 。 所 謂 基 本 加 工是 指 不 能 再 進 行 分 解 的 加 工 數(shù) 據(jù) 詞 典 (
13、DD) SA方 法使用數(shù) 據(jù) 詞 典(Data Dictionary)對數(shù)據(jù)流名、數(shù)據(jù)存儲名、數(shù)據(jù)項名、基本加工名進行詳細說明 數(shù) 據(jù) 流 圖 中 包 含 的 所 有 元 素 定 義的 集 合 構(gòu) 成 了 數(shù) 據(jù) 詞 典 DD是SA方法的主要工具 數(shù) 據(jù) 詞 典 (DD) 數(shù)據(jù)詞典中條目類型e數(shù) 據(jù) 流 條 目常用符號 = + | ( ) e文 件 條 目 列出文件記錄的組成數(shù)據(jù)項組織方式e數(shù) 據(jù) 項 條 目 數(shù)據(jù)單項定義,包括類型、取值范圍e加 工 條 目 加工的精確描述,小說明加工說明 結(jié) 構(gòu) 化 設(shè) 計 ( SD)在軟件需求分析階段,已搞清楚了軟件“做什么”的問題,需求通過規(guī)格說明書描述
14、,這也是目標系統(tǒng)的邏輯模型。進入了設(shè)計階段,要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,設(shè)計的結(jié)果反映在“設(shè)計規(guī)格說明書”文檔中。描述了軟件的總體的體系結(jié)構(gòu),稱為軟件總體設(shè)計或結(jié)構(gòu)設(shè)計。對結(jié)構(gòu)進一步細化,稱為詳細設(shè)計或結(jié)構(gòu)設(shè)計。 SD方 法 的 基 本 思 想根 據(jù) SA方 法 中 的 數(shù) 據(jù) 流 圖 建 立 一 個 良 好的 模 塊 結(jié) 構(gòu) 圖運 用 模 塊 化 的 設(shè) 計 原 理 控 制 系 統(tǒng) 的 復(fù) 雜性 , 即 設(shè) 計 出 模 塊 相 對 獨 立 的 , 模 塊 結(jié)構(gòu) 圖 深 度 、 寬 度 都 適 當 的 , 單 入 口 單 出口 的 , 單 一 功 能 的 模 塊 結(jié)
15、 構(gòu) 的 軟 件 結(jié) 構(gòu)圖 。評 價 模 塊 結(jié) 構(gòu) 圖 質(zhì) 量 的 標 準 : 模 塊 之 間的 聯(lián) 系 越 松 散 越 好 , 而 模 塊 內(nèi) 各 成 分 之間 的 聯(lián) 系 越 緊 湊 越 好 SD方 法 的 設(shè) 計 原 理l模 塊 化 指 解 決 一 個 復(fù) 雜 問 題 時 自 頂 向 下 逐層 把 軟 件 系 統(tǒng) 劃 分 成 若 干 模 塊 的 過 程 。每 個 模 塊 完 成 一 個 特 定 的 子 功 能 , 所 有的 模 塊 按 某 種 方 法 組 裝 起 來 , 成 為 一 個整 體 , 完 成 整 個 系 統(tǒng) 所 要 求 的 功 能 。 模塊 化 是 軟 件 解 決 復(fù) 雜
16、問 題 所 具 備 的 手 段, 為 了 說 明 這 一 點 , 可 將 問 題 的 復(fù) 雜 性和 工 作 量 的 關(guān) 系 進 行 推 理l抽 象l模 塊 獨 立 模 塊 化 ( module)模 塊 : 在 程 序 中 是 數(shù) 據(jù) 說 明 、 可 執(zhí) 行 語句 等 程 序 對 象 的 集 合 , 或 者 是 單 獨 命 名和 編 址 的 元 素 , 如 高 級 語 言 中 的 過 程 、函 數(shù) 、 子 程 序 等 等 。 在 軟 件 的 體 系 結(jié) 構(gòu)中 , 模 塊 是 可 組 合 、 分 解 和 更 換 的 單 元。 模 塊 具 有 以 下 幾 種 基 本 屬 性 :接 口 : 指 模 塊
17、 的 輸 入 與 輸 出 。功 能 : 指 模 塊 實 現(xiàn) 什 么 功 能 。邏 輯 : 描 述 內(nèi) 部 如 何 實 現(xiàn) 要 求 的 功 能 及所 需 的 數(shù) 據(jù) 。 模 塊 獨 立 性(module independence)模 塊 獨 立 性 : 每 個 模 塊 只 完 成 系 統(tǒng) 要 求的 獨 立 的 子 功 能 , 并 且 與 其 他 模 塊 的 聯(lián)系 最 少 且 接 口 簡 單 。模 塊 獨 立 性 有 兩 個 定 性 的 度 量 標 準 : 內(nèi) 聚 ( )和 耦 合 ()模 塊 間 耦 合 性 越 小 越 好模 塊 內(nèi) 聚 性 越 大 越 好 模 塊 的 設(shè) 計 準 則 通 過 模
18、 塊 的 分 解 和 合 并 , 提 高 模 塊 獨 立 性 模 塊 調(diào) 用 個 數(shù) 最 好 不 要 超 過 5個 降 低 模 塊 接 口 的 復(fù) 雜 性 模 塊 的 作 用 域 應(yīng) 該 在 控 制 域 之 內(nèi) 模 塊 應(yīng) 該 設(shè) 計 成 單 入 口 單 出 口 模 塊 的 大 小 要 適 中 , 一 般 在 50條 語 句 左 右 詳 細 設(shè) 計 和 編 碼三 種 基 本 控 制 結(jié) 構(gòu)順 序 結(jié) 構(gòu)選 擇 結(jié) 構(gòu)循 環(huán) 結(jié) 構(gòu) 詳 細 設(shè) 計 的 描 述 工 具 :程 序 流 程 圖方 框 圖 ( N-S圖 )問 題 分 析 圖 ( PAD圖 )偽 碼 ( PDL語 言 ) N-S圖 也
19、叫 做 盒 圖 。 過 程 設(shè) 計 語 言( Process Design Language ,PDL)也 稱 程 序 描 述 語 言 ( Program Description Language) ,又 稱 為 偽 碼 ( pseudo code) 。屬 于 文 字 形 式 的 表 達 工 具 。 它 并 非 真 正 的 代碼 , 也 不 能 在 計 算 機 上 執(zhí) 行 , 但 形 式 上 與 代碼 相 似 。 它 是 一 種 用 于 描 述 模 塊 算 法 設(shè) 計 和處 理 細 節(jié) 的 語 言 。 PDL具 有 嚴 格 的 關(guān) 鍵 字 外層 語 法 , 用 于 定 義 控 制 結(jié) 構(gòu) 、
20、數(shù) 據(jù) 結(jié) 構(gòu) 和 模塊 接 口 , 而 它 表 示 實 際 操 作 和 條 件 的 內(nèi) 層 語法 又 是 靈 活 自 由 的 , 使 用 自 然 語 言 的 詞 匯 。 PDL 特 點所 有 關(guān) 鍵 字 都 有 固 定 語 法 , 以 便 提 供 結(jié) 構(gòu) 化 控 制 結(jié)構(gòu) 、 數(shù) 據(jù) 說 明 和 模 塊 的 特 征 。 描 述 處 理 過 程 的 說 明 性 語 言 沒 有 嚴 格 的 語 法 。 具 有 數(shù) 據(jù) 說 明 機 制 , 包 括 簡 單 的 與 復(fù) 雜 的 數(shù) 據(jù) 說明 。 具 有 模 塊 定 義 和 調(diào) 用 機 制 , 因 此 開 發(fā) 人 員 應(yīng) 根 據(jù)系 統(tǒng) 編 程 所 用 的 語 種 , 說 明 PDL表 示 的 有 關(guān) 程 序結(jié) 構(gòu) 。 結(jié) 構(gòu) 化 編 碼 方 法程 序 的 正 確 性可 讀 性 、 可 理 解 性 、 可 測 試 性 、 可 維 護 性 面向?qū)ο箝_發(fā)方法 OOSD一 、 面 向 對 象 分 析 (OOA)二 、 面 向 對 象 設(shè) 計 (OOD) 三 、 面 向 對 象 編 程 (OOP)Object-Oriented DesignObject-Oriented Programing Object-Oriented Analysis