版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程
SoftwareEngineering共享“小黃Y”缺少專人維護(hù)車子使用的情況變差可正常使用自行車數(shù)量減少。校區(qū)間分布不均衡沒(méi)有經(jīng)費(fèi)可以用于校區(qū)間自行車搬運(yùn)捐贈(zèng)車子來(lái)源,設(shè)定唯一編號(hào)定期檢查,統(tǒng)計(jì)加鎖,開(kāi)展免費(fèi)租用服務(wù),允許走出校門。限制借還服務(wù)、異地還車網(wǎng)絡(luò)版,校園地圖
指示服務(wù)。校網(wǎng)服務(wù)移動(dòng)端兩年后,經(jīng)費(fèi)所剩無(wú)幾,原開(kāi)發(fā)、管理的同學(xué)退出協(xié)會(huì)。同學(xué)有意見(jiàn)共享單車普及,購(gòu)置單車同學(xué)逐漸變少,“小黃Y”服務(wù)是否需要繼續(xù)堅(jiān)持下去?誰(shuí)來(lái)支付自行車維修的費(fèi)用?誰(shuí)來(lái)維護(hù)這個(gè)功能愈見(jiàn)增多的代碼呢?這個(gè)學(xué)生社團(tuán)組織維護(hù)的代碼可以稱之為軟件嗎?可以稱這樣的開(kāi)發(fā)和維護(hù)工作為一個(gè)軟件工程項(xiàng)目嗎?它與現(xiàn)在城市共享單車系統(tǒng)會(huì)有哪些差別呢?共享“小黃Y”課程教學(xué)目標(biāo)1.掌握軟件工程和軟件開(kāi)發(fā)模型的基本概念,并了解軟件開(kāi)發(fā)相關(guān)技術(shù)標(biāo)準(zhǔn)。2.掌握軟件需求分析、設(shè)計(jì)概念和一般性過(guò)程,能夠運(yùn)用這些知識(shí)對(duì)復(fù)雜軟件系統(tǒng)進(jìn)行需求分析、模塊劃分和詳細(xì)設(shè)計(jì)。3.掌握面向?qū)ο蟮能浖?xiàng)目開(kāi)發(fā)特點(diǎn)以及項(xiàng)目管理方法,增強(qiáng)編程實(shí)踐、軟件測(cè)試與維護(hù)。4.掌握UML建模技術(shù),能夠在軟件工程過(guò)程中使用常用建模工具對(duì)復(fù)雜軟件系統(tǒng)進(jìn)行需求分析和設(shè)計(jì)。5.掌握軟件工程需求、分析、設(shè)計(jì)等相關(guān)文檔的編寫(xiě)。6.掌握軟件過(guò)程的管理和質(zhì)量控制,以及軟件項(xiàng)目的計(jì)劃、可行性分析和成本周期估算等知識(shí)。
第1章理解軟件工程軟件的發(fā)展1軟件的特性和分類2軟件工程的起源3軟件團(tuán)隊(duì)5軟件質(zhì)量467軟件工程的領(lǐng)域知識(shí)軟件工程師的職業(yè)道德1.1軟件的發(fā)展思考5個(gè)問(wèn)題:我們用的是什么類型的計(jì)算?我們需要保存什么類型的信息或數(shù)據(jù)?對(duì)于需要長(zhǎng)期保留的信息,哪些存儲(chǔ)方法最合適?面對(duì)復(fù)雜的選項(xiàng)或決策,哪些分析方法對(duì)我們有幫助?在進(jìn)行數(shù)據(jù)與知識(shí)的交流時(shí),有哪些最佳方法?提示:縱覽計(jì)算機(jī)和軟件逐步用于解決這些問(wèn)題的過(guò)程,從大歷史觀的角度來(lái)考慮這5個(gè)問(wèn)題。軟件發(fā)展史?(課后閱讀《軟件工程通史》,在閱讀基礎(chǔ)上要求總結(jié)近20年世界軟件發(fā)展,以及中國(guó)軟件發(fā)展)。軟件的特性和分類無(wú)形性:邏輯實(shí)體,沒(méi)有物理形態(tài),通過(guò)運(yùn)行表示智能性:凝聚大量人類腦力勞動(dòng)抽象性:邏輯實(shí)體的抽象性,開(kāi)發(fā)的抽象性系統(tǒng)性:有機(jī)整體復(fù)雜性:服務(wù)于各種行業(yè)可復(fù)制性:拷貝演化性:環(huán)境、需求和技術(shù)變化1.21.2.1軟件的特性軟件特性和分類系統(tǒng)軟件應(yīng)用軟件支撐軟件可復(fù)用軟件1.21.2.2軟件的分類按照軟件的作用分類軟件特性和分類商業(yè)軟件公共軟件共享軟件自由軟件1.21.2.2軟件的分類按照版權(quán)保護(hù)標(biāo)準(zhǔn)分類1.3軟件工程的起源1.3.1軟件危機(jī)通常,把計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題稱為“軟件危機(jī)”。如今軟件開(kāi)發(fā)技術(shù)已經(jīng)有了很大的進(jìn)步,但是隨著軟件規(guī)模的不斷擴(kuò)大,軟件需要解決的問(wèn)題越來(lái)越復(fù)雜,“軟件危機(jī)”依舊存在??紤]到“軟件危機(jī)”的周期長(zhǎng)且難以預(yù)測(cè),一些人將“軟件危機(jī)”稱為“軟件蕭條”。1.3軟件工程的起源開(kāi)發(fā)者與用戶溝通存在障礙隨著軟件規(guī)模逐漸增加,相應(yīng)的軟件復(fù)雜性也呈指數(shù)型升高缺乏有效的經(jīng)驗(yàn)和數(shù)據(jù)積累以及估算工具來(lái)制定有效的計(jì)劃項(xiàng)目?jī)?nèi)部缺乏管理經(jīng)驗(yàn)軟件危機(jī)的典型表現(xiàn)1.3軟件工程的起源軟件產(chǎn)品的質(zhì)量低下軟件通常沒(méi)有文檔資料,或者文檔資料不夠完備軟件危機(jī)的典型表現(xiàn)1.3軟件工程的起源1968年在第一屆NATO會(huì)議上曾經(jīng)給出了軟件工程的一個(gè)早期定義:“軟件工程就是為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建立和使用完善的工程原理。”1990年IEEE進(jìn)一步給出了一個(gè)更全面更具體的定義:“軟件工程是:①應(yīng)用系統(tǒng)化的、規(guī)范的、可量化的方法,來(lái)開(kāi)發(fā)、運(yùn)行和維護(hù)軟件,即將工程化方法應(yīng)用于軟件;②對(duì)①中各種方法的研究。1.3.2軟件工程的定義1.3軟件工程的起源軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程性學(xué)科。以計(jì)算機(jī)科學(xué)理論和其他相關(guān)學(xué)科的理論為指導(dǎo),采用工程化的概念、原理、技術(shù)和方法進(jìn)行軟件的開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以較少的代價(jià)獲得高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。1.3軟件工程的起源軟件過(guò)程是指生產(chǎn)軟件產(chǎn)品的一組活動(dòng)、動(dòng)作、任務(wù)的集合。活動(dòng)主要是實(shí)現(xiàn)較為寬泛的目標(biāo),動(dòng)作包含了主要工作制品生產(chǎn)過(guò)程中的一系列任務(wù),任務(wù)則關(guān)注小而明確的目標(biāo),能夠產(chǎn)生實(shí)際的制品。圖1-2概念性軟件開(kāi)發(fā)框架1.3.3軟件過(guò)程軟件質(zhì)量軟件質(zhì)量是“反映軟件滿足明確和隱含的需求的能力的特性總和”。具體來(lái)說(shuō),軟件質(zhì)量是軟件符合明確敘述的功能和性能需求、文檔中明確描述的開(kāi)發(fā)標(biāo)以及所有專業(yè)開(kāi)發(fā)的軟件都應(yīng)具有的和隱含特征相一致的程度。為了解軟件質(zhì)量是否滿足要求,必須從軟件質(zhì)量屬性出發(fā),通過(guò)考察軟件質(zhì)量屬性來(lái)評(píng)價(jià)軟件質(zhì)量,并依此給出提高軟件質(zhì)量的方法。1.4軟件質(zhì)量正確性健壯性可靠性性能易用性可理解性安全性可擴(kuò)展性兼容性可移植性
軟件質(zhì)量常見(jiàn)的屬性1.41.5
軟件團(tuán)隊(duì)如何從一個(gè)程序演化為一個(gè)有用的產(chǎn)品圖1-3編程系統(tǒng)產(chǎn)品的演進(jìn)軟件開(kāi)發(fā)小組的組織結(jié)構(gòu)取決于組織的管理風(fēng)格、組里的人員數(shù)目及他們的技術(shù)水平和軟件項(xiàng)目需要解決問(wèn)題的難易程度。Mantei提出了在確定采用何種軟件工程小組結(jié)構(gòu)時(shí)應(yīng)該考慮的與項(xiàng)目相關(guān)的7個(gè)問(wèn)題。①項(xiàng)目待解決問(wèn)題的困難程度。②項(xiàng)目要產(chǎn)生的程序的規(guī)模,以代碼行或者功能點(diǎn)來(lái)衡量。③小組成員需要一起工作的時(shí)間(小組生命期)。④需要解決的問(wèn)題能夠被模塊化的程度。⑤待建造系統(tǒng)所要求的質(zhì)量和可靠性。⑥交付日期的嚴(yán)格程度。⑦項(xiàng)目所需要的社交性(通信)的程度。1.5
軟件團(tuán)隊(duì)1.5
軟件團(tuán)隊(duì)從歷史角度看:(1)民主小組(2)主程序員小組(3)現(xiàn)代程序員小組(4)同步—穩(wěn)定小組(5)敏捷過(guò)程小組(6)開(kāi)源編程小組圖1-4主程序員小組組織結(jié)構(gòu)圖1-5現(xiàn)代程序員小組組織結(jié)構(gòu)1.6
軟件工程的知識(shí)領(lǐng)域1993年,IEEE計(jì)算機(jī)協(xié)會(huì)和ACM聯(lián)合建立的軟件工程協(xié)同委員會(huì)、加拿大魁北克大學(xué)以及美國(guó)MITRE公司共同承擔(dān)了ISO/ICE/JTCI“SWEBOK(SoftwareEngineeringBodyofKnowledge)指南”項(xiàng)目。該項(xiàng)目希望促進(jìn)世界范圍內(nèi)對(duì)軟件工程形成一致觀點(diǎn);闡明軟件工程相對(duì)于其他學(xué)科(如計(jì)算機(jī)科學(xué)、項(xiàng)目管理、計(jì)算機(jī)工程和數(shù)學(xué)等)的位置,并確立它們的分界;刻畫(huà)軟件工程學(xué)科的內(nèi)容;提供使用知識(shí)體系的主題;為開(kāi)發(fā)課程和個(gè)人認(rèn)證與許可材料提供基礎(chǔ)。1.6
軟件工程的知識(shí)領(lǐng)域2014年IEEE公布的SWEBOK3.0中提到了軟件工程的15個(gè)知識(shí)領(lǐng)域(KnowledgeArea,KA),其中包括:11個(gè)軟件工程實(shí)踐知識(shí)域——軟件需求、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測(cè)試、軟件維護(hù)、軟件配置管理、軟件工程管理、軟件工程過(guò)程、軟件工程模型和方法、軟件質(zhì)量、軟件工程職業(yè)實(shí)踐;4個(gè)軟件工程教育基礎(chǔ)知識(shí)域——軟件工程經(jīng)濟(jì)學(xué)、計(jì)算基礎(chǔ)、數(shù)學(xué)基礎(chǔ)和工程基礎(chǔ)。1.7
軟件工程師職業(yè)道德軟件工程師應(yīng)履行其實(shí)踐承諾,使軟件的需求分析、規(guī)格說(shuō)明、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試和維護(hù)成為一項(xiàng)有益和受人尊敬的職業(yè)。(1)公眾——軟件工程師應(yīng)當(dāng)始終如一地以符合公眾利益為目標(biāo)。(2)客戶和雇主——在保持與公眾利益一致的原則下,軟件工程師應(yīng)滿足客戶和雇主的最高利益。(3)產(chǎn)品——軟件工程師應(yīng)當(dāng)確保他們的產(chǎn)品和相關(guān)的改進(jìn)符合可能達(dá)到的最高專業(yè)標(biāo)準(zhǔn)。(4)判斷——軟件工程師在進(jìn)行相關(guān)的專業(yè)判斷時(shí),應(yīng)該堅(jiān)持正直、誠(chéng)實(shí)和獨(dú)立的原則。(5)管理——軟件工程的管理和領(lǐng)導(dǎo)人員在軟件開(kāi)發(fā)和維護(hù)的過(guò)程中,應(yīng)自覺(jué)遵守、應(yīng)用并推動(dòng)合乎道德規(guī)范的管理方法。(6)專業(yè)——軟件工程師應(yīng)當(dāng)自覺(jué)推動(dòng)本行業(yè)所提倡的誠(chéng)實(shí)、正直的道德規(guī)范,并自覺(jué)維護(hù)本行業(yè)的聲譽(yù),使軟件行業(yè)更好地為公眾利益所服務(wù)。(7)同事——軟件工程師對(duì)其同事應(yīng)持平等互助和支持的態(tài)度。(8)自身——軟件工程師應(yīng)終生不斷地學(xué)習(xí)和實(shí)踐其專業(yè)知識(shí),并在學(xué)習(xí)和實(shí)踐的過(guò)程中不斷提高自身的道德規(guī)范素養(yǎng)。小結(jié)1.了解軟件的發(fā)展2.理解軟件的特性3.了解影響軟件工程發(fā)展的各種因素4.認(rèn)識(shí)軟件工程學(xué)科5.理解軟件工程對(duì)軟件發(fā)展所起的作用6.了解軟件產(chǎn)業(yè)的發(fā)展現(xiàn)狀作業(yè)與思考作業(yè):1.簡(jiǎn)述近20年軟件發(fā)展趨勢(shì)和重大事件,分國(guó)內(nèi)和國(guó)外描述。2.總結(jié)軟件特性有哪些。3.比較傳統(tǒng)軟件工程和面向?qū)ο筌浖こ痰膮^(qū)別。思考:1.思考“共享小黃Y”提出的后續(xù)問(wèn)題。第2章軟件工程發(fā)展2.1軟件工程發(fā)展歷程1.第一代軟件工程--傳統(tǒng)的軟件工程2.第二代軟件工程--對(duì)象工程3.第三代軟件工程--過(guò)程工程4.第四代軟件工程--構(gòu)件工程軟件工程已經(jīng)歷四個(gè)重要發(fā)展階段1.第一代軟件工程--傳統(tǒng)的軟件工程2.第二代軟件工程--對(duì)象工程3.第三代軟件工程--過(guò)程工程4.第四代軟件工程--構(gòu)件工程
60年代末到70年代為了克服“軟件危機(jī)”(Softwarecrisis)提出“軟件工程”的名詞,將軟件開(kāi)發(fā)納入工程化的軌道,基本形成軟件工程的概念、框架、技術(shù)和方法,稱為傳統(tǒng)的軟件工程。軟件工程已經(jīng)歷四個(gè)重要發(fā)展階段2.1軟件工程發(fā)展歷程1.第一代軟件工程--傳統(tǒng)的軟件工程2.第二代軟件工程--對(duì)象工程3.第三代軟件工程--過(guò)程工程4.第四代軟件工程--構(gòu)件工程
80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點(diǎn)轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計(jì),演化為一種完整的軟件開(kāi)發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對(duì)象工程。軟件工程已經(jīng)歷四個(gè)重要發(fā)展階段2.1軟件工程發(fā)展歷程1.第一代軟件工程--傳統(tǒng)的軟件工程2.第二代軟件工程--對(duì)象工程3.第三代軟件工程--構(gòu)件工程4.第四代軟件工程--服務(wù)工程
20世紀(jì)90年代起,基于構(gòu)(Component)的開(kāi)發(fā)方法取得重要進(jìn)展,軟件系統(tǒng)的開(kāi)發(fā)可通過(guò)使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無(wú)需從頭開(kāi)始構(gòu)造,以此達(dá)到提高效率和質(zhì)量,降低成本的目的。軟件工程已經(jīng)歷四個(gè)重要發(fā)展階段2.1軟件工程發(fā)展歷程軟件工程已經(jīng)歷四個(gè)重要發(fā)展階段1.第一代軟件工程--傳統(tǒng)的軟件工程2.第二代軟件工程--對(duì)象工程3.第三代軟件工程--構(gòu)件工程4.第四代軟件工程--服務(wù)工程市場(chǎng)需求的快速變化,要求企業(yè)系統(tǒng)具有敏捷服務(wù)、快速重構(gòu)、資源重用及自由擴(kuò)充等特點(diǎn),由此面向服務(wù)的架構(gòu)SOA應(yīng)運(yùn)而生。它定義了構(gòu)成系統(tǒng)的服務(wù),通過(guò)描述服務(wù)之間的交互提供特定的功能特性。2.1軟件工程發(fā)展歷程2.2軟件工程中新技術(shù)的影響1.云計(jì)算與軟件工程2.大數(shù)據(jù)與軟件工程3.移動(dòng)應(yīng)用與軟件工程新技術(shù)的新特點(diǎn)使得軟件工程也產(chǎn)生了變化。云計(jì)算技術(shù)的發(fā)展對(duì)于軟件開(kāi)發(fā)影響越來(lái)越大。1.云計(jì)算對(duì)開(kāi)發(fā)模式的影響2.云計(jì)算對(duì)開(kāi)發(fā)工具的影響3.云計(jì)算對(duì)開(kāi)發(fā)者的影響4.云計(jì)算對(duì)軟件測(cè)試的影響2.2軟件工程中新技術(shù)的影響圖2-1云計(jì)算框架2.2軟件工程中新技術(shù)的影響軟件工程中的大數(shù)據(jù)是由眾多軟件開(kāi)發(fā)和使用過(guò)程中的工具自然產(chǎn)生和記錄的軟件演化及參與者活動(dòng)的日志,散布在互聯(lián)網(wǎng)的軟件倉(cāng)庫(kù)、軟件公司以及個(gè)體的各種環(huán)境中。1.軟件項(xiàng)目樣本多2.產(chǎn)生的日志數(shù)據(jù)種類和格式多(結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù))3.總體規(guī)模巨大且時(shí)刻變化。軟件工程中的大數(shù)據(jù)具有的主要特點(diǎn):2.2軟件工程中新技術(shù)的影響移動(dòng)應(yīng)用本質(zhì)上仍是軟件,同樣存在圍繞軟件生命周期的各項(xiàng)軟件工程任務(wù)。與傳統(tǒng)的桌面軟件相比,除了新的開(kāi)發(fā)框架和平臺(tái)以外,移動(dòng)應(yīng)用的開(kāi)發(fā)還具有以下特點(diǎn)。1.需求工程2.軟件重用3.能耗2.2軟件工程中新技術(shù)的影響2.3軟件工程中人的因素典型的軟件開(kāi)發(fā)項(xiàng)目在時(shí)間、人力、資金方面都是有限制的,軟件開(kāi)發(fā)的任何一步都需要人的參與。人的行動(dòng)、想法以及決策都會(huì)影響軟件的開(kāi)發(fā)。而每一個(gè)人都是具有一定特點(diǎn)的個(gè)體,這些特點(diǎn)可能與受過(guò)怎樣的教育、喜歡怎樣的工作方式有關(guān),也可能與他們所生活的社會(huì)文化環(huán)境有關(guān)。人的這些特點(diǎn)會(huì)在軟件開(kāi)發(fā)過(guò)程中不同程度地影響軟件質(zhì)量、軟件開(kāi)發(fā)速度,因而研究人的特性對(duì)整個(gè)軟件開(kāi)發(fā)具有重要意義。1.作為個(gè)體的人對(duì)軟件開(kāi)發(fā)的影響2.作為團(tuán)隊(duì)的人對(duì)軟件開(kāi)發(fā)的影響3.作為客戶的人對(duì)軟件開(kāi)發(fā)的影響2.3軟件工程中人的因素2.4軟件工程的未來(lái)發(fā)展軟件的本質(zhì)是演化性和構(gòu)造性,軟件開(kāi)發(fā)將伴隨計(jì)算機(jī)技術(shù)的發(fā)展而進(jìn)步。軟件工程的未來(lái)發(fā)展主要趨勢(shì):1.全球化軟件協(xié)作交付2.開(kāi)放性計(jì)算被廣泛應(yīng)用3.智能化的軟件開(kāi)發(fā)方法小結(jié)1.了解軟件工程的發(fā)展歷程2.了解云計(jì)算及其對(duì)軟件工程的影響3.了解大數(shù)據(jù)及其對(duì)軟件工程的影響4.了解移動(dòng)應(yīng)用開(kāi)發(fā)的特點(diǎn)5.明確軟件開(kāi)發(fā)中人的因素6.思考軟件工程的未來(lái)發(fā)展趨勢(shì)第3章軟件過(guò)程軟件生命周期模型1統(tǒng)一過(guò)程2敏捷開(kāi)發(fā)3開(kāi)源軟件4軟件過(guò)程的改進(jìn)5軟件過(guò)程軟件過(guò)程是生產(chǎn)軟件的方式,不同的軟件組織有不同的軟件生產(chǎn)過(guò)程。例如:初創(chuàng)公司的資本和人力條件有限,因此為開(kāi)發(fā)出能迅速響應(yīng)市場(chǎng)需求的軟件產(chǎn)品,會(huì)更關(guān)注完成產(chǎn)品的核心功能并盡早發(fā)布,新功能的加入以及產(chǎn)品質(zhì)量的提高往往放在軟件交付以后。長(zhǎng)期開(kāi)發(fā)行業(yè)應(yīng)用軟件的公司對(duì)同類產(chǎn)品需求的把握更精準(zhǔn),對(duì)設(shè)計(jì)和實(shí)現(xiàn)軟件所需要花費(fèi)的工作量和時(shí)間的估算更準(zhǔn)確,從而能更“有秩序”地進(jìn)行相關(guān)軟件生產(chǎn),提交給用戶穩(wěn)定、可靠的軟件產(chǎn)品。
軟件生命周期模型:對(duì)構(gòu)建軟件所應(yīng)遵循的步驟的理論性描述。
軟件生命周期模型是跨越整個(gè)生存期的系統(tǒng)開(kāi)發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。
瀑布模型快速原型模型
增量模型 螺旋模型
噴泉模型
可以用過(guò)程流來(lái)描述組織框架活動(dòng)、動(dòng)作和任務(wù)的次序,分為線性、迭代、演化和并行。軟件過(guò)程瀑布模型(waterfallmodel)是在1970年由WinstonRoyce提出的,其過(guò)程流是線性的。瀑布模型的關(guān)鍵是每個(gè)階段要完成指定的文檔并且該階段的產(chǎn)品被軟件質(zhì)量保證小組認(rèn)可之后,才能進(jìn)入下一個(gè)階段。3.1軟件生命周期模型3.1.1瀑布模型圖3-1瀑布模型軟件生命周期模型3.1瀑布模型被稱為經(jīng)典的軟件生命周期模型。在有明確需求并且需求保持穩(wěn)定的情況下,它是一個(gè)非常有效的過(guò)程模型。瀑布模型不適應(yīng)軟件需求不明確或者在開(kāi)發(fā)過(guò)程中需求經(jīng)常變化的情況。軟件生命周期模型3.1.1瀑布模型3.1快速原型模型通過(guò)使用原型來(lái)輔助軟件開(kāi)發(fā)。在需求分析階段要得到準(zhǔn)確、合理的需求說(shuō)明可能比較困難,用戶可能并不清楚自己需要的是什么樣的系統(tǒng)。快速原型模型適合預(yù)先不能確切定義需求的軟件系統(tǒng)的開(kāi)發(fā)。
軟件生命周期模型3.1.2快速原型模型3.1圖3-2快速原型模型
軟件產(chǎn)品的開(kāi)發(fā)基本上是線性順序進(jìn)行的。
軟件生命周期模型3.1快速原型模型最大的特點(diǎn)在于“快速”。對(duì)于采用何種形式、何種策略運(yùn)用快速原型主要取決于軟件項(xiàng)目的特點(diǎn)、團(tuán)隊(duì)成員素質(zhì)、可供支持的原型開(kāi)發(fā)工具和技術(shù)等,需要根據(jù)實(shí)際情況來(lái)做出決定。軟件生命周期模型3.1.2快速原型模型3.1如果軟件有明確需求,整個(gè)開(kāi)發(fā)過(guò)程不要求按照線性過(guò)程流執(zhí)行,同時(shí)要求團(tuán)隊(duì)迅速為用戶提供一套功能有限的軟件產(chǎn)品,并允許在后續(xù)版本中再進(jìn)行細(xì)化和擴(kuò)展,在這種情況下,可采用增量模型比較適用。
軟件生命周期模型3.1.3增量模型3.1圖3-3增量模型
軟件生命周期模型3.1增量模型的最大特點(diǎn)就是將待開(kāi)發(fā)的軟件系統(tǒng)模塊化和組件化。增量式開(kāi)發(fā)有利于從總體上降低軟件項(xiàng)目的技術(shù)風(fēng)險(xiǎn)。但增量模型對(duì)軟件設(shè)計(jì)有更高的技術(shù)要求:軟件體系結(jié)構(gòu)具有良好的開(kāi)放性與穩(wěn)定性,能夠順利地實(shí)現(xiàn)構(gòu)件集成;同時(shí)增量構(gòu)件應(yīng)具有很強(qiáng)的功能獨(dú)立性,能夠方便地與系統(tǒng)集成。軟件生命周期模型3.1.3增量模型3.1為了讓軟件開(kāi)發(fā)能更適應(yīng)風(fēng)險(xiǎn)的控制,Barry
Boehm在1988年提出軟件系統(tǒng)開(kāi)發(fā)的螺旋模型,將瀑布模型和快速原型模型結(jié)合起來(lái),強(qiáng)調(diào)風(fēng)險(xiǎn)分析。螺旋模型以快速原型法為基礎(chǔ),以進(jìn)化的開(kāi)發(fā)方式為中心,在每個(gè)項(xiàng)目階段使用瀑布模型法。它的基本做法是在每一個(gè)開(kāi)發(fā)階段前引入風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)控制。軟件生命周期模型3.1.4螺旋模型3.1圖3-4螺旋模型軟件生命周期模型3.1B.H.Sollers和J.M.Edwards在1990年提出的噴泉模型是一種以用戶需求為動(dòng)力,以對(duì)象為驅(qū)動(dòng)的模型,主要用于描述面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。軟件生命周期模型3.1.5噴泉模型3.1圖3-5噴泉模型1994年10月,JamesRumbaugh和GradyBooch開(kāi)始合作致力于建模語(yǔ)言工作,于1995年10月發(fā)布了統(tǒng)一方法UM0.8(UnitiedMethod0.8)。1995年,經(jīng)過(guò)Booch、Rumbaugh和Jacobson三人的共同努力,于1996年6月和10月分別發(fā)布了UML0.9和UML0.91,并將UM重新命名為統(tǒng)一建模語(yǔ)言(UnifiedModelingLanguage,UML)。UML是現(xiàn)今較為成熟的軟件建模技術(shù)和語(yǔ)言。3.2.1RUP的產(chǎn)生3.2統(tǒng)一過(guò)程在創(chuàng)建UML開(kāi)始階段,UML的三位創(chuàng)始人就認(rèn)識(shí)到軟件開(kāi)發(fā)除了需要建模技術(shù)和語(yǔ)言之外,還需要一個(gè)更高層次、能夠指導(dǎo)軟件開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)活動(dòng)的開(kāi)發(fā)過(guò)程方法學(xué)。1998年,統(tǒng)一過(guò)程(RationalUnifiedProcess,RUP)正式發(fā)布,并且將UML作為其建模語(yǔ)言。RUP并不是具體的一系列步驟,而應(yīng)被視為一種自適應(yīng)的方法學(xué),可以根據(jù)實(shí)際開(kāi)發(fā)的軟件產(chǎn)品進(jìn)行修改。3.2.1RUP的產(chǎn)生3.2統(tǒng)一過(guò)程圖3-6RUP發(fā)展過(guò)程
3.2.1RUP的產(chǎn)生統(tǒng)一過(guò)程3.2圖3-7RUP過(guò)程模型
RUP軟件過(guò)程模型是一個(gè)二維的軟件開(kāi)發(fā)模型,也是一種用例驅(qū)動(dòng)、以體系結(jié)構(gòu)為核心、迭代遞增的軟件過(guò)程框架。3.2.2RUP的過(guò)程模型統(tǒng)一過(guò)程3.2RUP包含了軟件開(kāi)發(fā)積累下來(lái)的六大經(jīng)驗(yàn):1.迭代和遞增式開(kāi)發(fā)2.管理需求3.基于組件的體系結(jié)構(gòu)4.可視化建模5.驗(yàn)證軟件質(zhì)量6.控制軟件變更
3.2.3RUP的特點(diǎn)統(tǒng)一過(guò)程3.22001年,17位在當(dāng)時(shí)被稱為“輕量級(jí)方法學(xué)家”的軟件開(kāi)發(fā)者、軟件工程作家以及軟件咨詢師(敏捷聯(lián)盟)共同簽署了“敏捷軟件開(kāi)發(fā)宣言”。3.3.1敏捷原則3.3敏捷開(kāi)發(fā)敏捷軟件開(kāi)發(fā)宣言個(gè)體和交互勝過(guò)過(guò)程和工具可以工作的軟件
勝過(guò)
面面俱到的文檔
客戶合作
勝過(guò)
合同談判
響應(yīng)變化
勝過(guò)
遵循計(jì)劃“我們正在通過(guò)親身實(shí)踐以及幫助他人實(shí)踐,揭示更好的軟件開(kāi)發(fā)方法。通過(guò)這項(xiàng)工作,我們認(rèn)識(shí)到:雖然右項(xiàng)也具有價(jià)值,但我們認(rèn)為左項(xiàng)具有更大的價(jià)值。”敏捷開(kāi)發(fā)3.3敏捷聯(lián)盟制定了12項(xiàng)原則,將敏捷理念落實(shí)到具體可操作的層面。敏捷軟件開(kāi)發(fā)項(xiàng)目以12項(xiàng)原則為基石,但并不是每一個(gè)敏捷模型都同等使用這12項(xiàng)原則,一些模型可以選擇忽略或淡化其中的一項(xiàng)或多項(xiàng)原則的重要性。敏捷開(kāi)發(fā)3.33.3.1敏捷原則(1)最優(yōu)先要做的是通過(guò)盡早、持續(xù)地交付有價(jià)值的軟件來(lái)使客戶滿意。(2)即使在開(kāi)發(fā)的后期,也歡迎需求變更。敏捷過(guò)程利用變更為客戶創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)。(3)經(jīng)常交付可運(yùn)行軟件,交付的間隔可以從幾個(gè)星期到幾個(gè)月,交付的時(shí)間間隔越短越好。(4)在整個(gè)項(xiàng)目開(kāi)發(fā)期間,業(yè)務(wù)人員和開(kāi)發(fā)人員必須每天都在一起工作。(5)激發(fā)個(gè)體的斗志,以他們?yōu)楹诵拇罱?xiàng)目。給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作。(6)不論團(tuán)隊(duì)內(nèi)外,傳遞信息效果最好和效率最高的方式是面對(duì)面的交談。敏捷開(kāi)發(fā)3.3(7)可工作的軟件是進(jìn)度的首要度量標(biāo)準(zhǔn)。(8)敏捷過(guò)程倡導(dǎo)可持續(xù)開(kāi)發(fā)。責(zé)任人、開(kāi)發(fā)人員和用戶要能夠共同維持其步調(diào)穩(wěn)定延續(xù)。(9)不斷地關(guān)注優(yōu)秀的技能和好的設(shè)計(jì)會(huì)增強(qiáng)敏捷能力。(10)要做到簡(jiǎn)潔,即盡最大可能減少不必要的工作。這是一門藝術(shù)。(11)最好的架構(gòu)、需求和設(shè)計(jì)來(lái)自于自組織團(tuán)隊(duì)。(12)每隔一定時(shí)間,團(tuán)隊(duì)要反思如何才能更有效地工作,并相應(yīng)調(diào)整自己的行為。敏捷開(kāi)發(fā)3.3極限編程(XP)Scrum精益開(kāi)發(fā)(Lean)OpenUP3.3.2敏捷過(guò)程應(yīng)用最廣泛的敏捷開(kāi)發(fā)方法框架有:敏捷開(kāi)發(fā)3.3極限編程(ExtremeProgramming,XP)是目前敏捷軟件開(kāi)發(fā)使用最為廣泛的方法之一,其主要目標(biāo)在于降低因需求變更而帶來(lái)的成本。極限編程的創(chuàng)始人KentBeck為XP的實(shí)施確定了五個(gè)基礎(chǔ)要素:溝通、簡(jiǎn)明、反饋、鼓勵(lì)和尊重。3.3.3極限編程敏捷開(kāi)發(fā)3.3圖3-8
XP過(guò)程
3.3.3極限編程敏捷開(kāi)發(fā)3.3Scrum最早由JeffSutherland在1993年提出,KenSchwaber在1995年OOPSLA會(huì)議上形式化了Scrum開(kāi)發(fā)過(guò)程,并向業(yè)界公布。Scrum已經(jīng)是業(yè)界常用的敏捷開(kāi)發(fā)方法之一。使用Scrum的產(chǎn)品生命周期一般包含三個(gè)階段:●產(chǎn)品定義(計(jì)劃):進(jìn)行迭代所需要的項(xiàng)目準(zhǔn)備、項(xiàng)目計(jì)劃和技術(shù)分析。●迭代開(kāi)發(fā)(執(zhí)行):在固定時(shí)間的迭代中實(shí)現(xiàn)需求(產(chǎn)品待辦列表中的條目)。●結(jié)束:準(zhǔn)備最終的發(fā)布,結(jié)束項(xiàng)目。3.3.4Scrum敏捷開(kāi)發(fā)3.3圖3-9Scrum過(guò)程敏捷開(kāi)發(fā)3.3每個(gè)過(guò)程模式定義了一系列開(kāi)發(fā)活動(dòng):●待辦列表(Backlog):能為用戶提供商業(yè)價(jià)值的項(xiàng)目需求或者特征的優(yōu)先級(jí)列表。●沖刺(sprint):是由一系列必須在規(guī)定時(shí)間完成的工作單元組成,這些工作單元是為了實(shí)現(xiàn)待定需求而必需的。在沖刺過(guò)程中,不允許進(jìn)行任何變更,以確保短期內(nèi)的穩(wěn)定性●Scrum例會(huì):團(tuán)隊(duì)每天召開(kāi)短會(huì),幫助團(tuán)隊(duì)盡早發(fā)現(xiàn)問(wèn)題。●演示:向客戶交付軟件增量,由客戶對(duì)其進(jìn)行評(píng)價(jià)。3.3.4Scrum敏捷開(kāi)發(fā)3.31.產(chǎn)品負(fù)責(zé)人2.ScrumMaster3.Scrum團(tuán)隊(duì)1.產(chǎn)品代辦列表2.發(fā)布燃盡圖3.Sprint代辦列表4.Sprint燃盡圖1.Sprint2.發(fā)布計(jì)劃會(huì)議3.Sprint計(jì)劃會(huì)議4.每日例會(huì)5.Sprint評(píng)審會(huì)6.Sprint回顧會(huì)議Scrum敏捷過(guò)程由三個(gè)角色、四個(gè)工件、六個(gè)時(shí)間箱組成。三個(gè)角色四個(gè)工件六個(gè)時(shí)間箱敏捷開(kāi)發(fā)3.3圖3-10
Scrum中的燃盡圖敏捷開(kāi)發(fā)3.31998年,BrucePerens和EricRaymond創(chuàng)立了開(kāi)放源代碼促進(jìn)會(huì)(OpenSourceInitiative),發(fā)起了“開(kāi)放源代碼”運(yùn)動(dòng)。開(kāi)源已經(jīng)成為軟件領(lǐng)域技術(shù)、產(chǎn)品創(chuàng)新的一種重要模式,也是驅(qū)動(dòng)信息產(chǎn)業(yè)變革、強(qiáng)化信息產(chǎn)業(yè)基礎(chǔ)的關(guān)鍵要素。在云計(jì)算、大數(shù)據(jù)等新興領(lǐng)域,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)課程設(shè)計(jì)案例
- 微波課程設(shè)計(jì)開(kāi)題報(bào)告
- 染整技術(shù)員工藝流程設(shè)計(jì)與實(shí)施能力考核試卷
- 工程勘察課程設(shè)計(jì)報(bào)告
- 衛(wèi)生陶瓷制品倉(cāng)儲(chǔ)與物流配送考核試卷
- 玉石歷史文化研究與傳統(tǒng)工藝傳承考核試卷
- 石材裝飾施工流程規(guī)范考核試卷
- 玻璃制造行業(yè)的環(huán)境保護(hù)問(wèn)題考核試卷
- 煤炭及制品進(jìn)出口業(yè)務(wù)考核試卷
- 社會(huì)創(chuàng)業(yè)與社會(huì)創(chuàng)新實(shí)踐考核試卷
- 《成本費(fèi)用控制》課件
- 醫(yī)院消防培訓(xùn)方案
- 【人教部編版語(yǔ)文六年級(jí)上冊(cè)】選擇題專項(xiàng)練習(xí)復(fù)習(xí)(100道題后附答案)
- 外科醫(yī)學(xué)教學(xué)設(shè)計(jì)
- 創(chuàng)辦臺(tái)球廳的計(jì)劃書(shū)
- 廣東省廣州市越秀區(qū)2022-2023學(xué)年八年級(jí)上學(xué)期期末物理試卷
- 統(tǒng)編版語(yǔ)文四年級(jí)上冊(cè)《期末作文專項(xiàng)復(fù)習(xí)》 課件
- 2024年黑龍江省機(jī)場(chǎng)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 內(nèi)科季度護(hù)理質(zhì)量分析課件
- 影視聲音藝術(shù)創(chuàng)作基礎(chǔ)教程-課件
- 第四單元大單元教學(xué)設(shè)計(jì) 編版語(yǔ)文九年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論