软考系统架构师笔记-案例分析重点(一)
質量屬性效應包括:性能、安全性、可用性、可修改性;
?
系統架構風險:架構設計中潛在的、存在問題的架構決策帶來的隱患;
系統架構敏感點:為了實現某種特定的質量屬性,一個或多個構件所具有的特性;
系統架構權衡點:影響多個質量屬性的特征,是多個質量屬性的敏感點。
?
狀態圖:描述一個對象在其生成周期的動態行為,表現一個對象所經歷的狀態序列,引起狀態轉移的事件(event),以及因狀態轉移而伴隨的動作(action);
活動圖:描述系統工作流程和并發行為。活動圖為狀態圖的特殊形式,圖中一個活動結束后會立即進入下一個活動(狀態圖中狀態轉移可能需要事件觸發)。
兩者區別:狀態圖側重于描述行為的結果,活動圖側重描述行為的動作。活動圖可以并發。
?
系統可靠性(Reliability):產品在規定條件和規定時間內完成規定功能的能力。
子特征:成熟性、容錯性、易恢復性、可靠性依從性;
提高可靠性的技術:N版本程序設計、恢復塊方法、防衛式程序設計、雙機熱備或集群系統、冗余設計;
?
關系型數據庫:設計難度大;遵循數據庫范式,數據冗余少;架構方面以數據庫為中心組織和管理;數據庫獨立于應用系統,接口標準化,可以在不同應用之間共享數據。
文件系統:針對特定的系統,設計難道小;可能在多個文件中復制相同的數據屬性,數據冗余大;架構方面以應用為中心進行管理;擴展性差很難在其他系統中使用。
?
內存數據庫:采用key-value模式;內存直接讀寫性能高;容量受限;恢復復制,可靠性低。
關系數據庫:采用關系模式;外存讀寫,性能低;存儲容量大,內建恢復機制,可靠性高。
?
SQL語句設計時,影響查詢效率的設計原則為:
? ? ? ? ? 1. 查詢時盡量不要返回不需要的列、行;
? ? ? ? ? 2. 需要進行多表連接查詢時,盡量使用連接查詢,避免使用子查詢結構;
? ? ? ? ? 3. 盡量避免采用NOT IN、NOT EXIST、LIKE等使用全表查詢操作;
? ? ? ? ? 4. 盡量避免使用DISTINCT關鍵字。
?
數據持久層:是一組軟件服務,將應用程序與該程序所使用的數據源分離,為整個項目提供一個統一、安全、并發的數據持久。
好處:
? ? ? ? ?1. 程序代碼重用性強,更換了數據庫,只要更改配置文件即可;
? ? ? ? ?2. 業務邏輯代碼可讀性強,代碼中不會存在大量SQL語句;
? ? ? ? ?3. 持久化技術自動優化,減少對數據庫的訪問量,提供程序運行效率;
? ? ? ? ?4. 簡化發現工作,程序員更關注業務邏輯的開發;
? ? ? ? ?5. 通過對象/關系映射向業務邏輯提供面向對象的數據訪問。
?
Hibernate框架:
? ? ? ? ? 1. Hibernate框架更容易移植到其他數據庫平臺,只需修改對應的XML即可。所有的HQL語句與具體使用的數據庫無關,移植性好。MyBatis中所有的SQL語句都是依賴所用的數據庫,不同數據庫支持沒Hibernate好;
? ? ? ? ? 2. 能消除SQL語句的開發量,Hibernate提供了持久層操作;
? ? ? ? ? 3. Hibernate提供了對象管理功能,使用者不用在理會底層數據庫的細節。MyBatis沒有這一塊的文檔說明,用戶需要自己進行管理。
?
主流數據庫持久層技術:
? ? ? ? ?1. iBatis已改名為Mybatis,是Apache的一個開源項目,采用O/R Mapping解決方案,其特點為小巧上手快;
? ? ? ? ?2. EJB中包含BMP和CMP,BMP是在Bean中完成對JDBC的調用,要寫SQL語句,使用Datasource獲得數據庫資源和連接,CMP是EJB容器自動完成對數據庫的操作,在實體Bean中重寫get/set方法,然后在xml文件中定義即可。
? ? ? ? ?3. Hibernate提供了較為完整的封裝,采用O/R Mapping實現,使用POJO類映射到數據庫,即可完成持久化操作,他會自動生成SQL語句并調用JDBC執行。
? ? ? ? ?4. iBatis為POJO與SQL之間的映射。是Sql Mapping的ORM實現。
?
孩子死亡了家庭孩子;
腦子死亡了人就死了;
依賴:A中有B,這個B在A中以方法的參數存在,非成員存在;
關聯:A中有B,A中有B這個成員;
?
下面是數據流圖相關:
?
數據流圖基本元素及作用:
數據流:數據在系統內傳播的路徑,由成份固定的數據組成;
數據源(外部實體):為終點,代表系統外的實體,人、物、其他軟件系統;
加工(處理):對數據進行處理加工,接收數據輸入并且輸出;
數據存儲:靜態存儲,文件、文件一部分、數據庫等。
?
數據流圖在繪制過程中語法要注意:
? ? ? ? ? 1. 只吃不拉為黑洞,只拉不吃為奇跡;
? ? ? ? ? 2. 只要到數據源(外部實體)才會停止;
?
CRUD矩陣:Create、Read、Update、Delete
DNS負載均衡:DNS服務器上為同一主機配置多個IP。當有請求時,DNS服務器查詢主機IP地址順序返回不同的解析結果,從而達到負載均衡;
反向代理負載均衡:將請求以方向代理方式(代理在服務器上)動態轉發給內部的網絡結點,從而達到負載均衡;
?
水平分區特點及主從復制機制的好處:
當數據庫的數據表記錄數非常龐大而記錄的訪問大多數為本地區域時,采用水平分區能提高效率;
主從復制機:同樣的數據存在多個副本,當用戶查詢時,選擇該數據最近的副本進行訪問,提供效率降低資源使用沖突。
?
?
總結
以上是生活随笔為你收集整理的软考系统架构师笔记-案例分析重点(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言工作笔记-对函数指针的进一步认识(
- 下一篇: C++|Java混合实验-java搭建g