摘要:軟件也是一種產品,只不過它不同于一般的產品,隨著社會的發展,軟件的規模越來越大,也越來越復雜,同時使用的范圍也更廣了,因此我們要加強對其開發的控制,包括技術和管理兩方面。本文主要以軟件工程這門學科和技術出現的背景為出發點,結合軟件工程的相關理論、方法以及在實際運用中的一些成果,再參考Internet技術和平臺,研究了軟件工程面臨的一些新挑戰。
關鍵詞:軟件危機 構件 體系結構 軟件項目管理 中間件
1 軟件工程的出現
20世紀中期,計算機的應用領域才從軍用轉為民用,當時編寫程序的工作不但沒有被重視,反而受到歧視。那時候,計算機硬件價格是很高的,這就要求編程人員在處理器能力和存儲器空間都很有限的情況下,編寫的程序不僅要體積小,而且要保證更快的執行速度。程序中要用到許許多多種類的技巧。此時進行軟件的開發,起決定性因素的是開發人員的智慧和能力。
進入20世紀60年代,計算機在更廣的領域得到了應用,這就要求我們不斷地提高軟件的復雜程度,要開發能夠滿足更多需求的系統,傳統的開發方法不能滿足用戶在質量、效率等方面對軟件的需求。這就是所謂的“軟件危機”。
面對這一危機,1968年NATO會議上首次提出“軟件工程”的概念,提出把軟件開發從“藝術”和“個體行為”向“工程”和“群體協同工作”轉化。具體來講就是在計算機科學理論和技術的指導下,運用工程管理的相關理論,按照預算和進度,開發符合用戶要求的軟件。這樣,一個新的學科(軟件工程)就產生了。
2 軟件工程的框架
軟件工程的框架可用目標、過程和原則三個詞語來總結。
2.1 軟件工程目標:生產具有正確性、可用性以及開銷合宜的產品。其中,正確性是指最終開發出的軟件要符合預期的功能。可用性是指軟件基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟件開發、運行的整個開銷都能達到用戶要求的程度。要很好地實現這一目標,不管是在理論上還是實際的開發過程中,都面臨著不少需要解決的問題。
2.2 軟件工程過程:主要是指生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。軟件工程的內容包含了開發過程、運作過程、維護過程。這其中包括需求、設計、實現、確認以及維護等活動。在這幾方面中,需求活動主要是進行問題分析和需求分析。從問題分析中我們可以得到需求定義,也可以把它叫做軟件需求規約。需求分析生成功能規約。設計活動通常情況下是進行概要設計和詳細設計。實現活動要完成的是把設計結果轉換成可執行的程序代碼。而確認活動在整個軟件開發的過程中都有所涉及,進行了確認之后,要保證軟件最后能夠符合用戶要求。維護活動主要是指使用軟件的過程中,可以對其進行擴充和完善等。除了以上這些具體解釋的主要過程之外,還包括管理過程、支持過程等。
2.3 軟件工程的原則:在開發軟件時,工程設計、工程支持以及工程管理方面一定要遵守的一些相關原則。
3 軟件工程管理
管理學理論在軟件工程中的運用同樣也在軟件工程要研究的范圍內。在軟件項目管理方法上,我們不再使用原來的個人作坊式開發方式,充分運用管理科學的相關理論,再通過對軟件開發的實際情況進行分析,更好地運用工程化系統開發方法。在進行軟件的開發前,我們要提前制定好軟件項目的成本、進度、質量,然后我們在開發軟件的過程中,要嚴格遵守這些相關的計劃,這就要求我們通過軟件管理方法來更好的管理和控制軟件開發項目的成本、進度、質量等。對軟件項目的有效管理,能夠更好的把開發人員的個人開發能力轉化成企業的開發能力,當企業表現出不斷提高的軟件開發能力時,說明它的軟件生產水平就越高,同時表明它的開發風險相對不大。軟件項目管理是關系著軟件開發企業能否在激烈的競爭中處于優勢地位的決定性因素之一。
從軟件與其他產品的不同中,我們可以看出軟件項目管理同樣也有一些與其他項目管理要遵守的一些不一樣的原則,例如:大規模的項目要拆分成幾個小項目,以此達到降低項目的管理風險的目的,而且還要制定詳細而明確的目標;根據各個項目的特征,制訂相應的、切實可行的項目管理方法等。
4 軟件工程中軟件構件的作用
軟件構件的概念共生于軟件復用。軟件復用的概念在1968年的北大西洋公約組織會議上提出,McIlroy還提出了軟件構件、構件工廠等概念,以后相繼制定了一整套軟件復用的指導性標準,其中包含了利用標準構件實現軟件復用的基本思路。在軟件開發過程中使用標準軟件零部件的構想,從一開始就受到眾人的青睞,然而在以后的發展過程中,對這一構想的認識一直在發生著變化。
在二十世紀的七八十年代,軟件構件主要指可復用的程序代碼片段,通常我們叫他代碼件。這段時間內在軟件開發中我們主要要解決的問題就是怎樣最大限度的利用已有的源程序代碼、子程序庫和類庫,改善軟件生產的效率。這一時期的代碼件包括子程序、程序包、類、模板等形態。到二十世紀九十年代,相關的技術人員都認為軟件構件應當包括分析件、設計件、代碼件、測試件等多種類型。因為軟件復用具有多樣性,我們還可以把它分為產品復用和過程復用。這樣就會相應地產生更多的新概念,如設計模式、框架以及軟件體系結構等。實際上,我們在研究軟件構件基本屬性時,主要考慮的還是代碼件的相關內容,如果沒有明確的標注,研究的都是軟件構件的代碼件。
在軟件技術中,構件技術占有重要的地位,更好的研究構建技術,對于軟件技術的發展具有不可估量的意義。但是研究構建技術也不是很簡單的,存在著各種各樣的困難。從構建技術的研究情況來看,即使我們對它的基本概念上,有著越來越多的共同認識,但是還并不是完全一致,依舊有歧義。這樣就不容易在各個具體的領域中運用構建技術。領域業務對計算機信息技術的運用越來越多,越來越廣泛,所以,計算機技術在很大程度上促進了領域軟件復用需求的增加。由于現在的構件技術還存在著很多的不足之處,同時沒能很好的重視對它的研究,所以它還不能滿足某些需求。實際上,這就在構件技術的研究上給我們提出了更高的要求,依據現在構件技術的研究成果,結合領域應用的需求,加大對領域構件技術的研究。
5 軟件信息工程監理
關于軟件工程,其最主要任務就是通過科學、有效的管理方法不斷改善軟件開發質量。其主要要求是改變之前的軟件開發模式,將其不斷細分和分解,因為不同的階段會表現出不同的特點,這就需要我們具體問題具體分析,根據這些不同的特點來選擇相應的方法和工具,從而使復雜度較高的軟件生產進行可度量、可控的設置。從另一方面來講,認真、嚴格的控制各個生產階段,能夠有效地預防某些問題和風險,避免在之后的開發過程中出現更多的麻煩,這樣就能夠在一定程度上減小開發的風險,同時還能提高軟件開發的質量。綜合以上的分析我們認為,進行信息工程監理,我們要達到的終極目標就是通過合同管理、質量控制、進度控制、成本控制、信息管理等方法來提高工程項目的質量,保障工程項目的順利開展。
6 結束語
綜上所述,軟件工程就在計算機科學理論和技術的指導下,運用工程管理的相關理論,按照預算和進度,開發符合用戶要求的軟件。進行軟件工程最主要任務就是通過科學、有效的管理方法不斷改善軟件開發質量。在軟件開發中使用的信息工程監理的模型,以軟件工程理論為基礎,以信息工程項目過程控制為主線,全面的控制并監督企業信息工程的項目分析、項目設計、項目實施以及項目維護等各個階段。
參考文獻:
[1]黃真.并聯機器人機構學理論與控制[M].北京:機械工業出版社,1997.
[2]馮玉林.軟件工程方法工具和實踐[M].合肥:中國科學技術大學出版社,1992.
[3]張立等,基于Client/Server模式的數據庫應用軟件的設計與實現,計算機應用研究,1999
[4]安紅昌.信息化工程的全面監理體系研究[C]//第二屆武漢電子商務國際會議論文集.北京:科學出版社,2002.
[5]Joseph S Valacich,Joey F George,Jeffrey AHoffer.系統分析與設計基礎[M].施平安,譯.北京:清華大學出版社,2005.
[6]張冰.軟件開發型信息化項目監理初探[J].CAD/CAM與制造業信息化,2007(3).