關鍵需求決定架構

2021-09-05 19:26:08 字數 1484 閱讀 8919

軟體架構師沒有時間對『所有需求』進行深入分析,這既是策略,也是現實。

需求是任何促成設計決策的因素,但是很少有開發者可以擁有乙個穩定的需求集,所以,關鍵的第一步就是要縮小範圍,範圍的標準是具有重要性、可能性並且數量要少。

從需求轉向架構的過程中,存在的幾個問題:

抱怨留給架構的時間太短,而不是接受專案節奏普遍加快的現實。一般來說,新的商業應用的開發周期最多不能超過9個月。

認為必須詳細分析所有的需求,只有這樣才能設計出滿足所有需求的軟體架構。我們採取的策略是:在架構設計期間,關鍵需求決定架構,其餘需求驗證架構。

認為軟體架構必須是完美的技術解決方案。實際上,由於時間緊張,架構並不是要求完美,而是要求夠用。

關鍵需求決定架構的必要性和影響

把所有需求確定後再進行架構設計往往是不現實的。

由於專案工期一般不是由開發方來確定,所以時間上也是有限制的。

可以用有限的精力深入分析最重要的需求。

需求的變更可能會引起架構設計不再合適,因此,我們可以通過所有需求的乙個子集來『驅動』我們的架構決策過程,可以減少需求對架構設計帶來的衝擊,使架構設計趨於穩定。

什麼是軟體架構的關鍵需求?

一般可以從功能需求、質量需求和商業需求三方面來進行分類。

任何功能需求,都是由一條特定的『模組協作鏈』完成的。所謂圖案件架構就是關於如何構建軟體的一些重要決策,這些決策往往是圍繞著將系統分為哪些部分、各部分之間如何互動展開的。所以對軟體架構關鍵的功能需求,就是它涉及的模組最多、最典型的功能需求。

要達到高質量屬性的要求,是有成本的,而且不同的質量屬性之間往往具有相互制約性,使得有些質量屬性需求同時達到高要求比較困難。對架構至關重要的質量需求是那些經過權衡取捨、最終決定重點支援的質量屬性需求。

商業需求也稱業務需求,一般情況下,商業需求是指「組織或客戶高層次的目標」,它關注從客戶群、企業現狀、未來發展、預算、立項、開發、運營、維護在內的整個軟體生命週期涉及到的商業因素,包括了商業層面的目標、期望和限制。

如何確定對軟體架構關鍵的需求

可以分為4步:1. 全面整理需求;2. 分析約束性需求;3. 確定關鍵功能需求;4. 確定關鍵質量屬性需求。

全面整理需求後,可以對需求建立通盤認識。因為大多數情況下需求文件未必有軟體架構師所需要的所有資訊,例如質量需求一般在需求文件中一帶而過,這樣,架構師只有通盤理解需求後,才能將缺失的、隱藏的需求找出來。

約束性需求可以通過3種方式影響架構設計:1. 直接制約設計決策;2. 轉化為功能需求;3. 轉化為質量屬性需求。

如何去定關鍵功能需求

作為應用程式的核心或實現了系統的主要介面的功能。

必須被實現的功能。

覆蓋了系統架構的一些方面,但沒有被其他重要的用例覆蓋到的功能。主要是確保解決了所有的技術風險。

確定關鍵質量屬性需求

考慮為了提高開發的軟體系統受認可的程度,應著重提高哪些方面的質量屬性要求。

充分考慮這些質量屬性的相互制約或相互促進關係,以調整不同質量屬性的要求標準。

必須滿足各種約束性需求。

需求決定供給

經濟學中很多原理都是圍繞供給需求展開的,市場經濟中供給需求的確是決定性的兩股力量。個人認為,需求是經濟發展的決定性力量,而供給則是經濟發展的必要條件。經濟發展的程度通常用生產力來衡量,通俗地說生產力就是將投入轉化為產出的能力,可以是數量上的,也可以是質量上的。但人類生產的產出 產品或勞務 歸根結底都...

需求分析 7 關鍵需求

關鍵需求決定架構。關鍵需求橫跨功能需求 質量屬性,以及約束這三類需求。其餘需求用來驗證架構。1 確定關鍵質量 需要做如下三方面工作 確定關鍵質量時考慮質量屬性之間的矛盾關係。採用質量屬性關係矩陣 表示行促進列,表示行影響列,表示行列兩種質量屬性之間影響不明顯。效能安全性 持續可用性 可互操作性 可靠...

架構決定效能

架構決定應用的效能,似乎是大家都明白的道理,但是事實並非如此。有些架構師認為簡單地更換底層軟體架構 software infrestructure 就足以解決應用的效能問題。他們很可能輕信了 經測試產品效能超出競爭對手25 一類的商業噱頭。假設某產品完成特定操作耗時3毫秒,競爭對手需要4毫秒,這1毫...