計算機二級C語言輔導-公共基礎知識-第二、三章_第1頁
計算機二級C語言輔導-公共基礎知識-第二、三章_第2頁
計算機二級C語言輔導-公共基礎知識-第二、三章_第3頁
計算機二級C語言輔導-公共基礎知識-第二、三章_第4頁
計算機二級C語言輔導-公共基礎知識-第二、三章_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二、三章程序設計及軟件工程基礎1精選ppt本章主要內容程序設計方法和風格

結構化程序設計

面向對象程序設計

軟件工程基本概念

結構化分析方法

軟件測試

程序的調試

2精選ppt2.1程序設計方法和風格什么是程序指令的集合。(解釋指令)通過硬件控制系統(tǒng)自動完成某一功能。通過一系列代碼實現(xiàn)。程序設計語言計算機本身僅能識別二進制代碼“0”、“1”。編譯程序和解釋程序編程最直接、最低級的就是機器語言。匯編語言。3精選ppt程序設計風格基本概念:編寫程序時所表現(xiàn)出來的特點、習慣和邏輯思路。一般從以下四部分加以規(guī)范:源程序中的內部文檔:選擇標示符的名字、注釋(序言性和功能性注釋)、程序的視覺組織。數(shù)據(jù)說明:顯式地說明一切變量、數(shù)據(jù)說明的次序應該規(guī)范化、便于查找變量(按順序排列)、對復雜數(shù)據(jù)結構應注釋說明語句的結構:每條語句簡單明了、盡量不用或少用GOTO語句、盡量只采用3種基本控制結構編程輸入和輸出:對所有輸入數(shù)據(jù)進行校驗和合理性檢查、輸入輸出格式保持一致、設計良好的輸出報表4精選ppt程序設計三種方法結構化設計法模塊內部程序各部分要按照自頂向下的結構劃分各程序部分應按功能組合快速原型法(軟件工程法)利用現(xiàn)有的工具和原型方法快速地開發(fā)所要的程序面向對象程序設計法以對象為核心,與人類習慣的思維方法一致5精選ppt2.2結構化程序設計基本思想對大型的程序設計,使用一些基本的結構來設計程序,無論多復雜的程序,都可以使用這些基本結構按一定的順序組合起來。這些基本結構的特點都是只有一個入口、一個出口。由這些基本結構組成的程序就避免了任意轉移、閱讀起來需要來回尋找的問題。設計原則自頂向下逐步求精模塊化限制使用goto語句6精選ppt基本結構:順序、選擇、循環(huán)7精選ppt2.3面向對象程序設計基本思想

客觀世界中任何一個事物都可以被看成是一個對象,面向對象方法的本質就是主張從客觀世界固有的事物出發(fā)來構造系統(tǒng),系統(tǒng)中的對象及對象之間的關系能夠如實地反映問題域中固有的事物及其關系。

結構化與面向對象方法比較結構化的分解突出過程,即如何做(Howtodo)?它強調代碼的功能是如何實現(xiàn)的;面向對象的分解突出現(xiàn)實世界和抽象的對象,即做什么(Whattodo)?8精選ppt主要優(yōu)點與人類習慣的思維方法一致穩(wěn)定性好可重用性好易于開發(fā)大型軟件產品可維護性好面向對象程序設計主要考慮的是提高軟件的可重用性!9精選ppt面向對象的基本概念對象(Object)對象是基本的運行時認得實體,它既包括數(shù)據(jù)(屬性),也包括作用于數(shù)據(jù)的操作(行為)。一個對象把屬性和行為封裝為一個整體一個對象通??捎蓪ο竺?、屬性和操作3部分組成面向對象(ObjectOriented,OO)從該問題所涉及的對象入手來研究問題。消息(Message)對象之間進行通信的一種數(shù)據(jù)構造,消息包括:接受消息對象名、消息標識符、零個或多個參數(shù)。10精選ppt面向對象的基本概念類(Class)一個類定義了一組大體上相似的對象。一個類所包含的方法和數(shù)據(jù)描述一組對象的共同行為和屬性。類是在對象之上的抽象,對象是類的具體化,是類的實例封裝(Encapsulation)將數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)銜接在一起,構成一個具有類類型的對象的描述。對象的內部實現(xiàn)受保護,外界不能訪問封裝簡化了程序員對對象的使用11精選ppt面向對象的基本概念繼承(Inheritance)繼承是父類和子類之間共享數(shù)據(jù)的方法的機制一個子類可以繼承它的父類(或祖先類)中的屬性和操作子類中可以定義自己的屬性和操作單重繼承、多重繼承多態(tài)性(Polymorphism)不同的對象收到同一消息可以產生完全不同的結構,這一現(xiàn)象叫做多態(tài)性多態(tài)的實現(xiàn)受到繼承的支持12精選ppt軟件的定義軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分。軟件包括三個部分:程序(program)、相關數(shù)據(jù)(data)、說明文檔(document)。軟件的特點軟件是一種邏輯實體,不是物理實體,具有抽象性。軟件沒有明顯的制造過程。軟件在使用過程中,沒有磨損、老化問題軟件依賴與硬件和環(huán)境,導致了移植問題軟件是復雜的,而且以后會更復雜軟件的成本相當昂貴軟件工作牽涉到很多社會因素2.4軟件工程基本概念13精選ppt軟件危機早期的軟件主要指程序,采用個體工作方式,缺少相關文檔,質量低,維護困難,這些問題稱為“軟件危機”,軟件工程概念的出現(xiàn)源自于軟件危機。軟件工程軟件工程是指應用計算機科學、數(shù)學及管理科學等原理,以工程化的原則和方法來解決軟件問題的工程。其目的是提高軟件生產率、提高軟件質量、降低軟件成本。軟件工程基本目標在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產品。14精選ppt軟件工程原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。1)抽象:抽象是事物最基本的特性和行為,忽略非本質細節(jié),采用分層次抽象,自頂向下,逐層細化來控制軟件開發(fā)過程的復雜性。2)信息隱蔽:采用封裝技術,將程序模塊的實現(xiàn)細節(jié)隱蔽起來,使模塊接口盡量簡單。3)模塊化:模塊是程序中相對獨立的成分,一個獨立的編程單位。模塊的大小要適中,過大模塊內部復雜性增加,太小整個系統(tǒng)過于復雜。4)局部化:保證模塊間具有松耦合性,模塊內部有高內聚性。5)確定性:軟件中所有概念的表達應是確定、無歧義且規(guī)范的。6)一致性:內外部接口保持一致,系統(tǒng)規(guī)格說明與行為保持一致。7)完備性:軟件系統(tǒng)不丟失任何重要成分,完全實現(xiàn)系統(tǒng)所需功能。8)可驗證性:遵循容易檢查、測評、評審原則,確保系統(tǒng)正確性15精選ppt軟件工程三要素方法:完成軟件工程項目的技術手段工具:支持軟件的開發(fā)、管理、文檔生成過程:支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理軟件工具和軟件開發(fā)環(huán)境軟件工具(CASE):用來輔助軟件開、運行、維護、管理、支持等過程中的活動的軟件軟件開發(fā)環(huán)境:支持軟件產品開發(fā)的軟件系統(tǒng),它由軟件工具集和環(huán)境集成機制構成16精選ppt軟件生命周期軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。1)軟件定義階段:包括制定計劃和需求分析。制定計劃:確定總目標;可行性研究;探討解決方案;制定開發(fā)計劃。需求分析:對待開發(fā)軟件提出的需求進行分析并給出詳細的定義。2)軟件開發(fā)階段:軟件設計:分為概要設計和詳細設計兩個部分。軟件實現(xiàn):把軟件設計轉換成計算機可以接受的程序代碼。軟件測試:在設計測試用例的基礎上檢驗軟件的各個組成部分。3)軟件運行維護階段(生命周期中花費最多的階段):軟件投入運行,并在使用中不斷地維護,進行必要的擴充和刪改。17精選ppt需求分析用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求的過程。需求分析將創(chuàng)建所需的數(shù)據(jù)模型、功能模型和控制模型。需求分析的四步驟需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審需求分析的方法結構化分析方法、面向對象分析方法2.5結構化分析方法18精選ppt結構化分析方法結構化程序設計理論在軟件需求分析階段的運用,其目的是幫助弄清用戶對軟件的需求。常用工具數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹、判定表開發(fā)策略自頂向下,逐層分解19精選ppt數(shù)據(jù)流圖(DFD):以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,它反映了系統(tǒng)必須完成的邏輯功能,是結構化分析方法中用于表示系統(tǒng)邏輯模型的一種工具。

加工

存儲文件

源、潭數(shù)據(jù)流

加工(轉換):輸入數(shù)據(jù)經(jīng)加工變換產生輸出。數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,旁邊標注數(shù)據(jù)流名。存儲文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。源、潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。

20精選ppt畫數(shù)據(jù)流圖的基本步驟

自外向內,自頂向下,逐層細化,完善求精數(shù)據(jù)流圖的示例

21精選ppt數(shù)據(jù)字典(DD):對所有與系統(tǒng)相關的數(shù)據(jù)元素的一個有組織的列表,其作用是對數(shù)據(jù)流圖中出現(xiàn)的被命名的圖形元素的確切解釋。數(shù)據(jù)字典常包括5個部分:數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)處理。數(shù)據(jù)字典是結構化分析方法的核心

軟件需求規(guī)格說明書(SRS)

:需求分析階段的最后成果,通過建立完整的信息描述、詳細的功能和行為描述、性能需求和設計約束的說明、合適的驗收標準,給出對目標軟件的各種需求。22精選ppt需求分析主要解決“做什么”的問題,而軟件設計主要解決“怎么做”的問題。

從技術觀點來看,軟件設計包括軟件結構設計、數(shù)據(jù)設計、接口設計、過程設計。結構設計:定義軟件系統(tǒng)各主要部件之間的關系。數(shù)據(jù)設計:將分析時創(chuàng)建的模型轉化為數(shù)據(jù)結構的定義。接口設計:描述軟件內部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信。過程設計:把系統(tǒng)結構部件轉換成軟件的過程性描述

23精選ppt從工程角度來看,軟件設計分兩步完成,即概要設計和詳細設計。概要設計:又稱結構設計,將軟件需求轉化為軟件體系結構;確定系統(tǒng)級接口、全局數(shù)據(jù)結構或數(shù)據(jù)庫模式;編寫概要設計文檔、概要設計文檔評審。詳細設計:確定每個模塊的實現(xiàn)算法和局部數(shù)據(jù)結構,用適當方法表示算法和數(shù)據(jù)結構的細節(jié)。24精選ppt軟件設計基本原理:抽象、模塊化、信息隱蔽和模塊獨立性。抽象:抽象是一種思維工具,就是把事物本質的共同特性提取出來而不考慮其他細節(jié)。模塊化:解決一個復雜問題時自頂向下逐步把軟件系統(tǒng)劃分成較小的、相對獨立但又不相互關聯(lián)的模塊的過程。信息隱蔽:模塊的實施細節(jié)對于其他模塊來說是隱蔽的。模塊獨立性:軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,和軟件系統(tǒng)中其他模塊的接口是簡單的。模塊獨立性指標:耦合性和內聚性模塊劃分原則是:高內聚度,低耦合度25精選ppt總體設計(概要設計)基本任務1)設計軟件系統(tǒng)結構2)數(shù)據(jù)結構及數(shù)據(jù)庫設計3)編寫概要設計文檔4)概要設計文檔評審軟件結構設計工具—結構圖(程序結構圖)程序結構圖的基本圖符矩形表示模塊,箭頭表示模塊間的調用關系用帶注釋的箭頭表示模塊調用過程中來回傳遞的信息

實心圓箭頭表示控制信息,空心圓箭頭表示數(shù)據(jù)信息26精選ppt軟件結構設計工具—結構圖(程序結構圖)常用結構圖的四種模塊類型傳入模塊:從下屬模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給上級模塊。傳出模塊:從上級模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給下屬模塊。變換模塊:從上級模塊取得數(shù)據(jù),進行特定的處理,轉換成其他形式,再傳送給上級模塊。協(xié)調模塊:對所有下屬模塊進行協(xié)調和管理的模塊。27精選ppt軟件結構設計工具—結構圖(程序結構圖)結構圖例及術語深度:表示控制的層數(shù)。寬度:整體控制跨度扇入:調用一個給定模塊的模塊個數(shù)。扇出:一個模塊直接調用的其他模塊數(shù)。上級模塊、從屬模塊:上、下兩層模塊a和b,且有a調用b,則a是上級模塊,b是從屬模塊。原子模塊:樹中位于葉子結點的模塊。

28精選ppt軟件結構設計工具—結構圖(程序結構圖)面向數(shù)據(jù)流的設計方法定義了一些不同的映射方法,利用這些方法可以把數(shù)據(jù)流圖變換成結構圖表示軟件的結構。

數(shù)據(jù)流類型:變換型和事務型

變換型:變換型數(shù)據(jù)處理問題的工作過程大致分為三步,即取得數(shù)據(jù)、變換數(shù)據(jù)和輸出數(shù)據(jù)。變換型系統(tǒng)結構圖由輸入、中心變換、輸出三部分組成。事務型:事務型數(shù)據(jù)處理問題的工作機理是接受一項事務,根據(jù)事務處理的特點和性質,選擇分派一個適當?shù)奶幚韱卧缓蠼o出結果。29精選ppt詳細設計基本任務為軟件結構圖中的每個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結構,用某種選定的表達工具表示算法和數(shù)據(jù)結構的細節(jié)常用設計工具圖形工具:程序流程圖、N-S(方盒圖)、PAD(問題分析圖)和HIPO(層次圖+輸入/處理/輸出圖)。表格工具:判定表。語言工具:PDL(偽碼)30精選ppt2.7軟件測試目的、意義、人員通過合理的設計測試用例以最少的人力和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷保證系統(tǒng)質量(滿足需求規(guī)格)和可靠性由開發(fā)人員、用戶一起完成測試基本方法人工測試(靜態(tài)測試):評審軟件文檔或程序,包括代碼檢查、靜態(tài)結構分析、代碼質量度量。不實際運行軟件,主要通過人工進行。機器測試(動態(tài)測試):通過運行軟件,來檢驗結果的正確性。主要包括白盒測試方法和黑盒測試方法。

31精選ppt白盒測試(結構測試、邏輯驅動測試)將軟件看成透明的白盒,根據(jù)程序的內部結構和邏輯結構來設計測試例子,對程序的路徑和過程進行測試,檢查是否滿足設計的要求白盒測試基本原則保證所測模塊中每一獨立路徑至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保證所測模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗證所有內部數(shù)據(jù)結構的有效性。

32精選ppt測試用例根據(jù)程序內部邏輯設計,主要用于軟件的單元測試。用例主要設計方法有邏輯覆蓋:指一系列以程序內部的邏輯結構為基礎的測試用例設計技術?;韭窂綔y試:根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復雜性度量,用此度量定義基本路徑集合,并由此導出一組測試用例,對每一條獨立執(zhí)行路徑進行測試。33精選ppt邏輯覆蓋設計的基本內容(利用測試用例)語句覆蓋:使得程序每一個語句至少都能被執(zhí)行一次。路徑覆蓋:使程序中所有的可能的路徑都至少經(jīng)歷一次。判定覆蓋:保證程序中每個判斷的每個取值分支(T或F)至少經(jīng)歷一次。條件覆蓋:保證程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。判斷-條件覆蓋:使判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷的所有可能取值分支至少執(zhí)行一次。邏輯覆蓋強度依次是:語句覆蓋<路徑覆蓋<判定覆蓋<條件覆蓋<判斷-條件覆蓋

34精選ppt黑盒測試(功能測試)將軟件看成黑盒子,不考慮程序內部細節(jié)、結構和實現(xiàn)方式,僅僅測試軟件的基本功能是否滿足需要。黑盒測試主要用于軟件的確認測試。根據(jù)程序的功能說明來設計測試用例,基本設計方法有等價類劃分法:典型黑盒測試方法,將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若干等價類),然后從每個等價類中選取數(shù)據(jù)作為測試用例。邊界值分析法:它是對各種輸入、輸出范圍的邊界情況設計測試用例的方法。錯誤推測法:人們可以靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的用例。

35精選ppt軟件測試分四個步驟:單元測試、集成測試、確認測試(驗收測試)、系統(tǒng)測試。單元測試:對軟件的最小單位—模塊進行測試,目的是發(fā)現(xiàn)各模塊內部可能存在的各種錯誤。

集成測試:將模塊組裝起來后進行測試,主要目的是發(fā)現(xiàn)與接口有關的錯誤。

確認測試:用戶根據(jù)合同進行,確認系統(tǒng)功能和性能的可接受性。系統(tǒng)測試:將軟件系統(tǒng)與硬件、外設及其他元素結合在一起,對整個軟件系統(tǒng)進行測試,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。

36精選ppt單元測試測試對象:對軟件的最小單位—模塊進行測試。目的:發(fā)現(xiàn)各模塊內部可能存在的各種錯誤。

測試用例設計:根據(jù)程序的內部結構,其依據(jù)是詳細設計說明書和源程序。

測試技術:通常以白盒測試為主,輔之以黑盒測試

單元測試內容:模塊接口測試、局部數(shù)據(jù)結構測試、錯誤處理測試和邊界測試。37精選ppt集成測試測試對象:將模塊組裝起來后進行測試。目的:發(fā)現(xiàn)與接口有關

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。