軟件技術(shù)基礎(chǔ)課件_第1頁
軟件技術(shù)基礎(chǔ)課件_第2頁
軟件技術(shù)基礎(chǔ)課件_第3頁
軟件技術(shù)基礎(chǔ)課件_第4頁
軟件技術(shù)基礎(chǔ)課件_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件技術(shù)基礎(chǔ)8.1軟件工程基礎(chǔ)8.1.1軟件工程的基本概念軟件的發(fā)展過程軟件工程的定義軟件工程的內(nèi)容軟件工程過程與軟件生命周期軟件工程的基本目標與原則

軟件開發(fā)工具與開發(fā)環(huán)境軟件的發(fā)展過程軟件的發(fā)展大致可劃分為四個階段

:程序設(shè)計階段程序系統(tǒng)階段軟件工程階段(結(jié)構(gòu)化方法)軟件工程階段(面向?qū)ο蠓椒?軟件工程的定義

軟件工程就是采用工程化的原理、技術(shù)和方法來開發(fā)、運行和維護軟件。軟件工程包含三個要素:方法(Methodologies)工具(Tools)過程(Procedures)

軟件工程的內(nèi)容

軟件工程的主要內(nèi)容是揭示和分析計算機系統(tǒng)所要求的各種功能,然后將它們分配給系統(tǒng)的各個部分。軟件工程過程與軟件生命周期

軟件工程過程軟件工程包括:獲取過程、供應(yīng)過程、開發(fā)過程、操作過程、維護過程、管理過程、支持過程

軟件生命周期軟件生命周期大體可分為三個時期:計劃階段、開發(fā)階段和運行階段。軟件生命周期模型軟件過程模型:瀑布模型、快速原型模型、螺旋模型、增量模型、噴泉模型、變換模型、面向?qū)ο笊嫫谀P偷?。瀑布模型瀑布模型——軟件工程中?yīng)用最廣泛的軟件過程模型軟件測試軟件設(shè)計需求分析軟件維護軟件編碼軟件計劃瀑布模型軟件工程的基本目標與原則軟件工程的目標可概括為:要付出較低的開發(fā)成本,達到要求的軟件功能,取得較好的軟件性能,開發(fā)的軟件要易于移植、可靠性高,維護費用要較低些,并能按時完成開發(fā)工作,及時交付使用。軟件工程的原則:分解、抽象和信息隱蔽、一致性、確定性。8.1.2軟件開發(fā)方法

結(jié)構(gòu)化方法面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計面向?qū)ο缶幊誊浖y試問題定義和可行性分析面向?qū)ο蠓椒ǖ能浖_發(fā)過程

面向?qū)ο蟮姆椒ńY(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化編程軟件測試問題定義和可行性分析結(jié)構(gòu)化方法的軟件開發(fā)過程8.1.3軟件測試與維護

軟件測試方法可分為靜態(tài)測試和動態(tài)測試兩大類

軟件測試

大型軟件系統(tǒng)的測試基本上分四步進行:單元測試、集成測試、驗收測試(確認測試)和系統(tǒng)測試

軟件維護

軟件維護的內(nèi)容有四項:校正性維護、適應(yīng)性維護、完善性維護和預(yù)防性維護

8.1.4程序的調(diào)試

程序調(diào)試就是診斷和糾正程序錯誤的過程。

程序調(diào)試可分為:靜態(tài)調(diào)試、動態(tài)調(diào)試。8.2程序設(shè)計基礎(chǔ)8.2.1程序設(shè)計語言的發(fā)展

機器語言匯編語言高級語言非過程化語言智能性語言8.2.2程序設(shè)計的過程和方法

程序設(shè)計過程

問題的分析算法的設(shè)計流程的描述編寫程序調(diào)試運行程序程序設(shè)計=算法+數(shù)據(jù)結(jié)構(gòu)+方法+工具

程序設(shè)計方法

程序設(shè)計有兩大類方法,一種是面向過程的結(jié)構(gòu)化程序設(shè)計方法,另一種是面向?qū)ο蟮某绦蛟O(shè)計方法。8.2.3結(jié)構(gòu)化程序設(shè)計

結(jié)構(gòu)化程序設(shè)計的原則

結(jié)構(gòu)化程序設(shè)計的基本原則是:在軟件設(shè)計和實現(xiàn)過程中,提倡采用自頂向下、逐步細化的模塊化程序設(shè)計原則

結(jié)構(gòu)化程序的基本結(jié)構(gòu)

結(jié)構(gòu)化程序的基本結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)

程序設(shè)計的應(yīng)用8.2.4面向?qū)ο蟮某绦蛟O(shè)計

面向?qū)ο蟮某绦蛟O(shè)計簡介面向?qū)ο蟪绦蛟O(shè)計的基本概念面向?qū)ο蟪绦蛟O(shè)計的過程面向?qū)ο蟮某绦蛟O(shè)計簡介特點:

它與人們習慣的思維方法一致,便于分析復(fù)雜而多變化的問題可重用性好,能用繼承的方式減短程序開發(fā)所花費的時間易于軟件的維護和軟件功能的改變它與可視化技術(shù)相結(jié)合,改善了工作界面面向?qū)ο蟪绦蛟O(shè)計的基本概念

面向?qū)ο?Object-Oriented)

對象(Object)

類(Class)

屬性(Property)

消息和方法(MessageandMethod)

封裝(Encapsulation)

繼承(Inheritance)

多態(tài)性(Polymorphism)面向?qū)ο蟪绦蛟O(shè)計的過程

分析現(xiàn)實世界問題域建立模型(類屬性/方法的確定及類之間關(guān)系的確定)

編制程序,建立類數(shù)據(jù)類型(屬性、方法)

用類聲明對象,通過對象間傳遞消息(方法調(diào)用)完成預(yù)定功能8.2.5常用程序設(shè)計語言BASIC語言

FORTRAN語言

Pascal語言

C語言

C++語言

Java語言

HTML(超文本標記語言)8.3算法與數(shù)據(jù)結(jié)構(gòu)8.3.1算法算法的概念算法設(shè)計(評價)的準則算法的復(fù)雜度算法的概念算法是解決給定問題的一種方法算法的特征:有窮性:執(zhí)行了有限條指令后一定要終止確定性:算法的每一步操作都必須有確切定義,不 得有任何歧義性有效性:算法的每一步操作都必須是可行的,即每 步操作均能在有限時間內(nèi)完成輸入:一個算法有n(n≥0)個初始數(shù)據(jù)的輸入輸出:一個算法有一個或多個與有效信息的輸出算法設(shè)計(評價)的準則正確性可讀性健壯性時空效率8.3.2數(shù)據(jù)結(jié)構(gòu)的基本概念(1)西文字符的ASCII編碼(2)漢字字符的編碼數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的存儲結(jié)構(gòu)數(shù)據(jù)的運算數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù):是表示信息的物理符號,是信息的載體,它能夠被計算機識別、存儲和加工處理。數(shù)據(jù)是描述客觀事物的數(shù)、字符以及所有能輸入到計算機中并被計算機程序加工處理的符號的集合。

數(shù)據(jù)結(jié)構(gòu):是指互相之間存在著一種或多種關(guān)系的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)(或稱物理結(jié)構(gòu))。數(shù)據(jù)的邏輯結(jié)構(gòu)

只抽象地反映數(shù)據(jù)元素的結(jié)構(gòu),而不管其存儲方式的數(shù)據(jù)結(jié)構(gòu)稱為數(shù)據(jù)的邏輯結(jié)構(gòu)。集合結(jié)構(gòu)線性結(jié)構(gòu)樹形結(jié)構(gòu)圖形結(jié)構(gòu)集合線性樹圖數(shù)據(jù)的存儲結(jié)構(gòu)

順序存儲結(jié)構(gòu)鏈式存儲結(jié)構(gòu)鏈式存儲結(jié)構(gòu)中結(jié)點由兩部分組成:一部分存儲結(jié)點本身的值,稱為數(shù)據(jù)域;另一部分存儲該結(jié)點的后繼結(jié)點的存儲單元地址,稱為指針域。數(shù)據(jù)域指針域結(jié)點的結(jié)構(gòu)數(shù)據(jù)的運算

常用的幾種運算有:插入刪除查找替換排序8.3.3線性表

線性表的定義和邏輯特征線性表是具有相同數(shù)據(jù)類型的n(n≥0)個數(shù)據(jù)元素的有限集(a1,a2,…,an),每個元素的位置是線性(一維)的。線性表(a1,a2,…,an)的邏輯特征:有且僅有一個開始結(jié)點ai(無直接前趨)

有且僅有一個終端結(jié)點an(無直接后繼)

其余的結(jié)點ai(1<i<n)都有且僅有一個直接前趨ai–1和一個直接后繼ai+1ai是屬于某個數(shù)據(jù)對象的元素,它可以是一個數(shù)字、一個字母或一個記錄

線性表的兩種結(jié)構(gòu):

順序存儲結(jié)構(gòu)(順序表)

非順序存儲結(jié)構(gòu)(鏈表)8.3.4棧

棧是限制在表的一端進行插入和刪除運算的線性表,又稱為后進先出的線性表(LIFO表),是一種特殊的線性表。表尾稱為棧頂(top),表頭叫做棧底(bottom),表中無元素時稱為空棧進棧出棧棧頂棧底ana2a1棧結(jié)構(gòu)8.3.5隊列

插入在表一端進行,而刪除在表的另一端進行,將這種數(shù)據(jù)結(jié)構(gòu)稱為隊或隊列。

隊列的物理存儲可以用順序存儲結(jié)構(gòu),也可以用鏈式存儲結(jié)構(gòu)。隊列的基本運算有入隊、出隊、取隊頭、判隊列空、插入和刪除等。a2a1a3an出隊列入隊列頭尾隊列的示意8.3.6樹與二叉樹

樹和二叉樹的定義二叉樹的幾個基本性質(zhì)二叉樹的存儲

二叉樹的遍歷樹和二叉樹的定義

樹是由一個或多個結(jié)點組成的有限集合。它很像一株倒懸著的樹,從樹根到大、小枝干、直到葉子,將數(shù)據(jù)聯(lián)系起來,這樣的數(shù)據(jù)結(jié)構(gòu)稱為樹結(jié)構(gòu)(簡稱為樹)。

二叉樹是有限個元素的集合,該集合或者為空、或者由一個稱為根的元素及兩個不相交的、被分別稱為左子樹和右子樹的二叉樹組成。當集合為空時,稱該二叉樹為空二叉樹。在二叉樹中,一個元素也稱作一個結(jié)點。二叉樹的幾個基本性質(zhì)

性質(zhì)1:在二叉樹第i層上至多有2i–1個結(jié)點 (i≥1)。性質(zhì)2:深度為k的二叉樹中,最多有2k–1 個結(jié)點(k≥1)。性質(zhì)3:具有n個結(jié)點的完全二叉樹的深度 是:[log2n]+1。性質(zhì)4:在任意一棵二叉樹中,若其葉子 結(jié)點數(shù)為n0,度為2的結(jié)點數(shù)為 n2,則:n0=n2+1。二叉樹的存儲

二叉樹的存儲通常采用鏈接方式。它是指用鏈表來表示一棵二叉樹,即用鏈來指示元素的邏輯關(guān)系。鏈表中每個結(jié)點由三個域組成,除了數(shù)據(jù)域外,還有兩個指針域,分別用來給出該結(jié)點左子樹和右子樹所在的鏈結(jié)點的存儲地址。結(jié)點的存儲的結(jié)構(gòu)為:lchilddaterchild二叉樹的遍歷

三種重要的二叉樹遍歷的方法:先序遍歷法中序遍歷法后序遍歷法二叉樹的遍歷

例:給出如圖8-20所示的一棵二叉樹,寫出對應(yīng)的遍歷序列。按先序遍歷序列:

abdecfgh

按中序遍歷序列:按后序遍歷序列:debfcgahedfgcbha

cdehgfba樹的結(jié)構(gòu)8.3.7查找

查找就是在某種數(shù)據(jù)結(jié)構(gòu)中找出滿足條件的結(jié)點。兩種基本的查找方法:

二分法查找

順序查找順序查找的方法

順序查找方法為:從表的一端開始,向另一端逐個按給定值kx與表中各結(jié)點的關(guān)鍵碼進行比較,若找到,查找成功,并給出數(shù)據(jù)元素在表中的位置;若整個表檢索完之后,仍未找到與給定值kx相同的關(guān)鍵碼,則查找失敗,給出失敗信息。二分法查找的方法

二分法查找的方法是:在有序表中,取中間元素作為比較對象,若給定值與中間元素的關(guān)鍵碼相等,則查找成功:若給定值小于中間元素的關(guān)鍵碼,則在中間元素的左半?yún)^(qū)繼續(xù)查找;若給定值大于中間元素的關(guān)鍵碼,則在中間元素的右半?yún)^(qū)繼續(xù)查找。不斷重復(fù)上述查找過程,直到查找成功,或所查找的區(qū)域無數(shù)據(jù)元素,查找失敗。

順序查找的優(yōu)缺點

順序查找的優(yōu)點:一是對線性表的結(jié)點的邏輯次序不作要求,無需按關(guān)鍵碼值先排序。二是對線性表的存儲結(jié)構(gòu)不作要求,順序存儲、鏈式存儲均可。其缺點是:平均檢索長度大二分法查找的優(yōu)缺點

二分法查找的優(yōu)點:平均檢索長度小,即每經(jīng)過一次關(guān)鍵碼比較,則將查找范圍縮小一半,經(jīng)過次比較就可完成查找過程。其缺點是排序線性表費時間8.3.8排序

排序是計算機程序設(shè)計中的一種重要操作,它是將一個無序序列整理成按關(guān)鍵字遞增(或遞減)的有序序列的處理過程。

幾種最常用的內(nèi)排序方法:

直接插入排序冒泡排序選擇排序快速排序8.4數(shù)據(jù)庫技術(shù)基礎(chǔ)8.4.1數(shù)據(jù)庫技術(shù)的發(fā)展人工管理階段文件系統(tǒng)階段應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n人工管理階段

應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n文件1文件2文件n存取文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)庫的發(fā)展趨勢數(shù)據(jù)庫的發(fā)展趨勢分布式數(shù)據(jù)庫面向?qū)ο髷?shù)據(jù)庫多媒體數(shù)據(jù)庫

模糊數(shù)據(jù)庫演繹數(shù)據(jù)庫主動數(shù)據(jù)庫數(shù)據(jù)倉庫8.4.2數(shù)據(jù)庫的基本概念數(shù)據(jù)庫系統(tǒng)的基本概念數(shù)據(jù)庫管理系統(tǒng)的基本功能數(shù)據(jù)庫系統(tǒng)的基本特點數(shù)據(jù)庫系統(tǒng)的基本概念數(shù)據(jù)數(shù)據(jù)處理數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理員數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)的基本功能數(shù)據(jù)庫管理系統(tǒng)的主要功能:數(shù)據(jù)定義數(shù)據(jù)操縱數(shù)據(jù)庫運行控制數(shù)據(jù)庫的建立和維護數(shù)據(jù)庫系統(tǒng)的基本特點數(shù)據(jù)的結(jié)構(gòu)化數(shù)據(jù)的共享高最低冗余度數(shù)據(jù)的獨立性數(shù)據(jù)的完整性數(shù)據(jù)的安全性數(shù)據(jù)的統(tǒng)一管理8.4.3數(shù)據(jù)模型什么是數(shù)據(jù)模型數(shù)據(jù)模型是用于表示實體類型及實體之間聯(lián)系的模型,或者說,表示事物與事物間聯(lián)系的模型稱為數(shù)據(jù)模型。

數(shù)據(jù)模式的三個要素數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作數(shù)據(jù)的完整性約束條件基本數(shù)據(jù)模型基本數(shù)據(jù)模型層次模型

網(wǎng)狀模型關(guān)系模型

實體聯(lián)系模

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論