第1章(上).ppt_第1頁
第1章(上).ppt_第2頁
第1章(上).ppt_第3頁
第1章(上).ppt_第4頁
第1章(上).ppt_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程王勇,安徽工程大學計算機與信息學院,參考書推薦軟件工程:實踐者的研究方法Roger S. Pressman萩黃柏素梅宏譯機械工業(yè)出版社現(xiàn)代軟件工程(1,2,3冊) 周英科學出版社實用軟件工程鄭人杰清華大學出版社軟件工程序論第4版張海藩清華大學出版社軟件工程和UML胡林玲編輯長電子工業(yè)出版社軟件工程(第2版)齊志昌等高等教育出版社, 第一章軟件工程1.1軟件工程1.2軟件工程的概念1.3軟件生命周期1.4軟件開發(fā)模型1.5 CASE工具和環(huán)境,第一章軟件和軟件工程,計算機硬件性能大幅提高,應(yīng)用范圍不能滿足各方面的軟件發(fā)展,1.1軟件,1.1.1軟件和軟件的構(gòu)成,定義修正機軟件是與修正機系

2、統(tǒng)操作相關(guān)的程序、規(guī)程、規(guī)則及其相關(guān)文檔和數(shù)據(jù)它由兩部分組成。 一是機器可以執(zhí)行的程序和相關(guān)數(shù)據(jù);二是機器不能執(zhí)行的軟件開發(fā)、運營、維護、使用和培訓(xùn)文檔。 編程語言現(xiàn)在有三種:機器語言,依賴于具體的校正機器,匯編語言,C/C,Java等不依賴于機器的面向過程的語言(高級語言)不依賴于機器的面向問題的語言。 也稱為非進程語言或第四代語言,如數(shù)據(jù)庫查詢語言和報告語言。 程序是完成指定任務(wù)的語句或指令序列。 其三個要素是操作(命令)、數(shù)據(jù)和控制。 文檔是數(shù)據(jù)媒體和其上記錄的數(shù)據(jù),例如文本、圖形、圖形等,記載了軟件的開發(fā)過程。 其讀者是機器和人(包括用戶和開發(fā)者),軟件的開發(fā)過程是從看不見的東西來看的

3、。 其作用很大,主要是用戶與開發(fā)者、開發(fā)者之間的通信和交流開發(fā)過程中管理軟件的維護其作用特殊,因此軟件的文檔編制必須遵循一定的規(guī)范進行。 1.1.2軟件的特點(1/2),(1)軟件不是物理產(chǎn)品而是邏輯實體。 看不見、觸摸不到、沒有物理形態(tài),只要分析、判斷、思考、推論就能知道其功能和性能等。 /文章。 由于軟件的開發(fā)涉及智能活動,因此每個人的智能存在很大差異,同時很多人參與開發(fā)活動,很難控制其開發(fā)過程。 另一方面,邏輯產(chǎn)品的質(zhì)量評價標準的確立和統(tǒng)一是困難的。 (2)軟件生產(chǎn)和硬件差異。 硬件分開發(fā)和具體制造過程兩個階段。 其中后者在控制該產(chǎn)品質(zhì)量的軟件中不存在明顯的制造過程,該產(chǎn)品的質(zhì)量只能在研

4、發(fā)過程中控制。 軟件的開發(fā)是人類智能的高度發(fā)揮,不是傳統(tǒng)的硬件制造,而是依賴開發(fā)者的素質(zhì)、智能、人員和組織、合作和管理。 在很多情況下,軟件的開發(fā)、設(shè)置、修改幾乎都是從最初開始的,很難估算開發(fā)的成本和進展。 (3)軟件維護和硬件維護存在本質(zhì)差異的糾錯性維護完整性維護適應(yīng)性維護受硬件系統(tǒng)的制約(5)軟件的開發(fā)迄今為止從手工藝的開發(fā)方式開始完全受到軟件系統(tǒng)的制約(6)軟件開發(fā)是一個復(fù)雜的過程,其成本非常高。 軟件開發(fā)相關(guān)的人才、財力、持續(xù)時間可能巨大。 (7)軟件不會磨損或老化。必要時,長期經(jīng)驗證的優(yōu)秀軟件不能長期使用。 這個硬件不行。 例如,某些系統(tǒng)軟件和某些應(yīng)用程序軟件是不同的。 1.1.2軟

5、件的特征(2/2),1.1.3軟件的分類(自控),(1)系統(tǒng)軟件計算機系統(tǒng)軟件由計算機管理其資源(例如,CPU、MEM、HHD、外部設(shè)備等)。 (2)實時軟件能夠監(jiān)控、分析和控制現(xiàn)實世界中發(fā)生的事件,以足夠快的速度處理輸入信息,并在規(guī)定的時間內(nèi)作出反應(yīng)。 (3)嵌入式軟件嵌入式修正計算機系統(tǒng)將修正計算機嵌入某個系統(tǒng)中,作為該系統(tǒng)的重要組成部分,控制該系統(tǒng)的運行,進而實現(xiàn)特定的物理過程。 (4)科學和工程修正計算軟件它們在數(shù)值修正計算的基礎(chǔ)上,進行對數(shù)值量的處理和修正計算,主要用于科學和工程修正計算。 (5)事務(wù)處理軟件事務(wù)處理信息,特別是處理商業(yè)信息的軟件。 (6)人工智能軟件幫助計算機系統(tǒng)生

6、成人類的某種智能軟件。 (7)個人計算機軟件(8)CASE工具軟件計算機輔助軟件工程是指軟件開發(fā)和管理員在軟件工具的幫助下對軟件產(chǎn)品的開發(fā)、維護和開發(fā)過程進行管理,1.1.4 第一代(20世紀50年代至20世紀60年代初期):程序設(shè)置修訂階段為第二代(20世紀60年代中期至70年代中期):程序系統(tǒng)階段“軟件工程”學科誕生了。 引入了多用戶、多通道程序、人機交互等新概念。 第三代(1970年代中期至80年代中期):軟件工程階段。 在這個階段,分布式系統(tǒng)、校正機網(wǎng)絡(luò)、嵌入式校正機系統(tǒng)有了很大的發(fā)展。 第四代(20世紀80年代中期至今):軟件產(chǎn)業(yè)在世界經(jīng)濟中占有重要地位。 在許多應(yīng)用領(lǐng)域,人們開始采

7、用面向?qū)ο蠹夹g(shù),專家系統(tǒng)、人工智能軟件趨向于實用化。 1.1.5軟件危機,軟件危機是指在計算機軟件開發(fā)和維護過程中遇到的一系列重大問題。 總而言之,軟件危機是如何開發(fā)軟件以滿足軟件不斷增長的需求以及如何維護不斷增長的現(xiàn)有軟件的? 總的來說,供求關(guān)系不佳,開發(fā)費用失控,進度慢,可靠性差,難以維護。 1 .軟件危機的典型表現(xiàn)往往是軟件開發(fā)成本和進度估計不準確。 用戶對“完成”的軟件系統(tǒng)感到不滿的現(xiàn)象經(jīng)常發(fā)生。 軟件產(chǎn)品的質(zhì)量往往不可靠。 軟件經(jīng)常不能保養(yǎng)。 軟件通常沒有合適的文檔。 軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。 軟件開發(fā)的生產(chǎn)率提高的速度,無論是跟不上硬件的發(fā)展速度,還是跟不上

8、計算機應(yīng)用程序的迅速普及的潮流。 2 .危機產(chǎn)生的原因可以從軟件危機的表現(xiàn)和軟件作為邏輯產(chǎn)品的特殊性發(fā)現(xiàn):1)用戶對軟件需求的描述不準確;2 )軟件開發(fā)者對用戶需求的理解和用戶本來的愿望有所不同, 這種差異會導(dǎo)致開發(fā)的軟件產(chǎn)品和用戶的要求不一致3 )大型軟件項目需要組織一定的人才共同完成,各種人員的信息交換來不及,不準確,有時可能產(chǎn)生誤解4 ) 由于軟件開發(fā)者無法高效且獨立地自主處理大型軟件的所有關(guān)系和各分支,容易發(fā)生疏忽和錯誤5 )缺乏有效的方法論和工具方面的支持,過于依賴程序員在軟件開發(fā)過程中的技術(shù)和創(chuàng)造力另一個原因是: (1)軟件的復(fù)雜性和龐大性;(2)軟件開發(fā)管理的困難性和復(fù)雜性;(3

9、)軟件開發(fā)技術(shù)的落后;(4)生產(chǎn)方式的落后;(5)開發(fā)工具的落后;(6)軟件開發(fā)費用的增加。 2 .危機的原因(續(xù)),3 .克服軟件危機的方法,應(yīng)該對計算機軟件有正確的認識。 為了消除“軟件是程序”的錯誤想法,軟件必須由完整的配置構(gòu)成。 要充分認識到軟件開發(fā)不是一種個人勞動的神秘技術(shù),而應(yīng)該是組織良好、管理嚴謹、各類人員配合、共同完成的工程項目。 的雙曲馀弦值。 應(yīng)該用實踐總結(jié)的開發(fā)軟件來推進成功的技術(shù)和方法,尋找更有效的技術(shù)和方法。 有必要開發(fā)和使用更好的軟件工具。 1.2軟件工程的概念,1.2.1軟件工程的定義,軟件工程以工程、科學和數(shù)學的原則和方法開發(fā)和維護計算機軟件的相關(guān)技術(shù)和管理方法

10、。 1993年IEEE的定義:將系統(tǒng)的規(guī)范、可測量的工程化方法應(yīng)用于軟件開發(fā)、運行和維護的全過程和上述方法的研究。 軟件工程有三個部分:方法、工具和過程。 方法是完成軟件工程項目的技術(shù)手段。 支持項目的修訂計劃和估計、系統(tǒng)和軟件需求分析、軟件設(shè)置修訂、編碼、測試和維護。 工具是人類在軟件開發(fā)活動中智力和體力的擴展和擴展,它是自動或半自動的支持軟件開發(fā)和管理,支持各種軟件文檔的生成。 近年來,集成了軟件開發(fā)的軟件工具和軟件工程數(shù)據(jù)庫,構(gòu)筑了集成的計算機輔助軟件工程(CASE )環(huán)境。 流程貫穿軟件開發(fā)的各個環(huán)節(jié),管理員在軟件工程過程中,要評估、管理和控制軟件開發(fā)的質(zhì)量、進度、成本。 目的是綜合軟

11、件工程的方法和工具,合理且及時地進行修訂機軟件開發(fā)。 定義了方法的使用順序、要求交貨的文檔資料、保證質(zhì)量和協(xié)調(diào)變化所需的管理和軟件開發(fā)各階段的里程碑。 軟件工程的方法、工具和過程構(gòu)成了軟件工程的三個要素。 本書以后的章節(jié)圍繞這“三者”的具體內(nèi)容展開。 1.2.1軟件工程的定義(續(xù))、1.2.2軟件工程的目標、軟件工程的目標是在給予成本、進度的同時開發(fā)可修改、有效、可靠、可理解、可維護、可重用1 )修改7 )具有適應(yīng)性。 8 )可移植性。 9 )可溯性。 10 )互操作性、1.2.3為了實現(xiàn)軟件工程原則、軟件開發(fā)目標,在軟件開發(fā)過程中必須遵循抽象、信息隱藏、模塊化、局部化、完整性、完整性和驗證性

12、工程原則。 (1)抽象化是提取事物最基本的特征和行為,忽略非基本的細節(jié)。 分層抽象方法可以控制軟件開發(fā)過程的復(fù)雜性。 (2)信息隱藏是封裝模塊中的軟件配置修改決策的技術(shù)。 模塊是黑匣子,在模塊的外部只能使用模塊接口說明中記載的信息。 (3)模塊化是程序中邏輯上相對獨立的成分,是獨立的編程單位,需要良好的接口定義。 (4)局部化要求將邏輯上相互關(guān)聯(lián)的校正資源集中在一個物理模塊中。 例如,建議將一個子系統(tǒng)中的所有模塊存儲在一個物理文件中。 (5)一致性軟件系統(tǒng)的各模塊使用一致的概念、符號、術(shù)語的程序內(nèi)部接口必須一致,系統(tǒng)規(guī)格的說明和系統(tǒng)的動作一致。 (6)完整性完全實現(xiàn)了系統(tǒng)所需的所有功能,不應(yīng)丟

13、失重要部分。 發(fā)生系統(tǒng)錯誤時,系統(tǒng)的動作維持正常的功能。(7)在開發(fā)可驗證的系統(tǒng)時,進行階段性的分解。 為了確保系統(tǒng)的準確性,應(yīng)遵循系統(tǒng)易于檢查、測試和評審的原則。 1.2.4軟件工程的基本原理(補充),1983年,Boehm提出了軟件工程的7個基本原理。 他認為這是保證軟件產(chǎn)品質(zhì)量和軟件開發(fā)效率原理的最小集合,但它們是完整的。 1 )為了嚴格管理階段性生命周期修訂計劃,將軟件的生命周期分為幾個階段,相應(yīng)地建立可執(zhí)行的修訂計劃,然后嚴格按照修訂計劃管理軟件的開發(fā)和維護。 項目概要(總)修訂計劃、里程碑(分幾個階段)修訂計劃、項目管理修訂計劃(合理估計資源、成本和進度)、產(chǎn)品管理(需求變更、嚴格

14、的產(chǎn)品管理、主要實施基準分配管理)修訂計劃、驗證修訂計劃、運營維護修訂計劃2 )繼續(xù)階段審查盡量在本階段,盡量留下較少的錯誤。 根據(jù)統(tǒng)一校正,(1)錯誤的大部分在編碼前發(fā)生的(2)錯誤的發(fā)生和改變越慢,成本越高。 3 )實施嚴格的產(chǎn)品管理,不得在軟件開發(fā)過程中隨意改變需求。 因為變更需求往往會花費很高的成本。 改變需求,為了保持各配置的一致性,必須實行嚴格的產(chǎn)品控制,進行嚴格的規(guī)程審查,得到批準后修改軟件需求,4 )采用現(xiàn)代程序設(shè)置修改技術(shù)60年代末提出的結(jié)構(gòu)化程序設(shè)置修改技術(shù),發(fā)展為結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)置修改,對象由于軟件是一種隱形的邏輯產(chǎn)品,工作進展不可見,難以準確測量,軟件產(chǎn)品開發(fā)過程管理困

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論