公共基礎(chǔ)知識第二三章_第1頁
公共基礎(chǔ)知識第二三章_第2頁
公共基礎(chǔ)知識第二三章_第3頁
公共基礎(chǔ)知識第二三章_第4頁
公共基礎(chǔ)知識第二三章_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、公共基礎(chǔ)知識第二三章第1頁,共67頁,2022年,5月20日,6點10分,星期一本章主要內(nèi)容程序設(shè)計方法和風(fēng)格 結(jié)構(gòu)化程序設(shè)計 面向?qū)ο蟪绦蛟O(shè)計 第2頁,共67頁,2022年,5月20日,6點10分,星期一2.1 程序設(shè)計方法和風(fēng)格 什么是程序(了解) 指令的集合。(解釋指令) 通過硬件控制系統(tǒng)自動完成某一功能。 通過一系列代碼實現(xiàn)。 程序設(shè)計語言 計算機(jī)本身僅能識別二進(jìn)制代碼“0”、“1”。 高級語言,比如C、JAVA、BASIC等。在ACCESS中,我們使用的程序設(shè)計語言是VBA(visual basic For application)編程最直接、最低級的就是機(jī)器語言。 匯編語言,是中低

2、級語言第3頁,共67頁,2022年,5月20日,6點10分,星期一程序設(shè)計風(fēng)格 (理解&記憶 ) 基本概念:編寫程序時所表現(xiàn)出來的特點、習(xí)慣和邏輯思路。主要觀點:清晰第一,效率第二。一般從以下四部分加以規(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)行校驗和合理性檢查、輸入輸出格式保持一

3、致、設(shè)計良好的輸出報表第4頁,共67頁,2022年,5月20日,6點10分,星期一第5頁,共67頁,2022年,5月20日,6點10分,星期一程序設(shè)計三種方法 結(jié)構(gòu)化設(shè)計法 模塊內(nèi)部程序各部分要按照自頂向下的結(jié)構(gòu)劃分 各程序部分應(yīng)按功能組合 快速原型法(軟件工程法) 利用現(xiàn)有的工具和原型方法快速地開發(fā)所要的程序 面向?qū)ο蟪绦蛟O(shè)計法 以現(xiàn)實世界的對象為核心,與人類習(xí)慣的思維方法一致程序設(shè)計方法:研究問題求解和系統(tǒng)構(gòu)造的軟件方法學(xué) 不同的方法之間,可以相互交叉、相互借鑒第6頁,共67頁,2022年,5月20日,6點10分,星期一2.2 結(jié)構(gòu)化程序設(shè)計 基本思想 對大型的程序設(shè)計,使用一些基本的結(jié)構(gòu)

4、(總共有三種,分別是:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))來設(shè)計程序,無論多復(fù)雜的程序,都可以使用這些基本結(jié)構(gòu)按一定的順序組合起來。這些基本結(jié)構(gòu)的特點都是只有一個入口、一個出口。由這些基本結(jié)構(gòu)組成的程序就避免了任意轉(zhuǎn)移、閱讀起來需要來回尋找的問題。第7頁,共67頁,2022年,5月20日,6點10分,星期一基本結(jié)構(gòu):順序、選擇、循環(huán)(理解&記憶) 觀察下面6個流程圖第8頁,共67頁,2022年,5月20日,6點10分,星期一設(shè)計原則 (理解&記憶)自頂向下(對大型的程序設(shè)計而言,從最上層總體目標(biāo)開始設(shè)計,然后不斷的分解將我們的總體目標(biāo)分解成眾多的子目標(biāo)) 逐步求精 (對分解之后的子模塊進(jìn)行詳細(xì)的設(shè)計

5、、詳細(xì)的處理)模塊化(對分解完畢的子目標(biāo),沒實現(xiàn)一個子目標(biāo)的程序,就是一個模塊) 限制使用goto語句第9頁,共67頁,2022年,5月20日,6點10分,星期一1、使用程序設(shè)計語言中的順序、選擇、循環(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)行組合嵌套來實現(xiàn)5、嚴(yán)格控制goto語句的使用結(jié)構(gòu)化程序設(shè)計注意事項(了解) 第10頁,共67頁,2022年,5月20日,6點10分,星期一2.3 面向?qū)ο蟪绦蛟O(shè)計基本思想 客觀世界中任何一個事物都可以被看成是一

6、個對象,面向?qū)ο蠓椒ǖ谋举|(zhì)就是主張從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),系統(tǒng)中的對象及對象之間的關(guān)系能夠如實地反映問題域中固有的事物及其關(guān)系。 結(jié)構(gòu)化與面向?qū)ο蠓椒ū容^ 結(jié)構(gòu)化的分解突出過程,即如何做(How to do)?它強(qiáng)調(diào)代碼的功能是如何實現(xiàn)的; 面向?qū)ο蟮姆纸馔怀霈F(xiàn)實世界和抽象的對象,即做什么(What to do)?第11頁,共67頁,2022年,5月20日,6點10分,星期一主要優(yōu)點(記憶) 與人類習(xí)慣的思維方法一致 穩(wěn)定性好 可重用性好 易于開發(fā)大型軟件產(chǎn)品 可維護(hù)性好面向?qū)ο蟪绦蛟O(shè)計主要考慮的是:提高軟件的可重用性!實例化和繼承性是面向?qū)ο蟪绦蛟O(shè)計實現(xiàn)重用性的主要機(jī)制。第12頁

7、,共67頁,2022年,5月20日,6點10分,星期一面向?qū)ο蟮幕靖拍顚ο?Object):用來表示客觀世界中的任何實體,即應(yīng)用領(lǐng)域中有意義的、與所要解決的問題有關(guān)系的任何事物,都是可以作為對象的。它既可以是具體的物理實體的抽象,也可以是人為的概念,或者是任何具有明確邊界和意義的東西。對象=對象名+數(shù)據(jù)(屬性)【對象中的屬性,我們稱之為屬性,其作用是:用于描述對象的性質(zhì)】+作用于數(shù)據(jù)的操作(行為) 一個對象把屬性和行為封裝為一個整體 一個對象通常可由對象名、屬性和操作3部分組成第13頁,共67頁,2022年,5月20日,6點10分,星期一對象的基本特點:標(biāo)識唯一性(區(qū)別于其他對象的屬性)、分

8、類性(我們把相同類型的屬性的對象,分成一組)、多態(tài)性(不同的操作、或不同的消息可以產(chǎn)生的不同結(jié)果)、封裝性(將對象的數(shù)據(jù)、操作等完整的封裝起來,以便使得更好的對對象進(jìn)行描述。作用:既可以免遭封裝信息內(nèi)部信息的外泄,也可以保護(hù)封裝內(nèi)部的信息不受外部因素的干擾)、良好的模塊獨立性(由于多態(tài)性和封裝性,使得我們的對象具有良好的模塊獨立性)第14頁,共67頁,2022年,5月20日,6點10分,星期一消息(Message) 對象之間進(jìn)行通信的一種數(shù)據(jù)構(gòu)造,消息包括三個部分:接受消息對象名、消息標(biāo)識符、零個或多個參數(shù)。面向?qū)ο蟮幕靖拍铑?Class)類是具有共同屬性、共同方法的一組對象的集合類是在對象

9、之上的抽象,對象是類的具體化,是類的實例 第15頁,共67頁,2022年,5月20日,6點10分,星期一 在這里,“學(xué)生”就是在描述了一個“類”的概念。而“學(xué)號”、“姓名”、“性別”則是對“學(xué)生”這個類的屬性說明,在經(jīng)過了對“類”中的屬性進(jìn)行了確切的賦值之后,我們就稱之為類的一個對象或?qū)嵗?。?6頁,共67頁,2022年,5月20日,6點10分,星期一面向?qū)ο蟮幕靖拍罘庋b(Encapsulation)把“類”作為一個容器,將同類對象的屬性和方法封裝在一起。也就是說,將數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)銜接在一起,構(gòu)成一個具有類類型的對象的描述。 對象的內(nèi)部實現(xiàn)受保護(hù),外界不能訪問,是想了對外部的信息隱藏

10、如果,設(shè)計人員先從外部調(diào)用封裝內(nèi)部的信息,可以通過定義好的接口來為外部提供調(diào)用 第17頁,共67頁,2022年,5月20日,6點10分,星期一面向?qū)ο蟮幕靖拍罾^承(Inheritance)繼承是父類和子類之間共享數(shù)據(jù)的方法的機(jī)制(也就是說,如果我們要通過面向?qū)ο蟮某绦蛟O(shè)計來進(jìn)行數(shù)據(jù)的共享,那么可以通過什么樣的機(jī)制來共享呢?答曰:繼承。反過來說,面向?qū)ο蟮某绦蛟O(shè)計中間,共享數(shù)據(jù)的方法是哪一種機(jī)制?答曰:繼承機(jī)制。) 一個子類可以繼承它的父類(或祖先類)中的屬性和操作 子類中可以定義自己的屬性和操作 單重繼承、多重繼承 第18頁,共67頁,2022年,5月20日,6點10分,星期一 在這里面,有

11、一個“學(xué)生”的類,這個類有兩個屬性“姓名”、“性別”,而下面的“高中學(xué)生”,不僅包含了“學(xué)生” 類的兩個屬性“姓名”、“性別”,還多出了一個特有的屬性“文理科”。此時,“學(xué)生”就被稱之為父類,“高中學(xué)生”就被稱之為子類。(如果父類只能派生出一個子類,就稱之為單繼承。如果父類只能派生出多個子類,就稱之為多類繼承)第19頁,共67頁,2022年,5月20日,6點10分,星期一多態(tài)性(Polymorphism)不同的對象收到同一消息可以產(chǎn)生完全不同的結(jié)構(gòu),這一現(xiàn)象叫做多態(tài)性 多態(tài)的實現(xiàn)受到繼承的支持第20頁,共67頁,2022年,5月20日,6點10分,星期一二章知識點什么是程序?程序設(shè)計的風(fēng)格有哪

12、些(4個)程序設(shè)計的三種基本方法(結(jié)構(gòu)化方法、原型法、面向?qū)ο螅C(jī)構(gòu)化程序設(shè)計方法的四個主要原則(自頂而下、逐步求精、模塊化、限制使用GOTO語句)結(jié)構(gòu)化設(shè)計的三種基本結(jié)構(gòu)(順序、選擇、循環(huán))什么叫:對象、類對象的三個基本組成(對象標(biāo)識、屬性、操作)及五個基本特點(標(biāo)識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性)類的基本特征(抽象性、繼承性、封裝性、多態(tài)性)第21頁,共67頁,2022年,5月20日,6點10分,星期一第三章軟件工程基礎(chǔ)第22頁,共67頁,2022年,5月20日,6點10分,星期一本章主要內(nèi)容軟件工程基本概念 結(jié)構(gòu)化分析、設(shè)計方法 軟件測試 程序的調(diào)試 第23頁,共67頁,20

13、22年,5月20日,6點10分,星期一軟件的定義(記憶) 軟件(software)是計算機(jī)系統(tǒng)中與硬件(hardware)相互依存的另一部分。軟件包括三個部分:程序(program)、相關(guān)數(shù)據(jù)(data)、說明文檔(document)。軟件按照功能可以分為三類:應(yīng)用軟件(為了解決某一方面的實際應(yīng)用而開發(fā)的相關(guān)系統(tǒng))、系統(tǒng)軟件(為了對整個計算機(jī)的資源,包括硬件資源和軟件資源,進(jìn)行管理和調(diào)用的軟件)、支撐軟件(包括各種各樣的工具的軟件)。3.1 軟件工程基本概念第24頁,共67頁,2022年,5月20日,6點10分,星期一軟件的特點(了解) 軟件沒有明顯的制造過程。(軟件的制造,明顯不同于一般工業(yè)

14、品的制造) 軟件在使用過程中,沒有磨損、老化問題(軟件在使用的過程中,不會像一般的工業(yè)品那樣出現(xiàn)磨損、老化的問題。軟件只會隨著軟件領(lǐng)域的發(fā)展,在現(xiàn)實的情況下這個軟件已不再適應(yīng)當(dāng)前要求時候,就會要求我們編制新的軟件以替代當(dāng)前軟件) 軟件是一種邏輯實體,不是物理實體,具有抽象性。(也就是說,我們使用的軟件(最常用的就是QQ通訊軟件),我們只有運行它再通過顯示設(shè)備,才能夠看到它的運行并感受到他 。)第25頁,共67頁,2022年,5月20日,6點10分,星期一軟件是復(fù)雜的,以后會更復(fù)雜,而且軟件的成本相當(dāng)昂貴 軟件工作牽涉到很多社會因素軟件的特點(了解) 軟件依賴與硬件和環(huán)境,導(dǎo)致了移植問題(我們的

15、某些軟件,是要與特定的硬件和環(huán)境先適應(yīng)的。某一種軟件,只能應(yīng)用于某一特殊的硬件和環(huán)境,而同一軟件移植到另一種硬件和環(huán)境的時候,就會出現(xiàn)問題) 第26頁,共67頁,2022年,5月20日,6點10分,星期一軟件危機(jī)(記憶) 早期的軟件主要指程序,采用個體工作方式,缺少相關(guān)文檔,質(zhì)量低,維護(hù)困難,這些問題稱為“軟件危機(jī)”,軟件的特點導(dǎo)致了軟件危機(jī)的提出,工程概念的出現(xiàn)源自于軟件危機(jī)。 軟件工程(記憶) 軟件工程是指應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來解決軟件問題的工程。其目的是提高軟件生產(chǎn)率、提高軟件質(zhì)量、降低軟件成本。 軟件工程基本目標(biāo)(了解) 在給定成本、進(jìn)度的前提下,

16、開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。第27頁,共67頁,2022年,5月20日,6點10分,星期一軟件工程原則(理解&記憶):抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。1)抽象:抽象是事物最基本的特性和行為,忽略非本質(zhì)細(xì)節(jié),采用分層次抽象,自頂向下,逐層細(xì)化來控制軟件開發(fā)過程的復(fù)雜性。 2)信息隱蔽:采用封裝技術(shù),將程序模塊的實現(xiàn)細(xì)節(jié)隱蔽起來,使模塊接口盡量簡單。 3)模塊化:模塊是程序中相對獨立的成分,一個獨立的編程單位。模塊的大小要適中,過大模塊內(nèi)部復(fù)雜性增加,太小整個系統(tǒng)過于復(fù)雜。

17、4)局部化:保證模塊間具有松耦合性,模塊內(nèi)部有高內(nèi)聚性。 5)確定性:軟件中所有概念的表達(dá)應(yīng)是確定、無歧義且規(guī)范的。 6)一致性:內(nèi)外部接口保持一致,系統(tǒng)規(guī)格說明與行為保持一致。 7)完備性:軟件系統(tǒng)不丟失任何重要成分,完全實現(xiàn)系統(tǒng)所需功能。 8)可驗證性:遵循容易檢查、測評、評審原則,確保系統(tǒng)正確性第28頁,共67頁,2022年,5月20日,6點10分,星期一軟件工程三要素(記憶)方法:完成軟件工程項目的技術(shù)手段 工具:支持軟件的開發(fā)、管理、文檔生成 過程:支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理軟件工具和軟件開發(fā)環(huán)境(記憶) 軟件工具(CASE):用來輔助軟件開、運行、維護(hù)、管理、支持等過程中的

18、活動的軟件 軟件開發(fā)環(huán)境:支持軟件產(chǎn)品開發(fā)的軟件系統(tǒng),它由軟件工具集和環(huán)境集成機(jī)制構(gòu)成軟件開發(fā)技術(shù),包括軟件開發(fā)方法學(xué)、開發(fā)過程和軟件工程環(huán)境,其中主要的內(nèi)容是軟件開發(fā)方法學(xué)第29頁,共67頁,2022年,5月20日,6點10分,星期一軟件生命周期(記憶&理解) 軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。分為軟件定義、軟件開發(fā)及軟件運行維護(hù)3個階段。 1)軟件定義階段:包括制定計劃和需求分析。 制定計劃:確定總目標(biāo);可行性研究;探討解決方案;制定開發(fā)計劃。 需求分析:對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義。 2)軟件開發(fā)階段: 軟件設(shè)計:分為概要設(shè)計和詳細(xì)設(shè)計

19、兩個部分。軟件實現(xiàn):把軟件設(shè)計轉(zhuǎn)換成計算機(jī)可以接受的程序代碼。 軟件測試:在設(shè)計測試用例的基礎(chǔ)上檢驗軟件的各個組成部分。 3)軟件運行維護(hù)階段(生命周期中花費最多的階段):軟件投入運行,并在使用中不斷地維護(hù),進(jìn)行必要的擴(kuò)充和刪改。第30頁,共67頁,2022年,5月20日,6點10分,星期一第31頁,共67頁,2022年,5月20日,6點10分,星期一需求分析(記憶) 用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求的過程。需求分析將創(chuàng)建所需的數(shù)據(jù)模型、功能模型和控制模型。 需求分析的四步驟(記憶) 需求獲取、需求分析、編寫需求規(guī)格說明

20、書和需求評審3.2 結(jié)構(gòu)化分析方法第32頁,共67頁,2022年,5月20日,6點10分,星期一需求分析的方法(了解) 結(jié)構(gòu)化分析方法:結(jié)構(gòu)化程序設(shè)計理論在需求分析紅的運用,目的是幫助弄清用戶對軟件的需求,建立系統(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)用第33頁,共67頁,2022年,5月20日,6點10分,星期一常用工具 (記憶)數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹、判定表 開發(fā)策略 自頂向下,逐層分解需求分析階段的結(jié)果 :軟件需求規(guī)格說明書

21、(RSR)作用:便于用戶與開發(fā)人員進(jìn)行理解和交流,反應(yīng)系統(tǒng)的問題結(jié)構(gòu),作為系統(tǒng)開發(fā)的基礎(chǔ)和依據(jù),作為測試盒驗收的依據(jù)評價標(biāo)準(zhǔn):正確性、奇異性、完整性、可驗證性、可理解性、可修改性、可追蹤性,其中最重要的是:正確性第34頁,共67頁,2022年,5月20日,6點10分,星期一數(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ù)的

22、文件。 源、潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。 第35頁,共67頁,2022年,5月20日,6點10分,星期一畫數(shù)據(jù)流圖的基本步驟(記憶) 自外向內(nèi),自頂向下,逐層細(xì)化,完善求精數(shù)據(jù)流圖的示例 第36頁,共67頁,2022年,5月20日,6點10分,星期一數(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ù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流(描述了數(shù)據(jù)流圖中的數(shù)據(jù)流向)、數(shù)據(jù)存儲(描述了數(shù)據(jù)流圖中的文件)、數(shù)據(jù)處理(描述了數(shù)據(jù)

23、流圖中的加工,也就是圓圈所定義的內(nèi)容)。 第37頁,共67頁,2022年,5月20日,6點10分,星期一判斷樹(了解):又稱為決策樹,是一種描述加工的圖形數(shù)據(jù),適合描述問題里中具有多個判斷,而且每個決策與若干條件有關(guān)。使用判定數(shù)進(jìn)行描述時,應(yīng)該從問題的文字描述中分清哪些是判定條件,那些是判定的決策,根據(jù)描述材料中的連接詞找出判定條件的從屬關(guān)系、并列關(guān)系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹 第38頁,共67頁,2022年,5月20日,6點10分,星期一判斷表(了解):當(dāng)數(shù)據(jù)流圖中的加工依賴多個邏輯條件的取值,即完成該數(shù)值的一組動作|是由于某一組條件取值的組合而引發(fā)的,在此情況下,使用判斷表比較合適。第

24、39頁,共67頁,2022年,5月20日,6點10分,星期一軟件需求規(guī)格說明書(SRS) :需求分析階段的最后成果,通過建立完整的信息描述、詳細(xì)的功能和行為描述、性能需求和設(shè)計約束的說明、合適的驗收標(biāo)準(zhǔn),給出對目標(biāo)軟件的各種需求。第40頁,共67頁,2022年,5月20日,6點10分,星期一需求分析主要解決“做什么”的問題,確定系統(tǒng)的邏輯模型。而軟件設(shè)計主要解決“怎么做”的問題,其基本目標(biāo)使用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何讓完成預(yù)定任務(wù),確定系統(tǒng)的物理模型。 第41頁,共67頁,2022年,5月20日,6點10分,星期一從技術(shù)觀點來看,軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、過程設(shè)計

25、。(記憶) 結(jié)構(gòu)設(shè)計:定義軟件系統(tǒng)各主要部件之間的關(guān)系。 數(shù)據(jù)設(shè)計:將分析時創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。 接口設(shè)計:描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信。 過程設(shè)計:把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程性描述 第42頁,共67頁,2022年,5月20日,6點10分,星期一從工程角度來看,軟件設(shè)計分兩步完成,即概要設(shè)計和詳細(xì)設(shè)計。(記憶)概要設(shè)計:又稱結(jié)構(gòu)設(shè)計,將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu);確定系統(tǒng)級接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式;編寫概要設(shè)計文檔、概要設(shè)計文檔評審。 詳細(xì)設(shè)計:確定每個模塊的實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。第43頁,共67頁,202

26、2年,5月20日,6點10分,星期一軟件設(shè)計基本原理:抽象、模塊化、信息隱蔽和模塊獨立性。(記憶)抽象:抽象是一種思維工具,就是把事物本質(zhì)的共同特性提取出來而不考慮其他細(xì)節(jié)。 模塊化:解決一個復(fù)雜問題時自頂向下逐步把軟件系統(tǒng)劃分成較小的、相對獨立但又不相互關(guān)聯(lián)的模塊的過程。 信息隱蔽:模塊的實施細(xì)節(jié)對于其他模塊來說是隱蔽的。 模塊獨立性:軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,和軟件系統(tǒng)中其他模塊的接口是簡單的。 模塊獨立性指標(biāo):耦合性和內(nèi)聚性 模塊劃分原則是:高內(nèi)聚度,低耦合度模塊之間的依賴性越高,耦合性就越高,模塊的獨立性就越弱。第44頁,共67頁,2022年,5月20日,6點10

27、分,星期一總體設(shè)計(概要設(shè)計)基本任務(wù) 1)設(shè)計軟件系統(tǒng)結(jié)構(gòu) 2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計 3)編寫概要設(shè)計文檔 4)概要設(shè)計文檔評審 軟件結(jié)構(gòu)設(shè)計工具結(jié)構(gòu)圖(程序結(jié)構(gòu)圖) 程序結(jié)構(gòu)圖的基本圖符(記憶) 矩形表示模塊,箭頭表示模塊間的調(diào)用關(guān)系 用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息 實心圓箭頭表示控制信息,空心圓箭頭表示數(shù)據(jù)信息第45頁,共67頁,2022年,5月20日,6點10分,星期一軟件結(jié)構(gòu)設(shè)計工具結(jié)構(gòu)圖(程序結(jié)構(gòu)圖) 常用結(jié)構(gòu)圖的四種模塊類型(記憶) 傳入模塊:從下屬模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給上級模塊。 傳出模塊:從上級模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給下屬模塊。 變換模塊:從

28、上級模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其他形式,再傳送給上級模塊。 協(xié)調(diào)模塊:對所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。第46頁,共67頁,2022年,5月20日,6點10分,星期一軟件結(jié)構(gòu)設(shè)計工具結(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é)點的模塊。 第47頁,共67頁,2022年,5月20日,6點10分,星期一軟件結(jié)構(gòu)設(shè)計工具結(jié)構(gòu)圖(程序結(jié)構(gòu)圖) 面向數(shù)

29、據(jù)流的設(shè)計方法定義了一些不同的映射方法,利用這些方法可以把數(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ī)理是接受一項事務(wù),根據(jù)事務(wù)處理的特點和性質(zhì),選擇分派一個適當(dāng)?shù)奶幚韱卧?,然后給出結(jié)果。第48頁,共67頁,2022年,5月20日,6點10分,星期一高腰設(shè)計的優(yōu)化準(zhǔn)則(了解) 改進(jìn)軟件結(jié)構(gòu),提高模塊獨立性模塊規(guī)模要適中模塊的作用范圍應(yīng)該保持在模塊的控制范圍內(nèi)軟件結(jié)構(gòu)的深度、寬度、扇入、扇出要適當(dāng)降低

30、模塊接口的復(fù)雜度設(shè)計單入口、單出口的模塊模塊的功能可預(yù)測第49頁,共67頁,2022年,5月20日,6點10分,星期一詳細(xì)設(shè)計基本任務(wù) 為軟件結(jié)構(gòu)圖中的每個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)常用設(shè)計工具(記憶) 圖形工具:程序流程圖、N-S(方盒圖)、PAD(問題分析圖)和HIPO(層次圖+輸入/處理/輸出圖)。 表格工具:判定表。 語言工具:PDL(偽碼)第50頁,共67頁,2022年,5月20日,6點10分,星期一第51頁,共67頁,2022年,5月20日,6點10分,星期一第52頁,共67頁,2022年,5月20日,6點10分,星期一第53頁,共

31、67頁,2022年,5月20日,6點10分,星期一3.3 軟件測試目的、意義、人員(記憶) 通過合理的設(shè)計測試用例以最少的人力和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷。也就是說,軟件測試的目的就是:檢查錯誤,并對錯誤進(jìn)行修改,但不能證明程序之中沒有錯誤(因為軟件是一項綜合的龐大工程,錯誤可能會出現(xiàn)在多處) 保證系統(tǒng)質(zhì)量(滿足需求規(guī)格)和可靠性 由開發(fā)人員、用戶一起完成 第54頁,共67頁,2022年,5月20日,6點10分,星期一測試基本方法(記憶) 人工測試(靜態(tài)測試):評審軟件文檔或程序,包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。不實際運行軟件,主要通過人工進(jìn)行。 機(jī)器測試(動態(tài)測試):通過運行軟件

32、,來檢驗結(jié)果的正確性。主要包括白盒測試方法和黑盒測試方法。 第55頁,共67頁,2022年,5月20日,6點10分,星期一白盒測試(結(jié)構(gòu)測試、邏輯驅(qū)動測試)(記憶) 將軟件看成透明的白盒,根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯結(jié)構(gòu)來設(shè)計測試?yán)樱瑢Τ绦虻穆窂胶瓦^程進(jìn)行測試,檢查是否滿足設(shè)計的要求。也就是說,白盒測試是對內(nèi)部程序進(jìn)行的測試。白盒測試基本原則(了解)保證所測模塊中每一獨立路徑至少執(zhí)行一次; 保證所測模塊所有判斷的每一分支至少執(zhí)行一次; 保證所測模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次; 驗證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。 第56頁,共67頁,2022年,5月20日,6點10分,星期一測試用

33、例根據(jù)程序內(nèi)部邏輯設(shè)計,主要用于軟件的單元測試。 出現(xiàn)讓大家判斷黑、白盒測試的時候,只要是關(guān)于程序的,就都是白盒測試。白盒測試用例主要設(shè)計方法有(記憶) 邏輯覆蓋:指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測試用例設(shè)計技術(shù)。 基本路徑測試:根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測試用例,對每一條獨立執(zhí)行路徑進(jìn)行測試。第57頁,共67頁,2022年,5月20日,6點10分,星期一邏輯覆蓋設(shè)計的基本內(nèi)容(利用測試用例)(了解) 語句覆蓋:使得程序每一個語句至少都能被執(zhí)行一次。 路徑覆蓋:使程序中所有的可能的路徑都至少經(jīng)歷一次。 判定覆蓋:保證程序

34、中每個判斷的每個取值分支(T或F)至少經(jīng)歷一次。 條件覆蓋:保證程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。 判斷-條件覆蓋:使判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷的所有可能取值分支至少執(zhí)行一次。邏輯覆蓋強(qiáng)度依次是:語句覆蓋路徑覆蓋判定覆蓋條件覆蓋判斷-條件覆蓋 第58頁,共67頁,2022年,5月20日,6點10分,星期一黑盒測試(功能測試)將軟件看成黑盒子,不考慮程序內(nèi)部細(xì)節(jié)、結(jié)構(gòu)和實現(xiàn)方式,僅僅測試軟件的基本功能是否滿足需要。 黑盒測試主要用于軟件的確認(rèn)測試,看是否實現(xiàn)了功能說明書的預(yù)期目標(biāo)。 根據(jù)程序的功能說明來設(shè)計測試用例,基本設(shè)計方法有(記憶) 等價類劃分法:

35、典型黑盒測試方法,將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若干等價類),然后從每個等價類中選取數(shù)據(jù)作為測試用例。 邊界值分析法:它是對各種輸入、輸出范圍的邊界情況設(shè)計測試用例的方法。 錯誤推測法:人們可以靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的用例。 第59頁,共67頁,2022年,5月20日,6點10分,星期一軟件測試分四個步驟,從小到大依次是(記憶):單元測試、集成測試、確認(rèn)測試(驗收測試)、系統(tǒng)測試。 測試對象:對軟件的最小單位模塊進(jìn)行測試測試目的是:發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯誤。測試用例設(shè)計:根據(jù)程序的內(nèi)部結(jié)構(gòu),其依據(jù)是詳細(xì)的設(shè)計說明書的源程序

36、測試技術(shù):通常以白盒測試為主,輔之以黑盒測試。單元測試內(nèi)容:模塊接口測試,局部數(shù)據(jù)結(jié)構(gòu)測試,錯誤處理測試,邊界測試。 單元測試第60頁,共67頁,2022年,5月20日,6點10分,星期一測試對象:將模塊組裝起來后進(jìn)行測試,測試目的是:發(fā)現(xiàn)與接口有關(guān)的錯誤。 測試用例設(shè)計:根據(jù)概要測試說明書測試內(nèi)容:軟件單元的接口測試,全局?jǐn)?shù)據(jù)結(jié)構(gòu)與測試,邊界條件和非法輸入測試等模塊組裝方式:非增量方式組裝(將所有模塊一次性的全部進(jìn)行測試地方法)和增量方式(先測試幾個模塊,通過之后再往這幾個通過測試的模塊上再添加模塊地方法)組裝。軟件測試分四個步驟,從小到大依次是(記憶):單元測試、集成測試、確認(rèn)測試(驗收測

37、試)、系統(tǒng)測試。 集成測試第61頁,共67頁,2022年,5月20日,6點10分,星期一任務(wù):驗證軟件的有效性。也就是說,用戶根據(jù)合同進(jìn)行確認(rèn),以確認(rèn)系統(tǒng)功能和性能的可接受性。 測試用例設(shè)計:軟件需求說明書測試方法:主要用于黑盒測試。軟件測試分四個步驟,從小到大依次是(記憶):單元測試、集成測試、確認(rèn)測試(驗收測試)、系統(tǒng)測試。 確認(rèn)測試第62頁,共67頁,2022年,5月20日,6點10分,星期一任務(wù):將軟件系統(tǒng)與硬件、外設(shè)及其他元素結(jié)合在一起,對整個軟件系統(tǒng)進(jìn)行測試,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。 測試用例設(shè)計:需求分析規(guī)格說明書基本內(nèi)容:功能測試、性能測試、操作測試、配置測試、外部接口測試、安全性測試等等軟件測試分四個步驟,從小到大依次是(記憶):單元測試、集成測試、確認(rèn)測試(驗收測試)、系統(tǒng)測試。 系統(tǒng)測試第63頁,共67頁,2022年,5月20日,6點10分,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論