重慶大學(xué)軟件工程概述_第1頁
重慶大學(xué)軟件工程概述_第2頁
重慶大學(xué)軟件工程概述_第3頁
重慶大學(xué)軟件工程概述_第4頁
重慶大學(xué)軟件工程概述_第5頁
已閱讀5頁,還剩102頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、重慶大學(xué)計算機(jī)學(xué)院重慶大學(xué)計算機(jī)學(xué)院曾一曾一 email:Telo)第1講 軟件工程概述 1.1 1.1 軟件危機(jī)與軟件工程的產(chǎn)生軟件危機(jī)與軟件工程的產(chǎn)生 1.2 1.2 軟件工程的基本概念軟件工程的基本概念 1.3 1.3 軟件工程研究的主要內(nèi)容軟件工程研究的主要內(nèi)容 1.4 1.4 軟件開發(fā)模型軟件開發(fā)模型1.1 1.1 軟件危機(jī)與軟件工程的產(chǎn)生軟件危機(jī)與軟件工程的產(chǎn)生n1.1.1 1.1.1 軟件與軟件的特點軟件與軟件的特點n軟件的定義:軟件的定義:n軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計算機(jī)計算機(jī)程序程序和使程序正常執(zhí)

2、行所需要的和使程序正常執(zhí)行所需要的數(shù)據(jù)數(shù)據(jù),加上描述程序的操作和使用的加上描述程序的操作和使用的文檔文檔。n簡略地說:簡略地說:軟件程序文檔軟件程序文檔 程序程序 程序按事先設(shè)計的功能和性能要求執(zhí)行的指程序按事先設(shè)計的功能和性能要求執(zhí)行的指令序列。令序列。 數(shù)據(jù)數(shù)據(jù) 數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。文檔文檔 文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料。資料。1.1.1 1.1.1 軟件與軟件的特點軟件與軟件的特點n軟件的特點軟件的特點n軟件是一種邏輯實體,而不是具體的物理實體,它軟件是一種邏輯實體,而不是具體的物

3、理實體,它具有抽象性具有抽象性n軟件是軟件是“開發(fā)開發(fā)”出來的,不是出來的,不是“制造制造”出來的出來的n軟件維護(hù)不同于硬件維修(參看硬件和軟件失效率軟件維護(hù)不同于硬件維修(參看硬件和軟件失效率的對比圖)的對比圖)n軟件的開發(fā)和運行常常受到計算機(jī)系統(tǒng)的限制,對軟件的開發(fā)和運行常常受到計算機(jī)系統(tǒng)的限制,對計算機(jī)系統(tǒng)有著不同程度的依賴性計算機(jī)系統(tǒng)有著不同程度的依賴性n軟件的開發(fā)效率仍相當(dāng)?shù)停两裆形赐耆珨[脫手工軟件的開發(fā)效率仍相當(dāng)?shù)停两裆形赐耆珨[脫手工作坊式的開發(fā)方式作坊式的開發(fā)方式n軟件本身是復(fù)雜的,相當(dāng)多的軟件工作還涉及到社軟件本身是復(fù)雜的,相當(dāng)多的軟件工作還涉及到社會因素。會因素。1.1.

4、1 1.1.1 軟件與軟件的特點軟件與軟件的特點硬件和軟件失效率的對比:硬件和軟件失效率的對比:1.1.21.1.2軟件的三個發(fā)展階段軟件的三個發(fā)展階段第第1 1個階段個階段:程序時期(約為:程序時期(約為2020世紀(jì)世紀(jì)5050至至6060年代)年代) 硬件已經(jīng)通用化,而程序卻是個體化的。程序硬件已經(jīng)通用化,而程序卻是個體化的。程序的編寫者和使用者往往是同一個人,程序規(guī)模小,的編寫者和使用者往往是同一個人,程序規(guī)模小,每一個程序都是為求解某一個問題而專門設(shè)計的,每一個程序都是為求解某一個問題而專門設(shè)計的,幾乎沒有什么系統(tǒng)的方法可遵循,程序設(shè)計常常是幾乎沒有什么系統(tǒng)的方法可遵循,程序設(shè)計常常是

5、設(shè)計者頭腦中進(jìn)行的隱含過程,除了程序清單,基設(shè)計者頭腦中進(jìn)行的隱含過程,除了程序清單,基本沒有設(shè)計文檔資料,其生產(chǎn)方式完全是本沒有設(shè)計文檔資料,其生產(chǎn)方式完全是“個體手個體手工方式工方式”,人們只有程序的概念而沒有軟件的概念。,人們只有程序的概念而沒有軟件的概念。 第第2 2個階段個階段:程序程序+ +說明時期說明時期(約為約為2020世紀(jì)世紀(jì)6060至至7070年年代代)軟件技術(shù)取得了很大的進(jìn)展,如多道程序設(shè)計、軟件技術(shù)取得了很大的進(jìn)展,如多道程序設(shè)計、多用戶人機(jī)交互、文件管理、多種高級語言的出現(xiàn)、多用戶人機(jī)交互、文件管理、多種高級語言的出現(xiàn)、形式語言理論、編譯技術(shù)的突破等,給計算機(jī)的廣形式

6、語言理論、編譯技術(shù)的突破等,給計算機(jī)的廣泛應(yīng)用奠定了基礎(chǔ)。但是,軟件應(yīng)用的需求變多,泛應(yīng)用奠定了基礎(chǔ)。但是,軟件應(yīng)用的需求變多,規(guī)模變大,復(fù)雜程度變高,使得規(guī)模變大,復(fù)雜程度變高,使得“個體生產(chǎn)方式個體生產(chǎn)方式”已經(jīng)不能適應(yīng)生產(chǎn)要求,而是需要多人分工合作共已經(jīng)不能適應(yīng)生產(chǎn)要求,而是需要多人分工合作共同編制程序,形成了所謂的同編制程序,形成了所謂的“作坊式生產(chǎn)方式作坊式生產(chǎn)方式”,這種方式造成了開發(fā)約定不清晰、程序說明不完整,這種方式造成了開發(fā)約定不清晰、程序說明不完整,導(dǎo)致了軟件質(zhì)量不高、成本失控、生產(chǎn)效率過低、導(dǎo)致了軟件質(zhì)量不高、成本失控、生產(chǎn)效率過低、工期延誤,后期難于維護(hù),甚至一個軟件項

7、目在開工期延誤,后期難于維護(hù),甚至一個軟件項目在開發(fā)過程中途夭折等,最終導(dǎo)致發(fā)過程中途夭折等,最終導(dǎo)致“軟件危機(jī)軟件危機(jī)”的開始。的開始。 1.1.21.1.2軟件的三個發(fā)展階段軟件的三個發(fā)展階段軟件危機(jī)軟件危機(jī) 指指不斷增加的為大系統(tǒng)制造可靠軟件的困難不斷增加的為大系統(tǒng)制造可靠軟件的困難度。度。軟件系統(tǒng)的規(guī)模和復(fù)雜性不斷增長,對軟件軟件系統(tǒng)的規(guī)模和復(fù)雜性不斷增長,對軟件的需求增長超過了供應(yīng)(開發(fā)、演化和維護(hù))能的需求增長超過了供應(yīng)(開發(fā)、演化和維護(hù))能力。軟件開發(fā)人員極度短缺、開發(fā)效率和軟件質(zhì)力。軟件開發(fā)人員極度短缺、開發(fā)效率和軟件質(zhì)量不能滿足用戶的需求,最終延緩經(jīng)濟(jì)和社會的量不能滿足用戶的

8、需求,最終延緩經(jīng)濟(jì)和社會的發(fā)展。發(fā)展。1.1.21.1.2軟件的三個發(fā)展階段軟件的三個發(fā)展階段第第3 3個階段:個階段:軟件工程時期軟件工程時期( (約為約為2020世紀(jì)世紀(jì)7070年代以后年代以后) )為了擺脫軟件危機(jī)這一困境,北大西洋公約組織為了擺脫軟件危機(jī)這一困境,北大西洋公約組織NATO (North Atlantic Treaty Organization ) 于于19681968年召開軟件研討會(年召開軟件研討會(Conference on Software Engineering),并首次提出),并首次提出“軟件工程軟件工程”這個術(shù)這個術(shù)語,從此誕生了軟件工程這個新興學(xué)科。從語,

9、從此誕生了軟件工程這個新興學(xué)科。從7070年代年代初開始,軟件工作者主要圍繞軟件過程和開發(fā)模型、初開始,軟件工作者主要圍繞軟件過程和開發(fā)模型、開發(fā)方法和技術(shù)、開發(fā)工具和環(huán)境,開發(fā)規(guī)范和標(biāo)開發(fā)方法和技術(shù)、開發(fā)工具和環(huán)境,開發(fā)規(guī)范和標(biāo)準(zhǔn)以及軟件管理等各個方面的研究和實踐,使準(zhǔn)以及軟件管理等各個方面的研究和實踐,使“作作坊式生產(chǎn)方式坊式生產(chǎn)方式”,逐步過渡到,逐步過渡到“軟件工廠式的生產(chǎn)軟件工廠式的生產(chǎn)方式方式”,軟件的生產(chǎn)步入了系列化、產(chǎn)品化、工程,軟件的生產(chǎn)步入了系列化、產(chǎn)品化、工程化和標(biāo)準(zhǔn)化的進(jìn)程。化和標(biāo)準(zhǔn)化的進(jìn)程。 1.1.21.1.2軟件的三個發(fā)展階段軟件的三個發(fā)展階段1.2 1.2 軟件

10、工程的基本概念軟件工程的基本概念1.2.1 1.2.1 軟件工程軟件工程n軟件工程軟件工程n是指導(dǎo)軟件開發(fā)和維護(hù)的工程類學(xué)科,它以計是指導(dǎo)軟件開發(fā)和維護(hù)的工程類學(xué)科,它以計算機(jī)科學(xué)理論及其他相關(guān)學(xué)科的理論為指導(dǎo),算機(jī)科學(xué)理論及其他相關(guān)學(xué)科的理論為指導(dǎo),采用工程化的概念、原理、方法和技術(shù),進(jìn)行采用工程化的概念、原理、方法和技術(shù),進(jìn)行軟件的開發(fā)和維護(hù),并與經(jīng)過時間證明正確的軟件的開發(fā)和維護(hù),并與經(jīng)過時間證明正確的管理方法與措施相結(jié)合,以較少的代價獲取高管理方法與措施相結(jié)合,以較少的代價獲取高質(zhì)量的軟件。質(zhì)量的軟件。 軟件工程軟件工程是軟件工程是對需求、計算機(jī)技術(shù)、人員及是軟件工程是對需求、計算機(jī)技

11、術(shù)、人員及其技能、時間、成本和其它資源的管理,并其技能、時間、成本和其它資源的管理,并籍此在一個滿足開發(fā)者需求的過程中形成一籍此在一個滿足開發(fā)者需求的過程中形成一個滿足客戶需求的軟件產(chǎn)品。個滿足客戶需求的軟件產(chǎn)品。 軟件工程軟件工程( (The IEEE Computer Society)是是(1) (1) 將系統(tǒng)化的、規(guī)范的、可度量的方法將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護(hù)的過程,即應(yīng)用于軟件的開發(fā)、運行和維護(hù)的過程,即將工程化應(yīng)用于軟件中。將工程化應(yīng)用于軟件中。(2) (2) 對對(1)(1)中所述方中所述方法的研究法的研究。1.2.1 1.2.1 軟件工程軟件工程

12、簡單地說,目標(biāo)簡單地說,目標(biāo)是能夠成功地完成軟件開發(fā)項是能夠成功地完成軟件開發(fā)項目。而一個成功的項目目標(biāo)是生產(chǎn)一個可接受目。而一個成功的項目目標(biāo)是生產(chǎn)一個可接受的產(chǎn)品的產(chǎn)品。 總的來說,目標(biāo)總的來說,目標(biāo)是是應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,借鑒傳統(tǒng)工程的原則和方法創(chuàng)理科學(xué)等原理,借鑒傳統(tǒng)工程的原則和方法創(chuàng)建軟件,以達(dá)到改善生產(chǎn)效率、提高質(zhì)量、降建軟件,以達(dá)到改善生產(chǎn)效率、提高質(zhì)量、降低成本的目的。低成本的目的。 1.2.2 1.2.2 軟件工程的目標(biāo)軟件工程的目標(biāo)n軟件生存周期軟件生存周期SLC(Software Life Cycle)一個軟件產(chǎn)品通常是從模糊的概

13、念開始,逐一個軟件產(chǎn)品通常是從模糊的概念開始,逐步建立起產(chǎn)品的需求,并對需求進(jìn)行說明,步建立起產(chǎn)品的需求,并對需求進(jìn)行說明,然后進(jìn)行設(shè)計、實現(xiàn)和測試。如果客戶是滿然后進(jìn)行設(shè)計、實現(xiàn)和測試。如果客戶是滿意的,那么就可安裝產(chǎn)品,并且開始運行和意的,那么就可安裝產(chǎn)品,并且開始運行和維護(hù)它。如果產(chǎn)品到達(dá)了其有用生命的盡頭維護(hù)它。如果產(chǎn)品到達(dá)了其有用生命的盡頭就會退役、報廢或停止使用。這一系列過程,就會退役、報廢或停止使用。這一系列過程,我們稱為軟件的生命周期。我們稱為軟件的生命周期。 1.2.3 1.2.3 軟件生存周期軟件生存周期n軟件生存周期的各個階段軟件生存周期的各個階段從軟件跨越的整個生命周期

14、所實施的過程、活從軟件跨越的整個生命周期所實施的過程、活動和任務(wù)來劃分,軟件的生命周期可以歸結(jié)為動和任務(wù)來劃分,軟件的生命周期可以歸結(jié)為以下幾個主要階段:軟件計劃、需求分析、軟以下幾個主要階段:軟件計劃、需求分析、軟件設(shè)計、編碼、測試、維護(hù)與運行、退役等。件設(shè)計、編碼、測試、維護(hù)與運行、退役等。這些階段互相區(qū)別而又有聯(lián)系。這些階段互相區(qū)別而又有聯(lián)系。實際上,每個軟件的生命周期有所不同,如有實際上,每個軟件的生命周期有所不同,如有的軟件可能在需求階段花費幾年的時間,有的的軟件可能在需求階段花費幾年的時間,有的軟件在設(shè)計和實現(xiàn)階段只需幾個月時間,有的軟件在設(shè)計和實現(xiàn)階段只需幾個月時間,有的軟件則在

15、維護(hù)階段可能長達(dá)十幾年。軟件則在維護(hù)階段可能長達(dá)十幾年。 1.2.3 1.2.3 軟件生存周期軟件生存周期第一個階段:軟件計劃(第一個階段:軟件計劃(PlanningPlanning) 確定要解決的確定要解決的“問題是什么問題是什么”及及“解決問題的解決問題的可行方案可行方案”即確定要開發(fā)軟件系統(tǒng)的總目標(biāo),給出它的功即確定要開發(fā)軟件系統(tǒng)的總目標(biāo),給出它的功能、性能、可靠性以及接口等方面的概要性要能、性能、可靠性以及接口等方面的概要性要求;從技術(shù)方面、經(jīng)濟(jì)方面、法律方面探討解求;從技術(shù)方面、經(jīng)濟(jì)方面、法律方面探討解決問題的可能方案,對可利用的資源(如計算決問題的可能方案,對可利用的資源(如計算機(jī)

16、硬件、軟件、人力等)、成本、可取得的經(jīng)機(jī)硬件、軟件、人力等)、成本、可取得的經(jīng)濟(jì)效益、開發(fā)的進(jìn)度做出估計,制定出完成開濟(jì)效益、開發(fā)的進(jìn)度做出估計,制定出完成開發(fā)任務(wù)的實施計劃等,提交管理機(jī)構(gòu)評審。發(fā)任務(wù)的實施計劃等,提交管理機(jī)構(gòu)評審。 1.2.3 1.2.3 軟件生存周期軟件生存周期第二個階段:需求分析和規(guī)格說明(第二個階段:需求分析和規(guī)格說明(Requirement Requirement Analysis and SpecificationAnalysis and Specification) 確定目標(biāo)系統(tǒng)要確定目標(biāo)系統(tǒng)要“做什么做什么”。即對軟件計劃階段的要求進(jìn)一步細(xì)化和求精,即對軟件計

17、劃階段的要求進(jìn)一步細(xì)化和求精,加強(qiáng)并集中軟件的需求分析和規(guī)格說明,強(qiáng)調(diào)加強(qiáng)并集中軟件的需求分析和規(guī)格說明,強(qiáng)調(diào)軟件分析人員與用戶、軟件分析人員與軟件開軟件分析人員與用戶、軟件分析人員與軟件開發(fā)人員的交互,充分理解軟件的作用域、所需發(fā)人員的交互,充分理解軟件的作用域、所需功能、性能及接口、安全與保密、人機(jī)工程與功能、性能及接口、安全與保密、人機(jī)工程與人機(jī)界面、數(shù)據(jù)定義及數(shù)據(jù)庫、安裝及驗收等人機(jī)界面、數(shù)據(jù)定義及數(shù)據(jù)庫、安裝及驗收等需求,落實用戶所需文檔、用戶操作和運行需需求,落實用戶所需文檔、用戶操作和運行需求、用戶維護(hù)需求,然后寫出軟件需求規(guī)格說求、用戶維護(hù)需求,然后寫出軟件需求規(guī)格說明書,提交

18、管理機(jī)構(gòu)評審。明書,提交管理機(jī)構(gòu)評審。 1.2.3 1.2.3 軟件生存周期軟件生存周期第三個階段:第三個階段:設(shè)計(設(shè)計(Software DesignSoftware Design)確定目標(biāo)系統(tǒng)要確定目標(biāo)系統(tǒng)要“怎么做怎么做”。軟件設(shè)計是將需求轉(zhuǎn)換成為軟件的表示,包括軟件設(shè)計是將需求轉(zhuǎn)換成為軟件的表示,包括數(shù)據(jù)結(jié)構(gòu)、軟件結(jié)構(gòu)、接口表示和過程細(xì)節(jié)。數(shù)據(jù)結(jié)構(gòu)、軟件結(jié)構(gòu)、接口表示和過程細(xì)節(jié)。通常將前三者劃為軟件的通常將前三者劃為軟件的初步(概要)設(shè)計初步(概要)設(shè)計,后者則歸為軟件的后者則歸為軟件的詳細(xì)設(shè)計詳細(xì)設(shè)計。例如,可將需求。例如,可將需求轉(zhuǎn)化為層次化的軟件模塊結(jié)構(gòu)、模塊所用的數(shù)轉(zhuǎn)化為層次

19、化的軟件模塊結(jié)構(gòu)、模塊所用的數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫文件表示、模塊之間接口描述、據(jù)結(jié)構(gòu)或數(shù)據(jù)庫文件表示、模塊之間接口描述、模塊應(yīng)完成的功能等,以及每個模塊完成相應(yīng)模塊應(yīng)完成的功能等,以及每個模塊完成相應(yīng)功能的過程細(xì)節(jié)如局部變量、內(nèi)部數(shù)據(jù)結(jié)構(gòu)、功能的過程細(xì)節(jié)如局部變量、內(nèi)部數(shù)據(jù)結(jié)構(gòu)、算法等。這些軟件表示應(yīng)該按照規(guī)定的標(biāo)準(zhǔn)形算法等。這些軟件表示應(yīng)該按照規(guī)定的標(biāo)準(zhǔn)形式加以描述,形成軟件設(shè)計規(guī)格說明書,提交式加以描述,形成軟件設(shè)計規(guī)格說明書,提交管理機(jī)構(gòu)評審。管理機(jī)構(gòu)評審。 1.2.3 1.2.3 軟件生存周期軟件生存周期第四個階段:第四個階段:編碼(編碼(CodingCoding)編碼體現(xiàn)了目標(biāo)系統(tǒng)的編碼體

20、現(xiàn)了目標(biāo)系統(tǒng)的“具體實現(xiàn)具體實現(xiàn)”。編碼是將設(shè)計轉(zhuǎn)換成計算機(jī)可以接受的語言代編碼是將設(shè)計轉(zhuǎn)換成計算機(jī)可以接受的語言代碼碼源程序。如果設(shè)計給出的描述很詳細(xì),源程序。如果設(shè)計給出的描述很詳細(xì),那么編碼幾乎可以機(jī)械地完成。自然,編碼必那么編碼幾乎可以機(jī)械地完成。自然,編碼必須與設(shè)計表示一致、具有結(jié)構(gòu)簡單、清晰易讀須與設(shè)計表示一致、具有結(jié)構(gòu)簡單、清晰易讀等良好的編碼風(fēng)格。等良好的編碼風(fēng)格。 1.2.3 1.2.3 軟件生存周期軟件生存周期第五個階段:軟件測試(第五個階段:軟件測試(Software TestingSoftware Testing) 軟件測試是保證軟件質(zhì)量的重要手段,其主要軟件測試是保證

21、軟件質(zhì)量的重要手段,其主要任務(wù)是檢查該軟件是否符合要求,其目的是發(fā)任務(wù)是檢查該軟件是否符合要求,其目的是發(fā)現(xiàn)軟件存在的錯誤。軟件測試應(yīng)該是有計劃地現(xiàn)軟件存在的錯誤。軟件測試應(yīng)該是有計劃地進(jìn)行。進(jìn)行。軟件測試依據(jù)軟件規(guī)格說明設(shè)計測試用例,并軟件測試依據(jù)軟件規(guī)格說明設(shè)計測試用例,并施加在已經(jīng)編碼的程序上進(jìn)行執(zhí)行,經(jīng)過對預(yù)施加在已經(jīng)編碼的程序上進(jìn)行執(zhí)行,經(jīng)過對預(yù)期結(jié)果和實際執(zhí)行結(jié)果的比較、分析,來發(fā)現(xiàn)期結(jié)果和實際執(zhí)行結(jié)果的比較、分析,來發(fā)現(xiàn)程序的錯誤,最后形成測試報告。測試的主要程序的錯誤,最后形成測試報告。測試的主要過程有單元、集成、系統(tǒng)、驗收和安裝測試等。過程有單元、集成、系統(tǒng)、驗收和安裝測試等

22、。1.2.3 1.2.3 軟件生存周期軟件生存周期第六個階段:第六個階段:運行運行/ /維護(hù)(維護(hù)(Running/MaintenanceRunning/Maintenance)該階段體現(xiàn)軟件是否能夠持久滿足用戶的需求。該階段體現(xiàn)軟件是否能夠持久滿足用戶的需求。已交付的軟件投入正式使用后,便進(jìn)入運行和已交付的軟件投入正式使用后,便進(jìn)入運行和維護(hù)階段。這個階段可能持續(xù)若干年甚至幾十維護(hù)階段。這個階段可能持續(xù)若干年甚至幾十年,因此占整個軟件費用的比例最大,是相當(dāng)年,因此占整個軟件費用的比例最大,是相當(dāng)重要的一個階段。重要的一個階段。軟件維護(hù)的實質(zhì)是對軟件繼續(xù)進(jìn)行查錯、糾錯、軟件維護(hù)的實質(zhì)是對軟件繼

23、續(xù)進(jìn)行查錯、糾錯、修改和確認(rèn)的過程。無論是應(yīng)用軟件或系統(tǒng)軟修改和確認(rèn)的過程。無論是應(yīng)用軟件或系統(tǒng)軟件,都要在使用期間不斷改善和加強(qiáng)產(chǎn)品的功件,都要在使用期間不斷改善和加強(qiáng)產(chǎn)品的功能和性能、適應(yīng)運行環(huán)境的改變、糾正在開發(fā)能和性能、適應(yīng)運行環(huán)境的改變、糾正在開發(fā)期間未能發(fā)現(xiàn)的遺留錯誤。期間未能發(fā)現(xiàn)的遺留錯誤。 1.2.3 1.2.3 軟件生存周期軟件生存周期第七個階段:第七個階段:報廢報廢/ /退役退役(RetirementRetirement)當(dāng)軟件經(jīng)過一段時期運行和服務(wù)后,便可能報當(dāng)軟件經(jīng)過一段時期運行和服務(wù)后,便可能報廢或退役。廢或退役。主要的原因有:主要的原因有:為滿足用戶的需求所做的維護(hù)

24、費用太高,可能比新為滿足用戶的需求所做的維護(hù)費用太高,可能比新開發(fā)一個軟件所花費的代價更高。開發(fā)一個軟件所花費的代價更高。維護(hù)的少量變化對于依賴性很強(qiáng)的軟件的整體功能維護(hù)的少量變化對于依賴性很強(qiáng)的軟件的整體功能而言,有極大的危險。而言,有極大的危險。環(huán)境的變更(如硬件或操作系統(tǒng))導(dǎo)致軟件的更換。環(huán)境的變更(如硬件或操作系統(tǒng))導(dǎo)致軟件的更換。用戶不再需要這個軟件。用戶不再需要這個軟件。1.2.3 1.2.3 軟件生存周期軟件生存周期n軟件生存周期是軟件工程中一個重要概念軟件生存周期是軟件工程中一個重要概念把軟件的整個生存周期劃分為較小的階段,給把軟件的整個生存周期劃分為較小的階段,給每個階段賦予

25、確定而有限的任務(wù),就能簡化每每個階段賦予確定而有限的任務(wù),就能簡化每一步的工作,使軟件開發(fā)過程易于控制和管理。一步的工作,使軟件開發(fā)過程易于控制和管理。采用這種劃分,使得每一個階段的工作相對獨采用這種劃分,使得每一個階段的工作相對獨立,有利于簡化整個問題的解決,且便于不同立,有利于簡化整個問題的解決,且便于不同人員分工協(xié)作。而且嚴(yán)格的科學(xué)的評審制度提人員分工協(xié)作。而且嚴(yán)格的科學(xué)的評審制度提高了軟件的質(zhì)量,從而大大提高了軟件開發(fā)的高了軟件的質(zhì)量,從而大大提高了軟件開發(fā)的生產(chǎn)率和成功率。生產(chǎn)率和成功率。1.2.3 1.2.3 軟件生存周期軟件生存周期n軟件生存周期各階段的軟件生存周期各階段的關(guān)鍵關(guān)

26、鍵問題問題階段階段關(guān)鍵問題關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)結(jié)束標(biāo)準(zhǔn)問題定義與可行性研究 問題是什么?有可行解嗎?可行性研究報告需求分析軟件必須做什么?需求分析報告軟件概要/總體設(shè)計怎樣概括地解決該問題?概要設(shè)計報告詳細(xì)設(shè)計怎樣具體地解決該問題?詳細(xì)設(shè)計報告編碼如何編碼并最終實現(xiàn)該系統(tǒng)?源程序清單測試尋找軟件錯誤并使其符合要求?測試報告運行與維護(hù)用戶發(fā)現(xiàn)新問題?有新要求?如何解決新問題?滿足新要求?運行日志和維護(hù)記錄1.2.3 1.2.3 軟件生存周期軟件生存周期1.3 1.3 軟件工程研究的主要內(nèi)容軟件工程研究的主要內(nèi)容 軟件工程研究的主要內(nèi)容軟件工程研究的主要內(nèi)容-4-4個方面?zhèn)€方面規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)方法

27、和技術(shù)方法和技術(shù)工具和環(huán)境工具和環(huán)境過程與管理過程與管理1.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)(1)(1)軟件工程規(guī)范和標(biāo)準(zhǔn)軟件工程規(guī)范和標(biāo)準(zhǔn)所謂規(guī)范就是明文規(guī)定或約定俗成的標(biāo)準(zhǔn)。所謂規(guī)范就是明文規(guī)定或約定俗成的標(biāo)準(zhǔn)。軟件規(guī)范化就是使軟件工作與產(chǎn)品符合一定的標(biāo)準(zhǔn)。軟件規(guī)范化就是使軟件工作與產(chǎn)品符合一定的標(biāo)準(zhǔn)。軟件工程標(biāo)準(zhǔn)有很多類型。按照中國國家標(biāo)準(zhǔn)軟件工程標(biāo)準(zhǔn)有很多類型。按照中國國家標(biāo)準(zhǔn)GB/T GB/T 15538-199515538-1995軟件工程標(biāo)準(zhǔn)分類法軟件工程標(biāo)準(zhǔn)分類法,分類法由標(biāo)準(zhǔn)劃,分類法由標(biāo)準(zhǔn)劃分和軟件工程劃分以及這兩種劃分的表示關(guān)系所組成。分和軟件工程劃分以及這兩種劃

28、分的表示關(guān)系所組成。按標(biāo)準(zhǔn)劃分有過程、產(chǎn)品、行業(yè)、記號按標(biāo)準(zhǔn)劃分有過程、產(chǎn)品、行業(yè)、記號4 4大類型,標(biāo)準(zhǔn)大類型,標(biāo)準(zhǔn)劃分確定了標(biāo)準(zhǔn)的作用;按軟件工程劃分包括劃分確定了標(biāo)準(zhǔn)的作用;按軟件工程劃分包括2 2個部分,個部分,任務(wù)功能(產(chǎn)品工程、技術(shù)管理、確認(rèn)與驗證)和軟件任務(wù)功能(產(chǎn)品工程、技術(shù)管理、確認(rèn)與驗證)和軟件生存周期(概念、需求、設(shè)計、實現(xiàn)、測試、安裝驗收、生存周期(概念、需求、設(shè)計、實現(xiàn)、測試、安裝驗收、運行、引退等階段),軟件工程劃分確定了與標(biāo)準(zhǔn)有關(guān)運行、引退等階段),軟件工程劃分確定了與標(biāo)準(zhǔn)有關(guān)的軟件工程方面的特性。的軟件工程方面的特性。(2)(2)軟件工程標(biāo)準(zhǔn)的意義軟件工程標(biāo)準(zhǔn)的

29、意義必要性必要性在軟件的開發(fā)、測試與評價、運行、維護(hù)、管理等在軟件的開發(fā)、測試與評價、運行、維護(hù)、管理等一系列工作中,都要有一系列的約束和規(guī)定,都要一系列工作中,都要有一系列的約束和規(guī)定,都要求提供統(tǒng)一的行動規(guī)范和衡量準(zhǔn)則,使得各種工作求提供統(tǒng)一的行動規(guī)范和衡量準(zhǔn)則,使得各種工作都能有章可循。都能有章可循。標(biāo)準(zhǔn)化帶來的好處標(biāo)準(zhǔn)化帶來的好處提高軟件的質(zhì)量提高軟件的質(zhì)量提高軟件的生產(chǎn)率提高軟件的生產(chǎn)率提高軟件人員之間的通信效率,減少差錯和誤解提高軟件人員之間的通信效率,減少差錯和誤解有利于提高軟件管理水平有利于提高軟件管理水平有利于降低軟件的成本有利于降低軟件的成本有利于縮短軟件開發(fā)周期有利于縮短

30、軟件開發(fā)周期1.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)(3)(3)軟件工程標(biāo)準(zhǔn)的層次軟件工程標(biāo)準(zhǔn)的層次 根據(jù)軟件工程標(biāo)準(zhǔn)制定的機(jī)構(gòu)和標(biāo)準(zhǔn)適用的根據(jù)軟件工程標(biāo)準(zhǔn)制定的機(jī)構(gòu)和標(biāo)準(zhǔn)適用的范圍有所不同,它分為范圍有所不同,它分為5 5個個級別:級別:n國際標(biāo)準(zhǔn)國際標(biāo)準(zhǔn)n國家標(biāo)準(zhǔn)國家標(biāo)準(zhǔn)n行業(yè)標(biāo)準(zhǔn)行業(yè)標(biāo)準(zhǔn)n企業(yè)規(guī)范企業(yè)規(guī)范n項目規(guī)范項目規(guī)范1.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)n國際標(biāo)準(zhǔn):國際標(biāo)準(zhǔn):由國際聯(lián)合機(jī)構(gòu)制定和公布,提供各由國際聯(lián)合機(jī)構(gòu)制定和公布,提供各國參考的標(biāo)準(zhǔn)。國參考的標(biāo)準(zhǔn)。nISOISO(International Standards Organization)Internati

31、onal Standards Organization)國際國際化標(biāo)準(zhǔn)組織有著廣泛的代表性和權(quán)威性,所公布的標(biāo)化標(biāo)準(zhǔn)組織有著廣泛的代表性和權(quán)威性,所公布的標(biāo)準(zhǔn)也有較大的影響。該機(jī)構(gòu)的計算機(jī)與信息處理委員準(zhǔn)也有較大的影響。該機(jī)構(gòu)的計算機(jī)與信息處理委員會(會(ISO/TC97ISO/TC97)專門負(fù)責(zé)與計算機(jī)有關(guān)的標(biāo)準(zhǔn)化工作,)專門負(fù)責(zé)與計算機(jī)有關(guān)的標(biāo)準(zhǔn)化工作,所制定的標(biāo)準(zhǔn)冠有所制定的標(biāo)準(zhǔn)冠有ISOISO字樣,如字樣,如ISO 8631-ISO 8631-86Information Processing-program constructs and 86Information Processing

32、-program constructs and conventions for their representationconventions for their representation信息處理信息處理- -程序構(gòu)造與表示法的約定程序構(gòu)造與表示法的約定。1.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)n國家標(biāo)準(zhǔn):國家標(biāo)準(zhǔn):由政府或國家級的機(jī)構(gòu)制定或批準(zhǔn),適由政府或國家級的機(jī)構(gòu)制定或批準(zhǔn),適用于全國范圍的標(biāo)準(zhǔn)。用于全國范圍的標(biāo)準(zhǔn)。nGB GB 中華人民共和國技術(shù)監(jiān)督局是中國的最高標(biāo)準(zhǔn)化機(jī)構(gòu),中華人民共和國技術(shù)監(jiān)督局是中國的最高標(biāo)準(zhǔn)化機(jī)構(gòu),它所公布實施的標(biāo)準(zhǔn)簡稱為它所公布實施的標(biāo)準(zhǔn)簡稱為“國標(biāo)國

33、標(biāo)”。 nANSIANSI(American National Standards Institute)American National Standards Institute)美國民美國民間標(biāo)準(zhǔn)化組織機(jī)構(gòu),具有一定的權(quán)威性。間標(biāo)準(zhǔn)化組織機(jī)構(gòu),具有一定的權(quán)威性。 nFIPSFIPS(NBSNBS)()(Federal Information Processing Federal Information Processing Standards (National Bureau Standards)Standards (National Bureau Standards)美國商務(wù)部國美國商務(wù)部

34、國家標(biāo)準(zhǔn)局聯(lián)邦信息處理標(biāo)準(zhǔn)。它所公布的標(biāo)準(zhǔn)均冠有家標(biāo)準(zhǔn)局聯(lián)邦信息處理標(biāo)準(zhǔn)。它所公布的標(biāo)準(zhǔn)均冠有FIPSFIPS字樣,如字樣,如FIPS PUB 132-87FIPS PUB 132-87軟件確認(rèn)與驗證計劃指南。軟件確認(rèn)與驗證計劃指南。nBSBS(British StandardsBritish Standards)英國國家標(biāo)準(zhǔn)。)英國國家標(biāo)準(zhǔn)。nDINDIN(Deutsches Institut fur Normung)Deutsches Institut fur Normung)德國國家標(biāo)準(zhǔn)。德國國家標(biāo)準(zhǔn)。nJISJIS(Japanese Industrial Standards)Japan

35、ese Industrial Standards)日本工業(yè)標(biāo)準(zhǔn)。日本工業(yè)標(biāo)準(zhǔn)。1.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)n行業(yè)標(biāo)準(zhǔn):行業(yè)標(biāo)準(zhǔn):由行業(yè)機(jī)構(gòu)、學(xué)術(shù)團(tuán)體或國防機(jī)構(gòu)制定,由行業(yè)機(jī)構(gòu)、學(xué)術(shù)團(tuán)體或國防機(jī)構(gòu)制定,并適用于某個業(yè)務(wù)領(lǐng)域的標(biāo)準(zhǔn)。并適用于某個業(yè)務(wù)領(lǐng)域的標(biāo)準(zhǔn)。nIEEEIEEE(Institute Electrical and Electronic Institute Electrical and Electronic EngineersEngineers)美國電氣與電子工程師學(xué)會。例如)美國電氣與電子工程師學(xué)會。例如ANSI/IEEE Str 828-1983(ANSI/IEEE

36、 Str 828-1983(軟件配置管理計劃標(biāo)準(zhǔn))。軟件配置管理計劃標(biāo)準(zhǔn))。nGJBGJB中國國家軍用標(biāo)準(zhǔn),國防科學(xué)技術(shù)工業(yè)委員會批準(zhǔn)。中國國家軍用標(biāo)準(zhǔn),國防科學(xué)技術(shù)工業(yè)委員會批準(zhǔn)。例如例如GJB 437/438-88GJB 437/438-88(軍用軟件開發(fā)(軍用軟件開發(fā)/ /文檔編制規(guī)范)。文檔編制規(guī)范)。nDOD-STDDOD-STD(Department Of Defense-STanDards)Department Of Defense-STanDards)美國國防美國國防部標(biāo)準(zhǔn),適用于美國國防部。部標(biāo)準(zhǔn),適用于美國國防部。nMIL-SMIL-S(MILitary-StandarsM

37、ILitary-Standars)美國軍用標(biāo)準(zhǔn))美國軍用標(biāo)準(zhǔn), ,適用于美軍適用于美軍內(nèi)部。內(nèi)部。n其他其他 其他行業(yè)制定的適于本部門工作需要的規(guī)范。其他行業(yè)制定的適于本部門工作需要的規(guī)范。1.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)n企業(yè)規(guī)范企業(yè)規(guī)范n一些大型企業(yè)或公司,由于軟件工程的需要,制定適一些大型企業(yè)或公司,由于軟件工程的需要,制定適用于本部門的規(guī)范。例如,用于本部門的規(guī)范。例如,IBM公司通用產(chǎn)品部公司通用產(chǎn)品部1984年制定的年制定的軟件程序設(shè)計開發(fā)指南軟件程序設(shè)計開發(fā)指南。n項目規(guī)范項目規(guī)范n由某一科研生產(chǎn)項目組織制定,且為該項目專用的軟由某一科研生產(chǎn)項目組織制定,且為該項目專

38、用的軟件工程規(guī)范。例如,件工程規(guī)范。例如,CIMS的軟件工程規(guī)范。的軟件工程規(guī)范。1.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)(3)(3)例子例子 計算機(jī)軟件工程規(guī)范國家標(biāo)準(zhǔn)計算機(jī)軟件工程規(guī)范國家標(biāo)準(zhǔn)GB2000GB2000匯編匯編標(biāo)準(zhǔn)名稱(1)編號信息處理-數(shù)據(jù)流程圖、程序流程圖、系統(tǒng)流程圖、程序網(wǎng)絡(luò)圖和系統(tǒng)資源圖的文件編制符號及約定GB/T1526-1989信息技術(shù)-軟件生存周過程GB/T8566-1995計算機(jī)軟件產(chǎn)品開發(fā)文件編制指南GB/T8567-1988計算機(jī)軟件需求說明編制指南GB/T9385-1988計算機(jī)軟件測試文件編制規(guī)范GB/T9386-1988軟件工程術(shù)語GB/T114

39、57-1995計算機(jī)軟件質(zhì)量保證計劃規(guī)范GB/T12504-19901.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)(4)例子 計算機(jī)軟件工程規(guī)范國家標(biāo)準(zhǔn)計算機(jī)軟件工程規(guī)范國家標(biāo)準(zhǔn)GB2000GB2000匯編匯編標(biāo)準(zhǔn)名稱(2)編號計算機(jī)軟件配置管理計劃規(guī)范GB/T12505-1990工業(yè)控制用軟件評定準(zhǔn)則GB/T13423-1992信息處理-程序構(gòu)造及其表示的約定GB/T13502-1992計算機(jī)軟件分類與代碼GB/T13702-1992軟件維護(hù)指南GB/T14079-1992信息處理系統(tǒng)-計算機(jī)系統(tǒng)配置圖符號及約定GB/T14085-1993計算機(jī)軟件可靠性和可維護(hù)性管理GB/T14394-19

40、93DOS中文信息處理系統(tǒng)接口規(guī)范GB/T15189-19941.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)標(biāo)準(zhǔn)名稱(3)編號計算機(jī)軟件單元測試GB/T15532-1995信息處理-單命中判定表規(guī)范GB/T15535-1995軟件工程標(biāo)準(zhǔn)分類法GB/T15538-1995信息處理-按記錄組處理順序文卷的程序流程GB/T15679-1995軟件支持環(huán)境GB/T15853-1995信息技術(shù) 軟件產(chǎn)品評價 質(zhì)量特性及其使用指南GB/T16260-1996軟件文檔管理指南GB/T16680-1996信息技術(shù) 軟件包 產(chǎn)品要求和測試GB/T17544-19981.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)

41、例如,例如,GB/T8567-1988GB/T8567-1988計算機(jī)軟件產(chǎn)品開發(fā)文件編制指南計算機(jī)軟件產(chǎn)品開發(fā)文件編制指南這份指導(dǎo)性文件建議:在一項計算機(jī)軟件的開發(fā)過程中,這份指導(dǎo)性文件建議:在一項計算機(jī)軟件的開發(fā)過程中,一般地說,應(yīng)該產(chǎn)生一般地說,應(yīng)該產(chǎn)生1414種文件。這些文件是:種文件。這些文件是: 可行性研究報告可行性研究報告 項目開發(fā)計劃項目開發(fā)計劃 軟件需求說明書軟件需求說明書 數(shù)據(jù)要求說明數(shù)據(jù)要求說明 概要設(shè)計說明書概要設(shè)計說明書 詳細(xì)設(shè)計說明書詳細(xì)設(shè)計說明書 數(shù)據(jù)庫設(shè)計說明書數(shù)據(jù)庫設(shè)計說明書 用戶手冊用戶手冊 操作手冊操作手冊 模塊開發(fā)卷宗模塊開發(fā)卷宗 測試計劃測試計劃 測試

42、分析報告測試分析報告 開發(fā)進(jìn)度月報開發(fā)進(jìn)度月報 項目開發(fā)總結(jié)報告項目開發(fā)總結(jié)報告1.3.1 1.3.1 規(guī)范和標(biāo)準(zhǔn)規(guī)范和標(biāo)準(zhǔn)1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)n軟件方法軟件方法軟件方法體現(xiàn)了軟件開發(fā)人員看待系統(tǒng)的立軟件方法體現(xiàn)了軟件開發(fā)人員看待系統(tǒng)的立場和觀點,它確定開發(fā)的各個階段,規(guī)定每場和觀點,它確定開發(fā)的各個階段,規(guī)定每個階段的活動、產(chǎn)品、驗證步驟和完成準(zhǔn)則。個階段的活動、產(chǎn)品、驗證步驟和完成準(zhǔn)則。n軟件技術(shù)軟件技術(shù)軟件技術(shù)則是方法的具體實現(xiàn),由若干步驟軟件技術(shù)則是方法的具體實現(xiàn),由若干步驟組成,突出組成,突出“如何做如何做”。有時也不加區(qū)別稱。有時也不加區(qū)別稱技術(shù)方法。技術(shù)方

43、法。n軟件方法與技術(shù)幾乎在軟件的整個生命期軟件方法與技術(shù)幾乎在軟件的整個生命期中都有不同程度的運用。中都有不同程度的運用。n軟件方法與技術(shù)的例子面向數(shù)據(jù)流的方法結(jié)構(gòu)化方法(SA-SD-SP) SA,1970s,E.Yourdon/T.Demarco;SD,W.Stevens/G.Myers/L.Constantine;SP,E.Dijkstra,N.Wirth等面向數(shù)據(jù)結(jié)構(gòu)的方法Jackson(M.A. Jackson)LCP (J.D. Warnier)面向功能的方法HIPO(IBM)面向?qū)ο蟮姆椒–oad/Yourdon(P.Coad/E.Yourdon)OMT(J.Rumbaugh)Bo

44、och(G.Booch)OOSE(I.Jacobson)UML (統(tǒng)一建模語言)形式化方法VDM(C.B. Jones)Z語言(J.M. Spivey)1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)輸出輸入n面向數(shù)據(jù)流的方法面向數(shù)據(jù)流的方法結(jié)構(gòu)化方法(結(jié)構(gòu)化方法(SA-SD-SP)用抽象模型的概念,按照軟件用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到自頂向下逐層分解,直到找到滿足功能需要的所有可實現(xiàn)的滿足功能需要的所有可實現(xiàn)的軟件為止。軟件為止。主要的手段是抽象與分解,表主要的手段是抽象與分解,表現(xiàn)形式是數(shù)據(jù)流圖現(xiàn)形式是數(shù)據(jù)流圖DFD、

45、數(shù)據(jù)、數(shù)據(jù)字典和加工說明;結(jié)構(gòu)圖;程字典和加工說明;結(jié)構(gòu)圖;程序流程圖、序流程圖、NS圖、圖、PAD圖或圖或偽碼。偽碼。變換軟件模型軟件模型XX系統(tǒng)輸出變換輸入1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)n面向數(shù)據(jù)結(jié)構(gòu)的方法面向數(shù)據(jù)結(jié)構(gòu)的方法Jackson 和和LCP的主要思想的主要思想把程序看成數(shù)據(jù);把數(shù)據(jù)解釋成程序把程序看成數(shù)據(jù);把數(shù)據(jù)解釋成程序數(shù)據(jù)結(jié)構(gòu)對于處理信息的算法和功效都有影響數(shù)據(jù)結(jié)構(gòu)對于處理信息的算法和功效都有影響許多應(yīng)用領(lǐng)域存在明確的層次的信息結(jié)構(gòu)許多應(yīng)用領(lǐng)域存在明確的層次的信息結(jié)構(gòu)信息結(jié)構(gòu)出色地揭示了軟件結(jié)構(gòu),選擇、重復(fù)和層信息結(jié)構(gòu)出色地揭示了軟件結(jié)構(gòu),選擇、重復(fù)和層次的數(shù)據(jù)

46、結(jié)構(gòu)與軟件結(jié)構(gòu)有對應(yīng)關(guān)系次的數(shù)據(jù)結(jié)構(gòu)與軟件結(jié)構(gòu)有對應(yīng)關(guān)系主張:對于一個以計算機(jī)為基礎(chǔ)的系統(tǒng)來說,主張:對于一個以計算機(jī)為基礎(chǔ)的系統(tǒng)來說,內(nèi)在的數(shù)據(jù)結(jié)構(gòu)的標(biāo)識是至關(guān)重要的,可以利內(nèi)在的數(shù)據(jù)結(jié)構(gòu)的標(biāo)識是至關(guān)重要的,可以利用輸入輸出數(shù)據(jù)結(jié)構(gòu)來推導(dǎo)程序的結(jié)構(gòu)及其細(xì)用輸入輸出數(shù)據(jù)結(jié)構(gòu)來推導(dǎo)程序的結(jié)構(gòu)及其細(xì)節(jié)。節(jié)。1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)面向數(shù)據(jù)結(jié)構(gòu)的方法的面向數(shù)據(jù)結(jié)構(gòu)的方法的基本步驟基本步驟評價數(shù)據(jù)結(jié)構(gòu)的特性;評價數(shù)據(jù)結(jié)構(gòu)的特性;把數(shù)據(jù)依次表示成如順把數(shù)據(jù)依次表示成如順序、選擇和重復(fù)的基本序、選擇和重復(fù)的基本形式;形式;數(shù)據(jù)結(jié)構(gòu)映射成軟件的數(shù)據(jù)結(jié)構(gòu)映射成軟件的控制層次;控制層次;利用

47、方法中的指導(dǎo)原則利用方法中的指導(dǎo)原則來細(xì)化軟件層次;來細(xì)化軟件層次;最終開發(fā)軟件的過程性最終開發(fā)軟件的過程性描述。描述。Problem environmentData structureTask to be performedReading and writingProgram structureExecution operationProgramJackson方法步驟1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)n面向功能的方法面向功能的方法HIPO(1974,IBM)的主要思的主要思想想自頂向下,逐層分解自頂向下,逐層分解以功能、功能完備性準(zhǔn)則進(jìn)以功能、功能完備性準(zhǔn)則進(jìn)行分解行分解著眼點在于

48、分析著眼點在于分析表現(xiàn)方式表現(xiàn)方式直觀目錄表(直觀目錄表(H圖):功能圖):功能層次圖。層次圖。概要概要IPO圖:與圖:與H圖中的一圖中的一個功能相對應(yīng)。個功能相對應(yīng)。詳細(xì)詳細(xì)IPO圖:進(jìn)一步指明圖:進(jìn)一步指明“I-P-O”之間的關(guān)系。之間的關(guān)系。XX系統(tǒng)1.31.21.11.1.11.1.21.11.1.1記錄銷售明細(xì)1.1.2更新庫存銷售明細(xì)庫存文件銷售明細(xì)庫存文件I P O圖H圖1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)n面向?qū)ο蟮姆椒嫦驅(qū)ο蟮姆椒∣O(Object-Oriented)主要的觀點主要的觀點以對象(以對象(Object)為中心。任何事物都是對象,客觀世為中心。任何事物都

49、是對象,客觀世界是由各種對象組成的,復(fù)雜的對象由簡單的對象組界是由各種對象組成的,復(fù)雜的對象由簡單的對象組成,整體由部分組成。成,整體由部分組成。對象可以分類對象可以分類(Class):子類(派生類)和父類(基:子類(派生類)和父類(基類)。每個類或?qū)ο蠖级x(封裝)了一組數(shù)據(jù)和方類)。每個類或?qū)ο蠖级x(封裝)了一組數(shù)據(jù)和方法,數(shù)據(jù)用于表示對象的靜態(tài)屬性,描述對象的狀態(tài)法,數(shù)據(jù)用于表示對象的靜態(tài)屬性,描述對象的狀態(tài)信息;方法是對象所能執(zhí)行的操作即類中所能提供的信息;方法是對象所能執(zhí)行的操作即類中所能提供的服務(wù)。子類可以繼承(服務(wù)。子類可以繼承(Inheritance)父類的屬性和方父類的屬性

50、和方法。法。1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)n面向?qū)ο蟮姆椒嫦驅(qū)ο蟮姆椒∣O主要的觀點主要的觀點對象之間通過傳遞消息進(jìn)行對象之間通過傳遞消息進(jìn)行通信通信(Communication with Messages)OO=Objects+Classes+Inheritance+Communication with MessagesOO方法已經(jīng)形成了方法已經(jīng)形成了OOA-OOD-OOP一個完整過程,并一個完整過程,并可通過多次迭代而成,企圖可通過多次迭代而成,企圖使問題空間與解空間在結(jié)構(gòu)使問題空間與解空間在結(jié)構(gòu)上保持一致。上保持一致。類或?qū)ο竺麑傩苑椒ㄒ粋€封裝了的類或?qū)ο髨D一個封裝了的類

51、或?qū)ο髨D1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)n形式化方法形式化方法一個形式化的軟件開發(fā)方法要向使用者提供一一個形式化的軟件開發(fā)方法要向使用者提供一套思維方法和描述、開發(fā)手段,如規(guī)范的原則、套思維方法和描述、開發(fā)手段,如規(guī)范的原則、程序開發(fā)的一般過程、描述語言等,使開發(fā)者程序開發(fā)的一般過程、描述語言等,使開發(fā)者能利用數(shù)學(xué)概念和表示方法恰當(dāng)合理地構(gòu)造形能利用數(shù)學(xué)概念和表示方法恰當(dāng)合理地構(gòu)造形式規(guī)范,根據(jù)開發(fā)過程的框架及設(shè)計原則進(jìn)行式規(guī)范,根據(jù)開發(fā)過程的框架及設(shè)計原則進(jìn)行規(guī)范描述和系統(tǒng)化的設(shè)計,并使用證明的概念規(guī)范描述和系統(tǒng)化的設(shè)計,并使用證明的概念對規(guī)范的性質(zhì)和設(shè)計步驟進(jìn)行分析和驗證。方對

52、規(guī)范的性質(zhì)和設(shè)計步驟進(jìn)行分析和驗證。方法還應(yīng)輔以工具支持環(huán)境,使開發(fā)過程可行而法還應(yīng)輔以工具支持環(huán)境,使開發(fā)過程可行而且高效。且高效。1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)n形式化方法的例子形式化方法的例子VDM(Vienaa Development Method,IBM 1973 創(chuàng)建。創(chuàng)建。主要貢獻(xiàn)者:主要貢獻(xiàn)者:D.BjrnerD.Bjrner、C.B. JonesC.B. Jones等等) )是一種是一種基于形式語義的形式化開發(fā)方法,其元語言基于形式語義的形式化開發(fā)方法,其元語言Meta-Meta-是建是建立于指稱語義基礎(chǔ)上的規(guī)范描述語言。立于指稱語義基礎(chǔ)上的規(guī)范描述語言。RAI

53、SE(Rigorous Approach to Industrial Software Engineering)的形式化方法的幾個主要階段:的形式化方法的幾個主要階段:形式化分析:根據(jù)用戶需求得到最初的規(guī)格說明,用形式化分析:根據(jù)用戶需求得到最初的規(guī)格說明,用RSLRSL( RAISE Specication Language)RAISE Specication Language)描述。描述。形式化設(shè)計:從最初的規(guī)格說明逐步演變到最終的規(guī)形式化設(shè)計:從最初的規(guī)格說明逐步演變到最終的規(guī)格說明。每經(jīng)過一步規(guī)格說明都會更為具體,但與最格說明。每經(jīng)過一步規(guī)格說明都會更為具體,但與最初的規(guī)格說明保持一致

54、。初的規(guī)格說明保持一致。翻譯:將最終的規(guī)格說明轉(zhuǎn)換為計算機(jī)上可執(zhí)行的程翻譯:將最終的規(guī)格說明轉(zhuǎn)換為計算機(jī)上可執(zhí)行的程序。序。RAISERAISE中可翻譯為中可翻譯為Ada/C+Ada/C+程序。程序。1.3.2 1.3.2 方法和技術(shù)方法和技術(shù)1.3.3 1.3.3 工具和環(huán)境工具和環(huán)境n軟件工具軟件工具軟件工具是指這樣一類程序,它可以用來幫助軟件工具是指這樣一類程序,它可以用來幫助軟件項目開發(fā)過程中某些階段或某個環(huán)節(jié)實現(xiàn)軟件項目開發(fā)過程中某些階段或某個環(huán)節(jié)實現(xiàn)軟件過程自動化,從而提高軟件的勞動生產(chǎn)率軟件過程自動化,從而提高軟件的勞動生產(chǎn)率和質(zhì)量、縮短軟件開發(fā)周期、降低軟件生產(chǎn)成和質(zhì)量、縮短軟

55、件開發(fā)周期、降低軟件生產(chǎn)成本。有時,人們稱其為本。有時,人們稱其為“幫助開發(fā)軟件的軟幫助開發(fā)軟件的軟件件”。按其功能大致可分為:需求分析工具、設(shè)計工按其功能大致可分為:需求分析工具、設(shè)計工具、實現(xiàn)工具、測試工具、維護(hù)工具、項目管具、實現(xiàn)工具、測試工具、維護(hù)工具、項目管理工具、配置管理工具等。理工具、配置管理工具等。 (1 1)需求分析工具)需求分析工具用以輔助系統(tǒng)分析員生成完整、正確、一致用以輔助系統(tǒng)分析員生成完整、正確、一致的需求說明,改善軟件開發(fā)人員之間的通信的需求說明,改善軟件開發(fā)人員之間的通信狀況。狀況。例如,具有代表性的有例如,具有代表性的有19771977年美國密執(zhí)安大學(xué)研制的年美

56、國密執(zhí)安大學(xué)研制的ISDOSISDOS(Information System Design and Information System Design and Optimization SystemOptimization System)中用于需求分析的工具)中用于需求分析的工具PSL/PSAPSL/PSA(Problem Statement Language/Problem Problem Statement Language/Problem Statement AnalyzerStatement Analyzer)。)。1.3.3 1.3.3 工具和環(huán)境工具和環(huán)境又如,美國又如,美國TRW

57、TRW公司研制的公司研制的SREM SREM (Software Software Requirements Engineering Methodology)Requirements Engineering Methodology)中的中的R S L / R E V SR S L / R E V S ( R e q u i r e m e n t s S t a t e m e n t R e q u i r e m e n t s S t a t e m e n t Language/Requirements Engineering and Language/Requirements Eng

58、ineering and Validation SystemValidation System)。)。又如,又如,SybaseSybase公司生產(chǎn)的公司生產(chǎn)的S-Designor ProcessAnlystS-Designor ProcessAnlyst可以輔助分析人員利用面向數(shù)據(jù)流的方法如可以輔助分析人員利用面向數(shù)據(jù)流的方法如Gane & Gane & SarsonSarson、Yourdon/DeMarcoYourdon/DeMarco、SSADM (Structured SSADM (Structured System Analysis and Design Method

59、ology) System Analysis and Design Methodology) 、 以以及及OMTOMT(一種(一種object-oriented methodobject-oriented method)中的)中的functional modelfunctional model。它可以生成。它可以生成RTFRTF格式的文檔。格式的文檔。1.3.3 1.3.3 工具和環(huán)境工具和環(huán)境(2 2)設(shè)計工具)設(shè)計工具用來進(jìn)行系統(tǒng)設(shè)計,形成設(shè)計規(guī)格說明,檢查用來進(jìn)行系統(tǒng)設(shè)計,形成設(shè)計規(guī)格說明,檢查并排除規(guī)格說明中的錯誤。并排除規(guī)格說明中的錯誤。如美國如美國HughesHughes飛機(jī)公司飛

60、機(jī)公司8080年代初開發(fā)的年代初開發(fā)的AIDESAIDES(Automated Interactive Design and Evaluation Automated Interactive Design and Evaluation SystemSystem)系統(tǒng),它可以輔助設(shè)計人員用結(jié)構(gòu)化設(shè)計方)系統(tǒng),它可以輔助設(shè)計人員用結(jié)構(gòu)化設(shè)計方法以交互方式對軟件系統(tǒng)作模塊分解,從而得到系統(tǒng)法以交互方式對軟件系統(tǒng)作模塊分解,從而得到系統(tǒng)的結(jié)構(gòu)圖及相應(yīng)的設(shè)計文檔和報告,并可對設(shè)計質(zhì)量的結(jié)構(gòu)圖及相應(yīng)的設(shè)計文檔和報告,并可對設(shè)計質(zhì)量作定量分析和評價。作定量分析和評價。1.3.3 1.3.3 工具和環(huán)境工具和環(huán)境又如,日立公

溫馨提示

  • 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

提交評論