版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
公共基礎(chǔ)知識第二三章本章主要內(nèi)容程序設(shè)計(jì)方法和風(fēng)格
結(jié)構(gòu)化程序設(shè)計(jì)
面向?qū)ο蟪绦蛟O(shè)計(jì)
2.1程序設(shè)計(jì)方法和風(fēng)格什么是程序(了解)指令的集合。(解釋指令)通過硬件控制系統(tǒng)自動完成某一功能。通過一系列代碼實(shí)現(xiàn)。程序設(shè)計(jì)語言計(jì)算機(jī)本身僅能識別二進(jìn)制代碼“0”、“1”。
高級語言,比如C、JAVA、BASIC等。在ACCESS中,我們使用的程序設(shè)計(jì)語言是VBA(visualbasicForapplication)編程最直接、最低級的就是機(jī)器語言。匯編語言,是中低級語言程序設(shè)計(jì)風(fēng)格(理解&記憶)基本概念:編寫程序時所表現(xiàn)出來的特點(diǎn)、習(xí)慣和邏輯思路。主要觀點(diǎn):清晰第一,效率第二。一般從以下四部分加以規(guī)范:源程序中的內(nèi)部文檔化:選擇標(biāo)示符的名字、注釋(注釋有兩種:序言性注釋和功能性注釋)、程序的視覺組織(空格、空行、縮進(jìn)等等)。數(shù)據(jù)說明:顯式地說明一切變量、數(shù)據(jù)說明的次序應(yīng)該規(guī)范化、便于查找變量(按順序排列)、對復(fù)雜數(shù)據(jù)結(jié)構(gòu)應(yīng)注釋說明語句的結(jié)構(gòu):每條語句簡單明了、盡量不用或少用GOTO語句、盡量只采用3種基本控制結(jié)構(gòu)編程輸入和輸出:對所有輸入數(shù)據(jù)進(jìn)行校驗(yàn)和合理性檢查、輸入輸出格式保持一致、設(shè)計(jì)良好的輸出報(bào)表程序設(shè)計(jì)三種方法結(jié)構(gòu)化設(shè)計(jì)法模塊內(nèi)部程序各部分要按照自頂向下的結(jié)構(gòu)劃分各程序部分應(yīng)按功能組合快速原型法(軟件工程法)利用現(xiàn)有的工具和原型方法快速地開發(fā)所要的程序面向?qū)ο蟪绦蛟O(shè)計(jì)法以現(xiàn)實(shí)世界的對象為核心,與人類習(xí)慣的思維方法一致程序設(shè)計(jì)方法:研究問題求解和系統(tǒng)構(gòu)造的軟件方法學(xué)不同的方法之間,可以相互交叉、相互借鑒2.2結(jié)構(gòu)化程序設(shè)計(jì)基本思想對大型的程序設(shè)計(jì),使用一些基本的結(jié)構(gòu)(總共有三種,分別是:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))來設(shè)計(jì)程序,無論多復(fù)雜的程序,都可以使用這些基本結(jié)構(gòu)按一定的順序組合起來。這些基本結(jié)構(gòu)的特點(diǎn)都是只有一個入口、一個出口。由這些基本結(jié)構(gòu)組成的程序就避免了任意轉(zhuǎn)移、閱讀起來需要來回尋找的問題?;窘Y(jié)構(gòu):順序、選擇、循環(huán)(理解&記憶)觀察下面6個流程圖設(shè)計(jì)原則(理解&記憶)自頂向下(對大型的程序設(shè)計(jì)而言,從最上層總體目標(biāo)開始設(shè)計(jì),然后不斷的分解—將我們的總體目標(biāo)分解成眾多的子目標(biāo))逐步求精(對分解之后的子模塊進(jìn)行詳細(xì)的設(shè)計(jì)、詳細(xì)的處理)模塊化(對分解完畢的子目標(biāo),沒實(shí)現(xiàn)一個子目標(biāo)的程序,就是一個模塊)限制使用goto語句1、使用程序設(shè)計(jì)語言中的順序、選擇、循環(huán)等優(yōu)先的控制結(jié)構(gòu)表示程序的控制邏輯2、使用的控制結(jié)構(gòu)只準(zhǔn)許有一個入口和一個出口3、程序語句組成容易識、認(rèn)的模塊,每一個模塊只有一個入口和一個出口4、復(fù)雜的結(jié)構(gòu)應(yīng)該使用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)5、嚴(yán)格控制goto語句的使用結(jié)構(gòu)化程序設(shè)計(jì)注意事項(xiàng)(了解)2.3面向?qū)ο蟪绦蛟O(shè)計(jì)基本思想
客觀世界中任何一個事物都可以被看成是一個對象,面向?qū)ο蠓椒ǖ谋举|(zhì)就是主張從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),系統(tǒng)中的對象及對象之間的關(guān)系能夠如實(shí)地反映問題域中固有的事物及其關(guān)系。
結(jié)構(gòu)化與面向?qū)ο蠓椒ū容^結(jié)構(gòu)化的分解突出過程,即如何做(Howtodo)?它強(qiáng)調(diào)代碼的功能是如何實(shí)現(xiàn)的;面向?qū)ο蟮姆纸馔怀霈F(xiàn)實(shí)世界和抽象的對象,即做什么(Whattodo)?主要優(yōu)點(diǎn)(記憶)與人類習(xí)慣的思維方法一致穩(wěn)定性好可重用性好易于開發(fā)大型軟件產(chǎn)品可維護(hù)性好面向?qū)ο蟪绦蛟O(shè)計(jì)主要考慮的是:提高軟件的可重用性!實(shí)例化和繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)現(xiàn)重用性的主要機(jī)制。面向?qū)ο蟮幕靖拍顚ο?Object):用來表示客觀世界中的任何實(shí)體,即應(yīng)用領(lǐng)域中有意義的、與所要解決的問題有關(guān)系的任何事物,都是可以作為對象的。它既可以是具體的物理實(shí)體的抽象,也可以是人為的概念,或者是任何具有明確邊界和意義的東西。對象=對象名+數(shù)據(jù)(屬性)【對象中的屬性,我們稱之為屬性,其作用是:用于描述對象的性質(zhì)】+作用于數(shù)據(jù)的操作(行為)一個對象把屬性和行為封裝為一個整體一個對象通??捎蓪ο竺?、屬性和操作3部分組成對象的基本特點(diǎn):標(biāo)識唯一性(區(qū)別于其他對象的屬性)、分類性(我們把相同類型的屬性的對象,分成一組)、多態(tài)性(不同的操作、或不同的消息可以產(chǎn)生的不同結(jié)果)、封裝性(將對象的數(shù)據(jù)、操作等完整的封裝起來,以便使得更好的對對象進(jìn)行描述。作用:既可以免遭封裝信息內(nèi)部信息的外泄,也可以保護(hù)封裝內(nèi)部的信息不受外部因素的干擾)、良好的模塊獨(dú)立性(由于多態(tài)性和封裝性,使得我們的對象具有良好的模塊獨(dú)立性)消息(Message)對象之間進(jìn)行通信的一種數(shù)據(jù)構(gòu)造,消息包括三個部分:接受消息對象名、消息標(biāo)識符、零個或多個參數(shù)。面向?qū)ο蟮幕靖拍铑?Class)類是具有共同屬性、共同方法的一組對象的集合類是在對象之上的抽象,對象是類的具體化,是類的實(shí)例
在這里,“學(xué)生”就是在描述了一個“類”的概念。而“學(xué)號”、“姓名”、“性別”則是對“學(xué)生”這個類的屬性說明,在經(jīng)過了對“類”中的屬性進(jìn)行了確切的賦值之后,我們就稱之為類的一個對象或?qū)嵗?。面向?qū)ο蟮幕靖拍罘庋b(Encapsulation)把“類”作為一個容器,將同類對象的屬性和方法封裝在一起。也就是說,將數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)銜接在一起,構(gòu)成一個具有類類型的對象的描述。對象的內(nèi)部實(shí)現(xiàn)受保護(hù),外界不能訪問,是想了對外部的信息隱藏如果,設(shè)計(jì)人員先從外部調(diào)用封裝內(nèi)部的信息,可以通過定義好的接口來為外部提供調(diào)用面向?qū)ο蟮幕靖拍罾^承(Inheritance)繼承是父類和子類之間共享數(shù)據(jù)的方法的機(jī)制(也就是說,如果我們要通過面向?qū)ο蟮某绦蛟O(shè)計(jì)來進(jìn)行數(shù)據(jù)的共享,那么可以通過什么樣的機(jī)制來共享呢?答曰:繼承。反過來說,面向?qū)ο蟮某绦蛟O(shè)計(jì)中間,共享數(shù)據(jù)的方法是哪一種機(jī)制?答曰:繼承機(jī)制。)一個子類可以繼承它的父類(或祖先類)中的屬性和操作子類中可以定義自己的屬性和操作單重繼承、多重繼承在這里面,有一個“學(xué)生”的類,這個類有兩個屬性“姓名”、“性別”,而下面的“高中學(xué)生”,不僅包含了“學(xué)生”類的兩個屬性“姓名”、“性別”,還多出了一個特有的屬性——“文理科”。此時,“學(xué)生”就被稱之為父類,“高中學(xué)生”就被稱之為子類。(如果父類只能派生出一個子類,就稱之為單繼承。如果父類只能派生出多個子類,就稱之為多類繼承)多態(tài)性(Polymorphism)不同的對象收到同一消息可以產(chǎn)生完全不同的結(jié)構(gòu),這一現(xiàn)象叫做多態(tài)性多態(tài)的實(shí)現(xiàn)受到繼承的支持二章知識點(diǎn)什么是程序?程序設(shè)計(jì)的風(fēng)格有哪些(4個)程序設(shè)計(jì)的三種基本方法(結(jié)構(gòu)化方法、原型法、面向?qū)ο螅C(jī)構(gòu)化程序設(shè)計(jì)方法的四個主要原則(自頂而下、逐步求精、模塊化、限制使用GOTO語句)結(jié)構(gòu)化設(shè)計(jì)的三種基本結(jié)構(gòu)(順序、選擇、循環(huán))什么叫:對象、類對象的三個基本組成(對象標(biāo)識、屬性、操作)及五個基本特點(diǎn)(標(biāo)識唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性)類的基本特征(抽象性、繼承性、封裝性、多態(tài)性)第三章軟件工程基礎(chǔ)本章主要內(nèi)容軟件工程基本概念
結(jié)構(gòu)化分析、設(shè)計(jì)方法
軟件測試
程序的調(diào)試
軟件的定義(記憶)軟件(software)是計(jì)算機(jī)系統(tǒng)中與硬件(hardware)相互依存的另一部分。軟件包括三個部分:程序(program)、相關(guān)數(shù)據(jù)(data)、說明文檔(document)。軟件按照功能可以分為三類:應(yīng)用軟件(為了解決某一方面的實(shí)際應(yīng)用而開發(fā)的相關(guān)系統(tǒng))、系統(tǒng)軟件(為了對整個計(jì)算機(jī)的資源,包括硬件資源和軟件資源,進(jìn)行管理和調(diào)用的軟件)、支撐軟件(包括各種各樣的工具的軟件)。3.1軟件工程基本概念軟件的特點(diǎn)(了解)軟件沒有明顯的制造過程。(軟件的制造,明顯不同于一般工業(yè)品的制造)軟件在使用過程中,沒有磨損、老化問題(軟件在使用的過程中,不會像一般的工業(yè)品那樣出現(xiàn)磨損、老化的問題。軟件只會隨著軟件領(lǐng)域的發(fā)展,在現(xiàn)實(shí)的情況下這個軟件已不再適應(yīng)當(dāng)前要求時候,就會要求我們編制新的軟件以替代當(dāng)前軟件)軟件是一種邏輯實(shí)體,不是物理實(shí)體,具有抽象性。(也就是說,我們使用的軟件(最常用的就是QQ通訊軟件),我們只有運(yùn)行它再通過顯示設(shè)備,才能夠看到它的運(yùn)行并感受到他。)軟件是復(fù)雜的,以后會更復(fù)雜,而且軟件的成本相當(dāng)昂貴軟件工作牽涉到很多社會因素軟件的特點(diǎn)(了解)軟件依賴與硬件和環(huán)境,導(dǎo)致了移植問題(我們的某些軟件,是要與特定的硬件和環(huán)境先適應(yīng)的。某一種軟件,只能應(yīng)用于某一特殊的硬件和環(huán)境,而同一軟件移植到另一種硬件和環(huán)境的時候,就會出現(xiàn)問題)軟件危機(jī)(記憶)早期的軟件主要指程序,采用個體工作方式,缺少相關(guān)文檔,質(zhì)量低,維護(hù)困難,這些問題稱為“軟件危機(jī)”,軟件的特點(diǎn)導(dǎo)致了軟件危機(jī)的提出,工程概念的出現(xiàn)源自于軟件危機(jī)。軟件工程(記憶)軟件工程是指應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來解決軟件問題的工程。其目的是提高軟件生產(chǎn)率、提高軟件質(zhì)量、降低軟件成本。軟件工程基本目標(biāo)(了解)在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。軟件工程原則(理解&記憶):抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。1)抽象:抽象是事物最基本的特性和行為,忽略非本質(zhì)細(xì)節(jié),采用分層次抽象,自頂向下,逐層細(xì)化來控制軟件開發(fā)過程的復(fù)雜性。2)信息隱蔽:采用封裝技術(shù),將程序模塊的實(shí)現(xiàn)細(xì)節(jié)隱蔽起來,使模塊接口盡量簡單。3)模塊化:模塊是程序中相對獨(dú)立的成分,一個獨(dú)立的編程單位。模塊的大小要適中,過大模塊內(nèi)部復(fù)雜性增加,太小整個系統(tǒng)過于復(fù)雜。4)局部化:保證模塊間具有松耦合性,模塊內(nèi)部有高內(nèi)聚性。5)確定性:軟件中所有概念的表達(dá)應(yīng)是確定、無歧義且規(guī)范的。6)一致性:內(nèi)外部接口保持一致,系統(tǒng)規(guī)格說明與行為保持一致。7)完備性:軟件系統(tǒng)不丟失任何重要成分,完全實(shí)現(xiàn)系統(tǒng)所需功能。8)可驗(yàn)證性:遵循容易檢查、測評、評審原則,確保系統(tǒng)正確性軟件工程三要素(記憶)方法:完成軟件工程項(xiàng)目的技術(shù)手段工具:支持軟件的開發(fā)、管理、文檔生成過程:支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理軟件工具和軟件開發(fā)環(huán)境(記憶)軟件工具(CASE):用來輔助軟件開、運(yùn)行、維護(hù)、管理、支持等過程中的活動的軟件軟件開發(fā)環(huán)境:支持軟件產(chǎn)品開發(fā)的軟件系統(tǒng),它由軟件工具集和環(huán)境集成機(jī)制構(gòu)成軟件開發(fā)技術(shù),包括軟件開發(fā)方法學(xué)、開發(fā)過程和軟件工程環(huán)境,其中主要的內(nèi)容是軟件開發(fā)方法學(xué)軟件生命周期(記憶&理解)軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個階段。1)軟件定義階段:包括制定計(jì)劃和需求分析。制定計(jì)劃:確定總目標(biāo);可行性研究;探討解決方案;制定開發(fā)計(jì)劃。需求分析:對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義。2)軟件開發(fā)階段:軟件設(shè)計(jì):分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個部分。軟件實(shí)現(xiàn):把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。軟件測試:在設(shè)計(jì)測試用例的基礎(chǔ)上檢驗(yàn)軟件的各個組成部分。3)軟件運(yùn)行維護(hù)階段(生命周期中花費(fèi)最多的階段):軟件投入運(yùn)行,并在使用中不斷地維護(hù),進(jìn)行必要的擴(kuò)充和刪改。需求分析(記憶)用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求的過程。需求分析將創(chuàng)建所需的數(shù)據(jù)模型、功能模型和控制模型。需求分析的四步驟(記憶)需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審3.2結(jié)構(gòu)化分析方法路徑覆蓋:使程序中所有的可能的路徑都至少經(jīng)歷一次。等價(jià)類劃分法:典型黑盒測試方法,將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若干等價(jià)類),然后從每個等價(jià)類中選取數(shù)據(jù)作為測試用例。把“類”作為一個容器,將同類對象的屬性和方法封裝在一起。4)局部化:保證模塊間具有松耦合性,模塊內(nèi)部有高內(nèi)聚性。結(jié)構(gòu)化與面向?qū)ο蠓椒ū容^軟件工作牽涉到很多社會因素軟件依賴與硬件和環(huán)境,導(dǎo)致了移植問題(我們的某些軟件,是要與特定的硬件和環(huán)境先適應(yīng)的。數(shù)據(jù)字典常包括5個部分(記憶):數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流(描述了數(shù)據(jù)流圖中的數(shù)據(jù)流向)、數(shù)據(jù)存儲(描述了數(shù)據(jù)流圖中的文件)、數(shù)據(jù)處理(描述了數(shù)據(jù)流圖中的加工,也就是圓圈所定義的內(nèi)容)。歸納法:從錯誤征兆著手,通過分析它們之間的關(guān)系來找出錯誤。面向?qū)ο蟮姆纸馔怀霈F(xiàn)實(shí)世界和抽象的對象,即做什么(Whattodo)?模塊獨(dú)立性:軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,和軟件系統(tǒng)中其他模塊的接口是簡單的。軟件工程三要素(記憶)軟件是復(fù)雜的,以后會更復(fù)雜,而且軟件的成本相當(dāng)昂貴3)編寫概要設(shè)計(jì)文檔面向數(shù)據(jù)流的結(jié)構(gòu)分析法(SA)需求分析的方法(了解)結(jié)構(gòu)化分析方法:結(jié)構(gòu)化程序設(shè)計(jì)理論在需求分析紅的運(yùn)用,目的是幫助弄清用戶對軟件的需求,建立系統(tǒng)的邏輯模型面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)法(DSSD)面向數(shù)據(jù)結(jié)構(gòu)的Jackson系統(tǒng)開發(fā)法(JSD)面向數(shù)據(jù)流的結(jié)構(gòu)分析法(SA)面向?qū)ο蟮姆治龇椒ǎ好嫦驅(qū)ο筌浖こ谭椒ㄔ谛枨蠓治鲋械膽?yīng)用常用工具(記憶)數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹、判定表開發(fā)策略自頂向下,逐層分解需求分析階段的結(jié)果:軟件需求規(guī)格說明書(RSR)作用:便于用戶與開發(fā)人員進(jìn)行理解和交流,反應(yīng)系統(tǒng)的問題結(jié)構(gòu),作為系統(tǒng)開發(fā)的基礎(chǔ)和依據(jù),作為測試盒驗(yàn)收的依據(jù)評價(jià)標(biāo)準(zhǔn):正確性、奇異性、完整性、可驗(yàn)證性、可理解性、可修改性、可追蹤性,其中最重要的是:正確性數(shù)據(jù)流圖(DFD):以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,它反映了系統(tǒng)必須完成的邏輯功能,是結(jié)構(gòu)化分析方法中用于表示系統(tǒng)邏輯模型的一種工具。
加工
存儲文件
源、潭數(shù)據(jù)流
加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,旁邊標(biāo)注數(shù)據(jù)流名。存儲文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。源、潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體。
畫數(shù)據(jù)流圖的基本步驟(記憶)
自外向內(nèi),自頂向下,逐層細(xì)化,完善求精數(shù)據(jù)流圖的示例
數(shù)據(jù)字典(DD)(記憶):對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列表,是與系統(tǒng)相關(guān)的數(shù)據(jù)定義的集合。其作用是對數(shù)據(jù)流圖中出現(xiàn)的被命名的圖形元素的確切解釋。數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心。數(shù)據(jù)字典常包括5個部分(記憶):數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流(描述了數(shù)據(jù)流圖中的數(shù)據(jù)流向)、數(shù)據(jù)存儲(描述了數(shù)據(jù)流圖中的文件)、數(shù)據(jù)處理(描述了數(shù)據(jù)流圖中的加工,也就是圓圈所定義的內(nèi)容)。判斷樹(了解):又稱為決策樹,是一種描述加工的圖形數(shù)據(jù),適合描述問題里中具有多個判斷,而且每個決策與若干條件有關(guān)。使用判定數(shù)進(jìn)行描述時,應(yīng)該從問題的文字描述中分清哪些是判定條件,那些是判定的決策,根據(jù)描述材料中的連接詞找出判定條件的從屬關(guān)系、并列關(guān)系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹
判斷表(了解):當(dāng)數(shù)據(jù)流圖中的加工依賴多個邏輯條件的取值,即完成該數(shù)值的一組動作|是由于某一組條件取值的組合而引發(fā)的,在此情況下,使用判斷表比較合適。軟件需求規(guī)格說明書(SRS)
:需求分析階段的最后成果,通過建立完整的信息描述、詳細(xì)的功能和行為描述、性能需求和設(shè)計(jì)約束的說明、合適的驗(yàn)收標(biāo)準(zhǔn),給出對目標(biāo)軟件的各種需求。需求分析主要解決“做什么”的問題,確定系統(tǒng)的邏輯模型。而軟件設(shè)計(jì)主要解決“怎么做”的問題,其基本目標(biāo)使用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何讓完成預(yù)定任務(wù),確定系統(tǒng)的物理模型。
從技術(shù)觀點(diǎn)來看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)。(記憶)結(jié)構(gòu)設(shè)計(jì):定義軟件系統(tǒng)各主要部件之間的關(guān)系。數(shù)據(jù)設(shè)計(jì):將分析時創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。接口設(shè)計(jì):描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信。過程設(shè)計(jì):把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程性描述
從工程角度來看,軟件設(shè)計(jì)分兩步完成,即概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。(記憶)概要設(shè)計(jì):又稱結(jié)構(gòu)設(shè)計(jì),將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu);確定系統(tǒng)級接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式;編寫概要設(shè)計(jì)文檔、概要設(shè)計(jì)文檔評審。詳細(xì)設(shè)計(jì):確定每個模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。軟件設(shè)計(jì)基本原理:抽象、模塊化、信息隱蔽和模塊獨(dú)立性。(記憶)抽象:抽象是一種思維工具,就是把事物本質(zhì)的共同特性提取出來而不考慮其他細(xì)節(jié)。模塊化:解決一個復(fù)雜問題時自頂向下逐步把軟件系統(tǒng)劃分成較小的、相對獨(dú)立但又不相互關(guān)聯(lián)的模塊的過程。信息隱蔽:模塊的實(shí)施細(xì)節(jié)對于其他模塊來說是隱蔽的。模塊獨(dú)立性:軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,和軟件系統(tǒng)中其他模塊的接口是簡單的。模塊獨(dú)立性指標(biāo):耦合性和內(nèi)聚性模塊劃分原則是:高內(nèi)聚度,低耦合度模塊之間的依賴性越高,耦合性就越高,模塊的獨(dú)立性就越弱??傮w設(shè)計(jì)(概要設(shè)計(jì))基本任務(wù)1)設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)3)編寫概要設(shè)計(jì)文檔4)概要設(shè)計(jì)文檔評審軟件結(jié)構(gòu)設(shè)計(jì)工具—結(jié)構(gòu)圖(程序結(jié)構(gòu)圖)程序結(jié)構(gòu)圖的基本圖符(記憶)矩形表示模塊,箭頭表示模塊間的調(diào)用關(guān)系用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息
實(shí)心圓箭頭表示控制信息,空心圓箭頭表示數(shù)據(jù)信息軟件結(jié)構(gòu)設(shè)計(jì)工具—結(jié)構(gòu)圖(程序結(jié)構(gòu)圖)常用結(jié)構(gòu)圖的四種模塊類型(記憶)傳入模塊:從下屬模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給上級模塊。傳出模塊:從上級模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給下屬模塊。變換模塊:從上級模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其他形式,再傳送給上級模塊。協(xié)調(diào)模塊:對所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。軟件結(jié)構(gòu)設(shè)計(jì)工具—結(jié)構(gòu)圖(程序結(jié)構(gòu)圖)(不需掌握)結(jié)構(gòu)圖例及術(shù)語深度:表示控制的層數(shù)。本圖例有5曾寬度:整體控制跨度扇入:調(diào)用一個給定模塊的模塊個數(shù)。扇出:一個模塊直接調(diào)用的其他模塊數(shù)。上級模塊、從屬模塊:上、下兩層模塊a和b,且有a調(diào)用b,則a是上級模塊,b是從屬模塊。原子模塊:樹中位于葉子結(jié)點(diǎn)的模塊。
軟件結(jié)構(gòu)設(shè)計(jì)工具—結(jié)構(gòu)圖(程序結(jié)構(gòu)圖)面向數(shù)據(jù)流的設(shè)計(jì)方法定義了一些不同的映射方法,利用這些方法可以把數(shù)據(jù)流圖變換成結(jié)構(gòu)圖表示軟件的結(jié)構(gòu)。
數(shù)據(jù)流類型:變換型和事務(wù)型(記憶)
變換型:變換型數(shù)據(jù)處理問題的工作過程大致分為三步,即取得數(shù)據(jù)、變換數(shù)據(jù)和輸出數(shù)據(jù)。變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分組成。事務(wù)型:事務(wù)型數(shù)據(jù)處理問題的工作機(jī)理是接受一項(xiàng)事務(wù),根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì),選擇分派一個適當(dāng)?shù)奶幚韱卧?,然后給出結(jié)果。高腰設(shè)計(jì)的優(yōu)化準(zhǔn)則(了解)改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性模塊規(guī)模要適中模塊的作用范圍應(yīng)該保持在模塊的控制范圍內(nèi)軟件結(jié)構(gòu)的深度、寬度、扇入、扇出要適當(dāng)降低模塊接口的復(fù)雜度設(shè)計(jì)單入口、單出口的模塊模塊的功能可預(yù)測詳細(xì)設(shè)計(jì)基本任務(wù)為軟件結(jié)構(gòu)圖中的每個模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)常用設(shè)計(jì)工具(記憶)圖形工具:程序流程圖、N-S(方盒圖)、PAD(問題分析圖)和HIPO(層次圖+輸入/處理/輸出圖)。表格工具:判定表。語言工具:PDL(偽碼)3.3軟件測試目的、意義、人員(記憶)通過合理的設(shè)計(jì)測試用例以最少的人力和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷。也就是說,軟件測試的目的就是:檢查錯誤,并對錯誤進(jìn)行修改,但不能證明程序之中沒有錯誤(因?yàn)檐浖且豁?xiàng)綜合的龐大工程,錯誤可能會出現(xiàn)在多處)保證系統(tǒng)質(zhì)量(滿足需求規(guī)格)和可靠性由開發(fā)人員、用戶一起完成測試基本方法(記憶)人工測試(靜態(tài)測試):評審軟件文檔或程序,包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。不實(shí)際運(yùn)行軟件,主要通過人工進(jìn)行。機(jī)器測試(動態(tài)測試):通過運(yùn)行軟件,來檢驗(yàn)結(jié)果的正確性。主要包括白盒測試方法和黑盒測試方法。
白盒測試(結(jié)構(gòu)測試、邏輯驅(qū)動測試)(記憶)將軟件看成透明的白盒,根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯結(jié)構(gòu)來設(shè)計(jì)測試?yán)?,對程序的路徑和過程進(jìn)行測試,檢查是否滿足設(shè)計(jì)的要求。也就是說,白盒測試是對內(nèi)部程序進(jìn)行的測試。白盒測試基本原則(了解)保證所測模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保證所測模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。
測試用例根據(jù)程序內(nèi)部邏輯設(shè)計(jì),主要用于軟件的單元測試。出現(xiàn)讓大家判斷黑、白盒測試的時候,只要是關(guān)于程序的,就都是白盒測試。白盒測試用例主要設(shè)計(jì)方法有(記憶)邏輯覆蓋:指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測試用例設(shè)計(jì)技術(shù)?;韭窂綔y試:根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測試用例,對每一條獨(dú)立執(zhí)行路徑進(jìn)行測試。邏輯覆蓋設(shè)計(jì)的基本內(nèi)容(利用測試用例)(了解)語句覆蓋:使得程序每一個語句至少都能被執(zhí)行一次。路徑覆蓋:使程序中所有的可能的路徑都至少經(jīng)歷一次。判定覆蓋:保證程序中每個判斷的每個取值分支(T或F)至少經(jīng)歷一次。條件覆蓋:保證程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。判斷-條件覆蓋:使判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷的所有可能取值分支至少執(zhí)行一次。邏輯覆蓋強(qiáng)度依次是:語句覆蓋<路徑覆蓋<判定覆蓋<條件覆蓋<判斷-條件覆蓋
黑盒測試(功能測試)將軟件看成黑盒子,不考慮程序內(nèi)部細(xì)節(jié)、結(jié)構(gòu)和實(shí)現(xiàn)方式,僅僅測試軟件的基本功能是否滿足需要。黑盒測試主要用于軟件的確認(rèn)測試,看是否實(shí)現(xiàn)了功能說明書的預(yù)期目標(biāo)。根據(jù)程序的功能說明來設(shè)計(jì)測試用例,基本設(shè)計(jì)方法有(記憶)等價(jià)類劃分法:典型黑盒測試方法,將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若干等價(jià)類),然后從每個等價(jià)類中選取數(shù)據(jù)作為測試用例。邊界值分析法:它是對各種輸入、輸出范圍的邊界情況設(shè)計(jì)測試用例的方法。錯誤推測法:人們可以靠經(jīng)驗(yàn)和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的用例。
軟件測試分四個步驟,從小到大依次是(記憶):單元測試、集成測試、確認(rèn)測試(驗(yàn)收測試)、系統(tǒng)測試。測試對象:對軟件的最小單位—模塊進(jìn)行測試測試目的是:發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯誤。測試用例設(shè)計(jì):根據(jù)程序的內(nèi)部結(jié)構(gòu),其依據(jù)是詳細(xì)的設(shè)計(jì)說明書的源程序測試技術(shù):通常以白盒測試為主,輔之以黑盒測試。單元測試內(nèi)容:模塊接口測試,局部數(shù)據(jù)結(jié)構(gòu)測試,錯誤處理測試,邊界測試。單元測試測試對象:將模塊組裝起來后進(jìn)行測試,測試目的是:發(fā)現(xiàn)與接口有關(guān)的錯誤。
測試用例設(shè)計(jì):根據(jù)概要測試說明書測試內(nèi)容:軟件單元的接口測試,全局?jǐn)?shù)據(jù)結(jié)構(gòu)與測試,邊界條件和非法輸入測試等模塊組裝方式:非增量方式組裝(將所有模塊一次性的全部進(jìn)行測試地方法)和增量方式(先測試幾個模塊,通過之后再往這幾個通過測試的模塊上再添加模塊地方法)組裝。軟件測試分四個步驟,從小到大依次是(記憶):單元測試、集成測試、確認(rèn)測試(驗(yàn)收測試)、系統(tǒng)測試。集成測試任務(wù):驗(yàn)證軟件的有效性。也就是說,用戶根據(jù)合同進(jìn)行確認(rèn),以確認(rèn)系統(tǒng)功能和性能的可接受性。測試用例設(shè)計(jì):軟件需求說明書測試方法:主要用于黑盒測試。軟件測試分四個步驟,從小到大依次是(記憶):單元測試、集成測試、確認(rèn)測試(驗(yàn)收測試)、系統(tǒng)測試。確認(rèn)測試模塊獨(dú)立性指標(biāo):耦合性和內(nèi)聚性基本路徑測試:根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測試用例,對每一條獨(dú)立執(zhí)行路徑進(jìn)行測試。保證所測模塊中每一獨(dú)立路徑至少執(zhí)行一次;畫數(shù)據(jù)流圖的基本步驟(記憶)計(jì)算機(jī)軟件由那三部分組成(程序、數(shù)據(jù)、文檔),與程序的區(qū)別是什么?模塊獨(dú)立性:軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,和軟件系統(tǒng)中其他模塊的接口是簡單的。對大型的程序設(shè)計(jì),使用一些基本的結(jié)構(gòu)(總共有三種,分別是:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))來設(shè)計(jì)程序,無論多復(fù)雜的程序,都可以使用這些基本結(jié)構(gòu)按一定的順序組合起來。原因排除法(演繹、歸納、二分法)反過來說,面向?qū)ο蟮某绦蛟O(shè)計(jì)中間,共享數(shù)據(jù)的方法是哪一種機(jī)制?答曰:繼承機(jī)制。軟件工程是指應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來解決軟件問題的工程。加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。等價(jià)類劃分法:典型黑盒測試方法,將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若干等價(jià)類),然后從每個等價(jià)類中選取數(shù)據(jù)作為測試用例。信息隱蔽:模塊的實(shí)施細(xì)節(jié)對于其他模塊來說是隱蔽的。測試對象:將模塊組裝起來后進(jìn)行測試,軟件在使用過程中,沒有磨損、老化問題(軟件在使用的過程中,不會像一般的工業(yè)品那樣出現(xiàn)磨損、老化的問題。任務(wù):將軟件系統(tǒng)與硬件、外設(shè)及其他元素結(jié)合在一起,對整個軟件系統(tǒng)進(jìn)行測試,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。
測試用例設(shè)計(jì):需求分析規(guī)格說明書基本內(nèi)容:功能測試、性能測試、操作測試、配置測試、外部接口測試、安全性測試等等軟件測試分四個步驟,從小到大依次是(記憶):單元測試、集成測試、確認(rèn)測試(驗(yàn)收測試)、系統(tǒng)測試。系統(tǒng)測試基本任務(wù)根據(jù)測試時發(fā)現(xiàn)的錯誤,找出其原因和具體的位置,進(jìn)行相應(yīng)地更改。在開放階段,由開發(fā)人員來進(jìn)行,誰開發(fā)的程序就由誰來進(jìn)行調(diào)試?;静襟E①錯誤定位、②錯誤糾正、③回歸測試,防止引入新的錯誤軟件調(diào)試可分為靜態(tài)調(diào)試和動態(tài)調(diào)試。靜態(tài)調(diào)試主要是指通過人的思維來分析源程序代碼和排錯,是主要的調(diào)試手段,而動態(tài)調(diào)試是輔助靜態(tài)調(diào)試。
3.4軟件的調(diào)試回溯法排錯:發(fā)現(xiàn)了錯誤,分析錯誤征兆,確定發(fā)現(xiàn)“癥狀”的位置。1、使用程序設(shè)計(jì)語言中的順序、選擇、循環(huán)等優(yōu)先的控制結(jié)構(gòu)表示程序的控制邏輯詳細(xì)設(shè)計(jì):確定每個模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。各程序部分應(yīng)按功能組合等價(jià)類劃分法:典型黑盒測試方法,將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若干等價(jià)類),然后從每個等價(jià)類中選取數(shù)據(jù)作為測試用例。(也就是說,我們使用的軟件(最常用的就是QQ通訊軟件),我們只有運(yùn)行它再通過顯示設(shè)備,才能夠看到它的運(yùn)行并感受到他。保證所測模塊中每一獨(dú)立路徑至少執(zhí)行一次;基本路徑測試:根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測試用例,對每一條獨(dú)立執(zhí)行路徑進(jìn)行測試。測試對象:將模塊組裝起來后進(jìn)行測試,軟件工程三要素(記憶)邊界值分析法:它是對各種輸入、輸出范圍的邊界情況設(shè)計(jì)測試用例的方法。詳細(xì)設(shè)計(jì):確定每個模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。軟件工程原則(理解&記憶):抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。軟件結(jié)構(gòu)設(shè)計(jì)工具—結(jié)構(gòu)圖(程序結(jié)構(gòu)圖)軟件在使用過程中,沒有磨損、老化問題(軟件在使用的過程中,不會像一般的工業(yè)品那樣出現(xiàn)磨損、老化的問題。調(diào)試的主要方法強(qiáng)行排錯:通過內(nèi)存全部打印來排錯;在程序特定部位設(shè)置打印語句;自動調(diào)試工具。
回溯法排錯:發(fā)現(xiàn)了錯誤,分析錯誤征兆,確定發(fā)現(xiàn)“癥狀”的位置。一般用于小程序。
原因排除法(演繹、歸納、二分法)演繹法:根據(jù)已有的測試用例,設(shè)想及枚舉出所有可能出錯的原因作為假設(shè);然后再用原始測試數(shù)據(jù)或新的測試,從中逐個排除不可能正確的假設(shè);最后,再用測試數(shù)據(jù)驗(yàn)證余下的假設(shè)確定出錯的原因。歸納法:從錯誤征兆著手,通過分析它們之間的關(guān)系來找出錯誤。大致分四步:收集有關(guān)的數(shù)據(jù);組織數(shù)據(jù);提出假
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度集成電路產(chǎn)品品牌推廣與市場營銷合同3篇
- 二零二五年度水果種植基地土地流轉(zhuǎn)合同3篇
- 2024美團(tuán)外賣店外賣配送區(qū)域合作合同范本3篇
- 2025年度零星土建工程合同糾紛調(diào)解合同4篇
- 二零二五版貴金屬保管與寄售服務(wù)合同2篇
- 2024中考語文復(fù)習(xí)方案原創(chuàng)閱讀議論文閱讀
- 2024這份簽訂勞動合同指南請查收
- 二零二五年度農(nóng)業(yè)科技合作合同會簽書3篇
- 二零二五年騰訊新聞客戶端品牌宣傳與推廣合同3篇
- 2025年度臨時倉儲空間共享租賃及增值服務(wù)合同4篇
- 常見老年慢性病防治與護(hù)理課件整理
- 履約情況證明(共6篇)
- 云南省迪慶藏族自治州各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 設(shè)備機(jī)房出入登記表
- 六年級語文-文言文閱讀訓(xùn)練題50篇-含答案
- 醫(yī)用冰箱溫度登記表
- 零售學(xué)(第二版)第01章零售導(dǎo)論
- 大學(xué)植物生理學(xué)經(jīng)典05植物光合作用
- 口袋妖怪白金光圖文攻略2周目
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
- 三年級下冊生字組詞(帶拼音)
評論
0/150
提交評論