版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
--軟件設(shè)計(jì)軟件工程內(nèi)容提要軟件設(shè)計(jì)根底原理概要設(shè)計(jì)詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)軟件設(shè)計(jì)是軟件開發(fā)的最重要階段;是保證軟件質(zhì)量的重要步驟;軟件設(shè)計(jì)是把用戶需求準(zhǔn)確轉(zhuǎn)化為軟件系統(tǒng)的唯一途徑。軟件設(shè)計(jì)軟件設(shè)計(jì)是把軟件需求轉(zhuǎn)換為軟件表示的過程。它包含兩個階段:概要設(shè)計(jì) 將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。詳細(xì)設(shè)計(jì) 通過對結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。軟件設(shè)計(jì)的根底概念軟件結(jié)構(gòu)軟件結(jié)構(gòu)包括兩局部,一是軟件模塊的層次結(jié)構(gòu);二是數(shù)據(jù)的結(jié)構(gòu)。通常軟件的體系結(jié)構(gòu)通過一個劃分過程來完成。該劃分過程從需求分析確立的目標(biāo)系統(tǒng)模型出發(fā),對整個問題進(jìn)行分解,使其每一局部用一個或幾個軟件成分加以解決,從而解決整個問題。該過程可用以下圖形象表示:P1P2P3S1S2S3軟件設(shè)計(jì)的根本原理抽象模塊化逐步求精信息隱藏與局部化模塊的獨(dú)立性抽象抽象,即析取出事物的本質(zhì)特征而不考慮他們的細(xì)節(jié)。抽象是人類認(rèn)識復(fù)雜問題的重要思維工具之一。抽象的過程是從特殊到一般的過程,上層概念是下層概念的抽象。下層概念是上層概念的精化和細(xì)化。模塊化模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,它是單?dú)命名的,并且可以通過名字來訪問的。例如,過程。函數(shù)、子程序、宏等等都可作為模塊。模塊具有三個根本屬性:功能—模塊實(shí)現(xiàn)的功能邏輯—描述模塊內(nèi)部怎么做狀態(tài)—模塊使用時的環(huán)境和條件模塊化模塊的特征:內(nèi)部特征—模塊的名字、參數(shù)等;外部特征—完成模塊功能的程序代碼和模塊內(nèi)部數(shù)據(jù)。模塊化,即把軟件按照規(guī)定原那么,劃分為一個個較小的,相互獨(dú)立的但又相互關(guān)聯(lián)的部件。模塊化實(shí)際上是系統(tǒng)分解和抽象的過程。模塊化理想的模塊每個模塊只解決一個問題;每個模塊的功能應(yīng)該明確,使人容易理解;模塊之間的聯(lián)結(jié)關(guān)系簡單,具有獨(dú)立性;用理想模塊構(gòu)建的系統(tǒng),容易使人理解,易于編程,易于測試,易于修改和維護(hù)。對用戶來說,其感興趣的是模塊的功能,而不必理解模塊內(nèi)部的結(jié)構(gòu)和原理。模塊化的理論依據(jù)設(shè)函數(shù)C(x)定義問題x的復(fù)雜程度,函數(shù)E(x)確定解決問題x需要的工作量。對于兩個問題P1和P2,如果有:C(P1)>C(P2), 那么顯然有:E(P1)>E(P2);根據(jù)人類解決一般問題的經(jīng)驗(yàn),有: C(P1+P2)>C(P1)+C(P2);進(jìn)而獲得:E(P1+P2)>E(P1)+E(P2)。模塊化的理論依據(jù)此不等式說明:單獨(dú)解決問題P1和P2所需的工作量之和,比把P1和P2合起來作為一個問題來解決所需要的工作量要少。這種“分而治之〞的思想提供了模塊化的理論依據(jù):把復(fù)雜問題分解成許多容易解決的小問題,那么原來復(fù)雜的問題也就容易解決了。模塊化與軟件本錢本錢或工作量模塊數(shù)目模塊本錢接口本錢最小本錢區(qū)軟件總本錢αM模塊化采用模塊化原理使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解:因?yàn)槌绦蝈e誤通常局限在有關(guān)的模塊及它們之間的接口中,所以模塊化使軟件容易調(diào)試和測試,有助于提高軟件的可靠性;因?yàn)樽儎油簧婕吧贁?shù)幾個模塊,所以模塊化能夠提高軟件的可修改性;模塊化也有助于軟件工程的組織管理,一個復(fù)雜的大型軟件可以有許多程序員分工編寫,進(jìn)而提高了開發(fā)效率。逐步求精逐步求精是人類解決復(fù)雜問題的根本技術(shù)之一,它是把問題的求解過程分解成假設(shè)干步驟或階段,每步都比上步更精化,更接近問題的解法。為了能集中精力解決主要問題而盡量推遲問題細(xì)節(jié)的考慮。它可以看作是一項(xiàng)把一個時期必須解決的種種問題按優(yōu)先級別排序的技術(shù)。逐步求精和抽象是一對互補(bǔ)的概念。信息隱藏和局部化應(yīng)用模塊化原那么,自然會產(chǎn)生一個問題“為了得到一組模塊,應(yīng)該怎樣分解軟件呢?〞信息隱藏原理指出:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個模塊內(nèi)包含的信息對不需要這些信息的模塊來說是不能訪問的。局部化指把一些關(guān)系密切的軟件元素放得彼此靠近。顯然,局部化有助于信息隱藏。信息隱藏和局部化實(shí)際上應(yīng)該隱藏的不是模塊的一切信息,而是模塊的實(shí)現(xiàn)細(xì)節(jié)。因此這條原理也被稱作“細(xì)節(jié)隱藏〞。隱藏,意味著有效的模塊化可以通過定義一組獨(dú)立的模塊而實(shí)現(xiàn),這些獨(dú)立的模塊彼此間僅僅交換那些為了完成系統(tǒng)功能而必須交換的信息。信息隱藏和局部化有助于軟件測試和維護(hù)!模塊獨(dú)立性模塊獨(dú)立性是模塊化、信息隱藏和局部化等概念的直接結(jié)果。為什么模塊獨(dú)立性很重要?有效模塊化的軟件比較容易開發(fā)出來;獨(dú)立的模塊比較容易測試和維護(hù)??傊?,模塊獨(dú)立是設(shè)計(jì)好壞的關(guān)鍵!模塊獨(dú)立的含義:模塊完成獨(dú)立的功能,與其他模塊的接口簡單;符合信息隱蔽和信息局部化原那么;模塊間關(guān)連和依賴程度盡可能小。模塊獨(dú)立的度量模塊的獨(dú)立程度可由兩個定性標(biāo)準(zhǔn)來衡量:耦合 耦合衡量不同模塊彼此間相互依賴的緊密程度;內(nèi)聚 內(nèi)聚衡量同一模塊內(nèi)部各元素彼此組合的緊密程度;耦合性耦合是程序結(jié)構(gòu)內(nèi)不同模塊之間相互關(guān)聯(lián)的度量,是影響軟件復(fù)雜程度和設(shè)計(jì)質(zhì)量的重要因素。耦合強(qiáng)度依賴的因素:一模塊對另一模塊的引用一模塊向另一模塊傳遞的數(shù)據(jù)量一模塊施加到另一模塊控制的數(shù)量模塊間接口的復(fù)雜程度設(shè)計(jì)目標(biāo):低耦合(建立模塊間耦合盡可能松散的系統(tǒng))耦合度耦合性模塊獨(dú)立性數(shù)據(jù)耦合控制耦合公共環(huán)境耦合內(nèi)容耦合特征耦合外部耦合非直接耦合非直接耦合(NodirectCoupling)兩個模塊沒有直接關(guān)系(模塊1和模塊2),它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實(shí)現(xiàn),非直接耦合是模塊獨(dú)立性最強(qiáng)的。模塊1模塊2模塊3模塊4主模塊數(shù)據(jù)耦合(DataCoupling)一模塊調(diào)用另一模塊時,彼此之間是通過簡單數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)和外部變量)來交換輸入、輸出信息。屬松散耦合。開發(fā)票計(jì)算水費(fèi)單價(jià)數(shù)量金額特征耦合(StampCoupling)如兩個模塊之間是通過傳遞數(shù)據(jù)結(jié)構(gòu)(不是簡單數(shù)據(jù),而是記錄、數(shù)組等)加以聯(lián)系,或都與一個數(shù)據(jù)結(jié)構(gòu)有關(guān)系,那么稱這兩個模塊間存在特征偶合。計(jì)算水電費(fèi)計(jì)算水費(fèi)計(jì)算電費(fèi)住戶情況水費(fèi)電費(fèi)住戶情況“住戶情況〞是一個數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān)?!坝?jì)算水費(fèi)〞和“計(jì)算電費(fèi)〞本無關(guān),由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間就是特征偶合。特征耦合將特征耦合改為數(shù)據(jù)耦合:計(jì)算水電費(fèi)計(jì)算水費(fèi)計(jì)算電費(fèi)本月用水量水費(fèi)電費(fèi)本月用電量控制耦合(ControlCoupling)一模塊向下屬模塊傳遞的信息控制了被調(diào)用模塊的內(nèi)部邏輯。如開關(guān)量、標(biāo)志、名稱等控制決策的變量,控制選擇了被調(diào)用模塊的功能。AFlagF1F2FnFlag……..B控制耦合舉例-1PROCA(){
//調(diào)用B,使用其功能1 B(x,y,1) //調(diào)用B,使用其功能2 B(x,y,2)}PROCB(a,b,flag){ docase caseflag=1 功能1 caseflag=2 功能2
endcase}控制耦合舉例-2AB計(jì)算平均分或最高分平均/最高(控制信號)成績讀入分?jǐn)?shù)輸出結(jié)果計(jì)算平均分計(jì)算最高分平均/最高?B控制耦合控制耦合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了模塊間的相互依賴關(guān)系。去除模塊間控制耦合的方法:將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行;被調(diào)用模塊分解成假設(shè)干單一功能模塊??刂岂詈闲薷目刂岂詈蠟閿?shù)據(jù)耦合:AB1計(jì)算平均分平均成績B2計(jì)算最高分最高成績外部耦合(ExternalCoupling)一組模塊均與同一外部環(huán)境關(guān)聯(lián)(例如,I/O模塊與特定的設(shè)備、格式和通信協(xié)議相關(guān)聯(lián)),它們之間便存在外部耦合。外部偶合必不可少,但這種模塊數(shù)目應(yīng)盡量少。公共環(huán)境耦合一組模塊引用同一個公用數(shù)據(jù)區(qū)(也稱全局?jǐn)?shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境)。其中,公共數(shù)據(jù)區(qū)指:全局?jǐn)?shù)據(jù)結(jié)構(gòu)共享的通訊區(qū)內(nèi)存的公共覆蓋區(qū)等A公共數(shù)據(jù)區(qū)CB公共環(huán)境耦合公共耦合的復(fù)雜程度隨耦合模塊的個數(shù)增多而顯著增加。假設(shè)只有兩個模塊間存在公共數(shù)據(jù)環(huán)境,那么公共耦合有兩種情況,松散公共耦合和緊密公共耦合。AB公共數(shù)據(jù)區(qū)AB公共數(shù)據(jù)區(qū)a.松散公共耦合b.緊密公共耦合公共環(huán)境耦合存在的問題軟件可理解性降低診斷錯誤困難軟件可維護(hù)性差,軟件可靠性差 公共數(shù)據(jù)區(qū)及全程變量無保護(hù)措施慎用公共數(shù)據(jù)區(qū)和全程變量!!!內(nèi)容耦合(ContentCoupling)如果發(fā)生以下情形之一,兩模塊之間就產(chǎn)生了內(nèi)容耦合:一個模塊直接訪問另一模塊的內(nèi)部數(shù)據(jù);一個模塊不通過正常入口轉(zhuǎn)到另一模塊的內(nèi)部;兩個模塊有局部程序代碼重疊;一個模塊有多個入口。一模塊直接訪問另一模塊的內(nèi)部信息(程序代碼或數(shù)據(jù)〕ABAB模塊代碼重疊Entry1……Entry2……多入口模塊如何降低模塊間耦合度①盡量使用數(shù)據(jù)耦合少用控制耦合限制公共環(huán)境耦合的范圍堅(jiān)決防止使用內(nèi)容耦合②降低接口的復(fù)雜性內(nèi)聚性內(nèi)聚指一個模塊內(nèi)部元素在功能上相互關(guān)聯(lián)的強(qiáng)度(彼此結(jié)合的緊密程度),它是信息隱藏和局部化概念的擴(kuò)展。設(shè)計(jì)目標(biāo): 高內(nèi)聚(模塊在軟件過程中完成單一的任務(wù))內(nèi)聚性模塊獨(dú)立性偶然內(nèi)聚邏輯內(nèi)聚時間內(nèi)聚過程內(nèi)聚通信內(nèi)聚信息內(nèi)聚功能內(nèi)聚內(nèi)聚性偶然內(nèi)聚(ConcidentalCohesion)含義:模塊內(nèi)各局部之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散。如:A、B兩個模塊含有相同的一段代碼C,程序員為了節(jié)約內(nèi)存,而將A、B放在同一模塊內(nèi),以共享C,模塊AB即為偶然內(nèi)聚。缺點(diǎn):可理解性差,可修改性差CCABCAB偶然內(nèi)聚例子ABCMOVEOTORREADFILEFMOVESTOTM模塊M中的三個任務(wù)沒有任何聯(lián)系邏輯內(nèi)聚(LogicalCohesion)把幾種相關(guān)的功能〔邏輯上相似的功能〕組合在一模塊內(nèi),每次調(diào)用時,由傳給模塊的判定參數(shù)來確定該模塊應(yīng)執(zhí)行哪一個功能。!邏輯內(nèi)聚導(dǎo)致模塊間的控制耦合調(diào)用模塊判定讀一個記錄寫一個記錄被調(diào)用模塊AMBCEFGAMBCEFGE、F、G邏輯功能相似,組成新模塊EFG缺點(diǎn):增強(qiáng)了耦合(控制);不易修改,效率低A1B1C1EFG模塊內(nèi)部邏輯公用代碼段公用代碼段邏輯內(nèi)聚例子時間內(nèi)聚(ClassicalCohesion)這種模塊大多為多功能模塊,但模塊內(nèi)的各個功能的執(zhí)行與時間有關(guān),通常要求所有功能必須在同一時間內(nèi)執(zhí)行,這些功能只因時間因素關(guān)聯(lián)在一起。例如:系統(tǒng)初始化模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等均是時間性內(nèi)聚模塊.過程內(nèi)聚(ProceduralCohesion)模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行。 使用流程圖作為工具設(shè)計(jì)程序時,把流程圖中的某一局部劃出來組成模塊,就得到過程內(nèi)聚模塊。例如,把流程圖中的循環(huán)局部、判定局部、計(jì)算局部分成三個模塊,這三個模塊都是過程內(nèi)聚模塊。讀入成績單讀入并審查成績單審查成績單統(tǒng)計(jì)成績打印成績統(tǒng)計(jì)并打印成績單通信內(nèi)聚
(CommunicationCohesion〕如果一個模塊內(nèi)各功能局部使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出結(jié)果,那么稱之為通信內(nèi)聚模塊。通常,通信內(nèi)聚模塊是通過數(shù)據(jù)流圖來定義的。打印報(bào)告A打印報(bào)告B打印報(bào)告C計(jì)算A計(jì)算B保存學(xué)生信息通信內(nèi)聚例子產(chǎn)生職工工資報(bào)表并計(jì)算平均工資模塊產(chǎn)生工資報(bào)表計(jì)算平均工資職工工資記錄職工工資報(bào)表平均工資A結(jié)果B結(jié)果文件讀文件打印檢驗(yàn)結(jié)果計(jì)算A計(jì)算B讀卡片文件合并修改文件A/B卡片A/B數(shù)據(jù)新文件獲得A/B數(shù)據(jù)加工記錄通信內(nèi)聚例子信息內(nèi)聚(InformationalCohesion)模塊完成多個功能,各功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一功能有唯一的入口點(diǎn)。這個模塊將根據(jù)不同的要求,確定該執(zhí)行哪個功能。由于這個模塊的所有功能都基于同一個數(shù)據(jù)結(jié)構(gòu)(符號表),因此,它是一個信息內(nèi)聚模塊信息內(nèi)聚例子符號表查找登錄刪除修改功能內(nèi)聚(FunctionalCohesion)一個模塊中各個局部都是完成某一具體功能必不可少的組成局部,或者說該模塊中所有局部都是為了完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割。內(nèi)聚性最強(qiáng)!耦合與內(nèi)聚的關(guān)系內(nèi)聚與耦合密切相關(guān),同其它模塊強(qiáng)耦合的模塊意味著弱內(nèi)聚,強(qiáng)內(nèi)聚模塊意味著與其它模塊間松散耦合。耦合與內(nèi)聚都是模塊獨(dú)立性的定性標(biāo)準(zhǔn),都反映模塊獨(dú)立性的良好程度。但耦合是直接的主導(dǎo)因素,內(nèi)聚那么輔助耦合共同對模塊獨(dú)立性進(jìn)行衡量。內(nèi)聚度耦合度概要設(shè)計(jì)概要設(shè)計(jì)的根本目的概要設(shè)計(jì)的根本任務(wù)概要設(shè)計(jì)過程結(jié)構(gòu)化設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法概要設(shè)計(jì)工具層次圖和HIPO圖結(jié)構(gòu)圖概要設(shè)計(jì)的根本目的概要設(shè)計(jì)的根本目的就是答復(fù)“概括的說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?〞概要設(shè)計(jì)的根本任務(wù)確定軟件系統(tǒng)的結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu)劃出組成系統(tǒng)的物理元素:程序、文件、數(shù)據(jù)庫、人工過程和文檔等等;設(shè)計(jì)軟件結(jié)構(gòu),即確定系統(tǒng)由哪些模塊組成,以及這些模塊之間的相互關(guān)系(接口)。概要設(shè)計(jì)的主要工作是:完成模塊分解即每個模塊的功能說明!概要設(shè)計(jì)過程設(shè)想供選擇的方案選擇合理的方案推薦最正確方案功能分解設(shè)計(jì)軟件結(jié)構(gòu)數(shù)據(jù)庫設(shè)計(jì)制訂測試方案編寫文檔審查和復(fù)審設(shè)想供選擇的方案在概要設(shè)計(jì)開始時,只有系統(tǒng)的邏輯模型,分析人員有充分的自由比較分析不同的物理實(shí)現(xiàn)方案。設(shè)想供選擇的方案的一種通常的做法是,設(shè)想數(shù)據(jù)流圖中的處理分組的各種可能的方法,拋棄技術(shù)上行不通的分組方法,余下的分組方法代表可能的實(shí)現(xiàn)策略,并且可以啟示供選擇的物理系統(tǒng)。選取合理的方案在數(shù)據(jù)流圖的根底上,一個邊界一個邊界設(shè)想并列出可供選擇的方案。通常,選擇的這些方案中至少應(yīng)包括低本錢、中本錢和高本錢的三種方案;對每個合理方案要提供以下幾方面資料:系統(tǒng)流程圖;數(shù)據(jù)字典;本錢、效益分析;實(shí)現(xiàn)這個系統(tǒng)的進(jìn)度方案。推薦最正確方案分析人員應(yīng)該在綜合分析比照各種合理方案利弊,推薦一個最正確方案,并為推薦的方案擬定詳細(xì)的實(shí)現(xiàn)方案。用戶和有關(guān)的技術(shù)專家應(yīng)該認(rèn)真審查分析員所推薦的最正確系統(tǒng),如果系統(tǒng)符合用戶的需求,并且在現(xiàn)有條件下完全能夠?qū)崿F(xiàn)的。那么應(yīng)該提請使用部門負(fù)責(zé)人進(jìn)一步審批。在使用部門負(fù)責(zé)人也接受了分析員的推薦方案之后,才可以進(jìn)入下一個環(huán)節(jié)。對分析結(jié)果進(jìn)一步細(xì)化,再進(jìn)行功能分解。P2P5P3P4P1需要通過軟件解決的“問題〞S1S2S3S4S5軟件的“解決方案〞功能分解設(shè)計(jì)軟件結(jié)構(gòu)軟件結(jié)構(gòu)反映系統(tǒng)中模塊的相互調(diào)用關(guān)系:頂層模塊調(diào)用它的下層模塊以實(shí)現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,最下層的模塊完成最具體的功能;軟件結(jié)構(gòu)通過層次圖或結(jié)構(gòu)圖來描述,可以直接從DFD映射出軟件結(jié)構(gòu)。數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫應(yīng)用越來越廣泛,目前大多數(shù)的系統(tǒng)都要用到數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫設(shè)計(jì)是一項(xiàng)專門的技術(shù),包括模式設(shè)計(jì)、子模式設(shè)計(jì)、完整性和平安性設(shè)計(jì)和優(yōu)化處理等。制訂測試方案在軟件開發(fā)的早期階段提前考慮軟件的測試方案是很有必要的。這樣能促使軟件設(shè)計(jì)人員在設(shè)計(jì)時注意到軟件的測試問題,從而有利于提高軟件的可測試性。文檔編寫概要設(shè)計(jì)階段需要編寫的文檔包括: 系統(tǒng)說明書;用戶手冊; 測試方案;詳細(xì)的實(shí)現(xiàn)方案; 數(shù)據(jù)庫設(shè)計(jì)結(jié)果;審查與復(fù)審最后應(yīng)該對概要設(shè)計(jì)的結(jié)果進(jìn)行嚴(yán)格的技術(shù)審查,然后再提交使用部門負(fù)責(zé)人從管理角度進(jìn)行審查。概要設(shè)計(jì)準(zhǔn)那么改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊適當(dāng)?shù)纳疃?、寬度、扇出和扇入模塊判斷作用范圍應(yīng)在其控制作用范圍內(nèi)力爭降低模塊接口的復(fù)雜度設(shè)計(jì)單入口單出口的模塊模塊功能應(yīng)該是可以預(yù)測的改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性設(shè)計(jì)出軟件的初步結(jié)構(gòu)以后,應(yīng)該審查分析該結(jié)構(gòu),通過模塊分解或合并,力求降低耦合提高內(nèi)聚。例如,多個模塊公有的一個子功能可以獨(dú)立成一個模塊,由這些模塊調(diào)用;有時也可以通過分解或合并模塊以減少信息傳遞對全局?jǐn)?shù)據(jù)的引用,并降低接口的復(fù)雜性。模塊大小適中,一般一個模塊包含的語句在30~50條左右較好。模塊適度的寬度、深度、扇出和扇入深度:軟件結(jié)構(gòu)中模塊的層數(shù)寬度:軟件結(jié)構(gòu)內(nèi)同一層的模塊總數(shù)的最大值扇出:一個模塊所調(diào)用(直屬下級)的模塊個數(shù)(控制在7以內(nèi))扇入:有多少上級模塊調(diào)用它經(jīng)驗(yàn)證明,一個設(shè)計(jì)好的軟件結(jié)構(gòu),通常頂層扇出比較高,中層扇出比較少,底層有高扇入。模塊適當(dāng)?shù)纳疃?、寬度、扇出、扇入MabcdelmfghnopqijrDepthFan-inFan-outWidth控制作用范圍:本身及其所有下級模塊判斷作用范圍:被判斷調(diào)用的模塊對于任何一個內(nèi)部存在判斷調(diào)用的模塊,它的判斷作用范圍應(yīng)該是其控制作用范圍的一個子集;ABCDEFG模塊G中有一條判斷調(diào)用模塊D的語句。判斷作用范圍應(yīng)在控制作用范圍內(nèi)存在判斷調(diào)用的模塊所在層次不要與那些屬于判斷作用范圍的模塊所在的層次相隔太遠(yuǎn)。ABDGEFC模塊C中有一條判斷調(diào)用模塊G的語句。相隔太遠(yuǎn)正確ABDGCFE判斷作用范圍應(yīng)在控制作用范圍內(nèi)力爭降低模塊接口的復(fù)雜性模塊接口的復(fù)雜度是軟件發(fā)生錯誤的一個主要原因。應(yīng)該仔細(xì)設(shè)計(jì)模塊接口,使得信息傳遞簡單并且和模塊的功能一致。接口復(fù)雜或不一致〔即看起來傳遞的參數(shù)之間沒有聯(lián)系〕,是高耦合和低內(nèi)聚的征兆,應(yīng)該重新分析這個模塊的獨(dú)立性。設(shè)計(jì)單入口單出口的模塊即不要使模塊間出現(xiàn)內(nèi)容耦合模塊功能應(yīng)該是可以預(yù)測的只要輸入的數(shù)據(jù)相同就產(chǎn)生相同的輸出數(shù)據(jù),這個模塊的功能就是可以預(yù)測的;模塊的功能應(yīng)該可以預(yù)測,但也要防止模塊功能過分局限。概要設(shè)計(jì)工具層次圖(HierarchyChart
)輸入/處理/輸出圖(IPO)HIPO圖結(jié)構(gòu)圖(StructureChart)層次圖層次圖用來描繪軟件的層次結(jié)構(gòu)的圖形工具。正文加工系統(tǒng)輸入輸出編輯加標(biāo)題存儲檢索編目錄格式化添加刪除插入修改合并列表IPO圖HC圖中的每一個模塊,均可用一張IPO圖來描述。IPO圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數(shù)據(jù)文件框。IPO圖在需求分析階段主要用來描述系統(tǒng)的主要算法。
IPO圖例子(班務(wù)管理系統(tǒng))
未繳班費(fèi)處理添加新的繳費(fèi)學(xué)生名單出錯信息記錄不符合1將合格標(biāo)志送回上一級2調(diào)用模式3將核對的記錄記入文件4修改學(xué)生記錄5添加學(xué)生記錄1核對學(xué)號和原有學(xué)生記錄2核查學(xué)生繳費(fèi)狀況3處理過程1上組模塊送入學(xué)生數(shù)據(jù)2讀取原有學(xué)生記錄3讀取學(xué)生學(xué)號4學(xué)生所繳班費(fèi)輸出部分O處理部分P輸入部分I使用單位教務(wù)處和班主任模塊名稱財(cái)務(wù)信息查詢IPO圖1財(cái)務(wù)查詢IPO圖1表示了財(cái)務(wù)查詢系統(tǒng),它講述如何查詢學(xué)生繳費(fèi)情況,并且驗(yàn)證其是否準(zhǔn)確HIPO圖HIPO圖即HC加IPO層次圖加上編號稱為H圖。在層次圖的根底上,除最頂層的方框之外,其余每個方框都加了編號。層次圖中每一個方框都有一個對應(yīng)IPO圖(表示模塊的處理過程)。每張IPO圖應(yīng)增加編號與其表示的(對應(yīng)的)層次圖編號一致。正文加工系統(tǒng)輸入1.0輸出2.0編輯3.0加標(biāo)題4.0存儲5.0檢索6.0編目錄7.0格式化8.0添加3.1刪除3.2插入3.3修改3.4合并3.5列表3.6結(jié)構(gòu)圖(SC)結(jié)構(gòu)圖是SD方法在概要設(shè)計(jì)中的主要表達(dá)工具約定:一個方框代表一個模塊,框內(nèi)注明模塊的名稱或主要功能;方框之間的箭頭表示模塊的調(diào)用關(guān)系;尾部帶空心圓的短箭頭表示數(shù)據(jù)信息,尾部帶實(shí)心圓的短箭頭表示控制信息。數(shù)據(jù)信息控制信息結(jié)構(gòu)圖例1:編輯學(xué)生記錄讀學(xué)生記錄學(xué)生數(shù)據(jù)無此學(xué)生學(xué)號結(jié)構(gòu)圖例2:產(chǎn)生最正確解得到好輸入計(jì)算最正確解輸出結(jié)果讀輸入編輯輸入結(jié)果格式化顯示結(jié)果解解解好輸入原始輸入編輯結(jié)果原始輸入格式化的解格式化的解ACBD結(jié)構(gòu)圖結(jié)構(gòu)圖中還有一些附加符號,來表示模塊的選擇調(diào)用和循環(huán)調(diào)用:A根據(jù)內(nèi)部判斷決定是否調(diào)用BA按另一判定結(jié)果選擇調(diào)用C或DABCA根據(jù)內(nèi)在的循環(huán)重復(fù)調(diào)用B、C等模塊提示層次圖和結(jié)構(gòu)圖并不嚴(yán)格表示模塊的調(diào)用次序,也不指明什么時候調(diào)用下層模塊,他們僅僅表示一個模塊調(diào)用那些模塊,至于模塊內(nèi)有無其他成分那么完全沒有表示。通常用層次圖作為描述軟件結(jié)構(gòu)的文檔。結(jié)構(gòu)圖作為文檔并不適宜,因?yàn)閳D中包含信息過多,有時反而降低了清晰程度。但是,結(jié)構(gòu)圖可以作為檢查設(shè)計(jì)正確性和評價(jià)模塊獨(dú)立性的好方法。面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法〔結(jié)構(gòu)化設(shè)計(jì)方法〕概述變換流與事務(wù)流變換分析事務(wù)分析面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法以數(shù)據(jù)流圖為根底,它定義了把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)的不同映射方法。因?yàn)槿魏蜗到y(tǒng)都可以用數(shù)據(jù)流圖表示,所以面向數(shù)據(jù)流的設(shè)計(jì)方法理論上可以設(shè)計(jì)出任何軟件的系統(tǒng)結(jié)構(gòu)。數(shù)據(jù)流類型決定了映射方法。數(shù)據(jù)流有變換流和事務(wù)流兩種根本類型。軟件結(jié)構(gòu)也被劃分為變換型結(jié)構(gòu)、事務(wù)性結(jié)構(gòu)兩種類型。變換流外部表示內(nèi)部表示信息時間信息流輸入流輸出流變換流信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換為內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)過加工處理后再沿輸出通路變換為外部形式離開軟件系統(tǒng)。特點(diǎn):從同一數(shù)據(jù)源進(jìn)入系統(tǒng)的數(shù)據(jù),它在DFD中流動的邏輯路徑是相同的。事務(wù)流數(shù)據(jù)沿輸入通路到達(dá)一個處理(事務(wù)中心)這個處理根據(jù)輸入數(shù)據(jù)的類型在假設(shè)干個動作序列中選出一個來執(zhí)行。這種以“事務(wù)為中心〞的數(shù)據(jù)流,稱為“事務(wù)流〞;事務(wù)中心完成:接受輸入數(shù)據(jù);分析每個事務(wù)以確定它的類型;根據(jù)事務(wù)類型選取一條活動通路。事務(wù)中心事務(wù)DFD類型輸入輸出事務(wù)中心接受路徑動作路徑事務(wù)型結(jié)構(gòu)由輸入、變換中心和輸出三局部組成具有在多種事務(wù)中選擇執(zhí)行某類事物的能力變換型數(shù)DFD事務(wù)型DFD變換中心變換型結(jié)構(gòu)根本結(jié)構(gòu)特征映射變換型DFD變換中心傳入局部傳出局部總控模塊加工模塊輸入模塊輸出模塊變換型SC輸入加工輸出映射映射事務(wù)型DFD動作1事務(wù)中心接受局部接受事務(wù)事務(wù)分析動作2動作3事務(wù)中心調(diào)度模塊接受事務(wù)輸出模塊動作2動作1動作3映射事務(wù)型SC提示大型系統(tǒng)的數(shù)據(jù)流圖中,變換型和事務(wù)型結(jié)構(gòu)往往共存:T傳入變換傳出事務(wù)中心面向數(shù)據(jù)流的設(shè)計(jì)過程精化DFD確定DFD類型把DFD映射到系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)出模塊結(jié)構(gòu)的上層基于DFD逐步分解高層模塊設(shè)計(jì)出下層模塊根據(jù)模塊獨(dú)立性原理,精化模塊結(jié)構(gòu)模塊接口描述面向數(shù)據(jù)流方法中兩種映射過渡方法變換型DFD事務(wù)型DFD初始SC初始SC變換分析事務(wù)分析變換分析步驟確定輸入流和輸出流的邊界,孤立出變換中心在數(shù)據(jù)流圖上標(biāo)明分界線Aabcedrpuwv變換中心傳入部分傳出部分BCDEPRQWUV變換分析步驟第一級分解(建立初始結(jié)構(gòu)圖框架)設(shè)計(jì)頂層和第一層模塊MCMTMAME總控模塊初始的SC第一層分解后的結(jié)構(gòu)圖-1MCMTMAME第一層頂層c,ec,eu,wu,w傳出模塊中心變換模塊傳入模塊第一層分解后的結(jié)構(gòu)圖-2MCMA1ceu,wc,pMA2QPRME1eprrw,uw傳入分支模塊中心加工分支模塊傳出分支模塊ME2變換分析步驟第二級分解: 自頂向下分解,設(shè)計(jì)出每個分支的中、下層模塊方法從變換中心的邊界開始沿輸入通路向外移動,把輸入通路中每個處理邏輯映射成軟件結(jié)構(gòu)中MA控制的一個下層模塊;然后沿輸出通路向外移動,把輸出通路中每個處理邏輯映射成直接或間接受模塊ME控制的一個底層模塊;最后把變換中心內(nèi)的每個處理映射成受MT控制的一個模塊。傳入分支的分解MACBAbacEDdec,e(1)c,eMAGetCGetBReadAbacGetEReadDdeDtoEBtoCAtoBbcdeab(2)傳出分支的分解MEWPutUWriteVuuw,uUtoVvvvMEUWriteWwwuw,uV(1)(2)中心加工分支的分解MTPQRec,pru,wpr變換分析實(shí)例某校欲設(shè)計(jì)“成績錄入〞程序,由錄入員輸入成績信息(學(xué)號+課程代碼+成績),對程序要求如下:查詢是否有該學(xué)生查詢該學(xué)生的班級信息查詢教學(xué)方案信息查詢成績是否重復(fù)錄入在核對以上信息后保存該成績信息。成績信息成績庫姓名班級信息課程信息成績信息成績錄入精化數(shù)據(jù)流圖管理員輸入成績查詢學(xué)生查詢班級查詢教學(xué)方案查詢成績成績信息成績信息成績信息成績信息顯示姓名顯示班級顯示課程保存成績姓名班級信息課程信息教學(xué)方案班級信息學(xué)生信息無此學(xué)生報(bào)告無此班級報(bào)告無此課程報(bào)告重復(fù)輸入報(bào)告姓名班級信息課程信息成績信息劃界的數(shù)據(jù)流圖管理員輸入成績查詢學(xué)生查詢班級查詢教學(xué)方案查詢成績成績信息成績信息成績信息成績信息成績信息顯示姓名顯示班級顯示課程保存成績姓名班級信息課程信息成績庫教學(xué)方案班級信息學(xué)生信息無此學(xué)生報(bào)告無此班級報(bào)告無此課程報(bào)告重復(fù)輸入報(bào)告輸出加工輸入成績錄入上層模塊圖主模塊查詢輸出成績錄入如果輸入或輸出模塊已經(jīng)是原子模塊,那么不必進(jìn)一步細(xì)化;如果輸入和輸出模塊不需要變換數(shù)據(jù),那么輸入和輸出不需設(shè)計(jì)下層模塊;如果有多種輸入或輸出,那么這些輸入或輸出模塊作為輸入和輸出模塊的下層模塊。進(jìn)一步分解的規(guī)那么成績錄入結(jié)構(gòu)二次分解主模塊查詢輸出成績錄入查詢學(xué)生查詢班級查詢教學(xué)計(jì)劃查詢重復(fù)顯示姓名顯示班級顯示課程保存成績事務(wù)分析事務(wù)分析的設(shè)計(jì)步驟和變換分析的設(shè)計(jì)步驟大局部相同或類似,主要差異僅在由數(shù)據(jù)流圖到軟件結(jié)構(gòu)圖的映射方法不同。由事務(wù)流映射成軟件結(jié)構(gòu)包括一個接受分支和一個發(fā)送分支。映射出接受分支結(jié)構(gòu)的方法和變換分析映射出輸入結(jié)構(gòu)的方法相似,即從事務(wù)中心的邊界開始,把沿著接受流通路的處理邏輯模塊映射成模塊。發(fā)送分支的結(jié)構(gòu)包含一個調(diào)度模塊,它控制下層的所有活動模塊;然后把DFD中的每個活動流通路映射成與它的特征相對應(yīng)的結(jié)構(gòu)。事務(wù)分析步驟在數(shù)據(jù)流圖上確定事務(wù)中心、接收局部和發(fā)送局部。畫出結(jié)構(gòu)圖框架,把數(shù)據(jù)流圖上的三局部分別映射為事務(wù)控制模塊、接收模塊和動作發(fā)送模塊。分解細(xì)化接收分支和發(fā)送分支,完成初始結(jié)構(gòu)圖。初始的SC事務(wù)控制模塊接受模塊動作發(fā)送模塊動作1模塊動作2模塊動作3模塊由事務(wù)分析產(chǎn)生主模塊調(diào)度模塊事務(wù)分析的映射方法總控調(diào)度C通路B通路A通路TA通路B通路C通路接收路徑事務(wù)分析舉例ILMNABCDFEG事務(wù)中心事務(wù)流設(shè)計(jì)舉例取A總控ALMNGDBCFE〔主模塊〕調(diào)度動作分支的典型結(jié)構(gòu)PT2T1TiA2D2A1D1A3AjDk事務(wù)層操作層細(xì)節(jié)層處理層調(diào)度模塊事務(wù)加工模塊操作模塊細(xì)節(jié)模塊事務(wù)型數(shù)據(jù)流圖舉例ILMONABCDFEGH總控輸入A變換控制ALMNAGDBCFE輸出E、F、GE、F、GE、F、G輸出HOE、F、GHH事務(wù)型數(shù)據(jù)流圖舉例事務(wù)型分析實(shí)例某校欲設(shè)計(jì)“收費(fèi)查詢〞系統(tǒng),該程序可以為學(xué)生和管理人員效勞,由錄入員和管理員輸入查詢請求,即可查出學(xué)生的繳費(fèi)情況,要求做到:按學(xué)號查詢按姓名查詢按專業(yè)查詢按班級查詢精化數(shù)據(jù)流圖錄入員接受查詢分析查詢按學(xué)號查詢按姓名查詢按專業(yè)查詢按班級查詢查詢信息查詢信息學(xué)號姓名專業(yè)班級學(xué)生管理員繳費(fèi)清單繳費(fèi)清單繳費(fèi)清單繳費(fèi)清單得出程序結(jié)構(gòu)首先應(yīng)設(shè)計(jì)出事務(wù)中心模塊,對整個事務(wù)進(jìn)行控制。從數(shù)據(jù)流圖可看出,“分析查詢〞處理是事務(wù)調(diào)度中心,可以設(shè)計(jì)為事務(wù)調(diào)度模塊。由四個事務(wù)處理,分別為其設(shè)計(jì)事務(wù)處理模塊。輸入模塊為“接受查詢〞。事務(wù)中心接受查詢調(diào)度輸出查詢結(jié)果按學(xué)號查詢按姓名查詢按專業(yè)查詢按班級查詢混合流分析-例13412675810911變換中心傳入傳出事務(wù)型混合流分析-例2T傳入變換傳出事務(wù)中心接收局部發(fā)送部分混合流分析-例3AB變換中心傳入傳出abb1b2b3c1c2c3BCT1T2CDT3DEEHFJLMKLdegfjLm事務(wù)流子系統(tǒng)HKhk混合流分析—例4XX系統(tǒng)輸入D變換控制輸出K輸入Cdc輸出LCDDEFJEHHKKLcddkkkLL輸出MLMmmL事務(wù)子系統(tǒng)de,f,g提示對于一個大型系統(tǒng),常常把變換分析和事務(wù)分析應(yīng)用到同一個數(shù)據(jù)流圖的不同局部,由此得到的子結(jié)構(gòu)形成“構(gòu)件〞,可以利用它們構(gòu)造完整的軟件結(jié)構(gòu);一般來說,如果數(shù)據(jù)流不具有顯著的事務(wù)特點(diǎn),使用變換分析;反之,假設(shè)具有明顯的事務(wù)中心,那么應(yīng)該采用事務(wù)分析技術(shù)。設(shè)計(jì)優(yōu)化考慮設(shè)計(jì)優(yōu)化問題時,應(yīng)該記住“一個不能工作的‘最正確設(shè)計(jì)’的價(jià)值是值得疑心的〞。應(yīng)該在設(shè)計(jì)的早期階段對軟件結(jié)構(gòu)進(jìn)行精化、優(yōu)化??梢詫?dǎo)出不同的軟件結(jié)構(gòu),并對它們進(jìn)行評價(jià)和比較,力求得到“最好〞的結(jié)果。注意,簡單的結(jié)構(gòu)通常既表示優(yōu)雅的設(shè)計(jì)風(fēng)格,又表示高效率。設(shè)計(jì)優(yōu)化應(yīng)該力求做到在有效模塊化的前提下使用最少的模塊,以及在能夠滿足系統(tǒng)數(shù)據(jù)要求的前提下,使用最簡單的數(shù)據(jù)結(jié)構(gòu)。階段性成果系統(tǒng)說明書用戶手冊測試方案詳細(xì)的實(shí)現(xiàn)方案數(shù)據(jù)庫設(shè)計(jì)文檔……詳細(xì)設(shè)計(jì)內(nèi)容提要詳細(xì)設(shè)計(jì)根底結(jié)構(gòu)化程序設(shè)計(jì)方法詳細(xì)設(shè)計(jì)工具流程圖〔FC〕盒圖圖〔NS〕PAD圖程序設(shè)計(jì)語言判定表判定樹詳細(xì)設(shè)計(jì)說明書設(shè)計(jì)復(fù)審詳細(xì)設(shè)計(jì)又稱過程設(shè)計(jì),在概要設(shè)計(jì)階段,已經(jīng)確定了軟件系統(tǒng)的總體結(jié)構(gòu),給出系統(tǒng)中各個組成模塊的功能和模塊間的聯(lián)系。這一步的工作,就是要在上述結(jié)果的根底上,考慮“怎樣實(shí)現(xiàn)〞這個軟件系統(tǒng),直到對系統(tǒng)中的每個模塊給出足夠詳細(xì)的過程性描述。需要指出,這些描述應(yīng)該用詳細(xì)設(shè)計(jì)的表達(dá)工具來表示,因它們還不是程序,一般不能夠在計(jì)算機(jī)上運(yùn)行。詳細(xì)設(shè)計(jì)提示詳細(xì)設(shè)計(jì)是編碼的先導(dǎo)。這個階段所產(chǎn)生的設(shè)計(jì)文檔的質(zhì)量,將直接影響下一階段程序的質(zhì)量。為了提高文檔的質(zhì)量和可讀性,本章除要說明詳細(xì)設(shè)計(jì)的目的、任務(wù)與表達(dá)工具外,還將扼要介紹結(jié)構(gòu)程序設(shè)計(jì)的根本原理,以及如何用這些原理來指導(dǎo)模塊內(nèi)部的邏輯設(shè)計(jì),提高模塊控制結(jié)構(gòu)的清晰度。對于功能較簡單的系統(tǒng)開發(fā),概要設(shè)計(jì)之后可以跳過詳細(xì)設(shè)計(jì)直接進(jìn)行編碼。詳細(xì)設(shè)計(jì)的目的詳細(xì)設(shè)計(jì)的目的是為軟件結(jié)構(gòu)圖〔SC圖或HC圖〕中的每一個模塊確定使用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),并用某種選定的表達(dá)工具給出清晰的描述。表達(dá)工具可以由開發(fā)單位或設(shè)計(jì)人員選擇,但表達(dá)工具必須具有描述過程細(xì)節(jié)的能力,進(jìn)而可在編碼階段能夠直接將它翻譯為用程序設(shè)計(jì)語言書寫的源程序。詳細(xì)設(shè)計(jì)的任務(wù)為每個模塊確定采用的算法,選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過程,編寫模塊的詳細(xì)過程性描述;確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu);確定模塊接口的細(xì)節(jié),包括對系統(tǒng)外部的接口和用戶界面,對系統(tǒng)內(nèi)部其它模塊的接口,以及模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié)。在詳細(xì)設(shè)計(jì)結(jié)束時,應(yīng)該把上述結(jié)果寫入詳細(xì)設(shè)計(jì)說明書,并且通過復(fù)審形成正式文檔。交付給下一階段〔編碼階段〕的工作依據(jù)。詳細(xì)設(shè)計(jì)的任務(wù)要為每一個模塊設(shè)計(jì)出一組測試用例,以便在編碼階段對模塊代碼〔即程序〕進(jìn)行測試。模塊的測試用例是軟件測試方案的重要組成局部,通常應(yīng)包括輸入數(shù)據(jù),期望輸出等內(nèi)容。由于負(fù)責(zé)詳細(xì)設(shè)計(jì)的軟件人員對模塊的功能、邏輯和接口最清楚,所以由他們提出對各個模塊的測試要求最為適宜。詳細(xì)設(shè)計(jì)的原那么模塊的邏輯描述要清晰易讀、正確可靠。選擇恰當(dāng)描述工具來描述各模塊算法。采用結(jié)構(gòu)化設(shè)計(jì)方法,改善控制結(jié)構(gòu),降低程序的復(fù)雜程度,從而提高程序的可讀性、可測試性、可維護(hù)性。其根本內(nèi)容歸納如下:程序語言中應(yīng)盡量少用GOTO語句,以確保程序結(jié)構(gòu)的獨(dú)立性。使用單入口單出口的控制結(jié)構(gòu),確保程序的靜態(tài)結(jié)構(gòu)與動態(tài)執(zhí)行情況相一致。保證程序易理解。程序的控制結(jié)構(gòu)一般采用順序、選擇、循環(huán)三種結(jié)構(gòu)來構(gòu)成,確保結(jié)構(gòu)簡單。用自頂向下逐步求精方法完成程序設(shè)計(jì)。結(jié)構(gòu)化程序設(shè)計(jì)的缺點(diǎn)是存儲容量和運(yùn)行時間增加10一20%,但可讀性和可維護(hù)性好。詳細(xì)設(shè)計(jì)的方法--結(jié)構(gòu)程序設(shè)計(jì)方法結(jié)構(gòu)程序設(shè)計(jì)的概念最早由提出。1965年他在一次會議上指出“可以從高級語言中消除goto語句〞,“程序的質(zhì)量和程序中所包含的goto語句的數(shù)量成反比〞。1966年Bohm、Jacopomo證明了只用三種根本的控制結(jié)構(gòu)—順序、選擇、循環(huán),就能實(shí)現(xiàn)任何單入口單出口程序。結(jié)構(gòu)程序設(shè)計(jì)方法實(shí)際上用順序和循環(huán)結(jié)構(gòu)〔do-while〕完全可以實(shí)現(xiàn)選擇結(jié)構(gòu)〔if-then-else〕因此理論上最根本的控制結(jié)構(gòu)只有兩種。ABExpBTFExpTFAB結(jié)構(gòu)程序設(shè)計(jì)方法隨著對高級語言中是否取消GOTO語句討論的深入,人們逐漸認(rèn)識到:不是簡單去掉GOTO語句,而是要建立一種新的程序設(shè)計(jì)思想、方法和風(fēng)格,以顯著的提高軟件生產(chǎn)率和降低軟件維護(hù)代價(jià)。成功的工程實(shí)踐:紐約時報(bào)信息庫管理系統(tǒng)美國宇航局空間實(shí)驗(yàn)室飛行模擬系統(tǒng) 驗(yàn)證了結(jié)構(gòu)設(shè)計(jì)方法的有效性。結(jié)構(gòu)程序設(shè)計(jì)方法1972年Mills進(jìn)一步指出:程序應(yīng)該只有一個入口和一個出口,補(bǔ)充了結(jié)構(gòu)程序設(shè)計(jì)的規(guī)那么。結(jié)構(gòu)程序設(shè)計(jì)的定義經(jīng)典定義 “如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這三種根本控制結(jié)構(gòu)進(jìn)行連結(jié),并且每個代碼塊只有一個入口和一個出口,那么稱這個程序是結(jié)構(gòu)化的。〞上述經(jīng)典定義過于狹隘,結(jié)構(gòu)程序設(shè)計(jì)的實(shí)質(zhì)并不是無goto語句的編程方法,而是一種使程序代碼容易閱讀、容易理解的編程方法。為此我們給出如下定義: “結(jié)構(gòu)程序設(shè)計(jì)是盡可能少用goto語句的程序設(shè)計(jì)方法。最好在檢測出錯誤時才使用goto語句。〞結(jié)構(gòu)程序設(shè)計(jì)雖然理論上上述三種根本控制結(jié)構(gòu)就可以實(shí)現(xiàn)任何單入口單出口的程序,但是為了實(shí)際使用方便起見,常常允許使用do-until和do-case結(jié)構(gòu):ExpTAFDoCaseiCASE1CASEn……結(jié)構(gòu)程序設(shè)計(jì)有時要立即從循環(huán)中轉(zhuǎn)移出來,如果允許使用leave或break結(jié)構(gòu),那么不僅方便而且高效。Leave和break實(shí)質(zhì)是受限制的goto語句。詳細(xì)設(shè)計(jì)工具如何用一種適宜的表示方式來描述每個模塊的執(zhí)行過程? 目前常用的描述方式一般有三類,即圖形描述、語言描述和表格描述:圖形描述包括程序流程圖、盒圖、問題分析圖等;語言描述,即用某種高級語言〔稱之為偽碼〕來描述過程的細(xì)節(jié)。表格描述包括判定表等。程序流程圖程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達(dá)工具。它獨(dú)立于任何一種程序設(shè)計(jì)語言,能比較直觀和清晰地描述過程的控制流程,易于學(xué)習(xí)掌握。因此,程序流程圖是軟件開發(fā)者最普遍采用的一種工具。程序流程圖在程序流圖中定義了下述的五種根本控制結(jié)構(gòu):順序型選擇性While型循環(huán)Until型循環(huán)多情況型選擇程序流程圖順序型由幾個連續(xù)的處理步驟依次排列構(gòu)成選擇型是指由某個邏輯判斷式的取值決定選擇兩個處理中的一個ABABP程序流程圖while型循環(huán)是先判定型循環(huán),在循環(huán)控制條件成立時,重復(fù)執(zhí)行特定的處理until型循環(huán)是后判定型循環(huán),重復(fù)執(zhí)行某些特定的處理,直到控制條件成立為止SPSP程序流程圖多情況型選擇列舉多種處理情況,根據(jù)控制變量的取值,選擇執(zhí)行其一。A1PPPA2An……程序流程圖的主要缺點(diǎn)程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早考慮程序控制流程,而不去考慮程序的全局結(jié)構(gòu)。程序流圖中用箭頭表示控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)思想,隨意轉(zhuǎn)移控制。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。N-S圖Nassi和Shneiderman提出了一種符合結(jié)構(gòu)化程序設(shè)計(jì)原那么的圖形描述工具,稱之為盒圖〔N-S圖〕。在N-S圖中,為了表示五種根本控制結(jié)構(gòu),規(guī)定了五種圖形構(gòu)件:順序型結(jié)構(gòu)選擇型結(jié)構(gòu)While重復(fù)型循環(huán)結(jié)構(gòu)Until重復(fù)型循環(huán)結(jié)構(gòu)多分支選擇型結(jié)構(gòu)N-S圖順序型選擇型多分支選擇型ABTFPS1S2While循環(huán)結(jié)構(gòu)Until型循環(huán)結(jié)構(gòu)TFPSDO-WHILEPSDO-UNTILPSP=1=2=nS1S2S2…………N-S圖另外,補(bǔ)充調(diào)用子程序的盒圖表示方法如下:AN-S圖例1:AX1TFX2TFDO-WHILEX2CDBN-S圖ajbX1fX2X4=1=2=3ighcdeTTFFDO-UNTILX5DO-UNTILX6DO-WHILEX3例2:N-S圖的特點(diǎn)圖形清晰、準(zhǔn)確;控制轉(zhuǎn)移不能任意規(guī)定,必須遵守結(jié)構(gòu)化程序設(shè)計(jì)原那么;很容易確定局部數(shù)據(jù)和全局?jǐn)?shù)據(jù)的作用域;容易表現(xiàn)嵌套關(guān)系和模塊的層次結(jié)構(gòu)。PAD圖PAD是Problemanalysisdiagram的英文縮寫,它是日本日立公司提出的。它是用結(jié)構(gòu)化程序設(shè)計(jì)思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。PAD也設(shè)置了五種根本控制結(jié)構(gòu)的圖示,并允許遞歸使用:PAD圖按順序先執(zhí)行A,再執(zhí)行B。給出了判斷條件為C的選擇型結(jié)構(gòu)。當(dāng)P為真值時執(zhí)行上面的A框,C取假值時執(zhí)行下面的B框中的內(nèi)容。如果這種選擇型結(jié)構(gòu)只有A框,沒有B框,表示該選擇結(jié)構(gòu)中只有THEN后面有可執(zhí)行語句A,沒有ELSE局部。ABAB條件CPAD圖WHILECPUNTILCPWhile型循環(huán)結(jié)構(gòu)Until型循環(huán)結(jié)構(gòu)PnP2P1多分支選擇型結(jié)構(gòu)PAD圖的擴(kuò)充結(jié)構(gòu)為了反映增量型循環(huán)結(jié)構(gòu),在PAD圖中增加了對用于FORi:=n1ton2stepn3do的循環(huán)控制結(jié)構(gòu),如以下圖所示。其中,n1是循環(huán)初值,n2是循環(huán)終值,n3是循環(huán)增量。I=n1,n2,n3SPAD圖的擴(kuò)充結(jié)構(gòu)PAD所描述程序的層次關(guān)系表現(xiàn)在縱線上。每條縱線表示一個層次。把PAD圖從左到右展開,隨著程序?qū)哟蔚脑黾?,PAD逐漸向右展開,有可能會超過一頁紙,這時,對PAD增加了一種如以下圖所示的擴(kuò)充形式:當(dāng)一個模塊A在一頁紙上畫不下時,可在圖中該模塊相應(yīng)位置矩形框中簡記一個“NAMEA〞,再在另一頁紙上詳細(xì)畫出A的內(nèi)容,用def及雙下劃線來定義作A的PAD。這種方式可使在一張紙上畫不下的圖,分在幾張紙上畫出,也可以用它定義子程序。defP1P2條件CSNAMEANAMEAP1C1C2I=n1,n2,n3PAD圖的特點(diǎn)PAD圖的結(jié)構(gòu)化程度高;PAD圖中的第一條縱線是程序的主干線,即程序的第一層結(jié)構(gòu)。其后,每增加一個層次,那么向右擴(kuò)展一條縱線。程序中的層數(shù)就是PAD圖中的縱線數(shù)。因此,PAD圖的可讀性強(qiáng)。利用PAD圖設(shè)計(jì)出的程序必定是結(jié)構(gòu)化的程序。利用軟件工具可以將PAD圖轉(zhuǎn)換成高級語言程序,進(jìn)而提高了軟件的可靠性和生產(chǎn)率。PAD圖支持自頂向下的逐步求精的方法。PDL—過程設(shè)計(jì)語言PDL〔ProcedureDesignLanguage〕是過程設(shè)計(jì)語言的英文縮寫,于1975年由Caine與Gordon首先提出。PDL是所有非正文形式的過程設(shè)計(jì)工具的統(tǒng)稱,到目前為止已出現(xiàn)多種PDL語言。PDL的特點(diǎn)關(guān)鍵字采用固定語法并支持結(jié)構(gòu)化構(gòu)件、數(shù)據(jù)說明機(jī)制和模塊化;處理局部采用自然語言描述;可以說明簡單和復(fù)雜的數(shù)據(jù)結(jié)構(gòu);子程序的定義與調(diào)用規(guī)那么不受具體接口方式的影響。選擇結(jié)構(gòu)IF<條件> 一條或數(shù)條語句ELSEIF<條件> 一條或數(shù)條語句ELSEIF<條件> 一條或數(shù)條語句ELSE 一條或數(shù)條語句ENDIF循環(huán)結(jié)構(gòu)While循環(huán)結(jié)構(gòu)Until循環(huán)結(jié)構(gòu)For循環(huán)結(jié)構(gòu)DOWHILE<條件描述> 一條或數(shù)條語句ENDWHILEREPEATUNTIL<條件描述> 一條或數(shù)條語句ENDREPFOR<循環(huán)變量>=<取值范圍,表達(dá)式或序列> 一條或數(shù)條語句ENDFOR子程序 PROCEDURE<子程序名><屬性表> INTERFACE<參數(shù)表> 一條或數(shù)條語句 END 其中,屬性表指明了子程序的引用特性和利用的程序語言的特性。輸入輸出READ/WRITETO<設(shè)備><I/O表>PDL評價(jià)優(yōu)點(diǎn)可以作為注釋直接插在源程序中;可以使用普通的文本編輯工具或文字處理工具產(chǎn)生和管理;已經(jīng)有自動處理程序存在,而且可以自動有PDL生成程序代碼。缺乏不如圖型工具形象直觀,描述復(fù)雜的條件組合與動作間對應(yīng)關(guān)系時,不如判定表、判定樹清晰簡單。當(dāng)模塊中包含復(fù)雜的條件組合時,并要根據(jù)這些條件選擇動作時,系統(tǒng)流程圖、盒圖、PDL語言都有一定缺陷。這時我們可以采用判定表、判定樹來描述。判定表判定表有四局部組成:所有條件、所有動作、條件組合及其對應(yīng)動作。所有條件條件組合所有動作相應(yīng)動作判定表例子假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過30公斤的行李。當(dāng)行李重量超過30公斤時,對頭等艙的國內(nèi)乘客超重局部每公斤收費(fèi)4元,對其它艙的國內(nèi)乘客超重局部每公斤收費(fèi)6元,對外國乘客超重局部每公斤收費(fèi)比國內(nèi)乘客多一倍,對殘疾乘客超重局部每公斤收費(fèi)比正常乘客少一半。用判定表來表示與上述每種條件組合相對應(yīng)的動作。判定表TFFFTTTFTTTTTTTTTFFFFFFFFFFFFFFFF×××××××××國內(nèi)乘客頭等艙殘疾乘客行李≤30kg免費(fèi)(W-30)*2(W-30)*3(W-30)*4(W-30)*6(W-30)*8(W-30)*12判定樹判定樹實(shí)質(zhì)是判定表的變形,它們僅僅是形式上的差異,本質(zhì)是一樣的!行李費(fèi)算法行李重量W>30國內(nèi)乘客外國乘客頭等艙其它艙殘疾乘客----(W-30)*2正常乘客----(W-30)*4殘疾乘客----(W-30)*3正常乘客----(W-30)*6頭等艙其它艙殘疾乘客----(W-30)*4正常乘客----(W-30)*8殘疾乘客----(W-30)*6正常乘客----(W-30)*12免費(fèi)行李重量W<=30判定表和判定樹可以描述復(fù)雜的條件,這些用N-S圖和PAD圖是不易表達(dá)的;判定樹的優(yōu)點(diǎn)是形式簡單、較直觀、易于掌握和使用;判定樹的缺點(diǎn)是簡潔性不如判定表、重復(fù)多。詳細(xì)設(shè)計(jì)的階段性成果詳細(xì)設(shè)計(jì)說明書表示軟件結(jié)構(gòu)的圖表;對逐個模塊的描述,包括算法和邏輯流程,輸入/輸出項(xiàng),與外部接口等。詳細(xì)設(shè)計(jì)復(fù)審復(fù)審的指導(dǎo)原那么詳細(xì)設(shè)計(jì)復(fù)審一般不邀請用戶和其他領(lǐng)域的代表。復(fù)審是為了提早揭露錯誤,參加復(fù)審的設(shè)計(jì)人員應(yīng)該歡送別人提出批評和建議,但復(fù)審的對象是設(shè)計(jì)文檔,不是設(shè)計(jì)者本身,其他參加者也應(yīng)為復(fù)審創(chuàng)造和諧的氣氛。復(fù)審中提出的問題應(yīng)詳細(xì)記錄,但不一定當(dāng)場解決。復(fù)審結(jié)束前作出本次復(fù)審能否通過的結(jié)論。設(shè)計(jì)復(fù)審是非常重要的工作,設(shè)計(jì)復(fù)審主要是指對設(shè)計(jì)文檔的復(fù)審。復(fù)審的主要內(nèi)容詳細(xì)設(shè)計(jì)復(fù)審的重點(diǎn)應(yīng)該放在各個模塊的具體設(shè)計(jì)上。例如模塊的設(shè)計(jì)能否滿足其功能與性能要求、選擇的算法與數(shù)據(jù)結(jié)構(gòu)是否合理、符不符合編碼語言的特點(diǎn)、設(shè)計(jì)描述是否簡單、清晰等等。復(fù)審的方式復(fù)審分正式與非正式兩種方式:非正式復(fù)審的特點(diǎn)是參加人數(shù)少,且均為軟件人員,帶有同行討論的性質(zhì)。因而方便靈活,十分適合于詳細(xì)設(shè)計(jì)復(fù)審。常采用的非正式復(fù)審的過程是:由一名設(shè)計(jì)人員逐行宣讀設(shè)計(jì)資料,由到會的同行跟隨他指出的次序一行行的往下審查。發(fā)現(xiàn)有問題或錯誤就做好記錄,然后根據(jù)多數(shù)參加者的意見,決定通過該設(shè)計(jì)資料或退回原設(shè)計(jì)人進(jìn)行糾正。正式復(fù)審除軟件開發(fā)人員外,還邀請用戶代表和領(lǐng)域?qū)<覅⒓?,通常采用辯論方式,與會者要提前審閱文檔資料,設(shè)計(jì)人員對設(shè)計(jì)方案詳細(xì)說明之后,答復(fù)與會者的問題并記錄各種重要的評審意見。人機(jī)界面設(shè)計(jì)人機(jī)界面〔Human-ComputeInterface,HCI〕設(shè)計(jì)是絕大局部軟件設(shè)計(jì)中必不可少的活動,與其他設(shè)計(jì)活動相比,人機(jī)界面的設(shè)計(jì)與最終用戶及應(yīng)用領(lǐng)域的關(guān)系更緊密。一個好的界面設(shè)計(jì)必須建立在對應(yīng)用領(lǐng)域中原有任務(wù)及軟件系統(tǒng)未來的用戶透徹了解和把握的根底之上。設(shè)計(jì)用戶界面不僅需要計(jì)算機(jī)科學(xué)的理論知識,而且需要認(rèn)知心理學(xué)以及人-機(jī)工程學(xué)、語言學(xué)等學(xué)科的知識。人機(jī)界面設(shè)計(jì)內(nèi)容提要人的因素人機(jī)界面風(fēng)格人機(jī)界面設(shè)計(jì)過程人機(jī)界面實(shí)現(xiàn)的原那么人機(jī)界面標(biāo)準(zhǔn)人的因素所謂“人的因素〞包含如下3層含義;人對感知過程的認(rèn)識,包括視覺、閱讀時的認(rèn)知心理、記憶、歸納與演繹推理等;用戶已有的技能和行為方式:用戶所要求完成的整個任務(wù)以及用戶對人機(jī)交互局部的特殊要求。由于用戶通過界面與系統(tǒng)交互.因此只有充分考慮了人的因素,對話才能和諧流暢,否那么系統(tǒng)內(nèi)部無論設(shè)計(jì)得多么合理,整個系統(tǒng)也將表現(xiàn)得不夠友善。人類感知根底感官是人類認(rèn)知客觀世界的初始通道。因此,設(shè)計(jì)人機(jī)界面要充分考慮視覺、觸覺和聽覺的作用,這樣才能使用戶有效地從系統(tǒng)獲取信息,并存入記憶中,并通過大腦用歸納和演繹的方法進(jìn)行推理。大多數(shù)人機(jī)界面都在可視介質(zhì)上實(shí)現(xiàn),此時,用戶總是眼腦并用,并根據(jù)所顯示的內(nèi)容、體積、形狀、顏色、方向、移動和其他表現(xiàn)解釋所獲可視信息。如何表示這些可視信息是設(shè)計(jì)“友好〞界面的關(guān)鍵。人類感知根底閱讀--從正文中提取信息仍為大多數(shù)界面的主要活動。人們首先對可視的句式〔patterns〕進(jìn)行解碼,然后在大腦內(nèi)檢索字或短語的意思。這個過程的快慢受到眼球運(yùn)動模式的控制,字號、字體、行長、大小寫、位置和顏色等諸多因素也會直接影響到信息提取的難易程度。人類感知根底人腦的組成:短期記憶系統(tǒng)〔Short?TermMemory,STM〕長期記憶系統(tǒng)〔Long?TermMemory,LTM〕感官輸入〔視、聽、觸〕一開始放在“緩沖區(qū)〞中,隨即存入STM,STM中的信息可立即重用。但緩沖區(qū)的大小、STM中信息可重用的時間間隔都十分有限。知識—指語法、語義信息,一般存在LTM中,它們是人對事物做出反響的依據(jù)。因此,系統(tǒng)分析員在說明人機(jī)界面時,假設(shè)對STM和〔或〕LTM有什么過分要求,必將導(dǎo)致系統(tǒng)性能的下降。人類感知根底大多數(shù)人遇到問題時并不進(jìn)行形式的演繹和歸納推理,而是使用一組啟發(fā)式策略。這組策略是從以往對類似問題的處理中逐漸獲得的。因此,設(shè)計(jì)人機(jī)界面時還應(yīng)便于用戶積累有關(guān)交互工作的經(jīng)驗(yàn),同時要注意這些啟發(fā)式策略的一致性,不宜受特殊交互領(lǐng)域的影響。用戶的技能用戶本身的技能,個性上的差異,行為方式的不同,都會對人機(jī)界面造成影響。終端用戶的技能,直接影響到他從人機(jī)界面上獲取信息、對系統(tǒng)做出反響、以及使用啟發(fā)式策略與系統(tǒng)和諧地進(jìn)行交互的能力。大多數(shù)情況下,特定領(lǐng)域的知識比廣泛的教育和智慧更重要。此外,每個人的個性又往往與思維方式或認(rèn)知方式相聯(lián)系。因此理想的人機(jī)界面應(yīng)針對具有典型個性的特定的一類用戶設(shè)計(jì),不過目前在這方面可供人機(jī)界面設(shè)計(jì)人員參考的經(jīng)驗(yàn)還很貧乏。任務(wù)與用戶的特殊要求設(shè)計(jì)交互式應(yīng)用軟件系統(tǒng),大多數(shù)情況下是為了追求速度、效率、精度或降低本錢,使那些原來由手工或其他方式完成的任務(wù)能自動〔或半自動〕地完成。因任務(wù)本身根本不變,用戶自然要求人機(jī)界面能提供一個他早已熟悉,并感到親切自然的環(huán)境。任務(wù)與用戶的特殊要求任務(wù)千差萬別,但大致可分為下面幾類:通信型任務(wù)〔communicationtask〕:使信息從生產(chǎn)者傳遞到使用者的活動。對話型任務(wù)〔dialoguetask〕:使用戶能指揮和控制與系統(tǒng)交互的活動。認(rèn)知型任務(wù)〔cognitivetask〕:獲得信息即可執(zhí)行的活動,或與系統(tǒng)功能關(guān)聯(lián)的活動??刂菩腿蝿?wù)〔controltask〕:允許用戶對信息及其他任務(wù)處理的順序進(jìn)行控制的活動。具體開發(fā)這些任務(wù)時,將用到用戶界面設(shè)計(jì)技術(shù)--任務(wù)分析和建模。人機(jī)界面風(fēng)格命令和詢問方式簡單的菜單式面向窗口的點(diǎn)選〔W窗口I圖標(biāo)M菜單P光標(biāo)〕界面第四代界面命令和詢問方式最早在圖形顯示、鼠標(biāo)、高速工作站等技術(shù)出現(xiàn)之前,現(xiàn)實(shí)可行的界面方式只能是命令和詢問方式,通信完全以正文形式并通過用戶命令和用戶對系統(tǒng)詢問的響應(yīng)來完成。例如:>run/debug='on'/out=P1/in=t1/alloc=1000k.RUNALLOCATIONTOBEQUEUED?>>yes.AUTOMATICCHECKPOINTINGINTERVAL?>>5盡管每個命令和詢問都不復(fù)雜,但對用戶來說易出錯、不友善且難于學(xué)習(xí)。簡單的菜單式 這種方式與命令行方式相比不易出錯,但使用起來仍然乏味。比方有選擇7進(jìn)入另一個選擇時候,必須逐級進(jìn)行,不能一步到位。Chooseprogramoptionthatisdesired:1.Inputdatamanually2.Inputdatafromexistingdatafile3.Performsimplifiedanalysis4.Performdetailedanalysis5.Prodecetabularoutput6.Producegraphicaloutput7.OtheroptionscalssesSelectoption?_面向窗口的點(diǎn)選界面隨著硬件的開展,特別是軟件工程師逐漸認(rèn)識到人的因素對界面設(shè)計(jì)的影響,面向窗口的點(diǎn)選界面出現(xiàn)了,此類界面亦稱為WIMP界面,即窗口、圖標(biāo)、菜單、指示器四為一體,形成桌面的概念。面向窗口的點(diǎn)選界面的優(yōu)點(diǎn)能同時顯示不同種類的信息,使用戶可在幾個工作環(huán)境中切換而不喪失幾個工作之間的聯(lián)系,窗口使用戶能自如地執(zhí)行許多通信型和認(rèn)知型任務(wù)。用戶通過下拉式菜單可以方便的執(zhí)行控制型和對話型任務(wù)。引入圖標(biāo)、下拉式菜單、按鈕和滾動條技術(shù),可大大減少鍵盤輸入,這對那些不精于打字的用戶無疑提高了交互效率,極大地推動了計(jì)算機(jī)應(yīng)用。第四代界面最新一代HCI把第三代HCI技術(shù)與超文本、多任務(wù)概念結(jié)合起來,使用戶可同時執(zhí)行多個仟務(wù)。第四代界面已出現(xiàn)在許多工作站和高性能PC機(jī)上。人機(jī)界面設(shè)計(jì)過程人機(jī)界面的設(shè)計(jì)過程可分為下面幾個步驟:創(chuàng)立系統(tǒng)功能的外部模型;確定為完成此系統(tǒng)功能人和計(jì)算機(jī)應(yīng)分別完成的任務(wù)考慮界面設(shè)計(jì)中的典型問題;借助CASE工具構(gòu)造界面原型;真正實(shí)現(xiàn)設(shè)計(jì)模型:評估界面質(zhì)量。人機(jī)界面設(shè)計(jì)的相關(guān)模型在人機(jī)界面的設(shè)計(jì)過程中先后涉及四個模型:由軟件工程師創(chuàng)立的設(shè)計(jì)模型〔designmodel〕,由人機(jī)工程師〔或軟件工程師〕創(chuàng)立的用戶模型〔usermodel〕,終端用戶對未來系統(tǒng)的假想〔systemperception或user'smodel〕系統(tǒng)實(shí)現(xiàn)后得到的系統(tǒng)映象〔systemimage〕。一般來說,這四個模型之間差異很大,界面設(shè)計(jì)時要充分平衡四者之間的差異,設(shè)計(jì)協(xié)調(diào)一致的界面。人機(jī)界面設(shè)計(jì)的相關(guān)模型設(shè)計(jì)模型主要考慮軟件的數(shù)據(jù)結(jié)構(gòu)、總體結(jié)構(gòu)和過程性描述,界面設(shè)計(jì)一般只作為附屬品;用戶模型概括了終端用戶的大致情況,只有對假想用戶的情況有
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化創(chuàng)意產(chǎn)業(yè)扶貧-洞察分析
- 虛擬現(xiàn)實(shí)康復(fù)訓(xùn)練-第2篇-洞察分析
- 微整形手術(shù)風(fēng)險(xiǎn)與倫理探討-洞察分析
- 勤儉節(jié)約好少年事跡(6篇)
- 冬季雨雪的應(yīng)急預(yù)案(5篇)
- 《差異量數(shù)》課件
- 企業(yè)實(shí)驗(yàn)室內(nèi)訓(xùn)師的安全管理職責(zé)
- 幼兒教育行業(yè)親子活動分享
- 船舶行業(yè)會計(jì)工作總結(jié)
- 從專業(yè)角度解析如何對實(shí)驗(yàn)室設(shè)備進(jìn)行深度保養(yǎng)
- 五年級數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專項(xiàng)練習(xí)及答案
- 《機(jī)電概念設(shè)計(jì)基礎(chǔ)》課件-運(yùn)行時行為
- 2024-2030年中國奶粉行業(yè)營銷策略及未來5發(fā)展趨勢報(bào)告
- 2024年度?;钒踩芾韱T聘用合同2篇
- 2025屆杭州第二中學(xué)高三第五次模擬考試數(shù)學(xué)試卷含解析
- 2024河北省建筑安全員-A證考試題庫及答案
- 開題報(bào)告:新業(yè)態(tài)下大學(xué)生高質(zhì)量充分就業(yè)實(shí)現(xiàn)路徑研究-基于雙邊匹配的視角
- 江蘇南京市棲霞區(qū)八校聯(lián)考2024-2025學(xué)年九年級上冊歷史調(diào)研試卷(含答案)
- 山東實(shí)驗(yàn)中學(xué)2025屆高三第三次診斷考試 英語試卷(含答案)
- 醫(yī)院滿意度調(diào)查系統(tǒng)方案
- 2024年度企業(yè)信息化建設(shè)與技術(shù)實(shí)施合同3篇
評論
0/150
提交評論