軟件工程第五章結(jié)構(gòu)設(shè)計(jì)_第1頁(yè)
軟件工程第五章結(jié)構(gòu)設(shè)計(jì)_第2頁(yè)
軟件工程第五章結(jié)構(gòu)設(shè)計(jì)_第3頁(yè)
軟件工程第五章結(jié)構(gòu)設(shè)計(jì)_第4頁(yè)
軟件工程第五章結(jié)構(gòu)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)與建模結(jié)構(gòu)化軟件設(shè)計(jì)陽(yáng)王東回答問題什么是軟件設(shè)計(jì)?有哪些階段和任務(wù)?什么是軟件設(shè)計(jì)?有哪些階段和任務(wù)?什么是模塊化設(shè)計(jì)?有哪些原理?什么是模塊化設(shè)計(jì)?有哪些原理?什么是軟件結(jié)構(gòu)和體系結(jié)構(gòu)?二者有什么區(qū)別?什么是軟件結(jié)構(gòu)和體系結(jié)構(gòu)?二者有什么區(qū)別?數(shù)據(jù)流有哪些類型?如何區(qū)分?數(shù)據(jù)流有哪些類型?如何區(qū)分?數(shù)據(jù)流映射的步驟是什么?數(shù)據(jù)流映射的步驟是什么?什么是結(jié)構(gòu)化程序設(shè)計(jì)?有哪些工具?什么是結(jié)構(gòu)化程序設(shè)計(jì)?有哪些工具?什么是什么是jsd方法?具體步驟是什么?方法?具體步驟是什么?第8章 軟件設(shè)計(jì)軟件設(shè)計(jì)軟件設(shè)計(jì)模塊化設(shè)計(jì)模塊化設(shè)計(jì)軟件架構(gòu)設(shè)計(jì)軟件架構(gòu)設(shè)計(jì)軟件結(jié)

2、構(gòu)軟件結(jié)構(gòu)軟件設(shè)計(jì)概述軟件設(shè)計(jì)概述軟件設(shè)計(jì)階段的基本目標(biāo)是構(gòu)造系統(tǒng)軟件設(shè)計(jì)階段的基本目標(biāo)是構(gòu)造系統(tǒng)“怎么做怎么做”的模的模型描述。型描述?!霸O(shè)計(jì)先于編碼設(shè)計(jì)先于編碼”,這是軟件工程,這是軟件工程“推遲實(shí)現(xiàn)推遲實(shí)現(xiàn)”基本基本原則原則軟件系統(tǒng)設(shè)計(jì)是把軟件需求軟件系統(tǒng)設(shè)計(jì)是把軟件需求“變換變換”為用于構(gòu)造軟件為用于構(gòu)造軟件的藍(lán)圖。的藍(lán)圖?!拜斎胼斎搿笔切枨蠓治龈鞣N模型元素是需求分析各種模型元素“輸出輸出”是軟件設(shè)計(jì)模型和表示是軟件設(shè)計(jì)模型和表示軟件設(shè)計(jì)的目標(biāo)是對(duì)將要實(shí)現(xiàn)的軟件系統(tǒng)的體系結(jié)構(gòu)、軟件設(shè)計(jì)的目標(biāo)是對(duì)將要實(shí)現(xiàn)的軟件系統(tǒng)的體系結(jié)構(gòu)、系統(tǒng)的數(shù)據(jù)、系統(tǒng)模塊間的接口,以及所采用的算法系統(tǒng)的數(shù)據(jù)、系統(tǒng)

3、模塊間的接口,以及所采用的算法給出詳盡的描述。給出詳盡的描述。軟件設(shè)計(jì)三類活動(dòng)軟件設(shè)計(jì)三類活動(dòng)總體設(shè)計(jì),也稱為概要設(shè)計(jì),軟件結(jié)構(gòu)設(shè)計(jì),或高層設(shè)計(jì)??傮w設(shè)計(jì),也稱為概要設(shè)計(jì),軟件結(jié)構(gòu)設(shè)計(jì),或高層設(shè)計(jì)。分析需求規(guī)格說明分析需求規(guī)格說明模塊劃分,形成具有預(yù)定功能的模塊組成結(jié)構(gòu)模塊劃分,形成具有預(yù)定功能的模塊組成結(jié)構(gòu)表示出模塊間的控制關(guān)系表示出模塊間的控制關(guān)系給出模塊之間的接口給出模塊之間的接口軟件詳細(xì)設(shè)計(jì),也稱為(模塊)過程設(shè)計(jì),或低層設(shè)計(jì)。軟件詳細(xì)設(shè)計(jì),也稱為(模塊)過程設(shè)計(jì),或低層設(shè)計(jì)。設(shè)計(jì)模塊細(xì)節(jié)設(shè)計(jì)模塊細(xì)節(jié)確定模塊所需的算法和數(shù)據(jù)結(jié)構(gòu)等確定模塊所需的算法和數(shù)據(jù)結(jié)構(gòu)等測(cè)試和復(fù)審測(cè)試和復(fù)審軟件設(shè)

4、計(jì)質(zhì)量原則軟件設(shè)計(jì)質(zhì)量原則設(shè)計(jì)過程要有全局觀念設(shè)計(jì)過程要有全局觀念設(shè)計(jì)對(duì)于分析模型應(yīng)該是可跟蹤的設(shè)計(jì)對(duì)于分析模型應(yīng)該是可跟蹤的設(shè)計(jì)不應(yīng)該從頭做起設(shè)計(jì)不應(yīng)該從頭做起設(shè)計(jì)應(yīng)該是可實(shí)現(xiàn)的設(shè)計(jì)應(yīng)該是可實(shí)現(xiàn)的設(shè)計(jì)應(yīng)該表現(xiàn)出一致性和集成性設(shè)計(jì)應(yīng)該表現(xiàn)出一致性和集成性設(shè)計(jì)應(yīng)該能夠適應(yīng)修改設(shè)計(jì)應(yīng)該能夠適應(yīng)修改設(shè)計(jì)不是編碼設(shè)計(jì)不是編碼應(yīng)該復(fù)審每一步設(shè)計(jì),以減少語(yǔ)義性錯(cuò)誤應(yīng)該復(fù)審每一步設(shè)計(jì),以減少語(yǔ)義性錯(cuò)誤軟件模塊化設(shè)計(jì)軟件模塊化設(shè)計(jì)模塊是一個(gè)獨(dú)立命名的,擁有明確定義的輸入、輸出模塊是一個(gè)獨(dú)立命名的,擁有明確定義的輸入、輸出和特性的程序?qū)嶓w。和特性的程序?qū)嶓w。軟件的模塊化設(shè)計(jì)(軟件的模塊化設(shè)計(jì)(modular d

5、esign)。系統(tǒng)是有)。系統(tǒng)是有一個(gè)個(gè)模塊組裝而成。一個(gè)個(gè)模塊組裝而成。軟件模塊化設(shè)計(jì)優(yōu)點(diǎn)軟件模塊化設(shè)計(jì)優(yōu)點(diǎn)可以簡(jiǎn)化軟件的設(shè)計(jì)和實(shí)現(xiàn)可以簡(jiǎn)化軟件的設(shè)計(jì)和實(shí)現(xiàn)提高軟件的可理解性和可測(cè)試性提高軟件的可理解性和可測(cè)試性軟件更容易得到維護(hù)。軟件更容易得到維護(hù)。軟件模塊化設(shè)計(jì)缺點(diǎn)軟件模塊化設(shè)計(jì)缺點(diǎn)模塊劃分的數(shù)量越多,模塊間的聯(lián)系也越多模塊劃分的數(shù)量越多,模塊間的聯(lián)系也越多模塊的接口工作量卻隨著模塊數(shù)增加而增大模塊的接口工作量卻隨著模塊數(shù)增加而增大模塊數(shù)與開發(fā)工作量開開發(fā)發(fā)工工作作量量模塊數(shù)模塊數(shù)最小成本區(qū)最小成本區(qū)模塊成本模塊成本接口成本接口成本總成本總成本軟件模塊化設(shè)計(jì)的指導(dǎo)思想分解分解抽象抽象逐步

6、求精逐步求精信息隱蔽信息隱蔽模塊獨(dú)立性模塊獨(dú)立性分解與抽象分解與抽象分解必然需要抽象的支持。抽象是抓住主要問題,隱分解必然需要抽象的支持。抽象是抓住主要問題,隱藏細(xì)節(jié),這樣才能容易分解。藏細(xì)節(jié),這樣才能容易分解。抽象具有不同的級(jí)別。抽象具有不同的級(jí)別。人類解決復(fù)雜問題的基本方法之一。只有抓住事物的人類解決復(fù)雜問題的基本方法之一。只有抓住事物的本質(zhì),才能準(zhǔn)確分析和處理問題,找到合理的解決方本質(zhì),才能準(zhǔn)確分析和處理問題,找到合理的解決方案。案。逐步求精逐步求精逐步求精,或稱逐步細(xì)化,是一種自頂向下的設(shè)計(jì)策逐步求精,或稱逐步細(xì)化,是一種自頂向下的設(shè)計(jì)策略。略。逐步求精是人類采用抽象到具體的過程把一個(gè)

7、復(fù)雜問逐步求精是人類采用抽象到具體的過程把一個(gè)復(fù)雜問題趨于簡(jiǎn)單化控制和管理的有效策略。題趨于簡(jiǎn)單化控制和管理的有效策略。抽象和精化是互補(bǔ)的概念。抽象和精化是互補(bǔ)的概念。信息隱藏信息隱藏信息隱蔽原則建議模塊應(yīng)該具有的特征是:每個(gè)模塊信息隱蔽原則建議模塊應(yīng)該具有的特征是:每個(gè)模塊對(duì)其他所有模塊都隱蔽自己的設(shè)計(jì)決策。對(duì)其他所有模塊都隱蔽自己的設(shè)計(jì)決策。信息隱蔽意味著通過一系列獨(dú)立的模塊可以得到有效信息隱蔽意味著通過一系列獨(dú)立的模塊可以得到有效的模塊化。的模塊化。獨(dú)立的構(gòu)件或模塊之間的獨(dú)立的構(gòu)件或模塊之間的“接口接口”簡(jiǎn)單而清晰。簡(jiǎn)單而清晰。模塊的獨(dú)立性模塊的獨(dú)立性模塊獨(dú)立性是指開發(fā)具有獨(dú)立功能而和其

8、他模塊沒有模塊獨(dú)立性是指開發(fā)具有獨(dú)立功能而和其他模塊沒有過多關(guān)聯(lián)的模塊。過多關(guān)聯(lián)的模塊。模塊獨(dú)立性兩大優(yōu)點(diǎn):模塊獨(dú)立性兩大優(yōu)點(diǎn):獨(dú)立的模塊由于分解了功能,簡(jiǎn)化了接口,使得軟件比獨(dú)立的模塊由于分解了功能,簡(jiǎn)化了接口,使得軟件比較容易開發(fā);較容易開發(fā);獨(dú)立的模塊比較容易測(cè)試和維護(hù)。獨(dú)立的模塊比較容易測(cè)試和維護(hù)。模塊獨(dú)立性由兩個(gè)定性標(biāo)準(zhǔn)度量:模塊獨(dú)立性由兩個(gè)定性標(biāo)準(zhǔn)度量:模塊自身的內(nèi)聚(模塊自身的內(nèi)聚(cohesion),也稱為塊內(nèi)聯(lián)系或),也稱為塊內(nèi)聯(lián)系或模塊強(qiáng)度,模塊強(qiáng)度,模塊之間的耦合(模塊之間的耦合(coupling),也稱為塊間聯(lián)系。,也稱為塊間聯(lián)系。模塊獨(dú)立性愈高,則塊內(nèi)聯(lián)系越強(qiáng),塊間聯(lián)

9、系越弱。模塊獨(dú)立性愈高,則塊內(nèi)聯(lián)系越強(qiáng),塊間聯(lián)系越弱。模塊內(nèi)聚性內(nèi)聚性是從功能的角度對(duì)模塊內(nèi)部聚合能力的量度。內(nèi)聚性是從功能的角度對(duì)模塊內(nèi)部聚合能力的量度。高內(nèi)聚是模塊獨(dú)立性追求的目標(biāo)。高內(nèi)聚是模塊獨(dú)立性追求的目標(biāo)。分類:分類:偶然性內(nèi)聚偶然性內(nèi)聚邏輯性內(nèi)聚邏輯性內(nèi)聚時(shí)間性內(nèi)聚時(shí)間性內(nèi)聚過程性內(nèi)聚過程性內(nèi)聚通信性內(nèi)聚通信性內(nèi)聚順序性內(nèi)聚順序性內(nèi)聚功能性內(nèi)聚功能性內(nèi)聚內(nèi)聚性分類偶然性內(nèi)偶然性內(nèi)聚聚弱弱邏輯性邏輯性內(nèi)聚內(nèi)聚時(shí)間性時(shí)間性內(nèi)聚內(nèi)聚過程性過程性內(nèi)聚內(nèi)聚通信性通信性內(nèi)聚內(nèi)聚順序性順序性內(nèi)聚內(nèi)聚功能性功能性內(nèi)聚內(nèi)聚強(qiáng)強(qiáng)低內(nèi)聚低內(nèi)聚中內(nèi)聚中內(nèi)聚高內(nèi)聚高內(nèi)聚模塊耦合性耦合性是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同

10、模塊之間互連程度的度量。耦合性是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合性的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,以及通過接耦合性的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,以及通過接口的數(shù)據(jù)類型和數(shù)目??诘臄?shù)據(jù)類型和數(shù)目。分類:分類: 非直接耦合非直接耦合 數(shù)據(jù)耦合數(shù)據(jù)耦合 控制耦合控制耦合外部耦合外部耦合公共耦合公共耦合內(nèi)容耦合內(nèi)容耦合耦合性分類非直接耦非直接耦合合弱弱數(shù)據(jù)耦合數(shù)據(jù)耦合 特征耦合特征耦合 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合 內(nèi)容耦合內(nèi)容耦合強(qiáng)強(qiáng)弱耦合弱耦合中耦合中耦合強(qiáng)耦合強(qiáng)耦合較強(qiáng)耦合較強(qiáng)耦合模塊化設(shè)計(jì)的優(yōu)化模塊化設(shè)計(jì)的優(yōu)化改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性改進(jìn)軟件結(jié)構(gòu)

11、提高模塊獨(dú)立性在滿足模塊化要求的前提下盡量減少模塊數(shù)量,在滿在滿足模塊化要求的前提下盡量減少模塊數(shù)量,在滿足信息需求的前提下盡可能減少?gòu)?fù)雜的數(shù)據(jù)結(jié)構(gòu)足信息需求的前提下盡可能減少?gòu)?fù)雜的數(shù)據(jù)結(jié)構(gòu)模塊規(guī)模應(yīng)適中模塊規(guī)模應(yīng)適中軟件結(jié)構(gòu)的深度、寬度、軟件結(jié)構(gòu)的深度、寬度、 扇入數(shù)和扇出數(shù)都要適當(dāng)扇入數(shù)和扇出數(shù)都要適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi)模塊的作用域應(yīng)該在控制域之內(nèi)力求降低模塊接口的復(fù)雜程度,設(shè)計(jì)單入口、單出口力求降低模塊接口的復(fù)雜程度,設(shè)計(jì)單入口、單出口的模塊的模塊概要設(shè)計(jì)概要設(shè)計(jì)主要包括三個(gè)方面的設(shè)計(jì)。首先是系統(tǒng)概要設(shè)計(jì)主要包括三個(gè)方面的設(shè)計(jì)。首先是系統(tǒng)構(gòu)架設(shè)計(jì),然后是軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)設(shè)

12、計(jì)。構(gòu)架設(shè)計(jì),然后是軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。需求文檔概要設(shè)計(jì)文檔設(shè)計(jì)系統(tǒng)構(gòu)架需求框架設(shè)計(jì)軟件結(jié)構(gòu)功能需求設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)需求子系統(tǒng)數(shù)據(jù)環(huán)境軟件結(jié)構(gòu)系統(tǒng)構(gòu)架數(shù)據(jù)結(jié)構(gòu)軟件架構(gòu)設(shè)計(jì)(體系結(jié)構(gòu))軟件架構(gòu)設(shè)計(jì)(體系結(jié)構(gòu))軟件體系結(jié)構(gòu)是一種總體表達(dá)。軟件體系結(jié)構(gòu)是一種總體表達(dá)。大型軟件系統(tǒng)總是被分解成一系列子系統(tǒng),由子系統(tǒng)提供大型軟件系統(tǒng)總是被分解成一系列子系統(tǒng),由子系統(tǒng)提供一些相關(guān)的服務(wù)。一些相關(guān)的服務(wù)。軟件架構(gòu)設(shè)計(jì)過程就是識(shí)別出這些子系統(tǒng),并建立子系統(tǒng)軟件架構(gòu)設(shè)計(jì)過程就是識(shí)別出這些子系統(tǒng),并建立子系統(tǒng)控制和通信的框架,最后給出軟件體系結(jié)構(gòu)的一個(gè)描述。控制和通信的框架,最后給出軟件體系結(jié)構(gòu)的一個(gè)描述

13、。系統(tǒng)構(gòu)架設(shè)計(jì)可以按照以下步驟進(jìn)行系統(tǒng)構(gòu)架設(shè)計(jì)可以按照以下步驟進(jìn)行定義子系統(tǒng)定義子系統(tǒng)定義子外部接口定義子外部接口定義系統(tǒng)構(gòu)成模型定義系統(tǒng)構(gòu)成模型定義系統(tǒng)控制模型定義系統(tǒng)控制模型系統(tǒng)架構(gòu)設(shè)計(jì)主要內(nèi)容子系統(tǒng)劃分方法子系統(tǒng)劃分方法前臺(tái)業(yè)務(wù)辦理和后臺(tái)數(shù)據(jù)管理前臺(tái)業(yè)務(wù)辦理和后臺(tái)數(shù)據(jù)管理數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)管理數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)管理界面、控制和實(shí)體界面、控制和實(shí)體外部接口外部接口通信協(xié)議通信協(xié)議sdk消息消息分布式訪問分布式訪問系統(tǒng)構(gòu)成模型系統(tǒng)構(gòu)成模型以數(shù)據(jù)為中心的結(jié)構(gòu)模型以數(shù)據(jù)為中心的結(jié)構(gòu)模型客戶機(jī)客戶機(jī)/服務(wù)器結(jié)構(gòu)模型服務(wù)器結(jié)構(gòu)模型抽象機(jī)結(jié)構(gòu)模型抽象機(jī)結(jié)構(gòu)模型以數(shù)據(jù)為中心的結(jié)構(gòu)模型由一組子

14、系統(tǒng)構(gòu)成,子系統(tǒng)交換信息,協(xié)調(diào)工作由一組子系統(tǒng)構(gòu)成,子系統(tǒng)交換信息,協(xié)調(diào)工作有兩種基本方法:有兩種基本方法:全部共享數(shù)據(jù)放在一個(gè)中央數(shù)據(jù)庫(kù)中,所有子全部共享數(shù)據(jù)放在一個(gè)中央數(shù)據(jù)庫(kù)中,所有子系統(tǒng)都能從中存取數(shù)據(jù)。系統(tǒng)都能從中存取數(shù)據(jù)。每個(gè)子系統(tǒng)用各自的數(shù)據(jù)庫(kù)與其他子系統(tǒng)進(jìn)行每個(gè)子系統(tǒng)用各自的數(shù)據(jù)庫(kù)與其他子系統(tǒng)進(jìn)行數(shù)據(jù)交互,通過消息傳遞來實(shí)現(xiàn)。數(shù)據(jù)交互,通過消息傳遞來實(shí)現(xiàn)。共享數(shù)據(jù)模型的優(yōu)點(diǎn)是能夠高效地共享大量的數(shù)共享數(shù)據(jù)模型的優(yōu)點(diǎn)是能夠高效地共享大量的數(shù)據(jù);據(jù);缺點(diǎn)是子系統(tǒng)一定要與以數(shù)據(jù)為中心的體系結(jié)構(gòu)缺點(diǎn)是子系統(tǒng)一定要與以數(shù)據(jù)為中心的體系結(jié)構(gòu)模型一致,系統(tǒng)變更或進(jìn)化比較困難。模型一致,系統(tǒng)變更

15、或進(jìn)化比較困難。數(shù)據(jù)流體系結(jié)構(gòu)模型當(dāng)輸入數(shù)據(jù)經(jīng)過一系列的計(jì)算和操作構(gòu)件或模塊的變當(dāng)輸入數(shù)據(jù)經(jīng)過一系列的計(jì)算和操作構(gòu)件或模塊的變換形成輸出數(shù)據(jù)時(shí),可以應(yīng)用數(shù)據(jù)流體系結(jié)構(gòu)。換形成輸出數(shù)據(jù)時(shí),可以應(yīng)用數(shù)據(jù)流體系結(jié)構(gòu)。管道和過濾器結(jié)構(gòu)通過一組由管道連接的過濾器來變管道和過濾器結(jié)構(gòu)通過一組由管道連接的過濾器來變換數(shù)據(jù),并向下傳遞。換數(shù)據(jù),并向下傳遞。管道和過濾器結(jié)構(gòu)過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器多媒體服務(wù)系統(tǒng)結(jié)構(gòu)網(wǎng)網(wǎng) 絡(luò)絡(luò)目錄服務(wù)器目錄服務(wù)器目錄目錄視頻服務(wù)器視頻服務(wù)器電影文件電影文件圖片服務(wù)器圖片服務(wù)器圖片文件圖片文件web服務(wù)器服務(wù)器

16、超文本文件超文本文件客戶客戶1客戶客戶2客戶客戶n兩層c/s架構(gòu)允許用戶界面和應(yīng)用程序代碼直接訪問數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)存儲(chǔ)允許用戶界面和應(yīng)用程序代碼直接訪問數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)存儲(chǔ)的的api。應(yīng)用程序使用數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)模型,但是不。應(yīng)用程序使用數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)模型,但是不需要在該模型之上建立邏輯模型。當(dāng)開發(fā)中的系統(tǒng)是一個(gè)需要在該模型之上建立邏輯模型。當(dāng)開發(fā)中的系統(tǒng)是一個(gè)原型系統(tǒng)或者已經(jīng)知道其生命周期較短,期間原型系統(tǒng)或者已經(jīng)知道其生命周期較短,期間api不會(huì)發(fā)不會(huì)發(fā)生變化的時(shí)候,兩層應(yīng)用程序是理想的。典型情形下,這生變化的時(shí)候,兩層應(yīng)用程序是理想的。典型情形下,這種方式用于小型的應(yīng)用程序,它們的開發(fā)成本

17、和時(shí)間都很種方式用于小型的應(yīng)用程序,它們的開發(fā)成本和時(shí)間都很少。少。 三層c/s架構(gòu)相當(dāng)頻繁的重復(fù)使用是一個(gè)主要的設(shè)計(jì)考慮因素,在這種相當(dāng)頻繁的重復(fù)使用是一個(gè)主要的設(shè)計(jì)考慮因素,在這種情形下需要建立應(yīng)用程序模型以允許它的一部分被多個(gè)用情形下需要建立應(yīng)用程序模型以允許它的一部分被多個(gè)用戶界面查看組件重復(fù)使用。它有一個(gè)指導(dǎo)方針是,在應(yīng)用戶界面查看組件重復(fù)使用。它有一個(gè)指導(dǎo)方針是,在應(yīng)用程序需要相同數(shù)據(jù)的多個(gè)視圖的任何時(shí)候,開發(fā)者應(yīng)該考程序需要相同數(shù)據(jù)的多個(gè)視圖的任何時(shí)候,開發(fā)者應(yīng)該考慮使用三層方式代替兩層方式。慮使用三層方式代替兩層方式。 從兩層模型遷移到三層模型需要考慮的主要問題包括適當(dāng)從兩層模

18、型遷移到三層模型需要考慮的主要問題包括適當(dāng)?shù)木W(wǎng)絡(luò)資源的可用性和管理并發(fā)數(shù)據(jù)訪問的加鎖方案。的網(wǎng)絡(luò)資源的可用性和管理并發(fā)數(shù)據(jù)訪問的加鎖方案。 抽象機(jī)模型抽象機(jī)模型也稱為分層模型,是建立子系統(tǒng)的接口模抽象機(jī)模型也稱為分層模型,是建立子系統(tǒng)的接口模型。它把子系統(tǒng)組織成一系列的層次,每一層提供一型。它把子系統(tǒng)組織成一系列的層次,每一層提供一組服務(wù),每一層定義為一個(gè)抽象機(jī)。組服務(wù),每一層定義為一個(gè)抽象機(jī)。例如:網(wǎng)絡(luò)協(xié)議例如:網(wǎng)絡(luò)協(xié)議osi參考模型參考模型通通 信信 介介 質(zhì)質(zhì)應(yīng)用層應(yīng)用層表示層表示層會(huì)話層會(huì)話層傳輸層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層用戶用戶b應(yīng)用層應(yīng)用層表示層表示層會(huì)話

19、層會(huì)話層傳輸層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層用戶用戶a系統(tǒng)控制模型系統(tǒng)控制模型集中式控制模型集中式控制模型調(diào)用調(diào)用返回模型:這是一個(gè)自上而下的子過程模型??胤祷啬P停哼@是一個(gè)自上而下的子過程模型??刂剖加谙到y(tǒng)(程序)的頂層,在子系統(tǒng)(程序)調(diào)用過制始于系統(tǒng)(程序)的頂層,在子系統(tǒng)(程序)調(diào)用過程中,控制逐步傳遞到更低的層次中。該模型適用于順程中,控制逐步傳遞到更低的層次中。該模型適用于順序執(zhí)行的系統(tǒng)。序執(zhí)行的系統(tǒng)。管理者模型:這是一種適用于并發(fā)系統(tǒng)的模型。一個(gè)系管理者模型:這是一種適用于并發(fā)系統(tǒng)的模型。一個(gè)系統(tǒng)組件被指定為系統(tǒng)管理者,控制其他系統(tǒng)過程的啟動(dòng)、統(tǒng)組件被指定為系

20、統(tǒng)管理者,控制其他系統(tǒng)過程的啟動(dòng)、終止和協(xié)調(diào)。一個(gè)過程就是一個(gè)能和其他過程并發(fā)執(zhí)行終止和協(xié)調(diào)。一個(gè)過程就是一個(gè)能和其他過程并發(fā)執(zhí)行的子系統(tǒng)或模塊。的子系統(tǒng)或模塊。soa架構(gòu)服務(wù)提供者:服務(wù)提供者:一個(gè)可通過網(wǎng)絡(luò)尋址的實(shí)體,它一個(gè)可通過網(wǎng)絡(luò)尋址的實(shí)體,它接受和執(zhí)行來自使用者的請(qǐng)求。接受和執(zhí)行來自使用者的請(qǐng)求。它將自己的服務(wù)和接口契約發(fā)布它將自己的服務(wù)和接口契約發(fā)布到服務(wù)注冊(cè)中心,以便服務(wù)使用到服務(wù)注冊(cè)中心,以便服務(wù)使用者可以發(fā)現(xiàn)和訪問該服務(wù)。者可以發(fā)現(xiàn)和訪問該服務(wù)。 服務(wù)使用者:服務(wù)使用者:一個(gè)應(yīng)用程序、一個(gè)軟件模塊或一個(gè)應(yīng)用程序、一個(gè)軟件模塊或需要一個(gè)服務(wù)的另一個(gè)服務(wù)。需要一個(gè)服務(wù)的另一個(gè)服務(wù)

21、。它發(fā)起對(duì)注冊(cè)中心中的服務(wù)的查它發(fā)起對(duì)注冊(cè)中心中的服務(wù)的查詢,通過傳輸綁定服務(wù),并且執(zhí)詢,通過傳輸綁定服務(wù),并且執(zhí)行服務(wù)功能。行服務(wù)功能。服務(wù)使用者根據(jù)接口契約來執(zhí)行服務(wù)使用者根據(jù)接口契約來執(zhí)行服務(wù)。服務(wù)。服務(wù)注冊(cè)中心:服務(wù)注冊(cè)中心:服務(wù)發(fā)現(xiàn)的支持者;服務(wù)發(fā)現(xiàn)的支持者;它包含一個(gè)可用服務(wù)的存儲(chǔ)庫(kù),它包含一個(gè)可用服務(wù)的存儲(chǔ)庫(kù),并允許感興趣的服務(wù)使用者查找并允許感興趣的服務(wù)使用者查找服務(wù)提供者接口。服務(wù)提供者接口。服務(wù)注冊(cè)中心服務(wù)注冊(cè)中心服務(wù)消費(fèi)者服務(wù)消費(fèi)者服務(wù)提供者服務(wù)提供者注冊(cè)注冊(cè)發(fā)現(xiàn)發(fā)現(xiàn)調(diào)用調(diào)用并發(fā)系統(tǒng)的集中式控制模型系系 統(tǒng)統(tǒng) 控控 制制 器器故障處理器故障處理器用戶界面用戶界面?zhèn)鞲衅鬟M(jìn)程

22、傳感器進(jìn)程傳動(dòng)裝置進(jìn)程傳動(dòng)裝置進(jìn)程計(jì)算進(jìn)程計(jì)算進(jìn)程系統(tǒng)控制模型系統(tǒng)控制模型事件驅(qū)動(dòng)系統(tǒng)事件驅(qū)動(dòng)系統(tǒng)廣播模型:發(fā)生的事件廣播到所有子系統(tǒng),任何能處理廣播模型:發(fā)生的事件廣播到所有子系統(tǒng),任何能處理該事件的子系統(tǒng)都會(huì)響應(yīng)。該模型適用于基于網(wǎng)絡(luò)的分該事件的子系統(tǒng)都會(huì)響應(yīng)。該模型適用于基于網(wǎng)絡(luò)的分布式系統(tǒng)。布式系統(tǒng)。廣播模型中的子系統(tǒng)注冊(cè)其感興趣的特別事件廣播模型中的子系統(tǒng)注冊(cè)其感興趣的特別事件廣播模型的優(yōu)點(diǎn)是進(jìn)化比較簡(jiǎn)單廣播模型的優(yōu)點(diǎn)是進(jìn)化比較簡(jiǎn)單缺點(diǎn)是子系統(tǒng)都知道是否和什么時(shí)候處理事件,這可能會(huì)引缺點(diǎn)是子系統(tǒng)都知道是否和什么時(shí)候處理事件,這可能會(huì)引起沖突。起沖突。中斷驅(qū)動(dòng)模型:由中斷處理器對(duì)來自外

23、部的中斷進(jìn)行檢中斷驅(qū)動(dòng)模型:由中斷處理器對(duì)來自外部的中斷進(jìn)行檢測(cè),然后在其他組件中處理這些中斷。該模型適用于對(duì)測(cè),然后在其他組件中處理這些中斷。該模型適用于對(duì)定時(shí)有嚴(yán)格要求的實(shí)時(shí)系統(tǒng)。定時(shí)有嚴(yán)格要求的實(shí)時(shí)系統(tǒng)。只用在硬件實(shí)時(shí)系統(tǒng)中,要求對(duì)一些事件能做出及時(shí)響應(yīng)只用在硬件實(shí)時(shí)系統(tǒng)中,要求對(duì)一些事件能做出及時(shí)響應(yīng)總線架構(gòu)像水管一樣隨意接入像水管一樣隨意接入像像pci總線一樣即插即用總線一樣即插即用businessintelligenceservicesserviceregistryb2binteractionscollaborationtoolsportal serviceapplications

24、& data軟件的體系結(jié)構(gòu)模式并發(fā)性并發(fā)性系統(tǒng)必須以一種模擬并行的方式來操作多個(gè)任務(wù)系統(tǒng)必須以一種模擬并行的方式來操作多個(gè)任務(wù)操作系統(tǒng)進(jìn)程管理模式操作系統(tǒng)進(jìn)程管理模式任務(wù)調(diào)度器模式包括一組含有任務(wù)調(diào)度器模式包括一組含有tick()操作的活動(dòng)對(duì)象操作的活動(dòng)對(duì)象持久性持久性如果數(shù)據(jù)從創(chuàng)建它的進(jìn)程執(zhí)行以來一直存在,則該數(shù)據(jù)是持久性存如果數(shù)據(jù)從創(chuàng)建它的進(jìn)程執(zhí)行以來一直存在,則該數(shù)據(jù)是持久性存在的數(shù)據(jù)。在的數(shù)據(jù)。數(shù)據(jù)庫(kù)管理系統(tǒng)模式將數(shù)據(jù)庫(kù)管理系統(tǒng)模式將dbms的存儲(chǔ)和存取能力用于應(yīng)用系統(tǒng)的體的存儲(chǔ)和存取能力用于應(yīng)用系統(tǒng)的體系結(jié)構(gòu)中。系結(jié)構(gòu)中。應(yīng)用級(jí)的持久模式在應(yīng)用體系結(jié)構(gòu)中建立了持久性特征。應(yīng)用

25、級(jí)的持久模式在應(yīng)用體系結(jié)構(gòu)中建立了持久性特征。分布性分布性強(qiáng)調(diào)系統(tǒng)或系統(tǒng)中構(gòu)件或模塊在一個(gè)分布的環(huán)境中相互通信的方式。強(qiáng)調(diào)系統(tǒng)或系統(tǒng)中構(gòu)件或模塊在一個(gè)分布的環(huán)境中相互通信的方式。分布性問題有兩個(gè)元素:分布性問題有兩個(gè)元素:一是實(shí)體間連接方式一是實(shí)體間連接方式二是實(shí)體間通信的特性二是實(shí)體間通信的特性代理模式是一種普遍的體系結(jié)構(gòu)模式代理模式是一種普遍的體系結(jié)構(gòu)模式corba就是代理模式的一個(gè)范例就是代理模式的一個(gè)范例小結(jié)小結(jié)設(shè)計(jì)的基本原理和概念包括模塊化、抽象、體系結(jié)構(gòu)、設(shè)計(jì)的基本原理和概念包括模塊化、抽象、體系結(jié)構(gòu)、信息隱蔽、模塊獨(dú)立、逐步求精和重構(gòu)等。信息隱蔽、模塊獨(dú)立、逐步求精和重構(gòu)等。軟件

26、體系結(jié)構(gòu)提供了待建系統(tǒng)的整體視圖,它描述軟軟件體系結(jié)構(gòu)提供了待建系統(tǒng)的整體視圖,它描述軟件構(gòu)件或模塊的結(jié)構(gòu)和組織、構(gòu)件或模塊的性質(zhì)以及件構(gòu)件或模塊的結(jié)構(gòu)和組織、構(gòu)件或模塊的性質(zhì)以及他們之間的連接。他們之間的連接。第9章 結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)階段結(jié)構(gòu)化設(shè)計(jì)階段數(shù)據(jù)流設(shè)計(jì)方法數(shù)據(jù)流設(shè)計(jì)方法面向數(shù)據(jù)的設(shè)計(jì)面向數(shù)據(jù)的設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)案例分析案例分析結(jié)構(gòu)化設(shè)計(jì)概述結(jié)構(gòu)化設(shè)計(jì)概述結(jié)構(gòu)化設(shè)計(jì)方法(結(jié)構(gòu)化設(shè)計(jì)方法(structured design, sd)是基于模是基于模塊化、自頂向下細(xì)化、結(jié)構(gòu)化程序設(shè)計(jì)等程序設(shè)計(jì)技?jí)K化、自頂向下細(xì)化、結(jié)構(gòu)化程序設(shè)計(jì)等程序設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來的。術(shù)基礎(chǔ)

27、上發(fā)展起來的。結(jié)構(gòu)化設(shè)計(jì)方法用模塊結(jié)構(gòu)圖來表達(dá)程序模塊之間的結(jié)構(gòu)化設(shè)計(jì)方法用模塊結(jié)構(gòu)圖來表達(dá)程序模塊之間的關(guān)系。關(guān)系。軟件設(shè)計(jì)分為兩個(gè)階段:軟件設(shè)計(jì)分為兩個(gè)階段:概要設(shè)計(jì):面向數(shù)據(jù)流設(shè)計(jì)方法概要設(shè)計(jì):面向數(shù)據(jù)流設(shè)計(jì)方法詳細(xì)設(shè)計(jì):結(jié)構(gòu)化程序設(shè)計(jì)方法詳細(xì)設(shè)計(jì):結(jié)構(gòu)化程序設(shè)計(jì)方法 軟件結(jié)構(gòu)設(shè)計(jì)軟件結(jié)構(gòu)設(shè)計(jì)也稱總體設(shè)計(jì),確定軟件的結(jié)構(gòu)以及各組成軟件結(jié)構(gòu)設(shè)計(jì)也稱總體設(shè)計(jì),確定軟件的結(jié)構(gòu)以及各組成成分成分(子系統(tǒng)或模塊子系統(tǒng)或模塊)之間的相互關(guān)系。之間的相互關(guān)系。軟件結(jié)構(gòu)設(shè)計(jì)的主要任務(wù)是:軟件結(jié)構(gòu)設(shè)計(jì)的主要任務(wù)是:將系統(tǒng)劃分成模塊;將系統(tǒng)劃分成模塊;決定每個(gè)模塊的功能;決定每個(gè)模塊的功能;決定模塊的調(diào)用關(guān)

28、系;決定模塊的調(diào)用關(guān)系;決定模塊的界面,即模塊間傳遞的數(shù)據(jù)。決定模塊的界面,即模塊間傳遞的數(shù)據(jù)。軟件結(jié)構(gòu)設(shè)計(jì)階段的主要任務(wù)是通過數(shù)據(jù)流圖來確定系統(tǒng)軟件結(jié)構(gòu)設(shè)計(jì)階段的主要任務(wù)是通過數(shù)據(jù)流圖來確定系統(tǒng)的結(jié)構(gòu)圖。的結(jié)構(gòu)圖。在軟件結(jié)構(gòu)設(shè)計(jì)階段,結(jié)構(gòu)化設(shè)計(jì)主要采用面向數(shù)據(jù)流的在軟件結(jié)構(gòu)設(shè)計(jì)階段,結(jié)構(gòu)化設(shè)計(jì)主要采用面向數(shù)據(jù)流的設(shè)計(jì)方法。設(shè)計(jì)方法。軟件結(jié)構(gòu)設(shè)計(jì)過程軟件結(jié)構(gòu)設(shè)計(jì)過程設(shè)計(jì)供選擇的方案設(shè)計(jì)供選擇的方案選取合理的方案選取合理的方案推薦最佳方案推薦最佳方案功能分解和設(shè)計(jì)軟件結(jié)構(gòu)功能分解和設(shè)計(jì)軟件結(jié)構(gòu)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)制定軟件設(shè)計(jì)測(cè)試計(jì)劃制定軟件設(shè)計(jì)測(cè)試計(jì)劃編制設(shè)計(jì)文檔編制設(shè)計(jì)文檔審查和復(fù)審審查和復(fù)審

29、軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖(軟件結(jié)構(gòu)圖(structure chart, 簡(jiǎn)稱簡(jiǎn)稱sc)是軟件)是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個(gè)系統(tǒng)的功能實(shí)系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個(gè)系統(tǒng)的功能實(shí)現(xiàn)?,F(xiàn)。軟件結(jié)構(gòu)以層次表示程序的系統(tǒng)結(jié)構(gòu),即一種控軟件結(jié)構(gòu)以層次表示程序的系統(tǒng)結(jié)構(gòu),即一種控制的層次體系,并不表示軟件的具體過程。制的層次體系,并不表示軟件的具體過程。軟件結(jié)構(gòu)圖的主要元素有:軟件結(jié)構(gòu)圖的主要元素有:模塊模塊控制關(guān)系控制關(guān)系信息傳遞信息傳遞循環(huán)調(diào)用和選擇調(diào)用循環(huán)調(diào)用和選擇調(diào)用軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖的形態(tài)特征:軟件結(jié)構(gòu)圖的形態(tài)特征:深度:指結(jié)構(gòu)圖控制的層次,也是模塊的層數(shù)。深度:指結(jié)構(gòu)圖控制的層

30、次,也是模塊的層數(shù)。寬度:指一層中最大的模塊個(gè)數(shù)。寬度:指一層中最大的模塊個(gè)數(shù)。扇出:指一個(gè)模塊直接下屬模塊的個(gè)數(shù)。扇出:指一個(gè)模塊直接下屬模塊的個(gè)數(shù)。扇入:指一個(gè)模塊直接上屬模塊的個(gè)數(shù)。扇入:指一個(gè)模塊直接上屬模塊的個(gè)數(shù)。畫結(jié)構(gòu)圖應(yīng)注意的事項(xiàng):畫結(jié)構(gòu)圖應(yīng)注意的事項(xiàng):模塊不能重名。模塊不能重名。調(diào)用關(guān)系只能從上到下。調(diào)用關(guān)系只能從上到下。軟件結(jié)構(gòu)圖mnopqghicdatjklefbrs重構(gòu)重構(gòu)重構(gòu)是一種重新組織的技術(shù),可以簡(jiǎn)化構(gòu)件或模塊的重構(gòu)是一種重新組織的技術(shù),可以簡(jiǎn)化構(gòu)件或模塊的設(shè)計(jì)或編碼而無(wú)需改變其功能或行為。設(shè)計(jì)或編碼而無(wú)需改變其功能或行為。重構(gòu)是一種改進(jìn)程序內(nèi)部結(jié)構(gòu)但不改變代碼或設(shè)

31、計(jì)的重構(gòu)是一種改進(jìn)程序內(nèi)部結(jié)構(gòu)但不改變代碼或設(shè)計(jì)的外部行為。外部行為?!跋仁顾D(zhuǎn)起來,再使它快起來先使它轉(zhuǎn)起來,再使它快起來”。面向數(shù)據(jù)流設(shè)計(jì)面向數(shù)據(jù)流設(shè)計(jì)根據(jù)基本系統(tǒng)模型,數(shù)據(jù)信息必須以根據(jù)基本系統(tǒng)模型,數(shù)據(jù)信息必須以“外部外部”信息形信息形式進(jìn)入軟件系統(tǒng),經(jīng)過內(nèi)部處理以后再以式進(jìn)入軟件系統(tǒng),經(jīng)過內(nèi)部處理以后再以“外部外部”的的形式離開系統(tǒng)。形式離開系統(tǒng)。有三種數(shù)據(jù)流類型:有三種數(shù)據(jù)流類型:變換型數(shù)據(jù)流變換型數(shù)據(jù)流事務(wù)型數(shù)據(jù)流事務(wù)型數(shù)據(jù)流混合型數(shù)據(jù)流混合型數(shù)據(jù)流變換流信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部的形式變信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部的形式變換為內(nèi)部形式,進(jìn)行系統(tǒng)通過變換程序進(jìn)行加工

32、換為內(nèi)部形式,進(jìn)行系統(tǒng)通過變換程序進(jìn)行加工處理后在沿著輸出通路變換外部形式輸出。處理后在沿著輸出通路變換外部形式輸出。事務(wù)流數(shù)據(jù)沿著輸入通路到達(dá)一個(gè)調(diào)度模塊,調(diào)度模數(shù)據(jù)沿著輸入通路到達(dá)一個(gè)調(diào)度模塊,調(diào)度模塊根據(jù)輸入數(shù)據(jù)的類型的不同而選擇相應(yīng)的程塊根據(jù)輸入數(shù)據(jù)的類型的不同而選擇相應(yīng)的程序流程來執(zhí)行處理過程。序流程來執(zhí)行處理過程?;旌闲蛿?shù)據(jù)流在一個(gè)大型系統(tǒng)的在一個(gè)大型系統(tǒng)的dfd中,變換流和事務(wù)流往往會(huì)同中,變換流和事務(wù)流往往會(huì)同時(shí)出現(xiàn)。時(shí)出現(xiàn)。例如,在一個(gè)事務(wù)型的例如,在一個(gè)事務(wù)型的dfd中,分支動(dòng)作路徑上的信中,分支動(dòng)作路徑上的信息流也可能會(huì)體現(xiàn)出變換流的特征。息流也可能會(huì)體現(xiàn)出變換流的特征。

33、這種具有將事務(wù)流和變換流組合出現(xiàn),就是混合型數(shù)這種具有將事務(wù)流和變換流組合出現(xiàn),就是混合型數(shù)據(jù)流,簡(jiǎn)稱混合流。據(jù)流,簡(jiǎn)稱混合流?;旌闲蛿?shù)據(jù)流混合型數(shù)據(jù)流變換變換3變換變換2傳出傳出數(shù)據(jù)數(shù)據(jù)傳入傳入數(shù)據(jù)數(shù)據(jù)事務(wù)事務(wù)中心中心變換變換1結(jié)果結(jié)果面向數(shù)據(jù)流設(shè)計(jì)過程確定數(shù)據(jù)流類型確定數(shù)據(jù)流類型確定數(shù)據(jù)流的方向確定數(shù)據(jù)流的方向進(jìn)行變換或事務(wù)分析進(jìn)行變換或事務(wù)分析映射軟件結(jié)構(gòu)映射軟件結(jié)構(gòu)導(dǎo)出接口描述和數(shù)據(jù)導(dǎo)出接口描述和數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)復(fù)查復(fù)查進(jìn)入下一步詳細(xì)設(shè)計(jì)進(jìn)入下一步詳細(xì)設(shè)計(jì)面向數(shù)據(jù)流設(shè)計(jì)步驟設(shè)計(jì)步驟設(shè)計(jì)步驟復(fù)查并精化數(shù)據(jù)流圖。復(fù)查并精化數(shù)據(jù)流圖。初步分析:確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性。初步分析:確定

34、數(shù)據(jù)流圖具有變換特性還是事務(wù)特性。確定輸入流和輸出流的邊界,從而孤立出變換中心和事務(wù)中心。確定輸入流和輸出流的邊界,從而孤立出變換中心和事務(wù)中心。變換中心包括變換中心包括:輸入通道,輸出通路,處理過程輸入通道,輸出通路,處理過程事物中心包括:輸入通路,事物調(diào)度,可執(zhí)行程序流程事物中心包括:輸入通路,事物調(diào)度,可執(zhí)行程序流程完成完成“第一級(jí)分解第一級(jí)分解”。完成完成“第二級(jí)分解第二級(jí)分解”。使用設(shè)計(jì)度量和啟發(fā)規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步使用設(shè)計(jì)度量和啟發(fā)規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化。精化。在線考試系統(tǒng)(1)基本系統(tǒng)模型基本系統(tǒng)模型功能級(jí)模型功能級(jí)模型試題試題錄入錄入者者在線考

35、試系統(tǒng)在線考試系統(tǒng)考生考生試題信息試題信息試卷試卷答案答案試題庫(kù)試題庫(kù)試題試題錄入錄入者者試題信息試題信息生成生成試題試題組卷組卷考試考試考生考生考試信息考試信息試題試題考試信息考試信息試題試題試卷試卷答案答案評(píng)卷評(píng)卷系統(tǒng)系統(tǒng)答卷答卷考試考試信息信息錄入錄入者者初步分析變換處理變換處理生成試卷生成試卷組卷組卷事務(wù)處理事務(wù)處理考試考試在線考試系統(tǒng)(4)試題試題錄入錄入者者試題試題檢查檢查轉(zhuǎn)換轉(zhuǎn)換定制考試定制考試考試信息考試信息錄入者錄入者組卷組卷考生考生答題答題輸輸入入試試題題導(dǎo)導(dǎo)入入試試題題登錄登錄提交提交試題庫(kù)試題庫(kù)考試信息考試信息考生信息考生信息答卷信息答卷信息試題信息試題信息試題信息試題

36、信息試題信息試題信息試題信息試題信息試題試題試題試題考試信息考試信息試卷試卷考生信息考生信息考生信息考生信息答案答案考試考試狀態(tài)狀態(tài)考生信息考生信息變換中心試題生成試題生成輸入通道:界面輸入、文件導(dǎo)入輸入通道:界面輸入、文件導(dǎo)入輸出通路:導(dǎo)入數(shù)據(jù)庫(kù)輸出通路:導(dǎo)入數(shù)據(jù)庫(kù)處理過程:試題檢查和轉(zhuǎn)換處理過程:試題檢查和轉(zhuǎn)換定制考試定制考試輸入通道:界面輸入輸入通道:界面輸入輸出通路:導(dǎo)入數(shù)據(jù)庫(kù)輸出通路:導(dǎo)入數(shù)據(jù)庫(kù)處理過程:考試信息轉(zhuǎn)換(配置參數(shù),時(shí)間等)處理過程:考試信息轉(zhuǎn)換(配置參數(shù),時(shí)間等)組卷組卷輸入通道:數(shù)據(jù)庫(kù)檢索輸入通道:數(shù)據(jù)庫(kù)檢索輸出通路:試卷界面輸出通路:試卷界面處理過程:試題選擇處理過

37、程:試題選擇事務(wù)中心登錄登錄輸入通路:登錄界面輸入通路:登錄界面調(diào)度:登錄驗(yàn)證調(diào)度:登錄驗(yàn)證可執(zhí)行的程序流程可執(zhí)行的程序流程登錄考試系統(tǒng)登錄考試系統(tǒng)拒絕登錄拒絕登錄答題答題輸入通路:界面提交、時(shí)間提交輸入通路:界面提交、時(shí)間提交調(diào)度:答題控制調(diào)度:答題控制可執(zhí)行的程序流程可執(zhí)行的程序流程提交答案到服務(wù)器提交答案到服務(wù)器拒絕提交拒絕提交存儲(chǔ)答案于本地存儲(chǔ)答案于本地提交提交輸入通路:界面提交、時(shí)間提交輸入通路:界面提交、時(shí)間提交調(diào)度:提交控制調(diào)度:提交控制可執(zhí)行的程序流程可執(zhí)行的程序流程提交考試信息到服務(wù)器提交考試信息到服務(wù)器拒絕提交拒絕提交重新提交重新提交存儲(chǔ)本地存儲(chǔ)本地變換中心第一級(jí)分解分解方

38、法分解方法對(duì)于輸入通路設(shè)置輸入控制模塊(對(duì)于輸入通路設(shè)置輸入控制模塊(ca)變換處理設(shè)置控制模塊(變換處理設(shè)置控制模塊(ct)對(duì)于輸出通路輸出信息產(chǎn)生和顯示模塊(對(duì)于輸出通路輸出信息產(chǎn)生和顯示模塊(ce)試題生成試題生成試題生成獲取試題信息獲取試題信息試題轉(zhuǎn)換試題轉(zhuǎn)換試題存儲(chǔ)試題存儲(chǔ)輸入控制輸入控制變換控制變換控制輸出控制輸出控制定制考試定制考試定制考試獲取考試信息獲取考試信息考試信息轉(zhuǎn)換考試信息轉(zhuǎn)換考試信息存儲(chǔ)考試信息存儲(chǔ)組卷組卷組卷從試題庫(kù)查詢?cè)囶}從試題庫(kù)查詢?cè)囶}試題選擇和組織試題選擇和組織試卷輸出顯示試卷輸出顯示變換中心第二級(jí)分解輸入模塊細(xì)化輸入模塊細(xì)化數(shù)據(jù)獲取數(shù)據(jù)獲取數(shù)據(jù)檢查數(shù)據(jù)檢查數(shù)

39、據(jù)傳遞數(shù)據(jù)傳遞數(shù)據(jù)封裝數(shù)據(jù)封裝控制模塊細(xì)化控制模塊細(xì)化數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理數(shù)據(jù)格式轉(zhuǎn)換數(shù)據(jù)格式轉(zhuǎn)換數(shù)據(jù)內(nèi)部屬性生成數(shù)據(jù)內(nèi)部屬性生成輸出模塊細(xì)化輸出模塊細(xì)化輸出格式轉(zhuǎn)換輸出格式轉(zhuǎn)換顯示格式設(shè)置顯示格式設(shè)置數(shù)據(jù)傳遞數(shù)據(jù)傳遞輸出數(shù)據(jù)生成輸出數(shù)據(jù)生成試題生成試題生成試題生成獲取試題信息獲取試題信息試題轉(zhuǎn)換試題轉(zhuǎn)換試題存儲(chǔ)試題存儲(chǔ)從界從界面讀面讀取信取信息息文文件件選選擇擇檢查輸檢查輸入信息入信息的完整的完整性和有性和有效性效性文件文件格式格式檢查檢查文件內(nèi)文件內(nèi)容的完容的完整性和整性和有效性有效性檢查檢查試題試題格式格式轉(zhuǎn)換轉(zhuǎn)換試題試題編號(hào)編號(hào)生成生成數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)鏈接鏈接數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)sql生成生成數(shù)據(jù)

40、庫(kù)數(shù)據(jù)庫(kù)sql執(zhí)行執(zhí)行界面錄界面錄入試題入試題導(dǎo)入外部導(dǎo)入外部試題試題定制考試定制考試定制考試獲取考試信息獲取考試信息考試信息轉(zhuǎn)換考試信息轉(zhuǎn)換考試信息存儲(chǔ)考試信息存儲(chǔ)從界面從界面讀取信讀取信息息檢查輸入檢查輸入信息的完信息的完整性和整性和有效性有效性考試配考試配置參數(shù)置參數(shù)生成生成考試考試編號(hào)編號(hào)生成生成數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)鏈接鏈接數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)sql生成生成數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)sql執(zhí)行執(zhí)行事務(wù)中心第一級(jí)分解輸入控制模塊輸入控制模塊事務(wù)處理模塊事務(wù)處理模塊事務(wù)調(diào)度模塊事務(wù)調(diào)度模塊事務(wù)傳遞模塊事務(wù)傳遞模塊登錄登錄登錄獲取登獲取登錄信息錄信息登錄信登錄信息驗(yàn)證息驗(yàn)證登錄登錄考試考試系統(tǒng)系統(tǒng)拒絕拒絕登錄登錄登錄登錄

41、調(diào)度調(diào)度提交考試提交考試提交考試界面界面提交提交時(shí)間時(shí)間提交提交提交提交控制控制提交到提交到服務(wù)器服務(wù)器拒絕拒絕提交提交重新重新提交提交存儲(chǔ)存儲(chǔ)本地本地提交提交調(diào)度調(diào)度考試考試終止終止繼續(xù)繼續(xù)考試考試事務(wù)中心第二級(jí)分解輸入控制模塊輸入控制模塊數(shù)據(jù)獲取數(shù)據(jù)獲取數(shù)據(jù)檢查數(shù)據(jù)檢查數(shù)據(jù)傳遞數(shù)據(jù)傳遞數(shù)據(jù)封裝數(shù)據(jù)封裝事務(wù)處理模塊事務(wù)處理模塊事務(wù)處理步驟分解事務(wù)處理步驟分解事務(wù)調(diào)度模塊事務(wù)調(diào)度模塊調(diào)度監(jiān)控調(diào)度監(jiān)控調(diào)度分配調(diào)度分配事務(wù)傳遞模塊事務(wù)傳遞模塊事務(wù)通信事務(wù)通信事務(wù)現(xiàn)場(chǎng)處理事務(wù)現(xiàn)場(chǎng)處理事務(wù)后續(xù)處理事務(wù)后續(xù)處理登錄登錄登錄獲取登獲取登錄信息錄信息登錄信登錄信息驗(yàn)證息驗(yàn)證登錄登錄考試考試系統(tǒng)系統(tǒng)拒絕拒絕登

42、錄登錄登錄登錄調(diào)度調(diào)度輸入輸入用戶用戶名和名和口令口令輸入輸入有效有效性檢性檢查查用戶用戶名檢名檢查查口令口令驗(yàn)證驗(yàn)證檢查檢查寫登寫登錄日錄日志志進(jìn)入進(jìn)入考試考試界面界面記錄記錄考生考生登錄登錄信息信息錯(cuò)誤錯(cuò)誤提示提示界面界面重新重新登錄登錄提交考試提交考試提交考試界面界面提交提交時(shí)間時(shí)間提交提交提交提交控制控制提交到提交到服務(wù)器服務(wù)器拒絕拒絕提交提交重新重新提交提交存儲(chǔ)存儲(chǔ)本地本地提交提交調(diào)度調(diào)度考試考試終止終止繼續(xù)繼續(xù)考試考試取系取系統(tǒng)時(shí)統(tǒng)時(shí)鐘鐘定時(shí)定時(shí)器器傳輸傳輸?shù)椒椒?wù)器務(wù)器存儲(chǔ)存儲(chǔ)考試考試信息信息拒絕拒絕狀態(tài)狀態(tài)判定判定拒絕拒絕提交提交提示提示記錄記錄提交提交狀態(tài)狀態(tài)重新重新提交提

43、交提示提示創(chuàng)建創(chuàng)建本地本地文件文件寫考寫考試信試信息到息到文件文件面向數(shù)據(jù)流設(shè)計(jì)小結(jié)變換流和事務(wù)流分析變換流和事務(wù)流分析變換模塊和事務(wù)模塊的劃分變換模塊和事務(wù)模塊的劃分模塊的分解模塊的分解數(shù)據(jù)庫(kù)設(shè)計(jì)邏輯設(shè)計(jì)物理設(shè)計(jì)邏輯設(shè)計(jì)邏輯設(shè)計(jì)的任務(wù),就是采取一定的策略,按照若干準(zhǔn)則將概念模型轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)所能接受的一組關(guān)系模式,并利用規(guī)范化的理論和方法對(duì)這組關(guān)系模式進(jìn)行處理。關(guān)系模式設(shè)計(jì)關(guān)系模式規(guī)范化模式的評(píng)價(jià)與改進(jìn)關(guān)系模式設(shè)計(jì)e-r圖是由實(shí)體、屬性和聯(lián)系組成的,而關(guān)系數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的結(jié)果是一組關(guān)系模式的集合。所以將e-r圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是將實(shí)體、屬性和聯(lián)系轉(zhuǎn)換成關(guān)系模式。在轉(zhuǎn)換中要遵循

44、以下原則:一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的鍵就是關(guān)系的鍵。一個(gè)聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式,與該聯(lián)系相連的各實(shí)體的鍵以及聯(lián)系的屬性均轉(zhuǎn)換為該關(guān)系的屬性。該關(guān)系的鍵有三種情況:如果聯(lián)系為1:1,則每個(gè)實(shí)體的鍵都是關(guān)系的候選鍵如果聯(lián)系為1: n ,則n端實(shí)體的鍵是關(guān)系的鍵如果聯(lián)系為n : m,則各實(shí)體鍵的組合是關(guān)系的鍵教務(wù)管理系統(tǒng)學(xué)生課程教師課表成績(jī)關(guān)系模式規(guī)范化應(yīng)用規(guī)范化理論對(duì)上述產(chǎn)生的關(guān)系的邏輯模式進(jìn)行初步優(yōu)化,以減少乃至消除關(guān)系模式中存在的各種異常,改善完整性、一致性和存儲(chǔ)效率。確定范式級(jí)別實(shí)施規(guī)范化處理物理設(shè)計(jì)數(shù)據(jù)庫(kù)最終要存儲(chǔ)在物理設(shè)備上。對(duì)于給定的邏輯數(shù)據(jù)模型,選取

45、一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,稱為數(shù)據(jù)庫(kù)物理設(shè)計(jì)。物理設(shè)計(jì)的任務(wù)是為了有效地實(shí)現(xiàn)邏輯模式,確定所采取的存儲(chǔ)策略。此階段是以邏輯設(shè)計(jì)的結(jié)果作為輸入,結(jié)合具體dbms的特點(diǎn)與存儲(chǔ)設(shè)備特性進(jìn)行設(shè)計(jì),選定數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法。確定物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫(kù)中主要指存取方法和存儲(chǔ)結(jié)構(gòu)評(píng)價(jià)物理結(jié)構(gòu),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率確定物理結(jié)構(gòu)存儲(chǔ)記錄結(jié)構(gòu)的設(shè)計(jì)聚簇索引訪問方法的設(shè)計(jì)緩存索引數(shù)據(jù)存放位置的設(shè)計(jì)分區(qū)陣列備份系統(tǒng)配置的設(shè)計(jì)數(shù)據(jù)庫(kù)安全和維護(hù)設(shè)計(jì)安全策略用戶機(jī)制授權(quán)機(jī)制加密機(jī)制備份策略增量備份完全備份介質(zhì)備份什么是詳細(xì)設(shè)計(jì)針對(duì)一個(gè)個(gè)模塊的設(shè)計(jì),是過程設(shè)計(jì)、算法設(shè)針對(duì)一個(gè)個(gè)模塊的設(shè)計(jì),是

46、過程設(shè)計(jì)、算法設(shè)計(jì)。計(jì)。詳細(xì)設(shè)計(jì)采用結(jié)構(gòu)化程序設(shè)計(jì)方法詳細(xì)設(shè)計(jì)采用結(jié)構(gòu)化程序設(shè)計(jì)方法.詳細(xì)設(shè)計(jì)僅僅是設(shè)計(jì)出程序的詳細(xì)設(shè)計(jì)僅僅是設(shè)計(jì)出程序的“藍(lán)圖藍(lán)圖”,是編,是編碼的先導(dǎo),但不是編寫程序。碼的先導(dǎo),但不是編寫程序。設(shè)計(jì)高效率的程序是基于良好的數(shù)據(jù)結(jié)構(gòu)與算設(shè)計(jì)高效率的程序是基于良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是基于編程小技巧法,而不是基于編程小技巧結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)的理念是在結(jié)構(gòu)化程序設(shè)計(jì)的理念是在20世紀(jì)世紀(jì)60年代,由年代,由dijkstra等人提出并加以完善的。等人提出并加以完善的。結(jié)構(gòu)化的程序一般只需要用三種基本的邏輯結(jié)構(gòu)就能結(jié)構(gòu)化的程序一般只需要用三種基本的邏

47、輯結(jié)構(gòu)就能實(shí)現(xiàn)。這三種基本邏輯結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和實(shí)現(xiàn)。這三種基本邏輯結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù),它采用自頂結(jié)構(gòu)化程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù),它采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。詳細(xì)設(shè)計(jì)的任務(wù)每個(gè)模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)每個(gè)模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)每個(gè)模塊的控制算法每個(gè)模塊的控制算法內(nèi)部接口描述內(nèi)部接口描述為每一模塊設(shè)計(jì)出一組測(cè)試用例(為每一模塊設(shè)計(jì)出一組測(cè)試用例(test cases),因?yàn)?,因?yàn)樵敿?xì)設(shè)計(jì)人員對(duì)模塊的功能、邏輯、接口等最了解。詳細(xì)設(shè)計(jì)人員對(duì)模塊的功能、邏輯、接口

48、等最了解。評(píng)審評(píng)審詳細(xì)設(shè)計(jì)原則每一種數(shù)據(jù)結(jié)構(gòu)與算法都有其時(shí)間、空間的開銷和收每一種數(shù)據(jù)結(jié)構(gòu)與算法都有其時(shí)間、空間的開銷和收益。益。 與開銷和收益有關(guān)的是時(shí)間與開銷和收益有關(guān)的是時(shí)間空間的權(quán)衡??臻g的權(quán)衡。 程序員應(yīng)該充分地了解一些常用的數(shù)據(jù)結(jié)構(gòu)與算法,程序員應(yīng)該充分地了解一些常用的數(shù)據(jù)結(jié)構(gòu)與算法,避免不必要的重復(fù)設(shè)計(jì)工作。避免不必要的重復(fù)設(shè)計(jì)工作。 數(shù)據(jù)結(jié)構(gòu)與算法為應(yīng)用服務(wù)。數(shù)據(jù)結(jié)構(gòu)與算法為應(yīng)用服務(wù)。 結(jié)構(gòu)程序設(shè)計(jì)的類型經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì)經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì)seq; if-then-else; do-while 擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì)擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì)增加增加case; do-until修正的結(jié)構(gòu)程

49、序設(shè)計(jì)修正的結(jié)構(gòu)程序設(shè)計(jì)允許允許continue; break過程設(shè)計(jì)過程設(shè)計(jì)在概要設(shè)計(jì)完成之后進(jìn)行,它是詳細(xì)設(shè)計(jì)階過程設(shè)計(jì)在概要設(shè)計(jì)完成之后進(jìn)行,它是詳細(xì)設(shè)計(jì)階段應(yīng)該完成的主要任務(wù)段應(yīng)該完成的主要任務(wù)過程設(shè)計(jì)方法過程設(shè)計(jì)方法流程圖流程圖n-s圖圖pad圖圖判定表判定表hipo圖圖流程圖結(jié)構(gòu)(a)順序結(jié)構(gòu)順序結(jié)構(gòu)(b)if-then-else型選擇型選擇(c)do-while型循環(huán)結(jié)構(gòu)型循環(huán)結(jié)構(gòu)(d)do-until型循環(huán)結(jié)構(gòu)型循環(huán)結(jié)構(gòu)(e)多分支結(jié)構(gòu)多分支結(jié)構(gòu)程序結(jié)構(gòu)(續(xù))(d)(e)程序流程圖的標(biāo)準(zhǔn)符號(hào)試錯(cuò)限制試錯(cuò)限制流程圖的實(shí)例流程圖的實(shí)例-系統(tǒng)登錄系統(tǒng)登錄口口令令驗(yàn)驗(yàn)證證用用戶戶名名驗(yàn)驗(yàn)證證開始開始輸入輸入用戶名用戶名查詢用戶名查詢用戶名是否存在是否存在該用戶名該用戶名輸入輸入口令口令根據(jù)用戶根據(jù)用戶名比對(duì)口令

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論