




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2024年12月9日第1頁第15章軟件工程(ruǎnjiànɡōnɡchénɡ)新技術本章內(nèi)容(nèiróng)結構本章引言學習目標教學內(nèi)容本章小結思考和練習共七十七頁本章(běnzhānɡ)引言軟件工程領域研究使用的新技術:迭代開發(fā),以時間換空間,消除市場風險。敏捷開發(fā)或輕量級過程(guòchéng),以不變應萬變。永遠的Beta,不斷推陳出新,永無止境。持續(xù)集成、持續(xù)構建、全程測試。知識管理,將軟件工程納入知識管理的范疇。軟件即服務(SaaS),面向服務架構(SOA)的開發(fā)思想。用例驅(qū)動開發(fā),用戶為本思想在軟件中的體現(xiàn)。以顧客為中心的全面質(zhì)量管理。
2024年12月9日第2頁共七十七頁2024年12月9日第3頁學習(xuéxí)目標掌握軟件復用的概念、分類、關鍵技術及復用粒度理解基于構件的軟件工程技術的相關(xiāngguān)概念及應用理解軟件過程和標準化的作用及應用理解敏捷軟件開發(fā)過程概念及模型理解Web軟件工程的相關概念和特色理解軟件產(chǎn)品線技術的概念及發(fā)展共七十七頁2024年12月9日第4頁教學內(nèi)容15.1軟件復用技術15.2基于構件的軟件工程技術15.3軟件過程與標準化15.4敏捷軟件開發(fā)過程15.5Web軟件工程15.6軟件產(chǎn)品線技術15.7本章小結(xiǎojié)和習題共七十七頁2024年12月9日第5頁15.1.1軟件復用概念(gàiniàn)及分類軟件復用:重復使用“為了復用目的而設計的軟件”的過程。實施軟件復用的目的:要使軟件開發(fā)工作進行得更快、更好、更省。軟件復用與共享、軟件移植(yízhí)的區(qū)別:共享:是在一個系統(tǒng)中多次使用一個相同的軟件成分軟件移值:對一個軟件進行修改,使它運行于新的軟硬件平臺共七十七頁2024年12月9日第6頁15.1.1軟件復用概念(gàiniàn)及分類(1)依據(jù)復用的對象分類產(chǎn)品復用、過程復用(2)依據(jù)對可復用信息進行(jìnxíng)復用的方式分類黑盒復用、白盒復用(3)依據(jù)復用的組織方式分類個別的軟件復用、系統(tǒng)化的軟件復用(4)根據(jù)所應用的領域范圍分類橫向復用、縱向復用共七十七頁2024年12月9日第7頁15.1.2軟件復用(fùyònɡ)的關鍵技術和復用(fùyònɡ)粒度軟件復用有3個基本問題:必須有可以復用的對象所復用的對象必須是有用的復用者需要知道如何去使用被復用的對象。軟件復用包括(bāokuò)兩個相關過程:可復用軟件(構件)的開發(fā)基于可復用軟件(構件)應用系統(tǒng)的構造(集成和組裝)共七十七頁2024年12月9日第8頁15.1.2軟件復用(fùyònɡ)的關鍵技術和復用(fùyònɡ)粒度實現(xiàn)軟件復用的關鍵技術因素:軟件構件技術、領域工程、軟件構架技術、軟件再工程技術、開放系統(tǒng)技術、軟件過程、CASE技術等。軟件復用的非技術因素:機構組織(zǔzhī)如何適應復用的需求;管理方法如何適應復用的需求;開發(fā)人員知識的更新;創(chuàng)造性和工程化的關系;開發(fā)人員的心理障礙;知識產(chǎn)權問題;保守商業(yè)秘密的問題;復用前期投入的經(jīng)濟考慮;標準化問題等。
共七十七頁2024年12月9日第9頁15.2.1中間件技術(jìshù)中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源;中間件位于(wèiyú)客戶機/服務器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡通信。圖15.1中間件概念共七十七頁2024年12月9日第10頁15.2.1中間件技術(jìshù)圖15.2中間件在應用系統(tǒng)(xìtǒng)中的位置中間件的作用:建立分布式軟件模塊之間互操作的機制,屏蔽底層分布式環(huán)境的復雜性和異構性,為處于自己上層的應用軟件提供運行與開發(fā)環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復雜的應用軟件。共七十七頁2024年12月9日第11頁15.2.1中間件技術(jìshù)1.中間件要解決的問題(1)應用的互連和互操作問題(2)針對不同的應用領域,對中間件又有各種(ɡèzhǒnɡ)不同的要求中間件具有以下特點:滿足大量應用的需要;運行于多種硬件和操作系統(tǒng)平臺;支持分布式計算;提供跨網(wǎng)絡、硬件和操作系統(tǒng)平臺的透明性;支持標準的協(xié)議和接口。共七十七頁2024年12月9日第12頁15.2.1中間件技術(jìshù)2.中間件的分類(1)根據(jù)中間件具有的功能和所提供的服務面向?qū)ο笾虚g件、消息中間件、容錯中間件、反射中間件(2)基于IDC分類方法終端仿真/屏幕轉(zhuǎn)換(zhuǎnhuàn)、數(shù)據(jù)訪問中間件遠程過程調(diào)用中間件、消息中間件交易中間件、基于對象請求代理(ORB)中間件共七十七頁2024年12月9日第13頁15.2.1中間件技術(jìshù)3.中間件的發(fā)展及認識度早期的中間件市場中事務中間件與消息中間件占的份額最大,近年來隨著(suízhe)Web應用的逐漸普及,支持Web服務和應用的應用服務器中間件的占有量已經(jīng)居于各類中間件的首位,消息中間件和事務中間件分別居第二、三名。表15.1操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和中間件的類比共七十七頁2024年12月9日第14頁15.2.2構件(gòujiàn)與構件(gòujiàn)化構件:是一些可執(zhí)行單元,可以通過獨立的開發(fā)、購買和配置組合到一個功能系統(tǒng)中去,是軟件系統(tǒng)內(nèi)被標識、符合某種標準要求(yāoqiú)并可復用的軟件組成成分,類似于傳統(tǒng)工業(yè)中的零部件。從廣義上來講,構件可以是被封裝的對象類、類簇、一些功能模塊、構件框架或構架、文檔、分析件、設計模式等;從狹義上來說,一般指對外提供的具有規(guī)約化接口、符合一定標準、可替換的軟件系統(tǒng)的程序模塊。共七十七頁2024年12月9日第15頁15.2.2構件(gòujiàn)與構件(gòujiàn)化構件技術的基本思想:創(chuàng)建和利用可復用的軟件構件來解決軟件開發(fā)的問題(wèntí)??蓮陀脴嫾壕哂邢鄬Κ毩⒐δ芎涂蓮陀脙r值的構件。構件化的軟件開發(fā)方法是一種將一個完整系統(tǒng)看作是若干個獨立部分(構件)組裝的軟件開發(fā)方法,每一部分是一個可重用的單元,通過替換和重新配置來完成軟件的升級。共七十七頁2024年12月9日第16頁15.2.3構件(gòujiàn)模型及描述語言兩個主要的構件描述模型:Tracz提出的3C模型:主要用于對構件的可重用信息(xìnxī)進行描述,
Component=(Concept,Content,Context)REBOOT項目中提出的REBOOT(ReuseBasedonObjectOrientedTechniques)模型:主要用于對可重用構件進行分類與檢索,它與構件檢索的關系更為密切。共七十七頁2024年12月9日第17頁15.2.3構件(gòujiàn)模型及描述語言北京大學青鳥構件模型是一個具有面向?qū)ο箫L格的模型,從3個不同的、相互正交的視角來看待構件,每個具體的構件都是形態(tài)、層次和表示構成的三維空間中的一個點。構件形態(tài):類、類樹、框架、設計模式、體系結構;構件層次:分析件、設計件、編碼件、測試件構件的表示與層次有關,不同層次的構件具有不同的表示媒介和手段,如圖形、復合文檔、正文、偽碼、編程語言、目標碼等。青鳥構件模型從9個方面來描述構件,即概念(gàiniàn)、操作規(guī)約、接口、類型、實現(xiàn)體、構件復合、構件性質(zhì)、構件注釋、構件語境。共七十七頁2024年12月9日第18頁15.2.3構件(gòujiàn)模型及描述語言構件實現(xiàn)模型標準:CORBA、COM/DCOM/COM+、JavaBeans/EJB基本思想:第一,采用將構件的接口和實現(xiàn)相分離的原則;第二,采用黑盒重用的方式,外界僅可以通過構件的接口來訪問構件的功能;第三,在實現(xiàn)方法上都使用接口描述語言(InterfaceDescriptionLanguage,IDL)進行構件接口定義,利用相應(xiāngyīng)的中間件作為支持該構件模型的運行時環(huán)境,從而達到由不同的編程語言所實現(xiàn)、運行在不同的操作系統(tǒng)環(huán)境中及在不同主機上的構件都能相互交互的目的。共七十七頁2024年12月9日第19頁15.2.3構件(gòujiàn)模型及描述語言主要不同在于技術(jìshù)的提出者及應用背景
COM/DCOM是由微軟公司提出的,由于Microsoft在PC軟件領域的壟斷地位,因此在基于Microsoft的環(huán)境中,使用COM/DCOM/COM+是一種當然的選擇;CORBA是由OMG組織提出的,它的標準是開放的,并且OMG成員廣泛,所以CORBA最具普遍性,是異構環(huán)境中的理想選擇;在Internet和移動計算(如手機)中,Java是普遍采用的一種技術,因此JavaBeans/EJB在這類Internet和移動計算應用環(huán)境中比較適合。共七十七頁2024年12月9日第20頁15.2.3構件(gòujiàn)模型及描述語言構件描述語言比較典型的有CORBA規(guī)范中的接口(jiēkǒu)描述語言IDLUML規(guī)范中的對象約束語言OCL北大青鳥構件系統(tǒng)中的青鳥構件描述語言JBCDL加州理工大學提出的構件描述語言CDL等共七十七頁2024年12月9日第21頁15.2.4構件(gòujiàn)的檢索與組裝1.構件(gòujiàn)的檢索W.Frakes從構件表示出發(fā),將現(xiàn)有方法分為人工智能方法、超文本方法和信息科學方法3類。H.Mili則按照復雜度和檢索效果的遞增,將其分為基于正文的、基于詞法描述符的、基于規(guī)約的分類和檢索3類。共七十七頁2024年12月9日第22頁15.2.4構件的檢索(jiǎnsuǒ)與組裝W.Frakes重點討論了信息科學方法,因為這是實際復用項目(xiàngmù)中,應用較為成功的途徑。將信息科學方法分為基于受控詞匯表和基于不受控詞匯表分類兩種形式。圖15.3信息科學的編目方法分類圖共七十七頁2024年12月9日第23頁15.2.4構件的檢索(jiǎnsuǒ)與組裝常用分類方式枚舉(méijǔ)分類刻面分類屬性值分類正文檢索關鍵詞分類共七十七頁2024年12月9日第24頁15.2.4構件的檢索(jiǎnsuǒ)與組裝2.構件(gòujiàn)組裝技術目的:利用現(xiàn)有的構件組裝成新的系統(tǒng)。本質(zhì):是在構件之間建立關聯(lián),根據(jù)這種關聯(lián),協(xié)調(diào)它們的行為,把它們組織成為一個有機的整體。構件組裝的研究內(nèi)容包括兩部分:對復合構件形成過程的研究面向體系結構(或者組裝框架)的研究共七十七頁2024年12月9日第25頁15.2.4構件(gòujiàn)的檢索與組裝3.構件(gòujiàn)組裝技術及方法的分類(1)根據(jù)組裝場景的不同分類不同的組裝層次:源代碼級的組裝、運行級組裝不同的組裝模式靜態(tài)組裝:設計時的組裝。動態(tài)組裝:運行時的組裝。(2)按照構件在組裝之前需要對構件內(nèi)部細節(jié)了解的程度及是否需要進行修改、封裝黑盒組裝方式、白盒組裝方式和灰盒組裝方式共七十七頁2024年12月9日第26頁15.2.4構件(gòujiàn)的檢索與組裝4.構件(gòujiàn)組裝的實現(xiàn)方法(1)以框架為基礎的方法(2)以連接件為基礎的方法(3)以膠合代碼為基礎的方法(4)基于總線的方法共七十七頁2024年12月9日第27頁15.2.5基于構件的軟件工程(ruǎnjiànɡōnɡchénɡ)方法基于構件的軟件工程(Component-BasedSoftwareEngineering,CBSE):以面向?qū)ο蟮姆椒榛A,強調(diào)軟件重用的作用,在軟件體系結構設計的基礎上,使用可復用(fùyònɡ)的軟件“構件”來設計和構造基于計算機的系統(tǒng)過程?;跇嫾拈_發(fā)(CBD,Component-BasedDevelopment):是一個與領域活動并行的CBSE活動。為了實現(xiàn)軟件重用,基于構件的軟件工程強調(diào)領域工程與軟件工程同步進行。共七十七頁2024年12月9日第28頁15.2.5基于(jīyú)構件的軟件工程方法圖15.4一個典型的可重用的過程(guòchéng)模型圖15.4給出了一個典型的可重用的過程模型,描述了領域工程與軟件工程的關系。共七十七頁2024年12月9日第29頁15.2.5基于構件的軟件工程(ruǎnjiànɡōnɡchénɡ)方法圖15.5給出了一個基于構件的開發(fā)(kāifā)模型。該模型中,建模和構建活動開始于識別可選構件。這些構件有些設計成通用的軟件模塊,有些設計成面向?qū)ο蟮念惢蜍浖?。圖15.5基于構件的開發(fā)模型共七十七頁2024年12月9日第30頁15.2.5基于(jīyú)構件的軟件工程方法基于構件的開發(fā)模型可以由以下步驟組成(采用演進方法):(1)對于該問題領域的基于構件的可用產(chǎn)品進行研究和評估(2)考慮構件集成的問題(3)設計軟件架構以容納這些構件(4)將構件集成到架構中(5)進行充分的測試以保證(bǎozhèng)功能正常共七十七頁2024年12月9日第31頁15.2.5基于構件的軟件工程(ruǎnjiànɡōnɡchénɡ)方法基于構件的開發(fā)(kāifā)模型存在的問題:(1)構件的信賴度問題(2)構件認證(3)自然特性預測(4)需求折中共七十七頁2024年12月9日第32頁15.2.6SOA與SaaSSOA憑借其松耦合的特性,使得企業(yè)可以按照模塊化的方式來添加新服務或更新現(xiàn)有服務,以解決新的業(yè)務需要,從而(cóngér)可以通過不同的渠道提供服務,并可以把企業(yè)現(xiàn)有的應用作為服務,從而(cóngér)保護了現(xiàn)有的IT基礎建設投資。圖15.6面向服務(fúwù)的分析與設計原理示意圖共七十七頁2024年12月9日第33頁15.2.6SOA與SaaSSOA模型的典型特征:松散耦合、粗粒度服務和標準化接口SOA的設計實踐原則:業(yè)務驅(qū)動服務,服務驅(qū)動技術(jìshù);業(yè)務敏捷是基本的業(yè)務需求。SOA的目標:最大限度地重用現(xiàn)有服務以提高IT的適應能力和利用效率。圖15.7一個(yīɡè)完整的面向服務的體系結構模型共七十七頁2024年12月9日第34頁15.2.6SOA與SaaS圖15.8單個服務(fúwù)內(nèi)部結構共七十七頁2024年12月9日第35頁15.2.6SOA與SaaSSaaS(Software-as-a-Service,軟件即服務),國內(nèi)通常叫做軟件運營服務模式,簡稱為軟營模式:是一種通過Internet提供軟件的模式,廠商將應用軟件統(tǒng)一部署在自己的服務器上,客戶可以根據(jù)自己實際需求,通過互聯(lián)網(wǎng)向廠商訂購所需的應用軟件服務,按訂購的服務多少和時間長短向廠商支付(zhīfù)費用,并通過互聯(lián)網(wǎng)獲得廠商提供的服務。共七十七頁2024年12月9日第36頁15.3軟件(ruǎnjiàn)過程與標準化軟件過程(guòchéng):軟件生存周期中,將用戶需求轉(zhuǎn)化為可執(zhí)行系統(tǒng)的演化過程所進行的軟件工程活動的全體,是用于生產(chǎn)軟件產(chǎn)品的工具、方法和實踐的集合。軟件過程技術的目標:通過工程化、標準化和形式化的方法管理軟件的開發(fā)過程,從而改變目前的軟件生產(chǎn)方式,實現(xiàn)大規(guī)模的軟件生產(chǎn)。軟件過程的研究:主要針對軟件生產(chǎn)和管理,不僅要有工程觀點,還要有系統(tǒng)觀點、管理觀點、運行觀點和用戶觀點。共七十七頁2024年12月9日第37頁15.3.1軟件(ruǎnjiàn)過程及其改進軟件過程改進:在軟件過程活動中,為了更有效地達到優(yōu)化軟件過程的目的所實施的改善或改變(gǎibiàn)其軟件過程的系列活動。軟件過程改進主要包括以下幾個關鍵步驟:①對比目前的狀態(tài)和期望達到的狀態(tài),找出存在的差距②確定要改變哪些差距,需要改變到什么程度③制定相應的具體實施計劃共七十七頁2024年12月9日第38頁15.3.2ISO9000標準(biāozhǔn)ISO9000是國際標準化組織ISO制定(zhìdìng)的世界上第一套質(zhì)量管理和質(zhì)量保證標準,主要目的是為了滿足國際貿(mào)易中對質(zhì)量管理和質(zhì)量保證需要有共同語言和共同準則的需要。表15.3ISO9000標準體系共七十七頁2024年12月9日第39頁15.3.3軟件能力(nénglì)成熟度模型(CMM)CMM(CapabilityMaturityModel)是卡內(nèi)基梅隆大學軟件工程研究院SEI受美國國防部委托制定的軟件過程的改良、評估模型,也稱為SEISW-CMM(SoftwareEngineeringInstituteSoftware-CapabilityMaturityModel)。該模型于1991年發(fā)布,并發(fā)展成為系列標準模型,描述了有效的軟件過程單元的框架,為軟件機構提供了一條從混亂的、不成熟的軟件過程向成熟的、有紀律的軟件過程改進的途徑。CMM涵蓋了有關計劃、設計和管理(guǎnlǐ)軟件開發(fā)和維護的實踐,軟件機構只要遵循這些實踐,就能夠提高該機構的能力,以滿足成本、進度計劃、功能及產(chǎn)品質(zhì)量等目標。共七十七頁2024年12月9日第40頁15.3.3軟件(ruǎnjiàn)能力成熟度模型(CMM)1)初始級(Initial)2)可重復(chóngfù)級(Repeatable)3)已定義級(Defined)4)已管理級(Managed)5)優(yōu)化級(Optimizing)
圖15.9CMM模型的5個成熟級1.CMM的內(nèi)容共七十七頁2024年12月9日第41頁15.3.3軟件(ruǎnjiàn)能力成熟度模型(CMM)表15.4軟件過程(guòchéng)的可視性與各成熟度能力模型的比較共七十七頁2024年12月9日第42頁15.3.3軟件能力(nénglì)成熟度模型(CMM)2.關鍵過程(guòchéng)域(KeyProcessArea,KPA)一系列相互影響的關鍵操作活動,這些活動反映一個軟件組織改進軟件過程時,必須集中力量改進的幾個方面共七十七頁2024年12月9日第43頁15.3.3軟件(ruǎnjiàn)能力成熟度模型(CMM)3.CMM實施中應注意的問題(1)剪裁的問題(2)ISO9000與CMM的關系(3)時間(shíjiān)和效果的問題①CMM只是說明達到某一級別必須做的工作,并未說明如何實施②CMM費用遠大于實施ISO9000的費用③實際一個管理過程的改進是一步步實現(xiàn)的共七十七頁2024年12月9日第44頁15.3.4PSP、TSP和CMMI1.個體軟件過程(PersonalSoftwareProcess,PSP)PSP可以為基于個體和小型群組軟件過程的優(yōu)化提供具體而有效的途徑,PSP的著眼點在于軟件缺陷的預防2.小組軟件開發(fā)過程(TeamSoftwareProcess,TSP)TSP實施集體管理與自己管理相結合的原則,最終目的在于指導一切人員如何(rúhé)在最少的時間內(nèi),以預定的費用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品。共七十七頁2024年12月9日第45頁15.3.4PSP、TSP和CMMI3.能力成熟度集成模型(CapabilityMaturityModelIntegration,CMMI)SW-CMM(SoftwareCMM)軟件CMMSE-CMM(SystemEngineeringCMM)系統(tǒng)工程CMMSA-CMM(SoftwareAcquisitionCMM)軟件采購(cǎigòu)CMMIPT-CMM(IntegratedProductTeamCMM)集成產(chǎn)品群組CMMP-CMM(PeopleCMM)人力資源能力成熟度模型共七十七頁2024年12月9日第46頁15.3.4PSP、TSP和CMMICMMI為企業(yè)帶來價值主要體現(xiàn)在以下幾個方面:(1)能保證軟件開發(fā)的質(zhì)量與進度,能對“雜亂無章、無序管理”的項目開發(fā)過程進行規(guī)范(2)有利于成本控制(3)有助于提高軟件開發(fā)者的職業(yè)素養(yǎng)(4)能夠解決(jiějué)人員流動所帶來的問題(5)有利于提升公司和員工績效管理水平,以持續(xù)改進效益共七十七頁2024年12月9日第47頁15.4.1敏捷(mǐnjié)及敏捷(mǐnjié)過程相關概念1.“敏捷過程”在軟件業(yè)中的提出2001年2月,17位“輕量級”軟件開發(fā)方法的創(chuàng)始人和專家(被稱為敏捷聯(lián)盟)共同簽署了“敏捷軟件開發(fā)宣言”,標志著敏捷軟件開發(fā)正式出現(xiàn)。該宣言聲明:個體和交互勝過過程和工具可工作(gōngzuò)軟件勝過面面俱到的文檔客戶合作勝過合同談判響應變化勝過遵循計劃共七十七頁2024年12月9日第48頁15.4.1敏捷及敏捷過程(guòchéng)相關概念2.敏捷的概念敏捷軟件過程很容易適應變化并迅速做出自我調(diào)整,在保證質(zhì)量的前提下,做到文檔、度量適度,適用于各類中小型軟件企業(yè)應用。敏捷過程的適用范圍包括以下要求:軟件需求經(jīng)常變化或者需求變化比較大項目團隊與用戶之間進行溝通比較容易項目的開發(fā)風險比較高規(guī)模比較小,一般(yībān)項目組成員在50人之內(nèi)項目團隊的成員能力比較強,而且具有責任感項目的可測試性比較好共七十七頁2024年12月9日第49頁15.4.1敏捷及敏捷過程相關(xiāngguān)概念3.敏捷宣言所遵循的12條原則(1)人們(rénmen)最優(yōu)先要做的是通過盡早地、持續(xù)地交付有價值的軟件來使客戶滿意。(2)即使到了開發(fā)的后期,也歡迎改變需求。敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢。(3)經(jīng)常性的交付可以工作的軟件,交付的間隔可以從幾個星期到幾個月,交付的時間間隔越短越好。(4)在整個項目開發(fā)期間,業(yè)務人員和開發(fā)人員必須天天都在一起工作。(5)圍繞被激勵起來的個體來構建項目。給它們提供所需的環(huán)境和支持,并且信任它們能夠完成工作。共七十七頁2024年12月9日第50頁15.4.1敏捷(mǐnjié)及敏捷(mǐnjié)過程相關概念(6)在團隊內(nèi)部,最具有效果并且富有效率的傳遞信息的方法就是面對面的交談。(7)工作的軟件是首要的進度度量標準。(8)敏捷過程提倡可持續(xù)的開發(fā)進度。責任人、開發(fā)者和用戶應保持一個長期恒定的開發(fā)速度。(9)不斷(bùduàn)關注優(yōu)秀的技能和好的設計會增強敏捷能力。(10)簡單——使未完成的工作最大化的藝術——是根本的。(11)最好的構架、需求和設計出自于自組織的團隊。(12)每隔一定時間,團隊會在如何才能更有效的工作方面進行反省,然后相應地對自己的行為進行調(diào)整。共七十七頁2024年12月9日第51頁15.4.1敏捷(mǐnjié)及敏捷(mǐnjié)過程相關概念4.敏捷軟件過程的特性①輕載(qīnɡzǎi)軟件過程(LightWeightSoftwareProcess)②基于時間③夠用就好(JustEnough)④并行⑤基于構件的軟件工程敏捷軟件過程模型可定義如下:敏捷軟件過程模型=
功能模型+合作模型+資源模型+產(chǎn)品模型共七十七頁2024年12月9日第52頁15.4.2典型的敏捷(mǐnjié)過程模型敏捷過程模型:eXtremeProgramming(XP,極限編程)Scrum、DSDM(動態(tài),系統(tǒng)開發(fā)方法)自適應軟件開發(fā)(AdaptiveSoftwareDevelopment,ASD)FeatureDrivenDevelopment(FDD,特性(tèxìng)驅(qū)動開發(fā))CrystalFamily共七十七頁2024年12月9日第53頁15.4.2典型的敏捷(mǐnjié)過程模型1.極限編程(eXtremeProgramming,XP)XP的目標:在規(guī)定的時間生產(chǎn)出滿足客戶需要的軟件。XP方法主要適用于下述情況:需求不明確、變化快;風險較高(在特定時間內(nèi),面對一個相當難開發(fā)的系統(tǒng));人數(shù)不超過10個的中小型團隊;開發(fā)地點(dìdiǎn)適宜在集中的場合。XP體現(xiàn)4個價值目標:溝通、簡化、反饋和勇氣共七十七頁2024年12月9日第54頁15.4.2典型的敏捷過程(guòchéng)模型圖15.10XP方法的開發(fā)(kāifā)過程共七十七頁2024年12月9日第55頁15.4.2典型的敏捷(mǐnjié)過程模型2.Scrum方法開發(fā)軟件就像是開發(fā)新產(chǎn)品,無法一開始就定義最終產(chǎn)品的規(guī)程,過程中需要研發(fā)、創(chuàng)意、嘗試錯誤,所以沒有一種固定的流程可以保證項目(xiàngmù)成功。Scrum開發(fā)團隊通常由5~9(7±2)人組成。Scrum偏重項目管理,XP偏重編程實踐。共七十七頁2024年12月9日第56頁15.4.2典型(diǎnxíng)的敏捷過程模型3.特征驅(qū)動開發(fā)(kāifā)(FeatureDrivenDevelopment,F(xiàn)DD)①領域?qū)ο蠼!"诎凑仗卣鏖_發(fā)。③類(代碼)擁有權。④特征小組。⑤審查。⑥定期構造。⑦配置管理。⑧可視性進度報告。
共七十七頁2024年12月9日第57頁15.4.2典型的敏捷過程(guòchéng)模型FDD方法包括5個過程(guòchéng)組成,如圖所示。共七十七頁2024年12月9日第58頁15.5Web軟件工程(ruǎnjiànɡōnɡchénɡ)15.5.1Web軟件工程概述15.5.2Web軟件的需求分析15.5.3Web軟件的設計(shèjì)15.5.4Web軟件的測試共七十七頁2024年12月9日第59頁15.5.1Web軟件工程(ruǎnjiànɡōnɡchénɡ)概述WebApp軟件幾乎具備下述所有屬性(shǔxìng):(1)網(wǎng)絡密集性(NetworkIntensive)(2)訪問并發(fā)性(Concurrency)(3)工作負荷的跳躍性(Unpredictableload)(4)性能(Performance)要求苛刻(5)安全性(Security)要求苛刻(6)可用性(Availability)(7)數(shù)據(jù)驅(qū)動(Datadriven):(8)內(nèi)容敏感性(ContentSensitive)(9)持續(xù)演化(ContinuousEvolution)(10)即時性(Immediacy)(11)美觀性(Aesthetics)共七十七頁2024年12月9日第60頁15.5.1Web軟件工程(ruǎnjiànɡōnɡchénɡ)概述Web工程過程整個(zhěnggè)Web工程過程的框架包括5個部分:(1)客戶交流階段(2)計劃階段(3)建模階段(4)構建階段(5)部署階段Web工程方法一般包括如下4種:(1)交流方法:(2)需求分析方法(3)設計方法:(4)測試方法:共七十七頁2024年12月9日第61頁15.5.2Web軟件的需求(xūqiú)分析根據(jù)Web工程(gōngchéng)的分析特點,Web軟件的需求分析會有以下5種主要的模型類型:(1)內(nèi)容模型(2)交互模型(3)功能模型(4)配置模型(5)導航模型共七十七頁2024年12月9日第62頁15.5.3Web軟件(ruǎnjiàn)的設計Web軟件的設計由需求分析階段所獲取的信息驅(qū)動,主要可分為6個步驟:(1)內(nèi)容設計利用內(nèi)容模型作為建立內(nèi)容對象設計的基礎;(2)美學設計建立了最終用戶所關注的外觀和感覺;(3)架構設計重點關注所有內(nèi)容對象和功能(gōngnéng)的總體超媒體結構;(4)界面設計創(chuàng)建了定義用戶界面的總體布局和交互機制;(5)導航設計定義了最終用戶對超媒體結構的導航關系;(6)構件設計表示了WebApp功能元素的詳細內(nèi)部結構。這6個步驟分別會產(chǎn)生內(nèi)容、美學外觀、體系架構、界面、導航和構件,這些都是Web軟件設計階段的成果。共七十七頁2024年12月9日15.5.3Web軟件(ruǎnjiàn)的設計WebApp設計的方法1.WebApp界面設計2.美學設計3.內(nèi)容(nèiróng)設計4.體系結構設計:線性、網(wǎng)絡和層次5.導航設計6.構件級設計共七十七頁2024年12月9日第64頁15.5.4Web軟件(ruǎnjiàn)的測試測試和評價WebApp的質(zhì)量(zhìliàng)的原則:(1)內(nèi)容:句法、語義(2)功能(3)結構(4)易用性(5)導航性(6)性能(7)兼容性(8)互操作性(9)安全性共七十七頁2024年12月9日第65頁15.6.1軟件產(chǎn)品線基本概念美國卡內(nèi)基梅隆大學軟件工程研究所(CMU/SEI)給出的定義:
“產(chǎn)品線是一個產(chǎn)品集合,這些產(chǎn)品共享一個公共的、可管理的特征集,這個特征集能滿足選定的
市場或任務領域的特定需求。這些系統(tǒng)(xìtǒng)遵循一個預
描述的方式,在公共的核心資產(chǎn)基礎上進行開發(fā)?!惫财呤唔?024年12月9日第66頁15.6.1軟件產(chǎn)品線基本概念軟件產(chǎn)品線的理論基礎:特定領域(lǐnɡyù)(產(chǎn)品線)內(nèi)的相似產(chǎn)品具有大量的公共部分和特征,通過識別和描述這些公共部分和特征,可以開發(fā)需求規(guī)范、測試用例、軟件構件等產(chǎn)品線的公共資源。典型的產(chǎn)品線開發(fā)過程(guòchéng)包括兩個關鍵過程(guòchéng):領域工程應用工程共七十七頁2024年12月9日第67頁15.6.1軟件產(chǎn)品線基本概念(1)領域工程主要任務:通過識別給定領域或相似(xiānɡsì)產(chǎn)品的公共結構和特征,開發(fā)產(chǎn)品線內(nèi)產(chǎn)品的公共資源。領域工程包括3個階段:領域分析、領域設計、領域?qū)崿F(xiàn)。(2)應用工程應用工程是在領域工程生成的公共資源基礎上開發(fā)特定產(chǎn)品。在產(chǎn)品線應用開發(fā)中,不僅僅考慮客戶需求,也要受產(chǎn)品線公共資源約束。應用工程的3個階段:
需求分析、系統(tǒng)設計、系統(tǒng)實現(xiàn)。共七十七頁2024年12月9日第68頁15.6.1軟件產(chǎn)品線基本概念軟件產(chǎn)品線的3大基本活動核心資產(chǎn)的開發(fā)利用(lìyòng)核心資產(chǎn)的產(chǎn)品開發(fā)技術和組織管。共七十七頁2024年12月9日第69頁15.6.1軟件產(chǎn)品線基本概念產(chǎn)品線的雙生存周期模型:由STARS的雙生存周期模型發(fā)展而來的(美國國防部資助的一個關于過程(guòchéng)驅(qū)動、特定領域和基于重用的軟件開發(fā)方法的研究項目)。共七十七頁2024年12月9日第70頁15.6.1軟件產(chǎn)品線基本概念軟件產(chǎn)品線可以為人們帶來大量的好處:縮短開發(fā)周期、降低研發(fā)成本、減少產(chǎn)品(chǎnpǐn)更新和維護的難度提供更好的產(chǎn)品質(zhì)量,進而在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務聘請養(yǎng)豬合同范本
- 醫(yī)師注冊聘用合同范本
- 廚房餐具采購合同范本
- 產(chǎn)品供貨安裝合同范本
- 鹵味承包合同范本
- 軍訓腰帶采購合同范本
- 廠房維修度合同范例
- 單位舊書采購合同范例
- 中建施工合同范本
- 廁所改良合同范本
- 稅法(第5版) 課件 第13章 印花稅
- 建加油站申請書
- 2024-2025學年廣州市高二語文上學期期末考試卷附答案解析
- 少年商學院《DeepSeek中小學生使用手冊》
- 2025年山東鋁業(yè)職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年教育公共基礎知識筆記
- 《銷售合同執(zhí)行》課件
- 深夜地鐵7號線施工方案
- 山東2024年山東經(jīng)貿(mào)職業(yè)學院第二批招聘102人歷年參考題庫(頻考版)含答案解析
- 宮腔球囊止血護理常規(guī)
- 口腔6S管理詳解
評論
0/150
提交評論