软件工程专业1
任何軟件系統(tǒng)開發(fā)的共同本質(zhì):
– 從現(xiàn)實空間的需求到計算機(jī)空間的軟件代碼之間的映射與轉(zhuǎn)換;
軟件工程本質(zhì):
用嚴(yán)格的規(guī)范和管理手段來縮小偏差,通過犧牲“時間”來提高“質(zhì)量”。
?軟件工程的兩個映射:
概念映射:問題空間的概念與解空間的模型化概念之間的映射
業(yè)務(wù)邏輯映射:問題空間的處理邏輯與解空間處理邏輯之間的映射
軟件工程的作用:
為了實現(xiàn)以上兩個映射,軟件工程需要解決以下問題:
– 需要設(shè)置哪些抽象層次——單步映射?多步映射?幾步?
– 每一抽象層次的概念、術(shù)語與表達(dá)方式——公式?圖形?文字?
– 相鄰的兩個抽象層次之間如何進(jìn)行映射——需要遵循哪些途徑和原則?
軟件工程:不同抽象層次之間的映射過程
?需求分析:在一個抽象層上建立需求模型的活動,產(chǎn)生需求規(guī)約(Requirement Specification) ,作為開發(fā)人員和客戶間合作的基礎(chǔ),并作為以后開發(fā)階段的輸入。
軟件設(shè)計:定義了實現(xiàn)需求規(guī)約所需的系統(tǒng)內(nèi)部結(jié)構(gòu)與行為,包括軟件體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、詳細(xì)的處理算法、用戶界面等,即所謂設(shè)計規(guī)約(Design Specification) ,給出了實現(xiàn)軟件需求的軟件解決方案。
實現(xiàn):由設(shè)計規(guī)約到代碼的轉(zhuǎn)換,以某種特定的編程語言,對設(shè)計規(guī)約中的每一個軟件功能進(jìn)行編碼。
驗證/ 確認(rèn):一種評估性活動,確定一個階段的產(chǎn)品是否達(dá)到前階段確立的需求(verification) ,或者確認(rèn)開發(fā)的軟件與需求是否一致(validation)。
軟件工程所關(guān)注的對象
產(chǎn)品:各個抽象層次的產(chǎn)出物;
過程:在各個抽象層次之間進(jìn)行映射與轉(zhuǎn)換;
軟件工程所關(guān)注的目標(biāo)
功能性需求(Functional Requirements)(FR):軟件所實現(xiàn)的功能達(dá)到它的設(shè)計規(guī)范和滿足用戶需求的程度。
– 功能1、功能2、…、功能n。
– 完備性:軟件能夠支持用戶所需求的全部功能的能力;
– 正確性:軟件按照需求正確執(zhí)行任務(wù)的能力;
– 健壯性:在異常情況下,軟件能夠正常運行的能力
? 容錯能力;
? 恢復(fù)能力;
——正確性描述軟件在需求范圍之內(nèi)的行為,而健壯性描述軟件在需求范圍之外的行為。
– 可靠性:在給定的時間和條件下,軟件能夠正常維持其工作而不發(fā)生故障的能力。
?非功能性需求(Non-Functional Requirements)(NFR):系統(tǒng)能夠完成所期望的工作的性能與質(zhì)量。
– 效率:軟件實現(xiàn)其功能所需要的計算機(jī)資源的大小,“時間-空間”;
– 可用性:用戶使用軟件的容易程度,用戶容易使用和學(xué)習(xí);
– 可維護(hù)性:軟件適應(yīng)“變化”的能力,系統(tǒng)很容易被修改從而適應(yīng)新的需求或采用新的算法、數(shù)據(jù)結(jié)構(gòu)的能力;
– 可移植性:軟件不經(jīng)修改或稍加修改就可以運行于不同軟硬件環(huán)境(CPU、OS和編譯器)的能力;
– 清晰性:易讀、易理解,可以提高團(tuán)隊開發(fā)效率,降低維護(hù)代價;
– 安全性:在對合法用戶提供服務(wù)的同時,阻止未授權(quán)用戶的使用;
– 兼容性:不同產(chǎn)品相互交換信息的能力;
– 經(jīng)濟(jì)性:開發(fā)成本、開發(fā)時間和對市場的適應(yīng)能力。
– 商業(yè)質(zhì)量:上市時間、成本/受益、目標(biāo)市場、與老系統(tǒng)的集成、生命周期長短等。
?
不同目標(biāo)之間的關(guān)系——折中(tradeoff)
不同類型的軟件對質(zhì)量目標(biāo)的要求各有側(cè)重:
– 實時系統(tǒng):側(cè)重于可靠性、效率;
– 生存周期較長的軟件:側(cè)重于可移植性、可維護(hù)性;
多個目標(biāo)同時達(dá)到最優(yōu)是不現(xiàn)實的:目標(biāo)之間相互沖突
軟件開發(fā)中的多角色
在軟件開發(fā)過程中同樣需要多種角色之間緊密協(xié)作,才能高質(zhì)量、高效率的完成任務(wù)。
顧客企業(yè)(Client ,甲方) :
– 決策者(CxO)、終端用戶(End User)、系統(tǒng)管理員;
軟件開發(fā)公司(Supplier ,乙方) :
– 決策者(CxO);
– 軟件銷售與市場人員;
– 咨詢師、需求分析師;
– 軟件架構(gòu)師、軟件設(shè)計師;
– 開發(fā)人員:開發(fā)經(jīng)理/項目經(jīng)理、程序員;
– 維護(hù)人員。
轉(zhuǎn)載于:https://www.cnblogs.com/sx1106/p/9997721.html
總結(jié)
- 上一篇: CentOS虚拟机和物理机共享文件夹实现
- 下一篇: 鱼眼国际电影节啥意思