從軟件開發角度淺談組態軟件
前言:首先看看近些年重多編程發燒友對軟件等相關事物的一些總體認識,先說主體——人,無論是以做設計為主還是做coding,最后都不可能完全與編程脫離關系。程序是客體,軟件開發人員雖然經常把程序的正確性、可靠性、高效率性、易用性、可讀性(可理解性)、可擴展性、可復用性、兼容性、可移植性掛在嘴邊,真正地理解并實施起來卻很難,并且也很少。
組態軟件也不例外。除了有上述特點以外,還具有一些新的特性,比如可編譯性、可容錯性、可管理性、可存儲性、可配置性等儲多特點。如此眾多特性,一時也很難消化。本文便是從軟件開發的角度探討對組態軟件的認識。
關鍵詞:軟件開發;組態軟件;面向對象。
蒸氣機的發明標志著人類大踏步進入工業革命時代,機器生產機器則標志著第一次工業革命的的結束。同樣,軟件工具的使用標志著計算機領域正在疾步前進,那用軟件生產軟件,是不是也代表了一次軟件革命?
是的!組態軟件正是這樣一種軟件,用軟件生產軟件的工具。組態軟件就像是一個用代碼實現的功能倉庫,讓你自由拼湊出任何由組態軟件本身所能支持的功能,之所以這里說“拼湊”,還是由組態軟件的名字而來——Configuration Software。
傳統的組態軟件軟件分為,開發系統(CSMaker)和運行系統(CSViewer)兩個部分。由于編程技術的不斷發展,編譯工具的不斷衍生,CSMaker與CSViewer的工作界限也越來越模糊,由最初的靜態組態到在線組態,再到最近的提出運行時組態。
靜態組態是最傳統的一種組態方式,用戶在開發系統(CSMaker)中開發,然后重新在運行系統(CSViewer)上運行。
在線組態是在運行系統(CSViewer)運行的同時,進入開發系統(CSMaker),在開發系統中對工程進行修改,運行系統就會進行相應的改變。
運行時組態是在運行系統(CSViewer)對已有工程進行修改,添加新的功能,運行時組態已經同時擁有了開發系統(CSMaker)和運行系統(CSViewer)兩種功能。
任何程序的發展都是呈螺旋式上升,都是用算法集合成功能的過程。算法和功能的不斷推進讓軟件產品產生一次又一次的飛躍。最初我們只是定義了0,1兩個子項,逢2進1的算法,即二進制的算法。之后提煉出了二進制加法功能(進而推廣出了二進制減法,乘法,除法功能),進而以四則運算的基本算法為基礎,提供了開平方,求對數等眾多功能。又以基本的數學算法為基礎開啟新功能的篇章,當功能再次被提煉整理再次升華為理論作為算法又支撐了下一代的功能的繁衍……
組態軟件的也是一樣,由軟件的開發者以某一個開發平臺為基礎,經過不斷的底部推高為用戶提供豐富的完善的功能。底部的推高是一個積累的過程,沒有對軟件底層基本算法的認識理解是無法做出優秀的功能以及提供優質的服務。
從軟件開發角度上講組態軟件有別于其它類軟件的最明顯的兩個特征——通用性和代碼可重用性。
首先,組態軟件不同于定制軟件的最大區別就是所有功能都是由基本功能“拼湊”而成。很多開發系統(CSMaker)和運行系統(CSViewer)中使用的控件都是基本控件和通用控件。第二個特征更為明顯,代碼可重用性,而且代碼的可重用性與定制軟件相比高到無法想像的程度。做一個軟件工程,無論代碼庫有多豐富,要重寫一個工程都需要大量編寫程序,而組態軟件則不同。只需把通用的算法功能寫到位,便可以通過圖形化的組態完成大量代碼編寫任務。
說到通過圖形化生成代碼,就不得不提到圖形化編程。最新的編程軟件都支持把相關的類屬性和方法以及類與類之間的關系(泛化、關聯、依賴、聚合)導出成類圖,有一些高級語言可以通過在類圖中修改類與類之間的關系,并生成相關的代碼,但是很可惜C++現在雖可以導出成類圖,但并不支持回導。
也就是說,類圖可以修改但不能生成相關的代碼,這就意味著如果用C++開發的程序短期內很難用官方的方法(比如說COM)進行圖形化代碼生成。如果不使用C++開發組態軟件,軟件的性能和效率又不能得到保證,這就需要一個推進式的發展,需要長期、穩定的團隊把一個個面向過程的功能抽象一個面向對象的類,再通過一個個面向對象的類的實例組合成一個面向過程的功能,這樣周而復始不斷的螺旋式上升。
組態軟件的產品線也將隨著功能的不斷細化而不斷豐富,組態軟件也不可能再只是單純的數據采集、數據存儲、數據監控,它將會走向數據管理、數據分析、數據提取、工藝優化等更多領域,我們拭目以待!
文章版權歸西部工控xbgk所有,未經許可不得轉載。