《軟件工程》教案-04 設計工程.doc_第1頁
《軟件工程》教案-04 設計工程.doc_第2頁
《軟件工程》教案-04 設計工程.doc_第3頁
《軟件工程》教案-04 設計工程.doc_第4頁
《軟件工程》教案-04 設計工程.doc_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

山東輕工業(yè)學院教師授課教案課程名稱:軟件工程課程代碼:0310040學 分:3課程類別:選修課開課單位:信息科學與技術學院授課班級:計科07-12授課教師:趙培英山東輕工業(yè)學院教務處制授課時間2009年 9 月 23 日 星期 三 第 34 節(jié)2009年 9 月 25 日 星期 五 第 34 節(jié)2009年 10 月 9 日 星期 五 第 34 節(jié)授課內容概要第四章 設計第一節(jié) 設計工程概述 設計的目標,設計的任務,軟件設計的過程。第二節(jié) 軟件設計原則 模塊化,抽象與逐步求精,信息隱藏,模塊獨立。第三節(jié) 軟件體系結構設計 各種體系結構風格。第四節(jié) 部件級設計技術結構化程序設計方法,設計的各種表示方法。第五節(jié) 人機界面設計影響人機界面設計的因素,涉及的模型,人機界面設計的黃金規(guī)則。第六節(jié) 設計歸檔、確認與驗證 設計文檔應包含的內容,設計確認與驗證的含義,設計評審的過程。目的要求了解設計的目標、任務、過程;了解結構化程序設計方法;了解設計的各種表示方法;了解人機界面設計的黃金規(guī)則;掌握軟件設計原則;掌握各種體系結構風格;掌握設計評審的方法。重 點軟件設計原則;各種體系結構風格;設計評審。難點耦合與內聚的概念及分類作業(yè)布置1.簡述軟件設計階段的任務和目標?2.軟件設計有哪些原則?3.簡述模塊、模塊化及模塊化設計的概念。4.舉例說明各種類型的模塊耦合和模塊內聚。5.比較各種體系結構風格。6.人機界面設計的黃金規(guī)則?7.如何進行設計評審?參考書1.軟件工程理論與實踐(第三版影印版),ShariLawrencePfleeger,高等教育出版社,2001年8月2軟件工程錢樂秋等 清華大學出版社課 型理論課學時分配復 習 5 分鐘主要教具多媒體講 授 35 分鐘教學方法多媒體課件指 導 2 分鐘教學手段講授結合實例總 結 3 分鐘備注授課:每周二56,雙周周五56,II公教JT301 答疑:每周四78節(jié),機電C403學時分配:指本章節(jié)每節(jié)課(45分鐘)的平均分配情況授 課 過 程 及 內 容:第四章 設計 軟件設計原則 軟件體系結構設計 部件級設計技術 人機界面設計 設計規(guī)約與設計評審一、軟件設計工程概述 軟件設計的任務 軟件設計的目標 軟件設計的過程1軟件設計的任務 設計過程解決“怎么做”的問題,把軟件需求變換成軟件表示的過程,主要包含兩個階段: 軟件體系結構設計(概要設計) 部件級設計 (詳細設計) 根據(jù)用信息域表示的軟件需求,以及功能和性能需求,產生 數(shù)據(jù)/類設計 體系結構設計 接口設計 部件級設計 1)數(shù)據(jù)/類設計 類模型=類實現(xiàn)(數(shù)據(jù)結構) 在類和由CRC(類責任協(xié)作者)中定義的數(shù)據(jù)對象和關系以及數(shù)據(jù)字典中描述的詳細數(shù)據(jù)內容提供了數(shù)據(jù)設計活動的基礎2)體系結構設計 定義軟件的整體結構 由軟件部件、外部可見的屬性和它們之間的關系組成。 體系結構設計表示可以從系統(tǒng)規(guī)約、分析模型和分析模型中定義的子系統(tǒng)的交互導出。 3)接口設計 描述軟件內部、與協(xié)作系統(tǒng)之間、與人之間如何通信,主要包括三個方面: 設計模塊間接口 設計外部接口 設計人機接口 4)部件級設計 軟件體系結構的結構性元素軟件部件的過程性描述。 在編碼步驟,根據(jù)這種過程性描述,生成源程序代碼,然后通過測試最終得到完整有效的軟件。 部件設計的基礎:從類為基礎的模型、流模型、行為模型中得到的信息 2軟件設計的目標 1)設計必須實現(xiàn)分析模型中描述的所有顯式需求,必須滿足用戶希望的所有隱式需求。2)設計必須是可讀、可理解的,使得將來易于編程、易于測試、易于維護。3)設計應從實現(xiàn)角度出發(fā),給出與數(shù)據(jù)、功能、行為相關的軟件全貌。3軟件設計的過程 1)制定規(guī)范2)體系結構和接口設計3)數(shù)據(jù)/類設計4)部件級(過程)設計5)編寫設計文檔6)設計評審4軟件設計原則(1)抽象化 軟件系統(tǒng)進行模塊設計時,可有不同的抽象層次。 在最高的抽象層次上,可以使用問題所處環(huán)境的語言概括地描述問題的解法。 在較低的抽象層次上,則采用過程化的方法。 包括過程抽象和數(shù)據(jù)抽象1) 過程的抽象:在軟件工程中,從系統(tǒng)定義到實現(xiàn),每進展一步都可以看做是對軟件解決方法的抽象化過程的一次細化。 r需求分析階段,用“問題所處環(huán)境的為大家所熟悉的術語”來描述軟件解決方法。 r從概要設計到詳細設計的過程中,抽象化的層次逐次降低。 r當產生源程序時到達最低抽象層次。 2) 數(shù)據(jù)抽象:在不同層次上描述數(shù)據(jù)對象的細節(jié),定義與該數(shù)據(jù)對象相關的操作。(2)逐步求精 將軟件的體系結構按自頂向下方式,對各個層次的過程細節(jié)和數(shù)據(jù)細節(jié)逐層細化,直到用程序設計語言的語句能夠實現(xiàn)為止,從而最后確立整個的體系結構 逐步求精與抽象是一對互補的概念(3)模塊化 模塊化:指整個軟件被劃分成若干單獨命名和可編址的部分,稱之為模塊。這些模塊可以被組裝起來以滿足整個問題的需求。 把問題子問題的分解與軟件開發(fā)中的系統(tǒng)子系統(tǒng)或系統(tǒng)模塊對應起來,就能夠把一個大而復雜的軟件系統(tǒng)劃分成易于理解的比較單純的模塊結構。 模塊化的理論根據(jù)“分而治之”(P66)(4)信息隱藏 每個模塊的實現(xiàn)細節(jié)對于其它模塊來說應該是隱蔽的。即:塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其它不需要這些信息的模塊使用 通過信息隱蔽,可使錯誤局部化 (5)模塊獨立 模塊獨立:是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能, 而和軟件系統(tǒng)中其它的模塊的接口是簡單的 一般采用兩個準則度量模塊獨立性。即模塊間耦合和模塊內聚: 內聚(cohesion)是一個模塊內部各個元素彼此結合的緊密程度的度量 耦合(coupling)是模塊之間互相連接的緊密程度的度量 模塊獨立性比較強的模塊應是高內聚低耦合的模塊。1)內聚 內聚性分七種類型 . 功能內聚 (Functional Cohesion):模塊中各部分都是完成某一具體功能必不可少的組成部分。. 順序內聚 (Sequential Cohesion):一個模塊完成多個功能,各個功能必須順序執(zhí)行。. 通信內聚 (Communication Cohesion):一個模塊內各功能部分都使用了相同的輸入數(shù)據(jù),或產生了相同的輸出數(shù)據(jù)。. 過程內聚(Procedural Cohesion):一個模塊完成多個任務,這些任務必須按指定的過程進行。. 時間內聚(Classical Cohesion):模塊的各個功能的執(zhí)行與時間有關,通常要求所有功能必須在同一時間段內執(zhí)行。例如初始化模塊和終止模塊。. 邏輯內聚(Logical Cohesion):這種模塊把幾種相關的功能組合在一起,調用時,由傳送給模塊的判定參數(shù)來確定該模塊應執(zhí)行哪一種功能。. 巧合內聚(Coincidental Cohesion):巧合內聚又稱為偶然內聚。模塊內各部分之間沒有聯(lián)系,或者即使有聯(lián)系也很松散。2)耦合 模塊間的耦合方式. 非直接耦合(Nondirect Coupling):兩個模塊之間沒有直接關系,它們的聯(lián)系完全是通過主模塊的控制和調用來實現(xiàn)的。. 數(shù)據(jù)耦合 (Data Coupling):模塊間僅通過參數(shù)表傳遞簡單數(shù)據(jù)參數(shù) (不是控制參數(shù)、公共數(shù)據(jù)結構或外部變量) 交換信息。. 標記耦合 (Stamp Coupling):模塊間通過參數(shù)表傳遞一個數(shù)據(jù)結構的一部分(不是簡單變量。. 控制耦合 (Control Coupling):如果一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。. 外部耦合(External Coupling):一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結構,而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。. 公共耦合(Common Coupling):若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結構、共享的通信區(qū)、內存的公共覆蓋區(qū)等。公共耦合的復雜程度隨耦合模塊的個數(shù)增加而顯著增加。若只是兩模塊間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。. 內容耦合 (Content Coupling):如發(fā)生下列情形,兩個模塊之間就發(fā)生了內容耦合:a) 一個模塊直接訪問另一個模塊的內部數(shù)據(jù);b) 一個模塊不通過正常入口轉到另一模塊內部;c) 兩個模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中);d) 一個模塊有多個入口。二、軟件體系結構設計 軟件體系結構設計的一個核心問題是能否使用重復的體系結構模式,即能否達到體系結構級的軟件重用 軟件體系結構風格是描述某一特定應用領域中系統(tǒng)組織方式的慣用模式。1軟件體系結構的風格 (1)倉庫風格體系結構 以數(shù)據(jù)為中心,有兩種不同的構件:中央數(shù)據(jù)結構說明當前狀態(tài),獨立構件在中央數(shù)據(jù)存貯上執(zhí)行,倉庫與外構件間的相互作用在系統(tǒng)中會有大的變化 例子:數(shù)據(jù)庫,黑板系統(tǒng)(2)數(shù)據(jù)流風格的體系結構 輸入數(shù)據(jù)被一系列的構件變換成輸出數(shù)據(jù)。 構件被稱為過濾器,連接件為管道 過濾器必須是獨立的實體,它不能與其它的過濾器共享數(shù)據(jù),而且一個過濾器不知道它上游和下游的標識 例:編譯程序(3)調用和返回風格的體系結構 非常容易修改和擴充的體系結構。 包含:主程序/子程序風格體系結構和遠程過程調用風格的體系結構 在這里要了解幾個概念: 程序結構的深度:程序結構的層次數(shù)稱為結構的深度。結構的深度在一定意義上反映了程序結構的規(guī)模和復雜程度。 程序結構的寬度:層次結構中同一層模塊的最大模塊個數(shù)稱為結構的寬度。 模塊的扇入和扇出:扇出表示一個模塊直接調用(或控制)的其它模塊數(shù)目。扇入則定義為調用(或控制)一個給定模塊的模塊個數(shù)。多扇出意味著需要控制和協(xié)調許多下屬模塊。而多扇入的模塊通常是公用模塊。(4)面向對象風格的體系結構 系統(tǒng)部件封裝數(shù)據(jù)表示和數(shù)據(jù)操作。 部件之間通過消息來交互和協(xié)調。 (5)層次式風格的體系結構 定義不同的層次,每一層為上層服務,并作為下層客戶二、評估可選的體系結構 同一軟件需求,不同設計方法,導出不同的軟件結構。 同一問題的不同軟件結構:體系結構權衡分析法(ATAM,architecture trade-off analysis method) 在進行軟件體系結構設計時,可以參考如下規(guī)則: (1)改進軟件結構提高模塊獨立性(2)模塊適當?shù)纳疃取挾?、扇出和扇?3)模塊判斷作用范圍應在其控制作用范圍內(4)力爭降低模塊接口的復雜度(5)設計單入口單出口的模塊(6)模塊功能應該是可以預測的模塊大小適中(7)一般一個模塊包含的語句在3050條左右較好。(8)一個設計好的軟件結構,通常頂層扇出比較高,中層扇出比較少,底層有高扇入。三、部件級設計技術 結構化程序設計方法1部件級設計技術 在部件級設計階段,主要完成如下工作: 為每個部件確定采用的算法,選擇某種適當?shù)墓ぞ弑磉_算法的過程,編寫部件的詳細過程性描述; 確定每一部件內部使用的數(shù)據(jù)結構; 在部件級設計結束時,應該把上述結果寫入部件級設計說明書,并且通過復審形成正式文檔,作為下一階段(編碼階段)的工作依據(jù)。 2結構化程序設計方法 結構化程序設計的定義: “如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這三種基本控制結構進行連結,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的”。 結構化程序設計方法 自頂向下,逐步求精 隨著面向對象和軟件復用的發(fā)展,更現(xiàn)實、更有效的開發(fā)途徑可能是自頂向下和自底向上兩種方法有機的結合。 3部件描述方式 圖形表示:程序流程圖 ,N-S圖 ,PAD 表格表示:判定表 語言表示:PDL四、人機界面設計1 人機界面設計中人的因素 人對感知過程的認識 用戶的技能和行為方式 用戶所要求完成的整個任務以及用戶對人機界面部分的特殊要求2人機界面設計中涉及的模型 設計模型(design model):軟件工程師創(chuàng)建的,整個系統(tǒng)設計模型包括對軟件的數(shù)據(jù)結構、體系結構、界面和過程的表示。界面設計往往是設計模型的附帶結果。 用戶模型(user model):人機工程師創(chuàng)建的,用戶模型描述系統(tǒng)終端用戶的特點。設計前,應對用戶分類,了解用戶的特點,包括年齡、性別、實際能力(physical abilities)、教育、文化和種族背景、動機、目的以及個性。 用戶的模型(users model)或系統(tǒng)感覺(system perception):終端用戶主觀想象的系統(tǒng)映象,描述了期望的系統(tǒng)能提供的操作。 系統(tǒng)映象(system image):系統(tǒng)實現(xiàn)者創(chuàng)建的,包括基于計算機的系統(tǒng)的外在表示(界面的觀感)和用來描述系統(tǒng)語法和語義的支撐信息(書、手冊、錄像帶、幫助文件)。3人機界面設計的黃金法則 讓用戶擁有控制權 減少用戶的記憶負擔 保持界面一致 五、設計規(guī)約與設計評審1設計規(guī)約的內容2設計評審 軟件設計的最終目標是要取得最佳方案 “最佳”是指在所有候選方案中,就節(jié)省開發(fā)費用,降低資源消耗,縮短開發(fā)時間的條件,選擇能夠贏得較高的生產率、較高的可靠性和可維護性的方案 設計評審的內容 可追溯性: 即分析該軟件的系統(tǒng)結構、子系統(tǒng)結構 確認該軟件設計是否覆蓋了所有已確定的軟件需求,軟件每一成分是否可追溯到某一項需求。 接口: 即分析軟件各部分之間的聯(lián)系 確認該軟件的內部接口與外部接口是否已經(jīng)明確定義。部件是否滿足高內聚和低耦合的要求。部件作用范圍是否在其控制范圍之內。 風險:即確認該軟件設計在現(xiàn)有技術條件下和預算范圍內是否能按時實現(xiàn) 實用性:即確

溫馨提示

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

評論

0/150

提交評論