軟件工程綜述_第1頁
軟件工程綜述_第2頁
軟件工程綜述_第3頁
軟件工程綜述_第4頁
軟件工程綜述_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、軟件工程綜述作者:周咲宇單位:寧波工程學(xué)院郵政編碼:315020E-mail:frank00963摘要:為方便對軟件工程這個(gè)領(lǐng)域的系統(tǒng)性了解,本文將介紹軟件工程定義及與其他工程差別、軟件工程系統(tǒng)需求分析、軟件工程方法和技術(shù)、模塊化及軟件工程的新發(fā)展。關(guān)鍵詞:系統(tǒng)需求分析方法和技術(shù)模塊化1.引言近年來,由于計(jì)算機(jī)的應(yīng)用范圍不斷擴(kuò)展,對軟件系統(tǒng)的需求和軟件自身的復(fù)雜度急劇上升,傳統(tǒng)的開發(fā)方法無法適應(yīng)用戶在質(zhì)量、效率等方面對軟件的需求。這就是所謂的“軟件危機(jī)”。為解決“軟件危機(jī)”提出了統(tǒng)一、規(guī)范的開發(fā)軟件的新理論思想,即軟件工程采用工程的原理和技術(shù)來開發(fā)和維護(hù)軟件,更好地從管理和技術(shù)兩方面開發(fā)和維護(hù)

2、軟件。2.軟件工程綜述2.1軟件工程定義及與其他工程差別軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。軟件工程借鑒了傳統(tǒng)工程的原則和方法,以求高效地開發(fā)高質(zhì)量軟件。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型(paradigm、評估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。軟件的特性與其他工程領(lǐng)域特性之間存在著本質(zhì)上的不同。差別之一處理常用的預(yù)先定制的構(gòu)件來構(gòu)建系統(tǒng)的能力。一些傳統(tǒng)的工程領(lǐng)域已經(jīng)長期受益于這種方法,即在構(gòu)建復(fù)雜的設(shè)備時(shí),采用各種現(xiàn)成配件。然而,軟件工程在這點(diǎn)上是很落后的。過去,以前設(shè)計(jì)的軟件構(gòu)件一般傾向于用于特定的領(lǐng)

3、域。也就是說,這些構(gòu)件本質(zhì)上是為專門的應(yīng)用而設(shè)計(jì)的,所以,將它們作為通用構(gòu)件來使用是受限的。因此,復(fù)雜的軟件系統(tǒng)歷來都是從頭做起。但現(xiàn)在這點(diǎn)已經(jīng)取得了重要的進(jìn)展,盡管還有很多工作要做。軟件工程與其他工程間的另一差別在于缺少度量技術(shù),稱為度量學(xué),來衡量軟件的屬性。對于機(jī)器設(shè)備,質(zhì)量的重要量度是平均無故障時(shí)間,這是設(shè)備的耐損耗性的一個(gè)基本的衡量指標(biāo)。相反,軟件沒有消耗,所以這種方法在軟件工程中并不適用。軟件指標(biāo)不能以定量的方式測量,這也是軟件工程和機(jī)械、電子工程不同,至今還未找到一個(gè)嚴(yán)格、堅(jiān)實(shí)的立足點(diǎn)的原因。- 1 -因而,現(xiàn)在的軟件工程研究在兩個(gè)層面上進(jìn)行:實(shí)踐派的工作指向開發(fā)直接應(yīng)用的技術(shù);理

4、論派則致力于探尋軟件工程基礎(chǔ)原理和理論,為將來構(gòu)建更堅(jiān)實(shí)的技術(shù)而努力。2.2軟件工程系統(tǒng)需求分析需求分析包括提煉、分析和仔細(xì)審查已收集到的需求,以確保所有的風(fēng)險(xiǎn)承擔(dān)者都明白其含義并找出其中的錯(cuò)誤、遺漏或其它不足的地方。分析的目的在于開發(fā)出高質(zhì)量的需求,這樣就能做出實(shí)用的項(xiàng)目估算并可以進(jìn)行設(shè)計(jì)、構(gòu)造和測試。確保所有風(fēng)險(xiǎn)承擔(dān)者盡早地對項(xiàng)目達(dá)成共識并對將來的產(chǎn)品有個(gè)相同而清晰的認(rèn)識。軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。通過對應(yīng)問題及其環(huán)境的理解與分析,為問題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、完全化,最終形成需求規(guī)格說明,這一系列的活動即構(gòu)成軟件

5、開發(fā)生命周期的需求分析階段。需求分析是獲得用戶需求的有效途徑。開發(fā)軟件是為用戶服務(wù)的。為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品.首先必須知道用戶的需求。對軟件需求的深入理解是軟件開發(fā)工作獲得成功的前提條件。需求分析也是決定項(xiàng)目成功的關(guān)鍵因素,是系統(tǒng)分析和軟件設(shè)計(jì)的橋梁。需求分析過程是確定顧客需求的過程。12.3軟件工程方法和技術(shù)軟件工程的方法對軟件產(chǎn)業(yè)的發(fā)展起到了很大的推動作用。目前軟件工程中主要使用的方法和技術(shù)可以分成技術(shù)和管理兩類。2.3.1技術(shù)的角度主要包括:軟件開發(fā)范型、軟件設(shè)計(jì)方法。軟件開發(fā)范型關(guān)注軟件工程的方向,即如何才是正確的編寫滿足需求的軟件;軟件設(shè)計(jì)方法關(guān)注軟件工程的“途徑” ,

6、即研究怎樣完成從高層概念模型到低層概念模型的映射。主要的軟件過程模型有:瀑布模型,演化模型(如增量模型、原型模型、螺旋模型、噴泉模型、基于構(gòu)件的開發(fā)模型和形式方法模型等。瀑布模型是最早出現(xiàn)的也是應(yīng)用最廣泛的過程模型,對確保軟件開發(fā)的順利進(jìn)行、提高軟件項(xiàng)目的質(zhì)量和開發(fā)效率起到重要作用。一個(gè)軟件系統(tǒng)的整體可能是復(fù)雜的,而單個(gè)子程序總是簡單的,所以可以用瀑布模型來實(shí)現(xiàn)。增量模型和迭代模型反映出軟件開發(fā)采用原型開發(fā)這樣一種趨勢,并加以評估。在增量模型中,演化式原型開發(fā)是指將這些原型發(fā)展為一個(gè)最終的完整系統(tǒng)的過程。拋物式原型開發(fā)則是指在一些情況中原型可能會拋棄不用,以使得最后設(shè)計(jì)有全新的實(shí)現(xiàn)的方法??焖?/p>

7、原型開發(fā)通常屬于拋物式原型開發(fā)這個(gè)范疇??焖僭烷_發(fā)是近年來提出的一種以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)開發(fā)方法,它首先構(gòu)造一個(gè)功能簡單的原型系統(tǒng),然后通過對原型系統(tǒng)逐步求精,不斷擴(kuò)充完善得到最終的軟件系統(tǒng)。- 2 -開放源碼開發(fā)是演化式原型開發(fā)的一種變種方法。這是今天許多自由軟件開發(fā)采用的一種方式。軟件包的開放源碼開發(fā)遵循以下過程:先是單個(gè)作者開發(fā)一個(gè)初始版本的軟件(通常是完成該作者自己的需求,然后將其源代碼和相關(guān)文檔發(fā)放到因特網(wǎng)上,其他用戶可以免費(fèi)下載和使用這個(gè)軟件。由于這些其他用戶擁有該軟件的源代碼和相關(guān)文檔,那么他們就能修改或增強(qiáng)這個(gè)軟件的功能,以適合自己的需要,或者改正他們發(fā)現(xiàn)的錯(cuò)誤。接下來,他們

8、就將這些改動報(bào)告給原作者,原作者就將這些改動整合到系統(tǒng)中,得到軟件的擴(kuò)展版本,并可用于進(jìn)一步的修改。還有一種方法是敏捷方法的方法學(xué)集合,是由瀑布模型轉(zhuǎn)化而來的最顯著的方法。它們都建議在增量基礎(chǔ)上的早期和快速實(shí)現(xiàn),響應(yīng)需求變更,降低嚴(yán)格需求規(guī)格說明和設(shè)計(jì)的重要性。概括說來,敏捷方法具有靈活性的特點(diǎn)。2.3.2管理的角度軟件項(xiàng)目管理具有一些與其他項(xiàng)目管理不同的特性。軟件項(xiàng)目管理中遵循著一些原則,例如:軟件項(xiàng)目中需要平衡需求、資源、工期、質(zhì)量這四個(gè)要素之間的關(guān)系;大規(guī)模的項(xiàng)目要拆分成幾個(gè)小項(xiàng)目,從而減小項(xiàng)目的管理風(fēng)險(xiǎn),并且使目標(biāo)具體明確;依靠一套規(guī)范的過程來實(shí)時(shí)控制項(xiàng)目進(jìn)度,并確保項(xiàng)目經(jīng)理能夠及時(shí)發(fā)

9、現(xiàn)問題、解決問題,保證項(xiàng)目具有很高的可見度;針對不同項(xiàng)目的特點(diǎn),制訂不同的項(xiàng)目管理的方針政策;合理控制項(xiàng)目組的規(guī)??刂圃瓌t;有效的積累知識,做到人員的專業(yè)化培養(yǎng)。目前在軟件項(xiàng)目管理方面有國際標(biāo)準(zhǔn)化組織專門為軟件行業(yè)定制的ISO9003 標(biāo)準(zhǔn),它給出了衡量軟件質(zhì)量的準(zhǔn)則;美國卡內(nèi)基·梅隆大學(xué)軟件工程研究所提出的CMM(能力成熟度模型則提供了一整套較為完善的軟件研發(fā)項(xiàng)目管理的法。22.4模塊化模塊化就是把軟件分割成幾個(gè)易于處理的單元,通常稱為模塊,每個(gè)模塊僅僅承擔(dān)整個(gè)軟件的一部分功能。模塊化是開發(fā)出易于管理的軟件的一條途徑。當(dāng)設(shè)計(jì)一個(gè)模塊化系統(tǒng)的時(shí)候,其目標(biāo)就應(yīng)該是做到模塊之間的最大獨(dú)立

10、性,就是使模塊之間的聯(lián)系盡可能少。這種聯(lián)系稱之為模塊之間的耦合。同樣的,每個(gè)模塊的內(nèi)部綁定程度應(yīng)該最大化。內(nèi)聚就用來表示內(nèi)部綁定。2.4.1 耦合模塊間的耦合有幾種形式??刂岂詈铣霈F(xiàn)在一個(gè)模塊傳遞控制信息來控制另外一個(gè)模塊執(zhí)行時(shí),如過程調(diào)用的情況。另一種形式的耦合是數(shù)據(jù)耦合,這是模塊間的數(shù)據(jù)共享。如果兩個(gè)模塊是通過共享同一個(gè)數(shù)據(jù)項(xiàng)而相互作用的,那么當(dāng)對一個(gè)模塊進(jìn)行修改時(shí),可能會影響到另一個(gè)模塊,并且對數(shù)據(jù)本身格式的修改在這兩個(gè)模塊中都會有反映。過程間的數(shù)據(jù)耦合有兩種形式,一種是以參數(shù)的形式從一個(gè)過程到另一個(gè)過程進(jìn)行顯示的數(shù)據(jù)傳送。另一種是以一種隱式的全局?jǐn)?shù)據(jù)的形式在模塊之間進(jìn)行共享。- 3 -

11、2.4.2內(nèi)聚內(nèi)聚有邏輯內(nèi)聚與功能內(nèi)聚。邏輯內(nèi)聚是一種內(nèi)聚度較弱的內(nèi)聚形式。模塊內(nèi)的邏輯內(nèi)聚是由其內(nèi)部元素本質(zhì)上實(shí)現(xiàn)邏輯上相似的活動所引起的。功能內(nèi)聚是一種內(nèi)聚度較強(qiáng)的內(nèi)聚形式。這就表示模塊中所有部分都圍繞著完成某一項(xiàng)功能。2.5軟件測試軟件測試就是利用測試工具按照測試方案和流程對產(chǎn)品進(jìn)行功能和性能測試,甚至根據(jù)需要編寫不同的測試工具,設(shè)計(jì)和維護(hù)測試系統(tǒng),對測試方案可能出現(xiàn)的問題進(jìn)行分析和評估。執(zhí)行測試用例后,需要跟蹤故障,以確保開發(fā)的產(chǎn)品適合需求。測試并不僅僅是為了找出錯(cuò)誤.通過分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的發(fā)生趨勢,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前軟件開發(fā)過程中的缺陷,以便及時(shí)改進(jìn);這種分析也能幫助

12、測試人員設(shè)計(jì)出有針對性的測試方法,改善測試的效率和有效性;沒有發(fā)現(xiàn)錯(cuò)誤的測試也是有價(jià)值的,完整的測試是評定軟件質(zhì)量的一種方法。2.5.1原則軟件測試的幾大原則:1.軟件開發(fā)人員即程序員應(yīng)當(dāng)避免測試自己的程序不管是程序員還是開發(fā)小組都應(yīng)當(dāng)避免測試自己的程序或者本組開發(fā)的功能模塊。2. 應(yīng)盡早地和不斷地進(jìn)行軟件測試。3.對測試用例要有正確的態(tài)度:第一,測試用例應(yīng)當(dāng)由測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果這兩部分組成;第二,在設(shè)計(jì)測試用例時(shí),不僅要考慮合理的輸入條件,更要注意不合理的輸入條件。4.人以群分,物以類聚,軟件測試也不例外,一定要充分注意軟件測試中的群集現(xiàn)象,也可以認(rèn)為是“80-20原則”。5.嚴(yán)格執(zhí)

13、行測試計(jì)劃,排除測試的隨意性,以避免發(fā)生疏漏或者重復(fù)無效的工作。6.應(yīng)當(dāng)對每一個(gè)測試結(jié)果進(jìn)行全面檢查。一定要全面地、仔細(xì)地檢查測試結(jié)果,但常常被人們忽略,導(dǎo)致許多錯(cuò)誤被遺漏。7.妥善保存測試用例、測試計(jì)劃、測試報(bào)告和最終分析報(bào)告,以備回歸測試及維護(hù)之用。在遵守以上原則的基礎(chǔ)上進(jìn)行軟件測試,可以以最少的時(shí)間和人力找出軟件中的各種缺陷,從而達(dá)到保證軟件質(zhì)量的目的。2.5.2分類軟件測試可分為白盒測試、 .黑盒測試、灰盒測試。- 4 -白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計(jì)規(guī)格說明書的規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定

14、要求正確工作。白盒測試的測試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、Z路徑覆蓋、程序變異。白盒測試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。黑盒測試也稱功能測試,它是通過測試來檢測每個(gè)功能是否都能正常使用。在測試中,把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)

15、部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。黑盒測試法注重于測試軟件的功能需求,主要試圖發(fā)現(xiàn)下列幾類錯(cuò)誤。功能不正確或遺漏;界面錯(cuò)誤;數(shù)據(jù)庫訪問錯(cuò)誤;性能錯(cuò)誤;初始化和終止錯(cuò)誤等?;液袦y試,是介于白盒測試與黑盒測試之間的,可以這樣理解,灰盒測試關(guān)注輸出對于輸入的正確性,同時(shí)也關(guān)注內(nèi)部表現(xiàn),但這種關(guān)注不象白盒那樣詳細(xì)、完整,只是通過一些表征性的現(xiàn)象、事件、標(biāo)志來判斷內(nèi)部的運(yùn)行狀態(tài),有時(shí)候輸出是正確的,但內(nèi)部其實(shí)已經(jīng)錯(cuò)誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要采取這樣的一種灰盒的方法。2.6軟件工程的新發(fā)展Internet平臺具有一些傳統(tǒng)軟件平臺不具備的特征:分布

16、性、節(jié)點(diǎn)的高度自治性、開放性、異構(gòu)性、不可預(yù)測性、連接環(huán)境的多樣性等。這對軟件工程的發(fā)展提出了新的問題。軟件工程需要新的理論、方法和技術(shù)和平臺來應(yīng)對這個(gè)問題。目前投入很大精力研究的中間件技術(shù)就是這方面的典型代表。Internet及其上應(yīng)用的快速發(fā)展與普及,使計(jì)算機(jī)軟件所面臨的環(huán)境開始從靜態(tài)封閉逐步走向開放、動態(tài)和多變。軟件系統(tǒng)為了適應(yīng)這樣一種發(fā)展趨勢,將會逐步呈現(xiàn)出柔性、多目標(biāo)、連續(xù)反應(yīng)式的網(wǎng)構(gòu)軟件系統(tǒng)的形態(tài)。面對這種新型的軟件形態(tài),傳統(tǒng)的軟件理論、方法、技術(shù)和平臺面臨了一系列挑戰(zhàn)。從宏觀上看,這種挑戰(zhàn)為研究軟件理論、方法和技術(shù)提供了難得的機(jī)遇,有可能建立一套適合于Internet開放、動態(tài)和多變環(huán)境的新型軟件理論、方法和技術(shù)體系。從微觀的角度來看, Internet 的發(fā)展將使系統(tǒng)軟件和支撐平臺的研究重點(diǎn)開始從操作系統(tǒng)等轉(zhuǎn)向新型中間件平臺,而網(wǎng)構(gòu)軟件的理論、方法和技術(shù)的突破必將導(dǎo)致在建立新型中間件平臺創(chuàng)新技術(shù)方面的突破。2- 5 -3.結(jié)論 3.結(jié)論

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論