版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件設(shè)計(jì)基礎(chǔ)教學(xué)內(nèi)容軟件設(shè)計(jì)的基本概念軟件設(shè)計(jì)過程軟件設(shè)計(jì)的質(zhì)量軟件體系結(jié)構(gòu)設(shè)計(jì)高可信軟件設(shè)計(jì)軟件設(shè)計(jì)規(guī)格說明軟件設(shè)計(jì)評審軟件設(shè)計(jì)的基本概念軟件設(shè)計(jì)主要針對需求分析過程中得到的軟件需求規(guī)格說明,綜合考慮各種制約因素,探求切實(shí)可行的軟件解決方案并最終給出方案的邏輯表示,包括文檔,模型制約因素資源:時(shí)間,人力,財(cái)力、開發(fā)工具技術(shù):方法、技術(shù)、平臺最終目標(biāo):滿足需求的解決方案明確:設(shè)計(jì)模型易于理解可行:在可用的技術(shù)平臺和軟件項(xiàng)目的可用資源條件下,須用預(yù)定的開發(fā)語言可構(gòu)造技術(shù)可以完整地實(shí)現(xiàn)設(shè)計(jì)模型高質(zhì)量:設(shè)計(jì)模型給出需求的實(shí)現(xiàn)方案,非功能需求的約束,設(shè)計(jì)模型優(yōu)化抽象與求精模塊化與信息隱藏模塊劃分的準(zhǔn)則可分解性可組裝性可理解性連續(xù)性保護(hù)模塊獨(dú)立性(Moduleindependence)好設(shè)計(jì)的關(guān)鍵:每個(gè)模塊完成一個(gè)相對獨(dú)立的子功能,并且與其它模塊間的接口簡單。信息隱蔽(Informationhiding)支持模塊的并行開發(fā)減少測試和維護(hù)的工作量提高了系統(tǒng)的靈活性和可擴(kuò)展性內(nèi)聚與耦合內(nèi)聚性:模塊內(nèi)部各成分之間關(guān)聯(lián)程度的度量偶然性內(nèi)聚:一個(gè)模塊內(nèi)各成分為完成一組功能而組合在一起,它們相互之間即使用關(guān)系,也很松散邏輯性內(nèi)聚:模塊完成的諸任務(wù)邏輯上相關(guān)時(shí)序內(nèi)聚:一個(gè)模塊包含的任務(wù)必須在同一時(shí)間內(nèi)執(zhí)行過程性內(nèi)聚:模塊內(nèi)成分彼此相關(guān),并且必須按特定的次序執(zhí)行通信內(nèi)聚:模塊中各成分都將對數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域進(jìn)行操作順序性內(nèi)聚:各成分均與同一功能相關(guān),且處理按序執(zhí)行功能性內(nèi)聚:所有成分形成一個(gè)整體,完成單個(gè)功能內(nèi)聚與耦合⑴耦合(Coupling)GreatdealofdependenceIndependent
HighlycoupledLooselycoupledUncoupled
獨(dú)立性的度量:耦合(Coupling)&內(nèi)聚(Cohesion)(Yourdon&Constantine,1978)內(nèi)聚與耦合例1:A訪問C的內(nèi)部數(shù)據(jù)或不通過正常入口而轉(zhuǎn)入C的內(nèi)部?!瑼BCDA:……………………gotoC1……………………C:……………………C1:…………獨(dú)立性由弱到強(qiáng)排列為:內(nèi)容耦合(ContentCoupling):Onemodulemodifiesanother.一個(gè)模塊直接修改或操作另一個(gè)模塊的數(shù)據(jù),或者直接轉(zhuǎn)入另一個(gè)模塊。內(nèi)聚與耦合例2:部分代碼重疊(常出現(xiàn)在匯編程序中)BA例3:一個(gè)模塊有多個(gè)入口(功能)A:………………………………entry1:………………………………entry2:………………………………
Theleastdesirable內(nèi)聚與耦合
公共耦合
(Commoncoupling):Dataareaccessiblefromacommondatastore.通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用的那些模塊間的耦合。Global:V1V2A:……………………A1=V1+V2……………………B:……………………V1=B1……………………Global:V1V2A:……………………V1++……………………B:……………………V2=B1+V1……………………問題:
公共部分的改動(dòng)將影響所有調(diào)用它的模塊;
公共部分的數(shù)據(jù)存取無法控制;
復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而增加。內(nèi)聚與耦合
控制耦合(Controlcoupling):Onemodulepassesparameterstocontroltheactivityofanothermodule.模塊間傳遞的信息不但有數(shù)據(jù),還包括控制信息,這種塊間聯(lián)系方式稱為控制耦合。ABFlagF2F1Fn…………Flag接口單一,但仍然影響被控模塊的內(nèi)部邏輯。
數(shù)據(jù)耦合(Datacoupling):Onlydataarepassed.Itiseasytotracedataandmakechanges.數(shù)據(jù)耦合指兩個(gè)模塊之間有調(diào)用關(guān)系,傳遞的是簡單的數(shù)據(jù)值,相當(dāng)于高級語言的值傳遞.
Themostdesirable.原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合。內(nèi)聚與耦合模塊間的耦合內(nèi)聚與耦合模塊內(nèi)聚
低內(nèi)聚
巧合內(nèi)聚(Coincidentalcohesion):Unrelatedfunctions,processes,ordataarefoundinthesamemodule(forconvenience).A:Readinputsfromdiskfromtapefrom……
邏輯內(nèi)聚(Logicalcohesion):Logicallyrelatedfunctionsordataareplacedinthesamemodule.邏輯內(nèi)聚指模塊內(nèi)執(zhí)行個(gè)邏輯上相似的功能,通過參數(shù)確定該模塊完成哪一個(gè)功能。例如:⑵內(nèi)聚(Cohesion):Theelementsofamodulearedirectedtoperformthesametask.Goal:ascohesiveaspossible.內(nèi)聚與耦合
時(shí)間內(nèi)聚(Temporalcohesion):Thefunctionsarerelatedonlybythetiminginvolved.例如:系統(tǒng)的初始化問題:不同功能混在一個(gè)模塊中,有時(shí)共用部分編碼,使局部功能的修改牽動(dòng)全局。內(nèi)聚與耦合
通信內(nèi)聚(Communicationalcohesion):Allthefunctionsinamoduleoperateonorproducethesamedataset.如果一個(gè)模塊的所有成分都操作同一數(shù)據(jù)集或生成同一數(shù)據(jù)集例如:從同一磁帶上讀取不相干的數(shù)據(jù)——
可能破壞獨(dú)立性。
中內(nèi)聚過程內(nèi)聚(Proceduralcohesion):Functionsaregroupedtogetherinamoduletoensureacertainorderofperformance.如果一個(gè)模塊內(nèi)部的處理成分是相關(guān)的,而且這些處理必須以特定的次序執(zhí)行。例如:enterdatacheckdatamanipulatedata內(nèi)聚與耦合
高內(nèi)聚:
順序內(nèi)聚(Sequentialcohesion):Theoutputfromonepartofamoduleistheinputtothenextpart.一個(gè)模塊中各個(gè)處理元素都密切相關(guān)于同一功能且必須順序執(zhí)行,前一功能元素的輸出就是下一功能元素的輸入。
功能內(nèi)聚(Functionalcohesion):Everyprocessingelementisessentialtotheperformanceofasinglefunction.模塊內(nèi)所有元素共同完成一個(gè)功能內(nèi)聚與耦合模塊內(nèi)聚啟發(fā)性規(guī)則1.爭取低耦合、高內(nèi)聚(增加內(nèi)聚>減少耦合)2.模塊規(guī)模適中:過大不易理解;太小則接口開銷過大。注意分解后不應(yīng)降低模塊的獨(dú)立性。3.適當(dāng)控制——
深度=分層的層數(shù)。過大表示分工過細(xì)。
寬度=同一層上模塊數(shù)的最大值。過大表示系統(tǒng)復(fù)雜度大。啟發(fā)性規(guī)則系統(tǒng)結(jié)構(gòu)啟發(fā)性規(guī)則
扇出=一個(gè)模塊直接調(diào)用\控制的模塊數(shù)。3fan-out9AA的扇出AA的扇入
扇入=直接調(diào)用該模塊的模塊數(shù)在不破壞獨(dú)立性的前提下,fan-in
大的比較好。啟發(fā)性規(guī)則盡可能減少高扇出結(jié)構(gòu),隨著深度增大扇入。
如果一個(gè)模塊的扇出數(shù)過大,就意味著該模塊過分復(fù)雜,需要協(xié)調(diào)和控制過多的下屬模塊。應(yīng)當(dāng)適當(dāng)增加中間層次的控制模塊啟發(fā)性規(guī)則4、作用域在控制域內(nèi)
控制域MACBM的控制域?yàn)閧M,A,B,C}
作用域:M中的一個(gè)判定所影響的模塊。例如:A:…………if……thengotoB1……………………B:……………………B1:……………………作用域在控制域內(nèi)A:…………if……thengotoM1……………………M:……………………M1:gotoC1……………………作用域超出了控制域上例中A的作用超出了控制域。改進(jìn)方法之一,可以把A中的if
移到M中;方法之二,可以把C移到A下面。啟發(fā)性規(guī)則5、降低接口的復(fù)雜程度:接口復(fù)雜可能表明模塊的獨(dú)立性差。6、單出單入,避免內(nèi)容耦合。7、模塊功能可預(yù)測——相同輸入必產(chǎn)生相同輸出。反例:模塊中使用全局變量或靜態(tài)變量,則可能導(dǎo)致不可預(yù)測。小結(jié)耦合:模塊間依賴程度的度量非直接耦合:兩模塊中任一個(gè)都不依賴對方能獨(dú)立工作數(shù)據(jù)耦合:通過參數(shù)交換信息,而信息公限于數(shù)據(jù)內(nèi)容耦合:一個(gè)模塊使用另一模塊內(nèi)部的數(shù)據(jù)或控制信息;一個(gè)模塊直接轉(zhuǎn)移到另一模塊內(nèi)部量化指標(biāo):類耦合度:一個(gè)類的耦合度定義為與它耦合的其他類的數(shù)目(包括調(diào)用其他類的一個(gè)方法,使用其他類的一個(gè)實(shí)例變量。方法內(nèi)聚缺乏程度:定義為不訪問相同成員變量的方法對(即兩個(gè)方法)的數(shù)目減去訪問相同成員變量的方法對的數(shù)目。相似方法的數(shù)量越大,類的內(nèi)聚度就越高軟件設(shè)計(jì)過程軟件設(shè)計(jì)的一般過程迭代:第一層迭代,第二層迭代設(shè)計(jì)過程:軟件體系結(jié)構(gòu)設(shè)計(jì),界面設(shè)計(jì),模塊、子系統(tǒng)設(shè)計(jì),數(shù)據(jù)模型設(shè)計(jì),過程算法設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì),類設(shè)計(jì),接口設(shè)計(jì),構(gòu)件設(shè)計(jì)界面設(shè)計(jì),數(shù)據(jù)模型設(shè)計(jì),體系結(jié)構(gòu)設(shè)計(jì),模塊設(shè)計(jì)形成設(shè)計(jì)規(guī)格說明,評審軟件設(shè)計(jì)過程軟件設(shè)計(jì)的主要活動(dòng)軟件設(shè)計(jì)計(jì)劃:確定設(shè)計(jì)的目標(biāo)和驗(yàn)收準(zhǔn)則,明確標(biāo)準(zhǔn)和規(guī)范,風(fēng)險(xiǎn)管理,制訂工作計(jì)劃,對計(jì)劃進(jìn)行評審體系結(jié)構(gòu)設(shè)計(jì):適用性,結(jié)構(gòu)穩(wěn)定性,可擴(kuò)展性,可復(fù)用性界面設(shè)計(jì):適用,易理解性,一致性,靈敏性,容錯(cuò)性,人性化,國際化,個(gè)性化,合理的布局,和諧的色彩模塊或子系統(tǒng)設(shè)計(jì):子系統(tǒng)獨(dú)立構(gòu)成系統(tǒng),不依賴其他子系統(tǒng)提供的服務(wù),子系統(tǒng)由模塊組成一個(gè)模塊通常是一個(gè)能夠提供一個(gè)或多個(gè)服務(wù)的系統(tǒng)部件。它能得用其他模塊的服務(wù),一般不被看成一個(gè)獨(dú)立的系統(tǒng)。模塊由更簡單的模塊組馬,模塊也需要定義接口。過程/算法設(shè)計(jì)軟件設(shè)計(jì)過程過程/算法設(shè)計(jì)對模塊內(nèi)部的工作和執(zhí)行過程進(jìn)行描述,給出有關(guān)處理的精確說明事件的順序、確切的決策位置、循環(huán)操作,數(shù)據(jù)的組成使用UML活動(dòng)圖進(jìn)行描述數(shù)據(jù)模型設(shè)計(jì):數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、數(shù)據(jù)文件設(shè)計(jì)的總稱數(shù)據(jù)結(jié)構(gòu)描述各數(shù)據(jù)分量之間的邏輯關(guān)系。持久數(shù)據(jù)操作:包括寫入、查詢、更新和刪除四類基本操作及及由它們復(fù)合而成的業(yè)務(wù)數(shù)據(jù)操作數(shù)據(jù)庫設(shè)計(jì):確定設(shè)計(jì)模型中需要持久保存的數(shù)據(jù)條目數(shù)據(jù):數(shù)據(jù)元素的格式、結(jié)構(gòu)、訪存、表示等機(jī)制進(jìn)行良好的建模和優(yōu)化,是提高軟件設(shè)計(jì)質(zhì)量和系統(tǒng)性能的基礎(chǔ),對軟件系統(tǒng)的應(yīng)用具有重要意義軟件設(shè)計(jì)的質(zhì)量軟件設(shè)計(jì)的質(zhì)量要素:結(jié)構(gòu)良好:軟件設(shè)計(jì)的結(jié)構(gòu)合理,模塊滿足功能獨(dú)立、信息隱藏和高內(nèi)聚、低耦合的要求,子系統(tǒng)和模塊之間接口定義明確,清晰,一致充分性、可行性、簡單性、實(shí)用性靈活性、可移植性、可復(fù)用性標(biāo)準(zhǔn)化軟件設(shè)計(jì)的質(zhì)量正確性目標(biāo):每個(gè)項(xiàng)目都要滿足指定的需求,然后一起滿足所有應(yīng)用程序的需求實(shí)現(xiàn)正確性的途徑:達(dá)到正確性的非正式方法完全理解->模塊化達(dá)到正確性的正式方法:軟件設(shè)計(jì)的質(zhì)量達(dá)到正確性的非正式方法:充分設(shè)計(jì)一個(gè)設(shè)計(jì)足以實(shí)現(xiàn)需求一個(gè)正確的設(shè)計(jì)有時(shí)稱為設(shè)計(jì)必須完全可理解接下來設(shè)計(jì)非常模塊化達(dá)到這個(gè)目標(biāo)的方法是:。。。最小目標(biāo)軟件設(shè)計(jì)的質(zhì)量達(dá)到正確性的正式方法基于在嚴(yán)密的控制下跟蹤變量的變化,一般會(huì)指定一個(gè)不變式。不變式在變量值之間表示的是一種不變關(guān)系。例如:length>=0length*breadth==areaoverdraft<OVERDRAFT_MAX用在類級別設(shè)計(jì)中的不變式稱為類不變式。例如1)mileage>=02)mileage<10000004)value>=-300($300是一輛報(bào)費(fèi)汽車的處理價(jià)格5)originalPrice>=06)(type==“REGULAR”&&value<=originalPrice)||(type==“VINTAGE”&&value>=originalPrice)考慮不變式,將變量設(shè)為私有,只能通過公有的存取方法才能改變他們的值??梢詫Υ嫒》椒ㄟM(jìn)行編碼來保持不變式。如通過setter方法來設(shè)置類不變式精心設(shè)計(jì)的類通常擁有可理解的不變式集。軟件設(shè)計(jì)的質(zhì)量為正確性和充分性而重整
首先為給定的需求進(jìn)行設(shè)計(jì),然后在額外的需求變得透明時(shí)對設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行修改,這個(gè)過程稱為重整重整:為類提升一個(gè)原始屬性為了適應(yīng)范圍的增長,我們常常需要引入一個(gè)新類來進(jìn)行重整重整:引入抽象基類可接口面向?qū)ο筇峁┏橄螅鞘裁礃訒r(shí)候應(yīng)該使用抽象呢?一個(gè)關(guān)鍵的標(biāo)志就是每當(dāng)應(yīng)用程序包含幾個(gè)具有廣泛通用性的類時(shí)。抽象類可以包含類的所有特性,除了當(dāng)類的對象自己不能被創(chuàng)建之外。應(yīng)該是一個(gè)接口而不是一個(gè)類軟件設(shè)計(jì)的質(zhì)量1.防止錯(cuò)誤輸入用戶輸入不是用戶的輸入數(shù)據(jù)通信其他應(yīng)用方法調(diào)用2.防止開發(fā)錯(cuò)誤錯(cuò)誤的設(shè)計(jì)錯(cuò)誤的實(shí)現(xiàn)提高健壯性:錯(cuò)誤原因軟件設(shè)計(jì)的質(zhì)量健壯性檢查輸入在繼續(xù)進(jìn)行處理之前,可以檢查應(yīng)用程序的所有輸入的方法。檢查類型(例如:整形);
檢查與前置條件和不變式的輸入為提高健壯性而初始化提供靜態(tài)方法,用來為類產(chǎn)生標(biāo)準(zhǔn)的默認(rèn)值提高健壯性的參數(shù)傳遞技術(shù)保證方法正確調(diào)用引入一個(gè)捕獲參數(shù)的類并將約束條件合并強(qiáng)化意圖通過防止設(shè)計(jì)和實(shí)現(xiàn)中的錯(cuò)誤來提高健壯性強(qiáng)化計(jì)劃,按計(jì)劃使用相應(yīng)功能軟件設(shè)計(jì)的質(zhì)量提高健壯性在使用數(shù)據(jù)之前進(jìn)行檢查,可以提高健壯性。通過強(qiáng)化我們的意圖來提高健壯性。軟件設(shè)計(jì)的質(zhì)量Example:intcomputeArea(intaLength,intaBreadth){…}如果可行,捕獲在類中的參數(shù)約束intcomputeArea(RectangleDimensionaRectangleDimension)
在方法中說明所有的參數(shù)約束aLength>0andaBreadth>0andaLength>=aBreadth
調(diào)用者遵循參數(shù)的顯示要求問題是方法的設(shè)計(jì)者沒有控制調(diào)用者在方法代碼中首先檢查約束if(aLength<=0)……如果預(yù)計(jì)這種情況將會(huì)出現(xiàn),則拋出異常否則,如果可能就中止程序否則如果返回的默認(rèn)值在上下文之間有意義,就將其返回并且產(chǎn)生警告或日志參數(shù)的約束軟件設(shè)計(jì)的質(zhì)量靈活性的表現(xiàn)靈活性的預(yù)期目標(biāo):用于增加更多類型功能的設(shè)計(jì)例如(銀行應(yīng)用):處理更多類型的賬號而不需要修改已存在的代碼用于增加不同類型功能的設(shè)計(jì)例如:在存款功能的基礎(chǔ)上增加提款功能修改功能例如:可透支軟件設(shè)計(jì)的質(zhì)量應(yīng)用中增加同類型功能的設(shè)計(jì)
WebSiteregister()Member0..nmembersclassWebsite{ Member[]members;//ormaybe:vectormembers; voidregister(MemberaMember){...}}怎樣才能使設(shè)計(jì)更靈活以注冊新類型的成員?舉例:網(wǎng)站成員注冊軟件設(shè)計(jì)的質(zhì)量注冊網(wǎng)站的靈活性WebSiteMember0..nStandardMemberXMemberYMembermembers解決方案:引入一個(gè)基類,將基類抽象化,根據(jù)需要產(chǎn)生繼承類軟件設(shè)計(jì)的質(zhì)量用于增加不同類型功能的設(shè)計(jì)在以下范圍內(nèi)…一系列相關(guān)的函數(shù)Example:航空旅行(travelitinerary)函數(shù)中增加Pint功能一個(gè)已存在的基類Example:增加“打印航空路線”的功能兩者都不是Example:增加“同時(shí)打印航空路線和航海路線“軟件設(shè)計(jì)的質(zhì)量
TripprintItinerary()StandardTripprintItinerary()SomeApplicationClassMethod(s)callprintItinerary()向一個(gè)基類中增加功能軟件設(shè)計(jì)的質(zhì)量通過繼承基本類的方法來增加功能TripprintItinerary()SeaTripprintItinerary()SomeApplicationClassLandTripprintItinerary()StandardTripprintItinerary()解決方案:通過繼承基類的方法來增加功能每個(gè)子類都可以擁有各自版本的printItinerary()方法。依賴和繼承的結(jié)合可以形成委托形式。軟件設(shè)計(jì)的質(zhì)量靈活性的方面:可以…描述點(diǎn)…通過運(yùn)行時(shí)確定的變量來產(chǎn)生對象創(chuàng)建型設(shè)計(jì)模式運(yùn)行時(shí)表示變化的對象樹或其他結(jié)構(gòu)“結(jié)構(gòu)型l”設(shè)計(jì)模式改變、重組或捕獲一組對象的相互行為“行為型”
designpatterns產(chǎn)生和存儲(chǔ)復(fù)雜類的對象組件技術(shù)配置預(yù)定義的復(fù)雜類或類組的對象,從而能以多種方式進(jìn)行交互組件技術(shù)附加的靈活性的類型軟件設(shè)計(jì)的質(zhì)量靈活性意義
我們之所以進(jìn)行靈活的設(shè)計(jì),因?yàn)樽兓椭赜檬墙?jīng)常出現(xiàn)的軟件設(shè)計(jì)的質(zhì)量可重用性盡可能的降低成本重用原有的工作可以獲得最大生產(chǎn)率重用:函數(shù)重用、類重用、重用類組合可重用設(shè)計(jì),可重用組件函數(shù)設(shè)計(jì)的可重用性基于重用的類選擇用于重用的類組合軟件設(shè)計(jì)的質(zhì)量使一個(gè)方法具有可重用性完全指定前置條件等避免不必要的封裝類耦合如果可行,讓方法成為靜態(tài)的參數(shù)化讓方法功能化但要限制參數(shù)的個(gè)數(shù)讓名字更具表達(dá)性可理解性促進(jìn)可重用性解釋算法重用者要知道算法如何工作重用的方法必須給出完整的定義,以便使重用者知道這些方法的功能及使用條件一個(gè)方法相關(guān)對于上下文越獨(dú)立,其可重用性的性能就越高。靜態(tài)方法就屬于這種類型軟件設(shè)計(jì)的質(zhì)量使一個(gè)類成為可重用的完整的描述類使類名與功能與實(shí)際情況相符定義一個(gè)有用的抽象類以獲得更廣泛的應(yīng)用于性減少對其他類的依賴性通過繼承獲得軟件設(shè)計(jì)的質(zhì)量減少類間的依賴性CustomerReplace…Piano如果類A依賴于類B,沒有類B就不可以使用類A,這就減少了類A的重用性。Piano類依賴Custumer類,因?yàn)殇撉偈琴u給用戶的,限制了Piano類的使用。一個(gè)庫存應(yīng)用程序可能需要Piano類,但卻不需要Customer類。重用Piano類。能否讓Custumer類依賴Piano類,因?yàn)橛脩糁挥匈徺I鋼琴時(shí)才成為用戶。有沒有更好的解決方案呢?降低依賴性。軟件設(shè)計(jì)的質(zhì)量減少類間的依賴性with…CustomerPianoPianoOrder引入第三個(gè)類PianoOrder將其關(guān)聯(lián)起來。這個(gè)設(shè)計(jì)具有一定的作用,但在現(xiàn)實(shí)情況中可能是不行的。例如,可能需要訪問某一給定用戶的訂單,而不必檢查每個(gè)PianoOrder訂單對象。中介者設(shè)計(jì)模式解決問題減少類之間的依賴關(guān)系,抽象級的依賴關(guān)系是可以接受的。通過減少類的依賴性來增加其可重用性軟件設(shè)計(jì)的質(zhì)量類組合的重用:利用繼承、組合和相關(guān)技術(shù)來實(shí)現(xiàn)CustomercomputeBill()RegularCustomercomputeBill()CustomercomputeBill()Billcompute()CustomercomputeBill(Orders)Ordersvalue()(1)利用繼承(3)利用依賴性(2)利用聚合CustomercomputeBill()軟件設(shè)計(jì)的質(zhì)量高效性應(yīng)用程序必須在指導(dǎo)定的時(shí)間內(nèi)完成特定的功能執(zhí)行效率處理循環(huán)問題消除遠(yuǎn)程調(diào)用消除或制定函數(shù)調(diào)用存儲(chǔ)效率
RAM的大?。ㄟ\(yùn)行時(shí))代碼本身的規(guī)模輔助存儲(chǔ)器的大小軟件設(shè)計(jì)的質(zhì)量
先按其它原則設(shè)計(jì),再考慮效率以靈活性,可重用性等原則進(jìn)行設(shè)計(jì)找出效率低的部分有針對性的修改一開始就按效率原則進(jìn)行設(shè)計(jì)確認(rèn)當(dāng)前關(guān)鍵的效率需求在整個(gè)階段都按需求進(jìn)行設(shè)計(jì)以上兩種方法的結(jié)合在設(shè)計(jì)時(shí)為效率需求做出折中在初始設(shè)計(jì)之后,也要繼續(xù)考慮效率問題針對時(shí)間效率的基本方法軟件設(shè)計(jì)的質(zhì)量時(shí)空折中Space處理一個(gè)項(xiàng)目的時(shí)間通常的目標(biāo)軟件設(shè)計(jì)的質(zhì)量時(shí)間、空間、開發(fā)的折中空間時(shí)間開發(fā)的設(shè)備限制可接受的值不可接受的值好于可接受的值軟件設(shè)計(jì)的質(zhì)量影響執(zhí)行效率的一些因素循環(huán)while,for,do遠(yuǎn)程調(diào)用:消除遠(yuǎn)程調(diào)用Requiringanetwork需要網(wǎng)絡(luò)LANTheInternet函數(shù)調(diào)用:消除函數(shù)調(diào)用如果函數(shù)調(diào)用導(dǎo)致以上情況發(fā)生對象創(chuàng)建高效的設(shè)計(jì)并不要求簡單,甚至?xí)容^凌亂高效原則會(huì)減少函數(shù)調(diào)用,會(huì)導(dǎo)致產(chǎn)生大量的方法和類,難于擴(kuò)展和重用軟件設(shè)計(jì)的質(zhì)量遠(yuǎn)程調(diào)用的次數(shù)遠(yuǎn)程調(diào)用的次數(shù)每次訪問取得的信息典型的目標(biāo)軟件設(shè)計(jì)的質(zhì)量存儲(chǔ)效率應(yīng)用程序需要存儲(chǔ)數(shù)據(jù),以務(wù)將來在執(zhí)行時(shí)提取,這需要對存儲(chǔ)數(shù)據(jù)的空間進(jìn)行有效的利用。有三種存儲(chǔ)問題:RAM的大?。ㄟ\(yùn)行時(shí))代碼本身規(guī)模輔助存儲(chǔ)器(磁盤驅(qū)動(dòng))的大小提高存儲(chǔ)效率往往要消耗一定的時(shí)間軟件設(shè)計(jì)的質(zhì)量獲得存儲(chǔ)效率只需存儲(chǔ)的數(shù)據(jù)在存儲(chǔ)效率和數(shù)據(jù)提取以及重整時(shí)間之間獲得折中壓縮數(shù)據(jù)在存儲(chǔ)效率與數(shù)據(jù)壓縮和解壓縮之間獲得折中按相關(guān)訪問頻率存儲(chǔ)數(shù)據(jù)在存儲(chǔ)效率與決定存儲(chǔ)位置的時(shí)間之間獲得折中軟件設(shè)計(jì)的質(zhì)量健壯性、靈活性、高效性和可重用之間的折中1A.
極限編程法或完全為效率而設(shè)計(jì)1B.
靈活性驅(qū)動(dòng)法著眼于將來的需求 附帶考慮可重用性2.
確保健壯性3.
提供足夠高的效率如果為了獲得效率那么會(huì)在可重用性方面做出折中軟件設(shè)計(jì)的質(zhì)量
極限編程vs.非極限編程+工作完成快(通常)+范圍清晰+可能更有效-未來可能較少用到-擴(kuò)展需求代價(jià)很大+示來應(yīng)用可能較多用到+需求可變-范圍劃分不清晰-可能會(huì)比較費(fèi)力-需要更多的關(guān)注效率軟件設(shè)計(jì)的質(zhì)量一個(gè)更靈活的計(jì)算器應(yīng)用程序的設(shè)計(jì)CommandLineCalculatormain()executeAdditions()solicitNumberAccounts()getAnInputFromUser()interactWithUser()已存在的設(shè)計(jì)新設(shè)計(jì)CalculatorsolicitNumAccounts()CalcDisplaydisplay()CalcOperationexecute()AddMultiplyDivide小結(jié)靈活性
==好修改可重用性在其它程序中應(yīng)用高效性
時(shí)間空間軟件體系結(jié)構(gòu)設(shè)計(jì)方法概述軟件體系結(jié)構(gòu)的多視圖建模進(jìn)程視圖邏輯視圖開發(fā)視圖物理視圖場景基于評估與轉(zhuǎn)換的軟件體系結(jié)構(gòu)設(shè)計(jì)使用合適的體系結(jié)構(gòu)風(fēng)格的模式把非功能需求轉(zhuǎn)化為功能性解決方案采用“分而治之”策略模式驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì)領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)類模型參考模型軟件產(chǎn)品線方法其他軟件體系結(jié)構(gòu)設(shè)計(jì)方法基于目標(biāo)圖推理的體系結(jié)構(gòu)設(shè)計(jì)方法基于屬性的體系結(jié)構(gòu)設(shè)計(jì)方法體系結(jié)構(gòu)“4+1”多視圖建模進(jìn)程視圖物理視圖邏輯視圖開發(fā)視圖場景集成人員性能可擴(kuò)展性系統(tǒng)工程師拓?fù)渫ㄐ跑浖w系結(jié)構(gòu)的多視圖建模邏輯視圖:關(guān)注功能需求,系統(tǒng)為用戶提供的服務(wù),與應(yīng)用領(lǐng)域相關(guān)系統(tǒng)功能映射到概念構(gòu)件和連接件與軟件和硬件的細(xì)節(jié)沒關(guān)若是面向?qū)ο笤O(shè)計(jì),則將是一種對象模型進(jìn)程視圖:捕獲設(shè)計(jì)中關(guān)于并發(fā)和同步的內(nèi)容,重視非功能需求(性能,可擴(kuò)展性等,定義運(yùn)行實(shí)體和他們的屬性)構(gòu)件、連接件,構(gòu)件可以是任務(wù),連接件可以是消息、遠(yuǎn)程過程調(diào)用(RPC)、事件廣播等開發(fā)視圖:描述軟件在開發(fā)環(huán)境中的靜態(tài)結(jié)構(gòu)構(gòu)件和連接件分別映射到子系統(tǒng)或模塊關(guān)注于軟件開發(fā)環(huán)境中軟件模塊的組織。軟件可被打包,并按層次進(jìn)行組織軟件體系結(jié)構(gòu)的多視圖建模物理視圖:描述軟件到硬件的映射關(guān)系,反映了軟件的分布特征把不同的軟件元素,例如進(jìn)程和任務(wù)等,映射到不同的物理節(jié)點(diǎn)上,并關(guān)注物理環(huán)境的拓?fù)浣Y(jié)構(gòu)以及節(jié)點(diǎn)間的通信場景:使用一組重要場景,也就是用例的實(shí)例,把上述四種視圖緊密地聯(lián)系起來設(shè)計(jì)中發(fā)現(xiàn)體系結(jié)構(gòu)元素的驅(qū)動(dòng)器,設(shè)計(jì)完成后充當(dāng)確認(rèn)和驗(yàn)證的依據(jù)?;谠u估與轉(zhuǎn)換的軟件體系結(jié)構(gòu)設(shè)計(jì)質(zhì)量優(yōu)化方案體系結(jié)構(gòu)轉(zhuǎn)換質(zhì)量屬性評價(jià)基于功能的體系結(jié)構(gòu)設(shè)計(jì)體系結(jié)構(gòu)制品需求規(guī)格說明滿足不滿足針對功能特性,它基于一種人們最常見的開發(fā)思路:針對功能要求設(shè)計(jì)體系結(jié)構(gòu),對設(shè)計(jì)結(jié)果進(jìn)行評審,如果不滿足要求則進(jìn)行改進(jìn),一直迭代到滿足要求為止?;谠u估與轉(zhuǎn)換的軟件體系結(jié)構(gòu)設(shè)計(jì)體系結(jié)構(gòu)的評估方式基于場景的評估仿真數(shù)學(xué)建?;窘?jīng)驗(yàn)的推理對體系結(jié)構(gòu)轉(zhuǎn)換的方式使用合適的體系結(jié)構(gòu)風(fēng)格和模式,或者設(shè)計(jì)模式來改進(jìn)體系結(jié)構(gòu)設(shè)計(jì)把非功能需求轉(zhuǎn)化為功能性解決方案,可以與問題域沒關(guān),但可以滿足質(zhì)量屬性的要求。采用“分而治之”的方式,可以把系統(tǒng)級的質(zhì)量需求分配到子系統(tǒng)或模塊中,或者把質(zhì)量需求分解為多個(gè)與功能相關(guān)的質(zhì)量需求,分解后的質(zhì)量需求能夠較易得到滿足。模式驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì)體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用方式中系統(tǒng)組織方式的慣用模式,為設(shè)計(jì)人員的交流提供了公共的模型,符號和術(shù)語表示,促進(jìn)了設(shè)計(jì)復(fù)用甚至最終的代碼復(fù)用。體系結(jié)構(gòu)模式是對設(shè)計(jì)模式的擴(kuò)展,描述了軟件軟件系統(tǒng)基本的結(jié)構(gòu)化組織方案,可以作為具體體系結(jié)構(gòu)的模板。軟件開發(fā)中常用的設(shè)計(jì)模式也是對設(shè)計(jì)經(jīng)驗(yàn)的一種總結(jié)和描述,以便于復(fù)用,但設(shè)計(jì)模式則是針對單一問題提供的解決方案。設(shè)計(jì)模式更接近于提供通用的實(shí)現(xiàn)方案,盡管實(shí)現(xiàn)可以不依賴于具體語言,而體系結(jié)構(gòu)則需要綜合考慮整個(gè)系統(tǒng)各方面的需求。一個(gè)體系結(jié)構(gòu)設(shè)計(jì)在繼續(xù)精化過程中可能會(huì)用到多種設(shè)計(jì)模式來解決其包含的子問題。常用體系結(jié)構(gòu)風(fēng)格管道和過濾器風(fēng)格、層次風(fēng)格、黑板模式等模式驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì)需求規(guī)格說明系統(tǒng)特征初步分析搜索可用的體系結(jié)構(gòu)風(fēng)格選擇合適的體系結(jié)構(gòu)風(fēng)格對體系結(jié)構(gòu)風(fēng)格進(jìn)行改造以體系結(jié)構(gòu)風(fēng)格為基礎(chǔ)進(jìn)行設(shè)計(jì)自行設(shè)計(jì)體系結(jié)構(gòu)擴(kuò)展軟件體系結(jié)構(gòu)風(fēng)格庫軟件體系結(jié)構(gòu)設(shè)計(jì)模型不存在模式驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì)體系結(jié)構(gòu)風(fēng)格分類獨(dú)立體系結(jié)構(gòu)數(shù)據(jù)流體系結(jié)構(gòu)以數(shù)據(jù)為中心的體系結(jié)構(gòu)虛擬機(jī)體系結(jié)構(gòu)調(diào)用與返回體系結(jié)構(gòu)領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)特定領(lǐng)域的軟件復(fù)用更易成功領(lǐng)域特定的軟件體系結(jié)構(gòu)(DSSA)是領(lǐng)域工程的核心部分,領(lǐng)域工程分析應(yīng)用分析應(yīng)用的共同特征和可變特征,對刻劃這些特征的對象和操作進(jìn)行選擇和抽象,形成領(lǐng)域模型,并進(jìn)一步生成DSSA。領(lǐng)域特定的軟件體系結(jié)構(gòu)借鑒領(lǐng)域中已經(jīng)成熟的軟件體系結(jié)構(gòu),實(shí)現(xiàn)解決方案在某個(gè)領(lǐng)域內(nèi)的復(fù)用。雖然這些系統(tǒng)實(shí)例的細(xì)節(jié)會(huì)有不同,但共同的體系結(jié)構(gòu)在開發(fā)新系統(tǒng)時(shí)是能夠復(fù)用的。DSSA和軟件體系結(jié)構(gòu)風(fēng)格都是對軟件體系結(jié)構(gòu)的重用,但它們的目標(biāo)、構(gòu)造和應(yīng)用過程存在以下不同之處:(1)DSSA與軟件體系結(jié)構(gòu)風(fēng)格是從不同角度出發(fā)研究問題的兩種結(jié)果,前者從問題哉出發(fā),而后者從解決哉出發(fā)。(2)DSSA只在某個(gè)特定領(lǐng)域中進(jìn)行經(jīng)驗(yàn)知識的提取、總結(jié)與組織,但可以同時(shí)使用多種軟件體系結(jié)構(gòu)風(fēng)格;而一種軟件體系結(jié)構(gòu)風(fēng)格所呈現(xiàn)的公共結(jié)構(gòu)和設(shè)計(jì)方法可以擴(kuò)展到多個(gè)應(yīng)用領(lǐng)域。(3)DSSA的體系結(jié)構(gòu)表示和工具一般只適用于一個(gè)較小的范圍,在其他領(lǐng)域中是不適用并難以復(fù)用的。領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)DSSA應(yīng)該包括多種組成要素,例如領(lǐng)域模型、參考需求、參考體系結(jié)構(gòu)、相應(yīng)的支持環(huán)境或設(shè)施、實(shí)例、精化和評估的方法與過程等,以促進(jìn)DSSA在領(lǐng)域中復(fù)用。領(lǐng)域相關(guān)的軟件體系結(jié)構(gòu)可分為兩種類型類模型:類模型是從許多實(shí)際系統(tǒng)抽象出來的一般模型,它們封裝這些系統(tǒng)的主要特征。參考模型:是更抽象且是描述一大類系統(tǒng)的模型,它是對設(shè)計(jì)者有關(guān)某類系統(tǒng)的一般結(jié)構(gòu)指導(dǎo)。代表了一個(gè)理想化的體系結(jié)構(gòu),包含了系統(tǒng)所有應(yīng)該具有的特征。OSI七層參考模型軟件產(chǎn)品線方法軟件產(chǎn)品線指一組具有公共的、可管理特征的軟件系統(tǒng),這些系統(tǒng)滿足特定的市場需求或者任務(wù)領(lǐng)域需求,并且按照預(yù)定義的方式基于公共的核心資產(chǎn)集合開發(fā)得到軟件產(chǎn)品線(SoftwareProductLine)是軟件復(fù)用發(fā)展的一個(gè)更高階段,它并不僅僅局限于函數(shù)、模塊、類、體系結(jié)構(gòu)甚至子系統(tǒng)的重用可以有效地提高生產(chǎn)率、縮短產(chǎn)品上市時(shí)間,提高質(zhì)量和客戶滿意度軟件產(chǎn)品線主要由兩部分組成:核心資產(chǎn)庫和產(chǎn)品集合核心資產(chǎn)庫:是領(lǐng)域工程所有成果的集合,對支持產(chǎn)品開發(fā)的可復(fù)用資源進(jìn)行管理。核心資產(chǎn)庫包括產(chǎn)品線中所有產(chǎn)品共享的體系結(jié)構(gòu)、可復(fù)用的軟件構(gòu)件、與軟件構(gòu)件相關(guān)的測試計(jì)劃、測試用例、以及領(lǐng)域模型、領(lǐng)域范圍定義和所有的需求描述、設(shè)計(jì)文檔,各種性能模型和度量準(zhǔn)則、日程安排、預(yù)算、工作計(jì)劃、過程描述、通信協(xié)議描述、用戶界面描述等。產(chǎn)品線方法的基本活動(dòng)包括核心資產(chǎn)開發(fā)、產(chǎn)品開發(fā)和管理。核心資產(chǎn)開發(fā)指如何獲得核心資產(chǎn),可能通過自己構(gòu)那家、直接購買、委托加工等各種方式。產(chǎn)品開發(fā)活動(dòng)是產(chǎn)品線的目標(biāo),核心資產(chǎn)開發(fā)只是達(dá)到目標(biāo)的一種手段。管理,各個(gè)活動(dòng)合理分配資源,協(xié)調(diào)監(jiān)督、設(shè)置適當(dāng)?shù)慕M織機(jī)構(gòu)特征:循環(huán)重復(fù)軟件產(chǎn)品線方法新產(chǎn)品形在的步驟從公共資產(chǎn)庫中選取合適的構(gòu)件使用預(yù)定義的變化機(jī)制進(jìn)行裁剪,如參數(shù)化、繼承等必要時(shí)增加新的構(gòu)件在整個(gè)產(chǎn)品線范圍內(nèi)共同的體系結(jié)構(gòu)指導(dǎo)下,進(jìn)行構(gòu)件組裝,形成系統(tǒng)。其他軟件體系結(jié)構(gòu)設(shè)計(jì)方法基于目標(biāo)圖推理的體系結(jié)構(gòu)設(shè)計(jì)方法:功能需求和非功能需求皆被表達(dá)為要達(dá)到的目標(biāo),特別是把非功能需求表過為通常沒有清晰的評價(jià)標(biāo)準(zhǔn)的“軟”目標(biāo);基于屬性的體系結(jié)構(gòu)設(shè)計(jì)方法:軟件結(jié)構(gòu)設(shè)計(jì)的步聚開發(fā)軟件頂層架構(gòu)選取合適的體系結(jié)構(gòu)風(fēng)格明確架構(gòu)中每個(gè)部件的職責(zé)、特征,各部件之間的通信及協(xié)作關(guān)系,可用UML包圖表示頂層架構(gòu)組成,以及體系結(jié)構(gòu)中子系統(tǒng)、構(gòu)件之間的通信及協(xié)作關(guān)系搜索并選取可用設(shè)計(jì)資產(chǎn)設(shè)計(jì)術(shù)支撐設(shè)計(jì)資產(chǎn)包括相同或相關(guān)業(yè)務(wù)領(lǐng)域中的模塊、子系統(tǒng)、構(gòu)件、框架、類庫、應(yīng)用軟件系統(tǒng)、設(shè)計(jì)模式等?!翱捎谩钡脑O(shè)計(jì)資產(chǎn)是指在婁前項(xiàng)目中直接可供復(fù)用或借鑒的設(shè)計(jì)資產(chǎn)設(shè)計(jì)技術(shù)支撐方案技術(shù)支撐方案應(yīng)該為軟件多個(gè)用例的實(shí)現(xiàn)提供技術(shù)服務(wù),所以它應(yīng)該成為整個(gè)目標(biāo)軟件系統(tǒng)中全局性的公共技術(shù)平臺。良好穩(wěn)定性軟件結(jié)構(gòu)設(shè)計(jì)的步聚確定設(shè)計(jì)元素子系統(tǒng)、構(gòu)件、設(shè)計(jì)類確定設(shè)計(jì)元素的主要過程:確定子系統(tǒng)及其接口確定構(gòu)件及其接口確定關(guān)鍵設(shè)計(jì)類整合設(shè)計(jì)元素開發(fā)軟件部署模型軟件部署模型軟件部署模型負(fù)責(zé)展示軟件中各子系統(tǒng)、構(gòu)件在哪些計(jì)算結(jié)點(diǎn)上運(yùn)行,以及這些結(jié)點(diǎn)之間的網(wǎng)絡(luò)連接方式反映了軟件系統(tǒng)的網(wǎng)絡(luò)運(yùn)行環(huán)境和物理分布狀況設(shè)計(jì)并發(fā)機(jī)制針對目標(biāo)軟件系統(tǒng)的性能需求(包括界面的靈敏性需求),將一些可以并行執(zhí)行的序列劃分成不同的任務(wù),明確這些任務(wù)在并發(fā)執(zhí)行過程中可能的同步點(diǎn),并研究并發(fā)任務(wù)在目標(biāo)軟件系統(tǒng)所基于的計(jì)算平臺上的實(shí)現(xiàn)方法軟件結(jié)構(gòu)設(shè)計(jì)的步聚構(gòu)建軟件體系結(jié)構(gòu)模型整理、改進(jìn)前述工作成果,以正式文檔形式完整地描述系統(tǒng)的體系結(jié)構(gòu)模型。文檔內(nèi)容引言體系結(jié)構(gòu)概述需求視圖邏輯視圖進(jìn)程視圖實(shí)施視圖部署視較長應(yīng)用指南評審軟件體系結(jié)構(gòu)模型發(fā)現(xiàn)可能存在的缺陷,使相關(guān)人員能夠達(dá)成一致關(guān)注點(diǎn)是否能夠滿足需求,以及怎樣滿足需求當(dāng)異?;蛘吲R界條件出現(xiàn)時(shí),體系結(jié)構(gòu)是否以令人滿意的方式動(dòng)作詳略程度是否恰當(dāng)是否存在可行性方面的危險(xiǎn)軟件結(jié)構(gòu)設(shè)計(jì)的步聚需求規(guī)圖說明軟件設(shè)計(jì)計(jì)劃開發(fā)軟件項(xiàng)層架構(gòu)選取設(shè)計(jì)資產(chǎn)設(shè)計(jì)技術(shù)支撐方案確定設(shè)計(jì)元素開發(fā)軟件部署模型設(shè)計(jì)并發(fā)機(jī)制構(gòu)建體系結(jié)構(gòu)模型評審體系結(jié)構(gòu)模型軟件體系結(jié)構(gòu)文檔高可信軟件設(shè)計(jì)可信軟件特點(diǎn)容錯(cuò)設(shè)計(jì)軟件失效模式和影響分析軟件故障樹分析形式化方法凈室方法嵌入式和實(shí)時(shí)軟件設(shè)計(jì)高可信軟件設(shè)計(jì)--可信軟件特點(diǎn)可靠性(Reliability):在規(guī)定的環(huán)境在下規(guī)定的時(shí)間內(nèi),軟件無失效運(yùn)行的概率??煽堪踩裕⊿afefy):軟件運(yùn)行不引起危險(xiǎn)、災(zāi)難的能力保密安全性(Security):軟件系統(tǒng)對數(shù)據(jù)和信息提供保密性、完整性、可用性、真實(shí)性保障的能力可生存性(Survivability):軟件在受到攻擊或失效出現(xiàn)時(shí)連續(xù)提供服務(wù)并在規(guī)定時(shí)間內(nèi)恢復(fù)所有服務(wù)的能力實(shí)時(shí)性(RealTime):軟件在指定的時(shí)間內(nèi)完成反應(yīng)或提交輸出的能力高可信軟件設(shè)計(jì)--容錯(cuò)設(shè)計(jì)軟件容錯(cuò)技術(shù):使得軟件能發(fā)現(xiàn)失效危險(xiǎn)并從臨失效狀態(tài)恢復(fù)的軟件設(shè)計(jì)技術(shù)恢復(fù)塊技術(shù):檢測到錯(cuò)誤后將執(zhí)行軟件模塊的另一個(gè)不同版本。在執(zhí)行模塊的一個(gè)版本前,首先要?jiǎng)?chuàng)建檢查點(diǎn),因?yàn)檫@有助于在該版本執(zhí)行失效后恢復(fù)狀態(tài),并為檢測到錯(cuò)誤后執(zhí)行下一個(gè)版本提供一個(gè)有效的起始點(diǎn)。N-版本編程:N-版本編程是一種多版本技術(shù),關(guān)鍵模塊的不同版本被設(shè)計(jì)成滿足同樣的基本需求,每個(gè)版本完成同樣的任務(wù),但卻使用不同的方式。這些版本同時(shí)執(zhí)行,它們的輸出結(jié)果提交給一個(gè)表決系統(tǒng)以決定正確的結(jié)果,并把該結(jié)果返回給模塊,對輸出正確性的判定基于對所有輸出的比較。出現(xiàn)不一致的情況下,利用多數(shù)表決來決定一個(gè)最優(yōu)先的結(jié)果。基于設(shè)計(jì)多樣性,通過以下方式可以達(dá)到設(shè)計(jì)多樣性:使用不同的設(shè)計(jì)方法來實(shí)現(xiàn)需求使用不同的程序設(shè)計(jì)語言來完成實(shí)現(xiàn)使用不同的開發(fā)工具,且在不同的開發(fā)環(huán)境中完成。明確要求在實(shí)現(xiàn)某些關(guān)鍵過程時(shí)使用不同的算法高可信軟件設(shè)計(jì)--軟件失效模式和影響分析軟件失效模式和影響分析:主要是在軟件開發(fā)階段的早期,通過識別軟件失效模式,研究分析各種答失效模式產(chǎn)生的原因及其造成的后果,尋找消除和減少其有害后果的方法,以盡早發(fā)現(xiàn)潛在的問題,并采取相應(yīng)的措施,從而提高軟件的可靠性和安全性。軟件失效:程序在中喪失了全部或部分功能、出現(xiàn)偏離預(yù)期的正常狀態(tài)的事件。軟件失效模式:軟件失效的不同類型,通常用于描述軟件失效發(fā)生的方式以及對設(shè)備運(yùn)行可能產(chǎn)生的影響軟件失效的影響:指軟件失效模式對軟件系統(tǒng)的運(yùn)行、功能或狀態(tài)等造成的后果高可信軟件設(shè)計(jì)--軟件故障樹分析軟件故障樹分析就是在軟件系統(tǒng)設(shè)計(jì)過程中,通過對可能造成的系統(tǒng)故障的各種因素(包括硬件、軟件、環(huán)境、人為因素等)進(jìn)行分析,畫出
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能建筑安裝工程分包合同書范本6篇
- 二零二五年度個(gè)人房產(chǎn)交易風(fēng)險(xiǎn)防范與產(chǎn)權(quán)變更合同3篇
- 碳筆的使用方法課程設(shè)計(jì)
- 2025年度農(nóng)業(yè)生態(tài)園環(huán)境治理與安全防護(hù)合同3篇
- 籃球啟蒙班課程設(shè)計(jì)
- 2025年度大型活動(dòng)安全保障與環(huán)境保護(hù)合同條款3篇
- 2025版軟件許可合同:企業(yè)級項(xiàng)目管理軟件許可協(xié)議3篇
- 燕山大學(xué)化工課程設(shè)計(jì)
- 編織工藝在船舶纜繩制造中的應(yīng)用考核試卷
- 2025年度智能穿戴設(shè)備OEM委托制造及品牌授權(quán)合同2篇
- 2023年開封糧食產(chǎn)業(yè)集團(tuán)有限公司招聘筆試真題
- 2024年全國“紀(jì)檢監(jiān)察”業(yè)務(wù)相關(guān)知識考試題庫(附含答案)
- 期末檢測卷(三)2024-2025學(xué)年人教PEP版英語四年級上冊(含答案無聽力原文無聽力音頻)
- 2024-2030年中國兒童內(nèi)衣行業(yè)運(yùn)營狀況及投資前景預(yù)測報(bào)告
- 吉首大學(xué)《高等數(shù)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 打印和復(fù)印服務(wù)協(xié)議
- 針灸習(xí)題庫(附參考答案)
- 前置胎盤手術(shù)配合
- 期末試卷(試題)-2024-2025學(xué)年五年級上冊數(shù)學(xué)北師大版
- 2024年中國電信服務(wù)合同標(biāo)準(zhǔn)文本
- 四川省成都市2023-2024學(xué)年高一上學(xué)期語文期末考試試卷(含答案)
評論
0/150
提交評論