大連理工軟件學(xué)院軟件工程課件_第1頁
大連理工軟件學(xué)院軟件工程課件_第2頁
大連理工軟件學(xué)院軟件工程課件_第3頁
大連理工軟件學(xué)院軟件工程課件_第4頁
大連理工軟件學(xué)院軟件工程課件_第5頁
已閱讀5頁,還剩121頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

大連理工大學(xué)軟件學(xué)院軟件工程軟件工程2023/1/4大連理工大學(xué)軟件學(xué)院2第1章軟件工程學(xué)概述1.1軟件危機(jī)1.2軟件工程1.3軟件生命周期1.4軟件過程1.5小結(jié)2022/12/28大連理工大學(xué)軟件學(xué)院2第1章軟件工程學(xué)2023/1/4大連理工大學(xué)軟件學(xué)院3軟件及軟件工程為什么要講軟件和軟件工程只有對軟件和軟件的開發(fā)過程有充分的認(rèn)識(shí),才能更好的開發(fā)出過程受控、質(zhì)量受控的軟件產(chǎn)品。對于軟件和軟件開發(fā)過程的認(rèn)識(shí)是困難的,存在很多困惑,需要對此有深刻的認(rèn)識(shí)。2022/12/28大連理工大學(xué)軟件學(xué)院3軟件及軟件工程為什2023/1/4大連理工大學(xué)軟件學(xué)院4一些對軟件的偏見或誤解軟件就是程序,軟件開發(fā)就是編寫程序。編完了程序,就一切OK了。掌握了最新的語言和工具,就能寫程序了。軟件是靈活的,軟件的修改很容易。只要會(huì)編程,就能寫軟件,就是程序員;一個(gè)公司,只要召些程序員,就能開發(fā)好的軟件產(chǎn)品。只要有幾個(gè)有經(jīng)驗(yàn)的程序員,再找些兼職的大學(xué)生,就能組成一個(gè)軟件公司。2022/12/28大連理工大學(xué)軟件學(xué)院4一些對軟件的偏見或2023/1/4大連理工大學(xué)軟件學(xué)院5什么是軟件軟件的定義—軟件由三部分組成:程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集數(shù)據(jù):使程序能夠正確運(yùn)行的數(shù)據(jù)文檔:描述程序研制過程、方法及使用的文檔軟件處理的是信息和邏輯軟件的開發(fā),絕不僅僅是編寫程序軟件圍繞著邏輯進(jìn)行軟件就是一個(gè)信息交換器產(chǎn)生、管理、獲取、修改、顯示或傳送信息軟件≠程序2022/12/28大連理工大學(xué)軟件學(xué)院5什么是軟件軟件的定2023/1/4大連理工大學(xué)軟件學(xué)院6軟件無處不在軟件不僅僅是在計(jì)算機(jī)運(yùn)行的程序,任何預(yù)先定義好的程序步驟的地方,都有軟件的身影軟件的應(yīng)用領(lǐng)域系統(tǒng)軟件實(shí)時(shí)軟件商業(yè)軟件工程和科學(xué)計(jì)算軟件嵌入式軟件個(gè)人計(jì)算機(jī)軟件基于Web的軟件(網(wǎng)站)人工智能軟件2022/12/28大連理工大學(xué)軟件學(xué)院6軟件無處不在軟件不2023/1/4大連理工大學(xué)軟件學(xué)院7軟件的特征軟件是邏輯的而不是有形的系統(tǒng)元件,具有與硬件完全不同的特征軟件是被開發(fā)或設(shè)計(jì)的,而不是傳統(tǒng)意義上被制造的軟件成本集中于開發(fā)上,軟件項(xiàng)目不能像制造項(xiàng)目那樣管理。軟件不會(huì)磨損,不過它會(huì)退化對未發(fā)現(xiàn)的BUG的修復(fù),會(huì)引起較高的故障率。不能像硬件維修中直接更換磨損的零件,軟件維護(hù)要復(fù)雜得多。2022/12/28大連理工大學(xué)軟件學(xué)院7軟件的特征軟件是邏2023/1/4大連理工大學(xué)軟件學(xué)院8軟件的特征大多數(shù)軟件開發(fā),仍是手工作坊式的開發(fā)模式在硬件世界和現(xiàn)代工業(yè)的發(fā)展中,被大量使用的標(biāo)準(zhǔn)設(shè)計(jì)的構(gòu)建是一條非常成功的路子。標(biāo)準(zhǔn)化也是軟件設(shè)計(jì)的一個(gè)方向,軟件產(chǎn)業(yè)正在向基于構(gòu)件的組裝進(jìn)前進(jìn)。軟件是一種邏輯實(shí)體,具有抽象性。人們可以使用軟件,但是無法看到軟件本身的形態(tài)。必須通過觀察、分析、思考、判斷,才能了解其功能、性能等特性。設(shè)計(jì)中,軟件的質(zhì)量、可維護(hù)性、可測試性更加重要。當(dāng)前軟件設(shè)計(jì)的趨勢,是設(shè)計(jì)高度封裝,定義良好的應(yīng)用接口。軟件是復(fù)雜的,而且以后會(huì)更加復(fù)雜軟件是人類有史以來生產(chǎn)的復(fù)雜度最高的工業(yè)產(chǎn)品。軟件的復(fù)雜,不是因?yàn)檐浖旧韽?fù)雜,而是人的思想復(fù)雜。2022/12/28大連理工大學(xué)軟件學(xué)院8軟件的特征大多數(shù)軟2023/1/4大連理工大學(xué)軟件學(xué)院9軟件危機(jī)的介紹1.1軟件危機(jī)硬件和軟件發(fā)展的不平衡,硬件性能的發(fā)展極其迅速,給軟件提出了更高的要求軟件開發(fā)和維護(hù)成本越來越大,令人吃驚地高失敗的軟件開發(fā)項(xiàng)目屢見不鮮什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。2022/12/28大連理工大學(xué)軟件學(xué)院9軟件危機(jī)的介紹1.2023/1/4大連理工大學(xué)軟件學(xué)院10軟件危機(jī)軟件危機(jī)的表現(xiàn)軟件成本日益增長開發(fā)進(jìn)度難以控制軟件質(zhì)量差軟件維護(hù)困難軟件開發(fā)速度跟不上計(jì)算機(jī)發(fā)展速度軟件危機(jī)的原因技術(shù)原因軟件規(guī)模越來越大軟件復(fù)雜度越來越高管理原因軟件開發(fā)缺乏正確的理論指導(dǎo),過分依靠個(gè)人技巧和創(chuàng)造性對用戶需求沒有完整準(zhǔn)確的認(rèn)識(shí),就匆忙著手編寫程序如何克服軟件危機(jī):軟件工程2022/12/28大連理工大學(xué)軟件學(xué)院10軟件危機(jī)軟件危機(jī)2023/1/4大連理工大學(xué)軟件學(xué)院112022/12/28大連理工大學(xué)軟件學(xué)院112023/1/4大連理工大學(xué)軟件學(xué)院12引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢問題在哪里?軟件開發(fā)鏈條的“放大”作用。(規(guī)范每個(gè)環(huán)節(jié))只有早期發(fā)現(xiàn)問題,才會(huì)盡量減少損失。(失之毫厘,謬以千里)但客觀規(guī)律:用戶的牙膏不會(huì)一下子擠完。(靜態(tài)開發(fā)方法“天生”會(huì)延遲問題的發(fā)現(xiàn))2022/12/28大連理工大學(xué)軟件學(xué)院12引入同一變動(dòng)付出2023/1/4大連理工大學(xué)軟件學(xué)院13消除軟件危機(jī)的途徑對計(jì)算機(jī)軟件正確認(rèn)識(shí)。(軟件不僅僅是程序)推廣使用開發(fā)軟件成功的技術(shù)和方法,研究探索更好更有效的技術(shù)和方法,消除錯(cuò)誤概念和做法。開發(fā)和使用更好的軟件工具。需要組織管理措施。軟件工程正是從技術(shù)和管理兩方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。無章法(個(gè)人英雄主義)工程項(xiàng)目管理模式(團(tuán)隊(duì)合作開發(fā))2022/12/28大連理工大學(xué)軟件學(xué)院13消除軟件危機(jī)的途2023/1/4大連理工大學(xué)軟件學(xué)院141.2軟件工程軟件工程(IEEE)1968年秋,提出軟件工程1)將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)。2)對1)中方法的理論研究。軟件工程認(rèn)為:按照工程化的原則和方法組織軟件開發(fā)工作,是擺脫軟件危機(jī)的一個(gè)主要出路。主要目標(biāo):高效開發(fā)高質(zhì)量軟件。軟件工程規(guī)范工業(yè)界:參照修改其它工程項(xiàng)目的管理模式

如ISO,PMI,SixSigma學(xué)術(shù)界:CMM2022/12/28大連理工大學(xué)軟件學(xué)院141.2軟件工程2023/1/4大連理工大學(xué)軟件學(xué)院15軟件工程基本原理(開發(fā)與維護(hù)的指導(dǎo))用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2022/12/28大連理工大學(xué)軟件學(xué)院15軟件工程基本原理2023/1/4大連理工大學(xué)軟件學(xué)院16軟件的生命周期軟件開發(fā)過程瀑布模型快速原型、螺旋模型

噴泉模型等軟件開發(fā)新過程敏捷軟件開發(fā)(極限編程—XP)快速軟件開發(fā)統(tǒng)一軟件開發(fā)過程軟件開發(fā)的規(guī)律軟件開發(fā)方法結(jié)構(gòu)化方法面向?qū)ο蠓椒↗ackson系統(tǒng)開發(fā)方法模塊化方法軟件復(fù)用2022/12/28大連理工大學(xué)軟件學(xué)院16軟件的生命周期2023/1/4大連理工大學(xué)軟件學(xué)院17軟件工程方法學(xué)把在軟件生命周期全過程中使用的一整套技術(shù)的集合稱為方法學(xué)(methodology),也稱范型(paradigm)。軟件工程方法學(xué)三個(gè)要素:方法、工具和過程。方法是完成軟件開發(fā)各項(xiàng)任務(wù)的技術(shù),回答“如何做”;工具是為方法的運(yùn)用提供自動(dòng)或半自動(dòng)軟件支撐環(huán)境,回答“用什么做”;過程是為獲得高質(zhì)量的軟件要完成的一系列任務(wù)的框架,規(guī)定完成各項(xiàng)任務(wù)步驟,回答“如何控制、協(xié)調(diào)、保證質(zhì)量”。管理方法2022/12/28大連理工大學(xué)軟件學(xué)院17軟件工程方法學(xué)管2023/1/4大連理工大學(xué)軟件學(xué)院18目前使用得最廣泛的軟件工程方法學(xué)。傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。

當(dāng)軟件規(guī)模較大,或?qū)浖男枨笫悄:幕螂S時(shí)間變化的時(shí)候,使用結(jié)構(gòu)化范型開發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開發(fā)出的軟件,維護(hù)起來通常都很困難。結(jié)構(gòu)化-靜態(tài)分析,面向?qū)ο螅瓌?dòng)態(tài)分析世界萬物是變化的傳統(tǒng)方法學(xué)與面向?qū)ο蠓椒▽W(xué)2022/12/28大連理工大學(xué)軟件學(xué)院18目前使用得最廣泛2023/1/4大連理工大學(xué)軟件學(xué)院19傳統(tǒng)方法的特點(diǎn)生命周期模型軟件過程劃分為若干個(gè)階段每個(gè)階段有各自的任務(wù)階段之間有某種順序性2022/12/28大連理工大學(xué)軟件學(xué)院19傳統(tǒng)方法的特點(diǎn)生2023/1/4大連理工大學(xué)軟件學(xué)院20面向?qū)ο蠓椒ǎ簩ο笞鳛槿诤蠑?shù)據(jù)及在數(shù)據(jù)之上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對象都劃分成類(Class)。每個(gè)類都定義了一組數(shù)據(jù)和一組操作。按照父類(或稱為基類)與子類(或稱為派生類)的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級)。在類等級中,下層派生類自動(dòng)擁有上層基類中定義的數(shù)據(jù)和操作,稱為繼承。對象彼此間僅能通過發(fā)送消息互相聯(lián)系-封裝性。數(shù)據(jù):靜態(tài)操作:動(dòng)態(tài)EverythingisObject.2022/12/28大連理工大學(xué)軟件學(xué)院20面向?qū)ο蠓椒ǎ簲?shù)2023/1/4大連理工大學(xué)軟件學(xué)院21OO特點(diǎn)面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則,是盡可能模擬人類習(xí)慣的思維方式。用面向?qū)ο蠓椒▽W(xué)開發(fā)軟件的過程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過程。概念和表示方法上的一致性,階段間平滑(無縫)過渡。特殊到一般的歸納思維過程;一般到特殊的演繹思維過程。(繼承的思想)2022/12/28大連理工大學(xué)軟件學(xué)院21OO特點(diǎn)面向?qū)ο?023/1/4大連理工大學(xué)軟件學(xué)院22OO特點(diǎn)(2)最終產(chǎn)品中的對象與現(xiàn)實(shí)世界中的實(shí)體相對應(yīng),降低了復(fù)雜性,提高了可理解性,簡化了軟件的開發(fā)和維護(hù)工作。對象是相對獨(dú)立的實(shí)體,容易在軟件產(chǎn)品中重復(fù)使用,促進(jìn)了軟件重用。面用對象方法特有的繼承性,也進(jìn)一步提高了面向?qū)ο筌浖目芍赜眯浴?022/12/28大連理工大學(xué)軟件學(xué)院22OO特點(diǎn)(2)2023/1/4大連理工大學(xué)軟件學(xué)院23當(dāng)需求變化時(shí):要求服務(wù)員禮貌待客!-問候模擬人類思維迭代開發(fā)設(shè)計(jì)簡單、容易理解2022/12/28大連理工大學(xué)軟件學(xué)院23當(dāng)需求變化時(shí):-2023/1/4大連理工大學(xué)軟件學(xué)院24面向?qū)ο蠓治鲱悎D的例子2022/12/28大連理工大學(xué)軟件學(xué)院24面向?qū)ο蠓治鲱悎D2023/1/4大連理工大學(xué)軟件學(xué)院251.3軟件生命周期

軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段,每個(gè)階段有各自的任務(wù)。1軟件定義2軟件開發(fā)3運(yùn)行維護(hù)2022/12/28大連理工大學(xué)軟件學(xué)院251.3軟件生命2023/1/4大連理工大學(xué)軟件學(xué)院26問題定義(領(lǐng)域分析1)必須回答的關(guān)鍵問題是:“要解決的問題是什么”??尚行匝芯浚I(lǐng)域分析2,問題背景)回答的關(guān)鍵問題是:“上一個(gè)階段所確定的問題是否有行得通的解決辦法”。需求分析仍然不是具體地解決客戶的問題,而是準(zhǔn)確地回答“目標(biāo)系統(tǒng)必須做什么”。此外,要用正式文檔準(zhǔn)確地記錄對目標(biāo)系統(tǒng)的需求,這份文檔通常稱為規(guī)格說明(specification)。2022/12/28大連理工大學(xué)軟件學(xué)院26問題定義(領(lǐng)域分2023/1/4大連理工大學(xué)軟件學(xué)院271.3軟件生命周期了解問題,不能準(zhǔn)確表達(dá),不知道怎樣利用計(jì)算機(jī)實(shí)現(xiàn)了解軟件實(shí)現(xiàn),不清楚用戶要求與用戶配合,充分交流,得出系統(tǒng)需求2022/12/28大連理工大學(xué)軟件學(xué)院271.3軟件生命2023/1/4大連理工大學(xué)軟件學(xué)院28概要設(shè)計(jì)概括地回答“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”這個(gè)問題。概要設(shè)計(jì)又稱為初步設(shè)計(jì)、邏輯設(shè)計(jì)、高層設(shè)計(jì)或總體設(shè)計(jì)??梢越o出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案。另一項(xiàng)主要任務(wù)是設(shè)計(jì)程序的體系結(jié)構(gòu),即確定程序由哪些模塊組成以及模塊間的關(guān)系。詳細(xì)設(shè)計(jì)任務(wù)是把解法具體化,回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”這個(gè)關(guān)鍵問題。還不是編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。又稱為模塊設(shè)計(jì)、物理設(shè)計(jì)或低層設(shè)計(jì)。2022/12/28大連理工大學(xué)軟件學(xué)院28概要設(shè)計(jì)2023/1/4大連理工大學(xué)軟件學(xué)院29編碼和單元測試關(guān)鍵任務(wù)是寫出正確的容易理解、容易維護(hù)的程序模塊,并測試。綜合測試關(guān)鍵任務(wù)是通過各種類型的測試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。集成測試、驗(yàn)收測試、系統(tǒng)測試分析系統(tǒng)的可靠性記錄測試計(jì)劃、詳細(xì)測試方案及實(shí)際測試結(jié)果,作為軟件配置的一部分。2022/12/28大連理工大學(xué)軟件學(xué)院29編碼和單元測試2023/1/4大連理工大學(xué)軟件學(xué)院30軟件維護(hù)維護(hù)階段的關(guān)鍵任務(wù)是,通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。通常有四類維護(hù)活動(dòng)改正性維護(hù),也就是診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù),即修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),即根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件使它更完善;預(yù)防性維護(hù),即修改軟件為將來的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。2022/12/28大連理工大學(xué)軟件學(xué)院30軟件維護(hù)2023/1/4大連理工大學(xué)軟件學(xué)院311.4軟件過程在實(shí)際軟件開發(fā)時(shí),軟件規(guī)模、種類、開發(fā)環(huán)境及開發(fā)時(shí)使用的技術(shù)方法等因素,影響階段的劃分。軟件開發(fā)軟件維護(hù)軟件定義生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序,因此,也稱為過程模型。2022/12/28大連理工大學(xué)軟件學(xué)院311.4軟件過程2023/1/4大連理工大學(xué)軟件學(xué)院32瀑布模型

在20世紀(jì)80年代之前,唯一被廣泛采用的生命周期模型現(xiàn)在仍然是軟件工程中應(yīng)用得最廣泛的過程模型。2022/12/28大連理工大學(xué)軟件學(xué)院32瀑布模型在202023/1/4大連理工大學(xué)軟件學(xué)院33瀑布模型傳統(tǒng)的瀑布模型開發(fā)軟件特點(diǎn):階段間具有順序性和依賴性前一階段完成后開始后一階段前一階段輸出作為后一階段輸入2022/12/28大連理工大學(xué)軟件學(xué)院33瀑布模型傳統(tǒng)的瀑2023/1/4大連理工大學(xué)軟件學(xué)院34瀑布模型傳統(tǒng)的瀑布模型開發(fā)軟件特點(diǎn):推遲實(shí)現(xiàn)不可急于求成清楚地區(qū)分邏輯設(shè)計(jì)與物理實(shí)現(xiàn)盡可能推遲程序的物理實(shí)現(xiàn)2022/12/28大連理工大學(xué)軟件學(xué)院34瀑布模型傳統(tǒng)的瀑2023/1/4大連理工大學(xué)軟件學(xué)院35瀑布模型傳統(tǒng)的瀑布模型開發(fā)軟件特點(diǎn):質(zhì)量保證每個(gè)階段都必須完成規(guī)定的文檔每個(gè)階段結(jié)束前都要對所完成的文檔進(jìn)行評審2022/12/28大連理工大學(xué)軟件學(xué)院35瀑布模型傳統(tǒng)的瀑2023/1/4大連理工大學(xué)軟件學(xué)院36瀑布模型不希望有“變化”變化來的越晚,付出的代價(jià)越高。設(shè)計(jì)階段過多的假設(shè),導(dǎo)致理想化、一廂情愿的東西過多。2022/12/28大連理工大學(xué)軟件學(xué)院36瀑布模型不希望有2023/1/4大連理工大學(xué)軟件學(xué)院37瀑布模型傳統(tǒng)的瀑布模型實(shí)際的瀑布模型2022/12/28大連理工大學(xué)軟件學(xué)院37瀑布模型傳統(tǒng)的瀑2023/1/4大連理工大學(xué)軟件學(xué)院38瀑布模型帶“反饋環(huán)”(實(shí)線箭頭表示開發(fā)過程,虛線箭頭表示維護(hù)過程)發(fā)現(xiàn)錯(cuò)誤時(shí),需要沿圖中左側(cè)的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再繼續(xù)完成后面階段的任務(wù)。2022/12/28大連理工大學(xué)軟件學(xué)院38瀑布模型帶“反饋2023/1/4大連理工大學(xué)軟件學(xué)院39瀑布模型優(yōu)點(diǎn):一定程度解決“變化”的問題。缺點(diǎn):文檔驅(qū)動(dòng),完全依賴書面文字。2022/12/28大連理工大學(xué)軟件學(xué)院39瀑布模型優(yōu)點(diǎn):一2023/1/4大連理工大學(xué)軟件學(xué)院40快速原型模型快速建立起可以在計(jì)算機(jī)上運(yùn)行的程序,其功能往往是最終產(chǎn)品功能的子集。模型的第一步是快速建立一個(gè)能反映用戶主要需求的原型系統(tǒng),讓用戶試用,通過實(shí)踐來了解目標(biāo)系統(tǒng)的概貌。(實(shí)線箭頭表示開發(fā)過程,虛線箭頭表示維護(hù)過程)。2022/12/28大連理工大學(xué)軟件學(xué)院40快速原型模型快速2023/1/4大連理工大學(xué)軟件學(xué)院41快速原型模型用戶試用提出修改意見快速地修改原型系統(tǒng)用戶再次試用…一旦用戶認(rèn)為原型系統(tǒng)確實(shí)能做他們所需要的工作,開發(fā)人員便可據(jù)此書寫規(guī)格說明文檔,根據(jù)這份文檔開發(fā)出的軟件可以滿足用戶的真實(shí)需求。2022/12/28大連理工大學(xué)軟件學(xué)院41快速原型模型用戶2023/1/4大連理工大學(xué)軟件學(xué)院42快速原型模型快速原型的本質(zhì)是“快速”。開發(fā)人員應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本。原型的用途是獲知用戶的真正需求,一旦需求確定了,原型將被拋棄。(原型通常沒有嚴(yán)格的規(guī)范化,缺少文檔,難以維護(hù))2022/12/28大連理工大學(xué)軟件學(xué)院42快速原型模型快速2023/1/4大連理工大學(xué)軟件學(xué)院43快速原型模型2022/12/28大連理工大學(xué)軟件學(xué)院43快速原型模型2023/1/4大連理工大學(xué)軟件學(xué)院44增量模型每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能。(滾雪球方式)增量模型,也稱漸增模型。把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。2022/12/28大連理工大學(xué)軟件學(xué)院44增量模型每個(gè)構(gòu)件2023/1/4大連理工大學(xué)軟件學(xué)院45增量模型增量模型:逐步增加系統(tǒng)功能。較短時(shí)間內(nèi)提交可以工作的產(chǎn)品。減少全新產(chǎn)品帶給客戶的沖擊。困難:需要開放的架構(gòu)設(shè)計(jì)。瀑布、快速原型:力求一次性給用戶完整的系統(tǒng)。2022/12/28大連理工大學(xué)軟件學(xué)院45增量模型增量模型2023/1/4大連理工大學(xué)軟件學(xué)院46逐個(gè)構(gòu)件進(jìn)行分析、設(shè)計(jì)。風(fēng)險(xiǎn)更大。實(shí)現(xiàn)各個(gè)構(gòu)件之前完成全部需求分析、規(guī)格說明、概要設(shè)計(jì)。2022/12/28大連理工大學(xué)軟件學(xué)院46逐個(gè)構(gòu)件進(jìn)行分析2023/1/4大連理工大學(xué)軟件學(xué)院47螺旋模型應(yīng)采取適當(dāng)措施消除或減少開發(fā)軟件時(shí)的風(fēng)險(xiǎn)。螺旋模型的基本思想:使用原型及其他方法來盡量降低風(fēng)險(xiǎn)??梢岳斫鉃樵诿總€(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。簡化的螺旋模型2022/12/28大連理工大學(xué)軟件學(xué)院47螺旋模型應(yīng)采取適2023/1/4大連理工大學(xué)軟件學(xué)院48螺旋模型帶箭頭的點(diǎn)劃線的長度代表當(dāng)前累計(jì)的開發(fā)費(fèi)用。螺線旋過的角度值代表開發(fā)進(jìn)度。每周期對應(yīng)一個(gè)開發(fā)階段完整的螺旋模型2022/12/28大連理工大學(xué)軟件學(xué)院48螺旋模型帶箭頭的2023/1/4大連理工大學(xué)軟件學(xué)院49螺旋模型優(yōu)點(diǎn):有利于軟件的重用有助于把軟件質(zhì)量作為軟件開發(fā)的目標(biāo)減少測試帶來的風(fēng)險(xiǎn)維護(hù)作為開發(fā)的一個(gè)周期,與開發(fā)沒有本質(zhì)區(qū)別風(fēng)險(xiǎn)驅(qū)動(dòng):及時(shí)終止項(xiàng)目弱點(diǎn):風(fēng)險(xiǎn)驅(qū)動(dòng):需要專業(yè)的風(fēng)險(xiǎn)評估人員2022/12/28大連理工大學(xué)軟件學(xué)院49螺旋模型優(yōu)點(diǎn):2023/1/4大連理工大學(xué)軟件學(xué)院50噴泉模型迭代是軟件開發(fā)過程中普遍存在的一種內(nèi)在屬性。軟件過程各個(gè)階段之間的迭代或一個(gè)階段內(nèi)各個(gè)工作步驟之間的迭代,在面向?qū)ο蠓缎椭斜仍诮Y(jié)構(gòu)化范型中更常見。噴泉模型是典型的面向?qū)ο笊芷谀P汀?022/12/28大連理工大學(xué)軟件學(xué)院50噴泉模型迭代是軟2023/1/4大連理工大學(xué)軟件學(xué)院51噴泉模型體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性。圓圈重疊:活動(dòng)之間存在交迭。概念和表示方法的一致性:保證無縫過渡。面向?qū)ο蠓椒ǎ悍治?、設(shè)計(jì)、編碼不存在明顯的邊界。向下箭頭:階段內(nèi)的迭代(求精)。2022/12/28大連理工大學(xué)軟件學(xué)院51噴泉模型體現(xiàn)了面2023/1/4大連理工大學(xué)軟件學(xué)院52噴泉模型把一個(gè)線性過程作為總目標(biāo)——避免開發(fā)過程過分無序??焖僭湍P蛨D中的中心垂線2022/12/28大連理工大學(xué)軟件學(xué)院52噴泉模型把一個(gè)線2023/1/4大連理工大學(xué)軟件學(xué)院53思考題1、假設(shè)要你開發(fā)一個(gè)軟件,該軟件的功能是把讀入的浮點(diǎn)數(shù)開平發(fā),所得結(jié)果應(yīng)該精確到小數(shù)點(diǎn)后4位。一旦實(shí)現(xiàn)并測試完之后,該產(chǎn)品將被拋棄。你打算選用哪種軟件生命周期模型?請說明理由。2、假設(shè)你被任命為一家軟件公司的項(xiàng)目負(fù)責(zé)人,你的工作是管理該公司已被廣泛應(yīng)用的字處理軟件的新版本開發(fā)。由于市場競爭激烈,公司規(guī)定了嚴(yán)格的完成期限并且已對外公布。你打算采用哪種軟件生命周期模型?請說明理由。2022/12/28大連理工大學(xué)軟件學(xué)院53思考題1、假設(shè)要2023/1/4大連理工大學(xué)軟件學(xué)院54思考題1、瀑布模型。需求明確、算法成熟,無需原型。實(shí)現(xiàn)之后即被拋棄,無需增量或螺旋。2、增量模型。時(shí)間緊,任務(wù)并行。廣泛應(yīng)用軟件的新版本,舊版本即相當(dāng)于原型。以后可能擴(kuò)充。2022/12/28大連理工大學(xué)軟件學(xué)院54思考題1、瀑布模2023/1/4大連理工大學(xué)軟件學(xué)院55敏捷軟件開發(fā)快速適應(yīng)需求變化提高軟件生產(chǎn)率靈活、動(dòng)態(tài)的人員組織方式面向業(yè)務(wù)目標(biāo)持續(xù)改進(jìn)和重組2022/12/28大連理工大學(xué)軟件學(xué)院55敏捷軟件開發(fā)快速2023/1/4大連理工大學(xué)軟件學(xué)院56敏捷過程與極限編程敏捷軟件開發(fā)宣言個(gè)體和交互勝過過程和工具可以工作的軟件勝過面面俱到的文檔客戶合作勝過合同談判響應(yīng)變化勝過遵循計(jì)劃極限編程有效實(shí)踐極限編程的整體開發(fā)過程極限編程的迭代過程2022/12/28大連理工大學(xué)軟件學(xué)院56敏捷過程與極限編2023/1/4大連理工大學(xué)軟件學(xué)院57Rational統(tǒng)一過程2022/12/28大連理工大學(xué)軟件學(xué)院57Rational2023/1/4大連理工大學(xué)軟件學(xué)院58微軟過程(MSF)微軟過程準(zhǔn)則微軟軟件生命周期規(guī)劃設(shè)計(jì)開發(fā)穩(wěn)定發(fā)布微軟過程模型MicrosoftOperationsFrameworkMicrosoftSolutionsFrameworkOperateDeployBuildPlan2022/12/28大連理工大學(xué)軟件學(xué)院58微軟過程(MSF2023/1/4大連理工大學(xué)軟件學(xué)院59

1.5小結(jié)

對計(jì)算機(jī)軟件工程學(xué)做了簡短概述。開發(fā)軟件的一些錯(cuò)誤方法和觀念。錯(cuò)誤方法帶來的嚴(yán)重弊病(軟件危機(jī)),澄清了一些糊涂觀念。為了計(jì)算機(jī)系統(tǒng)的進(jìn)一步發(fā)展,需要認(rèn)真研究開發(fā)和維護(hù)軟件的科學(xué)技術(shù)。(引入軟件工程的概念)總結(jié)經(jīng)驗(yàn)教訓(xùn),借鑒工程領(lǐng)域的管理技術(shù),逐步使軟件工程這門新學(xué)科發(fā)展和完善起來。(可持續(xù)發(fā)展)2022/12/28大連理工大學(xué)軟件學(xué)院591.5小結(jié)2023/1/4大連理工大學(xué)軟件學(xué)院60傳統(tǒng)的方法學(xué)面向?qū)ο蠓椒?對象+類+繼承+封裝面向?qū)ο蠓椒ê喕塑浖拈_發(fā)和維護(hù)工作,提高了軟件的可重用性。(OO特點(diǎn)及優(yōu)點(diǎn))軟件生命周期(8個(gè)階段)軟件過程:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型。2022/12/28大連理工大學(xué)軟件學(xué)院60傳統(tǒng)的方法學(xué)2023/1/4大連理工大學(xué)軟件學(xué)院61生命周期模型(即軟件過程模型)規(guī)定了把生命周期劃分成的階段及各個(gè)階段的執(zhí)行順序。瀑布模型歷史悠久、廣為人知,它的優(yōu)勢在于它是規(guī)范的、文檔驅(qū)動(dòng)的方法;開發(fā)階段沒有用戶參與,需要盡早發(fā)現(xiàn)問題??焖僭湍P屯ㄟ^快速構(gòu)建起一個(gè)可運(yùn)行的原型系統(tǒng),讓用戶參與試用,獲取真實(shí)需求;整體結(jié)構(gòu)不清晰;周期長,成本高。2022/12/28大連理工大學(xué)軟件學(xué)院61生命周期模型(即2023/1/4大連理工大學(xué)軟件學(xué)院62增量模型具有能在軟件開發(fā)的早期階段使投資獲得明顯回報(bào)和易于維護(hù)的優(yōu)點(diǎn),但是,要求軟件具有開放結(jié)構(gòu)是使用這種模型時(shí)固有的困難。風(fēng)險(xiǎn)驅(qū)動(dòng)的螺旋模型適用于大規(guī)模的內(nèi)部開發(fā)項(xiàng)目,但需要專業(yè)人員做風(fēng)險(xiǎn)分析。噴泉模型支持迭代、演進(jìn);各階段無明顯界限;適合面向?qū)ο蟮拈_發(fā)。2022/12/28大連理工大學(xué)軟件學(xué)院62增量模型具有能在2023/1/4大連理工大學(xué)軟件學(xué)院63作業(yè)P32,第5題本課結(jié)束,謝謝大家!2022/12/28大連理工大學(xué)軟件學(xué)院63作業(yè)P32,第大連理工大學(xué)軟件學(xué)院軟件工程軟件工程2023/1/4大連理工大學(xué)軟件學(xué)院65第1章軟件工程學(xué)概述1.1軟件危機(jī)1.2軟件工程1.3軟件生命周期1.4軟件過程1.5小結(jié)2022/12/28大連理工大學(xué)軟件學(xué)院2第1章軟件工程學(xué)2023/1/4大連理工大學(xué)軟件學(xué)院66軟件及軟件工程為什么要講軟件和軟件工程只有對軟件和軟件的開發(fā)過程有充分的認(rèn)識(shí),才能更好的開發(fā)出過程受控、質(zhì)量受控的軟件產(chǎn)品。對于軟件和軟件開發(fā)過程的認(rèn)識(shí)是困難的,存在很多困惑,需要對此有深刻的認(rèn)識(shí)。2022/12/28大連理工大學(xué)軟件學(xué)院3軟件及軟件工程為什2023/1/4大連理工大學(xué)軟件學(xué)院67一些對軟件的偏見或誤解軟件就是程序,軟件開發(fā)就是編寫程序。編完了程序,就一切OK了。掌握了最新的語言和工具,就能寫程序了。軟件是靈活的,軟件的修改很容易。只要會(huì)編程,就能寫軟件,就是程序員;一個(gè)公司,只要召些程序員,就能開發(fā)好的軟件產(chǎn)品。只要有幾個(gè)有經(jīng)驗(yàn)的程序員,再找些兼職的大學(xué)生,就能組成一個(gè)軟件公司。2022/12/28大連理工大學(xué)軟件學(xué)院4一些對軟件的偏見或2023/1/4大連理工大學(xué)軟件學(xué)院68什么是軟件軟件的定義—軟件由三部分組成:程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集數(shù)據(jù):使程序能夠正確運(yùn)行的數(shù)據(jù)文檔:描述程序研制過程、方法及使用的文檔軟件處理的是信息和邏輯軟件的開發(fā),絕不僅僅是編寫程序軟件圍繞著邏輯進(jìn)行軟件就是一個(gè)信息交換器產(chǎn)生、管理、獲取、修改、顯示或傳送信息軟件≠程序2022/12/28大連理工大學(xué)軟件學(xué)院5什么是軟件軟件的定2023/1/4大連理工大學(xué)軟件學(xué)院69軟件無處不在軟件不僅僅是在計(jì)算機(jī)運(yùn)行的程序,任何預(yù)先定義好的程序步驟的地方,都有軟件的身影軟件的應(yīng)用領(lǐng)域系統(tǒng)軟件實(shí)時(shí)軟件商業(yè)軟件工程和科學(xué)計(jì)算軟件嵌入式軟件個(gè)人計(jì)算機(jī)軟件基于Web的軟件(網(wǎng)站)人工智能軟件2022/12/28大連理工大學(xué)軟件學(xué)院6軟件無處不在軟件不2023/1/4大連理工大學(xué)軟件學(xué)院70軟件的特征軟件是邏輯的而不是有形的系統(tǒng)元件,具有與硬件完全不同的特征軟件是被開發(fā)或設(shè)計(jì)的,而不是傳統(tǒng)意義上被制造的軟件成本集中于開發(fā)上,軟件項(xiàng)目不能像制造項(xiàng)目那樣管理。軟件不會(huì)磨損,不過它會(huì)退化對未發(fā)現(xiàn)的BUG的修復(fù),會(huì)引起較高的故障率。不能像硬件維修中直接更換磨損的零件,軟件維護(hù)要復(fù)雜得多。2022/12/28大連理工大學(xué)軟件學(xué)院7軟件的特征軟件是邏2023/1/4大連理工大學(xué)軟件學(xué)院71軟件的特征大多數(shù)軟件開發(fā),仍是手工作坊式的開發(fā)模式在硬件世界和現(xiàn)代工業(yè)的發(fā)展中,被大量使用的標(biāo)準(zhǔn)設(shè)計(jì)的構(gòu)建是一條非常成功的路子。標(biāo)準(zhǔn)化也是軟件設(shè)計(jì)的一個(gè)方向,軟件產(chǎn)業(yè)正在向基于構(gòu)件的組裝進(jìn)前進(jìn)。軟件是一種邏輯實(shí)體,具有抽象性。人們可以使用軟件,但是無法看到軟件本身的形態(tài)。必須通過觀察、分析、思考、判斷,才能了解其功能、性能等特性。設(shè)計(jì)中,軟件的質(zhì)量、可維護(hù)性、可測試性更加重要。當(dāng)前軟件設(shè)計(jì)的趨勢,是設(shè)計(jì)高度封裝,定義良好的應(yīng)用接口。軟件是復(fù)雜的,而且以后會(huì)更加復(fù)雜軟件是人類有史以來生產(chǎn)的復(fù)雜度最高的工業(yè)產(chǎn)品。軟件的復(fù)雜,不是因?yàn)檐浖旧韽?fù)雜,而是人的思想復(fù)雜。2022/12/28大連理工大學(xué)軟件學(xué)院8軟件的特征大多數(shù)軟2023/1/4大連理工大學(xué)軟件學(xué)院72軟件危機(jī)的介紹1.1軟件危機(jī)硬件和軟件發(fā)展的不平衡,硬件性能的發(fā)展極其迅速,給軟件提出了更高的要求軟件開發(fā)和維護(hù)成本越來越大,令人吃驚地高失敗的軟件開發(fā)項(xiàng)目屢見不鮮什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。2022/12/28大連理工大學(xué)軟件學(xué)院9軟件危機(jī)的介紹1.2023/1/4大連理工大學(xué)軟件學(xué)院73軟件危機(jī)軟件危機(jī)的表現(xiàn)軟件成本日益增長開發(fā)進(jìn)度難以控制軟件質(zhì)量差軟件維護(hù)困難軟件開發(fā)速度跟不上計(jì)算機(jī)發(fā)展速度軟件危機(jī)的原因技術(shù)原因軟件規(guī)模越來越大軟件復(fù)雜度越來越高管理原因軟件開發(fā)缺乏正確的理論指導(dǎo),過分依靠個(gè)人技巧和創(chuàng)造性對用戶需求沒有完整準(zhǔn)確的認(rèn)識(shí),就匆忙著手編寫程序如何克服軟件危機(jī):軟件工程2022/12/28大連理工大學(xué)軟件學(xué)院10軟件危機(jī)軟件危機(jī)2023/1/4大連理工大學(xué)軟件學(xué)院742022/12/28大連理工大學(xué)軟件學(xué)院112023/1/4大連理工大學(xué)軟件學(xué)院75引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢問題在哪里?軟件開發(fā)鏈條的“放大”作用。(規(guī)范每個(gè)環(huán)節(jié))只有早期發(fā)現(xiàn)問題,才會(huì)盡量減少損失。(失之毫厘,謬以千里)但客觀規(guī)律:用戶的牙膏不會(huì)一下子擠完。(靜態(tài)開發(fā)方法“天生”會(huì)延遲問題的發(fā)現(xiàn))2022/12/28大連理工大學(xué)軟件學(xué)院12引入同一變動(dòng)付出2023/1/4大連理工大學(xué)軟件學(xué)院76消除軟件危機(jī)的途徑對計(jì)算機(jī)軟件正確認(rèn)識(shí)。(軟件不僅僅是程序)推廣使用開發(fā)軟件成功的技術(shù)和方法,研究探索更好更有效的技術(shù)和方法,消除錯(cuò)誤概念和做法。開發(fā)和使用更好的軟件工具。需要組織管理措施。軟件工程正是從技術(shù)和管理兩方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。無章法(個(gè)人英雄主義)工程項(xiàng)目管理模式(團(tuán)隊(duì)合作開發(fā))2022/12/28大連理工大學(xué)軟件學(xué)院13消除軟件危機(jī)的途2023/1/4大連理工大學(xué)軟件學(xué)院771.2軟件工程軟件工程(IEEE)1968年秋,提出軟件工程1)將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)。2)對1)中方法的理論研究。軟件工程認(rèn)為:按照工程化的原則和方法組織軟件開發(fā)工作,是擺脫軟件危機(jī)的一個(gè)主要出路。主要目標(biāo):高效開發(fā)高質(zhì)量軟件。軟件工程規(guī)范工業(yè)界:參照修改其它工程項(xiàng)目的管理模式

如ISO,PMI,SixSigma學(xué)術(shù)界:CMM2022/12/28大連理工大學(xué)軟件學(xué)院141.2軟件工程2023/1/4大連理工大學(xué)軟件學(xué)院78軟件工程基本原理(開發(fā)與維護(hù)的指導(dǎo))用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2022/12/28大連理工大學(xué)軟件學(xué)院15軟件工程基本原理2023/1/4大連理工大學(xué)軟件學(xué)院79軟件的生命周期軟件開發(fā)過程瀑布模型快速原型、螺旋模型

噴泉模型等軟件開發(fā)新過程敏捷軟件開發(fā)(極限編程—XP)快速軟件開發(fā)統(tǒng)一軟件開發(fā)過程軟件開發(fā)的規(guī)律軟件開發(fā)方法結(jié)構(gòu)化方法面向?qū)ο蠓椒↗ackson系統(tǒng)開發(fā)方法模塊化方法軟件復(fù)用2022/12/28大連理工大學(xué)軟件學(xué)院16軟件的生命周期2023/1/4大連理工大學(xué)軟件學(xué)院80軟件工程方法學(xué)把在軟件生命周期全過程中使用的一整套技術(shù)的集合稱為方法學(xué)(methodology),也稱范型(paradigm)。軟件工程方法學(xué)三個(gè)要素:方法、工具和過程。方法是完成軟件開發(fā)各項(xiàng)任務(wù)的技術(shù),回答“如何做”;工具是為方法的運(yùn)用提供自動(dòng)或半自動(dòng)軟件支撐環(huán)境,回答“用什么做”;過程是為獲得高質(zhì)量的軟件要完成的一系列任務(wù)的框架,規(guī)定完成各項(xiàng)任務(wù)步驟,回答“如何控制、協(xié)調(diào)、保證質(zhì)量”。管理方法2022/12/28大連理工大學(xué)軟件學(xué)院17軟件工程方法學(xué)管2023/1/4大連理工大學(xué)軟件學(xué)院81目前使用得最廣泛的軟件工程方法學(xué)。傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。

當(dāng)軟件規(guī)模較大,或?qū)浖男枨笫悄:幕螂S時(shí)間變化的時(shí)候,使用結(jié)構(gòu)化范型開發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開發(fā)出的軟件,維護(hù)起來通常都很困難。結(jié)構(gòu)化-靜態(tài)分析,面向?qū)ο螅瓌?dòng)態(tài)分析世界萬物是變化的傳統(tǒng)方法學(xué)與面向?qū)ο蠓椒▽W(xué)2022/12/28大連理工大學(xué)軟件學(xué)院18目前使用得最廣泛2023/1/4大連理工大學(xué)軟件學(xué)院82傳統(tǒng)方法的特點(diǎn)生命周期模型軟件過程劃分為若干個(gè)階段每個(gè)階段有各自的任務(wù)階段之間有某種順序性2022/12/28大連理工大學(xué)軟件學(xué)院19傳統(tǒng)方法的特點(diǎn)生2023/1/4大連理工大學(xué)軟件學(xué)院83面向?qū)ο蠓椒ǎ簩ο笞鳛槿诤蠑?shù)據(jù)及在數(shù)據(jù)之上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對象都劃分成類(Class)。每個(gè)類都定義了一組數(shù)據(jù)和一組操作。按照父類(或稱為基類)與子類(或稱為派生類)的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級)。在類等級中,下層派生類自動(dòng)擁有上層基類中定義的數(shù)據(jù)和操作,稱為繼承。對象彼此間僅能通過發(fā)送消息互相聯(lián)系-封裝性。數(shù)據(jù):靜態(tài)操作:動(dòng)態(tài)EverythingisObject.2022/12/28大連理工大學(xué)軟件學(xué)院20面向?qū)ο蠓椒ǎ簲?shù)2023/1/4大連理工大學(xué)軟件學(xué)院84OO特點(diǎn)面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則,是盡可能模擬人類習(xí)慣的思維方式。用面向?qū)ο蠓椒▽W(xué)開發(fā)軟件的過程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過程。概念和表示方法上的一致性,階段間平滑(無縫)過渡。特殊到一般的歸納思維過程;一般到特殊的演繹思維過程。(繼承的思想)2022/12/28大連理工大學(xué)軟件學(xué)院21OO特點(diǎn)面向?qū)ο?023/1/4大連理工大學(xué)軟件學(xué)院85OO特點(diǎn)(2)最終產(chǎn)品中的對象與現(xiàn)實(shí)世界中的實(shí)體相對應(yīng),降低了復(fù)雜性,提高了可理解性,簡化了軟件的開發(fā)和維護(hù)工作。對象是相對獨(dú)立的實(shí)體,容易在軟件產(chǎn)品中重復(fù)使用,促進(jìn)了軟件重用。面用對象方法特有的繼承性,也進(jìn)一步提高了面向?qū)ο筌浖目芍赜眯浴?022/12/28大連理工大學(xué)軟件學(xué)院22OO特點(diǎn)(2)2023/1/4大連理工大學(xué)軟件學(xué)院86當(dāng)需求變化時(shí):要求服務(wù)員禮貌待客!-問候模擬人類思維迭代開發(fā)設(shè)計(jì)簡單、容易理解2022/12/28大連理工大學(xué)軟件學(xué)院23當(dāng)需求變化時(shí):-2023/1/4大連理工大學(xué)軟件學(xué)院87面向?qū)ο蠓治鲱悎D的例子2022/12/28大連理工大學(xué)軟件學(xué)院24面向?qū)ο蠓治鲱悎D2023/1/4大連理工大學(xué)軟件學(xué)院881.3軟件生命周期

軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段,每個(gè)階段有各自的任務(wù)。1軟件定義2軟件開發(fā)3運(yùn)行維護(hù)2022/12/28大連理工大學(xué)軟件學(xué)院251.3軟件生命2023/1/4大連理工大學(xué)軟件學(xué)院89問題定義(領(lǐng)域分析1)必須回答的關(guān)鍵問題是:“要解決的問題是什么”??尚行匝芯浚I(lǐng)域分析2,問題背景)回答的關(guān)鍵問題是:“上一個(gè)階段所確定的問題是否有行得通的解決辦法”。需求分析仍然不是具體地解決客戶的問題,而是準(zhǔn)確地回答“目標(biāo)系統(tǒng)必須做什么”。此外,要用正式文檔準(zhǔn)確地記錄對目標(biāo)系統(tǒng)的需求,這份文檔通常稱為規(guī)格說明(specification)。2022/12/28大連理工大學(xué)軟件學(xué)院26問題定義(領(lǐng)域分2023/1/4大連理工大學(xué)軟件學(xué)院901.3軟件生命周期了解問題,不能準(zhǔn)確表達(dá),不知道怎樣利用計(jì)算機(jī)實(shí)現(xiàn)了解軟件實(shí)現(xiàn),不清楚用戶要求與用戶配合,充分交流,得出系統(tǒng)需求2022/12/28大連理工大學(xué)軟件學(xué)院271.3軟件生命2023/1/4大連理工大學(xué)軟件學(xué)院91概要設(shè)計(jì)概括地回答“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”這個(gè)問題。概要設(shè)計(jì)又稱為初步設(shè)計(jì)、邏輯設(shè)計(jì)、高層設(shè)計(jì)或總體設(shè)計(jì)??梢越o出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案。另一項(xiàng)主要任務(wù)是設(shè)計(jì)程序的體系結(jié)構(gòu),即確定程序由哪些模塊組成以及模塊間的關(guān)系。詳細(xì)設(shè)計(jì)任務(wù)是把解法具體化,回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”這個(gè)關(guān)鍵問題。還不是編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。又稱為模塊設(shè)計(jì)、物理設(shè)計(jì)或低層設(shè)計(jì)。2022/12/28大連理工大學(xué)軟件學(xué)院28概要設(shè)計(jì)2023/1/4大連理工大學(xué)軟件學(xué)院92編碼和單元測試關(guān)鍵任務(wù)是寫出正確的容易理解、容易維護(hù)的程序模塊,并測試。綜合測試關(guān)鍵任務(wù)是通過各種類型的測試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。集成測試、驗(yàn)收測試、系統(tǒng)測試分析系統(tǒng)的可靠性記錄測試計(jì)劃、詳細(xì)測試方案及實(shí)際測試結(jié)果,作為軟件配置的一部分。2022/12/28大連理工大學(xué)軟件學(xué)院29編碼和單元測試2023/1/4大連理工大學(xué)軟件學(xué)院93軟件維護(hù)維護(hù)階段的關(guān)鍵任務(wù)是,通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。通常有四類維護(hù)活動(dòng)改正性維護(hù),也就是診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù),即修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),即根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件使它更完善;預(yù)防性維護(hù),即修改軟件為將來的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。2022/12/28大連理工大學(xué)軟件學(xué)院30軟件維護(hù)2023/1/4大連理工大學(xué)軟件學(xué)院941.4軟件過程在實(shí)際軟件開發(fā)時(shí),軟件規(guī)模、種類、開發(fā)環(huán)境及開發(fā)時(shí)使用的技術(shù)方法等因素,影響階段的劃分。軟件開發(fā)軟件維護(hù)軟件定義生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序,因此,也稱為過程模型。2022/12/28大連理工大學(xué)軟件學(xué)院311.4軟件過程2023/1/4大連理工大學(xué)軟件學(xué)院95瀑布模型

在20世紀(jì)80年代之前,唯一被廣泛采用的生命周期模型現(xiàn)在仍然是軟件工程中應(yīng)用得最廣泛的過程模型。2022/12/28大連理工大學(xué)軟件學(xué)院32瀑布模型在202023/1/4大連理工大學(xué)軟件學(xué)院96瀑布模型傳統(tǒng)的瀑布模型開發(fā)軟件特點(diǎn):階段間具有順序性和依賴性前一階段完成后開始后一階段前一階段輸出作為后一階段輸入2022/12/28大連理工大學(xué)軟件學(xué)院33瀑布模型傳統(tǒng)的瀑2023/1/4大連理工大學(xué)軟件學(xué)院97瀑布模型傳統(tǒng)的瀑布模型開發(fā)軟件特點(diǎn):推遲實(shí)現(xiàn)不可急于求成清楚地區(qū)分邏輯設(shè)計(jì)與物理實(shí)現(xiàn)盡可能推遲程序的物理實(shí)現(xiàn)2022/12/28大連理工大學(xué)軟件學(xué)院34瀑布模型傳統(tǒng)的瀑2023/1/4大連理工大學(xué)軟件學(xué)院98瀑布模型傳統(tǒng)的瀑布模型開發(fā)軟件特點(diǎn):質(zhì)量保證每個(gè)階段都必須完成規(guī)定的文檔每個(gè)階段結(jié)束前都要對所完成的文檔進(jìn)行評審2022/12/28大連理工大學(xué)軟件學(xué)院35瀑布模型傳統(tǒng)的瀑2023/1/4大連理工大學(xué)軟件學(xué)院99瀑布模型不希望有“變化”變化來的越晚,付出的代價(jià)越高。設(shè)計(jì)階段過多的假設(shè),導(dǎo)致理想化、一廂情愿的東西過多。2022/12/28大連理工大學(xué)軟件學(xué)院36瀑布模型不希望有2023/1/4大連理工大學(xué)軟件學(xué)院100瀑布模型傳統(tǒng)的瀑布模型實(shí)際的瀑布模型2022/12/28大連理工大學(xué)軟件學(xué)院37瀑布模型傳統(tǒng)的瀑2023/1/4大連理工大學(xué)軟件學(xué)院101瀑布模型帶“反饋環(huán)”(實(shí)線箭頭表示開發(fā)過程,虛線箭頭表示維護(hù)過程)發(fā)現(xiàn)錯(cuò)誤時(shí),需要沿圖中左側(cè)的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再繼續(xù)完成后面階段的任務(wù)。2022/12/28大連理工大學(xué)軟件學(xué)院38瀑布模型帶“反饋2023/1/4大連理工大學(xué)軟件學(xué)院102瀑布模型優(yōu)點(diǎn):一定程度解決“變化”的問題。缺點(diǎn):文檔驅(qū)動(dòng),完全依賴書面文字。2022/12/28大連理工大學(xué)軟件學(xué)院39瀑布模型優(yōu)點(diǎn):一2023/1/4大連理工大學(xué)軟件學(xué)院103快速原型模型快速建立起可以在計(jì)算機(jī)上運(yùn)行的程序,其功能往往是最終產(chǎn)品功能的子集。模型的第一步是快速建立一個(gè)能反映用戶主要需求的原型系統(tǒng),讓用戶試用,通過實(shí)踐來了解目標(biāo)系統(tǒng)的概貌。(實(shí)線箭頭表示開發(fā)過程,虛線箭頭表示維護(hù)過程)。2022/12/28大連理工大學(xué)軟件學(xué)院40快速原型模型快速2023/1/4大連理工大學(xué)軟件學(xué)院104快速原型模型用戶試用提出修改意見快速地修改原型系統(tǒng)用戶再次試用…一旦用戶認(rèn)為原型系統(tǒng)確實(shí)能做他們所需要的工作,開發(fā)人員便可據(jù)此書寫規(guī)格說明文檔,根據(jù)這份文檔開發(fā)出的軟件可以滿足用戶的真實(shí)需求。2022/12/28大連理工大學(xué)軟件學(xué)院41快速原型模型用戶2023/1/4大連理工大學(xué)軟件學(xué)院105快速原型模型快速原型的本質(zhì)是“快速”。開發(fā)人員應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本。原型的用途是獲知用戶的真正需求,一旦需求確定了,原型將被拋棄。(原型通常沒有嚴(yán)格的規(guī)范化,缺少文檔,難以維護(hù))2022/12/28大連理工大學(xué)軟件學(xué)院42快速原型模型快速2023/1/4大連理工大學(xué)軟件學(xué)院106快速原型模型2022/12/28大連理工大學(xué)軟件學(xué)院43快速原型模型2023/1/4大連理工大學(xué)軟件學(xué)院107增量模型每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能。(滾雪球方式)增量模型,也稱漸增模型。把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。2022/12/28大連理工大學(xué)軟件學(xué)院44增量模型每個(gè)構(gòu)件2023/1/4大連理工大學(xué)軟件學(xué)院108增量模型增量模型:逐步增加系統(tǒng)功能。較短時(shí)間內(nèi)提交可以工作的產(chǎn)品。減少全新產(chǎn)品帶給客戶的沖擊。困難:需要開放的架構(gòu)設(shè)計(jì)。瀑布、快速原型:力求一次性給用戶完整的系統(tǒng)。2022/12/28大連理工大學(xué)軟件學(xué)院45增量模型增量模型2023/1/4大連理工大學(xué)軟件學(xué)院109逐個(gè)構(gòu)件進(jìn)行分析、設(shè)計(jì)。風(fēng)險(xiǎn)更大。實(shí)現(xiàn)各個(gè)構(gòu)件之前完成全部需求分析、規(guī)格說明、概要設(shè)計(jì)。2022/12/28大連理工大學(xué)軟件學(xué)院46逐個(gè)構(gòu)件進(jìn)行分析2023/1/4大連理工大學(xué)軟件學(xué)院110螺旋模型應(yīng)采取適當(dāng)措施消除或減少開發(fā)軟件時(shí)的風(fēng)險(xiǎn)。螺旋模型的基本思想:使用原型及其他方法來盡量降低風(fēng)險(xiǎn)??梢岳斫鉃樵诿總€(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。簡化的螺旋模型2022/12/28大連理工大學(xué)軟件學(xué)院47螺旋模型應(yīng)采取適2023/1/4大連理工大學(xué)軟件學(xué)院111螺旋模型帶箭頭的點(diǎn)劃線的長度代表當(dāng)前累計(jì)的開發(fā)費(fèi)用。螺線旋過的角度值代表開發(fā)進(jìn)度。每周期對應(yīng)一個(gè)開發(fā)階段完整的螺旋模型2022/12/28大連理工大學(xué)軟件學(xué)院48螺旋模型帶箭頭的2023/1/4大連理工大學(xué)軟件學(xué)院112螺旋模型優(yōu)點(diǎn):有利于軟件的重用有助于把軟件質(zhì)量作為軟件開發(fā)的目標(biāo)減少測試帶來的風(fēng)險(xiǎn)維護(hù)作為開發(fā)的一個(gè)周期,與開發(fā)沒有本質(zhì)區(qū)別風(fēng)險(xiǎn)驅(qū)動(dòng):及時(shí)終止項(xiàng)目弱點(diǎn):風(fēng)險(xiǎn)驅(qū)動(dòng):需要專業(yè)的風(fēng)險(xiǎn)評估人員2022/12/28大連理工大學(xué)軟件學(xué)院49螺旋模型優(yōu)點(diǎn):2023/1/4大連理工大學(xué)軟件學(xué)院113噴泉模型迭代是軟件開發(fā)過程中普遍存在的一種內(nèi)在屬性。軟件過程各個(gè)階段之間的迭代或一個(gè)階段內(nèi)各個(gè)工作步驟之間的迭代,在面向?qū)ο蠓缎椭斜仍诮Y(jié)構(gòu)化范型中更常見。噴泉模型是典型的面向?qū)ο笊芷谀P汀?022/12/28大連理工大學(xué)軟件學(xué)院50噴泉模型迭代是軟2023/1/4大連理工大學(xué)軟件學(xué)院114噴泉模型體現(xiàn)了面

溫馨提示

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

最新文檔

評論

0/150

提交評論