軟件工程基本概念_第1頁
軟件工程基本概念_第2頁
軟件工程基本概念_第3頁
軟件工程基本概念_第4頁
軟件工程基本概念_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程基本概念軟件指的是計算機系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和相關的文檔。(1)軟件是邏輯產品,而不是物理實體,它具有無形性,通過計算機的執(zhí)行才能體現(xiàn)它的功能和作(2)沒有明顯的制作過程,其成本主要體現(xiàn)在軟件的開發(fā)和研制上,可進行大量的復制;結合應用觀點,軟件可分應用軟件、系統(tǒng)軟件和支撐軟件3類。(2)系統(tǒng)中最靠近硬件的一層,是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟件;(3)支撐軟件介于系統(tǒng)軟件和應用軟件之間,是支援其他軟件的開發(fā)與維護的軟件。系統(tǒng)結構設計的軟件是用戶與硬件之間的接口,是計算機系統(tǒng)的指揮者,是計算機系統(tǒng)結構設計的隨著計算機軟件規(guī)模的擴大,軟件本身的復雜性不斷增加,研制周期顯著變長,正確性難以保證,軟件開發(fā)費用上漲,生產效率急劇下降,從而出現(xiàn)了人們難以控制軟件發(fā)展的局面,即所謂的“軟件危(6)軟件開發(fā)生產效率的提高趕不上硬件的發(fā)展和總之,可以將軟件危機歸結為成本、質量和生產率等問題。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管IS09000定義:軟件工程過程是把輸入轉化為輸出的一組彼此相關的資源和活動軟件工程過程軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。在國家標準“計算機軟件開發(fā)規(guī)范”中,把軟件生命周期劃分為三個階段、八個子階段,即定義維護階段(使用與維護),對每個階段,都明確規(guī)定了該階段的任務、實施方法、實施步驟其中特別規(guī)定了每個階段需要產生的文檔。軟件工程的目標是,在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性巨滿足用戶需求的產品。軟件工程研究的內容主要包括:軟件開發(fā)技術和軟件工程管理。(1)軟件開發(fā)技術。軟件開發(fā)技術包括:軟件開發(fā)方法學、開發(fā)過程、開發(fā)工具和(2)軟件工程管理包括軟件管理學、軟件工程經(jīng)濟學、軟件心理學等內容。(1)抽象。抽象事物最基本的特性和行為,忽略非本質細節(jié),采用分層次抽象,自頂向下,逐層細(2)信息隱蔽。采用封裝技術,將程序模塊的實現(xiàn)細節(jié)隱藏起來,使模塊接口盡量簡單大小要適中,模塊過大會使模塊內部的復雜性增加,不利于模塊的理解和修改,也不利于模塊的調試和重用;模塊太小會導致整個系統(tǒng)表示過于復雜,不利于控制系統(tǒng)的復雜性。(4)局部化。要求在一個物理模塊內集中邏輯上相互關聯(lián)的計算資源,保證模塊間具有松散的耦合關系,模塊內部有較強的內聚性,這有助于控制系統(tǒng)的復雜性。(5)確定性。軟件開發(fā)過程中所有概念的表達應是確定的、無歧義的且規(guī)范的這有助于入與入的交互,不會產生誤解和遺漏,以保證整個開發(fā)工作的協(xié)調一致。(6)一致性包括程序、數(shù)據(jù)和文檔的整個軟件系統(tǒng)的各模塊應使用已知的概念、符號和術語;程序內外部接口應保持一致,系統(tǒng)規(guī)格說明與系統(tǒng)行為應保持一致。(8)可驗證性。開發(fā)大型軟件系統(tǒng)需要對系統(tǒng)自頂向下,逐層分解。系統(tǒng)分解應遵循容易檢查、(1)軟件開發(fā)工具。是協(xié)助開發(fā)入員進行軟件開發(fā)活動所使用的軟件或環(huán)境,它包括(2)軟件開發(fā)環(huán)境。是指支持軟件產品開發(fā)的軟件系統(tǒng),它由軟件工具集和環(huán)境集成機制構成。工具集包括支持軟件開發(fā)相關過程、活動、任務的軟件工具,以便對軟件開發(fā)提供全面的支持。環(huán)境集成可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。分析系統(tǒng)的估算開發(fā)成本是否會超過項目預期的全部利潤。分析系統(tǒng)開發(fā)對其他產品或利潤的影根據(jù)客戶提出的系統(tǒng)功能、性能及現(xiàn)實系統(tǒng)的各項約束條件,從技術角度研究實現(xiàn)系統(tǒng)可行性。研究在系統(tǒng)開發(fā)過程中可能涉及的各種合同、侵權、責任以及同法律相抵觸的問題。提出并評價實現(xiàn)系統(tǒng)的各種開發(fā)方案,并從中選出一種最適宜項目的開發(fā)方案。軟件需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求的過程。①用戶解決問題或達到目標所需的條件或權能;③一種反映①或②所描述的條件或權能的文檔說明。(1)結構化分析方法。主要包括面向數(shù)據(jù)流的結構化分析方法、面向數(shù)據(jù)結構Jackson方法和面向數(shù)據(jù)結構的結構化數(shù)據(jù)系統(tǒng)開發(fā)方法(2)面向對象的分析方法。從需求分析建立的模型的特點來分,需求分析方法又分為結構化分析方法是結構化程序設計理論在軟件需求分析階段的運用。結構化分析方法(StructureAnalysis,簡稱SA)是面向數(shù)據(jù)流進行需求逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。數(shù)據(jù)流圖即DFD圖,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,它只反映系統(tǒng)必須完成的邏輯功能,所以是一種功能模型。見表3-1。*13xr幣耀展錄嘉統(tǒng)利硼m按n數(shù)據(jù)字典是結構化分析方法的核心。數(shù)據(jù)字典是對所有與系統(tǒng)相關的數(shù)據(jù)元素的一個有組織的列在數(shù)據(jù)字典的編制過程中,常使用定義式描述數(shù)據(jù)結構,見表3-2林18可選二即插號中的項可!a沒有軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。(1)軟件需求規(guī)格說明書有以下幾個方面的作用②反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù);③作為確認測試和驗收的依據(jù)。(3)軟件需求規(guī)格說明書有以下幾個方面的特點。軟件設計是軟件工程的重要階段,是一個把軟件需求轉換為軟件表示的過程。軟件設計的重要性(1)軟件開發(fā)階段(設計、編碼、測試)占軟件項目開發(fā)總成本的絕大部分,是在軟件開發(fā)中形成(2)軟件設計是開發(fā)階段最重要的步驟,是將需求準確地轉化為完整的軟件產品或系統(tǒng)的唯一途(3)軟件設計做出的決策,最終影響軟件實現(xiàn)的成敗;(4)設計是軟件工程和軟件維護的基礎度來看,軟件設計分兩步完成:概要(總體)設計和詳細設計。(1)抽象。抽象是一種思維工具,就是把事物本質的共同特性提取出來而不考慮其他細節(jié)。(2)模塊化.模塊是指把一個待開發(fā)的軟件分解成若千小的簡單的部分。模塊化是指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。(3)信息隱蔽。是指在一個模塊內包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊(4)模塊獨立性。是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的模塊的獨立程度是評價設計好壞的重要度量標準。衡量軟件的模塊獨立性使用耦合性和內聚性內聚性是度量一個模塊功能強度的一個相對指標,耦合性則用來度量模塊之間的相互聯(lián)系程度。耦合可以分為下列幾種,它們之間的耦合度由高到低排列:內容耦合——若一個模塊直接訪問另一模塊的內容,則這兩個模塊稱為內容耦合。公共耦合一一若一組模塊都訪問同一全局數(shù)據(jù)結構,則稱為公共耦合。外部耦合----若一組模塊都訪問同一全局簡單變量,則稱為外部耦合??刂岂詈弦灰蝗粢荒K明顯地把開關量、名字等信息送入另一模塊,控制另一模塊的功能,則稱標記耦合一一若兩個以上的模塊都需要其余某一數(shù)據(jù)結構的子結構時,不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱為標記耦合。數(shù)據(jù)耦合一一若一個模塊訪問另一個模塊,被訪問模塊的輸入和輸出都是數(shù)據(jù)項參數(shù),則這兩個非直接耦合一一若兩個模塊沒有直接關系,它們之間的聯(lián)系完全是通過程序的控制和調用來實現(xiàn)的,則稱這兩個模塊為非直接耦合,這樣的耦合獨立性最強。內聚是從功能角度來衡量模塊的聯(lián)系,它描述的是模塊內的功能聯(lián)系。內聚有如下種類,它們之偶然內聚一指一個模塊內的個處理元素之間沒有任何聯(lián)系。邏輯內聚一一這種模塊把幾種相關的功能組合在一起,每次被調用時,由傳送給模塊的參數(shù)來確時間內聚——這種模塊順序完成一類相關功能,比如初始化模塊,它順序地為變量置初值。通信內聚一一指它的所有功能都通過使用公用數(shù)據(jù)而發(fā)生關系。順序內聚——如果一個模塊內各個處理元素和同一個功能密切相關,而且這些處理必須順序執(zhí)行,處理元素的輸出數(shù)據(jù)作為下一個處理元素的輸入數(shù)據(jù),則稱為順序內聚。功能內聚一一是最強的一種內聚,它是指模塊內所有元素共同完成一個功能,缺一不可,模塊已耦合性與內聚性是模塊獨立性的兩個定性標準,耦合與內聚是相互關聯(lián)的。在程序結構中,各塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。(1)設計軟件系統(tǒng)結構:以模塊為基礎,影響軟件質量及一些整體特性。(2)數(shù)據(jù)結構和數(shù)據(jù)庫設計:對于大型數(shù)據(jù)處理的軟件系統(tǒng)是重要的。在概要設計階段,數(shù)據(jù)結構設計宜采用抽象的數(shù)據(jù)類型,數(shù)據(jù)庫設計對應于數(shù)據(jù)庫的邏輯設計。(3)編寫概要設計文檔:編寫概要設計說明書、數(shù)據(jù)庫設計說明書、用戶手冊和修訂測試計劃。軟件結構圖是軟件系統(tǒng)的模塊層次結構,反映了整個系統(tǒng)的功能實現(xiàn)。軟件結構圖往往用網(wǎng)狀或樹狀結構的圖形來表示。如圖3-3所示。A);②寬度(一層中最大的模塊個數(shù));③扇出(一個模塊直接調用下屬模塊的個數(shù));④扇入(一個模塊直接上屬模塊的個數(shù))。3-44種模塊類型(1)變換流是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式,離開軟系統(tǒng)。變換型數(shù)據(jù)處理問題的工作過程大致分為3步,即取得數(shù)據(jù)、變換數(shù)據(jù)和輸出數(shù)據(jù),變換型系統(tǒng)結構圖由輸入、中心變換和輸出3部分組成,如圖3-6所示(2)當信息沿輸入通路到達一個處理,這個處理根據(jù)輸入數(shù)據(jù)的類型從若干個動作序列中選擇出一詳細設計主要確定每個模塊具體執(zhí)行過程,也稱過程設計。詳細設計的結果基本上決定了最終的程程序流程圖是一種傳統(tǒng)的、應用廣泛的、巨有爭議的軟件設計表示工具。它用方框表示一個處理步驟,菱形代表一個邏輯條件,箭頭表示控制流。如圖3-8所示代替?zhèn)鹘y(tǒng)的程序流程圖,引起了人們的重視,人們也把這種圖稱為在方框圖中,每個處理步驟都是用一個盒子來表示的,這些處理步驟可以是語句或語句序列,在需要時,盒子中還可以嵌套另一個盒子,嵌套深度一般沒有限制,只要整張圖可以在一張PAD是問題分析圖(ProblemAnalysisDiagram)的英文縮寫。它是繼流程圖和方框圖之后,由日本的二村良彥等人在1979年提出的又一種主要用于描述軟件詳細設計的圖形表示下具。與的一個獨特之處在于,以PAD為基礎,遵循一個機械的規(guī)則就能方便地編寫出程序,這個規(guī)則稱為走艸TH盤51型侈矗生選捋型法規(guī)則分成外語法和內語法外語法應當符合一般程序設計語言常用的程序語句的語法規(guī)則;而內語法是沒有定義的,它可以用自然語言的一些簡潔的句子、短語和通用的數(shù)學符號來描述程序應該執(zhí)行的功能。(6)妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。測試是對軟件規(guī)格說明、設計和編碼的最后復審,所以軟件測試貫穿在整個軟件開發(fā)期的全過程。測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。好的測試方案是盡可能地發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤,顯然,成功的測試是發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。(1)靜態(tài)測試一般是指人工評審軟件文檔或程序,借以發(fā)現(xiàn)其中的錯誤。由于被評審的文檔或程序靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量等。(2)動態(tài)測試是指通常的上機測試,這種方法是使程序有控制地運行,并從多種角度觀察程序運行時的行為,以發(fā)現(xiàn)其中的錯誤。測試是否能夠發(fā)現(xiàn)錯誤取決于測試實例的設計。動態(tài)測試的設計測試實例方法一般有兩類:黑盒測試方法和白盒測試方法。自盒測試法即結構測試,根據(jù)產品的內部工作過程,檢查內部成分,以確認每種內部操作符合設計規(guī)范要求。它將涉及程序設計風格、控制方了解程序內部的結構,此時的測試用例是根據(jù)程序的內部邏輯來設計的,如果想用白盒測試法發(fā)現(xiàn)程序中的所有錯誤,則至少必須使程序中每種可能的路徑都執(zhí)行一次。序中的邏輯表示有判斷、分支、條件等幾種表示方式。①語句覆蓋。語句覆蓋是一個比較弱的測試標準,它的含義是,選擇足夠的測試實例,使得程序②路徑覆蓋。執(zhí)行足夠的測試用例,使程序中所有的可能路徑都至少經(jīng)歷一次。③判定覆蓋。設計足夠的測試實例,使得程序中的每個判定至少都獲得一次“真值”和“假值”判定覆蓋要比語句覆蓋嚴格,因為如果每個分支都執(zhí)行過了,則每個語句也執(zhí)行過了。④條件覆蓋。對于每個判定中所包含的若干個條件,應設計足夠多的測試實例,使得判定中的每個條件都取到“真”和“假”兩個不同的結果。條件覆蓋通常比判定覆蓋強,但也有的測試實例滿足條⑤判斷一條件覆蓋設計足夠多的測試實例,使得判定中的每個條件都能取得各種可能的“真”和“假”值,并且使每個判定都能取到“真”和“假”兩種結果。(2)基本路徑測試。它的思想和步驟是,根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復雜性度量,用此度量定義基本路徑集合,并由此導出一組測試用例對每一條獨立執(zhí)行路徑進行測試。3黑盒測試方法與測試用例設計黑盒測試不關心程序內部的邏輯,只是根據(jù)程序的功能說明來設計測試用例。在使用黑盒測試法(1)等價類劃分法是一種典型的黑盒測試方法它是將程序的所有可能的輸入數(shù)據(jù)然后從每個等價類中選取數(shù)據(jù)作為測試用例。(3)錯誤推測法。測試人員也可以通過經(jīng)驗或直覺推測程序中可能存在的各種錯誤,從而有針錯誤推測法在很大程度依靠直覺和經(jīng)驗進行,它的基本想法是列出程序中可能有的錯誤和容易發(fā)生錯誤的特殊情況,并且根據(jù)它們選擇測試方案。規(guī)定的程序,目的是使軟件測試工作系統(tǒng)化軟件測試是一個過程,其測試流程是該過程軟件測試過程分4個步驟,即單元測試、集成測試、驗收測試和系統(tǒng)測試.單元測試是對軟件設計的最小單位一模塊(程序單元)進行正確性檢驗測試。單元測試的目的是發(fā)集成測試是測試和組裝軟件的過程。集成測試所設計的內容包括:軟件單元的接口測試、全局數(shù)據(jù)確認測試的任務是驗證軟件的功能和性能及其他特性是否滿足了需求規(guī)格說明中確定的各種需求,以及軟件配置是否完全、正確數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起,在實際運行算機系統(tǒng)進行一系列的集成測試和確認測試。3.5程序的調試考點20軟件調試的概念在對程序進行成功測試之后將進行程序調試(排錯)。程序的調試任務是診斷和改正程序中的錯誤。調試主要在開發(fā)階段進行(1)錯誤定位從錯誤的外部表現(xiàn)形式入手,研究有關部分的程序,確定程序中出錯的位置,找出錯(2)修改設計和代碼,以排除錯誤\排錯是軟件開發(fā)過程中一項艱苦工作,這也決定了調試工作是一(3)進行回歸測試,防止引進新的錯誤因為修改程序可能帶來新的錯誤,重復進行暴露這個錯誤

溫馨提示

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

評論

0/150

提交評論