劉金榮
摘 要 隨著計算機技術(shù)的發(fā)展,對軟件的要求不斷提升。軟件不同于一般產(chǎn)品,它是按照順序組織的計算機數(shù)據(jù)和指令的集合?,F(xiàn)代信息化社會,軟件日益發(fā)揮著重要作用。軟件從前期研發(fā)到后期維護都需要管理和技術(shù)上的支持。本文試圖從計算機軟件危機產(chǎn)生,軟件工程的發(fā)展過程進行一些思考,希望對以后軟件工程進一步發(fā)展提供可借鑒性經(jīng)驗。
關(guān)鍵詞 計算機 軟件工程 管理 技術(shù)
中圖分類號:TP31 文獻標識碼:A
1 計算機軟件工程的發(fā)展危機
1.1 計算機軟件的定義及特點
軟件是按照順序組織的計算機數(shù)據(jù)和指令的集合。一般軟件被分為系統(tǒng)軟件、應(yīng)用軟件和編程語言。其中系統(tǒng)軟件為計算機使用提供最基本的功能,最基礎(chǔ)的軟件就是操作系統(tǒng);應(yīng)用軟件是在系統(tǒng)軟件的基礎(chǔ)上衍生出來的為用戶提供不同功能的軟件系統(tǒng),比如說財務(wù)系統(tǒng);教務(wù)管理系統(tǒng)等等;編程語言就是設(shè)計軟件最基本的開發(fā)語言,有Tava、C、C++、php等多種語言。
計算機軟件與硬件同樣是支持計算機運行的重要組成部分,但是軟件與硬件有著非常大的區(qū)別。軟件不同于硬件;硬件是具體的物理實體,而軟件只是邏輯上的存在,具有很強的抽象性;軟件的生產(chǎn)沒有明顯的制作、加工過程,一旦軟件研發(fā)成功,可以廣泛的應(yīng)用,但硬件有明顯的制作過程,應(yīng)用范圍具有單一性;軟件在具體使用過程中,不會出現(xiàn)因為使用時間長,機器老化等問題出現(xiàn)狀況;軟件的研發(fā)極大程度上依賴于計算機系統(tǒng),如果計算機系統(tǒng)暫時無法支持,那么就會影響軟件的開發(fā)和正常運行;軟件開發(fā)復(fù)雜性高,開發(fā)周期長,成本較大;最后軟件開發(fā)還涉及諸多的社會因素。
1.2 計算機軟件危機的出現(xiàn)
上世紀中期,計算機走向了廣泛的民用行業(yè)。傳統(tǒng)軟件開發(fā)復(fù)雜性高,開發(fā)周期長,成本較大,可維護性較差這些問題都導(dǎo)致了傳統(tǒng)的軟件開發(fā)無法滿足市場需求,因此導(dǎo)致了“軟件危機”。軟件工程建設(shè)是一項復(fù)雜的工作,包括了有設(shè)計模式的選定、設(shè)計標準的設(shè)置、程序設(shè)計語言的選擇和軟件開發(fā)工具的選用等等。尤其是在軟件行業(yè)發(fā)展還不夠完善的時期,更需要結(jié)構(gòu)化的程序設(shè)計方法,將復(fù)雜的工作從結(jié)構(gòu)上予以簡化,從而得到簡潔、清晰的程序。軟件工程就是研究利用工程化方法開發(fā)和維護有效、實用并且高質(zhì)量軟件的一項工程?!败浖こ獭边@一概念在1968年的NATIO會議上第一次被提出,這時就初步明確了將傳統(tǒng)軟件開發(fā)的個體化行為轉(zhuǎn)化為結(jié)構(gòu)化的工程協(xié)作。
2 計算機軟件工程的技術(shù)和管理
自上世紀中后期以來軟件危機的爆發(fā)后,結(jié)構(gòu)化的軟件工程學(xué)科逐漸發(fā)展。雖然軟件開發(fā)復(fù)雜性高,開發(fā)周期長,成本較大,可維護性較差這些問題目前還沒有辦法解決,但是從軟件工程的技術(shù)層面和軟件工程管理層面來說都有了一定程度上的提升。
2.1 軟件工程的技術(shù)層面
軟件工程建設(shè)是一項復(fù)雜的工作,包括了有設(shè)計模式的選定、設(shè)計標準的設(shè)置、程序設(shè)計語言的選擇和軟件開發(fā)工具的選用等等。從技術(shù)層面來講主要包含了軟件設(shè)計方法和軟件開發(fā)范型,選定怎樣的方法從正確途徑完成軟件設(shè)計和怎樣的范式去開發(fā)適應(yīng)需求的軟件。
在技術(shù)上注重軟件的可重復(fù)性使用,在借鑒成熟工業(yè)產(chǎn)品的開發(fā)范式上進行軟件研發(fā),這不僅借助了他人優(yōu)秀的成果,更避免的不必要的人力資源浪費,可以更好地投入到新產(chǎn)品的開發(fā),提高軟件開發(fā)的效率,提升軟件質(zhì)量。目前關(guān)于軟件復(fù)用技術(shù)主要包括了軟件構(gòu)件技術(shù)、領(lǐng)域工程和軟件體系結(jié)構(gòu)等。
軟件構(gòu)件技術(shù)要能明確辨別構(gòu)成成分,其中可復(fù)用構(gòu)件包括了需求、文檔、測試計劃、測試用例和數(shù)據(jù)等其他對開發(fā)活動有用的信息。作為軟件復(fù)用技術(shù)的核心部分需要在現(xiàn)有系統(tǒng)中提取有用構(gòu)件;了解構(gòu)件的性質(zhì)、特征和相互之間的關(guān)系以及怎樣對現(xiàn)有構(gòu)件進行分類查詢等。
軟件可重復(fù)性性使用不僅借助了他人優(yōu)秀的成果,更避免的不必要的人力資源浪費,還可以更好地投入到新產(chǎn)品的開發(fā),所以軟件復(fù)用技術(shù)在一定領(lǐng)域范圍內(nèi)更容易取得作用。這就導(dǎo)致了軟件工程的領(lǐng)域工程的出現(xiàn)。
2.2 軟件工程的管理層面
軟件工程是一項復(fù)雜的工程,因此軟件工程管理也是非常復(fù)雜的,它包括人的管理、組織機構(gòu)管理和用戶管理三大層面。計算機軟件行業(yè)是知識密集、人才密集型行業(yè),因此在整個研發(fā)、生產(chǎn)的過程中,人是貫穿始終的重要部分,因此人員的管理非常重要;最后最重要一點是,軟件雖然不同于一般的產(chǎn)品,但它作為一種特殊的產(chǎn)品,它的對象依然是用戶;可以說沒有用戶需求就沒有軟件行業(yè)的蓬勃發(fā)展,因此用戶管理需要時刻關(guān)注用戶的需求。
因此完善軟件工程管理需要建立健全計算機軟件工程管理體系,要從制度上予以規(guī)范,讓具體項目執(zhí)行有度可依,完善激勵措施,獎罰分明,獎罰有度,使得管理工作得以順利高效進行;注重團隊化建設(shè),加強團隊協(xié)作性,人才其才,人盡其用,為團隊的發(fā)展謀福利;還要專門制定具體項目的進度和風險管理預(yù)警機制,結(jié)合具體實際,進行監(jiān)督管理;最后還要充分利用現(xiàn)代信息技術(shù)的先進成果,采用精研——軟件工程管理平臺,更好控制項目成本、進度等可調(diào)控因素,使得軟件供應(yīng)和需求雙方能夠共贏。
3 總結(jié)
現(xiàn)代信息技術(shù)的飛速發(fā)展,使得計算機軟件所面臨的環(huán)境開始從靜態(tài)封閉逐步走向動態(tài)、多樣化。現(xiàn)在軟件工程的發(fā)展必須努力改變自己去不斷適應(yīng)這樣的形態(tài),取得自身在技術(shù)上的突破,在管理上的創(chuàng)新,這樣才能不斷提高軟件研發(fā)效率,大力提升軟件質(zhì)量。