系统架构师学习笔记-系统开发基础知识(二)
目錄
?
?
系統(tǒng)規(guī)劃與問題定義
需求工程
軟件設(shè)計
軟件測試
?軟件維護(hù)
軟件開發(fā)環(huán)境與工具
?
系統(tǒng)規(guī)劃與問題定義
軟件系統(tǒng)的總體規(guī)劃包括以下階段:
1.?對當(dāng)前系統(tǒng)進(jìn)行初步的調(diào)查。
2.?分析和確定系統(tǒng)目標(biāo)。
3.?分析子系統(tǒng)的組成以及基本功能。
4.?擬定系統(tǒng)的實施方案。
5.?進(jìn)行系統(tǒng)的可行性分析。
6.?編寫可行性報告。
?
?
需求工程
需求工程是包括創(chuàng)建和維護(hù)系統(tǒng)需求文檔所必需的一切活動的過程,可分為需求開發(fā)和需求管理兩大工作。
需求定義:
需求定義的過程就是形成需求規(guī)格說明書的過程,通常有兩種需求定義方法:嚴(yán)格定義方法、?原型方法。
嚴(yán)格定義方法:嚴(yán)格定義(預(yù)先定義)是目前采用較多的一種需求定義方法。在采用嚴(yán)格定義的傳統(tǒng)的結(jié)構(gòu)化開發(fā)方法中,各個工作階段排列成一個理想的線性開發(fā)序列,在每一工作階段中,都用上一階段所提供的完整、嚴(yán)格的文檔作為指導(dǎo)文件,因此它本質(zhì)上是一種順序型的開發(fā)方法。
原型方法:原型化的需求定義過程是一個開發(fā)人員與用戶通力合作的反復(fù)過程。從一個能滿足用戶基本需求的原型系統(tǒng)開始,允許用戶在開發(fā)過程中提出更好的要求,根據(jù)用戶的要求不斷地對系統(tǒng)進(jìn)行完善,它實質(zhì)上是一種迭代的循環(huán)型的開發(fā)方式。
?
軟件設(shè)計
模塊的內(nèi)聚類型分為7種,根據(jù)內(nèi)聚度從高到低的排序:
| 功能內(nèi)聚 | 完成一個單一功能,各個部分協(xié)同工作,缺一不可 |
| 順序內(nèi)聚 | 處理元素相關(guān),而且必須順序執(zhí)行 |
| 通信內(nèi)聚 | 所有處理元素集中在一個數(shù)據(jù)結(jié)構(gòu)的區(qū)域上 |
| 過程內(nèi)聚 | 處理元素相關(guān),而且必須按特定的次序執(zhí)行 |
| 瞬時內(nèi)聚 | 所包含的任務(wù)必須在同一時間間隔內(nèi)執(zhí)行(如初始化模塊) |
| 邏輯內(nèi)聚 | 完成邏輯上相關(guān)的一組任務(wù) |
| 偶然內(nèi)聚 | 完成一組沒有關(guān)系或松散關(guān)系的任務(wù) |
模塊的耦合類型分為7種,根據(jù)耦合度從低到高排序:
| 非直接耦合 | 沒有直接聯(lián)系,互相不依賴對方 |
| 數(shù)據(jù)耦合 | 借組參數(shù)表傳遞簡單數(shù)據(jù) |
| 標(biāo)記耦合 | 一個數(shù)據(jù)結(jié)構(gòu)的一部分借助于模塊接口被傳遞 |
| 控制模塊 | 模塊間傳遞的信息中包含用于控制模塊內(nèi)部邏輯的信息 |
| 外部耦合 | 與軟件以外的環(huán)境有關(guān) |
| 公共耦合 | 多個模塊引用同一個全局?jǐn)?shù)據(jù)區(qū) |
| 內(nèi)容耦合 | 一個模塊訪問另一個模塊的內(nèi)部數(shù)據(jù); |
?
軟件測試
測試是對軟件質(zhì)量的度量:
1.?軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
2.?測試是為了證明程序有錯,而不是證明程序無錯誤。
3.?一個好的測試用例在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。
4.??一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。軟件測試只是軟件質(zhì)量保證的手段之一,不能單憑測試來保證軟件質(zhì)量。
?
動態(tài)測試指通過運行程序發(fā)現(xiàn)錯誤,分為:
?黑盒測試法:黑盒測試又稱為功能測試或數(shù)據(jù)驅(qū)動測試。
白盒測試法:又稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動測試或基于代碼的測試。
灰盒測試法:灰盒測試是一種介于白盒測試與黑盒測試之間的測試,考慮了用戶端、特定的系統(tǒng)知識和操作環(huán)境,在系統(tǒng)組件的協(xié)同性環(huán)境中評價應(yīng)用軟件的設(shè)計。
?
?軟件維護(hù)
軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯誤和缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充和壓縮的容易程度。目前廣泛用來衡量程序可維護(hù)性的因素:可理解性、可測試性和可修改性等。
?
軟件開發(fā)環(huán)境與工具
軟件開發(fā)工具:軟件開發(fā)工具是指用于輔助軟件開發(fā)過程活動的各種軟件,包括建模工具、分析設(shè)計工具、編程工具、測試工具、項目管理工具等。
總結(jié)
以上是生活随笔為你收集整理的系统架构师学习笔记-系统开发基础知识(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java工作笔记-使用fastjson把
- 下一篇: java信息管理系统总结_java实现科