




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章軟件工程(ruǎnjiànɡōnɡchénɡ)根底第一頁,共六十三頁。主要(zhǔyào)內容計算機系統工程軟件工程(ruǎnjiànɡōnɡchénɡ)
軟件生存期模型軟件開發方法軟件工程環境第二頁,共六十三頁。軟件(ruǎnjiàn)與計算機的系統要素之間的關系大多數軟件系統都是為了開發滿足某種需求而建立。這些軟件必須要計算機系統的支持。不管系統的自動化程度有多高,都需要人的參與。任何系統都必須配備使用手冊及必要的表格和其他文檔。在網絡(wǎngluò)時代的應用系統中,絕大多數應用系統都離不開數據庫和網絡(wǎngluò)這樣的根底設施。如圖1.1所示。第三頁,共六十三頁。過程(guòchéng)輸出(shūchū)輸入(shūrù)文檔硬件軟件人系統數據庫、網絡圖1.1基于計算機的系統要素
第四頁,共六十三頁。1.1計算機系統工程
計算機系統工程:與構造基于計算機系統有關的過程、方法和技術。一種問題求解活動,目的是揭示與分析所期望的功能(gōngnéng),并把這些功能(gōngnéng)分配到系統的各個獨立系統元素中去。
計算機系統工程師與用戶充分合作,以確認用戶的目標與約束。第五頁,共六十三頁。1.1.1硬件(yìnɡjiàn)與硬件(yìnɡjiàn)工程
計算機系統工程師根據系統需求為硬件系統指派任務,產生硬件需求。硬件工程師根據硬件需求設計、制造或選擇硬部件或設備。硬件工程過程分為三個階段,即方案和定義階段;設計和樣機實現(shíxiàn)階段;生產、銷售和售后效勞階段。第六頁,共六十三頁。硬件功能開發計劃評審詳細需求分析評審成本進度硬件規格說明(a)方案(fāngàn)與定義階段該階段的任務是制訂開發方案,確定工程本錢預算和工程進度,并進行詳細需求分析(fēnxī),確定硬件規格說明。第七頁,共六十三頁。設計(shèjì)圖紙設計(shèjì)圖紙樣機(yànɡjī)設計分析評審建立樣機與測試評審生產分析(b)設計與樣機實現階段
該階段的任務是分析設計,畫出設計圖,必要時建造原型對樣機進行測試,最后進行制造分析,畫出生產圖。第八頁,共六十三頁。產品(chǎnpǐn)備件(bèijiàn)制造質量保證銷售評審返工維護機構(c)制造、銷售與售后效勞(xiàoláo)階段該階段的任務是按照質量保證方案和要求生產硬件產品。第九頁,共六十三頁。1.1.2軟件(ruǎnjiàn)與軟件(ruǎnjiàn)工程
計算機軟件(ruǎnjiàn):軟件(ruǎnjiàn)工程師設計和建造的產品。包括:可執行的程序+開發各階段文檔+各種數據。軟件工程是研究軟件生產和軟件管理的工程科學。內容包括:市場調研、正式立項、需求分析、工程籌劃、概要設計、詳細設計、編程、測試、試運行、產品發布、用戶培訓、產品復制、銷售、實施、系統維護和版本升級等。軟件工程模型一般包括:軟件工程的定義階段、軟件開發階段、軟件的檢驗、交付與維護階段。第十頁,共六十三頁。原型(yuánxíng)(a)定義(dìngyì)階段軟件項目計劃評審需求分析或原型評審項目計劃需求規格說明軟件功能第十一頁,共六十三頁。原型(yuánxíng)數據與結構設計評審過程設計評審程序編碼評審詳細設計規格說明概要設計規格說明源程序代碼(b)開發階段第十二頁,共六十三頁。操作(cāozuò)過程(c)檢驗(jiǎnyàn)、交付與維護階段〔運行維護階段〕單元測試組裝測試確認測試調試交付與銷售評審維護評審用戶文檔測試計劃測試過程測試結果修改的源程序代碼因缺陷可能導致返回到前面步驟修改的文檔代碼第十三頁,共六十三頁。1.1.3人機工程
關鍵是處理軟件與人的交互問題。現在“人機界面友好〞的要求,已成為基于計算機系統的一項重要技術指標。人機工程包括以下步驟:1.創立系統功能的外部模型2.確定為完成此系統功能人和計算機應分別完成的任務3.考慮界面設計中的典型問題4.借助CASE工具構造界面原型和最終(zuìzhōnɡ)實現設計模型5.從質量的角度對界面進行評估第十四頁,共六十三頁。1.1.4數據庫工程(gōngchéng)
數據庫系統是基于計算機系統的重要組成局部(júbù),它將有關的硬件、軟件、數據和數據庫管理人員結合起來,為用戶提供信息效勞。數據庫系統的開發方法主要有:結構化生命周期開發方法、原型法、面向對象的開發方法等。第十五頁,共六十三頁。數據庫工程(gōngchéng)的任務數據庫工程應完成以下任務:1.確定系統的各項指標并進行(jìnxíng)評估和方案制定2.論證、選擇和配置數據庫系統3.數據庫設計與實現概念設計〔E-R圖〕、邏輯設計、物理設計4.數據庫的管理與維護第十六頁,共六十三頁。1.1.5網絡工程
網絡工程是研究網絡系統的規劃、設計與管理的工程科學,要求工程技術人員根據既定的目標,嚴格依照行業標準,制定(zhìdìng)網絡建設的方案,協助工程招投標、設計、實施、管理與維護等活動。第十七頁,共六十三頁。網絡工程的任務(rènwu)網絡工程應該完成以下任務:1.需求分析。2.總體設計分析,確定該網絡的效勞(xiàoláo)類型,進而確定系統建設的具體目標以及系統構件拓撲結構等。3.實施,即選擇適宜的設備,按設計方案實現網絡建設。4.驗收與維護。第十八頁,共六十三頁。1.2軟件工程(ruǎnjiànɡōnɡchénɡ)
1.2.1軟件1.軟件定義(1)在運行中能提供所希望的功能和性能的指令集〔即程序〕;(2)
使程序能夠正確運行的數據結構;(3)描述(miáoshù)程序研制過程、方法所用的文檔。第十九頁,共六十三頁。2.軟件(ruǎnjiàn)的特點
軟件是一種邏輯實體,不是具體的物理實體,具有抽象性。
軟件是通過人們的智力活動,把知識與技術轉化成信息的一種產品,是在研制、開發中被創造出來的。
在軟件的運行和使用期間,沒有硬件那樣的機械磨損(mósǔn)、老化問題。
第二十頁,共六十三頁。軟件存在故障(gùzhàng)〔錯誤〕的原因軟件(ruǎnjiàn)的開發和運行經常受到計算機硬件系統的限制,軟件(ruǎnjiàn)對計算機硬件系統有著不同程度的依賴關系。軟件的開發尚未完全擺脫手工的開發方式。軟件的開發費用越來越高,本錢相當昂貴。軟件的開發是一個復雜的過程,管理是軟件開發過程中必不可少內容。第二十一頁,共六十三頁。1.2.2軟件工程(ruǎnjiànɡōnɡchénɡ)的概念
軟件開展的四個階段1950’s~1960’s中:規模較小的程序,個體化的軟件開發,只有程序清單。——程序設計階段1960’s中~1970’中:“軟件作坊〞,廣泛使用產品軟件。——程序系統階段1970’中~1980’s:微處理器的出現并廣泛應用。分布式系統、嵌入智能。——進入軟件工程階段1980’s~:網絡迅速普及,強大的桌面系統、面向對象技術、專家系統、人工智能、神經網絡、并行計算、網格計算、虛擬(xūnǐ)組織。第二十二頁,共六十三頁。軟件開展(kāizhǎn)過程中存在的問題軟件開發能力不能滿足人們的需要;社會對軟件的依賴程度加大,人們普遍關注軟件的平安和可靠性;假設干年前開發的應用軟件經過(jīngguò)幾十次修改已無人認識它的內部結構,己經不可維護;由于經濟原因,嵌入式系統存在許多怪現象,企業不愿意投入資源再生產,而采取打補丁+時髦界面的方法。第二十三頁,共六十三頁。1.軟件(ruǎnjiàn)危機
軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。典型表現:開發本錢和進度(jìndù)的估計常常很不準確;用戶對“已完成的〞軟件系統不滿意;“閉門造車〞;軟件質量不可靠;軟件常常是不可維護的;軟件本錢的比例逐年上升;軟件產品“供不應求〞;第二十四頁,共六十三頁。第二十五頁,共六十三頁。2.消除(xiāochú)軟件危機的途徑消除“軟件就是程序〞的錯誤觀念。一個軟件必須由一個完整的配置組成,事實上,軟件是程序、數據及相關文檔的完整集合。軟件開發不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協同配合(pèihé)、共同完成的工程工程。成功的軟件開發技術和方法。軟件工具和軟件工程支撐環境。第二十六頁,共六十三頁。3.軟件工程(ruǎnjiànɡōnɡchénɡ)的定義
1968年在聯邦德國召開的計算機國際會議NATO軟件危機根源解決途徑軟件工程“概括地說,軟件工程是指導計算機軟件開發和維護的一門工程學科。采用工程的概念、原理、技術和方法(fāngfǎ)來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法(fāngfǎ)結合起來,以經濟地開發出高質量的軟件并有效地維護它。〞第二十七頁,共六十三頁。4.軟件工程(ruǎnjiànɡōnɡchénɡ)的目標
軟件工程的目標是明確的,就是研制、開發與生產出具有良好軟件質量和費用合算的產品。采用工程化方法和途徑(tújìng)來開發與維護軟件。
應該開發和使用更好的軟件工具。
采取必要的管理措施。
第二十八頁,共六十三頁。5.軟件工程的根本(gēnběn)原那么用分階段的生命周期方案嚴格管理堅持進行階段評審錯誤出現的時間:在編代碼之前〔設計錯誤占63%:編碼占37%〕改正錯誤的代價:發現得越晚,開發(kāifā)代價越高實行嚴格的產品控制基線配置〔經階段評審后的軟件配置〕、變動控制〔要嚴格評審才能修改〕采用現代程序設計技術結果應能清楚地審查開發小組的人員應該少而精成認不斷改進軟件工程實踐的必要性第二十九頁,共六十三頁。6.軟件工程研究的根本(gēnběn)內容軟件工程學分為:理論與結構、方法、工具與環境、管理和標準(biāozhǔn)等。理論與結構包括:程序正確性證明理論、軟件可靠性理論、軟件本錢估算模型、軟件開發模型、模塊劃分原理等。軟件開發技術包括:軟件開發方法學、軟件工具和軟件開發環境。軟件工程管理包括:軟件開發管理和軟件經濟管理。第三十頁,共六十三頁。1.2.3軟件(ruǎnjiàn)生命周期
軟件生存周期就是從提出軟件產品開始,直到該軟件產品被淘汰的全過程。我國軟件工程(ruǎnjiànɡōnɡchénɡ)標準將軟件生命周期分成以下幾個階段:軟件定義:確定軟件開發總目標;確定工程的可行性;導出實現策略及系統功能;估計資源和本錢,并且制定工程進度表。問題定義、可行性研究、需求分析軟件開發:具體設計和實現在前一個時期定義的軟件總體設計、詳細設計、編碼和單元測試、綜合測試軟件維護:使軟件持久地滿足用戶的需要。第三十一頁,共六十三頁。軟件(ruǎnjiàn)生命周期(續1)1.問題定義“要解決的問題是什么?〞確定用戶要求解決的性質、工程的目標和規模。2.可行性研究“對于上一個階段所確定的問題有行得通的解決方法嗎?〞經濟可行性、技術可行性、法律可行性、不同的方案3.需求分析“為了解決這個問題,目標系統必須做什么〞確定系統必須具有的功能和性能,系統要求的運行(yùnxíng)環境,并且預測系統開展的前景。規格說明書(specification)第三十二頁,共六十三頁。軟件(ruǎnjiàn)生命周期(續2)4.總體設計〔概要設計〕“概括地說,應該怎樣實現目標系統?〞設計出實現目標系統的幾種可能的方案。推薦一個最正確方案。5.詳細設計“應該怎樣具體地實現這個系統呢?〞設計出程序的詳細規格說明。6.編碼和單元測試寫出正確的容易理解、容易維護的程序模塊仔細測試編寫出的每一個模塊(mókuài)。7.綜合測試集成測試和驗收測試,現場測試或平行運行8.軟件維護使系統持久地滿足用戶的需要。改正性維護,適應性維護,完善性維護,預防性維護。第三十三頁,共六十三頁。1.3軟件(ruǎnjiàn)生存期模型
軟件生存期模型反映軟件生存周期內各種工作應如何組織及,以及各個階段應如何銜接。軟件生存期模型是跨越整個軟件生存周期的系統開發、運作、維護所實施的全部工作和任務(rènwu)的結構框架。
常用的軟件生存期模型有:瀑布模型、原型模型、螺旋模型、基于四代技術模型、噴泉模型和增量模型。第三十四頁,共六十三頁。1.3.2瀑布(pùbù)模型
(Waterfallmodel)瀑布模型(móxíng)又稱生存周期模型(móxíng),由B.M.Boehm提出,是軟件工程的根底模型(móxíng)。理想的瀑布(pùbù)模型實際的瀑布模型第三十五頁,共六十三頁。瀑布模型(móxíng)的特點階段間具有順序性和依賴性各個階段如同瀑布流水,逐級下落,自上而下、相互銜接的固定次序。
推遲實現的觀點(guāndiǎn)清楚地區分邏輯設計與物理設計,盡可能推遲程序的物理實現。質量保證的觀點(文檔驅動)每個階段都必須完成規定的文檔每個階段結束前都要對所完成的文檔進行評審第三十六頁,共六十三頁。瀑布模型(móxíng)的缺點模型(móxíng)缺乏靈活性。開發過程一般不能逆轉,否那么代價太大規格說明很難理解:“我知道這是按我的要求做的,但不是我想要的樣子。〞軟件的實際情況必須到工程開發的后期客戶才能看到。〔文檔驅動的兩面性〕第三十七頁,共六十三頁。1.3.3快速(kuàisù)原型模型快速建立起來的可以在計算機上運行的程序(chéngxù),它所能完成的功能往往是最終產品能完成的功能的一個子集。用戶測試運行原型建造/修改原型聽取用戶意見第三十八頁,共六十三頁。1.快速原型模型(móxíng)的優點快速原型的本質是“快速〞,主要幫助建立正確的規格說明(shuōmíng)。原型模型給用戶以時機,更改心中原先設想的、不盡合理的最終系統。原型模型可以低風險開發柔性較大的計算機系統。原型模型使系統更易維護,生成對用戶更友好的最終系統。原型模型使總的開發費用降低,開發時間縮短。有利于開發與培訓的同步第三十九頁,共六十三頁。2.缺點(quēdiǎn)
對于開發者不熟悉的領域,可能會把次要局部當作主要(zhǔyào)框架,從而做出不切題的原型。原型迭代不收斂于開發者預先定義的目標。原型過快收斂于需求集合,而忽略了一些根本點。資源規劃和管理較為困難,隨時更新文檔也帶來麻煩。長期在原型環境上開發,只注意得到滿意的原型,容易“遺忘〞用戶環境和原型環境的差異。第四十頁,共六十三頁。3.原型模型的應用(yìngyòng)范圍對所開發的領域比較熟悉而且有快速的原型開發工具工程招投標時,可以以原型模型作為軟件的開發模型進行(jìnxíng)產品移植或升級時,或對已有產品原型進行(jìnxíng)客戶化工作時,原型模型是非常適合的原型模型不適用嵌入式軟件、實時控制軟件、數值計算軟件比較瀑布模型—試圖一次就獲得正確的產品快速原型—頻繁變化,然后廢棄第四十一頁,共六十三頁。1.3.4螺旋(luóxuán)模型
1988年,BarryBoehm正式發表了軟件系統開發的“螺旋模型〞,它將瀑布模型和快速原型模型結合起來,強調了其他模型所無視的風險分析。該模型通常用來指導大型軟件工程的開發,它將開發劃分為制訂方案、風險分析、實施開發和客戶評估四類活動。簡化版本:瀑布模型+風險分析每個階段之前確定目標,可供選擇的方法(fāngfǎ)及其限制條件風險分析每個階段之后評估方案下一階段第四十二頁,共六十三頁。簡化(jiǎnhuà)的螺旋模型完整的螺旋(luóxuán)模型第四十三頁,共六十三頁。螺旋模型的優點容易確定什么時候已經對某一階段的產品充分測試完畢維護(wéihù)和開發之間沒有什么本質上的差異螺旋模型的缺點僅適合于大型軟件風險驅動既是優點也是缺點第四十四頁,共六十三頁。1.3.5基于(jīyú)四代技術模型軟件工程的第四代技術〔4GT〕包含一系列的軟件工具。共同點:使軟件設計者在較高級別上說明軟件的某些特征;軟件工具根據說明,自動生成源代碼。支持第四代技術模型的軟件開發環境和工具要求較高,例如數據庫查詢的非過程語言(yǔyán)、報告生成器、數據操縱、屏幕交互及定義、以及代碼生成;高級圖形功能;電子表格功能。第四十五頁,共六十三頁。優點:極大地降低了軟件的開發時間,并顯著提高了構造軟件的生產率。缺點:目前4GT并不比程序設計語言更容易使用,而且這類工具生成(shēnɡchénɡ)的結果源代碼是“低效的〞,使用4GT開發的大型軟件系統的可維護性令人疑心的。第四十六頁,共六十三頁。1.3.6噴泉(pēnquán)模型
在面向對象方法中,提出了與瀑布模型相對應的噴泉模型,該模型的主要特點是認為軟件生命周期的各個階段(jiēduàn)是相互重疊和屢次反復的。噴泉模型主要支持面向對象的開發方法。系統某個局部常常重復工作屢次,相關功能在每次迭代中隨之參加演進的系統。在開發活動,即分析、設計和編碼之間不存在明顯的邊界。第四十七頁,共六十三頁。圖1.9噴泉(pēnquán)模型
第四十八頁,共六十三頁。1.3.7增量(zēnɡliànɡ)模型
也稱:漸增模型把軟件產品作為一系列增量(zēnɡliànɡ)構件來設計、編碼、集成和測試。第四十九頁,共六十三頁。瀑布模型和快速原型模型的目標交付給客戶一個完整的、可用的產品增量模型的優點每個階段交付一個可用的產品減少一個全新產品給客戶帶來的心理上的影響分階段地交付產品不需要大的資金支出需求經常變化,增量模型的靈活性使其具有更加優越的適用性增量模型的困難需要一個開放的結構,方便構件的參加增量模型本身就是一個矛盾(máodùn)的名詞第五十頁,共六十三頁。1.4軟件開發方法(fāngfǎ)
結構化方法(fāngfǎ)面向數據結構方法面向對象方法原型法第五十一頁,共六十三頁。1.4.1結構化方法(fāngfǎ)結構是指系統內各組成要素之間的相互聯系、相互作用的框架(kuànɡjià)。結構化方法:強調結構的合理性,以及所開發軟件的結構合理性,由此提出了一組提高軟件結構合理性的準那么,如分解和抽象、模塊的獨立性、信息隱蔽等。針對不同的開發活動,有結構化分析、結構化設計、結構化編程和結構化測試等。第五十二頁,共六十三頁。結構化分析方法(fāngfǎ)結構化分析方法給出一組幫助系統分析人員產生功能規約的原理和技術。利用圖形表示用戶需求,以數據流圖和控制流圖為根底,伴以數據詞典(cídiǎn),并配上結構化語言、判定表和判定樹等等描述手段,從而到達為解決問題而建立模型。第五十三頁,共六十三頁。結構化分析的步驟(bùzhòu)結構化分析的步驟如下:〔1〕進行系統分析,做出反映當前物理模型的數據流圖;〔2〕推導出等價的邏輯模型的數據流圖;〔3〕設計新的邏輯系統,生成數據詞典描述;〔4〕建立(jiànlì)人機接口界面,提出可供選擇的目標系統的物理模型數據流圖;〔5〕確定各種方案的本錢和風險等級,據此對各種方案進行分析;〔6〕選擇一種方案;〔7〕建立完整的需求規約。第五十四頁,共六十三頁。結構化設計(shèjì)結構化設計通常與結構化分析銜接起來使用,以數據流圖為根底,得到(dédào)軟件模塊結構。結構化設計的步驟如下:〔1〕評審和細化數據流圖;〔2〕確定數據流圖的類型;〔3〕把數據流圖映射到軟件模塊結構,設計出模塊結構的上層;〔4〕基于數據流圖逐步分解高層模塊,設計中下層模塊;〔5〕對軟件模塊結構進行優化,得到更為合理的軟件結構;〔6〕描述模塊接口。第五十五頁,共六十三頁。1.4.2面向數據結構(shùjùjiéɡòu)方法面向數據結構方法是結構化方法的變形,它著重數據結構而不是數據流。結構化方法:以分析信息流為主,用數據流圖來表示(biǎoshì)信息流;面向數據結構方法:從分析數據結構入手,即分析信息結構,并用數據結構圖來表示,再在此根底上進行需求分析,導出軟件的結構。第五十六頁,共六十三頁。面向數據結構方法:Warmer法、Jackson法以及DSSD〔數據結構系統開發〕方法等。面向數據結構的開發方法包括:分析和設計活動。Jackson方法實例:把系統開發分為(fēnwéi)描述和實現兩個階段。描述階段建立一個與系統相關的客觀世界的模型,并在此根底上確定系統功能。實現階段在具體的計算機軟硬件環境下,實現系統功能。第五十七頁,共六十三頁。1.4.3面向對象方法(fāngfǎ)起源:面向對象編程語言OOP〔面向對象編程〕---〉OOD〔面向對象設計〕+OOA〔面向對象分析〕----〉OMT(對象建模技術〕和UML〔統一建模語言:面向對象的軟件開發方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業人力資源管理師之四級人力資源管理師能力提升試卷B卷附答案
- 2025年公務員(國考)之公務員面試通關考試題庫帶答案解析
- 2019-2025年消防設施操作員之消防設備高級技能全真模擬考試試卷A卷含答案
- 2025版權許可協議的合同范本示例
- 農產品棉花供貨合同樣本
- 高三政治常識知識圖解及疑難解析(二)
- 小班主題活動周的實施方案計劃
- 體育館龍骨施工方案
- 跨界合作下的品牌效應分析計劃
- 舊窗保潔施工方案
- 2025年春季四年級下冊語文第15課《白鵝》課件(統編版)
- 2024北京市大興初二(下)期中數學試卷及答案
- JGT266-2011 泡沫混凝土標準規范
- 中建盤扣式落地卸料平臺施工方案
- 中央八項規定實施細則解讀課件
- 宿舍教室報修維修登記表
- 土壤酸性磷酸酶活性測定方法
- 核電廠運行規程3
- 現澆箱梁支架施工方案(共87頁結構圖多附現場照片)
- 自學考試——軍人心理咨詢與治療
- 二正丁胺MSDS危險化學品安全技術說明書
評論
0/150
提交評論