




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、重慶大學計算機學院重慶大學計算機學院曾一曾一 email:Telo)第1講 軟件工程概述 1.1 1.1 軟件危機與軟件工程的產生軟件危機與軟件工程的產生 1.2 1.2 軟件工程的基本概念軟件工程的基本概念 1.3 1.3 軟件工程研究的主要內容軟件工程研究的主要內容 1.4 1.4 軟件開發模型軟件開發模型1.1 1.1 軟件危機與軟件工程的產生軟件危機與軟件工程的產生n1.1.1 1.1.1 軟件與軟件的特點軟件與軟件的特點n軟件的定義:軟件的定義:n軟件是能夠完成預定功能和性能的可執行的軟件是能夠完成預定功能和性能的可執行的計算機計算機程序程序和使程序正常執
2、行所需要的和使程序正常執行所需要的數據數據,加上描述程序的操作和使用的加上描述程序的操作和使用的文檔文檔。n簡略地說:簡略地說:軟件程序文檔軟件程序文檔 程序程序 程序按事先設計的功能和性能要求執行的指程序按事先設計的功能和性能要求執行的指令序列。令序列。 數據數據 數據是使程序能正常操縱信息的數據結構。數據是使程序能正常操縱信息的數據結構。文檔文檔 文檔是與程序開發、維護和使用有關的圖文文檔是與程序開發、維護和使用有關的圖文資料。資料。1.1.1 1.1.1 軟件與軟件的特點軟件與軟件的特點n軟件的特點軟件的特點n軟件是一種邏輯實體,而不是具體的物理實體,它軟件是一種邏輯實體,而不是具體的物
3、理實體,它具有抽象性具有抽象性n軟件是軟件是“開發開發”出來的,不是出來的,不是“制造制造”出來的出來的n軟件維護不同于硬件維修(參看硬件和軟件失效率軟件維護不同于硬件維修(參看硬件和軟件失效率的對比圖)的對比圖)n軟件的開發和運行常常受到計算機系統的限制,對軟件的開發和運行常常受到計算機系統的限制,對計算機系統有著不同程度的依賴性計算機系統有著不同程度的依賴性n軟件的開發效率仍相當低,至今尚未完全擺脫手工軟件的開發效率仍相當低,至今尚未完全擺脫手工作坊式的開發方式作坊式的開發方式n軟件本身是復雜的,相當多的軟件工作還涉及到社軟件本身是復雜的,相當多的軟件工作還涉及到社會因素。會因素。1.1.
4、1 1.1.1 軟件與軟件的特點軟件與軟件的特點硬件和軟件失效率的對比:硬件和軟件失效率的對比:1.1.21.1.2軟件的三個發展階段軟件的三個發展階段第第1 1個階段個階段:程序時期(約為:程序時期(約為2020世紀世紀5050至至6060年代)年代) 硬件已經通用化,而程序卻是個體化的。程序硬件已經通用化,而程序卻是個體化的。程序的編寫者和使用者往往是同一個人,程序規模小,的編寫者和使用者往往是同一個人,程序規模小,每一個程序都是為求解某一個問題而專門設計的,每一個程序都是為求解某一個問題而專門設計的,幾乎沒有什么系統的方法可遵循,程序設計常常是幾乎沒有什么系統的方法可遵循,程序設計常常是
5、設計者頭腦中進行的隱含過程,除了程序清單,基設計者頭腦中進行的隱含過程,除了程序清單,基本沒有設計文檔資料,其生產方式完全是本沒有設計文檔資料,其生產方式完全是“個體手個體手工方式工方式”,人們只有程序的概念而沒有軟件的概念。,人們只有程序的概念而沒有軟件的概念。 第第2 2個階段個階段:程序程序+ +說明時期說明時期(約為約為2020世紀世紀6060至至7070年年代代)軟件技術取得了很大的進展,如多道程序設計、軟件技術取得了很大的進展,如多道程序設計、多用戶人機交互、文件管理、多種高級語言的出現、多用戶人機交互、文件管理、多種高級語言的出現、形式語言理論、編譯技術的突破等,給計算機的廣形式
6、語言理論、編譯技術的突破等,給計算機的廣泛應用奠定了基礎。但是,軟件應用的需求變多,泛應用奠定了基礎。但是,軟件應用的需求變多,規模變大,復雜程度變高,使得規模變大,復雜程度變高,使得“個體生產方式個體生產方式”已經不能適應生產要求,而是需要多人分工合作共已經不能適應生產要求,而是需要多人分工合作共同編制程序,形成了所謂的同編制程序,形成了所謂的“作坊式生產方式作坊式生產方式”,這種方式造成了開發約定不清晰、程序說明不完整,這種方式造成了開發約定不清晰、程序說明不完整,導致了軟件質量不高、成本失控、生產效率過低、導致了軟件質量不高、成本失控、生產效率過低、工期延誤,后期難于維護,甚至一個軟件項
7、目在開工期延誤,后期難于維護,甚至一個軟件項目在開發過程中途夭折等,最終導致發過程中途夭折等,最終導致“軟件危機軟件危機”的開始。的開始。 1.1.21.1.2軟件的三個發展階段軟件的三個發展階段軟件危機軟件危機 指指不斷增加的為大系統制造可靠軟件的困難不斷增加的為大系統制造可靠軟件的困難度。度。軟件系統的規模和復雜性不斷增長,對軟件軟件系統的規模和復雜性不斷增長,對軟件的需求增長超過了供應(開發、演化和維護)能的需求增長超過了供應(開發、演化和維護)能力。軟件開發人員極度短缺、開發效率和軟件質力。軟件開發人員極度短缺、開發效率和軟件質量不能滿足用戶的需求,最終延緩經濟和社會的量不能滿足用戶的
8、需求,最終延緩經濟和社會的發展。發展。1.1.21.1.2軟件的三個發展階段軟件的三個發展階段第第3 3個階段:個階段:軟件工程時期軟件工程時期( (約為約為2020世紀世紀7070年代以后年代以后) )為了擺脫軟件危機這一困境,北大西洋公約組織為了擺脫軟件危機這一困境,北大西洋公約組織NATO (North Atlantic Treaty Organization ) 于于19681968年召開軟件研討會(年召開軟件研討會(Conference on Software Engineering),并首次提出),并首次提出“軟件工程軟件工程”這個術這個術語,從此誕生了軟件工程這個新興學科。從語,
9、從此誕生了軟件工程這個新興學科。從7070年代年代初開始,軟件工作者主要圍繞軟件過程和開發模型、初開始,軟件工作者主要圍繞軟件過程和開發模型、開發方法和技術、開發工具和環境,開發規范和標開發方法和技術、開發工具和環境,開發規范和標準以及軟件管理等各個方面的研究和實踐,使準以及軟件管理等各個方面的研究和實踐,使“作作坊式生產方式坊式生產方式”,逐步過渡到,逐步過渡到“軟件工廠式的生產軟件工廠式的生產方式方式”,軟件的生產步入了系列化、產品化、工程,軟件的生產步入了系列化、產品化、工程化和標準化的進程。化和標準化的進程。 1.1.21.1.2軟件的三個發展階段軟件的三個發展階段1.2 1.2 軟件
10、工程的基本概念軟件工程的基本概念1.2.1 1.2.1 軟件工程軟件工程n軟件工程軟件工程n是指導軟件開發和維護的工程類學科,它以計是指導軟件開發和維護的工程類學科,它以計算機科學理論及其他相關學科的理論為指導,算機科學理論及其他相關學科的理論為指導,采用工程化的概念、原理、方法和技術,進行采用工程化的概念、原理、方法和技術,進行軟件的開發和維護,并與經過時間證明正確的軟件的開發和維護,并與經過時間證明正確的管理方法與措施相結合,以較少的代價獲取高管理方法與措施相結合,以較少的代價獲取高質量的軟件。質量的軟件。 軟件工程軟件工程是軟件工程是對需求、計算機技術、人員及是軟件工程是對需求、計算機技
11、術、人員及其技能、時間、成本和其它資源的管理,并其技能、時間、成本和其它資源的管理,并籍此在一個滿足開發者需求的過程中形成一籍此在一個滿足開發者需求的過程中形成一個滿足客戶需求的軟件產品。個滿足客戶需求的軟件產品。 軟件工程軟件工程( (The IEEE Computer Society)是是(1) (1) 將系統化的、規范的、可度量的方法將系統化的、規范的、可度量的方法應用于軟件的開發、運行和維護的過程,即應用于軟件的開發、運行和維護的過程,即將工程化應用于軟件中。將工程化應用于軟件中。(2) (2) 對對(1)(1)中所述方中所述方法的研究法的研究。1.2.1 1.2.1 軟件工程軟件工程
12、簡單地說,目標簡單地說,目標是能夠成功地完成軟件開發項是能夠成功地完成軟件開發項目。而一個成功的項目目標是生產一個可接受目。而一個成功的項目目標是生產一個可接受的產品的產品。 總的來說,目標總的來說,目標是是應用計算機科學、數學及管應用計算機科學、數學及管理科學等原理,借鑒傳統工程的原則和方法創理科學等原理,借鑒傳統工程的原則和方法創建軟件,以達到改善生產效率、提高質量、降建軟件,以達到改善生產效率、提高質量、降低成本的目的。低成本的目的。 1.2.2 1.2.2 軟件工程的目標軟件工程的目標n軟件生存周期軟件生存周期SLC(Software Life Cycle)一個軟件產品通常是從模糊的概
13、念開始,逐一個軟件產品通常是從模糊的概念開始,逐步建立起產品的需求,并對需求進行說明,步建立起產品的需求,并對需求進行說明,然后進行設計、實現和測試。如果客戶是滿然后進行設計、實現和測試。如果客戶是滿意的,那么就可安裝產品,并且開始運行和意的,那么就可安裝產品,并且開始運行和維護它。如果產品到達了其有用生命的盡頭維護它。如果產品到達了其有用生命的盡頭就會退役、報廢或停止使用。這一系列過程,就會退役、報廢或停止使用。這一系列過程,我們稱為軟件的生命周期。我們稱為軟件的生命周期。 1.2.3 1.2.3 軟件生存周期軟件生存周期n軟件生存周期的各個階段軟件生存周期的各個階段從軟件跨越的整個生命周期
14、所實施的過程、活從軟件跨越的整個生命周期所實施的過程、活動和任務來劃分,軟件的生命周期可以歸結為動和任務來劃分,軟件的生命周期可以歸結為以下幾個主要階段:軟件計劃、需求分析、軟以下幾個主要階段:軟件計劃、需求分析、軟件設計、編碼、測試、維護與運行、退役等。件設計、編碼、測試、維護與運行、退役等。這些階段互相區別而又有聯系。這些階段互相區別而又有聯系。實際上,每個軟件的生命周期有所不同,如有實際上,每個軟件的生命周期有所不同,如有的軟件可能在需求階段花費幾年的時間,有的的軟件可能在需求階段花費幾年的時間,有的軟件在設計和實現階段只需幾個月時間,有的軟件在設計和實現階段只需幾個月時間,有的軟件則在
15、維護階段可能長達十幾年。軟件則在維護階段可能長達十幾年。 1.2.3 1.2.3 軟件生存周期軟件生存周期第一個階段:軟件計劃(第一個階段:軟件計劃(PlanningPlanning) 確定要解決的確定要解決的“問題是什么問題是什么”及及“解決問題的解決問題的可行方案可行方案”即確定要開發軟件系統的總目標,給出它的功即確定要開發軟件系統的總目標,給出它的功能、性能、可靠性以及接口等方面的概要性要能、性能、可靠性以及接口等方面的概要性要求;從技術方面、經濟方面、法律方面探討解求;從技術方面、經濟方面、法律方面探討解決問題的可能方案,對可利用的資源(如計算決問題的可能方案,對可利用的資源(如計算機
16、硬件、軟件、人力等)、成本、可取得的經機硬件、軟件、人力等)、成本、可取得的經濟效益、開發的進度做出估計,制定出完成開濟效益、開發的進度做出估計,制定出完成開發任務的實施計劃等,提交管理機構評審。發任務的實施計劃等,提交管理機構評審。 1.2.3 1.2.3 軟件生存周期軟件生存周期第二個階段:需求分析和規格說明(第二個階段:需求分析和規格說明(Requirement Requirement Analysis and SpecificationAnalysis and Specification) 確定目標系統要確定目標系統要“做什么做什么”。即對軟件計劃階段的要求進一步細化和求精,即對軟件計
17、劃階段的要求進一步細化和求精,加強并集中軟件的需求分析和規格說明,強調加強并集中軟件的需求分析和規格說明,強調軟件分析人員與用戶、軟件分析人員與軟件開軟件分析人員與用戶、軟件分析人員與軟件開發人員的交互,充分理解軟件的作用域、所需發人員的交互,充分理解軟件的作用域、所需功能、性能及接口、安全與保密、人機工程與功能、性能及接口、安全與保密、人機工程與人機界面、數據定義及數據庫、安裝及驗收等人機界面、數據定義及數據庫、安裝及驗收等需求,落實用戶所需文檔、用戶操作和運行需需求,落實用戶所需文檔、用戶操作和運行需求、用戶維護需求,然后寫出軟件需求規格說求、用戶維護需求,然后寫出軟件需求規格說明書,提交
18、管理機構評審。明書,提交管理機構評審。 1.2.3 1.2.3 軟件生存周期軟件生存周期第三個階段:第三個階段:設計(設計(Software DesignSoftware Design)確定目標系統要確定目標系統要“怎么做怎么做”。軟件設計是將需求轉換成為軟件的表示,包括軟件設計是將需求轉換成為軟件的表示,包括數據結構、軟件結構、接口表示和過程細節。數據結構、軟件結構、接口表示和過程細節。通常將前三者劃為軟件的通常將前三者劃為軟件的初步(概要)設計初步(概要)設計,后者則歸為軟件的后者則歸為軟件的詳細設計詳細設計。例如,可將需求。例如,可將需求轉化為層次化的軟件模塊結構、模塊所用的數轉化為層次
19、化的軟件模塊結構、模塊所用的數據結構或數據庫文件表示、模塊之間接口描述、據結構或數據庫文件表示、模塊之間接口描述、模塊應完成的功能等,以及每個模塊完成相應模塊應完成的功能等,以及每個模塊完成相應功能的過程細節如局部變量、內部數據結構、功能的過程細節如局部變量、內部數據結構、算法等。這些軟件表示應該按照規定的標準形算法等。這些軟件表示應該按照規定的標準形式加以描述,形成軟件設計規格說明書,提交式加以描述,形成軟件設計規格說明書,提交管理機構評審。管理機構評審。 1.2.3 1.2.3 軟件生存周期軟件生存周期第四個階段:第四個階段:編碼(編碼(CodingCoding)編碼體現了目標系統的編碼體
20、現了目標系統的“具體實現具體實現”。編碼是將設計轉換成計算機可以接受的語言代編碼是將設計轉換成計算機可以接受的語言代碼碼源程序。如果設計給出的描述很詳細,源程序。如果設計給出的描述很詳細,那么編碼幾乎可以機械地完成。自然,編碼必那么編碼幾乎可以機械地完成。自然,編碼必須與設計表示一致、具有結構簡單、清晰易讀須與設計表示一致、具有結構簡單、清晰易讀等良好的編碼風格。等良好的編碼風格。 1.2.3 1.2.3 軟件生存周期軟件生存周期第五個階段:軟件測試(第五個階段:軟件測試(Software TestingSoftware Testing) 軟件測試是保證軟件質量的重要手段,其主要軟件測試是保證
21、軟件質量的重要手段,其主要任務是檢查該軟件是否符合要求,其目的是發任務是檢查該軟件是否符合要求,其目的是發現軟件存在的錯誤。軟件測試應該是有計劃地現軟件存在的錯誤。軟件測試應該是有計劃地進行。進行。軟件測試依據軟件規格說明設計測試用例,并軟件測試依據軟件規格說明設計測試用例,并施加在已經編碼的程序上進行執行,經過對預施加在已經編碼的程序上進行執行,經過對預期結果和實際執行結果的比較、分析,來發現期結果和實際執行結果的比較、分析,來發現程序的錯誤,最后形成測試報告。測試的主要程序的錯誤,最后形成測試報告。測試的主要過程有單元、集成、系統、驗收和安裝測試等。過程有單元、集成、系統、驗收和安裝測試等
22、。1.2.3 1.2.3 軟件生存周期軟件生存周期第六個階段:第六個階段:運行運行/ /維護(維護(Running/MaintenanceRunning/Maintenance)該階段體現軟件是否能夠持久滿足用戶的需求。該階段體現軟件是否能夠持久滿足用戶的需求。已交付的軟件投入正式使用后,便進入運行和已交付的軟件投入正式使用后,便進入運行和維護階段。這個階段可能持續若干年甚至幾十維護階段。這個階段可能持續若干年甚至幾十年,因此占整個軟件費用的比例最大,是相當年,因此占整個軟件費用的比例最大,是相當重要的一個階段。重要的一個階段。軟件維護的實質是對軟件繼續進行查錯、糾錯、軟件維護的實質是對軟件繼
23、續進行查錯、糾錯、修改和確認的過程。無論是應用軟件或系統軟修改和確認的過程。無論是應用軟件或系統軟件,都要在使用期間不斷改善和加強產品的功件,都要在使用期間不斷改善和加強產品的功能和性能、適應運行環境的改變、糾正在開發能和性能、適應運行環境的改變、糾正在開發期間未能發現的遺留錯誤。期間未能發現的遺留錯誤。 1.2.3 1.2.3 軟件生存周期軟件生存周期第七個階段:第七個階段:報廢報廢/ /退役退役(RetirementRetirement)當軟件經過一段時期運行和服務后,便可能報當軟件經過一段時期運行和服務后,便可能報廢或退役。廢或退役。主要的原因有:主要的原因有:為滿足用戶的需求所做的維護
24、費用太高,可能比新為滿足用戶的需求所做的維護費用太高,可能比新開發一個軟件所花費的代價更高。開發一個軟件所花費的代價更高。維護的少量變化對于依賴性很強的軟件的整體功能維護的少量變化對于依賴性很強的軟件的整體功能而言,有極大的危險。而言,有極大的危險。環境的變更(如硬件或操作系統)導致軟件的更換。環境的變更(如硬件或操作系統)導致軟件的更換。用戶不再需要這個軟件。用戶不再需要這個軟件。1.2.3 1.2.3 軟件生存周期軟件生存周期n軟件生存周期是軟件工程中一個重要概念軟件生存周期是軟件工程中一個重要概念把軟件的整個生存周期劃分為較小的階段,給把軟件的整個生存周期劃分為較小的階段,給每個階段賦予
25、確定而有限的任務,就能簡化每每個階段賦予確定而有限的任務,就能簡化每一步的工作,使軟件開發過程易于控制和管理。一步的工作,使軟件開發過程易于控制和管理。采用這種劃分,使得每一個階段的工作相對獨采用這種劃分,使得每一個階段的工作相對獨立,有利于簡化整個問題的解決,且便于不同立,有利于簡化整個問題的解決,且便于不同人員分工協作。而且嚴格的科學的評審制度提人員分工協作。而且嚴格的科學的評審制度提高了軟件的質量,從而大大提高了軟件開發的高了軟件的質量,從而大大提高了軟件開發的生產率和成功率。生產率和成功率。1.2.3 1.2.3 軟件生存周期軟件生存周期n軟件生存周期各階段的軟件生存周期各階段的關鍵關
26、鍵問題問題階段階段關鍵問題關鍵問題結束標準結束標準問題定義與可行性研究 問題是什么?有可行解嗎?可行性研究報告需求分析軟件必須做什么?需求分析報告軟件概要/總體設計怎樣概括地解決該問題?概要設計報告詳細設計怎樣具體地解決該問題?詳細設計報告編碼如何編碼并最終實現該系統?源程序清單測試尋找軟件錯誤并使其符合要求?測試報告運行與維護用戶發現新問題?有新要求?如何解決新問題?滿足新要求?運行日志和維護記錄1.2.3 1.2.3 軟件生存周期軟件生存周期1.3 1.3 軟件工程研究的主要內容軟件工程研究的主要內容 軟件工程研究的主要內容軟件工程研究的主要內容-4-4個方面個方面規范和標準規范和標準方法
27、和技術方法和技術工具和環境工具和環境過程與管理過程與管理1.3.1 1.3.1 規范和標準規范和標準(1)(1)軟件工程規范和標準軟件工程規范和標準所謂規范就是明文規定或約定俗成的標準。所謂規范就是明文規定或約定俗成的標準。軟件規范化就是使軟件工作與產品符合一定的標準。軟件規范化就是使軟件工作與產品符合一定的標準。軟件工程標準有很多類型。按照中國國家標準軟件工程標準有很多類型。按照中國國家標準GB/T GB/T 15538-199515538-1995軟件工程標準分類法軟件工程標準分類法,分類法由標準劃,分類法由標準劃分和軟件工程劃分以及這兩種劃分的表示關系所組成。分和軟件工程劃分以及這兩種劃
28、分的表示關系所組成。按標準劃分有過程、產品、行業、記號按標準劃分有過程、產品、行業、記號4 4大類型,標準大類型,標準劃分確定了標準的作用;按軟件工程劃分包括劃分確定了標準的作用;按軟件工程劃分包括2 2個部分,個部分,任務功能(產品工程、技術管理、確認與驗證)和軟件任務功能(產品工程、技術管理、確認與驗證)和軟件生存周期(概念、需求、設計、實現、測試、安裝驗收、生存周期(概念、需求、設計、實現、測試、安裝驗收、運行、引退等階段),軟件工程劃分確定了與標準有關運行、引退等階段),軟件工程劃分確定了與標準有關的軟件工程方面的特性。的軟件工程方面的特性。(2)(2)軟件工程標準的意義軟件工程標準的
29、意義必要性必要性在軟件的開發、測試與評價、運行、維護、管理等在軟件的開發、測試與評價、運行、維護、管理等一系列工作中,都要有一系列的約束和規定,都要一系列工作中,都要有一系列的約束和規定,都要求提供統一的行動規范和衡量準則,使得各種工作求提供統一的行動規范和衡量準則,使得各種工作都能有章可循。都能有章可循。標準化帶來的好處標準化帶來的好處提高軟件的質量提高軟件的質量提高軟件的生產率提高軟件的生產率提高軟件人員之間的通信效率,減少差錯和誤解提高軟件人員之間的通信效率,減少差錯和誤解有利于提高軟件管理水平有利于提高軟件管理水平有利于降低軟件的成本有利于降低軟件的成本有利于縮短軟件開發周期有利于縮短
30、軟件開發周期1.3.1 1.3.1 規范和標準規范和標準(3)(3)軟件工程標準的層次軟件工程標準的層次 根據軟件工程標準制定的機構和標準適用的根據軟件工程標準制定的機構和標準適用的范圍有所不同,它分為范圍有所不同,它分為5 5個個級別:級別:n國際標準國際標準n國家標準國家標準n行業標準行業標準n企業規范企業規范n項目規范項目規范1.3.1 1.3.1 規范和標準規范和標準n國際標準:國際標準:由國際聯合機構制定和公布,提供各由國際聯合機構制定和公布,提供各國參考的標準。國參考的標準。nISOISO(International Standards Organization)Internati
31、onal Standards Organization)國際國際化標準組織有著廣泛的代表性和權威性,所公布的標化標準組織有著廣泛的代表性和權威性,所公布的標準也有較大的影響。該機構的計算機與信息處理委員準也有較大的影響。該機構的計算機與信息處理委員會(會(ISO/TC97ISO/TC97)專門負責與計算機有關的標準化工作,)專門負責與計算機有關的標準化工作,所制定的標準冠有所制定的標準冠有ISOISO字樣,如字樣,如ISO 8631-ISO 8631-86Information Processing-program constructs and 86Information Processing
32、-program constructs and conventions for their representationconventions for their representation信息處理信息處理- -程序構造與表示法的約定程序構造與表示法的約定。1.3.1 1.3.1 規范和標準規范和標準n國家標準:國家標準:由政府或國家級的機構制定或批準,適由政府或國家級的機構制定或批準,適用于全國范圍的標準。用于全國范圍的標準。nGB GB 中華人民共和國技術監督局是中國的最高標準化機構,中華人民共和國技術監督局是中國的最高標準化機構,它所公布實施的標準簡稱為它所公布實施的標準簡稱為“國標國
33、標”。 nANSIANSI(American National Standards Institute)American National Standards Institute)美國民美國民間標準化組織機構,具有一定的權威性。間標準化組織機構,具有一定的權威性。 nFIPSFIPS(NBSNBS)()(Federal Information Processing Federal Information Processing Standards (National Bureau Standards)Standards (National Bureau Standards)美國商務部國美國商務部
34、國家標準局聯邦信息處理標準。它所公布的標準均冠有家標準局聯邦信息處理標準。它所公布的標準均冠有FIPSFIPS字樣,如字樣,如FIPS PUB 132-87FIPS PUB 132-87軟件確認與驗證計劃指南。軟件確認與驗證計劃指南。nBSBS(British StandardsBritish Standards)英國國家標準。)英國國家標準。nDINDIN(Deutsches Institut fur Normung)Deutsches Institut fur Normung)德國國家標準。德國國家標準。nJISJIS(Japanese Industrial Standards)Japan
35、ese Industrial Standards)日本工業標準。日本工業標準。1.3.1 1.3.1 規范和標準規范和標準n行業標準:行業標準:由行業機構、學術團體或國防機構制定,由行業機構、學術團體或國防機構制定,并適用于某個業務領域的標準。并適用于某個業務領域的標準。nIEEEIEEE(Institute Electrical and Electronic Institute Electrical and Electronic EngineersEngineers)美國電氣與電子工程師學會。例如)美國電氣與電子工程師學會。例如ANSI/IEEE Str 828-1983(ANSI/IEEE
36、 Str 828-1983(軟件配置管理計劃標準)。軟件配置管理計劃標準)。nGJBGJB中國國家軍用標準,國防科學技術工業委員會批準。中國國家軍用標準,國防科學技術工業委員會批準。例如例如GJB 437/438-88GJB 437/438-88(軍用軟件開發(軍用軟件開發/ /文檔編制規范)。文檔編制規范)。nDOD-STDDOD-STD(Department Of Defense-STanDards)Department Of Defense-STanDards)美國國防美國國防部標準,適用于美國國防部。部標準,適用于美國國防部。nMIL-SMIL-S(MILitary-StandarsM
37、ILitary-Standars)美國軍用標準)美國軍用標準, ,適用于美軍適用于美軍內部。內部。n其他其他 其他行業制定的適于本部門工作需要的規范。其他行業制定的適于本部門工作需要的規范。1.3.1 1.3.1 規范和標準規范和標準n企業規范企業規范n一些大型企業或公司,由于軟件工程的需要,制定適一些大型企業或公司,由于軟件工程的需要,制定適用于本部門的規范。例如,用于本部門的規范。例如,IBM公司通用產品部公司通用產品部1984年制定的年制定的軟件程序設計開發指南軟件程序設計開發指南。n項目規范項目規范n由某一科研生產項目組織制定,且為該項目專用的軟由某一科研生產項目組織制定,且為該項目專
38、用的軟件工程規范。例如,件工程規范。例如,CIMS的軟件工程規范。的軟件工程規范。1.3.1 1.3.1 規范和標準規范和標準(3)(3)例子例子 計算機軟件工程規范國家標準計算機軟件工程規范國家標準GB2000GB2000匯編匯編標準名稱(1)編號信息處理-數據流程圖、程序流程圖、系統流程圖、程序網絡圖和系統資源圖的文件編制符號及約定GB/T1526-1989信息技術-軟件生存周過程GB/T8566-1995計算機軟件產品開發文件編制指南GB/T8567-1988計算機軟件需求說明編制指南GB/T9385-1988計算機軟件測試文件編制規范GB/T9386-1988軟件工程術語GB/T114
39、57-1995計算機軟件質量保證計劃規范GB/T12504-19901.3.1 1.3.1 規范和標準規范和標準(4)例子 計算機軟件工程規范國家標準計算機軟件工程規范國家標準GB2000GB2000匯編匯編標準名稱(2)編號計算機軟件配置管理計劃規范GB/T12505-1990工業控制用軟件評定準則GB/T13423-1992信息處理-程序構造及其表示的約定GB/T13502-1992計算機軟件分類與代碼GB/T13702-1992軟件維護指南GB/T14079-1992信息處理系統-計算機系統配置圖符號及約定GB/T14085-1993計算機軟件可靠性和可維護性管理GB/T14394-19
40、93DOS中文信息處理系統接口規范GB/T15189-19941.3.1 1.3.1 規范和標準規范和標準標準名稱(3)編號計算機軟件單元測試GB/T15532-1995信息處理-單命中判定表規范GB/T15535-1995軟件工程標準分類法GB/T15538-1995信息處理-按記錄組處理順序文卷的程序流程GB/T15679-1995軟件支持環境GB/T15853-1995信息技術 軟件產品評價 質量特性及其使用指南GB/T16260-1996軟件文檔管理指南GB/T16680-1996信息技術 軟件包 產品要求和測試GB/T17544-19981.3.1 1.3.1 規范和標準規范和標準
41、例如,例如,GB/T8567-1988GB/T8567-1988計算機軟件產品開發文件編制指南計算機軟件產品開發文件編制指南這份指導性文件建議:在一項計算機軟件的開發過程中,這份指導性文件建議:在一項計算機軟件的開發過程中,一般地說,應該產生一般地說,應該產生1414種文件。這些文件是:種文件。這些文件是: 可行性研究報告可行性研究報告 項目開發計劃項目開發計劃 軟件需求說明書軟件需求說明書 數據要求說明數據要求說明 概要設計說明書概要設計說明書 詳細設計說明書詳細設計說明書 數據庫設計說明書數據庫設計說明書 用戶手冊用戶手冊 操作手冊操作手冊 模塊開發卷宗模塊開發卷宗 測試計劃測試計劃 測試
42、分析報告測試分析報告 開發進度月報開發進度月報 項目開發總結報告項目開發總結報告1.3.1 1.3.1 規范和標準規范和標準1.3.2 1.3.2 方法和技術方法和技術n軟件方法軟件方法軟件方法體現了軟件開發人員看待系統的立軟件方法體現了軟件開發人員看待系統的立場和觀點,它確定開發的各個階段,規定每場和觀點,它確定開發的各個階段,規定每個階段的活動、產品、驗證步驟和完成準則。個階段的活動、產品、驗證步驟和完成準則。n軟件技術軟件技術軟件技術則是方法的具體實現,由若干步驟軟件技術則是方法的具體實現,由若干步驟組成,突出組成,突出“如何做如何做”。有時也不加區別稱。有時也不加區別稱技術方法。技術方
43、法。n軟件方法與技術幾乎在軟件的整個生命期軟件方法與技術幾乎在軟件的整個生命期中都有不同程度的運用。中都有不同程度的運用。n軟件方法與技術的例子面向數據流的方法結構化方法(SA-SD-SP) SA,1970s,E.Yourdon/T.Demarco;SD,W.Stevens/G.Myers/L.Constantine;SP,E.Dijkstra,N.Wirth等面向數據結構的方法Jackson(M.A. Jackson)LCP (J.D. Warnier)面向功能的方法HIPO(IBM)面向對象的方法Coad/Yourdon(P.Coad/E.Yourdon)OMT(J.Rumbaugh)Bo
44、och(G.Booch)OOSE(I.Jacobson)UML (統一建模語言)形式化方法VDM(C.B. Jones)Z語言(J.M. Spivey)1.3.2 1.3.2 方法和技術方法和技術輸出輸入n面向數據流的方法面向數據流的方法結構化方法(結構化方法(SA-SD-SP)用抽象模型的概念,按照軟件用抽象模型的概念,按照軟件內部數據傳遞、變換的關系,內部數據傳遞、變換的關系,自頂向下逐層分解,直到找到自頂向下逐層分解,直到找到滿足功能需要的所有可實現的滿足功能需要的所有可實現的軟件為止。軟件為止。主要的手段是抽象與分解,表主要的手段是抽象與分解,表現形式是數據流圖現形式是數據流圖DFD、
45、數據、數據字典和加工說明;結構圖;程字典和加工說明;結構圖;程序流程圖、序流程圖、NS圖、圖、PAD圖或圖或偽碼。偽碼。變換軟件模型軟件模型XX系統輸出變換輸入1.3.2 1.3.2 方法和技術方法和技術n面向數據結構的方法面向數據結構的方法Jackson 和和LCP的主要思想的主要思想把程序看成數據;把數據解釋成程序把程序看成數據;把數據解釋成程序數據結構對于處理信息的算法和功效都有影響數據結構對于處理信息的算法和功效都有影響許多應用領域存在明確的層次的信息結構許多應用領域存在明確的層次的信息結構信息結構出色地揭示了軟件結構,選擇、重復和層信息結構出色地揭示了軟件結構,選擇、重復和層次的數據
46、結構與軟件結構有對應關系次的數據結構與軟件結構有對應關系主張:對于一個以計算機為基礎的系統來說,主張:對于一個以計算機為基礎的系統來說,內在的數據結構的標識是至關重要的,可以利內在的數據結構的標識是至關重要的,可以利用輸入輸出數據結構來推導程序的結構及其細用輸入輸出數據結構來推導程序的結構及其細節。節。1.3.2 1.3.2 方法和技術方法和技術面向數據結構的方法的面向數據結構的方法的基本步驟基本步驟評價數據結構的特性;評價數據結構的特性;把數據依次表示成如順把數據依次表示成如順序、選擇和重復的基本序、選擇和重復的基本形式;形式;數據結構映射成軟件的數據結構映射成軟件的控制層次;控制層次;利用
47、方法中的指導原則利用方法中的指導原則來細化軟件層次;來細化軟件層次;最終開發軟件的過程性最終開發軟件的過程性描述。描述。Problem environmentData structureTask to be performedReading and writingProgram structureExecution operationProgramJackson方法步驟1.3.2 1.3.2 方法和技術方法和技術n面向功能的方法面向功能的方法HIPO(1974,IBM)的主要思的主要思想想自頂向下,逐層分解自頂向下,逐層分解以功能、功能完備性準則進以功能、功能完備性準則進行分解行分解著眼點在于
48、分析著眼點在于分析表現方式表現方式直觀目錄表(直觀目錄表(H圖):功能圖):功能層次圖。層次圖。概要概要IPO圖:與圖:與H圖中的一圖中的一個功能相對應。個功能相對應。詳細詳細IPO圖:進一步指明圖:進一步指明“I-P-O”之間的關系。之間的關系。XX系統1.31.21.11.1.11.1.21.11.1.1記錄銷售明細1.1.2更新庫存銷售明細庫存文件銷售明細庫存文件I P O圖H圖1.3.2 1.3.2 方法和技術方法和技術n面向對象的方法面向對象的方法OO(Object-Oriented)主要的觀點主要的觀點以對象(以對象(Object)為中心。任何事物都是對象,客觀世為中心。任何事物都
49、是對象,客觀世界是由各種對象組成的,復雜的對象由簡單的對象組界是由各種對象組成的,復雜的對象由簡單的對象組成,整體由部分組成。成,整體由部分組成。對象可以分類對象可以分類(Class):子類(派生類)和父類(基:子類(派生類)和父類(基類)。每個類或對象都定義(封裝)了一組數據和方類)。每個類或對象都定義(封裝)了一組數據和方法,數據用于表示對象的靜態屬性,描述對象的狀態法,數據用于表示對象的靜態屬性,描述對象的狀態信息;方法是對象所能執行的操作即類中所能提供的信息;方法是對象所能執行的操作即類中所能提供的服務。子類可以繼承(服務。子類可以繼承(Inheritance)父類的屬性和方父類的屬性
50、和方法。法。1.3.2 1.3.2 方法和技術方法和技術n面向對象的方法面向對象的方法OO主要的觀點主要的觀點對象之間通過傳遞消息進行對象之間通過傳遞消息進行通信通信(Communication with Messages)OO=Objects+Classes+Inheritance+Communication with MessagesOO方法已經形成了方法已經形成了OOA-OOD-OOP一個完整過程,并一個完整過程,并可通過多次迭代而成,企圖可通過多次迭代而成,企圖使問題空間與解空間在結構使問題空間與解空間在結構上保持一致。上保持一致。類或對象名屬性方法一個封裝了的類或對象圖一個封裝了的類
51、或對象圖1.3.2 1.3.2 方法和技術方法和技術n形式化方法形式化方法一個形式化的軟件開發方法要向使用者提供一一個形式化的軟件開發方法要向使用者提供一套思維方法和描述、開發手段,如規范的原則、套思維方法和描述、開發手段,如規范的原則、程序開發的一般過程、描述語言等,使開發者程序開發的一般過程、描述語言等,使開發者能利用數學概念和表示方法恰當合理地構造形能利用數學概念和表示方法恰當合理地構造形式規范,根據開發過程的框架及設計原則進行式規范,根據開發過程的框架及設計原則進行規范描述和系統化的設計,并使用證明的概念規范描述和系統化的設計,并使用證明的概念對規范的性質和設計步驟進行分析和驗證。方對
52、規范的性質和設計步驟進行分析和驗證。方法還應輔以工具支持環境,使開發過程可行而法還應輔以工具支持環境,使開發過程可行而且高效。且高效。1.3.2 1.3.2 方法和技術方法和技術n形式化方法的例子形式化方法的例子VDM(Vienaa Development Method,IBM 1973 創建。創建。主要貢獻者:主要貢獻者:D.BjrnerD.Bjrner、C.B. JonesC.B. Jones等等) )是一種是一種基于形式語義的形式化開發方法,其元語言基于形式語義的形式化開發方法,其元語言Meta-Meta-是建是建立于指稱語義基礎上的規范描述語言。立于指稱語義基礎上的規范描述語言。RAI
53、SE(Rigorous Approach to Industrial Software Engineering)的形式化方法的幾個主要階段:的形式化方法的幾個主要階段:形式化分析:根據用戶需求得到最初的規格說明,用形式化分析:根據用戶需求得到最初的規格說明,用RSLRSL( RAISE Specication Language)RAISE Specication Language)描述。描述。形式化設計:從最初的規格說明逐步演變到最終的規形式化設計:從最初的規格說明逐步演變到最終的規格說明。每經過一步規格說明都會更為具體,但與最格說明。每經過一步規格說明都會更為具體,但與最初的規格說明保持一致
54、。初的規格說明保持一致。翻譯:將最終的規格說明轉換為計算機上可執行的程翻譯:將最終的規格說明轉換為計算機上可執行的程序。序。RAISERAISE中可翻譯為中可翻譯為Ada/C+Ada/C+程序。程序。1.3.2 1.3.2 方法和技術方法和技術1.3.3 1.3.3 工具和環境工具和環境n軟件工具軟件工具軟件工具是指這樣一類程序,它可以用來幫助軟件工具是指這樣一類程序,它可以用來幫助軟件項目開發過程中某些階段或某個環節實現軟件項目開發過程中某些階段或某個環節實現軟件過程自動化,從而提高軟件的勞動生產率軟件過程自動化,從而提高軟件的勞動生產率和質量、縮短軟件開發周期、降低軟件生產成和質量、縮短軟
55、件開發周期、降低軟件生產成本。有時,人們稱其為本。有時,人們稱其為“幫助開發軟件的軟幫助開發軟件的軟件件”。按其功能大致可分為:需求分析工具、設計工按其功能大致可分為:需求分析工具、設計工具、實現工具、測試工具、維護工具、項目管具、實現工具、測試工具、維護工具、項目管理工具、配置管理工具等。理工具、配置管理工具等。 (1 1)需求分析工具)需求分析工具用以輔助系統分析員生成完整、正確、一致用以輔助系統分析員生成完整、正確、一致的需求說明,改善軟件開發人員之間的通信的需求說明,改善軟件開發人員之間的通信狀況。狀況。例如,具有代表性的有例如,具有代表性的有19771977年美國密執安大學研制的年美
56、國密執安大學研制的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 工具和環境工具和環境又如,美國又如,美國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公司生產的公司生產的S-Designor ProcessAnlystS-Designor ProcessAnlyst可以輔助分析人員利用面向數據流的方法如可以輔助分析人員利用面向數據流的方法如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 工具和環境工具和環境(2 2)設計工具)設計工具用來進行系統設計,形成設計規格說明,檢查用來進行系統設計,形成設計規格說明,檢查并排除規格說明中的錯誤。并排除規格說明中的錯誤。如美國如美國HughesHughes飛機公司飛
60、機公司8080年代初開發的年代初開發的AIDESAIDES(Automated Interactive Design and Evaluation Automated Interactive Design and Evaluation SystemSystem)系統,它可以輔助設計人員用結構化設計方)系統,它可以輔助設計人員用結構化設計方法以交互方式對軟件系統作模塊分解,從而得到系統法以交互方式對軟件系統作模塊分解,從而得到系統的結構圖及相應的設計文檔和報告,并可對設計質量的結構圖及相應的設計文檔和報告,并可對設計質量作定量分析和評價。作定量分析和評價。1.3.3 1.3.3 工具和環境工具和環境又如,日立公
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年南江縣黃金新城建筑施工勞務分包合同
- 四川航天職業技術學院《教師書寫技能訓練》2023-2024學年第二學期期末試卷
- 浙江旅游職業學院《中醫康復技術》2023-2024學年第一學期期末試卷
- 大同別墅糾偏施工方案
- 2025至2031年中國圖書架行業投資前景及策略咨詢研究報告
- 2025至2030年中國魚鉤數據監測研究報告
- 2025至2030年中國陶瓷藝術襯線數據監測研究報告
- 2025至2030年中國硅膠發泡板數據監測研究報告
- 眉山石紋隔墻施工方案
- 石碣山上除雜草施工方案
- 微風發電項目可行報告
- 醫院防雷電安全應急預案
- 2025年中小學生安全教育日知識競賽考試題(附答案)
- 2024年初級會計實務考試真題及答案(5套)
- 2025年4月自考00152組織行為學押題及答案
- 2025【英文合同】授權代理合同英文范本
- 2024年東莞市寮步鎮招聘特聘材料員筆試真題
- 北師大版2025二年級語文下冊期中考試綜合檢測
- 湖南2025屆新高考教學教研聯盟(長郡二十校)高三第二次預熱演練數學試題(含答案)
- 2025年注會合同法試題及答案
- 2025年礦區招聘考試試題及答案
評論
0/150
提交評論