日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

《實用軟件體系結(jié)構(gòu)》學(xué)習(xí)筆記

 心不留意外塵 2016-07-23

 http://blog.csdn.net/byxdaz/article/details/4848270

本書的目標(biāo)是向軟件架構(gòu)師提供實用的指南和技術(shù),以更快地得到好的系統(tǒng)結(jié)構(gòu)設(shè)計。我們的哲學(xué)是不應(yīng)該致力于設(shè)計理想化的系統(tǒng)結(jié)構(gòu),而是應(yīng)該仔細(xì)地評估和權(quán)衡所有技術(shù)、市場、人員、成本方面的問題,從而獲取一個好的解決方案。

 

一、軟件體系結(jié)構(gòu)術(shù)語

系統(tǒng)結(jié)構(gòu)風(fēng)格或者系統(tǒng)結(jié)構(gòu)模式

參考系統(tǒng)結(jié)構(gòu)或者領(lǐng)域特定的軟件系統(tǒng)結(jié)構(gòu)(應(yīng)用在一個特定領(lǐng)域)

產(chǎn)品線系統(tǒng)結(jié)構(gòu)(應(yīng)用在一個組織的一組產(chǎn)品)

軟件系統(tǒng)結(jié)構(gòu)(應(yīng)用在軟件系統(tǒng)或者產(chǎn)品)

二、4種視圖

1、一個軟件體系結(jié)構(gòu)有4種截然不同的視圖:概念視圖、模塊視圖、執(zhí)行視圖、代碼視圖。

使用這個4種視圖提供了一種設(shè)計軟件系統(tǒng)結(jié)構(gòu)的系統(tǒng)化方法,幫助架構(gòu)師設(shè)置優(yōu)先級,分析權(quán)衡,并保證沒有缺漏。

2、不同視圖強調(diào)的不同工程關(guān)注點:

在概念視圖中,問題和解決方案主要通過領(lǐng)域術(shù)語來考慮的。對于特定的軟件及硬件技術(shù),它們應(yīng)當(dāng)是相對獨立的。概念視圖的工廠關(guān)注點包括:

系統(tǒng)如何滿足需求?

 商用構(gòu)件怎樣組裝成整體,怎樣在功能層上與系統(tǒng)的其他部分交互?

領(lǐng)域特定的硬件和軟件如何融入系統(tǒng)?

功能是如何被分割并進(jìn)入產(chǎn)品個版本的?

系統(tǒng)如何與之前版本的產(chǎn)品合并?它如何支持未來的版本?

如何支持產(chǎn)品線?

如何將由需求或領(lǐng)域中所做的變動引起的影響最小化?

在模塊視圖中,概念視圖中的構(gòu)件和連接子被映射為子系統(tǒng)和模塊。在這里,架構(gòu)師強調(diào)的是如何用現(xiàn)有的軟件平臺以及技術(shù)實現(xiàn)概念的解決方案。主要的工程關(guān)注點有如下幾點:

產(chǎn)品是如何映射到軟件平臺的?

使用了什么樣的系統(tǒng)支持或系統(tǒng)服務(wù)?具體是在什么地方?

怎么支持測試?

如何降低模塊間的依賴性?

如何將模塊與子系統(tǒng)的復(fù)用最大化?

當(dāng)商用軟件、軟件平臺或標(biāo)準(zhǔn)發(fā)生變動時,采用何種技術(shù)在封裝產(chǎn)品時可以將它們與產(chǎn)品進(jìn)行隔離?

執(zhí)行視圖描述模塊如何映射到運行時平臺說提供的元素,以及這些又如何映射到硬件體系結(jié)構(gòu)。執(zhí)行視圖定義系統(tǒng)的執(zhí)行時實體及其屬性,比如內(nèi)存使用和硬件分配。對于執(zhí)行視圖,其工程關(guān)注點如下:

系統(tǒng)如何滿足性能、恢復(fù)及重新配置方面的需求?

如何平衡資源的使用(例如:負(fù)載平衡)?

如何達(dá)到必需的并發(fā)、復(fù)制及分布,而不過度增加控制算法的復(fù)雜度?

如何使運行時平臺的改變所引起的影響到達(dá)最???

在代碼體系結(jié)構(gòu)視圖中,架構(gòu)師決定執(zhí)行視圖中的執(zhí)行時實體如何映射到部署構(gòu)件(例如:可執(zhí)行構(gòu)件),決定模塊視圖中的模塊如何映射到源構(gòu)件,以及部署構(gòu)件如何從源構(gòu)件生成。代碼視圖中重要的工程關(guān)注點如下:

如何降低產(chǎn)品升級的時間和費用?

如何管理產(chǎn)品版本及發(fā)布?

如何降低構(gòu)造時間?

需要什么工具支持開發(fā)環(huán)境?

如何支持集成與測試?

三、全局分析

全局分析是在定義概念、模塊、執(zhí)行和代碼系統(tǒng)結(jié)構(gòu)視圖之前進(jìn)行的,并貫穿整個系統(tǒng)結(jié)構(gòu)的設(shè)計過程。

全局分析從識別影響體系結(jié)構(gòu)設(shè)計的因素來分成3類:組織因素、技術(shù)因素、產(chǎn)品因素。

組織因素分成5類:管理;員工技能、興趣、能力、缺點;過程與開發(fā)運行環(huán)境;開發(fā)進(jìn)度;開發(fā)預(yù)算。

技術(shù)因素包括:通用和專用的硬件;操作系統(tǒng)、用戶界面、設(shè)計模式等軟件技術(shù);模版和框架等體系結(jié)構(gòu)技術(shù);圖像、數(shù)據(jù)庫、數(shù)據(jù)格式、算法和技術(shù)之類的標(biāo)準(zhǔn)。

產(chǎn)品因素是描述了產(chǎn)品的功能需求、用戶可見的特征和產(chǎn)品的性能等質(zhì)量方面的需求。比如:功能特征;用戶界面;性能;依賴性;錯誤監(jiān)測、報告、修復(fù);服務(wù)和價格等。

全局分析是在每一種體系結(jié)構(gòu)設(shè)計視圖中都要進(jìn)行的一種行為。在全局分析過程中建立的問題卡片要用在每一個視圖設(shè)計的核心設(shè)計任務(wù)中。在進(jìn)行核心設(shè)計任務(wù)時,做出的決策應(yīng)當(dāng)可以返回到全局分析,以增加和修改因素、問題和策略。

總結(jié)策略:

問題

應(yīng)用策略

進(jìn)度緊迫

復(fù)用內(nèi)部已有的、領(lǐng)域特性構(gòu)件

購買而不是建立

使元素容易添加和刪除

技能不足

避免使用多線程

封裝多進(jìn)程

通用和領(lǐng)域特定硬件的改變

封裝領(lǐng)域特定硬件

封裝通用硬件

軟件技術(shù)的改變

使用標(biāo)準(zhǔn)

為外部構(gòu)件開發(fā)產(chǎn)品特定的接口

資源有限

限制活動線程個數(shù)

用動態(tài)的內(nèi)部線程見通信聯(lián)系

易用增加和刪除特性

按關(guān)聯(lián)尺度分離構(gòu)件和模塊

特性封裝到分開的構(gòu)件

分離用戶交互模塊

易用增加和刪除采集過程和算法

為圖像處理使用靈活的流水線模塊

為采集和圖像處理引入構(gòu)件

分離用戶交互模塊

高吞吐量

把獨立的控制線程映射到進(jìn)程

使用新增的CPU

實時采集性能

從沒有臨界時間構(gòu)件中分離出有臨界時間的

為模塊行為開發(fā)準(zhǔn)則

靈活的分配模塊到進(jìn)程

使用單速分析來預(yù)言性能

使用共享存儲進(jìn)行流水線階段之間通信

實現(xiàn)恢復(fù)

引入操作的恢復(fù)模塊

把全部數(shù)據(jù)放到恢復(fù)穩(wěn)定和容易達(dá)到的地方

實現(xiàn)診斷

制定一個錯誤處理策略

減少錯誤處理的工作

封裝診斷構(gòu)件

使用標(biāo)準(zhǔn)日志服務(wù)

體系結(jié)構(gòu)的完整性

保護(hù)模塊間的繼承

分離公共接口構(gòu)件

并發(fā)的開發(fā)工作

從源構(gòu)件中分離開發(fā)構(gòu)件

保護(hù)執(zhí)行視圖

采用階段開發(fā)

通過靜態(tài)庫來發(fā)布層

限制可使用的采集圖像類型

采用適當(dāng)?shù)某橄箝_發(fā)一個脫機的探測模擬器

使用一個靈活的建立過程

多樣性開發(fā)和目標(biāo)平臺

分離和封裝依賴目標(biāo)平臺的代碼

 

 

四、概念體系結(jié)構(gòu)視圖

 

 

清楚了概念體系結(jié)構(gòu)的結(jié)構(gòu)視圖之后,可以推論或預(yù)測重要的系統(tǒng)屬性。概念視圖可以用于:

實用環(huán)境及場景。

性能評估。

安全性及可靠性分析。

獨立于監(jiān)測的目標(biāo)。

理解靜態(tài)及動態(tài)系統(tǒng)配置。

工作量評估(初步;不包括基礎(chǔ)設(shè)施)。

 

 

五、模塊體系結(jié)構(gòu)視圖

 

 

 

 

明確了一個模塊視圖,就開始了對重要系統(tǒng)屬性的關(guān)注。對模塊視圖的描述,有以下用途:

管理模塊接口。

變化影響分析。

接口約束的一致性檢查。

管理配置。

評估成果。


模塊體系設(shè)計活動

子系統(tǒng)包含0和多個子系統(tǒng)、0和多個模塊;模塊之間的關(guān)系是通過接口來實現(xiàn)的。模塊也存在包含關(guān)系、使用關(guān)系。

 

六、執(zhí)行體系結(jié)構(gòu)視圖

多個運行時實體;運行時實體依賴于模塊;資源平臺依賴于硬件資源。

通信機制包括DCOM(分布式構(gòu)件對象模型)、IPC(進(jìn)程通信)、RPC(遠(yuǎn)程過程調(diào)用)等。

資源包括地址空間、內(nèi)存池、定時器、代理、端口等。

執(zhí)行視圖通常由下面人員使用:

架構(gòu)師,設(shè)計系統(tǒng)運行時間的特性,以使得設(shè)計符合需求,并能夠適應(yīng)期望的改變。

開發(fā)人員,提供正確的實現(xiàn)。

測試人員,他們需要知道系統(tǒng)的運行時間的特性并計劃進(jìn)行測試。

維護(hù)人員,決定運行時間平臺的改變?nèi)绾斡绊懴到y(tǒng),或者需求的改變?nèi)绾斡绊懴到y(tǒng)的運行時間特性。

 

 

七、代碼體系結(jié)構(gòu)視圖

代碼體系結(jié)構(gòu)視圖的應(yīng)用:

一旦代碼體系結(jié)構(gòu)視圖被明確地描述出來,它就可以有許多不同的用途:

對于模塊視圖和執(zhí)行視圖中的元素的可追蹤性。

對于特定開發(fā)任務(wù)所需要的所有構(gòu)件的透明訪問。

構(gòu)造部分系統(tǒng)。

管理構(gòu)件的版本和發(fā)布。

保持體系結(jié)構(gòu)的設(shè)計決策,及時發(fā)現(xiàn)違反決策的情況。

代碼體系設(shè)計活動:

代碼組由源代碼構(gòu)件、二進(jìn)制構(gòu)件、庫、執(zhí)行(運行時實體)、配置描述等組成。

源代碼構(gòu)件依賴于模塊和接口。

代碼組依賴于子系統(tǒng)和分層。

 

八、軟件體系架構(gòu)模式

軟件設(shè)計的一個核心問題是能否使用重復(fù)的體系架構(gòu),即能否達(dá)到體系架構(gòu)級的軟件重用。也就是說,能否在不同的軟件系統(tǒng)中,使用同一體系架構(gòu)?;谶@個目的,許多學(xué)者們開始研究和實踐軟件體系架構(gòu)的模式問題。在<Pattern-Oriented Software Architecture (面向模式的軟件體系架構(gòu)) >中首次提出了8種體系結(jié)構(gòu)模式: 層(Layers)、管道和過濾器(Pipes and Filters) 、黑板(Black board )、代理者(Broker)、模型-視圖-控制器(Model-View-Controller)、表示-抽象-控制(Presentation-Abstraction-Control)、微核(Microkernel)、映像(Reflection)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多