目錄
一、計(jì)算機(jī)系統(tǒng)
1.1 CPU的功能有:
1.2 運(yùn)算器的組成
1.3 控制器——不僅要保證程序的正確執(zhí)行、還要能夠處理異常事件
1.3.1 指令控制邏輯
1.4?計(jì)算機(jī)基本單位
1.5?進(jìn)制的變換
1.5.1?進(jìn)制加減法
1.6?原碼、反碼、補(bǔ)碼、移碼
1.7?浮點(diǎn)數(shù)
1.8?尋址
1.9?校驗(yàn)碼
1.10 RISC、CISC
1.11 流水線
1.12?存儲(chǔ)器
1.13 Cache
1.14?中斷
1.15?輸入輸出方式 I/O 與 總線(了解)
1.16?加密技術(shù)與認(rèn)證技術(shù)
1.17?可靠性公式
二、程序設(shè)計(jì)語(yǔ)言基礎(chǔ)知識(shí)
2.1?編譯、解釋程序
2.2?正規(guī)式
2.3?有限自動(dòng)機(jī)
2.4?上下文無(wú)關(guān)法
2.5?中綴、后綴表達(dá)式轉(zhuǎn)換
2.6?語(yǔ)法樹(shù)中、后遍歷
2.7?補(bǔ)充
三、知識(shí)產(chǎn)權(quán)
3.1?軟件著作權(quán)
3.2?專利
3.3 商標(biāo)
四、數(shù)據(jù)庫(kù)
4.1?概念數(shù)據(jù)模型、結(jié)構(gòu)數(shù)據(jù)模型
4.2?數(shù)據(jù)庫(kù)的三級(jí)模式兩級(jí)映像
4.3?關(guān)系模式
4.3.1 完整性約束
4.3.2?傳統(tǒng)的集合運(yùn)算
4.3.3?函數(shù)依賴
4.3.4?關(guān)系模式的范式
4.4?視圖? /? 索引? /? 權(quán)限
4.5?事務(wù)
4.6?備份
4.7?并發(fā)控制的主要技術(shù)——封鎖
五、面向?qū)ο?/p>
5.1?類
5.2?對(duì)象
5.2.1?方法重載
5.2.2?繼承? Extends
5.2.3?多態(tài)?
5.2.4?面向?qū)ο笤O(shè)計(jì)原則
5.3?抽象類
六、UML(統(tǒng)一建模語(yǔ)言)
6.1?關(guān)系
6.2 UML圖
七、設(shè)計(jì)模式
7.1?創(chuàng)建型設(shè)計(jì)模式
7.2?結(jié)構(gòu)型設(shè)計(jì)模式
7.3?行為型設(shè)計(jì)模式
八、操作系統(tǒng)
8.1?前趨圖
8.2?進(jìn)程
8.2.1?進(jìn)程間的通信
8.2.2?死鎖
8.2.3?進(jìn)程資源圖
8.2.4?線程
8.2.5?程序局部性
8.3?分頁(yè)存儲(chǔ)管理
8.4?單 /?雙緩沖區(qū)
8.5?磁盤(pán)調(diào)度算法
?編輯8.5.1?旋轉(zhuǎn)調(diào)度算法
8.6?多級(jí)索引結(jié)構(gòu)
8.7?文件目錄(了解)?
九、結(jié)構(gòu)化開(kāi)發(fā)
9.1?模塊獨(dú)立
9.1.1?耦合
9.1.2?內(nèi)聚
9.2?結(jié)構(gòu)設(shè)計(jì)原則
9.3?系統(tǒng)文檔
十、軟件工程
10.1?能力成熟度模型(CMM)
10.2?能力成熟度模型集成(CMMI)
10.3?軟件過(guò)程模型
10.4?敏捷方法
10.5?主要軟件需求
10.6?系統(tǒng)設(shè)計(jì)
10.7?系統(tǒng)測(cè)試
10.7.1?傳統(tǒng)測(cè)試
10.7.2 測(cè)試方法
10.7.3 McCabe度量法
10.7.4?系統(tǒng)維護(hù)概述
10.7.5?溝通路徑
10.7.6?軟件項(xiàng)目估算
10.7.7 Gantt圖和PERT圖
10.8?軟件配置管理
11、信息安全
11.1?防火墻
11.2?病毒
11.3?網(wǎng)絡(luò)攻擊
11.4?網(wǎng)絡(luò)安全
12、計(jì)算機(jī)網(wǎng)絡(luò)
12.1?協(xié)議簇
12.1.1 TCP和UDP
12.1.2 SMTP(25)和POP3(110)
12.1.3 ARP和RARP
12.1.4 DHCP和協(xié)議名(URL)
12.2 IP地址、藍(lán)牙
12.3 Windows命令
13、數(shù)據(jù)結(jié)構(gòu)、算法(不全)
13.1?復(fù)雜度
13.2?線性表
13.3?棧、隊(duì)列
13.4?二叉樹(shù)
13.5?有向圖、無(wú)向圖
13.6?排序算法時(shí)間/空間復(fù)雜度
一、計(jì)算機(jī)系統(tǒng)
計(jì)算機(jī)的基本硬件系統(tǒng)由運(yùn)算器、控制器、存儲(chǔ)器、輸入\輸出設(shè)備五大部分組成
1.1 CPU的功能有:
1.程序控制:控制程序的執(zhí)行順序
2.操作控制:將每條指令的操作信號(hào)送往對(duì)應(yīng)部件按要求進(jìn)行操作
3.時(shí)間控制:對(duì)各種操作進(jìn)行時(shí)間控制
4.數(shù)據(jù)處理:數(shù)據(jù)加工處理
1.2 運(yùn)算器的組成
1.算術(shù)邏輯單元(ALU):處理數(shù)據(jù),負(fù)責(zé)算術(shù)\邏輯運(yùn)算
2.累加寄存器(AC):通用寄存器,用來(lái)寄存結(jié)果,為ALU提供工作區(qū)暫存結(jié)果
3.數(shù)據(jù)緩沖寄存器(DR):CPU和內(nèi)存、外部設(shè)備之間的中轉(zhuǎn)站
4.(了解即可)狀態(tài)條件寄存器(PSW):保存算術(shù)指令和邏輯指令
1.3 控制器——不僅要保證程序的正確執(zhí)行、還要能夠處理異常事件
1.3.1 指令控制邏輯
1.指令寄存器(IR):可放地址、操作碼。用戶不可訪問(wèn),完全透明
2.程序計(jì)數(shù)器(PC):具有寄存信息和計(jì)數(shù)功能,追蹤指令,存儲(chǔ)執(zhí)行下一條指令地址
3.地址寄存器(AR):保存當(dāng)前CPU所訪問(wèn)的內(nèi)存單元地址
4.指令譯碼器(ID):包含操作碼、地址碼,對(duì)操作字段進(jìn)行解析、控制部件
1.4?計(jì)算機(jī)基本單位
最小的數(shù)據(jù)單位:bit 最小的存儲(chǔ)單位:byte |
位(比特) | bit | |
字節(jié) | Byte? ?? | 1B = 8bit |
千字節(jié) | KB | 1KB = 1024B |
兆字節(jié) | MB | 1MB = 1024KB |
吉字節(jié) | GB | 1GB = 1024MB |
太字節(jié) | TB | 1TB = 1024GB |
1.5?進(jìn)制的變換
2進(jìn)制? ? ?>>? ?B
8進(jìn)制? ? ?>>? ?O
10進(jìn)制? ?>>? ?D
16進(jìn)制? ?>>? ?H
1.除N取余法?余數(shù)從下到上
2.按照權(quán)位展開(kāi)法
10100.01 = 1*10^4?+ 0*10^3 + 1*10^2 + 0*10^1 + 0*10^0 + 0*10^-1 + 1*10^-2
變二進(jìn)制 >> 1*2^4 + 1*2^2 + 1*2^-2
1.5.1?進(jìn)制加減法
16進(jìn)制表示 1 2 3 4 5 6 7 8 9 A~F表示10~15
公式:大地址 -?小地址 +?最末位+1
如題所示:內(nèi)存按字節(jié)編址,地址從 A0000H 到 CFFFFH 的內(nèi)存,共有多少??KB字節(jié),若用存儲(chǔ)容量為64K x 8bit的存儲(chǔ)器芯片構(gòu)成該內(nèi)存空間,至少需要多少 片
CFFFF(H) - A0000(H) = 2FFFF(H)?+ 1 = 30000(H)?字節(jié)
1024字節(jié) =?1KB字節(jié)
30000 / 1024 = 192KB
需要多少片
1B = 8bit?
192KB = 192K * 8bit
192K*8bit? ?/? ?64K/*bit? =? 3
1.6?原碼、反碼、補(bǔ)碼、移碼
在原碼、反碼表示中,0表示正號(hào),1表示負(fù)號(hào),其余的n-1位表示數(shù)值的絕對(duì)值
正數(shù) >>?原碼、反碼、補(bǔ)碼相同 >>?補(bǔ)碼符號(hào)位取反
負(fù)數(shù) >>?原碼、反碼符號(hào)位不變,其余變反 >>?反碼的末位加1為補(bǔ)碼 >>?補(bǔ)碼符號(hào)位取反為移碼
補(bǔ)碼的補(bǔ)碼 =?原碼
1.7?浮點(diǎn)數(shù)
浮點(diǎn)數(shù)進(jìn)行運(yùn)算時(shí),首先需要進(jìn)行對(duì)階段,推薦小階向大階對(duì)齊,尾數(shù)右移,這樣浮點(diǎn)數(shù)損失較小
二進(jìn)制數(shù)N可以表示為 N = 2^E * F?
?其中E為階碼 F為尾數(shù)?用階碼和尾數(shù)表示的數(shù)為浮點(diǎn)數(shù)
階碼越大表示數(shù)的范圍越大? 尾數(shù)越大表示精度越大
浮點(diǎn)數(shù)的表示格式如下
1.8?尋址
排序序號(hào)按照尋址速度排序
1.立即尋址:操作數(shù)包含在指令中
2.寄存器尋址:操作數(shù)放在內(nèi)存單元,指令直接給出操作數(shù)地址
3.直接尋址:操作數(shù)放在某一寄存器中,指令中給出存放操作數(shù)的寄存器
4.寄存器間接尋址:操作數(shù)放在內(nèi)存單元,操作數(shù)所在存儲(chǔ)單元的地址在某個(gè)寄存器中
5.間接尋址:指令中給出操作數(shù)地址的地址
6.相對(duì)尋址:(了解即可)操作數(shù)地址等于變址寄存器的內(nèi)容加偏移量
1.9?校驗(yàn)碼
1.奇偶校驗(yàn)碼:增加一位校驗(yàn)位來(lái)使編碼中1的個(gè)數(shù)為奇數(shù)或者偶數(shù)? 只能檢出奇數(shù)個(gè)位出錯(cuò)
2.海明校驗(yàn)碼:利用奇偶性來(lái)糾錯(cuò)和檢錯(cuò)? 2^k - 1 >=? n + k? n為數(shù)據(jù)信息位數(shù)???k是校驗(yàn)位位數(shù)
3.循環(huán)冗余校驗(yàn)碼:可以檢錯(cuò)?不能糾錯(cuò)?碼距 = 2
1.10 RISC、CISC
1.11 流水線
公式:第一條指令的完整執(zhí)行時(shí)間+(n-1)*最長(zhǎng)段的時(shí)間
操作周期 =? 最長(zhǎng)時(shí)間段
加速比 =?不采用流水線 /?采用流水線
吞吐率? =? 最長(zhǎng)時(shí)間段的倒數(shù)
n條指令吞吐率 = n /?總指令流水線時(shí)間
1.12?存儲(chǔ)器
存儲(chǔ)器按訪問(wèn)方式分類:按地址訪問(wèn)?按內(nèi)容訪問(wèn)
存儲(chǔ)器按尋址方式分類:?隨機(jī)、順序、直接存儲(chǔ)器
相聯(lián)存儲(chǔ)器按內(nèi)容訪問(wèn)
虛擬存儲(chǔ)由主存(DRAM)和輔存構(gòu)成
1.13 Cache
?Cache容量越大,命中率越高,對(duì)程序員透明、提高CPU訪問(wèn)內(nèi)存
將主存地址轉(zhuǎn)換成Cache存儲(chǔ)器的地址稱為地址映像 >>>>?由硬件自動(dòng)完成
Cache地址映像
1.全相聯(lián)映像? ? ? ? ? ?沖突最少
2.組相聯(lián)映像? ? ? ? ? ?沖突較少
3.直接映像? ? ? ? ? ? ? ?沖突最多
1.14?中斷
1.中斷向量提供中斷服務(wù)程序的入口地址
2.中斷時(shí)間 >>?發(fā)出中斷請(qǐng)求開(kāi)始?到進(jìn)入中斷服務(wù)程序
3.保存現(xiàn)場(chǎng):返回執(zhí)行原程序
1.15?輸入輸出方式 I/O 與 總線(了解)
1.程序查詢方式:一次只能讀\寫(xiě)一個(gè)字? CPU和IO只能串行工作? ?CPU輪詢檢查長(zhǎng)期忙等
2.中斷驅(qū)動(dòng)方式:一次只能讀\寫(xiě)一個(gè)字 CPU和IO可以并行工作? ?
3.直接存儲(chǔ)器方式:一次讀\寫(xiě)為塊?僅在傳送數(shù)據(jù)塊的開(kāi)始結(jié)束才需要干預(yù)?數(shù)據(jù)直接放入內(nèi)存
總線可分為:數(shù)據(jù)總線、地址總線、控制總線
1.16?加密技術(shù)與認(rèn)證技術(shù)
一、加密技術(shù):
1.對(duì)稱加密:加密和解密是同一把密鑰? ?
????????適合大量明文數(shù)據(jù)?加密解密速度很快
2.非對(duì)稱加密:加密和解密不是同一把密鑰
? ? ? ? 速度較慢?不能通過(guò)一把密鑰推出另一把
3.混合加密
二、認(rèn)證技術(shù)
摘要:防止內(nèi)容被篡改,通常和數(shù)字證書(shū)一起使用
發(fā)送方用自己的私鑰對(duì)摘要進(jìn)行簽名(加密),得到數(shù)字簽名后放在密文一起發(fā)送
接收方用發(fā)送方的公鑰對(duì)數(shù)字簽名進(jìn)行驗(yàn)證(解密),如果驗(yàn)證成功則該消息沒(méi)有被假冒不可否認(rèn)
三、對(duì)稱密鑰算法
????????DES ????????3DES ????????RC-5 ????????IDEA ????????AES ????????RC4
四、非對(duì)稱密鑰算法
????????RSA? ? ? ? ?ECC? ? ? ? ?DSA
1.17?可靠性公式
串聯(lián)系統(tǒng)公式? ?>>? R = R1*R2*R3 .... RN
并聯(lián)系統(tǒng)公式? ?>>? ?R = 1 -?(1- R1)(1- R2)...(1-RN)?
二、程序設(shè)計(jì)語(yǔ)言基礎(chǔ)知識(shí)
低級(jí)語(yǔ)言:機(jī)器語(yǔ)言?匯編語(yǔ)言
解釋程序也稱為解釋器
程序設(shè)計(jì)語(yǔ)言的控制成分:順序、選擇、循環(huán)結(jié)構(gòu)
函數(shù)參數(shù)的?傳值調(diào)用 和 引用地址調(diào)用(C++)
傳值調(diào)用:不可以實(shí)現(xiàn)形參和實(shí)參間的雙向數(shù)據(jù)傳遞
引用地址調(diào)用:可以實(shí)現(xiàn)形參和實(shí)參間的雙向數(shù)據(jù)傳遞
2.1?編譯、解釋程序
編譯方式:詞法分析、語(yǔ)法分析、語(yǔ)義分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成
編譯方式:詞法分析、語(yǔ)法分析、語(yǔ)義分析
編譯器和解釋器都不可省略詞法分析、語(yǔ)法分析、語(yǔ)義分析,且順序不可換
符號(hào)表:不斷收集、記錄、使用源程序中一些相關(guān)符號(hào)的類型和特征等信息,并將其存放在符號(hào)表中,記錄源程序中各個(gè)字符的必要信息,以輔助語(yǔ)義的正確性檢查和代碼生成
1.詞法分析:分析程序的字符及是否符合程序語(yǔ)言的規(guī)定?如關(guān)鍵字 int a = 3不能是 inn a?= 3
2.語(yǔ)法分析:分析程序中的句子結(jié)構(gòu)是否正確?如括號(hào)不匹配
3.語(yǔ)義分析:可以發(fā)現(xiàn)靜態(tài)語(yǔ)義錯(cuò)誤,但是不能發(fā)現(xiàn)動(dòng)態(tài)語(yǔ)義錯(cuò)誤?int a = 1/ 0
中間代碼生成可以跨平臺(tái)?與具體的機(jī)器無(wú)關(guān)?
目標(biāo)代碼生成階段的工作與具體的機(jī)器密切相關(guān),寄存器的分配處于目標(biāo)代碼生成階段
2.2?正規(guī)式
2.3?有限自動(dòng)機(jī)
有限自動(dòng)機(jī)是詞法分析的一個(gè)工具,它能正確地識(shí)別正規(guī)集
確定的有限自動(dòng)機(jī):識(shí)別字符后轉(zhuǎn)移的狀態(tài)是唯一的,只能循環(huán)或者?只能去下一個(gè)
不確定的有限自動(dòng)機(jī):識(shí)別字符后轉(zhuǎn)移的狀態(tài)是不唯一的,可能循環(huán),也可能去下一個(gè)
q0這個(gè)圓圈是初態(tài)????????????????q1這個(gè)是終態(tài)? ? ? ? ? 自動(dòng)機(jī)必須要在終態(tài)結(jié)尾
2.4?上下文無(wú)關(guān)法
廣泛地用于各種程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)則
一個(gè)字符可以變成其他對(duì)應(yīng)的字符進(jìn)行運(yùn)算
2.5?中綴、后綴表達(dá)式轉(zhuǎn)換
中綴式:a + b?
后綴式:ab +?
優(yōu)先級(jí):1.(? ?)? ? ? ? ? 2. * /?乘除? ? ? ? 3.+ -?加減? ?
優(yōu)先級(jí)相同,從右向左
如:1 - 2 * (3 + 4) / 5?中綴式變成后綴式
? ? ? ?1 - 2 * 34+ / 5
? ? ? ?1 - 2 * 34+5/
? ? ? ?1 - 234+5/*
? ? ? ?1234+5/*-
2.6?語(yǔ)法樹(shù)中、后遍歷
中序遍歷:按照左根右順序提取
后續(xù)遍歷:按照左右根順序提取
2.7?補(bǔ)充
不能通過(guò)反編譯還原出源程序
HTML、HTML、WML是標(biāo)記語(yǔ)言? ?PHP不是標(biāo)記語(yǔ)言
預(yù)處理 >>?編譯 >>?匯編 >>?鏈接
Python >>?解釋性語(yǔ)言?字符串、元祖不可變? 集合去重
內(nèi)存空間包含:動(dòng)態(tài)數(shù)據(jù)區(qū)、代碼區(qū)、靜態(tài)數(shù)據(jù)區(qū)
三、知識(shí)產(chǎn)權(quán)
工業(yè)產(chǎn)權(quán)包括專利 、商標(biāo)
3.1?軟件著作權(quán)
軟件著作權(quán)產(chǎn)生時(shí)間 >>?自作品完成創(chuàng)作之日
軟件著作權(quán)客體包含 源程序、軟件文檔、目標(biāo)程序
軟件著作權(quán) >> 《中華人民共和國(guó)著作權(quán)法》、計(jì)算機(jī)軟件保護(hù)條例
發(fā)表權(quán)、財(cái)產(chǎn)權(quán) 受時(shí)間限制
署名權(quán)、修改權(quán)、保護(hù)作品完整權(quán)都不受時(shí)間限制
3.2?專利
1.使用了B國(guó)的專利產(chǎn)品 除了在B國(guó)進(jìn)行銷售需要費(fèi)用?其他國(guó)都不用?
除非B的專利在其他國(guó)有申請(qǐng)
2.未知情況下侵權(quán),支付合理費(fèi)用后可以繼續(xù)使用
3.申請(qǐng)專利給最先申請(qǐng)的人?不能同時(shí)給兩個(gè)人
3.3 商標(biāo)
1.注冊(cè)商標(biāo)給最先申請(qǐng)的人?相同申請(qǐng)給最先使用的人
2.商標(biāo)權(quán)可以一直延長(zhǎng),到期不延長(zhǎng)會(huì)終止? /10
商業(yè)秘密 >>?對(duì)技術(shù)信息/經(jīng)營(yíng)信息提供保護(hù)
四、數(shù)據(jù)庫(kù)
4.1?概念數(shù)據(jù)模型、結(jié)構(gòu)數(shù)據(jù)模型
實(shí)體——聯(lián)系方法表示的概念數(shù)據(jù)模型稱為E-R圖
1.實(shí)體????????? 用矩形表示
2.屬性? ????????用橢圓表示
3.聯(lián)系? ????????用菱形表示
聯(lián)系:一對(duì)一? ? ? ? ? ? 一對(duì)多? ? ?????????多對(duì)多? ? ? ? ? ? ??
結(jié)構(gòu)數(shù)據(jù)模型由層次、網(wǎng)狀、關(guān)系模型、面向?qū)ο髽?gòu)成
關(guān)系模型是一種用二維表格結(jié)構(gòu)來(lái)表示實(shí)體以及實(shí)體之間聯(lián)系的數(shù)據(jù)模型
4.2?數(shù)據(jù)庫(kù)的三級(jí)模式兩級(jí)映像
1.三級(jí)模式:概念模式(基本表)? ????????????????外模式(視圖)? ? ? ? ?? ? ? ?內(nèi)模式(存儲(chǔ)文件)
2.兩級(jí)映像:概念模式/內(nèi)模式映像(物理獨(dú)立)? ? ? ? ?外模式/概念模式映像(邏輯獨(dú)立)
4.3?關(guān)系模式
一個(gè)關(guān)系模式應(yīng)當(dāng)是一個(gè)五元組
4.3.1 完整性約束
關(guān)系的描述為關(guān)系模式,格式為?關(guān)系名(屬性名1,屬性名2,....,屬性名n)
候選碼:屬性或者屬性組合,可以識(shí)別唯一元祖
主碼(主鍵):在一個(gè)關(guān)系中挑選一個(gè)候選碼為主鍵
外碼:在一個(gè)關(guān)系中含有其他關(guān)系的主碼為外碼
4.3.2?傳統(tǒng)的集合運(yùn)算
1.笛卡爾積?
?2.關(guān)系的并 R U S? ?、交 R ∩ S、差 R - S
3.選擇運(yùn)算——篩選并選擇符合條件的數(shù)據(jù)
4.自然連接——去掉重復(fù)列
?如例題自然連接結(jié)果:自然連接就是去掉重復(fù)列,然后其他列相加
4.3.3?函數(shù)依賴
1.部分函數(shù)依賴:X,Y共同決定Z,所以Z對(duì)X,Y部分函數(shù)依賴
2.完全函數(shù)依賴:X直接決定Y,所以Y對(duì)X完全依賴
3.傳遞依賴:? ? ? ?X決定Y,Y決定Z,那么X決定Z,所以Z對(duì)X傳遞依賴
? ? ? ? ? ? ? ? ? ? ? ? ? ? X決定Y,W,Y共同決定Z,那么Z對(duì)X也存在傳遞依賴
4.3.4?關(guān)系模式的范式
第一范式? 1NF? >>?關(guān)系模式中的全部屬性不可再分解? ?
第二范式? ?2NF? >>?消除非主屬性對(duì)碼的部分傳遞依賴
第三范式? ?3NF? >>?消除非主屬性對(duì)碼的傳遞依賴
BCNF? >>?消除主屬性對(duì)碼的部分和傳遞依賴
4.4?視圖? /? 索引? /? 權(quán)限
1.權(quán)限:
2.索引:ASC(升序)? \? DSC(降序)
采用三級(jí)模式結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)中,如果對(duì)一個(gè)表創(chuàng)建聚簇索引,那么改變的是數(shù)據(jù)庫(kù)的外模式
3.視圖就是一個(gè)虛擬表,從一個(gè)或者多個(gè)基本表或視圖中導(dǎo)出
對(duì)視圖進(jìn)行的操作,視圖不會(huì)改變,但是原表會(huì)改變
4.5?事務(wù)
特征:1.原子性 :要么都做,要么不做?
? ? ? ? ? ?2.一致性:從一個(gè)事務(wù)到另一個(gè)一致性狀態(tài)
? ? ? ? ? ?3.隔離性:并發(fā)執(zhí)行其他事務(wù)不可見(jiàn)
? ? ? ? ? ?4.持久性:崩潰都會(huì)保存
4.6?備份
靜態(tài)轉(zhuǎn)儲(chǔ):在轉(zhuǎn)儲(chǔ)期間不允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行任何操作
動(dòng)態(tài)轉(zhuǎn)儲(chǔ):在轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作
海量轉(zhuǎn)儲(chǔ):每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)
增量轉(zhuǎn)儲(chǔ):每次只轉(zhuǎn)儲(chǔ)上次的數(shù)據(jù)
4.7?并發(fā)控制的主要技術(shù)——封鎖
1.排它鎖:當(dāng)一個(gè)事務(wù)添加排它鎖后,其他事務(wù)不可添加
2.共享鎖:一個(gè)事務(wù)添加共享鎖以后,其他事務(wù)只能繼續(xù)加共享鎖,但是不能加其他鎖
五、面向?qū)ο?/h2>
5.1?類
類是對(duì)象的抽象? ?
一個(gè)類的方法和數(shù)據(jù)描述一組對(duì)象的共同行為和屬性
類的三種:
1.實(shí)體類:現(xiàn)實(shí)世界中的實(shí)體,人、物
2.接口類:交互的方式,人與系統(tǒng)的接口可以是顯示屏
3.控制類:控制活動(dòng)流
5.2?對(duì)象
對(duì)象是基本運(yùn)行時(shí)的實(shí)體
一個(gè)對(duì)象由對(duì)象名、屬性、方法三個(gè)部分組成
屬性也可以稱為數(shù)據(jù)、狀態(tài)
方法也可以稱為操作、行為
類名? 對(duì)象名? =? new? 類名( )
5.2.1?方法重載
1.方法名相同,參數(shù)個(gè)數(shù)不同
2.方法名相同,參數(shù)類型不同
3.方法名相同,參數(shù)類型順序不同
5.2.2?繼承? Extends
繼承有單重繼承和多重繼承
繼承是父類和子類之間共享數(shù)據(jù)和方法的機(jī)制
適合自己的要求去置換父類稱為覆蓋
特點(diǎn):可以重寫(xiě)父類方法,共享方法、非私有屬性,還可以自己添加函數(shù)方法
5.2.3?多態(tài)?
多態(tài):由繼承機(jī)制支持,不同的對(duì)象收到同一條消息產(chǎn)生不同的結(jié)果,實(shí)現(xiàn)的細(xì)節(jié)由接收對(duì)象決定
注意在進(jìn)行多態(tài)之前首先要繼承
如果父類沒(méi)有子類對(duì)應(yīng)的方法,那么子類的方法就不可用,子類不可以自己添加函數(shù)方法
父類名?對(duì)象名? =? new?子類名
編譯時(shí)是靜態(tài)綁定,當(dāng)運(yùn)行的時(shí)候就是動(dòng)態(tài)綁定
動(dòng)態(tài)綁定根據(jù)接收對(duì)象的具體情況將請(qǐng)求的操作與實(shí)現(xiàn)的方法進(jìn)行連接
5.2.4?面向?qū)ο笤O(shè)計(jì)原則
1.單一責(zé)任:僅一變化原因
2.開(kāi)放封閉:可擴(kuò)展不可修改
3.里氏替換:父類出現(xiàn),子類一定出現(xiàn)
4.依賴倒置:細(xì)節(jié)依賴于抽象,不依賴實(shí)現(xiàn)
5.接口分離:接口依賴于抽象,不依賴具體
6.共同封閉:一個(gè)包內(nèi)的類被影響,包以外的類不會(huì)受影響
7.共同重用:重用一個(gè)包的類就要重用包中全部類
5.3?抽象類
1.抽象類
有抽象方法的一定是抽象類,但是抽象類不一定有抽象方法
抽象類必須要被繼承才能使用
一個(gè)類只能繼承一個(gè)抽象類
抽象類不能被實(shí)例化
任何子類,必須重寫(xiě)父類的抽象方法(抽象方法必須被子類實(shí)現(xiàn))
2.接口
非抽象類實(shí)現(xiàn)接口,必須重寫(xiě)這個(gè)接口中的所有方法
接口的方法默認(rèn)是抽象的
六、UML(統(tǒng)一建模語(yǔ)言)
UML的詞匯表包含三種構(gòu)造塊,分別為? 事物、關(guān)系和圖
6.1?關(guān)系
UML中有4種關(guān)系:依賴、關(guān)聯(lián)、泛化、實(shí)現(xiàn)
1.依賴:一個(gè)事物的發(fā)生會(huì)影響另一個(gè)事物? ? ? ? ? A依賴B? ? 如果B沒(méi)了 A就沒(méi)了
2.?關(guān)聯(lián):結(jié)構(gòu)關(guān)系? ? ? ? ????????1對(duì)1? ? ? ? ? 1對(duì)多? ? ? ? ?多對(duì)多?
聚集是一種特殊類型的關(guān)聯(lián),描述整體和部分間的結(jié)構(gòu)關(guān)系
聚合:部分和整體的生命周期不一致,整體消失,部分不一定消失
組合:部分和整體的生命周期一致,整體消失,部分也消失
3.泛化:子元素共享父元素的結(jié)構(gòu)和行為? ? ? ? ? ? ? 學(xué)生、教師都屬于人
4.實(shí)現(xiàn)
6.2 UML圖
1.UML類圖,通常包含類、接口、協(xié)作、依賴、泛化和關(guān)聯(lián)關(guān)系
2.對(duì)象圖? 某一時(shí)刻一組對(duì)象的關(guān)系? ?對(duì)象名:類名
3.用例圖:用例、參與者關(guān)系(包含、擴(kuò)展、泛化)
4.序列圖:以時(shí)間順序組織的對(duì)象交流? 一個(gè)用例多個(gè)對(duì)象
5.通信(協(xié)作)圖:收發(fā)消息流的順序組織結(jié)構(gòu)
6.狀態(tài)圖:對(duì)象的狀態(tài)轉(zhuǎn)換其事件順序
7.活動(dòng)圖:1個(gè)活動(dòng)到另一個(gè)活動(dòng)
8.構(gòu)件圖:組構(gòu)建之間的依賴
9.部署圖:面向?qū)ο蟮奈锢砟P?/p>
七、設(shè)計(jì)模式
設(shè)計(jì)模式可分為創(chuàng)建型、結(jié)構(gòu)型、行為型
注意中英文名稱都要有印象
7.1?創(chuàng)建型設(shè)計(jì)模式
1.(類)工廠方法模式(Factory)
2.抽象工廠模式(Abstract Factory):提供一系列相關(guān)或依賴接口
3.生成器模式(Builder):在構(gòu)建過(guò)程中創(chuàng)建不同表示,復(fù)雜對(duì)象的算法獨(dú)立于組成部分
4.原型模式(Prototype):?用原型實(shí)例制定創(chuàng)建對(duì)象的種類,避免創(chuàng)建一個(gè)與產(chǎn)品類層次平行的工廠類層次
5.單例模式(Singleton):一類僅有一個(gè)實(shí)例,提供全局訪問(wèn)點(diǎn)
7.2?結(jié)構(gòu)型設(shè)計(jì)模式
1.(類)適配器(Adapter)
2.適配器模式(Adapter):將不兼容的接口能夠一起工作
3.橋接模式(Bridge):將抽象部分與其實(shí)現(xiàn)部分分離 可以獨(dú)立地變化(左抽象接口,右實(shí)現(xiàn)接口)
4.組合模式(Composite):樹(shù)型結(jié)構(gòu),表示一部分整體?添加/刪除
5.裝飾器模式(Decorator):動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)
6.外觀模式(Facade):為子系統(tǒng)中的一組接口提供一個(gè)一致的頁(yè)面,為復(fù)雜子系統(tǒng)提供一個(gè)簡(jiǎn)單接口?
7.享元模式(Flyweight):運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象
8.代理模式(Proxy):為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)
7.3?行為型設(shè)計(jì)模式
1.(類)解釋器模式(Interpreter)
2.責(zé)任鏈模式(Chain of Re):多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,沿著鏈傳遞,直到有對(duì)象處理
3.命令模式(Command):將多個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使得不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化
4.迭代器模式(Iterator):提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素
5.中介者模式(Mediator):封裝對(duì)象的交互,耦合松散
6.備忘錄模式(Memento):在不破壞封裝性的前提下捕獲對(duì)象的內(nèi)部狀態(tài)
7.觀察者模式(Observer):定義對(duì)象的一種一對(duì)多依賴關(guān)系
8.狀態(tài)模式(State):允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)時(shí)改變它的行為
9.策略模式(Strategy):作用與某個(gè)對(duì)象結(jié)構(gòu)中的個(gè)元素的操作,不改變類的前提下定義新操作
八、操作系統(tǒng)
8.1?前趨圖
程序順序執(zhí)行時(shí)的主要特征包括順序性、封閉性和可再現(xiàn)性
PV操作,? ?執(zhí)行前P? → P1 →? 執(zhí)行后 V
程序并發(fā)執(zhí)行時(shí):失去程序封閉性,程序和機(jī)器的執(zhí)行順序的活動(dòng)不再一一對(duì)應(yīng)嗎,并發(fā)程序之間相互制約
8.2?進(jìn)程
進(jìn)程是資源分配和獨(dú)立運(yùn)行的基本單位
進(jìn)程的三種狀態(tài):運(yùn)行、就緒、阻塞
8.2.1?進(jìn)程間的通信
1.同步:直接制約? ???????速度差,在一定情況下需等待
2.互斥:間接制約? ? ? ? 千軍萬(wàn)馬過(guò)獨(dú)木橋
臨界資源:有些資源一次只能供一個(gè)進(jìn)程使用
臨界區(qū):有空即進(jìn),無(wú)空則等。有限等待,讓權(quán)等待
若信號(hào)量S>=0表示某資源的可用數(shù)
若信號(hào)量S<0其絕對(duì)值表示阻塞隊(duì)列中等待該資源的進(jìn)程數(shù)
公式:- (n -?資源可用數(shù))? ~? 資源可用數(shù)
8.2.2?死鎖
有m個(gè)資源,n個(gè)進(jìn)程,每個(gè)進(jìn)程需要k個(gè)資源
不可能發(fā)生死鎖的最小資源數(shù)? m >= n * (k - 1) +1?
分配策略:輪流的為每個(gè)進(jìn)程分配資源
鴕鳥(niǎo)策略、預(yù)防策略、避免策略、檢測(cè)與解除死鎖
8.2.3?進(jìn)程資源圖
1. 先統(tǒng)一分配資源,再申請(qǐng),查看是否堵塞
R1指向P1....? R1指向P3? 這就是分配資源
P2指向R1、R2? 這就是申請(qǐng)資源
8.2.4?線程
線程是可獨(dú)立擁有資源的獨(dú)立單位、可獨(dú)立調(diào)度和分配的基本單位
線程可以共享進(jìn)程的全部資源,但是線程之間不能共享資源
8.2.5?程序局部性
程序局部性表現(xiàn)在時(shí)間局限性和空間局限性兩個(gè)方面
時(shí)間局部性:指令可能會(huì)被再次訪問(wèn)
空間局部性:程序是順序執(zhí)行的
8.3?分頁(yè)存儲(chǔ)管理
分頁(yè)地址結(jié)構(gòu) =?頁(yè)號(hào) +?頁(yè)內(nèi)地址
技巧:頁(yè)號(hào)直接對(duì)應(yīng)表格物理塊號(hào)
如:共有16位二進(jìn)制
4K = 4096 = 2^12??
12位二進(jìn)制表示業(yè)內(nèi)地址 C20? ? ? 3個(gè)16進(jìn)制換算就是12個(gè)二進(jìn)制
4位二進(jìn)制表示頁(yè)號(hào)為1? ? ? ? ? ? ? ? ?1個(gè)16進(jìn)制換算就是4個(gè)二進(jìn)制
物理地址為? 3C20H
8.4?單 /?雙緩沖區(qū)
1.單緩沖區(qū):(T+M)* N(次數(shù))?+ C
2.雙緩沖區(qū):M+C < T
8.5?磁盤(pán)調(diào)度算法
1.先來(lái)先服務(wù):按請(qǐng)求訪問(wèn)者的先后請(qǐng)求次序啟動(dòng)磁盤(pán)驅(qū)動(dòng)器
若磁頭位于53,請(qǐng)求順序?yàn)?98、183、37、.122、14、124、65、67
2.最短尋道優(yōu)先:不考慮順序,先找最近的點(diǎn)
若磁頭位于53,請(qǐng)求順序?yàn)?98、183、37、.122、14、124、65、67
3.掃描算法:不考慮請(qǐng)求順序。一直向左找點(diǎn),(或一直向右找點(diǎn)),到終點(diǎn)后轉(zhuǎn)向
若磁頭位于53,請(qǐng)求順序?yàn)?98、183、37、.122、14、124、65、67
4.循環(huán)掃描算法:一直單向移動(dòng),向左/右找點(diǎn),如果到左/右終點(diǎn),直接到最右/左開(kāi)始訪問(wèn)
若磁頭位于53,請(qǐng)求順序?yàn)?98、183、37、.122、14、124、65、67
8.5.1?旋轉(zhuǎn)調(diào)度算法
1.? 第一次讀取處理時(shí)間 =?讀取時(shí)間 +?處理時(shí)間
?????第一次讀取處理后的回來(lái)時(shí)間 =?繞一圈時(shí)間 -?處理時(shí)間
? ? ?(讀取時(shí)間 + 處理時(shí)間 +?第一次讀取處理后的回來(lái)時(shí)間) * (N?- 1) +?第一次讀取時(shí)間? ? ? ? ? ? ?
? ? ?N代表記錄數(shù)量
2.優(yōu)化后:(讀取時(shí)間?+?處理時(shí)間) * N? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? N代表記錄數(shù)量
3.平均距離磁道 *?磁道之間移動(dòng)時(shí)間 * (延遲 +?傳輸時(shí)間) *?數(shù)量
8.6?多級(jí)索引結(jié)構(gòu)
1.直接地址索引 >>?磁塊數(shù)據(jù)塊
2.一級(jí)地址索引? >>?一級(jí)索引塊??>>? 數(shù)據(jù)塊
3.二級(jí)間接地址索引? >>? 二級(jí)索引塊? >>? 一級(jí)索引塊? >>? ?數(shù)據(jù)塊
8.7?文件目錄(了解)?
1.文件控制塊:基本信息類、存取控制信息類、使用信息類
2.目錄結(jié)構(gòu):一級(jí)/二級(jí)/多級(jí)目錄
絕對(duì)路徑、相對(duì)路徑
訪問(wèn)f1.c文件
全文件名:D:\Program\C-prog\f1.c
絕對(duì)路徑:D:\Program\C-prog
在Program時(shí)的相對(duì)路徑:C-prog\
九、結(jié)構(gòu)化開(kāi)發(fā)
系統(tǒng)實(shí)現(xiàn)的基本原理:抽象、模塊化、信息隱蔽、模塊獨(dú)立
9.1?模塊獨(dú)立
模塊獨(dú)立是指每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的特定子功能,并且與其他模塊之間的聯(lián)系簡(jiǎn)單。衡量模塊獨(dú)立程度的標(biāo)準(zhǔn)是耦合性、內(nèi)聚性
9.1.1?耦合
這些耦合性的順序是從低到高,獨(dú)立性是從強(qiáng)到弱
1.無(wú)直接耦合:兩個(gè)模塊沒(méi)有直接的聯(lián)系
2.數(shù)據(jù)耦合:兩個(gè)模塊沒(méi)有調(diào)用關(guān)系,傳遞的是簡(jiǎn)單的數(shù)據(jù)值
3.標(biāo)記耦合:兩個(gè)模塊之間傳遞的是數(shù)據(jù)結(jié)構(gòu)
4.控制耦合:一個(gè)模塊調(diào)用另一個(gè)模塊
5.外部耦合:模塊通過(guò)軟件之外的環(huán)境聯(lián)結(jié)
6.公共耦合:一個(gè)公共數(shù)據(jù)環(huán)境相互作用的那些模塊間的耦合
7.內(nèi)容耦合:一個(gè)模塊直接使用另一個(gè)模塊的內(nèi)部數(shù)據(jù),或通過(guò)非正常入口轉(zhuǎn)入另一個(gè)模塊內(nèi)部
9.1.2?內(nèi)聚
這些內(nèi)聚性的順序是從低到高,模塊獨(dú)立性由弱到強(qiáng)
1.偶然內(nèi)聚(巧合內(nèi)聚):一個(gè)模塊內(nèi)的各處理元素之間沒(méi)有聯(lián)系
2.邏輯內(nèi)聚:模塊內(nèi)功能邏輯類似
3.時(shí)間內(nèi)聚:同時(shí)執(zhí)行的動(dòng)作組合在一起形成模塊
4.過(guò)程內(nèi)聚:一個(gè)模塊指定制定過(guò)程完成多個(gè)任務(wù)
5.通信內(nèi)聚:模塊內(nèi)所有元素都在同一數(shù)據(jù)結(jié)構(gòu)上操作
6.順序內(nèi)聚:順序執(zhí)行
7.功能內(nèi)聚:模塊內(nèi)所有元素共同完成一個(gè)功能,缺一不可
9.2?結(jié)構(gòu)設(shè)計(jì)原則
1.分解-協(xié)調(diào)原則:在處理過(guò)程中根據(jù)系統(tǒng)總體要求協(xié)調(diào)各部門關(guān)系
2.自頂向下的原則:先抓系統(tǒng)總的功能目的,然后逐層分解
3.信息隱蔽、抽象的原則:各模塊相對(duì)獨(dú)立、內(nèi)部結(jié)構(gòu)合理
4.一致性原則:統(tǒng)一規(guī)范、統(tǒng)一標(biāo)準(zhǔn)、統(tǒng)一文件模式
5.明確性原則:模塊必須功能明確、接口明確
6.模塊之間的耦合性盡可能小,內(nèi)聚程度盡可能高(模塊獨(dú)立性強(qiáng))
7.模塊的扇入系數(shù)和扇出系數(shù)要合理
8.模塊的規(guī)模要適當(dāng)
9.模塊的作用范圍應(yīng)在其控制范圍之內(nèi)
9.3?系統(tǒng)文檔
1.用戶與系統(tǒng)分析人員:可行性研究報(bào)告、總體規(guī)劃報(bào)告、系統(tǒng)開(kāi)發(fā)合同、系統(tǒng)方案說(shuō)明書(shū)
2.系統(tǒng)開(kāi)發(fā)人員和項(xiàng)目管理人員:系統(tǒng)開(kāi)發(fā)計(jì)劃、系統(tǒng)開(kāi)發(fā)月報(bào)、系統(tǒng)開(kāi)發(fā)總結(jié)報(bào)告
3.系統(tǒng)測(cè)試人員和系統(tǒng)開(kāi)發(fā)人員:系統(tǒng)方案說(shuō)明書(shū)、系統(tǒng)開(kāi)發(fā)合同、系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)、測(cè)試計(jì)劃
4.系統(tǒng)開(kāi)發(fā)人員和用戶:用戶手冊(cè)、操作指南
5.系統(tǒng)開(kāi)發(fā)人員和系統(tǒng)維護(hù)人員:系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)、系統(tǒng)開(kāi)發(fā)總結(jié)報(bào)告
6.用戶與維修人員:系統(tǒng)運(yùn)行報(bào)告、維護(hù)修改建議
十、軟件工程
10.1?能力成熟度模型(CMM)
1.初始級(jí):雜亂無(wú)章,依靠核心人物
2.可重復(fù)級(jí):可以重復(fù)以前在同類項(xiàng)目中的成功,建立基本的項(xiàng)目管理
3.已定義級(jí):文檔化、標(biāo)準(zhǔn)化、標(biāo)準(zhǔn)軟件
4.已管理化:制定軟件過(guò)程質(zhì)量、詳細(xì)度標(biāo)準(zhǔn),可被新成員理解、控制
5.優(yōu)先級(jí):新觀念、新技術(shù)反饋改進(jìn)
10.2?能力成熟度模型集成(CMMI)
1.階段式模型:初始的、已管理的、已定義的、定量管理的、優(yōu)化的
2.連續(xù)式模型:
2.1?未完成的:過(guò)程域未執(zhí)行或未得到CL1中定義的目標(biāo)
2.2?已執(zhí)行的:將可標(biāo)識(shí)的輸入變輸出
2.3?已管理的:共性目標(biāo),已管理的制度化
2.4?已定義的:已定義過(guò)程的制度化、標(biāo)準(zhǔn)化
2.5?定量管理:定量目標(biāo)作為管理準(zhǔn)則
2.6?優(yōu)化的:持續(xù)改進(jìn)計(jì)劃滿足用戶要求
10.3?軟件過(guò)程模型
1.瀑布模型:在需求明確下使用
2.V模型:基本問(wèn)題需求逐步細(xì)化,減少用戶變更影響
3.增量模型:不斷增強(qiáng)功能然后再發(fā)布、發(fā)布
?4.原型模型:有效捕獲系統(tǒng)需求
5.演化模型:需求模糊不清、規(guī)模不是很大很復(fù)雜
6.螺旋模型:適合大規(guī)模團(tuán)隊(duì)開(kāi)發(fā)的項(xiàng)目,技術(shù)含量高,過(guò)多迭代會(huì)增加成本、時(shí)間
7.噴泉模型:以用戶為動(dòng)力,以對(duì)象為驅(qū)動(dòng),支持重用
10.4?敏捷方法
1.極限編程(XP):?溝通、簡(jiǎn)單性、反饋、勇氣
2.水晶法(Crystal):不同項(xiàng)目不同策略、方法論、約定
3.并列爭(zhēng)求法(Scrum):優(yōu)先級(jí),每30天為一個(gè)沖刺
4.自適應(yīng)軟件開(kāi)發(fā)(ASD):6個(gè)原本原則
5.敏捷統(tǒng)一過(guò)程(AUP):在小型上迭代,大型上連續(xù)的原理來(lái)構(gòu)建軟件系統(tǒng)
10.5?主要軟件需求
1.功能需求:做什么
2.性能需求:響應(yīng)時(shí)間
3.數(shù)據(jù)需求:數(shù)據(jù)精度
4.可靠性需求:是否必須檢測(cè)和隔離錯(cuò)誤,出錯(cuò)后,重啟系統(tǒng)允許的時(shí)間
5.環(huán)境需求:考慮未來(lái)軟件應(yīng)用的環(huán)境(硬件、軟件)
10.6?系統(tǒng)設(shè)計(jì)
1.概要設(shè)計(jì)包含設(shè)計(jì)軟件系統(tǒng)總體結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)、編寫(xiě)概要設(shè)計(jì)文檔、評(píng)審
概要的設(shè)計(jì)任務(wù):設(shè)計(jì)軟件系統(tǒng)總體結(jié)構(gòu)
設(shè)計(jì)軟件系統(tǒng)總體結(jié)構(gòu):采用某種設(shè)計(jì)方法,將一個(gè)復(fù)雜的系統(tǒng)按功能劃分成模塊,確定每個(gè)模塊的功能,確定模塊之間的調(diào)用關(guān)系、接口
編寫(xiě)概要設(shè)計(jì)文檔:概要設(shè)計(jì)說(shuō)明書(shū)、數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)、用戶手冊(cè)以及修訂測(cè)試計(jì)劃
2.詳細(xì)設(shè)計(jì):對(duì)每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)
10.7?系統(tǒng)測(cè)試
系統(tǒng)測(cè)試階段的測(cè)試目標(biāo)來(lái)源于需求分析階段
應(yīng)該不斷盡早地進(jìn)行測(cè)試
意義:發(fā)現(xiàn)錯(cuò)誤
目的:用最少的能力、時(shí)間發(fā)現(xiàn)潛在缺陷,保證系統(tǒng)質(zhì)量、可靠性
10.7.1?傳統(tǒng)測(cè)試
1.單元測(cè)試:模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行路徑、出錯(cuò)處理、邊界條件
2.集成測(cè)試:自頂向下 /?自底向上
編寫(xiě)驅(qū)動(dòng) | 樁程序 | |
自頂向下 | × | √ |
自底向上 | √ | × |
10.7.2 測(cè)試方法
1.靜態(tài)測(cè)試:人工檢測(cè)、計(jì)算機(jī)輔助靜態(tài)分析
2.動(dòng)態(tài)測(cè)試
黑盒測(cè)試https://blog.csdn.net/weixin_64476458/article/details/123058109?spm=1001.2014.3001.5501
白盒測(cè)試https://blog.csdn.net/weixin_64476458/article/details/123561070?spm=1001.2014.3001.5501
10.7.3 McCabe度量法
公式:V(G) = m - n + 2? ? ? ?
10.7.4?系統(tǒng)維護(hù)概述
系統(tǒng)維護(hù)內(nèi)容:硬件 /?軟件 /?數(shù)據(jù)?維護(hù)
系統(tǒng)可維護(hù)性的評(píng)價(jià)指標(biāo)
軟件開(kāi)發(fā)的每個(gè)階段都要注意提高可維護(hù)性
軟件文檔只好不壞,選項(xiàng)當(dāng)中說(shuō)軟件文檔不好的就是不正確的,百利無(wú)一害
可靠性 | MTTF / (1 + MTTF) |
可用性 | MTBF / (1 + MTBF) |
可維護(hù)性 | 1 / (1 + MTTR) |
10.7.5?溝通路徑
n個(gè)人 | 無(wú)主程序員 | 有主程序員 |
溝通路徑數(shù)量 | (n - 1)* n / 2 | n - 1 |
10.7.6?軟件項(xiàng)目估算
1.基本COCOMO估算模型 >>? 靜態(tài)單變量模型
? ?中級(jí)COCOMO估算模型 >>? 靜態(tài)多變量模型
? ?詳細(xì)COCOMO估算模型?
2.COCOMOII(應(yīng)用組裝、早期設(shè)計(jì)、體系結(jié)構(gòu))
10.7.7 Gantt圖和PERT圖
1.Gantt圖:作為項(xiàng)目管理工具 /?記錄開(kāi)始截止時(shí)間 /?清晰獲得任務(wù)并行信息 /?不知道依賴
2.PERT圖:箭頭表示任務(wù) /?結(jié)點(diǎn)稱為事件 /?不能描述并行
開(kāi)始結(jié)點(diǎn)的最早時(shí)刻為0
最早時(shí)刻 +?持續(xù)時(shí)間? =?下一個(gè)最早時(shí)刻?
最遲時(shí)刻 -? 持續(xù)時(shí)間? =?上一個(gè)最遲時(shí)間
3.項(xiàng)目活動(dòng)圖
10.8?軟件配置管理
主要目標(biāo):版本控制、確保變更
風(fēng)險(xiǎn)特性:不確定性和損失
風(fēng)險(xiǎn)不可消除
1.項(xiàng)目風(fēng)險(xiǎn)
2.技術(shù)風(fēng)險(xiǎn)
3.商業(yè)風(fēng)險(xiǎn)(市場(chǎng)風(fēng)險(xiǎn)、策略風(fēng)險(xiǎn)、銷售風(fēng)險(xiǎn)、管理風(fēng)險(xiǎn)、預(yù)算風(fēng)險(xiǎn))
?
11、信息安全
11.1?防火墻
防火墻:建立在內(nèi)外網(wǎng)絡(luò)邊界上的過(guò)濾封鎖機(jī)制,對(duì)通信行為進(jìn)行控制、審計(jì)、報(bào)警
防火墻不具有查毒功能
1.包過(guò)濾防火墻:對(duì)用戶完全透明,對(duì)傳入傳出網(wǎng)絡(luò)的包進(jìn)行低水平控制,不支持應(yīng)用層協(xié)議
不能防范黑客攻擊
2.應(yīng)用代理網(wǎng)關(guān)防火墻:徹底隔斷內(nèi)網(wǎng)與外網(wǎng)的直接通信,難配置,速度慢,安全,經(jīng)應(yīng)用層代理
軟件轉(zhuǎn)發(fā)
從高到低保戶程序:內(nèi)網(wǎng) >> DMZ隔離區(qū) >>?外網(wǎng)
防火墻層次越低,工作效率越高,安全性越低
11.2?病毒
病毒特征:傳播性、隱蔽性、感染性、潛伏性、觸發(fā)性、破壞性
Worm?蠕蟲(chóng)病毒????????Trojan?特洛伊木馬????????Backdoor?后門病毒???????
Macro?宏病毒(主要感染文本文檔,電子表格)
木馬軟件:冰河
蠕蟲(chóng)病毒:歡樂(lè)時(shí)光、熊貓燒香、紅色代碼、愛(ài)蟲(chóng)病毒、震網(wǎng)
11.3?網(wǎng)絡(luò)攻擊
1.拒絕服務(wù)攻擊(Dos攻擊):不斷向計(jì)算機(jī)發(fā)起請(qǐng)求
2.重放攻擊:攻擊者發(fā)送一個(gè)目的主機(jī)已經(jīng)接受過(guò)的報(bào)文來(lái)達(dá)到攻擊目的
3.口令入侵攻擊:使用某些合法用戶的賬號(hào)和口令登錄到目的主機(jī),然后實(shí)施攻擊活動(dòng)
4.特洛伊木馬:被偽裝成程序或游戲,當(dāng)用戶下載了以后,向黑客發(fā)起連接請(qǐng)求
5.端口欺騙攻擊:采用端口掃描找到系統(tǒng)漏洞實(shí)施攻擊
6.網(wǎng)絡(luò)監(jiān)聽(tīng):攻擊者可以接收某一網(wǎng)段在同一條物理通道上傳輸?shù)乃行畔?/p>
7.IP欺騙攻擊:產(chǎn)生的IP數(shù)據(jù)包為偽造的源IP地址,以便冒充其他系統(tǒng)的身份
8.SQL注入攻擊:提交一段數(shù)據(jù)庫(kù)查詢代碼,根據(jù)程序返回結(jié)果獲得其他數(shù)據(jù)
入侵檢測(cè)技術(shù):專家系統(tǒng)、模型檢測(cè)、簡(jiǎn)單匹配
11.4?網(wǎng)絡(luò)安全
網(wǎng)絡(luò)安全包含安全協(xié)議、連接、通道
1.安全協(xié)議:SSL? ? ? ? TLS? ? ? ? PGP? ? ? ? MIME電子郵件附件
2.連接:SSH?終端?→?遠(yuǎn)程站點(diǎn)
3.通道:HTTP(80)? ? ? ? HTTPS(443)
HTTPS = HTTP + SSL
公共端口:0 ~ 1023
nslookup:域名查詢
netstat:獲取開(kāi)放端口應(yīng)用信息
IPSec:IP數(shù)據(jù)報(bào)文加密? ? ? ? PP2P:鏈路加密
12、計(jì)算機(jī)網(wǎng)絡(luò)
物理層的互連設(shè)備有中繼器和集線器(也可以稱為多端口的中繼器)
數(shù)據(jù)鏈路層的互連設(shè)備有網(wǎng)橋和交換機(jī)
網(wǎng)絡(luò)層的互連設(shè)備是路由器
應(yīng)用層的互連設(shè)備是網(wǎng)關(guān)
12.1?協(xié)議簇
12.1.1 TCP和UDP
TCP是一種可靠、面向連接的網(wǎng)絡(luò)協(xié)議,通信量較大,可以差錯(cuò)校驗(yàn)和重傳、流量控制、擁塞控制、端口尋址
其中流量控制采用的是:可變大小的滑動(dòng)窗口協(xié)議
UDP是一種不可靠、無(wú)連接的網(wǎng)絡(luò)協(xié)議,錯(cuò)誤檢測(cè)功能較弱,不對(duì)數(shù)據(jù)報(bào)確認(rèn),通信量較小
12.1.2 SMTP(25)和POP3(110)
SMTP:發(fā)送郵件? 傳輸 ASCII文本?
POP3:接收郵件
PEM:私密郵件保護(hù)協(xié)議
發(fā)送添加多媒體采用MIME協(xié)議
12.1.3 ARP和RARP
ARP:地址解析? ? ? ? ? ? ? 將IP地址轉(zhuǎn)為物理地址
RARP:反地址解析? ? ? ? 將物理地址轉(zhuǎn)為IP地址
12.1.4 DHCP和協(xié)議名(URL)
DHCP協(xié)議:集中管理,分配IP地址,可獲得客戶端本機(jī)IP、DNS / DHCP服務(wù)器地址、默認(rèn)網(wǎng)關(guān)地址
Windows無(wú)效地址:169.254.X.X
Linux無(wú)效地址:0.0.0.0
DHCP信息租用失敗時(shí)自動(dòng)給客戶機(jī)分配的IP地址:169.254.X.X
協(xié)議名://主機(jī)名.域名.域名后綴.域名分類/目錄/網(wǎng)頁(yè)文件
DNS域名查詢順序:本地的hosts文件、本地DNS緩存、本地DNS服務(wù)器、根域名服務(wù)器
DNS接收域名請(qǐng)求順序:本地緩存、本地的hosts文件、本地?cái)?shù)據(jù)庫(kù)、轉(zhuǎn)發(fā)域名服務(wù)器
12.2 IP地址、藍(lán)牙
域名和IP地址 1 1 對(duì)應(yīng)
IPV4????????2^32個(gè)IP地址
IPV6? ? ? ? 2^64個(gè)IP地址
藍(lán)牙:覆蓋范圍最小、通信距離最小
12.3 Windows命令
ipconfig/release: DHCP 客戶端手工釋放 IP 地址
ipconfig/flushdns: 清除本地 DNS 緩存內(nèi)容
ipconfig/displaydns: 顯示本地 DNS 內(nèi)容
ipconfig/registerdns: DNS 客戶端手工向服務(wù)器進(jìn)行注冊(cè)
ipconfig: 顯示所有網(wǎng)絡(luò)適配器的 IP 地址、網(wǎng)掩碼和缺省網(wǎng)關(guān)值
ipconfig/all: 顯示所有網(wǎng)絡(luò)適配器的完整 TCP/IP 配置信息,包括 DHCP 服務(wù)是否已啟動(dòng)
ipconfig/renew: DHCP 客戶端手工向服務(wù)器刷新請(qǐng)求(重新申請(qǐng) IP 地址)
13、數(shù)據(jù)結(jié)構(gòu)、算法(不全)
13.1?復(fù)雜度
復(fù)雜度可分為時(shí)間復(fù)雜度、空間復(fù)雜度
時(shí)間復(fù)雜度:以算法中基本操作重復(fù)執(zhí)行的次數(shù)作為算法的時(shí)間度量
1.加法規(guī)則:多項(xiàng)相加,保留最高階項(xiàng),并將系數(shù)化為1? ????????N^3 + N^2 + N =? N^3
2.乘法規(guī)則: 多項(xiàng)相乘都保留,并將系數(shù)化為1? ? ? ? ? ? ? ? ? ? ? ? 2N * 3N^2 = 6N^3 =? N^3
3.加法乘法混合規(guī)則:?先小括號(hào)再乘法規(guī)則最后加法規(guī)則
時(shí)間復(fù)雜度排序
空間復(fù)雜度:O(1)? O(n)? O(n^2)
13.2?線性表
線性表的順序存儲(chǔ)
線性表的鏈?zhǔn)酱鎯?chǔ)
13.3?棧、隊(duì)列
棧:先進(jìn)后出,只能一端出入
隊(duì)列:先進(jìn)先出,兩個(gè)端口
13.4?二叉樹(shù)
13.5?有向圖、無(wú)向圖
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-448478.html
13.6?排序算法時(shí)間/空間復(fù)雜度
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-448478.html
到了這里,關(guān)于軟考-軟件設(shè)計(jì)師的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!