《軟件工程》筆記1

先寫一段廢話好了。作為一只又懶又菜的...zhu,果然在第一篇寫完以后,繼續(xù)放任自由了4個半月,終于想起來要干點什么,寫些什么了。

為什么會從《軟件工程》開始呢?雖然求職的時候隨大流一股腦兒地扎進了碼農(nóng)的巨坑,但說起來自己對軟件這個行業(yè)并沒有很系統(tǒng),更不要說深入的了解了,就目前的認知,也僅停留在“開發(fā)就是寫幾行代碼”的階段,這就導(dǎo)致一個很尷尬的問題,跟同樣從事軟件相關(guān)行業(yè),做測試或開發(fā)的小伙伴在一起的時候,每次想要和他們更深入地探討問題時,竟然滿腦子迷茫卻不知如何表達&并不是很明白他們在說什么而且他們好像也不知道我在說什么...為了能制定出更加明確的職業(yè)規(guī)劃,然后更高效、更歡快地抱大腿,痛定思痛的我決定先系統(tǒng)地了解一下整個行業(yè)或者說生產(chǎn)流程。


chapter 1 軟件工程與軟件過程

通過翻看前三章,我覺得作為(測試)菜鳥,先了解一些概念就好。

(1)軟件并不僅僅是程序,而是程序、數(shù)據(jù)及相關(guān)文檔的完整集合;

其中,數(shù)據(jù)是指計算機上運行數(shù)據(jù)時所必需的數(shù)據(jù)

相關(guān)文檔則聯(lián)想到系統(tǒng)測試中,不僅僅要測功能,對功能清單,研制規(guī)范都要進行測試,如果需求中描述不正確、不全面、缺少相關(guān)指標數(shù)據(jù),都是文檔類bug

(2)軟件工程:指導(dǎo)計算機軟件開發(fā)和維護的工程科學(xué)(這是一門專業(yè)!);

軟件工程主要通過回答兩個問題來解決軟件危機:

①如何開發(fā)軟件,滿足日益增長的需求

②如何維護數(shù)量不斷膨脹的已有軟件

(3)軟件生命周期

①問題定義:確定解決什么問題

輸出:系統(tǒng)分析員提出關(guān)于問題性質(zhì)、工程目標和工程規(guī)模的書面報告,并需要得到客戶的確認。

②可行性研究:用最小的代價在最短的時間內(nèi)確定①中確定的問題是否能解決;

包括經(jīng)濟、技術(shù)、社會因素(如法律)等方面的可行性。

③需求分析:與客戶溝通,對目標系統(tǒng)提出完整、準確、具體要求(并不涉及怎樣實現(xiàn)系統(tǒng));

④概要設(shè)計:怎樣設(shè)計系統(tǒng)?提出幾種可能方案,確定解決策略及目標系統(tǒng)中應(yīng)包含的程序(只是概要,不涉及具體實現(xiàn)方法);

⑤詳細設(shè)計:怎樣具體實現(xiàn)這個系統(tǒng),確定實現(xiàn)模塊功能所需算法、數(shù)據(jù)結(jié)構(gòu);

⑥編碼、單元測試

單元測試就是對單個模塊進行測試,一般由開發(fā)自己測

⑦綜合測試:集成測試,驗收測試

自己的一些理解如下

集成測試:軟件設(shè)計角度,關(guān)心功能是否實現(xiàn)

驗收測試(即系統(tǒng)測試?):發(fā)布前的最后一道測試,是站在用戶角度,關(guān)心需求有沒有實現(xiàn)

另外還有交付測試,不是很理解它所處的位置?

⑧軟件維護


軟件產(chǎn)品開發(fā)模式

(1)瀑布型:按照上述8個步驟線性完成,一下子完成所有需求,提交用戶;

(2)快速原型:做好,提交用戶,用戶提出意見,修改,再提交用戶,以此循環(huán)直到用戶完全認可;

(3)增量模型:完成一個需求,提交用戶,再增加第二個需求,提交用戶...;

(4)螺旋模型:可看做在每個階段之前都增加了風(fēng)險分析的快速原型模型;

(5)噴泉模型:迭代

迭代開發(fā)允許在每次迭代過程中需求發(fā)生變化,這種開發(fā)方法通過一系列需求細化來加深對問題的理解,因此能更容易地容納需求變更。

(6)Rational統(tǒng)一過程

(7)敏捷開發(fā):人人都在搞敏捷,不展開了

(8)能力成熟度模型


chapter 2 傳統(tǒng)方法學(xué)

一、結(jié)構(gòu)化分析:用于完成用戶需求分析工作。

這里為了敘述簡潔,把軟件生命周期中的前三項(問題確定、可行性分析、需求分析)合并到需求分析中。因此,需求分析是指發(fā)現(xiàn)、求精、建模、規(guī)格說明和復(fù)審的過程。需求分析第一步是了解用戶所處情況,發(fā)現(xiàn)用戶面臨問題。接下來應(yīng)該通過與用戶交流、對用戶基本需求反復(fù)細化,以得出對目標系統(tǒng)的完整、準確和具體的需求。

(1)詳盡了解并正確理解用戶需求:訪談;

面向團隊的需求收集法:“簡易的應(yīng)用規(guī)格說明技術(shù)”;

快速建立軟件原型是最準確、最有效和最強大的需求分析技術(shù),必須有適當?shù)能浖ぞ咧С挚焖僭图夹g(shù);

(2)為了更好地理解問題,常采用建立模型方法。通常建立數(shù)據(jù)模型、功能模型和行為模型。

這里提到了幾種圖形化技術(shù)

①實體——關(guān)系圖:一般用來建立數(shù)據(jù)模型

②數(shù)據(jù)流圖:描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換,建立目標系統(tǒng)的功能模型

③狀態(tài)轉(zhuǎn)換圖:通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,表示系統(tǒng)的行為,從而提供了行為建模的機制

④數(shù)據(jù)字典:描述在數(shù)據(jù)模型、功能模型和行為模型中出現(xiàn)的數(shù)據(jù)對象和控制信息的特性,給出這些對象的精確定義。

(3)寫出“軟件需求規(guī)格說明”,認真評審后得到用戶認可,這也是這階段最終成果;


看理論類的書籍難免枯燥,出于了解的心態(tài),只是貼了一堆概念在這里,目的是為了以后需要查找某個似曾相識的名詞時能快速明白,不用到浩瀚厚重的工具書中去摸索。

對,說白了就是懶...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容