版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件技術(shù)基礎(chǔ)8.1軟件工程基礎(chǔ)8.1.1軟件工程的基本概念軟件的發(fā)展過程軟件工程的定義軟件工程的內(nèi)容軟件工程過程與軟件生命周期軟件工程的基本目標(biāo)與原則
軟件開發(fā)工具與開發(fā)環(huán)境軟件的發(fā)展過程軟件的發(fā)展大致可劃分為四個(gè)階段
:程序設(shè)計(jì)階段程序系統(tǒng)階段軟件工程階段(結(jié)構(gòu)化方法)軟件工程階段(面向?qū)ο蠓椒?軟件工程的定義
軟件工程就是采用工程化的原理、技術(shù)和方法來開發(fā)、運(yùn)行和維護(hù)軟件。軟件工程包含三個(gè)要素:方法(Methodologies)工具(Tools)過程(Procedures)
軟件工程的內(nèi)容
軟件工程的主要內(nèi)容是揭示和分析計(jì)算機(jī)系統(tǒng)所要求的各種功能,然后將它們分配給系統(tǒng)的各個(gè)部分。軟件工程過程與軟件生命周期
軟件工程過程軟件工程包括:獲取過程、供應(yīng)過程、開發(fā)過程、操作過程、維護(hù)過程、管理過程、支持過程
軟件生命周期軟件生命周期大體可分為三個(gè)時(shí)期:計(jì)劃階段、開發(fā)階段和運(yùn)行階段。軟件生命周期模型軟件過程模型:瀑布模型、快速原型模型、螺旋模型、增量模型、噴泉模型、變換模型、面向?qū)ο笊嫫谀P偷?。瀑布模型瀑布模型——軟件工程中?yīng)用最廣泛的軟件過程模型軟件測試軟件設(shè)計(jì)需求分析軟件維護(hù)軟件編碼軟件計(jì)劃瀑布模型軟件工程的基本目標(biāo)與原則軟件工程的目標(biāo)可概括為:要付出較低的開發(fā)成本,達(dá)到要求的軟件功能,取得較好的軟件性能,開發(fā)的軟件要易于移植、可靠性高,維護(hù)費(fèi)用要較低些,并能按時(shí)完成開發(fā)工作,及時(shí)交付使用。軟件工程的原則:分解、抽象和信息隱蔽、一致性、確定性。8.1.2軟件開發(fā)方法
結(jié)構(gòu)化方法面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計(jì)面向?qū)ο缶幊誊浖y試問題定義和可行性分析面向?qū)ο蠓椒ǖ能浖_發(fā)過程
面向?qū)ο蟮姆椒ńY(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化編程軟件測試問題定義和可行性分析結(jié)構(gòu)化方法的軟件開發(fā)過程8.1.3軟件測試與維護(hù)
軟件測試方法可分為靜態(tài)測試和動(dòng)態(tài)測試兩大類
軟件測試
大型軟件系統(tǒng)的測試基本上分四步進(jìn)行:單元測試、集成測試、驗(yàn)收測試(確認(rèn)測試)和系統(tǒng)測試
軟件維護(hù)
軟件維護(hù)的內(nèi)容有四項(xiàng):校正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)
8.1.4程序的調(diào)試
程序調(diào)試就是診斷和糾正程序錯(cuò)誤的過程。
程序調(diào)試可分為:靜態(tài)調(diào)試、動(dòng)態(tài)調(diào)試。8.2程序設(shè)計(jì)基礎(chǔ)8.2.1程序設(shè)計(jì)語言的發(fā)展
機(jī)器語言匯編語言高級語言非過程化語言智能性語言8.2.2程序設(shè)計(jì)的過程和方法
程序設(shè)計(jì)過程
問題的分析算法的設(shè)計(jì)流程的描述編寫程序調(diào)試運(yùn)行程序程序設(shè)計(jì)=算法+數(shù)據(jù)結(jié)構(gòu)+方法+工具
程序設(shè)計(jì)方法
程序設(shè)計(jì)有兩大類方法,一種是面向過程的結(jié)構(gòu)化程序設(shè)計(jì)方法,另一種是面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。8.2.3結(jié)構(gòu)化程序設(shè)計(jì)
結(jié)構(gòu)化程序設(shè)計(jì)的原則
結(jié)構(gòu)化程序設(shè)計(jì)的基本原則是:在軟件設(shè)計(jì)和實(shí)現(xiàn)過程中,提倡采用自頂向下、逐步細(xì)化的模塊化程序設(shè)計(jì)原則
結(jié)構(gòu)化程序的基本結(jié)構(gòu)
結(jié)構(gòu)化程序的基本結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)
程序設(shè)計(jì)的應(yīng)用8.2.4面向?qū)ο蟮某绦蛟O(shè)計(jì)
面向?qū)ο蟮某绦蛟O(shè)計(jì)簡介面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念面向?qū)ο蟪绦蛟O(shè)計(jì)的過程面向?qū)ο蟮某绦蛟O(shè)計(jì)簡介特點(diǎn):
它與人們習(xí)慣的思維方法一致,便于分析復(fù)雜而多變化的問題可重用性好,能用繼承的方式減短程序開發(fā)所花費(fèi)的時(shí)間易于軟件的維護(hù)和軟件功能的改變它與可視化技術(shù)相結(jié)合,改善了工作界面面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念
面向?qū)ο?Object-Oriented)
對象(Object)
類(Class)
屬性(Property)
消息和方法(MessageandMethod)
封裝(Encapsulation)
繼承(Inheritance)
多態(tài)性(Polymorphism)面向?qū)ο蟪绦蛟O(shè)計(jì)的過程
分析現(xiàn)實(shí)世界問題域建立模型(類屬性/方法的確定及類之間關(guān)系的確定)
編制程序,建立類數(shù)據(jù)類型(屬性、方法)
用類聲明對象,通過對象間傳遞消息(方法調(diào)用)完成預(yù)定功能8.2.5常用程序設(shè)計(jì)語言BASIC語言
FORTRAN語言
Pascal語言
C語言
C++語言
Java語言
HTML(超文本標(biāo)記語言)8.3算法與數(shù)據(jù)結(jié)構(gòu)8.3.1算法算法的概念算法設(shè)計(jì)(評價(jià))的準(zhǔn)則算法的復(fù)雜度算法的概念算法是解決給定問題的一種方法算法的特征:有窮性:執(zhí)行了有限條指令后一定要終止確定性:算法的每一步操作都必須有確切定義,不 得有任何歧義性有效性:算法的每一步操作都必須是可行的,即每 步操作均能在有限時(shí)間內(nèi)完成輸入:一個(gè)算法有n(n≥0)個(gè)初始數(shù)據(jù)的輸入輸出:一個(gè)算法有一個(gè)或多個(gè)與有效信息的輸出算法設(shè)計(jì)(評價(jià))的準(zhǔn)則正確性可讀性健壯性時(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ù)的存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的運(yùn)算數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù):是表示信息的物理符號(hào),是信息的載體,它能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理。數(shù)據(jù)是描述客觀事物的數(shù)、字符以及所有能輸入到計(jì)算機(jī)中并被計(jì)算機(jī)程序加工處理的符號(hào)的集合。
數(shù)據(jù)結(jié)構(gòu):是指互相之間存在著一種或多種關(guān)系的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(或稱物理結(jié)構(gòu))。數(shù)據(jù)的邏輯結(jié)構(gòu)
只抽象地反映數(shù)據(jù)元素的結(jié)構(gòu),而不管其存儲(chǔ)方式的數(shù)據(jù)結(jié)構(gòu)稱為數(shù)據(jù)的邏輯結(jié)構(gòu)。集合結(jié)構(gòu)線性結(jié)構(gòu)樹形結(jié)構(gòu)圖形結(jié)構(gòu)集合線性樹圖數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
順序存儲(chǔ)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中結(jié)點(diǎn)由兩部分組成:一部分存儲(chǔ)結(jié)點(diǎn)本身的值,稱為數(shù)據(jù)域;另一部分存儲(chǔ)該結(jié)點(diǎn)的后繼結(jié)點(diǎn)的存儲(chǔ)單元地址,稱為指針域。數(shù)據(jù)域指針域結(jié)點(diǎn)的結(jié)構(gòu)數(shù)據(jù)的運(yùn)算
常用的幾種運(yùn)算有:插入刪除查找替換排序8.3.3線性表
線性表的定義和邏輯特征線性表是具有相同數(shù)據(jù)類型的n(n≥0)個(gè)數(shù)據(jù)元素的有限集(a1,a2,…,an),每個(gè)元素的位置是線性(一維)的。線性表(a1,a2,…,an)的邏輯特征:有且僅有一個(gè)開始結(jié)點(diǎn)ai(無直接前趨)
有且僅有一個(gè)終端結(jié)點(diǎn)an(無直接后繼)
其余的結(jié)點(diǎn)ai(1<i<n)都有且僅有一個(gè)直接前趨ai–1和一個(gè)直接后繼ai+1ai是屬于某個(gè)數(shù)據(jù)對象的元素,它可以是一個(gè)數(shù)字、一個(gè)字母或一個(gè)記錄
線性表的兩種結(jié)構(gòu):
順序存儲(chǔ)結(jié)構(gòu)(順序表)
非順序存儲(chǔ)結(jié)構(gòu)(鏈表)8.3.4棧
棧是限制在表的一端進(jìn)行插入和刪除運(yùn)算的線性表,又稱為后進(jìn)先出的線性表(LIFO表),是一種特殊的線性表。表尾稱為棧頂(top),表頭叫做棧底(bottom),表中無元素時(shí)稱為空棧進(jìn)棧出棧棧頂棧底ana2a1棧結(jié)構(gòu)8.3.5隊(duì)列
插入在表一端進(jìn)行,而刪除在表的另一端進(jìn)行,將這種數(shù)據(jù)結(jié)構(gòu)稱為隊(duì)或隊(duì)列。
隊(duì)列的物理存儲(chǔ)可以用順序存儲(chǔ)結(jié)構(gòu),也可以用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。隊(duì)列的基本運(yùn)算有入隊(duì)、出隊(duì)、取隊(duì)頭、判隊(duì)列空、插入和刪除等。a2a1a3an出隊(duì)列入隊(duì)列頭尾隊(duì)列的示意8.3.6樹與二叉樹
樹和二叉樹的定義二叉樹的幾個(gè)基本性質(zhì)二叉樹的存儲(chǔ)
二叉樹的遍歷樹和二叉樹的定義
樹是由一個(gè)或多個(gè)結(jié)點(diǎn)組成的有限集合。它很像一株倒懸著的樹,從樹根到大、小枝干、直到葉子,將數(shù)據(jù)聯(lián)系起來,這樣的數(shù)據(jù)結(jié)構(gòu)稱為樹結(jié)構(gòu)(簡稱為樹)。
二叉樹是有限個(gè)元素的集合,該集合或者為空、或者由一個(gè)稱為根的元素及兩個(gè)不相交的、被分別稱為左子樹和右子樹的二叉樹組成。當(dāng)集合為空時(shí),稱該二叉樹為空二叉樹。在二叉樹中,一個(gè)元素也稱作一個(gè)結(jié)點(diǎn)。二叉樹的幾個(gè)基本性質(zhì)
性質(zhì)1:在二叉樹第i層上至多有2i–1個(gè)結(jié)點(diǎn) (i≥1)。性質(zhì)2:深度為k的二叉樹中,最多有2k–1 個(gè)結(jié)點(diǎn)(k≥1)。性質(zhì)3:具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度 是:[log2n]+1。性質(zhì)4:在任意一棵二叉樹中,若其葉子 結(jié)點(diǎn)數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為 n2,則:n0=n2+1。二叉樹的存儲(chǔ)
二叉樹的存儲(chǔ)通常采用鏈接方式。它是指用鏈表來表示一棵二叉樹,即用鏈來指示元素的邏輯關(guān)系。鏈表中每個(gè)結(jié)點(diǎn)由三個(gè)域組成,除了數(shù)據(jù)域外,還有兩個(gè)指針域,分別用來給出該結(jié)點(diǎn)左子樹和右子樹所在的鏈結(jié)點(diǎn)的存儲(chǔ)地址。結(jié)點(diǎn)的存儲(chǔ)的結(jié)構(gòu)為:lchilddaterchild二叉樹的遍歷
三種重要的二叉樹遍歷的方法:先序遍歷法中序遍歷法后序遍歷法二叉樹的遍歷
例:給出如圖8-20所示的一棵二叉樹,寫出對應(yīng)的遍歷序列。按先序遍歷序列:
abdecfgh
按中序遍歷序列:按后序遍歷序列:debfcgahedfgcbha
cdehgfba樹的結(jié)構(gòu)8.3.7查找
查找就是在某種數(shù)據(jù)結(jié)構(gòu)中找出滿足條件的結(jié)點(diǎn)。兩種基本的查找方法:
二分法查找
順序查找順序查找的方法
順序查找方法為:從表的一端開始,向另一端逐個(gè)按給定值kx與表中各結(jié)點(diǎn)的關(guān)鍵碼進(jìn)行比較,若找到,查找成功,并給出數(shù)據(jù)元素在表中的位置;若整個(gè)表檢索完之后,仍未找到與給定值kx相同的關(guān)鍵碼,則查找失敗,給出失敗信息。二分法查找的方法
二分法查找的方法是:在有序表中,取中間元素作為比較對象,若給定值與中間元素的關(guān)鍵碼相等,則查找成功:若給定值小于中間元素的關(guān)鍵碼,則在中間元素的左半?yún)^(qū)繼續(xù)查找;若給定值大于中間元素的關(guān)鍵碼,則在中間元素的右半?yún)^(qū)繼續(xù)查找。不斷重復(fù)上述查找過程,直到查找成功,或所查找的區(qū)域無數(shù)據(jù)元素,查找失敗。
順序查找的優(yōu)缺點(diǎn)
順序查找的優(yōu)點(diǎn):一是對線性表的結(jié)點(diǎn)的邏輯次序不作要求,無需按關(guān)鍵碼值先排序。二是對線性表的存儲(chǔ)結(jié)構(gòu)不作要求,順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)均可。其缺點(diǎn)是:平均檢索長度大二分法查找的優(yōu)缺點(diǎn)
二分法查找的優(yōu)點(diǎn):平均檢索長度小,即每經(jīng)過一次關(guān)鍵碼比較,則將查找范圍縮小一半,經(jīng)過次比較就可完成查找過程。其缺點(diǎn)是排序線性表費(fèi)時(shí)間8.3.8排序
排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,它是將一個(gè)無序序列整理成按關(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ù)庫主動(dòng)數(shù)據(jù)庫數(shù)據(jù)倉庫8.4.2數(shù)據(jù)庫的基本概念數(shù)據(jù)庫系統(tǒng)的基本概念數(shù)據(jù)庫管理系統(tǒng)的基本功能數(shù)據(jù)庫系統(tǒng)的基本特點(diǎn)數(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ù)庫運(yùn)行控制數(shù)據(jù)庫的建立和維護(hù)數(shù)據(jù)庫系統(tǒng)的基本特點(diǎn)數(shù)據(jù)的結(jié)構(gòu)化數(shù)據(jù)的共享高最低冗余度數(shù)據(jù)的獨(dú)立性數(shù)據(jù)的完整性數(shù)據(jù)的安全性數(shù)據(jù)的統(tǒng)一管理8.4.3數(shù)據(jù)模型什么是數(shù)據(jù)模型數(shù)據(jù)模型是用于表示實(shí)體類型及實(shí)體之間聯(lián)系的模型,或者說,表示事物與事物間聯(lián)系的模型稱為數(shù)據(jù)模型。
數(shù)據(jù)模式的三個(gè)要素?cái)?shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作數(shù)據(jù)的完整性約束條件基本數(shù)據(jù)模型基本數(shù)據(jù)模型層次模型
網(wǎng)狀模型關(guān)系模型
實(shí)體聯(lián)系模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年陜西省榆林十中高考語文模擬試卷(一)
- 2025年《價(jià)值為綱》學(xué)習(xí)心得例文(6篇)
- 彩色噴墨打印材料項(xiàng)目融資計(jì)劃書
- 物流行業(yè)2025版租賃協(xié)議6篇
- 2025版宿舍樓宿管員職責(zé)聘用合同3篇
- 2025年度新型存款居間代理管理合同4篇
- 2025年度知識(shí)產(chǎn)權(quán)質(zhì)押貸款協(xié)議4篇
- 2025版托盤銷售與新能源車輛運(yùn)輸服務(wù)合同范本3篇
- 2025年度個(gè)人與銀行個(gè)人貸款合作專項(xiàng)協(xié)議4篇
- 二零二五年度嬰幼兒奶粉品牌孵化與市場拓展合同
- 2024版塑料購銷合同范本買賣
- JJF 2184-2025電子計(jì)價(jià)秤型式評價(jià)大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2024年安徽省中考數(shù)學(xué)試卷含答案
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級上學(xué)期語文期末復(fù)習(xí)習(xí)題
- 兩人退股協(xié)議書范文合伙人簽字
- 2024版【人教精通版】小學(xué)英語六年級下冊全冊教案
- 汽車噴漆勞務(wù)外包合同范本
- 2024年重慶南開(融僑)中學(xué)中考三模英語試題含答案
- 16J914-1 公用建筑衛(wèi)生間
評論
0/150
提交評論