什么是軟件工程軟件工程的內(nèi)容
軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。那么你對軟件工程了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是軟件工程的內(nèi)容,希望大家喜歡!
軟件工程的定義
軟件工程一直以來都缺乏一個統(tǒng)一的定義,很多學(xué)者、組織機(jī)構(gòu)都分別給出了自己認(rèn)可的定義:
BarryBoehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料。
IEEE:在軟件工程術(shù)語匯編中的定義:軟件工程是:1.將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù),即將工程化應(yīng)用于軟件;2.在1中所述方法的研究
FritzBauer:在NATO會議上給出的定義:建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法。
《計(jì)算機(jī)科學(xué)技術(shù)百科全書》:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)、邏輯學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本和改進(jìn)算法。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型(paradigm)、評估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。
比較認(rèn)可的一種定義認(rèn)為:軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護(hù)軟件,以及如何把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來。
ISO 9000對軟件工程過程的定義是:軟件工程過程是輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動。
其它定義:1.運(yùn)行時(shí),能夠提供所要求功能和性能的指令或計(jì)算機(jī)程序集合。2.程序能夠滿意地處理信息的數(shù)據(jù)結(jié)構(gòu)。3.描述程序功能需求以及程序如何操作和使用所要求的文檔。以開發(fā)語言作為描述語言,可以認(rèn)為:軟件=程序+數(shù)據(jù)+文檔。
軟件工程的內(nèi)涵
一、軟件工程過程是指為獲得軟件產(chǎn)品,在軟件工具的支持下由軟件工程師完成的一系列軟件工程活動,包括以下四個方面:
1、P(Plan)——軟件規(guī)格說明。規(guī)定軟件的功能及其運(yùn)行時(shí)的限制。
2、D(DO)——軟件開發(fā)。開發(fā)出滿足規(guī)格說明的軟件。
3、C(Check)——軟件確認(rèn)。確認(rèn)開發(fā)的軟件能夠滿足用戶的需求。
4、A(Action)——軟件演進(jìn)。軟件在運(yùn)行過程中不斷改進(jìn)以滿足客戶新的需求。
二、從軟件開發(fā)的觀點(diǎn)看,它就是使用適當(dāng)?shù)馁Y源(包括人員,軟硬件資源,時(shí)間等),為開發(fā)軟件進(jìn)行的一組開發(fā)活動,在活動結(jié)束時(shí)輸入(即用戶的需求)轉(zhuǎn)化為輸出(最終符合用戶需求的軟件產(chǎn)品)。
三個階段:定義階段:可行性研究初步項(xiàng)目計(jì)劃、需求分析;開發(fā)階段:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)、測試;運(yùn)行和維護(hù)階段:運(yùn)行、維護(hù)、廢棄
原則:1、抽象;2、信息隱蔽;3、模塊化;4、局部化;5、確定性;6,一致性;7、完備性;8、可驗(yàn)證性
軟件工程的基本內(nèi)容
軟件工程原理、軟件工程過程、軟件工程方法、軟件工程模型、軟件工程管理、軟件工程度量、軟件工程環(huán)境、軟件工程應(yīng)用、軟件工程開發(fā)使用。著名軟件工程專家B.Boehm綜合有關(guān)專家和學(xué)者的意見并總結(jié)了多年來開發(fā)軟件的經(jīng)驗(yàn),于1983年在一篇論文中提出了軟件工程的七條基本原理:
(1)用分階段的生存周期計(jì)劃進(jìn)行嚴(yán)格的管理。
(2)堅(jiān)持進(jìn)行階段評審。
(3)實(shí)行嚴(yán)格的產(chǎn)品控制。
(4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)。
(5)軟件工程結(jié)果應(yīng)能清楚地審查。
(6)開發(fā)小組的人員應(yīng)該少而精。
(7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。
軟件工程的結(jié)構(gòu)
軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素,即構(gòu)件的集合,包括處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件。處理構(gòu)件負(fù)責(zé)對數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)構(gòu)件是被加工的信息,連接構(gòu)件把體系結(jié)構(gòu)的不同部分組組合連接起來。這一定義注重區(qū)分處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件,這一方法在其他的定義和方法中基本上得到保持。
軟件體系結(jié)構(gòu)表示了一個軟件系統(tǒng)的高層結(jié)構(gòu),主要特點(diǎn)有:
1)軟件系統(tǒng)結(jié)構(gòu)是一個高層次上的抽象,它并不涉及具體的系統(tǒng)結(jié)構(gòu)(比如B/S還是C/S),也不關(guān)心具體的實(shí)現(xiàn)。
2)軟件體系結(jié)構(gòu)必須支持系統(tǒng)所要求的功能,在設(shè)計(jì)軟件體系結(jié)構(gòu)的時(shí)候,必須考慮系統(tǒng)的動態(tài)行為。
3)在設(shè)計(jì)軟件體系結(jié)構(gòu)的時(shí)候,必須考慮有現(xiàn)有系統(tǒng)的兼容性、安全性和可靠性。同時(shí)還要考慮系統(tǒng)以后的擴(kuò)展性和伸縮性。所以有時(shí)候必須在多個不同方向的目標(biāo)中進(jìn)行決策。
軟件體系結(jié)構(gòu)貫穿于軟件研發(fā)的整個生命周期內(nèi),具有重要的影響。這主要從以下三個方面來進(jìn)行考察:利益相關(guān)人員之間的交流,系統(tǒng)設(shè)計(jì)的前期決策,可傳遞的系統(tǒng)級抽象。
當(dāng)前已經(jīng)有一些關(guān)于規(guī)范化軟件體系結(jié)構(gòu),比如:ISO的開放系統(tǒng)互聯(lián)模型、X Window系統(tǒng)等等。
看過“軟件工程的內(nèi)容”的人還看了:
3.軟件開發(fā)個人職業(yè)規(guī)劃 軟件工程職業(yè)生涯規(guī)劃書