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