01-1-軟件工程概述_第1頁(yè)
01-1-軟件工程概述_第2頁(yè)
01-1-軟件工程概述_第3頁(yè)
01-1-軟件工程概述_第4頁(yè)
01-1-軟件工程概述_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件工程2022/9/142第1章 軟件工程學(xué)概述 1.1 軟件危機(jī) 1.2 軟件工程 1.3 軟件生命周期1.4 軟件過(guò)程1.5 小結(jié)2022/9/143軟件危機(jī)的介紹1.1 軟件危機(jī)硬件和軟件發(fā)展的不平衡,硬件性能的發(fā)展極其迅速,給軟件提出了更高的要求軟件開(kāi)發(fā)和維護(hù)成本越來(lái)越大,令人吃驚地高失敗的軟件開(kāi)發(fā)項(xiàng)目屢見(jiàn)不鮮什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。2022/9/144軟件危機(jī)軟件危機(jī)的表現(xiàn)軟件成本日益增長(zhǎng) 開(kāi)發(fā)進(jìn)度難以控制 軟件質(zhì)量差 軟件維護(hù)困難軟件開(kāi)發(fā)速度跟不上計(jì)算機(jī)發(fā)展速度軟件危機(jī)的原因技術(shù)原因軟件規(guī)模越來(lái)越大 軟件復(fù)雜度越來(lái)越高 管理

2、原因軟件開(kāi)發(fā)缺乏正確的理論指導(dǎo),過(guò)分依靠個(gè)人技巧和創(chuàng)造性對(duì)用戶(hù)需求沒(méi)有完整準(zhǔn)確的認(rèn)識(shí),就匆忙著手編寫(xiě)程序如何克服軟件危機(jī) :軟件工程2022/9/1452022/9/146引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢(shì)問(wèn)題在哪里?軟件開(kāi)發(fā)鏈條的“放大”作用。(規(guī)范每個(gè)環(huán)節(jié))只有早期發(fā)現(xiàn)問(wèn)題,才會(huì)盡量減少損失。(失之毫厘,謬以千里)但客觀規(guī)律:用戶(hù)的牙膏不會(huì)一下子擠完。(靜態(tài)開(kāi)發(fā)方法“天生”會(huì)延遲問(wèn)題的發(fā)現(xiàn))2022/9/147消除軟件危機(jī)的途徑對(duì)計(jì)算機(jī)軟件正確認(rèn)識(shí)。(軟件的偏見(jiàn)、定義及特征)推廣使用開(kāi)發(fā)軟件成功的技術(shù)和方法,研究探索更好更有效的技術(shù)和方法,消除錯(cuò)誤概念和做法。開(kāi)發(fā)和使用更好的軟件工具。

3、需要組織管理措施。軟件工程正是從技術(shù)和管理兩方面研究如何更好地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟件的一門(mén)新興學(xué)科。無(wú)章法(個(gè)人英雄主義) 工程項(xiàng)目管理模式(團(tuán)隊(duì)合作開(kāi)發(fā))軟件工程三要素2022/9/1481.2 軟件工程軟件工程(IEEE)1968年秋,提出軟件工程1) 將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)。2) 對(duì)1)中方法的理論研究。主要目標(biāo):高效開(kāi)發(fā)高質(zhì)量軟件。軟件工程規(guī)范工業(yè)界:參照修改其它工程項(xiàng)目的管理模式如 ISO, PMI, Six Sigma學(xué)術(shù)界:CMM2022/9/149軟件工程基本原理 (開(kāi)發(fā)與維護(hù)的指導(dǎo))用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)

4、行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開(kāi)發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2022/9/1410軟件的生命周期 軟件開(kāi)發(fā)過(guò)程瀑布模型快速原型、螺旋模型 噴泉模型等軟件開(kāi)發(fā)新過(guò)程敏捷軟件開(kāi)發(fā)(極限編程XP)統(tǒng)一軟件開(kāi)發(fā)過(guò)程軟件開(kāi)發(fā)的規(guī)律軟件開(kāi)發(fā)方法 結(jié)構(gòu)化方法面向?qū)ο蠓椒↗ackson系統(tǒng)開(kāi)發(fā)方法模塊化方法軟件復(fù)用2022/9/1411軟件工程方法學(xué)把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)范型(paradigm)。軟件工程(方法學(xué))三個(gè)要素:方法、工具和過(guò)程。方法是完成軟件開(kāi)發(fā)各項(xiàng)任務(wù)的技術(shù),回答“如何做”;工具

5、是為方法的運(yùn)用提供自動(dòng)或半自動(dòng)軟件支撐環(huán)境,回答“用什么做”;過(guò)程是為獲得高質(zhì)量的軟件要完成的一系列任務(wù)的框架,規(guī)定完成各項(xiàng)任務(wù)步驟,回答“如何控制、協(xié)調(diào)、保證質(zhì)量”。2022/9/1412傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。 當(dāng)軟件規(guī)模較大,或?qū)浖男枨笫悄:幕螂S時(shí)間變化的時(shí)候,使用結(jié)構(gòu)化范型開(kāi)發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)通常都很困難。結(jié)構(gòu)化靜態(tài)分析,面向?qū)ο髣?dòng)態(tài)分析傳統(tǒng)方法學(xué)2022/9/1413傳統(tǒng)方法的特點(diǎn)生命周期模型軟件過(guò)程劃分為若干個(gè)階段每個(gè)階段有各自的任務(wù)階段之間有某種順序性2022/9/1414面向?qū)ο蠓椒ǎ簩?duì)象作為融合數(shù)據(jù)及在數(shù)據(jù)之

6、上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對(duì)象都劃分成類(lèi)(Class)。每個(gè)類(lèi)都定義了一組數(shù)據(jù)和一組操作。按照父類(lèi)(或稱(chēng)為基類(lèi))與子類(lèi)(或稱(chēng)為派生類(lèi))的關(guān)系,把若干個(gè)相關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱(chēng)為類(lèi)等級(jí))。在類(lèi)等級(jí)中,下層派生類(lèi)自動(dòng)擁有上層基類(lèi)中定義的數(shù)據(jù)和操作,稱(chēng)為繼承。對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系封裝性。數(shù)據(jù):靜態(tài)操作:動(dòng)態(tài)Everything is Object.2022/9/1415OO特點(diǎn)面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則,是盡可能模擬人類(lèi)習(xí)慣的思維方式。用面向?qū)ο蠓椒▽W(xué)開(kāi)發(fā)軟件的過(guò)程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過(guò)程。概念和表示方法上的一致性,階段間平滑(無(wú)縫)過(guò)渡。特殊到一

7、般的歸納思維過(guò)程;一般到特殊的演繹思維過(guò)程。(繼承的思想)2022/9/1416OO特點(diǎn) (2)最終產(chǎn)品中的對(duì)象與現(xiàn)實(shí)世界中的實(shí)體相對(duì)應(yīng),降低了復(fù)雜性,提高了可理解性,簡(jiǎn)化了軟件的開(kāi)發(fā)和維護(hù)工作。對(duì)象是相對(duì)獨(dú)立的實(shí)體,容易在軟件產(chǎn)品中重復(fù)使用,促進(jìn)了軟件重用。面用對(duì)象方法特有的繼承性,也進(jìn)一步提高了面向?qū)ο筌浖目芍赜眯浴?022/9/1417當(dāng)需求變化時(shí):要求服務(wù)員禮貌待客!- 問(wèn)候模擬人類(lèi)思維迭代開(kāi)發(fā)設(shè)計(jì)簡(jiǎn)單、容易理解2022/9/1418面向?qū)ο蠓治鲱?lèi)圖的例子2022/9/14191.3 軟件生命周期 軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)

8、階段,每個(gè)階段有各自的任務(wù)。1軟件定義2軟件開(kāi)發(fā)3運(yùn)行維護(hù)2022/9/1420問(wèn)題定義(領(lǐng)域分析1)要解決的問(wèn)題是什么可行性研究 (領(lǐng)域分析2,問(wèn)題背景)上一個(gè)階段所確定的問(wèn)題是否有行得通的解決辦法需求分析仍然不是具體地解決客戶(hù)的問(wèn)題,而是準(zhǔn)確地回答“目標(biāo)系統(tǒng)必須做什么”。要用正式文檔準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求,這份文檔通常稱(chēng)為規(guī)格說(shuō)明(specification)。2022/9/1421概要設(shè)計(jì)概括地回答“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”這個(gè)問(wèn)題。概要設(shè)計(jì)又稱(chēng)為初步設(shè)計(jì)、邏輯設(shè)計(jì)、高層設(shè)計(jì)或總體設(shè)計(jì)??梢越o出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案。另一項(xiàng)主要任務(wù)是設(shè)計(jì)程序的體系結(jié)構(gòu),即確定程序由哪些模塊組成以及

9、模塊間的關(guān)系。詳細(xì)設(shè)計(jì)任務(wù)是把解法具體化,回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”這個(gè)關(guān)鍵問(wèn)題。還不是編寫(xiě)程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明。又稱(chēng)為模塊設(shè)計(jì)、物理設(shè)計(jì)或低層設(shè)計(jì)。 2022/9/1422編碼和單元測(cè)試關(guān)鍵任務(wù)是寫(xiě)出正確的容易理解、容易維護(hù)的程序模塊,并測(cè)試。綜合測(cè)試關(guān)鍵任務(wù)是通過(guò)各種類(lèi)型的測(cè)試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。集成測(cè)試、驗(yàn)收測(cè)試、系統(tǒng)測(cè)試分析系統(tǒng)的可靠性記錄測(cè)試計(jì)劃、詳細(xì)測(cè)試方案及實(shí)際測(cè)試結(jié)果,作為軟件配置的一部分。2022/9/1423軟件維護(hù)維護(hù)階段的關(guān)鍵任務(wù)是,通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿(mǎn)足用戶(hù)的需要。通常有四類(lèi)維護(hù)活動(dòng)改正性維護(hù),也就是診斷和改正在

10、使用過(guò)程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù),即修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),即根據(jù)用戶(hù)的要求改進(jìn)或擴(kuò)充軟件使它更完善;預(yù)防性維護(hù),即修改軟件為將來(lái)的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。2022/9/14241.4 軟件過(guò)程在實(shí)際軟件開(kāi)發(fā)時(shí),軟件規(guī)模、種類(lèi)、開(kāi)發(fā)環(huán)境及開(kāi)發(fā)時(shí)使用的技術(shù)方法等因素,影響階段的劃分。軟件開(kāi)發(fā)軟件維護(hù)軟件定義生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序,因此,也稱(chēng)為過(guò)程模型。在20世紀(jì)80年代之前,瀑布模型一直是唯一被廣泛采用的生命周期模型,現(xiàn)在仍然是應(yīng)用得最廣泛的過(guò)程模型。按照傳統(tǒng)的瀑布模型來(lái)開(kāi)發(fā)軟件,有如下特點(diǎn)。階段間具有順序性和依賴(lài)性推遲實(shí)現(xiàn)的觀點(diǎn)清楚地區(qū)分邏

11、輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn)。2022/9/1425瀑布模型 2022/9/1426傳統(tǒng)瀑布模型 傳統(tǒng)的瀑布模型 不希望有“變化”變化來(lái)的越晚,付出的代價(jià)越高。設(shè)計(jì)階段過(guò)多的假設(shè),導(dǎo)致理想化、一廂情愿的東西過(guò)多。(用戶(hù)只參與需求)“文檔驅(qū)動(dòng)”,靜態(tài)2022/9/1427質(zhì)量保證的觀點(diǎn)每個(gè)階段都必須完成規(guī)定的文檔,沒(méi)有交出合格的文檔就是沒(méi)有完成該階段的任務(wù)。每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。2022/9/1428實(shí)際瀑布模型可以在一定程度解決“變化”的問(wèn)題如何“擁抱”變化?實(shí)際的瀑布模型2022/9/1429快速原型模型快速建立起可以運(yùn)行的程序,

12、其功能往往是最終產(chǎn)品功能的子集。模型的第一步是快速建立一個(gè)能反映用戶(hù)主要需求的原型系統(tǒng),讓用戶(hù)試用,通過(guò)實(shí)踐了解目標(biāo)系統(tǒng)的概貌。2022/9/1430快速原型模型2022/9/1431快速原型開(kāi)發(fā)快速原型的本質(zhì)是“快速”。盡可能快地建造出原型系統(tǒng),以加速軟件開(kāi)發(fā)過(guò)程,節(jié)約軟件開(kāi)發(fā)成本。原型的用途是獲知用戶(hù)的真正需求,一旦需求確定了,原型將被拋棄。(原型通常沒(méi)有嚴(yán)格的規(guī)范化,缺少文檔,難以維護(hù))2022/9/1432增量模型也稱(chēng)為漸增模型。把軟件產(chǎn)品作為一系列增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。使用增量模型時(shí),第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基

13、本需求,提供最核心的功能。(滾雪球方式)2022/9/1433增量模型瀑布模型:力求一次性給用戶(hù)完整的系統(tǒng)。增量模型:逐步增加系統(tǒng)功能。需要開(kāi)放的架構(gòu)設(shè)計(jì)。2022/9/1434風(fēng)險(xiǎn)更大的增量模型2022/9/1435螺旋模型螺旋模型的基本思想是使用原型及其他方法盡量降低風(fēng)險(xiǎn)。在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原型模型。完整的螺旋模型中帶箭頭的點(diǎn)劃線(xiàn)的長(zhǎng)度代表當(dāng)前累計(jì)的開(kāi)發(fā)費(fèi)用,螺線(xiàn)旋過(guò)的角度值代表開(kāi)發(fā)進(jìn)度。2022/9/1436簡(jiǎn)化的螺旋模型原型模型可以在一定程度上降低風(fēng)險(xiǎn),但對(duì)有些風(fēng)險(xiǎn)也無(wú)能為力。需要專(zhuān)業(yè)的風(fēng)險(xiǎn)評(píng)估人員。2022/9/1437完整的螺旋模型2022/9/1438噴泉模型迭代是OO開(kāi)發(fā)過(guò)程的主要特性。噴泉模型是典型的面向?qū)ο笊芷谀P??!皣娙?體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。為避免噴泉模型的過(guò)分無(wú)序,把一個(gè)線(xiàn)性過(guò)程作為總目標(biāo)。迭代 2022/9/1439噴泉模型迭代:逐步求精階段間沒(méi)有明顯的界限面向?qū)ο蟮乃枷氡WC了各個(gè)階段開(kāi)發(fā)的一致性。2022/9/1440敏捷軟件開(kāi)發(fā)快速適應(yīng)需求變化提高軟件生產(chǎn)率靈活、動(dòng)態(tài)的人員組織方式面向業(yè)務(wù)目標(biāo)持續(xù)改進(jìn)和重組2022/9/1441Rational統(tǒng)一過(guò)程2022/9/1442敏捷過(guò)程與極限編程敏捷軟件開(kāi)發(fā)宣言個(gè)體和交互勝過(guò)過(guò)程和工具可以工作的軟件勝過(guò)面面俱到的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論