第一章軟件工程概念課件_第1頁
第一章軟件工程概念課件_第2頁
第一章軟件工程概念課件_第3頁
第一章軟件工程概念課件_第4頁
第一章軟件工程概念課件_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程1軟件工程

第一章軟件工程概念軟件工程2軟件工程

第一章軟件工程概念一、軟件的概念二、軟件危機(jī)三、軟件工程定義四、軟件工程框架五、軟件工程過程與軟件生存周期六、軟件開發(fā)范型(Paradigm)七、軟件工程原則軟件工程3提示:設(shè)計與建模要點結(jié)構(gòu)化分析建模:數(shù)據(jù)流圖、實體關(guān)系圖、狀態(tài)遷移圖、數(shù)據(jù)字典結(jié)構(gòu)化設(shè)計建模:數(shù)據(jù)流圖轉(zhuǎn)換為系統(tǒng)結(jié)構(gòu)圖結(jié)構(gòu)化程序設(shè)計:程序流程圖、N-S圖、PAD程序環(huán)路復(fù)雜性計算測試用例設(shè)計:邏輯覆蓋、循環(huán)測試、基本路徑覆蓋、因果圖可靠性分析:估算測試前程序中潛在錯誤OMT建模:對象模型、動態(tài)模型(狀態(tài)圖、事件追蹤圖)UML建模:用例圖、類圖、順序圖、活動圖軟件工程4一、軟件的概念軟件的定義軟件由計算機(jī)程序、數(shù)據(jù)及文檔組成。軟件與硬件、數(shù)據(jù)庫、人、過程等共同構(gòu)成計算機(jī)系統(tǒng)。軟件按功能分類:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。軟件的發(fā)展經(jīng)歷了三個階段:程序設(shè)計階段、程序系統(tǒng)階段、軟件工程階段。軟件工程51、軟件的發(fā)展

程序設(shè)計階段(又稱個體生產(chǎn)時期—50至60年代)程序系統(tǒng)階段(又稱軟件作坊時期。軟件=程序+說明—60至70年代 )軟件工程時期(—70年代以后)軟件工程方法時期(70初至80年代中)集成的計算機(jī)輔助軟件工程時期(ICASEIntegratedCASE-80年代后)軟件工程6軟件發(fā)展的三個時期及其特點特點時期程序設(shè)計程序系統(tǒng)軟件工程軟件所指程序程序及規(guī)格說明書程序、文檔、數(shù)據(jù)主要程序設(shè)計語言匯編及機(jī)器語言高級語言軟件語言軟件工作范圍編寫程序包括設(shè)計和測試軟件生存期需求者程序設(shè)計者本人少數(shù)用戶市場用戶軟件工程7續(xù)表一特點時期程序設(shè)計程序系統(tǒng)軟件工程開發(fā)軟件的組織者個人開發(fā)小組開發(fā)小組及大中型開發(fā)機(jī)構(gòu)軟件規(guī)模小型中、小型大、中、小型決定質(zhì)量的因素個人程序設(shè)計技術(shù)開發(fā)小組技術(shù)水平管理水平開發(fā)技術(shù)和手段子程序程序庫結(jié)構(gòu)化程序設(shè)計數(shù)據(jù)庫、開發(fā)工具、開發(fā)環(huán)境、工程化開發(fā)方法、標(biāo)準(zhǔn)和規(guī)范、網(wǎng)絡(luò)和分布式開發(fā)、對象技術(shù)軟件工程8續(xù)表二特點時期程序設(shè)計程序系統(tǒng)軟件工程維護(hù)責(zé)任者程序設(shè)計者開發(fā)小組專職維護(hù)人員硬件特征價格高、存儲容量小降價、速度、容量及工作可靠性明顯提高向超高速、大容量、微型化及網(wǎng)絡(luò)化方向發(fā)展軟件特征完全不受重視軟件技術(shù)的發(fā)展不能滿足需要,出現(xiàn)軟件危機(jī)開發(fā)技術(shù)有進(jìn)步,但未獲突破性進(jìn)展,價格高,未完全擺脫軟件危機(jī)軟件工程92、什么是軟件軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料軟件工程103、軟件的特點

軟件是一種邏輯實體,而不是具體的物理實體。因而它具有抽象性軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中沒有明顯的制造過程在軟件的運行和使用期間,沒有硬件那樣的機(jī)械磨損,老化問題軟件工程11失效率曲線:

軟件工程12軟件的開發(fā)和運行常受到計算機(jī)系統(tǒng)的限制,對計算機(jī)系統(tǒng)有著不同程度的依賴性。這導(dǎo)致了軟件移植問題。軟件本身是復(fù)雜的實際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性軟件大多是定制的。而不是裝配的。軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會因素軟件工程13軟件技術(shù)的發(fā)展落后于需求軟件復(fù)雜性差距時間軟件技術(shù)軟件需求軟件工程14

計算機(jī)系統(tǒng)硬、軟件成本比例的變化軟件工程154、軟件的分類按軟件的功能進(jìn)行劃分系統(tǒng)軟件支撐軟件應(yīng)用軟件軟件工程軟件危機(jī)是指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。軟件危機(jī)的主要特征軟件開發(fā)進(jìn)度難以預(yù)測軟件開發(fā)成本難以控制用戶對軟件功能難以滿足軟件產(chǎn)品質(zhì)量無法保證軟件產(chǎn)品難以維護(hù)軟件缺少文檔資料軟件的成本不斷提高。軟件開發(fā)生產(chǎn)率的提高趕不上人們需求的增長二、軟件危機(jī)軟件工程17軟件危機(jī)產(chǎn)生的原因

產(chǎn)生軟件危機(jī)有兩個方面的原因:

內(nèi)部因素與軟件本身的特點有關(guān)。內(nèi)在因素是客觀的存在,只能因勢利導(dǎo)加以解決。外部因素與軟件開發(fā)和維護(hù)的技術(shù)方法有關(guān)。外部因素是可以完善、提高的。軟件工程18軟件特點的因素

軟件是邏輯產(chǎn)品,是代碼化了的人的思維活動。在總體構(gòu)思時,別人無法管理和干預(yù)。在寫出程序、并在機(jī)器上運行之前,進(jìn)展情況難以掌握,開發(fā)質(zhì)量也無法評估。這些都給管理和控制帶來不便。

軟件是特定問題在計算機(jī)上的運行描述。實際問題的復(fù)雜性決定了一個實用軟件系統(tǒng)規(guī)模往往十分龐大。程序規(guī)模越大,控制、管理難度也就越大。軟件工程19軟件開發(fā)維護(hù)技術(shù)方法的因素開發(fā)人員和用戶之間的矛盾許多軟件系統(tǒng)開發(fā)失敗的主要原因是開發(fā)人員在沒有準(zhǔn)確、完整地了解了用戶的需求后就急于編程;用戶對需求也往往不能準(zhǔn)確、完整地提出。

軟件產(chǎn)品有其生命周期在周期的各個階段有其具體的任務(wù),如何完成任務(wù),各個階段有不同的技術(shù)方法和操作步驟。只有科學(xué)的按生命周期各階段的任務(wù)去組織實施,才能保證質(zhì)量,降低成本;急于求成,不按科學(xué)規(guī)律、方法實施,只能“事倍功半”,事與愿違。軟件工程20

軟件產(chǎn)品的使用壽命很長在這期間因功能的增加、硬件的更新?lián)Q代,都要對軟件進(jìn)行必要的修改。據(jù)統(tǒng)計數(shù)據(jù)表明,軟件維護(hù)的費用占總費用的55%~70%。軟件工程的一個重要目標(biāo)就是提高軟件的可維護(hù)性,減少軟件維護(hù)的代價。討論中國軟件存在的問題軟件工程21解決軟件危機(jī)的途徑樹立對計算機(jī)軟件的正確認(rèn)識。軟件開發(fā)應(yīng)該是組織良好、管理嚴(yán)密、各類人員團(tuán)結(jié)協(xié)作共同完成的工程項目。必須充分吸取和借鑒人類長期以來從事各種工程項目所積累的行之有效的原理、概念、技術(shù)和方法,并研究能更有效地開發(fā)軟件的技術(shù)和方法。積極開發(fā)和使用計算機(jī)輔助軟件工程(CASE)工具。總之,為了解決軟件危機(jī)就要從技術(shù)措施(方法和工具)和組織管理兩個方面去研究。

軟件工程22軟件工程概念的出現(xiàn)源自軟件危機(jī)。1968年德國人Bauer在北大西洋公約組織會議上的定義:"建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實際機(jī)器上有效運行的可靠軟件的一系列方法"。1983年IEEE的軟件工程定義:"軟件工程是開發(fā),運行,維護(hù)和修復(fù)軟件的系統(tǒng)方法"。1993年IEEE的一個更加綜合的定義:"將系統(tǒng)化的,規(guī)范的,可度量的方法應(yīng)用于軟件的開發(fā),運行和維護(hù)的過程,即將工程化應(yīng)用于軟件中"。三、軟件工程定義軟件工程23我國2006年的國家標(biāo)準(zhǔn)《GB/T11457—2006軟件工程術(shù)語》軟件工程定義:應(yīng)用計算機(jī)科學(xué)理論和技術(shù)以及工程管理原則和方法,按預(yù)算進(jìn)度,實現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護(hù)的工程或進(jìn)行研究的學(xué)科。三、軟件工程定義軟件工程24軟件工程學(xué)主要研究內(nèi)容軟件工程學(xué)軟件開發(fā)技術(shù)軟件管理技術(shù)軟件開發(fā)方法學(xué)軟件工具軟件工程開發(fā)環(huán)境軟件管理學(xué)軟件工程經(jīng)濟(jì)學(xué)軟件工程25軟件開發(fā)方法學(xué):是研究如何高效地開發(fā)出高質(zhì)量的軟件的方法。它應(yīng)提供以下兩個模型: 軟件開發(fā)模型 軟件產(chǎn)品描述模型軟件工具:研究軟件工具開發(fā)的理論和技術(shù),軟件工具是指“支持計算機(jī)軟件的開發(fā)、維護(hù)、模擬、移植或管理而研制的程序系統(tǒng)。軟件工程26軟件工程環(huán)境:軟件工程環(huán)境是“相關(guān)的一組軟件工具的集合,它支持一定的軟件開發(fā)方法或按照一定的軟件開發(fā)模型組織而成。軟件工程管理:研究如何有效地對軟件開發(fā)項目進(jìn)行管理。它包括成本估算、進(jìn)度計劃、人員組織、質(zhì)量保證等多方面內(nèi)容。軟件工程經(jīng)濟(jì)學(xué):軟件工程27軟件工程技術(shù)的兩個明顯特點:一是強(qiáng)調(diào)規(guī)范化,另一是強(qiáng)調(diào)文檔化。軟件工程包含四要素:方法(methodologies)語言(languages)工具(tools)過程(procedures).軟件工程28方法:提供如何構(gòu)造軟件的技術(shù)。語言:用以支持軟件的分析、設(shè)計和實現(xiàn)。工具:為方法和語言提供自動化或半自動化的支持。過程:是將方法、語言和工具綜合起來以達(dá)到合理、及時地進(jìn)行計算機(jī)軟件開發(fā)的目的。過程定義了方法的使用順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各階段完成的里程碑。軟件工程29可用性性性確正合算選取適宜的開發(fā)模型采用合適的設(shè)計方法提供高質(zhì)量的工程支持重視軟件工程的管理基本過程支持過程組織過程目標(biāo)過程原則四、軟件工程框架軟件工程30軟件工程框架給出了軟件工程三個主要方面。軟件工程目標(biāo)—包括可用性、正確性和合算性,規(guī)定了軟件工程實踐的結(jié)果(即軟件)應(yīng)具有的基本性質(zhì);軟件工程過程—包含的基本活動有需求、分析與設(shè)計、實現(xiàn)、確認(rèn)與測試、維護(hù)與支持;軟件工程的四條原則--采用適宜的開發(fā)模型,使用恰當(dāng)?shù)拈_發(fā)方法,提供高質(zhì)量的工程支持,實施有效的工程管理,從四個方面指導(dǎo)每一項工程的活動,以實現(xiàn)軟件工程目標(biāo)。軟件工程31ISO9000定義:軟件工程過程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動。從軟件開發(fā)的觀點看,它就是使用適當(dāng)?shù)馁Y源(包括人員、硬軟件工具、時間等),為開發(fā)軟件進(jìn)行的一組開發(fā)活動,在過程結(jié)束時將輸入(用戶要求)轉(zhuǎn)化為輸出(軟件產(chǎn)品)。五、軟件工程過程與軟件生存周期軟件工程32軟件工程過程定義了:方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和適應(yīng)變化所需要的管理、軟件開發(fā)各個階段完成的里程碑。軟件工程過程包含四種基本的過程活動:

plan:軟件規(guī)格說明

do:軟件開發(fā)

check:軟件確認(rèn)

action:軟件演進(jìn)軟件工程過程軟件工程33軟件工程過程的特性易理解性可見性可支持性可接受性可靠性健壯性可維護(hù)性速度軟件工程34軟件生存周期軟件的生存期:軟件有一個孕育、誕生、成長、成熟、衰亡的生存過程。通常,把軟件從開始研制(形成概念)到最終軟件被廢棄不用這整個階段稱為軟件的生存期。軟件生存周期:為了能對軟件進(jìn)行有條不紊、有步驟的開發(fā)和管理,將軟件生存期劃分為若干階段,稱為軟件生存周期軟件工程35軟件定義、軟件開發(fā)及軟件運行維護(hù)。軟件定義時期的任務(wù)是:確定軟件開發(fā)工程必須完成的總目標(biāo);確定工程的可行性;導(dǎo)出實現(xiàn)工程目標(biāo)應(yīng)該采用的策略及系統(tǒng)必須完成的功能;估計完成該項工程需要的資源和成本,并制定工程進(jìn)度表。該時期通常進(jìn)一步劃分為三個階段,即問題定義、可行性研究和需求分析。軟件生存周期包含三個時期軟件工程36軟件開發(fā)時期具體設(shè)計和實現(xiàn)在前一個時期定義的軟件,它通常由四個階段組成:總體設(shè)計、詳細(xì)設(shè)計、編碼和測試(包括單元測試、綜合測試)。軟件運行維護(hù)時期主要任務(wù)是使軟件持久地滿足用戶需要。軟件工程37軟件生存周期每個階段的基本任務(wù)問題定義:必須回答的關(guān)鍵問題是“要解決的問題是什么?”??尚行匝芯浚罕仨毣卮鸬年P(guān)鍵問題是“對于上一個階段確定的問題有行得通的解決辦法嗎?”。需求分析:必須回答的關(guān)鍵問題是“為了解決這個問題,目標(biāo)系統(tǒng)必須做什么?”,主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。

軟件工程38總體設(shè)計:必須回答的關(guān)鍵問題是“概括地說,應(yīng)該怎樣實現(xiàn)目標(biāo)系統(tǒng)?”。確定程序由哪些模塊組成以及模塊間的關(guān)系詳細(xì)設(shè)計:必須回答的關(guān)鍵問題是“應(yīng)該怎樣具體實現(xiàn)目標(biāo)系統(tǒng)?”。詳細(xì)的設(shè)計每個模塊,確定實現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)軟件工程39編碼和單元測試:關(guān)鍵任務(wù)是寫出正確的容易理解、容易維護(hù)的程序模塊,并仔細(xì)測試每個編寫出的模塊。綜合測試:關(guān)鍵任務(wù)是通過各種類型的測試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。維護(hù)時期:主要任務(wù)是通過各種必要的維護(hù)活動,使系統(tǒng)持久地滿足用戶需要。

軟件工程40關(guān)干軟件生命周期階段的幾個問題問題一:開發(fā)一個軟件大概需要多少資金、時間,將獲得什么效益一般是在哪個階段確定?相對而言,在哪個階段與用戶交流最多?問題二:系統(tǒng)分析員主要工作在哪個時期?程序員主要工作在哪個時期?問題三:軟件定義時期的三個階段,各自回答什么關(guān)鍵問題?問題四:軟件開發(fā)時期有幾個階段?各自回答什么關(guān)鍵問題?軟件工程41關(guān)干軟件生命周期階段的幾個問題(續(xù))問題五:軟件體系結(jié)構(gòu)最早是在哪個階段決定的?問題六:詳細(xì)設(shè)計與程序編寫階段有什么樣的密切聯(lián)系?問題七:“軟件測試是為了驗證系統(tǒng)的正確性”這句話對嗎?問題八:軟件維護(hù)有那幾種?各有什么功能?軟件工程42軟件生存周期模型是軟件工程思想的具體化,是跨越軟件生存周期的系統(tǒng)開發(fā)、運行、維護(hù)所實施的全部活動和任務(wù)的過程框架。常用的軟件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,噴泉模型,快速應(yīng)用開發(fā)(RAD)模型。軟件生存周期模型軟件工程43瀑布模型各項活動按自上而下,相互銜接的固定次序,如同瀑布逐級下落,每項活動均處于一個質(zhì)量環(huán)(輸入-處理-輸出-評審)中。階段間具有順序性和依賴性。推遲實現(xiàn)的觀點。每個階段必須完成規(guī)定的文檔;每個階段結(jié)束前完成文檔審查。它的致命缺點在于只有做出精確的需求分析,才能取得預(yù)期的結(jié)果。軟件工程44需求定義系統(tǒng)與軟件設(shè)計集成與系統(tǒng)測試實現(xiàn)與單元測試運行與維護(hù)軟件工程45演化模型演化模型是迭代的,軟件必須經(jīng)過不斷演化才能完善。演化模型先開發(fā)一個“原型”軟件,完成部分主要功能,展示給用戶并征求意見,然后逐步完善,最終獲得滿意的軟件產(chǎn)品。業(yè)務(wù)和產(chǎn)品需求在變化中,采用線性開發(fā)方式是不實際的??焖賹崿F(xiàn)和提交一個有限的版本,可以應(yīng)付市場競爭的壓力。軟件工程46需求的采集與細(xì)化客戶評價原型快速設(shè)計建造原型加工原型產(chǎn)生樣品停止開始軟件工程47螺旋模型螺旋模型將瀑布模型與演化模型結(jié)合起來,并且加入兩種模型均忽略了的風(fēng)險分析。螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更完善的一個新版本。制定計劃風(fēng)險分析實施工程客戶評估軟件工程48決定目標(biāo)、方案和限制評價方案識別風(fēng)險弱化風(fēng)險

開發(fā)、驗證、下一級產(chǎn)品

計劃下一階段集成測試軟件工程49增量模型增量模型是迭代和演進(jìn)的過程。增量模型把軟件產(chǎn)品分解成一系列的增量構(gòu)件,在增量開發(fā)迭代中逐步加入。每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能夠完成特定的功能。早先完成的增量可以為后期的增量提供服務(wù)。增量開發(fā)方法的新演進(jìn)版本叫做"極限程序設(shè)計(eXtremeProgramming)"。軟件工程50定義基本需求將需求對應(yīng)到各增量設(shè)計系統(tǒng)架構(gòu)開發(fā)其中一個增量檢驗和確認(rèn)該增量將增量集成到系統(tǒng)中確認(rèn)集成后的系統(tǒng)軟件工程51日歷時間分析增量1

增量1交付設(shè)計編碼測試分析增量2

增量2交付設(shè)計編碼測試分析增量3

增量3交付設(shè)計編碼測試分析增量4

增量4交付設(shè)計編碼測試系統(tǒng)和信息工程軟件工程52噴泉模型體現(xiàn)了迭代和無間隙的特性。系統(tǒng)某個部分常常重復(fù)工作多次,相關(guān)對象在每次迭代中隨之加入演進(jìn)的軟件成分。無間隙是指在各項開發(fā)活動,即分析、設(shè)計和編碼之間不存在明顯的邊界。噴泉模型是對象驅(qū)動的過程。軟件工程53需求階段分析階段設(shè)計階段編程階段集成與測試階段維護(hù)與演進(jìn)階段軟件工程54快速應(yīng)用開發(fā)(RAD)模型快速應(yīng)用開發(fā)模型是一種增量開發(fā)模型,該模型開發(fā)軟件大量使用了可復(fù)用的構(gòu)件。每一個增量的開發(fā)經(jīng)歷五個階段:業(yè)務(wù)建模對業(yè)務(wù)功能的信息流建模。數(shù)據(jù)建模對業(yè)務(wù)的數(shù)據(jù)對象和關(guān)系建模。過程建模描述完成業(yè)務(wù)功能的數(shù)據(jù)變換。應(yīng)用生成應(yīng)用構(gòu)件和自動化工具建造。測試與反復(fù)對新構(gòu)件和接口進(jìn)行測試。軟件工程55業(yè)務(wù)建模數(shù)據(jù)建模過程建模應(yīng)用生成測試及反復(fù)小組1#業(yè)務(wù)建模數(shù)據(jù)建模過程建模應(yīng)用生成測試及反復(fù)小組2#業(yè)務(wù)建模數(shù)據(jù)建模過程建模應(yīng)用生成測試及反復(fù)小組3#60~90天軟件工程56變換模型變換模型是一種基于形式化規(guī)格說明語言及程序變換的軟件開發(fā)模型。它采用形式化的軟件開發(fā)方法,對形式化的軟件規(guī)格說明進(jìn)行一系列自動的或半自動的程序變換,最終映射成為計算機(jī)系統(tǒng)能夠接受的程序系統(tǒng)。多步程序變換過程的重要性質(zhì)是:每一步程序變換的正確性僅與該步變換所依據(jù)的規(guī)范Mi以及對變換后的假設(shè)Mi+1有關(guān)。軟件工程57軟件需求形式化說明(M0)軟件設(shè)計形式化說明(M1)(M2)(Mn)……模型檢查程序變換程序變換程序變換在此意義上,變換步驟獨立于其他變換步驟。這稱為變換的獨立性。該模型只適合于軟件的形式化開發(fā)方法;需要嚴(yán)格的數(shù)學(xué)理論和形式化技術(shù)支持;需要一整套開發(fā)環(huán)境(如程序變換工具、定理證明工具等)的支持。軟件工程58基于第四代技術(shù)的模型第四代語言(4GL)是在大型數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上發(fā)展起來的,是一種面向結(jié)果的非過程性語言。它獨立于具體的處理機(jī),有豐富的軟件工具支持,能統(tǒng)一利用和管理各種數(shù)據(jù)資源并能適應(yīng)不同水平用戶的需要。以4GL為核心的軟件開發(fā)技術(shù)成為第四代技術(shù)(4GT),采用4GT的軟件開發(fā)模型如圖。軟件開發(fā)人員在定義軟件需求,給出需求規(guī)格說明之后,4GT工具可將該需求規(guī)格說明自動軟件工程59

轉(zhuǎn)換為程序代碼。這大大減少了分析、設(shè)計、編碼和測試的時間。以4GL為核心的軟件開發(fā)技術(shù)成為第四代技術(shù)(4GT),采用4GT的軟件開發(fā)模型如圖。收集需求“設(shè)計”策略用“4GL”實現(xiàn)測試軟件工程60六、軟件開發(fā)范型(Paradigm)范型又稱為風(fēng)范。通常認(rèn)為范型就是開發(fā)模型(Model)或開發(fā)模式(Pattern),實際上它與方法(Methodology)一樣,都被視為一種開發(fā)技術(shù)。范型支配了設(shè)計方法、編碼語言、測試和檢驗技術(shù)的選擇。過程性范型把軟件視為處理流,定義成由一系列步驟構(gòu)成的算法。每一步驟都是帶有輸入和輸出的一個過程,把這些步驟串聯(lián)在一起可產(chǎn)生貫通于整個程序的控制流。軟件工程61面向?qū)ο蠓缎桶褬?biāo)識和模型化問題領(lǐng)域中的實體做為系統(tǒng)開發(fā)的起點,面向?qū)ο笙到y(tǒng)中的對象是數(shù)據(jù)抽象與過程抽象的綜合。邏輯性范型是基于規(guī)則的,它把有關(guān)問題的知識分解成一組具體規(guī)則(如prolog語言)。面向進(jìn)程范型把一個問題分解成獨立執(zhí)行的模塊。讓不只一個程序同時運行。這些進(jìn)程互相配合,解決問題。面向存取范型是一種在構(gòu)造用戶界面方面很有用的技術(shù)。軟件工程62函數(shù)型范型是基于規(guī)則的,它把有關(guān)問題的知識分解成一組具體規(guī)則,用語言的“if_then”等結(jié)構(gòu)來表示這些規(guī)則。

說明性范型。每種開發(fā)范型都有它的支持者和用戶:每種開發(fā)范型都特別適合于某種類型的問題或子問題;每種開發(fā)范型都用不同的方式考慮問題;每種開發(fā)范型都使用不同的方法來分解問題軟件工程63每種開發(fā)范型都導(dǎo)致不同種類的塊、過程、產(chǎn)生規(guī)則。系統(tǒng)開發(fā)時通常把大型問題分解成一組子問題。對于每個子問題采用適當(dāng)?shù)能浖_發(fā)范型。軟件工程64軟件工程原則有:抽象與自頂向下、逐層細(xì)化采用分層抽象的方法,有效控制軟件開發(fā)的復(fù)雜性。模塊化把問題分解為若干較小的較易解決的模塊,有助于信息隱蔽和抽象。信息隱蔽和數(shù)據(jù)封裝將模塊中的軟件設(shè)計決策封裝在模塊內(nèi)部,使得模塊實現(xiàn)與使用分離,有助于控制修改局部化。七、軟件工程原則軟件工程65局部化在一個物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計算機(jī)資源,促使聚合具有特定目的的事物。一致性整個軟件系統(tǒng)的模塊使用一致的設(shè)計策略、編程風(fēng)格,保持程序內(nèi)部接口的一致性、軟件與硬件接口的一致性、系統(tǒng)規(guī)格說明與系統(tǒng)行為的一致性。完備性軟件系統(tǒng)中不丟失任何成分??沈炞C性系統(tǒng)分解應(yīng)當(dāng)遵循易檢查、易測試和易評審的原則,以保證系統(tǒng)的正確性。軟件工程66軟件工程的基本原理有:用分階段的生命周期計劃嚴(yán)格管理:按軟件生存期分階段制定計劃并認(rèn)真實施,把整個軟件開發(fā)過程視為一項工程,把工程劃分為若干階段,分別制定每個階段的計劃,逐個實施。堅持進(jìn)行階段評審前一階段的結(jié)果將成為下一階段的依據(jù)。堅持階段的評審才能保證錯誤不傳播到下一階段。軟件工程67實行嚴(yán)格的產(chǎn)品控制將影響軟件質(zhì)量的因素在整個過程中置于嚴(yán)格控制之下。使用現(xiàn)代程序設(shè)計技術(shù)先進(jìn)的程序設(shè)計技術(shù)帶來的是生產(chǎn)率和質(zhì)量的提高。使用合適的開發(fā)模式和工具可以有效地建立功能強(qiáng)大的系統(tǒng)。明確責(zé)任,使得工作結(jié)果能夠得到清楚的審查開發(fā)組織嚴(yán)格劃分責(zé)任并制定產(chǎn)品的標(biāo)準(zhǔn),使得每個成員的工作有據(jù)可依,確保產(chǎn)品的質(zhì)量。軟件工程68用人少而精開發(fā)組織不在人多,在于每個人的技能適合要求。同時用人少而精,可減少溝通路徑,提高生產(chǎn)率。承認(rèn)不斷改進(jìn)軟件工程實踐的必要性不斷改進(jìn)開發(fā)過程,在開發(fā)的過程中不斷總結(jié)經(jīng)驗,改進(jìn)開發(fā)的組織和過程,有效地通過過程質(zhì)量的改進(jìn)提高軟件產(chǎn)品的質(zhì)量。軟件工程69軟件工程項目的基本目標(biāo)有:

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論