




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件是計算機系統(tǒng)中與硬件互相依存的另一部分,它是包括程序、數據及1.Logicalratherthanphysical(軟件是一種邏輯實體,而非詳細的物理實體)2.DevelopedorEngineered,notmanufactsense(在研制、開發(fā)活動中被發(fā)明出來,但不能按老式的生產含義加以理解)3.Doesn'twearout(在軟件的運行和有效期間,沒有磨損、老化問題)1.程序設計階段,約為50至60年代2.程序系統(tǒng)階段,約為60至70年代3.軟件工程階段,約為70年代后來時期特點軟件工程所指程序程序及闡明書程序、文檔及數據語言語言高級語言軟件語言*軟件工作范圍程序編寫軟件生存期需求者本人少數顧客市場顧客開軟的織發(fā)件組開發(fā)小組及大、中型軟件開發(fā)機構規(guī)模小型中、小型大、中、小型定量原個人程序設計技術小組技術水平管理水平開技和段發(fā)術手序庫構造化程序設計數據庫,開發(fā)工具,開發(fā)環(huán)境,工程化開發(fā)措施,原則和規(guī)范,網絡和分布式開發(fā),面向對象技術,軟件過程與過程改善者專職維護人員價格高,存儲容量小,工作可靠性差降價,速度、存靠性有明顯提高向超高速、大容量、微型化及網絡化方向發(fā)展完全不受重視軟件技術的發(fā)展不能滿足需求,出現軟件危機展,價格高,未完全掙脫軟件危機軟件危機*軟件需求增長得不到滿足;*軟件生產成本高,價格昂貴;*軟件生產進度無法控制;采用工程的概念、原理、技術和措施來開發(fā)與維護軟件,把通過時間考驗而證明對的的管理技術和目前可以得到的最佳的技術措施結合起來,這就是軟Boehm曾為軟件工程下了定義:運用現代科學技術知識來設計并構造計算FritzBauer:Theestablishmentanduseofsoundengineeringprinciplesinordertandworksefficientlyonrealmachines.軟件工程是建立和使用氣和電子工程師學會)做出的定義是“軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)措施?!彼年P鍵內容是“以工程化的方式組織軟件的開發(fā)”,其中波及軟件計1)軟件工程措施為軟件開發(fā)提供了“怎樣做”的技術。2)軟件工具為軟件工程措施提供自動的或半自動的軟件支撐環(huán)境。3)軟件工程過程指將軟件工程的措施和工具綜合起來,以到達合理、及時地進軟件工程過程(SoftwareEngineeringPro軟件工程過程是指為了獲得軟件產品,在軟件工具支持下由軟件工程師采著名的軟件工程專家B.W.Boehm于1983年在一篇論文中提出了軟件工程的七條基本原理。他認為這七條原理是保證軟件產品質量和開發(fā)效率的原理的最1.分階段的生命周期計劃嚴格管理2.堅持進行階段評審3.實行嚴格的產品控制4.采用現代程序設計技術5.成果應能清晰地審查6.開發(fā)小組的人員應少而精7.承認不停改善軟件工程實踐的必要性1.出較低的開發(fā)成本3.獲得很好的軟件性能5.需要較低的維護費用4.局部化5.確定性6.一致性7.完備性1.制定計劃3.系統(tǒng)設計4.程序編寫5.軟件測試6.運行和維護軟件開發(fā)模型瀑布模型:按照軟件生命周期經典模型-瀑布模型的各個階段實行開發(fā)工作長處:1.提供了軟件開發(fā)的基本框架,優(yōu)于“手工作坊”式的開發(fā)措施2.有助于大型軟件開發(fā)過程中人員的組織、管理3.有助于軟件開發(fā)措施和工具的研究與使用,從而提高了大型軟件項目開發(fā)的質量和效率缺陷:1.在軟件開發(fā)的初始階段指明軟件系統(tǒng)的所有需求是困難的,有時甚至是不現實的2.需求確定后,顧客和軟件項目負責人要等相稱長的時間(通過設計、編碼、測試、運行)才能得到一份軟件的最初版本。假如顧客對這個軟件提出比較大的修改意見,那么整個軟件項目將會蒙受巨大的人力、財力、時間方面的損失。漸進模型(演化模型、原型模型)原型模型在克服瀑布模型缺陷、減少由于軟件需求不明確而給開發(fā)工作帶來風險方面,確實有著明顯的效果原型化措施是顧客和軟件開發(fā)人員之間進行的一種交互過程,合用于需求不確定性高的系統(tǒng)螺旋模型它是生命周期模型與原型模型的結合,不僅體現了兩個模型的長處,還增長了新的成分——風險分析螺旋模型是支持大型軟件開發(fā)并具有廣泛應用前景的模型例題1.開發(fā)軟件時,對于提高軟件開發(fā)人員工作效率至關重要的是(A)。軟件工程中描述軟件生存周期的瀑布模型一般包括計劃、(B)、設計、編碼、測試、維護等幾種階段。其中,設計階段在管理上又可以依次提成(C)和(D)兩個A:①程序開發(fā)環(huán)境②操作系統(tǒng)的資源管理功能③開發(fā)程序人員數量④計算機的并行處理能力C、D:①方案設計②代碼設計③概要設計④數據設計⑤運行設計⑥詳細設計⑦故障處理設計⑧軟件體系2.有人將軟件的發(fā)展過程劃分為4個階段:第一階段(20世紀50年代)稱為“程序設計的原始時期”。這時既沒有第二階段(20世紀60年代)稱為“基本軟件期”。出現了(A),并逐漸普及。伴隨(B)的發(fā)展,編譯技術也有較大的發(fā)展。第四階段(20世紀70年代中期至今)稱為“軟件工程時期”,軟件開發(fā)技術(F)、編碼、單元測試、綜合測試、(G)及其整體有關的多種管理技術。A-D:①匯編語言②操作系統(tǒng)③虛擬存儲器概念④高級語言⑤構造化程序設計⑥數據庫概念⑦固件⑧模塊化程序設計E-G:①使用和維護②兼容性確實認③完整性確實認④設計問題定義有關問題性質、工程目的和規(guī)模的書面匯報可行性研究(也稱可行性分析,FeasibilityAnalysis)目的就是要用最小的代價在盡量短的時間內確定問題與否可以處理。1.深入分析和澄清問題定義。2.導出系統(tǒng)的高層邏輯模型。從系統(tǒng)邏輯模型出發(fā),探索若干種可供選擇的重要解法(即系統(tǒng)實現方案)。對每種解法都應當至少從下述幾方面研究其可行Economicfeasibility,經濟可行性。這個系統(tǒng)的經濟效益能超過它的開發(fā)成本嗎?Technicalfeasibility,技術可行性。使用既有的技術能實現這個系統(tǒng)嗎?Legalfeasibility,法律可行性。確定系統(tǒng)開發(fā)也許導致的任何侵權行為、阻礙性后果和責任。Operationalfeasibility,操作可行性。系統(tǒng)的操作方式在這個顧客組織內行得通嗎?3、對后來的行動方針提出提議。基于計算機系統(tǒng)的成本—效益分析是可行性研究的重要內容,它用于評估計算機系統(tǒng)的經濟合理性。給出系統(tǒng)開發(fā)的成本論證,并將估算的成本與預期的利潤進行對比。成本軟件開發(fā)成本重要體現為人力消耗(乘以平均工資則得到開發(fā)費用)。一般來說,基于計算機系統(tǒng)的成本由四個部分構成:1.購置并安裝軟硬件及有關設備的費用2.系統(tǒng)開發(fā)費用3.系統(tǒng)安裝、運行和維護費用4.人員培訓費用1、代碼行技術代碼行技術是比較簡樸的定量估算措施,也是一種自底向上的估算措施。它把開發(fā)每個軟件功能的成本和實現這個功能需要用的源代碼行數聯絡起來。一般根據經驗和歷史數據估計實現一種功能需要的源程序行數。一旦估計出源代碼行數后來,用每行代碼的平均成本乘以行數即可確定軟件的成本。每行代碼的平均成本重要取決于軟件的復雜程度和開發(fā)小組的工資水平。(1)對規(guī)定設計的系統(tǒng)進行功能分解,直到可以對為實現該功能所規(guī)定的源代碼行數做出可靠的估算為止。根據經驗和歷史數據,對每個功能塊估計一種最有利的、最也許的和最不利的LOC值。設最有利的LOC值為a,最也許的LOC值為m,最不利的LOC值為b,則代碼行的期望(平均)值L計算每個功能塊的價格及工作量,并確定該軟件項目總的估算價格和工作1、背景狀況。問題描述,市場需求等2、系統(tǒng)描述。簡略的范圍描述,計劃目的和階段目的等3、候選方案。候選方案的配置,選擇最終方4、價格利益分析。經費概算和預期經濟效益5、技術冒險評價。包括技術實力、設備條件和已經有工作基礎6、操作可行性。顧客組織對操作方式的但愿7、法律可行性。系統(tǒng)開發(fā)也許導致的侵權、違法等8、其他與項目有關的問題。也許的未來變化所謂軟件需求是指顧客對目的軟件系統(tǒng)在功能、行為、性能、設計約束等2)系統(tǒng)性能規(guī)定3)運行規(guī)定4)未來也許提出的規(guī)定2、分析系統(tǒng)的數據規(guī)定(需求分析的本質就是對數據和加工進行分析)5、開發(fā)原型系統(tǒng)(可選)1、訪談與會議2、書面調查法3、觀測顧客工作流程1、組織概況1)組織的業(yè)務狀態(tài)2)業(yè)務的詳細內容3)輸入輸出信息從六個方面著手:*信息流向*信息種類*運用的目的*信息的使用者和制造者*輸入和輸出地點*輸入和輸出信息量3、存在問題、約束條件4、未來規(guī)定構造化分析措施(SA措施)就是面向數據流自頂向下逐漸求精進行需求分析的措施。分析的過程:面向數據流,采用自頂向下、分支分層、逐漸分解、逐漸細化、逐漸求精,最終貫徹到詳細加工、基本加工、簡樸加工。用逐漸求解的措施控制系統(tǒng)的復雜度,使得復雜系統(tǒng)簡樸化、抽象系統(tǒng)詳細化。數據流圖(DFD)數據流圖描繪系統(tǒng)的邏輯模型,或者說描繪信息在系統(tǒng)中流動和處理的狀基本系統(tǒng)模型數據流分析將系統(tǒng)模型視作一種數據變換,它接受多種形式的輸入,通過變換產生多種形式的輸出。輸入2輸出1輸出2例,下圖是一種飛機機票預定系統(tǒng)的基本系統(tǒng)模型數據流圖的成分下圖是機票預定系統(tǒng)的DFD??梢钥闯?,數據流圖是由如下四個基本成分構成的:1、數據流(用箭頭表達)2、加工(用圓圈表達)3、文獻(用單線或雙線表達)4、數據源點和終點(用方框表達)備票1、一種加工并不一定是一種程序。2、一種數據存儲也不等同于一種文獻。3、數據存儲和數據流都是數據,但所處狀態(tài)不一樣。自頂向下逐層畫DFD的環(huán)節(jié)如下:1)把基本系統(tǒng)模型加上源點和終點作為頂層DFD。2)畫出各層DFD,逐層畫DFD的過程也就是逐層分解的過程。為便于管理,要對分層DFD和圖中的加工進行編號。A、子圖的圖號就是分解的父圖中對應加工的編號。B、子圖中的加工編號是由子圖號、小數點、局部次序號構成。3)畫出總的DFD。(可選)畫DFD時要注意的幾種問題:1、畫DFD不是畫流程圖。DFD只描述“做什么”,不描述“怎么做”和做的次序。而流程圖表達對數據進行加工的次序和細節(jié)。2、父圖和子圖的平衡。父圖某加工的輸入輸出和分解這個加工的子圖的輸入輸出必須完全一致。3、局部文獻。文獻總是局部于分層DFD的某一層或某幾層。4、分解的深度與層次。逐層分解規(guī)定分解到加工成為足夠簡樸、易于理解的基本加工為止。所謂基本加工就是加工的意義明確、操作單一。不過究竟分解的層次多少合適,應當根據問題的復雜程度來確定。一般來說,可參照1)一種加工的分解,最多不要超過7個子加工。若超過7個時,可以用增長層次的措施來減少子加工數。2)分解在邏輯上應合理、自然,不能硬性分割。3)在保證數據流的易理解性的前提下,盡量少分解層次。這樣可以減少層4)分解要均勻。即在一張DFD中,不要有些加工已是基本加工,另某些加工還要分解好幾層。絕對均勻不也許,但不要相差太大。數據字典(DD)數據字典是有關數據的信息的集合,也就是對數據流圖中包括的系統(tǒng)元素(所有數據流、加工、文獻)的定義的集合。數據流圖和數據字典是需求規(guī)格闡明書的重要構成部分。數據流條目是定義數據流的。定義的方式一般是列出該數據流的各構成數據項。在定義數據流時,一般借助于某些簡樸的符號。如二等價于(定義為)+{…}反復x={a}x由0個或多種a構成m{…}n反復如x=3{a}8表達x中至少出現3次a,至多出現8次a()可選(選擇)如x=a+(b)+cb可以在x中出現,也可以不出現連接符x=1..9x可取1至9中的任一值如數據流“存折”可以定義:存折={戶名+所號+帳號+開戶日+性質+(印密)+1{存取行}50}99戶名=2{字母}24所號=“001”…“999”帳號=“00000001”…“99999999”開戶日=年+月+日性質=“1”..“6”印密=“0”存取行=日期+(摘要)+支出+存入+余額+操作+復核日期=年+月+日年=“0001”..“9999”月=“01".."12”日=“01".."31”摘要=1{字母}4支出=金額金額=“0000000.01”..“9999999.99”操作=“00001”..“99999”文獻條目是定義文獻的,一般只需列出文獻的構成數據項,以及文獻的組織方式如數據文獻(數據存儲)“存折”可定義為存折={戶名+所號+帳號+開戶日+性質+(印密)+1{存取行}50}9993、加工條目(小闡明)小闡明集中描述一種加工“做什么”,即加工邏輯。所謂加工邏輯是指顧客對這個加工的邏輯規(guī)定,即這個加工的輸出數據流和輸入數據流的邏輯關目前用于寫小闡明(加工邏輯闡明)的工具有構造化英語、鑒定表和鑒定(欠款超過60天)theconfirmationpendingresolutELSE(accountisingoodstanding)(欠款未超期)(欠款超過60天)ELSE(accountisingoodstanding)(欠款未超期)Issueconfirmationandinvoice單)在某些數據處理問題中,某數據流圖的加工需要依賴于多種邏輯條件的取值,就是說完畢這一加工的一組動作是由于某一組條件取值的組合引起的。這時使用鑒定表來描述比較合適。下面以“檢查發(fā)貨單”為例,闡明鑒定表的構成。1234條件發(fā)貨單金額賒欠狀況>60天≤60天>60天≤60天操作不發(fā)出同意書√發(fā)出同意書√√√發(fā)出發(fā)貨單√√√發(fā)出賒欠匯報√條件茬(ConditionStub)——左上部分條件項(ConditionEntry)——右上部分動作茬(Action動作項(Action例題請用鑒定表表達下面描述的耗電計費系統(tǒng)中電費的計算措施耗電計費系統(tǒng)可以采用固定價格收費和浮動價格收費兩種方式。若采用固定價格方式收費,對每月耗電100KW·h如下的顧客只征收最低原則費,超過100KW·h的顧客按價格表A收費;若采用浮動價格方式收費,則每月耗電100KW·h如下的顧客按價格表A收費,超過100KW·h的顧客按價格表B收費。條件收費方式固定固定浮動浮動耗電規(guī)模征收最低原則費√按價格表A收費√√按價格表B收費√條件固定固定浮動浮動操作按價格表A收費征收最低原則費按價格表B收費按價格表A收費鑒定樹鑒定樹也是用來體現加工邏輯的一種工具,有時它比鑒定表更直觀。下面把前面的“檢查發(fā)貨單”的例子用鑒定樹表達。欠款≤60天——發(fā)出批準書、發(fā)貨單檢查發(fā)貨單我們用DFD描述了系統(tǒng)中數據流動和加工的狀況,用DD描述了其中的某些數據流、文獻和加工,不過還不能滿足需求分析階段的規(guī)定。任何一種軟件系統(tǒng)都也許有成千上萬個數據項,僅僅描述它們是不夠的,更重要的是怎樣把它們以最優(yōu)的方式組織起來,以滿足系統(tǒng)對數據的規(guī)定。E-R圖(Entity-Relationship,實體-關系圖)是現實世界中實體的數據側面;或者說,數據對象是現實世界中省略了功能和行為的實體。2、聯絡客觀世界中的事物彼此間往往是有聯絡的。同樣,應用問題中的任何數據對象都不是孤立的,它們與其他數據對象一定存在多種形式的聯絡。N學教系1聯絡可分為三類:1)一對一聯絡(1:1)2)一對多聯絡(1:N)屬性是實體或聯絡所具有的性質軟件需求規(guī)格闡明1.引言。編寫目的,項目背景等2.任務概述。目的,運行環(huán)境等3.數據描述。4.功能需求。5.性能需求。6.運行需求。7.其他需求。例題1.軟件需求分析的任務不應包括(A)。進行需求分析可使用多種工具,但(B)是不合用的。在需求分析中,分析員要從顧客那里處理的最重要的問題是(C)。需求規(guī)格闡明書的內容不應當包括(D)。該文檔在軟件開發(fā)中具有重要的作用,但其作用不應當包括(E)。A:①問題分析②信息域分析③構造化程序設計④確定邏輯模型③規(guī)定軟件工作效率怎樣④要讓軟件具有什么樣的構造③軟件確認準則④軟件的性能E:①軟件設計的根據②顧客和開發(fā)人員對軟件要“做什么”的共③軟件驗收的根據④軟件可行性分析的根據2.在構造化分析措施中,用以體現系統(tǒng)內數據的運動狀況的工具有()。A.數據流圖B.數據詞典C.構造化英語D.鑒定表與鑒定樹一旦軟件需求確認之后,就進入開發(fā)階段。開發(fā)階段由3個互有關聯的環(huán)節(jié)構成,即設計、實現(編碼)和測試。從工程管理的角度看,軟件設計可分為概要設計/總體設計和詳細設計兩大環(huán)節(jié)。從技術角度來看,軟件設計可分為數據設計、系統(tǒng)構造設計和過程設計。目前越來越多的人把界面設計也單獨取出作為一種方面。概要設計基本目的是用比較抽象概括的方式確定系統(tǒng)怎樣完畢預定的任務,即確定軟件系統(tǒng)的總體構造,給出系統(tǒng)中各個構成模塊的功能和模塊間的接口。波及的概念重要有:模塊化,抽象與逐漸求精,信息隱藏,模塊獨立在進行軟件構造設計時應當遵照的最重要的原理是模塊獨立原理。采用模塊化原理的長處:1)可以使軟件構造清晰,輕易設計、輕易閱讀和理解、輕易測試和2)提高軟件的可靠性。3)易于軟件開發(fā)工程的組織管理。所謂模塊的獨立性,是指軟件系統(tǒng)中每個模塊只波及軟件規(guī)定的詳細的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡樸的。模塊獨立性可用兩個定量準則來度量耦合(coupling):各個模塊之間互相關聯的度量內聚(cohesion):模塊內部各元素之間互相關聯的度量耦合共分七級非直接耦合、數據耦合、特性耦合/標識耦合、控制耦合、外部耦合、公共耦合、內容耦合按上述次序,耦合性逐漸升高,模塊獨立性逐漸減少。內聚共分七級偶爾內聚、邏輯內聚、時間內聚、過程內聚、通信內聚、次序內聚、功能內聚按上述次序,內聚性逐漸加強,功能趨于單一,模塊獨立性也逐漸加強。軟件概要設計的目的是力爭增長模塊的內聚,盡量減少模塊間的耦合。但增長內聚比減少耦合更重要,應當把更多的注意力集中到提高模塊的內聚程度系統(tǒng)構造設計的七條啟發(fā)式原則:1)改善軟件構造提高模塊獨立性2)模塊規(guī)模應當適中3)深度、寬度、扇出和扇入都應合適4)模塊的作用范圍應在控制范圍之內5)力爭減少模塊接口的復雜程度6)設計單入口單出口的模塊7)模塊功能應當可以預測常見的軟件概要設計措施有3大類:1)以數據流圖為基礎構造模塊構造的構造化設計措施(SD,StructuredConstructionofPrograms)(Wanier)邏輯構造措施3)以對象、類、繼承和通信為基礎的面向對象的設計措施(0OD)構造化設計措施(StructuredDesign,SD)是基于模塊化、自頂向下細3、映射為軟件構造4、細化后,得到初始構造圖5、獲得最終的軟件構造圖1.引言。編寫目的,項目背景等2.任務概述。目的,運行環(huán)境,需求概述,條件與限制等3.總體設計。處理流程,系統(tǒng)總體構造等4.接口設計。外部接口,內部接口等5.數據構造設計6.運行設計7.出錯處理設計8.其他問題例題1.在眾多的設計措施中,SD措施是最受人注意的,也是最廣泛應用的一種,這種措施可以同分析階段的(A)措施及編程階段的(B)措施前后銜接,SD措施考慮怎樣建立一種構造良好的程序構造,它提出了評價模塊構造質量的兩個詳細原則-塊間聯絡和塊內聯絡。SD措施的最終目的是(C),用于表達模塊間另一種比較著名的設計措施是以信息隱藏為原則劃分模塊,這種措施叫C:①塊間聯絡大,塊內聯絡?、趬K間聯絡大,塊內聯絡?、蹓K間聯絡小,塊內聯絡大④塊間聯絡小,塊內聯絡小E:①Jackson②Parnas③Turing④Wirth⑤Dijk2.塊間聯絡和塊內聯絡是評價程序模塊構造質量的重要原則。聯絡的方式、共用信息的作用、共用信息的數量和接口的(A)等原因決定了塊間聯絡的大小。SD措施的總的原則是使每個模塊執(zhí)行(C)功能,模塊間模塊通過(E)語句調用其他模塊,并且模塊間傳送的參數應盡量(F)。D:①數據型②控制型③混合型E:①直接引用②原則調用③中斷④宏調用G-H:①作用范圍②控制范圍3.從下列有關系統(tǒng)構造圖的論述中選出對的的論述A.系統(tǒng)構造圖中反應的是程序中數據流的B.系統(tǒng)構造圖是精確體現程序構造的圖形表達法。因此,有時可將系統(tǒng)構造圖C.個模塊的多種下屬模塊在系統(tǒng)構造圖中所處的左D.系統(tǒng)構造圖中,上級模塊與其下屬模塊之間的調用關系用有向線段表達。這5.在完畢軟件概要設計,并編寫出有關文檔之后,應當組織對概要設計工作的分析該軟件的系統(tǒng)構造、子系統(tǒng)構造,確認該軟件設計與否覆蓋了所有已分析軟件各部分之間的聯絡,確認該軟件的內部接口與外部接口與否已經明確定義。模塊與否滿足(B)和(C)的規(guī)定。模塊(D)與否在其(E)之供選擇的答案:B:①多功能②高內聚③高耦合④高效率⑤可讀性C:①多入口②低內聚③低耦合④低復雜度⑤低強度D-E:①作用范圍②高內聚③低內聚④取值范圍⑤控制范圍詳細設計就是要在總體設計階段成果的基礎上,考慮怎樣實現定義的軟件系統(tǒng),直到構造化程序設計技術是進行詳細設計的邏輯基礎。它采用自頂向下逐漸求精的設計措程序復雜性重要指模塊內程序的復雜性。它直接關聯到軟件開發(fā)費用的名少、開發(fā)1)代碼行度量法度量程序的復雜性,最簡樸的措施就是記錄程序的源代碼行數。該措施的基本考慮是Lipow及其他研究者得出一種結論:對于少于100個語句的小程序,源代碼行數與出2)McCabe度量法McCabe度量法是一種基于程序控制流的復雜性度量措施。McCabe定義的程序復雜性假如把程序流程圖中每個處理符號都退化成一種結點,本來聯結不一樣處理符號的流2.總體設計。軟件構造3.程序描述。逐一模塊描述其功能、性能、輸入、輸出、算法等例題軟件詳細設計工具可分為3類,即圖形工具、設計語言和表格工具。圖形工具中,(A)簡樸而應用廣泛。(B)表達法中,每個處理過程用一種盒子表達,盒子可以嵌套。(C)可以縱橫延伸,圖形的空間效果好。(D)是一種設計和描述程序的語言,它是一種面向(E)的語言。供選答案:D:①C②PDL③PROLOGE:①人②機器③數據構造④對象ABFPTFQT[統(tǒng)考]下面是兩個程序流程圖,試分別用N-S圖ABFPTFQTFPTBFQTWhilePABMcCabe復雜性度量都為3。(7-6+2)下圖是使用BASIC語言編寫的一種打印A、B、C三數中最小者的程序流程圖。其中出現了6個GOTO語句,1個向前,5個向后,程序可讀性很差。FF打印CT打印BT試運用基本控制構造,將程序中的GOTO語句消printAprintBprintC編碼所謂編碼就是把軟件設計的成果翻譯成計算機可以“理解”的形式一用某種程序設計按照軟件工程的措施論,程序的質量基本上由設計的質量決定。不過,編碼使用的語例題從下列論述中選出5條符合程序設計風格指導原則的論述。⑩應盡量多用GOTO語句從下列有關模塊化程序設計的論述中選出5條對的的論述。⑨模塊越小,模塊化的長處越明顯。一般來說,模塊的大小都在10行如下測試軟件測試的目的就是軟件投入生產性運行之前,盡量多地發(fā)現軟件中的錯誤。目前軟1)測試是程序的執(zhí)行過程,目的在于發(fā)現錯誤。2)一種好的測試用例在于能發(fā)現至今未發(fā)現的錯誤3)一種成功的測試是發(fā)現了至今未發(fā)現的錯誤的測試1)應當盡早地不停地進行軟件測試2)測試用例應由測試輸入數據和與之相對應的預期輸出成果這兩部分構成3)程序員應防止檢查自己的程序4)在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件5)充足注意測試中的群集現象6)嚴格執(zhí)行測試計劃,排除測試的隨意性7)應當對每個測試成果做全面檢查8)妥善保留測試計劃、測試用例、出錯記錄和最終分析匯報,為維護提供以便常分單元測試/模塊測試,集成測試,確認測試和系設計測試方案是測試階段的關鍵技術問題,基本目的是選用至少許的高效測試數據,鑒定-條件覆蓋:使得判斷中每個條件的所有也許取值至少執(zhí)行一次,同步每個判條件組合覆蓋:使得每個判斷的所有也許的條設計測試方案的實用方略是,用黑盒法設計基本的測試方案,再用白盒法補充某些必應當認識到,軟件測試不僅僅指運用計算機進行的測試,還包括人工進行的測試(例如,代碼審查)。兩種測試途徑各有優(yōu)缺陷,互相補充,缺一不可。有一種處理單價為1元5角錢的盒裝飲料的自動售貨機軟件。若投入1元5角硬幣,按下“橙汁”、“啤酒”或“紅茶”按鈕,對應的飲料就送出來。若投入的是2元硬幣,在送出飲料的同步退還5角硬幣。1)(5分)試運用因果圖法,建立該軟件的因果圖;2)(5分)設計測試該軟件的所有測試用例。輸入條件(原因)因果圖(加入了兩個中間結點11和12。11表達已投幣,12表達已按鈕)測試用例123456789投入1元5角硬幣11110000000投入2元硬幣00001111000100010001000100010001000100010001中間結點已投幣11111111000已按鈕11101110111輸出退還5角硬幣00001110000100010000000100010000000100010000軟件測試是軟件質量保證的重要手段之一,測試的費用已超過(A)的30%以上。因此,提高測試的有效性十分重要?!案弋a”的測試是指(B)。根據國標GB8566-88《計算機軟件開發(fā)規(guī)范》的規(guī)定,軟件的開發(fā)和維護劃分為8個階段,其中,單元測試是在(C)階段完畢的,集成測試的計劃是在(D)階段制定的,確認測試的計劃是在(E)階段制定:A:①軟件開發(fā)費用②軟件維護費用B:①用適量的測試用例運行程序,證明被測程序對的無誤②用適量的測試用例運行程序,證明被測程序符合對應的規(guī)定③用少許的測試用例運行程序,發(fā)現被測程序盡量多的錯誤④用少許的測試用例運行程序,糾正被測程序盡量多的錯誤C-E:①可行性研究和計劃②需求分析⑤實現⑥集成測試⑦確認測試⑧使用和維護集成測試也叫做(A)或(B)。一般,在(C)的基礎上,將所有模塊按照設計規(guī)定組裝成系統(tǒng)。子系統(tǒng)的集成測試尤其稱為(D),它所作的工作是要找出子系統(tǒng)和系統(tǒng)需求規(guī)格闡明之間的(E)。需要考慮的問題是在把各個模塊連接起來的時候,穿越模塊接口的數據與否會(F);一種模塊的功能與否會對另一種模塊的功能產生不利的影響;各個(G)組合起來,能否到達預期規(guī)定的(H);(I)與否有問題;單個模塊的誤差累積起A-D:①單元測試②部件測試③組裝測試④系統(tǒng)測試⑤確認測試⑥聯合測試⑦一致黑盒測試法是通過度析程序的(A)來設計測試用例的措施。除了測試程序外,它還合用于對(B)階段的軟件文檔進行測試。白盒測試法是根據程序的(C)來設計測試用例的措施。除了測試程序外,它也合用于對白盒法測試程序時常按照給定的覆蓋條件選用測試用例。(E)覆蓋比(F)嚴格,它使得每個鑒定的每條分支至少經歷一次。(G)覆蓋既是鑒定覆蓋,又是條件覆蓋,但它并不保證使多種條件都能取到所有也許的值。(H)覆蓋比其他條件都要嚴格,但它不能保證單元測試一般以(I)為主,測試的根據是(J)。A、C:①應用范圍②內部邏輯③功能④輸入數據B、D:①編碼②軟件詳細設計③軟件總體設計④需求分析E、F、G、H:①語句②鑒定③條件④鑒定/條件⑤多重條件⑥途徑J:①模塊功能規(guī)格闡明②系統(tǒng)模塊構造圖③系統(tǒng)需求規(guī)格闡明從下列有關程序設計風格和軟件測試的論述中,選出5條對的的論述④對于連鎖型分支構造,若有n個鑒定語句,則有2"條途徑。⑤盡量采用復合的條件測試,以防止嵌套的分支構造。⑥GOTO語句概念簡樸,使用以便。在某些狀況下,保留GOTO語句反能使寫出的程序愈加簡潔。⑦發(fā)現錯誤多的程序模塊,殘留在模塊中的錯誤也多。⑧黑盒測試措施中最有效的是因果圖法。⑨在做程序的單元測試時,樁(存根)模塊比驅動模塊輕易編寫。⑩程序效率的提高重要應通過選擇高效的算法來實現。答案:④、⑤、⑥、⑦、⑩答案:④、⑤、⑥、⑦、⑩調試軟件調試是在進行了成功的測試之后才開始的工作。調試活動由兩部分構成:1)確定程序中可疑錯誤確實切性質和位置2)對程序(設計、編碼)進行修改,排除這個錯誤幾種重要的調試措施:強行排錯回溯法排錯歸納法排錯演繹法排錯測試和調試是軟件測試階段的兩個關系極端親密的過程,它們一般交替進行。測試中的可靠性分析在軟件開發(fā)的過程中,運用測試的記錄數據,估算軟件的可靠性以控制軟件的質量是至關重要的。推測錯誤的產生頻度估算錯誤產生頻度的一種措施是估算平均失效等待時間MTTF(MeanTimeToFailure)。MTTF估算公式(Shooman模型)是:其中,K是一種經驗常數,美國某些記錄數字表明,K的經典值是200;Er是測試之前途序中原有的故障總數;Ir是程序長度(機器指令條數或簡樸匯編語句條數);t是測試(包括排錯)的時間;Ec(t)是在0-t期間內檢出并排除的故障總數。公式的基本假定是:1)、單位(程序)長度中的故障數Er/Ir近似為常數,它不因測試與排錯而變化。記錄數字表明,一般Er/Ir值的變化范圍在0.5*10-2—2*10-2之間。2)、故障檢出率正比于程序中殘留故障數,而MTTF與程序中殘留故障數成正比。3)、故障不也許完全檢出,但一經檢出立即得到改正??煽啃岳鄯e曲線公式例題對一種長度為100,000條指令的程序進行測試,記錄下來的數據如下:.測試開始,發(fā)現錯誤個數為0;.通過160小時的測試,合計改正100個錯誤,此時,MTTF=0.4小時;.又通過160小時的測試,合計改正300個錯誤,此時,MTTF=2小時。1)估計程序中固有的錯誤總數。2)為使MTTF到達10小時,必須測試和調試這個程序多長時間?3)給出MTTF與測試時間t之間的函數關系得1)解得程序中固有的錯誤總數Er=350,此外,K=1000。解得x=340(即為使MTTF到達10小時,需要改正340個錯誤)。由可靠性累積曲線340=350(1-e-.01)得t=(n(35因此求得為使MTTF=10,測試和調試該程序需要時間約為356小時。3)MTTF與測試時間t之間的函數關系:維護所謂軟件維護就是在軟件已經交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。軟件工程學的重要目的就是提高軟件的可維護性,減少維護的代價。軟件可維護性,是指糾正軟件系統(tǒng)出現的錯誤和缺陷,以及為滿足新的規(guī)定進行修改、擴充或壓縮的輕易程度。軟件的可理解性、可測試性和可修改性是決定軟件可維護性的基本原因。軟件維護一般包括四類活動:1)為了糾正使用過程中暴露出來的錯誤而進行的改正性維護;2)為了適應外部環(huán)境的變化而進行的適應性維護;3)為了改善原有的軟件而進行的完善性維護;4)為了改善未來的可維護性和可靠性而進行的防止性維護。在軟件維護中,影響維護工作量的程序特性有如下6種:a.系統(tǒng)大小b.程序設計語言c.系統(tǒng)年齡d.數據庫技術的應用e.先進的軟件開發(fā)技術維護有三種副作用:文檔、代碼、數據。軟件維護工作流程1、確認維護規(guī)定2、由維護組織管理員確認維護類型嚴重錯誤改正性維護用戶請求維護確定維護用戶請求維護維護非嚴重錯誤高優(yōu)先級低優(yōu)先級列入日常維護計劃可理解性:表明人們通過閱讀源代碼和有關文檔,理解程序及其怎樣運行的輕易程度??煽啃裕罕砻饕环N程序按照顧客的規(guī)定和設計目的,在給定的一段時間內對的執(zhí)行的概率??蓽y試性:表明論證程序對的性的輕易程度。可修改性:表明程序輕易修改的程度??梢浦残裕罕砻鞒绦蜣D移到一種新的計算環(huán)境的也許性的大小,或者它表明程序可以輕易地、有效地在多種各樣的計算環(huán)境中運行的輕易程度。效率:表明一種程序能執(zhí)行預定功能而又不揮霍機器資源的程度??墒褂眯裕簭念櫩陀^點出發(fā),把可使用性定義為程序以便、實用及易于使用的程度。各階段結束原則問題定義有關規(guī)模和目的的匯報書可行性研究可行性論證匯報(系統(tǒng)的高層邏輯模型)需求分析需求規(guī)格闡明書(系統(tǒng)的邏輯模型)概要設計闡明書(系統(tǒng)層次圖或構造圖)詳細設計闡明書(各模塊內部詳細算法)編碼綜合測試方案和成果實行階段維護軟件管理成本估算代碼行技術功能點技術效益估計系統(tǒng)效益包括經濟效益和社會效益兩部分。貨幣的時間價值、純收入、投資回收期、投資回收率進度安排進度安排是軟件項目管理中的一項重要內容。管理復雜的工程項目非常困難,最佳的措施是把它分解成一系列比較輕易管理的子任務。不過度解后又輕易只注意對各個子任務的管理,以致忽視了對工程總體狀況的理解和管理。因此需要有某種工具既支持把項目分Gantt圖能很形象地描繪任務分解狀況,以及每個子任務(作業(yè))的開始時間和結束時間,因此是進度計劃和進度管理的有力工具,它具有直觀簡要和輕易掌握、輕易繪制的長當把一種工程項目分解成許多小任務,并且它們彼此間的依賴關系又比較復雜時,僅僅用Gantt圖作為安排進度的工具是不夠的,不僅難于作出既節(jié)省資源又保證進度的計工程網絡是制定進度計劃時另一種常用的圖形工具,它同樣能描繪任務分解狀況以及每項作業(yè)的開始時間和結束時間。此外,它還顯式地描繪各個作業(yè)彼此間的依賴關系。因在制定進度計劃時仔細考慮和運用工程網絡中的機動時間,往往可以安排出既節(jié)省資人員組織一般來說,程序設計小組的規(guī)模應當較小,視工程規(guī)模以2-8人為宜。主程序員組用經驗多、技術好、能力強的程序員作為主程序員。同步,運用人和計算軟件項目的開發(fā)實踐表明,軟件開發(fā)各個階段所需要的技術人員類型、層次和數量是不一樣的。軟件項目的計劃與分析階段只需要少數人,重要是系統(tǒng)分析員、從事軟件系統(tǒng)論證和概要設計的軟件高級工程師和項目高級管理人員。概要設計時增長一部分高級程序員,詳細設計時,要增長軟件工程師和程序員,在編碼和測試階段還要增長程序員、軟件測試員。到測試階段結束時,軟件項目開發(fā)人員的數量到達頂峰。軟件運行初期,參與軟件維護的人員比較多,過早解散軟件開發(fā)人員會給軟件維護帶來意想不到的困難。軟件運行一段時間后,由于軟件開發(fā)人員參與改正性維護,軟件出錯率會很快衰減,這時軟件開發(fā)人員可以逐漸撤出。假如系統(tǒng)不做適應性或完善性維護,需要留守的維護人員就不多Babich曾說過:“協調軟件開發(fā)使得混亂減到最小的技術叫做配置管理。配置是一種標識、組織和控制修改的技術,目的是使錯誤到達最小并最有效地提高生產率?!避浖渲霉芾?SCM,SoftwareConfigurationManagement)應用于整個軟件生存期。由于變更在任何時刻都也許發(fā)生,因此,軟件配置管理活動的目的就是為了標識變基線是軟件生存期中各開發(fā)階段末尾的特定點,又稱里程碑得到的軟件配置協議和軟件配置的正式文本構成基線。它的作用是把各階段工作的劃分愈CMM(CapabilityMaturityModel)軟件機構能力成熟度模型對建立軟件目的系統(tǒng)而言,所謂復用(reuse),就是運用某些已開發(fā)的、對建立新軟件系統(tǒng)有用的軟件元素來生成新系統(tǒng)。這里所說的軟件元素可以包括需求規(guī)格闡明、設計過程、設計規(guī)格闡明、程序代碼、測試用例、度量等。對于新的軟件開發(fā)項目而言,這些元素或者是構成新軟件系統(tǒng)的構件,或者能在軟件開發(fā)過程中發(fā)揮某種作用面向對象=對象+類+繼承+通信對象可以定義為系統(tǒng)中用來描述客觀事物的一種實體,它是構成系統(tǒng)的一種基本單位,由一組屬性和一組對屬性進行操作的服務構成。三個重要特點:自治性、封裝性、通操作又稱為措施或服務,它描述了對象執(zhí)行的功能,若通過消息傳遞,還可認為其他而所謂的消息是一種對象與另一種對象的通信單元,是規(guī)定某個對象執(zhí)行類中定義的把具有相似特性和行為的對象歸結在一起就形成了類。類是某些對象的模板,抽象地假如某幾種類之間具有共性的部分(信息構造和行為),將其抽取出來放在一種一般類中,而將各個類的特有的部分放在特殊類中分別描述,則可建立起特殊類對一般類的繼繼承是軟件開發(fā)中重用概念的關鍵,此外便于模塊修改,同步繼承可使模塊簡化,導1)形式地闡明所面對的應用問題,最終成為軟件系統(tǒng)基本構成的對象,尚有系統(tǒng)所必須遵2)明確地規(guī)定構成系統(tǒng)的對象怎樣協同合作,完畢指定的功能。OOA要建立分析模型,有五個層次:類和對象層、屬性層、服務層、構造層、主通過00A建立的系統(tǒng)模型是以概念為中心的,因此稱為概念模型。這樣的模型由一組有關的類構成。構造和評審OOA概念模型的次序由5個層次構成,即類和對象層、屬性層、服務層、構造層、主題層。這5個層次不是構成軟件系統(tǒng)的層次,而是分析過程中的層次也可以說是問題的不一樣側面。每個層次的工作都為系統(tǒng)的規(guī)格闡明增長了一種構成部分。當5個層次的工作所有完畢時,OOA的任務也就完畢了。OOD還是采用這樣五個層次,但分別用在建立系統(tǒng)的四個構成成分上:問題論域、人機交互、數據管理、任務管理。OOD模型怎樣用特定的實現技術建立起一種目的系統(tǒng)。在0OA模型和OOD模型中使用了共同的表達法,這有助于從分析到設計的轉換,并有助于在目前的設計和實現中維護OOA模型。與OOA模型同樣,OOD模型也有5層構造,又被劃分為四個部分:問題論域、人機交互、數據管理、任務管理。這些構成部分把實現技術隱藏起來,使之與系統(tǒng)的基本問題論域行為分離開。在0OA中,實際上只波及到問題論域部分,其他3個部分是在OOD中加進來的。即,對于問題論域部分只是做深入的細化,其他3個部分中將識別和定義新的類OMT(ObjectModelingTechnique對象建模技術)以面向對象思想為基礎,通過構造一組有關模型(對象模型、動態(tài)模型和功能模型)來獲得有關問題的全面認識(即問題的領域模型)。對象模型(objectmodel)代表了系統(tǒng)的靜態(tài)的、構造方面的特性。動態(tài)模型 (dynamicmodel)代表了系統(tǒng)對象之間的時間的、行為的、控制方面的特性。功能模型 (functionalmodel)重要描述值與值之間的函數關系。其中,對象模型是3個模型中最關鍵的模型,它的作用是描述系統(tǒng)的靜態(tài)構造,包括構成系統(tǒng)的類和對象,它們的屬性和操作,以及它們之間的關系。在OMT中,類與類之要想對一種系統(tǒng)理解得比較清晰,首先應考察它的靜態(tài)構造,即在某一時刻它的對象和這些對象之間互相關系的構造。然后,應考察在任何時刻對對象及其關系的變化。系統(tǒng)的這些波及時序和變化的狀況,用動態(tài)模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公軟件應用技術考試
- 2025中文合同談判常用句型
- 人工挖井合同樣本
- 二零二五版知識產權服務框架協議
- 個人退股協議書范例二零二五年
- 商鋪產權轉讓合同
- 2025四川房屋租賃合同范本
- 聘用兼職教師合同二零二五年
- 工業(yè)品買賣合同參考
- 二零二五食品安全協議責任書
- 吉林省吉林市2024-2025學年高三下學期3月三模試題 生物 含答案
- 2025年陜西農業(yè)發(fā)展集團有限公司(陜西省土地工程建設集團)招聘(200人)筆試參考題庫附帶答案詳解
- 2025年03月中央社會工作部所屬事業(yè)單位公開招聘11人筆試歷年參考題庫考點剖析附解題思路及答案詳解
- 2025年中高端女裝市場趨勢與前景深度分析
- 2025北京清華附中高三(下)統(tǒng)練一數學(教師版)
- 2025-2030中國孵化器行業(yè)市場發(fā)展前瞻及投資戰(zhàn)略研究報告
- 5.3基本經濟制度 課件 2024-2025學年統(tǒng)編版道德與法治八年級下冊
- Unit4 Breaking Boundaries 單元教學設計-2024-2025學年高中英語外研版(2019)選擇性必修第二冊
- T-CCTAS 61-2023 橋梁承重纜索抗火密封綜合防護技術規(guī)程
- 2025慢性阻塞性肺?。℅OLD)指南更新要點解讀課件
- 2024年05月湖北中國郵政儲蓄銀行湖北省分行春季校園招考筆試歷年參考題庫附帶答案詳解
評論
0/150
提交評論