




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、21/21山東輕工業(yè)學(xué)院教師授課教案課程名稱:軟件工程課程代碼:0310040學(xué) 分:3課程類不:選修課開課單位:信息科學(xué)與技術(shù)學(xué)院授課班級:計科07-12授課教師:趙培英山東輕工業(yè)學(xué)院教務(wù)處制授課時刻2009年 9 月 23 日 星期 2009年 9 月 25 日 星期 2009年 10 月 9 日 星期 授課內(nèi)容概要第四章 設(shè)計設(shè)計工程概述 設(shè)計的目標,設(shè)計的任務(wù),軟件設(shè)計的過程。軟件設(shè)計原則 模塊化,抽象與逐步求精,信息隱藏,模塊獨立。軟件體系結(jié)構(gòu)設(shè)計 各種體系結(jié)構(gòu)風(fēng)格。部件級設(shè)計技術(shù)結(jié)構(gòu)化程序設(shè)計方法,設(shè)計的各種表示方法。人機界面設(shè)計阻礙人機界面設(shè)計的因素,涉及的模型,人機界面設(shè)計的黃
2、金規(guī)則。設(shè)計歸檔、確認與驗證 設(shè)計文檔應(yīng)包含的內(nèi)容,設(shè)計確認與驗證的含義,設(shè)計評審的過程。目的要求了解設(shè)計的目標、任務(wù)、過程;了解結(jié)構(gòu)化程序設(shè)計方法;了解設(shè)計的各種表示方法;了解人機界面設(shè)計的黃金規(guī)則;掌握軟件設(shè)計原則;掌握各種體系結(jié)構(gòu)風(fēng)格;掌握設(shè)計評審的方法。重 點軟件設(shè)計原則;各種體系結(jié)構(gòu)風(fēng)格;設(shè)計評審。難點耦合與內(nèi)聚的概念及分類作業(yè)布置1.簡述軟件設(shè)計時期的任務(wù)和目標?2.軟件設(shè)計有哪些原則?3.簡述模塊、模塊化及模塊化設(shè)計的概念。4.舉例講明各種類型的模塊耦合和模塊內(nèi)聚。5.比較各種體系結(jié)構(gòu)風(fēng)格。6.人機界面設(shè)計的黃金規(guī)則?7.如何進行設(shè)計評審?參考書1.軟件工程理論與實踐(第三版影印
3、版),ShariLawrencePfleeger,高等教育出版社,2001年8月2軟件工程鈔票樂秋等 清華大學(xué)出版社課 型理論課學(xué)時分配復(fù) 習(xí) 5 分鐘要緊教具多媒體講 授 35 分鐘教學(xué)方法多媒體課件指 導(dǎo) 2 分鐘教學(xué)手段講授結(jié)合實例總 結(jié) 3 分鐘備注授課:每周二56,雙周周五56, = 2 * ROMAN II公教JT301 答疑:每周四78節(jié),機電C403學(xué)時分配:指本章節(jié)每節(jié)課(45分鐘)的平均分配情況授 課 過 程 及 內(nèi) 容:第四章 設(shè)計軟件設(shè)計原則 軟件體系結(jié)構(gòu)設(shè)計部件級設(shè)計技術(shù) 人機界面設(shè)計設(shè)計規(guī)約與設(shè)計評審一、軟件設(shè)計工程概述 軟件設(shè)計的任務(wù)軟件設(shè)計的目標軟件設(shè)計的過程1
4、軟件設(shè)計的任務(wù) 設(shè)計過程解決“如何做”的問題,把軟件需求變換成軟件表示的過程,要緊包含兩個時期:軟件體系結(jié)構(gòu)設(shè)計(概要設(shè)計)部件級設(shè)計 (詳細設(shè)計)依照用信息域表示的軟件需求,以及功能和性能需求,產(chǎn)生數(shù)據(jù)/類設(shè)計體系結(jié)構(gòu)設(shè)計接口設(shè)計部件級設(shè)計 1)數(shù)據(jù)/類設(shè)計 類模型=類實現(xiàn)(數(shù)據(jù)結(jié)構(gòu))在類和由CRC(類責(zé)任協(xié)作者)中定義的數(shù)據(jù)對象和關(guān)系以及數(shù)據(jù)字典中描述的詳細數(shù)據(jù)內(nèi)容提供了數(shù)據(jù)設(shè)計活動的基礎(chǔ)2)體系結(jié)構(gòu)設(shè)計 定義軟件的整體結(jié)構(gòu)由軟件部件、外部可見的屬性和它們之間的關(guān)系組成。體系結(jié)構(gòu)設(shè)計表示能夠從系統(tǒng)規(guī)約、分析模型和分析模型中定義的子系統(tǒng)的交互導(dǎo)出。 3)接口設(shè)計 描述軟件內(nèi)部、與協(xié)作系統(tǒng)之間
5、、與人之間如何通信,要緊包括三個方面:設(shè)計模塊間接口設(shè)計外部接口設(shè)計人機接口 4)部件級設(shè)計 軟件體系結(jié)構(gòu)的結(jié)構(gòu)性元素軟件部件的過程性描述。在編碼步驟,依照這種過程性描述,生成源程序代碼,然后通過測試最終得到完整有效的軟件。部件設(shè)計的基礎(chǔ):從類為基礎(chǔ)的模型、流模型、行為模型中得到的信息 2軟件設(shè)計的目標 1)設(shè)計必須實現(xiàn)分析模型中描述的所有顯式需求,必須滿足用戶希望的所有隱式需求。2)設(shè)計必須是可讀、可理解的,使得今后易于編程、易于測試、易于維護。3)設(shè)計應(yīng)從實現(xiàn)角度動身,給出與數(shù)據(jù)、功能、行為相關(guān)的軟件全貌。3軟件設(shè)計的過程 1)制定規(guī)范2)體系結(jié)構(gòu)和接口設(shè)計3)數(shù)據(jù)/類設(shè)計4)部件級(過程
6、)設(shè)計5)編寫設(shè)計文檔6)設(shè)計評審4軟件設(shè)計原則(1)抽象化軟件系統(tǒng)進行模塊設(shè)計時,可有不同的抽象層次。在最高的抽象層次上,能夠使用問題所處環(huán)境的語言概括地描述問題的解法。在較低的抽象層次上,則采納過程化的方法。包括過程抽象和數(shù)據(jù)抽象1) 過程的抽象:在軟件工程中,從系統(tǒng)定義到實現(xiàn),每進展一步都能夠看做是對軟件解決方法的抽象化過程的一次細化。 需求分析時期,用“問題所處環(huán)境的為大伙兒所熟悉的術(shù)語”來描述軟件解決方法。 從概要設(shè)計到詳細設(shè)計的過程中,抽象化的層次逐次降低。 當(dāng)產(chǎn)生源程序時到達最低抽象層次。2) 數(shù)據(jù)抽象:在不同層次上描述數(shù)據(jù)對象的細節(jié),定義與該數(shù)據(jù)對象相關(guān)的操作。(2)逐步求精將
7、軟件的體系結(jié)構(gòu)按自頂向下方式,對各個層次的過程細節(jié)和數(shù)據(jù)細節(jié)逐層細化,直到用程序設(shè)計語言的語句能夠?qū)崿F(xiàn)為止,從而最后確立整個的體系結(jié)構(gòu)逐步求精與抽象是一對互補的概念(3)模塊化 模塊化:指整個軟件被劃分成若干單獨命名和可編址的部分,稱之為模塊。這些模塊能夠被組裝起來以滿足整個問題的需求。把問題子問題的分解與軟件開發(fā)中的系統(tǒng)子系統(tǒng)或系統(tǒng)模塊對應(yīng)起來,就能夠把一個大而復(fù)雜的軟件系統(tǒng)劃分成易于理解的比較單純的模塊結(jié)構(gòu)。模塊化的理論依照“分而治之”(P66)(4)信息隱藏 每個模塊的實現(xiàn)細節(jié)關(guān)于其它模塊來講應(yīng)該是隱蔽的。即:塊中所包含的信息(包括數(shù)據(jù)和過程)不同意其它不需要這些信息的模塊使用 通過信息
8、隱蔽,可使錯誤局部化 (5)模塊獨立 模塊獨立:是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能, 而和軟件系統(tǒng)中其它的模塊的接口是簡單的一般采納兩個準則度量模塊獨立性。即模塊間耦合和模塊內(nèi)聚:內(nèi)聚(cohesion)是一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量 耦合(coupling)是模塊之間互相連接的緊密程度的度量 模塊獨立性比較強的模塊應(yīng)是高內(nèi)聚低耦合的模塊。1)內(nèi)聚 內(nèi)聚性分七種類型 功能內(nèi)聚 (Functional Cohesion):模塊中各部分差不多上完成某一個體功能必不可少的組成部分。順序內(nèi)聚 (Sequential Cohesion):一個模塊完成多個功能,各個功能必須
9、順序執(zhí)行。通信內(nèi)聚 (Communication Cohesion):一個模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù)。過程內(nèi)聚(Procedural Cohesion):一個模塊完成多個任務(wù),這些任務(wù)必須按指定的過程進行。時刻內(nèi)聚(Classical Cohesion):模塊的各個功能的執(zhí)行與時刻有關(guān),通常要求所有功能必須在同一時刻段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。邏輯內(nèi)聚(Logical Cohesion):這種模塊把幾種相關(guān)的功能組合在一起,調(diào)用時,由傳送給模塊的判定參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。巧合內(nèi)聚(Coincidental Cohesion):巧合內(nèi)聚又稱
10、為偶然內(nèi)聚。模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系也專門松散。2)耦合 模塊間的耦合方式非直接耦合(Nondirect Coupling):兩個模塊之間沒有直接關(guān)系,它們的聯(lián)系完全是通過主模塊的操縱和調(diào)用來實現(xiàn)的。數(shù)據(jù)耦合 (Data Coupling):模塊間僅通過參數(shù)表傳遞簡單數(shù)據(jù)參數(shù) (不是操縱參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量) 交換信息。標記耦合 (Stamp Coupling):模塊間通過參數(shù)表傳遞一個數(shù)據(jù)結(jié)構(gòu)的一部分(不是簡單變量。操縱耦合 (Control Coupling):假如一個模塊通過傳送開關(guān)、標志、名字等操縱信息,明顯地操縱選擇另一模塊的功能,確實是操縱耦合。外部耦合(E
11、xternal Coupling):一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。公共耦合(Common Coupling):若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境能夠是全局數(shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。公共耦合的復(fù)雜程度隨耦合模塊的個數(shù)增加而顯著增加。若只是兩模塊間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。內(nèi)容耦合 (Content Coupling):如發(fā)生下列情形,兩個模塊之間就發(fā)生了內(nèi)容耦合:一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù);一個模塊不
12、通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;兩個模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中);一個模塊有多個入口。二、軟件體系結(jié)構(gòu)設(shè)計 軟件體系結(jié)構(gòu)設(shè)計的一個核心問題是能否使用重復(fù)的體系結(jié)構(gòu)模式,即能否達到體系結(jié)構(gòu)級的軟件重用軟件體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。1軟件體系結(jié)構(gòu)的風(fēng)格 (1)倉庫風(fēng)格體系結(jié)構(gòu) 以數(shù)據(jù)為中心,有兩種不同的構(gòu)件:中央數(shù)據(jù)結(jié)構(gòu)講明當(dāng)前狀態(tài),獨立構(gòu)件在中央數(shù)據(jù)存貯上執(zhí)行,倉庫與外構(gòu)件間的相互作用在系統(tǒng)中會有大的變化例子:數(shù)據(jù)庫,黑板系統(tǒng)(2)數(shù)據(jù)流風(fēng)格的體系結(jié)構(gòu) 輸入數(shù)據(jù)被一系列的構(gòu)件變換成輸出數(shù)據(jù)。構(gòu)件被稱為過濾器,連接件為管道過濾器必須是獨立的實體
13、,它不能與其它的過濾器共享數(shù)據(jù),而且一個過濾器不明白它上游和下游的標識例:編譯程序(3)調(diào)用和返回風(fēng)格的體系結(jié)構(gòu) 特不容易修改和擴充的體系結(jié)構(gòu)。包含:主程序/子程序風(fēng)格體系結(jié)構(gòu)和遠程過程調(diào)用風(fēng)格的體系結(jié)構(gòu) 在那個地點要了解幾個概念:程序結(jié)構(gòu)的深度:程序結(jié)構(gòu)的層次數(shù)稱為結(jié)構(gòu)的深度。結(jié)構(gòu)的深度在一定意義上反映了程序結(jié)構(gòu)的規(guī)模和復(fù)雜程度。程序結(jié)構(gòu)的寬度:層次結(jié)構(gòu)中同一層模塊的最大模塊個數(shù)稱為結(jié)構(gòu)的寬度。模塊的扇入和扇出:扇出表示一個模塊直接調(diào)用(或操縱)的其它模塊數(shù)目。扇入則定義為調(diào)用(或操縱)一個給定模塊的模塊個數(shù)。多扇出意味著需要操縱和協(xié)調(diào)許多下屬模塊。而多扇入的模塊通常是公用模塊。(4)面向?qū)?/p>
14、象風(fēng)格的體系結(jié)構(gòu) 系統(tǒng)部件封裝數(shù)據(jù)表示和數(shù)據(jù)操作。部件之間通過消息來交互和協(xié)調(diào)。 (5)層次式風(fēng)格的體系結(jié)構(gòu) 定義不同的層次,每一層為上層服務(wù),并作為下層客戶二、評估可選的體系結(jié)構(gòu) 同一軟件需求,不同設(shè)計方法,導(dǎo)出不同的軟件結(jié)構(gòu)。 同一問題的不同軟件結(jié)構(gòu):體系結(jié)構(gòu)權(quán)衡分析法(ATAM,architecture trade-off analysis method) 在進行軟件體系結(jié)構(gòu)設(shè)計時,能夠參考如下規(guī)則: (1)改進軟件結(jié)構(gòu)提高模塊獨立性(2)模塊適當(dāng)?shù)纳疃?、寬度、扇出和扇?3)模塊推斷作用范圍應(yīng)在其操縱作用范圍內(nèi)(4)力爭降低模塊接口的復(fù)雜度(5)設(shè)計單入口單出口的模塊(6)模塊功能應(yīng)該
15、是能夠預(yù)測的模塊大小適中(7)一般一個模塊包含的語句在3050條左右較好。(8)一個設(shè)計好的軟件結(jié)構(gòu),通常頂層扇出比較高,中層扇出比較少,底層有高扇入。三、部件級設(shè)計技術(shù) 結(jié)構(gòu)化程序設(shè)計方法1部件級設(shè)計技術(shù) 在部件級設(shè)計時期,要緊完成如下工作:為每個部件確定采納的算法,選擇某種適當(dāng)?shù)墓ぞ弑磉_算法的過程,編寫部件的詳細過程性描述; 確定每一部件內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu); 在部件級設(shè)計結(jié)束時,應(yīng)該把上述結(jié)果寫入部件級設(shè)計講明書,同時通過復(fù)審形成正式文檔,作為下一時期(編碼時期)的工作依據(jù)。 2結(jié)構(gòu)化程序設(shè)計方法 結(jié)構(gòu)化程序設(shè)計的定義:“假如一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這三種差不多操縱結(jié)構(gòu)進行
16、連結(jié),同時每個代碼塊只有一個入口和一個出口,則稱那個程序是結(jié)構(gòu)化的”。 結(jié)構(gòu)化程序設(shè)計方法自頂向下,逐步求精隨著面向?qū)ο蠛蛙浖?fù)用的進展,更現(xiàn)實、更有效的開發(fā)途徑可能是自頂向下和自底向上兩種方法有機的結(jié)合。 3部件描述方式 圖形表示:程序流程圖 ,N-S圖 ,PAD 表格表示:判定表語言表示:PDL四、人機界面設(shè)計人機界面設(shè)計中人的因素人對感知過程的認識用戶的技能和行為方式用戶所要求完成的整個任務(wù)以及用戶對人機界面部分的專門要求2人機界面設(shè)計中涉及的模型 設(shè)計模型(design model):軟件工程師創(chuàng)建的,整個系統(tǒng)設(shè)計模型包括對軟件的數(shù)據(jù)結(jié)構(gòu)、體系結(jié)構(gòu)、界面和過程的表示。界面設(shè)計往往是設(shè)計
17、模型的附帶結(jié)果。用戶模型(user model):人機工程師創(chuàng)建的,用戶模型描述系統(tǒng)終端用戶的特點。設(shè)計前,應(yī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)語法和語義的支撐信息(書、手冊、錄像帶、關(guān)心文件)。3人機界面設(shè)計的黃金法則讓用戶擁有操縱權(quán) 減
18、少用戶的經(jīng)歷負擔(dān) 保持界面一致 五、設(shè)計規(guī)約與設(shè)計評審1設(shè)計規(guī)約的內(nèi)容2設(shè)計評審 軟件設(shè)計的最終目標是要取得最佳方案 “最佳”是指在所有候選方案中,就節(jié)約開發(fā)費用,降低資源消耗,縮短開發(fā)時刻的條件,選擇能夠贏得較高的生產(chǎn)率、較高的可靠性和可維護性的方案 設(shè)計評審的內(nèi)容 可追溯性:即分析該軟件的系統(tǒng)結(jié)構(gòu)、子系統(tǒng)結(jié)構(gòu)確認該軟件設(shè)計是否覆蓋了所有已確定的軟件需求,軟件每一成分是否可追溯到某一項需求。接口:即分析軟件各部分之間的聯(lián)系確認該軟件的內(nèi)部接口與外部接口是否差不多明確定義。部件是否滿足高內(nèi)聚和低耦合的要求。部件作用范圍是否在其操縱范圍之內(nèi)。風(fēng)險:即確認該軟件設(shè)計在現(xiàn)有技術(shù)條件下和預(yù)算范圍內(nèi)是否能按時實現(xiàn)有用性:
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版九年級下冊道德與法治攜手促發(fā)展
- 銀行公司檔案保密管理細則
- 醫(yī)學(xué)輔助人員招聘面試題庫中心
- 教師資格證面試實戰(zhàn)模擬題庫中心
- 行政執(zhí)法文書講解
- 高級程序員面試實戰(zhàn):經(jīng)典面試題庫
- 文化旅游行業(yè)面試實戰(zhàn)模擬題集錦
- 新房購買政策解讀
- 職場升遷:四川藥學(xué)面試題庫:進階備考資料庫
- 兒童美育面試高級文檔:全面了解面試流程與題目
- 《上肢靜脈血栓》課件
- 主要負責(zé)人全面安全檢查表
- 《采購部相關(guān)培訓(xùn)》課件
- 圍手術(shù)期的ERAS營養(yǎng)護理管理
- 高處作業(yè)非標吊籃專項施工方案
- 2024至2030年中國品牌戰(zhàn)略咨詢服務(wù)市場現(xiàn)狀研究分析與發(fā)展前景預(yù)測報告
- 2022版新《物理》義務(wù)教育課程標準教師培訓(xùn)測試題附答案
- 遼寧省丹東市2023-2024學(xué)年八年級下學(xué)期期末數(shù)學(xué)試卷(含答案)
- TSG+11-2020鍋爐安全技術(shù)規(guī)程
- 從高考改卷談對物理教學(xué)的幾點啟示
- DB32-T 4757-2024 連棟塑料薄膜溫室建造技術(shù)規(guī)范
評論
0/150
提交評論