圖片發(fā)自簡(jiǎn)書(shū)App
onenote筆記遷移的磅崭,實(shí)在是不愿改格式了,就說(shuō)一下:
一級(jí)標(biāo)題:1.2.3.4.疫剃;二級(jí)標(biāo)題:a.b.c.d.巍扛;三級(jí)標(biāo)題:i.ii.iii.iv.;四級(jí)標(biāo)題:1)2)3);五級(jí)標(biāo)題:i)ii)iii)iv)。
為了好看(有縮進(jìn)),改為代碼塊了坟乾。
1. 軟件的定義及軟件的特點(diǎn):
a. 程序是軟件開(kāi)發(fā)人員根據(jù)用戶需求開(kāi)發(fā)的、用程序設(shè)計(jì)語(yǔ)言描述的蝶防、適合計(jì)算機(jī)執(zhí)行的指令序列甚侣。
b. 特點(diǎn):
i. 軟件是一種邏輯實(shí)體,而不是物理實(shí)體间学,具有抽象性殷费。
ii. 軟件的生產(chǎn)與硬件不同印荔,沒(méi)有明顯制作過(guò)程。
iii. 軟件在運(yùn)行详羡、使用期間不存在磨損仍律、老化問(wèn)題。
iv. 軟件的開(kāi)發(fā)实柠、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性水泉。
v. 軟甲復(fù)雜性高,成本昂貴窒盐。
vi. 軟件開(kāi)發(fā)涉及諸多社會(huì)因素草则。
c. 分類:
i. 應(yīng)用軟件:為解決特定領(lǐng)域的應(yīng)用而開(kāi)發(fā)的軟件。
ii. 系統(tǒng)軟件:計(jì)算機(jī)管理自身資源蟹漓,提高計(jì)算機(jī)使用效率并服務(wù)于其他程序的軟件炕横。如,操作系統(tǒng)葡粒,編譯程序份殿,匯編程序,網(wǎng)絡(luò)軟件塔鳍,數(shù)據(jù)庫(kù)管理系統(tǒng)。
iii. 支撐軟件(工具軟件):介于系統(tǒng)軟件和應(yīng)用軟件之間呻此,協(xié)助用戶開(kāi)發(fā)軟件的工具性軟件轮纫。
2. 軟件危機(jī)與軟件工程:
a. 軟件危機(jī):泛指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。
b. 軟件工程:將系統(tǒng)化的焚鲜、規(guī)范的掌唾、可度量的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)的過(guò)程忿磅,即將工程化應(yīng)用于軟件中糯彬。
c. 軟件工程三要素:方法、工具葱她、過(guò)程撩扒。
3. 軟件過(guò)程與軟件生命周期:
a. 軟件過(guò)程:軟件過(guò)程就是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)。
b. 軟件生命周期:軟件從提出吨些、實(shí)現(xiàn)搓谆、使用、維護(hù)到停止使用退役的過(guò)程稱為軟件的生命周期豪墅。
i. 可行性研究與計(jì)劃制定
ii. 需求分析
iii. 軟件設(shè)計(jì)
iv. 編碼
v. 軟件測(cè)試
vi. 運(yùn)行和維護(hù)
4. 軟件工程的目標(biāo)與原則:
a. 目標(biāo):在給定成本泉手、進(jìn)度的前提下,開(kāi)發(fā)具有有效性偶器、可靠性斩萌、可理解性缝裤、可維護(hù)性、可重用性颊郎、可適應(yīng)性憋飞、可移植性、可追蹤性和可操作性且滿足用戶需求的產(chǎn)品袭艺。
b. 研究?jī)?nèi)容:
i. 軟件開(kāi)發(fā)技術(shù):軟件開(kāi)發(fā)方法學(xué)搀崭、開(kāi)發(fā)過(guò)程、開(kāi)發(fā)工具猾编、軟件工程環(huán)境
ii. 軟件工程管理:軟件管理學(xué)瘤睹、軟件工程經(jīng)濟(jì)學(xué)、軟件心理學(xué)
c. 軟件工程的原則:
i. 抽象
ii. 信息隱蔽
iii. 模塊化
iv. 局部化
v. 確定性
vi. 一致性
vii. 完備性
viii. 可驗(yàn)證性
5. 結(jié)構(gòu)化分析方法
a. 軟件開(kāi)發(fā)方法:分析方法答倡、設(shè)計(jì)方法轰传、程序設(shè)計(jì)方法。
b. 結(jié)構(gòu)化方法:結(jié)構(gòu)化分析方法瘪撇、結(jié)構(gòu)化設(shè)計(jì)方法获茬、結(jié)構(gòu)化編程方法
6. 需求分析與需求分析方法
a. 需求分析:用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為倔既、性能恕曲、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求渤涌、求精佩谣、建模和定義需求的過(guò)程。
b. 需求分析方法:
i. 結(jié)構(gòu)化分析方法:面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)实蓬,面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD)茸俭,面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開(kāi)發(fā)方法(DSSD)
ii. 面向?qū)ο蟮姆治龇椒ǎ∣OA):
7. 結(jié)構(gòu)化分析方法:
a. 實(shí)質(zhì):著眼于數(shù)據(jù)流,自頂向下安皱,逐層分解调鬓,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具酌伊,建立系統(tǒng)的邏輯模型腾窝。
b. 工具:
i. 數(shù)據(jù)流圖(DFD):
1) 元素:加工、數(shù)據(jù)流居砖、數(shù)據(jù)源燕锥、數(shù)據(jù)的源點(diǎn)和終點(diǎn)。
2) 步驟:由外向里悯蝉,自頂向下归形,逐層分解。
ii. 數(shù)據(jù)字典(DD):對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表鼻由,以及精確暇榴、嚴(yán)格定義厚棵。
iii. 判定樹(shù):
iv. 判定表:
8. 軟件需求規(guī)格說(shuō)明書(shū)
a. 內(nèi)容:軟件的目標(biāo),功能需求蔼紧,性能需求婆硬,外部接口,屬性及約束條件奸例。
b. 特點(diǎn):
i. 正確性
ii. 無(wú)歧義性
iii. 完整性
iv. 可驗(yàn)證性
v. 一致性
vi. 可理解性
vii. 可修改性
viii. 可追蹤性
9. 結(jié)構(gòu)化設(shè)計(jì)方法
a. 軟甲設(shè)計(jì)基本概念
i. 目標(biāo):用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù)彬犯,即軟件設(shè)計(jì)是確定系統(tǒng)的物理模型。
ii. 包括:結(jié)構(gòu)設(shè)計(jì)查吊、數(shù)據(jù)設(shè)計(jì)谐区、接口設(shè)計(jì)、過(guò)程設(shè)計(jì)逻卖。
iii. 一般過(guò)程:軟件設(shè)計(jì)是一個(gè)迭代過(guò)程宋列,先進(jìn)性高層次的結(jié)構(gòu)設(shè)計(jì),后進(jìn)行低層次的過(guò)程設(shè)計(jì)评也,穿插進(jìn)行數(shù)據(jù)設(shè)計(jì)和接口設(shè)計(jì)炼杖。
iv. 基本原理:
1) 抽象
2) 逐步求精和模塊化
3) 信息隱蔽和局部化
4) 模塊獨(dú)立性(高內(nèi)聚、低耦合)
v. 結(jié)構(gòu)化設(shè)計(jì)方法:采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè)組成部分以及各成分之間的內(nèi)部聯(lián)系的技術(shù)盗迟。
b. 概要設(shè)計(jì)
i. 設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)
ii. 數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)
iii. 編寫(xiě)概要設(shè)計(jì)文檔
iv. 概要設(shè)計(jì)文檔評(píng)審
v. 常用軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC):
1) 構(gòu)成:一般模塊坤邪、數(shù)據(jù)信息、控制信息
2) 四種模塊:傳入罚缕、傳出艇纺、變換、協(xié)調(diào)
3) 術(shù)語(yǔ):
a) 深度:表示控制的層數(shù)
b) 寬度:整體控制跨度
c) 扇入:調(diào)用一個(gè)給定模塊的個(gè)數(shù)
d) 扇出:一個(gè)模塊調(diào)用的其他模塊數(shù)
e) 原子模塊:樹(shù)中位于葉子結(jié)點(diǎn)的模塊
vi. 面向數(shù)據(jù)流的結(jié)構(gòu)化設(shè)計(jì)方法
1) 數(shù)據(jù)流類型
a) 變換型
b) 事物型
2) 面型數(shù)據(jù)流設(shè)計(jì)方法的實(shí)施要點(diǎn)與設(shè)計(jì)過(guò)程
a) 分析怕磨、確認(rèn)數(shù)據(jù)流圖的類型喂饥,區(qū)分是事物型還是變換型
b) 說(shuō)明數(shù)據(jù)流的邊界
c) 把數(shù)據(jù)流圖映射為程序結(jié)構(gòu)
d) 根據(jù)設(shè)計(jì)準(zhǔn)則對(duì)產(chǎn)生的結(jié)構(gòu)進(jìn)行細(xì)化和求精
vii. 設(shè)計(jì)的準(zhǔn)則
1) 提高模塊獨(dú)立性
2) 模塊規(guī)模適中
3) 深度消约、寬度肠鲫、扇出和扇入適當(dāng)
4) 使模塊的作用域在該模塊的控制域內(nèi)
5) 應(yīng)減少模塊的接口和界面的復(fù)雜性
6) 設(shè)計(jì)成單入口、單出口的模塊
7) 設(shè)計(jì)功能可預(yù)測(cè)的模塊
viii. 詳細(xì)設(shè)計(jì)
1) 確定模塊內(nèi)部的詳細(xì)執(zhí)行過(guò)程或粮,包括局部數(shù)據(jù)組織导饲、控制流、每一步具體處理要求和各種實(shí)現(xiàn)細(xì)節(jié)等
2) 設(shè)計(jì)工具:
a) 圖形工具:程序流程圖(PFD)氯材、N-S圖渣锦、PAD圖、HIOP圖
b) 表格工具:判定表
c) 語(yǔ)言工具:PDL
10. 軟件測(cè)試
a. 目的和定義
i. 定義:
1) 在規(guī)定條件下運(yùn)行系統(tǒng)或構(gòu)件的過(guò)程:在此過(guò)程中觀察和記錄結(jié)果氢哮,并對(duì)系統(tǒng)或構(gòu)件的某些方面給出評(píng)價(jià)袋毙。
2) 軟件項(xiàng)目的過(guò)程:檢測(cè)現(xiàn)有狀況和所需狀況的不同(bug),并評(píng)估軟件的特性
ii. 目的:
1) 軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程
2) 一個(gè)好的測(cè)試用例是指很有可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例
3) 一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試
b. 軟件測(cè)試的準(zhǔn)則
i. 所有測(cè)試都應(yīng)追溯到需求
ii. 嚴(yán)格執(zhí)行測(cè)試計(jì)劃冗尤,排除測(cè)試的隨意性
iii. 充分主語(yǔ)測(cè)試中的群集現(xiàn)象
iv. 程序員應(yīng)該避免檢查自己的程序
v. 窮舉測(cè)試不可能
vi. 妥善保存測(cè)試計(jì)劃听盖、測(cè)試用例胀溺、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便
c. 軟件測(cè)試方法與技術(shù)綜述
i. 靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試
1) 靜態(tài)測(cè)試:變量檢查皆看、命名和類型審查仓坞、程序邏輯審查、程序語(yǔ)法審查和程序結(jié)構(gòu)檢查
a) 代碼檢查包括:代碼審查腰吟、代碼走查无埃、桌面檢查、靜態(tài)分析
2) 動(dòng)態(tài)測(cè)試:設(shè)計(jì)高效合理的測(cè)試用例是動(dòng)態(tài)測(cè)試的關(guān)鍵
ii. 白盒測(cè)試方法與測(cè)試用例設(shè)計(jì)
1) 白盒測(cè)試把測(cè)試對(duì)象看作打開(kāi)的盒子毛雇,允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息來(lái)設(shè)計(jì)或選擇測(cè)試用例嫉称。
2) 基本原則:保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測(cè)模塊所有判斷的每一分支至少執(zhí)行一次禾乘;保證所測(cè)模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次澎埠;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性
3) 分類
a) 邏輯覆蓋測(cè)試:泛指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)計(jì)技術(shù)
i) 語(yǔ)句覆蓋
ii) 路徑覆蓋
iii) 判定覆蓋
iv) 條件覆蓋
v) 判斷-條件覆蓋
b) 基本路徑測(cè)試:根據(jù)軟件過(guò)程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合始藕,并由此導(dǎo)出一組測(cè)試用例對(duì)每一條獨(dú)立執(zhí)行路徑進(jìn)行測(cè)試
iii. 黑盒測(cè)試方法與測(cè)試用例設(shè)計(jì)
1) 目的:診斷功能不對(duì)或遺漏蒲稳、界面錯(cuò)誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤伍派、性能錯(cuò)誤江耀、初始化和終止條件錯(cuò)誤
2) 方法:
a) 等價(jià)類劃分法:
i) 有效等價(jià)類:合理、有意義的輸入數(shù)據(jù)構(gòu)成的集合
ii) 無(wú)效等價(jià)類:不合理诉植、無(wú)意義的輸入數(shù)據(jù)構(gòu)成的集合
b) 邊界值分析法:一般多用邊界值分析法來(lái)補(bǔ)充等價(jià)類劃分法
c) 錯(cuò)誤推測(cè)法
d. 軟件測(cè)試的粗略
i. 單元測(cè)試:依據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和源程序祥国,采用靜態(tài)分析和動(dòng)態(tài)測(cè)試。對(duì)動(dòng)態(tài)測(cè)試通常以白盒測(cè)試為主晾腔,黑盒測(cè)試為輔舌稀。目的是發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤
1) 測(cè)試內(nèi)容:模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試灼擂、重要執(zhí)行路徑檢查壁查、出錯(cuò)處理測(cè)試、影響以上各點(diǎn)及其他相關(guān)點(diǎn)的邊界條件測(cè)試
ii. 集成測(cè)試:依據(jù)概要設(shè)計(jì)說(shuō)明書(shū)剔应,目的是發(fā)現(xiàn)與接口有關(guān)的錯(cuò)誤
1) 非增量方式:將測(cè)試好的每一個(gè)軟件單元一次性組裝在一起再進(jìn)行整體測(cè)試
2) 增量方式:將已經(jīng)測(cè)試好的模塊逐步組裝成較大系統(tǒng)睡腿,在組裝過(guò)程中邊接邊測(cè),以發(fā)現(xiàn)連接過(guò)程中產(chǎn)生的問(wèn)題峻贮。
a) 自頂向下:較早顯示整個(gè)程序輪廓席怪,較早驗(yàn)證主要的控制和判斷點(diǎn)。但是當(dāng)測(cè)試上層模塊時(shí)使用的樁模塊較多纤控,很難墨跡真實(shí)模塊全部功能挂捻,導(dǎo)致部分測(cè)試推遲
b) 自底向上:實(shí)際測(cè)試用例比較容易,但是在早期不能顯示出程序的輪廓
c) 自頂向下和自底向上相結(jié)合
iii. 確認(rèn)測(cè)試:驗(yàn)證軟件的功能和性能及其他特性是否滿足了需求規(guī)格說(shuō)明中確定的各種需求船万,以及軟件配置是否完全刻撒,正確惜辑。黑盒測(cè)試
iv. 系統(tǒng)測(cè)試:將通過(guò)確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素疫赎,與計(jì)算機(jī)硬件盛撑、外設(shè)、支持軟件捧搞、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起抵卫,在實(shí)際運(yùn)行環(huán)境下對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的集成測(cè)試和確認(rèn)測(cè)試。
11. 程序的調(diào)試
a. 目的:診斷和改正程序中的錯(cuò)誤胎撇。(軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤介粘,貫穿整個(gè)軟件的生命周期,調(diào)試主要發(fā)生在開(kāi)發(fā)階段)
b. 基本步驟
i. 錯(cuò)誤定位:占據(jù)絕大部分工作量
ii. 修改設(shè)計(jì)和代碼晚树,以排除錯(cuò)誤
iii. 進(jìn)行回歸測(cè)試防止引進(jìn)新的錯(cuò)誤
c. 原則:
i. 確定錯(cuò)誤原則
1) 分析思考與錯(cuò)誤征兆有關(guān)的信息
2) 避開(kāi)死胡同
3) 只把調(diào)試工具當(dāng)輔助手段來(lái)用
4) 避免使用試探法姻采,最多只能當(dāng)作最后手段
ii. 修改錯(cuò)誤的原則
1) 在出現(xiàn)錯(cuò)誤的地方,有可能還有別的錯(cuò)誤
2) 不要只修改了錯(cuò)誤的征兆或表現(xiàn)爵憎,而沒(méi)有修改錯(cuò)誤本身
3) 注意修正一個(gè)錯(cuò)誤的同時(shí)可能引進(jìn)一個(gè)新的錯(cuò)誤
4) 修改錯(cuò)誤的過(guò)程將迫使人們暫時(shí)回到程序設(shè)計(jì)階段
5) 修改源代碼慨亲,不要改變目標(biāo)代碼
d. 軟件調(diào)試方法:靜態(tài)調(diào)試為主,動(dòng)態(tài)調(diào)試為輔
i. 強(qiáng)行排錯(cuò)法:設(shè)置斷點(diǎn)宝鼓,程序暫停刑棵,觀察程序狀態(tài),繼續(xù)運(yùn)行程序
ii. 回溯法:適用于小規(guī)模程序排錯(cuò)
iii. 原因排除法:通過(guò)演繹和歸納以及二分法
其實(shí)這部分就是讀一遍有個(gè)印象就行愚铡,反正都是選擇題蛉签,不會(huì)的話問(wèn)題也不大就是不好拿優(yōu)。