學習啦 > 知識大全 > 知識百科 > 公共基礎知識 > 二級c公共基礎知識(2)

二級c公共基礎知識(2)

時間: 謝君787 分享

二級c公共基礎知識

  二級c語言:程序設計基礎

  2.1 程序設計設計方法和風格

  如何形成良好的程序設計風格

  1、源程序文檔化; 2、數(shù)據(jù)說明的方法;

  3、語句的結(jié)構(gòu); 4、輸入和輸出。

  注釋分序言性注釋和功能性注釋,語句結(jié)構(gòu)清晰第一、效率第二。

  2.2 結(jié)構(gòu)化程序設計

  結(jié)構(gòu)化程序設計方法的四條原則是:1. 自頂向下;2. 逐步求精;3.模塊化;4.限制使用goto語句。

  結(jié)構(gòu)化程序的基本結(jié)構(gòu)和特點:

  (1)順序結(jié)構(gòu):一種簡單的程序設計,最基本、最常用的結(jié)構(gòu);

  (2)選擇結(jié)構(gòu):又稱分支結(jié)構(gòu),包括簡單選擇和多分支選擇結(jié)構(gòu),可根據(jù)條件,判斷應該選擇哪一條分支來執(zhí)行相應的語句序列;

  (3)循環(huán)結(jié)構(gòu):可根據(jù)給定條件,判斷是否需要重復執(zhí)行某一相同程序段。

  2.3 面向?qū)ο蟮某绦蛟O計

  面向?qū)ο蟮某绦蛟O計:以60年代末挪威奧斯陸大學和挪威計算機中心研制的SIMULA語言為標志。

  面向?qū)ο蠓椒ǖ膬?yōu)點:

  (1)與人類習慣的思維方法一致;

  (2)穩(wěn)定性好;

  (3)可重用性好;

  (4)易于開發(fā)大型軟件產(chǎn)品;

  (5)可維護性好。

  對象是面向?qū)ο蠓椒ㄖ凶罨镜母拍?,可以用來表示客觀世界中的任何實體,對象是實體的抽象。

  面向?qū)ο蟮某绦蛟O計方法中的對象是系統(tǒng)中用來描述客觀事物的一個實體,是構(gòu)成系統(tǒng)的一個基本單位,由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。

  屬性即對象所包含的信息,操作描述了對象執(zhí)行的功能,操作也稱為方法或服務。

  對象的基本特點:

  (1)標識惟一性;

  (2)分類性;

  (3)多態(tài)性;

  (4)封裝性;

  (5)模塊獨立性好。

  類是指具有共同屬性、共同方法的對象的集合。所以類是對象的抽象,對象是對應類的一個實例。

  消息是一個實例與另一個實例之間傳遞的信息。

  消息的組成包括(1)接收消息的對象的名稱;(2)消息標識符,也稱消息名;(3)零個或多個參數(shù)。

  繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復定義他們。

  繼承分單繼承和多重繼承。單繼承指一個類只允許有一個父類,多重繼承指一個類允許有多個父類。

  多態(tài)性是指同樣的消息被不同的對象接受時可導致完全不同的行動的現(xiàn)象

  二級c語言:軟件工程基礎

  3.1 軟件工程基本概念

  計算機軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。

  軟件的特點包括:

  (1)軟件是一種邏輯實體;

  (2)軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程;

  (3)軟件在運行、使用期間不存在磨損、老化問題;

  (4)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制,這導致了軟件移植的問題;

  (5)軟件復雜性高,成本昂貴;

  (6)軟件開發(fā)涉及諸多的社會因素。

  軟件按功能分為應用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。

  軟件危機主要表現(xiàn)在成本、質(zhì)量、生產(chǎn)率等問題。

  軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。

  軟件工程包括3個要素:方法、工具和過程。

  軟件工程過程是把軟件轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動,包含4種基本活動:

  (1)P——軟件規(guī)格說明;

  (2)D——軟件開發(fā);

  (3)C——軟件確認;

  (4)A——軟件演進。

  軟件周期:軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程。

  軟件生命周期三個階段:軟件定義、軟件開發(fā)、運行維護,主要活動階段是:

  (1)可行性研究與計劃制定;

  (2)需求分析;

  (3)軟件設計;

  (4)軟件實現(xiàn);

  (5)軟件測試;

  (6)運行和維護。

  軟件工程的目標和與原則:

  目標:在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。

  基本目標:付出較低的開發(fā)成本;達到要求的軟件功能;取得較好的軟件性能;開發(fā)軟件易于移植;需要較低的費用;能按時完成開發(fā),及時交付使用。

  基本原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。

  軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。

  軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境。

  軟件工程管理包括:軟件管理學、軟件工程經(jīng)濟學、軟件心理學等內(nèi)容。

  軟件管理學包括人員組織、進度安排、質(zhì)量保證、配置管理、項目計劃等。

  軟件工程原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。

  3.2 結(jié)構(gòu)化分析方法

  結(jié)構(gòu)化方法的核心和基礎是結(jié)構(gòu)化程序設計理論。

  需求分析方法有(1)結(jié)構(gòu)化需求分析方法; (2)面向?qū)ο蟮姆治龅姆椒ā?/p>

  從需求分析建立的模型的特性來分:靜態(tài)分析和動態(tài)分析。

  結(jié)構(gòu)化分析方法的實質(zhì):著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

  結(jié)構(gòu)化分析的常用工具

  (1)數(shù)據(jù)流圖; (2)數(shù)據(jù)字典; (3)判定樹; (4)判定表。

  數(shù)據(jù)流圖:描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)功能建模。

  數(shù)據(jù)字典:對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列表,以及精確的、嚴格的定義,使得用戶和系統(tǒng)分析員對于輸入、輸出、存儲成分和中間計算結(jié)果有共同的理解。

  判定樹:從問題定義的文字描述中分清哪些是判定的條件,哪些是判定的結(jié)論,根據(jù)描述材料中的連接詞找出判定條件之間的從屬關(guān)系、并列關(guān)系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹。

  判定表:與判定樹相似,當數(shù)據(jù)流圖中的加工要依賴于多個邏輯條件的取值,即完成該加工的一組動作是由于某一組條件取值的組合而引發(fā)的,使用判定表描述比較適宜。

  數(shù)據(jù)字典是結(jié)構(gòu)化分析的核心。

  軟件需求規(guī)格說明書的特點:

  (1)正確性;

  (2)無岐義性;

  (3)完整性;

  (4)可驗證性;

  (5)一致性;

  (6)可理解性;

  (7)可追蹤性。

  3.3 結(jié)構(gòu)化設計方法

  軟件設計的基本目標是用比較抽象概括的方式確定目標系統(tǒng)如何完成預定的任務,軟件設計是確定系統(tǒng)的物理模型。

  軟件設計是開發(fā)階段最重要的步驟,是將需求準確地轉(zhuǎn)化為完整的軟件產(chǎn)品或系統(tǒng)的唯一途徑。

  從技術(shù)觀點來看,軟件設計包括軟件結(jié)構(gòu)設計、數(shù)據(jù)設計、接口設計、過程設計。

  結(jié)構(gòu)設計:定義軟件系統(tǒng)各主要部件之間的關(guān)系。

  數(shù)據(jù)設計:將分析時創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。

  接口設計:描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信。

  過程設計:把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。

  從工程管理角度來看:概要設計和詳細設計。

  軟件設計的一般過程:軟件設計是一個迭代的過程;先進行高層次的結(jié)構(gòu)設計;后進行低層次的過程設計;穿插進行數(shù)據(jù)設計和接口設計。

  衡量軟件模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標準。

  在程序結(jié)構(gòu)中各模塊的內(nèi)聚性越強,則耦合性越弱。優(yōu)秀軟件應高內(nèi)聚,低耦合。

  軟件概要設計的基本任務是:

  (1)設計軟件系統(tǒng)結(jié)構(gòu); (2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設計;

  (3)編寫概要設計文檔; (4)概要設計文檔評審。

  模塊用一個矩形表示,箭頭表示模塊間的調(diào)用關(guān)系。

  在結(jié)構(gòu)圖中還可以用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息。還可用帶實心圓的箭頭表示傳遞的是控制信息,空心圓箭心表示傳遞的是數(shù)據(jù)。

  結(jié)構(gòu)圖的基本形式:基本形式、順序形式、重復形式、選擇形式。

  結(jié)構(gòu)圖有四種模塊類型:傳入模塊、傳出模塊、變換模塊和協(xié)調(diào)模塊。

  典型的數(shù)據(jù)流類型有兩種:變換型和事務型。

  變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分組成。

  事務型數(shù)據(jù)流的特點是:接受一項事務,根據(jù)事務處理的特點和性質(zhì),選擇分派一個適當?shù)奶幚韱卧?,然后給出結(jié)果。

  詳細設計:是為軟件結(jié)構(gòu)圖中的每一個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細節(jié)。

  常見的過程設計工具有:圖形工具(程序流程圖)、表格工具(判定表)、語言工具(PDL)。

  3.4 軟件測試

  軟件測試定義:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結(jié)果與實際結(jié)果之間的差別。

  軟件測試的目的:發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

  軟件測試方法:靜態(tài)測試和動態(tài)測試。

  靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。不實際運行軟件,主要通過人工進行。

  動態(tài)測試:是基本計算機的測試,主要包括白盒測試方法和黑盒測試方法。

  白盒測試:在程序內(nèi)部進行,主要用于完成軟件內(nèi)部CAO作的驗證。主要方法有邏輯覆蓋、基本基路徑測試。

  黑盒測試:主要診斷功能不對或遺漏、界面錯誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯,用于軟件確認。主要方法有等價類劃分法、邊界值分析法、錯誤推測法、因果圖等。

  軟件測試過程一般按4個步驟進行:單元測試、集成測試、驗收測試(確認測試)和系統(tǒng)測試。

  3.5 程序的調(diào)試

  程序調(diào)試的任務是診斷和改正程序中的錯誤,主要在開發(fā)階段進行。

  程序調(diào)試的基本步驟:

  (1)錯誤定位;

  (2)修改設計和代碼,以排除錯誤;

  (3)進行回歸測試,防止引進新的錯誤。

  軟件調(diào)試可分表靜態(tài)調(diào)試和動態(tài)調(diào)試。靜態(tài)調(diào)試主要是指通過人的思維來分析源程序代碼和排錯,是主要的設計手段,而動態(tài)調(diào)試是輔助靜態(tài)調(diào)試。主要調(diào)試方法有:

  (1)強行排錯法;

  (2)回溯法;

  (3)原因排除法。

1026258