freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件危機與軟件工程要點匯編-閱讀頁

2025-04-28 02:02本頁面
  

【正文】 種圖形構(gòu)件?,F(xiàn)在已為ISO認可。 PAD的基本控制結(jié)構(gòu)(4) 判定表當(dāng)算法中包含多重嵌套的條件選擇時,用程序流程圖、NS圖或PAD都不易清楚地描述。為了能適應(yīng)判定表條件取值只能是“T”和“F”的情形,對原圖稍微做了些改動,把多分支判斷改為兩分支判斷,但整個圖邏輯沒有改變。在表的右上半部分中列出所有條件,“T”表示該條件取值為真,“F”表示該條件取值為假,空白表示這個條件無論取何值對動作的選擇不產(chǎn)生影響。判定表右半部的每一列實質(zhì)上是一條規(guī)則,規(guī)定了與特定條件取值組合相對應(yīng)的動作。但判定表表示的是靜態(tài)邏輯,是在某種條件取值組合情況下可能的結(jié)果,它不能表達加工的順序,也不能表達循環(huán)結(jié)構(gòu),因此判定表不能成為一種通用的設(shè)計工具。稱為設(shè)計程序用語言。一般地,偽碼的語法規(guī)則分為“外語法”和“內(nèi)語法”。PDL就是這樣一種偽碼。下面舉一個例子,來看PDL的使用。人們可以很方便地使用計算機完成PDL的書寫和編輯工作。 有固定的關(guān)鍵字外語法,提供全部結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊特征。為了區(qū)別關(guān)鍵字,規(guī)定關(guān)鍵字一律大寫,其它單詞一律小寫。 內(nèi)語法使用自然語言來描述處理特性。167。167。使用PDL語言,可以做到逐步求精:從比較概括和抽象的PDL程序起,逐步寫出更詳細的更精確的描述。HIPO圖采用功能框圖和PDL來描述程序邏輯,它由兩部分組成:可視目錄表和IPO圖。① 可視目錄表 :由體系框圖、圖例、描述說明三部分組成。 體系框圖。它是自頂向下逐層分解得到的,是一個樹形結(jié)構(gòu)。每個框內(nèi)都應(yīng)有一個名字,用以標識它的功能。167。每一套HIPO圖都應(yīng)當(dāng)有一個圖例,即圖形符號說明。167。它是對層次圖中每一框的補充說明,在必須說明時才用,所以它是可選的。② IPO圖 :IPO圖為層次圖中每一功能框詳細地指明輸入、處理及輸出。由于某些細節(jié)很難在一張IPO圖中表達清楚,常常把IPO圖又分為兩部分,簡單概括的稱為概要IPO圖,細致具體一些的稱為詳細IPO圖。我們稱此為迭代式細化設(shè)計。從圖中可看到,把可視目錄表和IPO圖結(jié)合起來,反復(fù)交替地使用它們,可使得設(shè)計工作逐步深化,最終取得完滿的設(shè)計結(jié)果。HIPO有自己的特點。其次,HIPO的適用范圍很廣,絕不限于詳細設(shè)計。如果利用它僅僅表達軟件要達到的功能,則是需求分析中描述需求的很好的工具。開發(fā)完成后,HIPO圖就是很好的文檔,而不必在設(shè)計完成以后,專門補寫文檔。 目的在于及早發(fā)現(xiàn)設(shè)計中的缺陷和錯誤。 復(fù)審的內(nèi)容: 概要設(shè)計復(fù)審(PDR):重點在系統(tǒng)的總體結(jié)構(gòu)、模塊的劃分、內(nèi)外接口詳細設(shè)計復(fù)審(DDR):重點在各個模塊的具體設(shè)計上軟件設(shè)計 50%——65% 錯誤 至少兩周之前 設(shè)計給全體復(fù)審人員 提交設(shè)計報告之前一周發(fā)回書面答復(fù)分析:通常,原型是指模擬某種產(chǎn)品的原始模型。使用原型的原型化方法特別適用于需求不確定性較高的軟件系統(tǒng)的開發(fā)。讓用戶計算機上實際運行這個用戶界面原型,在試用的過程中得到親身感受和受到啟發(fā),做出反應(yīng)和評價,提出同意什么和不同意什么。隨著不斷試驗、糾錯、使用、評價和修改,獲得新的原型版本,如此周而復(fù)始,逐步減少分析和通信中的誤解,彌補不足之處,進一步確定各種需求細節(jié),適應(yīng)需求的變更,從而提高了最終產(chǎn)品的質(zhì)量。第五章 程序設(shè)計一、程序設(shè)計階段的任務(wù):為每個模塊編程二、結(jié)構(gòu)化設(shè)計概述結(jié)構(gòu)化程序設(shè)計技術(shù)是60年代中期提出來的,它主要包括兩個方面:167。盡可能避免使用會使程序質(zhì)量受到影響的GOTO語句。 在程序設(shè)計過程中,盡量采用自頂向下和逐步細化的原則,由粗到細,一步步展開。 使用語言中的順序、選擇、重復(fù)等有限的基本控制結(jié)構(gòu)表示程序邏輯。 選用的控制結(jié)構(gòu)只準許有一個入口和一個出口。 程序語句組成容易識別的塊,每塊只有一個入口和一個出口。 復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)。 語言中沒有的控制結(jié)構(gòu),可用一段等價的程序段模擬,但要求該程序段在整個系統(tǒng)中應(yīng)前后一致。 嚴格控制GOTO語句,僅在用一個非結(jié)構(gòu)化的程序設(shè)計語言去實現(xiàn)一個結(jié)構(gòu)化的構(gòu)造,或者在某種可以改善而不是損害程序可讀性的情況下才可以使用GOTO語句。(3) 數(shù)據(jù)結(jié)構(gòu)的合理化,結(jié)構(gòu)化程序設(shè)計主要是想從程序的控制結(jié)構(gòu)入手,消除不適應(yīng)的、容易引起混亂的GOTO語句。三、程序設(shè)計語言程序設(shè)計語言的分類目前,用于軟件開發(fā)的程序設(shè)計語言已經(jīng)有數(shù)百種之多,對這些程序設(shè)計語言的分類有不少爭議。從軟件工程的角度,根據(jù)程序設(shè)計語言發(fā)展的歷程,可以把它們大致分為4類。對于不同的機器就有相應(yīng)的一套機器語言。存儲空間的安排,寄存器、變址的使用都由程序員自己計劃。② 匯編語言(第二代語言):匯編語言比機器語言直觀,它的每一條符號指令與相應(yīng)的機器指令有對應(yīng)關(guān)系,同時又增加了一些諸如宏、符號地址等功能。不同指令集的處理器系統(tǒng)就有自己相應(yīng)的匯編語言。③ 高級程序設(shè)計語言(第三代語言)167。這些程序語言曾得到廣泛應(yīng)用。有的語言得到較大的改進,甚至形成了可視的開發(fā)環(huán)境,具有圖形設(shè)計工具、結(jié)構(gòu)化的事件驅(qū)動編程模式、開放的環(huán)境,使用戶可以既快又簡便地編制出windows下的各種應(yīng)用程序。 通用的結(jié)構(gòu)化程序設(shè)計語言 :它具有很強的過程功能和數(shù)據(jù)結(jié)構(gòu)功能,并提供結(jié)構(gòu)化的邏輯構(gòu)造。此外,COBOL7Turbo BASIC等也應(yīng)歸入第三代程序語言范圍。 專用語言 :專用語言是為特殊的應(yīng)用而設(shè)計的語言。有代表性的專用語言有APL、Lisp、PROLOG、Smalltalk、C++、FORTH等。但是它們的可移植性和可維護性比較差。4GL兼有過程性和非過程性的兩重特性。然后由4GL 語言系統(tǒng)運用它的專門領(lǐng)域的知識來填充過程細節(jié)。 查詢語言 :用戶可利用查詢語言對預(yù)先定義在數(shù)據(jù)庫中的信息進行較復(fù)雜的操作。 程序生成器 :只需很少的語句就能生成完整的第三代語言程序,它不必依賴預(yù)先定義的數(shù)據(jù)庫作為它的著手點。 其它4GL :如判定支持語言、原型語言、形式化規(guī)格說明語言等。有時需要作出某種合理的折衷。通常考慮的因素有 ① 項目的應(yīng)用范圍;② 算法和計算復(fù)雜性;③ 軟件執(zhí)行的環(huán)境;④ 性能上的考慮與實現(xiàn)的條件;⑤ 數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性;⑥ 軟件開發(fā)人員的知識水平和心理因素等。針對計算機的4個主要應(yīng)用領(lǐng)域,為語言做一個粗略的分類。在商業(yè)數(shù)據(jù)處理領(lǐng)域中,通常采用COBOL,RPG語言編寫程序,當(dāng)然也可選用SQL語言或其它專用語言。在人工智能領(lǐng)域以及問題求解,組合應(yīng)用領(lǐng)域,主要采用LISP和PROLOG語言。它直接關(guān)聯(lián)到軟件開發(fā)費用的多少,開發(fā)周期的長短和軟件內(nèi)部潛伏錯誤的多少。減少程序復(fù)雜性,可提高軟件的簡單性和可理解性,并使軟件開發(fā)費用減少,開發(fā)周期縮短,軟件內(nèi)部潛藏錯誤減少。此方法基于兩個前提:控制程序規(guī)模的方法最好是采用分而治之的辦法。方法的基本考慮是統(tǒng)計一個程序模塊的源代碼行數(shù)目,并以源代碼行數(shù)做為程序復(fù)雜性的度量。(2) McCabe度量法EMcCabe度量法是一種基于程序控制流的復(fù)雜性度量方法。如果把程序流程圖中每個處理符號都退化成一個結(jié)點,原來聯(lián)結(jié)不同處理符號的流線變成連接不同結(jié)點的有向弧,這樣得到的有向圖就叫做程序圖。(3) Halstead的軟件科學(xué)Halstead軟件科學(xué)研究確定計算機軟件開發(fā)中的一些定量規(guī)律,它采用以下一組基本的度量值,這些度量值通常在程序產(chǎn)生之后得出,或者在設(shè)計完成之后估算出?;蛘哒f,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤的過程。模塊的編寫者與測試者是同一個人。在這個階段結(jié)束之后,對軟件系統(tǒng)還要進行各種綜合測試,這是軟件生存期的另一個獨立的階段,即測試階段,通常由專門的測試人員承擔(dān)這項工作。② 測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。④ 在設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。⑥ 嚴格執(zhí)行測試計劃,排除測試的隨意性。⑧ 妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護提供方便。它包括需求規(guī)格說明的確認和程序的確認,而程序的確認又分為靜態(tài)確認與動態(tài)確認。驗證(Verification),則試圖證明在軟件生存期各個階段,以及階段間的邏輯協(xié)調(diào)性、完備性和正確性。在對需求理解與表達的正確性、設(shè)計與表達的正確性、實現(xiàn)的正確性以及運行的正確性的驗證中,任何一個環(huán)節(jié)上發(fā)生了問題都可能在軟件測試中表現(xiàn)出來。低一級測試為上一級測試準備條件。再對照軟件設(shè)計進行集成測試,檢測和排除子系統(tǒng)(或系統(tǒng))結(jié)構(gòu)上的錯誤。最后從系統(tǒng)全體出發(fā),運行系統(tǒng),看是否滿足要求。單元測試集中對用源代碼實現(xiàn)的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能。確認測試則是要檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。嚴格地說,系統(tǒng)測試已超出了軟件工程的范圍。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯。多個模塊可以平行地獨立進行單元測試。這時需要考慮:167。 一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響;167。 全局數(shù)據(jù)結(jié)構(gòu)是否有問題;167。167。(3) 確認測試確認測試又稱有效性測試。在軟件需求規(guī)格說明書描述了全部用戶可見的軟件屬性,其中有一節(jié)叫做有效性準則,它包含的信息就是軟件確認測試的基礎(chǔ)。系統(tǒng)測試的目的在于通過與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。6. 測試用例設(shè)計(1) 測試方法概述軟件測試的種類大致可以分為人工測試和基于計算機的測試。① 黑盒測試根據(jù)軟件產(chǎn)品的功能設(shè)計規(guī)格,在計算機上進行測試,以證實每個實現(xiàn)了的功能是否符合要求。黑盒測試意味著測試要在軟件的接口處進行。用黑盒測試發(fā)現(xiàn)程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出。這種測試方法就是白盒測試。通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因為可能的測試輸入數(shù)據(jù)數(shù)目往往達到天文數(shù)字。(2) 邏輯覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計測試用例的技術(shù)。這一方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要能掌握源程序的所有細節(jié)。① 語句覆蓋 :語句覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得每一可執(zhí)行語句至少執(zhí)行一次。② 判定覆蓋 :判定覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次。判定覆蓋只比語句覆蓋稍強一些,但實際效果表明,只是判定覆蓋,還不能保證一定能查出在判斷的條件中存在的錯誤。③ 條件覆蓋 :條件覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。④ 判定-條件覆蓋 :判定-條件覆蓋就是設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷本身的所有可能判斷結(jié)果至少執(zhí)行一次。判定-條件覆蓋有缺陷。但是事實并非如此。會遺漏某些條件取值錯誤的情況。這樣就可以有效地檢查所有的條件是否正確了。 這是一種相當(dāng)強的覆蓋準則,可以有效地檢查各種可能的條件取值的組合是否正確。測試還不完全。這是最強的覆蓋準則。下面我們做一分析。它是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。① 程序的控制流圖控制流圖是描述程序控制流的一種圖示方法??刂屏鲌D中的箭頭稱為邊,它表示了控制流的方向,在選擇或多分支結(jié)構(gòu)中分支的匯聚處,即使沒有執(zhí)行語句也應(yīng)該有一個匯聚結(jié)點。 控制流圖的各種圖形符號如果判定中的條件表達式是復(fù)合條件時,即條件表達式是由一個或多個邏輯運算符(OR,AND,NAND,NOR)連接的邏輯表達式,則需要改復(fù)合條件的判定為一系列只有單個條件的嵌套的判定。 條件語句 if a OR b 中條件a和條件b各有一個只有單個條件的判定結(jié)點。所謂獨立路徑,是指包括一組以前沒有處理的語句或條件的一條路徑。只要設(shè)計出的測試用例能夠確保這些基本路徑的執(zhí)行,就可以使得程序中的每個可執(zhí)行語句至少執(zhí)行一次,每個條件的取真和取假分支也能得到測試。 (a) 程序流程圖 (b) 控制流圖 程序流程圖與對應(yīng)的控制流圖 通常環(huán)路復(fù)雜性可用以下三種方法求得。 將環(huán)路復(fù)雜性定義為控制流圖中的區(qū)域數(shù)。 設(shè)E為控制流圖的邊數(shù),N為圖的結(jié)點數(shù),則定義環(huán)路復(fù)雜性為 V(G)=E-N+2。 若設(shè)P為控制流圖中的判定結(jié)點數(shù),則有 V(G)=P+1。其環(huán)路復(fù)雜性為4??梢該?jù)此得到應(yīng)該設(shè)計的測試用例的數(shù)目。(5) 等價類劃分等價類劃分是一種典型的黑盒測試方法。由于不可能用所有可以輸入的數(shù)據(jù)來測試程序,而只能從全部可供輸入的數(shù)據(jù)中選擇一個子集進行測試。解決的辦法之一就是等價類劃分。 有效等價類:是指對于程序規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。167。利用它,可以檢查程序中功能和性能的實現(xiàn)是否有不符合規(guī)格說明要求的地方。軟件不能都只接收合理的數(shù)據(jù),還要經(jīng)受意外的考驗,接受無效的或不合理的數(shù)據(jù),這樣獲得的軟件才能具有較高的可靠性。 按區(qū)間劃分:如果可能的輸入數(shù)據(jù)屬于一個取值范圍或值的個數(shù)限制范圍,則可以確立一個有效等價類和兩個無效等價類。 按數(shù)值劃分:如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對每個輸入值分別進行處理。167。167。② 確立測試用例在確立了等價類之后,建立等價類表,列出所有劃分出的等價類:再從劃分出的等價類中按以下原則選擇測試用例:167。 針對每一個無效等價類,設(shè)計一個測試用例來覆蓋它。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。 我們應(yīng)注意到這三個數(shù)值應(yīng)當(dāng)滿足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能構(gòu)成三角形。問題恰出現(xiàn)在容易被疏忽的邊界附近。使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于,或剛剛小于邊界的值做為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值做為測試
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1