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

下載本文檔

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

文檔簡介

1單元

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

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

43單元

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

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

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

④為手機安裝殺毒軟件

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

⑥手機中訪問Web站點應(yīng)提高警惕

安全使用

電子郵件①為電子郵箱設(shè)置高強度密碼,并設(shè)置每次登錄時必須進行用戶名和密碼驗證

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

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

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

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

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

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

⑧適當設(shè)置找回密碼的提示問題

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論