軟件變圓怎麼弄回來?本文分享自華為雲社區《【開天aPaaS專家說】如何應對軟件可變性?這4種常用的方法肯定要知道-雲社區-華為雲》,作者: 陳星亮(華為雲開天aPaaS專家),我來為大家講解一下關于軟件變圓怎麼弄回來?跟着小編一起來看一看吧!
本文分享自華為雲社區《【開天aPaaS專家說】如何應對軟件可變性?這4種常用的方法肯定要知道-雲社區-華為雲》,作者: 陳星亮(華為雲開天aPaaS專家)。
軟件可變性(Software Variability)是指在一定上下文中一個軟件系統被有效改變(擴展、配置、調整)的能力。在許多軟件系統的開發運行階段乃至整個生命周期中,軟件可變性都是其設計開發者所要面對的基本問題。
在大多數系統中,可變性表現為軟件在某個或某些可變點處對變體的綁定。其中可變點是指軟件中可以發生變化(綁定變體)的位置,而變體則是變化發生時,人或機器可以在相應位置做出的選擇。
可以看出,在軟件的運行實例中,變化發生的位置、變化發生的程度是在設計階段預定義的。而這種定義又在很大程度上依賴于軟件的需求分析以及在此基礎上做出的種種假設。系統雖然具有變體綁定能力來滿足既定的需求,但可變性模型(可變點、變體以及它們之間的關系)本身沒有變化,導緻軟件在應對變化的需求或環境時存在一定限制。
在傳統意義上,軟件運行時可變性模型被認為是靜态的。在許多研究工作中,模型被以隻讀的方式訪問,以支持軟件适應外部的環境。人們将注意力集中在可變性綁定方面(即為什麼(重新)綁定變體、綁定什麼變體、怎樣綁定),而忽視了對運行時可變性模型本身蘊含的限制的突破。随着計算機技術的發展進步、用戶需求的增多及變化的加快、系統駐留環境的開放、外界對系統靈活性和可伸縮性要求的提高,這種限制顯得愈加突出。
針對軟件可變性,開發者們根據軟件實現要求和成本投入,采取軟件預留配置點、動态軟件産品線、運行時可變性動态綁定、多變非核心功能的快速開發等方法來應對。
1、軟件預留配置點:
軟件預留配置點可以自動地根據環境的變化來調整自身。換言之,它可以收集和分析有關環境的信息,基于分析的結果決定是否改變自己的行為,如果是,再采取調整動作。
系統設計者指出或假設系統所面對環境變化等信息,确定系統所能夠感知和收集的環境數據,進而以一定的數據結構将其表示在計算機内,而後才能設計相應的算法對這些信息進行分析并做出決策。
在執行環節對于自身的調整,實際上是軟件在可變點處對于變體的動态綁定,這是其運行時可變性的表現。
關鍵點:
1)設計者難以在系統部署運行之前設想所有的需求或環境的變化,當超過預期的變化出現時,已經成型的系統無法自動地收集與其相關的信息。
2)并未改變可變性要素的數量、屬性或關系。隻能在設計開發時預定的範圍内,進行選擇。
2、動态軟件産品線:
動态軟件産品線包括一組核心資産和從資産開發而來的一系列具有共同特征的軟件産品。與傳統軟件産品線對比,動态軟件産品線更關注軟件的運行時可變性,本質上是建立具備可配置能力的一系列軟件。
關鍵點:
1)産品線自身的設計者可以快速開發出具有運行時可變性的軟件産品,并賦予其自主選擇綁定變體的能力。
2)其關注的運行時可變性大部分都是封閉的而非開放的,這意味着運行時可變性應對的是開發者在設計期設想的環境變化,導緻軟件産品難以應對超過預期的環境變化。
3、運行時可變性動态綁定
運行時可變性動态綁定機制描述一個運行中的軟件如何在一個可變點綁定相應的變體,是軟件可變性實現的核心。綁定機制涉及對構件内部結構和行為的調整,包括對子構件的重配置和動态綁定。
關鍵點:
1) 對構件行為的調整往往通過重新組織構件的工作流或是重新設置構件内部參數來實現。
2) 對于突破了原有設計範圍内的變化,需要能被系統識别,并自動生成對應的邏輯。
4、多變非核心功能的快速開發
為應對行業應用不斷變化的情況,亦有思路是降低軟件應用開發的難度,将軟件的穩定的核心功能與多變的功能分開。對于多變非核心功能,以提供低碼開發的方式,便于開發者能快速的根據訴求,進行近場快速開發并投入使用。
關鍵點:
1) 軟件設計者需要能識别出穩定的核心功能、多變的非核心功能。并且能夠在兩者之間建立好連接。
2) 提供便捷的工具,使得多變的非核心功能能夠被近場開發者,甚至是使用者自己能快速實現。
如何提升軟件的可變性,讓軟件能夠從容應對業務的變化,一直都是軟件工程領域的一個重要話題。針對上述4種在應對軟件可變性經常用到的方法,各自都有其特點,分别在不同的場景下使用。
點擊下方,第一時間了解華為雲新鮮技術~
華為雲博客_大數據博客_AI博客_雲計算博客_開發者中心-華為雲
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!