軟件工程第1篇-第1章 概述(update)_第1頁
軟件工程第1篇-第1章 概述(update)_第2頁
軟件工程第1篇-第1章 概述(update)_第3頁
軟件工程第1篇-第1章 概述(update)_第4頁
軟件工程第1篇-第1章 概述(update)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2023年12月19日?曲阜師范大學計算機科學學院1第一篇軟件工程學概述第一章概述2023年12月19日?曲阜師范大學計算機科學學院2第一章概述本章的主要目標是介紹軟件工程這門學科,讀完你將了解以下基本內容:軟件工程的相關基本概念:軟件、軟件危機、軟件工程、軟件生命周期、軟件過程等,具體見下述部分介紹。軟件從業(yè)人員的道德和職業(yè)問題對軟件工程產業(yè)的影響。2023年12月19日?曲阜師范大學計算機科學學院3第一章概述1.1

基本概念1.2軟件工程從業(yè)人員的職業(yè)和道德素養(yǎng)

2023年12月19日?曲阜師范大學計算機科學學院41.1基本概念當今世界的信息化進程,愈來愈趨向復雜化、人性化和扁平化。

軟件工程作為一門工程學科,它的主要目標就是驅使軟件系統(tǒng)向高性價比發(fā)展。

具有實時動態(tài)性,抽象、不可觸摸,它的面向對象目標不受物理因素限制。軟件工程同時又是一門比較年輕的學科?!败浖こ獭边@一概念是在1968年NATO會議上針對“軟件危機”的議題提出。

2023年12月19日?曲阜師范大學計算機科學學院51.1基本概念構建這些軟件系統(tǒng)的早期經驗是:個人英雄主義、作坊式非正規(guī)的軟件開發(fā)并不奏效。投資很大,做得很差。制作既滿足用戶要求、又能按期完成并且不超出項目預算的復雜軟件仍然存在很多困難。軟件工程自1968年以來已得到了長足的發(fā)展。面向對象、構件、WEB服務及云計算等的擴充和提高已成為現實。

2023年12月19日?曲阜師范大學計算機科學學院61.1基本概念1.1.1軟件1.1.2軟件危機1.1.3軟件工程1.1.4軟件生命周期1.1.5軟件過程模型1.1.6軟件工程面臨的挑戰(zhàn)2023年12月19日?曲阜師范大學計算機科學學院71.1.1軟件1.1.1.1軟件及組成1.1.1.2軟件的特點1.1.1.3軟件的分類1.1.1.4軟件的發(fā)展階段2023年12月19日?曲阜師范大學計算機科學學院81.1.1.1軟件及組成計算機軟件是與計算機系統(tǒng)操作有關的程序(Program)、規(guī)程、規(guī)則及任何與之有關的文檔和數據。

2023年12月19日?曲阜師范大學計算機科學學院9程序1.

程序程序是用程序設計語言描述的、適合于計算機處理的語句序列,軟件開發(fā)人員根據需求開發(fā)出來滿足用戶。目前的程序設計語言有三種類型:機器語言和匯編語言、獨立于機器的面向過程的語言以及獨立于機器的面向問題的語言,后兩種類型為高級語言。用于科學計算的FORTRAN,用于事務處理的COBOL,支持結構化程序設計的PASCAL,支持現代軟件開發(fā)的C、ADA,支持面向對象設計方法的C++、JAVA等。2023年12月19日?曲阜師范大學計算機科學學院10程序

面向問題的語言是第四代語言(4GL),也稱為非過程式語言。

數據庫查詢語言(StructureQueryLanguage,SQL)、報表語言、機床控制專用語言和電路設計專用語言等都是面向問題的語言。2023年12月19日?曲阜師范大學計算機科學學院11文檔2.文檔文檔(Document)是一種數據媒體和其上所記錄的數據。最新的計算機軟件文檔編制規(guī)范是GB/T8567-2006。2023年12月19日?曲阜師范大學計算機科學學院121.1.1.2軟件的特點軟件是邏輯產品而不是物理產品。軟件開發(fā)與硬件開發(fā)相比,更依賴于開發(fā)人員的業(yè)務素質、智力以及人員的組織、合作和管理。

首先,軟件在運行期間會曝露潛伏的錯誤,這就要進行“糾錯性維護”。其次,用戶有時需要提高和完善軟件的性能,必須對軟件產品進行修改,進行“完善性維護”。再次,由于軟件的長時間運行,為適應新的硬件和軟件環(huán)境,也需要對產品進行修改,進行“適應性維護”。軟件不會磨損和老化,只會退化。

2023年12月19日?曲阜師范大學計算機科學學院131.1.1.3軟件的分類1.系統(tǒng)軟件

計算機系統(tǒng)軟件是計算機管理自身資源(如CPU、內存、外存等)、提高計算機的使用效率并為計算機用戶提供各種服務的基礎軟件。2.實時軟件

監(jiān)控、分析和控制現實世界發(fā)生的事件,以足夠快的速度對輸入信息并在規(guī)定的時間內做出反應,這類軟件稱為實時軟件。2023年12月19日?曲阜師范大學計算機科學學院141.1.1.3軟件的分類3.嵌入式軟件嵌入式計算機系統(tǒng)將計算機嵌入在某一系統(tǒng)中,使之成為該系統(tǒng)的重要組成部分,控制該系統(tǒng)的運行,進而實現一個特定的物理過程。4.科學與工程計算軟件

此類軟件以數值算法為基礎,對數值量進行處理和計算。2023年12月19日?曲阜師范大學計算機科學學院151.1.1.3軟件的分類5.事務處理軟件用于處理事務信息,特別是商務信息的計算機軟件。6.人工智能軟件支持計算機系統(tǒng)產生人類某些智能的軟件。人工智能軟件常用的計算機語言有LISP和PROLOG等。2023年12月19日?曲阜師范大學計算機科學學院161.1.1.3軟件的分類7.個人計算機軟件個人計算機上使用的軟件包括系統(tǒng)軟件和應用軟件兩類。8.CASE工具軟件計算機輔助軟件工程(Computer-AidedSoftwareEngineering,CASE)是指軟件開發(fā)和管理人員在軟件工具的幫助下進行軟件產品的開發(fā)、維護以及開發(fā)過程的管理。2023年12月19日?曲阜師范大學計算機科學學院171.1.1.4軟件的發(fā)展階段第一階段

(20世紀50年代初至20世紀60年代初)是計算機系統(tǒng)開發(fā)的初期階段。這時的通用計算機由于價格昂貴、體積大、功耗高、機器不穩(wěn)定和需要專人維護等原因,只能放在公共的實驗室內供大家使用。

第二階段

(20世紀60年代中期至20世紀70年代末)引進了多用戶、多道程序和人機交互等新概念。實時系統(tǒng)可以從多路信號源上采集、處理、分析和轉換數據,在相當短的時間輸出計算結果。

2023年12月19日?曲阜師范大學計算機科學學院181.1.1.4軟件的發(fā)展階段第三階段(20世紀70年代中期至20世紀80年代末)分布式系統(tǒng)、計算機網絡、嵌入式計算機系統(tǒng)有了很大發(fā)展。微處理器、個人計算機、高性能的桌面工作站具有相當高的性價比,廣泛走進了人們工作、生活的各個方面。

2023年12月19日?曲阜師范大學計算機科學學院191.1.1.4軟件的發(fā)展階段第四階段

(自20世紀80年代末期開始至現在)在很多應用領域,人們開始采用面向對象的技術,專家系統(tǒng)、人工智能軟件、構件開發(fā)、服務化軟件、云計算等開始走向實際應用。20世紀90年代末,Internet技術。21世紀,電子商務、電子政務,服務化軟件、云計算新型軟件模式的出現。2023年12月19日?曲阜師范大學計算機科學學院201.1.2軟件危機1.1.2.1軟件危機的表現1.1.2.2軟件危機的產生原因1.1.2.3軟件危機的克服途徑2023年12月19日?曲阜師范大學計算機科學學院211.1.2.1軟件危機的表現

20世紀60年代末至20世紀70年代初,“軟件危機”直到1968年在原西德加米施(Garmish)召開的國際軟件工程會議上才被世人所注目。計算機生物圈的計算機硬件,卻有一個可怕的摩爾定律。

《人月神話》(TheMythicalMan-Month)。

《沒有銀彈》(NoSilverBullet)。軟件危機概括地包含下述兩方面的問題:如何開發(fā)軟件、如何維護數量不斷膨脹的已有軟件。

2023年12月19日?曲阜師范大學計算機科學學院221.1.2.1軟件危機的表現軟件危機主要有以下一些典型表現:

對軟件開發(fā)成本和進度的估計常常很不準確。用戶對“已完成”的系統(tǒng)不滿意很普遍。軟件產品的質量往往靠不住。軟件常常不可維護。

缺失適當的文檔資料。軟件成本在計算機系統(tǒng)總成本中的比例逐年上升。軟件開發(fā)生產率的速度,遠遠跟不上計算機的普及和深入趨勢。

2023年12月19日?曲阜師范大學計算機科學學院231.1.2.2軟件危機的產生原因軟件危機的原因:

用戶對軟件需求的描述不精確,存在遺留、二義性、錯誤的情況經常發(fā)生

。軟件開發(fā)人員對用戶需求的理解與用戶的本來愿望有差異

。大型軟件項目需要組織一定的人力共同參與完成

。軟件項目開發(fā)人員不能有效、獨立自主地處理大型軟件的全部關系和各個分支

。缺乏有力的方法學和工具的支持

。軟件產品的特殊性和人類智力的局限性導致人們無力處理很多復雜問題

。2023年12月19日?曲阜師范大學計算機科學學院241.1.2.3軟件危機的克服途徑

用現代工程的概念、原理、技術和方法進行軟件的開發(fā)、管理、維護和更新。計算機科學技術誕生了一個新的研究領域——

軟件工程

2023年12月19日?曲阜師范大學計算機科學學院251.1.3軟件工程1.1.3.1軟件工程的定義1.1.3.2軟件工程的基本原理1.1.3.3軟件工程的目標1.1.3.4軟件工程的原則2023年12月19日?曲阜師范大學計算機科學學院261.1.3軟件工程1968年,北大西洋公約組織(NATO)召開計算機科學會議,弗里茲.鮑爾(FritzBauer)首次提出了“軟件工程”的概念。2023年12月19日?曲阜師范大學計算機科學學院271.1.3.1軟件工程的定義

1993年,IEEE對軟件工程的定義為:“將系統(tǒng)的、規(guī)范的、可度量的工程化方法應用于軟件開發(fā)、運行和維護的全過程及有關上述方法的研究”。軟件工程包括三個基本要素:方法、工具和過程。2023年12月19日?曲阜師范大學計算機科學學院281.1.3.2軟件工程的基本原理

著名的軟件工程專家B.W.Boehm綜合這些學者們的意見并總結了TRW公司多年開發(fā)軟件的經驗,1983年在一篇論文中提出了軟件工程的7條基本原理。

2023年12月19日?曲阜師范大學計算機科學學院291.1.3.2軟件工程的基本原理1.用分階段的生命周期計劃嚴格管理2.階段評審2023年12月19日?曲阜師范大學計算機科學學院301.1.3.2軟件工程的基本原理3.嚴格的產品控制4.現代的程序設計技術5.結果應能清楚地審查6.開發(fā)人員應少而精7.軟件工程實踐需不斷改進2023年12月19日?曲阜師范大學計算機科學學院311.1.3.3軟件工程的目標軟件工程的目標:可修改性(Modifiability)有效性(Efficiency)可靠性(Reliability)可理解性(Understandability)

2023年12月19日?曲阜師范大學計算機科學學院321.1.3.3軟件工程的目標可維護性(Maintainability)

2023年12月19日?曲阜師范大學計算機科學學院331.1.3.3軟件工程的目標可重用性(Reusability)可適應性(Adaptability)可移植性(Portability)可追蹤性(Traceability)可互操作性(Interoperability)

2023年12月19日?曲阜師范大學計算機科學學院341.1.3.4軟件工程的原則軟件工程的原則:抽象(Abstraction)

信息隱藏(InformationHiding)

模塊化(Modularity)

局部化(Localization)

2023年12月19日?曲阜師范大學計算機科學學院351.1.3.4軟件工程的原則一致性(Consistency)

完整性(Completeness)

可驗證性(Verifiability)

2023年12月19日?曲阜師范大學計算機科學學院361.1.4軟件生命周期軟件產品從形成概念開始,經過開發(fā)、使用和維護,直到最后退役的全過程稱為軟件生存周期(SoftwareLifeCycle)。2023年12月19日?曲阜師范大學計算機科學學院371.1.4軟件生命周期軟件生命周期由軟件定義、軟件開發(fā)和軟件使用維護退役3個時期。2023年12月19日?曲阜師范大學計算機科學學院381.1.4軟件生命周期1.問題定義要解決的問題是什么?2.可行性研究問題定義所確定的問題有行得通的解決方法嗎?此問題值不值得去解決?3.需求分析為了解決這個問題,目標系統(tǒng)必須要做什么

?

2023年12月19日?曲阜師范大學計算機科學學院391.1.4軟件生命周期4.總體設計概括地說,應該怎樣實現目標系統(tǒng)?5.詳細設計以比較抽象的方式提出解決問題的方法。

6.編碼和單元測試寫出容易理解和容易維護的正確程序模塊。

7.綜合測試通過各種類型的測試使軟件達到預定的要求。

2023年12月19日?曲阜師范大學計算機科學學院401.1.4軟件生命周期8.軟件的使用軟件的使用是軟件發(fā)揮社會和經濟效益的重要實施階段。

9.軟件的維護維護是對軟件產品進行修改或對需求變化做出響應的過程。10.軟件的退役終止對軟件產品的支持,軟件停止使用。2023年12月19日?曲阜師范大學計算機科學學院411.1.5軟件過程模型1.1.5.1瀑布模型1.1.5.2原型模型1.1.5.3增量模型1.1.5.4螺旋模型1.1.5.5噴泉模型1.1.5.6基于四代技術的模型1.1.5.7變換模型1.1.5.8組合模型2023年12月19日?曲阜師范大學計算機科學學院421.1.5軟件過程模型

軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟。軟件過程描述什么人(WHO)、在什么時候(WHEN)、做什么事(WHAT)以及怎樣(HOW)做這些事,以期實現某一特定的具體目標。2023年12月19日?曲阜師范大學計算機科學學院431.1.5.1瀑布模型

瀑布模型(WaterfallModel)也稱之為軟件生存周期模型,由W.Royce于1970年提出。

此模型根據軟件生存周期各個階段的任務,逐步進行階段性變換,直至得到用戶確認的產品為止。

2023年12月19日?曲阜師范大學計算機科學學院441.1.5.1瀑布模型

以充分有效的軟件需求有效為前提,具有順序性、依賴性、推遲時間以及質量保證的特點。它也不是“萬能藥”,主要體現在:

在軟件開發(fā)初始階段指明軟件系統(tǒng)的全部需求是不太可能的,有時甚至是不現實的。需求確定后,用戶和軟件項目負責人要等相當長的時間(經過設計、實現、測試、運行)才能得到一份軟件的最初版本?!捌俨寄P褪墙柚臋n驅動的”是它的另一個主要缺點。2023年12月19日?曲阜師范大學計算機科學學院451.1.5.2原型模型

快速開發(fā)原型的本質是“快速”,實現的途徑有三種:利用個人計算機模擬軟件系統(tǒng)的人機界面和人機交互方式。開發(fā)一個工作原型,實現軟件系統(tǒng)的部分功能,而這部分功能是重要的,也可能是容易產生誤解的。找來一個或幾個正在運行的類似軟件,利用這些軟件向客戶展示軟件需求中的部分或全部功能。2023年12月19日?曲阜師范大學計算機科學學院461.1.5.2原型模型建造原型的過程如圖1.5所示。

原型不能稱之為軟件,UNIXShell和超文本都是廣泛的快速原型語言,近年來,廣泛地使用第四代語言(4GL)構建快速原型。

2023年12月19日?曲阜師范大學計算機科學學院471.1.5.3增量模型

增量模型(IncrementalModel)也稱為漸進模型,它把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。

2023年12月19日?曲阜師范大學計算機科學學院481.1.5.3增量模型增量模型的優(yōu)點體現在:增量模型分批逐步地向用戶提交產品,整個軟件產品被分解成許多增量構件,開發(fā)人員一個構件接一個構件地向用戶提交產品。增量模型逐步增加產品功能,可以使用戶有較充裕的時間學習和適應新產品功能性能,從而減少一個全新的軟件可能給客戶帶來的不適應。

2023年12月19日?曲阜師范大學計算機科學學院491.1.5.3增量模型增量模型的實施也存在一些難度:

在把每個新的增量構件集成到現有軟件體系結構時,必須不破壞原來已開發(fā)出的產品。

在設計軟件體系結構時,必須使之利于擴充,向現有產品中加入新構件的過程也要簡單、方便,即體系結構必須是開放的。2023年12月19日?曲阜師范大學計算機科學學院501.1.5.3增量模型圖1.6描繪了一種高風險的增量模型。

2023年12月19日?曲阜師范大學計算機科學學院511.1.5.4螺旋模型

螺旋模型(SpiralModel)是TRW(湯普森-拉美-伍爾德里奇公司,簡稱為TRW)的B.Boehm于1988年提出的。它基于軟件生存周期模型與原型模型的結合。2023年12月19日?曲阜師范大學計算機科學學院521.1.5.4螺旋模型

螺旋模型主要由四部分組成:需求定義、風險分析、工程實現和評審。

螺旋模型在支持大型軟件開發(fā)方面具有廣泛的應用前景,適用于面向規(guī)格說明、面向過程和面向對象的軟件開發(fā)模型。

2023年12月19日?曲阜師范大學計算機科學學院531.1.5.5噴泉模型

噴泉模型(FountainModel)是一種典型的面向對象軟件開發(fā)模型,迭代是它的主旨思想。

“噴泉”這個詞體現了面向對象軟件開發(fā)過程迭代和無縫的特性,如圖1.8。

2023年12月19日?曲阜師范大學計算機科學學院541.1.5.6基于四代技術的模型

第四代語言(4GL)是R.Ross于1981年提出,采用四代技術開發(fā)軟件的模型,如圖1.92023年12月19日?曲阜師范大學計算機科學學院551.1.5.7變換模型

變換模型(TransformationalModel)是基于形式化規(guī)格說明語言及程序變換的軟件開發(fā)模型。

軟件需求分析確定后,用某種形式化的需求規(guī)格說明語言(如VDM的META-IV、CSP和Z)描述,生成形式化的規(guī)格說明。2023年12月19日?曲阜師范大學計算機科學學院561.1.5.7變換模型

形式化規(guī)格說明語言及其變換描述的研究方興未艾,人們采用的技術手段主要有:基于模型的規(guī)格說明及其變換技術;基于代數結構的規(guī)格說明及其變換技術;基于時序邏輯的規(guī)格說明及驗證技術;基于可視形式化技術的規(guī)格說明等等。2023年12月19日?曲阜師范大學計算機科學學院571.1.5.8組合模型

組合的方式有兩種:

第一種方式是以一種模型為主,嵌入另外一種或幾種模型。

第二種方式是建立軟件開發(fā)的組合模型。

2023年12月19日?曲阜師范大學計算機科學學院581.1.5.8組合模型1→2→6→9→11→13→14的路徑規(guī)劃軟件開發(fā),就是生存周期模型

帶有原型的生存周期模型,開發(fā)路徑為1→3→2→6→9→11→13→14

1→3→2→7→11→13→14

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論