系統(tǒng)概要設(shè)計中的構(gòu)架設(shè)計_第1頁
系統(tǒng)概要設(shè)計中的構(gòu)架設(shè)計_第2頁
系統(tǒng)概要設(shè)計中的構(gòu)架設(shè)計_第3頁
系統(tǒng)概要設(shè)計中的構(gòu)架設(shè)計_第4頁
系統(tǒng)概要設(shè)計中的構(gòu)架設(shè)計_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第三章 系統(tǒng)概要設(shè)計中的架構(gòu)設(shè)計系統(tǒng)分析的目的就是把需求轉(zhuǎn)換為系統(tǒng)的設(shè)計,分析與設(shè)計是一個前后相互關(guān)聯(lián)的過程。通過對本章內(nèi)容的學(xué)習(xí),讀者將被引入軟件開發(fā)的設(shè)計階段。軟件系統(tǒng)的設(shè)計一般分為概要設(shè)訓(xùn)和詳細(xì)設(shè)計,概要設(shè)計中最重要的工作是系統(tǒng)的架構(gòu)設(shè)計。從軟件系統(tǒng)的開發(fā)實現(xiàn)角度來看,系統(tǒng)的架構(gòu)設(shè)計主要可以分為邏輯架構(gòu)設(shè)計與物理架構(gòu)設(shè)計兩個緊密相關(guān)的設(shè)計內(nèi)容。系統(tǒng)的邏輯架構(gòu)設(shè)計結(jié)果定義了應(yīng)用系統(tǒng)中的基本邏輯組成元素,以及這些邏輯元素之間的關(guān)系,這在UML中主要通過架構(gòu)包圖來表示;系統(tǒng)的物理架構(gòu)設(shè)計主要關(guān)注“目標(biāo)程序及其依賴的運(yùn)行庫和系統(tǒng)軟件”如何安裝或部署到客戶最終環(huán)境的物理主機(jī)中以及如何部署主機(jī)(如各

2、種形式的服務(wù)器主機(jī))和網(wǎng)絡(luò)配置來保證軟件系統(tǒng)的可靠性、可伸縮性和穩(wěn)定運(yùn)行性等方面的要求這主要通過UML中的部署圖來表示。在系統(tǒng)的架構(gòu)設(shè)計中,應(yīng)盡可能地分析清楚系統(tǒng)中哪些邏輯元素是穩(wěn)定的需求,哪些是經(jīng)常變化的需求。以便在進(jìn)行系統(tǒng)設(shè)計時,能夠?qū)④浖到y(tǒng)的核心部分建立在穩(wěn)定的需求上。本章主要介紹系統(tǒng)概要設(shè)計中與“架構(gòu)設(shè)計”有關(guān)的內(nèi)容,并通過州上商城項目中系統(tǒng)架構(gòu)設(shè)計的示例來闡述與架構(gòu)設(shè)計有關(guān)的思想、原則和方法以及模式的具體應(yīng)用。3.1 概要設(shè)計3.1.1 軟件系統(tǒng)設(shè)計概述1軟件系統(tǒng)設(shè)計概述(1)什么是系統(tǒng)設(shè)計?系統(tǒng)設(shè)計就是通過某種特定的平臺,完成軟件系統(tǒng)的整體功能(也就是把軟件需求轉(zhuǎn)變?yōu)檐浖木唧w方

3、案)的實現(xiàn)。從工程管理的角度來看,軟件設(shè)計分為如下兩個階段:概要設(shè)計和詳細(xì)設(shè)計。圖3.1為概要設(shè)計和詳細(xì)設(shè)計的具體工作內(nèi)容。圖3. l概要設(shè)計和詳細(xì)設(shè)計的具體工作內(nèi)容概要設(shè)計的工作重點在于進(jìn)行系統(tǒng)的靜態(tài)結(jié)構(gòu)或者高層架構(gòu)設(shè)汁;詳細(xì)設(shè)計的工作重點在于系統(tǒng)的用戶界面、動態(tài)結(jié)構(gòu)設(shè)計以及測試計劃的制定等。(2)系統(tǒng)的概要設(shè)計。將軟件系統(tǒng)的功能性需求和非功能性需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu),并合理地設(shè)計和規(guī)劃出組成軟件系統(tǒng)的物理元素:程序、數(shù)據(jù)庫、過程、文件等內(nèi)容。分析設(shè)計人員可以利用UML中的包圖來建立和體現(xiàn)軟件系統(tǒng)的體系架構(gòu)。圖3.2所示為某圖書館管理系統(tǒng)項目中的架構(gòu)包圖。圖3.2某圖書館管理系統(tǒng)

4、項目中的架構(gòu)包圖從上面的架構(gòu)包圖中,很明顯地能夠看出,該系統(tǒng)采用標(biāo)準(zhǔn)的4層架構(gòu)實現(xiàn):表示層、控制層、業(yè)務(wù)處理層和數(shù)據(jù)訪問層;并日還能夠了解每層中各個核心的組件及其關(guān)系。(3)系統(tǒng)的詳細(xì)設(shè)計(重點是系統(tǒng)的動態(tài)結(jié)構(gòu)設(shè)計)。通過對軟件系統(tǒng)結(jié)構(gòu)表示的進(jìn)一步細(xì)化和完善,最后獲得軟件系統(tǒng)的詳細(xì)數(shù)據(jù)結(jié)構(gòu)和算法、關(guān)鍵性問題的解決等方面的解決方案。為此,分析設(shè)計人員可以利用UML中的類圖建立相應(yīng)的體系結(jié)構(gòu),同時再輔以UML中的4種動態(tài)分析圖(順序圖、活動圖、狀態(tài)圖和協(xié)作圖),進(jìn)一步地描述和體現(xiàn)系統(tǒng)中各個用例的實現(xiàn)行為。圖3.3所示為某圖書館管理系統(tǒng)項目中業(yè)務(wù)層的類圖。圖3.3某圖書館管理系統(tǒng)項目中業(yè)務(wù)層的類圖在

5、分析階段,軟件系統(tǒng)的開發(fā)者通過建立特定的軟件系統(tǒng)模型來表示真實世界中的問題,以便理解業(yè)務(wù)過程以及這個過程中需要用到的各種信息(業(yè)務(wù)數(shù)據(jù)和數(shù)據(jù)之間的關(guān)系)。圖3.4所示為某圖書館管理系統(tǒng)項目中管理員的各種可能的活動狀態(tài)圖示。圖3.4某圖書館管理系統(tǒng)項目中管理員的各種可能的活動狀態(tài)在具體實施系統(tǒng)的分析時,首先要學(xué)會分解問題,把復(fù)雜軟件系統(tǒng)中的各種信息和需求進(jìn)行綜合考慮,然后分解成多個易于理解的小問題。最后通過建立軟件系統(tǒng)的需求模型來對問題領(lǐng)域進(jìn)行組織、構(gòu)造和模擬,并且編制出相應(yīng)的技術(shù)文檔。在對軟件系統(tǒng)進(jìn)行分析建模的過程中,必須要邀請用戶方的有關(guān)人員參與,并且需要用戶進(jìn)一步地解釋這些需求。其目的是驗

6、證開發(fā)者建立的軟件模型是否是正確的、合理的、可行的。因為軟件系統(tǒng)的設(shè)計本身,實際上也是個建模的過程,它把分析階段得出的信息,也就是需求模型,轉(zhuǎn)換為稱為解決方案的設(shè)計模型。圖3.5所示為某圖書館管理系統(tǒng)項目中的各個組件的圖示,利用組件圖能夠幫助客戶理解最終的系統(tǒng)結(jié)構(gòu),并使開發(fā)人員的實現(xiàn)工作有一個明確的目標(biāo);同時組件圖還能幫助開發(fā)組中的其他人員(如幫助文檔人員)理解系統(tǒng)。圖3.5某圖書館管理系統(tǒng)項目中的各個組件的圖示2為什么要進(jìn)行軟件系統(tǒng)的設(shè)計(1)進(jìn)行軟件系統(tǒng)設(shè)計的主要原因。因為建立的軟件系統(tǒng)邏輯模型中的用例及用例圖并不是分析模型,或者說不能夠滿足系統(tǒng)的分析需要。它們只是形成分析模型中的素材,而

7、對于用例的分析,開發(fā)者可以構(gòu)造出一個分析模型,但是很少有開發(fā)者直接根據(jù)這個分析模型去完成軟件系統(tǒng)的程序編程實現(xiàn)的。為什么呢?開發(fā)者首先應(yīng)該了解這樣一個事實,從用例及用例圖得到的分析模型,只表達(dá)了軟件系統(tǒng)中的一些關(guān)鍵性概念,而不能表達(dá)軟件系統(tǒng)中的性能和系統(tǒng)的外觀(如用戶界面GUI)等方面的內(nèi)容。系統(tǒng)分析模型對于最終的軟件系統(tǒng)結(jié)構(gòu)設(shè)計來說,又往往過于簡單和粗糙,而在軟件開發(fā)中倡導(dǎo)的“組件復(fù)用”、“模塊分離”和“面向接口編程實現(xiàn)”等原則在這個系統(tǒng)分析模型中都不能被考慮。因此,軟件系統(tǒng)的分析設(shè)計人員有必要再對前面構(gòu)造出的分析模型進(jìn)一步地設(shè)計和完善,以最終構(gòu)造出開發(fā)者期望的軟件系統(tǒng)發(fā)計模型。以利于指導(dǎo)軟

8、件系統(tǒng)的編程實現(xiàn)。(2)進(jìn)行軟件系統(tǒng)設(shè)計的目的。對軟件系統(tǒng)進(jìn)行全面設(shè)計的主要目的是指明一種易轉(zhuǎn)化成軟件系統(tǒng)功能代碼的解決方案,是對系統(tǒng)分析工作的進(jìn)一步細(xì)化和具體實現(xiàn)。也就是進(jìn)一步細(xì)化分析階段提取的各個類(包括其操作和屬性),并H增加新的類以處理諸如系統(tǒng)中涉及的數(shù)據(jù)庫系統(tǒng)、用戶接口、與其他設(shè)備的通信、控制和驅(qū)動其他的設(shè)備等技術(shù)領(lǐng)域的問題。3系統(tǒng)設(shè)計的基本要求(1)系統(tǒng)分析和系統(tǒng)設(shè)計兩者之間應(yīng)該是相互合作的。系統(tǒng)分析是面向問題的,是明確和了解問題的過程,重在理解和翻譯,靈活性一般比較高;而系統(tǒng)設(shè)計則是面向解決方案的,是排除技術(shù)困難和解決問題的過程,重在精化和適應(yīng),受約束性和限制條件一般比較多。從整

9、體上看,分析和設(shè)計是不同的,在分析階段關(guān)注的是對需求的描述和理解,而在設(shè)計階段,主要考慮的是具體的技術(shù)實現(xiàn)方案。它們是保障問題和針對該問題的解決方案趨于合理和有效的基本動力。(2)在進(jìn)行軟件系統(tǒng)設(shè)計時應(yīng)該注意的要點。應(yīng)該考慮能否使用重復(fù)的體系結(jié)構(gòu)模式或者重用成熟的系統(tǒng)架構(gòu)。也就是要考慮本系統(tǒng)能否達(dá)到在體系結(jié)構(gòu)級別上的軟件重用,即能否在不同的軟件體系結(jié)構(gòu)中,使用同一個體系結(jié)構(gòu)。比如,人們經(jīng)常提及的客戶服務(wù)器模式的C/S體系結(jié)構(gòu)和瀏覽器服務(wù)器模式的B/S體系結(jié)構(gòu)等的具體應(yīng)用問題。體系結(jié)構(gòu)從更高的層面上應(yīng)該考慮的問題主要體現(xiàn)在“不變”的因素上。軟件系統(tǒng)的體系結(jié)構(gòu)一般應(yīng)關(guān)注應(yīng)用系統(tǒng)中的設(shè)計模式,更加體

10、現(xiàn)在通過技術(shù)解決這些業(yè)務(wù)差異所帶來的影響。比如,關(guān)注是否是分布式應(yīng)用程序、系統(tǒng)分層是如何設(shè)計和實現(xiàn)的,也關(guān)注系統(tǒng)的性能和安全性等方面的要求是如何滿足的。為了能夠達(dá)到該設(shè)計目標(biāo),軟件系統(tǒng)的設(shè)計者必須要了解和分離系統(tǒng)中的“不變”和“可變”部分,然后將它們分離開。對“不變”部分或者是穩(wěn)定的部分,盡可能地加以重用。4軟件設(shè)計中的“3W”原則軟件設(shè)計既是面對軟件工程的具體應(yīng)用技術(shù),同時也是聚焦于大批開發(fā)者相互協(xié)作結(jié)果的藝術(shù),成功的軟件系統(tǒng)產(chǎn)品應(yīng)該來自于合理的系統(tǒng)設(shè)計。什么是合理的系統(tǒng)設(shè)計呢?軟件系統(tǒng)的開發(fā)者在進(jìn)行軟件系統(tǒng)開發(fā)時,最需要考慮的問題就是他們開發(fā)和設(shè)計出的軟件系統(tǒng)或者產(chǎn)品必須滿足客戶企業(yè)發(fā)展戰(zhàn)

11、略規(guī)劃的需求,并且能夠幫助企業(yè)解決實際經(jīng)營中的問題,提高本企業(yè)在同行業(yè)中的競爭力。一個合理的軟件系統(tǒng)的設(shè)計,應(yīng)該遵守軟件設(shè)計中的“3w”原則。(1)Who(為誰而設(shè)計,應(yīng)該明確軟件系統(tǒng)的真正用戶是誰)。為誰設(shè)計表達(dá)的是軟件系統(tǒng)的開發(fā)者必須認(rèn)真研究客戶企業(yè)的業(yè)務(wù)領(lǐng)域、研究企業(yè)本身的工作特點,從而對于企業(yè)本身的業(yè)務(wù)規(guī)則和流程有深刻的理解,最后形成針對這個企業(yè)業(yè)務(wù)經(jīng)營狀態(tài)的解決方案。(2)What(要解決用戶在應(yīng)用系統(tǒng)時的哪些問題,功能有哪些?性能又有哪些?)。要解決用戶的什么問題,表達(dá)的是開發(fā)者必須把企業(yè)存在的問題提取出來,分析研究哪些問題可以用信息化技術(shù)或者特定的軟件系統(tǒng)和工具解決;同時還應(yīng)該搞

12、清楚,企業(yè)應(yīng)用了該信息化技術(shù)以后,企業(yè)的業(yè)務(wù)流程需要進(jìn)行的更改,以及這些更改帶給企業(yè)的正面和負(fù)面影響。(3)Why(為什么要解決這些問題?將這些問題解決后,能否為用戶帶來價值、降低開發(fā)方的成本等)。為什么要解決這些用戶問題,表達(dá)的是如何幫助企業(yè)產(chǎn)生可度量的價值,而這些價值是在研究企業(yè)目前存在的問題的基礎(chǔ)上產(chǎn)生的,沒有這些價值的產(chǎn)生,對軟件系統(tǒng)的投資是沒有意義的。價值不可度量,企業(yè)領(lǐng)導(dǎo)者就不可能積極地支持應(yīng)用該軟件系統(tǒng)或者開發(fā)出某套軟件系統(tǒng)。另外,還要注意的是設(shè)計必須是便于用戶使用的。減少系統(tǒng)維護(hù)和培訓(xùn)資源的消耗,而且系統(tǒng)應(yīng)操作簡單、應(yīng)用方便。“3W”原則的本質(zhì),就是要求軟件系統(tǒng)的設(shè)計者圍繞“用

13、戶”而不是圍繞“開發(fā)者”或者“時髦的技術(shù)”來開展軟件系統(tǒng)的設(shè)計和開發(fā)工作。因此滿足“用戶的需求、便于用戶的使用,同時又能使開發(fā)出的軟件系統(tǒng)在應(yīng)用新技術(shù)方面盡可能簡單相應(yīng)地降低開發(fā)成本”,這就是軟件系統(tǒng)的開發(fā)者應(yīng)該追求的設(shè)計目標(biāo)。軟件系統(tǒng)設(shè)計過程中的各項活動,其實就是權(quán)衡“利與弊”的過程,設(shè)計人員需要在“簡單”與“復(fù)雜”之間、“功能實現(xiàn)”與“系統(tǒng)性能”之間、一種“技術(shù)方案”與另一種也可行的“技術(shù)方案”之間進(jìn)行權(quán)衡。因此,好的設(shè)計方案,一定是“中庸”的設(shè)計。5軟件系統(tǒng)常用的設(shè)計方法(1)面向過程的設(shè)計方法。面向過程設(shè)計方法的基礎(chǔ)建立在3種能夠構(gòu)成結(jié)構(gòu)化程序的邏輯構(gòu)造方面,順序、選擇和重復(fù)上;并且面

14、向過程的設(shè)計方法采用的是“自頂向下、逐步精化”的瀑布式設(shè)計方法,由于瀑布式設(shè)計方法是按“自頂而下”的順序進(jìn)行的,這就要求設(shè)計者在一開始就要對系統(tǒng)需要解決的各個問題有全面的、周密的了解。(2)面向?qū)ο蟮脑O(shè)計方法。面向?qū)ο蟮脑O(shè)計方法主要定義系統(tǒng)中各種可能類型的對象,并對每種類型的對象進(jìn)行細(xì)化,以找出對象之間的關(guān)系;面向?qū)ο蟮脑O(shè)計方法關(guān)注的是消息和響應(yīng)機(jī)制。3.1.2 面向?qū)ο笤O(shè)計方法1面向?qū)ο笤O(shè)計方法(1)面向?qū)ο笤O(shè)計方法的特點。在面向?qū)ο笤O(shè)計(Object-Oriented Design,OOD)方法中,可以充分利用對象具有的抽象性、封裝性、繼承性、多態(tài)性等特性,同時面向?qū)ο笤O(shè)計方法是一種“自下

15、而上”的設(shè)計方法,這與面向過程的設(shè)計方法中的“自上而下”剛好相反。另外,面向?qū)ο笤O(shè)計方法的最基本的概念是類、職責(zé)、狀態(tài)、角色等,及與這些概念相關(guān)的耦合度、聚合度、可重用性、可擴(kuò)展性、可維護(hù)性等。(2)“自下而上”的設(shè)計方法的優(yōu)點是能夠形成一種螺旋上升的軟件開發(fā)方式。不像面向過程式設(shè)計那樣,在設(shè)計的開始階段就需要明確整個軟件系統(tǒng)本身,面向?qū)ο蟮脑O(shè)計往往從問題的一部分(局部)著手,一點一點地構(gòu)建整個軟件系統(tǒng)的各個模塊。隨著開發(fā)者在開發(fā)過程中逐步加深對軟件系統(tǒng)需求的理解,開發(fā)者將分階段和分層次地添加對這些新功能的具體實現(xiàn)。這些新的理解以及開發(fā)中遇到的需求變化都會再作用到軟件系統(tǒng)開發(fā)本身(也包括設(shè)計階

16、段),從而形成一種螺旋式上升的開發(fā)方式和開發(fā)過程。在這種開發(fā)方式中,對于已有的系統(tǒng)設(shè)計或者部分編程實現(xiàn)的代碼,只需要進(jìn)行局部修改或者調(diào)整以體現(xiàn)系統(tǒng)的變化即可。2面向?qū)ο笤O(shè)計方法與面向過程設(shè)計方法的最根本的區(qū)別(1)面向?qū)ο蟮脑O(shè)計方法將整個軟件系統(tǒng)看成對象集。面向?qū)ο蟮脑O(shè)計方法把軟件系統(tǒng)看成是一起工作來完成某項任務(wù)的對象集合,對象是軟件系統(tǒng)中對消息做出響應(yīng)的事物。對象之間的關(guān)系體現(xiàn)問題之問的關(guān)系,對象中的屬性體現(xiàn)問題的特征,對象中的方法體現(xiàn)問題的行為或者功能服務(wù)。在面向?qū)ο蟮脑O(shè)計中產(chǎn)生的各個邏輯對象,其實就是對軟件系統(tǒng)所在問題域中各個問題的映射,設(shè)計的結(jié)果是有指導(dǎo)意義的。(2)面向?qū)ο笤O(shè)計方法關(guān)

17、注的核心。面向?qū)ο笤O(shè)計方法中關(guān)注的不是它該做什么(這在面向?qū)ο蟮姆治鲋幸呀?jīng)明確),而是它如何做出反應(yīng),也就是對消息的響應(yīng),這是與面向過程方法的根本不同點。由于面向?qū)ο蠓椒ò褜ο罂闯绍浖到y(tǒng)對消息做出響應(yīng)的事物,這種與面向過程完全不同的看待計算機(jī)軟件系統(tǒng)的方法,必然會構(gòu)造出完全不同的分析、設(shè)計和編程實現(xiàn)方式。(3)在面向?qū)ο笤O(shè)計(當(dāng)然也包括編程實現(xiàn))中更多地看重類之間的關(guān)系。從面向?qū)ο蟮慕嵌葋砜锤鱾€對象之間的關(guān)系時,一般有“關(guān)聯(lián)”、“繼承”和“內(nèi)聚”等形式。面向?qū)ο缶幊痰倪^程就是將各個類按以上的各種關(guān)系組合在一起,這些關(guān)系本身都非常簡單,不過組合在一起卻能提供強(qiáng)大的設(shè)計能力。例如例31的代碼示例

18、體現(xiàn)了客戶和訂單之間的關(guān)聯(lián)關(guān)系,因為每個訂單對應(yīng)特定的客戶,每個客戶對應(yīng)一些特定的訂單。例3-1 體現(xiàn)了客戶和訂單之間關(guān)聯(lián)關(guān)系的代碼示例。 Public class UserInfo Private ArrayList Orders; 其他的成員定義,在此加以省略 Public class Order private UserInfo someOneUser; 其他的成員定義,在此加以省略 面向過程中的結(jié)構(gòu)化設(shè)計歷來備受冷落的主要原因就是軟件系統(tǒng)的需求和系統(tǒng)的設(shè)計之間存在一定的分離和鴻溝,因為在結(jié)構(gòu)化設(shè)計中的模塊和模塊之間的關(guān)系,被緊緊地局限于信息流,這限制了對模塊之間眾多關(guān)系(比如繼承和內(nèi)聚

19、關(guān)系)的表達(dá),也無法體現(xiàn)模塊和模塊之間其他的眾多關(guān)系,包含各種各樣的結(jié)構(gòu)、行為、依賴、包含(在結(jié)構(gòu)化設(shè)計中這種關(guān)系隱含在分層中)、繼承、關(guān)聯(lián)關(guān)系等。(4)面向?qū)ο蟮脑O(shè)計是適應(yīng)性過程,而面向過程的設(shè)計是預(yù)測的。面向?qū)ο笤O(shè)計更多地將重點放在“職責(zé)”的劃分、“變化點”的隔離、“交互機(jī)制”的確定等問題上,并且面向?qū)ο蟮脑O(shè)計認(rèn)為變化是不可避免的驅(qū)動因素,整個設(shè)計是在迭代變更中完成的。3面向?qū)ο笤O(shè)計的應(yīng)用場合(1)設(shè)計中強(qiáng)調(diào)的是軟件系統(tǒng)的重用和重構(gòu)。面向?qū)ο蟮脑O(shè)計,更傾向于建立一種靈活多變、便于修改、便于升級的軟件系統(tǒng),設(shè)計中強(qiáng)調(diào)的是軟件系統(tǒng)中各種組件的重用和重構(gòu)。(2)設(shè)計中強(qiáng)調(diào)的是軟件系統(tǒng)的可擴(kuò)展性。

20、由于面向?qū)ο笤O(shè)計技術(shù)的成熟和不斷發(fā)展,面向?qū)ο笤O(shè)計已經(jīng)形成了一系列的重要設(shè)計原則和方法、設(shè)計模式。這些原則和方法可以大大提高系統(tǒng)的設(shè)計質(zhì)量;從而使得應(yīng)用面向?qū)ο笤O(shè)計的方法設(shè)計和建立一個大型的、分布式的、可升級的、可維護(hù)的而且安全的軟件系統(tǒng)成為可能。3.1.3 系統(tǒng)設(shè)計中的概要設(shè)計1概要設(shè)計又稱為系統(tǒng)的結(jié)構(gòu)設(shè)計(1)在什么時候應(yīng)該進(jìn)行系統(tǒng)的概要設(shè)計。在系統(tǒng)需求相對比較明確并對需求進(jìn)行域建模之后,接著進(jìn)行系統(tǒng)的概要設(shè)計。概要設(shè)計對隨后進(jìn)行的編程實現(xiàn)、單元測試和集成測試、系統(tǒng)安裝部署實施和維護(hù)工作都將起到關(guān)鍵性的影響作用。通過對系統(tǒng)進(jìn)行概要設(shè)計,將系統(tǒng)開發(fā)過程中“做什么”的邏輯模型變換為“如何做”的

21、物理模型。(2)系統(tǒng)概要設(shè)計的重要性系統(tǒng)分析過程中產(chǎn)生的分析模型和系統(tǒng)設(shè)計過程中產(chǎn)生的設(shè)計模型,兩者應(yīng)該是交錯的,并且是迭代進(jìn)行的;概要設(shè)計的重要性,主要體現(xiàn)在它是把系統(tǒng)需求轉(zhuǎn)化為軟件系統(tǒng)的實現(xiàn)過程中最重要的開發(fā)環(huán)節(jié),并且系統(tǒng)概要設(shè)計的優(yōu)劣會在根本上決定軟件系統(tǒng)的整體質(zhì)量和性能。2系統(tǒng)概要設(shè)計中涉及的主要內(nèi)容(1)制定本軟件系統(tǒng)的開發(fā)規(guī)范。制定本軟件系統(tǒng)的各種開發(fā)規(guī)范是項目小組今后共同開發(fā)的基礎(chǔ),有了開發(fā)規(guī)范和程序模塊之間、項目成員彼此之間的接口規(guī)則、方式和方法,開發(fā)團(tuán)隊中的各個成員就有了共同的工作語言、工作平臺,使整個軟件開發(fā)工作可以協(xié)調(diào)、有序地進(jìn)行。制定規(guī)范涉及的主要內(nèi)容如下:代碼體系、模

22、塊之間的接口和命名規(guī)則。規(guī)定設(shè)計文檔的編制標(biāo)準(zhǔn)。規(guī)定與硬件、操作系統(tǒng)的接口規(guī)約和命名規(guī)則。(2)體系結(jié)構(gòu)設(shè)計(架構(gòu)設(shè)計)。體系結(jié)構(gòu)是對復(fù)雜軟件系統(tǒng)的一種抽象,如客戶/服務(wù)器(C/S)和瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器(B/W/S)結(jié)構(gòu)等的應(yīng)用。同時在架構(gòu)設(shè)計中還應(yīng)該考慮采用框架技術(shù)的形式和服務(wù)器的平臺類型等內(nèi)容。(3)劃分系統(tǒng)中的各個模塊并進(jìn)行組件類的設(shè)計。根據(jù)用戶的需求,實現(xiàn)從功能上來劃分各個功能模塊。在模塊設(shè)計中應(yīng)該遵守功能獨立的單一職責(zé)原則(Single-Responsibility Principle,SRP)。因為功能獨立的模塊可以降低開發(fā)、測試、維護(hù)等階段的代價,而且被重用的可能

23、性更高。(4)數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計。設(shè)計高效率的程序是基于良好的數(shù)據(jù)結(jié)構(gòu)與算法的,而不是基于編程技巧的。因為數(shù)據(jù)結(jié)構(gòu)與算法就是一類數(shù)據(jù)的表示及其相關(guān)的操作。確定軟件系統(tǒng)涉及的文件系統(tǒng)的結(jié)構(gòu),以及數(shù)據(jù)庫中數(shù)據(jù)訪問的模式,進(jìn)行數(shù)據(jù)完整性和安全性的設(shè)計,并確定輸入、輸出文件的詳細(xì)數(shù)據(jù)結(jié)構(gòu)是本階段需要考慮的問題。(5)數(shù)據(jù)庫的邏輯設(shè)計。根據(jù)模塊設(shè)計和劃分出的各個實體類、實體類之間的關(guān)系、實體類中各個成員的屬性等確定出數(shù)據(jù)庫表中的字段和各個字段的數(shù)據(jù)類型。構(gòu)造數(shù)據(jù)庫的表結(jié)構(gòu)必須遵循一定的規(guī)則。在關(guān)系數(shù)據(jù)庫中,這種規(guī)則就是范式。一般說來,數(shù)據(jù)庫只需滿足到第3范式(3NF)即可通常被認(rèn)為在性能、擴(kuò)展性和數(shù)據(jù)完整性方面達(dá)到了比較好的平衡。(6)其他如可靠性等方面的設(shè)計。軟件系統(tǒng)在運(yùn)行過程中,為了能夠適應(yīng)環(huán)境的變化和用戶新的功能要求,需經(jīng)常對軟件進(jìn)行修正、完善。在軟件開發(fā)的一開始就要確定軟件可靠性和其他質(zhì)量指標(biāo),考慮相應(yīng)措施,使得軟件易于修改和易于維護(hù)。3概要設(shè)計中涉及系統(tǒng)設(shè)計的基本原則軟件系統(tǒng)設(shè)計的主要任務(wù)是什么?如何正確地進(jìn)行系統(tǒng)各個子模塊的功能劃分?在模塊劃分時要遵守的原則和方法、設(shè)計的目標(biāo)是什么?評價一個軟件系統(tǒng)設(shè)計的優(yōu)劣,主要考查如下指標(biāo)是否達(dá)到或者滿足。(1)先進(jìn)性。在設(shè)計思想、系統(tǒng)構(gòu)架、采用技術(shù)和選用平臺上均要有一定的先進(jìn)性、前瞻性和擴(kuò)充性。特別要考慮一定時期內(nèi)業(yè)務(wù)的增長和應(yīng)用的變化

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論