文/井世麗 宦亮
軟件與其他產品有著許多不同之處,是作為一種知識密度較強且生產較難的產品。由于上世紀計算機剛剛興起,計算機高級語言還沒有出現,其設計成本較高,在使用計算機軟件編寫程序時,只有很少一部分人能夠認識和掌握,計算機軟件的發展被這種最初的現象極大的制約了。直到上世紀六十年代,人們才認識到計算機軟件的重要性,并得到了行業的極大關注,隨著市場中計算機硬件平臺的廣泛應用,逐漸過渡到了對計算機軟件需求量的激增,并且對于軟件設計的要求也越來越高,這就需要軟件工程技術不斷的改革與創新。從行業發展的需求出發,對軟件工程技術發展趨勢進行有效的研究是非常有必要和迫切的,在研究過程中,我們首先考慮的是軟件工程和計算機發展中的變化,不可能對軟件工程技術發展進行孤立研究,這樣才能進一步預測和分析軟件工程的發展趨勢。
在馮·諾依曼理論體系中,從計算機模型產生的時候起,一直在沿用計算機二進制碼,但就計算機能力而言,其在以下幾方面發生的變化尤為突出:
(1)CUP的運算能力在摩爾定律出現后,其運算能力有了很大提高,達到了前所未有的高度,但運算能力在單科CPU的提升方面上,是一項非常困難和緩慢的技術,目前仍沒有快速提高的有效辦法;
(2)并行運算技術以及并行多核、多線程技術,這兩種技術依靠多任務處理系統得到了一定程度的提升,并給服務器處理帶來了很大的便利,致使許多計算機發展方向轉向了服務器架構,突破了服務器C/S傳統模式下的處理瓶頸,瘦客戶端結構B/S模式受到了人們的普遍歡迎,而胖客戶端結構C/S模式已經不再具有廣闊的應用市場;
(3)大數據的應用需求有效推進了云計算發展,更快的在互聯網的迅速發展過程起到了催化劑的作用,為工業信息化起到了巨大的推進作用。
軟件工程在計算機技術發展過程中,主要體現在以下幾個方面:
(1)由于在計算機中使用了諸如COM、DCOM、CORBA等中間件技術,分布式應用軟件在不同的軟件技術中間很容易的實現了資源共享,這不僅可以幫助軟件開發人員節省精力與時間,還可以協助計算機對一些分布式計算進行有效交互和處理,有利于軟件開發人員在業務邏輯投入中節省大量時間,使軟件開發規模逐漸縮小,進而精簡了代碼結構,對軟件工作人員進行了更好的定位,使其更好的完成本職工作;
(2)目前計算機能力已經逐漸傾向于服務器端,實用的中間件技術和較快的計算機運算處理能力,不僅是開發大型軟件過程中的必經之路,也是新技術發展的主要趨勢;
(3)原本較為分散的散件開發人員,隨著互聯網的不斷普及和發展,跨網絡平臺、跨系統領域都在標準接口協議的統一下被重新整合在了一起,他們在開發軟件過程中,只要基礎平臺與協議框架合適,就可以很好的把軟件實用工具開發出來;
(4)系統軟件和應用軟件的緊密耦合,促使系統軟件的平臺服務能力、底層擴展能力、二次開發能力均得到了普遍的提高。
軟件開發行業在技術發展過程中,隨著全球化趨勢的不斷加速,也發生了前所未有的改變,在此過程中,若使用傳統管理方式對軟件開發進行管理,就會顯得十分吃力,因為信息化不斷普及,軟件開發不斷深化,許多軟件對開發的環境也有了更高的要求。與此同時,在軟件全球化共同協作發展過程中,軟件外包的發展步伐也逐漸加快,一些從事軟件外包工作的公司也應運而生,這些軟件外包公司把軟件需求、軟件發布、軟件維護、軟件測試、設計思想以及編程等各部分各模塊分離開來,通過合理利用軟件工程模塊化協作的方法,分配給不同的國家和地區完成。許多外包公司已經把這個分配過程作為主要發展手段,并成功推向了市場,從而實現了軟件信息全球化協作的基礎。
軟件工程領域中一種新趨勢,就是開放性軟件計算方式。由于全球化協同合作的加強,再加上軟件本身就是一種開放性共用技術,所以在未來軟件發展過程中,軟件工程的重點和方向必然是這種新趨勢。與此同時,開放性計算有利于開發者之間的交流與溝通,給軟件技術開發人員帶來了便利,這也是一個實現共贏的方式,在后期維護中,對客戶與開發者而言,變得更加簡單化及專業化。
隨著軟件工程的全球化發展,不僅給軟件工程帶來了一定的難度與挑戰,也給軟件開發者帶來了新機遇。在發展過程中,各軟件公司競爭越來越激烈,促使軟件開發在此種激烈競爭下,逐漸朝著模塊化思想發展。其本質是將已知和相似的軟件結構以科學手段進行分類,將模塊思想通過一定方式進行模塊化,主要是基于和解決傳統技術在實際生活中不靈敏問題。這種模塊化設計思想的提出,不但促進了軟件工程技術的未來發展,還提高了企業之間的軟件開發效率和競爭力。
綜上所述,隨著計算機軟件的全面創新和發展,基于計算機平臺硬件的不斷完善,軟件工程也朝著更規范化與更高效的方向推進。目前,工程支持技術、軟件開發模型、工程管理技術以及軟件設計方案等軟件工程所研究的主要內容,均促使軟件不再單一化和獨立化,伴隨著軟件工程化的實施,軟件成為了一種集有效性、復雜性以及科學性為一體的新技術,與此同時,也不可避免的出現了軟件過于龐大、調度過于復雜、測試過于專業等新的問題,為了解決這些問題,應加大對軟件的研發力度,及時找到解決辦法,在發展的同時摒棄掉傳統開發模式下固有的弊端,從而推動軟件工程技術朝著可持續穩定健康的目標前進。