影響軟體架構的因素

2021-09-30 07:32:31 字數 2256 閱讀 2024

論影響軟體架構的因素

軟體架構的必要性

我們的經驗告訴我們,如果我們用非正式、隨意的工程技術去開發高效能、高安全性以及高質量的軟體系統,我們會遇到相當多的麻煩,這些技術用在開發過去低階或小型的系統是一種行之有效的技術,但是面對現在龐大而複雜的大型系統,卻會顯得無力。如果不開發或維護乙個基礎架構,並且利用它組織成乙個一致的、整體的、避免零碎的實現,那麼我們將無法應對我們在開發過程中所遇到的複雜性,並最終導致測試與整合的失敗。所以軟體架構對大型而複雜的系統是非常必要的。

大型軟體的特點 1.

軟體交付時間緊迫。 2.

業務邏輯複雜、業務規則不穩定 3.

適應性強 4.

通用性高 5.

擴充套件性強

使用者對軟體的期望是能開發出滿足使用者基本要求,適應組織變化、成本低、介面友好、智慧型化、自動化的軟體。

服務提供商期望用最低的開發成本,開發最高質量的軟體產品。

在社會需求下,軟體架構誕生。大型軟體開發成功之路是軟體架構之路,也是唯一的途徑,是軟體專案成功的保證。

因而軟體架構在開發大型而複雜的系統中地位很重要也是必要的。

軟體架構的作用 1)

良好的架構是系統開發成功的關鍵因素。 2)

架構驅動的軟體開發是構架系統的最有效方法。架構驅動的方法優於需求驅動,文件驅動和方法驅動的方法。 3)

系統架構包括了所有的設計與實現方面,包括對硬體和技術的選擇,而軟體架構是系統架構的子集。 4)

架構提供了整個系統的檢視。而正是這一點把它與系統的分析、設計模型區分開來。

軟體架構也稱之為軟體體系結構,是對系統整體結構的把握,是全域性整體性的規劃,是將組織、過程、人與技術完美結合的一種設計,讓組織感到滿意,讓軟體開發過程可控,讓團隊成員之間能相互協調與合作,讓技術學習的曲線適度,讓專案的成本最低,讓企業能得到最大的回報。

軟體架構考慮的核心問題 1)

乙個系統的基本組織是什麼樣的 2)

組成系統的基本元件 3)

元件之間是如何相互互動的 4)

元件和環境之間是如何互動的 5)

設計與演化的原則是什麼

影響軟體架構的因素 1.

組織因素

軟體架構應該是能很好使用企業組織的結構的一種結構,能靈活適應組織的變化,能及時調整系統適應組織需要的一種架構。 2.

過程因素與參與開發人員因素

架構設計需要考慮團隊使用的過程與開發方法,不同的過程與開發方法對架構的要求與設計是不同的。

架構設計需要考慮團隊中人的特點,選取的技術路線如果與開發專案人的技術基礎相融合,並且具有理解上的一致性,也比較容易達成開發的高效率與高質量。

架構設計通常需要是由一組的開發人員與維護人員完成。架構設計

需要開發人員與維護人員的接受。

人是軟體架構中的基本要素。架構設計中人作為架構設計中基本要素的理念在軟體架構中很重要。軟體架構需要一批優秀的人才去實現與執行,好的軟體架構能提供更好的平台,更大的發揮人力資源,提高人力資源的效率。能夠讓參與者更好的發揮自己的才能,而不是約束與束縛人的才能。 3.

技術因素

大型軟體的開發是乙個創新過程,需要團隊創新能力的支撐。因而技術方案的選擇需要考慮團隊創新能力。

軟體架構選擇方案的過程其實也是乙個對創新能力分析與決策的過程。通常我們考慮創新能力考慮的幾個要素如下: ²

開發這些能力所帶來的經濟價值 ²

開發新的能力所需要的成本 ²

開發新的能力所需要的知識量及重要性 ²

開發這些能力所減少的風險 1)

開發這些能力所帶來的經濟價值

確定優先順序的第乙個因素,是能力的經濟價值。而確定能力經濟價值的理想模式是估計它在一段時間內所帶來的經濟影響。 2

)開發新的能力所需要的成本

很自然的,開發能力的成本是優先順序重要考慮的因素。很多能力看起來不錯,但了解它的成本之後可能會改變主意。乙個很容易被忽視的因素,就是成本會隨時間的改變而改變。假定開發乙個特定的功能預計

4周,但

6個月之後,我們會由於因獲得知識的改變,而需要額外花

3周的時間對已經開發的功能進行改變。 3

)開發新的能力所需要的知識量及重要性

在很多專案中,整體工作中的大部分時間是花費在追求新知識中,重要的是承認這種努力,並把它看作是專案組成中的一部分。因為專案開始的時候,我們並不知道專案結束之前所需要做的工作。在開發中形成的知識包括兩類: l

關於產品的知識

是一種關於將要開發產品的開發能力的知識,乙個小組關於開發產品能力的知識越豐富,就能做出更好的產品的特性與能力的決策。 l

關於專案的知識

這是關於如何建立產品的知識。例如將要使用的技術、技能、小組共同工作所需要的知識

影響軟體效能的因素

軟體效能是軟體的一種非功能特性,它關注的不是軟體是否能夠完成特定的功能,而是在完成該功能時展示出來的及時性。由於感受軟體效能的主體是人,不同的人對於同樣的軟體能有不同的主觀感受,而且不同的人對於軟體效能關心的視角也不同。目前,大部分系統都是為多使用者 跨地域 多部門機構提供服務的,目前一般中小企業的...

影響上傳速度的因素

http上傳 客戶端 上傳資料 到伺服器。上傳速度決定於 1 客戶端,2 伺服器,3 路由 1 客戶端 1.1.是否保持長連線,對於多個小檔案的上傳,保持同乙個連線非常有效 1.2.連線數,過多或過少都不好 1.3.傳送資料的粒度大小 1.4.讀檔案的效率,最好非同步讀檔案,先將資料快取好,待傳送資...

影響hashMap效能的因素

首 先算得key得hashcode值,然後跟陣列的長度 1做一次 與 運算 看上去很簡單,其實比較有玄機。比如陣列的長度是2的4次方,那麼hashcode就會和2的4次方 1做 與 運算。很多人都有這個疑問,為什麼hashmap的陣列初始化大小都是2的次方大小時,hashmap 的效率最高,我以2的...