軟件工程課件第1章_第1頁
軟件工程課件第1章_第2頁
軟件工程課件第1章_第3頁
軟件工程課件第1章_第4頁
軟件工程課件第1章_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2023/12/61軟件工程劉永利河南理工大學(xué)2023年12月6日2023/12/62參考資料張海藩,《軟件工程導(dǎo)論》,清華大學(xué)出版社,1998第三版鄭人杰,殷仁昆,陶永雷,《實(shí)用軟件工程》,清華大學(xué)出版社,1997第二版2023/12/63考核要求平時成績30%考勤課堂筆記少量習(xí)題考試成績70%2023/12/64第一篇

軟件工程與軟件過程2023/12/65第1章軟件工程軟件危機(jī)1.1軟件工程1.2小結(jié)1.32023/12/661.1軟件危機(jī)1.1.1計(jì)算機(jī)系統(tǒng)的發(fā)展歷程所謂計(jì)算機(jī)系統(tǒng)就是指適當(dāng)?shù)亟M織在一起的一系列系統(tǒng)元素的集合。這些系統(tǒng)元素互相配合、相互協(xié)作,通過對信息的處理而完成預(yù)先定義的目標(biāo)。迄今為止,計(jì)算機(jī)系統(tǒng)已經(jīng)經(jīng)歷了四個不同的發(fā)展階段。2023/12/67從60年代中期到70年代中期,是計(jì)算機(jī)系統(tǒng)發(fā)展的第二代。計(jì)算機(jī)系統(tǒng)發(fā)展的第三代從20世紀(jì)70年代中期開始,并且跨越了整整10年。在計(jì)算機(jī)系統(tǒng)發(fā)展的第四代已經(jīng)不再看重單臺計(jì)算機(jī)和程序,人們感受到的是硬件和軟件的綜合效果。2023/12/681.1.2軟件危機(jī)的含義軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這些問題絕不僅僅是不能正常運(yùn)行的軟件才具有的,實(shí)際上,幾乎所有軟件都不同程度地存在這些問題。2023/12/69軟件危機(jī)典型表現(xiàn)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件產(chǎn)品的質(zhì)量往往靠不住軟件常常是不可維護(hù)的。軟件通常沒有適當(dāng)?shù)奈臋n資料。軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。軟件開發(fā)生產(chǎn)率提高的速度,既跟不上硬件的發(fā)展速度,也遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢。2023/12/610以上列舉的僅僅是軟件危機(jī)的一些明顯的表現(xiàn),與軟件開發(fā)和維護(hù)有關(guān)的問題遠(yuǎn)遠(yuǎn)不止這些。2023/12/6111.1.3產(chǎn)生軟件危機(jī)的原因在軟件開發(fā)和維護(hù)的過程中存在這么多嚴(yán)重問題,一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法不正確有關(guān)。與軟件開發(fā)和維護(hù)有關(guān)的許多錯誤認(rèn)識和作法的形成,可以歸因于在計(jì)算機(jī)系統(tǒng)發(fā)展的早期階段軟件開發(fā)的個體化特點(diǎn)。錯誤的認(rèn)識和作法主要表現(xiàn)為忽視軟件需求分析的重要性,認(rèn)為軟件開發(fā)就是寫程序并設(shè)法使之運(yùn)行,輕視軟件維護(hù)等。2023/12/612圖1.1引入同一變動付出的代價隨時間變化的趨勢2023/12/613了解產(chǎn)生軟件危機(jī)的原因,澄清錯誤認(rèn)識,建立起關(guān)于軟件開發(fā)和維護(hù)的正確概念,還僅僅是解決軟件危機(jī)的開始,全面解決軟件危機(jī)需要一系列綜合措施。2023/12/6141.1.4消除軟件危機(jī)的途徑為了消除軟件危機(jī),首先應(yīng)該對計(jì)算機(jī)軟件有一個正確的認(rèn)識。應(yīng)該推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯誤概念和做法。2023/12/615應(yīng)該開發(fā)和使用更好的軟件工具??傊瑸榱讼浖C(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。1.1.4消除軟件危機(jī)的途徑(cont.)2023/12/616第1章軟件工程軟件危機(jī)1.1軟件工程1.2小結(jié)1.32023/12/6171.2軟件工程1.2.1什么是軟件工程概括地說,軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。2023/12/6181.2.2軟件工程的基本原理1.用分階段的生命周期計(jì)劃嚴(yán)格管理2.堅(jiān)持進(jìn)行階段評審3.實(shí)行嚴(yán)格的產(chǎn)品控制4.采用現(xiàn)代程序設(shè)計(jì)技術(shù)5.結(jié)果應(yīng)能清楚地審查6.開發(fā)小組的人員應(yīng)該少而精7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2023/12/6191.2.3軟件工程方法學(xué)通常把在軟件生命周期全過程中使用的一整套技術(shù)的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。在軟件工程范疇中,這兩個詞的含義基本相同。2023/12/620軟件工程方法學(xué)包括三個要素方法方法是完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“如何做”的問題工具工具是為方法的運(yùn)用提供自動的或半自動的軟件支撐環(huán)境過程過程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。2023/12/621目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。2023/12/622傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。當(dāng)軟件規(guī)模較大,或者對軟件的需求是模糊的或隨時間變化的時候,使用結(jié)構(gòu)化范型開發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開發(fā)出的軟件,維護(hù)起來通常都很困難。2023/12/623面向?qū)ο蠓椒▽W(xué)概括地說,面向?qū)ο蠓椒ň哂兴膫€要點(diǎn):把對象(Object)作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。面向?qū)ο蟪绦蚴怯蓪ο蠼M成的,程序中任何元素都是對象,復(fù)雜對象由比較簡單的對象組合而成。把所有對象都劃分成類(Class)。每個類都定義了一組數(shù)據(jù)和一組操作,類是對具有相同數(shù)據(jù)和相同操作的一組相似對象的定義。數(shù)據(jù)用于表示對象的靜態(tài)屬性,是對象的狀態(tài)信息,而施加于數(shù)據(jù)之上的操作用于實(shí)現(xiàn)對象的動態(tài)行為。2023/12/624面向?qū)ο蠓椒▽W(xué)(cont.)按照父類(或稱為基類)與子類(或稱為派生類)的關(guān)系,把若干個相關(guān)類組成一個層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級)。在類等級中,下層派生類自動擁有上層基類中定義的數(shù)據(jù)和操作,這種現(xiàn)象稱為繼承。對象彼此之間僅能通過發(fā)送消息互相聯(lián)系。對象與傳統(tǒng)數(shù)據(jù)有本質(zhì)區(qū)別,它不是被動地等待外界對它施加操作,相反,它是進(jìn)行處理的主體,必須向它發(fā)消息請求它執(zhí)行它的某個操作以處理它的數(shù)據(jù),而不能從外界直接對它的數(shù)據(jù)進(jìn)行處理。2023/12/625面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則,是盡可能模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識世界解決問題的方法與過程。從而使描述問題的問題空間(也稱為問題域)與實(shí)現(xiàn)解法的解空間(也稱為求解域)在結(jié)構(gòu)上盡可能一致。2023/12/626正確運(yùn)用面向?qū)ο蠓椒▽W(xué)開發(fā)軟件,則最終的軟件產(chǎn)品由許多較小的基本上獨(dú)立的對象組成,而且大多數(shù)對象都與現(xiàn)實(shí)世界中的實(shí)體相對應(yīng)。因此,降低了軟件產(chǎn)品的復(fù)雜性,提高了軟件產(chǎn)品的可理解性,簡化了軟件的開發(fā)和維護(hù)工作。2023/12/627由于對象是相對獨(dú)立的實(shí)體,容易在以后的軟件產(chǎn)品中重復(fù)使用,因此,面向?qū)ο蠓缎偷牧硪粋€重要優(yōu)點(diǎn)是促進(jìn)了軟件重用。面用對象方法特有的繼承性,進(jìn)一步提高了面向?qū)ο筌浖目芍赜眯浴?023/12/6281.3小結(jié)本章對計(jì)算機(jī)軟件工程學(xué)作了一個簡短的概述。首先通過回顧計(jì)算機(jī)系統(tǒng)發(fā)展簡史,說明開發(fā)軟件的一些錯誤方法和觀念是怎樣形成的。2023/12/629然后列舉了這些錯誤方法帶來的嚴(yán)重弊病(軟件危機(jī)),澄清了一些糊涂觀念。為了計(jì)算機(jī)系統(tǒng)的進(jìn)一步發(fā)展,需要認(rèn)真研究開發(fā)和維護(hù)軟件的科學(xué)技術(shù)。2023/12/630應(yīng)總結(jié)計(jì)算機(jī)軟件的歷史經(jīng)驗(yàn)教訓(xùn),借鑒其他工程領(lǐng)域的管理技術(shù),逐步使軟件工程這門新學(xué)科發(fā)展和完善起來。2023/12/631本章力求對軟件工程的基本原理和方法學(xué)有概括的本質(zhì)的認(rèn)識。生命周期方法學(xué)把軟件生命周期劃分為若干個相對獨(dú)立的階段。2023/12/632每個階段完成一些確定的任務(wù),交出最終的軟件配置的一個或幾個成分;基本上按順序完成各階段任務(wù),在完成每個階段的任務(wù)時采用行之有效的結(jié)構(gòu)化技術(shù)和適當(dāng)?shù)妮o助工具;在每個階段結(jié)束時都進(jìn)行嚴(yán)格的技術(shù)審查和管理復(fù)審。2023/12/633當(dāng)軟件規(guī)模較大或?qū)浖男枨竽:鬃儠r,采用生命周期方法學(xué)開發(fā)往往不能成功,近年來在許多應(yīng)用領(lǐng)域面向?qū)ο蠓椒▽W(xué)已經(jīng)迅速地取代了傳統(tǒng)方法學(xué)。面向?qū)ο蠓椒ㄓ兴膫€要點(diǎn),可以用下列方程式概括:2023/12/634面向?qū)ο蠓椒▽W(xué)=對象+類+繼承+用消息通信也就是說,面向?qū)ο蠓椒ň褪羌仁褂脤ο笥质褂妙惡屠^承等機(jī)制,而且對象之間僅能通過傳遞消息實(shí)現(xiàn)彼此通信。2023/12/635如

溫馨提示

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

最新文檔

評論

0/150

提交評論