網(wǎng)站開發(fā)的響應式和兼容性問題seo優(yōu)化是利用規(guī)則提高排名
呃,前面復習的忘了發(fā)了。從后面開始吧
一、Unit 11-12 軟件架構(gòu)度量和軟件架構(gòu)演化
1.1為什么需要進行軟件架構(gòu)度量?
(軟件架構(gòu)度量的意義/好處)
? 軟件架構(gòu)作為軟件開發(fā)的早中期模型,通過對軟件架構(gòu)進行評估分析,能夠及早的發(fā)現(xiàn)軟件開發(fā)過程中可能遇到的問題,并提出可行的解決方案,進而提高了軟件質(zhì)量保障,降低了軟件開發(fā)的風險。
1.2軟件度量與軟件演化之間的關系?
通過對演化前后的軟件進行度量,分析相關質(zhì)量屬性的變化情況,可以得到軟件的內(nèi)部架構(gòu)與外在屬性之間的聯(lián)系,有利于進一步在總體上把握和控制軟件演化的方向
1.3為什么要進行軟件架構(gòu)演化?
軟件架構(gòu)演化的目的為了適應用戶需求、開發(fā)環(huán)境、運行環(huán)境的變化。
一是在開發(fā)過程中用戶的需求以及開發(fā)環(huán)境會發(fā)生變化,需要通過改變軟件架構(gòu)來適應用戶需求的變化以及開發(fā)環(huán)境的變化;
二是在項目開發(fā)完成后,用戶的需求依然可能發(fā)生改變,軟件的運行環(huán)境也可能會發(fā)生變化,需要通過架構(gòu)演化來適應這一系列變化。
1.4軟件架構(gòu)演化的類型?
靜態(tài)演化:(1)是什么、(2)必要性、(3)一般流程
(1)靜態(tài)演化是指開發(fā)尚未完成過程中、或者說開發(fā)已完成但系統(tǒng)停止運行過程中發(fā)生的演化。
(2)在架構(gòu)開發(fā)和實現(xiàn)過程中需要對原有架構(gòu)進行調(diào)整,保證架構(gòu)與需求之間的一致性
? ? ? ? ?在開發(fā)完成后,由于運行環(huán)境發(fā)生變化,需要對軟件進行修改升級。
(3)架構(gòu)理解——演化需求分析——演化計劃設計——演化計劃實現(xiàn)——系統(tǒng)測試
動態(tài)演化:(1)是什么、(2)必要性、(3)內(nèi)容以及技術
(1)軟件運行過程中,對系統(tǒng)進行更新,且不停止軟件功能的運行
(2)系統(tǒng)內(nèi)部執(zhí)行導? 致的系統(tǒng)架構(gòu)的變更;二是系統(tǒng)外部發(fā)送請求對軟件進行重部署
(3)屬性變更、接口變更、拓撲結(jié)構(gòu)變更、架構(gòu)風格變更,
技術:動態(tài)重配置(主從模式、中央控制模式、客戶端-服務端模式)
二、Unit13 軟件架構(gòu)重構(gòu)
2.1 軟件架構(gòu)重構(gòu)是什么,為什么要進行軟件架構(gòu)重構(gòu)
軟件架構(gòu)重構(gòu)是指在不改變軟件功能以及軟件可見部分的前提下,對軟件的可維護性、可拓展性等質(zhì)量屬性進行優(yōu)化的過程。軟件從架構(gòu)重構(gòu)是軟件質(zhì)量保障的重要手段、是軟件架構(gòu)演化的重要方式。
2.2 基于度量的軟件架構(gòu)重構(gòu)
(1)如何通過軟件架構(gòu)度量獲取重構(gòu)需求??
(2)如何通過軟件架構(gòu)度量進行軟件重構(gòu)建議(如何重構(gòu))
(3)基于度量評估的架構(gòu)重構(gòu)過程
架構(gòu)重構(gòu)一定是在通過度量明確架構(gòu)缺陷之后才進行的
基于度量對軟件架構(gòu)進行評估——產(chǎn)生重構(gòu)需求——分析重構(gòu)需求——設計重構(gòu)計劃——執(zhí)行重構(gòu)操作
三、Unit14-15 軟件架構(gòu)腐蝕與軟件架構(gòu)恢復
3.1什么是軟件架構(gòu)腐蝕
是指實際開發(fā)中的軟件架構(gòu)與預期的軟件架構(gòu)之間的差別。軟件架構(gòu)腐蝕是由于軟件修改產(chǎn)生的,而非人為惡意的。
解決方法(架構(gòu)腐蝕前:預防腐蝕;架構(gòu)腐蝕中:減輕架構(gòu)腐蝕危害;架構(gòu)腐蝕后:進行腐蝕修復)
3.2什么是軟件架構(gòu)恢復,有什么意義
軟件架構(gòu)恢復是逆向工程的實踐和研究的方向。軟件架構(gòu)恢復是指根據(jù)項目工程,完成由低層向高層的抽象過程,得到系統(tǒng)架構(gòu)中組成元素。開發(fā)人員可以根據(jù)恢復出的系統(tǒng)架構(gòu),對系統(tǒng)的代碼編寫、代碼測試等進一步評估優(yōu)化。
3.3軟件架構(gòu)腐蝕和軟件架構(gòu)恢復之間的關系
隨著軟件開發(fā)的進行,難免會產(chǎn)生文檔的缺失,代碼與預期的偏差越來越大(架構(gòu)腐蝕的定義),進而逐步發(fā)生軟件的架構(gòu)腐蝕。這時候如果人工來閱讀代碼來恢復架構(gòu)的話,無疑很是費時費力,這個時候通過逆向工程來恢復架構(gòu)對預防軟件腐蝕就顯得很有意義
四、Unit16-18 技術債、壞味道、脆弱性
4.1 軟件技術債的含義和分類
含義:
指軟件開發(fā)人員為了保證項目進展,或因為時間的原因,或因為開發(fā)人員本身技術的原因,在該采用某些最優(yōu)的設計方案時采取了某些妥協(xié),以在短期內(nèi)加速開發(fā),進而加重自己未來的開發(fā)負擔。
分類:
設計債務(沒有采用最優(yōu)架構(gòu))
代碼債務(沒有遵循標準代碼格式等)
測試債務
文檔債務
4.2 軟件技術債的償還
(1)發(fā)現(xiàn)技術債
(2)加入產(chǎn)品列表
(3)按照償還的難度以及收益進行排序
(4)在將來開發(fā)周期中逐步償還技術債
4.3 軟件壞味道的含義和分類
1.代碼壞味道:程序中某一段代碼是不好的或是不合理的,我們將這一段代碼稱為代碼壞味道。
(1)應用級壞味道:重復代碼
(2)類級壞味道:過大的類
(3)方法級壞味道:過長的方法、參數(shù)過多
2.架構(gòu)壞味道:
? ?連接件嫉妒
? ?模糊接口功能分散
4.4 軟件脆弱性的成因
軟件脆弱性是指在軟件開發(fā)過程中(如需求分析,代碼編寫)等過程存在的錯誤,也可能是在配置過程中存在的錯誤。這種錯誤本身并沒有危害,但一旦被攻擊者利用,可能會導致非常嚴重的后果。軟件脆弱性一般與軟件架構(gòu)風格相關,不同風格的脆弱性不同。比如管道過濾器風格,如果前面幾個過濾器出現(xiàn)錯誤,經(jīng)過層層過濾,可能會導致錯誤的放大。
最后再簡單總結(jié)下:
1.軟件架構(gòu)度量與演進
(1)軟件架構(gòu)度量的意義(進行軟件質(zhì)量保障,降低開發(fā)風險)
(2)軟件架構(gòu)演進的意義(滿足需求,適應環(huán)境)
(3)二者之間的聯(lián)系
(4)軟件架構(gòu)演進的分類
2.軟件架構(gòu)重構(gòu)
(1)什么是軟件架構(gòu)重構(gòu)
(2)軟件架構(gòu)重構(gòu)的步驟
3.軟件架構(gòu)腐蝕與恢復
(1)什么是軟件架構(gòu)腐蝕
(2)什么是軟件架構(gòu)恢復
(3)腐蝕與恢復之間的聯(lián)系
4.軟件架構(gòu)技術債、壞味道、脆弱性
(1)什么是軟件架構(gòu)技術債
(2)如何償還技術債
(3)有哪些壞味道
(4)軟件脆弱性的成因及危害