




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程 Ch1 軟件工程學(xué)概述主要內(nèi)容1.軟件的含義2.軟件危機(jī)3.軟件工程4.軟件生命周期5.軟件過程對(duì)“軟件”的理解(1)1.無顏色、無味道、無形狀、無重量、無處不在、永不磨損,使世界發(fā)生重大變化、使有的人神魂顛倒、使有的人大發(fā)其財(cái),形成了產(chǎn)業(yè)(農(nóng)業(yè)、工業(yè)、IT) 3.有人說“軟件是自從有了文明以來人類所做的最復(fù)雜的事情” 復(fù)雜的事情就是工程。2.“是活著的人的靈魂的COPY,實(shí)現(xiàn)了靈魂附體的神話”對(duì)“軟件”的理解(2)4.軟件是系統(tǒng) 系統(tǒng)的定義: (1)若干部件的集合 (2)部件具有功能和邊界 (3)部件間具有相互的關(guān)系,關(guān)系形成結(jié)構(gòu) (4)部件間具有相互的作用,作用形成運(yùn)動(dòng)對(duì)“軟件”
2、的理解(2)4.軟件是系統(tǒng)計(jì)算機(jī)系統(tǒng):過程 文 檔數(shù)據(jù)庫人 員 軟件 硬件 結(jié)構(gòu)、組織、體系結(jié)構(gòu)關(guān)系元素結(jié)構(gòu)內(nèi)聚組織風(fēng)格體系結(jié)構(gòu)對(duì)“軟件”的理解(3) Internet平臺(tái)和環(huán)境的出現(xiàn), 對(duì)軟件形態(tài) 技術(shù)發(fā)展 理論研究 提供了新的契機(jī) 提出了新的問題普適計(jì)算人機(jī)交互資源共享網(wǎng) 格軟件形態(tài)網(wǎng) 構(gòu)未來軟件基本形態(tài)Internet環(huán)境及其應(yīng)用:基礎(chǔ)平臺(tái)的開放性、動(dòng)態(tài)性和多變性共享資源的多樣性(信息、計(jì)算、服務(wù))產(chǎn)業(yè)模式的服務(wù)化6.軟件的發(fā)展趨勢(shì)規(guī)模:越來越大復(fù)雜性:越來越復(fù)雜應(yīng)用:越來越廣泛能力:越來越大形態(tài):越來越多樣,不斷變化存儲(chǔ):越來越分布重用:粒度越來越大使用:越來越方便 體系結(jié)構(gòu)越來越重要
3、對(duì)“軟件”的理解(3)7.軟件的特性(1)軟件是無形的(intangible) 比其他工程產(chǎn)品更加不可捉摸。 你無法感覺軟件產(chǎn)品的形狀,它的設(shè)計(jì)也難以直觀表示。因此確定軟件產(chǎn)品的質(zhì)量或者估計(jì)其開發(fā)的工作量是非常困難的。這就是人們總是低估系統(tǒng)開發(fā)時(shí)間的一個(gè)原因。對(duì)“軟件”的理解(3)7.軟件的特性(2)軟件副本的大批量生產(chǎn)輕而易舉 絕大多數(shù)其他類型的工程師非常關(guān)心每一個(gè)部件耗費(fèi)的成本與勞動(dòng)量。換句話說,對(duì)于有形產(chǎn)品,設(shè)計(jì)完成之后的制作過程往往是代價(jià)昂貴的部分。 與之相反,軟件產(chǎn)品能通過網(wǎng)絡(luò)下載或制作CD以極低的成本進(jìn)行復(fù)制。因此,幾乎全部的軟件成本都存在于它的開發(fā)過程中,而不是制造過程中。對(duì)“軟
4、件”的理解(3)7.軟件的特性(4)一個(gè)沒有經(jīng)過充分訓(xùn)練的軟件開發(fā)人員很容易編寫出難以理解和修改的軟件 編程新手可以創(chuàng)建復(fù)雜的系統(tǒng)完成有用的功能,但它的設(shè)計(jì)卻可能極其紊亂。其他工程領(lǐng)域也可能產(chǎn)生不良的設(shè)計(jì),但是這些缺陷通常比較容易發(fā)現(xiàn),因?yàn)樗鼈儾粫?huì)隱藏在上千頁的源代碼中。例如,如果土木工程師設(shè)計(jì)了一座不安全的橋梁,審查人員一般會(huì)比較容易地發(fā)現(xiàn)設(shè)計(jì)中的缺陷,因?yàn)樗麄兦宄刂涝诿繌垐D紙和每次計(jì)算中應(yīng)當(dāng)尋找什么。對(duì)“軟件”的理解(3)7.軟件的特性(5)軟件本身很容易修改 但由于它的復(fù)雜性,又很難正確地修改 人們總是試圖在尚未完全了解軟件的時(shí)候就去修改它,而這些修改又會(huì)帶來新的錯(cuò)誤。 對(duì)“軟件”的
5、理解(3)8. “軟件”的定義50年代60年代 軟件=程序60年代 70年代 軟件=程序+文檔70年代 80年代 軟件=程序+文檔+數(shù)據(jù)80年代 90年代 軟件=構(gòu)件90年代 2000年 軟件=構(gòu)件+體系結(jié)構(gòu)現(xiàn)在 軟件=網(wǎng)構(gòu)+體系結(jié)構(gòu) 未來(五年) 軟件=模型+體系結(jié)構(gòu) 面向過程的程序=算法+數(shù)據(jù)結(jié)構(gòu) 面向?qū)ο蟮某绦?對(duì)象+消息 面向構(gòu)件的程序=構(gòu)件+體系結(jié)構(gòu)軟件定義的變化說明了軟件形態(tài)的變化。對(duì)“軟件”的理解(4)9.軟件是復(fù)雜的 (1)軟件自身的特性 (2)現(xiàn)實(shí)的復(fù)雜性 (3)人們對(duì)軟件的認(rèn)識(shí) (4)規(guī)模愈來愈大 (5)分布區(qū)越來越廣泛 (6)結(jié)構(gòu)越來越復(fù)雜 (7)人們的期望越來高對(duì)“軟件
6、”的理解(5)軟件危機(jī)軟件的特點(diǎn)軟件的復(fù)雜性錯(cuò)誤的認(rèn)識(shí)與做法軟件危機(jī)軟件危機(jī) (software crisis) 危機(jī):出事了、出問題了、產(chǎn)生矛盾了軟件危機(jī)是在計(jì)算機(jī)系統(tǒng)的發(fā)展歷程中產(chǎn)生的。軟件危機(jī)計(jì)算機(jī)系統(tǒng)的發(fā)展歷程: (1)早期時(shí)代:20世紀(jì)40年代中期-60年代中期 (2)第二代:60年代中期-70年代中期 (3)第三代:70年代中期-80年代中期 (4)第四代:80年代中期-軟件危機(jī)計(jì)算機(jī)系統(tǒng)的發(fā)展歷程: (1)早期時(shí)代:20世紀(jì)40年代-60年代中期 無計(jì)劃、具體應(yīng)用、規(guī)模小、易編寫、無方法、編用一人、無文檔、個(gè)體化、數(shù)值計(jì)算軟件危機(jī)計(jì)算機(jī)系統(tǒng)的發(fā)展歷程: (2)第二階段:60年代中
7、期-70年代中期 多道程序、多用戶系統(tǒng)、人機(jī)交互、實(shí)時(shí)系統(tǒng)、在線存儲(chǔ)、第一代DBMS 軟件作坊、軟件廣泛、難維護(hù) 軟件危機(jī)出現(xiàn)了,1968年NATO討論軟件危機(jī)問題,提出了“軟件工程”概念軟件危機(jī)計(jì)算機(jī)系統(tǒng)的發(fā)展歷程: (4)第四階段:80年代中期- 桌面系統(tǒng)、GUI、Internet、C/S、B/S、信息共享、應(yīng)用于各個(gè)角落、4GT、4GL、多媒體、虛擬現(xiàn)實(shí)、網(wǎng)格計(jì)算、計(jì)算機(jī)文化、社會(huì)與道德 信息產(chǎn)業(yè)(IT)時(shí)代 軟件危機(jī) Evolution of software早期 第二階段 第三階段 第四階段面向批處理 多用戶 分布式系統(tǒng) 強(qiáng)大的桌面系統(tǒng)有限的分布 實(shí)時(shí) 嵌入“智能” 面向?qū)ο蠹夹g(shù)自定
8、義軟件 數(shù)據(jù)庫 低成本硬件 專家系統(tǒng) 軟件產(chǎn)品 消費(fèi)者的影響 人工神經(jīng)網(wǎng)絡(luò) 并行計(jì)算 網(wǎng)絡(luò)計(jì)算機(jī)195019601970198019902000軟件危機(jī) 軟件危機(jī)的含義: 軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。 即:效率和質(zhì)量的問題。軟件危機(jī) 軟件危機(jī)的具體表現(xiàn):軟件成本高,開發(fā)進(jìn)度估計(jì)不準(zhǔn)用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象常常發(fā)生軟件產(chǎn)品質(zhì)量差,可靠性不能保證軟件產(chǎn)品可維護(hù)性差軟件沒有合適的文檔資料軟件成本逐年上升軟件開發(fā)生產(chǎn)率滯后于硬件和計(jì)算機(jī)應(yīng)用普及軟件危機(jī)案例軟件危機(jī)產(chǎn)生軟件危機(jī)的原因:(1)軟件本身的特性 缺乏可見性、無制造過程、規(guī)模龐大(2)對(duì)軟件開
9、發(fā)錯(cuò)誤的認(rèn)識(shí)和做法 軟件就是程序、開發(fā)軟件就是編程序、輕視文檔、不懂測(cè)試、不想維護(hù)、輕視管理(3)開發(fā)與維護(hù)的方法不正確 非工程化(個(gè)體、軟件作坊) 落后的方法學(xué)(結(jié)構(gòu)化的、面向?qū)ο蟮模?)概念的商業(yè)炒作與迷信 軟件危機(jī)仍然在困擾我們!軟件危機(jī) 消除軟件危機(jī)的途徑:(1)使用好的軟件開發(fā)技術(shù)和方法(2)使用好的軟件開發(fā)工具(3)良好的組織,嚴(yán)密的管理,各類人員互相配合 總之,為了消除軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。 軟件工程正是從技術(shù)和管理兩方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。 軟件工程1.對(duì)“工程 (engineering) ”的理解:
10、大事情、施工的過程、工程學(xué)科。大事情:大的、復(fù)雜的、由眾多的人共同完成的。 如建筑工程、三峽工程、航天工程。 1.對(duì)“工程”的理解:大事情,施工的過程,工程學(xué)科。施工的過程: 分析設(shè)計(jì) 實(shí)現(xiàn) 維護(hù)軟件工程是啥,要啥,啥樣,理解,搞清楚,弄明白做啥,怎么做,用什么做(工具、技術(shù)),誰作,什么時(shí)候做開始做: 做得怎么樣?持久使用:維修軟件工程1.對(duì)“工程 (engineering) ”的理解: 大事情、施工的過程、工程學(xué)科。工程學(xué)科的簡(jiǎn)稱: 文、理、法、醫(yī)、農(nóng)、工 計(jì)算機(jī)工程、化學(xué)工程、機(jī)械工程、 電子工程 軟件工程1.對(duì)“工程 (engineering) ”的理解: “人”與“草”的區(qū)別 “人”
11、與其它“動(dòng)物”的共性:面對(duì)復(fù)雜性 復(fù)雜性:體力與智力受到挑戰(zhàn) 科學(xué):揭示復(fù)雜性 技術(shù):如何解決復(fù)雜性 工程:運(yùn)用科學(xué)與技術(shù)解決復(fù)雜性 軟件工程:靠計(jì)算機(jī)軟件延伸人的智力 構(gòu)建一個(gè)小狗屋可以由一個(gè)人制造需求:最小模型簡(jiǎn)單的過程簡(jiǎn)單的工具軟件工程由一個(gè)團(tuán)體建設(shè),并且需要更高的效率、更精確的時(shí)間限制需求模型良好定義的過程功能強(qiáng)大的工具構(gòu)造一棟房屋軟件工程軟件工程構(gòu)建一個(gè)高層建筑過程 有限的理論知識(shí)軟件工程早期的結(jié)構(gòu)現(xiàn)代的結(jié)構(gòu)進(jìn)步 - 先進(jìn)的原材料和 先進(jìn)的分析范圍 - Pantheon的五倍范圍 Cheops的3倍高度軟件工程房屋建模軟件工程軟件工程軟件工程軟件工程軟件工程“工程”的定義定義有很多,
12、通常來說:用最少的代價(jià)解決問題 . 目的是處理實(shí)際的難題 . 以科學(xué)知識(shí)為手段 . 建造工具 . 服務(wù)于人類目標(biāo): 使普通人能做以前只有專家圣手才能做的事情。軟件工程討論工程、項(xiàng)目、科學(xué)、技術(shù)、方法、工具、過程之間的關(guān)系?軟件工程軟件工程的背景和歷史 1968年由NATO (北大西洋公約組織)在德國(guó)召開的學(xué)術(shù)會(huì)議上,F(xiàn)eitz Bauer首先提出了“軟件工程”概念。軟件工程軟件工程的概念 軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件,并有效的維
13、護(hù)它。軟件工程軟件工程的概念 軟件工程是軟件開發(fā)、運(yùn)行、維護(hù)和引退的系統(tǒng)方法。OR 把系統(tǒng)化的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)的過程;研究中提到的途徑。 IEEE的定義軟件工程對(duì)軟件工程的理解 是一門學(xué)問:用工程的概念、思想、原理、技術(shù)、方法和 工具開發(fā)軟件。是一個(gè)過程:分析設(shè)計(jì) 實(shí)現(xiàn) 測(cè)試維護(hù)是方法論:結(jié)構(gòu)化的,面向?qū)ο蟮模嫦蚩堂娴?,是一條總線:DBCPOSDSTCNETJavaCGC#.NetJ2EE軟件工程軟件工程軟件工程的本質(zhì)特性 軟件工程關(guān)注于大型程序的構(gòu)造軟件工程的中心課題是控制復(fù)雜性軟件經(jīng)常變化開發(fā)軟件的效率非常重要和諧合作是開發(fā)軟件的關(guān)鍵軟件必須有效地支持它的
14、用戶在SE領(lǐng)域通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品軟件工程軟件工程的基本原理 1.用分階段的生命周期計(jì)劃進(jìn)行嚴(yán)格管理2.堅(jiān)持進(jìn)行階段評(píng)審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í)踐的必要性軟件工程軟件工程的主要研究?jī)?nèi)容 軟件開發(fā)技術(shù):軟件開發(fā)方法學(xué) 軟件開發(fā)過程 軟件工具和軟件工程環(huán)境 軟件工程管理:軟件管理學(xué) 軟件經(jīng)濟(jì)學(xué) 軟件心理學(xué) 軟件工程所包含的內(nèi)容不是一成不變的,隨著人們對(duì)軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解, 我們應(yīng)該用發(fā)展的眼光看待它。軟件工程方法學(xué)軟件工程方法學(xué)定義 通常把在軟件生命周
15、期全過程中使用的一整套技術(shù)的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。在軟件工程范疇中,這兩個(gè)詞的含義基本相同。軟件工程方法學(xué) 三要素:方法、工具和過程 完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“如何做”的問題; 為方法的運(yùn)用提供自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境; 為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。工具方法過程質(zhì)量焦點(diǎn)用什么做怎么做什么時(shí)候做什么做成什么樣Software engineering layers軟件工程方法學(xué)三要素:方法、工具、過程軟件工程:一種層次化技術(shù)軟件工程方法學(xué)目前使用最廣泛方法學(xué) 傳統(tǒng)方法學(xué)(結(jié)構(gòu)
16、化方法學(xué)):SA、SD、SP、ST 面向?qū)ο蠓椒▽W(xué):OOA、OOD、OOP、OOT軟件生命周期周期(Cycle): 起點(diǎn)-終點(diǎn)-(起點(diǎn))的循環(huán).生命周期(Life Cycle): 誕生-成長(zhǎng)-死亡的時(shí)期人: 出生-嬰兒-少年-青年-中年-老年-死亡 軟件生命周期 軟件生命周期由軟件定義、軟件開發(fā)、和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段。(三個(gè)時(shí)期八個(gè)階段)問題定義可行性研究需求分析總體設(shè)計(jì)(概要、外部、方案)詳細(xì)設(shè)計(jì)(內(nèi)部、算法、模塊)編碼測(cè)試維護(hù)定義分析設(shè)計(jì)實(shí)現(xiàn)維護(hù)定義開發(fā)維護(hù)1.問題定義 關(guān)鍵問題:“要解決的問題是什么”。軟件生命周期的基本任務(wù) 立項(xiàng)報(bào)告1 問題性質(zhì)2
17、工程目標(biāo)3 工程規(guī)模 系統(tǒng)分析員System analyst2.可行性研究 關(guān)鍵問題:“上一個(gè)階段所確定的問題是否有行得通的解決辦法”。軟件生命周期的基本任務(wù) 可行性研究報(bào)告1 可行性2 方案選擇3 初步計(jì)劃和預(yù)算 系統(tǒng)分析員System analyst管理部門審查3.需求分析 關(guān)鍵問題:“目標(biāo)系統(tǒng)必須做什么” ; 重要任務(wù):用正式文檔準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求,這份文檔通常稱為規(guī)格說明(specification)。軟件生命周期的基本任務(wù) 需求規(guī)格說明書1. 功能2 .性能3 .數(shù)據(jù)4 .環(huán)境5 .將來系統(tǒng)分析員System analyst4.概要設(shè)計(jì) 基本任務(wù):“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?” 給出
18、實(shí)現(xiàn)方案,又稱為初步設(shè)計(jì)、邏輯設(shè)計(jì)、高層設(shè)計(jì)或總體設(shè)計(jì)。 另一項(xiàng)主要任務(wù):設(shè)計(jì)程序的體系結(jié)構(gòu),也就是確定程序由哪些模塊組成以及模塊間的關(guān)系。 軟件生命周期的基本任務(wù) 概要設(shè)計(jì)說明書 1.方案設(shè)計(jì) 2.體系結(jié)構(gòu)設(shè)計(jì) 軟件工程師Software engineer5.詳細(xì)設(shè)計(jì) 主要任務(wù): “應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”這個(gè)關(guān)鍵問題。這個(gè)階段的任務(wù)是設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。 又叫模塊設(shè)計(jì)、物理設(shè)計(jì)、底層設(shè)計(jì)軟件生命周期的基本任務(wù) 詳細(xì)設(shè)計(jì)說明書 1.模塊設(shè)計(jì) 2.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 軟件工程師Software engineer6.編碼和單元測(cè)試 關(guān)鍵任務(wù):寫出正確的容易理解、容易維護(hù)的程序模塊。軟件生命周
19、期的基本任務(wù) 程序代碼:Main() int a,b,c; scanf(); printf(); 程序員programmer7.綜合測(cè)試 關(guān)鍵任務(wù):通過各種類型的測(cè)試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。軟件生命周期的基本任務(wù) 系統(tǒng)測(cè)試員System tester客戶customer操作員operator8.軟件維護(hù) 關(guān)鍵任務(wù):通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。 4類維護(hù):改正性維護(hù);適應(yīng)性維護(hù),完善性維護(hù),預(yù)防性維護(hù)軟件生命周期的基本任務(wù) 維護(hù)工程師Maintenance engineer操作員operator 在實(shí)際從事軟件開發(fā)工作時(shí),軟件規(guī)模、種類、開發(fā)環(huán)境及開發(fā)時(shí)使用的
20、技術(shù)方法等因素,影響階段的劃分。 生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序,因此,也稱為過程模型。軟件生命周期模型 模型(Model)定義1:對(duì)問題的簡(jiǎn)化.定義2:對(duì)問題的書面上的無歧義文字或圖形 的描述. y=f(x) 軟件生命周期模型 最杰出的模型:地圖 模型是對(duì)問題的簡(jiǎn)化.軟件生命周期模型 軟件生命周期模型軟件過程模型的發(fā)展瀑布模型 (Waterfall) 20世紀(jì)80年代之前,瀑布模型一直是唯一被廣泛采用的生命周期模型,現(xiàn)在它仍然是軟件工程中應(yīng)用得最廣泛的過程模型。特點(diǎn): (1) 軟件生存周期的順序性 (2) 推遲實(shí)現(xiàn)的觀點(diǎn) (3) 質(zhì)量保證的觀點(diǎn)傳統(tǒng)的瀑布模型
21、線性的需求分析驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)定義時(shí)期開發(fā)時(shí)期維護(hù)時(shí)期瀑布模型 (Waterfall)實(shí)際的瀑布模型 反饋環(huán)的瀑布模型 (Waterfall)設(shè)計(jì)驗(yàn)證規(guī)格說明驗(yàn)證需求分析驗(yàn)證編碼測(cè)試變化的需求驗(yàn)證綜合測(cè)試維護(hù)瀑布模型 (Waterfall)1、思想:從制作時(shí)間上按工序把問題化簡(jiǎn)將功能實(shí)現(xiàn)與制作分開便于分工協(xié)作2、優(yōu)點(diǎn):(1)奠定了軟件工程方法的基礎(chǔ)(2)流水依賴,便于分工協(xié)作(3)推遲物理實(shí)現(xiàn),易于修改文檔,有復(fù)審質(zhì)量保證。3、不足:與用戶見面晚,成功率低,一般為254、適用范圍:適用于系統(tǒng)要求明確的系統(tǒng),各種應(yīng)用軟件的開發(fā)均可使用。瀑布模型 (Waterfall)
22、Tom Gilb:“假如你不積極地解決你項(xiàng)目中存在的風(fēng)險(xiǎn),它們就會(huì)積極地解決掉你” 瀑布方法會(huì)掩飾項(xiàng)目中真正的風(fēng)險(xiǎn),當(dāng)你太晚發(fā)現(xiàn)它們時(shí)已無濟(jì)于事??焖僭湍P?(Prototype) 所謂快速原型是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。 快速原型模型 (Prototype)快速原型模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證維護(hù)過程開發(fā)過程快速原型模型 (Prototype)快速原型開發(fā)過程聽取用戶意見需求分析用戶運(yùn)行測(cè)試原型修改原型實(shí)現(xiàn)最終產(chǎn)品快速構(gòu)造原型快速原型模型 (Prototype)快速原型開發(fā)途徑:
23、1)僅模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。 2)開發(fā)一個(gè)工作模型,實(shí)現(xiàn)軟件系統(tǒng)中重要的或容易產(chǎn)生誤解的功能。 3)利用一個(gè)或幾個(gè)類似的正在運(yùn)行的軟件向用戶展示軟件需求中的部分或全部功能。適用范圍: 適合于那些不能預(yù)先確切定義需求的軟件系統(tǒng)的開發(fā),更適合于那些項(xiàng)目組成員不能很好交流或通信有困難的情況。 增量模型 (Incremental Models) 增量模型也稱為漸增模型。使用增量模型開發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。使用增量模型時(shí),第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能。增量模型
24、(Incremental Models)需求分析驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證維護(hù)針對(duì)每個(gè)構(gòu)件完成詳細(xì)設(shè)計(jì)、編碼和集成,經(jīng)測(cè)試后交付給用戶增量模型增量模型 (Incremental Models)風(fēng)險(xiǎn)更大的增量模型分析分析分析分析設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)編碼編碼編碼編碼測(cè)試測(cè)試測(cè)試測(cè)試增量1增量2 增量3增量4 增量模型 (Incremental Models)優(yōu)點(diǎn): 1.在較短時(shí)間內(nèi)提供給用戶可用的工作產(chǎn)品 2.逐步增加的產(chǎn)品功能使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品缺點(diǎn): 每個(gè)新的構(gòu)件必須不破壞現(xiàn)有的軟件產(chǎn)品; 軟件體系結(jié)構(gòu)必須是開放的,增加結(jié)構(gòu)設(shè)計(jì)的難度。螺旋模型 基本思想:使用原型及其他方法來盡量降低
25、風(fēng)險(xiǎn)。理解這種模型的一個(gè)簡(jiǎn)便方法,是把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。 螺旋模型簡(jiǎn)化的螺旋模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析螺旋模型完整的螺旋模型決定目標(biāo)、方案和限制評(píng)價(jià)方案、識(shí)別風(fēng)險(xiǎn)、弱化風(fēng)險(xiǎn)開發(fā)、驗(yàn)證、下一級(jí)產(chǎn)品計(jì)劃下一階段優(yōu)點(diǎn): l支持用戶需求的動(dòng)態(tài)變化。 l原型可看作形式的可執(zhí)行的需求規(guī)格說明,易于為用戶和開發(fā)人員共同理解,還可作為繼續(xù)開發(fā)的基礎(chǔ),并為用戶參與所有關(guān)鍵決策提供了方便。 l 強(qiáng)調(diào)原型的可擴(kuò)充性和可修改性,原型的進(jìn)化貫穿整個(gè)軟件生存周期,這將有助于目標(biāo)軟件的適應(yīng)能力。
26、螺旋模型缺點(diǎn): l如果每次迭代的效率不高,致使迭代次數(shù)過多,將會(huì)增加成本并推遲提交時(shí)間; l使用該模型需要有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),要求開發(fā)隊(duì)伍水平較高。適應(yīng)場(chǎng)合: 支持需求不明確、特別是大型軟件系統(tǒng)的開發(fā),并支持面向規(guī)格說明、面向過程、面向?qū)ο蟮榷喾N軟件開發(fā)方法,是一種具有廣闊前景的模型。螺旋模型噴泉模型 噴泉模型體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性。 為避免使用噴泉模型開發(fā)軟件時(shí)開發(fā)過程過分無序,應(yīng)該把一個(gè)線性過程作為總目標(biāo)。但是,同時(shí)也應(yīng)該記住,面向?qū)ο蠓缎捅旧硪蠼?jīng)常對(duì)開發(fā)活動(dòng)進(jìn)行迭代或求精。噴泉模型噴泉模型需求階段面向?qū)ο蠓治鲭A段面向?qū)ο笤O(shè)計(jì)階段編碼階段集成和測(cè)試階段
27、運(yùn)行狀態(tài)進(jìn)一步開發(fā)維護(hù)期RUP(Rational統(tǒng)一過程) Rational Unified Process 是軟件工程的過程。它提供了在開發(fā)組織中分派任務(wù)和責(zé)任的紀(jì)律化方法。它的目標(biāo)是在可預(yù)見的日程和預(yù)算前提下,確保滿足最終用戶需求的高質(zhì)量產(chǎn)品 。是 Rational 公司開發(fā)和維護(hù)的過程產(chǎn)品。RUP 的開發(fā)團(tuán)隊(duì)同顧客、合作伙伴、Rational 產(chǎn)品小組及顧問公司共同協(xié)作,確保開發(fā)過程持續(xù)地更新和提高以反映新的經(jīng)驗(yàn)和不斷演化的實(shí)踐經(jīng)驗(yàn)。RUP為每個(gè)團(tuán)隊(duì)成員提供了使用準(zhǔn)則、模板、工具指導(dǎo)來進(jìn)行訪問的知識(shí)基礎(chǔ),確保全體成員共享相同的知識(shí)、過程和開發(fā)軟件的視圖。 RUP(Rational統(tǒng)一過程
28、) RUP強(qiáng)調(diào)開發(fā)和維護(hù)模型,并且語義豐富的軟件系統(tǒng)表達(dá),而非強(qiáng)調(diào)大量的文本工作。 RUP是有效使用 Unified Modeling Language (UML)的指南。RUP能對(duì)大部分開發(fā)過程提供自動(dòng)化的工具支持。它們被用來創(chuàng)建和維護(hù)軟件開發(fā)過程(可視化建模、編程、測(cè)試等)的各種各樣的產(chǎn)物-特別是模型。 RUP是可配置的過程 ,它還包含了開發(fā)工具包,為配置適應(yīng)特定組織機(jī)構(gòu)的開發(fā)過程提供了支持 。RUP(Rational統(tǒng)一過程)最佳實(shí)踐:迭代的開發(fā)軟件 需求管理 使用基于構(gòu)件的體系結(jié)構(gòu) 可視化軟件建模 驗(yàn)證軟件質(zhì)量 控制軟件變更 支持專注于處理生命周期中每個(gè)階段中最高風(fēng)險(xiǎn)的迭代開發(fā)方法,極
29、大地減少了項(xiàng)目的風(fēng)險(xiǎn)性。 描述了如何提取、組織和文檔化需要的功能和限制;跟蹤和文檔化折衷方案和決策; 捕獲和進(jìn)行商業(yè)需求交流。 提供了使用現(xiàn)有的或新開發(fā)的構(gòu)件定義體系化方法,從而有助于降低軟件開發(fā)的復(fù)雜性,提高軟件重用率。 顯示了對(duì)軟件如何可視化建模,捕獲體系結(jié)構(gòu)和構(gòu)件的構(gòu)架和行為。允許隱藏細(xì)節(jié)和使用圖形構(gòu)件塊來書寫代碼。 幫助計(jì)劃、設(shè)計(jì)、實(shí)現(xiàn)、執(zhí)行和評(píng)估各種測(cè)試類型。質(zhì)量評(píng)估被內(nèi)建于過程、所有的活動(dòng),包括全體成員,使用客觀的度量和標(biāo)準(zhǔn),并且不是事后型的或單獨(dú)小組進(jìn)行的分離活動(dòng)。 描述了如何控制、跟蹤和監(jiān)控修改以確保成功的迭代開發(fā)。同時(shí)指導(dǎo)如何通過隔離修改和控制整個(gè)軟件產(chǎn)物(例如,模型、代碼、
30、文檔等)的修改來為每個(gè)開發(fā)者建立安全的工作區(qū)。 RUP(Rational統(tǒng)一過程)過程模型:RUP(Rational統(tǒng)一過程)過程模型初始階段目標(biāo):明確軟件系統(tǒng)的范圍和邊界條件建立 業(yè)務(wù)模型,明確區(qū)分系統(tǒng)的關(guān)鍵用例(Use-case) 和主要的功能場(chǎng)景展現(xiàn)或者演示至少一種符合主要場(chǎng)景要求的候選軟件體系結(jié)構(gòu)對(duì)整個(gè)項(xiàng)目做最初的項(xiàng)目成本和日程估計(jì)估計(jì)出潛在的風(fēng)險(xiǎn)準(zhǔn)備好項(xiàng)目的支持環(huán)境 。里程碑:生命周期目標(biāo)RUP(Rational統(tǒng)一過程)過程模型細(xì)化階段目標(biāo):設(shè)計(jì)并確定軟件的體系結(jié)構(gòu)制定軟件項(xiàng)目計(jì)劃 針對(duì)項(xiàng)目的軟件結(jié)構(gòu)上的主要風(fēng)險(xiǎn)已經(jīng)解決或處理完成。 建立一個(gè)包含高質(zhì)量組件的可演化的產(chǎn)品原型。 說明基線化的軟件體系結(jié)構(gòu)可以保障系統(tǒng)需求可以控制在合理的成本和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力檢修合同范本
- 手機(jī) 經(jīng)銷合同范本
- 勞務(wù)塔吊司機(jī)合同范本
- 加工非標(biāo)制作合同范本
- 農(nóng)村產(chǎn)業(yè)外包合同范本
- 入職家政合同范本
- 公路承包轉(zhuǎn)讓合同范本
- 公司加班裝修合同范本
- 產(chǎn)品推廣協(xié)議合同范本
- 冷庫維修合同范本正規(guī)合同
- JJF(皖) 179-2024 氣體渦街流量計(jì)在線校準(zhǔn)規(guī)范
- 2024-2025學(xué)年部編版九年級(jí)上冊(cè)道德與法治綜合檢測(cè)題二
- 《人民代表大會(huì)制度:我國(guó)的根本政治制度》導(dǎo)學(xué)案
- 部編二年級(jí)道德與法治下冊(cè)課程綱要二年級(jí)《道德與法治》下冊(cè) 學(xué)期綱要
- 托輥生產(chǎn)項(xiàng)目運(yùn)營(yíng)管理方案
- AQ/T 2035-2023 金屬非金屬地下礦山供水施救系統(tǒng)建設(shè)規(guī)范(正式版)
- 2024年越南煤礦設(shè)備再制造行業(yè)現(xiàn)狀及前景分析2024-2030
- 汽車背戶協(xié)議樣板
- DL-T5001-2014火力發(fā)電廠工程測(cè)量技術(shù)規(guī)程
- 平行四邊形的判定(27張)-完整課件
- 2024年湖南有色金屬職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫附答案
評(píng)論
0/150
提交評(píng)論