軟件工程知識(shí)_第1頁
軟件工程知識(shí)_第2頁
軟件工程知識(shí)_第3頁
軟件工程知識(shí)_第4頁
軟件工程知識(shí)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程知識(shí)點(diǎn)第一章軟件工程學(xué)概述1、軟件工程是一門新興的邊緣學(xué)科,涉及的學(xué)科多,研究的范圍廣,研究的主要內(nèi)容有以下幾方面:軟件開發(fā)方法、技術(shù)軟件管理技術(shù)2、軟件危機(jī)(軟件蕭條、軟件困擾):是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。實(shí)際上,幾乎所有軟件都不同程度地存在這些問題。軟件危機(jī)包含下述兩方面的問題:如何開發(fā)軟件,滿足對軟件日益增長的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。3、軟件危機(jī)的典型表現(xiàn):(1)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;(2)用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;(3)軟件產(chǎn)品的質(zhì)量往往靠不?。唬?)軟件常常是不可維護(hù)的;(5)軟件通常沒有適當(dāng)?shù)奈臋n資料;(6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;(7)軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢。4、產(chǎn)生軟件危機(jī)的原因(1).與軟件本身的特點(diǎn)有關(guān)軟件不同于硬件,它是計(jì)算機(jī)系統(tǒng)的邏輯部件而不是物理部件。軟件不同于一般程序,它的一個(gè)顯著特點(diǎn)是軟件規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上升。(2).與軟件開發(fā)與維護(hù)的方法不正確有關(guān)忽視軟件需求分析的重要性。對用戶要求沒有完整準(zhǔn)確的認(rèn)識(shí)就匆忙著手編寫程序。在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的5、軟件(Software)是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,包括程序(Program)、數(shù)據(jù)(Data)及其相關(guān)文檔(Document)的完整集合。Software=Program+Data+Document程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料。6、消除軟件危機(jī)的途徑(1)對計(jì)算機(jī)軟件有正確的認(rèn)識(shí)(2)認(rèn)識(shí)到軟件開發(fā)是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。(3)推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并繼續(xù)研究探索。(4)開發(fā)和使用更好的軟件工具??傊?,為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。*7、軟件工程的本質(zhì)特性:軟件工程是關(guān)注于大型程序的構(gòu)造;2)軟件工程的中心課題是程序控制的復(fù)雜性;3)軟件常隨時(shí)態(tài)的發(fā)展而變化;4)提高軟件的開發(fā)效率非常重要;5)協(xié)同合作是軟件開發(fā)的關(guān)鍵;6)軟件必須有效地支持它的相關(guān)用戶;7)軟件開發(fā)過程可理解為具有一種文化背景的人替代具有另一種文化背景的人創(chuàng)造產(chǎn)品8、軟件工程的七條基本原理是軟件開發(fā)過程所應(yīng)遵循的最基本的原則,不能互相取代。1)用分階段的生命周期計(jì)劃嚴(yán)格管理;2)堅(jiān)持進(jìn)行階段評審制度;3)實(shí)行嚴(yán)格的產(chǎn)品控制;4)采用現(xiàn)代程序設(shè)計(jì)技術(shù);5)結(jié)果應(yīng)能清楚地審查;6)開發(fā)小組的人員應(yīng)該少而精;7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。9、軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。管理就是通過計(jì)劃、組織和控制等一系列活動(dòng),合理配置和使用各種資源,以達(dá)到既定目標(biāo)的過程。通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(Methodology),也稱為范型(Paradigm)。10、軟件工程方法學(xué)的3要素:方法、工具和過程。11、面向?qū)ο蟮姆椒?對象(屬性與服務(wù)的封裝)+分類+繼承+通過消息的通訊12、面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn):(1)面向?qū)ο蠓椒▽W(xué)模擬了人類習(xí)慣的思維方式,使軟件的開發(fā)方法與過程盡可能接近人類認(rèn)識(shí)世界、解決問題的方法與過程。(2)面向?qū)ο蠓椒▽W(xué)開發(fā)軟件的過程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過程,保證了在各項(xiàng)開發(fā)活動(dòng)之間的平滑過渡。(3)促進(jìn)了軟件重用和復(fù)用技術(shù)。13、軟件生命周期:指軟件從提出到最終被淘汰的整個(gè)存在期,包括三個(gè)時(shí)期、八個(gè)階段。*14、軟件生命周期每個(gè)階段的基本任務(wù)(1)問題定義任務(wù):問題是什么?通過對客戶的訪問調(diào)查,系統(tǒng)分析員扼要地寫出關(guān)于問題性質(zhì)、工程目標(biāo)和工程規(guī)模的書面報(bào)告。經(jīng)過討論和必要的修改之后這份報(bào)告應(yīng)該得到客戶的確認(rèn)。結(jié)果:關(guān)于系統(tǒng)規(guī)模和目標(biāo)的報(bào)告書。(2)可行性研究任務(wù):有可行的解嗎?系統(tǒng)分析員需要進(jìn)行一次大大壓縮和簡化了的系統(tǒng)分析和設(shè)計(jì)過程。研究問題的范圍,探索這個(gè)問題是否值得去解,是否有可行的解決辦法。結(jié)果:系統(tǒng)的高層邏輯模型(數(shù)據(jù)流圖、成本效益分析)??尚行哉撟C報(bào)告(立即進(jìn)行/推遲進(jìn)行/不能或不值得進(jìn)行)。(3)需求分析任務(wù):必須做什么?主要確定目標(biāo)系統(tǒng)必須具備哪些功能。系統(tǒng)分析員必須和用戶密切配合,充分交流信息,以得出經(jīng)過用戶確認(rèn)的系統(tǒng)邏輯模型。結(jié)果:系統(tǒng)的邏輯模型(數(shù)據(jù)流圖、數(shù)據(jù)字典、簡要的算法描述)。用規(guī)格說明書準(zhǔn)確地記錄對目標(biāo)系統(tǒng)的需求。(4)總體設(shè)計(jì)任務(wù):如何解決已提出的問題?設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案(低、中、高成本)。用適當(dāng)?shù)谋磉_(dá)工具描述每種方案,分析優(yōu)缺點(diǎn),推薦一個(gè)最佳方案,制定出實(shí)現(xiàn)最佳方案的詳細(xì)計(jì)劃。設(shè)計(jì)程序的體系結(jié)構(gòu)。結(jié)果:可能的解法(系統(tǒng)流程圖、成本效益分析)。推薦的系統(tǒng)體系結(jié)構(gòu)(層次圖或結(jié)構(gòu)圖)。(5)詳細(xì)設(shè)計(jì)任務(wù):怎樣具體實(shí)現(xiàn)該系統(tǒng)?詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。結(jié)果:每個(gè)模塊的算法和數(shù)據(jù)結(jié)構(gòu)(程序流程圖、PAD圖、N-S圖等)。(6)編碼和單元測試任務(wù):得到正確的程序模塊選取一種適當(dāng)?shù)母呒壋绦蛟O(shè)計(jì)語言(必要時(shí)用匯編語言),把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定的語言書寫的程序;并且仔細(xì)測試編寫出的每一個(gè)模塊。結(jié)果:代碼和測試報(bào)告。(7)綜合測試任務(wù):得到符合要求的軟件通過集成測試、驗(yàn)收測試、現(xiàn)場測試、平行運(yùn)行等方法對目標(biāo)系統(tǒng)進(jìn)一步測試檢驗(yàn)。通過對軟件測試結(jié)果的分析可以預(yù)測軟件的可靠性;反之,根據(jù)對軟件可靠性的要求,也可以決定測試和調(diào)試過程什么時(shí)候可以結(jié)束。結(jié)果:測試計(jì)劃、詳細(xì)測試方案以及實(shí)際測試結(jié)果。完整一致的軟件配置。(8)軟件維護(hù)任務(wù):使系統(tǒng)持久地滿足用戶的需要改正性維護(hù):診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù):修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù):根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件;預(yù)防性維護(hù):修改軟件為將來的維護(hù)活動(dòng)做準(zhǔn)備。每一項(xiàng)維護(hù)活動(dòng)實(shí)質(zhì)上是經(jīng)歷了一次壓縮和簡化了的軟件定義和開發(fā)的全過程。結(jié)果:完整準(zhǔn)確的維護(hù)記錄。(9)15、瀑布模型(WaterfallModel)瀑布模型的特點(diǎn):階段間具有順序性和依賴性;推遲實(shí)現(xiàn)的觀點(diǎn);質(zhì)量保證的觀點(diǎn)。瀑布模型的優(yōu)點(diǎn):可強(qiáng)迫開發(fā)人員采用規(guī)范的方法;嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證。瀑布模型的缺點(diǎn):瀑布模型是由“文檔驅(qū)動(dòng)的”這個(gè)事實(shí)也是它的一個(gè)主要缺點(diǎn)。實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行;用戶常常難以清楚地給出所有需求;用戶必須有耐心,等到系統(tǒng)開發(fā)完成。*16、快速原型模型快速原型模型的特點(diǎn):快速原型模型不帶反饋環(huán),軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的??焖僭偷谋举|(zhì)是“快速”。應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約成本。*17、增量模型(IncrementalModel):增量模型的優(yōu)點(diǎn):人員分配靈活,剛開始不需投入大量人力資源。當(dāng)配備的人員不能在設(shè)定的期限內(nèi)完成產(chǎn)品時(shí),它提供了一種先推出核心產(chǎn)品的途徑。逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。增量模型的難點(diǎn):軟件體系結(jié)構(gòu)必須是開放的。模型本身是自相矛盾的。整體——獨(dú)立構(gòu)件。不同的構(gòu)件并行進(jìn)行有可能加快工程進(jìn)度,但是要冒無法集成到一起的風(fēng)險(xiǎn)。18、螺旋模型螺旋模型的優(yōu)點(diǎn):主要優(yōu)勢在于它是風(fēng)險(xiǎn)驅(qū)動(dòng)的;對可選方案和約束條件的強(qiáng)調(diào)有利于對已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo);減少了過多測試或測試不足所帶來的風(fēng)險(xiǎn);維護(hù)只是模型的另一個(gè)周期,維護(hù)和開發(fā)之間沒有本質(zhì)區(qū)別。螺旋模型的缺點(diǎn):采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評估經(jīng)驗(yàn)和專門知識(shí),在風(fēng)險(xiǎn)較大的項(xiàng)目開發(fā)中,如果未能夠及時(shí)標(biāo)識(shí)風(fēng)險(xiǎn),勢必造成重大損失。過多的迭代次數(shù)會(huì)增加開發(fā)成本,延遲提交時(shí)間。螺旋模型適用于:特別適用于龐大、復(fù)雜并具有高風(fēng)險(xiǎn)的系統(tǒng)。適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目。19、噴泉模型噴泉模型的優(yōu)點(diǎn):該模型的各個(gè)階段沒有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā)。多次反復(fù)地增加或明確目標(biāo)系統(tǒng),而不是本質(zhì)性的改動(dòng),降低了錯(cuò)誤的可能性。噴泉模型的缺點(diǎn):由于噴泉模型在各個(gè)開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,不利于項(xiàng)目的管理。要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對可能隨時(shí)加入各種信息、需求與資料的情況。噴泉模型適用于:適用于面向?qū)ο蟮能浖_發(fā)過程。20、基于構(gòu)件的開發(fā)模型:支持軟件復(fù)用。利用預(yù)先包裝好的軟件構(gòu)件來構(gòu)造應(yīng)用系統(tǒng)。21、UML的用例圖22、RUP軟件開發(fā)生命周期(二維):23、極限編程(eXtremeProgramming,XP):敏捷過程中最富盛名的一個(gè);廣泛適用于需求模糊且經(jīng)常改變的場合;使得敏捷過程能夠較好地適應(yīng)商業(yè)競爭環(huán)境下對小型項(xiàng)目提出的有限資源和有限開發(fā)時(shí)間的約束24

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論