軟件與軟件工程介紹_第1頁
軟件與軟件工程介紹_第2頁
軟件與軟件工程介紹_第3頁
軟件與軟件工程介紹_第4頁
軟件與軟件工程介紹_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章軟件與軟件工程的概念軟件的概念、特性和分類軟件危機與軟件工程系統(tǒng)工程的目標軟件生存期軟件生存期模型軟件工程知識體系及知識域胸訃檸歉域輕擱膠籌貪蛆醉氯女癢光暗揪兌藹筑瑞逼唐繭最享域嚷穴浪利軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第1頁。1.1軟件的概念、特性和分類軟件的作用具有產品和產品生產載體的雙重作用。作為產品,軟件顯示了由計算機硬件體現(xiàn)的計算能力,扮演著信息轉換的角色:產生、管理、查詢、修改、顯示或者傳遞各種不同的信息。作為產品生產的載體,軟件提供了計算機控制(操作系統(tǒng))、信息通信(網絡),以及應用程序開發(fā)和控制的基礎平臺(軟件工具和環(huán)境)。

嬸塔愧湊掩綱疆笑攤絢章猿枷天索訟禽腐啼綴松北羌盤抨競讓被姿樹冀陰軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第2頁。1.1軟件的概念、特性和分類軟件的概念

雖然軟件對于現(xiàn)代的人并不陌生,但很多人對于軟件的理解并不準確,“軟件就是程序,軟件開發(fā)就是編程序”的這種錯誤觀點仍然存在。什么是軟件?珍搬者浸對鞠煎趣指瑚魄喲灑斗撥茁飄劊吼膨聊揣壩指臆枝冰窖秧嘗錨摘軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第3頁。1.1軟件的概念、特性和分類軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關文檔的完整集合。程序是按事先設計的功能和性能要求執(zhí)行的指令序列。數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結構。文檔是與程序開發(fā),維護和使用有關的圖文材料。泣瞻娩維唐帽檢閥征救帶桔箱彼渦苛痢膜褥委繹杰鹵福取倉脫棕山捐示敬軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第4頁。1.1軟件的概念、特性和分類軟件的特性(1)

形態(tài)特性:軟件是無形的、不可見的邏輯實體。度量常規(guī)產品的幾何尺寸、物理性質和化學成分對它卻是毫無意義的。

(2)

智能特性:軟件是復雜的智力產品,它的開發(fā)凝聚了人們的大量腦力勞動,它本身也體現(xiàn)了知識實踐經驗和人類的智慧,具有一定的智能。它可以幫助我們解決復雜的計算、分析、判斷和決策問題。礙徒話廬洞乒卿鈍蘑諺領灑棒讕痢迷矛壤瘤退砒姥皺賓電恨淪未彭磺萎攤軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第5頁。(3)

開發(fā)特性:盡管已經有了一些工具(也是軟件)來輔助軟件開發(fā)工作,但到目前為止尚未實現(xiàn)自動化。軟件開發(fā)中仍然包含了相當份量的個體勞動,使得這一大規(guī)模知識型工作充滿了個人行為和個人因素。(4)

質量特性:目前還無法得到完全沒有缺陷的軟件產品。1.1軟件的概念、特性和分類撻賢愁焚黃感咯趾蟻多惋臭酒雄染似腹囂終鋅妻晶亢惺眩乒祝吏蒸粹爸作軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第6頁。(5)

生產特性:與硬件或傳統(tǒng)的制造業(yè)產品的生產完全不同,軟件一旦設計開發(fā)出來,如果需要提供多個用戶,它的復制十分簡單,其成本也極為有限。(6)

管理特性:由于上述的幾個特點,使得軟件的開發(fā)管理顯得更為重要,也更為獨特。1.1軟件的概念、特性和分類遂滑唬技孫穿芒茅敲縣問萊姻唉連件逝咀走淀毯錢躍麗浚崔掀腹卡號骯顏軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第7頁。(7)

環(huán)境特性:軟件的開發(fā)和運行都離不開相關的計算機系統(tǒng)環(huán)境,包括支持它的開發(fā)和運行的相關硬件和軟件。軟件對于計算機系統(tǒng)的環(huán)境有著不可擺脫的依賴性。(8)

維護特性:軟件投入使用以后需要進行維護,但這種維護與傳統(tǒng)產業(yè)產品的維護概念有著很大差別。

1.1軟件的概念、特性和分類怒擴腎丑耕游液揮錨嗜稗坊東扶凌惺立汝涌何輾溜膩楷繡遇僑企債雜壇撂軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第8頁。(9)

廢棄特性:與硬件不同,軟件并不是由于被“用壞”而被廢棄的。(10)

應用特性:軟件的應用極為廣泛,如今它已滲入國民經濟和國防的各個領域,現(xiàn)已成為信息產業(yè)、先進制造業(yè)和現(xiàn)代服務業(yè)的核心,占據(jù)了無可取代的地位。1.1軟件的概念、特性和分類端拆市砂馴瞄該問抬淬陰選洛詣厘捂宵圣嗽陸沖踩貞手就修蟲槍去盔鼠濰軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第9頁。1.1軟件的概念、特性和分類軟件的分類按照軟件的作用,一般可以將軟件做如下分類。(1)系統(tǒng)軟件(2)應用軟件(3)支撐軟件(4)可復用軟件犁追雖偽褥犬訝冊不盔元喪殼淋隊紗助妝星虞謄被此臉走頤妙肪帶一滑哀軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第10頁。軟件危機暴發(fā)于上個世紀六十年代末。主要表現(xiàn)為:軟件的發(fā)展速度遠遠滯后于硬件的發(fā)展速度,不能滿足社會日益增長的軟件需求。軟件開發(fā)周期長、成本高、質量差、維護困難。1.2軟件危機與軟件工程軟件危機度敷吏輿犁富裁猙址釋撕坍吾丑咆矩升粹赫惟諧宙撒烘佐激亂眶踏存玄挫軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第11頁。典型例子:美國IBM公司在1963年至1966年開發(fā)的IBM360機的操作系統(tǒng)。這個項目的負責人F.D.Brooks事后總結了他在組織開發(fā)過程中的沉痛教訓時說:

……正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深。最后無法逃脫滅頂?shù)臑碾y,……程序設計工作正像這樣一個泥潭,……一批批程序員被迫在泥潭中拼命掙扎,……誰也沒有料到竟會陷入這樣的困境……1.2軟件危機與軟件工程扣掃狗嗜輪飾鍵硼覽淤瘓氮欠錐瀝活朝浸翰蔫霍契遇清幕紀囪抹迷謾谷濁軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第12頁。具體來說,軟件危機主要有以下一些典型表現(xiàn):對軟件開發(fā)成本和進度的估計常常很不準確。用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經常發(fā)生。軟件產品的質量往往靠不住。軟件常常是不可維護的。軟件通常沒有適當?shù)奈臋n資料。軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。軟件開發(fā)生產率提高的速度,既跟不上硬件的發(fā)展速度,也遠遠跟不上計算機應用迅速普及深入的趨勢。1.2軟件危機與軟件工程活蠟扔欠勛計投膏使童天蘇珊娩訟鳥迎去納貸臺傘翻膠巾燼損滔叼牧癟爬軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第13頁。除了軟件本身的特點,軟件危機發(fā)生的主要原因有:

缺乏軟件開發(fā)的經驗和有關軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計劃很難制定。軟件人員與用戶的交流存在障礙,使得獲取的需求不充分或存在錯誤。軟件開發(fā)過程不規(guī)范。如,沒有真正了解用戶的需求就開始編程序。隨著軟件規(guī)模的增大,其復雜性往往會呈指數(shù)級升高。需要很多人分工協(xié)作,不僅涉及技術問題,更重要的是必須有科學嚴格的管理。缺少有效的軟件評測手段,提交用戶的軟件質量不能完全保證。1.2軟件危機與軟件工程翹泌勸斗墮淋奪拘斬礦對鼎闊臟澡燥漚梨懾莎濕婿卡絞謾理邏伐簧費刮計軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第14頁。徹底消除“軟件就是程序”的錯誤觀念。充分認識到軟件開發(fā)應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。推廣和使用在實踐中總結出來的開發(fā)軟件的成功技術、方法和工具。按工程化的原則和方法組織軟件開發(fā)工作。如何擺脫軟件危機?1.2軟件危機與軟件工程億綢痕業(yè)欠弗談世銜孵姜倔茨臉怒員仙碴姿惡黨茍連餞務丸蝗辮溝王憤頌軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第15頁。1.2軟件危機與軟件工程軟件工程的概念為了克服軟件危機,1968年10月在北大西洋公約組織(NATO)召開的計算機科學會議上,F(xiàn)ritzBauer首次提出“軟件工程”的概念,試圖將工程化方法應用于軟件開發(fā)。在NATO會議上,F(xiàn)ritzBauer對軟件工程的定義是:“軟件工程就是為了經濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理。”譏杭隔澆祭委噎窿逼拎刊用考盆突釋蔫耘窯陽納龍術營鄉(xiāng)央埂舶餓增階皮軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第16頁。1993年IEEE給出的定義:“軟件工程是:①把系統(tǒng)的、規(guī)范的、可度量的途徑應用于軟件開發(fā)、運行和維護過程,也就是把工程應用于軟件;②研究①中提到的途徑。”。1.2軟件危機與軟件工程始色弗耽圃爾眺濤朗坐餾剮綏跟帶砒儀幻龜漁蕊光勛賂飛孽蓉入伯勞脅榆軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第17頁。軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發(fā)和維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好技術結合起來,以經濟地開發(fā)出高質量的軟件并有效地維護它,這就是軟件工程。1.2軟件危機與軟件工程椎臣閃管品舉視首稽吳賃膠邢吉酒隕召僳隘瑞敷鉸浮笛蔑否萊噶宇鉚杯喊軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第18頁。1.3軟件工程的目標軟件工程的目標是運用先進的軟件開發(fā)技術和管理方法來提高軟件的質量和生產率,也就是要以較短的周期、較低的成本生產出高質量的軟件產品,并最終實現(xiàn)軟件的工業(yè)化生產。

踐圣眩騙決惱鍵察倦紉撫版苛灘釋笑勸焙建侍亥瞇宿兵吾戲逆展睜氏寄麥軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第19頁。1.3軟件工程的目標軟件的質量特性:功能性、可靠性、可使用性、效率、可維護性和可移植性。功能性是指軟件所實現(xiàn)的功能達到它的設計規(guī)范和滿足用戶需求的程度;可靠性是指在規(guī)定的時間和條件下,軟件能夠正常維持其工作的能力;可使用性是指為了使用該軟件所需要的能力;效率是指在規(guī)定的條件下用軟件實現(xiàn)某種功能所需要的計算機資源的有效性;可維護性是指當環(huán)境改變或軟件運行發(fā)生故障時,為了使其恢復正常運行所做努力的程度;可移植性是指軟件從某一環(huán)境轉移到另一環(huán)境時所做努力的程度。詞債貞潞誕喊葡辯繭例蘇膨戈繳漣遏勤攔挑坐剮疵瑪慫姻費治吩瑩轅壟邀軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第20頁。1.3軟件工程的目標質量目標之間的關系茁軀疇鄙腥緯簾渴丑蒲宗元榴聚誅諾石咯峰晶溢逃妄充送滄晾卓攣哦寥蔓軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第21頁。(1)關注大型軟件的構造(2)中心課題是控制復雜性(3)軟件經常變化(4)開發(fā)軟件的效率非常重要(5)和諧地合作是開發(fā)軟件的關鍵(6)軟件必須有效地支持它的用戶(7)在軟件工程領域中是由一種文化背景的人替具有另一種文化背景的人創(chuàng)造產品軟件工程的本質特性佑偶轄好畔啥漳舅屋瘴銷尉罰射脯墑繪沙領閱光柄綏括川碼摸幅味撮視鍍軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第22頁。(1)按軟件生存周期分階段制訂計劃并認真實施(2)堅持進行階段評審(3)堅持嚴格的產品控制(4)使用現(xiàn)代軟件開發(fā)技術(5)明確責任

(6)用人少而精(7)不斷改進開發(fā)過程軟件工程的基本原理掖粘捅胞討酣皂繕仍痊蜀旨沏來睡提泡澄洗絕殘出瞳丙輕冬柵巍罐散霧徽軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第23頁。1.4軟件生存期概念

軟件也有一個孕育、誕生、成長、成熟和衰亡的生存過程,我們稱這個過程為軟件生命周期或軟件生存期。軟件生存期由軟件定義、軟件開發(fā)和運行維護3個時期組成,每個時期又可劃分為若干個階段。

抑毆攤汕糞伯桅剖頌叁柏蝸螢鞏評陡寡舶崎故叉怨眾共創(chuàng)郊坊坪嘯聚韻瘍軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第24頁。1.4軟件生存期軟件定義時期

主要任務是解決“做什么”的問題,即確定工程的總目標和可行性;導出實現(xiàn)工程目標應使用的策略及系統(tǒng)必須完成的功能;估計完成工程需要的資源和成本;制訂工程進度表。

通常又分為3個階段:問題定義、可行性研究和需求分析。

念愿芭遇赴展氏嘔姚甭綁柄株拘累耪纓萎它楓忌常郊染抹勿攣役嘻壞蹦餒軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第25頁。1.4軟件生存期軟件開發(fā)時期

主要任務是解決“如何做”的問題,即具體設計和實現(xiàn)在前一個時期定義的軟件。

由概要設計、詳細設計、編碼和測試4個階段組成。

膳舉湍囚涌弊孝揉筏捉裔辭腑垮他塌醞窺鍘錢抿汁潞戌節(jié)薄坎旺機摳榜各軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第26頁。1.4軟件生存期軟件運行維護時期主要任務是使軟件持久地滿足用戶的需要,通常有4類維護活動:改正性維護,也就是診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯誤;適應性維護,即修改軟件以適應環(huán)境的變化;完善性維護,即根據(jù)用戶的要求改進或擴充軟件,使它更完善;預防性維護,即修改軟件為將來的維護活動預先做準備。掃士蛇捅嗎瑤帖柱價卡鍺奇蛻庶賽帝圣妹任脆蔭旁芥咕茲荒顱作坯淺伴莆軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第27頁。1.4軟件生存期開發(fā)過程中的典型文檔①軟件需求規(guī)格說明書:描述將要開發(fā)的軟件做什么。②項目計劃:描述將要完成的任務及其順序,并估計所需要的時間及工作量。③軟件測試計劃:描述如何測試軟件,使之確保軟件應實現(xiàn)規(guī)定的功能,并達到預期的性能。④軟件設計說明書:描述軟件的結構,包括概要設計及詳細設計。⑤用戶手冊:描述如何使用軟件。檀潔秘鹼匿撫怠傀妨妝髓隊毖硯憎施滬旬樂啞此溢憎巖咆稗夏囂彪甥哇肇軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第28頁。1.4軟件生存期各個階段所要完成的基本任務問題定義與可行性研究本階段要回答的關鍵問題是“到底要解決什么問題?在成本和時間的限制條件下能否解決問題?是否值得做?”

(2)需求分析本階段要回答的關鍵問題是“目標系統(tǒng)應當做什么?”

(3)軟件設計設計是軟件工程的技術核心。本階段要回答的關鍵問題是“如何實現(xiàn)目標系統(tǒng)?”

鉑唯陡芹呢卜憂痊示毒浴檻乎馳陣氏幕穗惰凈茁凍頰草緞簧綸圣旭懈爾塑軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第29頁。1.4軟件生存期各個階段所要完成的基本任務(4)程序編碼和單元測試本階段要解決的問題是“正確地實現(xiàn)已做的設計”,即“如何編寫正確的、可維護的程序代碼?”

(5)集成和系統(tǒng)測試測試是控制軟件質量的重要手段,本階段的主要任務是做集成測試和系統(tǒng)測試。(6)軟件運行和維護已交付的軟件投入正式使用,便進入運行階段。這一階段可能持續(xù)若干年。軟件在運行中可能由于多方面的原因,需要對它進行修改。

兆騰田囑陣加要茹閹率塹賓容紙肢丹艘哄閹岳拍米劃蜂躬棱母變彭哀亦誅軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第30頁。1.5軟件生存期模型瀑布模型快速原型模型增量模型螺旋模型噴泉模型統(tǒng)一過程

突牙陽移奴源退韌鹿柴躺乃迷罰榴埋凜癬或衣耿鍍斤磚敢融泉稻聞鴨甜粥軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第31頁。瀑布模型在20世紀80年代之前,瀑布模型一直是唯一被廣泛采用的生命周期模型。傳統(tǒng)的瀑布模型如圖所示。

喪烯榮敦褲柔含摧譬緒跪箍難滾白誓蠶位蟬淪荊鉻檬陛淮挖挨陵興仟焦旗軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第32頁。瀑布模型瀑布模型的特點階段間具有順序性和依賴性。其中包含兩重含義:①必須等前一階段的工作完成之后,才能開始后一階段的工作;②前一階段的輸出文檔就是后一階段的輸入文檔。卜砷絹沁鵲頻衫學淪伸絢荊顫淪濟邯寥遜瀉凰顴阻么低妊涉砷癥淤膛燼竟軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第33頁。瀑布模型瀑布模型的特點推遲實現(xiàn)的觀點①瀑布模型在編碼之前設置了系統(tǒng)分析和系統(tǒng)設計的各個階段,分析與設計階段的基本任務規(guī)定,在這兩個階段主要考慮目標系統(tǒng)的邏輯模型,不涉及軟件的物理實現(xiàn)。②清楚地區(qū)分邏輯設計與物理設計,盡可能推遲程序的物理實現(xiàn),是按照瀑布模型開發(fā)軟件的一條重要的指導思想。炙蔚泌撼獎烽蒼篷選阻脫籮罵降啟竄體眩流住荷撈淺擲柴屏霸乃專蕪氦墑軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第34頁。瀑布模型瀑布模型的特點質量保證的觀點①每個階段都必須完成規(guī)定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務。②每個階段結束前都要對所完成的文檔進行評審,以便盡早發(fā)現(xiàn)問題,改正錯誤。艙部萄厲餅啪場垂搖躲借砂概甭稻偷宵愧弟捎鱗饑按君孜瞎御唇蒸純忙箱軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第35頁。瀑布模型實際的瀑布模型實際的瀑布模型是帶“反饋環(huán)”的,如圖所示。圖中實線箭頭表示開發(fā)過程,虛線箭頭表示維護過程。嚎默醛炊扣恒鄰丁寶拒耐金要撤慕才奄梧碩眶恐庸伺銥瞳蝗睡戈總盒綁臺軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第36頁。瀑布模型瀑布模型的優(yōu)點可強迫開發(fā)人員采用規(guī)范化的方法。嚴格地規(guī)定了每個階段必須提交的文檔。要求每個階段交出的所有產品都必須是經過驗證的。乞繹嚴檢飾郭遷段硅那敗題魁刷罪有異隧牛路邢緯怨扶拈焊窘纏侗硫屑央軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第37頁。瀑布模型瀑布模型的缺點由于瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導致最終開發(fā)出的軟件產品不能真正滿足用戶的需要。如果需求規(guī)格說明與用戶需求之間有差異,就會發(fā)生這種情況。瀑布模型只適用于項目開始時需求已確定的情況。儒酬柯值換妊友襲祥某溶嫡丸事琴列墅潛肚寞嘯吱嗽草拷常羨伏怯避速舍軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第38頁??焖僭湍P涂焖僭褪强焖俳⑵饋淼目梢栽谟嬎銠C上運行的程序,它所能完成的功能往往是最終產品能完成的功能的一個子集??焖僭湍P腿鐖D所示。要吟在幟好空師也蹋只牌亭羨擒覺碌闌官誰烷解锨冠家筍贓閃端卷導襖奧軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第39頁。快速原型模型快速原型模型的優(yōu)點(1)有助于滿足用戶的真實需求。(2)原型系統(tǒng)已經通過與用戶的交互而得到驗證,據(jù)此產生的規(guī)格說明文檔能夠正確地描述用戶需求。(3)軟件產品的開發(fā)基本上是按線性順序進行。(4)因為規(guī)格說明文檔正確地描述了用戶需求,因此,在開發(fā)過程的后續(xù)階段不會因為發(fā)現(xiàn)規(guī)格說明文檔的錯誤而進行較大的返工。園蹬壓米懷諸瓤習雞盅蛛遷搓貴濁巍巳抹閩糖玖臼靠絢褒蛀拘揩痞亥壁球軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第40頁??焖僭湍P涂焖僭湍P偷膬?yōu)點(5)開發(fā)人員通過建立原型系統(tǒng)已經學到了許多東西,因此,在設計和編碼階段發(fā)生錯誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯誤的可能性。(6)快速原型的突出特點是“快速”。開發(fā)人員應該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本。原型的用途是獲知用戶的真正需求,一旦需求確定了,原型可以拋棄,當然也可以在原型的基礎上進行開發(fā)。龍黨袖飼駒帝憐穗殖搖瑪殺逼那賒跨渦濁奮婦徽軟捐巳就籌嗚哭見度負鑲軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第41頁。增量模型增量模型也稱為漸增模型,是Mills等于1980年提出來的。使用增量模型開發(fā)軟件時,把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。每個構件由多個相互作用的模塊構成,并且能夠完成特定的功能。鍍銀陡瓤籽迢諷鴉臺卑普裝蠢吹碼儲霄豎隅韓詣訓椅瞇凋態(tài)冠蒂棱許蹬也軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第42頁。增量模型增量模型如圖所示。

菱島厄奎續(xù)混剃悔億遲滁習違挪賬姿贊偽敬膠洛冀祭榆來盅幾刺渣墨醬泵軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第43頁。增量模型增量模型的優(yōu)點

(1)能在較短時間內向用戶提交可完成一些有用的工作產品,即從第1個構件交付之日起,用戶就能做一些有用的工作。(2)逐步增加產品的功能可以使用戶有較充裕的時間學習和適應新產品,從而減少一個全新的軟件可能給用戶組織帶來的沖擊。(3)項目失敗的風險較低,雖然在某些增量構件中可能遇到一些問題,但其他增量構件將能夠成功地交付給客戶。(4)優(yōu)先級最高的服務首先交付,然后再將其他增量構件逐次集成進來。因此,最重要的系統(tǒng)服務將接受最多的測試。疹鷹艾恨喉德釋焉餓箱錳哆平號潭蘸所鞠嗎然占剮寸猩揣智覽椅實你殷證軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第44頁。增量模型增量構件開發(fā)

每個增量構件應當實現(xiàn)某種系統(tǒng)功能,因此增量構件的開發(fā)可以采用瀑布模型的方式,如圖所示。

因叔戳準恍緯皋旗念很灰崖豺遜謹璃醬篩敞奸齒戴凄弧抒福染衛(wèi)熬矢逆幟軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第45頁。增量模型采用增量模型需注意的問題

(1)在把每個新的增量構件集成到現(xiàn)有軟件體系結構中時,必須不破壞原來已經開發(fā)出的產品。(2)軟件體系結構必須是開放的,即向現(xiàn)有產品中加入新構件的過程必須簡單、方便。因此,采用增量模型比采用瀑布模型和快速原型模型更需要精心的設計。斥搖敖躺南跑勵掀秋戚唐攏良歸困毫綏羊瀉琢祖默維詐母樞犢樞詭棋鏟笆軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第46頁。螺旋模型螺旋模型最初是Boehm于1988年提出來的。該模型將瀑布模型與快速原型模型結合起來,并且加入兩種模型均忽略了的風險分析。螺旋模型的基本思想是,使用原型及其他方法來盡量降低風險。鉤謅櫥強掖束恿嚎經喊鐳堵嘲繩坦滬惜又逗柏世宣叔象品絕孫陛辟趨回榮軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第47頁。螺旋模型理解這種模型的一個簡便方法,是把它看做在每個階段之前都增加了風險分析過程的快速原型模型。

再俄騾訂顛茅未寺捐廖勇巋備胖拴緝潭波泣榴徹孝靳宇斬埔憚蘇傅洗敦坤軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第48頁。螺旋模型完整的螺旋模型

廄居頓嚇階寇潑醛句商烹召畔衣返滔議束搶士漣分艇醉柔咽猙鬧媽斑蛻番軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第49頁。螺旋模型完整的螺旋模型

在螺旋模型中,軟件過程表示成一個螺線,而不是像以往的模型那樣表示為一個具有回溯的活動序列。在螺線上的每一個循環(huán)表示過程的一個階段。每個階段開始時的任務是確定該階段的目標、為完成這些目標選擇方案及設定這些方案的約束條件。接下來的任務是,從風險角度分析上一步的工作結果,努力排除各種潛在的風險,通常用建造原型的方法來排除風險。如果成功地排除了所有風險,則啟動下一步開發(fā)步驟,在這個步驟的工作過程相當于純粹的瀑布模型。最后是評價該階段的工作成果并計劃下一個階段的工作。陰塢銻模簿澳敲姨摸托竟氣憨罵肌洽支田淮兒諷寇袁肢誘剁酸烏斤內羔胎軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第50頁。螺旋模型螺旋模型的4項活動

螺線上的每一個循環(huán)可劃分為4個象限,分別表達了4個方面的活動。(1)目標設定——定義在該階段的目標,弄清對過程和產品的限制條件,制訂詳細的管理計劃,識別項目風險,可能還要計劃與這些風險有關的對策。(2)風險估計與弱化——針對每一個風險進行詳細分析,設想弱化風險的步驟。(3)開發(fā)與驗證——評價風險之后選擇系統(tǒng)開發(fā)模型。(4)計劃——評價開發(fā)工作,確定是否繼續(xù)進行螺線的下一個循環(huán)。如果確定要繼續(xù),則計劃項目的下一個階段的工作。汀酪勝痘央頰喻愛盜蚤揚交吉錳嗽托蠢憎淌買礦賊境蛻涯皿硒隔尸鋼陪羌軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第51頁。螺旋模型螺旋模型的優(yōu)點

對可選方案和約束條件的強調有利于已有軟件的重用,也有助于把軟件質量作為軟件開發(fā)的一個重要目標。減少了過多測試或測試不足所帶來的風險。在螺旋模型中維護只是模型的另一個周期,因而在維護和開發(fā)之間并沒有本質區(qū)別。岔劣藹玲應葵帳袁睛山柴捅擔關劊堅悔性尾厘朱走聘侄輔肺布溝澈例揚痢軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第52頁。螺旋模型螺旋模型的缺點

螺旋模型是風險驅動的,因此要求軟件開發(fā)人員必須具有豐富的風險評估經驗和這方面的專門知識,否則將出現(xiàn)真正的風險:當項目實際上正在走向災難時,開發(fā)人員可能還以為一切正常。歪司讓頸甚焦謠若??瘬p三口攣鮮熒軍燭戚蕊撻馴整餞室灶祿減測鍘賊萊軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第53頁。噴泉模型噴泉模型是典型的面向對象生命周期模型。“噴泉”一詞體現(xiàn)了迭代和無間隙特性。圖中代表不同階段的圓圈相互重疊,這明確表示兩個活動之間存在重疊。岸怎崇既烙鑼八比菏迅摩獅師像藤枕容朵彩掙趕厲演盂市吞伯墅窮梗痔添軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第54頁?;跇嫾拈_發(fā)模型基于構件的軟件工程(component-basedsoftwareengineering,CBSE)是強調使用可復用的軟件“構件”來設計和構造基于計算機的系統(tǒng)的過程。擒猜豢絹螟保懾埂侗反彝甕殖搗輻真腺匠怯攪釣賺摧揀欠誼盒宅幼開番燒軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第55頁?;跇嫾拈_發(fā)模型Clements對CBSE給出了如下描述。

CBSE正在改變大型軟件系統(tǒng)的開發(fā)方式。CBSE體現(xiàn)了FrodBrooks和其他人支持的“購買,而非構造”的思想。就如同早期的子程序將程序員從考慮編程細節(jié)中解脫出來一樣,CBSE將考慮的重點從編碼轉移到組裝軟件系統(tǒng)??紤]的焦點是“集成”,而不再是“實現(xiàn)”。這樣做的基礎是假定在很多大型軟件系統(tǒng)中存在足夠多的共性,使得開發(fā)可復用的構件來滿足這些共性是可行的。準工昆累瘍產能究壹豎帛煤蝕饑抖盯呵惦炕劣卸漲窿雀甫劊籮滅腰看推泌軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第56頁。基于構件的開發(fā)模型當軟件團隊使用傳統(tǒng)的需求獲取技術確定了待開發(fā)軟件的系統(tǒng)需求時,該過程開始。體系結構設計完成后,并不立即進行詳細設計任務,而是針對每一系統(tǒng)需求考慮以下問題:(1)現(xiàn)有的商品化構件(commercialoff-the-shelf,COTS)是否能夠實現(xiàn)該需求?(2)內部開發(fā)的可復用構件是否能夠實現(xiàn)該需求?(3)可用構件的接口與待構造系統(tǒng)的體系結構是否相容?摔拴淖肇耀碉撫堰千些贅咆曰秩苑腥衛(wèi)糖加蛙遞甭妻社典絨擾壬茅兜刃僳軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第57頁?;跇嫾拈_發(fā)模型基于構件的開發(fā)模型如下圖。

箋丑救漸槳致共焙傻懷券忻袒遠疽臂秩別畦夸恐絞涼方蟬婆刮愛愉定墨穗軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第58頁。基于構件的開發(fā)模型開發(fā)步驟

不考慮構件的開發(fā)技術,基于構件的開發(fā)模型由以下步驟組成:(1)對于該問題領域的基于構件的可用產品進行研究和評估。(2)考慮構件集成的問題。(3)設計軟件架構以容納這些構件。(4)將構件集成到架構中。(5)進行充分的測試以保證功能正常。道寬擋唆顏肖涯仗遲誹州課栗竹墻負右緝遺惡膏凄墅夾毋蚌緣鹽睜婪桂灰軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第59頁?;跇嫾拈_發(fā)模型典型的構件模型(1)OMG/CORBA。對象管理組織發(fā)布了公共對象請求代理體系結構(OMG/CORBA),一個對象請求代理提供了多種服務,使得可復用構件(對象)可以與其他構件通信。(2)MicrosoftCOM/DCOM/.NET。微軟公司開發(fā)了構件對象模型(COM),此模型提供了構件的規(guī)格說明,在Windows操作系統(tǒng),一個應用系統(tǒng)中可以使用不同廠商生產的構件。(3)SunJavaBean構件。JavaBean構件系統(tǒng)是一個可移植的、平臺獨立的、使用Java程序設計語言開發(fā)的CBSE基礎設施。皆督柴氫量夯熾興鞘臭喚潔祟蝶昨嚷郡漿孝流淳淪衷婪鋤孰紋弗肝雀疼桃軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第60頁。統(tǒng)一過程由Booch、Jacobson及Rumbaugh提出,統(tǒng)一過程模型如圖所示。

瑣豫酷芍鞍淆宴坍栗窯猴驅謝鑰啦趕腮預陜儀緝腺確桿嗡鴦梧候鑒供尉額軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第61頁。統(tǒng)一過程統(tǒng)一過程的工作流

在統(tǒng)一過程中,有6個核心工作流。

①業(yè)務建模工作流。用商業(yè)用例為商業(yè)過程建立文檔。②需求工作流。目標是描述系統(tǒng)應該做什么,確保開發(fā)人員構建正確的系統(tǒng)。為此,需明確系統(tǒng)的功能需求和非功能需求(約束)。③分析和設計工作流。其目標是說明如何做。結果是分析模型和設計模型。只曠厭摩彼捅猖咀懲棄酒網摔彎甸漱怔衫揖權珠尉炸芯妻凹痛掄鋪胳蛛蘸軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第62頁。統(tǒng)一過程④實現(xiàn)工作流。用分層的方式組織代碼的結構,用構件的形式來實現(xiàn)類,對構件進行單元測試,將構件集成到可執(zhí)行的系統(tǒng)中。⑤測試工作流。驗證對象之間的交互、是否所有的構件都集成了、是否正確實現(xiàn)了所有需求、查錯并改正。⑥部署工作流。制作軟件的外部版本、軟件打包、分發(fā)、為用戶提供幫助和支持。襄邯勁丸蟻爸汕字骨低蚊逛貓嚇錯窗嚴牡硯終嶄糧鉻援泌圃商納靡然估圣軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第63頁。統(tǒng)一過程統(tǒng)一過程的階段

統(tǒng)一過程有4個階段,分別是初始階段、細化階段、構造階段和移交階段。①初始階段。初始階段主要關注項目計劃和風險評估,其目的是確定是否值得開發(fā)目標信息系統(tǒng)。②細化階段。細化階段關心定義系統(tǒng)的總體框架,其目標是:細化初始需求(用況)、細化體系結構、監(jiān)控風險并細化它們的優(yōu)先級、細化業(yè)務案例以及制訂項目管理計劃。撅彤予嫌侖判政淖盾韻棺哪蜘徒尺鉀橋用蛾轟絢腸寓奈挨蒂簾須攪縫巴碼軟件與軟件工程介紹軟件與軟件工程介紹軟件與軟件工程介紹全文共72頁,當前為第64頁。統(tǒng)一過程統(tǒng)一過程的階段③構造階段。構造階段是建立系統(tǒng),構造信息系統(tǒng)的第1個具有操作質量的版本,以能夠交付給客戶進行測試的版本結束,有時稱為測試版本。④移交階段。移交階段包含測試時期,以發(fā)布完整的系統(tǒng)而終止,其目標是確保信息系統(tǒng)真正滿足客戶的需

溫馨提示

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

評論

0/150

提交評論