91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

明晰軟件架構與數據結構

發布時間:2020-06-20 14:01:16 來源:網絡 閱讀:3122 作者:李云 欄目:軟件技術
相信大多軟件工程師在談及軟件架構(software architecture)時立刻會聯想到數據結構(data structure),這是正常的反應。但是,有些工程師卻誤以為軟件架構就完全是關于數據結構,這就不對了。之所以將軟件架構與數據結構在本文中并提討論,是為了讓我們對之有更清晰的認識。讀者后面會明白,這種清晰的認識對于我們的工作是有益的。
 
數據結構在Wikipedia上的定義是:為了有效使用數據而在計算機中存儲和組織數據的特定方法。這一定義說明了為什么我們又稱之為算法。同樣是在Wikipedia上,我們能找到對于軟件架構的定義:一個系統所需結構的集合,包括軟件元素(element)、元素間的關系和屬性。定義中的“元素”是一個很寬泛的稱呼,即可以指軟件組件(component),也可以指一個獨立的子設備。

單從定義來看,軟件架構與數據結構具有不同的抽象層次,前者更放眼于功能,后者更著力于效率。為了讀者能更好地理解這種層次之別,讓我們以軟件開發流程中的兩個關鍵步驟為例加以說明。軟件開發的設計階段存在概要設計和詳細設計兩大步驟,概要設計應重點闡述軟件架構,而詳細設計應著力于解釋數據結構。我們都知道,在開發過程中概要設計先于詳細設計,因而可以推測出軟件架構處于更高的抽象層次。我看到過不少軟件概要設計文檔一上來就講數據結構,這是文檔的作者對于軟件架構與數據結構沒有加以明晰的緣故。

做軟件設計首當其沖的不是數據結構設計,而是架構設計,這一點無論怎樣規模的軟件都正確。架構設計強調的是設計概念(我有時也稱之為模型),即軟件“長什么樣”。對于實現同樣功能的軟件模塊,在有概念和沒有概念時所設計出來的數據結構會很不一樣。即使采用的算法相同,但命名很有可能不同,且有概念的命名更具可讀性。因此,“先架構后結構”的方法,有助于寫出更具可維護性的代碼。現實中,之所以存在大量難以維護的代碼,正是因為設計者省去了概念塑造這一步驟。

另一點需要指出的是,軟件架構設計與數據結構設計對工程師的能力要求并不完全相同。軟件架構設計需要更多的是概念能力,即將細節進行一定的抽象和概括的能力。數據結構設計所需的能力卻是對于計算機體系結構、編程語言和各種算法的掌握。

分清軟件架構與數據結構的意義在于:
1) 方便溝通。不至于他人在說軟件架構時,我們卻只想著數據結構。
2) 明白架構設計的重要性。架構設計用于引導數據結構設計,數據結構設計是用來表達架構的。
3) 理解架構設計與數據結構設計所需的能力之別,而不至于認為“數據結構是軟件的一切”。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江孜县| 玉田县| 萨嘎县| 甘南县| 鄂托克前旗| 庐江县| 冀州市| 夹江县| 涞水县| 石门县| 汽车| 宁阳县| 金昌市| 吴旗县| 杭锦旗| 合山市| 石首市| 玉林市| 万盛区| 会理县| 塔城市| 石景山区| 无锡市| 沂源县| 敦化市| 祁门县| 绍兴市| 巴林右旗| 额济纳旗| 宁蒗| 合江县| 海口市| 虎林市| 来凤县| 连城县| 台江县| 宝坻区| 西平县| 禄丰县| 侯马市| 蛟河市|