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