版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
21.12.20221第一章緒論——軟件危機(jī)與軟件工程軟件工程(SoftwareEngineering)18.12.20221第一章緒論——軟件危機(jī)與軟件工程軟件21.12.20222本章主要內(nèi)容軟件開發(fā)過程軟件危機(jī)的產(chǎn)生解決軟件危機(jī)的途徑軟件工程18.12.20222本章主要內(nèi)容軟件開發(fā)過程21.12.20223計(jì)算機(jī)硬件與軟件任何計(jì)算機(jī)系統(tǒng)都包含硬件(hard)和軟件(software)兩大部分。
硬件只是提供了計(jì)算的可能性必須有支持和管理計(jì)算機(jī)的軟件,系統(tǒng)才能實(shí)現(xiàn)計(jì)算軟件開發(fā)過程18.12.20223計(jì)算機(jī)硬件與軟件任何計(jì)算機(jī)系統(tǒng)都包含硬21.12.20224軟件的三層含義個(gè)體含義:指計(jì)算機(jī)中的程序及其文檔。整體含義:指在特定計(jì)算機(jī)系統(tǒng)中所有上述個(gè)體含義下的軟件的總稱,即計(jì)算機(jī)系統(tǒng)中硬件除外的所有成分。學(xué)科含義:指在研究、開發(fā)、維護(hù)以及使用前述含義下的軟件所涉及的理論、方法、技術(shù)所構(gòu)成的學(xué)科。軟件開發(fā)過程18.12.20224軟件的三層含義個(gè)體含義:指計(jì)算機(jī)中的程21.12.20225軟件開發(fā)過程的演化
第一個(gè)時(shí)期:40—60年代,個(gè)體時(shí)期(程序時(shí)期)第二個(gè)時(shí)期:60—70年代,軟件作坊時(shí)期(程序+文檔)第三個(gè)時(shí)期:70年代以后,軟件工程時(shí)期。軟件開發(fā)過程18.12.20225軟件開發(fā)過程的演化第一個(gè)時(shí)期:40—21.12.20226軟件開發(fā)過程的演化
計(jì)算機(jī)軟件的數(shù)量以驚人的速度急劇膨脹。計(jì)算機(jī)硬件的性能/價(jià)格比,每10年提高2個(gè)數(shù)量級(jí),且質(zhì)量穩(wěn)步提高。軟件生產(chǎn)跟不上計(jì)算機(jī)應(yīng)用的要求,開發(fā)成本增加,質(zhì)量沒有保證,已成制約計(jì)算機(jī)發(fā)展的關(guān)鍵因素。軟件開發(fā)過程18.12.20226軟件開發(fā)過程的演化計(jì)算機(jī)軟件的數(shù)量以21.12.20227軟件危機(jī)軟件危機(jī)(crisis):是指在計(jì)算機(jī)軟件開發(fā)和維護(hù)過程中所遇到的一系列的嚴(yán)重問題。
軟件危機(jī)的產(chǎn)生18.12.20227軟件危機(jī)軟件危機(jī)(cris21.12.20228軟件危機(jī)的具體表現(xiàn)①
對(duì)軟件開發(fā)成本高和進(jìn)度估計(jì)不準(zhǔn)確。②
用戶對(duì)已完成的“軟件系統(tǒng)”不滿意。③
軟件產(chǎn)品的質(zhì)量不可靠。④
軟件維護(hù)困難,維護(hù)的人員與費(fèi)用不斷增加。⑤
缺乏完整、正確的文檔資料。⑥
軟件成本在計(jì)算機(jī)系統(tǒng)中所占比例逐年上升。⑦
軟件的發(fā)展跟不上硬件的發(fā)展和用戶的要求。
軟件危機(jī)的產(chǎn)生18.12.20228軟件危機(jī)的具體表現(xiàn)①
對(duì)軟件開發(fā)成本21.12.20229產(chǎn)生軟件危機(jī)的原因客觀原因:軟件需求大,規(guī)模大主觀原因:軟件本身的特點(diǎn)軟件是一種邏輯部件不是物理部件,其進(jìn)展情況和質(zhì)量難以控制。
軟件的規(guī)模非常龐大,多人共同開發(fā),必須有嚴(yán)格和科學(xué)的管理。
軟件開發(fā)過分依賴于個(gè)人的智力勞動(dòng)和經(jīng)驗(yàn)。
在對(duì)用戶需求沒有完整、準(zhǔn)確的認(rèn)識(shí),匆忙開發(fā)。
軟件危機(jī)的產(chǎn)生18.12.20229產(chǎn)生軟件危機(jī)的原因客觀原因:軟件需求大21.12.202210軟件的生命周期
軟件的生命周期(lifecycle):是指軟件產(chǎn)品或軟件系統(tǒng),從生產(chǎn)、投入使用到被淘汰的全過程。把軟件生命周期依次劃分為若干階段,每個(gè)階段有相對(duì)獨(dú)立的任務(wù),逐步完成各個(gè)階段的任務(wù)后,軟件的生命周期向前推進(jìn)。解決軟件危機(jī)的途徑18.12.202210軟件的生命周期軟件的生命周期(21.12.202211軟件的生命周期軟件計(jì)劃(planning)階段
問題定義:要解決的問題是什么?可行性研究:在時(shí)間和資源的約束條件下,能否完成指定的任務(wù)?包括:技術(shù)可行性、經(jīng)濟(jì)可行性、法律可行性、社會(huì)可行性。解決軟件危機(jī)的途徑18.12.202211軟件的生命周期軟件計(jì)劃(planni21.12.202212軟件的生命周期軟件開發(fā)(development)階段需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測(cè)試運(yùn)行解決軟件危機(jī)的途徑18.12.202212軟件的生命周期軟件開發(fā)(develo21.12.202213軟件的生命周期軟件維護(hù)(maintenance)階段在不同的階段對(duì)軟件修改而付出的代價(jià)是不同的!在后期引入一個(gè)變動(dòng)的代價(jià)比在早期引入要高的多,甚至高達(dá)2─3個(gè)數(shù)量級(jí)。解決軟件危機(jī)的途徑18.12.202213軟件的生命周期軟件維護(hù)(mainte21.12.202214軟件工程軟件工程
是一門指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科,是一類求解軟件包的工程。它應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,借鑒傳統(tǒng)工程的原則、方法,創(chuàng)建軟件以達(dá)到提高質(zhì)量、降低成本的目的。解決軟件危機(jī)的途徑18.12.202214軟件工程軟件工程解決軟件21.12.202215軟件工程
計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。解決軟件危機(jī)的途徑18.12.202215軟件工程21.12.202216軟件工程基本原理1968年在聯(lián)邦德國(guó)召開的國(guó)際會(huì)議正式提出并使用“軟件工程”的概念和術(shù)語(yǔ),眾多專家提出100多條關(guān)于軟件程的準(zhǔn)則。
1983年,B.W.Boehm歸納提出了七條基本原則。解決軟件危機(jī)的途徑18.12.202216軟件工程基本原理1968年在聯(lián)邦德21.12.202217軟件工程基本原理1.用分階段的生命周期計(jì)劃嚴(yán)格管理有人統(tǒng)計(jì),在不成功的軟件項(xiàng)目中有50%左右是由于計(jì)劃不周造成的。應(yīng)該把軟件生命周期劃分為若干階段,并制定出相應(yīng)的切實(shí)可行的計(jì)劃,嚴(yán)格按照計(jì)劃對(duì)開發(fā)和維護(hù)進(jìn)行管理。
B.W.Boehm認(rèn)為,應(yīng)制定和嚴(yán)格執(zhí)行6類計(jì)劃:項(xiàng)目概要計(jì)劃、里程碑計(jì)劃、項(xiàng)目控制計(jì)劃、產(chǎn)品控制計(jì)劃、驗(yàn)證計(jì)劃、運(yùn)行維護(hù)計(jì)劃。解決軟件危機(jī)的途徑18.12.202217軟件工程基本原理1.用分階段的生命21.12.202218軟件工程基本原理2.堅(jiān)持進(jìn)行階段評(píng)審設(shè)計(jì)的錯(cuò)誤占軟件錯(cuò)誤的63%,編碼錯(cuò)誤只占37%。而且在后期糾正錯(cuò)誤的代價(jià)非常高。因此,必須嚴(yán)格堅(jiān)持階段評(píng)審,及早發(fā)現(xiàn)和糾正錯(cuò)誤。解決軟件危機(jī)的途徑18.12.202218軟件工程基本原理2.堅(jiān)持進(jìn)行階段評(píng)21.12.202219軟件工程基本原理3.實(shí)行嚴(yán)格的產(chǎn)品質(zhì)量控制在現(xiàn)實(shí)中由于外部原因要求對(duì)需求等進(jìn)行修改是難免的。但必須有嚴(yán)格的管理制度和措施。解決軟件危機(jī)的途徑18.12.202219軟件工程基本原理3.實(shí)行嚴(yán)格的產(chǎn)品21.12.202220軟件工程基本原理4.采用現(xiàn)代程序設(shè)計(jì)技術(shù)和軟件工程技術(shù)如結(jié)構(gòu)化程序分析(StructuredAnalysis)和結(jié)構(gòu)化設(shè)計(jì)(StructuredDesign)等。5.結(jié)果應(yīng)能清楚地審查由于軟件是一種看不見摸不著的邏輯產(chǎn)品,對(duì)它的檢驗(yàn)和審查很困難。因此,應(yīng)提供可視化的檢驗(yàn)標(biāo)準(zhǔn)和方法。解決軟件危機(jī)的途徑18.12.202220軟件工程基本原理4.采用現(xiàn)代程序設(shè)21.12.202221軟件工程基本原理6.開發(fā)人員應(yīng)少而精軟件開發(fā)小組的人員應(yīng)該是素質(zhì)高,人員不宜過多。人員素質(zhì)低和人員過多,都會(huì)導(dǎo)致軟件的錯(cuò)誤率高,且開發(fā)效率下降,成本增加。
7.承認(rèn)不斷改進(jìn)軟件工程的必要性軟件工程是一門不斷迅速發(fā)展的學(xué)科,必須學(xué)習(xí)和跟蹤先進(jìn)的技術(shù)和方法,也要不斷總結(jié)經(jīng)驗(yàn)、改進(jìn)方法,要不斷進(jìn)行技術(shù)創(chuàng)新。解決軟件危機(jī)的途徑18.12.202221軟件工程基本原理6.開發(fā)人員應(yīng)少而21.12.202222解決軟件危機(jī)的傳統(tǒng)方法用生命周期把軟件劃分為若干階段,每個(gè)階段相對(duì)獨(dú)立的任務(wù),分階段逐步完成。每一階段的開始和結(jié)束都有嚴(yán)格的標(biāo)準(zhǔn),前一個(gè)階段的結(jié)果就是下一階段設(shè)計(jì)和開發(fā)的依據(jù)。每個(gè)階段的工作都有嚴(yán)格的技術(shù)和管理審查,通過之后才方可開始進(jìn)行下一階段。每個(gè)階段都要形成詳盡、規(guī)范、完整的文檔,提供下一階段以及本階段評(píng)審之用。
解決軟件危機(jī)的途徑18.12.202222解決軟件危機(jī)的傳統(tǒng)方法用生命周期把軟21.12.202223生命周期各階段的任務(wù)1.問題定義本階段需要明確回答:“要解決的問題是什么?”。系統(tǒng)分析員應(yīng)該提出問題的性質(zhì)、目標(biāo)和規(guī)模的書面報(bào)告。通過對(duì)實(shí)際用戶和使用部門的調(diào)查、研究,以及討論、交流,得出一份雙方都滿意的文檔。
解決軟件危機(jī)的途徑18.12.202223生命周期各階段的任務(wù)1.問題定義解決21.12.202224生命周期各階段的任務(wù)
2.可行性分析
本階段需要回答的是:“上一階段確定的問題有無(wú)可行的解決方案,是否值得解決?”。更進(jìn)一步明確項(xiàng)目的規(guī)模和目標(biāo),從技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性、法律可行性、社會(huì)可行性等方面進(jìn)行研究,確定是否開發(fā)本項(xiàng)目。
解決軟件危機(jī)的途徑18.12.202224生命周期各階段的任務(wù)2.可行21.12.202225生命周期各階段的任務(wù)
3.需求分析
本階段確定為解決該問題,目標(biāo)系統(tǒng)必須應(yīng)具備哪些功能。系統(tǒng)分析員在本階段必須與用戶密切配合,充分交流,得到經(jīng)用戶確認(rèn)的系統(tǒng)邏輯模型,用數(shù)據(jù)流圖、數(shù)據(jù)字典等描述系統(tǒng)的邏輯模型。需求分析階段所確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),必須準(zhǔn)確、完整的體現(xiàn)用戶的需求。解決軟件危機(jī)的途徑18.12.202225生命周期各階段的任務(wù)3.需求21.12.202226生命周期各階段的任務(wù)4.總體設(shè)計(jì)本階段確定目標(biāo)系統(tǒng)的主要功能如何完成。采用流程圖或其他工具描述出每種可能的系統(tǒng),推薦出一個(gè)最佳的方案,并制定出實(shí)現(xiàn)該系統(tǒng)的詳細(xì)計(jì)劃。本階段的另一個(gè)主要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),確定軟件應(yīng)由哪些模塊構(gòu)成,以及模塊之間的關(guān)系。還應(yīng)考慮系統(tǒng)的開發(fā)和應(yīng)用環(huán)境,如計(jì)算機(jī)系統(tǒng)的配置,計(jì)算機(jī)網(wǎng)絡(luò)等。解決軟件危機(jī)的途徑18.12.202226生命周期各階段的任務(wù)4.總體設(shè)計(jì)21.12.202227生命周期各階段的任務(wù)5.詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段的任務(wù)就是把問題的求解具體化,設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。通常用HIPO圖(層次圖/輸入/處理/輸出)或PDL語(yǔ)言(過程設(shè)計(jì)語(yǔ)言)描述詳細(xì)設(shè)計(jì)的結(jié)果。解決軟件危機(jī)的途徑18.12.202227生命周期各階段的任務(wù)5.詳細(xì)設(shè)計(jì)21.12.202228生命周期各階段的任務(wù)6.編碼和單元測(cè)試本階段的任務(wù)是編寫軟件程序。程序員應(yīng)根據(jù)目標(biāo)系統(tǒng)的要求,選取適合的程序設(shè)計(jì)語(yǔ)言,把詳細(xì)設(shè)計(jì)的結(jié)果編制成程序,并對(duì)每一個(gè)模塊進(jìn)行單元測(cè)試。需要考慮軟件平臺(tái)、開發(fā)工具等等。解決軟件危機(jī)的途徑18.12.202228生命周期各階段的任務(wù)6.編碼和單元測(cè)21.12.202229生命周期各階段的任務(wù)7.綜合測(cè)試本階段的任務(wù)是通過各種測(cè)試以及相應(yīng)的調(diào)試,使軟件達(dá)到預(yù)定的要求。應(yīng)該把測(cè)試計(jì)劃、測(cè)試方案、測(cè)試結(jié)果等以文檔的形式保存下來(lái),作為軟件配置的一個(gè)組成部分。解決軟件危機(jī)的途徑18.12.202229生命周期各階段的任務(wù)7.綜合測(cè)試解21.12.202230生命周期各階段的任務(wù)8.軟件維護(hù)軟件維護(hù)的任務(wù)是,通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。通常有4類維護(hù)活動(dòng):改正性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);預(yù)防性維護(hù)。每一項(xiàng)維護(hù)活動(dòng)都應(yīng)該準(zhǔn)確地記錄下來(lái),作為正式的文檔保存。解決軟件危機(jī)的途徑18.12.202230生命周期各階段的任務(wù)8.軟件維護(hù)解決21.12.202231軟件工程開發(fā)模式1.瀑布模型(WaterfallModel)
傳統(tǒng)的生命周期方法學(xué)可以用瀑布模型來(lái)模擬,猶如瀑布,各個(gè)階段從上到下,奔流不息。解決軟件危機(jī)的途徑18.12.202231軟件工程開發(fā)模式1.瀑布模型(Wat21.12.202232軟件工程開發(fā)模式
按照傳統(tǒng)的瀑布模型來(lái)開發(fā)軟件,有如下幾個(gè)特點(diǎn):各階段具有順序性和依賴性,必須等上一階段結(jié)束后,才能開始下一階段;前一階段的輸出文檔就是下一階段的輸入,在某一階段發(fā)現(xiàn)了問題,可能會(huì)追溯到前面某些階段,必須對(duì)前面的許多階段進(jìn)行修改,代價(jià)高昂。解決軟件危機(jī)的途徑18.12.202232軟件工程開發(fā)模式按21.12.202233軟件工程開發(fā)模式第一,不要急于求成,對(duì)于規(guī)模較大、較復(fù)雜的系統(tǒng),過早地急于編程實(shí)現(xiàn),往往導(dǎo)致大量返工,甚至開發(fā)失敗。應(yīng)該把前面幾個(gè)階段的工作做得比較扎實(shí),再進(jìn)行后續(xù)的工作。第二,每個(gè)階段都必須交出合格的文檔。這是下一階段開發(fā)設(shè)計(jì)的依據(jù)和開發(fā)交互的媒介,也是對(duì)軟件進(jìn)行維護(hù)的重要依據(jù)。第三,每個(gè)階段完成前都要對(duì)完成的文檔進(jìn)行評(píng)審,以便及時(shí)發(fā)現(xiàn)和改正錯(cuò)誤。對(duì)錯(cuò)誤的修改越早越好,越晚代價(jià)越高。解決軟件危機(jī)的途徑18.12.202233軟件工程開發(fā)模式第一,不要急于21.12.202234軟件工程開發(fā)模式2.原型(prototyping)開發(fā)模型在項(xiàng)目開發(fā)的早期盡快開發(fā)一個(gè)簡(jiǎn)化的系統(tǒng)原型版本。用于用戶和開發(fā)人員學(xué)習(xí)和交流。解決軟件危機(jī)的途徑18.12.202234軟件工程開發(fā)模式2.原型(proto21.12.202235軟件工程開發(fā)模式3.螺旋(spiral)模型按照計(jì)劃風(fēng)險(xiǎn)分析工程用戶評(píng)價(jià),象螺旋線一圈一圈地向外發(fā)展,最終建立起運(yùn)行的系統(tǒng)。主要是為了控制開發(fā)風(fēng)險(xiǎn)。其工程開發(fā)仍采用生命周期和原型開發(fā)的方法。解決軟件危機(jī)的途徑18.12.202235軟件工程開發(fā)模式3.螺旋(spira21.12.202236軟件工程開發(fā)模式4.第四代(4GT)技術(shù)第四代技術(shù)(FourthGenerationtechniques),擁有一組工具,提供開發(fā)人員在高層定義軟件的特性,并按照這些特性自動(dòng)生成原代碼。解決軟件危機(jī)的途徑18.12.202236軟件工程開發(fā)模式4.第四代(4GT)21.12.202237第一章緒論——軟件危機(jī)與軟件工程軟件工程(SoftwareEngineering)18.12.20221第一章緒論——軟件危機(jī)與軟件工程軟件21.12.202238本章主要內(nèi)容軟件開發(fā)過程軟件危機(jī)的產(chǎn)生解決軟件危機(jī)的途徑軟件工程18.12.20222本章主要內(nèi)容軟件開發(fā)過程21.12.202239計(jì)算機(jī)硬件與軟件任何計(jì)算機(jī)系統(tǒng)都包含硬件(hard)和軟件(software)兩大部分。
硬件只是提供了計(jì)算的可能性必須有支持和管理計(jì)算機(jī)的軟件,系統(tǒng)才能實(shí)現(xiàn)計(jì)算軟件開發(fā)過程18.12.20223計(jì)算機(jī)硬件與軟件任何計(jì)算機(jī)系統(tǒng)都包含硬21.12.202240軟件的三層含義個(gè)體含義:指計(jì)算機(jī)中的程序及其文檔。整體含義:指在特定計(jì)算機(jī)系統(tǒng)中所有上述個(gè)體含義下的軟件的總稱,即計(jì)算機(jī)系統(tǒng)中硬件除外的所有成分。學(xué)科含義:指在研究、開發(fā)、維護(hù)以及使用前述含義下的軟件所涉及的理論、方法、技術(shù)所構(gòu)成的學(xué)科。軟件開發(fā)過程18.12.20224軟件的三層含義個(gè)體含義:指計(jì)算機(jī)中的程21.12.202241軟件開發(fā)過程的演化
第一個(gè)時(shí)期:40—60年代,個(gè)體時(shí)期(程序時(shí)期)第二個(gè)時(shí)期:60—70年代,軟件作坊時(shí)期(程序+文檔)第三個(gè)時(shí)期:70年代以后,軟件工程時(shí)期。軟件開發(fā)過程18.12.20225軟件開發(fā)過程的演化第一個(gè)時(shí)期:40—21.12.202242軟件開發(fā)過程的演化
計(jì)算機(jī)軟件的數(shù)量以驚人的速度急劇膨脹。計(jì)算機(jī)硬件的性能/價(jià)格比,每10年提高2個(gè)數(shù)量級(jí),且質(zhì)量穩(wěn)步提高。軟件生產(chǎn)跟不上計(jì)算機(jī)應(yīng)用的要求,開發(fā)成本增加,質(zhì)量沒有保證,已成制約計(jì)算機(jī)發(fā)展的關(guān)鍵因素。軟件開發(fā)過程18.12.20226軟件開發(fā)過程的演化計(jì)算機(jī)軟件的數(shù)量以21.12.202243軟件危機(jī)軟件危機(jī)(crisis):是指在計(jì)算機(jī)軟件開發(fā)和維護(hù)過程中所遇到的一系列的嚴(yán)重問題。
軟件危機(jī)的產(chǎn)生18.12.20227軟件危機(jī)軟件危機(jī)(cris21.12.202244軟件危機(jī)的具體表現(xiàn)①
對(duì)軟件開發(fā)成本高和進(jìn)度估計(jì)不準(zhǔn)確。②
用戶對(duì)已完成的“軟件系統(tǒng)”不滿意。③
軟件產(chǎn)品的質(zhì)量不可靠。④
軟件維護(hù)困難,維護(hù)的人員與費(fèi)用不斷增加。⑤
缺乏完整、正確的文檔資料。⑥
軟件成本在計(jì)算機(jī)系統(tǒng)中所占比例逐年上升。⑦
軟件的發(fā)展跟不上硬件的發(fā)展和用戶的要求。
軟件危機(jī)的產(chǎn)生18.12.20228軟件危機(jī)的具體表現(xiàn)①
對(duì)軟件開發(fā)成本21.12.202245產(chǎn)生軟件危機(jī)的原因客觀原因:軟件需求大,規(guī)模大主觀原因:軟件本身的特點(diǎn)軟件是一種邏輯部件不是物理部件,其進(jìn)展情況和質(zhì)量難以控制。
軟件的規(guī)模非常龐大,多人共同開發(fā),必須有嚴(yán)格和科學(xué)的管理。
軟件開發(fā)過分依賴于個(gè)人的智力勞動(dòng)和經(jīng)驗(yàn)。
在對(duì)用戶需求沒有完整、準(zhǔn)確的認(rèn)識(shí),匆忙開發(fā)。
軟件危機(jī)的產(chǎn)生18.12.20229產(chǎn)生軟件危機(jī)的原因客觀原因:軟件需求大21.12.202246軟件的生命周期
軟件的生命周期(lifecycle):是指軟件產(chǎn)品或軟件系統(tǒng),從生產(chǎn)、投入使用到被淘汰的全過程。把軟件生命周期依次劃分為若干階段,每個(gè)階段有相對(duì)獨(dú)立的任務(wù),逐步完成各個(gè)階段的任務(wù)后,軟件的生命周期向前推進(jìn)。解決軟件危機(jī)的途徑18.12.202210軟件的生命周期軟件的生命周期(21.12.202247軟件的生命周期軟件計(jì)劃(planning)階段
問題定義:要解決的問題是什么?可行性研究:在時(shí)間和資源的約束條件下,能否完成指定的任務(wù)?包括:技術(shù)可行性、經(jīng)濟(jì)可行性、法律可行性、社會(huì)可行性。解決軟件危機(jī)的途徑18.12.202211軟件的生命周期軟件計(jì)劃(planni21.12.202248軟件的生命周期軟件開發(fā)(development)階段需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測(cè)試運(yùn)行解決軟件危機(jī)的途徑18.12.202212軟件的生命周期軟件開發(fā)(develo21.12.202249軟件的生命周期軟件維護(hù)(maintenance)階段在不同的階段對(duì)軟件修改而付出的代價(jià)是不同的!在后期引入一個(gè)變動(dòng)的代價(jià)比在早期引入要高的多,甚至高達(dá)2─3個(gè)數(shù)量級(jí)。解決軟件危機(jī)的途徑18.12.202213軟件的生命周期軟件維護(hù)(mainte21.12.202250軟件工程軟件工程
是一門指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科,是一類求解軟件包的工程。它應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,借鑒傳統(tǒng)工程的原則、方法,創(chuàng)建軟件以達(dá)到提高質(zhì)量、降低成本的目的。解決軟件危機(jī)的途徑18.12.202214軟件工程軟件工程解決軟件21.12.202251軟件工程
計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。解決軟件危機(jī)的途徑18.12.202215軟件工程21.12.202252軟件工程基本原理1968年在聯(lián)邦德國(guó)召開的國(guó)際會(huì)議正式提出并使用“軟件工程”的概念和術(shù)語(yǔ),眾多專家提出100多條關(guān)于軟件程的準(zhǔn)則。
1983年,B.W.Boehm歸納提出了七條基本原則。解決軟件危機(jī)的途徑18.12.202216軟件工程基本原理1968年在聯(lián)邦德21.12.202253軟件工程基本原理1.用分階段的生命周期計(jì)劃嚴(yán)格管理有人統(tǒng)計(jì),在不成功的軟件項(xiàng)目中有50%左右是由于計(jì)劃不周造成的。應(yīng)該把軟件生命周期劃分為若干階段,并制定出相應(yīng)的切實(shí)可行的計(jì)劃,嚴(yán)格按照計(jì)劃對(duì)開發(fā)和維護(hù)進(jìn)行管理。
B.W.Boehm認(rèn)為,應(yīng)制定和嚴(yán)格執(zhí)行6類計(jì)劃:項(xiàng)目概要計(jì)劃、里程碑計(jì)劃、項(xiàng)目控制計(jì)劃、產(chǎn)品控制計(jì)劃、驗(yàn)證計(jì)劃、運(yùn)行維護(hù)計(jì)劃。解決軟件危機(jī)的途徑18.12.202217軟件工程基本原理1.用分階段的生命21.12.202254軟件工程基本原理2.堅(jiān)持進(jìn)行階段評(píng)審設(shè)計(jì)的錯(cuò)誤占軟件錯(cuò)誤的63%,編碼錯(cuò)誤只占37%。而且在后期糾正錯(cuò)誤的代價(jià)非常高。因此,必須嚴(yán)格堅(jiān)持階段評(píng)審,及早發(fā)現(xiàn)和糾正錯(cuò)誤。解決軟件危機(jī)的途徑18.12.202218軟件工程基本原理2.堅(jiān)持進(jìn)行階段評(píng)21.12.202255軟件工程基本原理3.實(shí)行嚴(yán)格的產(chǎn)品質(zhì)量控制在現(xiàn)實(shí)中由于外部原因要求對(duì)需求等進(jìn)行修改是難免的。但必須有嚴(yán)格的管理制度和措施。解決軟件危機(jī)的途徑18.12.202219軟件工程基本原理3.實(shí)行嚴(yán)格的產(chǎn)品21.12.202256軟件工程基本原理4.采用現(xiàn)代程序設(shè)計(jì)技術(shù)和軟件工程技術(shù)如結(jié)構(gòu)化程序分析(StructuredAnalysis)和結(jié)構(gòu)化設(shè)計(jì)(StructuredDesign)等。5.結(jié)果應(yīng)能清楚地審查由于軟件是一種看不見摸不著的邏輯產(chǎn)品,對(duì)它的檢驗(yàn)和審查很困難。因此,應(yīng)提供可視化的檢驗(yàn)標(biāo)準(zhǔn)和方法。解決軟件危機(jī)的途徑18.12.202220軟件工程基本原理4.采用現(xiàn)代程序設(shè)21.12.202257軟件工程基本原理6.開發(fā)人員應(yīng)少而精軟件開發(fā)小組的人員應(yīng)該是素質(zhì)高,人員不宜過多。人員素質(zhì)低和人員過多,都會(huì)導(dǎo)致軟件的錯(cuò)誤率高,且開發(fā)效率下降,成本增加。
7.承認(rèn)不斷改進(jìn)軟件工程的必要性軟件工程是一門不斷迅速發(fā)展的學(xué)科,必須學(xué)習(xí)和跟蹤先進(jìn)的技術(shù)和方法,也要不斷總結(jié)經(jīng)驗(yàn)、改進(jìn)方法,要不斷進(jìn)行技術(shù)創(chuàng)新。解決軟件危機(jī)的途徑18.12.202221軟件工程基本原理6.開發(fā)人員應(yīng)少而21.12.202258解決軟件危機(jī)的傳統(tǒng)方法用生命周期把軟件劃分為若干階段,每個(gè)階段相對(duì)獨(dú)立的任務(wù),分階段逐步完成。每一階段的開始和結(jié)束都有嚴(yán)格的標(biāo)準(zhǔn),前一個(gè)階段的結(jié)果就是下一階段設(shè)計(jì)和開發(fā)的依據(jù)。每個(gè)階段的工作都有嚴(yán)格的技術(shù)和管理審查,通過之后才方可開始進(jìn)行下一階段。每個(gè)階段都要形成詳盡、規(guī)范、完整的文檔,提供下一階段以及本階段評(píng)審之用。
解決軟件危機(jī)的途徑18.12.202222解決軟件危機(jī)的傳統(tǒng)方法用生命周期把軟21.12.202259生命周期各階段的任務(wù)1.問題定義本階段需要明確回答:“要解決的問題是什么?”。系統(tǒng)分析員應(yīng)該提出問題的性質(zhì)、目標(biāo)和規(guī)模的書面報(bào)告。通過對(duì)實(shí)際用戶和使用部門的調(diào)查、研究,以及討論、交流,得出一份雙方都滿意的文檔。
解決軟件危機(jī)的途徑18.12.202223生命周期各階段的任務(wù)1.問題定義解決21.12.202260生命周期各階段的任務(wù)
2.可行性分析
本階段需要回答的是:“上一階段確定的問題有無(wú)可行的解決方案,是否值得解決?”。更進(jìn)一步明確項(xiàng)目的規(guī)模和目標(biāo),從技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性、法律可行性、社會(huì)可行性等方面進(jìn)行研究,確定是否開發(fā)本項(xiàng)目。
解決軟件危機(jī)的途徑18.12.202224生命周期各階段的任務(wù)2.可行21.12.202261生命周期各階段的任務(wù)
3.需求分析
本階段確定為解決該問題,目標(biāo)系統(tǒng)必須應(yīng)具備哪些功能。系統(tǒng)分析員在本階段必須與用戶密切配合,充分交流,得到經(jīng)用戶確認(rèn)的系統(tǒng)邏輯模型,用數(shù)據(jù)流圖、數(shù)據(jù)字典等描述系統(tǒng)的邏輯模型。需求分析階段所確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),必須準(zhǔn)確、完整的體現(xiàn)用戶的需求。解決軟件危機(jī)的途徑18.12.202225生命周期各階段的任務(wù)3.需求21.12.202262生命周期各階段的任務(wù)4.總體設(shè)計(jì)本階段確定目標(biāo)系統(tǒng)的主要功能如何完成。采用流程圖或其他工具描述出每種可能的系統(tǒng),推薦出一個(gè)最佳的方案,并制定出實(shí)現(xiàn)該系統(tǒng)的詳細(xì)計(jì)劃。本階段的另一個(gè)主要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),確定軟件應(yīng)由哪些模塊構(gòu)成,以及模塊之間的關(guān)系。還應(yīng)考慮系統(tǒng)的開發(fā)和應(yīng)用環(huán)境,如計(jì)算機(jī)系統(tǒng)的配置,計(jì)算機(jī)網(wǎng)絡(luò)等。解決軟件危機(jī)的途徑18.12.202226生命周期各階段的任務(wù)4.總體設(shè)計(jì)21.12.202263生命周期各階段的任務(wù)5.詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段的任務(wù)就是把問題的求解具體化,設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。通常用HIPO圖(層次圖/輸入/處理/輸出)或PDL語(yǔ)言(過程設(shè)計(jì)語(yǔ)言)描述詳細(xì)設(shè)計(jì)的結(jié)果。解決軟件危機(jī)的途徑18.12.202227生命周期各階段的任務(wù)5.詳細(xì)設(shè)計(jì)21.12.202264生命周期各階段的任務(wù)6.編碼和單元測(cè)試本階段的任務(wù)是編寫軟件程序。程序員應(yīng)根據(jù)目標(biāo)系統(tǒng)的要求,選取適合的程序設(shè)計(jì)語(yǔ)言,把詳細(xì)設(shè)計(jì)的結(jié)果編制成程序,并對(duì)每一個(gè)模塊進(jìn)行單元測(cè)試。需要考慮軟件平臺(tái)、開發(fā)工具等等。解決軟件危機(jī)的途徑18.12.202228生命周期各階段的任務(wù)6.編碼和單元測(cè)21.12.202265生命周期各階段的任務(wù)7.綜合測(cè)試本階段的任務(wù)是通過各種測(cè)試以及相應(yīng)的調(diào)試,使軟件達(dá)到預(yù)定的要求。應(yīng)該把測(cè)試計(jì)劃、測(cè)試方案、測(cè)試結(jié)果等以文檔的形式保存下來(lái),作為軟件配置的一個(gè)組成部分。解決軟件危機(jī)的途徑18.12.202229生命周期各階段的任務(wù)7.綜合測(cè)試解
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 權(quán)利保障+于法有據(jù)課高中政治統(tǒng)編版選擇性必修二
- 餐廳服務(wù)培訓(xùn)課件模板
- 餐廳安全保障培訓(xùn)課件
- 鞭炮安全培訓(xùn)課件
- 除甲醛設(shè)備培訓(xùn)課件
- 阿米巴經(jīng)營(yíng)者培訓(xùn)課件
- 防高溫中暑安全教育課件
- 防雷電溺水安全教育課件
- 管層目標(biāo)培訓(xùn)課件
- 竹筏漂流安全培訓(xùn)課件
- (2025年)四川省自貢市紀(jì)委監(jiān)委公開遴選公務(wù)員筆試試題及答案解析
- 2026屆江蘇省常州市高一上數(shù)學(xué)期末聯(lián)考模擬試題含解析
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)水質(zhì)監(jiān)測(cè)系統(tǒng)市場(chǎng)全面調(diào)研及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 2026安徽省農(nóng)村信用社聯(lián)合社面向社會(huì)招聘農(nóng)商銀行高級(jí)管理人員參考考試試題及答案解析
- 強(qiáng)夯地基施工質(zhì)量控制方案
- 藝考機(jī)構(gòu)協(xié)議書
- 2025年12月27日四川省公安廳遴選面試真題及解析
- 《生態(tài)環(huán)境重大事故隱患判定標(biāo)準(zhǔn)》解析
- GB/T 16927.1-2011高電壓試驗(yàn)技術(shù)第1部分:一般定義及試驗(yàn)要求
- DB32∕T 4107-2021 民用建筑節(jié)能工程熱工性能現(xiàn)場(chǎng)檢測(cè)標(biāo)準(zhǔn)
- OECD稅收協(xié)定范本中英對(duì)照文本
評(píng)論
0/150
提交評(píng)論