計(jì)算機(jī)導(dǎo)論 課件 張玨 單元7 軟件工程基礎(chǔ);單元8 計(jì)算機(jī)信息系統(tǒng)安全基礎(chǔ)_第1頁(yè)
計(jì)算機(jī)導(dǎo)論 課件 張玨 單元7 軟件工程基礎(chǔ);單元8 計(jì)算機(jī)信息系統(tǒng)安全基礎(chǔ)_第2頁(yè)
計(jì)算機(jī)導(dǎo)論 課件 張玨 單元7 軟件工程基礎(chǔ);單元8 計(jì)算機(jī)信息系統(tǒng)安全基礎(chǔ)_第3頁(yè)
計(jì)算機(jī)導(dǎo)論 課件 張玨 單元7 軟件工程基礎(chǔ);單元8 計(jì)算機(jī)信息系統(tǒng)安全基礎(chǔ)_第4頁(yè)
計(jì)算機(jī)導(dǎo)論 課件 張玨 單元7 軟件工程基礎(chǔ);單元8 計(jì)算機(jī)信息系統(tǒng)安全基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩92頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1單元

7軟件工程基礎(chǔ)軟件行業(yè)富有挑戰(zhàn)與創(chuàng)造性,軟件開(kāi)發(fā)是復(fù)雜系統(tǒng)工程,常遇問(wèn)題甚至失敗,總結(jié)失敗原因汲取教訓(xùn)對(duì)成功至關(guān)重要。軟件工程因應(yīng)軟件開(kāi)發(fā)與軟件危機(jī)而生,它傳授開(kāi)發(fā)思維而非實(shí)操,給出瀑布、快速原型、增量、噴泉等模型。學(xué)習(xí)軟件工程能讓編程人員開(kāi)發(fā)更規(guī)范,利于軟件修改優(yōu)化,使開(kāi)發(fā)有組織性、更有效,提升效率。它是軟件開(kāi)發(fā)核心主線,是高質(zhì)量、進(jìn)度與成本可控完成軟件生產(chǎn)的支撐,串聯(lián)需求、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試等環(huán)節(jié),高效驅(qū)動(dòng)各環(huán)節(jié)傳遞傳承。22軟件工程的概念7.1軟件體系結(jié)構(gòu)的模型7.27.37.47.57.6目錄軟件開(kāi)發(fā)模型軟件開(kāi)發(fā)方法軟件過(guò)程和項(xiàng)目管理軟件測(cè)試7.1軟件工程的概念37.1.1軟件工程的概念軟件工程是一門(mén)研究以工程化方法,開(kāi)發(fā)和維護(hù)高質(zhì)量軟件的工程學(xué)科。軟件工程缺乏一個(gè)統(tǒng)一的定義,本書(shū)選用的定義如下:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)、工程科學(xué)及管理科學(xué)等原理,開(kāi)發(fā)軟件的工程,其借鑒傳統(tǒng)工程的原則、方法以提高質(zhì)量、降低成本和改進(jìn)算法。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于管理計(jì)劃、資源、質(zhì)量、成本等。被較為認(rèn)可的一種對(duì)軟件工程的定義為:軟件工程是研究和應(yīng)用如何以系統(tǒng)化、規(guī)范化、定量化的過(guò)程化方法去開(kāi)發(fā)和維護(hù)軟件,以及如何把經(jīng)過(guò)時(shí)間檢驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最佳技術(shù)方法結(jié)合起來(lái)。7.1.2軟件生命周期軟件生命周期又稱為軟件生存周期,是指軟件從立項(xiàng)開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用,直到最后廢棄的整個(gè)過(guò)程。通常將軟件的生命周期劃分為系統(tǒng)調(diào)查、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、程序設(shè)計(jì)、系統(tǒng)測(cè)試、運(yùn)行維護(hù)等階段。概括地說(shuō),軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)3個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步被劃分成若干個(gè)階段。下面簡(jiǎn)要介紹軟件生命周期每個(gè)階段的基本任務(wù)。1.系統(tǒng)調(diào)查階段通過(guò)對(duì)客戶的訪問(wèn)調(diào)查,開(kāi)發(fā)者了解現(xiàn)行系統(tǒng)的組織分工、業(yè)務(wù)流程以及資源,提出新系統(tǒng)的目標(biāo),并從技術(shù)、經(jīng)濟(jì)、社會(huì)等方面進(jìn)行軟件開(kāi)發(fā)的可行性研究。2.系統(tǒng)分析階段開(kāi)發(fā)者對(duì)現(xiàn)行系統(tǒng)的業(yè)務(wù)流程進(jìn)行分析研究,確定新系統(tǒng)必須具備哪些功能,包括哪些界面,并且建立新系統(tǒng)的邏輯模型,如數(shù)據(jù)流程圖、數(shù)據(jù)字典和處理過(guò)程等。該階段的主要任務(wù)是明確目標(biāo)系統(tǒng)必須“做什么”。系統(tǒng)分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),因此必須準(zhǔn)確完整地體現(xiàn)用戶的要求。這個(gè)階段的一項(xiàng)重要任務(wù)是用正式文檔準(zhǔn)確地記錄目標(biāo)系統(tǒng)的需求,這份文檔通常被稱為需求規(guī)格說(shuō)明書(shū)。3.系統(tǒng)設(shè)計(jì)階段系統(tǒng)設(shè)計(jì)階段主要解決“怎么做”的問(wèn)題,即提出系統(tǒng)的物理模型。系統(tǒng)設(shè)計(jì)階段細(xì)分為概要設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段。概要設(shè)計(jì)階段又稱為總體設(shè)計(jì)階段,這個(gè)階段必須回答的關(guān)鍵問(wèn)題是:“概括地說(shuō),應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”。概要設(shè)計(jì)階段以比較抽象的方式提出了解決問(wèn)題的辦法。詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解法具體化,也就是回答下面這個(gè)關(guān)鍵問(wèn)題:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”。詳細(xì)設(shè)計(jì)階段也稱為模塊設(shè)計(jì)階段,這個(gè)階段將詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。這個(gè)階段的任務(wù)還不是編寫(xiě)程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明。這種規(guī)格說(shuō)明的作用類似于其他領(lǐng)域中工程師經(jīng)常使用的工程藍(lán)圖,它們應(yīng)該包含必要的細(xì)節(jié),程序員可以根據(jù)它們寫(xiě)出實(shí)際的程序代碼。44.程序設(shè)計(jì)階段程序設(shè)計(jì)階段的關(guān)鍵任務(wù)是編寫(xiě)出正確的、容易理解的、容易維護(hù)的程序代碼。程序員根據(jù)目標(biāo)系統(tǒng)的性質(zhì)和實(shí)際環(huán)境,選取一種適當(dāng)?shù)母呒?jí)程序設(shè)計(jì)語(yǔ)言,把詳細(xì)設(shè)計(jì)階段的結(jié)果轉(zhuǎn)化成用計(jì)算機(jī)語(yǔ)言編寫(xiě)的程序,并且仔細(xì)測(cè)試編寫(xiě)出的每一個(gè)程序模塊。5.系統(tǒng)測(cè)試階段系統(tǒng)測(cè)試階段的關(guān)鍵任務(wù)是通過(guò)各種類型的測(cè)試以及相應(yīng)的調(diào)試使軟件系統(tǒng)達(dá)到規(guī)定的要求。最基本的測(cè)試是集成測(cè)試和驗(yàn)收測(cè)試。所謂集成測(cè)試是根據(jù)設(shè)計(jì)階段的軟件結(jié)構(gòu),把經(jīng)過(guò)單元測(cè)試檢驗(yàn)的模塊按某種選定的策略裝配起來(lái),在裝配過(guò)程中對(duì)程序進(jìn)行必要的測(cè)試。所謂驗(yàn)收測(cè)試則是按照需求規(guī)格說(shuō)明書(shū)的規(guī)定,由用戶對(duì)目標(biāo)系統(tǒng)進(jìn)行驗(yàn)收。必要時(shí)還可以再通過(guò)現(xiàn)場(chǎng)測(cè)試或平行運(yùn)行等方法對(duì)目標(biāo)系統(tǒng)做進(jìn)一步測(cè)試檢驗(yàn)。分析軟件測(cè)試的結(jié)果可以預(yù)測(cè)軟件的可靠性,反之,根據(jù)對(duì)軟件可靠性的要求,也可以決定測(cè)試和調(diào)試過(guò)程的結(jié)束時(shí)間。開(kāi)發(fā)者應(yīng)該使用正式的文檔資料把測(cè)試計(jì)劃、詳細(xì)測(cè)試方案以及實(shí)際測(cè)試結(jié)果保存下來(lái),作為軟件配置的一個(gè)組成部分。6.運(yùn)行維護(hù)階段系統(tǒng)投入運(yùn)行,開(kāi)發(fā)者需要對(duì)軟件進(jìn)行必要的修改和維護(hù)。系統(tǒng)維護(hù)的關(guān)鍵任務(wù)是通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久滿足用戶的需要。維護(hù)活動(dòng)通常有4類:改正性維護(hù),也就是診斷和改正軟件在使用過(guò)程中發(fā)現(xiàn)的錯(cuò)誤;適應(yīng)性維護(hù),即修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),即根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件,使它更完善;預(yù)防性維護(hù),即修改軟件以為將來(lái)的維護(hù)活動(dòng)做準(zhǔn)備。57.2軟件體系結(jié)構(gòu)的模型6軟件體系結(jié)構(gòu)(SoftwareArchitecture)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級(jí)抽象,由構(gòu)成系統(tǒng)的元素的描述、這些元素的相互作用、指導(dǎo)元素集成的模式以及這些模式的約束組成。軟件體系結(jié)構(gòu)不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),并且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原理。軟件體系結(jié)構(gòu)是項(xiàng)目相關(guān)人員進(jìn)行交流的手段,明確對(duì)系統(tǒng)實(shí)現(xiàn)的約束條件,決定開(kāi)發(fā)和維護(hù)組織的結(jié)構(gòu),制約系統(tǒng)的質(zhì)量屬性。軟件體系結(jié)構(gòu)使推理和控制更改更簡(jiǎn)單,有助于循序漸進(jìn)地進(jìn)行原型設(shè)計(jì),可以作為培訓(xùn)的基礎(chǔ)。軟件體系結(jié)構(gòu)是可傳遞和可復(fù)用的模型,通過(guò)研究軟件體系結(jié)構(gòu)可以預(yù)測(cè)軟件的質(zhì)量。設(shè)計(jì)軟件體系結(jié)構(gòu)的首要問(wèn)題是如何表示軟件體系結(jié)構(gòu),即如何對(duì)軟件體系結(jié)構(gòu)進(jìn)行建模。根據(jù)建模的側(cè)重點(diǎn)不同,可以將軟件體系結(jié)構(gòu)的模型分為5種,分別是結(jié)構(gòu)模型、框架模型、動(dòng)態(tài)模型、過(guò)程模型和功能模型。在這5種模型中,較常用的是結(jié)構(gòu)模型和動(dòng)態(tài)模型。71.結(jié)構(gòu)模型結(jié)構(gòu)模型是一個(gè)非常直觀、非常普遍的模型。這種模型以體系結(jié)構(gòu)的構(gòu)件、連接件和其他概念來(lái)刻畫(huà)結(jié)構(gòu),并力圖通過(guò)結(jié)構(gòu)來(lái)反映系統(tǒng)的重要語(yǔ)義內(nèi)容,包括系統(tǒng)的配置、約束、隱含的假設(shè)條件、風(fēng)格、性質(zhì)等。研究結(jié)構(gòu)模型的核心是體系結(jié)構(gòu)描述語(yǔ)言。2.框架模型框架模型與結(jié)構(gòu)模型類似,但它不太側(cè)重描述結(jié)構(gòu)的細(xì)節(jié)而更側(cè)重于整體的結(jié)構(gòu)??蚣苣P椭饕砸恍┨厥獾膯?wèn)題為目標(biāo)建立只針對(duì)和適應(yīng)該問(wèn)題的結(jié)構(gòu)。3.動(dòng)態(tài)模型動(dòng)態(tài)模型是對(duì)結(jié)構(gòu)模型或框架模型的補(bǔ)充,其研究系統(tǒng)的“大顆?!钡男袨樾再|(zhì),例如,描述系統(tǒng)的重新配置或演化。動(dòng)態(tài)可以指系統(tǒng)總體結(jié)構(gòu)的配置、建立或拆除通信通道或計(jì)算的過(guò)程。4.過(guò)程模型過(guò)程模型研究構(gòu)造系統(tǒng)的步驟和過(guò)程,因此,結(jié)構(gòu)是遵循某些過(guò)程腳本的結(jié)果。5.功能模型功能模型認(rèn)為體系結(jié)構(gòu)是由一組功能構(gòu)件按層次組成的,下層向上層提供服務(wù)。它可以看作一種特殊的框架模型。7.3軟件開(kāi)發(fā)模型8軟件開(kāi)發(fā)模型是指軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。軟件開(kāi)發(fā)模型能清晰、直觀地表達(dá)軟件開(kāi)發(fā)的全過(guò)程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),用來(lái)作為軟件項(xiàng)目工作的基礎(chǔ)。對(duì)于不同的軟件系統(tǒng),可以采用不同的開(kāi)發(fā)方法、使用不同的程序設(shè)計(jì)語(yǔ)言,允許各種不同技能的人員參與工作、運(yùn)用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境。軟件開(kāi)發(fā)模型的發(fā)展實(shí)際上體現(xiàn)了軟件工程理論的發(fā)展。在軟件開(kāi)發(fā)的早期,軟件開(kāi)發(fā)模型處于無(wú)序、混亂的狀態(tài)。有些人為了能夠控制軟件的開(kāi)發(fā)過(guò)程,就把軟件開(kāi)發(fā)嚴(yán)格地分為多個(gè)不同的階段,并在階段間加上嚴(yán)格的審查,這就是瀑布模型產(chǎn)生的起因。瀑布模型體現(xiàn)了人們對(duì)軟件開(kāi)發(fā)過(guò)程的一種希望:嚴(yán)格控制、確保質(zhì)量。但瀑布模型根本達(dá)不到這個(gè)過(guò)高的要求,因?yàn)檐浖_(kāi)發(fā)的過(guò)程往往難以預(yù)測(cè),反而導(dǎo)致了其他的負(fù)面影響,如大量的文檔、煩瑣的審批。因此人們開(kāi)始嘗試用其他的方法來(lái)改進(jìn)或替代瀑布模型,如把過(guò)程細(xì)分來(lái)增加過(guò)程的可預(yù)測(cè)性。典型的軟件開(kāi)發(fā)模型主要包括瀑布模型、快速原型模型、漸增式模型、噴泉模型、迭代模型、螺旋模型、混合模型等。91.瀑布模型瀑布模型在1970年由溫斯頓·羅伊斯(WinstonRoyce)提出,該模型是一種結(jié)構(gòu)化模型,其特征是:各階段的銜接順序猶如瀑布流水,自上而下、逐級(jí)下落。前一階段結(jié)束后才能開(kāi)始后一階段的工作,前一階段的輸出是后一階段的輸入。其缺點(diǎn)是:缺乏靈活性,不能適應(yīng)用戶需求的變化,最終得到的產(chǎn)品可能并不能滿足用戶需求。其適合于軟件需求比較明確或很少變化,并且開(kāi)發(fā)人員可以一次性獲取到全部需求的場(chǎng)合。在20世紀(jì)80年代之前,瀑布模型一直是被廣泛采用的軟件開(kāi)發(fā)模型,現(xiàn)在它仍然是軟件工程中應(yīng)用得非常廣泛的模型。傳統(tǒng)軟件工程方法學(xué)的軟件過(guò)程,基本上可以用瀑布模型來(lái)描述。圖7-2所示為傳統(tǒng)的瀑布模型。傳統(tǒng)的瀑布模型過(guò)于理想化了,事實(shí)上,程序員在工作過(guò)程中不可能不犯錯(cuò)誤。在設(shè)計(jì)階段可能發(fā)現(xiàn)規(guī)格說(shuō)明文檔中的錯(cuò)誤,而設(shè)計(jì)上的缺陷或錯(cuò)誤可能在實(shí)現(xiàn)過(guò)程中才顯現(xiàn)出來(lái),在綜合測(cè)試階段可能發(fā)現(xiàn)需求分析、設(shè)計(jì)或編碼階段的許多錯(cuò)誤。因此,實(shí)際的瀑布模型是帶“反饋環(huán)”的,如圖7-3所示(圖中實(shí)線箭頭表示開(kāi)發(fā)過(guò)程,虛線箭頭表示維護(hù)過(guò)程)。當(dāng)在后面階段發(fā)現(xiàn)前面階段的錯(cuò)誤時(shí),需要沿圖中左側(cè)的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再繼續(xù)完成后面階段的任務(wù)。10瀑布模型嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔,要求每個(gè)階段交出的所有產(chǎn)品必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證。圖7-2傳統(tǒng)的瀑布模型圖7-3實(shí)際的瀑布模型112.快速原型模型快速原型類似于工程上先制作“樣品”,用戶試用后做適當(dāng)改進(jìn),然后再批量生產(chǎn)。其優(yōu)點(diǎn)是用戶參與性強(qiáng),需求逐步明確??焖僭湍P偷牡谝徊绞墙ㄔ煲粋€(gè)快速原型以實(shí)現(xiàn)客戶或未來(lái)用戶與系統(tǒng)的交互,客戶或用戶對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開(kāi)發(fā)軟件的需求。通過(guò)逐步調(diào)整原型,使其滿足客戶的要求,開(kāi)發(fā)人員可以確定客戶的真正需求是什么。第二步則在第一步的基礎(chǔ)上開(kāi)發(fā)令客戶滿意的軟件產(chǎn)品??焖僭偷谋举|(zhì)是“快速”,開(kāi)發(fā)人員應(yīng)該盡可能快地構(gòu)建出原型系統(tǒng),以加速軟件開(kāi)發(fā)過(guò)程,節(jié)約軟件開(kāi)發(fā)成本。原型的用途是獲知用戶的真正需求,一旦需求確定了,原型將被拋棄。因此,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的是,必須迅速地構(gòu)建原型然后根據(jù)用戶意見(jiàn)迅速地修改原型。當(dāng)快速原型的某個(gè)部分是利用軟件工具由計(jì)算機(jī)自動(dòng)生成的時(shí)候,可以把這部分用到最終的軟件產(chǎn)品中。例如,用戶界面通常是快速原型的一個(gè)關(guān)鍵部分,當(dāng)使用屏幕生成程序和報(bào)表生成程序自動(dòng)生成用戶界面時(shí),實(shí)際上可以把得到的用戶界面用在最終的軟件產(chǎn)品中。快速原型模型適用于預(yù)先不能確切定義需求的軟件系統(tǒng),或需求多變的系統(tǒng)。3.漸增式模型漸增式模型也稱為增量式模型,它把軟件產(chǎn)品作為一系列增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試,在項(xiàng)目開(kāi)發(fā)過(guò)程中,以開(kāi)發(fā)一系列增量的方式來(lái)逐步開(kāi)發(fā)系統(tǒng)。增量模型在各個(gè)階段并不交付一個(gè)可運(yùn)行的完整產(chǎn)品,而是交付滿足客戶需求的一個(gè)可運(yùn)行的子集產(chǎn)品。整個(gè)產(chǎn)品被分解成若干個(gè)構(gòu)件,開(kāi)發(fā)人員逐個(gè)交付構(gòu)件,這樣做的好處是軟件開(kāi)發(fā)可以較好地適應(yīng)變化,客戶可以不斷地看到所開(kāi)發(fā)的軟件,從而降低開(kāi)發(fā)風(fēng)險(xiǎn)。12在使用增量模型時(shí),第一個(gè)增量往往是實(shí)現(xiàn)基本需求的核心產(chǎn)品。核心產(chǎn)品交付用戶使用后,經(jīng)過(guò)評(píng)價(jià)形成下一個(gè)增量的開(kāi)發(fā)計(jì)劃,這個(gè)開(kāi)發(fā)計(jì)劃包括對(duì)核心產(chǎn)品的修改和一些新功能的發(fā)布。這個(gè)過(guò)程在每個(gè)增量發(fā)布后不斷重復(fù),直到產(chǎn)生最終的完整產(chǎn)品。4.噴泉模型噴泉模型主要用于采用面向?qū)ο蠹夹g(shù)的軟件開(kāi)發(fā)項(xiàng)目,“噴泉”一詞本身就體現(xiàn)了迭代和無(wú)間隙的特征。無(wú)間隙指在各項(xiàng)活動(dòng)之間無(wú)明顯邊界,如分析、設(shè)計(jì)和編碼之間沒(méi)有明顯的界限。由于對(duì)象概念的引入,需求分析、設(shè)計(jì)、實(shí)現(xiàn)等活動(dòng)只用對(duì)象類和關(guān)系來(lái)表達(dá),因而可以較為容易地實(shí)現(xiàn)活動(dòng)的迭代和無(wú)間隙,并且使得開(kāi)發(fā)過(guò)程自然地包括復(fù)用。噴泉模型是一種以用戶需求為動(dòng)力,以對(duì)象為驅(qū)動(dòng)的模型,主要用于描述面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。該模型認(rèn)為軟件開(kāi)發(fā)過(guò)程自下而上的周期的各階段是相互重疊和多次反復(fù)的,就像水噴上去又可以落下來(lái),類似噴泉,故稱為噴泉模型。各個(gè)開(kāi)發(fā)階段沒(méi)有特定的次序要求,并且可以交互進(jìn)行,可以在某個(gè)開(kāi)發(fā)階段中隨時(shí)補(bǔ)充其他任何開(kāi)發(fā)階段中的遺漏。5.迭代模型迭代模型是統(tǒng)一軟件開(kāi)發(fā)過(guò)程(RationalUnifiedProcess,RUP)推薦的周期模型。在某種程度上,開(kāi)發(fā)迭代是一次完整地經(jīng)過(guò)所有工作流程的過(guò)程,至少包括需求工作流程、分析設(shè)計(jì)工作流程、實(shí)施工作流程和測(cè)試工作流程。實(shí)質(zhì)上,它類似小型的瀑布式項(xiàng)目。RUP認(rèn)為,所有的階段都可以被細(xì)分為迭代。每一次的迭代都會(huì)產(chǎn)生一個(gè)可以發(fā)布的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集。136.螺旋模型軟件開(kāi)發(fā)幾乎總要經(jīng)歷一定風(fēng)險(xiǎn),例如,產(chǎn)品交付給用戶之后用戶可能不滿意,到了預(yù)定的交付日期軟件可能還未開(kāi)發(fā)出來(lái),實(shí)際的開(kāi)發(fā)成本可能超過(guò)預(yù)算,在產(chǎn)品完成前一些關(guān)鍵的開(kāi)發(fā)人員可能“跳槽”了,產(chǎn)品投入市場(chǎng)之前競(jìng)爭(zhēng)對(duì)手發(fā)布了一個(gè)功能相近、價(jià)格更低的軟件等。軟件風(fēng)險(xiǎn)是軟件開(kāi)發(fā)項(xiàng)目中普遍存在的實(shí)際問(wèn)題,項(xiàng)目越大,軟件越復(fù)雜,承擔(dān)該項(xiàng)目的風(fēng)險(xiǎn)也越大。軟件風(fēng)險(xiǎn)可能在不同程度上損害軟件開(kāi)發(fā)過(guò)程和軟件產(chǎn)品質(zhì)量。因此,在軟件開(kāi)發(fā)過(guò)程中必須及時(shí)識(shí)別和分析風(fēng)險(xiǎn),并且采取適當(dāng)措施以消除或減少風(fēng)險(xiǎn)的危害。構(gòu)建原型是一種能使某些類型的風(fēng)險(xiǎn)降低的方法,為了降低交付給用戶的產(chǎn)品不能滿足用戶需求的風(fēng)險(xiǎn),一種行之有效的方法是在需求分析階段快速地構(gòu)建一個(gè)原型。螺旋模型的基本思想是,使用原型及其他方法來(lái)盡量降低風(fēng)險(xiǎn)。理解這種模型的一個(gè)簡(jiǎn)便方法是,把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原型模型。螺旋模型是一種側(cè)重風(fēng)險(xiǎn)分析的設(shè)計(jì)模型,它是迭代模型與快速原型模型的結(jié)合,在每個(gè)階段之前都增加了“風(fēng)險(xiǎn)分析”過(guò)程,形成迭代過(guò)程,直到系統(tǒng)完成。完整的螺旋模型如圖7-4所示,螺旋線每個(gè)周期對(duì)應(yīng)一個(gè)開(kāi)發(fā)階段。每個(gè)階段開(kāi)始時(shí)(左上象限)的任務(wù)是,確定該階段的目標(biāo)、為完成這些目標(biāo)選擇方案及設(shè)定這些方案的約束條件。接下來(lái)的任務(wù)是,從風(fēng)險(xiǎn)角度分析上一步的工作結(jié)果,努力排除各種潛在的風(fēng)險(xiǎn)(通常用構(gòu)建原型的方法來(lái)排除風(fēng)險(xiǎn))。如果風(fēng)險(xiǎn)不能排除,則停止開(kāi)發(fā)工作或大幅度地削減項(xiàng)目規(guī)模。如果成功地排除了所有風(fēng)險(xiǎn),則啟動(dòng)下一個(gè)開(kāi)發(fā)步驟(右下象限),這個(gè)步驟的工作過(guò)程相當(dāng)于純粹的瀑布模型。最后是評(píng)價(jià)該階段的工作成果并計(jì)劃下一個(gè)階段的工作。147.混合模型幾種不同模型組合成一種模型,并允許一個(gè)項(xiàng)目能沿著最有效的路徑發(fā)展,這就是混合模型(或過(guò)程開(kāi)發(fā)模型)。實(shí)際上,一些軟件開(kāi)發(fā)單位都是使用幾種不同的開(kāi)發(fā)模型組成自己的混合模型。每個(gè)軟件開(kāi)發(fā)組織應(yīng)該選擇適合該組織的軟件開(kāi)發(fā)模型,并且開(kāi)發(fā)模型應(yīng)該隨著當(dāng)前正在開(kāi)發(fā)的產(chǎn)品特性而變化,以減少所選模型的缺點(diǎn),充分利用其優(yōu)點(diǎn)。圖7-4完整的螺旋模型7.4軟件開(kāi)發(fā)方法15軟件開(kāi)發(fā)是一項(xiàng)復(fù)雜的系統(tǒng)工程,20世紀(jì)60年代爆發(fā)了軟件危機(jī),促使人們探討科學(xué)的軟件開(kāi)發(fā)方法。經(jīng)過(guò)長(zhǎng)期的開(kāi)發(fā)實(shí)踐,提出了許多軟件開(kāi)發(fā)方法,其中主要有生命周期法、原型法、結(jié)構(gòu)化方法、模塊化方法、面向?qū)ο蠓椒?、可視化方法等?.4.1生命周期法軟件開(kāi)發(fā)嚴(yán)格按系統(tǒng)調(diào)查與分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)調(diào)試、運(yùn)行維護(hù)和廢棄等階段進(jìn)行。這種方法要求系統(tǒng)說(shuō)明書(shū)應(yīng)準(zhǔn)確地表達(dá)用戶的要求,且在以后階段不會(huì)發(fā)生變化。生命周期法采用結(jié)構(gòu)化系統(tǒng)分析與設(shè)計(jì)的思想,其突出優(yōu)點(diǎn)是強(qiáng)調(diào)系統(tǒng)開(kāi)發(fā)過(guò)程的整體性和全局性,避免了開(kāi)發(fā)過(guò)程中的混亂狀態(tài)。其主要缺陷是開(kāi)發(fā)周期長(zhǎng),工作效率低,難以適應(yīng)新型開(kāi)發(fā)工具的發(fā)展,但其基本思想在其他開(kāi)發(fā)方法中仍然適用。7.4.2原型法開(kāi)發(fā)人員首先構(gòu)造系統(tǒng)初步模型,運(yùn)行這個(gè)模型并根據(jù)用戶的要求不斷修改、補(bǔ)充,直到取得讓用戶完全滿意的原型為止,最后實(shí)現(xiàn)系統(tǒng)。16原型法的主要優(yōu)點(diǎn)是開(kāi)發(fā)周期短、見(jiàn)效快,可以邊開(kāi)發(fā)邊使用,比較適用于管理體制和結(jié)構(gòu)不穩(wěn)定、需要經(jīng)常變化的環(huán)境。其缺點(diǎn)是初始原型設(shè)計(jì)比較困難,容易陷入軟件危機(jī),對(duì)于開(kāi)發(fā)大型、復(fù)雜的應(yīng)用系統(tǒng)時(shí)一般不宜采用。原型法比較適用于用戶需求不清、需求經(jīng)常變化的情況。當(dāng)系統(tǒng)規(guī)模不是很大也不太復(fù)雜時(shí),采用該方法比較好。7.4.3結(jié)構(gòu)化方法結(jié)構(gòu)化方法是一種面向數(shù)據(jù)流的開(kāi)發(fā)方法,總的指導(dǎo)思想是自頂向下、逐層分解,其基本思想是軟件功能的分解和抽象。它適用于解決數(shù)據(jù)處理領(lǐng)域的問(wèn)題,不適用于大規(guī)模的、特別復(fù)雜的項(xiàng)目,且難以適應(yīng)需求的變化。在結(jié)構(gòu)化方法中,利用數(shù)據(jù)流圖模型對(duì)系統(tǒng)進(jìn)行層層分解,將一個(gè)大的系統(tǒng)分解為多個(gè)程序模塊,數(shù)據(jù)流圖中需要存儲(chǔ)的信息通過(guò)E-R圖建立數(shù)據(jù)模型,其功能模型和數(shù)據(jù)模型是分離的,也就是說(shuō)在結(jié)構(gòu)化方法中,程序和數(shù)據(jù)是分離的。另外,程序的結(jié)構(gòu)要遵循每個(gè)程序模塊只有一個(gè)入口和一個(gè)出口,在程序模塊內(nèi)部只能采用順序、選擇、循環(huán)3種基本的控制結(jié)構(gòu)。7.4.4模塊化方法模塊化方法是一種軟件開(kāi)發(fā)方法,是指把一個(gè)待開(kāi)發(fā)的軟件分解成若干小的簡(jiǎn)單的部分,采用對(duì)復(fù)雜事物分而治之的經(jīng)典原則。模塊化方法涉及的主要問(wèn)題是模塊設(shè)計(jì)的規(guī)則,系統(tǒng)如何分解成模塊。每一模塊可獨(dú)立開(kāi)發(fā)、測(cè)試,最后組裝成整個(gè)軟件。對(duì)一個(gè)規(guī)約進(jìn)行分解,17以得到模塊系統(tǒng)結(jié)構(gòu)的方法有數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)法、功能分解法、數(shù)據(jù)流設(shè)計(jì)、面向?qū)ο蟮脑O(shè)計(jì)等。7.4.5面向?qū)ο蠓椒嫦驅(qū)ο蠓椒▽⒚嫦驅(qū)ο蟮乃枷霊?yīng)用于軟件開(kāi)發(fā)過(guò)程中,指導(dǎo)開(kāi)發(fā)活動(dòng),是建立在“對(duì)象”概念基礎(chǔ)上的方法。面向?qū)ο蠓椒ǖ谋举|(zhì)是主張參照人們認(rèn)識(shí)現(xiàn)實(shí)系統(tǒng)的方法,完成分析、設(shè)計(jì)與實(shí)現(xiàn)一個(gè)軟件系統(tǒng),提倡用人類在現(xiàn)實(shí)生活中常用的思維方法來(lái)認(rèn)識(shí)、理解、描述客觀事物,強(qiáng)調(diào)最終建立的系統(tǒng)能映射問(wèn)題域,使得系統(tǒng)中的對(duì)象,以及對(duì)象之間的關(guān)系能夠如實(shí)地反映問(wèn)題域中固有的事物及其關(guān)系。面向?qū)ο蠓椒ǖ幕舅枷胧牵嚎陀^事物都是由對(duì)象組成的,對(duì)象具有屬性和方法,屬性反映對(duì)象的特征,方法則是改變屬性的各種動(dòng)作;對(duì)象之間的聯(lián)系主要通過(guò)傳遞消息來(lái)實(shí)現(xiàn);對(duì)象可以按屬性歸為類,類有一定的結(jié)構(gòu),而且可以有子類,對(duì)象與類之間的層次關(guān)系是通過(guò)繼承來(lái)維持的。按照上述思想,面向?qū)ο蠓椒ǚ譃?個(gè)階段:系統(tǒng)調(diào)查和需求分析,解決系統(tǒng)干什么;面向?qū)ο蠓治觯R(shí)別出對(duì)象及其行為、結(jié)構(gòu)、屬性和方法,簡(jiǎn)稱OOA(Object-OrientedAnalysis),主要的分析和設(shè)計(jì)模型一般使用UML建模語(yǔ)言的用例圖、類圖等模型;面向?qū)ο笤O(shè)計(jì),對(duì)分析結(jié)果進(jìn)一步抽象、歸類和整理,最終以范式的形式確定下來(lái),18可視化方法就是指在可視開(kāi)發(fā)工具提供的圖形用戶界面上,通過(guò)操作界面元素,諸如菜單、按鈕、對(duì)話框、編輯框、單選框、復(fù)選框、列表框和滾動(dòng)條等,由可視開(kāi)發(fā)工具自動(dòng)生成應(yīng)用軟件。這類應(yīng)用軟件的工作方式是事件驅(qū)動(dòng),對(duì)每一事件,由系統(tǒng)產(chǎn)生相應(yīng)的消息,再將其傳遞給相應(yīng)的消息響應(yīng)函數(shù)。這些消息響應(yīng)函數(shù)是由可視開(kāi)發(fā)工具在生成軟件時(shí)自動(dòng)裝入的。7.4.6可視化方法簡(jiǎn)稱OOD(Object-OrientedDesign),一般使用UML的實(shí)現(xiàn)類圖、順序圖、部署圖等模型;面向?qū)ο缶幊?,利用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言編制應(yīng)用程序,簡(jiǎn)稱OOP(Object-OrientedProgramming)。面向?qū)ο蠓椒ú捎玫哪P椭饕腔赨ML建模語(yǔ)言的。UML從系統(tǒng)的不同角度出發(fā),定義了用例圖、類圖、對(duì)象圖、狀態(tài)圖、活動(dòng)圖、順序圖、協(xié)作圖、構(gòu)件圖、部署圖等9種圖。這些圖形模型從不同的側(cè)面對(duì)系統(tǒng)進(jìn)行描述。在實(shí)際分析和設(shè)計(jì)中,這9種圖形模型不一定全部用到,常用的圖形模型有用例圖、類圖、順序圖、部署圖等。面向?qū)ο蠓椒◤浹a(bǔ)了傳統(tǒng)結(jié)構(gòu)化方法中的許多缺陷,縮短了開(kāi)發(fā)周期,是軟件開(kāi)發(fā)技術(shù)的一次重大革命。但同原型法一樣,面向?qū)ο蠓椒ㄐ枰幸欢ǖ能浖С止ぞ卟拍軕?yīng)用。7.5軟件過(guò)程和項(xiàng)目管理19軟件過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。7.5.1軟件過(guò)程概括地說(shuō),軟件過(guò)程描述為了開(kāi)發(fā)出客戶需要的軟件,需要什么人(Who)、在什么時(shí)候(When)、做什么事(What)以及怎樣(How)做這些事以實(shí)現(xiàn)某一個(gè)特定的具體目標(biāo)。完成開(kāi)發(fā)任務(wù)必須進(jìn)行一些開(kāi)發(fā)活動(dòng),并且使用適當(dāng)?shù)馁Y源(例如,人員、時(shí)間、計(jì)算機(jī)硬件、軟件工具等),在過(guò)程結(jié)束時(shí)把輸入(例如,軟件需求)轉(zhuǎn)化為輸出(例如,軟件產(chǎn)品)。因此,ISO9000把軟件過(guò)程定義為“使用資源將輸入轉(zhuǎn)化為輸出的活動(dòng)所構(gòu)成的系統(tǒng)”。此處,“系統(tǒng)”的含義是廣義的:“系統(tǒng)是相互關(guān)聯(lián)或相互作用的一組要素”。軟件過(guò)程定義了運(yùn)用方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)變化需要采取的管理措施,以及標(biāo)志軟件開(kāi)發(fā)各個(gè)階段任務(wù)完成的里程碑。為獲得高質(zhì)量的軟件產(chǎn)品,軟件過(guò)程必須科學(xué)、有效。7.5.2軟件工程過(guò)程軟件工程過(guò)程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng),是建造高質(zhì)量軟件所需完成的任務(wù)的框架,即形成軟件產(chǎn)品的一系列步驟,包括中間產(chǎn)品、資源、角色及過(guò)程中采取的方法、工具等范疇。軟件過(guò)程主要針對(duì)軟件生產(chǎn)和管理進(jìn)行研究,為了獲得實(shí)現(xiàn)工程目標(biāo)的軟件,不僅涉及工程開(kāi)發(fā),而且涉及工程支持和工程管理。對(duì)于一個(gè)特定的項(xiàng)目,可以通過(guò)剪裁過(guò)程定義所需的活動(dòng)和任務(wù),使活動(dòng)并發(fā)執(zhí)行。與軟件有關(guān)的單位,根據(jù)需要和目標(biāo),可采用不同的過(guò)程、活動(dòng)和任務(wù)。軟件工程過(guò)程是指將軟件工程的方法和工具綜合起來(lái),以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開(kāi)發(fā)的目的。207.5.3項(xiàng)目管理項(xiàng)目管理是20世紀(jì)50年代后期發(fā)展起來(lái)的一種計(jì)劃管理方法。所謂項(xiàng)目管理,是指在一定資源(包括人力、設(shè)備、材料、經(jīng)費(fèi)、能源、時(shí)間等)約束條件下,運(yùn)用系統(tǒng)、科學(xué)的原理和方法對(duì)項(xiàng)目及其資源進(jìn)行計(jì)劃、組織和控制,旨在實(shí)現(xiàn)項(xiàng)目的既定目標(biāo)(包括質(zhì)量、速度、經(jīng)費(fèi))的管理方法體系。211.項(xiàng)目管理的必要性①?gòu)南到y(tǒng)的觀點(diǎn)進(jìn)行全局又切合實(shí)際的安排,使得預(yù)期的多目標(biāo)能達(dá)到最優(yōu)的結(jié)果。軟件系統(tǒng)是一個(gè)投資較大、建設(shè)周期較長(zhǎng)的系統(tǒng)工程,要重點(diǎn)考慮各分項(xiàng)目之間的關(guān)系與協(xié)調(diào)、眾多資源的調(diào)配與利用。在此基礎(chǔ)上制訂出切實(shí)可行的計(jì)劃,避免不必要的返工或重復(fù)勞動(dòng),也避免高估能力而導(dǎo)致計(jì)劃不能執(zhí)行。②為估計(jì)人力資源的需求提供依據(jù)。在項(xiàng)目的計(jì)劃安排中,對(duì)軟件的工作量做了估計(jì),包括需要什么級(jí)別的軟件開(kāi)發(fā)人員,系統(tǒng)的設(shè)計(jì)與編程的工作量等,還對(duì)硬件的安裝調(diào)試、對(duì)使用人員的配置都給出了詳細(xì)的要求,以便對(duì)系統(tǒng)建設(shè)需要的人力資源提出一個(gè)比較準(zhǔn)確的數(shù)字。同時(shí),可以通過(guò)計(jì)劃的執(zhí)行來(lái)考查各級(jí)人員的素質(zhì)及效率。③能通過(guò)計(jì)劃安排來(lái)進(jìn)行項(xiàng)目的控制。當(dāng)制訂了項(xiàng)目執(zhí)行的計(jì)劃日程表后,就可以定期檢查計(jì)劃的進(jìn)展情況,分析拖延或超前的原因,決定如何采取行動(dòng)或措施,使其回到計(jì)劃日程表上來(lái)。同時(shí),系統(tǒng)追蹤記錄各項(xiàng)目的運(yùn)行時(shí)間及費(fèi)用,并與預(yù)計(jì)的數(shù)字進(jìn)行比較,以便項(xiàng)目管理人員為下一步行動(dòng)做出決策。④提供準(zhǔn)確一致的文檔數(shù)據(jù)。項(xiàng)目管理要求事先整理好有關(guān)基礎(chǔ)數(shù)據(jù),使每個(gè)項(xiàng)目的建設(shè)者都能使用統(tǒng)一的文件及數(shù)據(jù)。同時(shí),在項(xiàng)目進(jìn)行過(guò)程中生成的各類數(shù)據(jù)又可以為大家所共享,保證項(xiàng)目建設(shè)者之間的工作協(xié)調(diào)有序。222.軟件項(xiàng)目的特點(diǎn)軟件系統(tǒng)的建設(shè)是一類項(xiàng)目,它具有項(xiàng)目的一般特點(diǎn),同時(shí)還具有自己獨(dú)有的特點(diǎn),可以用項(xiàng)目管理的思想和方法來(lái)指導(dǎo)軟件系統(tǒng)的建設(shè)。①軟件系統(tǒng)的目標(biāo)是不精確的,任務(wù)的邊界是模糊的,質(zhì)量要求更多是由項(xiàng)目團(tuán)隊(duì)來(lái)定義的。對(duì)于軟件系統(tǒng)的開(kāi)發(fā),許多客戶一開(kāi)始只有一些初步的功能要求,給不出明確的想法,提不出確切的要求。軟件系統(tǒng)項(xiàng)目的任務(wù)范圍很大程度上取決于項(xiàng)目組所做的系統(tǒng)規(guī)劃和需求分析。②軟件系統(tǒng)項(xiàng)目進(jìn)行過(guò)程中,客戶的需求會(huì)不斷被激發(fā),并不斷地被進(jìn)一步明確,導(dǎo)致項(xiàng)目的進(jìn)度、費(fèi)用等計(jì)劃不斷更改。客戶需求的每一次明確,系統(tǒng)的相關(guān)內(nèi)容就得隨之修改,而在修改的過(guò)程中可能產(chǎn)生新的問(wèn)題,并且這些問(wèn)題很可能過(guò)了相當(dāng)長(zhǎng)的時(shí)間以后才會(huì)被發(fā)現(xiàn)。因此,就要求項(xiàng)目經(jīng)理不斷監(jiān)控和調(diào)整項(xiàng)目計(jì)劃的執(zhí)行情況。③軟件系統(tǒng)是智力密集、勞動(dòng)密集型項(xiàng)目,受人力資源影響較大,項(xiàng)目成員的結(jié)構(gòu)、責(zé)任心、能力和穩(wěn)定性對(duì)軟件系統(tǒng)項(xiàng)目的質(zhì)量以及是否成功有決定性的影響。因而在軟件系統(tǒng)項(xiàng)目的管理過(guò)程中,要將人力放在與進(jìn)度、成本一樣高的地位來(lái)對(duì)待。233.項(xiàng)目管理的主要任務(wù)項(xiàng)目管理的主要任務(wù)有以下幾個(gè)。①明確總體目標(biāo)、制訂項(xiàng)目計(jì)劃,對(duì)開(kāi)發(fā)過(guò)程進(jìn)行組織管理,保證總體目標(biāo)的順利實(shí)現(xiàn)。②嚴(yán)格選拔和培訓(xùn)人員,合理組織開(kāi)發(fā)機(jī)構(gòu)和管理機(jī)構(gòu)。③編制和調(diào)整開(kāi)發(fā)計(jì)劃進(jìn)程表。④開(kāi)發(fā)經(jīng)費(fèi)的概算與控制。⑤組織項(xiàng)目復(fù)審和書(shū)面文件資料的復(fù)查與管理。⑥系統(tǒng)建成后運(yùn)行與維護(hù)過(guò)程的組織管理。7.6軟件測(cè)試247.6.1軟件測(cè)試的概念簡(jiǎn)單地說(shuō),軟件測(cè)試就是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。在IEEE所提出的軟件工程標(biāo)準(zhǔn)術(shù)語(yǔ)中,軟件測(cè)試的定義為“使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清楚預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。軟件測(cè)試與軟件質(zhì)量密切聯(lián)系在一起,軟件測(cè)試歸根到底是為了保證軟件質(zhì)量,軟件質(zhì)量是以“滿足需求”為基本衡量標(biāo)準(zhǔn)的。該定義明確提出了軟件測(cè)試以檢驗(yàn)軟件是否滿足需求為目標(biāo)。軟件測(cè)試的主要工作是驗(yàn)證(Verification)和確認(rèn)(Validation),驗(yàn)證是保證軟件正確實(shí)現(xiàn)特定功能的一系列活動(dòng),即保證軟件做了用戶所期望的事情;確認(rèn)是一系列的活動(dòng)和過(guò)程,其目的是證實(shí)在一個(gè)給定的外部環(huán)境中軟件的邏輯正確性。軟件測(cè)試的對(duì)象不僅有程序,還包括整個(gè)軟件開(kāi)發(fā)期間各個(gè)階段所產(chǎn)生的文檔。軟件測(cè)試是軟件質(zhì)量保證的主要手段之一,也是在將軟件交付給客戶之前所必須完成的步驟。目前,軟件的正確性證明尚未得到根本解決,軟件測(cè)試仍是發(fā)現(xiàn)軟件錯(cuò)誤和缺陷的主要手段。軟件測(cè)試的目的就是在軟件投入生產(chǎn)運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件產(chǎn)品(主要是指程序)中的錯(cuò)誤和缺陷。257.6.2軟件測(cè)試的目的和原則1.軟件測(cè)試的目的軟件測(cè)試的目的是保證軟件產(chǎn)品的最終質(zhì)量,在軟件開(kāi)發(fā)過(guò)程中,對(duì)軟件產(chǎn)品進(jìn)行質(zhì)量控制。測(cè)試可以完成許多事情,但最重要的是衡量正在開(kāi)發(fā)的軟件的質(zhì)量。對(duì)于軟件測(cè)試的目的,格倫福德·邁爾斯提出以下觀點(diǎn)。①軟件測(cè)試是一個(gè)為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。②軟件測(cè)試是為了證明程序有錯(cuò),而不是為了證明程序無(wú)錯(cuò)。③一個(gè)好的測(cè)試用例在于它能發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤。④一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。這些觀點(diǎn)提醒人們測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。首先,軟件測(cè)試不僅是為了找出錯(cuò)誤,也是為了對(duì)軟件質(zhì)量進(jìn)行度量和評(píng)估,以提高軟件的質(zhì)量。軟件測(cè)試是以評(píng)價(jià)一個(gè)程序或者系統(tǒng)屬性為目標(biāo)的活動(dòng),從而驗(yàn)證軟件的質(zhì)量滿足客戶的需求的程度,為客戶選擇與接受軟件提供有力的依據(jù)。通過(guò)分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布特征,可以幫助軟件項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過(guò)程的缺陷,以便改進(jìn)軟件過(guò)程。同時(shí),通過(guò)分析也能幫助項(xiàng)目管理者設(shè)計(jì)出有針對(duì)性的檢測(cè)方法,改善測(cè)試的有效性。其次,沒(méi)有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定測(cè)試質(zhì)量的一種方法。262.軟件測(cè)試的原則為了進(jìn)行有效的測(cè)試,測(cè)試人員需理解和遵循以下基本原則。①應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測(cè)試”作為軟件開(kāi)發(fā)者的座右銘。由于軟件系統(tǒng)的復(fù)雜性和抽象性,軟件開(kāi)發(fā)各個(gè)階段工作的多樣性,以及開(kāi)發(fā)過(guò)程中各種層次的人員之間工作的配合關(guān)系等因素,軟件開(kāi)發(fā)的每個(gè)環(huán)節(jié)都可能產(chǎn)生錯(cuò)誤。所以不應(yīng)把軟件測(cè)試僅僅看作軟件開(kāi)發(fā)的一個(gè)獨(dú)立階段,而應(yīng)當(dāng)使它貫穿軟件開(kāi)發(fā)的各個(gè)階段,堅(jiān)持在軟件開(kāi)發(fā)的各個(gè)階段進(jìn)行技術(shù)評(píng)審,這樣才能在開(kāi)發(fā)過(guò)程中盡早發(fā)現(xiàn)和預(yù)防錯(cuò)誤,杜絕某些隱患,提高軟件質(zhì)量。②程序員應(yīng)避免檢查自己編寫(xiě)的程序。人們常常由于各種原因而產(chǎn)生一些不愿意否定自己的心理,認(rèn)為揭露自己編寫(xiě)的程序中的問(wèn)題不是一件愉快的事情。這一心理狀態(tài)就成為測(cè)試自己編寫(xiě)的程序的障礙。另外,程序員對(duì)軟件規(guī)格說(shuō)明理解錯(cuò)誤而引入的錯(cuò)誤則更難發(fā)現(xiàn)。如果由別人來(lái)測(cè)試程序員編寫(xiě)的程序,可能會(huì)更客觀、更有效,并更容易取得成功。但要區(qū)分程序測(cè)試和程序調(diào)試,調(diào)試程序由程序員自己來(lái)做可能更有效。27③測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果兩部分組成。在進(jìn)行測(cè)試之前應(yīng)當(dāng)根據(jù)測(cè)試的要求選擇測(cè)試用例,測(cè)試用例不但需要測(cè)試性地輸入數(shù)據(jù),而且需要針對(duì)這些輸入數(shù)據(jù)輸出預(yù)期的結(jié)果。如果沒(méi)有對(duì)測(cè)試輸入數(shù)據(jù)給出預(yù)期的輸出結(jié)果,那么就缺少檢驗(yàn)實(shí)測(cè)結(jié)果的基準(zhǔn),就有可能把一個(gè)似是而非的錯(cuò)誤結(jié)果當(dāng)成正確結(jié)果。④在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。合理的輸入條件是指能驗(yàn)證程序正確性的輸入條件,而不合理的輸入條件是指異常的、臨界的、可能引起問(wèn)題變異的輸入條件。在測(cè)試程序時(shí),人們常常傾向于過(guò)多地考慮合法的和期望的輸入條件,以檢查程序是否做了它應(yīng)該做的事情,而忽視了不合法的和預(yù)想不到的輸入條件。事實(shí)上,軟件系統(tǒng)在投入運(yùn)行以后,用戶對(duì)其的使用往往不遵循事先的約定,使用了一些意外的輸入,如用戶在鍵盤(pán)上按錯(cuò)了鍵或輸入了非法的命令。如果軟件對(duì)這種異常情況不能做出適當(dāng)?shù)姆磻?yīng),給出相應(yīng)的信息,那么就容易產(chǎn)生故障,輕則輸出錯(cuò)誤的結(jié)果,重則導(dǎo)致軟件失效。因此,軟件系統(tǒng)處理非法命令的能力也必須在測(cè)試時(shí)受到檢驗(yàn)。用不合理的輸入條件測(cè)試程序時(shí),往往比用合理的輸入條件進(jìn)行測(cè)試更能發(fā)現(xiàn)錯(cuò)誤。28⑤充分注意軟件測(cè)試時(shí)的群集現(xiàn)象。測(cè)試時(shí)不要以為找到了幾個(gè)錯(cuò)誤就不需要繼續(xù)測(cè)試了。在所測(cè)試的程序中,若發(fā)現(xiàn)的錯(cuò)誤數(shù)目較多,則殘存的錯(cuò)誤數(shù)目也會(huì)比較多,這種錯(cuò)誤群集現(xiàn)象已被許多程序的測(cè)試實(shí)踐所證實(shí)。根據(jù)這一現(xiàn)象,應(yīng)當(dāng)對(duì)錯(cuò)誤群集的程序進(jìn)行重點(diǎn)測(cè)試,以提高測(cè)試效率。⑥嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。測(cè)試計(jì)劃的內(nèi)容要完整、描述要明確,并且不能被隨意更改。⑦應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查。有些錯(cuò)誤的征兆在輸出實(shí)測(cè)結(jié)果時(shí)已經(jīng)明顯地出現(xiàn)了,但是如果不仔細(xì)、全面地檢查測(cè)試結(jié)果,就會(huì)使這些錯(cuò)誤被遺漏掉。所以必須對(duì)預(yù)期的輸出結(jié)果明確定義,對(duì)實(shí)測(cè)的結(jié)果仔細(xì)分析、檢查,發(fā)現(xiàn)錯(cuò)誤。⑧妥善保存測(cè)試過(guò)程中產(chǎn)生的各種數(shù)據(jù)和文檔。對(duì)于測(cè)試過(guò)程中產(chǎn)生的測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和分析報(bào)告等數(shù)據(jù)和文檔應(yīng)妥善保存,為日后維護(hù)提供方便。⑨注意回歸測(cè)試的關(guān)聯(lián)性。對(duì)回歸測(cè)試的關(guān)聯(lián)性一定要充分注意,修改一個(gè)錯(cuò)誤而引起更多錯(cuò)誤出現(xiàn)的現(xiàn)象并不少見(jiàn)。297.6.3軟件測(cè)試流程軟件測(cè)試流程是指從軟件測(cè)試開(kāi)始到軟件測(cè)試結(jié)束所經(jīng)過(guò)的一系列準(zhǔn)備、執(zhí)行、分析的過(guò)程,一般可劃分為制訂測(cè)試計(jì)劃、設(shè)計(jì)測(cè)試用例和測(cè)試過(guò)程、實(shí)施軟件測(cè)試、評(píng)估與總結(jié)軟件測(cè)試等幾個(gè)主要階段。1.制訂測(cè)試計(jì)劃制訂測(cè)試計(jì)劃的主要目的是識(shí)別任務(wù)、分析風(fēng)險(xiǎn)、規(guī)劃資源和確定進(jìn)度。測(cè)試計(jì)劃一般由測(cè)試負(fù)責(zé)人或測(cè)試經(jīng)驗(yàn)豐富的專業(yè)人員制訂,其主要依據(jù)是項(xiàng)目開(kāi)發(fā)計(jì)劃和測(cè)試需求分析結(jié)果。測(cè)試計(jì)劃一般包括以下幾個(gè)方面。(1)軟件測(cè)試背景軟件測(cè)試背景主要包括軟件項(xiàng)目介紹、項(xiàng)目涉及人員等。(2)軟件測(cè)試依據(jù)軟件測(cè)試依據(jù)主要有軟件需求文檔、軟件規(guī)格說(shuō)明書(shū)、軟件設(shè)計(jì)文檔以及其他內(nèi)容等。(3)測(cè)試范圍的界定測(cè)試范圍的界定就是確定測(cè)試活動(dòng)需要覆蓋的范圍。確定測(cè)試范圍之前,需要分解測(cè)試任務(wù),分解任務(wù)有兩個(gè)方面的目的,一是識(shí)別子任務(wù),二是方便估算對(duì)測(cè)試資源的需求。30(4)測(cè)試風(fēng)險(xiǎn)的確定軟件項(xiàng)目中總是有不確定的因素,這些因素一旦出現(xiàn),對(duì)項(xiàng)目的順利執(zhí)行會(huì)產(chǎn)生很大的影響。所以在軟件項(xiàng)目中,首先需要識(shí)別出存在的風(fēng)險(xiǎn)。識(shí)別風(fēng)險(xiǎn)之后,需要對(duì)照風(fēng)險(xiǎn)制定規(guī)避風(fēng)險(xiǎn)的方法。(5)測(cè)試資源的確定確定完成任務(wù)需要消耗的人力資源和物質(zhì)資源,主要包括測(cè)試設(shè)備需求、測(cè)試人員需求、測(cè)試環(huán)境需求以及其他資源需求等。(6)測(cè)試策略的確定主要包括采取的測(cè)試方法、搭建的測(cè)試環(huán)境、采用的測(cè)試工具和管理工具以及對(duì)測(cè)試人員進(jìn)行的培訓(xùn)等。(7)制訂測(cè)試進(jìn)度表在識(shí)別出子任務(wù)和資源之后,可以將任務(wù)、資源和時(shí)間關(guān)聯(lián)起來(lái)形成測(cè)試進(jìn)度表。2.設(shè)計(jì)測(cè)試用例和測(cè)試過(guò)程測(cè)試用例是為特定目標(biāo)開(kāi)發(fā)的測(cè)試輸入、執(zhí)行條件和預(yù)期結(jié)果的集合,這些特定目標(biāo)可以是驗(yàn)證一個(gè)特定的程序路徑,或核實(shí)是否符合特定需求。31設(shè)計(jì)測(cè)試用例就是設(shè)計(jì)針對(duì)特定功能或組合功能的測(cè)試方案,并將其編寫(xiě)成文檔。測(cè)試的目的是暴露軟件中隱藏的缺陷,所以在設(shè)計(jì)測(cè)試用例時(shí)要考慮那些易于發(fā)現(xiàn)缺陷的測(cè)試用例和數(shù)據(jù),結(jié)合復(fù)雜的運(yùn)行環(huán)境,在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù),來(lái)檢查軟件是否都能產(chǎn)生正確的輸出。測(cè)試過(guò)程一般分成幾個(gè)階段:代碼審查、單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試等。盡管這些階段在實(shí)現(xiàn)細(xì)節(jié)方面都不相同,但其工作流程是一致的。設(shè)計(jì)測(cè)試過(guò)程就是確定測(cè)試的基本執(zhí)行過(guò)程,為測(cè)試的每個(gè)階段的工作建立一個(gè)基本框架。3.實(shí)施軟件測(cè)試實(shí)施測(cè)試包括測(cè)試準(zhǔn)備、建立測(cè)試環(huán)境、獲取測(cè)試數(shù)據(jù)、執(zhí)行測(cè)試等。(1)測(cè)試準(zhǔn)備和建立測(cè)試環(huán)境測(cè)試準(zhǔn)備主要包括全面、準(zhǔn)確地掌握各種測(cè)試資料,進(jìn)一步了解、熟悉測(cè)試軟件,配置測(cè)試的軟件、硬件環(huán)境,搭建測(cè)試平臺(tái),充分熟悉和掌握測(cè)試工具等。測(cè)試環(huán)境很重要,不同軟件產(chǎn)品對(duì)測(cè)試環(huán)境有著不同的要求,符合要求的測(cè)試環(huán)境能夠幫助我們準(zhǔn)確地測(cè)試出軟件存在的問(wèn)題,并且做出正確的判斷。測(cè)試環(huán)境的一個(gè)重要組成部分是軟件、硬件配置,只有在充分認(rèn)識(shí)測(cè)試對(duì)象的基礎(chǔ)上,才有可能知道每一種測(cè)試對(duì)象需要什么樣的軟件、硬件配置,才有可能配置出相對(duì)合理的測(cè)試環(huán)境。32(2)獲取測(cè)試數(shù)據(jù)獲取測(cè)試數(shù)據(jù)即使用測(cè)試事務(wù)創(chuàng)建有代表性的處理情形,創(chuàng)建測(cè)試數(shù)據(jù)的難點(diǎn)在于要確定使用哪些事務(wù)作為測(cè)試事務(wù)。需要測(cè)試的常見(jiàn)情形有正常事務(wù)的測(cè)試和使用無(wú)效數(shù)據(jù)的測(cè)試。(3)執(zhí)行測(cè)試執(zhí)行測(cè)試的步驟一般由輸入、執(zhí)行過(guò)程、檢查過(guò)程和輸出4個(gè)部分組成。測(cè)試執(zhí)行過(guò)程可以分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試等階段,其中每個(gè)階段還包括回歸測(cè)試等。從測(cè)試的角度而言,測(cè)試執(zhí)行包括量和度的問(wèn)題,即測(cè)試范圍和測(cè)試程序的問(wèn)題。例如,一個(gè)軟件版本需要測(cè)試哪些方面?每個(gè)方面要測(cè)試到什么程度?從管理的角度而言,在有限的時(shí)間內(nèi),在人員有限甚至短缺的情況下,要考慮如何分工,如何合理地利用資源來(lái)開(kāi)展測(cè)試。4.評(píng)估與總結(jié)軟件測(cè)試軟件測(cè)試的主要評(píng)估方法包括缺陷評(píng)估、測(cè)試覆蓋和質(zhì)量評(píng)測(cè)。質(zhì)量評(píng)測(cè)是對(duì)測(cè)試對(duì)象的可靠性、穩(wěn)定性以及性能的評(píng)測(cè),它建立在對(duì)測(cè)試結(jié)果的評(píng)估和對(duì)測(cè)試過(guò)程中確定的變更請(qǐng)求分析的基礎(chǔ)上。測(cè)試工作的每一個(gè)階段都應(yīng)該有相應(yīng)的測(cè)試總結(jié),測(cè)試軟件的每個(gè)版本也應(yīng)該有相應(yīng)的測(cè)試總結(jié)。當(dāng)軟件項(xiàng)目完成測(cè)試后,一般要對(duì)整個(gè)項(xiàng)目的測(cè)試工作進(jìn)行回顧總結(jié)。操作訓(xùn)練33【操作訓(xùn)練7-1】認(rèn)知軟件系統(tǒng)用戶登錄模塊的UML圖【操作訓(xùn)練7-2】對(duì)Windows操作系統(tǒng)自帶的計(jì)算器的功能和界面進(jìn)行測(cè)試34【操作訓(xùn)練7-1】認(rèn)知軟件系統(tǒng)用戶登錄模塊的UML圖用戶登錄界面的設(shè)計(jì)和用戶登錄模塊的編碼都屬于軟件開(kāi)發(fā)的實(shí)施階段,在系統(tǒng)實(shí)施之前還應(yīng)包括系統(tǒng)分析和設(shè)計(jì),在系統(tǒng)分析和設(shè)計(jì)階段通過(guò)建立軟件模塊來(lái)確定用戶需求和系統(tǒng)功能。與建房類似,施工之前必須先進(jìn)行繪圖設(shè)計(jì),設(shè)計(jì)階段主要繪制圖紙、建立模型,施工階段則根據(jù)事先設(shè)計(jì)好的圖紙進(jìn)行施工。開(kāi)發(fā)軟件系統(tǒng)也必須經(jīng)過(guò)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施等主要階段,在界面設(shè)計(jì)和編碼之前必須先建立軟件模塊。1.認(rèn)知用戶登錄模塊的用例圖軟件系統(tǒng)(如圖書(shū)管理系統(tǒng))的用戶登錄模塊的參與者通常是“用戶”,基本功能有兩個(gè):①輸入用戶名和密碼;②驗(yàn)證用戶身份。UML的用例圖用來(lái)描述系統(tǒng)的功能,并指出各功能的參與者,用戶登錄模塊的用例圖如圖7-5所示。在用戶登錄模塊的用例圖中,參與者“用戶”用人形圖標(biāo)表示,用例“輸入用戶名和密碼”和“驗(yàn)證用戶身份”用橢圓形圖標(biāo)表示,連線描述它們之間的關(guān)系。圖7-5用戶登錄模塊的用例圖352.認(rèn)知用戶登錄模塊的類圖用戶在“用戶登錄界面”輸入“用戶名”和“密碼”,然后通過(guò)單擊“確定”按鈕,觸發(fā)Click事件,執(zhí)行驗(yàn)證用戶身份的操作。在面向?qū)ο蟪绦蛟O(shè)計(jì)環(huán)境中,窗體也被定義為類,由于采用多層架構(gòu),在“業(yè)務(wù)處理層”調(diào)用相應(yīng)的類執(zhí)行業(yè)務(wù)處理,在“數(shù)據(jù)操作層”調(diào)用相應(yīng)的類執(zhí)行數(shù)據(jù)操作。在系統(tǒng)分析和設(shè)計(jì)階段使用UML的類圖定義系統(tǒng)的類以及類的屬性和操作。圖7-6所示為“登錄界面類”的類圖,圖7-7所示為“用戶登錄類”的類圖,圖7-8所示為“數(shù)據(jù)庫(kù)操作類”的類圖。圖7-6“登錄界面類”的類圖圖7-7“用戶登錄類”的類圖圖7-8“數(shù)據(jù)庫(kù)操作類”的類圖36UML使用有3個(gè)預(yù)定義分欄的圖標(biāo)表示類,從上至下3個(gè)分欄表示的內(nèi)容分別為類名稱、類的屬性和類的操作(操作的具體實(shí)現(xiàn)稱為方法),它們對(duì)應(yīng)著類的基本元素,如圖7-6至圖7-8所示。以“數(shù)據(jù)庫(kù)操作類”為例說(shuō)明類圖的組成,“數(shù)據(jù)庫(kù)操作類”即該類的類名,類名通常為一個(gè)名詞,“數(shù)據(jù)庫(kù)操作類”包含一個(gè)屬性“conn”,類的屬性描述了類在軟件系統(tǒng)中代表的事物(即對(duì)象)所具備的特性,這些特性是該類的所有對(duì)象共有的。一個(gè)對(duì)象可能有很多屬性,在系統(tǒng)建模時(shí),只抽取那些對(duì)系統(tǒng)有用的特性作為類的屬性,通過(guò)這些屬性可以識(shí)別該類的對(duì)象?!皵?shù)據(jù)庫(kù)操作類”包含7個(gè)方法,分別為openConn()、closeConn()、getData()、updateData()、insertData()、editData()和deleteData(),這些方法可以看作類的接口,通過(guò)這些接口可以實(shí)現(xiàn)內(nèi)、外信息的交互。3.認(rèn)知用戶登錄模塊的活動(dòng)圖UML的活動(dòng)圖描述為滿足用例要求所要進(jìn)行的活動(dòng),描述業(yè)務(wù)過(guò)程的工作流程中涉及的活動(dòng)。活動(dòng)圖由多個(gè)動(dòng)作組成,當(dāng)一個(gè)動(dòng)作完成后,動(dòng)作將會(huì)改變,轉(zhuǎn)移到一個(gè)新的動(dòng)作?;顒?dòng)圖可用于簡(jiǎn)化一個(gè)過(guò)程或操作的工作步驟,例如,軟件開(kāi)發(fā)公司可以使用活動(dòng)圖對(duì)一個(gè)軟件的開(kāi)發(fā)過(guò)程進(jìn)行建模,會(huì)計(jì)師事務(wù)所可以使用活動(dòng)圖對(duì)財(cái)務(wù)往來(lái)進(jìn)行建模,工業(yè)企業(yè)可以使用活動(dòng)圖對(duì)訂單批準(zhǔn)過(guò)程進(jìn)行建模。37用戶登錄模塊的活動(dòng)圖如圖7-9所示。該活動(dòng)圖描述的用戶登錄過(guò)程如下。①啟動(dòng)軟件系統(tǒng),顯示登錄界面。②用戶在登錄界面分別輸入“用戶名”和“密碼”。③用戶單擊“確定”按鈕,系統(tǒng)通過(guò)驗(yàn)證用戶輸入的“用戶名”和“密碼”的正確性,判斷用戶身份是否合法。④如果用戶身份合法,則成功登錄。如果用戶輸入的“用戶名”或者“密碼”有誤,則顯示提示信息,此時(shí)用戶可以單擊“取消”按鈕,退出登錄狀態(tài),也可以重新輸入“用戶名”和“密碼”,系統(tǒng)重新驗(yàn)證用戶的身份。圖7-9用戶登錄模塊的活動(dòng)圖38【操作訓(xùn)練7-2】對(duì)Windows操作系統(tǒng)自帶的計(jì)算器的功能和界面進(jìn)行測(cè)試對(duì)Windows操作系統(tǒng)自帶的計(jì)算器的功能實(shí)現(xiàn)情況和用戶界面進(jìn)行測(cè)試,檢驗(yàn)計(jì)算器的功能和界面是否符合規(guī)格說(shuō)明書(shū)。主要測(cè)試計(jì)算器的加、減、乘、除、平方根、倒數(shù)等數(shù)學(xué)運(yùn)算功能和用戶界面,但不測(cè)試計(jì)算器的科學(xué)計(jì)算、統(tǒng)計(jì)計(jì)算、數(shù)字分組功能。1.設(shè)計(jì)軟件測(cè)試用例(1)功能測(cè)試用例設(shè)計(jì)計(jì)算器的功能測(cè)試用例如表7-5所示。表7-5計(jì)算器的功能測(cè)試用例測(cè)試用例編號(hào)測(cè)試算式預(yù)期輸出測(cè)試用例編號(hào)測(cè)試算式預(yù)期輸出calcTest013+2-9-4calcTest065×20%1calcTest022×3+17calcTest073.75calcTest0312×0.25-0.62.4calcTest080÷120calcTest042.5÷0.25×10+6.2-2.3103.9calcTest0912÷0除數(shù)不能為零calcTest056×(-4)+8.3-7.9-23.6calcTest10無(wú)效輸入39(2)用戶界面測(cè)試用例設(shè)計(jì)目前的軟件廣泛使用圖形用戶界面,圖形用戶界面主要由窗口、下拉菜單、工具欄、各種按鈕、滾動(dòng)條、文本框、列表框等組成,這些都是一般圖形界面中具有代表性的控件。在對(duì)各控件進(jìn)行測(cè)試時(shí),主要對(duì)照規(guī)格說(shuō)明書(shū)和設(shè)計(jì)說(shuō)明書(shū)中對(duì)各控件的描述,來(lái)檢驗(yàn)控件能否完成規(guī)定的各項(xiàng)操作,以及各項(xiàng)功能是否能夠?qū)崿F(xiàn)。計(jì)算器的用戶界面測(cè)試用例如表7-6所示。表7-6計(jì)算器的用戶界面測(cè)試用例測(cè)試用例編號(hào)測(cè)試范圍測(cè)試用例預(yù)期輸出calcTest11窗口界面窗體大小、控件布局、前景與背景顏色合理calcTest12快速或慢速移動(dòng)窗體背景及窗體本身刷新正確calcTest13改變屏幕顯示分辨率顯示正常calcTest14菜單界面菜單功能齊全且能正確執(zhí)行calcTest15菜單的快捷命令方式合適calcTest16菜單文本的字體、字號(hào)和格式合適calcTest17菜單名稱具有自解釋性calcTest18菜單標(biāo)題簡(jiǎn)明、有意義calcTest19命令按鈕命令按鈕的標(biāo)識(shí)與操作響應(yīng)一致calcTest20單擊命令按鈕響應(yīng)操作正確calcTest21非法的運(yùn)算式給出對(duì)應(yīng)的提示信息calcTest22文本框顯示運(yùn)算結(jié)果與提示信息正確402.執(zhí)行軟件測(cè)試與分析測(cè)試結(jié)果(1)執(zhí)行功能測(cè)試Windows操作系統(tǒng)自帶的計(jì)算器的運(yùn)行外觀如圖7-10所示。圖7-10Windows操作系統(tǒng)自帶的計(jì)算器的運(yùn)行外觀41計(jì)算器功能測(cè)試的執(zhí)行過(guò)程如表7-7所示。表7-7計(jì)算器功能測(cè)試的執(zhí)行過(guò)程測(cè)試順序算式按鍵與測(cè)試過(guò)程實(shí)際輸出結(jié)果測(cè)試結(jié)論13+2-9依次按3、+、2、-、9、=-4正確22×3+1依次按2、×、3、+、1、=7正確312×0.25-0.6依次按1、2、×、0、.、2、5、-、0、.、6、=2.4正確42.5÷0.25×10+6.2-2.3依次按2、.、5、÷、0、.、2、5、×、1、0、+、6、.、2、-、2、.、3、=103.9正確56×(-4)+8.3-7.9依次按6、×、4、+/-、+、8、.、3、-、7、.、9、=-23.6正確65×20%依次按5、×、2、0、%、=1正確7依次按1、6、

、+、4、+/-、1/x、=3.75正確80÷12依次按0、÷、1、2、=0正確912÷0依次按1、2、÷、0、=除數(shù)不能為零正確10依次按2、5、+/-、

無(wú)效輸入正確42(2)執(zhí)行用戶界面測(cè)試計(jì)算器用戶界面的測(cè)試過(guò)程如表7-8所示。經(jīng)測(cè)試,Windows操作系統(tǒng)自帶計(jì)算器的功能和用戶界面符合需求規(guī)格說(shuō)明書(shū)和設(shè)計(jì)規(guī)格說(shuō)明書(shū)的要求。表7-8計(jì)算器用戶界面的測(cè)試過(guò)程測(cè)試順序測(cè)試范圍測(cè)試內(nèi)容測(cè)試方法測(cè)試結(jié)論1窗口界面窗體大小、控件布局、前景與背景顏色目測(cè)合格2快速或慢速移動(dòng)窗體移動(dòng)操作、目測(cè)合格3改變屏幕顯示分辨率操作、目測(cè)合格4菜單界面菜單功能操作、目測(cè)合格5菜單的快捷命令方式目測(cè)合格6菜單文本的字體、大小和格式目測(cè)合格7菜單名稱目測(cè)合格8菜單標(biāo)題目測(cè)合格9命令按鈕命令按鈕的標(biāo)識(shí)與操作響應(yīng)操作、目測(cè)合格10單擊命令按鈕響應(yīng)操作操作、目測(cè)合格11非法的運(yùn)算式操作、目測(cè)合格12文本框顯示運(yùn)算結(jié)果與提示信息操作、目測(cè)合格

43單元

8計(jì)算機(jī)信息系統(tǒng)安全基礎(chǔ)以云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能為代表的新興技術(shù)的快速發(fā)展,計(jì)算機(jī)安全風(fēng)險(xiǎn)全面泛化,復(fù)雜程度也在不斷加深。在加速企業(yè)數(shù)字化轉(zhuǎn)型進(jìn)程的同時(shí),計(jì)算機(jī)安全風(fēng)險(xiǎn)開(kāi)始出現(xiàn)在越來(lái)越多的場(chǎng)景之中。網(wǎng)絡(luò)安全問(wèn)題日趨嚴(yán)峻,各地發(fā)生多起重大網(wǎng)絡(luò)安全事件,既有公民信息遭泄露,也有多起因?yàn)樵庥隼账鬈浖舳黄韧9?、停產(chǎn)的事件。計(jì)算機(jī)安全中非常重要的是存儲(chǔ)數(shù)據(jù)的安全,其面臨的主要威脅包括計(jì)算機(jī)病毒、非法訪問(wèn)、計(jì)算機(jī)電磁輻射、硬件損壞等。針對(duì)表8-1中所列出的各項(xiàng)安全措施,你在日常生活、學(xué)習(xí)、工作中哪些已完全做到了,養(yǎng)成了良好習(xí)慣,請(qǐng)?jiān)凇叭粘P袨椤绷挟?huà)“√”。對(duì)于暫時(shí)還沒(méi)有做到的,今后應(yīng)努力做到。4444計(jì)算機(jī)安全基礎(chǔ)8.1計(jì)算機(jī)病毒及其防治8.28.38.48.58.68.7目錄反黑客技術(shù)基礎(chǔ)防火墻技術(shù)基礎(chǔ)入侵檢測(cè)技術(shù)基礎(chǔ)數(shù)據(jù)加密技術(shù)基礎(chǔ)安全認(rèn)證技術(shù)基礎(chǔ)45表8-1保證智能手機(jī)和網(wǎng)絡(luò)通信安全的措施場(chǎng)景類型安全措施日常行為安全使用智能手機(jī)①手機(jī)設(shè)置自動(dòng)鎖屏功能,避免手機(jī)被其他人惡意使用

②手機(jī)系統(tǒng)升級(jí)通過(guò)自帶的版本檢查功能聯(lián)網(wǎng)更新,不通過(guò)第三方網(wǎng)站下載系統(tǒng)更新包進(jìn)行更新

③盡可能通過(guò)手機(jī)自帶的應(yīng)用市場(chǎng)下載手機(jī)應(yīng)用程序

④為手機(jī)安裝殺毒軟件

⑤經(jīng)常為手機(jī)做數(shù)據(jù)同步備份

⑥手機(jī)中訪問(wèn)Web站點(diǎn)應(yīng)提高警惕

安全使用

電子郵件①為電子郵箱設(shè)置高強(qiáng)度密碼,并設(shè)置每次登錄時(shí)必須進(jìn)行用戶名和密碼驗(yàn)證

②開(kāi)啟防病毒軟件實(shí)時(shí)監(jiān)控,檢測(cè)收發(fā)的電子郵件是否帶有病毒

③定期檢查郵件自動(dòng)轉(zhuǎn)發(fā)功能是否關(guān)閉

④不轉(zhuǎn)發(fā)來(lái)歷不明的電子郵件及附件

⑤收到涉及敏感信息的郵件時(shí),對(duì)郵件內(nèi)容和發(fā)件人信息進(jìn)行反復(fù)確認(rèn),盡量進(jìn)行線下溝通

⑥不要隨意單擊不明郵件中的鏈接、圖片、文件

⑦使用電子郵件地址作為網(wǎng)站注冊(cè)的用戶名時(shí),應(yīng)設(shè)置與原郵件密碼不相同的網(wǎng)站密碼

⑧適當(dāng)設(shè)置找回密碼的提示問(wèn)題

⑨當(dāng)收到與個(gè)人信息和金錢相關(guān)(如中獎(jiǎng)、集資等)的郵件時(shí)要提高警惕

安全使用QQ、微博等賬號(hào)①賬號(hào)和密碼盡量不要相同,定期修改密碼,增加密碼的復(fù)雜度,不要直接用生日、電話號(hào)碼、證件號(hào)碼等有關(guān)個(gè)人信息的數(shù)字作為密碼

②密碼盡量由大小寫(xiě)字母、數(shù)字和其他字符混合組成,適當(dāng)增加密碼的長(zhǎng)度并經(jīng)常更換

③不同用途的網(wǎng)絡(luò)應(yīng)用,應(yīng)該設(shè)置不同的用戶名和密碼

④在網(wǎng)吧使用計(jì)算機(jī)前重啟機(jī)器,警惕輸入賬號(hào)密碼時(shí)被人偷看

⑤為防止賬號(hào)被監(jiān)聽(tīng),可先輸入部分賬號(hào)、部分密碼,然后輸入剩下的賬號(hào)、密碼

⑥涉及網(wǎng)絡(luò)交易時(shí),要注意通過(guò)電話與交易本人確認(rèn)

8.1計(jì)算機(jī)安全基礎(chǔ)隨著計(jì)算機(jī)信息系統(tǒng)功能的日益完善和速度的不斷提高,系統(tǒng)組成越來(lái)越復(fù)雜,系統(tǒng)規(guī)模越來(lái)越大,特別是互聯(lián)網(wǎng)的迅速發(fā)展,存取控制、邏輯連接數(shù)量不斷增加,軟件規(guī)模空前膨脹,各種隱含的缺陷、失誤都能造成巨大損失。必須不斷提高計(jì)算機(jī)安全意識(shí)和安全保障能力。468.1.1基本概念界定《中華人民共和國(guó)計(jì)算機(jī)信息系統(tǒng)安全保護(hù)條例》的第二條規(guī)定:本條例所稱的計(jì)算機(jī)信息系統(tǒng),是指由計(jì)算機(jī)及其相關(guān)的和配套的設(shè)備、設(shè)施(含網(wǎng)絡(luò))構(gòu)成的,按照一定的應(yīng)用目標(biāo)和規(guī)則對(duì)信息進(jìn)行采集、加工、存儲(chǔ)、傳輸、檢索等處理的人機(jī)系統(tǒng);第三條規(guī)定:計(jì)算機(jī)信息系統(tǒng)的安全保護(hù),應(yīng)當(dāng)保障計(jì)算機(jī)及其相關(guān)的和配套的設(shè)備、設(shè)施(含網(wǎng)絡(luò))的安全,運(yùn)行環(huán)境的安全,保障信息的安全,保障計(jì)算機(jī)功能的正常發(fā)揮,以維護(hù)計(jì)算機(jī)信息系統(tǒng)的安全運(yùn)行。該條例所涉及的計(jì)算機(jī)信息系統(tǒng)適用于本單元。1.計(jì)算機(jī)信息系統(tǒng)安全的基本范疇本單元涉及的計(jì)算機(jī)信息系統(tǒng)安全、計(jì)算機(jī)安全、計(jì)算機(jī)網(wǎng)絡(luò)安全和計(jì)算機(jī)信息安全的基本概念及基本范疇說(shuō)明如下。計(jì)算機(jī)信息系統(tǒng)安全工作的目的就是在法律、法規(guī)、政策的支持與指導(dǎo)下,通過(guò)采用合適的安全技術(shù)與安全管理措施,維護(hù)計(jì)算機(jī)信息系統(tǒng)安全。計(jì)算機(jī)信息系統(tǒng)安全主要涉及計(jì)算機(jī)單機(jī)安全、計(jì)算機(jī)信息安全和計(jì)算機(jī)網(wǎng)絡(luò)安全3個(gè)方面。①計(jì)算機(jī)單機(jī)安全(以下簡(jiǎn)稱為計(jì)算機(jī)安全)是計(jì)算機(jī)信息系統(tǒng)安全的重要環(huán)節(jié),主要是指管理和保護(hù)計(jì)算機(jī)信息系統(tǒng)的硬件部分,包括計(jì)算機(jī)本身的硬件和各種接口、各種相應(yīng)的外部設(shè)備、計(jì)算機(jī)網(wǎng)絡(luò)通信設(shè)備、線路和信道等,以保證在計(jì)算機(jī)單機(jī)環(huán)境下,硬件系統(tǒng)和軟件系統(tǒng)不受意外或惡意的破壞和損壞,得到物理上的保護(hù)。②計(jì)算機(jī)信息安全(以下簡(jiǎn)稱為信息安全)是指信息在傳輸、處理和存儲(chǔ)的過(guò)程中,沒(méi)有被非法或惡意地竊取、篡改和破壞。③計(jì)算機(jī)網(wǎng)絡(luò)安全(以下簡(jiǎn)稱為網(wǎng)絡(luò)安全)是指在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)環(huán)境下的安全,主要涵蓋兩個(gè)方面,一是信息系統(tǒng)自身即內(nèi)部網(wǎng)絡(luò)的安全,二是信息系統(tǒng)與外部網(wǎng)絡(luò)連接情況下的安全。網(wǎng)絡(luò)安全的概念比較寬泛,是指網(wǎng)絡(luò)系統(tǒng)的硬件、軟件及系統(tǒng)中的數(shù)據(jù)受到保護(hù),不因偶然或惡意的原因遭受到破壞、更改或泄露,系統(tǒng)連續(xù)、可靠、正常地運(yùn)行,保障網(wǎng)絡(luò)服務(wù)不中斷。網(wǎng)絡(luò)安全是我國(guó)國(guó)家安全的一項(xiàng)基本內(nèi)容。472.計(jì)算機(jī)安全概念I(lǐng)SO將計(jì)算機(jī)安全定義為“為數(shù)據(jù)處理系統(tǒng)建立和采取的技術(shù)和管理的安全保護(hù),保護(hù)計(jì)算機(jī)硬件、軟件和數(shù)據(jù)不因偶然和惡意的原因而遭到破壞、更改和泄露”。此概念偏重靜態(tài)信息保護(hù),因此通常將其視為“信息保護(hù)”的概念范疇。也有人將計(jì)算機(jī)安全定義為“計(jì)算機(jī)的硬件、軟件和數(shù)據(jù)受到保護(hù),不因偶然和惡意的原因而遭到破壞、更改和泄露,系統(tǒng)連續(xù)、正常運(yùn)行”。該定義著重于動(dòng)態(tài)信息描述,而且提出了用戶訪問(wèn)系統(tǒng)時(shí)系統(tǒng)的可用性要求,因此也將其視為“信息保障”的概念范疇。由于網(wǎng)絡(luò)技術(shù)的發(fā)展和進(jìn)步,當(dāng)今世界上很少有人使用未接入網(wǎng)絡(luò)、不與其他計(jì)算機(jī)相連接的計(jì)算機(jī)了。如何對(duì)連接在同一網(wǎng)絡(luò)中的多臺(tái)計(jì)算機(jī)以及它們之間的連接設(shè)備進(jìn)行保護(hù),屬于“網(wǎng)絡(luò)安全”的定義范圍。483.信息安全的概念從歷史角度來(lái)看,信息安全早于網(wǎng)絡(luò)安全。隨著信息化的深入,信息安全和網(wǎng)絡(luò)安全的內(nèi)涵不斷豐富,對(duì)網(wǎng)絡(luò)的發(fā)展提出了新的信息安全目標(biāo)和要求,網(wǎng)絡(luò)安全技術(shù)在此過(guò)程中也得到不斷創(chuàng)新和發(fā)展。隨著個(gè)人計(jì)算機(jī)和互聯(lián)網(wǎng)的普及,越來(lái)越多的公司依賴于使用互聯(lián)網(wǎng)經(jīng)營(yíng)其業(yè)務(wù),行政機(jī)構(gòu)和政府借助計(jì)算機(jī)存儲(chǔ)重要的信息和數(shù)據(jù),個(gè)人利用計(jì)算機(jī)與各式各樣的終端設(shè)備享受互聯(lián)網(wǎng)帶來(lái)的快捷和便利。但是,大量敏感的信息(大到維系公共安全的重要行政信息和軍事信息,小到個(gè)人隱私)不可避免地在互聯(lián)網(wǎng)上傳遞和存儲(chǔ);大量的資金通過(guò)網(wǎng)絡(luò)進(jìn)行流通,通過(guò)網(wǎng)上銀行進(jìn)行支付。對(duì)懷有惡意的計(jì)算機(jī)攻擊者來(lái)說(shuō),這些都是他們垂涎的目標(biāo)。如果對(duì)其沒(méi)有進(jìn)行適當(dāng)?shù)谋Wo(hù)以滿足其安全性的要求,那么個(gè)人、公司或各種組織將會(huì)面臨巨大的經(jīng)濟(jì)風(fēng)險(xiǎn)和信任風(fēng)險(xiǎn)。從技術(shù)角度看,信息安全是一個(gè)涉及計(jì)算機(jī)科學(xué)、網(wǎng)絡(luò)技術(shù)、通信技術(shù)、密碼技術(shù)、信息安全技術(shù)、應(yīng)用數(shù)學(xué)、數(shù)論、信息論等多種學(xué)科的邊緣性綜合學(xué)科。狹義上講,信息安全就是網(wǎng)絡(luò)系統(tǒng)上的信息安全,是指網(wǎng)絡(luò)系統(tǒng)的硬件、軟件和系統(tǒng)中的數(shù)據(jù)受到保護(hù),不因偶然的或者惡意的攻擊而遭到破壞、更改、泄露,系統(tǒng)連續(xù)、可靠、正常地運(yùn)行,網(wǎng)絡(luò)服務(wù)不中斷。廣義上講,信息安全是指信息在生產(chǎn)、傳輸、處理和存儲(chǔ)過(guò)程中不被泄露或破壞,防止信息資源被故意地或偶然地非授權(quán)泄露、更改、破壞或使信息被非法閱讀;確保信息的完整性、保密性、真實(shí)性、可用性和不可否認(rèn)性,并保證信息系統(tǒng)的可靠性和可控性;避免攻擊者利用系統(tǒng)的安全漏洞進(jìn)行竊聽(tīng)、冒充、詐騙等有損于合法用戶的行為。494.網(wǎng)絡(luò)安全的概念網(wǎng)絡(luò)安全(NetworkSecurity)不僅包括網(wǎng)絡(luò)信息的存儲(chǔ)安全,還涉及信息的產(chǎn)生、傳輸和使用過(guò)程中的安全。網(wǎng)絡(luò)安全的目的是確保經(jīng)過(guò)網(wǎng)絡(luò)廠商和交換的數(shù)據(jù)不會(huì)發(fā)生增加、修改、丟失和泄露等。網(wǎng)絡(luò)安全從其本質(zhì)上來(lái)講就是網(wǎng)絡(luò)上的信息安全。廣義上講,凡是涉及網(wǎng)絡(luò)上信息的保密性、完整性、可用性、真實(shí)性和可控性的相關(guān)技術(shù)和理論都是網(wǎng)絡(luò)安全的研究領(lǐng)域。所以廣義的網(wǎng)絡(luò)安全還包括信息設(shè)備的物理安全,如場(chǎng)地環(huán)境保護(hù)、防火措施、靜電防護(hù)、防水/防潮措施、電源保護(hù)、空調(diào)設(shè)備、計(jì)算機(jī)輻射等。網(wǎng)絡(luò)安全與信息安全有很多相似之處,兩者都對(duì)信息(數(shù)據(jù))的生產(chǎn)、傳輸、存儲(chǔ)和使用等過(guò)程有相同的基本要求,如可用性、保密性、完整性和不可否認(rèn)性等。但兩者又有區(qū)別,不論是狹義的網(wǎng)絡(luò)安全,還是廣義的網(wǎng)絡(luò)安全,都是信息安全的子集。505.計(jì)算機(jī)安全、網(wǎng)絡(luò)安全和信息安全三者的關(guān)系信息安全是計(jì)算機(jī)信息系統(tǒng)安全的核心問(wèn)題,計(jì)算機(jī)安全和網(wǎng)絡(luò)安全的實(shí)現(xiàn)都是為了確保數(shù)據(jù)在傳輸、處理和存儲(chǔ)全過(guò)程的安全、可靠。計(jì)算機(jī)安全和網(wǎng)絡(luò)安全是確保信息安全的重要條件和保證,信息安全貫穿于計(jì)算機(jī)安全和網(wǎng)絡(luò)安全的所有環(huán)節(jié)。計(jì)算機(jī)安全、網(wǎng)絡(luò)安全和信息安全三者之間是緊密聯(lián)系、不能割裂的。只有計(jì)算機(jī)安全、網(wǎng)絡(luò)安全和信息安全都得到切實(shí)的保障,才能保證計(jì)算機(jī)信息系統(tǒng)功能的發(fā)揮和目標(biāo)的實(shí)現(xiàn),真正起到為管理決策者提供信息和支持的作用??赡軓膹V義上來(lái)說(shuō)它們都可以用來(lái)表示安全這樣一個(gè)籠統(tǒng)的概念。但如果從狹義上理解,它們應(yīng)該是有區(qū)別的,區(qū)別在哪呢?計(jì)算機(jī)安全主要指單機(jī)(非網(wǎng)絡(luò)環(huán)境下)的安全,網(wǎng)絡(luò)安全主要考慮在網(wǎng)絡(luò)環(huán)境下的安全問(wèn)題,信息安全一般專指密碼學(xué),主要考慮信息的完整性、機(jī)密性、真實(shí)性等。516.信息安全與網(wǎng)絡(luò)安全的聯(lián)系與區(qū)別信息安全、網(wǎng)絡(luò)安全一直存在爭(zhēng)議,它們通常被認(rèn)為是一回事,導(dǎo)致它們?cè)诎踩I(lǐng)域容易被混淆。不過(guò)每天都有如此多的術(shù)語(yǔ)涌現(xiàn)和新技術(shù)出現(xiàn),信息安全和網(wǎng)絡(luò)安全的爭(zhēng)論也就不足為奇了。有人說(shuō),網(wǎng)絡(luò)安全是信息安全的一部分,因?yàn)樾畔踩粌H包括網(wǎng)絡(luò)安全,還包括電話、電報(bào)、傳真、衛(wèi)星、紙質(zhì)媒體的傳播等其他通信手段的安全。也有人說(shuō),從純技術(shù)的角度看,信息安全專業(yè)的主要研究?jī)?nèi)容為密碼學(xué),如各種加密算法、公共基礎(chǔ)設(shè)施、數(shù)字簽名、數(shù)字證書(shū)等,而這些只是保障網(wǎng)絡(luò)安全的手段之一。這些說(shuō)法是否準(zhǔn)確,可以從以下幾個(gè)方面來(lái)分析。(1)信息安全與網(wǎng)絡(luò)安全的關(guān)系廣義上,信息安全是一個(gè)包括信息本身安全(信息內(nèi)容安全)、信息載體安全(包括網(wǎng)絡(luò)安全)、信息程序安全,以及影響和危害信息安全的因素和信息安全保障、維護(hù)等在內(nèi)的內(nèi)容廣泛的安全問(wèn)題,信息安全包括網(wǎng)絡(luò)安全、操作系統(tǒng)安全、數(shù)據(jù)庫(kù)安全、硬件設(shè)備和設(shè)施安全、物理安全、人員安全、軟件開(kāi)發(fā)、應(yīng)用安全等。網(wǎng)絡(luò)安全只是一種信息載體安全,是信息安全的一種,也是信息安全的一個(gè)方面。當(dāng)然,在信息存儲(chǔ)和流動(dòng)越來(lái)越依賴網(wǎng)絡(luò)的今天,網(wǎng)絡(luò)安全不僅是信息安全的一個(gè)方面,而且是信息安全的一個(gè)非常重要的方面,同時(shí)也是信息本身安全的重要保障和條件。52(2)信息安全與網(wǎng)絡(luò)安全的概念區(qū)分廣義的信息安全是指信息在生產(chǎn)、傳輸、處理和存儲(chǔ)過(guò)程中不被泄露或破壞??梢赃@樣說(shuō),信息不一定存在于網(wǎng)絡(luò)空間中,因此一切都有可能造成信息被泄露、被篡改等,除了常見(jiàn)的網(wǎng)絡(luò)入侵竊密,還包括網(wǎng)絡(luò)之外的場(chǎng)景,如利用人性的弱點(diǎn)、間諜等造成的信息安全事件。網(wǎng)絡(luò)安全是指利用網(wǎng)絡(luò)管理控制和技術(shù)措施,保證在一個(gè)網(wǎng)絡(luò)環(huán)境里,數(shù)據(jù)的保密性、完整性及可用性等受到保護(hù)。(3)信息安全與網(wǎng)絡(luò)安全的性質(zhì)區(qū)分信息安全關(guān)注數(shù)據(jù)相關(guān)的安全,監(jiān)督未經(jīng)授權(quán)的訪問(wèn)、修改、刪除,保護(hù)數(shù)據(jù)免受任何威脅;網(wǎng)絡(luò)安全深入了解惡意軟件,預(yù)防數(shù)據(jù)丟失,做好恢復(fù)計(jì)劃,側(cè)重于計(jì)算機(jī)數(shù)據(jù)和信息的安全。網(wǎng)絡(luò)安全關(guān)注網(wǎng)絡(luò)環(huán)境下的計(jì)算機(jī)安全,更注重在網(wǎng)絡(luò)層面,例如,通過(guò)部署防火墻、入侵檢測(cè)等硬件設(shè)備來(lái)實(shí)現(xiàn)鏈路層面的安全防護(hù)。而信息安全的覆蓋面要比網(wǎng)絡(luò)安全的覆蓋面大得多,信息安全從數(shù)據(jù)的角度來(lái)看安全防護(hù),通常采用的手段包括部署防火墻、入侵檢測(cè)、審計(jì)、滲透測(cè)試、風(fēng)險(xiǎn)評(píng)估等,安全防護(hù)不僅是在網(wǎng)絡(luò)層面,而且更加關(guān)注的是應(yīng)用層面,可以說(shuō)信息安全更貼近于用戶的實(shí)際需求及想法。網(wǎng)絡(luò)安全主要涉及網(wǎng)絡(luò)安全域、防火墻、網(wǎng)絡(luò)訪問(wèn)控制、抗分布式拒絕服務(wù)(DistributedDenialofService,DDoS)等場(chǎng)景,更多指向整個(gè)網(wǎng)絡(luò)空間的環(huán)境。網(wǎng)絡(luò)信息和數(shù)據(jù)都可以存在于網(wǎng)絡(luò)空間之內(nèi),也可以在網(wǎng)絡(luò)空間之外?!皵?shù)據(jù)”可以看作“信息”的主要載體,信息則是對(duì)數(shù)據(jù)進(jìn)行有意義分析后得到的價(jià)值資產(chǎn),常見(jiàn)的信息安全事件有網(wǎng)絡(luò)入侵竊密、信息泄露和信息被篡改等。538.1.2計(jì)算機(jī)信息系統(tǒng)安全涉及的內(nèi)容計(jì)算機(jī)信息系統(tǒng)安全包括實(shí)體安全(硬件安全)、軟件安全、數(shù)據(jù)安全、運(yùn)行安全和管理安全等幾個(gè)部分。1.實(shí)體安全在計(jì)算機(jī)信息系統(tǒng)中,計(jì)算機(jī)及其相關(guān)的設(shè)備、設(shè)施(含網(wǎng)絡(luò))統(tǒng)稱為計(jì)算機(jī)信息系統(tǒng)的“實(shí)體”。實(shí)體安全是指保護(hù)計(jì)算機(jī)設(shè)備、設(shè)施(含網(wǎng)絡(luò))以及其他媒體免遭地震、火災(zāi)、水災(zāi)、雷電、噪聲、外界電磁干擾、電磁信息泄露、有害氣體和其他環(huán)境事故(如電磁污染等)破壞的措施。實(shí)體安全保證計(jì)算機(jī)信息系統(tǒng)硬件安全、可靠地運(yùn)行,確保它們?cè)趯?duì)信息進(jìn)行采集、處理、傳送和存儲(chǔ)的過(guò)程中,不會(huì)受到人為或者其他因素造成的危害。特別是避免由于電磁泄漏產(chǎn)生信息泄露,從而干擾他人或受他人干擾。實(shí)體安全包括環(huán)境安全、設(shè)備安全和媒體安全3個(gè)方面。計(jì)算機(jī)信息系統(tǒng)的實(shí)體安全是整個(gè)計(jì)算機(jī)信息系統(tǒng)安全的前提,因此,保證實(shí)體安全是十分重要的。對(duì)計(jì)算機(jī)信息系統(tǒng)實(shí)體的威脅和攻擊,不僅會(huì)造成國(guó)家財(cái)產(chǎn)的重大損失,而且會(huì)使信息系統(tǒng)的機(jī)密信息被嚴(yán)重泄露和破壞。因此,對(duì)計(jì)算機(jī)信息系統(tǒng)實(shí)體的保護(hù)是防止對(duì)信息進(jìn)行威脅和攻擊的首要一步,也是防止遭受威脅和攻擊的屏障。54實(shí)體安全是組織能夠較好實(shí)現(xiàn)計(jì)算機(jī)信息系統(tǒng)整體安全的基礎(chǔ),但是較高的實(shí)體安全基礎(chǔ)不能取代運(yùn)行安全和管理安全。例如,一臺(tái)昂貴的、具有良好安全性的服務(wù)器并不能防止因組織人員缺少責(zé)任心而導(dǎo)致的盜竊。2.軟件安全軟件安全首先是指使用的軟件(包括操作系統(tǒng)和應(yīng)用軟件)本身是正確、可靠的,即不但要確保它們?cè)谡5那闆r下運(yùn)行結(jié)果是正確的,而且也不會(huì)因某些偶然的失誤或特殊的條件而得到錯(cuò)誤的結(jié)果。軟件安全還指對(duì)軟件的保護(hù),即軟件應(yīng)當(dāng)具有防御非法使用、非法修改和非法復(fù)制的能力,例如,操作系統(tǒng)本身的用戶賬號(hào)、口令、文件、目錄存取權(quán)限的安全措施。3.?dāng)?shù)據(jù)安全數(shù)據(jù)安全是指防止數(shù)據(jù)資產(chǎn)被故意地或偶然地非法授權(quán)泄露、更改、破壞或信息被非法辨識(shí)、控制,確保數(shù)據(jù)的完整性、保密性、可靠性、可用性、可控性等,防止信息被非法修改、刪除、使用和竊取,保證信息使用完整、有效、合法。554.運(yùn)行安全運(yùn)行安全是計(jì)算機(jī)信息系統(tǒng)安全的重要環(huán)節(jié),因?yàn)橹挥杏?jì)算機(jī)信息系統(tǒng)運(yùn)行過(guò)程中的安全得到保證,才能完成對(duì)信息和數(shù)據(jù)的正確處理,達(dá)到發(fā)揮系統(tǒng)各項(xiàng)功能的目的。運(yùn)行安全指對(duì)運(yùn)行中的計(jì)算機(jī)信息系統(tǒng)的實(shí)體和數(shù)據(jù)進(jìn)行保護(hù),其目標(biāo)是保證系統(tǒng)能連續(xù)、正常地運(yùn)行,保護(hù)范圍包括計(jì)算機(jī)的軟件系統(tǒng)和硬件系統(tǒng)。為保障系統(tǒng)功能的安全實(shí)現(xiàn),運(yùn)行安全提供一套安全措施(如風(fēng)險(xiǎn)分析、審計(jì)跟蹤、備份與恢復(fù)、應(yīng)急等)來(lái)保護(hù)信息處理過(guò)程的安全。它側(cè)重于保證系統(tǒng)正常運(yùn)行,避免因?yàn)橄到y(tǒng)的崩潰和損壞而對(duì)系統(tǒng)存儲(chǔ)、處理和傳輸?shù)男畔⒃斐善茐暮蛽p失。運(yùn)行安全與實(shí)體安全和管理安全密不可分。運(yùn)行安全可以彌補(bǔ)實(shí)體安全的不足引起的缺陷。例如,一臺(tái)不具有安全密碼控制的主機(jī),可以借助制訂并實(shí)施密碼輪換計(jì)劃來(lái)提升其安全性,也可以根據(jù)已制定的管理?xiàng)l例向相關(guān)機(jī)構(gòu)申請(qǐng)更換或附加安全密碼控制功能。不過(guò),運(yùn)行安全的保障嚴(yán)重依賴于良好的管理安全。例如,若已經(jīng)制訂和實(shí)施了密碼輪換計(jì)劃(30天更新一次密碼,密碼必須是不低于8位的混合大寫(xiě)字母、小寫(xiě)字母和數(shù)字的字符串),但是相關(guān)操作人員未在規(guī)定更改期間按照要求進(jìn)行密碼修改操作,則這種密碼輪換計(jì)劃并不能提升安全性。565.管理安全管理安全和安全政策為整個(gè)組織的安全提供了最高級(jí)別的指導(dǎo)、規(guī)則和程序?qū)嵤┑陌踩h(huán)境。信息安全方面的專業(yè)人員可以向管理層提供有效的政策或相關(guān)建議,并需要得到管理層充分的支持。一個(gè)得不到管理層支持的安全人員不可能有效地實(shí)施任何安全措施。安全政策應(yīng)用于整個(gè)組織而非組織內(nèi)某一個(gè)或特定的層級(jí)。組織管理層應(yīng)將管理安全定位在組織文化或組織人力資源戰(zhàn)略相同的重要地位。管理安全是組織安全中最高級(jí)也是最重要的一環(huán)?,F(xiàn)實(shí)情況是大多數(shù)公司成員能夠說(shuō)出他們有多少假期或收入情況,但是不能說(shuō)出公司哪些信息能夠公開(kāi),哪些必須保證不被泄露。管理安全需要持續(xù)不斷、自上而下地加強(qiáng),包括所有組織成員的教育和培訓(xùn)。所有計(jì)算機(jī)管理和操作人員必須經(jīng)過(guò)專業(yè)技術(shù)培訓(xùn),熟練掌握計(jì)算機(jī)安全操作技能,熟知計(jì)算機(jī)安全相關(guān)的法律知識(shí),不斷增強(qiáng)計(jì)算機(jī)使用人員的安全意識(shí)、法律意識(shí)、安全技能,以確保計(jì)算機(jī)信息系統(tǒng)的正常運(yùn)行,增強(qiáng)信息系統(tǒng)的技術(shù)防范能力,保障信息系統(tǒng)安全。578.1.3計(jì)算機(jī)信息系統(tǒng)安全面臨的主要潛在威脅隨著科學(xué)技術(shù)的迅猛發(fā)展,威脅計(jì)算機(jī)信息系統(tǒng)安全的因素層出不窮。目前發(fā)現(xiàn)的主要風(fēng)險(xiǎn)如下。(1)數(shù)據(jù)傳輸中的鏈路風(fēng)險(xiǎn)數(shù)據(jù)在傳輸過(guò)程中很難保證不被非法竊取、篡改。入侵者在傳輸線路上安裝竊聽(tīng)裝置,監(jiān)視網(wǎng)絡(luò)數(shù)據(jù)流動(dòng),截取敏感信息造成泄密,或者通過(guò)篡改破壞數(shù)據(jù)的完整性。(2)網(wǎng)絡(luò)體系的安全風(fēng)險(xiǎn)入侵者通過(guò)探測(cè)、掃描網(wǎng)絡(luò)及操作系統(tǒng)存在的安全漏洞,利用相應(yīng)攻擊手段對(duì)網(wǎng)絡(luò)發(fā)起攻擊。(3)系統(tǒng)的安全風(fēng)險(xiǎn)當(dāng)前操作系統(tǒng)與應(yīng)用系統(tǒng)都存在許多安全漏洞,有巨大的安全隱患。(4)應(yīng)用的安全風(fēng)險(xiǎn)網(wǎng)絡(luò)系統(tǒng)的目的是實(shí)現(xiàn)資源的共享,在進(jìn)行資源共享時(shí)可能會(huì)造成重要信息的泄露。(5)管理的安全風(fēng)險(xiǎn)系統(tǒng)管理是計(jì)算機(jī)信息系統(tǒng)中信息安全的重要組成部分,是防止網(wǎng)絡(luò)攻擊的重要部分。缺乏有效的管理措施如身份認(rèn)證、權(quán)限認(rèn)證等,勢(shì)必引發(fā)安全風(fēng)險(xiǎn)。58對(duì)計(jì)算機(jī)信息系統(tǒng)安全的威脅大致可以分為以下類型。1.自然災(zāi)害計(jì)算機(jī)信息系統(tǒng)僅僅是一個(gè)智能的機(jī)器,易受火災(zāi)、水災(zāi)、風(fēng)暴、地震等自然災(zāi)害的破壞以及環(huán)境(溫度、濕度、振動(dòng)、沖擊、污染等)的影響。2.惡意軟件惡意軟件(Malware)由“惡意”(Malicious)和“軟件”(Software)這兩個(gè)詞合并而來(lái),是一個(gè)通用術(shù)語(yǔ),是一種對(duì)計(jì)算機(jī)有害的程序或文件。常見(jiàn)的惡意軟件類型有計(jì)算機(jī)病毒(ComputerVirus)、計(jì)算機(jī)蠕蟲(chóng)(ComputerWorms)、廣告軟件(Adware)、特洛伊木馬(TrojanHorse)、間諜軟件(Spyware)、勒索軟件(Ransomware)等。惡意軟件的目標(biāo)是破壞設(shè)備的正常運(yùn)行。這種破壞的范圍很廣,如未經(jīng)許可在設(shè)備上顯示廣告,或者獲得計(jì)算機(jī)root訪問(wèn)權(quán)限。惡意軟件可能試圖向用戶進(jìn)行自我掩飾,從而暗自收集用戶敏感信息,或刪除、修改文件,或者可能鎖定系統(tǒng)和截留數(shù)據(jù)以進(jìn)行勒索。在DDoS攻擊中,Mirai等惡意軟件會(huì)感染易受攻擊的設(shè)備,在攻擊者的控制下將其轉(zhuǎn)變?yōu)闄C(jī)器人。遭到篡改后,這些設(shè)備便可作為“僵尸網(wǎng)絡(luò)”的一部分用于進(jìn)行DDoS攻擊。59惡意軟件在于它是故意為惡的,任何無(wú)意間造成損害的軟件均不被視為惡意軟件。(1)計(jì)算機(jī)病毒(2)計(jì)算機(jī)蠕蟲(chóng)(3)廣告軟件(4)特洛伊木馬(5)間諜軟件(6)勒索軟件3.系統(tǒng)漏洞系統(tǒng)漏洞是指應(yīng)用軟件或操作系統(tǒng)在邏輯設(shè)計(jì)上的缺陷或錯(cuò)誤。不同的軟件、硬件設(shè)備和不同版本的系統(tǒng)都存在系統(tǒng)漏洞,容易被不法分子通過(guò)病毒進(jìn)行控制,從而竊取用戶的重要資料。不管是計(jì)算機(jī)操作系統(tǒng)、手機(jī)系統(tǒng),還是應(yīng)用軟件,都容易因?yàn)槁┒磫?wèn)題遭受攻擊,因此,建議用戶使用最新版本的應(yīng)用程序,并及時(shí)更新應(yīng)用商提供的漏洞補(bǔ)丁。604.非法侵入計(jì)算機(jī)信息系統(tǒng)所謂“侵入”,是指非法用戶利用技術(shù)手段或者其他手段突破或者繞過(guò)計(jì)算機(jī)信息系統(tǒng)的安全保衛(wèi)機(jī)制“訪問(wèn)”計(jì)算機(jī)信息系統(tǒng)的行為。也就是指未經(jīng)允許,釆取各種手段,突破、穿越、繞過(guò)或解除特定計(jì)算機(jī)信息系統(tǒng)的安全防護(hù)體系,擅自進(jìn)入該系統(tǒng)窺視、偷覽信息資源的行為。這里,從用戶的身份特征和訪問(wèn)權(quán)限來(lái)看,非法侵入行為可以分為兩類:一是非法用戶侵入計(jì)算機(jī)信息系統(tǒng),即無(wú)權(quán)訪問(wèn)特定信息系統(tǒng)者非法侵入該信息系統(tǒng);二是合法用戶的越權(quán)訪問(wèn),即行為人對(duì)特定信息系統(tǒng)有一定的訪問(wèn)權(quán)限和合法賬號(hào),但未經(jīng)授權(quán)對(duì)無(wú)權(quán)訪問(wèn)的系統(tǒng)資源進(jìn)行訪問(wèn)的行為。非法侵入的行為方式多種多樣,如非法用戶、冒充合法用戶,利用計(jì)算機(jī)技術(shù)進(jìn)行技術(shù)攻擊,通過(guò)“后門(mén)”“陷阱門(mén)”進(jìn)行非法入侵,利用安全漏洞等。非法侵入計(jì)算機(jī)信息系統(tǒng)罪是針對(duì)入侵者違反國(guó)家關(guān)于計(jì)算機(jī)信息系統(tǒng)管理的各項(xiàng)法律、法規(guī),不具有合法身份或者條件而未經(jīng)授權(quán)地擅自侵入計(jì)算機(jī)信息系統(tǒng)的行為的罪名。目前我國(guó)關(guān)于計(jì)算機(jī)信息系統(tǒng)管理方面的法律、法規(guī)主要有《中華人民共和國(guó)計(jì)算機(jī)信息系統(tǒng)安全保護(hù)條例》《中華人民共和國(guó)計(jì)算機(jī)信息網(wǎng)絡(luò)國(guó)際聯(lián)網(wǎng)管理暫行規(guī)定》《中國(guó)公用計(jì)算機(jī)互聯(lián)網(wǎng)國(guó)際聯(lián)網(wǎng)管理辦法》《計(jì)算機(jī)信息網(wǎng)絡(luò)國(guó)際聯(lián)網(wǎng)安全保

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論