軟考知識點封面.jpg
- 用例之間的關(guān)系有包含和擴展
- 類之間的關(guān)系有關(guān)聯(lián) , 聚合 , 組合 , 依賴 , 泛化
- 實時系統(tǒng)是指向系統(tǒng)發(fā)出一指令后 , 在一個極短時間內(nèi)系統(tǒng)回復(fù)結(jié)果
- 實時系統(tǒng)的特性 : 時間約束性(及時性) , 可預(yù)測性 , 高可靠性 , 與外部環(huán)境交互作用性 , 多任務(wù)類型 , 約束的復(fù)雜性 , 具有短暫超載的特點
- 架構(gòu)所關(guān)注的質(zhì)量屬性主要包括 : 性能 , 可用性 , 可修改性 , 安全性
- 性能 Performance : 是指系統(tǒng)的響應(yīng)能力 , 即要經(jīng)過多長時間才能對某個事件作出響應(yīng) , 或者在某段時間內(nèi)所能處理的事件的個數(shù)
- 可用性 Availability : 是系統(tǒng)能夠正常運行的時間比例 , 經(jīng)常用兩次故障之間的時間長度或者在出現(xiàn)故障時系統(tǒng)能夠恢復(fù)正常的速度來表示
- 安全性 Security : 是指系統(tǒng)在向合法用戶提供服務(wù)的同時能夠阻止非授權(quán)用戶使用的企圖或者拒絕服務(wù)的能力 , 安全性又可劃分為機密性 , 完整性 , 不可否認性及可控性等特性
- 可修改性 Modifiability : 是指能夠快速地以較高的性能價格比對系統(tǒng)進行變更的能力 , 通常以某些具體的變更為基準 , 通過考察這些變更的代價衡量可修改性
- 架構(gòu)評估方法主要從SAAM 和 ATAM 中選擇
- SAAM評估方法的目的是驗證基本的體系結(jié)構(gòu)假設(shè)和原則 , 評估體系固有的風險
- SAAM評估參與者 風險承擔者 , 記錄人員 , 軟件體系架構(gòu)設(shè)計師
- SAAM 分析評估體系結(jié)構(gòu)的過程包括六個步驟 , 即形成場景 , 描述體系結(jié)構(gòu) , 場景的分類和優(yōu)先級確定 , 間接場景的單個評估 , 場景相互作用的評估 , 總體評估
- SAAM 評估把代表了未來可能做的更改的場景與架構(gòu)對應(yīng)起來 , 顯現(xiàn)出架構(gòu)中未來可能會表現(xiàn)出較高復(fù)雜性的地方 , 理解系統(tǒng)的功能 , 對多個架構(gòu)所支持的功能和數(shù)量做比較
- ATAM 的目的是依據(jù)系統(tǒng)質(zhì)量屬性和商業(yè)需求評估設(shè)計決策的結(jié)果 , ATAM 希望揭示出架構(gòu)滿足特定質(zhì)量目標的情況 , 使我們更清楚地認識到質(zhì)量目標之間的聯(lián)系 , 即如何權(quán)衡多個質(zhì)量目標
- ATAM參與者 , 評估小組 , 項目決策者 , 架構(gòu)涉眾
- ATAM 評估過程包括九個步驟 , 描述ATAM方法 , 描述商業(yè)動機 , 描述體系結(jié)構(gòu) , 確定體系結(jié)構(gòu)方法 , 生成質(zhì)量屬性效應(yīng)樹 , 分析體系結(jié)構(gòu)方法 , 討論和分級場景 , 描述評估結(jié)果 , 其中分析體系結(jié)構(gòu)方法出現(xiàn)兩次
- 設(shè)計模式分類 創(chuàng)建型模式 , 結(jié)構(gòu)性模式 , 行為模式
- 創(chuàng)建型模式抽象了實例化過程 , 它們幫助一個系統(tǒng)獨立于創(chuàng)建 , 組合和表示它的那些對象 , 如 工廠方法 , 抽象工廠 , 生成器 , 原型 , 單例模式
- 結(jié)構(gòu)型模式涉及到如何組合類和對象以獲得更大的結(jié)構(gòu) , 結(jié)構(gòu)型模式包括適配器 , 橋接 , 組成 , 裝飾 , 外觀 , 享元 , 代理
- 行為模式涉及到算法和對象間職責的分配 , 行為模式不僅描述對象或類的模式 , 還描述它們之間的通信模式 , 觀察者 , 策略
- 微服務(wù)的基本思想在于考慮圍繞業(yè)務(wù)領(lǐng)域組件來創(chuàng)建應(yīng)用 , 這些應(yīng)用可獨立地進行開發(fā) , 管理和加速 , 在分散的組件中使用微服務(wù)云架構(gòu)和平臺使部署 , 管理和服務(wù)功能交付變得更加簡單
- 應(yīng)用服務(wù)器是應(yīng)用設(shè)計 , 開發(fā) , 部署 , 運行 , 管理 , 維護的平臺 , 應(yīng)用服務(wù)器既是應(yīng)用開發(fā)的平臺 , 包括表示層 , 應(yīng)用層和數(shù)據(jù)層的設(shè)計模式和編程環(huán)境 , 同時又是多層結(jié)構(gòu)應(yīng)用的部署運行平臺
- 設(shè)計階段 , 應(yīng)用服務(wù)器完成底層通信 , 服務(wù) , 并屏蔽掉復(fù)雜的底層技術(shù)細節(jié) , 向用戶提供結(jié)構(gòu)簡單 , 功能完善的編程接口 , 讓用戶可以專心于商務(wù)邏輯的設(shè)計
- 開發(fā)階段 , 應(yīng)用服務(wù)器提供了完全開放的編程語言和應(yīng)用接口 , 同時提供快速開發(fā)的工具和手段, 幫助用戶提高開發(fā)效率
- 部署階段 , 應(yīng)用服務(wù)器提供了對多種網(wǎng)絡(luò)環(huán)境的支持 , 幫助用戶在復(fù)雜的網(wǎng)絡(luò)環(huán)境中配置系統(tǒng)參數(shù) , 發(fā)揮系統(tǒng)最大性能
- 運行階段 , 應(yīng)用服務(wù)器基于開發(fā)技術(shù)標準 , 提供了系統(tǒng)的運行環(huán)境 , 以及系統(tǒng)的名字解析 , 路由選擇 , 負載平衡 , 事務(wù)控制等服務(wù) , 并提供系統(tǒng)容錯 , 修復(fù) , 遷移 , 升級擴展等功能
- 管理階段 , 應(yīng)用服務(wù)器提供圖形化界面來管理整個系統(tǒng)的資源 , 而且系統(tǒng)在運行期間也能動態(tài)監(jiān)控和管理
- NoSQL 支持高并發(fā)數(shù)據(jù)訪問 , 性能較高
- NoSQL 的數(shù)據(jù)存儲結(jié)構(gòu)松散 , 能夠靈活支持多種類型的數(shù)據(jù)格式
- NoSQL 能夠支持海量數(shù)據(jù)的存儲 , 且易于橫向擴展
- NoSQL 基于分布式數(shù)據(jù)存儲 , 不存在單點故障和性能瓶頸 , 系統(tǒng)可用性高
- NoSQL 現(xiàn)有的產(chǎn)品不夠成熟 , 大多數(shù)產(chǎn)品處于初創(chuàng)期
- NoSQL 并未形成一定的標準 , 產(chǎn)品種類繁多 , 缺乏官方支持
- NoSQL 不提供對SQL的支持 , 學習和應(yīng)用遷移成本較高
- NoSQL 數(shù)據(jù)庫支持的特性不夠豐富 , 現(xiàn)有產(chǎn)品提供的功能比較有限
- 分布式基礎(chǔ)設(shè)施為構(gòu)建分布式系統(tǒng)所提供的基礎(chǔ)支撐 : 以下三條
- 構(gòu)件管理支持 : 現(xiàn)有分布式基礎(chǔ)設(shè)施一般通過構(gòu)件容器為構(gòu)件提供基本的運行環(huán)境 , 具體功能一般包括管理構(gòu)件的實例極其生命周期 , 管理構(gòu)件的元信息等
- 互操作支持 : 現(xiàn)有分布式基礎(chǔ)設(shè)施均提供了高層通信協(xié)議以屏蔽節(jié)點的物理特性以及各節(jié)點在處理器 , 操作系統(tǒng) , 程序設(shè)計語言等方面的異構(gòu)性 , 基于互操作支持 , 開發(fā)人員在開發(fā)與調(diào)用分布式對象時 , 軍不惜要自己編寫處理底層通信的代碼
- 公共服務(wù)支持 : 現(xiàn)有分布式基礎(chǔ)設(shè)施通常將針對分布式軟件的通用支持集成于一身 , 以公共服務(wù)的形式提供給應(yīng)用程序 , 其提供的常見的公共服務(wù)包括 , 命名服務(wù) , 事務(wù)服務(wù) , 安全服務(wù) , 持久性服務(wù)等
- 在嵌入式系統(tǒng)中 , 軟件采用開放式架構(gòu)已經(jīng)成為新的發(fā)展趨勢 , 軟件架構(gòu)設(shè)計的優(yōu)劣將直接影響軟件的重用和移植能力
- 開放架構(gòu)應(yīng)具有一下四個基本特點
- 可移植性 : 各種計算機應(yīng)用系統(tǒng)可以在具有開放架構(gòu)特性的各種計算機系統(tǒng)間進行移植
- 可互操作性 : 如計算機網(wǎng)絡(luò)中的各個節(jié)點機都具有開放架構(gòu)的特性 , 則該網(wǎng)上各節(jié)點機間可互操作和資源共享
- 可裁剪性 : 如某個計算機系統(tǒng)是具有開放架構(gòu)特性的 , 則在該系統(tǒng)的低檔機上運行的應(yīng)用系統(tǒng)應(yīng)能在高檔機上運行 , 原在高檔機上運行的應(yīng)用系統(tǒng)經(jīng)裁剪后也可在低檔機上運行
- 易獲得性 : 在具有開放架構(gòu)特性的機器上所運行的軟件環(huán)境易于從多方獲得 , 不受某個來源控制
- 企業(yè)信息化規(guī)劃的內(nèi)容
- 企業(yè)信息化規(guī)劃不僅涉及到信息系統(tǒng)規(guī)劃 , 同時與企業(yè)規(guī)劃 , 業(yè)務(wù)流程建模等緊密相關(guān) , 是融合企業(yè)戰(zhàn)略 , 管理規(guī)劃 , 業(yè)務(wù)流程重組等內(nèi)容的 "業(yè)務(wù) + 管理 + 技術(shù)" 的活動
- 企業(yè)信息化規(guī)劃設(shè)計到業(yè)務(wù)流程重組和信息資源規(guī)劃 , 信息技術(shù)戰(zhàn)略規(guī)劃 , 信息系統(tǒng)戰(zhàn)略規(guī)劃和企業(yè)戰(zhàn)略規(guī)劃等多個領(lǐng)域 , 所有的規(guī)劃都應(yīng)該圍繞企業(yè)關(guān)鍵目標的實現(xiàn)而展開 , 并未企業(yè)目標的實現(xiàn)提供支持和必須的服務(wù)
- 進行信息化規(guī)劃時 , 需要做好以下五個方面的工作
- 明確發(fā)展目標和實施重點
- 成立領(lǐng)導機構(gòu)
- 做好企業(yè)業(yè)務(wù)信息化需求分析
- 確定企業(yè)信息化不同發(fā)展階段的投資預(yù)算
- 制定必要的促進企業(yè)信息化建設(shè)的規(guī)章制度
- 采用ABSD方法進行軟件開發(fā)時 , 需要經(jīng)歷架構(gòu)需求 , 架構(gòu)設(shè)計, 架構(gòu)文檔化 , 架構(gòu)復(fù)審 , 架構(gòu)實現(xiàn)和架構(gòu)演化六個階段
- 架構(gòu)需求 : 明確用戶對目標軟件系統(tǒng)在功能 , 行為 , 性能 , 設(shè)計約束等方面的期望 , 其主要活動包括需求獲取 , 標識構(gòu)件 和架構(gòu)需求評審
- 架構(gòu)設(shè)計階段是一個迭代的過程 , 利用架構(gòu)需求生成并調(diào)整架構(gòu)決策 , 主要活包括提出架構(gòu)模型 , 將已標識的構(gòu)件映射到架構(gòu)中 , 分析構(gòu)件之間的相互作用 , 產(chǎn)生系統(tǒng)架構(gòu)和架構(gòu)設(shè)計評審
- 架構(gòu)文檔化的主要活動是對架構(gòu)設(shè)計進行分析和整理 , 生成架構(gòu)規(guī)格說明書和測試架構(gòu)需求的質(zhì)量設(shè)計說明書
- 在一個主版本的軟件架構(gòu)分析之后 , 需要安排一次由外部人員參加的架構(gòu)復(fù)審 , 架構(gòu)復(fù)審需要評價架構(gòu)是否能夠滿足需求 , 質(zhì)量屬性需求是否在架構(gòu)中得以體現(xiàn) , 層次是否清晰 , 構(gòu)件劃分是否合理等 , 從而標識潛在的風險 , 及早發(fā)現(xiàn)架構(gòu)設(shè)計中的缺陷和錯誤
- 架構(gòu)實現(xiàn)主要是對架構(gòu)進行實現(xiàn)的過程 , 主要活動包括架構(gòu)分析與設(shè)計 , 構(gòu)件實現(xiàn) , 構(gòu)件組裝和系統(tǒng)測試
- 架構(gòu)演化階段主要解決用戶在系統(tǒng)開發(fā)過程中發(fā)生的需求變更問題 , 主要活動包括架構(gòu)演化計劃 , 構(gòu)件變動 , 更新構(gòu)件 , 構(gòu)件的組裝與測試和技術(shù)評審
- 在軟件開發(fā)過程中可能遇到的問題包括
- 在架構(gòu)需求獲取過程中如何對捕獲的架構(gòu)需求進行篩選和優(yōu)先級排序
- 在架構(gòu)復(fù)審過程中如何解決評審人員的意見不一致問題
- 在架構(gòu)實現(xiàn)過程中如何根據(jù)項目組實際情況選擇開發(fā)語言與開發(fā)平臺
- 在架構(gòu)演化過程中如何篩選并處理用戶需求變更等