在20世紀(jì)60年代和70年代中軟件開發(fā)方法,最恰當(dāng)?shù)拿枋鍪鞘止ぜ妓?,即每個(gè)項(xiàng)目都使用定制的過程和工具。到了20世紀(jì)80年代和90年代,軟件業(yè)成熟了并且變得更具工程規(guī)范。然而,這個(gè)時(shí)期的軟件項(xiàng)目仍然主要是研究密集型的,由人類的創(chuàng)造力和規(guī)模不經(jīng)濟(jì)所統(tǒng)治。所謂的軟件規(guī)模不經(jīng)濟(jì)是指工作量和規(guī)模的關(guān)系,與大多數(shù)制造過程相反,所構(gòu)造的軟件越多,軟件的單位花費(fèi)越多。要想使軟件業(yè)迅速向著以自動化和規(guī)模經(jīng)濟(jì)為主流的更加產(chǎn)品密集型的方向發(fā)展,建設(shè)高效的軟件開發(fā)環(huán)境是必不可少的。
一、軟件開發(fā)環(huán)境的定義
現(xiàn)在,許多軟件企業(yè)集中精力通過軟件能力成熟度的改進(jìn)工作,來促進(jìn)軟件管理的可視性和可測量性,并在產(chǎn)品質(zhì)量、上市時(shí)間、投資回報(bào)及生產(chǎn)率方面提高軟件業(yè)務(wù)的性能。要使現(xiàn)代軟件開發(fā)項(xiàng)目運(yùn)作良好,過程定義和相當(dāng)程度的過程自動化工具的使用是不可缺少的。軟件開發(fā)環(huán)境不僅包括軟件開發(fā)工具,而且也包括軟件開發(fā)過程。軟件開發(fā)過程是人們由于開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品(例如項(xiàng)目計(jì)劃、設(shè)計(jì)文檔、代碼、測試用例和用戶手冊等等)的一組規(guī)程和方法,就如硬件生產(chǎn)的流水線。軟件開發(fā)工具是軟件開發(fā)過程中使用的直接開發(fā)工具和支持管理工具,它包括規(guī)劃工具、需求管理工具、可視化建摸工具、編譯器、編輯器、調(diào)試器和質(zhì)量保證分析工具、測試工具和用戶界面制作工具。如果軟件產(chǎn)品的產(chǎn)生是通過一定成熟度的軟件開發(fā)過程而獲得,并在該過程中使用了自動化的開發(fā)工具,軟件產(chǎn)品的質(zhì)量、成本和所花費(fèi)的時(shí)間是可以預(yù)測的,從而才可能實(shí)現(xiàn)其他制造業(yè)所具有的規(guī)模經(jīng)濟(jì)。
二、軟件開發(fā)環(huán)境的重要性
軟件開發(fā)環(huán)境的主要貢獻(xiàn)是使低效的、易出錯(cuò)的手工任務(wù)得以自動完成。自動化和高效的軟件開發(fā)環(huán)境對軟件開發(fā)的生產(chǎn)力具有正比線性的效應(yīng)。通??梢允归_發(fā)效率提高20%到40%.項(xiàng)目經(jīng)驗(yàn)表明,一個(gè)高度集成化的環(huán)境,無論是對推動還是加強(qiáng)過程的管理控制都是必要的。一個(gè)過程自動化的環(huán)境,不僅可以改進(jìn)生產(chǎn)力,還可以提高軟件質(zhì)量,加速現(xiàn)代技術(shù)的吸收過程。一個(gè)支持增量式編譯、自動化構(gòu)造和集成化的回歸測試的環(huán)境,可以為迭代式開發(fā)提供快速循環(huán)的支持,并可以使開發(fā)群組更加自由地進(jìn)行迭代。健壯的集成化的開發(fā)環(huán)境必須支持開發(fā)過程的自動化。這個(gè)環(huán)境應(yīng)當(dāng)具備需求管理、文檔自動化、宿主/目標(biāo)機(jī)編程工具、自動的回歸測試、持續(xù)的和集成的變更管理,以及特性/缺陷跟蹤功能。成功的軟件工程都是雇傭優(yōu)秀的員工并為他們提供優(yōu)秀的工具來完成任務(wù)。軟件開發(fā)環(huán)境的自動化可以在質(zhì)量、估計(jì)成本和進(jìn)度的能力以及使用更小的組取得總體的投資回報(bào)。要讓軟件開發(fā)人員快速遍歷開發(fā)制品并使它們保持最新狀態(tài),軟件開發(fā)環(huán)境在開發(fā)中正起著越來越重要的作用。現(xiàn)代軟件工程的發(fā)展強(qiáng)調(diào)將開發(fā)和維護(hù)環(huán)境作為基礎(chǔ)建設(shè)。猶如硬件環(huán)境的技資一樣,這一點(diǎn)非常重要,而在一些小型或不成熟的組織里,卻往往得不到保證。在這些組織里具體的過程開發(fā)和開發(fā)工具的采辦,是作為直接的項(xiàng)目費(fèi)用來計(jì)算的。這樣作將影響到資金的投入力度。不利于組織開發(fā)環(huán)境的成熟度的提高,任何項(xiàng)目都不愿將投入用于開發(fā)過程的建設(shè)和開發(fā)的采辦,就很難脫離手工作坊的開發(fā)方式。對于大多數(shù)成熟的軟件組織來說,開發(fā)環(huán)境的建設(shè)就像在其他工程學(xué)科里那樣是作為組織資產(chǎn)的,因此,它們的價(jià)值構(gòu)成和攤銷方式應(yīng)依據(jù)固定資產(chǎn)的核算方式來核算。
三、軟件開發(fā)環(huán)境的價(jià)值構(gòu)成
固定資產(chǎn)的價(jià)值構(gòu)成是指固定資產(chǎn)價(jià)值所包括的范圍。它包括企業(yè)為購建某項(xiàng)固定資產(chǎn)達(dá)到預(yù)定可使用狀態(tài)前所發(fā)生的一切合理、必要的支出。同理軟件開發(fā)環(huán)境的價(jià)值構(gòu)成是軟件組織在購建開發(fā)過程和開發(fā)工具達(dá)到預(yù)定可使用狀態(tài)前所發(fā)生的一切合理、必要的支出