弄懂了2個關鍵概念,如下:
啥是軟體架構(Software Architecture)?
軟體架構是指在一定的設計原則基礎上,從不同角度對組成系統的各部分進行搭配和安排,形成系統的多個結構而組成架構,它包括該系統的各個組件,組件的外部可見屬性及組件之間的相互關系,組件的外部可見屬性是指其他組件對該組件所做的假設,
軟體架構設計就是從宏觀上說明一套軟體系統的組成與特性,
軟體架構設計是一系列有層次的決策 ,比如:功能與展現的決策;技術架構的決策;自主研發還是合作;商業軟體還是開源軟體 ,
說白了就和蓋房子一樣,臥室設計成什么樣,客廳設計成什么樣,廁所設計成什么樣,上述中的“臥室”,“客廳”,“廁所”就相當于軟體中的各個模塊,軟體架構確定區域模塊采用什么技術,確定整體采用哪種技術將他們統一起來,
為啥要進行軟體架構設計?
計算機科學和程式設計的飛速發展,使得軟體設計應用到從航空航天到日常生活的方方面面,單個人開發一段小程式的做法早就過時,大范圍協作的工程化時代隨即到來,
隨著大范圍協作的效率問題和軟體復雜度的爆炸式增長,管理和技術方面的各種不確定性也爆發性增加,導致軟體開發的質量無法得到有效保證,周期和成本無法得到有效控制,
人們一直在尋求找到這些問題的解決辦法,然而 Fred Brooks 在 1975 年出版的軟體工程圣經《人月神話》中說,沒有(能解決所有問題的)銀彈(There is no silver bullet),
自此,人們發展了專案研發程序管理來控制管理活動的不確定性,同時也發展了軟體架構設計方法來控制技術方面的不確定性,
進而在實踐中不斷的總結和改進,用于有效指導和最大程度的保障軟體開發的質、周期和成本,
通俗來說,現在不是單個代碼英雄的時代,現在的軟體不可能一個人獨立完成,那就得協作,協作就會出現一系列問題,如何進行管理,如何使開發的質量得到保證,如何不至于軟體開發延期,這就需要引入軟體架構設計來解決,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/12538.html
標籤:架構設計
