弄懂了2個關鍵概念,如下:
啥是軟體架構(software architecture)?
軟體架構是指在一定的設計原則基礎上,從不同角度對組成系統的各部分進行搭配和安排,形成系統的多個結構而組成架構,它包括該系統的各個元件,元件的外部可見屬性及元件之間的相互關係。元件的外部可見屬性是指其他元件對該元件所做的假設。
軟體架構設計就是從巨集觀上說明一套軟體系統的組成與特性。
軟體架構設計是一系列有層次的決策 ,比如:功能與展現的決策;技術架構的決策;自主研發還是合作;商業軟體還是開源軟體 。
說白了就和蓋房子一樣,臥室設計成什麼樣,客廳設計成什麼樣,廁所設計成什麼樣,上述中的「臥室」,「客廳」,「廁所」就相當於軟體中的各個模組,軟體架構確定區域性模組採用什麼技術,確定整體採用哪種技術將他們統一起來。
為啥要進行軟體架構設計?
電腦科學和程式設計的飛速發展,使得軟體設計應用到從航空航天到日常生活的方方面面。單個人開發一段小程式的做法早就過時,大範圍協作的工程化時代隨即到來。
隨著大範圍協作的效率問題和軟體複雜度的**式增長,管理和技術方面的各種不確定性也爆發性增加,導致軟體開發的質量無法得到有效保證,週期和成本無法得到有效控制。
人們一直在尋求找到這些問題的解決辦法。然而 fred brooks 在 1975 年出版的軟體工程聖經《人月神話》中說,沒有(能解決所有問題的)銀彈(there is no silver bullet)。
自此,人們發展了專案研發過程管理來控制管理活動的不確定性,同時也發展了軟體架構設計方法來控制技術方面的不確定性。
進而在實踐中不斷的總結和改進,用於有效指導和最大程度的保障軟體開發的質、週期和成本。
通俗來說,現在不是單個**英雄的時代,現在的軟體不可能乙個人獨立完成,那就得協作,協作就會出現一系列問題,如何進行管理,如何使開發的質量得到保證,如何不至於軟體開發延期,這就需要引入軟體架構設計來解決。
《軟體架構設計》溫昱著讀後感(三)
看到本書第十三章發現,需求不應該決定架構,我心想 what?架構不就是要根據使用者需求來確定的嗎。再往下看,原來是關鍵需求決定軟體架構。究其原因也很好理解,在實際軟體開發中,不是像大學裡這種 實驗室 軟體架構師沒有時間對 所有需求 進行深入分析,這既是策略,也是現實,當然這對於我以後走向社會提供了很...
架構實戰 軟體架構設計的過程讀後感(三)
本書第五張主要講述了 可重用架構資源 由於我參與開發實際專案並不多,所以對軟體重用體會和理解並不是很深,故查閱了相關資料,結合書上的敘述和例子,有了乙個巨集觀的了解。乙個可重用資源可以代表乙個可重用需求 在不同系統裡反覆出現的需求 可重用的解決方案元素 乙個架構模式或者可重用 可重用測試 可重用的方...
軟體架構實踐讀後感一
軟體架構實踐讀後感一 軟體構架實踐 第3版 影印版 是一本榮獲大獎且影響深遠的經典,目前已經全面修訂,充分體現了這一領域的最新進展。基於軟體開發的真實現狀,軟體構架實踐 第3版 影印版 再次以全新的角度引入軟體構架的相關概念和最佳實踐,闡述軟體系統是如何架構的,軟體系統中的各個要素之間又是如何相互作...