




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程軟件設(shè)計(jì)軟件工程軟件工程第三章 軟件設(shè)計(jì)軟件工程軟件設(shè)計(jì)軟件設(shè)計(jì)概述內(nèi)容軟件設(shè)計(jì)是一個(gè)描述、組織、構(gòu)造系統(tǒng)部件的過程,是確定軟件“怎么做”的過程。這個(gè)過程分為兩個(gè)層次:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。軟件設(shè)計(jì)的輸入是需求規(guī)格說明書,輸出是概要設(shè)計(jì)說明書和詳細(xì)設(shè)計(jì)說明書軟件工程軟件設(shè)計(jì)總體設(shè)計(jì)(概要設(shè)計(jì)) 從全局的高度,確定系統(tǒng)的總體實(shí)現(xiàn)方案和整體框架 它要覆蓋需求規(guī)格說明書的全部?jī)?nèi)容,同時(shí)作為指導(dǎo)詳細(xì)設(shè)計(jì)的依據(jù)詳細(xì)設(shè)計(jì) 確定應(yīng)該怎樣具體地實(shí)現(xiàn)各個(gè)軟件元素,得到對(duì)目標(biāo)系統(tǒng)的精確描述 要覆蓋總體設(shè)計(jì)的全部?jī)?nèi)容,同時(shí)作為指導(dǎo)程序設(shè)計(jì)的依據(jù)軟件工程軟件設(shè)計(jì)總體設(shè)計(jì)的具體任務(wù)制定規(guī)范 系統(tǒng)命名規(guī)范,模塊命名
2、規(guī)范,構(gòu)件命名規(guī)范,變量命名規(guī)范,以及數(shù)據(jù)庫(kù)中的表名、字段名、索引名、試圖名、存儲(chǔ)過程名、觸發(fā)器名等總體結(jié)構(gòu)設(shè)計(jì)總體結(jié)構(gòu)設(shè)計(jì) 系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì) 通常采用軟件結(jié)構(gòu)圖的橫向表示功能分解 ,縱向表示功能的層次調(diào)用軟件工程軟件設(shè)計(jì)處理方式設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 文件設(shè)計(jì) 數(shù)據(jù)庫(kù)設(shè)計(jì)質(zhì)量設(shè)計(jì)文檔設(shè)計(jì)軟件工程軟件設(shè)計(jì)評(píng)審總體設(shè)計(jì) 可回溯性 接口定義是否清晰 檢查模塊的內(nèi)聚力 風(fēng)險(xiǎn)性 實(shí)用性 質(zhì)量屬性 各種選擇方案 限制 其他問題軟件工程軟件設(shè)計(jì)總體設(shè)計(jì)的過程設(shè)想供選擇的方案 根據(jù)需求分析階段的數(shù)據(jù)流程圖中處理邏輯關(guān)系,歸并形成子系統(tǒng) 不同的子系統(tǒng)組合產(chǎn)生不同的系統(tǒng)實(shí)現(xiàn)方案 材料要求:系統(tǒng)流程
3、圖、組成系統(tǒng)的元素清單、成本/效益分析、實(shí)現(xiàn)這個(gè)方案的進(jìn)度計(jì)劃推薦最佳方案功能分解 將復(fù)雜功能分解成簡(jiǎn)單功能,使之對(duì)應(yīng)成一個(gè)模塊只完成一個(gè)適當(dāng)功能,便于實(shí)現(xiàn)軟件工程軟件設(shè)計(jì)設(shè)計(jì)軟件結(jié)構(gòu) 采用層次圖或結(jié)構(gòu)圖描述模塊之 間調(diào)用的關(guān)系數(shù)據(jù)設(shè)計(jì) 包括數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、文件設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)制定測(cè)試計(jì)劃 針對(duì)軟件結(jié)構(gòu)的測(cè)試和集成測(cè)試書寫文檔 總體設(shè)計(jì)規(guī)格說明書 用戶手冊(cè) 測(cè)試計(jì)劃 詳細(xì)的實(shí)現(xiàn)計(jì)劃軟件工程軟件設(shè)計(jì)系統(tǒng)體系結(jié)構(gòu)需求描述軟件描述體系結(jié)構(gòu)設(shè)計(jì)系統(tǒng)體系結(jié)構(gòu)抽象描述接口設(shè)計(jì)組件設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)算法設(shè)計(jì)組件描述數(shù)據(jù)結(jié)構(gòu)描述算法描述設(shè)計(jì)活動(dòng)設(shè)計(jì)產(chǎn)品設(shè)計(jì)過程的一般模型軟件工程軟件設(shè)計(jì)設(shè)計(jì)原則原則一,多樣化設(shè)計(jì)原
4、則二,設(shè)計(jì)對(duì)于分析模型應(yīng)該是可跟蹤的原則三,設(shè)計(jì)不應(yīng)該從頭做起原則四,軟件設(shè)計(jì)應(yīng)該盡可能縮短軟件和現(xiàn)實(shí)世界的距離原則五,設(shè)計(jì)應(yīng)該表現(xiàn)出一致性和規(guī)范性原則六,設(shè)計(jì)的易修改性原則七,容錯(cuò)性設(shè)計(jì)原則八,設(shè)計(jì)的粒度要適當(dāng)原則九,在設(shè)計(jì)時(shí)就開始評(píng)估軟件的質(zhì)量原則十,要復(fù)審設(shè)計(jì),減少設(shè)計(jì)引入的錯(cuò)誤軟件工程軟件設(shè)計(jì)影響軟件設(shè)計(jì)的因素共同設(shè)計(jì)用戶界面文化問題并發(fā)性軟件工程軟件設(shè)計(jì)軟件設(shè)計(jì)的概念模塊一個(gè)軟件系統(tǒng)根據(jù)其功能分解成許多較小的程序單元模塊的基本屬性功能 - 模塊要完成的任務(wù)邏輯 描述模塊為了完成任務(wù),模塊內(nèi)部怎么做狀態(tài) 使用該模塊時(shí)的環(huán)境和條件軟件工程軟件設(shè)計(jì)模塊化定義 即把程序劃分成若干個(gè)模塊,每個(gè)
5、模塊完成一個(gè)子功能,將多個(gè)模塊組織起來實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。模塊規(guī)模的確定標(biāo)準(zhǔn) 模塊應(yīng)該是高內(nèi)聚的 模塊應(yīng)該是松散耦合的軟件工程軟件設(shè)計(jì)模塊數(shù)量成本或工作量M總成本聯(lián)接成本模塊開發(fā)成本軟件工程軟件設(shè)計(jì)模塊獨(dú)立性“模塊獨(dú)立”是模塊化、抽象、逐步求精和信息隱藏等概念的直接結(jié)果,也是完成有效的模塊設(shè)計(jì)的基本標(biāo)準(zhǔn)。模塊獨(dú)立性原則的兩個(gè)定性標(biāo)準(zhǔn)度量 耦合 - 衡量模塊之間彼此依賴的緊密程度 內(nèi)聚 - 衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度軟件工程軟件設(shè)計(jì)耦合 模塊間相互關(guān)聯(lián)的程度關(guān)聯(lián)程度的決定因素 一個(gè)模塊對(duì)另一個(gè)模塊的訪問 模塊間傳遞的數(shù)據(jù)量 一個(gè)模塊傳遞給另一個(gè)模塊的控制信息 模塊間接口的復(fù)雜程度
6、軟件工程軟件設(shè)計(jì)耦合的分類 內(nèi)容耦合 - 一個(gè)模塊直接參考另一個(gè)模塊的內(nèi)容 例子 結(jié)論 - 堅(jiān)決避免使用內(nèi)容耦合 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);con=DriverManager.getConnection(jdbc:odbc:test);stmt=con.createStatement();rs=stmt.executeQuery(select areano, areafangxiang,areasell ,endtime from landInformation); while(rs.next() 軟件工程軟件設(shè)計(jì) 公共耦合 - 多
7、個(gè)模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境 分類 松散公共耦合 :一個(gè)模塊只是往公共數(shù)據(jù)環(huán)境里傳送數(shù)據(jù),而另一個(gè)模塊只是從公共數(shù)據(jù)環(huán)境中取數(shù)據(jù) 緊密公共耦合:兩個(gè)模塊都向公共數(shù)據(jù)環(huán)境中送數(shù)據(jù),同時(shí)也都從公共數(shù)據(jù)環(huán)境中取數(shù)據(jù) 例子 動(dòng)態(tài)并發(fā)程序的執(zhí)行 結(jié)論 - 限制使用公共耦合軟件工程軟件設(shè)計(jì) 外部耦合 兩個(gè)模塊都訪問同一個(gè)全局簡(jiǎn)單公共變量,而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),且不是通過參數(shù)表傳遞該全局變量的信息 例子 結(jié)論:限制使用外部耦合while (gloable T=0) if x25 then ModuleA(); else ModuleB();軟件工程軟件設(shè)計(jì) 控制耦合 模塊A向模塊B傳遞一個(gè)控制信息 例子
8、 把一個(gè)數(shù)組名作為參數(shù)傳遞給另一個(gè)模塊時(shí),就形成了參數(shù)以傳址的形式進(jìn)行傳遞,降低模塊的獨(dú)立性。 結(jié)論:少用控制耦合軟件工程軟件設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)耦合 一個(gè)模塊調(diào)用另一個(gè)模塊時(shí)傳遞了整個(gè)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)耦合 兩個(gè)模塊之間傳遞的是數(shù)據(jù)項(xiàng) 結(jié)論:盡量使用數(shù)據(jù)耦合。軟件工程軟件設(shè)計(jì) 非直接耦合 兩個(gè)模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全通過主模塊的控制和調(diào)用來實(shí)現(xiàn) 例子 If (x) then modelA else modelB 結(jié)論:獨(dú)立性最強(qiáng)的耦合軟件工程軟件設(shè)計(jì)內(nèi)容耦合公共耦合外部耦合控制耦合 數(shù)據(jù)結(jié)構(gòu)耦合數(shù)據(jù)耦合非直接耦合高低弱強(qiáng)模塊耦合性模塊獨(dú)立性軟件工程軟件設(shè)計(jì)adbcefghijk全局?jǐn)?shù)據(jù)
9、區(qū)無直接耦合數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)(變量)控制標(biāo)志耦合的類型軟件工程軟件設(shè)計(jì)如何降低模塊間的耦合 根據(jù)系統(tǒng)的特點(diǎn),選擇恰當(dāng)?shù)鸟詈项愋?降低模塊接口的復(fù)雜性 把模塊之間的通信信息放在緩沖區(qū)中軟件設(shè)計(jì)的目標(biāo)是降低模塊間的耦合程度,設(shè)計(jì)時(shí)遵循的原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制使用公共耦合,堅(jiān)決不用內(nèi)容耦合。軟件工程軟件設(shè)計(jì) 內(nèi)聚巧合內(nèi)聚 一個(gè)模塊執(zhí)行多個(gè)完全互不相關(guān)的動(dòng)作例子為了節(jié)省空間,將多個(gè)模塊中重復(fù)出現(xiàn)的語(yǔ)句提取出來,組成一個(gè)新的模塊程度:低內(nèi)聚軟件工程軟件設(shè)計(jì)邏輯內(nèi)聚 一個(gè)模塊執(zhí)行一系列相關(guān)動(dòng)作例子程序執(zhí)行的邏輯類似,并共用一部分代碼,接口參數(shù)為了區(qū)分執(zhí)行過程而顯得非常復(fù)雜。程度:低內(nèi)聚軟件
10、工程軟件設(shè)計(jì)時(shí)間內(nèi)聚 一個(gè)模塊內(nèi)部的多個(gè)任務(wù)是與時(shí)間有關(guān)例子 :程序的初始化過程程度:低內(nèi)聚 public void init(ServletConfig config) throws ServletException moni_num_in=0; moni_num_end=0; rBundle = ResourceBundle.getBundle(immserver.servletConfig); transportType =rBundle.getString(TRANSPORT_TYPE); 軟件工程軟件設(shè)計(jì)過程內(nèi)聚 模塊執(zhí)行的若干動(dòng)作之間有順序關(guān)系例子驗(yàn)證用戶登錄信息If 合法 提取用
11、戶個(gè)性化信息Else 拒絕登錄程度:中等程度內(nèi)聚軟件工程軟件設(shè)計(jì)通信內(nèi)聚 模塊執(zhí)行的若干動(dòng)作之間有順序關(guān)系,并且所有動(dòng)作是在相同的數(shù)據(jù)上執(zhí)行。例子讀取文件記錄重新計(jì)算文件記錄將文件記錄進(jìn)行輸出程度:中等程度內(nèi)聚軟件工程軟件設(shè)計(jì)信息內(nèi)聚 一個(gè)模塊中執(zhí)行一系列動(dòng)作,每個(gè)動(dòng)作都有自己的入口點(diǎn)和處理代碼,所有的動(dòng)作都作用在相同的數(shù)據(jù)結(jié)構(gòu)上。例子程度:高內(nèi)聚模塊入口參數(shù)表判斷參數(shù)查找刪除修改文件記錄軟件工程軟件設(shè)計(jì)功能內(nèi)聚 一個(gè)模塊中各個(gè)部分都是完成某一具體功能必不可少的組成部分。例子成功標(biāo)志 用戶身份驗(yàn)證(用戶名,用戶密碼) 驗(yàn)證過程; return 成功標(biāo)志;程度:高內(nèi)聚軟件工程軟件設(shè)計(jì)巧合內(nèi)聚邏輯
12、內(nèi)聚時(shí)間內(nèi)聚過程內(nèi)聚通信內(nèi)聚信息內(nèi)聚功能內(nèi)聚低高弱強(qiáng)模塊內(nèi)聚性模塊獨(dú)立性軟件工程軟件設(shè)計(jì)練習(xí) 1軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是 A 。兩個(gè)模塊之間的耦合方式中,B 耦合的耦合程度最高, C 耦合的耦合度最低。一個(gè)模塊內(nèi)部的內(nèi)聚種類中 D 內(nèi)聚的內(nèi)聚程度最高, E 內(nèi)聚的內(nèi)聚度最低。A:低內(nèi)聚低耦合 低內(nèi)聚高耦合 高內(nèi)聚低耦合 高內(nèi)聚高耦合B:數(shù)據(jù) 非直接 控制 內(nèi)容C:數(shù)據(jù) 非直接 控制 內(nèi)容D:偶然 邏輯 功能 過程E:偶然 邏輯 功能 過程 軟件工程軟件設(shè)計(jì)練習(xí)2軟件設(shè)計(jì)中劃分程序模塊通常遵循的原則是要使各模塊間的耦合性盡可能 A 。三種可能的模塊耦合是 B 。例如,一個(gè)模塊直接引用另一模
13、塊中的數(shù)據(jù)。 C 。例如,一個(gè)模塊把開關(guān)量作為參數(shù)傳遞給另一模塊。 D 。例如,一個(gè)模塊把一個(gè)數(shù)值量作為參數(shù)傳遞給另一模塊。其中 E 的耦合性最強(qiáng)。A: 強(qiáng) 適中 弱 BE:公共耦合 數(shù)據(jù)耦合 邏輯耦合 外部耦合 內(nèi)容耦合 控制耦合 軟件工程軟件設(shè)計(jì)練習(xí)3模塊內(nèi)聚度用于衡量模塊內(nèi)部各成分之間彼此結(jié)合的緊密程度1、一組語(yǔ)句在程序的多處出現(xiàn),為了節(jié)省內(nèi)存空間把這些語(yǔ)句放在一個(gè)模塊中,該模塊的內(nèi)聚度是 A 的。2、將幾個(gè)邏輯上相似的成分放在一個(gè)模塊中,該模塊的內(nèi)聚度是 B 的。3、模塊中所有成分引用共同的數(shù)據(jù),該模塊的內(nèi)聚度是 C 的。4、模塊中所有成分結(jié)合起來完成一項(xiàng)任務(wù),該模塊的內(nèi)聚度是 D 的
14、。AE:功能性 邏輯性 通信性 過程性 偶然性 瞬時(shí)性軟件工程軟件設(shè)計(jì)抽象定義 抽出事務(wù)的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié)。Wasserman提出的幾種抽象方法 功能分解法 面向數(shù)據(jù)的分解法 面向事件的分解法 由外向內(nèi)的設(shè)計(jì) 面向?qū)ο蟮脑O(shè)計(jì)軟件工程軟件設(shè)計(jì)信息隱藏含義 一個(gè)模塊中所包含的信息,不允許其他不需要這些信息的模塊使用局部化 把一些關(guān)系密切的軟件元素物理地彼此靠近放置在一個(gè)局部的環(huán)境當(dāng)中。軟件工程軟件設(shè)計(jì)軟件體系結(jié)構(gòu)風(fēng)格(模式)管道和過濾器(數(shù)據(jù)流模型) 該體系結(jié)構(gòu)被用于當(dāng)輸入數(shù)據(jù)被通過一系列計(jì)算或操縱構(gòu)件變換為輸出數(shù)據(jù)的情形。軟件工程軟件設(shè)計(jì)發(fā)票處理系統(tǒng)的管道/過濾器模型讀取發(fā)放的發(fā)票
15、識(shí)別支付簽發(fā)收據(jù)找出到期應(yīng)付的款項(xiàng)收據(jù)發(fā)催款通知催款通知發(fā)票支付例子一個(gè)機(jī)構(gòu)給其客戶開出帳單。每星期將付款與帳單核對(duì)一次,若賬單已經(jīng)支付,則開出收據(jù),若在一個(gè)規(guī)定的時(shí)間內(nèi)尚未支付,則給出一個(gè)催款單。軟件工程軟件設(shè)計(jì)面向?qū)ο?需求可以通過對(duì)象以及它們的抽象類型組織起來。隱式請(qǐng)求 隱式請(qǐng)求設(shè)計(jì)模型是事件驅(qū)動(dòng)的。面向數(shù)據(jù)流的設(shè)計(jì) 將系統(tǒng)按層次劃分,每一層都為上一層提供服務(wù)。過程控制 將過程輸出維持在某個(gè)指定值的范圍之內(nèi)??蛻魴C(jī)/服務(wù)器軟件工程軟件設(shè)計(jì)程序結(jié)構(gòu)程序結(jié)構(gòu)反映軟件結(jié)構(gòu)中的模塊劃分情況,它通常是樹狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu),其中蘊(yùn)含了程序控制上的層次關(guān)系。軟件工程軟件設(shè)計(jì)程序結(jié)構(gòu)分類樹狀結(jié)構(gòu) 整個(gè)樹狀
16、結(jié)構(gòu)只有一個(gè)根模塊 任何一個(gè)非根模塊,只有一個(gè)調(diào)用模塊,而且同一層模塊之間不發(fā)生聯(lián)系軟件工程軟件設(shè)計(jì)網(wǎng)狀結(jié)構(gòu)任意兩個(gè)模塊之間都可以有雙向的關(guān)系,不存在上級(jí)模塊和下屬模塊的關(guān)系軟件工程軟件設(shè)計(jì)表示軟件結(jié)構(gòu)的圖形軟件層次圖軟件工程軟件設(shè)計(jì)軟件結(jié)構(gòu)圖軟件工程軟件設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)的原則 用于軟件的系統(tǒng)化方法也適用于數(shù)據(jù) 要確定所有數(shù)據(jù)結(jié)構(gòu),以及在每種數(shù)據(jù)結(jié)構(gòu)上實(shí)施的操作 應(yīng)該建立一個(gè)數(shù)據(jù)字典,用它來定義數(shù)據(jù)和軟件的設(shè)計(jì) 底層數(shù)據(jù)設(shè)計(jì)的決策應(yīng)該推遲到設(shè)計(jì)過程的后期進(jìn)行,在數(shù)據(jù)設(shè)計(jì)中也可以使用自頂向下、逐步細(xì)化的方法 數(shù)據(jù)設(shè)計(jì)時(shí)應(yīng)遵從信息隱藏原則 應(yīng)當(dāng)創(chuàng)建一個(gè)存放數(shù)據(jù)結(jié)構(gòu)和相關(guān)操作的庫(kù) 軟件設(shè)計(jì)和程序
17、設(shè)計(jì)語(yǔ)言應(yīng)當(dāng)支持抽象數(shù)據(jù)類型的定義和實(shí)現(xiàn)軟件工程軟件設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)原則 盡量使用簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu) 在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí)要注意數(shù)據(jù)之間的關(guān)系 為了加強(qiáng)數(shù)據(jù)設(shè)計(jì)的可復(fù)用性,應(yīng)該針對(duì)常用的數(shù)據(jù)結(jié)構(gòu)和復(fù)雜的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)抽象類型 盡量使用經(jīng)典數(shù)據(jù)結(jié)構(gòu) 在確定數(shù)據(jù)結(jié)構(gòu)時(shí)一般先考慮靜態(tài)結(jié)構(gòu) 對(duì)于復(fù)雜數(shù)據(jù)結(jié)構(gòu),應(yīng)給出圖形和文字描述,以便于理解軟件工程軟件設(shè)計(jì)文件設(shè)計(jì)定義:指對(duì)數(shù)據(jù)存儲(chǔ)文件的設(shè)計(jì)。文件的邏輯設(shè)計(jì) 整理必需的數(shù)據(jù)元素 分析數(shù)據(jù)間的關(guān)系 確定文件記錄的內(nèi)容文件的物理設(shè)計(jì) 理解文件的特性 確定文件物理組織結(jié)構(gòu) 確定文件的存儲(chǔ)介質(zhì) 確定文件的記錄格式估計(jì)記錄的存取時(shí)間 估計(jì)文件的存儲(chǔ)量軟件工程軟件設(shè)計(jì)數(shù)據(jù)庫(kù)
18、設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟 邏輯設(shè)計(jì) 創(chuàng)建E-R圖 物理設(shè)計(jì) 按照第三范式設(shè)計(jì)表結(jié)構(gòu) 安全性設(shè)計(jì) 用戶只能通過賬號(hào)登錄應(yīng)用軟件,通過應(yīng)用軟件訪問數(shù)據(jù)庫(kù) 用戶賬號(hào)的密碼進(jìn)行加密處理。確保在任何地方不出現(xiàn)密碼的銘文表示 確定每個(gè)角色對(duì)數(shù)據(jù)庫(kù)訪問的權(quán)限。 性能優(yōu)化 優(yōu)化表結(jié)構(gòu)本身 優(yōu)化數(shù)據(jù)庫(kù)的環(huán)境參數(shù)軟件工程軟件設(shè)計(jì)第一范式(1NF)在關(guān)系模式R中的每一個(gè)具體關(guān)系r中,如果每個(gè)屬性值 都是不可再分的最小數(shù)據(jù)單位,則稱R是第一范式的關(guān)系。 第二范式(2NF)如果關(guān)系模式R(U,F(xiàn))中的所有非主屬性都完全依賴于任意一個(gè)候選關(guān)鍵字,則稱關(guān)系R 是屬于第二范式的。 第三范式(3NF)如果關(guān)系模式R(U,F(xiàn))中
19、的所有非主屬性對(duì)任何候選關(guān)鍵字都不存在傳遞信賴,則稱關(guān)系R是屬于第三范式的。 軟件工程軟件設(shè)計(jì)PowerDesign 9 使用方法安裝認(rèn)識(shí)環(huán)境練習(xí) 建立邏輯模型(CDM) 建立物理模型(PDM) 生成SQL文件,同時(shí)生成數(shù)據(jù)庫(kù)軟件工程軟件設(shè)計(jì)Relationship_1Relationship_2Relationship_3Relationship_4圖書圖書號(hào)書名單價(jià)作者出版社出版日期接觸標(biāo)記A10TXT64000N6,2VA60VA40DA1Identifier_1借還書借還日期借還標(biāo)志 DA1Identifier_1讀者讀者號(hào)姓名證件號(hào)電話Email A8VA8VA20VA18VA20I
20、dentifier_1書庫(kù)架位號(hào)架位地址 A20VA38Identifier_1單位單位號(hào)單位地址單位電話 VA10VA50VA18Identifier_1軟件工程軟件設(shè)計(jì)FK_RETURN_RELATIONS_BOOKFK_READER_RELATIONS_RETURNFK_READER_RELATIONS_UNITFK_BOOK_RELATIONS_LIBERARY圖書圖書號(hào)書名架位號(hào)單價(jià)作者出版社出版日期接觸標(biāo)記char(10)varchar(20)char(20)numeric(6,2)varchar(60)varchar(40)datetimechar(1)借還書圖書號(hào)書名借還日期借
21、還標(biāo)志char(10)varchar(20)datetimechar(1)讀者讀者號(hào)單位號(hào)姓名證件號(hào)電話Emailchar(8)varchar(10)varchar(8)varchar(20)varchar(18)varchar(20)書庫(kù)架位號(hào)架位地址char(20)varchar(38)單位單位號(hào)單位地址單位電話varchar(10)varchar(50)varchar(18)軟件工程軟件設(shè)計(jì)練習(xí)教師課程教授學(xué)習(xí)學(xué)生成績(jī)mnnm班級(jí)有員工號(hào)姓名性別課程號(hào)課程名學(xué)分住址學(xué)號(hào)姓名性別出生日期班號(hào)人數(shù)n1軟件工程軟件設(shè)計(jì)步驟建立實(shí)體圖(Entity) 填寫屬性(Attributes)建立聯(lián)系(R
22、elationship)定義概念模型屬性 Model-Model Properties創(chuàng)建概念模型的域 Model-Domains檢查CDM Tools-Check Model由CDM生成PDM Tools-Generate new Physical Data Model軟件工程軟件設(shè)計(jì)觀察標(biāo)識(shí)符與聯(lián)系的轉(zhuǎn)換利用PDM創(chuàng)建數(shù)據(jù)庫(kù) 創(chuàng)建一個(gè)Access空數(shù)據(jù)庫(kù)(test.mdb) 配置數(shù)據(jù)源 創(chuàng)建數(shù)據(jù)庫(kù),同時(shí)生成SQL文件 Database-Generate Database 選擇 ODBC generation 選項(xiàng) 檢查Access數(shù)據(jù)庫(kù)(test.mdb)軟件工程軟件設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)方法 數(shù)
23、據(jù)流的類型交換流:可劃分為明顯的3個(gè)部分:邏輯輸入、中心變換、輸出數(shù)據(jù)。整個(gè)的數(shù)據(jù)流動(dòng)以一種順序的方式并沿一條或很少的幾條“直線”路徑進(jìn)行。如果一部分?jǐn)?shù)據(jù)流圖體現(xiàn)了這些特征,這就是變換流。編輯檢查計(jì)算格式1格式2格式3初始數(shù)據(jù)已編輯數(shù)據(jù)有效數(shù)據(jù)計(jì)算值2計(jì)算值1已格式化1已格式化2已格式化3邏輯輸入邏輯輸出軟件工程軟件設(shè)計(jì)事務(wù)流 一個(gè)數(shù)據(jù)數(shù)據(jù)流經(jīng)過某個(gè)加工后,有若干個(gè)平行的數(shù)據(jù)流 流出,將這種變換稱為事物流。 事務(wù)流的特征是數(shù)據(jù)沿某輸入路徑流動(dòng),該路徑將外部信息轉(zhuǎn)換成事務(wù),事務(wù)被估值,根據(jù)其值,啟動(dòng)沿很多動(dòng)作路徑之一的流。其中發(fā)射出多條動(dòng)作路徑的信息流中心被稱為事務(wù)中心。 事務(wù)中心TT1T2T3
24、T4數(shù)據(jù)流事務(wù)流數(shù)據(jù)路徑軟件工程軟件設(shè)計(jì)設(shè)計(jì)過程 流程圖類型區(qū)分事物中心和數(shù)據(jù)接受路徑區(qū)分輸入和輸出分支”事物“”變換“映射成事物結(jié)構(gòu)映射成變換結(jié)構(gòu)用啟發(fā)式設(shè)計(jì)規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)詳細(xì)設(shè)計(jì)數(shù)據(jù)流程圖復(fù)查軟件工程軟件設(shè)計(jì)變換分析變換分方法的步驟 重畫數(shù)據(jù)流圖 在數(shù)據(jù)流程圖上區(qū)分系統(tǒng)的邏輯輸入、邏輯輸出和中心變換部分 設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第一層 設(shè)計(jì)軟件結(jié)構(gòu)的第二層軟件工程軟件設(shè)計(jì)A變換BB變換C計(jì)算D變換E取得ABCD輸出E變換型數(shù)據(jù)流程圖轉(zhuǎn)化為軟件結(jié)構(gòu)圖軟件工程軟件設(shè)計(jì)例子步驟1:評(píng)審和精化軟件的數(shù)據(jù)流圖。住宅安全系統(tǒng)頂層圖(第0層圖)控制面板傳感器控制面板顯示器報(bào)警器電
25、話線用戶命令和數(shù)據(jù)傳感器狀態(tài)顯示信息警報(bào)類型電話號(hào)碼音住宅安全系統(tǒng)軟件工程軟件設(shè)計(jì)控制面板傳感器用戶命令和數(shù)據(jù)監(jiān)控傳感器用戶操作配置系統(tǒng)處理密碼啟動(dòng)/停止系統(tǒng)顯示信息和狀態(tài)控制面板顯示器報(bào)警器電話線配置信息密碼配置請(qǐng)求啟動(dòng)/停止有效的ID 信息。配置數(shù)據(jù)配置數(shù)據(jù)配置數(shù)據(jù)A/D信息傳感器信息傳感器狀態(tài)警報(bào)類型電話號(hào)碼音住宅安全系統(tǒng)的第1層DFD圖軟件工程軟件設(shè)計(jì)軟件工程軟件設(shè)計(jì)步驟2:確定DFD含有變換流還是事務(wù)流步驟3:刻畫輸入和輸出流的邊界,隔離變換中心。 輸入流被描述成信息從外部形式變換為內(nèi)部信 息的路徑。 輸出流是信息從內(nèi)部形式變換為外部形式的路徑。軟件工程軟件設(shè)計(jì)讀取傳感器獲取反饋信息
26、建立報(bào)警環(huán)境選擇電話號(hào)碼與電話線路建立聯(lián)系生成脈沖格式化顯示內(nèi)容生成顯示內(nèi)容生成報(bào)警信號(hào)配置信息配置數(shù)據(jù)傳感器ID類型,位置格式化的ID,類型,位置傳感器信息警報(bào)類型警報(bào)數(shù)據(jù)傳感器狀態(tài)傳感器ID,設(shè)置警報(bào)狀況代碼,傳感器ID,時(shí)間信息數(shù)字列表電話號(hào)碼電話號(hào)碼音就緒電話號(hào)碼音具有邊界的監(jiān)視傳感器加工的第3層DFD圖軟件工程軟件設(shè)計(jì)步驟4:完成軟件結(jié)構(gòu)的頂層模塊和第一層結(jié)構(gòu)圖軟件工程軟件設(shè)計(jì)步驟5:完成軟件結(jié)構(gòu)的第二層結(jié)構(gòu)轉(zhuǎn)化軟件工程軟件設(shè)計(jì)完成軟件結(jié)構(gòu)的第一次迭代軟件工程軟件設(shè)計(jì)監(jiān)視傳感器主控模塊警報(bào)輸出控制模塊產(chǎn)生顯示信息生成報(bào)警信號(hào)與電話線路建立聯(lián)系生成脈沖獲取反饋信息讀取傳感器建立報(bào)警環(huán)境
27、步驟6:用提高軟件質(zhì)量的啟發(fā)信息,精化第一次迭 代得到的程序結(jié)構(gòu)軟件工程軟件設(shè)計(jì)事務(wù)分析事務(wù)分析方法的具體步驟 重畫數(shù)據(jù)流圖 確定事務(wù)流和變換流 標(biāo)識(shí)事務(wù)中心、事務(wù)接收路徑和事務(wù)處理路徑 設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第一層 設(shè)計(jì)軟件結(jié)構(gòu)的第二層軟件工程軟件設(shè)計(jì)具有邊界的用戶交互子系統(tǒng)的第2層DFD步驟1:評(píng)審和精化軟件的數(shù)據(jù)流圖步驟2:確定DFD含有變換流還是事務(wù)流特征。步驟3:標(biāo)識(shí)事務(wù)中心和每條動(dòng)作路徑上的流特征。軟件結(jié)構(gòu)第一層圖軟件結(jié)構(gòu)第二層圖軟件工程軟件設(shè)計(jì)事務(wù)映射過程步驟4:將DFD映射到一個(gè)適合于進(jìn)行事務(wù)處理的程序結(jié)構(gòu)上軟件工程軟件設(shè)計(jì)用戶交互子系統(tǒng)的第一層軟件結(jié)構(gòu)圖軟件工程軟件設(shè)計(jì)用戶交互子系統(tǒng)的第一次迭代軟件結(jié)構(gòu)圖步驟5:完成第2層結(jié)構(gòu)化并精化每條動(dòng)作路徑結(jié)構(gòu)軟件工程軟件設(shè)計(jì)練習(xí)已知某系統(tǒng)的需求分析給出的系統(tǒng)數(shù)據(jù)流圖如下請(qǐng)用SD方法劃出對(duì)應(yīng)的SC(軟件結(jié)構(gòu)圖)軟件工程軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZNZ 264.1-2024 重金屬中度污染農(nóng)田土壤修復(fù)和安全利用技術(shù)規(guī)范 第1部分:超積累東南景天與油葵輪作
- 二零二五年度車輛轉(zhuǎn)讓與二手車交易及金融服務(wù)協(xié)議
- 2025年度蛋糕店與體育賽事合作贊助協(xié)議
- 2025年度道路橋梁維修施工安全協(xié)議書
- 2025年度網(wǎng)絡(luò)安全產(chǎn)品銷售提成與技術(shù)服務(wù)合同
- 二零二五年度企業(yè)員工宿舍三方租賃協(xié)議
- 二零二五年度臨時(shí)廚房工作人員聘用合同
- 二零二五年度個(gè)體商戶勞動(dòng)合同(體育賽事組織與運(yùn)營(yíng))
- 中學(xué)生環(huán)保行動(dòng)策劃案解讀
- 監(jiān)控項(xiàng)目合作合同監(jiān)控施工合同
- 屋頂分布式光伏發(fā)電EPC項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 新編建筑裝飾設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)
- 托班藝術(shù)活動(dòng)《小小茶樹》教案
- 中國(guó)急性缺血性卒中診治指南(2023)解讀
- A型肉毒素治療知情同意書 注射知情同意書
- 2024年萊蕪職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 《計(jì)算機(jī)網(wǎng)絡(luò)(第8版)》 課件 第5、6章 運(yùn)輸層、應(yīng)用層
- 2023年6月福建省高中學(xué)業(yè)水平合格考英語(yǔ)試卷真題(含答案詳解)
- 紙的世界-2、紙的用途
- 《肌電圖的臨床應(yīng)用》課件
- 慢病聯(lián)合用藥病
評(píng)論
0/150
提交評(píng)論