版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2024/10/24軟件工程第1頁軟件工程
2024/10/24軟件工程第2頁軟件危機(jī)軟件工程第一章軟件工程概述軟件2024/10/24軟件工程第3頁1.1軟件1、什么叫軟件?(1)廣義軟件:相對于有形物理實(shí)體,把技術(shù)條件、管理法規(guī)以及人員素質(zhì)等無形因素稱為軟件。(2)計(jì)算機(jī)軟件:是與計(jì)算機(jī)硬件相對應(yīng)的計(jì)算機(jī)組成部分,包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。Boehm:“軟件是程序以及開發(fā)、使用和維護(hù)程序所需的所有文檔。”程序:按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù):使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔:是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料。2024/10/24軟件工程第4頁2、軟件的特點(diǎn):(1)軟件是一種邏輯實(shí)體;(2)軟件開發(fā)成本很高,但卻可以低成本地復(fù)制。
(3)軟件的使用不存在老化的問題;(軟件因需求變化和故障需不斷維護(hù),并不斷失去價值)
(4)軟件在使用的過程中的維護(hù)工作遠(yuǎn)比硬件復(fù)雜。
(5)軟件開發(fā)是高強(qiáng)度的腦力勞動,自動化程度不高,因而軟件成本相當(dāng)昂貴;(6)相當(dāng)多的軟件開發(fā)涉及到社會因素。2024/10/24軟件工程第5頁3、軟件的分類:(1)按功能分類
a、系統(tǒng)軟件:支持計(jì)算機(jī)系統(tǒng)各個部件、相關(guān)的軟件和數(shù)據(jù)協(xié)調(diào)、高效地工作的軟件。如:OS、DBMS、DRIVER、COMMUNICATION-SYSTEM。
b、支撐軟件:協(xié)助用戶開發(fā)軟件的工具性軟件,文本編輯軟件。如:PSL/PSA(問題描述語言、問題描述分析器)、圖形軟件包、預(yù)編譯程序、靜態(tài)分析程序。
c、應(yīng)用軟件:在特定的領(lǐng)域不特定的目的服務(wù)的一類軟件。如:數(shù)值計(jì)算、CAD/CDM、人工智能、CAI、MIS。2024/10/24軟件工程第6頁(2)按軟件規(guī)模分類:
MICRO、SMALL、MIDDLE、LARGE、VERY-LARGE、UTRA-LARGE。(3)按軟件工作方式分類:
a、實(shí)時處理軟件:事件或數(shù)據(jù)產(chǎn)生時,立即處理并反饋信息(控制軟件);
b、分時軟件:允許多個聯(lián)機(jī)用戶同時使用計(jì)算機(jī);
c、交互式軟件:能實(shí)現(xiàn)人機(jī)通信的軟件(用于人機(jī)界面設(shè)計(jì));
d、批處理軟件。2024/10/24軟件工程第7頁(4)按功能軟件服務(wù)對象分類
a、項(xiàng)目軟件:受特定客戶委托由一個或多個軟件開發(fā)機(jī)構(gòu)在合同的約束下開發(fā)出來的軟件。
b、產(chǎn)品軟件:提供給市場的商品。(5)按使頻度分類:(6)按軟件失效的影響分類。4、軟件的發(fā)展:(1)程序設(shè)計(jì)階段:約50—60年代。
軟件產(chǎn)品:程序;
語言:匯編語言及機(jī)器語言;
主要工作:編寫程序;
組織:個人;
質(zhì)量因素:編程技術(shù)(技巧)。(2)程序系統(tǒng)階段:約60—70年代。
軟件產(chǎn)品:程序及說明書;
語言:高級程序設(shè)計(jì)語言;
主要工作:設(shè)計(jì)程序及測試;
組織:開發(fā)小組;
開發(fā)技術(shù):結(jié)構(gòu)化程序設(shè)計(jì)方法。
2024/10/24軟件工程第8頁2024/10/24軟件工程第9頁(3)軟件工程階段:70年代以后。
軟件產(chǎn)品:程序、數(shù)據(jù)、文檔;
語言:軟件語言(需求定義語言、軟件功能語言、軟件設(shè)計(jì)語言、程序設(shè)計(jì)語言);
主要工作:軟件生存周期各個階段;
組織:大中型軟件開發(fā)機(jī)構(gòu);
需求者:面向市場,面向用戶;
開發(fā)技術(shù)和手段:工程化開發(fā)方法,開發(fā)工具及開發(fā)環(huán)境起重要作用;
質(zhì)量因素:管理水平。
2024/10/24軟件工程第10頁1.2
軟件工程一、軟件危機(jī)1、什么叫軟件危機(jī)?軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。
1968年北大西洋公約組織在聯(lián)邦德國召開的國際會議上提出來的。2024/10/24軟件工程第11頁2、軟件危機(jī)的表現(xiàn)(1)對軟件開發(fā)的成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;(2)用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;(3)軟件質(zhì)量往往靠不?。很浖|(zhì)量保證技術(shù)(審查、復(fù)審和測試)沒有堅(jiān)持不懈地應(yīng)用到軟件開發(fā)全過程中;(4)軟件常常不可維護(hù):錯誤難改,難適應(yīng)新的硬件環(huán)境,難適應(yīng)用戶要求增加的新的功能需求,軟件的復(fù)用性不高;2024/10/24軟件工程第12頁2、軟件危機(jī)的表現(xiàn)(2)(5)軟件通常沒有適當(dāng)?shù)奈臋n資料;文檔資料的作用是:管理和評價軟件開發(fā)過程的進(jìn)展情況,開發(fā)者與用戶和開發(fā)者之間通信的工具,維護(hù)工具。(6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;(1985年美國軟件成本占計(jì)算機(jī)系統(tǒng)總成本的比例為90%)(7)軟件開發(fā)生產(chǎn)率提高的速度趕不上計(jì)算機(jī)普及的速度。2024/10/24軟件工程第13頁3、產(chǎn)生軟件危機(jī)的原因(1)軟件是計(jì)算機(jī)的邏輯部件而不是物理部件。軟件問題是在開發(fā)時期引入的而在測試階段沒能測出來的故障,修改軟件故障要修改軟件原來的設(shè)計(jì)。(2)軟件不同于一般程序,它的特點(diǎn)是規(guī)模龐大,軟件開發(fā)工作量隨軟件規(guī)模增大非線性增長;(3)與早期軟件開發(fā)個體化特點(diǎn)有關(guān):認(rèn)為軟件開發(fā)就是寫程序并設(shè)法使之運(yùn)行,輕視需求分析和軟件維護(hù)。2024/10/24軟件工程第14頁4、解決軟件危機(jī)的途徑(1)借助各種工程項(xiàng)目開發(fā)所積累的經(jīng)驗(yàn)(原理、概念、技術(shù)和方法);(2)總結(jié)軟件開發(fā)成功的技術(shù)和方法;(3)應(yīng)用軟件開發(fā)輔助工具。2024/10/24軟件工程第15頁4、解決軟件危機(jī)的途徑(2)關(guān)鍵辦法:(1)抓住兩個環(huán)節(jié):開發(fā)技術(shù)和方法;良好的組織管理措施。(2)澄清三個錯誤認(rèn)識:
a、軟件就是程序;
b、軟件開發(fā)就是編程;(編程僅占工作量的10%-20%)
c、將錯誤留到編程后的測試和維護(hù)時再改。(相同的錯誤在后期引入軟件更改比早期引入軟件更改所需的代價高出2-3個數(shù)量級。2024/10/24軟件工程第16頁二、軟件工程1、什么叫軟件工程?軟件工程是指采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來開發(fā)高質(zhì)量的軟件。2024/10/24軟件工程第17頁2、軟件工程的基本原理1、用分階段的生命周期計(jì)劃嚴(yán)格管理3、實(shí)行嚴(yán)格的產(chǎn)品控制2、堅(jiān)持進(jìn)行階段性評審4、采用現(xiàn)代程序設(shè)計(jì)技術(shù)5、結(jié)果應(yīng)能清楚地審查6、開發(fā)小組的人員應(yīng)該少而精7、承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2024/10/24軟件工程第18頁
(1)用分階段的生命周期計(jì)劃嚴(yán)格管理生命周期:問題定義、可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測試、綜合測試、軟件維護(hù)。
在軟件的整個生命周期中應(yīng)該嚴(yán)格執(zhí)行六類計(jì)劃:項(xiàng)目概要計(jì)劃、里程碑計(jì)劃、項(xiàng)目控制計(jì)劃、產(chǎn)品控制計(jì)劃、驗(yàn)證計(jì)劃、運(yùn)行維護(hù)計(jì)劃。(Boehm)2024/10/24軟件工程第19頁
(2)堅(jiān)持進(jìn)行階段性評審
軟件的質(zhì)量保證工作不能等到編碼結(jié)束以后進(jìn)行:
(1)大部分錯誤是在編碼之前造成的,占63%;(2)錯誤發(fā)現(xiàn)與改正得越晚,所需付出的代價也越高.
2024/10/24軟件工程第20頁
(3)實(shí)行嚴(yán)格的產(chǎn)品控制
(1)產(chǎn)品控制:指在軟件生產(chǎn)過程中保持軟件各個配置(文檔或程序代碼)的一致性,即不能隨意修改軟件。(2)基線配置:是經(jīng)過階段評審后的軟件配置成分。對基線配置的修改都要按照嚴(yán)格的規(guī)程進(jìn)行評審。
(4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)
采用先進(jìn)的程序設(shè)計(jì)技術(shù)可以提高軟件的生產(chǎn)效率。
SA(structureanalyse):結(jié)構(gòu)分析;
SD(structuredesign):結(jié)構(gòu)設(shè)計(jì)。
SP(structureprograming):結(jié)構(gòu)編程。
2024/10/24軟件工程第21頁2024/10/24軟件工程第22頁
(5)結(jié)果應(yīng)能清楚地審查
軟件是看不到的邏輯產(chǎn)品。為了提高軟件開發(fā)過程的可見性,更好地進(jìn)行管理,應(yīng)該根據(jù)軟件開發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使所得到的結(jié)果能夠清楚地審查。2024/10/24軟件工程第23頁
(6)開發(fā)小組的人員應(yīng)該少而精
為了提高軟件開發(fā)過程的可見性,更好地進(jìn)行管理,應(yīng)該根據(jù)軟件開發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使所得到的結(jié)果能夠清楚地審查。
(7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性
2024/10/24軟件工程第24頁3、軟件工程的三要素(1)軟件開發(fā)技術(shù):解決“如何做”的問題,如項(xiàng)目計(jì)劃與估算、成本效益分析、風(fēng)險(xiǎn)控制、系統(tǒng)需求分析、軟件結(jié)構(gòu)設(shè)計(jì)、算法設(shè)計(jì)、程序設(shè)計(jì)方法、軟件測試與維護(hù)等。
(2)軟件開發(fā)工具:目前軟件開發(fā)工具正向軟件開發(fā)工具箱、集成化軟件開發(fā)環(huán)境發(fā)展,以支持軟件開發(fā)的全過程。
(3)軟件工程管理:它包括軟件生產(chǎn)的成本估算、進(jìn)度安排、質(zhì)量評估、管理與控制、人員組織和軟件配置管理等,涉及管理學(xué)、經(jīng)濟(jì)學(xué)、社會學(xué)和心理學(xué)等多個方面。
軟件工程軟件開發(fā)技術(shù)軟件開發(fā)工具軟件工程管理圖1.2軟件工程三要素2024/10/24軟件工程第25頁4、軟件工程目標(biāo)采用軟件工程的方法開發(fā)軟件的最終目標(biāo)是保證項(xiàng)目的成功,即達(dá)到以下幾個目標(biāo):低開發(fā)成本、高可靠性、高性能、易于移植,易于維護(hù)、按時完成開發(fā)工作。低開發(fā)成本高性能按時交付高可靠性易于維護(hù)互補(bǔ)關(guān)系互斥關(guān)系2024/10/24軟件工程第26頁1.3軟件生命周期一、軟件生命周期的概念與其他事物一樣,軟件也有一個孕育、誕生、成長、成熟和衰亡的過程,這個過程被稱為軟件生命周期。
軟件定義軟件開發(fā)軟件維護(hù)
可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼與單元測試測試維護(hù)2024/10/24軟件工程第27頁1.3軟件生命周期(2)二、軟件生命周期各階段的任務(wù)1、可行性研究可行性研究的任務(wù)是了解用戶的要求及現(xiàn)實(shí)條件,從技術(shù)、經(jīng)濟(jì)、社會等幾個方面研究論證軟件系統(tǒng)的可行性。
(1)回答的關(guān)鍵問題是:“對所確定的問題有行得通的解決辦法嗎?”;(2)參與人員:系統(tǒng)分析員;(3)工作過程:一個大簡化了的系統(tǒng)分析和設(shè)計(jì)過程;(4)完成的任務(wù):提出系統(tǒng)的高級邏輯模型,確定系統(tǒng)的目標(biāo)和規(guī)模,系統(tǒng)的成本/效益分析。2024/10/24軟件工程第28頁2、需求分析需求分析的主要任務(wù)是確定待開發(fā)軟件的功能要求、性能要求和運(yùn)行環(huán)境約束。
(1)回答的關(guān)鍵問題是:“為了解決這個問題,目標(biāo)系統(tǒng)應(yīng)該做什么?”;(2)參與人員:系統(tǒng)分析員和用戶;(3)完成的任務(wù):確定系統(tǒng)的邏輯模型,通常用ER圖、數(shù)據(jù)流圖、狀態(tài)變遷圖、數(shù)據(jù)字典和簡要的算法表示,這個系統(tǒng)模型經(jīng)過用戶確認(rèn)后才能進(jìn)入下一階段。需求分析階段結(jié)束的標(biāo)志是提交軟件需求規(guī)格說明書(SRS,SoftwareRequirementsSpecification)
,驗(yàn)收測試設(shè)計(jì)2024/10/24軟件工程第29頁3、總體設(shè)計(jì)總體設(shè)計(jì)的基本任務(wù)有兩個:一是根據(jù)需求規(guī)格說明,提出幾種可供選擇的系統(tǒng)解決方案,并確定一個用于實(shí)施的最佳方案;二是建立軟件系統(tǒng)的總體結(jié)構(gòu)。
(1)回答的關(guān)鍵問題是:“概括地說,應(yīng)該如何解決這個問題?”;(2)參與人員:系統(tǒng)分析員;(3)主要工作:提出幾種可供選擇的解決方案(是人工完成還是計(jì)算機(jī)完成,是批處理還是人機(jī)交互,信息存儲是采用文件系統(tǒng)還是數(shù)據(jù)庫?),方案的級別有:低、中、高等級,每種方案都用系統(tǒng)流程圖或其它工具加以描述。推薦一種方案。最后確定一種方案。(4)完成的任務(wù):可能的解法(每種解法的系統(tǒng)流程圖和成本效益分析),推薦的系統(tǒng)結(jié)構(gòu)(層次圖或結(jié)構(gòu)圖)??傮w設(shè)計(jì)結(jié)束的標(biāo)志是提交總體設(shè)計(jì)說明書、數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)說明書和集成測試計(jì)劃等文件。
4、詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)又稱為過程設(shè)計(jì),其主要任務(wù)是用圖形工具或偽碼(如HIPO圖、程序流程圖、N-S圖、PAD圖、PDL語言)描述模塊的實(shí)現(xiàn)過程。
(1)回答的關(guān)鍵問題是:“應(yīng)該如何具體地實(shí)現(xiàn)這個系統(tǒng)?”;(2)參與人員:系統(tǒng)分析員和程序員;(3)主要工作:設(shè)計(jì)程序詳細(xì)的規(guī)格說明,用圖形工具或偽碼描述模塊的實(shí)現(xiàn)。但還不是編程,它類似于其它工程上的圖紙。(4)完成的任務(wù):編碼規(guī)格說明書,用HIPO圖或PDL等工具描述的詳細(xì)設(shè)計(jì)的結(jié)果。詳細(xì)設(shè)計(jì)階段結(jié)束的標(biāo)志是提交詳細(xì)設(shè)計(jì)說明書,包括模塊開發(fā)卷宗和模塊測試方案。2024/10/24軟件工程第30頁2024/10/24軟件工程第31頁5、編碼編碼的任務(wù)是選擇適當(dāng)?shù)某绦蛟O(shè)計(jì)語言(高級程序設(shè)計(jì)語言或匯編語言),把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成選定語言編寫的程序,并對編寫出的每一個模塊程序進(jìn)行測試(被稱作單元測試)。(1)關(guān)鍵問題是:寫出正確的容易理解、容易維護(hù)的程序模塊;(2)參與人員:程序員;(3)主要工作:選取一個適當(dāng)?shù)某绦蛟O(shè)計(jì)語言(高級程序設(shè)計(jì)語言或匯編語言),把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定的語言書寫的程序,仔細(xì)測試編寫出的每一個模塊。(4)完成的任務(wù):源程序清單,單元測試方案和結(jié)果。這個階段結(jié)束的標(biāo)志是程序員提交源程序清單和單元測試方案和結(jié)果。2024/10/24軟件工程第32頁6、綜合測試(1)關(guān)鍵問題是:通過各種類型的測試和調(diào)試使軟件達(dá)到預(yù)期的要求。(2)參與人員:專門的測試人員、用戶;(3)主要工作:集成測試:根據(jù)設(shè)計(jì)的軟件結(jié)構(gòu),把經(jīng)過單元測試檢驗(yàn)的模塊按某種選定的策略裝配起來,在裝配過程中對程序進(jìn)行必要的測試。驗(yàn)收測試:按照規(guī)格說明書的規(guī)定(通常在需求分析階段確定),由用戶(或在用戶積極參加下)對目標(biāo)系統(tǒng)進(jìn)行驗(yàn)收。平行運(yùn)行:新舊系統(tǒng)同時運(yùn)行,在保障系統(tǒng)安全的前提下使新系統(tǒng)接愛實(shí)戰(zhàn)演練,同時對用戶進(jìn)行培訓(xùn)。(4)完成的任務(wù):綜合測試方案和結(jié)果,完整一致的軟件配置。2024/10/24軟件工程第33頁可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測試平行運(yùn)行確認(rèn)測試集成測試2024/10/24軟件工程第34頁7、軟件維護(hù)(1)關(guān)鍵問題是:通過各種必要的維護(hù)活動使系統(tǒng)持久地滿足用戶的需要。是壓縮和簡化了的軟件定義和開發(fā)過程。(2)參與人員:軟件工程師、用戶;(3)主要工作:改正性維護(hù):診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯誤。適應(yīng)性維護(hù):修改軟件以適應(yīng)新的硬件和軟件環(huán)境。完善性維護(hù):滿足新的用戶需求。預(yù)防性維護(hù):修改軟件為將來的維護(hù)活動預(yù)先做準(zhǔn)備。維護(hù)過程:提出維護(hù)要求—分析維護(hù)要求—提出維護(hù)方案—審批維護(hù)方案—確定維護(hù)計(jì)劃—修改軟件設(shè)計(jì)—修改程序—測試程序—復(fù)查驗(yàn)收。(4)完成的任務(wù):提交正式的維護(hù)記錄資料。2024/10/24軟件工程第35頁4軟件開發(fā)模型什么是軟件開發(fā)模型?所謂軟件開發(fā)模型是指從項(xiàng)目需求分析直至軟件經(jīng)使用后廢棄為止所經(jīng)歷的、與開發(fā)維護(hù)工作相關(guān)的過程結(jié)構(gòu)框架,即描述軟件生命周期中的各個階段之間的時間次序。目前廣泛使用的軟件開發(fā)模型有瀑布模型、原型模型、螺旋模型、基于第四代技術(shù)的模型和形式化方法模型。2024/10/24軟件工程第36頁1、瀑布模型的特點(diǎn):(1)階段間具有順序性和依賴性;(2)嚴(yán)格的技術(shù)審查和管理復(fù)審;(3)推遲軟件的物理實(shí)現(xiàn)。瀑布模型存在的不足:一是開發(fā)效率低,前一階段的工作沒有完成,后一階段的工作不能開始,有限的人力得不到充分利用;二是缺乏靈活性。三是瀑布模型要求軟件的需求說明完整準(zhǔn)確,如果在軟件開發(fā)的晚期修改需求說明,將帶來災(zāi)難性的后果——前面所做的工作可能全部廢棄。2024/10/24軟件工程第37頁問題定義可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測試維護(hù)運(yùn)行問題定義可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測試評價需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼2024/10/24軟件工程第38頁2、原型模型主要思想是首先建立一個能夠反映用戶主要需求的原型,讓用戶實(shí)際看一看未來系統(tǒng)的概貌,以便判斷哪些功能是符合需要的,哪些功能還需要增加或改進(jìn),然后反復(fù)修改并評價原型,使用戶需求進(jìn)一步明確,最終建立完全符合用戶要求的新系統(tǒng)。
需求分析原型開發(fā)原型評價最終系統(tǒng)設(shè)計(jì)最終系統(tǒng)實(shí)現(xiàn)圖1.8原型模型2024/10/24軟件工程第39頁建立原型系統(tǒng)的策略:(1)原型系統(tǒng)僅包含目標(biāo)系統(tǒng)的主要功能和重要接口。重點(diǎn)實(shí)現(xiàn)用戶最為關(guān)心的功能和人機(jī)界面部分,體現(xiàn)系統(tǒng)的可操作性,使用戶能較快建立感性認(rèn)識。同時忽視系統(tǒng)的細(xì)節(jié),如異常處理、對非有效輸入的響應(yīng)等;對系統(tǒng)的性能需求,如硬件的速度等也可推遲考慮。(2)盡量使用能縮短開發(fā)周期的程序設(shè)計(jì)語言和工具。由于原型系統(tǒng)開發(fā)要突出一個“快”字,所以開發(fā)原型系統(tǒng)要盡量選用第四代語言或甚高級語言。但是第四代語言或甚高級語言一般需要很大的支撐環(huán)境,運(yùn)行速度比較慢,不宜用來實(shí)現(xiàn)最終的實(shí)際系統(tǒng),所以這個策略所開發(fā)的原型系統(tǒng)可能被廢棄。(3)盡量由原型系統(tǒng)演化為目標(biāo)系統(tǒng),這樣可避免二次開發(fā)或多次開發(fā),以節(jié)約開發(fā)成本,加快開發(fā)進(jìn)度。2024/10/24軟件工程第40頁原型開發(fā)模型的主要優(yōu)點(diǎn)是:(1)有利于明確需求,用戶在原型系統(tǒng)上獲得實(shí)踐經(jīng)驗(yàn)、啟發(fā)思維,可與系統(tǒng)分析員一起使軟件需求表述得更加明確和完整;(2)有利于實(shí)現(xiàn)開發(fā)人員與用戶之間的溝通,消除用戶和系統(tǒng)分析員之間存在的通信鴻溝;(3)有利于用戶培訓(xùn),使用戶較早地學(xué)會使用系統(tǒng)。2024/10/24軟件工程第41頁3、螺旋模型螺旋模型(spiralmodel)是一個迭代模型,由多次開發(fā)迭代而成,每次迭代軟件開發(fā)都經(jīng)歷一個軟件生命周期,新的一次開發(fā)是對上一次開發(fā)的深化,從模型圖上看呈螺旋線狀。特點(diǎn):(1)螺旋模型的每一個周期都要經(jīng)過需求定義、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評審4個階段;(2)采用瀑布模型的開發(fā)方法,具有分階段邊開發(fā)、邊評審的特點(diǎn),保證了每次開發(fā)的軟件質(zhì)量。(3)螺旋模型的每一個開發(fā)周期開發(fā)的軟件都可以看作是下一個開發(fā)周期的原型,用戶參與開發(fā)并對階段性的軟件產(chǎn)品提出評審意見,因而吸取了原型模型的特點(diǎn)。(4)迭代收斂問題:迭代過程必須盡快收斂到用戶允許的或可接受的目標(biāo)范圍內(nèi)。如果迭代周期過多,每個迭代周期的工作量太大,則迭代收斂很慢,軟件開發(fā)的成本過高,花費(fèi)的時間太長,軟件開發(fā)將面臨失敗的危險(xiǎn)。2024/10/24軟件工程第42頁2024/10/24軟件工程第43頁4、基于第四代技術(shù)的模型(1)第四代語言(4GL)
第四代語言(4GL):是在大型數(shù)據(jù)庫管理程序基礎(chǔ)上發(fā)展起來的程序設(shè)計(jì)語言。
4GL是面向結(jié)果的非過程式語言,它獨(dú)立于具體的處理機(jī),有豐富的軟件工具的支持,能統(tǒng)一利用和管理各種數(shù)據(jù)資源,因此能適應(yīng)不同水平用戶的需要。支持4GL的軟件開發(fā)工具有:數(shù)據(jù)庫查詢語言、報(bào)表生成器、圖表生成器、人機(jī)交互的屏幕設(shè)計(jì)與代碼生成系統(tǒng)等。2024/10/24軟件工程第44頁4、基于第四代技術(shù)的模型(2)基于第四代技術(shù)的模型以4GL為核心的軟件開發(fā)技術(shù)稱為四代技術(shù),采用四代技術(shù)開發(fā)軟件的模型稱為基于第四代技術(shù)的模型。收集需求“設(shè)計(jì)”策略用4GL實(shí)現(xiàn)測試2024/10/24軟件工程第45頁(3)基于第四代技術(shù)模型的特點(diǎn):A、它也是從收集需求這一步開始的。B、對于較小的應(yīng)用,使用4GL可能直接從需求收集過渡到實(shí)現(xiàn),利用4GL工具將規(guī)格說明自動轉(zhuǎn)換成程序代碼,而對于較大的應(yīng)用,仍需要制訂一個系統(tǒng)的設(shè)計(jì)策略。C、基于第四代技術(shù)方法的優(yōu)點(diǎn)是能縮短軟件開發(fā)的時間,顯著提高軟件開發(fā)的生產(chǎn)率。D、開發(fā)生成的源代碼效率較低,對于大型軟件項(xiàng)目而言,4GL雖然可以節(jié)省部分代碼生成的時間,但其在整個開發(fā)過程中所占的比例是有限的。2024/10/24軟件工程第46頁5、形式化方法模型(1)什么是形式化方法模型?形式化方法模型是基于形式化規(guī)格說明及程序變換的一種軟件開發(fā)模型。(2)基本思想是:開發(fā)人員在完成需求分析以后,用某種形式化的需求規(guī)格說明語言(如VDM的META-IV、CSP和Z)描述軟件規(guī)格說明,生成形式化的規(guī)格說明,再對形式的規(guī)格說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東建筑安全員知識題庫附答案
- 貴州財(cái)經(jīng)職業(yè)學(xué)院《現(xiàn)代西方哲學(xué)專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 蠶豆產(chǎn)業(yè)基地建設(shè)項(xiàng)目可行性研究報(bào)告-蠶豆市場需求持續(xù)擴(kuò)大
- 貴陽康養(yǎng)職業(yè)大學(xué)《醫(yī)療健康商務(wù)溝通》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州中醫(yī)藥大學(xué)《生物統(tǒng)計(jì)附試驗(yàn)設(shè)計(jì)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年-吉林省安全員知識題庫附答案
- 廣州現(xiàn)代信息工程職業(yè)技術(shù)學(xué)院《心理咨詢與心理輔導(dǎo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年-河北省安全員B證考試題庫
- 2025建筑安全員A證考試題庫
- 2025年山西省建筑安全員-C證考試(專職安全員)題庫及答案
- 國家開放大學(xué)2023年7月期末統(tǒng)一試《11124流行病學(xué)》試題及答案-開放本科
- 2023年中考語文標(biāo)點(diǎn)符號(頓號)練習(xí)(含答案)
- 貨運(yùn)安全生產(chǎn)管理制度
- 施工圖審查招標(biāo)文件范文
- 幼兒園中班體育《我們愛運(yùn)動》+課件
- 艾滋病、梅毒和乙肝檢測方法介紹及選擇
- 水資源稅納稅申報(bào)表附表
- 郭錫良《古代漢語》課件
- 外研版四年級英語下冊(一年級起點(diǎn))全冊完整課件
- MF47萬用表組裝與檢測教學(xué)教案
- 防止電力生產(chǎn)事故的-二十五項(xiàng)重點(diǎn)要求(2023版)
評論
0/150
提交評論