版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章軟件工程與軟件工程經(jīng)濟(jì)學(xué)1.1軟件、軟件產(chǎn)業(yè)與軟件企業(yè)1.2軟件工程1.3軟件工程經(jīng)濟(jì)學(xué)的概念與任務(wù)習(xí)題一
1.1軟件、軟件產(chǎn)業(yè)與軟件企業(yè)
1.1.1軟件及其分類與特點(diǎn)
軟件(Software)自20世紀(jì)60年代進(jìn)入我國(guó)以來(lái),還沒(méi)有一個(gè)被公認(rèn)的精確的定義。目前學(xué)術(shù)界對(duì)軟件的普遍性解釋為:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。其中,程序是指按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是指使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開(kāi)發(fā)、維護(hù)和使用有關(guān)的圖文資料。學(xué)術(shù)界和產(chǎn)業(yè)界目前對(duì)于軟件沒(méi)有一個(gè)嚴(yán)格的分類標(biāo)準(zhǔn)。通常既可按軟件功能進(jìn)行分類,也可按軟件規(guī)模進(jìn)行分類,還可以按軟件的標(biāo)準(zhǔn)化程度進(jìn)行分類以及按軟、硬件系統(tǒng)的關(guān)聯(lián)方式分類,等等。表1.1列出了按軟件功能進(jìn)行分類時(shí)的軟件類別名稱及其相應(yīng)軟件產(chǎn)品;表1.2列出了按規(guī)模進(jìn)行分類時(shí)的軟件類別名稱及其相應(yīng)的產(chǎn)品規(guī)模、參加人數(shù)及研制周期;表1.3列出了按軟件標(biāo)準(zhǔn)化程度進(jìn)行分類時(shí)的軟件類別名稱及其相應(yīng)軟件產(chǎn)品;表1.4列出了按與有關(guān)硬件或軟件關(guān)聯(lián)方式分類時(shí)的軟件類別名稱及其相應(yīng)軟件產(chǎn)品。除上述四種分類外,軟件還可按工作方式分為實(shí)時(shí)處理軟件、多用戶分時(shí)軟件、交互式軟件、批處理軟件;按應(yīng)用特性分類可分為科學(xué)計(jì)算軟件、工程控制軟件、事務(wù)處理軟件、信息管理與決策支持軟件。
軟件作為一個(gè)產(chǎn)品或服務(wù),與其他產(chǎn)品相比具有很大的區(qū)別,具體表現(xiàn)出如下特點(diǎn):
(1)軟件是信息產(chǎn)品,具有無(wú)形性、抽象性、可復(fù)制性和共享性。與硬件相比,軟件是一種邏輯實(shí)體而非物理實(shí)體,它可以記錄在紙面上,保存在計(jì)算機(jī)的軟、硬、光盤里,但必須通過(guò)使用、測(cè)試、分析等途徑才能了解它的功能、性能和其它特性。
(2)軟件的生產(chǎn)過(guò)程(除復(fù)制外)幾乎都是從頭開(kāi)始,并經(jīng)歷規(guī)劃與計(jì)劃、需求分析、設(shè)計(jì)、編程、測(cè)試、運(yùn)行和維護(hù)等環(huán)節(jié)來(lái)形成產(chǎn)品使用的,而不像硬件的生產(chǎn)過(guò)程是以原材料器件采購(gòu)、運(yùn)輸、庫(kù)存開(kāi)始,然后經(jīng)規(guī)劃、設(shè)計(jì)、研制、生產(chǎn)、銷售、運(yùn)行與維護(hù)來(lái)形成產(chǎn)品使用的。
(3)軟件產(chǎn)品是知識(shí)的結(jié)晶,創(chuàng)新已成為軟件產(chǎn)品發(fā)展的動(dòng)力和企業(yè)競(jìng)爭(zhēng)的焦點(diǎn)。產(chǎn)品周期短,技術(shù)更新快,集成化程度高,已成為軟件產(chǎn)品的重要特征。因此,與硬件生產(chǎn)相比,軟件開(kāi)發(fā)將更多地依賴于開(kāi)發(fā)人員的業(yè)務(wù)素質(zhì),智力創(chuàng)新與經(jīng)驗(yàn)以及人員的組織與管理,相互溝通與協(xié)作。
(4)軟件生產(chǎn)到目前為止,尚無(wú)法做到如某些硬件生產(chǎn)那樣脫離人員的全自動(dòng)或半自動(dòng)機(jī)械化生產(chǎn),而只能由人采用手工方式來(lái)生產(chǎn)。基于開(kāi)發(fā)人員的思維與認(rèn)識(shí)的片面性,經(jīng)驗(yàn)與技術(shù)的不足,長(zhǎng)時(shí)間的開(kāi)發(fā)勞動(dòng)造成的心理和體力的疲乏以及與用戶的相互溝通的不足等原因,軟件在提交使用時(shí),各種潛在的固有差錯(cuò)是無(wú)法避免的,且這種潛在的固有差錯(cuò)數(shù)將隨著軟件規(guī)模的增大而增大。而硬件產(chǎn)品經(jīng)過(guò)嚴(yán)格測(cè)試、試驗(yàn)和試運(yùn)行之后,其設(shè)計(jì)過(guò)程中的錯(cuò)誤一般是能夠排除的。
(5)軟件的成本構(gòu)成與硬件產(chǎn)品相比,無(wú)需庫(kù)存成本。由于軟件可以通過(guò)因特網(wǎng)進(jìn)行銷售,故其銷售成本較低,且伴隨著軟件向服務(wù)方向的轉(zhuǎn)移,開(kāi)發(fā)成本的比例越來(lái)越低,而使用維護(hù)成本的比例越來(lái)越高。軟件的開(kāi)發(fā)成本除少量高端產(chǎn)品外,多數(shù)成本額低于知識(shí)密集類的
硬件產(chǎn)品。
(6)軟件產(chǎn)品與硬件相比而言,市場(chǎng)的進(jìn)入壁壘一般較低,軟件企業(yè)競(jìng)爭(zhēng)十分激烈,這就迫使軟件企業(yè)不能固守傳統(tǒng)產(chǎn)品,而要不斷地推陳出新,更新?lián)Q代。而用戶由于要學(xué)會(huì)并掌握一個(gè)軟件需要花費(fèi)很多時(shí)間和精力,因而一般不會(huì)輕易更換其他同類軟件使用,這種對(duì)用戶具有捆綁性的營(yíng)銷策略是軟件產(chǎn)品所特有的。1.1.2軟件產(chǎn)業(yè)及其發(fā)展
伴隨著電子計(jì)算機(jī)的迅猛發(fā)展,軟件逐步深入到人們的工作、學(xué)習(xí)、生活等各個(gè)領(lǐng)域,從而賦予其強(qiáng)大的生命力與發(fā)展源泉,并逐步成為國(guó)民經(jīng)濟(jì)與社會(huì)的重要支柱之一。但什么是軟件企業(yè),各國(guó)對(duì)其的認(rèn)識(shí)不全一致。我國(guó)政府與研究者認(rèn)為:軟件產(chǎn)業(yè)是指軟件產(chǎn)品和軟件服務(wù)相關(guān)的一切經(jīng)濟(jì)活動(dòng)和關(guān)系的總稱。根據(jù)中國(guó)軟件行業(yè)協(xié)會(huì)發(fā)表的《2000年中國(guó)軟件產(chǎn)業(yè)研究報(bào)告》,軟件產(chǎn)業(yè)包括軟件產(chǎn)品和軟件服務(wù)兩大部分,其中軟件產(chǎn)品分為系統(tǒng)軟件、支撐軟件和應(yīng)用軟件,而軟件服務(wù)包括信息系統(tǒng)集成ASP,信息系統(tǒng)運(yùn)行和維護(hù)服務(wù),數(shù)據(jù)中心與資源外包服務(wù),數(shù)據(jù)加工與處理服務(wù),軟件測(cè)試服務(wù),信息系統(tǒng)咨詢和評(píng)估服務(wù),信息系統(tǒng)監(jiān)理,軟件與信息系統(tǒng)管理與人才工程化培訓(xùn)等。而上述軟件服務(wù)中,前三個(gè)屬于軟件產(chǎn)品的支撐與維護(hù),后五個(gè)又可統(tǒng)稱為軟件專業(yè)化服務(wù)。國(guó)外關(guān)于軟件產(chǎn)業(yè)的劃分與中國(guó)軟件行業(yè)協(xié)會(huì)的認(rèn)識(shí)有一定的差距,表1.5給出國(guó)際數(shù)據(jù)公司(InternationalDataCorporation,IDC)關(guān)于軟件產(chǎn)業(yè)的領(lǐng)域細(xì)分情況。軟件產(chǎn)業(yè)具有如下特征:
(1)高技術(shù)、高附加價(jià)值與高效益。軟件產(chǎn)業(yè)是典型的技術(shù)密集、知識(shí)密集的高技術(shù)產(chǎn)業(yè)。各國(guó)興起的國(guó)民經(jīng)濟(jì)信息化浪潮,刺激了軟件的市場(chǎng)需求;多媒體技術(shù)、可視化技術(shù)與面向?qū)ο蠹夹g(shù)等的發(fā)展,給軟件企業(yè)帶來(lái)了生機(jī);JAVA語(yǔ)言的問(wèn)世,應(yīng)用領(lǐng)域的開(kāi)拓,為軟件產(chǎn)業(yè)帶來(lái)了新的市場(chǎng)前景,且軟件產(chǎn)業(yè)與制造業(yè)相比,不需要大量資金和設(shè)備的投入,從而使軟件成為具有高附加值、高效益的“綠色產(chǎn)品”。
(2)與其他產(chǎn)業(yè)的高度關(guān)聯(lián)性。軟件產(chǎn)業(yè)作為信息技術(shù)產(chǎn)業(yè)的核心和靈魂,目前正廣泛滲透到國(guó)民經(jīng)濟(jì)的第一、第二和第三產(chǎn)業(yè),改造提升傳統(tǒng)產(chǎn)業(yè),成為推動(dòng)產(chǎn)業(yè)結(jié)構(gòu)調(diào)整、產(chǎn)品技術(shù)改造的重要基礎(chǔ)和支撐。軟件產(chǎn)業(yè)由于其“服務(wù)性”的宗旨,其服務(wù)領(lǐng)域涉及到國(guó)民經(jīng)濟(jì)的任何一個(gè)部門,尤其是高新技術(shù)產(chǎn)業(yè)各部門。從信息制造業(yè)到信息服務(wù)業(yè),從生物技術(shù)、新材料到光機(jī)電領(lǐng)域,從航天發(fā)射、遙控遙測(cè)到航空、鐵路的調(diào)度與控制,從電信、銀行、保險(xiǎn)、證券管理到軍事作戰(zhàn)指揮自動(dòng)化……,幾乎涵蓋了所有的工業(yè)領(lǐng)域和服
務(wù)部門。
(3)國(guó)際化特征明顯。隨著經(jīng)濟(jì)全球化、一體化的發(fā)展,軟件平臺(tái)的統(tǒng)一,軟件市場(chǎng)的開(kāi)放,軟件技術(shù)的標(biāo)準(zhǔn)化,為軟件產(chǎn)業(yè)國(guó)際化提供了技術(shù)保障,一批跨國(guó)公司正在興起,并領(lǐng)導(dǎo)著國(guó)際軟件市場(chǎng)和軟件技術(shù)標(biāo)準(zhǔn)的發(fā)展,同時(shí)也為國(guó)際間的軟件加工和業(yè)務(wù)外包提供了空間。
(4)專業(yè)化分工越來(lái)越細(xì)。軟件產(chǎn)業(yè)發(fā)展到今天,那些能提供所有各類軟件的“萬(wàn)能”開(kāi)發(fā)商已不復(fù)存在,由于軟件企業(yè)不可能涉足國(guó)民經(jīng)濟(jì)及社會(huì)所有領(lǐng)域的應(yīng)用開(kāi)發(fā),因而在開(kāi)發(fā)、生產(chǎn)、銷售、服務(wù)過(guò)程中的任何一個(gè)環(huán)節(jié)都可能為企業(yè)成長(zhǎng)和競(jìng)爭(zhēng)優(yōu)勢(shì)提供足夠的空間,從而使軟件產(chǎn)業(yè)的專業(yè)化分工越來(lái)越細(xì)。
(5)規(guī)模經(jīng)濟(jì)效益日益明顯。軟件產(chǎn)業(yè)的服務(wù)化趨勢(shì)越來(lái)越明確,產(chǎn)業(yè)集中度越來(lái)越高,規(guī)模經(jīng)濟(jì)效益正在日益明顯。以美國(guó)為代表的少數(shù)國(guó)家掌握著軟件的核心技術(shù)和知識(shí)產(chǎn)權(quán),處于產(chǎn)業(yè)發(fā)展的中心地位,處于價(jià)值鏈的高端。
國(guó)際軟件產(chǎn)業(yè)在經(jīng)過(guò)不斷的產(chǎn)業(yè)創(chuàng)新與發(fā)展后,分別形成了以下四種具有特色的軟件產(chǎn)業(yè)類型:
(1)美國(guó)的技術(shù)與服務(wù)領(lǐng)導(dǎo)型;
(2)印度的國(guó)際加工服務(wù)型;
(3)愛(ài)爾蘭的生產(chǎn)本地化型;
(4)西歐和日本的嵌入式系統(tǒng)開(kāi)發(fā)型。
我國(guó)軟件產(chǎn)業(yè)起步于20世紀(jì)80年代中期,從90年代初到現(xiàn)在,隨著國(guó)民經(jīng)濟(jì)信息化和社會(huì)信息化進(jìn)程的加快以及政府的支持,軟件產(chǎn)業(yè)取得了突飛猛進(jìn)的發(fā)展。表1.6列出了2000年到2005年我國(guó)軟件產(chǎn)品銷售額、服務(wù)收入額、軟件出口額及年增長(zhǎng)率的有關(guān)數(shù)據(jù)。我國(guó)軟件產(chǎn)品也由80年代的國(guó)外軟件的漢化和簡(jiǎn)單工具軟件開(kāi)始發(fā)展到現(xiàn)在的包括平臺(tái)軟件、中間件、應(yīng)用軟件、工廠服務(wù)和軟件孵化在內(nèi)的相對(duì)完整的軟件產(chǎn)業(yè)鏈,并形成了基礎(chǔ)軟件商、應(yīng)用軟件商、系統(tǒng)集成商和專業(yè)加工商等四種模式的軟件企業(yè)。經(jīng)過(guò)20多年的發(fā)展,盡管我國(guó)軟件產(chǎn)業(yè)取得了長(zhǎng)足的發(fā)展,但與歐共體和美國(guó)、日本、印度等軟件大國(guó)相比,我國(guó)軟件產(chǎn)業(yè)仍然存在著諸多的問(wèn)題與不足,如我國(guó)軟件企業(yè)由于研發(fā)投入低和資金的不足,以及缺乏軟件核心產(chǎn)品和關(guān)鍵技術(shù),因而無(wú)力進(jìn)入產(chǎn)業(yè)價(jià)值鏈上游,而只能
在產(chǎn)業(yè)價(jià)值鏈的下游參與有限的利益分配;在產(chǎn)品鏈上,我國(guó)在系統(tǒng)軟件和部分支撐軟件上受制于人,因而產(chǎn)業(yè)發(fā)展的上層空間無(wú)法打開(kāi),擴(kuò)大再生產(chǎn)的能力十分有限;由于資金與核心技術(shù)的缺乏,造成我國(guó)信息產(chǎn)業(yè)多年來(lái)建立在外國(guó)公司提供的技術(shù)平臺(tái)基礎(chǔ)之上,自主創(chuàng)新能力弱,國(guó)外軟件產(chǎn)品占據(jù)了2/3的國(guó)內(nèi)軟件市場(chǎng),其中在系統(tǒng)軟件方面幾乎沒(méi)有我國(guó)自主版權(quán)軟件的立足之地,在支撐軟件和應(yīng)用軟件方面同樣面臨著激烈的競(jìng)爭(zhēng)。大量的利潤(rùn)和人才流入外國(guó)軟件企業(yè),嚴(yán)重影響了我國(guó)軟件產(chǎn)業(yè)的積累和再循環(huán)能力,甚至還嚴(yán)重威脅到我國(guó)的信息安全。此外,我國(guó)的軟件企業(yè)以中、小型為主,軟件企業(yè)的人才結(jié)構(gòu)呈現(xiàn)出高端和低端人才相對(duì)缺少,中端人才居多的“橄欖形”結(jié)構(gòu),從而使企業(yè)的成功更多地依賴于個(gè)別高端人才而不是團(tuán)隊(duì),同時(shí)也使大量的中端人才不得不從事低端人才的工作,極大地浪費(fèi)了資源,加大了人力資源管理的難度,再加上我國(guó)軟件的市場(chǎng)機(jī)制不夠完善,企業(yè)管理不夠成熟,“手工作坊式”的業(yè)務(wù)流程,缺乏龍頭企業(yè)的現(xiàn)狀等都極大地阻礙了我國(guó)軟件企業(yè)在“與狼共舞”的競(jìng)爭(zhēng)中的競(jìng)爭(zhēng)能力。因此,我們必須正視目前存在的上述問(wèn)題,抓住當(dāng)前的大好歷史機(jī)遇,發(fā)揮我國(guó)的資源和成本優(yōu)勢(shì),加快產(chǎn)業(yè)結(jié)構(gòu)的調(diào)整,迎頭趕上軟件產(chǎn)業(yè)的網(wǎng)絡(luò)化、服務(wù)化和國(guó)際化的發(fā)展趨勢(shì),為在世界軟件產(chǎn)業(yè)的專業(yè)分工中爭(zhēng)取一席之地而努力奮
斗。1.1.3軟件企業(yè)及其管理
作為軟件產(chǎn)業(yè)的基本單元,從市場(chǎng)角度出發(fā),軟件企業(yè)可分為軟件產(chǎn)品企業(yè)和軟件服務(wù)企業(yè)兩類,而軟件產(chǎn)品企業(yè)又可分為開(kāi)發(fā)標(biāo)準(zhǔn)化軟件的企業(yè)和開(kāi)發(fā)半定制軟件的企業(yè)兩個(gè)子類(詳見(jiàn)圖1.1)。有關(guān)上述三類軟件的內(nèi)涵見(jiàn)表1.3。注意到軟件企業(yè)具有市場(chǎng)準(zhǔn)入門檻低、高收益和高風(fēng)險(xiǎn)、資產(chǎn)結(jié)構(gòu)特殊、成本結(jié)構(gòu)中人力成本大、技術(shù)更新速度快、注重售前和售后服務(wù)等特點(diǎn),因而軟件企業(yè)的企業(yè)管理有其特殊之處。圖1.1軟件企業(yè)分類圖企業(yè)管理是指在企業(yè)特定的生產(chǎn)方式下,管理者按照某些原則、程序和方法,使用一定的手段(工具、設(shè)備),針對(duì)生產(chǎn)的各要素(人力、物力、設(shè)備、資金、信息)進(jìn)行計(jì)劃、組織、指導(dǎo)、協(xié)調(diào)和控制,以使其發(fā)揮最大的經(jīng)濟(jì)效果,達(dá)到預(yù)期的管理目標(biāo)的一種籌劃和過(guò)程。
軟件企業(yè)管理從企業(yè)管理的分類來(lái)看,通常包括如下內(nèi)容:戰(zhàn)略管理、生產(chǎn)運(yùn)作管理、市場(chǎng)營(yíng)銷管理、財(cái)務(wù)管理、人力資源管理、采購(gòu)管理、信息管理等。上述分類管理及其管理目標(biāo)與管理活動(dòng)見(jiàn)表1.7。除上述各類管理外,通常還有項(xiàng)目管理、庫(kù)存管理、計(jì)劃管理等等。作為一種產(chǎn)品,軟件與硬件有很大的不同。軟件是一種邏輯載體,沒(méi)有具體的形狀與尺寸,只有邏輯的規(guī)模和運(yùn)行的效果,且這種邏輯載體由于其面向的產(chǎn)品需求目標(biāo)的不同,故在生產(chǎn)過(guò)程中呈現(xiàn)出不同軟件的各自特點(diǎn)和無(wú)重復(fù)性,這就導(dǎo)致軟件產(chǎn)品只能一個(gè)一個(gè)地生產(chǎn)出來(lái)。而產(chǎn)品生產(chǎn)管理的目的在于組織與協(xié)調(diào)生產(chǎn)過(guò)程中的各類資源和活動(dòng),以達(dá)到高效率、低成本且需要滿足用戶質(zhì)量需求的目標(biāo),從這種觀點(diǎn)來(lái)看,軟件更像一個(gè)特殊的項(xiàng)目(Project)。而軟件開(kāi)發(fā)管理就可用項(xiàng)目管理(ProjectManagement)的理論和方法來(lái)進(jìn)行指導(dǎo)。所謂項(xiàng)目,可視作在既定的資源和需求約束下,為實(shí)現(xiàn)某種目的而相互聯(lián)系的一次性的有計(jì)劃的工作任務(wù)。項(xiàng)目管理則是伴隨著項(xiàng)目工作的進(jìn)行而展開(kāi)的,為確保項(xiàng)目能達(dá)到預(yù)期目標(biāo)的一系列的管理方法和管理行為。
項(xiàng)目管理自20世紀(jì)50年代發(fā)展以來(lái),目前已廣泛應(yīng)用于航空、航天、通信、化工、建筑、環(huán)保、交通運(yùn)輸和金融(銀行、證券與保險(xiǎn))等領(lǐng)域的工程建設(shè)和產(chǎn)品開(kāi)發(fā),取得了巨大的經(jīng)濟(jì)與社會(huì)效益。項(xiàng)目管理應(yīng)用于軟件開(kāi)發(fā)的歷史相對(duì)較短,但已獲得了軟件工程界的廣泛認(rèn)同。目前,軟件項(xiàng)目管理通常包括如下9個(gè)部分:項(xiàng)目綜合管理、項(xiàng)目范圍管理、項(xiàng)目時(shí)間管理、項(xiàng)目費(fèi)用管理、項(xiàng)目質(zhì)量管理以及人力資源管理、信息與配置管理、風(fēng)險(xiǎn)管理、采購(gòu)管理。有關(guān)此9項(xiàng)分項(xiàng)管理的管理活動(dòng)內(nèi)容詳見(jiàn)表1.8。在這9個(gè)分項(xiàng)管理中又以項(xiàng)目綜合管理為中心,以項(xiàng)目范圍、時(shí)間、費(fèi)用、質(zhì)量管理為準(zhǔn)則展開(kāi)工作,它們的關(guān)聯(lián)見(jiàn)圖1.2。圖1.2項(xiàng)目管理關(guān)聯(lián)圖
需要說(shuō)明的是:我們通常將戰(zhàn)略管理、生產(chǎn)運(yùn)作管理、市場(chǎng)營(yíng)銷管理、財(cái)務(wù)管理、人力資源管理、采購(gòu)管理、信息管理等統(tǒng)稱為企業(yè)的“面上”管理,而將項(xiàng)目管理稱為企業(yè)的“點(diǎn)線”管理。這兩部分管理共同構(gòu)成了企業(yè)管理的兩大部分,它們之間的關(guān)聯(lián)或?qū)哟谓Y(jié)構(gòu)見(jiàn)圖1.3。圖1.3企業(yè)管理關(guān)聯(lián)圖
1.2軟件工程
1.2.1軟件工程的概念與分類
“軟件工程”名詞的提出源于1967年與1968年在歐洲召開(kāi)的兩次軟件可靠性國(guó)際會(huì)議,隨后人們相繼提出了“軟件工程”的各種定義。1993年美電氣電子工程師學(xué)會(huì)(InstituteofElectricalandElectronicEngineers,IEEE)提出“軟件工程是將系統(tǒng)的、規(guī)范的、可度量的工程化方法應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)的全過(guò)程及上述方法的研究”,B.W.Boehm提出“軟件工程是科學(xué)與數(shù)學(xué)的應(yīng)用,通過(guò)這種應(yīng)用,借助計(jì)算機(jī)程序、過(guò)程和相關(guān)文檔,發(fā)揮計(jì)算機(jī)設(shè)備的能力,對(duì)人類有用”的一門學(xué)科(1983年)。綜合上述兩個(gè)定義,我們認(rèn)為軟件工程是一門適用于軟件開(kāi)發(fā)全過(guò)程的系統(tǒng)工程方法論的學(xué)科,其目的是為滿足人們對(duì)軟件生產(chǎn)的成本、質(zhì)量、時(shí)間(工期)和效率、效益和管理等的需求。根據(jù)系統(tǒng)工程的理論,任何一個(gè)工程學(xué)科,其方法論均可劃分為三大部分:工程技術(shù)學(xué)方法、工程經(jīng)濟(jì)學(xué)方法和工程管理學(xué)方法。因此軟件工程作為一種特殊的工程產(chǎn)品,其生產(chǎn)過(guò)程方法論同樣可劃分為:軟件工程技術(shù)學(xué)方法論、軟件工程經(jīng)濟(jì)學(xué)方法論和軟件工程管理學(xué)方法論等三個(gè)部分。其中在軟件開(kāi)發(fā)、運(yùn)行和維護(hù)全過(guò)程中,為滿足用戶功能與性能需求而采用的工程技術(shù)方法的全體稱為軟件工程技術(shù)學(xué);在軟件開(kāi)發(fā)、運(yùn)行和維護(hù)全過(guò)程中,為滿足用戶的成本、質(zhì)量、時(shí)間(工期)、效益需求而采用的工程經(jīng)濟(jì)方法的全體稱為軟件工程經(jīng)濟(jì)學(xué);在軟件開(kāi)發(fā)、運(yùn)行和維護(hù)全過(guò)程中,為滿足用戶對(duì)人員、設(shè)備的計(jì)劃、組織、協(xié)調(diào)、控制需求而采用的工程管理方法的全體稱為軟件工程管理學(xué)。目前各高校的“軟件工程”課程及其教材主要介紹軟件工程技術(shù)學(xué)的有關(guān)方法,本書(shū)則主要介紹軟件工程經(jīng)濟(jì)學(xué)的有關(guān)方法。由于多數(shù)經(jīng)濟(jì)活動(dòng)都與管理活動(dòng)有著緊密的聯(lián)系,故本書(shū)介紹的軟件工程經(jīng)濟(jì)方法有的也可視作軟件工程管理學(xué)方法。1.2.2軟件生存周期、開(kāi)發(fā)模型與任務(wù)分解
軟件作為一個(gè)特殊產(chǎn)品與其他產(chǎn)品一樣有其自生到滅的生存過(guò)程。通常我們將軟件以概念形成開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù),直到最后退役的全過(guò)程稱為軟件的生存周期(SoftwarelifeCycle)。在此生存周期中,軟件可根據(jù)其所處的狀態(tài)、特征以及軟件開(kāi)發(fā)活動(dòng)的目的、任務(wù)劃分為若干階段。圖1.4給出了劃分為七個(gè)階段的軟件生存周期階段劃分圖?;诋a(chǎn)品質(zhì)量控制的需求,人們需要對(duì)上述各階段的工作成果進(jìn)行評(píng)價(jià),因而除可行性研究評(píng)審?fù)?,人們還需要作單元測(cè)試與評(píng)價(jià),組裝測(cè)試與評(píng)價(jià),集成測(cè)試(確認(rèn)測(cè)試)與評(píng)審,運(yùn)行測(cè)試與評(píng)價(jià)等活動(dòng)。有關(guān)上述各階段活動(dòng)的相互關(guān)聯(lián)見(jiàn)圖1.5。圖1.4軟件生存周期階段劃分圖圖1.5軟件開(kāi)發(fā)階段活動(dòng)關(guān)聯(lián)圖為了給軟件開(kāi)發(fā)過(guò)程提供原則和方法,以及為軟件工程管理提供里程碑和進(jìn)度表,人們?cè)O(shè)計(jì)了軟件生存周期中各階段活動(dòng)的關(guān)聯(lián)圖示,這種關(guān)聯(lián)圖示稱為軟件的開(kāi)發(fā)模型。目前軟件開(kāi)發(fā)模型有瀑布模型、原型模型、螺旋模型、基于第四代技術(shù)(4GL)的模型、變換模型和組合模型等??紤]到在軟件工程經(jīng)濟(jì)學(xué)中目前常用的是瀑布模型和螺旋模型,故在圖1.6和圖1.7分別給出了帶反饋的瀑布模型和螺旋模型,其他模型的圖示可參見(jiàn)《軟件工程》教材。圖1.6帶反饋的瀑布模型圖1.7螺旋模型瀑布模型從可行性研究階段開(kāi)始逐步進(jìn)行階段性變換,直到軟件運(yùn)行與維護(hù)階段和最終退役為止。為了保障每一階段成果的正確性,每一階段任務(wù)完成后都必須進(jìn)行評(píng)審,確認(rèn)以后再進(jìn)入下一階段工作,若評(píng)審中發(fā)現(xiàn)有錯(cuò)誤或疏漏,則將反饋到前面有關(guān)階段進(jìn)行改錯(cuò)或彌補(bǔ)疏漏。螺旋模型由圖示知是由一系列螺旋線不斷旋轉(zhuǎn)并逐步擴(kuò)大范圍而構(gòu)成的,螺旋線每旋轉(zhuǎn)一周,表明軟件開(kāi)發(fā)前進(jìn)一層次,從而使系統(tǒng)生成一個(gè)新的版本,如此不斷旋轉(zhuǎn),直到獲得客戶滿意的軟件版本為止。其中軟件開(kāi)發(fā)的每一個(gè)周期都包括計(jì)劃制訂、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審四個(gè)階段。在上述兩個(gè)開(kāi)發(fā)模型中,瀑布模型具有各階段定義清晰,采用文檔驅(qū)動(dòng),便于管理的優(yōu)點(diǎn),適合于中小型項(xiàng)目開(kāi)發(fā)管理;而螺旋模型適用于面向過(guò)程和面向?qū)ο蟮能浖_(kāi)發(fā),并強(qiáng)調(diào)了開(kāi)發(fā)中的潛在風(fēng)險(xiǎn),因而采用了在開(kāi)發(fā)過(guò)程中的逐步迭代方式來(lái)進(jìn)行組織。同樣,為了進(jìn)行團(tuán)隊(duì)組織,進(jìn)而為工作進(jìn)度計(jì)劃制訂和成本估算與控制打下基礎(chǔ),人們還需要將軟件項(xiàng)目的工作任務(wù)進(jìn)行逐級(jí)或逐層分群,這種分解可以按軟件功能為準(zhǔn)則進(jìn)行分解,也可以按階段/活動(dòng)進(jìn)行分解,而分解的最底層次元素(通常稱為活動(dòng))根據(jù)軟件的規(guī)模與特性不同可以是一個(gè)工作小組(一般最多為七人),也可以為每個(gè)個(gè)人,還可以是一天長(zhǎng)度的工作量等。通過(guò)上述工作任務(wù)分解所形成的層次結(jié)構(gòu)被稱為工作(任務(wù))分解結(jié)構(gòu)(WorkBreakdownStructure,WBS)。表1.9給出了一種按階段/活動(dòng)進(jìn)行分解的軟件開(kāi)發(fā)WBS任務(wù)表。在此WBS中,階段取自軟件生存周期中的計(jì)劃與需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)與編碼、集成與測(cè)試等四個(gè)階段,而每一階段中又可分成計(jì)劃與需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)與編程、測(cè)試計(jì)劃、驗(yàn)證與確認(rèn)、項(xiàng)目辦公室職能、配置管理與質(zhì)量管理、手冊(cè)完成等八項(xiàng)活動(dòng)。軟件項(xiàng)目與硬件產(chǎn)品生產(chǎn)一樣,為了獲得高效率的生產(chǎn)和質(zhì)優(yōu)、價(jià)低的產(chǎn)品,必須運(yùn)用科學(xué)的理論與方法如系統(tǒng)工程、工程經(jīng)濟(jì)學(xué)、項(xiàng)目管理的理論與方法來(lái)指導(dǎo)軟件開(kāi)發(fā)的全過(guò)程,并進(jìn)行必要的定量分析與評(píng)價(jià)。為此必須對(duì)產(chǎn)品生產(chǎn)的諸多要素與屬性進(jìn)行度量(Metrics),考慮到軟件度量涉及的范圍較廣,以下僅介紹在軟件工程經(jīng)濟(jì)學(xué)中所涉及的軟件基本度量,如軟件規(guī)模、軟件復(fù)雜性、軟件可靠性、軟件安全性與軟件質(zhì)量等的度量。1.2.3軟件規(guī)模與復(fù)雜性度量
1.軟件規(guī)模度量
目前在軟件工程界中影響較大的軟件規(guī)模度量單位有程序源代碼行(LinesOfCode.,LOC)和功能點(diǎn)(FunctionalPoint,F(xiàn)P)兩種。源代碼行由于可用人工或軟件工具直接測(cè)量,因而其估算簡(jiǎn)易可行,而功能點(diǎn)作為度量單位是Albrecht于1979年提出的,目前在歐共體使用十分普遍。與統(tǒng)計(jì)源代碼行的直接度量方法不同,它是一種間接度量的方法。功能點(diǎn)
計(jì)算方法的基本思想為首先計(jì)算軟件的五個(gè)基本信息量:外部輸入數(shù)(ExternalInput.,EI)、外部輸出數(shù)(ExternalOutput.,EO)、外部查詢數(shù)(ExternalQuery.,EQ)、內(nèi)部邏輯文件數(shù)(InternalLogicalFile.,ILF)、外部接口文件數(shù)(ExternalInterfaceFile.,EIF)的加權(quán)和CT,然后對(duì)其通過(guò)14個(gè)環(huán)境復(fù)雜性因子作如下修正,即有(1.1)式中,wj為第j個(gè)基本信息量dj的加權(quán)系數(shù)或復(fù)雜程度系數(shù),它由表1.10取值決定;d1即為外部輸入數(shù)(EI),它包括了每個(gè)用戶為軟件提供的輸入?yún)?shù)個(gè)數(shù)(不包括查詢數(shù)),體現(xiàn)了軟件面向用戶服務(wù)的數(shù)量特征;d2即外部輸出數(shù)(EO),它指軟件為用戶提供的輸出參數(shù)個(gè)數(shù),如報(bào)告數(shù)、屏幕幀數(shù)、錯(cuò)誤信息個(gè)數(shù)等;d3即外部查詢數(shù)(EQ),它規(guī)定一個(gè)聯(lián)機(jī)輸入確定一次查詢,軟件以聯(lián)機(jī)輸出的形式實(shí)時(shí)地產(chǎn)生一個(gè)響應(yīng),統(tǒng)計(jì)各種查詢個(gè)數(shù);d4即內(nèi)部邏輯文件數(shù)(ILF),它要求統(tǒng)計(jì)內(nèi)部邏輯主文件數(shù);d5即外部接口文件數(shù),通常指所有機(jī)器可讀的界面(如磁盤或磁帶上的數(shù)據(jù)文件),利用此接口界面可以將信息從一個(gè)系統(tǒng)傳送到另一個(gè)系統(tǒng);CT稱為軟件的功能數(shù),PCA稱為系統(tǒng)功能的復(fù)雜性調(diào)整因子。
(1.1)式中的14個(gè)環(huán)境復(fù)雜性因子Fi分別體現(xiàn)了數(shù)據(jù)通信、分布式數(shù)據(jù)處理、軟件性能、硬件負(fù)荷、事務(wù)頻度、聯(lián)機(jī)數(shù)據(jù)輸入、界面復(fù)雜度、內(nèi)部處理復(fù)雜度、代碼復(fù)用性要
求、轉(zhuǎn)換和安裝、備份和恢復(fù)、多平臺(tái)考慮、易用性等環(huán)境屬性的復(fù)雜程度。Fi的取值可以通過(guò)表1.11中的問(wèn)題來(lái)選定取值,其中要求Fi在0、1、2、3、4、5等六個(gè)量級(jí)中選擇1個(gè)。
[例1.1]某軟件根據(jù)需求分析,對(duì)照表1.11的各項(xiàng)要求,得到環(huán)境復(fù)雜性因子,五個(gè)信息量的數(shù)值dj及其對(duì)應(yīng)權(quán)系數(shù)wj之取值見(jiàn)表1.12,于是由(1.1)式可得軟件系統(tǒng)其需求功能點(diǎn)為若功能點(diǎn)與源代碼行的轉(zhuǎn)換率μ為
μ=15kLOC/FP
則該軟件系統(tǒng)有規(guī)模
LS=FP·15=8210LOC=8.21kLOC上述功能點(diǎn)法稱Albreach功能點(diǎn)法,除此之外,還有MarkⅡ功能點(diǎn)法、COSMIC全功能點(diǎn)法等。詳可參見(jiàn)有關(guān)文獻(xiàn)。
2.軟件復(fù)雜性度量
復(fù)雜性是軟件的重要屬性之一,任何一個(gè)有經(jīng)驗(yàn)的程序員都知道。對(duì)于同種規(guī)模而復(fù)雜性不同的軟件,其花費(fèi)的成本和工期會(huì)有很大的差異。如何來(lái)描述與衡量軟件的復(fù)雜性,目前尚無(wú)統(tǒng)一的定論。K.Magel認(rèn)為如下的六個(gè)方面可作為軟件復(fù)雜性描述的依據(jù):
(1)理解程序的難度;
(2)糾錯(cuò)、維護(hù)程序的難度;
(3)向他人解釋程序的難度;
(4)按指定方法修改程序的難度;
(5)根據(jù)設(shè)計(jì)文件編寫程序工作量的大小程度;
(6)執(zhí)行程序時(shí)需要資源的多少程度。
20世紀(jì)70年代M.Halstead從統(tǒng)計(jì)學(xué)和心理學(xué)的角度來(lái)研究軟件復(fù)雜性問(wèn)題,提出用程序中可執(zhí)行代碼的詞匯量(操作符與操作數(shù))來(lái)計(jì)算和分析軟件復(fù)雜性的方法,并在此基礎(chǔ)上還可將其轉(zhuǎn)換成軟件規(guī)模的測(cè)算。
Halstead認(rèn)為程序是一個(gè)符號(hào)序列,此序列由操作符、操作數(shù)交替出現(xiàn)組成。其中,操作符是指由程序設(shè)計(jì)語(yǔ)言定義并在程序中出現(xiàn)的語(yǔ)法符號(hào),如FORTRAN、PASCAL等語(yǔ)言中的+、-、*、/、IF、THEN、DO、END等(不含注釋性語(yǔ)句);操作數(shù)是指操作符所作用的對(duì)象,它同樣由程序定義并引用,可以是變量、常量、數(shù)組、記錄、指針等。通過(guò)數(shù)學(xué)推導(dǎo),可以證明程序語(yǔ)言的符號(hào)長(zhǎng)度(又稱詞匯總數(shù))N可近似地由下式確定:
N=n1lbn1+n2lbn2
(1.2)
式中,n1為程序中不同操作符的個(gè)數(shù);n2為不同操作數(shù)的個(gè)數(shù);lbn即log2n。此外,利用轉(zhuǎn)換公式:(1.3)還可將程序語(yǔ)言的符號(hào)長(zhǎng)度N轉(zhuǎn)換成源程序行數(shù)L(不含注釋性語(yǔ)句),其中C為轉(zhuǎn)換系數(shù),它與所使用的程序設(shè)計(jì)語(yǔ)言有關(guān),同時(shí)也與軟件類型以及程序員的編程風(fēng)格等因素有關(guān),可以通過(guò)對(duì)歷史數(shù)據(jù)的統(tǒng)計(jì)分析來(lái)估計(jì)。在一般情況下,F(xiàn)ORTRAN語(yǔ)言編程時(shí)有C=7.5,用PASCAL語(yǔ)言編程時(shí)有C=4.0。1.2.4軟件差錯(cuò)與可靠性度量
產(chǎn)品質(zhì)量的高低長(zhǎng)期以來(lái)一直是生產(chǎn)與消費(fèi)部門所關(guān)心的重要問(wèn)題之一。衡量產(chǎn)品質(zhì)量高低的指標(biāo)有技術(shù)性能指標(biāo)和可靠性指標(biāo),其中技術(shù)性能指標(biāo)用來(lái)反映產(chǎn)品所具有的功能與性能的技術(shù)水平,如計(jì)算機(jī)的字長(zhǎng)、容量、運(yùn)算速度等,而可靠性指標(biāo)則用來(lái)反映產(chǎn)品維持良好功能與性能的持久能力或經(jīng)久耐用的能力,如電視機(jī)能滿意地觀看多少小時(shí),汽車保持良好狀態(tài)能行駛多少公里,等等。軟件作為一種特殊產(chǎn)品,同樣需要一系列技術(shù)性能指標(biāo)來(lái)衡量其所具有的功能與性能的技術(shù)水平,如軟件對(duì)數(shù)據(jù)的處理能力、存儲(chǔ)空間、算法復(fù)雜性、預(yù)測(cè)成本、投資額的精度等;同樣也需要一些可靠性指標(biāo)來(lái)衡量軟件保持良好的功能與性能水平的持久能力。
1.軟件差錯(cuò)與可靠性
硬件產(chǎn)品由于設(shè)計(jì)錯(cuò)誤,制造流程與工藝問(wèn)題,使用時(shí)元器件所承擔(dān)的載荷過(guò)大,環(huán)境(溫度、工作電流)發(fā)生突變以及機(jī)械磨損等原因都可能導(dǎo)致硬件故障。隨著人們對(duì)硬件可靠性的認(rèn)識(shí)重視和研究的深入,提出了一系列科學(xué)的可靠性設(shè)計(jì),可靠度分配方法,電子信息產(chǎn)品在生產(chǎn)過(guò)程中的實(shí)驗(yàn)、驗(yàn)證和鑒定方法以及在包裝、貯存和運(yùn)輸?shù)确矫嬉?guī)范要求,從而使硬件產(chǎn)品可靠性水平有了極大的提高。這從電腦、傳感器、電視機(jī)等硬件產(chǎn)品發(fā)展的日新月異可以看到。然而,軟件產(chǎn)品的可靠性長(zhǎng)期以來(lái)并未得到人們的重視。事實(shí)上,與硬件相比,由于軟件生產(chǎn)更多地依賴于人的勞動(dòng),這就使得軟件產(chǎn)品在可靠性方面存在著“先天性的不足”。由于開(kāi)發(fā)人員的智力、精力與經(jīng)驗(yàn)、時(shí)間的有限,于是程序編寫發(fā)生錯(cuò)誤或未按規(guī)范完成程序編寫;測(cè)試人員的經(jīng)驗(yàn)、技術(shù)與工具的不足而使設(shè)計(jì)差錯(cuò)未能檢測(cè)出來(lái);用戶與開(kāi)發(fā)機(jī)構(gòu)以及開(kāi)發(fā)人員間的溝通不足造成對(duì)目標(biāo)需求的理解錯(cuò)誤與不充分以及需求變更太過(guò)頻繁、開(kāi)發(fā)人員對(duì)軟件質(zhì)量的錯(cuò)誤認(rèn)識(shí)、不負(fù)責(zé)任乃至自高自大態(tài)度、進(jìn)度上的壓力、管理上的缺失等現(xiàn)象,不可避免地在每一個(gè)軟件項(xiàng)目開(kāi)發(fā)過(guò)程中或多或少地發(fā)生。這就導(dǎo)致每一個(gè)交付給用戶的軟件產(chǎn)品都不可避免地會(huì)有差錯(cuò)(SoftError),從而導(dǎo)致軟件產(chǎn)品本身具有功能與性能不完整或不正?;螂y以使用等方面的軟件缺陷,于是這樣的軟件產(chǎn)品使用時(shí)就會(huì)發(fā)生軟件故障(SoftwareFault),如數(shù)據(jù)丟失、死鎖、操作系統(tǒng)失靈以及程序不能退出、輸入/輸出錯(cuò)誤、計(jì)算錯(cuò)誤等。由于中大型軟件是復(fù)雜的邏輯產(chǎn)品,人們不可能通過(guò)枚舉法來(lái)對(duì)程序運(yùn)行的所有路徑來(lái)進(jìn)行測(cè)試并排除差錯(cuò),這就導(dǎo)致軟件特別是嵌入型軟件的使用具有很大的危險(xiǎn)性。例如,由于火箭慣性制導(dǎo)系統(tǒng)(軟件)的一個(gè)差錯(cuò),導(dǎo)致在1996年6月發(fā)射的耗資67億美元的阿麗亞娜(Ariane)501火箭在首次飛行實(shí)驗(yàn)中,點(diǎn)火升空37秒后即在空中爆炸,造成巨大的損失;1993年海灣戰(zhàn)爭(zhēng)中,美“愛(ài)國(guó)者”導(dǎo)彈的雷達(dá)跟蹤系統(tǒng)由于一個(gè)軟件差錯(cuò)而導(dǎo)致導(dǎo)彈發(fā)射發(fā)生了1/3秒的時(shí)間誤差,從而不僅未能擊中伊拉克的“飛毛腿”導(dǎo)彈,反而導(dǎo)致美軍的重大傷亡;2003年,日本東京機(jī)場(chǎng)的航空調(diào)度系統(tǒng)的一個(gè)軟件故障,造成全日本200多個(gè)航班停飛,2000多個(gè)航班誤點(diǎn),1324架次的航班晚點(diǎn)達(dá)30分鐘以上,使日本航空業(yè)的形象大損……
2.軟件可靠性度量指標(biāo)
設(shè)程序按照規(guī)格說(shuō)明從初始時(shí)刻t=0開(kāi)始運(yùn)行直到發(fā)生故障為止這一連續(xù)時(shí)間段稱為軟件的壽命。易知軟件壽命是一個(gè)非負(fù)隨機(jī)變量,其分布函數(shù)F(x)=p(ξ≤x)稱為軟件產(chǎn)品的壽命分布函數(shù),而軟件產(chǎn)品在時(shí)刻t的生存概率R(t)=P(ξ>t)=1-F(t)稱為該軟件產(chǎn)品的可靠度函數(shù)或可靠
度。注意到軟件產(chǎn)品的使用或運(yùn)行是在一定的目標(biāo)和環(huán)境需求下完成的,故軟件產(chǎn)品的可靠度也可以定義為:產(chǎn)品在規(guī)定的條件下,在規(guī)定的時(shí)間內(nèi),完成規(guī)定功能的概率。其中,規(guī)定的條件通常是指軟件的運(yùn)行環(huán)境如運(yùn)行平臺(tái)、操作系統(tǒng)、編程工具等,規(guī)定的時(shí)間是指軟件使用的連續(xù)時(shí)間,而規(guī)定的功能則指軟件產(chǎn)品已完成的目標(biāo)功能。若軟件壽命ξ的概率密度為f(t),則由概率論知有(1.4)若軟件壽命ξ的概率密度存在,則在t時(shí)刻軟件產(chǎn)品的失效率(或故障率)λ(t)被定義為(1.5)注意到有如下概率近似等式:由此可知失效率λ(t)可理解為:軟件產(chǎn)品在正常工作一直到時(shí)刻t的條件下,它在(t,t+Δt]區(qū)間內(nèi)失效的概率。當(dāng)Δt很小時(shí),λ(t)還可理解為軟件產(chǎn)品在t前正常工作的條件下,而在t+瞬間發(fā)生失效的概率密度。由于有
容易求解上述微分方程可得(1.6)隨著對(duì)軟件產(chǎn)品的不斷測(cè)試(單元測(cè)試、集成測(cè)試、驗(yàn)收測(cè)試、運(yùn)行測(cè)試),軟件早期存在的差錯(cuò)將不斷地被檢測(cè)到而改正,故軟件產(chǎn)品的失效率或故障率函數(shù)呈如圖1.8(a)所示的單調(diào)下降趨勢(shì)。而硬件產(chǎn)品在生存周期內(nèi)其失效率曲線如圖1.8(b)所示,它如同一個(gè)浴盆一樣,故稱為浴盆曲線。它分成三個(gè)階段,段被稱為早期失效階段,在
此階段中由于電子產(chǎn)品常含有不合格的元器件或在設(shè)計(jì)與工藝中存在不完善的地方,因而此階段呈高失效率特征,且伴隨著元器件篩選及技術(shù)工藝的改進(jìn),使失效率單調(diào)下降。在第二時(shí)間段,由于產(chǎn)品性能趨于穩(wěn)定,故失效率大致不變,產(chǎn)品失效往往是運(yùn)行環(huán)境突變等偶然原因造成的,故稱為偶發(fā)性失效階段。在第三階段,由于產(chǎn)品運(yùn)行時(shí)間較長(zhǎng),元器件因物理磨損而逐步老化,從而使失效率呈單調(diào)上升階段,故此階段稱為損耗失效期。圖1.8軟、硬件失效率曲線此外,軟件壽命ξ的期望值E(ξ)稱為軟件的平均壽命。并容易證明E(ξ)與R(t)有如下關(guān)系式:(1.7)(1.4)、(1.5)、(1.6)、(1.7)式描述了F(t)、f(t)、R(t)、E(ξ)的相互關(guān)系,這種相互的關(guān)聯(lián)關(guān)系可由圖1.9來(lái)表示。除了上述四個(gè)可靠性度量指標(biāo)之外,還有軟件的維修函數(shù),維修率,平均維修時(shí)間,軟件交付時(shí)的初始潛在固有差錯(cuò)數(shù),交付后經(jīng)測(cè)試又排除了n個(gè)差錯(cuò)后軟件的殘存差錯(cuò)數(shù),將這些殘存差錯(cuò)全部排除的期望時(shí)間和方差等可靠性指標(biāo)。要了解這一系列軟件可靠性指標(biāo)的數(shù)學(xué)定義及其相關(guān)分析,可參考文獻(xiàn)[16]。
圖1.9可靠性指標(biāo)關(guān)聯(lián)圖1.2.5軟件質(zhì)量
1.產(chǎn)品質(zhì)量的概念
什么是產(chǎn)品的質(zhì)量?人們似乎是有所認(rèn)識(shí)的,如燈泡要講究其平均壽命,食品要講究其營(yíng)養(yǎng)成分與口味等。然而進(jìn)一步深究,又發(fā)現(xiàn)不同的人對(duì)同一種產(chǎn)品的質(zhì)量評(píng)價(jià)會(huì)有所不同,而世界上的產(chǎn)品又五花八門、種類繁多且各具特色,
因而要給這些眾多的產(chǎn)品質(zhì)量一個(gè)公共的定義似乎又有一定的難度,從而使人們對(duì)產(chǎn)品“質(zhì)量”的認(rèn)識(shí)經(jīng)歷了一個(gè)較為漫長(zhǎng)而又逐步深化的過(guò)程。在20世紀(jì)60~70年代,美國(guó)質(zhì)量管理學(xué)家Juran所提出產(chǎn)品質(zhì)量的定義首先為人們所接受。他認(rèn)為“產(chǎn)品質(zhì)量就是產(chǎn)品的適用性”,并對(duì)產(chǎn)品的適用性做了進(jìn)一步解釋:“該產(chǎn)品在使用時(shí)能成功滿足用戶需要的程度”。在定義中,Juran明確提出了對(duì)產(chǎn)品質(zhì)量的評(píng)價(jià)應(yīng)是以是否滿足用戶需要為前提,而不是以制造廠家的見(jiàn)解和宣傳為依據(jù),且這種用戶的需要又往往受到產(chǎn)品的使用時(shí)間、地點(diǎn)、對(duì)象以及社會(huì)環(huán)境、市場(chǎng)競(jìng)爭(zhēng)等諸多因素的影響。因而使人們認(rèn)識(shí)到這樣一個(gè)事實(shí):由于用戶對(duì)產(chǎn)品的需要是在不斷變化與發(fā)展的,因而人們對(duì)同一產(chǎn)品質(zhì)量的評(píng)價(jià)也應(yīng)是動(dòng)態(tài)變化的。在產(chǎn)品質(zhì)量管理研究中,由于生產(chǎn)經(jīng)營(yíng)與科研實(shí)踐的需要,人們開(kāi)始研究如何來(lái)表征用戶需要的屬性及其滿足程度,并認(rèn)為用戶需要屬性應(yīng)包括產(chǎn)品的內(nèi)在屬性(如產(chǎn)品的性能、壽命、可靠性、安全性等)、外部屬性、經(jīng)濟(jì)屬性(產(chǎn)品的成本、價(jià)格等)和服務(wù)狀況(如產(chǎn)品的售后服務(wù)、維護(hù)、備件供應(yīng)等)四個(gè)方面。上述四個(gè)方面既體現(xiàn)了用戶使用時(shí)的需求,也兼顧了產(chǎn)品制造過(guò)程中的資金、勞動(dòng)、資源的節(jié)省,從而體現(xiàn)了所謂產(chǎn)品質(zhì)量最優(yōu)的概念是使社會(huì)總耗費(fèi)最少的情況下來(lái)確保對(duì)社會(huì)的最大效果這一質(zhì)量?jī)?yōu)化思想。
20世紀(jì)80年代初,中國(guó)質(zhì)量管理協(xié)會(huì)在Juran定義的基礎(chǔ)上對(duì)質(zhì)量的適用性含義做出了具體的解釋,提出了采用產(chǎn)品性能、壽命、可靠性、安全性和經(jīng)濟(jì)性等概念作為表征產(chǎn)品用戶需要的適用性;到了20世紀(jì)90年代,考慮到人類生產(chǎn)實(shí)踐與社會(huì)生活不斷地對(duì)產(chǎn)品質(zhì)量提出了新要求以及人們對(duì)產(chǎn)品質(zhì)量認(rèn)識(shí)的深化,國(guó)際標(biāo)準(zhǔn)化組織于1991年發(fā)布了ISO9402《質(zhì)量管理和質(zhì)量保證——詞匯》標(biāo)準(zhǔn),對(duì)質(zhì)量一詞給出定義為“反映實(shí)體滿足規(guī)定和需要能力的特性之總和”,并對(duì)“需要”一詞進(jìn)一步做出了解釋為“需要是給定的,‘需要’可轉(zhuǎn)化為有指標(biāo)的特性,如可以用性能、實(shí)用性、可信性、可用性、可靠性、維修性、安全性、經(jīng)濟(jì)性
、環(huán)境性、環(huán)境要求或美學(xué)方面的有關(guān)屬性來(lái)作為表述‘需要’的特性指標(biāo)”。顯然,上述對(duì)產(chǎn)品質(zhì)量的定義反映了人們對(duì)產(chǎn)品質(zhì)量認(rèn)識(shí)的深化后所取得的“共識(shí)”,然而這種共識(shí)以后又有了新的拓展,這是由于人們發(fā)現(xiàn)上述有關(guān)產(chǎn)品質(zhì)量的定義更多的是反映了硬件產(chǎn)品的屬性,而未能系統(tǒng)全面反映信息技術(shù)的另一重要產(chǎn)品——軟件的基本屬性,從而引起了軟件工程界不少專家對(duì)軟件質(zhì)量研究的興趣。在軟件質(zhì)量的概念研究中,人們發(fā)現(xiàn)參與軟件開(kāi)發(fā)、管理、維護(hù)、使用的人員由于他們?cè)谲浖嬷芷谥兴幍牡匚徊煌?,?duì)軟件質(zhì)量的理解和要求也不同。例如,開(kāi)發(fā)人員主要關(guān)心軟件的功能性和工期,管理人員則關(guān)心軟件的開(kāi)發(fā)標(biāo)準(zhǔn)、成本和時(shí)間進(jìn)程,維護(hù)人員則關(guān)心軟件的正確性、可理解性和可維修性,用戶則更關(guān)心軟件的性能和可靠性。因此,給軟件質(zhì)量給出一個(gè)客觀、科學(xué)的定義,并盡量予以量化,這對(duì)于統(tǒng)一人們的認(rèn)識(shí)是十分必要的。
2.軟件質(zhì)量評(píng)價(jià)
20世紀(jì)70~80年代,McCall等人相繼發(fā)表了他們的研究報(bào)告。McCall將軟件質(zhì)量定義為“滿足規(guī)定的和潛在需要能力的總和”并提出了一個(gè)由三個(gè)層次構(gòu)成的軟件質(zhì)量度量模型。其中,最高層的元素稱為質(zhì)量要素(QualityFactor),共11個(gè);中層的元素稱為評(píng)價(jià)準(zhǔn)則(EvaluationCriteria),共30個(gè);底層元素稱為質(zhì)量度量(QualityMetric),詳見(jiàn)圖1.10
。該度量模型表示:任何一個(gè)軟件都可由使用單位的軟件質(zhì)量保證人員通過(guò)對(duì)軟件開(kāi)發(fā)過(guò)程中軟件本身所具有的原始屬性(每一個(gè)原始屬性稱為一個(gè)評(píng)價(jià)準(zhǔn)則)的逐一度量后,即可得到對(duì)該軟件各質(zhì)量要素的評(píng)價(jià),并進(jìn)而提出對(duì)被評(píng)軟件的總體評(píng)價(jià)。圖1.10McCall軟件質(zhì)量度量模型隨后,國(guó)際標(biāo)準(zhǔn)化組織ISO在McCall等人所提出的軟件質(zhì)量度量模型的基礎(chǔ)上,于1991年發(fā)布了ISO/IEC9126質(zhì)量特性國(guó)際標(biāo)準(zhǔn),并建立了與圖1.10類似的ISO軟件質(zhì)量度量模型,見(jiàn)圖1.11。在ISO軟件質(zhì)量度量模型中,最高層用軟件質(zhì)量需求準(zhǔn)則(SQRC)代替McCall模型的質(zhì)量要素,中層用軟件質(zhì)量設(shè)計(jì)評(píng)價(jià)準(zhǔn)則(SQDC)代替McCall模型的評(píng)價(jià)準(zhǔn)則,而底層則用軟件質(zhì)量度量評(píng)價(jià)準(zhǔn)則(SQMC)代替McCall模型的度量概念,并規(guī)定如何對(duì)每一個(gè)SQDC作為度量(SQMC)可根據(jù)用戶的實(shí)際需要自行給出。所不同的是,SQRC由11個(gè)元素改為8個(gè)元素,SQDC由30個(gè)元素改為23個(gè)元素。圖1.11ISO軟件質(zhì)量度量模型以下對(duì)SQRC的8個(gè)元素及SQDC的23個(gè)元素逐一給出其基本含義或解釋。有關(guān)SQRC中的8個(gè)元素與SQDC中的23個(gè)元素的隸屬關(guān)系見(jiàn)表1.13。
1)軟件需求準(zhǔn)則(SQRC)
(1)正確性(Correctness):指程序滿足需求說(shuō)明及用戶目標(biāo)的能力。
(2)可靠性(Reliability):指程序按要求的精度完成預(yù)期功能的能力。
(3)效率(Efficiency):指程序完成其功能所需的資源及代碼的數(shù)量。
(4)安全性(Security):指對(duì)未經(jīng)許可的人員接近軟件或數(shù)據(jù)加以控制的能力。
(5)可使用性(Usability):指熟悉程序操作,為程序準(zhǔn)備輸入數(shù)據(jù)和翻譯程序輸出所需付出的努力。
(6)可維護(hù)性(Maintainability):指確定可運(yùn)行程序中的錯(cuò)誤所需要付出的努力。
(7)靈活性(Flexibility):指修改可運(yùn)行程序所需要付出的努力。
(8)連接性(Interoperability):指程序與其他系統(tǒng)耦合的能力。
2)軟件質(zhì)量設(shè)計(jì)評(píng)價(jià)準(zhǔn)則(SQDC)
(1)可追蹤性(Tractability):指在規(guī)定的開(kāi)發(fā)和運(yùn)行環(huán)境中,聯(lián)結(jié)軟件需求和軟件實(shí)現(xiàn)的線索的清晰程度。
(2)完備性(Completeness):指軟件需求功能全面實(shí)現(xiàn)的程度。
(3)一致性(Consistency):指軟件設(shè)計(jì)技術(shù)、實(shí)現(xiàn)技術(shù)和標(biāo)識(shí)符的協(xié)調(diào)和統(tǒng)一程度。
(4)準(zhǔn)確性(Accuracy):指軟件計(jì)算和輸出的精確程度。
(5)容錯(cuò)性(Errortolerance):指軟件在非正常條件下,具有的繼續(xù)運(yùn)行的能力。
(6)簡(jiǎn)單性(Simplicity):指實(shí)現(xiàn)軟件規(guī)定功能所采用方式的簡(jiǎn)單和容易理解的程度。
(7)模塊性(Modularity):指軟件具有獨(dú)立模塊結(jié)構(gòu)的程度。
(8)通用性(Generality):指軟件可履行功能的跨度。
(9)可擴(kuò)充性(Expandability):指軟件的功能和數(shù)據(jù)存儲(chǔ),允許擴(kuò)充的程度。
(10)工具性(Instrumentation):指軟件為錯(cuò)誤識(shí)別和應(yīng)用測(cè)試所提供條件的程度。
(11)自描述性(SelfDescriptiveness):指軟件解釋執(zhí)行功能的清晰程度。
(12)執(zhí)行效率(ExecutionEfficiency):指軟件執(zhí)行的快速程度。
(13)存儲(chǔ)效率(StorageEfficiency):指軟件運(yùn)行所需的存儲(chǔ)量的精簡(jiǎn)程度。
(14)存取控制(AccessAudit):指對(duì)接近軟件和存取數(shù)據(jù)的控制程度。
(15)存取審查(AccessAudit):指對(duì)接近軟件和存取數(shù)據(jù)所做的審查的嚴(yán)格程度。
(16)可操作性(Operability):指軟件運(yùn)行所需操作的復(fù)雜程度。
(17)培訓(xùn)性(Training):指熟悉軟件操作的困難程度。
(18)通信性(Communicativeness):指吸收、利用程序輸入和輸出的困難程度。
(19)軟件系統(tǒng)獨(dú)立性(SoftwareSystemIndependence):指軟件對(duì)環(huán)境的依賴程度。
(20)機(jī)器獨(dú)立性(MachineIndependence):指軟件對(duì)硬件系統(tǒng)的依賴程度。
(21)通信共享性(CommunicationsCommonality):指軟件采用標(biāo)準(zhǔn)協(xié)議和常規(guī)接口的程度。
(22)數(shù)據(jù)共享性(DataCommonality):指軟件采用標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)的程度。
(23)簡(jiǎn)明性(Conciseness):指軟件實(shí)現(xiàn)預(yù)期功能所需代碼量的精簡(jiǎn)程度。
3.軟件質(zhì)量保證
軟件的質(zhì)量度量模型反映了對(duì)一個(gè)給定目標(biāo)軟件的度量的質(zhì)量需求準(zhǔn)則、質(zhì)量設(shè)計(jì)評(píng)價(jià)準(zhǔn)則和質(zhì)量要素評(píng)價(jià)的基本內(nèi)容和從屬層次關(guān)系,并為解決待開(kāi)發(fā)(或正在開(kāi)發(fā))的軟件能夠達(dá)到用戶的各種需求目標(biāo)提供了求解的思路與規(guī)范,但與此同時(shí),人們?cè)谲浖_(kāi)發(fā)過(guò)程中還必須有專人從事軟件質(zhì)量保證工作。
軟件質(zhì)量保證(SoftwareQualityAssurance,SQA)包括如下多種工作:
(1)推行與確認(rèn)軟件工程質(zhì)量標(biāo)準(zhǔn);
(2)研究與采用各種技術(shù)手段來(lái)保證軟件質(zhì)量;
(3)對(duì)軟件的各種變更進(jìn)行控制;
(4)制訂并執(zhí)行軟件測(cè)試策略測(cè)試計(jì)劃;
(5)按照軟件質(zhì)量標(biāo)準(zhǔn)對(duì)軟件的質(zhì)量進(jìn)行度量;
(6)組織各種技術(shù)評(píng)審會(huì)或評(píng)審活動(dòng);
(7)對(duì)軟件質(zhì)量的度量情況及時(shí)記錄和生成SQA報(bào)告。其中,需要說(shuō)明的是一個(gè)軟件產(chǎn)品或系統(tǒng)質(zhì)量的優(yōu)劣是在軟件開(kāi)發(fā)過(guò)程中逐步工作的積累,因此軟件質(zhì)量保證工作從軟件設(shè)計(jì)開(kāi)始就必須注意研究并貫穿于整個(gè)開(kāi)發(fā)過(guò)程的各個(gè)階段。而軟件質(zhì)量保證工作的依據(jù)是軟件質(zhì)量標(biāo)準(zhǔn)。目前采用什么樣的軟件質(zhì)量標(biāo)準(zhǔn)對(duì)不同的開(kāi)發(fā)機(jī)構(gòu)是不同的,有的是上級(jí)主管部門所指定,也有的是由軟件開(kāi)發(fā)機(jī)構(gòu)自行制訂的。因此,無(wú)論是哪一種情況,標(biāo)準(zhǔn)一旦得到各方確認(rèn),就應(yīng)得到各方所有人員的重視,并在開(kāi)發(fā)工作中得到遵循,同時(shí)研究采用各種技術(shù)方法和手段來(lái)保證軟件開(kāi)發(fā)結(jié)束時(shí)的質(zhì)量水平能夠達(dá)到預(yù)定的軟件質(zhì)量標(biāo)準(zhǔn)。歷史的教訓(xùn)告訴我們,對(duì)軟件質(zhì)量的一個(gè)不可忽視的威脅因素來(lái)自于軟件的各種修改和變更,盡管從表面上來(lái)看,對(duì)軟件的修改和變更必定是有理由的和有益的行為,然而實(shí)踐證明,在修改過(guò)程中常常引進(jìn)一些潛伏的錯(cuò)誤,或帶來(lái)一些足以傳播錯(cuò)誤的副作用,因此嚴(yán)格控制在開(kāi)發(fā)過(guò)程中對(duì)軟件的修改和變更自然成為十分必要的措施與手段。這種控制措施可以包括嚴(yán)格掌握由用戶或開(kāi)發(fā)方提出的修改和變更請(qǐng)求,仔細(xì)研究這種修改和變更的性質(zhì)及其對(duì)軟件各部分和有關(guān)各方所引起的沖擊程度,以及如何來(lái)面對(duì)這些沖擊及其所應(yīng)采取措施的工作量、時(shí)間(進(jìn)度)、費(fèi)用的大小,等等。遵循軟件質(zhì)量標(biāo)準(zhǔn)來(lái)進(jìn)行軟件質(zhì)量度量是軟件質(zhì)量分析(SQA)的另一重要工作。這需要建立一系列的度量指標(biāo)(定性或定量指標(biāo))或度量指標(biāo)體系,并應(yīng)有相關(guān)確定的評(píng)價(jià)方法來(lái)具體確定每一度量指標(biāo)的度量值以及整個(gè)軟件的綜合度量值。軟件評(píng)審(SoftwareReview)是軟件質(zhì)量標(biāo)準(zhǔn)的另一重要手段,通過(guò)對(duì)軟件開(kāi)發(fā)過(guò)程中任一階段的評(píng)審,可以發(fā)現(xiàn)軟件設(shè)計(jì)與開(kāi)發(fā)中的隱藏錯(cuò)誤并加以排除,同時(shí)也起到了對(duì)軟件開(kāi)發(fā)的檢查與監(jiān)督作用。實(shí)踐證明,軟件測(cè)試可以配合軟件評(píng)審起到有效揭露軟件存在問(wèn)題,通過(guò)發(fā)現(xiàn)的隱藏錯(cuò)誤的排除杜絕了隱藏錯(cuò)誤的向后(開(kāi)發(fā)過(guò)程的下一階段)延伸、傳播和擴(kuò)展。軟件評(píng)審工作最常見(jiàn)的是召開(kāi)由第三方(專家)、開(kāi)發(fā)人員、用戶代表組成的評(píng)審會(huì),首先評(píng)審組起草評(píng)審文件,確定評(píng)審要求及各評(píng)審人員的職責(zé),待檢查的軟件項(xiàng)目測(cè)試清單和評(píng)審進(jìn)度等;然后評(píng)審委員會(huì)根據(jù)開(kāi)發(fā)人員提交的軟件(含相關(guān)文檔)按照測(cè)試清單進(jìn)行逐項(xiàng)測(cè)試,并對(duì)軟件開(kāi)發(fā)過(guò)程的各種問(wèn)題提出詢問(wèn),要求開(kāi)發(fā)人員作出解答;最后討論與通過(guò)開(kāi)發(fā)機(jī)構(gòu)所提交的軟件是否“通過(guò)評(píng)審”的決議。
1.3軟件工程經(jīng)濟(jì)學(xué)的概念與任務(wù)
經(jīng)濟(jì)學(xué)(Economics)是研究人類在從事生產(chǎn)、交換以及對(duì)產(chǎn)品和勞務(wù)消費(fèi)過(guò)程中,如何有效地利用和合理地配置可供選擇的各種有限資源(又稱稀缺資源),以使人類的現(xiàn)在和將來(lái)的無(wú)限欲望得到最大滿足的一門學(xué)科。按照研究的范疇不同,經(jīng)濟(jì)學(xué)可劃分為宏觀經(jīng)濟(jì)學(xué)(MacroEconomics)和微觀經(jīng)濟(jì)學(xué)(MicroEconomics)。其中,宏觀經(jīng)濟(jì)學(xué)是通過(guò)對(duì)國(guó)家(地區(qū)、部門)的產(chǎn)量、收入、價(jià)格水平和失業(yè)來(lái)分析上述主體的整體經(jīng)濟(jì)行為的一門經(jīng)濟(jì)學(xué)分支學(xué)科,而微觀經(jīng)濟(jì)學(xué)則是研究廠商、家庭、個(gè)人等特定經(jīng)濟(jì)單位的市場(chǎng)行為和如何作出決策(生產(chǎn)與消費(fèi)決策)及分析其影響因素的一門經(jīng)濟(jì)學(xué)分支學(xué)科。此外,按照所研究的對(duì)
象與屬性的不同,經(jīng)濟(jì)學(xué)又可有工程經(jīng)濟(jì)學(xué)、管理經(jīng)濟(jì)學(xué)、區(qū)域經(jīng)濟(jì)學(xué)、發(fā)展經(jīng)濟(jì)學(xué)、制度經(jīng)濟(jì)學(xué)、信息經(jīng)濟(jì)學(xué)、經(jīng)濟(jì)統(tǒng)計(jì)學(xué)等分支學(xué)科。其中,工程經(jīng)濟(jì)學(xué)是研究工程技術(shù)領(lǐng)域中的經(jīng)濟(jì)問(wèn)題和經(jīng)濟(jì)規(guī)律的一門經(jīng)濟(jì)學(xué)分支,具體地說(shuō),就是研究對(duì)為實(shí)現(xiàn)特定功能而提出的在技術(shù)
上可行的技術(shù)方案、生產(chǎn)過(guò)程、產(chǎn)品和服務(wù),并在經(jīng)濟(jì)上進(jìn)行分析與比較,計(jì)算與論證的一門經(jīng)濟(jì)系統(tǒng)方法論的學(xué)科。1.3.1軟件工程經(jīng)濟(jì)學(xué)的內(nèi)涵與任務(wù)
軟件工程經(jīng)濟(jì)學(xué)(SoftwareEngineeringEconomics,SEE)從名詞上看可以理解為工程經(jīng)濟(jì)學(xué)與軟件工程的交叉學(xué)科。我們將其定義為以軟件工程領(lǐng)域中的經(jīng)濟(jì)問(wèn)題和經(jīng)濟(jì)規(guī)律為
研究對(duì)象的一門經(jīng)濟(jì)學(xué)分支學(xué)科,具體地說(shuō),就是研究為實(shí)現(xiàn)特定功能需求的軟件工程項(xiàng)目而提出的在技術(shù)方案、生產(chǎn)(開(kāi)發(fā))過(guò)程、產(chǎn)品或服務(wù)等方面所作的經(jīng)濟(jì)分析與論證,計(jì)
算與比較的一門系統(tǒng)方法論學(xué)科。作為一門有待發(fā)展的新興學(xué)科,從系統(tǒng)工程的研究思路來(lái)看,軟件工程經(jīng)濟(jì)學(xué)至少應(yīng)該包括如下四個(gè)部分:
(1)學(xué)科研究的對(duì)象、任務(wù)、特征、研究范圍和研究方法;
(2)軟件系統(tǒng)的內(nèi)部構(gòu)成要素和經(jīng)濟(jì)活動(dòng)及其關(guān)聯(lián)分析,如投資、成本、利潤(rùn)、效益、工期、效率、質(zhì)量及研制、開(kāi)發(fā)、維護(hù)、管理活動(dòng)及其關(guān)聯(lián)分析;
(3)軟件系統(tǒng)的組織結(jié)構(gòu)、管理決策及其與經(jīng)營(yíng)活動(dòng)的關(guān)系;
(4)軟件系統(tǒng)的物流、資金流、信息流的輸入與輸出及其對(duì)系統(tǒng)外部——國(guó)家、地區(qū)經(jīng)濟(jì)、社會(huì)、國(guó)防、人民生活的影響。其中(1)為軟件系統(tǒng)的基礎(chǔ)概念與理論部分,(2)、(3)為軟件系統(tǒng)的微觀經(jīng)濟(jì)分析部分,(4)為軟件系統(tǒng)的宏觀經(jīng)濟(jì)
分析部分。作為(2)與(3)的細(xì)化,研究?jī)?nèi)容具體如下:
·軟件工程經(jīng)濟(jì)分析基本原理及應(yīng)用,如價(jià)值工程原理、規(guī)模經(jīng)濟(jì)與生產(chǎn)函數(shù)原理、成本效益分析與邊際分析原理,項(xiàng)目開(kāi)發(fā)的時(shí)間、成本/效益、質(zhì)量、效率的均衡原理、
優(yōu)化原理與敏感性分析等。
·軟件項(xiàng)目的成本估算、成本控制與融資。
·軟件項(xiàng)目開(kāi)發(fā)的風(fēng)險(xiǎn)與不確定性分析和投資可行性分析。
·軟件產(chǎn)品的質(zhì)量評(píng)價(jià)、經(jīng)濟(jì)效益評(píng)價(jià)、財(cái)務(wù)評(píng)價(jià)以及主要質(zhì)量指標(biāo)——軟件可靠性、維護(hù)性等的經(jīng)濟(jì)評(píng)價(jià)方法。
·軟件生存周期中各種生產(chǎn)(開(kāi)發(fā))與管理活動(dòng)的經(jīng)濟(jì)分析與決策,如軟件工具與設(shè)備的采購(gòu)決策、信息獲取決策、開(kāi)發(fā)技術(shù)方案的評(píng)價(jià)與決策、成本的階段分配決策、軟件發(fā)行決策、產(chǎn)品定價(jià)決策等。
·軟件項(xiàng)目的工作任務(wù)分解與計(jì)劃制訂、組織與協(xié)調(diào)及其經(jīng)濟(jì)分析與優(yōu)化。
·軟件開(kāi)發(fā)過(guò)程的動(dòng)態(tài)規(guī)律描述及其各經(jīng)濟(jì)要素的關(guān)聯(lián)分析。
·軟件開(kāi)發(fā)效率(勞動(dòng)生產(chǎn)率)的影響因素分析及改進(jìn)策略研究。1.3.2軟件工程經(jīng)濟(jì)學(xué)的研究特點(diǎn)與方法體系
1.研究特點(diǎn)
軟件工程經(jīng)濟(jì)學(xué)的研究具有如下特點(diǎn):
(1)注意到軟件產(chǎn)品的“人工制作”的特點(diǎn)和經(jīng)濟(jì)學(xué)中產(chǎn)品的質(zhì)量、成本/效益、時(shí)間/進(jìn)度、效率等目標(biāo)要素的重要性,因此軟件工程經(jīng)濟(jì)學(xué)研究的重點(diǎn)始終環(huán)繞著軟件產(chǎn)品的質(zhì)量、成本/效益、時(shí)間/進(jìn)度、效率等目標(biāo)要素的關(guān)聯(lián)分析及其人的組織與協(xié)調(diào)(管理)對(duì)上述各目標(biāo)的影響分析進(jìn)行,詳見(jiàn)圖1.12。圖1.12SEE要素關(guān)聯(lián)圖
(2)軟件工程經(jīng)濟(jì)學(xué)的研究思想來(lái)自于系統(tǒng)工程,因此注意軟件系統(tǒng)目標(biāo)的整體性(總體性)、要素的層次性(有序性)和關(guān)聯(lián)性、系統(tǒng)結(jié)構(gòu)的合理性(協(xié)調(diào)性)、系統(tǒng)環(huán)境的適應(yīng)性等始終是人們研究的指導(dǎo)準(zhǔn)則。
(3)注意到人的組織與協(xié)調(diào)度量的復(fù)雜性,因此軟件工程經(jīng)濟(jì)學(xué)的研究方法采用了經(jīng)濟(jì)學(xué)中的傳統(tǒng)思路,即采用定性分析與定量分析相結(jié)合、理論分析與實(shí)證驗(yàn)證相結(jié)合的思路,其中定量分析中由于目標(biāo)的多樣性,因而又為多目標(biāo)決策的理論與方法提供了用武之地。
(4)考慮到我國(guó)與西方發(fā)達(dá)國(guó)家在文化與價(jià)值觀念、技
術(shù)水平、經(jīng)營(yíng)機(jī)制、管理水平與生產(chǎn)效率以及軟件工程環(huán)境上的差異,因此在大力學(xué)習(xí)與借鑒西方發(fā)達(dá)國(guó)家有關(guān)軟件工程經(jīng)濟(jì)學(xué)的理論、方法與應(yīng)用成果的同時(shí)要注意環(huán)境的差異性對(duì)數(shù)量分析的影響,從而可在數(shù)學(xué)分析的思路與方法的通用性之基礎(chǔ)上來(lái)尋找適合于我國(guó)國(guó)情的研究結(jié)果。
2.方法體系
根據(jù)上述分析,作者認(rèn)為作為一門交叉學(xué)科的軟件工程經(jīng)濟(jì)學(xué)的理論與方法應(yīng)該與如下五類學(xué)科有著緊密的關(guān)系,它們是:①社會(huì)學(xué)、管理學(xué)等;②經(jīng)濟(jì)學(xué)(宏觀經(jīng)濟(jì)學(xué)、微觀經(jīng)濟(jì)學(xué)、工程經(jīng)濟(jì)學(xué)、管理經(jīng)濟(jì)學(xué)、信息經(jīng)濟(jì)學(xué)等);③軟件工程(軟件工程技術(shù)學(xué)、軟件工程管理學(xué));④計(jì)算機(jī)通信網(wǎng)絡(luò)與信息系統(tǒng);⑤系統(tǒng)工程與運(yùn)籌學(xué)、應(yīng)用統(tǒng)計(jì)學(xué)、模糊數(shù)學(xué)、系統(tǒng)動(dòng)力學(xué)等。它們之間的關(guān)聯(lián)與方法體系詳見(jiàn)圖1.13。圖1.13SEE理論與方法關(guān)聯(lián)圖1.3.3軟件工程經(jīng)濟(jì)學(xué)的研究與發(fā)展
軟件工程的誕生源于“軟件危機(jī)”。軟件危機(jī)是指在計(jì)算機(jī)軟件開(kāi)發(fā)中的一系列問(wèn)題。其中既有軟件技術(shù)問(wèn)題,如怎樣開(kāi)發(fā)軟件?怎樣維護(hù)現(xiàn)有的、容量又在不斷增加的軟件?我們?cè)鯓幼霾拍軡M足人類對(duì)軟件需求的不斷增長(zhǎng)等等;也有經(jīng)濟(jì)問(wèn)題,如軟件開(kāi)發(fā)過(guò)程中成本和進(jìn)度估計(jì)往往不精確,軟件質(zhì)量與可靠性的概念十分可疑,如何來(lái)處理一些相
互對(duì)立的軟件目標(biāo),如成本、工期、可靠性等,軟件測(cè)試究竟需要多長(zhǎng)時(shí)間才能投放市場(chǎng)等等。因此軟件工程經(jīng)濟(jì)學(xué)的研究始終是伴隨著軟件工程的發(fā)展而前進(jìn)的,而日漸成熟的應(yīng)用統(tǒng)計(jì)學(xué)、運(yùn)籌學(xué)、系統(tǒng)工程、工程經(jīng)濟(jì)學(xué)為其發(fā)展提供了科學(xué)而系統(tǒng)的方法論。早期(20世紀(jì)70年代)的軟件工程經(jīng)濟(jì)學(xué)的研究對(duì)象均來(lái)自于計(jì)算機(jī)科學(xué)和軟件工程中的范例,希望通過(guò)建造、使用工具原型來(lái)降低軟件開(kāi)發(fā)與維護(hù)成本,以后逐漸發(fā)展到對(duì)軟件成本、時(shí)間進(jìn)度、可靠性、效率的建模、方法及其比較評(píng)價(jià)和均衡優(yōu)化,對(duì)軟件開(kāi)發(fā)過(guò)程的系統(tǒng)動(dòng)力學(xué)研究以及軟件企業(yè)管理中的采購(gòu)、計(jì)劃、生產(chǎn)、銷售(投放市場(chǎng))、維護(hù)、報(bào)廢等最優(yōu)決策研
究。目前已發(fā)展到對(duì)軟件工具的經(jīng)濟(jì)評(píng)價(jià)以及在軟件開(kāi)發(fā)與維護(hù)過(guò)程中的提高勞動(dòng)生產(chǎn)率的研究。軟件工程經(jīng)濟(jì)學(xué)的研究最早始于美、英等國(guó),其中較有影響的有BoehmB.W、PutnamL.H和Banard.L等專家。Boehm在研究成本測(cè)算的過(guò)程中提出了構(gòu)造型成本模型(ConstructiveCostModel,COCOMO),給出了由軟件規(guī)模計(jì)算工作量,進(jìn)而確定成本與工期的經(jīng)驗(yàn)統(tǒng)計(jì)模型,并于1981年出版了其專著《軟件工程經(jīng)濟(jì)學(xué)》(SoftwareEngineeringEconomics)。在將該模型推向市場(chǎng)的同時(shí),Boehm利用市場(chǎng)手段不斷地收集用戶的反饋意見(jiàn),進(jìn)而對(duì)模型作出不斷
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 最簡(jiǎn)單的采購(gòu)合同范本(5篇)
- 隧道施工機(jī)械的行業(yè)競(jìng)爭(zhēng)與市場(chǎng)分析考核試卷
- 工程施工和培訓(xùn)計(jì)劃
- 施工現(xiàn)場(chǎng)及周圍建筑物維護(hù)措施
- 弱電工程施工質(zhì)量保證措施
- 工程施工現(xiàn)場(chǎng)安全和質(zhì)量控制措施
- 施工期間突發(fā)事件的預(yù)防和處理措施
- 人力資源施工質(zhì)量保證措施
- 施工通告范文
- 配方轉(zhuǎn)讓協(xié)議范本
- 五年級(jí)數(shù)學(xué)上冊(cè)錯(cuò)題專練-第一單元人教版(含答案)
- 組織內(nèi)外部環(huán)境要素識(shí)別表
- 韌性理論與韌性城市建設(shè)
- 高中數(shù)學(xué)作業(yè)分層設(shè)計(jì)的有效性分析 論文
- 基于二十四節(jié)氣開(kāi)展幼兒園美育活動(dòng)的實(shí)踐策略 論文
- 四年級(jí)語(yǔ)文閱讀理解《嫦娥奔月(節(jié)選)》練習(xí)(含答案)
- 鼻咽炎-疾病研究白皮書(shū)
- 普速鐵路工務(wù)安全規(guī)則
- 石阡縣人民醫(yī)院內(nèi)科綜合大樓建設(shè)項(xiàng)目環(huán)評(píng)報(bào)告
- 業(yè)主搭建陽(yáng)光房申請(qǐng)書(shū)
- 消費(fèi)主義影響下中國(guó)當(dāng)代陶藝的特點(diǎn)獲獎(jiǎng)科研報(bào)告
評(píng)論
0/150
提交評(píng)論