




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件工程軟件工程一、課程的性質、任務:“軟件工程”是高職高專院校計算機應用與軟件技術專業教學計劃中一門核心基礎課程,它是研究軟件開發和軟件管理的一門工程科學。它的主要任務是掌握支持軟件開發和管理的理論、方法、技術、標準以及計算機輔助軟件工程的工具(Visio或Rose)環境等知識;使學生具有軟件開發能力(包括熟練進行程序設計語言的結構化編碼與可視化設計能力;UML的閱讀和建模能力;培養用軟件工程化及項目化的思想處理解決問題的能力等)。一、課程的性質、任務:“軟件工程”是高職高專院校計算機應用與概括說:軟件開發能力最關鍵的步驟有三步:軟件工程第一章緒論二、通過學習應能達到如下目標:1.接受一種思想。掌握軟件工程的基本原理、概念與方法----主要包括軟件系統的可行性研究、需求分析、概要設計、詳細設計、編碼、測試、維護、面向對象、項目管理等方面的基本知識與方法。
2.掌握軟件工程中的一些基本技術方法,如數據流圖、數據字典、結構分析方法(如Jackson方法等),面向對象分析方法、集成測試方法、項目管理的基本方法等。
3.結合模擬案例,要求學生從實際中掌握從面向過程到面向對象思想理論的基本方法和技巧。掌握軟件開發文檔的組織編寫等。4.掌握一種工具。學期末能用Visio或Rose軟件完成大作業的設計(畫各種軟件工程圖)(指定或自找題目)5.把目前或以后要學的程序設計知識(C、Java、VB、VC++、VB.NET等)提高到一定理論高度認識:編程能否用?
學會思想比掌握一種工具更為重要。
小提示:二、通過學習應能達到如下目標:小提示:三、幾點建議:“學知識,最重要的是融會貫通!”人類解決復雜問題時普遍采用的一個策略就是“各個擊破”,也就是對問題進行“分解,分解,再分解,然后再分別解決各個子問題!”三、幾點建議:“學知識,最重要的是融會貫通!”
“現在大家都已認識到,如果有哪個項目不遵循軟件工程原則必定會受到實踐的懲罰。”“軟件工程課是我們參加工作以后最能直接應用的一門專業課。”——一位剛畢業參加工作的計算機專業學生“現在大家都已認識到,如果有哪個項目不遵循軟件工程原則必
什么是軟件
軟件的特點
軟件的發展
軟件生存期
什么是軟件工程
軟件工程的目的和要求第一章緒論什么是軟件第一章緒論先接受2個正確觀點:1、“開發軟件不等于編寫程序”
—
開發軟件應該完成的工作遠遠多于編寫程序應該完成的工作。設計算法(即完成指定功能的步驟),然后用程序設計語言(例如:C語言)表達該算法。而開發軟件并非就是編寫程序,事實上編寫程序僅僅是開發軟件所應完成的工作的一部分,而且只占一小部分。為了開發出一個符合用戶需要、質量合格的軟件,軟件工程師必須首先弄清楚用戶面臨的問題是什么,也就是要明確軟件的“主攻”方向;接下來應該進行可行性研究方案,分析用戶面臨的問題是否有行得通的解決方案。為避免浪費資源,僅在該軟件的開發是可行的前提下,才進行實質性的開發工作;1.1軟件工程簡述先接受2個正確觀點:1.1軟件工程簡述然后應該進行需求分析工作,通過與用戶的反復交流,搞清楚用戶對該軟件的具體需求,這些需求是進行軟件設計的依據;在編寫程序之前需要先進行設計。通常,大型軟件的設計工作又分成兩個階段進行,先進行總體設計(又稱為概要設計),再進行詳細設計;編寫程序實質上是把設計結果翻譯成用某種程序設計語言書寫的程序;程序編寫出來之后,還需要經過嚴格的測試過程(需要的工作量通常占軟件開發全部工作量的40%~50%),軟件確實符合用戶需求而且質量合格,才能交付給用戶使用。然后應該進行需求分析工作,通過與用戶的反復交流,搞清楚用戶對2、“錯誤做法會導致軟件危機”。開發軟件不等于編寫程序。但是,迄今為止,仍然有不少人錯誤地認為開發軟件就是編寫程序,或者認為開發軟件主要就是編寫程序。人們之所以有錯誤的認識并在開發軟件時采用了錯誤的做法,主要可歸因于在計算機系統發展的早期階段“開發軟件”的個體化特點。所謂軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能正常運行的軟件才具有的,實際上,幾乎所有軟件都不同程度地存在這些問題。(軟件危機的具體表現在后面介紹)2、“錯誤做法會導致軟件危機”。1.1軟件工程簡述軟件是計算機系統中與硬件相互依存的另一部分,它是包括程序,數據及其相關文檔的完整集合。程序是按事先設計的功能和性能要求執行的指令序列。計算機程序包括源程序和目標程序。數據是使程序能正常操縱信息的數據結構(即數據的組織形式)。文檔是與程序開發,維護和使用有關的圖文材料。1.1軟件工程簡述軟件是計算機系統中與硬件相互依存的另一部分1.1軟件工程簡述軟件的特點軟件是一種邏輯實體,而不是具體的物理實體。因此,它具有抽象性。軟件的生產與硬件不同,沒有明顯的制造過程。對軟件的質量控制,必須立足于軟件開發方面。在軟件的運行和使用期間,沒有像硬件那樣的磨損、老化問題。軟件的開發和運行往往受到計算機系統的限制,對計算機系統有不同程度的依賴性。1.1軟件工程簡述軟件的特點1.1軟件工程簡述
面向過程的程序=算法+數據結構面向對象的程序=對象+消息面向構件的程序=構件+構架軟件=程序+數據+文檔1.1軟件工程簡述面向過程的程序=算法+數據結構軟件工程第一章緒論1.1軟件工程簡述軟件的特點(續)迄今為止,軟件的開發尚未完全擺脫手工藝的方式。軟件本身是復雜的。軟件的成本相當昂貴。(見下頁圖示)相當多的軟件工作涉及到社會因素。1.1軟件工程簡述軟件的特點(續)1.1軟件工程簡述軟件的分類按軟件的功能劃分:系統軟件、支撐軟件、應用軟件按軟件的規模劃分:微型、小型、中型、大型、超大型按軟件的工作方式劃分:實時、分時、交互、批處理按軟件服務對象的范圍劃分:項目軟件、產品軟件1.1軟件工程簡述軟件的分類1.1軟件工程簡述一、計算機軟件發展的各個時期1.第一代(60年代中期之前)程序設計階段硬件通用,軟件專用;程序規模小,編寫者和使用者為同一人(同組人)。2.第二代(60年代中期-70年代中期)程序系統階段出現“軟件作坊”、產品軟件;“個體化”開發方法。3.第三代(70年代中期之后)軟件工程階段軟件開發成為一門新興的工程學科——軟件工程。4.第四代(90年代后)現代軟件工程階段。1.1軟件工程簡述一、計算機軟件發展的各個時期計算機軟件發展的三個時期及特點
程序設計程序系統軟件工程現代軟件工程軟件的范疇程序程序及說明書產品軟件(項目軟件)項目工程主要程序設計語言匯編及機器語言高級語言高級語言系統、程序設計語言面向對象可視化設計語言軟件工作范圍程序編寫包括設計和測試軟件生存期整個軟件生存期需求者程序設計者本人少數用戶市場用戶面向所有用戶
計算機軟件發展的三個時期及特點
程序設計程序系統軟件工程現計算機軟件發展的三個時期及特點計算機軟件發展的三個時期及特點1.1軟件工程簡述二、什么是軟件危機軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。主要是兩個問題。1.如何開發軟件,怎樣滿足對軟件的日益增長的需求。2.如何維護數量不斷膨脹的已有軟件1.1軟件工程簡述二、什么是軟件危機1.1軟件工程簡述三、軟件危機的主要表現1.對軟件開發成本和進度的估計不準確2.用戶不滿意3.軟件質量不高、可靠性差4.軟件常常不可維護、錯誤難以改正。5.缺乏適當的文檔資料6.軟件成本占系統總成本的比例逐年上升7.軟件開發速度跟不上計算機發展速度1.1軟件工程簡述三、軟件危機的主要表現1.1軟件工程簡述四、產生軟件危機的原因1.與軟件本身的特點有關軟件不同于硬件,它是計算機系統的邏輯部件而不是物理部件。在寫出程序代碼并在計算機運行之前,軟件開發過程的進展情況較難衡量,軟件開發的質量也較難評價。因此,管理和控制軟件開發過程相當困難。2.軟件不易于維護(1)軟件維護通常意味著改正或修改原來的設計,客觀上使軟件較難維護。1.1軟件工程簡述四、產生軟件危機的原因1.1軟件工程簡述(2)軟件不同于一般程序,它的規模大,不易于維護。3.在軟件開發過程中,或多或少地采用了錯誤的方法和技術。4.對用戶需求沒有完整準確的認識,就匆忙著手編寫程序。1.1軟件工程簡述(2)軟件不同于一般程序,它的規模大,不易1.1軟件工程簡述五、解決軟件危機的途徑1.技術措施使用更好的軟件開發方法和開發工具2.組織管理措施軟件開發不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目。1.1軟件工程簡述五、解決軟件危機的途徑1.1軟件工程簡述一、什么是軟件工程軟件工程是指導計算機軟件開發和維護的工程學科。它采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。軟件工程是一門涉及軟件計劃、需求分析、設計、編碼、測試和維護的原理、方法及工具的研究和應用的學科。1.1軟件工程簡述一、什么是軟件工程1.1軟件工程簡述二、軟件工程的基本原理1968年,北大西洋公約組織(NATO),召開的有關計算機軟件會議上正式提出“軟件工程”術語。目前有100多條關于軟件工程的準則,其中最出名的是著名軟件工程專家B.W.Boehm在1983年提出的7條基本原理。1.1軟件工程簡述二、軟件工程的基本原理1.1軟件工程簡述1.用分階段的生命周期計劃嚴格管理經統計表明,不成功的軟件項目中有一半左右是由于計劃不周造成的。Boehm認為,在軟件的整個生命周期中應制定并嚴格執行六類計劃:項目概要計劃、里程碑計劃、項目控制計劃、產品控制計劃、驗證計劃、運行維護計劃。1.1軟件工程簡述1.用分階段的生命周期計劃嚴格管理1.1軟件工程簡述2.堅持進行階段評審大部分錯誤是在編碼之前造成的因此,在每個階段都進行嚴格的評審,以便盡早發現在軟件開發過程的錯誤1.1軟件工程簡述2.堅持進行階段評審1.1軟件工程簡述3.實行嚴格的產品控制在軟件開發過程中不要隨意改變需求,因為改變某項需求往往需要付出較高的代價,但在實踐中用戶往往會提出需求變更,因此需要采取科學的產品控制技術。目前主要實行基準配置管理:基準配置是指經過階段評審后的軟件配置成分,如各個階段產生的文檔或程序代碼。對涉及基準配置的修改,必須經過嚴格的評審,通過后才能實施修改。1.1軟件工程簡述3.實行嚴格的產品控制1.1軟件工程簡述4.采用現代程序設計技術實踐表明:采用先進的技術既可提高軟件開發的效率,又可提高軟件維護的效率。80年代及之前:結構化分析、設計技術90年代:面向對象分析、設計技術1.1軟件工程簡述4.采用現代程序設計技術1.1軟件工程簡述5.結果應能清楚地審查軟件產品是看不見、摸不著的邏輯產品,開發過程難以評價和管理。根據軟件開發項目的總目標及完成期限,規定開發組織的責任和產品標準,使所得的結果能夠清楚地審查1.1軟件工程簡述5.結果應能清楚地審查1.1軟件工程簡述6.開發小組的人員應該少而精開發小組人員的素質和數量是影響軟件產品質量和開發效率的重要因素。開發小組人員數目的增加,使相互交流復雜、費用增加。1.1軟件工程簡述6.開發小組的人員應該少而精1.1軟件工程簡述7.承認不斷改進軟件工程實踐的必要性遵循前6條基本原理,就能夠按照當代軟件工程基本原理實現軟件的工程化生產,但不能保證趕上時代前進的步伐。積極主動采納新的軟件技術,且不斷總結經驗。1.1軟件工程簡述7.承認不斷改進軟件工程實踐的必要性1.1軟件工程簡述三、軟件工程的目標及框架、原則⑴軟件工程的目標可概括為“生產具有正確性、可用性以及開銷合宜的產品”;⑵軟件工程的活動是“生產一個最終滿足需求且達到工程目標的軟件產品所需要的步驟”;⑶軟件工程實施過程中的四條基本原則:①
選取適宜的開發模型;②
采用合適的設計方法;③
提供高質量的工程支持;④
重視開發過程的管理。1.1軟件工程簡述三、軟件工程的目標及框架、原則1.2軟件的生存周期及其開發模型1.“生命周期法”的起源。
軟件工程采用的“生命周期法”,就是從時間角度對軟件開發和維護的復雜問題進行分解,把軟件生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立的任務,然后再逐步完成每個階段的任務.軟件生存周期包括問題定義、可行性分析和項目開發計劃、需求分析、概要設計、詳細設計、編碼、測試、維護等活動,可以將這些活動以適當方式分配到不同階段去完成。1.2軟件的生存周期及其開發模型1.“生命周期法”的起源1.2軟件的生存周期及其開發模型2.生命周期劃分的原則任務的性質盡可能相同,從而降低每個階段任務的復雜性,簡化不同階段之間的聯系,有利于軟件開發過程的組織管理。3.生命周期的劃分軟件生命周期一般分為:軟件定義(問題定義、可行性研究、需求分析)、軟件開發(總體設計、詳細設計、編碼和單元測試、綜合測試)、軟件使用與維護等三個時期。1.2軟件的生存周期及其開發模型2.生命周期劃分的原則1.2軟件的生命周期及其開發模型軟件定義問題定義可行性分析需求分析軟件開發系統設計編碼測試軟件與維護1.2軟件的生命周期及其開發模型軟件定義1.2軟件的生命周期及其開發模型軟件生命周期的各個階段:(1)問題定義(2)可行性分析(3)需求分析
分析軟件需求,編寫軟件需求規格說明(4)概要設計和詳細設計
確定軟件體系結構,設計軟件模塊(5)程序編寫(6)軟件測試(7)運行和維護1.2軟件的生命周期及其開發模型軟件生命周期的各個階段:1.2軟件的生存周期及其開發模型一、瀑布模型瀑布模型的優點:通過設置里程碑,明確每階段的任務與目標。可為每階段制定開發計劃,進行成本預算,組織開發力量。通過階段評審,將開發過程納入正確軌道。嚴格的計劃性保證軟件產品的按時交付。瀑布模型的缺點:缺乏靈活性,不能適應用戶需求的改變。開始階段的小錯誤被逐級放大,可能導致軟件產品報廢。返回上一級的開發需要十分高昂的代價。隨著軟件規模和復雜性的增加,軟件產品成功的機率大幅下降。瀑布模型的適應范圍:它主要適應于小規模的軟件開發。1.2軟件的生存周期及其開發模型一、瀑布模型軟件工程第一章緒論2.2軟件開發過程模型二、原型模型1.基本思想在獲取一組基本的需求定義后,利用高級軟件工具的可開發環境,快速地建立一個目標系統的最初版本,并把它交給用戶試用、補充和修改,再進行新的版本開發。反復進行這個過程,直到得出系統的“精確解”,即用戶滿意為止。經過這樣一個反復補充和修改的過程,應用系統的“最初版本”就逐步演變為系統的“最終版本”。2.2軟件開發過程模型二、原型模型1.2軟件的生存周期及其開發模型原型:一個具體的可執行模型,它實現了系統的若干功能。原型法:不斷地運行系統“原型”來進行啟發、揭示和判斷的系統開發方法。1.2軟件的生存周期及其開發模型原型:一個具體的可執行模型1.2軟件的生存周期及其開發模型原型法的主要思路:根據用戶的需求迅速構造一個低成本的用于演示及評價的試驗系統(原型)由用戶對原型進行評價在用戶評價的基礎上對原型進行修改或重構。
1.2軟件的生存周期及其開發模型原型法的主要思路:1.2軟件的生存周期及其開發模型有了滿意的系統原型,同時也積累了使用原型的經驗,用戶常會提出新目標,從而進一步重新構造原型周期。新目標的范圍要比修改或補充不滿意的原型大。(1)漸增型(2)用于驗證軟件需求的原型(3)用于驗證設計方案1.2軟件的生存周期及其開發模型有了滿意的系統原型,同時也積1.2軟件的生存周期及其開發模型3.軟件原型是軟件的最初版本,以最少的費用、最短的時間開發出的、以反映最后軟件的主要特征的系統。它具有以下特征:(1)它是一個可實際運行的系統。1.2軟件的生存周期及其開發模型3.軟件原型是軟件的最初版1.2軟件的生存周期及其開發模型(2)它沒有固定的生存期。一種極端是扔掉原型(以最簡便方式大量借用已有軟件,做出最后產品的模型,證實產品設想是成功的,但產品中并不使用);另一種極端是最終產品的一部分即增量原型(先做出最終產品的核心部分,逐步增加補充模塊),演進原型居于其中(每一版本扔掉一點,增加一點,逐步完善至最終產品)。1.2軟件的生存周期及其開發模型(2)它沒有固定的生存期。一1.2軟件的生存周期及其開發模型(3)從需求分析到最終產品都可作原型,即可為不同目標作原型。(4)它必須快速、廉價。(5)它是迭代過程的集成部分,即每次經用戶評價后修改、運行,不斷重復雙方認可。1.2軟件的生存周期及其開發模型(3)從需求分析到最終產品都快速原型法的特點:有直觀的系統開發過程用戶參與系統開發的全過程可以逐步明確用戶需求用戶直接掌握系統的開發進度用戶接受程度高1.2軟件的生存周期及其開發模型快速原型法的特點:1.2軟件的生存周期及其開發模型1.2軟件的生存周期及其開發模型快速原型法的不足:不適用于擁有大量計算或控制功能的系統不適用于大型或復雜的系統容易掩蓋需求、分析、設計等方面的問題結果不確定——隨原型構造評價過程而定整體考慮較少快速原型法主要適應于:適用于解決有不確定因素的問題適用于對用戶界面要求高的系統適用于決策支持方面的應用適用于中型系統1.2軟件的生存周期及其開發模型快速原型法的不足:1.2軟件的生存周期及其開發模型三、螺旋模型在原型基礎上,進行多次原型反復并增加風險評估,形成螺旋模型。1.2軟件的生存周期及其開發模型三、螺旋模型1.2軟件的生存周期及其開發模型1.2軟件的生存周期及其開發模型1.2軟件的生存周期及其開發模型1.2軟件的生存周期及其開發模型1.2軟件的生存周期及其開發模型螺旋模型分析在螺旋模型結構中,維護只是螺旋模型的另一個周期,在維護和開發之間本質上并沒有區別,從而解決了做太多測試或未作足夠測試所帶來的風險。適用條件內部的大規模軟件的開發,不太適合合同軟件。一般只適用于大規模軟件的開發1.2軟件的生存周期及其開發模型螺旋模型分析小結1、理解:程序、軟件、軟件工程的概念,軟件生存期各階段的特點和內容,軟件危機產生的原因。2、應用:軟件生存周期模型,快速原型法,螺旋模型,構件組裝模型。3、了解:軟件發展的4個階段及特點,軟件危機的產生及其表現形式。4、關注:軟件工程的開發方法。小結1、理解:程序、軟件、軟件工程的概念,軟件生存期各階段的軟件工程軟件工程一、課程的性質、任務:“軟件工程”是高職高專院校計算機應用與軟件技術專業教學計劃中一門核心基礎課程,它是研究軟件開發和軟件管理的一門工程科學。它的主要任務是掌握支持軟件開發和管理的理論、方法、技術、標準以及計算機輔助軟件工程的工具(Visio或Rose)環境等知識;使學生具有軟件開發能力(包括熟練進行程序設計語言的結構化編碼與可視化設計能力;UML的閱讀和建模能力;培養用軟件工程化及項目化的思想處理解決問題的能力等)。一、課程的性質、任務:“軟件工程”是高職高專院校計算機應用與概括說:軟件開發能力最關鍵的步驟有三步:軟件工程第一章緒論二、通過學習應能達到如下目標:1.接受一種思想。掌握軟件工程的基本原理、概念與方法----主要包括軟件系統的可行性研究、需求分析、概要設計、詳細設計、編碼、測試、維護、面向對象、項目管理等方面的基本知識與方法。
2.掌握軟件工程中的一些基本技術方法,如數據流圖、數據字典、結構分析方法(如Jackson方法等),面向對象分析方法、集成測試方法、項目管理的基本方法等。
3.結合模擬案例,要求學生從實際中掌握從面向過程到面向對象思想理論的基本方法和技巧。掌握軟件開發文檔的組織編寫等。4.掌握一種工具。學期末能用Visio或Rose軟件完成大作業的設計(畫各種軟件工程圖)(指定或自找題目)5.把目前或以后要學的程序設計知識(C、Java、VB、VC++、VB.NET等)提高到一定理論高度認識:編程能否用?
學會思想比掌握一種工具更為重要。
小提示:二、通過學習應能達到如下目標:小提示:三、幾點建議:“學知識,最重要的是融會貫通!”人類解決復雜問題時普遍采用的一個策略就是“各個擊破”,也就是對問題進行“分解,分解,再分解,然后再分別解決各個子問題!”三、幾點建議:“學知識,最重要的是融會貫通!”
“現在大家都已認識到,如果有哪個項目不遵循軟件工程原則必定會受到實踐的懲罰。”“軟件工程課是我們參加工作以后最能直接應用的一門專業課。”——一位剛畢業參加工作的計算機專業學生“現在大家都已認識到,如果有哪個項目不遵循軟件工程原則必
什么是軟件
軟件的特點
軟件的發展
軟件生存期
什么是軟件工程
軟件工程的目的和要求第一章緒論什么是軟件第一章緒論先接受2個正確觀點:1、“開發軟件不等于編寫程序”
—
開發軟件應該完成的工作遠遠多于編寫程序應該完成的工作。設計算法(即完成指定功能的步驟),然后用程序設計語言(例如:C語言)表達該算法。而開發軟件并非就是編寫程序,事實上編寫程序僅僅是開發軟件所應完成的工作的一部分,而且只占一小部分。為了開發出一個符合用戶需要、質量合格的軟件,軟件工程師必須首先弄清楚用戶面臨的問題是什么,也就是要明確軟件的“主攻”方向;接下來應該進行可行性研究方案,分析用戶面臨的問題是否有行得通的解決方案。為避免浪費資源,僅在該軟件的開發是可行的前提下,才進行實質性的開發工作;1.1軟件工程簡述先接受2個正確觀點:1.1軟件工程簡述然后應該進行需求分析工作,通過與用戶的反復交流,搞清楚用戶對該軟件的具體需求,這些需求是進行軟件設計的依據;在編寫程序之前需要先進行設計。通常,大型軟件的設計工作又分成兩個階段進行,先進行總體設計(又稱為概要設計),再進行詳細設計;編寫程序實質上是把設計結果翻譯成用某種程序設計語言書寫的程序;程序編寫出來之后,還需要經過嚴格的測試過程(需要的工作量通常占軟件開發全部工作量的40%~50%),軟件確實符合用戶需求而且質量合格,才能交付給用戶使用。然后應該進行需求分析工作,通過與用戶的反復交流,搞清楚用戶對2、“錯誤做法會導致軟件危機”。開發軟件不等于編寫程序。但是,迄今為止,仍然有不少人錯誤地認為開發軟件就是編寫程序,或者認為開發軟件主要就是編寫程序。人們之所以有錯誤的認識并在開發軟件時采用了錯誤的做法,主要可歸因于在計算機系統發展的早期階段“開發軟件”的個體化特點。所謂軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能正常運行的軟件才具有的,實際上,幾乎所有軟件都不同程度地存在這些問題。(軟件危機的具體表現在后面介紹)2、“錯誤做法會導致軟件危機”。1.1軟件工程簡述軟件是計算機系統中與硬件相互依存的另一部分,它是包括程序,數據及其相關文檔的完整集合。程序是按事先設計的功能和性能要求執行的指令序列。計算機程序包括源程序和目標程序。數據是使程序能正常操縱信息的數據結構(即數據的組織形式)。文檔是與程序開發,維護和使用有關的圖文材料。1.1軟件工程簡述軟件是計算機系統中與硬件相互依存的另一部分1.1軟件工程簡述軟件的特點軟件是一種邏輯實體,而不是具體的物理實體。因此,它具有抽象性。軟件的生產與硬件不同,沒有明顯的制造過程。對軟件的質量控制,必須立足于軟件開發方面。在軟件的運行和使用期間,沒有像硬件那樣的磨損、老化問題。軟件的開發和運行往往受到計算機系統的限制,對計算機系統有不同程度的依賴性。1.1軟件工程簡述軟件的特點1.1軟件工程簡述
面向過程的程序=算法+數據結構面向對象的程序=對象+消息面向構件的程序=構件+構架軟件=程序+數據+文檔1.1軟件工程簡述面向過程的程序=算法+數據結構軟件工程第一章緒論1.1軟件工程簡述軟件的特點(續)迄今為止,軟件的開發尚未完全擺脫手工藝的方式。軟件本身是復雜的。軟件的成本相當昂貴。(見下頁圖示)相當多的軟件工作涉及到社會因素。1.1軟件工程簡述軟件的特點(續)1.1軟件工程簡述軟件的分類按軟件的功能劃分:系統軟件、支撐軟件、應用軟件按軟件的規模劃分:微型、小型、中型、大型、超大型按軟件的工作方式劃分:實時、分時、交互、批處理按軟件服務對象的范圍劃分:項目軟件、產品軟件1.1軟件工程簡述軟件的分類1.1軟件工程簡述一、計算機軟件發展的各個時期1.第一代(60年代中期之前)程序設計階段硬件通用,軟件專用;程序規模小,編寫者和使用者為同一人(同組人)。2.第二代(60年代中期-70年代中期)程序系統階段出現“軟件作坊”、產品軟件;“個體化”開發方法。3.第三代(70年代中期之后)軟件工程階段軟件開發成為一門新興的工程學科——軟件工程。4.第四代(90年代后)現代軟件工程階段。1.1軟件工程簡述一、計算機軟件發展的各個時期計算機軟件發展的三個時期及特點
程序設計程序系統軟件工程現代軟件工程軟件的范疇程序程序及說明書產品軟件(項目軟件)項目工程主要程序設計語言匯編及機器語言高級語言高級語言系統、程序設計語言面向對象可視化設計語言軟件工作范圍程序編寫包括設計和測試軟件生存期整個軟件生存期需求者程序設計者本人少數用戶市場用戶面向所有用戶
計算機軟件發展的三個時期及特點
程序設計程序系統軟件工程現計算機軟件發展的三個時期及特點計算機軟件發展的三個時期及特點1.1軟件工程簡述二、什么是軟件危機軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。主要是兩個問題。1.如何開發軟件,怎樣滿足對軟件的日益增長的需求。2.如何維護數量不斷膨脹的已有軟件1.1軟件工程簡述二、什么是軟件危機1.1軟件工程簡述三、軟件危機的主要表現1.對軟件開發成本和進度的估計不準確2.用戶不滿意3.軟件質量不高、可靠性差4.軟件常常不可維護、錯誤難以改正。5.缺乏適當的文檔資料6.軟件成本占系統總成本的比例逐年上升7.軟件開發速度跟不上計算機發展速度1.1軟件工程簡述三、軟件危機的主要表現1.1軟件工程簡述四、產生軟件危機的原因1.與軟件本身的特點有關軟件不同于硬件,它是計算機系統的邏輯部件而不是物理部件。在寫出程序代碼并在計算機運行之前,軟件開發過程的進展情況較難衡量,軟件開發的質量也較難評價。因此,管理和控制軟件開發過程相當困難。2.軟件不易于維護(1)軟件維護通常意味著改正或修改原來的設計,客觀上使軟件較難維護。1.1軟件工程簡述四、產生軟件危機的原因1.1軟件工程簡述(2)軟件不同于一般程序,它的規模大,不易于維護。3.在軟件開發過程中,或多或少地采用了錯誤的方法和技術。4.對用戶需求沒有完整準確的認識,就匆忙著手編寫程序。1.1軟件工程簡述(2)軟件不同于一般程序,它的規模大,不易1.1軟件工程簡述五、解決軟件危機的途徑1.技術措施使用更好的軟件開發方法和開發工具2.組織管理措施軟件開發不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目。1.1軟件工程簡述五、解決軟件危機的途徑1.1軟件工程簡述一、什么是軟件工程軟件工程是指導計算機軟件開發和維護的工程學科。它采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。軟件工程是一門涉及軟件計劃、需求分析、設計、編碼、測試和維護的原理、方法及工具的研究和應用的學科。1.1軟件工程簡述一、什么是軟件工程1.1軟件工程簡述二、軟件工程的基本原理1968年,北大西洋公約組織(NATO),召開的有關計算機軟件會議上正式提出“軟件工程”術語。目前有100多條關于軟件工程的準則,其中最出名的是著名軟件工程專家B.W.Boehm在1983年提出的7條基本原理。1.1軟件工程簡述二、軟件工程的基本原理1.1軟件工程簡述1.用分階段的生命周期計劃嚴格管理經統計表明,不成功的軟件項目中有一半左右是由于計劃不周造成的。Boehm認為,在軟件的整個生命周期中應制定并嚴格執行六類計劃:項目概要計劃、里程碑計劃、項目控制計劃、產品控制計劃、驗證計劃、運行維護計劃。1.1軟件工程簡述1.用分階段的生命周期計劃嚴格管理1.1軟件工程簡述2.堅持進行階段評審大部分錯誤是在編碼之前造成的因此,在每個階段都進行嚴格的評審,以便盡早發現在軟件開發過程的錯誤1.1軟件工程簡述2.堅持進行階段評審1.1軟件工程簡述3.實行嚴格的產品控制在軟件開發過程中不要隨意改變需求,因為改變某項需求往往需要付出較高的代價,但在實踐中用戶往往會提出需求變更,因此需要采取科學的產品控制技術。目前主要實行基準配置管理:基準配置是指經過階段評審后的軟件配置成分,如各個階段產生的文檔或程序代碼。對涉及基準配置的修改,必須經過嚴格的評審,通過后才能實施修改。1.1軟件工程簡述3.實行嚴格的產品控制1.1軟件工程簡述4.采用現代程序設計技術實踐表明:采用先進的技術既可提高軟件開發的效率,又可提高軟件維護的效率。80年代及之前:結構化分析、設計技術90年代:面向對象分析、設計技術1.1軟件工程簡述4.采用現代程序設計技術1.1軟件工程簡述5.結果應能清楚地審查軟件產品是看不見、摸不著的邏輯產品,開發過程難以評價和管理。根據軟件開發項目的總目標及完成期限,規定開發組織的責任和產品標準,使所得的結果能夠清楚地審查1.1軟件工程簡述5.結果應能清楚地審查1.1軟件工程簡述6.開發小組的人員應該少而精開發小組人員的素質和數量是影響軟件產品質量和開發效率的重要因素。開發小組人員數目的增加,使相互交流復雜、費用增加。1.1軟件工程簡述6.開發小組的人員應該少而精1.1軟件工程簡述7.承認不斷改進軟件工程實踐的必要性遵循前6條基本原理,就能夠按照當代軟件工程基本原理實現軟件的工程化生產,但不能保證趕上時代前進的步伐。積極主動采納新的軟件技術,且不斷總結經驗。1.1軟件工程簡述7.承認不斷改進軟件工程實踐的必要性1.1軟件工程簡述三、軟件工程的目標及框架、原則⑴軟件工程的目標可概括為“生產具有正確性、可用性以及開銷合宜的產品”;⑵軟件工程的活動是“生產一個最終滿足需求且達到工程目標的軟件產品所需要的步驟”;⑶軟件工程實施過程中的四條基本原則:①
選取適宜的開發模型;②
采用合適的設計方法;③
提供高質量的工程支持;④
重視開發過程的管理。1.1軟件工程簡述三、軟件工程的目標及框架、原則1.2軟件的生存周期及其開發模型1.“生命周期法”的起源。
軟件工程采用的“生命周期法”,就是從時間角度對軟件開發和維護的復雜問題進行分解,把軟件生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立的任務,然后再逐步完成每個階段的任務.軟件生存周期包括問題定義、可行性分析和項目開發計劃、需求分析、概要設計、詳細設計、編碼、測試、維護等活動,可以將這些活動以適當方式分配到不同階段去完成。1.2軟件的生存周期及其開發模型1.“生命周期法”的起源1.2軟件的生存周期及其開發模型2.生命周期劃分的原則任務的性質盡可能相同,從而降低每個階段任務的復雜性,簡化不同階段之間的聯系,有利于軟件開發過程的組織管理。3.生命周期的劃分軟件生命周期一般分為:軟件定義(問題定義、可行性研究、需求分析)、軟件開發(總體設計、詳細設計、編碼和單元測試、綜合測試)、軟件使用與維護等三個時期。1.2軟件的生存周期及其開發模型2.生命周期劃分的原則1.2軟件的生命周期及其開發模型軟件定義問題定義可行性分析需求分析軟件開發系統設計編碼測試軟件與維護1.2軟件的生命周期及其開發模型軟件定義1.2軟件的生命周期及其開發模型軟件生命周期的各個階段:(1)問題定義(2)可行性分析(3)需求分析
分析軟件需求,編寫軟件需求規格說明(4)概要設計和詳細設計
確定軟件體系結構,設計軟件模塊(5)程序編寫(6)軟件測試(7)運行和維護1.2軟件的生命周期及其開發模型軟件生命周期的各個階段:1.2軟件的生存周期及其開發模型一、瀑布模型瀑布模型的優點:通過設置里程碑,明確每階段的任務與目標。可為每階段制定開發計劃,進行成本預算,組織開發力量。通過階段評審,將開發過程納入正確軌道。嚴格的計劃性保證軟件產品的按時交付。瀑布模型的缺點:缺乏靈活性,不能適應用戶需求的改變。開始階段的小錯誤被逐級放大,可能導致軟件產品報廢。返回上一級的開發需要十分高昂的代價。隨著軟件規模和復雜性的增加,軟件產品成功的機率大幅下降。瀑布模型的適應范圍:它主要適應于小規模的軟件開發。1.2軟件的生存周期及其開發模型一、瀑布模型軟件工程第一章緒論2.2軟件開發過程模型二、原型模型1.基本思想在獲取一組基本的需求定義后,利用高級軟件工具的可開發環境,快速地建立一個目標系統的最初版本,并把它交給用戶試用、補充和修改,再進行新的版本開發。反復進行這個過程,直到得出系統的“精確解”,即用戶滿意為止。經過這樣一個反復補充和修改的過程,應用系統的“最初版本”就逐步演變為系統的“最終版本”。2.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB62T 4001-2019 半干旱區苦蕎麥全膜覆土穴播栽培技術規程
- 2022重慶市八年級生物地理結業考試試卷
- 汽車維修店鋪轉讓合同范文
- 二年級語文批判性思維訓練計劃
- 書法教育的多元評價教案范文
- 石油鉆井吊裝安全防護措施
- 汽車電子技術研究工作計劃
- 幼兒園安全管理職責與分工
- 雨水排放管道維護與修復流程
- 2025年萬科房地產公司土地開發流程
- 《攀巖基礎常識》課件
- (新版)妊娠期惡心嘔吐及妊娠劇吐管理指南解讀
- 《金屬非金屬露天礦山及尾礦庫重大事故隱患判定標準解讀》知識培訓
- 《城市道路清掃保潔與質量評價標準》
- 數字人力資源管理 課件 02第二章 數字化時代人力資源管理思維
- 天津市河西區下學期2025屆高考數學押題試卷含解析
- 《介紹湖北的》課件
- 園林綠化工程《安全文明施工方案》
- 《現代漢語》課件-句型與句式
- 供應商品質改善及計劃
- 齊魯文化(齊魯師范學院)知到智慧樹章節答案
評論
0/150
提交評論