軟件工程SoftwareEngineering主課件_第1頁(yè)
軟件工程SoftwareEngineering主課件_第2頁(yè)
軟件工程SoftwareEngineering主課件_第3頁(yè)
軟件工程SoftwareEngineering主課件_第4頁(yè)
軟件工程SoftwareEngineering主課件_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程

SoftwareEngineering主講人劉海巖10/6/20231軟件工程

SoftwareEngineering主講參考文獻(xiàn)1.軟件工程—實(shí)踐者的研究方法RogerS.Pressman(第5版)機(jī)械工業(yè)出版社2.軟件工程—理論與實(shí)踐ShariL.Pfleeger(第2版)高等教育出版社3.軟件工程(第6版)IanSommerville機(jī)械工業(yè)出版社

10/6/20232參考文獻(xiàn)1.軟件工程—實(shí)踐者的研究方法8/3/20232考核要求1.筆試;2.提交作業(yè)文檔:針對(duì)軟件工程領(lǐng)域中的某個(gè)專題寫(xiě)出一篇論文。

論文要求:(1)必須列出參考文獻(xiàn)(2)打印紙4頁(yè)以上

10/6/20233考核要求1.筆試;8/3/20233第一章緒論軟件工程產(chǎn)生的背景軟件工程的有關(guān)概念軟件生存周期及軟件過(guò)程模型軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)工具10/6/20234第一章緒論軟件工程產(chǎn)生的背景8/3/202341.1軟件的特點(diǎn)、發(fā)展及軟件危機(jī)⒈軟件的概念及其特點(diǎn)◆軟件是⑴當(dāng)它被執(zhí)行時(shí)提供希望功能和性能的程序,⑵使得程序能夠適當(dāng)?shù)牟僮餍畔⒌臄?shù)據(jù)結(jié)構(gòu),以及⑶描述程序被開(kāi)發(fā)和運(yùn)行過(guò)程中有關(guān)功能、結(jié)構(gòu)、操作和使用的文檔?!糗浖卣鳎?軟件是邏輯的而不是有形的產(chǎn)品,它是被開(kāi)發(fā)或設(shè)計(jì)出的,而非傳統(tǒng)意義上的被制造的。軟件成本和軟件質(zhì)量集中于開(kāi)發(fā)上。?軟件不會(huì)“磨損”。軟件并不受到引起硬件磨損的環(huán)境因素的影響。10/6/202351.1軟件的特點(diǎn)、發(fā)展及軟件危機(jī)⒈軟件的概念及其特點(diǎn)8/10/6/202368/3/20236

?軟件生產(chǎn)正走向基于構(gòu)件的組裝發(fā)展(如圖形用戶界面),但目前多數(shù)軟件仍是定做的。?軟件的研制需要投入大量的、復(fù)雜的腦力勞動(dòng),成本高。⒉軟件的發(fā)展◆雙重角色:它是一個(gè)產(chǎn)品,通過(guò)計(jì)算機(jī)硬件所體現(xiàn)的計(jì)算潛能,它產(chǎn)生、管理、獲取、修改、顯示或傳送信息,這些信息簡(jiǎn)單到一個(gè)bit,復(fù)雜到一個(gè)多媒體信息;它是產(chǎn)品交付使用的載體,是計(jì)算機(jī)控制的基礎(chǔ)(操作系統(tǒng))、信息通信的基礎(chǔ)及其它軟件的創(chuàng)建和控制的基礎(chǔ)(軟件工具和環(huán)境)。

10/6/20237?軟件生產(chǎn)正走向基于構(gòu)件的組裝發(fā)展(如圖形用戶界面

◆角色的演化:早期(50年代初-60年代中期):?自定義軟件?面向批處理第二階段(60年代中期-70年代末期):?多用戶?實(shí)時(shí)?數(shù)據(jù)庫(kù)?軟件產(chǎn)品軟件危機(jī)出現(xiàn)!10/6/20238◆角色的演化:8/3/20238

第三階段(70年代中期-80年代中期):?分布式系統(tǒng)?嵌入式“智能”軟件?低成本硬件?大眾化第四階段(80年代中期至今):?強(qiáng)大的桌面系統(tǒng)?面向?qū)ο蠹夹g(shù)?人工智能?神經(jīng)網(wǎng)絡(luò)?并行計(jì)算…10/6/20239第三階段(70年代中期-80年代中期):8/3/202

3.軟件危機(jī)(crisis)

60年代中期,隨著硬件技術(shù)的發(fā)展,軟件應(yīng)用范圍的擴(kuò)展,軟件越來(lái)越大型化、復(fù)雜化,產(chǎn)生了上萬(wàn)行的源程序。當(dāng)發(fā)現(xiàn)錯(cuò)誤是需要對(duì)這些程序進(jìn)行修改;當(dāng)用戶需求發(fā)生變化是需要修改;當(dāng)硬件環(huán)境更新時(shí)需要修改。這些活動(dòng)(稱為軟件維護(hù))的費(fèi)用以驚人的速度增加。更糟糕的是,許多程序的個(gè)性化特性使得它們根本不能維護(hù)。“軟件危機(jī)”出現(xiàn)了!

10/6/2023103.軟件危機(jī)(crisis)8/3/202310

◆表現(xiàn):?開(kāi)發(fā)的軟件不能滿足用戶要求。?無(wú)完整、規(guī)范的文檔,難以維護(hù)。?項(xiàng)目計(jì)劃不周,進(jìn)度拖延。?軟件質(zhì)量差。

◆原因:?缺乏正確的理論指導(dǎo),開(kāi)發(fā)人員各行其是。?軟件規(guī)模越來(lái)越大,無(wú)開(kāi)發(fā)管理經(jīng)驗(yàn)。?軟件復(fù)雜度越來(lái)越高,而開(kāi)發(fā)技術(shù)不相適應(yīng)。?缺少先進(jìn)的開(kāi)發(fā)工具,開(kāi)發(fā)方式落后。10/6/2023118/3/2023111.2軟件工程的有關(guān)概念

為了克服軟件危機(jī),科學(xué)家們從其他產(chǎn)業(yè)(如機(jī)械制造、建筑等)的工程化生產(chǎn)得到啟示,于1968年在北大西洋公約組織的學(xué)術(shù)會(huì)上提出了“軟件工程”的概念。工程是對(duì)技術(shù)(或社會(huì))實(shí)體的分析、設(shè)計(jì)、構(gòu)造、驗(yàn)證和管理。這里只針對(duì)一個(gè)實(shí)體—計(jì)算機(jī)軟件。◆定義根據(jù)IEEE(TheInstituteforElectricalandElectronicengineers)的定義:

軟件工程是使用系統(tǒng)化的、規(guī)范的、可量化的方法指導(dǎo)軟件開(kāi)發(fā)、運(yùn)行和維護(hù)的一門學(xué)科,它涉及到計(jì)算機(jī)科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)等領(lǐng)域的綜合性知識(shí)及實(shí)踐的應(yīng)用,它的目的是為建造高質(zhì)量的軟件提供一個(gè)框架。10/6/2023121.2軟件工程的有關(guān)概念為了克服軟

◆軟件工程層次圖該圖展現(xiàn)了軟件工程研究的內(nèi)容及關(guān)注的焦點(diǎn)。

10/6/202313◆軟件工程層次圖8/3/202313

過(guò)程:定義了一系列活動(dòng):技術(shù)方法的采用,工程產(chǎn)品(模型、文檔、數(shù)據(jù))的產(chǎn)生,里程碑(milestone)的建立,質(zhì)量的保證及變化的管理。該層構(gòu)成了軟件項(xiàng)目的管理控制的基礎(chǔ)。

方法:提供了建造軟件在技術(shù)上“如何做”。方法覆蓋了一系列任務(wù):需求分析、設(shè)計(jì)、編程、測(cè)試和支持(如糾錯(cuò)、適應(yīng)、增強(qiáng)、預(yù)防)。

工具:對(duì)過(guò)程和方法提供了自動(dòng)或半自動(dòng)的支持。10/6/202314過(guò)程:定義了一系列活動(dòng):8/3/202314如果不考慮應(yīng)用領(lǐng)域、項(xiàng)目規(guī)模和復(fù)雜性,與軟件工程相關(guān)的工作可分為三個(gè)一般的階段:

⑴定義階段集中于“做什么”。搞清楚要處理什么信息,預(yù)期完成什么功能和性能,系統(tǒng)將有什么樣的行為,建立什么樣的界面,有什么設(shè)計(jì)約束,以及建立一個(gè)成功系統(tǒng)的確認(rèn)標(biāo)準(zhǔn)是什么。

⑵開(kāi)發(fā)階段集中于“如何做”。即數(shù)據(jù)如何被結(jié)構(gòu)化,功能如何被表示于軟件體系結(jié)構(gòu)中,過(guò)程細(xì)節(jié)及界面如何實(shí)現(xiàn),設(shè)計(jì)描述如何被翻譯成程序語(yǔ)言,如何進(jìn)新測(cè)試等活動(dòng)。⑶支持階段關(guān)注于“變化”。為糾正錯(cuò)誤而做的修改,為適應(yīng)環(huán)境的演化而做的修改,為增強(qiáng)用戶的需求而做的修改以及使軟件能被更好的維護(hù)而進(jìn)行的軟件再工程。10/6/202315如果不考慮應(yīng)用領(lǐng)域、項(xiàng)目規(guī)模和復(fù)雜

軟件通過(guò)應(yīng)用這三個(gè)階段實(shí)現(xiàn)工程化生產(chǎn)。

還有一些庇護(hù)性活動(dòng)補(bǔ)充上述階段的工作并貫穿于整個(gè)軟件工程過(guò)程中,如:軟件項(xiàng)目跟蹤與控制、軟件質(zhì)量保證、軟件配置管理等等?!裟芰Τ墒於饶P虲MM

近年來(lái),“過(guò)程成熟度”成為人們關(guān)注的焦點(diǎn)。美國(guó)Carnegie-Meilon大學(xué)的軟件工程研究所(SEI)提出了一個(gè)綜合模型,定義了當(dāng)一個(gè)組織達(dá)到不同的過(guò)程成熟度時(shí)應(yīng)該具有的軟件工程能力。這個(gè)綜合模型稱為能力成熟度模型(CapabilityMaturityModel,CMM)。10/6/202316軟件通過(guò)應(yīng)用這三個(gè)階段實(shí)現(xiàn)工程化生產(chǎn)。8該模型定義了5個(gè)級(jí)別及每個(gè)級(jí)別上所需的關(guān)鍵活動(dòng):

⑴初始級(jí)(initial):無(wú)嚴(yán)格定義的活動(dòng),項(xiàng)目的成功只依賴于關(guān)鍵人物的能力。⑵可重復(fù)級(jí)(repeatable):建立了基本的項(xiàng)目管理過(guò)程:需求管理、項(xiàng)目計(jì)劃與跟蹤、質(zhì)量管理、配置管理、合同管理。有類似項(xiàng)目成功的案例和經(jīng)驗(yàn)。⑶已定義級(jí)(defined):包含了第2級(jí)的所有特征。要求制定組織內(nèi)部的工程化標(biāo)準(zhǔn),包括管理和開(kāi)發(fā)都需要一套文檔化的標(biāo)準(zhǔn),并集成到內(nèi)部的軟件過(guò)程中去。即所有項(xiàng)目都使用統(tǒng)一的、文檔化的、組織過(guò)程認(rèn)可的版本來(lái)開(kāi)發(fā)和維護(hù)軟件。10/6/202317該模型定義了5個(gè)級(jí)別及每個(gè)級(jí)別上所需的關(guān)鍵活動(dòng):

⑷已管理級(jí)(managed):包含了第3級(jí)的所有特征。該級(jí)的管理指量化的管理,即所有的過(guò)程需建立相應(yīng)的度量方式,所有產(chǎn)品的質(zhì)量要有明確的度量指標(biāo)。量化控制使軟件開(kāi)發(fā)真正變成工業(yè)生產(chǎn)活動(dòng)。⑸優(yōu)化級(jí)(optimizing):包含了第4級(jí)的所有特征。能根據(jù)反饋信息進(jìn)行不斷的過(guò)程改進(jìn),這些反饋信息來(lái)自于前期過(guò)程執(zhí)行或試驗(yàn)新方法新技術(shù)而得到。達(dá)到這一級(jí)表明該企業(yè)能夠根據(jù)實(shí)際的項(xiàng)目性質(zhì)、技術(shù)等因素,不斷調(diào)整軟件生產(chǎn)過(guò)程。

10/6/2023188/3/202318

CMM對(duì)軟件企業(yè)有什么指導(dǎo)作用?CMM建立了軟件過(guò)程評(píng)價(jià)與改善及軟件生產(chǎn)能力評(píng)估的基礎(chǔ),為軟件企業(yè)提供一整套提高其軟件生產(chǎn)能力的先進(jìn)思路和方法,并通過(guò)評(píng)估使企業(yè)可對(duì)外證明其在軟件產(chǎn)品提供方面具有的質(zhì)量保證能力,受到全球各軟件企業(yè)的重視和廣泛采用并實(shí)施評(píng)估。西安交大博通資訊股份有限公司于2002年12月獲得CMM3級(jí)認(rèn)證。CMM用于改進(jìn)一個(gè)軟件企業(yè)的管理能力。另外TSP(TeamSoftwareProcess)以提高一個(gè)開(kāi)發(fā)團(tuán)隊(duì)的有效性;PSP(PersonalSoftwareProcess)則增強(qiáng)個(gè)人的技能與紀(jì)律。10/6/2023198/3/2023191.3軟件生存周期及軟件過(guò)程模型

軟件生存周期是指一個(gè)軟件從定義開(kāi)始經(jīng)過(guò)開(kāi)發(fā)、運(yùn)行、維護(hù),直到最后被廢棄的全過(guò)程。引入此概念,可以把軟件生存周期劃分為若干階段。一般劃分為:軟件定義、需求分析、軟件設(shè)計(jì)、編碼、測(cè)試及軟件維護(hù)等幾個(gè)階段。每一階段有明確的任務(wù),把規(guī)模大、結(jié)構(gòu)復(fù)雜、管理復(fù)雜的軟件開(kāi)發(fā)變得容易控制和管理。各個(gè)階段的活動(dòng)如何銜接,開(kāi)發(fā)過(guò)程中采用什么樣的策略,應(yīng)遵守什么樣的規(guī)定和制約,將這些活動(dòng)框架(忽略不必要的細(xì)節(jié))用一種模型表示出來(lái),稱為軟件過(guò)程模型(或軟件開(kāi)發(fā)模型)。10/6/2023201.3軟件生存周期及軟件過(guò)程模型軟件

軟件過(guò)程模型的選擇基于項(xiàng)目和應(yīng)用的性質(zhì)、采用的方法工具以及需要的控制和交付的產(chǎn)品。幾種典型的模型:

⑴瀑布模型(線性順序模型)

10/6/202321軟件過(guò)程模型的選擇基于項(xiàng)目和應(yīng)用的性質(zhì)、采用的方法

特點(diǎn):?提供了軟件過(guò)程模型的基本框架。?強(qiáng)調(diào)了每一階段活動(dòng)的嚴(yán)格順序。?質(zhì)量保證觀點(diǎn):以經(jīng)過(guò)評(píng)審確認(rèn)了的階段工作產(chǎn)品(文檔)驅(qū)動(dòng)下一階段的工作。?是一種整體開(kāi)發(fā)模型,程序的物理實(shí)現(xiàn)集中在開(kāi)發(fā)階段的后期,用戶在最后才能看到自己的產(chǎn)品。?適合于用戶需求明確、完整、無(wú)重大變化的軟件項(xiàng)目開(kāi)發(fā)。

10/6/202322特點(diǎn):8/3/202322

⑵原型模型

在用戶不能給出完整、準(zhǔn)確的需求說(shuō)明,或者開(kāi)發(fā)者不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式等許多情況下,可以根據(jù)用戶的一組基本需求,快速建造一個(gè)原型(可運(yùn)行的軟件),然后進(jìn)行評(píng)估,進(jìn)一步精化、調(diào)整原型,使其滿足用戶的要求,也使開(kāi)發(fā)者對(duì)將要做的事情有更好的理解。

10/6/202323⑵原型模型8/3/202323

原型的分類:?拋棄型:主要用于需求分析階段,針對(duì)開(kāi)發(fā)目標(biāo)模糊、用戶與開(kāi)發(fā)者對(duì)項(xiàng)目都缺乏經(jīng)驗(yàn)的情況。建立原型的目的是為了搞清用戶的需求,確定所期望的特性,探索各種方案的可行性。產(chǎn)生完整、一致、準(zhǔn)確的需求說(shuō)明。?實(shí)驗(yàn)型:主要用于設(shè)計(jì)階段,通過(guò)原型驗(yàn)證設(shè)計(jì)方案的可行性。原型或成為設(shè)計(jì)結(jié)果的一部分或拋棄。

?演化型:用于整個(gè)開(kāi)發(fā)階段。原型經(jīng)過(guò)不斷擴(kuò)充,演化為最終的軟件系統(tǒng)。10/6/202324原型的分類:8/3/202324

存在的問(wèn)題:

⑴為了使原型盡快的工作,沒(méi)有考慮軟件的總體質(zhì)量和長(zhǎng)期的可維護(hù)性。

⑵為了演示,可能采用不合適的操作系統(tǒng)、編程語(yǔ)言、效率低的算法,這些不理想的選擇成了系統(tǒng)的組成部分。

⑶開(kāi)發(fā)過(guò)程不便于管理。

有效的使用原型模式是:建造原型僅是為了定義需求,之后就被拋棄(或被部分拋棄),實(shí)際的軟件在充分考慮了質(zhì)量和可維護(hù)性之后才被開(kāi)發(fā)。10/6/202325存在的問(wèn)題:8/3/202325

⑶增量模型

是一種漸進(jìn)地開(kāi)發(fā)逐步完善的軟件版本的模型。

10/6/202326⑶增量模型8/3/202326

特點(diǎn):?反復(fù)的應(yīng)用瀑布模型的基本成分和原型模型的迭代特征,每一個(gè)線型過(guò)程產(chǎn)生一個(gè)“增量”的發(fā)布或提交,該增量均是一個(gè)可運(yùn)行的產(chǎn)品。?早期的版本實(shí)現(xiàn)用戶的基本需求,并提供給用戶評(píng)估的平臺(tái)。

⑷螺旋模型

對(duì)于復(fù)雜的大型軟件,開(kāi)發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型將瀑布模型和增量模型結(jié)合起來(lái),加入了風(fēng)險(xiǎn)分析。在該模型中,軟件開(kāi)發(fā)使一系列的增量發(fā)布,早期的迭代中,發(fā)布的增量可能是一個(gè)紙上的模型或原型,在以后的迭代中,逐步產(chǎn)生系統(tǒng)更加完善的版本。螺旋模型將開(kāi)發(fā)過(guò)程劃分為幾個(gè)螺旋周期,每個(gè)周期有三到六個(gè)任務(wù)區(qū)域,見(jiàn)下圖。10/6/202327特點(diǎn):8/3/202327

10/6/202328

8/3/202328

螺旋的第一圈可能產(chǎn)生產(chǎn)品的規(guī)格說(shuō)明,再下面的螺旋可能用于開(kāi)發(fā)一個(gè)原型,隨后可能是軟件的更完善的版本。每一圈還要根據(jù)用戶評(píng)估的反饋對(duì)項(xiàng)目計(jì)劃(包括進(jìn)度、費(fèi)用)進(jìn)行調(diào)整。特點(diǎn):?適合于大型系統(tǒng)的軟件開(kāi)發(fā),隨著過(guò)程的進(jìn)展演化,開(kāi)發(fā)者和用戶能夠更好的識(shí)別和對(duì)待每一個(gè)演化級(jí)別上的風(fēng)險(xiǎn)。

?需要相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),使該模型的應(yīng)用受到一定限制。

?隨著迭代次數(shù)的增加,工作量加大,軟件開(kāi)發(fā)成本增加。10/6/202329螺旋的第一圈可能產(chǎn)生產(chǎn)品的規(guī)格說(shuō)明,再下面

⑸形式化方法模型

是基于形式化語(yǔ)言和程序變換的模型,因此,也稱變換模型。從軟件需求形式化說(shuō)明開(kāi)始,經(jīng)過(guò)一系列的數(shù)學(xué)變換和正確性證明,最終得到系統(tǒng)的目標(biāo)程序。形式化方法使開(kāi)發(fā)者應(yīng)用一個(gè)嚴(yán)格的數(shù)學(xué)符號(hào)體系來(lái)表示、構(gòu)造和驗(yàn)證系統(tǒng),從而大大提高軟件的可靠性。模型見(jiàn)下圖:10/6/202330⑸形式化方法模型8/3/202330

變換模型

形式化規(guī)格說(shuō)明與需求比較后修正形式化開(kāi)發(fā)記錄變換n變換2變換1測(cè)試系統(tǒng)需求目標(biāo)系統(tǒng)…10/6/202331變換模型

兩種技術(shù):?基于模型的規(guī)格說(shuō)明及其變換技術(shù)基于模型的技術(shù)使用數(shù)學(xué)上的結(jié)構(gòu)如集合和函數(shù)為系統(tǒng)建模。它們能展現(xiàn)系統(tǒng)的狀態(tài)以簡(jiǎn)化對(duì)某些行為的描述?;谀P偷拿枋稣Z(yǔ)言及方法如Z、VDM(ViennaDefinitionMethod)、B、PetriNets等。?基于代數(shù)結(jié)構(gòu)及其變換技術(shù)代數(shù)方法適合于對(duì)接口的描述。這里接口被定義為一組對(duì)象類或抽象數(shù)據(jù)類型的集合,用接口操作之間的關(guān)系來(lái)刻畫(huà)系統(tǒng)。10/6/202332兩種技術(shù):8/3/202332特點(diǎn):?該模型迫使對(duì)系統(tǒng)需求的分析在軟件開(kāi)發(fā)的早期階段完成。在這個(gè)階段改正錯(cuò)誤比在系統(tǒng)被交付之后修改錯(cuò)誤要經(jīng)濟(jì)得多。?形式化描述是對(duì)非形式化描述技術(shù)的補(bǔ)充??梢杂脕?lái)精化非形式化的詳細(xì)的系統(tǒng)需求描述。描述是精確的和無(wú)二義的,避免了由于語(yǔ)言誤解而產(chǎn)生的一些問(wèn)題。?最適合用于安全性、可靠性和保密性等性能要求極高的系統(tǒng)。

?開(kāi)發(fā)成本較高。

?需要嚴(yán)格的數(shù)學(xué)理論和開(kāi)發(fā)環(huán)境的支持。

?難以與用戶進(jìn)行通信。10/6/202333特點(diǎn):8/3/202333

形式化過(guò)程模型的一個(gè)擴(kuò)展,稱為凈室軟件工程(cleanroomsoftwareengineering)或凈室模型,它除了強(qiáng)調(diào)分析和設(shè)計(jì)上的嚴(yán)格性,以及使用基于數(shù)學(xué)的正確性證明來(lái)對(duì)設(shè)計(jì)模型的每個(gè)元素進(jìn)行形式化驗(yàn)證外,還強(qiáng)調(diào)了統(tǒng)計(jì)質(zhì)量控制技術(shù)?;舅枷耄毫η笤诜治龊驮O(shè)計(jì)階段就消除錯(cuò)誤,確保正確,然后在無(wú)缺陷或“潔凈”的狀態(tài)下實(shí)現(xiàn)軟件的制作。關(guān)鍵技術(shù):?基于統(tǒng)計(jì)過(guò)程控制之下的增量開(kāi)發(fā)?基于函數(shù)的規(guī)范、設(shè)計(jì)、驗(yàn)證?統(tǒng)計(jì)測(cè)試和軟件認(rèn)證模型見(jiàn)下圖:10/6/202334形式化過(guò)程模型的一個(gè)擴(kuò)展,稱為凈室軟凈室模型盒結(jié)構(gòu)規(guī)約需求收集形式化設(shè)計(jì)正確性驗(yàn)證代碼檢查測(cè)試計(jì)劃統(tǒng)計(jì)性使用測(cè)試驗(yàn)證增量#1盒結(jié)構(gòu)規(guī)約需求收集形式化設(shè)計(jì)正確性驗(yàn)證代碼檢查測(cè)試計(jì)劃統(tǒng)計(jì)性使用測(cè)試驗(yàn)證增量#2盒結(jié)構(gòu)規(guī)約需求收集形式化設(shè)計(jì)正確性驗(yàn)證代碼檢查測(cè)試計(jì)劃統(tǒng)計(jì)性使用測(cè)試驗(yàn)證增量#1............10/6/202335凈室模型盒結(jié)

⑹構(gòu)件組裝模型

構(gòu)件(component)也稱為組件,是一段實(shí)現(xiàn)一系列有確定接口的程序體,具有自己的功能和邏輯,能同其他構(gòu)件組裝起來(lái)協(xié)調(diào)工作。該模型支持軟件重用,對(duì)縮短軟件開(kāi)發(fā)周期、降低項(xiàng)目成本有重要的現(xiàn)實(shí)意義。同時(shí),建造符合某應(yīng)用領(lǐng)域體系結(jié)構(gòu)標(biāo)準(zhǔn)的構(gòu)件,可以用來(lái)搭建分布式的、跨越不同操作平臺(tái)的軟件,擴(kuò)展了軟件的應(yīng)用前景,促進(jìn)了軟件標(biāo)準(zhǔn)化、商品化的發(fā)展。因此,在此基礎(chǔ)上專家們又提出了“基于構(gòu)件的軟件工程”(CBSE)。構(gòu)件組裝模型如下圖所示:

10/6/202336⑹構(gòu)件組裝模型8/3/202336

構(gòu)件組裝模型10/6/2023378/3/202337

軟件體系結(jié)構(gòu)被建立后,必須用構(gòu)件去充實(shí),這些構(gòu)件可從復(fù)用庫(kù)中獲得,或者根據(jù)專門需要而開(kāi)發(fā)。整個(gè)過(guò)程可以演化地進(jìn)行,面向?qū)ο蠓椒ńo予技術(shù)上的支持。構(gòu)件技術(shù)目前主要有三種流行標(biāo)準(zhǔn):

?OMG的CORBA:

對(duì)象管理組織發(fā)布的公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CommonObjectRequestBrokerArchitecture)。一個(gè)對(duì)象請(qǐng)求代理(ORB)提供一系列服務(wù),使得一個(gè)構(gòu)件和其他構(gòu)件通信,而不管它們?cè)谙到y(tǒng)中的位置,實(shí)現(xiàn)了遠(yuǎn)程對(duì)象通過(guò)接口進(jìn)行通信的機(jī)制。

10/6/202338軟件體系結(jié)構(gòu)被建立后,必須用構(gòu)件去充實(shí),這

?微軟的COM/DCOM:微軟開(kāi)發(fā)了構(gòu)件對(duì)象模型(ComponentObjectModel),它提供了運(yùn)行于windows之上的單個(gè)應(yīng)用系統(tǒng)使用不同廠商生產(chǎn)的構(gòu)件的規(guī)約?;诜植际江h(huán)境下的COM稱為DCOM(DistributeCOM)。

?SUN的EJB(EnterpriseJavaBean):隨著Java在企業(yè)級(jí)應(yīng)用的地位日趨重要,Sun提出了一個(gè)統(tǒng)一的企業(yè)級(jí)Java平臺(tái)—J2EE。在J2EE中,EJB負(fù)責(zé)最核心的業(yè)務(wù)處理。它為服務(wù)器端的應(yīng)用程序提供了一種與廠商無(wú)關(guān)的Java接口,讓任何符合EJB規(guī)范的構(gòu)件都可以運(yùn)行在每一臺(tái)這樣的服務(wù)器上。10/6/202339?微軟的COM/DCOM:微軟開(kāi)發(fā)了構(gòu)件對(duì)象模

⑺統(tǒng)一軟件開(kāi)發(fā)過(guò)程

是由Rational公司的Booch、Jacobson、Rumbaugh提出的軟件過(guò)程模型,也稱RUP(RationalUnifiedProcess)。RUP重復(fù)一系列周期,每個(gè)周期由一個(gè)交付給用戶的產(chǎn)品結(jié)束。每個(gè)周期劃分為初始、細(xì)化、構(gòu)造和移交四個(gè)階段,每個(gè)階段圍繞著五個(gè)核心工作流(需求、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試)分別迭代。模型見(jiàn)下圖:

10/6/202340⑺統(tǒng)一軟件開(kāi)發(fā)過(guò)程8/3/20234010/6/2023418/3/202341初始階段:進(jìn)行問(wèn)題定義,確定目標(biāo),評(píng)估其可行性,降低關(guān)鍵風(fēng)險(xiǎn)。

細(xì)化階段:制定項(xiàng)目計(jì)劃、配置各類資源、建立系統(tǒng)架構(gòu)(包括各類視圖)。

構(gòu)造階段:開(kāi)發(fā)整個(gè)產(chǎn)品,并確保產(chǎn)品可移交給用戶。

移交階段:產(chǎn)品發(fā)布、安裝、用戶培訓(xùn)。在每個(gè)階段的每次迭代的最后,用例模型、分析模型、設(shè)計(jì)模型、實(shí)現(xiàn)模型都會(huì)增量,每個(gè)階段結(jié)束的里程碑處,管理層做出是否繼續(xù)、進(jìn)度、預(yù)算、是否給下一階段提供資助等決定。不同階段工作流的側(cè)重點(diǎn)不同,前兩階段大部分工作集中在需求、分析和架構(gòu)設(shè)計(jì)上;在構(gòu)造階段,重點(diǎn)轉(zhuǎn)移到詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試上。

10/6/202342初始階段:進(jìn)行問(wèn)題定義,確定目標(biāo),評(píng)估其可行性,1.4軟件開(kāi)發(fā)方法

1.

結(jié)構(gòu)化方法(SA、SD、IDEF)2.面向數(shù)據(jù)結(jié)構(gòu)的方法(Jackson、Warnier-On)3.形式化開(kāi)發(fā)方法(VDM)4.面向?qū)ο蟮拈_(kāi)發(fā)方法Coad-Yourdon、Booch、Rumbaugh、Jacobson5.

敏捷(agile)開(kāi)發(fā)方法極限編程

(ExtremeProgramming,XP)是其中的一種主要方法。支持需求變化、遞增式開(kāi)發(fā)。每一遞增周期的代碼必須充分測(cè)試(單元測(cè)試),用戶和開(kāi)發(fā)組在一起,隨時(shí)保證做出的功能滿足用戶的需求,項(xiàng)目組成員在同一地點(diǎn)工作,保證高效的面

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論