




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件的總體設(shè)計(jì)
與詳細(xì)設(shè)計(jì)軟件的總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)通??煞譃榭傮w設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段??傮w設(shè)計(jì)的重點(diǎn)是決定系統(tǒng)怎么做的問題,而詳細(xì)設(shè)計(jì)的重點(diǎn)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)要求的系統(tǒng)。前者是后者的前提和基礎(chǔ),后者是前者的延伸和細(xì)化。二者并重,才能有效地進(jìn)行軟件設(shè)計(jì)。本章主要介紹了軟件總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)的基本概念、任務(wù)和原則,簡要論述了總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)的方法與工具。2.1軟件的總體設(shè)計(jì)軟件的總體設(shè)計(jì),作為軟件設(shè)計(jì)過程中的首要階段,對軟件設(shè)計(jì)的全過程產(chǎn)生重大的影響,為軟件詳細(xì)設(shè)計(jì)提供框架和方向??傮w設(shè)計(jì)從需求出發(fā),系統(tǒng)而全面地構(gòu)架軟件設(shè)計(jì)的總體輪廓,并將系統(tǒng)劃分成若干個(gè)模塊,以及描述各模塊之間的關(guān)聯(lián)。軟件總體設(shè)計(jì)質(zhì)量的高低,直接關(guān)系到整個(gè)軟件設(shè)計(jì)的成敗。2.1.1
軟件總體設(shè)計(jì)的概念、任務(wù)和目標(biāo)1.軟件總體設(shè)計(jì)概念的涵義軟件總體設(shè)計(jì)又稱概要設(shè)計(jì),是指總體上系統(tǒng)構(gòu)架軟件設(shè)計(jì)所應(yīng)包含的組成要素的設(shè)計(jì)方法??傮w設(shè)計(jì)的基本任務(wù)是將系統(tǒng)劃分成模塊結(jié)構(gòu)形式,決定每個(gè)模塊要完成的功能,明確每個(gè)模塊之間的調(diào)用關(guān)系,決定模塊界面,定義數(shù)據(jù)傳遞關(guān)系。對同一用戶需求,可以提出多個(gè)設(shè)計(jì)方案,然后在一定的限制條件下,從中選出一個(gè)方案并能使所期望的目標(biāo),較大限度地得到滿足??傮w設(shè)計(jì)階段的主要產(chǎn)品是模塊說明書,包括模塊結(jié)構(gòu)圖和每個(gè)模塊的描述。前者指系統(tǒng)的模塊組成以及模塊間的調(diào)用關(guān)系;后者包含功能、界面、過程和注釋。功能是指描述每個(gè)模塊的輸入/輸出及其功能。界面是指參數(shù)的傳遞關(guān)系。過程是指模塊內(nèi)部實(shí)現(xiàn),它通常在該模塊的詳細(xì)設(shè)計(jì)完成后才補(bǔ)充進(jìn)來。注釋是指主要說明對該模塊的一些限制和約束。2.軟件總體設(shè)計(jì)的任務(wù)(1)軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)按照結(jié)構(gòu)化理論,實(shí)現(xiàn)一個(gè)系統(tǒng)目標(biāo)需要程序和數(shù)據(jù)。所以,必須設(shè)計(jì)組成這個(gè)系統(tǒng)的所有程序結(jié)構(gòu)和數(shù)據(jù)庫文件的具體方法。有關(guān)這一問題,已在本篇第1章中做了介紹。將一個(gè)復(fù)雜的系統(tǒng)按功能劃分成模塊。確定每個(gè)模塊的功能。確定模塊之間的調(diào)用關(guān)系。確定模塊之間傳遞的信息。評價(jià)模塊結(jié)構(gòu)的質(zhì)量。(2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)在結(jié)構(gòu)化理論軟件系統(tǒng)中,尤其是對于大型數(shù)據(jù)處理的軟件系統(tǒng),除了系統(tǒng)結(jié)構(gòu)設(shè)計(jì)外,數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)是很重要的。有關(guān)這一問題,本篇第1章中也亦做了介紹。(3)網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)如果采用的是網(wǎng)絡(luò)環(huán)境,則要進(jìn)行網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)。(4)軟件總體設(shè)計(jì)文檔軟件總體設(shè)計(jì)文檔是總體設(shè)計(jì)階段結(jié)束時(shí)提交的技術(shù)文檔。軟件設(shè)計(jì)文檔可分為總體設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書和數(shù)據(jù)庫設(shè)計(jì)說明書。(5)評審在該階段,對設(shè)計(jì)部分是否完整地實(shí)現(xiàn)了需求中規(guī)定的功能、性能等要求,設(shè)計(jì)方案的可行性、關(guān)鍵的處理及內(nèi)外部接口定義的正確性、有效性以及各部分之間的一致性等,都要一一進(jìn)行評審。3.軟件總體設(shè)計(jì)的目標(biāo)軟件設(shè)計(jì)的最終目標(biāo)是要取得最佳方案。一般來講,好的軟件有如下三個(gè)特點(diǎn):能夠按照指定的要求進(jìn)行工作,功能、性能都符合指定的要求;軟件是可維護(hù)的,可方便地進(jìn)行修改;軟件不只是代碼,還有一套配置齊全的文檔。好的軟件一般來自于最佳的設(shè)計(jì)方案。所謂“最佳”方案是指在所有候選方案中,節(jié)省開發(fā)費(fèi)用、降低資源消耗、縮短開發(fā)時(shí)間、能夠贏得較高的生產(chǎn)效率、較高的可靠性和可維護(hù)性的方案。2.1.2
軟件總體設(shè)計(jì)的原則1.模塊化原則2.抽象化原則3.信息隱蔽原則2.1.3
軟件總體設(shè)計(jì)的方法與步驟1.軟件總體設(shè)計(jì)方法從系統(tǒng)設(shè)計(jì)角度來看,軟件總體設(shè)計(jì)常見的方法有兩類:一類是以數(shù)據(jù)流圖為基礎(chǔ)構(gòu)造模塊的結(jié)構(gòu)化程序設(shè)計(jì)方法;另一類是以對象、類、繼承和通信為基礎(chǔ)的面向?qū)ο笤O(shè)計(jì)方法。2.軟件總體設(shè)計(jì)的步驟軟件總體設(shè)計(jì)的典型過程,包括以下7個(gè)步驟:(1)選取合理的體系結(jié)構(gòu)方案(2)推薦最佳方案(3)系統(tǒng)模塊設(shè)計(jì)(4)數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)(5)交互設(shè)計(jì)(6)編寫文檔(7)審查和復(fù)審2.1.4
總體設(shè)計(jì)中的模塊劃分選取體系結(jié)構(gòu)與模塊劃分有很強(qiáng)的關(guān)聯(lián),實(shí)際上,在選取一個(gè)確定的體系結(jié)構(gòu)的同時(shí),在宏觀上就已經(jīng)明確:系統(tǒng)被劃分成幾個(gè)模塊,每個(gè)模塊應(yīng)具有什么功能,模塊間傳遞的信息是什么,模塊應(yīng)該放在體系結(jié)構(gòu)的哪個(gè)位置。在選取體系結(jié)構(gòu)時(shí),還要考慮開發(fā)環(huán)境。2.1.4
總體設(shè)計(jì)中的模塊劃分1.模塊劃分的策略一個(gè)大的軟件系統(tǒng)的所有功能不可能都用一個(gè)模塊來實(shí)現(xiàn),人的處理能力也限制了模塊不能太大太復(fù)雜。將一個(gè)大的軟件系統(tǒng),用幾個(gè)模塊來協(xié)作實(shí)現(xiàn),每個(gè)模塊實(shí)現(xiàn)一部分功能,保證每個(gè)功能都用相應(yīng)的模塊來實(shí)現(xiàn),將系統(tǒng)劃分成模塊就是把大的復(fù)雜的問題分解成許多容易解決的小問題,這就是大事化小、分而治之的思想,是人類對待復(fù)雜問題時(shí)采用的應(yīng)對策略。究竟將系統(tǒng)劃分成幾個(gè)模塊才好?哪些功能放在一個(gè)模塊內(nèi)較好?模塊間如何組合成系統(tǒng)?模塊間的調(diào)用關(guān)系是什么樣的?模塊間傳遞的信息及其結(jié)構(gòu)如何?模塊如何與用戶界面相關(guān)?這些都是與模塊劃分相關(guān)的問題,是模塊劃分必須解決的問題,是設(shè)計(jì)階段的難點(diǎn),模塊劃分的好壞決定了系統(tǒng)設(shè)計(jì)的質(zhì)量。不幸的是,雖然有許多指導(dǎo)如何進(jìn)行模塊劃分的原則方法,但模塊劃分最終還是依賴于設(shè)計(jì)者個(gè)人的經(jīng)驗(yàn)和能力,是設(shè)計(jì)者綜合素質(zhì)的體現(xiàn)。模塊的好壞沒有絕對的標(biāo)準(zhǔn),一般來說模塊設(shè)計(jì)追求高內(nèi)聚、低耦合。也就是選定一種體系結(jié)構(gòu),能從宏觀上將系統(tǒng)劃分成多個(gè)高內(nèi)聚、低耦合的模塊。2.1.4
總體設(shè)計(jì)中的模塊劃分1.模塊劃分的策略下面介紹幾個(gè)模塊內(nèi)聚與耦合的度量原則。內(nèi)聚是一個(gè)模塊內(nèi)部各成分之間相關(guān)聯(lián)程度的度量。耦合是模塊之間相依賴程度的度量。內(nèi)聚和耦合是密切相關(guān)的,與其他模塊之間存在強(qiáng)耦合的模塊通常意味著弱內(nèi)聚,而強(qiáng)內(nèi)聚的模塊通常意味著與其他模塊之間存在弱耦合。2.1.4
總體設(shè)計(jì)中的模塊劃分2.模塊的內(nèi)聚強(qiáng)度內(nèi)聚按強(qiáng)度從低到高有以下幾種類型:(1)偶然內(nèi)聚如果一個(gè)模塊的各成分之間毫無關(guān)系,則稱為偶然內(nèi)聚。(2)邏輯內(nèi)聚幾個(gè)邏輯上相關(guān)的功能被放在同一模塊中,則稱為邏輯內(nèi)聚。如一個(gè)模塊讀取各種不同類型的外設(shè)輸入,盡管邏輯內(nèi)聚比偶然內(nèi)聚合理一些,但邏輯內(nèi)聚的模塊各成分在功能上并無關(guān)系,即使局部功能的修改有時(shí)也會(huì)影響全局,因此對這類模塊的修改也比較困難。(3)時(shí)間內(nèi)聚如果一個(gè)模塊完成的功能必須在同一時(shí)間內(nèi)執(zhí)行(如系統(tǒng)初始化);但這些功能只是因?yàn)闀r(shí)間因素關(guān)聯(lián)在一起,則稱為時(shí)間內(nèi)聚;2.1.4
總體設(shè)計(jì)中的模塊劃分2.模塊的內(nèi)聚強(qiáng)度內(nèi)聚按強(qiáng)度從低到高有以下幾種類型:(4)過程內(nèi)聚如果一個(gè)模塊內(nèi)部的處理成分是相關(guān)的,而且這些處理必須以特定的次序執(zhí)行,則稱為過程內(nèi)聚。(5)通信內(nèi)聚如果一個(gè)模塊的所有成分都操作同一數(shù)據(jù)集或生成同一數(shù)據(jù)集,則稱為通信內(nèi)聚。(6)順序內(nèi)聚如果一個(gè)模塊的各個(gè)成分和同一個(gè)功能密切相關(guān),而且一個(gè)成分的輸出作為另一個(gè)成分的輸入,則稱為順序內(nèi)聚。(7)功能內(nèi)聚模塊的所有成分對于完成單一的功能是必須的,則稱為功能內(nèi)聚。2.1.4
總體設(shè)計(jì)中的模塊劃分3.模塊的耦合強(qiáng)度耦合的強(qiáng)度依賴于以下4個(gè)因素:一個(gè)模塊對另一個(gè)模塊的調(diào)用;一個(gè)模塊向另一個(gè)模塊傳遞的數(shù)據(jù)量;一個(gè)模塊施加到另一個(gè)模塊的控制的多少;模塊之間接口的復(fù)雜程度。耦合按從強(qiáng)到弱的順序可分為以下幾種類型:(1)內(nèi)容耦合當(dāng)一個(gè)模塊直接修改或操作另一個(gè)模塊中的數(shù)據(jù),直接轉(zhuǎn)入另一個(gè)模塊,一個(gè)模塊有多個(gè)入口,或者兩個(gè)模塊共用一部分代碼時(shí),就發(fā)生了內(nèi)容耦合。應(yīng)該盡可能地避免此種耦合。(2)公共耦合兩個(gè)以上的模塊共同引用一個(gè)全局?jǐn)?shù)據(jù)項(xiàng)稱為公共耦合。(3)控制耦合一個(gè)模塊在界面上傳遞一個(gè)信號(如開關(guān)值、標(biāo)志量等)控制另一個(gè)模塊,接收信號模塊的動(dòng)作根據(jù)信號值進(jìn)行調(diào)整,稱為控制耦合。(4)標(biāo)記耦合模塊間通過參數(shù)傳遞復(fù)雜的內(nèi)部數(shù)據(jù)結(jié)構(gòu),稱為標(biāo)記耦合。此數(shù)據(jù)結(jié)構(gòu)的變化將使相關(guān)的模塊發(fā)生變化。(5)數(shù)據(jù)耦合模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù),稱為數(shù)據(jù)耦合。(6)非直接耦合模塊間沒有信息傳遞時(shí),屬于非直接耦合。如果模塊間必須存在耦合,就盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,堅(jiān)決避免使用內(nèi)容耦合。2.1.5
軟件總體設(shè)計(jì)文件與復(fù)審總體要設(shè)計(jì)完成,這一階段應(yīng)交付的文件包括:1.總體設(shè)計(jì)說明書總體設(shè)計(jì)階段的文件主要是總體設(shè)計(jì)說明書??傮w設(shè)計(jì)說明書又稱為程序系統(tǒng)設(shè)計(jì)說明書。編制說明書的目的,是出于對程序系統(tǒng)的設(shè)計(jì)考慮,包括程序系統(tǒng)的基本處理流程、程序系統(tǒng)的組織結(jié)構(gòu)、功能分配、模塊劃分、接口設(shè)計(jì)、運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,以便為程序的詳細(xì)設(shè)計(jì)打下基礎(chǔ)。2.1.5
軟件總體設(shè)計(jì)文件與復(fù)審第一章引言1.1編寫目的1.2背景1.3定義1.4參考資料第二章總體設(shè)計(jì)2.1需求規(guī)定2.2運(yùn)行環(huán)境2.3基本設(shè)計(jì)概念和處理流程2.4結(jié)構(gòu)2.5功能需求與程序的關(guān)系2.6人工處理過程2.7尚未解決的問題第三章接口設(shè)計(jì)3.1用戶接口3.2外部接口3.3內(nèi)部接口第四章運(yùn)行設(shè)計(jì)4.1運(yùn)行模塊組合4.2運(yùn)行控制4.3運(yùn)行時(shí)間第五章系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)5.1邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)5.2物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)5.3數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系第六章系統(tǒng)出錯(cuò)處理設(shè)計(jì)6.1出錯(cuò)信息6.2補(bǔ)救措施6.2.1后備技術(shù)6.2.2降效技術(shù)6.2.3恢復(fù)及再啟動(dòng)技術(shù)6.3系統(tǒng)維護(hù)設(shè)計(jì)2.1.5
軟件總體設(shè)計(jì)文件與復(fù)審2.總體設(shè)計(jì)的復(fù)審總體設(shè)計(jì)的復(fù)審集中在軟件的頂層結(jié)構(gòu)設(shè)計(jì)和需求設(shè)計(jì)。復(fù)審應(yīng)該有下列人員參加:個(gè)別的結(jié)構(gòu)設(shè)計(jì)負(fù)責(zé)人和設(shè)計(jì)文檔的作者、個(gè)別的課題負(fù)責(zé)人和行政負(fù)責(zé)人、對開發(fā)任務(wù)進(jìn)行技術(shù)監(jiān)督的軟件工程師、技術(shù)專家和其他方面的代表。設(shè)計(jì)復(fù)審是一個(gè)非常有用的、有可能發(fā)揮的工序。2.2軟件的詳細(xì)設(shè)計(jì)1.軟件詳細(xì)設(shè)計(jì)的概念總體設(shè)計(jì)階段以比較抽象概括的方式提出了解決問題的辦法;而詳細(xì)設(shè)計(jì)階段的任務(wù),是將解決問題的辦法進(jìn)行具體化。詳細(xì)設(shè)計(jì)主要是針對程序開發(fā)部分來說的,但這個(gè)階段不是真正編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。這種規(guī)格說明的作用類似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍(lán)圖,包含所必需的基本細(xì)節(jié),程序員可以根據(jù)其寫出實(shí)際的程序代碼。詳細(xì)設(shè)計(jì)是將總體設(shè)計(jì)的框架內(nèi)容具體化、明細(xì)化,將總體設(shè)計(jì)轉(zhuǎn)化為可以操作的軟件模型。在實(shí)際項(xiàng)目進(jìn)行的過程中,這個(gè)過程可以省略,主要是根據(jù)項(xiàng)目的具體情況和項(xiàng)目要求而定,可以有詳細(xì)設(shè)計(jì),也可以直接按照總體設(shè)計(jì)進(jìn)行編碼。詳細(xì)設(shè)計(jì)主要是保證編碼的順利進(jìn)行,可以預(yù)先掃清編碼過程中的障礙,提高代碼的質(zhì)量和編碼的效率??梢愿鶕?jù)項(xiàng)目的具體情況,將詳細(xì)設(shè)計(jì)過程與總體設(shè)計(jì)過程合在一起,或者將詳細(xì)設(shè)計(jì)過程與編碼過程合在一起。詳細(xì)設(shè)計(jì)的目標(biāo)不僅僅是邏輯上要正確地實(shí)現(xiàn)模塊的功能,更重要的是設(shè)計(jì)出的處理過程應(yīng)該盡可能簡明易懂。詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終程序代碼的質(zhì)量。衡量程序的質(zhì)量不僅要看邏輯是否正確、性能是否滿足要求,更主要的是要看它是否容易閱讀和理解。2.2軟件的詳細(xì)設(shè)計(jì)2.軟件詳細(xì)設(shè)計(jì)的任務(wù)軟件詳細(xì)設(shè)計(jì)的基本任務(wù)如下:①數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。②物理設(shè)計(jì)。對數(shù)據(jù)庫進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫的物理結(jié)構(gòu)。③算法設(shè)計(jì)??梢杂媚撤N圖形、表格、語言等工具將每個(gè)模塊處理過程的詳細(xì)算法描述出來。④界面設(shè)計(jì)??梢圆捎米址脩艚缑嬖O(shè)計(jì)、圖形用戶界面和多媒體人機(jī)界面設(shè)計(jì)。⑤其他設(shè)計(jì)。根據(jù)軟件系統(tǒng)的類型,還可能要進(jìn)行以下設(shè)計(jì):代碼設(shè)計(jì)、輸入/輸出格式設(shè)計(jì)、人機(jī)對話設(shè)計(jì)、網(wǎng)絡(luò)設(shè)計(jì)。⑥編寫設(shè)計(jì)說明書。詳細(xì)設(shè)計(jì)說明書有下列的主要內(nèi)容:引言:包括編寫目的、背景、定義、參考資料。程序系統(tǒng)的組織結(jié)構(gòu)。程序1設(shè)計(jì)說明:包括功能、性能、輸入/輸出、算法、流程邏輯、接口。程序2設(shè)計(jì)說明。內(nèi)容同上。程序N設(shè)計(jì)說明。內(nèi)容同上。⑦評審。對處理過程的算法和數(shù)據(jù)庫的物理結(jié)構(gòu)都要評審。3.軟件詳細(xì)設(shè)計(jì)的原則軟件詳細(xì)設(shè)計(jì)主要有3項(xiàng)原則:①模塊的邏輯描述一定要清晰易讀、正確可靠。②采用結(jié)構(gòu)化設(shè)計(jì)方法,改善控制結(jié)構(gòu),降低程序的復(fù)雜程度,從而提高程序的可讀性、可測試性、可維護(hù)性。其基本內(nèi)容歸納為如下幾點(diǎn):程序語言中應(yīng)盡量少用GOTO語句,以確保程序結(jié)構(gòu)的獨(dú)立性。使用單入口單出口的控制結(jié)構(gòu),確保程序的靜態(tài)結(jié)構(gòu)與動(dòng)態(tài)執(zhí)行情況相一致。保證程序易理解。程序的控制結(jié)構(gòu)一般采用順序、選擇、循環(huán)3種結(jié)構(gòu)來構(gòu)成,確保結(jié)構(gòu)簡單。用自頂向下、逐步求精的方法進(jìn)行程序設(shè)計(jì)。結(jié)構(gòu)化程序設(shè)計(jì)的缺點(diǎn)是存儲(chǔ)容量和運(yùn)行時(shí)間增加10%~20%,但易讀易維護(hù)性好。③選擇恰當(dāng)?shù)拿枋龉ぞ邅砻枋龈髂K算法。2.2.2
軟件詳細(xì)設(shè)計(jì)的方法和工具1.軟件詳細(xì)設(shè)計(jì)的方法詳細(xì)設(shè)計(jì)不是具體的編程,而是為編程進(jìn)行流程設(shè)計(jì)。提高軟件的質(zhì)量,最直接的是規(guī)范程序的流程結(jié)構(gòu),提高程序的易讀性、可測試性、可維護(hù)性。結(jié)構(gòu)化程序設(shè)計(jì)是實(shí)現(xiàn)該目標(biāo)的關(guān)鍵技術(shù)之一,它指導(dǎo)人們用好的思想方法開發(fā)易于理解、易于驗(yàn)證的程序。采取結(jié)構(gòu)化程序設(shè)計(jì)方法應(yīng)包括以下幾個(gè)要點(diǎn):(1)采用自頂向下、逐步求精的程序設(shè)計(jì)方法在需求分析、總體設(shè)計(jì)中,都采用自頂向下、逐層細(xì)化的方法。使用“抽象”的方法,在軟件定義階段對問題進(jìn)行抽象,產(chǎn)生模型和數(shù)據(jù);在總體設(shè)計(jì)階段,根據(jù)軟件功能,對軟件結(jié)構(gòu)進(jìn)行抽象,產(chǎn)生軟件功能結(jié)構(gòu)圖并對結(jié)構(gòu)進(jìn)行分解優(yōu)化,獲得軟件系統(tǒng)的結(jié)構(gòu)體系。在詳細(xì)設(shè)計(jì)中,主要任務(wù)就是設(shè)計(jì)程序的處理過程,雖然設(shè)計(jì)內(nèi)容很具體,但在設(shè)計(jì)某個(gè)模塊的內(nèi)部處理過程中,仍可以逐步求精,降低處理細(xì)節(jié)的復(fù)雜度。2.2.2
軟件詳細(xì)設(shè)計(jì)的方法和工具(2)使用3種基本控制結(jié)構(gòu)構(gòu)造程序流程理論上講,任何程序都可由順序、選擇和循環(huán)3種基本結(jié)構(gòu)構(gòu)造。這一種基本結(jié)構(gòu)的共同點(diǎn)是單入口、單出口。它為自頂向下、逐步求精的設(shè)計(jì)方法提供了具體的實(shí)施手段。如對一個(gè)模塊處理過程細(xì)化時(shí),開始是模糊的,可以用下面的一種方式對模糊過程進(jìn)行分解:用順序方式對過程進(jìn)行分解,確定各部分的執(zhí)行順序。用選擇方式對過程進(jìn)行分解,確定某部分的執(zhí)行條件。用循環(huán)方式對過程進(jìn)行分解,確定某部分進(jìn)行重復(fù)的規(guī)則和條件。2.2.2
軟件詳細(xì)設(shè)計(jì)的方法和工具(3)主程序員的組織形式主程序員的組織形式指開發(fā)程序的人員應(yīng)采用以一個(gè)主程序員、一個(gè)后備程序員和一個(gè)程序管理員3人為核心,再加上一些專家、其他技術(shù)人員組成小組的這種形式。這種組織形式突出了主程序員的領(lǐng)導(dǎo)作用,只將設(shè)計(jì)責(zé)任集中在少數(shù)人身上,有利于提高軟件質(zhì)量并且能有效地提高軟件生產(chǎn)率。總之,結(jié)構(gòu)化程序設(shè)計(jì)方法是綜合應(yīng)用這些手段構(gòu)造高質(zhì)量程序的思想方法。2.軟件詳細(xì)設(shè)計(jì)的工具模塊內(nèi)部的處理過程的表示方法稱為詳細(xì)設(shè)計(jì)的工具,它們可以分為:(1)圖形工具利用圖形工具可將過程的細(xì)節(jié)用圖形描述出來。(2)表格工具可以用一張表來描述過程的細(xì)節(jié),在表中列出各種可能的操作和相應(yīng)的條件。(3)語言工具用高級語言來描述過程的細(xì)節(jié),不論是哪類工具,對它們的基本要求都是相似的:應(yīng)該能指明控制流程、處理功能、數(shù)據(jù)組織及其他方面的實(shí)現(xiàn)細(xì)節(jié),并能提供對設(shè)計(jì)的無歧義的描述,從而保證在編碼階段能把對設(shè)計(jì)的描述迅速地翻譯成質(zhì)量好的程序代碼。有無合適的軟件詳細(xì)設(shè)計(jì),不僅直接影響軟件開發(fā)人員的編程效率,而且對于軟件測試和維護(hù)人員也是非常重要的,詳細(xì)的軟件設(shè)計(jì)說明使得他們不需要閱讀程序代碼,就能了解模塊內(nèi)部的程序結(jié)構(gòu)。3.軟件詳細(xì)設(shè)計(jì)工具應(yīng)具有的屬性模塊性:設(shè)計(jì)工具應(yīng)能支持模塊化軟件的開發(fā)。簡明性:軟件工具應(yīng)當(dāng)比較容易學(xué)習(xí),比較容易使用。便于編輯:在軟件設(shè)計(jì)、軟件測試期間,以及最后在軟件生存周期的維護(hù)階段可能要對詳細(xì)設(shè)計(jì)進(jìn)行修改。機(jī)器可讀性:如果有一種設(shè)計(jì)工具能夠直接輸入到以計(jì)算機(jī)為基礎(chǔ)的開發(fā)系統(tǒng)中,則將有極大的潛在好處??删S護(hù)性:軟件維護(hù)是軟件生存周期中最花錢的階段。軟件配置的維護(hù)意味著對詳細(xì)設(shè)計(jì)表示的維護(hù)。強(qiáng)行結(jié)構(gòu)化:鑒于采用結(jié)構(gòu)化程序設(shè)計(jì)方法具有明顯的好處,一種只允許使用結(jié)構(gòu)化構(gòu)造的設(shè)計(jì)工具將會(huì)促使人們養(yǎng)成良好的設(shè)計(jì)習(xí)慣。自動(dòng)處理:詳細(xì)設(shè)計(jì)中有一些信息可以用計(jì)算機(jī)進(jìn)行處理,使設(shè)計(jì)人員對軟件的正確性與質(zhì)量有了新的深入了解。數(shù)據(jù)表示:描述局部數(shù)據(jù)和全程數(shù)據(jù)的能力是詳細(xì)設(shè)計(jì)的重要因素,設(shè)計(jì)工具應(yīng)當(dāng)直接地表示這些數(shù)據(jù)。邏輯驗(yàn)證:設(shè)計(jì)邏輯的自動(dòng)驗(yàn)證是軟件測試期間要達(dá)到的首要目標(biāo)。能夠增強(qiáng)邏輯驗(yàn)證能力的軟件工具將提高測試的完備程度。編程能力:在詳細(xì)設(shè)計(jì)后面的軟件工程步驟是編寫程序。如果用軟件工具表示的設(shè)計(jì)可以很容易轉(zhuǎn)換成源程序的話,那么軟件開發(fā)的工作量和可能出現(xiàn)的錯(cuò)誤都將會(huì)減少。2.2.3
軟件詳細(xì)設(shè)計(jì)的過程詳細(xì)設(shè)計(jì)是系統(tǒng)分析師與程序編寫人員接觸的唯一途徑,因此詳細(xì)設(shè)計(jì)的任務(wù)就是向程序員詳細(xì)解釋概要設(shè)計(jì)的內(nèi)容,并以文檔的形式交付程序員并來設(shè)計(jì)實(shí)現(xiàn)程序。詳細(xì)設(shè)計(jì)按照時(shí)間進(jìn)程分為兩個(gè)階段:模塊功能說明階段和程序流程編寫說明。模塊功能說明階段的主要工作內(nèi)容為:模塊需求、功能細(xì)化、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和界面設(shè)計(jì),主要是說明功能實(shí)現(xiàn)和數(shù)據(jù)操作的目的;而程序流程編寫說明的主要工作內(nèi)容包括:程序流程、關(guān)鍵技術(shù)等,主要目的是為編寫程序提供方便。2.2.3
軟件詳細(xì)設(shè)計(jì)的過程1.設(shè)計(jì)公共模塊2.子模塊功能細(xì)化3.?dāng)?shù)據(jù)操作說明4.?dāng)?shù)據(jù)公式說明5.報(bào)表格式說明6.程序流程7.關(guān)鍵技術(shù)2.2.4
詳細(xì)設(shè)計(jì)中的四種建模1.方法建模在設(shè)計(jì)類圖上,需要確定方法的可見性、名稱、參數(shù)、返回值和構(gòu)造模型。其中,方法也稱為操作或成員函數(shù),方法的可見性是指外部對象對該方法的訪問級別。(1)方法的命名方法要使用完整的描述進(jìn)行命名,使用“methodName()”形式,如表2-2-2所示描述了一些有問題的方法命名實(shí)例,并給出了其改進(jìn)方法和改進(jìn)后的命名。2.2.4
詳細(xì)設(shè)計(jì)中的四種建模有問題的命名改進(jìn)方法改進(jìn)后的命名CheckSta()應(yīng)該使用完整的代詞,以使意義更明確CheckStatus()BookQuery()動(dòng)詞應(yīng)該移到名字開頭表示一種主動(dòng)語態(tài)QueryBook()Removereservation()使用大小寫混合的方式可以增加可讀性RemoveReservation()在Book類中的方法saveBook()兩個(gè)Book的含義重復(fù),去掉saveBook()中的BookSave()2.2.4
詳細(xì)設(shè)計(jì)中的四種建模(2)方法的可見性一個(gè)方法被其他對象如何訪問是由其可見性定義的,在UML語言中,可見性有三種級別:保護(hù)的(protected):只在類層次的內(nèi)部被調(diào)用而不能由外部調(diào)用,使用符號“#”表示;私有的(private):只在定義它的類中被調(diào)用,使用符號“—”表示。為了降低系統(tǒng)的耦合,建立方法的可見性應(yīng)遵從“讓方法按照需要提供可見性,不要超過限度”的原則。例如,如果一個(gè)方法的可見性只需要protected,就將其設(shè)置為protected而不必是pubilic。2.2.4
詳細(xì)設(shè)計(jì)中的四種建模(3)類的方法建模圖2-2-1BorrowerInfo方法建模在這里以MiniLibrary系統(tǒng)中的BorrwerInfo類為例說明其方法的建模。在BorrowerInfo類中,需要增加一些成員函數(shù),具體包括構(gòu)造函數(shù)new()、存取成員屬性的函數(shù)等,得到了如圖2-2-1所示的BorrowerInfo類。2.2.4
詳細(xì)設(shè)計(jì)中的四種建模2.屬性建模與方法建模類似,類的屬性建模也要進(jìn)行命名和設(shè)置可見性。一般情況下,為了降低類之間的耦合度,屬性建模包括以下原則:將所有屬性的可見性設(shè)置為private。僅通過set方法更新屬性。僅通過get方法訪問屬性。在屬性的set方法中,實(shí)現(xiàn)簡單的有效性驗(yàn)證,而在獨(dú)立的驗(yàn)證方法中實(shí)現(xiàn)復(fù)雜的邏輯驗(yàn)證。2.2.4
詳細(xì)設(shè)計(jì)中的四種建模3.狀態(tài)建模狀態(tài)建模是一種動(dòng)態(tài)建模技術(shù),它主要用于確定系統(tǒng)的行為。在詳細(xì)設(shè)計(jì)時(shí),狀態(tài)建模一般只發(fā)生在依賴狀態(tài)展示不同行為的類上。在狀態(tài)建模中,狀態(tài)通過對象屬性的值來表示,轉(zhuǎn)移是方法調(diào)用的結(jié)果,經(jīng)常會(huì)反映業(yè)務(wù)規(guī)則。如圖2-2-2所示顯示了Minilibrary系統(tǒng)中Title類的狀態(tài)圖,其中Title對象具有不可借、可借和已預(yù)訂等狀態(tài)。2.2.4
詳細(xì)設(shè)計(jì)中的四種建模4.關(guān)系建模在分析階段,初步得到了類之間的關(guān)聯(lián)關(guān)系。在詳細(xì)設(shè)計(jì)階段,需要進(jìn)一步確定詳細(xì)的關(guān)聯(lián)關(guān)系、依賴關(guān)系和聚合關(guān)系等。此外,還可以根據(jù)類之間的共性和差異,利用泛化關(guān)系對整體結(jié)構(gòu)進(jìn)行優(yōu)化。2.2.5
軟件詳細(xì)設(shè)計(jì)規(guī)格說明與復(fù)審1.詳細(xì)設(shè)計(jì)說明建立設(shè)計(jì)文檔的目的,是為了把設(shè)計(jì)師的思想告訴其他有關(guān)人員。程序是由計(jì)算機(jī)執(zhí)行的,但可讀性提高便于維護(hù)。在詳細(xì)設(shè)計(jì)階段的文檔可作為詳細(xì)設(shè)計(jì)說明書。它是程序工作過程的描述。詳細(xì)設(shè)計(jì)說明的內(nèi)容主要包括:表示軟件結(jié)構(gòu)的圖表。對逐個(gè)模塊的程序描述,包括算法和邏輯流程,輸入/輸出項(xiàng),與外部接口等。2.2.5一個(gè)典型的詳細(xì)設(shè)計(jì)說明書(1)引言①編寫的目的:說明編寫詳細(xì)說明書的目的,并指明讀者對象。②項(xiàng)目背景:包括項(xiàng)目的來源和主管部門等。③定義:列出文檔中所用專門術(shù)語的定義和縮寫詞的原意。④參考資料列出有關(guān)資料的作者、標(biāo)題、編號、發(fā)表日期、出版單位或資料來源。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 周工作總結(jié)和規(guī)劃
- 五年級數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專項(xiàng)練習(xí)及答案
- 三年級數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案
- 畢業(yè)論文護(hù)理專業(yè)
- 腰疼針灸治療
- 仁愛科普版(2024)七年級上冊Unit 1Let's Be Friends 單元話題寫作指導(dǎo)
- 腦部疾病護(hù)理查房
- 運(yùn)城解州小片地名研究
- 我國主流媒體的萌化傳播研究
- 我國冰雪項(xiàng)目歸化運(yùn)動(dòng)員國內(nèi)社交媒體自我呈現(xiàn)研究
- 八年級數(shù)學(xué)分式經(jīng)典練習(xí)題分式的乘除
- 2024年湖北省初中學(xué)業(yè)水平考試地理試卷含答案
- 口腔牙齒美白課件
- 2024年中國山地滑道市場調(diào)查研究報(bào)告
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識 CCAA年度確認(rèn) 試題與答案
- 1《諫逐客書》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)統(tǒng)編版高中語文必修下冊
- DB13(J)T 8542-2023 建筑施工塔式起重機(jī)檢驗(yàn)技術(shù)規(guī)程
- 《卓瑪》教案參考
- (正式版)BB∕T 0095-2024 折疊式膠合板周轉(zhuǎn)箱
- 鋼鐵是怎樣煉成的課件省公開課一等獎(jiǎng)新名師課比賽一等獎(jiǎng)?wù)n件
- 《中國飲食文化》課件-中國飲食文化溯源
評論
0/150
提交評論