




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2022/10/12第1章 軟件工程概述 哈工大軟件學院楊大易2020-02-09本章主要要內容1.1什么是軟軟件1.2軟件危機機1.3軟件工程程1.4軟件工程程方法學學1.5軟件開發發模型1.6本章小結結2020-02-091.1什么是軟軟件軟件的定定義是計算機機程序、程序使使用的數據以及說明明程序的的各種文檔的集合。軟件(software)由三部分分組成可以在計計算機上上運行的的程序(program)。運行程序序需要的的數據(data)。軟件開發發、維護護、使用用需要的的各種文檔(document)1.1什么是軟軟件軟件的特特征軟件是一一種邏輯輯實體,具有抽抽象性軟件沒有有明顯的的制造過過
2、程軟件在使使用過程程中,沒沒有磨損損、老化化的問題題軟件對硬硬件和環環境有著著不同程程度的依依賴性軟件開發發至今尚尚未完全全擺脫手手工作坊坊式的開開發方式式,生產產效率低低軟件的成成本相當當昂貴大多數軟軟件是自自定的,而不是是通過已已有的構構件組裝裝而來的的軟件工作作牽涉到到很多社社會因素素2020-02-092020-02-091.1什么是軟軟件軟件的發發展過程程從1946年到60年代初:程序設計計時期,其主要要特征是是程序生生產方式式為個體體手工方方式。從20世紀60年代初到到70年代初:程序系統統時期,程序的規規模已經經很大,需要多多人分工工協作,軟件的的開發方方式由“個體生生產”發發展
3、到了了“軟件件作坊”。從20世紀70年代中期期至80年代中期期:軟件工程程時期,軟件的開開發以工工程化的的思想為為指導,用工程程化原則則、方法法和標準準來開發發和維護護軟件。從20世紀80年代中期期至今:面向對象象時期,面向對對象軟件件開發技技術在迅迅速取代代傳統軟軟件工程程開發方方法。2020-02-091.2軟件危機機1968年北大西西洋公約約組織的的計算機機科學家家在德國國召開國國際會議議,把計計算機軟軟件的開開發和維維護過程程中出現現的一系系列嚴重重問題稱稱為“軟件危機機”。軟件危機機包括兩兩個方面面的問題題如何開發發軟件以以滿足用用戶對軟軟件日益益增長的的需求如何維護護數量迅迅速增長
4、長的已有有軟件2020-02-091.2軟件危機機軟件危機機的表現現軟件功能能與實際際需求不不符軟件開發發生產率率提高的的速度遠遠遠不能能滿足用用戶需要要軟件價格格昂貴軟件產品品的質量量差對軟件開開發成本本和進度度的估計計常常不不準確軟件文檔檔資料通通常既不不完整也也不合格格軟件的維維護費用用急劇上上升2020-02-091.2軟件危機機產生軟件件危機的的原因軟件缺乏乏“可見見性”,在寫出出程序代代碼并在在計算機機上運行行之前,軟件開開發過程程的進展展質量較較難衡量量,很難難檢驗開開發的正正確性。軟件規模模龐大,邏輯結結構復雜雜。開發管理理人員只只重視設設計程序序而輕視視用戶需需求分析析,導致
5、致最后研研制出的的軟件產產品無法法滿足用用戶的需需求。軟件設計計技術和和管理技技術落后后,沒有有統一的的軟件質質量管理理規范。在軟件的的開發與與維護關關系問題題上存在在錯誤的的概念,重視開開發,而而輕視維維護。2020-02-091.3軟件工程程軟件工程程的提出出1968年,北大大西洋公公約組織織在原西西德召開開計算機機科學會會議,由由FritzBauer首次提出出了“軟件工程程”的概念念。軟件工程程的定義義軟件工程程是用科科學知識識和技術術原理來來定義、開發、維護軟軟件的一一門學科科。它應應用工程程的概念念、原理理、技術術和方法法,應用用科學的的開發技技術和管管理方法法來開發發軟件。1983
6、年IEEE給出的定定義為:“軟件件工程是是開發、運行、維護和和修復軟軟件的系系統方法法。”其其中,“軟件”的定義義為:“計算機機程序、方法、規則、相關的的文檔資資料以及及在計算算機上運運行時所所必需的的數據。”軟件工程程三要素素:方法、工具、過程1.3軟件工程程SWEBOK:軟件工工程知識識體系指指南2020-02-091.3軟件工程程SWEBOK2020-02-092020-02-091.3軟件工程程軟件工程程基本思思想著名的軟軟件工程程專家B.W.Boehm于1983年提出用分階段段的生存存周期計計劃嚴格格管理堅持進行行階段評評審實行嚴格格的產品品控制采用現代代程序設設計技術術結果應能能清
7、楚地地審查開發小組組的人員員應少而而精承認不斷斷改進軟軟件工程程實踐的的必要性性2020-02-091.3軟件工程程軟件工程程的目標標提高軟件件產品質質量和軟軟件開發發效率,減少軟軟件維護護難度需考慮的的問題可修改性性:允許對對系統修修改,而而不增加加系統復復雜性。有效性:軟件系系統能在在一定的的時間資資源和空空間資源源環境下下,完成成規定的的任務。正確性:軟件能能準確無無誤地執執行用戶戶需求的的各種功功能,滿滿足用戶戶要求的的各種性性能指標標。可靠性:也稱為為健壯性性,在硬硬件、操操作系統統出現故故障,或或人為操操作不當當的情況況下,不不會導致致軟件系系統失效效。2020-02-091.3軟
8、件工程程可理解性性:包括兩兩個方面面的內容容,一是是軟件系系統結構構清晰、容易理理解,二二是程序序算法功功能清晰晰,容易易讀懂。可重用性性:軟件中中的某個個部分可可以在系系統的多多處重復復使用,或者在在多個系系統中使使用。可適應性性:軟件在在不同硬硬件和操操作系統統環境下下的適應應程度。可移植性性:體現了了軟件從從一種計計算機軟軟件移動動到另一一種計算算機環境境下的難難易程度度。可跟蹤性性:包括兩兩方面,一是可可以根據據軟件開開發的文文檔對設設計過程程進行正正向跟蹤蹤或逆向向跟蹤;二是軟軟件測試試和維護護過程中中,對程程序的執執行進行行跟蹤,根據跟跟蹤情況況,分析析程序執執行的因因果關系系。互
9、操作性性:多個軟軟件相互互通信,協作完完成任務務的能力力。2020-02-091.3軟件工程程軟件工程程的原則則抽象(abstraction):抽取取各個事事物中共共同的最最基本的的特征和和行為,暫時忽忽略它們們之間的的差異。信息隱藏藏(informationhiding):將模模塊內部部信息(數據和和過程)封裝起起來。局部化(localization):即在在一個物物理模塊塊內集中中邏輯上上相互關關聯的計計算資源源。一致性(consistency):應保保證在開開發過程程中相關關內容的的一致。完全性(completeness):軟件件系統不不丟失任任何重要要成分,完全實實現所需需的系統統功能
10、的的程度。可驗證性性(verifiability):開發發大型軟軟件系統統需要對對系統逐逐層分解解、驗證證。2020-02-091.4軟件工程程方法把在軟件件生命周周期全過過程中使使用的一一整套技技術集合合稱為方法(methodology),也稱稱為范型(paradigm)。軟件工程程方法包包括開發發方法、開發工具和開發過程三方面開發方法法:完成成軟件開開發的技技術方法法開發工具具:開發發軟件的的支撐環環境開發過程程:完成成開發軟軟件各項項任務的的工作步步驟。目前使用用得最廣廣泛的軟軟件工程程方法,分別是是傳統方法法和面向對象象方法。2020-02-091.4軟件工程程方法傳統方法法:也可稱稱
11、為軟件生命命周期方方法或結構化方方法,把軟件件開發和和維護分分成軟件件定義、軟件開開發和軟軟件維護護三個時時期,每每個時期期又分成成若干個個階段。軟件定義義時期:確定軟軟件開發發必須完完成的任任務;論論證軟件件可行性性;確定定用戶需需求的詳詳細功能能和性能能。可劃劃分為三三個階段段:問題題定義、可行性性研究和和需求分分析。軟件開發發時期:設計和和實現軟軟件的定定義。四四個階段段:總體體設計、詳細設設計、編編碼及單單元測試試、綜合合測試。軟件維護護時期:對投入入使用的的軟件的的修改,實際上上是對軟軟件的一一次重新新定義和和開發過過程。2020-02-091.4軟件工程程方法傳統方法法的各階階段問
12、題定義義:弄清楚楚要解決決什么問問題。可行性研研究:分析清清楚“用用什么辦辦法解決決這個問問題”,保證在在技術上上、實效效上、法法律上都都是行得得通的。需求分析析:確定軟軟件的功功能和性性能。用用戶要要要清楚開開發出的的軟件系系統能夠夠做什么么;軟件件開發人人員也應應該清楚楚用戶的的具體要要求是什什么。總體設計計:設計軟軟件的總總體結構構,將一一個大系系統按照照功能設設計成小小模塊,總體設設計有時時也稱概概要設計計。詳細設計計:對每個個模塊設設計具體體算法和和數據結結構,詳詳細設計計有時也也稱模塊塊設計。編碼及單單元測試試:根據詳詳細設計計的結果果,用程程序設計計語言,編寫正正確的源源程序,并
13、且對對每段程程序進行行嚴格測測試。綜合測試試:通過測測試使軟軟件系統統達到用用戶的要要求。最最基本的的測試集集成測試試和驗收收測試。軟件維護護:軟件投投入運行行后的維維護活動動,通常常可劃分分為四類類:改正正性維護護、適應應性維護護、完善善性維護護、預防防性維護護。1.4軟件工程程方法仍然是使使用十分分廣泛的的軟件工工程方法法。采用結構構化技術術來完成成軟件開開發的各各項任務務,并使使用適當當的軟件件工具或或軟件工工程環境境來支持持結構化化技術的的運用。從上而下下,順序序地完成成軟件開開發的各各階段任任務。2020-02-091.4軟件工程程方法面向對象象方法一種把面面向對象象的思想想應用于于
14、軟件開開發過程程中,指指導開發發活動的的系統方方法,簡簡稱OO(Object-Oriented)方法。面向對象象方法的的特征是建立在在對象概概念基礎礎上的方方法學,對象的的概念貫貫穿于開開發全過過程。運用人類類日常的的思維方方法和原原則進行行系統開開發,體體現出繼繼承性、封裝性性、多態態性等基基本特征征。可劃分為為三個階階段:面面向對象象分析(OOA)、面向向對象設設計(OOD)、面向向對象實實現(OOI)。2020-02-092020-02-091.5軟件生命命周期模模型軟件項目目開發和和維護的的全過程程軟件生命命周期模模型的種種類以軟件需需求完全全確定為為基礎的的瀑布模模型;開發初期期僅給
15、出出基本需需求的漸漸進式模模型,如如原型模模型、螺螺旋模型型、噴泉泉模型等等;以形式化化開發方方法為基基礎的變變換模型型、基于于第四代代語言技技術的模模型。在實際開開發時,應根據據項目的的特點和和現有的的條件選選取合適適的模型型,也可可以把幾幾種模型型組合起起來使用用以便充充分利用用各模型型的優點點。2020-02-091.5軟件開發發模型瀑布模型型嚴格按照照軟件生生存周期期各個階階段來進進行開發發,上一一階段的的輸出即即是下一一階段的的輸入,強調每每一階段段的嚴格格性。2020-02-091.5軟件開發發模型瀑布模型型的優點點提供了軟軟件開發發的基本本框架,有利于于大型軟軟件開發發過程中中人
16、員的的組織、管理,有利于于軟件開開發方法法和工具具的研究究與使用用,因此此,在軟軟件工程程中占有有重要的的地位。瀑布模型型的缺點點在軟件開開發的初初期階段段就要求求做出正正確、全全面、完完整的需需求分析析對許多多應用軟軟件來說說是極其其困難的的。作為整體體開發的的瀑布模模型,由由于不支支持產品品的演化化,缺乏乏靈活性性,對開開發過程程中很難難發現的的錯誤,只有在在最終產產品運行行時才能能暴露出出來,從從而使軟軟件產品品難以維維護。瀑布模型型的適用用場合適合于功功能、性性能明確確、完整整、無重重大變化化的軟件件系統2020-02-091.5軟件開發發模型原型模型型開發人員員與用戶戶一起進進行需求
17、求分析,進行快快速設計計,建造造原型,原型由由用戶評評估,進進一步修修改原型型,再次次進行設設計。迭迭代這個個過程,逐步滿滿足用戶戶需要。2020-02-091.5軟件開發發模型原型模型型的主要要優點原型模型型法可以以得到良良好的需需求定義義,能夠夠有效處處理用戶戶的模糊糊需求,開發者者和用戶戶得到充充分的協協作。原型模型型的主要要缺點開發者常常常需要要實現上上的折衷衷,以使使原型能能盡快工工作;用戶似乎乎看到的的是軟件件的工作作版本,其實軟軟件質量量和可靠靠性難以以保證;資源規劃劃和管理理較為困困難,更更新文檔檔工作量量繁重。原型模型型的適用用場合適合于那那些不能能預先確確切定義義需求的的軟
18、件系系統的開開發,更更適合于于那些項項目組成成員(包包括分析析員、設設計員、程序員員和用戶戶)不能能很好交交流或通通信有困困難的情情況。2020-02-091.5軟件開發發模型螺旋模型型綜合了瀑瀑布模型型和原型型模型的的優點,即將兩兩者結合合,并加加入了風風險分析析機制。2020-02-091.5軟件開發發模型螺旋模型型的優點點支持用戶戶需求的的動態變變化。螺旋模型型特別強強調原型型的可擴擴充性和和可修改改性。為項目管管理人員員及時調調整管理理決策提提供了方方便,可可降低開開發風險險。螺旋模型型的缺點點如果每次次迭代的的效率不不高,致致使迭代代次數過過多。需要有相相當豐富富的風險險評估經經驗和專專門知識識,要求求開發隊隊伍水平平較高。螺旋模型型適用場場合支持需求求不明確確、特別別是大型型軟件系系統的開開發,并并支持多多種軟件件開發方方法,是是一種具具有廣闊闊前景的的模型。2020-02-091.5軟件開發發模型噴泉模型型以面向對對象軟件件開發方方法為基基礎,以以用戶需需求為動動力,以以對象來來驅動的的模型。2020-02-091.5軟件開發發模型噴泉模型型的特點點軟件系統統可維護護性較好好;各階段相相互重疊疊,表明明了面向向對象開開發方法法各階段段間的交交叉和無無縫過渡渡;整個模型型是一個個迭代的的過程,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購合同合同管理專業政策建議重點基礎知識點
- 采購合同合同管理案例研究重點基礎知識點
- 旅游招聘服務合同范本
- 電子商務公司股權置換協議書new2二零二五年
- 自愿放棄交社保承諾書
- 著作權授權協議書
- 靜脈治療護理進修報告
- 店門面裝修合同范本
- 2025年危險化學品安全生產事故應急救援試題匯編
- 2025年醫保知識考試題庫:報銷流程專項試題解析大全
- 2024年焊工(高級)技能鑒定考試題庫大全(含答案)
- 行政復議法-形考作業3-國開(ZJ)-參考資料
- 2024年公務員(國考)之行政職業能力測驗真題及參考答案(完整版)
- 鋼軌超聲波探傷70°探頭詳解
- 柜式七氟丙烷氣體滅火系統安裝與綜合項目施工專項方案
- 2021年4月自考00808商法試題及答案含解析
- 2022聚脲防水涂料應用技術規程
- 2024年四川成都金牛天府環境管理有限公司招聘筆試參考題庫含答案解析
- T-CITSA 20-2022 道路交叉路口交通信息全息采集系統通用技術條件
- 《商務數據分析與應用》實訓教學大綱
- 管理溝通-原理、策略及應用(第二版)教學課件7
評論
0/150
提交評論