版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章 軟件工程概述軟件是計算機(jī)程序及其有關(guān)的數(shù)據(jù)和文檔的結(jié)合。軟件危機(jī)是指在計算機(jī)軟件開發(fā)和維護(hù)時所遇到的一系列問題。軟件危機(jī)主要包含兩方面的問題:一是如何開發(fā)軟件以滿足對軟件日益增長的需求;二是如何維護(hù)數(shù)量不斷增長的已有軟件。軟件工程是軟件開發(fā)、運行、維護(hù)和引退的系統(tǒng)方法。軟件工程是指導(dǎo)計算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。軟件工程采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件。軟件工程的目標(biāo)是實現(xiàn)軟件的優(yōu)質(zhì)高產(chǎn)。軟件工程學(xué)的主要內(nèi)容是軟件開發(fā)技術(shù)和軟件工程管理。軟件開發(fā)方法學(xué)是編制軟件的系統(tǒng)方法,它確定軟件開發(fā)的各個階段,規(guī)定每一階段的活動、產(chǎn)品、驗收的步驟和完成準(zhǔn)則。常用的軟件開發(fā)方法有結(jié)
2、構(gòu)化方法、面向數(shù)據(jù)結(jié)構(gòu)方法和面向?qū)ο蠓椒ǖ取A?xí)題參考答案:1什么是軟件危機(jī)?為什么會出現(xiàn)軟件危機(jī)?答:軟件危機(jī)是指在計算機(jī)的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這些問題決不僅僅是不能正常運行的軟件才具有的,實際上,幾乎所有軟件都不同程度地存在這些問題。出現(xiàn)軟件危機(jī)的原因:一方面與軟件本身的特點有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法不正確有關(guān)。軟件不同于硬件,它是計算機(jī)系統(tǒng)中邏輯件而不是物理部件。管理和控制軟件開發(fā)過程相當(dāng)困難。軟件是規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上升。目前相當(dāng)多的軟件專業(yè)人員對軟件開發(fā)和維護(hù)還有不少糊涂觀念,在實踐過程中或多或少地采用了錯誤的方法和技術(shù)
3、,這是使軟件問題發(fā)展成軟件危機(jī)的主要原因??偨Y(jié)如下:1) 取得正確的用戶需求和正確地描述需求很困難2) 開發(fā)人員對需求的正確理解也有困難3) 常常在沒有正確理解之前就倉促開始編程4) 軟件項目缺乏有效的組織、管理和內(nèi)部交流5) 缺乏軟件開發(fā)方法、模型和工具的支持6) 軟件維護(hù)的困難性2假設(shè)你是一家軟件公司的總工程師,當(dāng)你把圖1.1給手下的軟件工程師們觀看,告訴他們及早發(fā)現(xiàn)并改正錯誤的重要性時,有人不同意你的觀點,認(rèn)為要求在錯誤進(jìn)入軟件之前就清除它們是不現(xiàn)實的,并舉例說:“如果一個故障是編碼錯誤造成的,那么,一個人怎么能在設(shè)計階段清除它呢?”你怎么反駁他?答:在軟件開發(fā)的不同階段進(jìn)行修改付出的代
4、價是很不相同的,在早期引入變動,涉及的面較少,因而代價也比較低;在開發(fā)的中期,軟件配置的許多成分已經(jīng)完成,引入一個變動要對所有已完成的配置成分都做相應(yīng)的修改,不僅工作量大,而且邏輯上也更復(fù)雜,因此付出的代價劇增;在軟件已經(jīng)完成時再引入變動,當(dāng)然付出的代價更高。一個故障是代碼錯誤造成的,有時這種錯誤是不可避免的,但要修改的成本是很小的,因為這不是整體構(gòu)架的錯誤。3什么是軟件工程?它有哪些本質(zhì)特性?怎樣用軟件工程消除(至少是緩解)軟件危機(jī)?答:軟件工程是指導(dǎo)計算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的
5、技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。推薦精選軟件工程本質(zhì)特性:1)軟件工程關(guān)注于大型程序的構(gòu)造;2)軟件工程的中心課題是控制復(fù)雜性;3)軟件經(jīng)常變化;4)開發(fā)軟件的效率非常重要;5)和諧地合作是開發(fā)軟件的關(guān)鍵;6)軟件必須有效地支持它的用戶;7)在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。消除軟件危機(jī)的途徑:為了消除軟件危機(jī),首先應(yīng)該對計算機(jī)軟件有一個正確的認(rèn)識。必須充分認(rèn)識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項目。應(yīng)該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并
6、且研究探索更好更有效的技術(shù)和方法,盡快消除在計算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯誤概念和做法。應(yīng)該開發(fā)和使用更好的軟件工具。為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。6美國某科幻電影中有一個描寫計算機(jī)軟件錯誤的故事,很富于戲劇性。故事情節(jié)如下:由計算機(jī)HAL控制的宇宙飛船在飛往木星的旅途中,飛機(jī)指揮員鮑曼和HAL之間有一段對話。鮑曼命令道:“HAL,請對備用艙進(jìn)行故障預(yù)報測試?!?0秒鐘后HAL報告:“一切正常?!钡?,地面上的飛行指揮中心在重復(fù)做了故障預(yù)測報告后,卻得出了相反的結(jié)論:“鮑曼,我是飛行指揮中心,你的計算機(jī)在預(yù)報故障時可能犯了錯誤,我們的兩臺HAL計
7、算機(jī)都得出了和你的計算機(jī)相反的結(jié)論。”鮑曼用手指敲著控制臺說:“HAL,是不是有什么東西干擾了你,以致出了這個差錯?”“聽著,鮑曼,我知道你很想幫助我,但是我的信息處理是正常的。不信就查看我的記錄吧,你會看到它是完全正確的?!薄拔铱催^你的服務(wù)記錄,但是誰都可能犯錯誤啊?!薄拔也⒉还虉?zhí)己見,但是,我是不可能犯錯誤的?!薄拔?,我是飛行指揮中心,我們已經(jīng)徹底分析了你所遇到的麻煩,我們的兩臺計算機(jī)得出了完全一致的結(jié)論。問題出在故障預(yù)報系統(tǒng)中,我們確信是程序設(shè)計有錯誤。你必須斷開你的計算機(jī)并改為地面控制模式,我們才能改正這個錯誤?!碑?dāng)鮑曼斷開計算機(jī)時,HAL立即又把自己接了上去。最后,鮑曼只好拆下計算機(jī)
8、的存儲器,才得以控制他的宇宙飛船。請問:(1)為什么鮑曼拆下存儲器就能擺脫計算機(jī)的干擾而獨自控制宇宙飛船?我們現(xiàn)在遇到的軟件問題有這么嚴(yán)重嗎?(2)如果不依靠飛行指揮中心,鮑曼怎樣才知道HAL的故障預(yù)報有問題?(3)應(yīng)該怎樣設(shè)計計算機(jī)系統(tǒng),才能避免出現(xiàn)故事中描述的這類問題?答:(1)計算機(jī)通過運行程序來控制宇宙飛船,而程序指令存放在存儲器中。拆下存儲器之后,計算機(jī)因取不來指令而無法運行程序,因此也就無法控制宇宙飛船了。我們現(xiàn)在遇到的軟件問題沒有這么嚴(yán)重,還沒有出現(xiàn)計算機(jī)不服從人的命令的情況。(2)除非鮑曼能親自分析有故障的部件,或者在計算機(jī)上還安裝有另外一套故障檢測系統(tǒng),否則不依靠飛行指揮中心
9、他很難知道HAL的故障預(yù)報有問題。(3)應(yīng)該把HAL設(shè)計成具有若干個儲存的問題,供周期性測試之用。通過把應(yīng)有的測試結(jié)果和HAL實際測試結(jié)果加以比較的方法,有可能發(fā)現(xiàn)HAL的故障預(yù)報問題。此外,不論怎樣具體設(shè)計HAL系統(tǒng),都應(yīng)該設(shè)置一種人工操作模式,并把人工操作模式設(shè)置為最高等級的控制模式,在任何情況下計算機(jī)控制都不能取消人工操作命令。推薦精選第二章 軟件過程軟件過程定義了運用方法的順序、應(yīng)該交付的文檔、開發(fā)軟件的管理措施、各階段任務(wù)完成的標(biāo)志。軟件過程必須科學(xué)、合理,才能獲得高質(zhì)量的軟件產(chǎn)品。軟件產(chǎn)品從問題定義開始,經(jīng)過開發(fā)、使用和維護(hù),直到最后被淘汰的整個過程稱為軟件生命周期。根據(jù)軟件生產(chǎn)工
10、程化的需要,生存周期的劃分有所不同,從而形成了不同的軟件生命周期模型(SW life cycle model),或稱軟件開發(fā)模型。軟件開發(fā)模型有以下幾種。 瀑布模型:規(guī)范的、文檔驅(qū)動的方法。開發(fā)階段按順序進(jìn)行,適用于需求分析較明確、開發(fā)技術(shù)較成熟的情況。 快速原型模型:構(gòu)建原型系統(tǒng)讓用戶試用并收集用戶意見,獲取用戶真實需求。 增量模型:優(yōu)點是能在早期向用戶提交部分產(chǎn)品和易于維護(hù),缺點是軟件的體系結(jié)構(gòu)必須是開放的。 噴泉模型:適用于面向?qū)ο蠓椒ā?螺旋模型:適用于大規(guī)模內(nèi)部開發(fā)項目,有利于分析風(fēng)險和排除風(fēng)險。 統(tǒng)一過程:適用于面向?qū)ο蠓椒?,使用統(tǒng)一建模語言UML,采取用例驅(qū)動和架構(gòu)優(yōu)先的策略,采
11、用迭代增量的建造方法。進(jìn)行軟件開發(fā)時可把各種模型的特點結(jié)合起來,充分利用優(yōu)點,減少缺點。習(xí)題參考答案:1什么是軟件過程?它與軟件工程方法學(xué)有何關(guān)系?軟件過程是為了開發(fā)出高質(zhì)量的軟件產(chǎn)品所需完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。軟件過程定義了運用技術(shù)方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)軟件變化必須采取的管理措施,以及標(biāo)志完成了相應(yīng)開發(fā)活動的里程碑。軟件過程是軟件工程方法學(xué)的3個重要組成部分之一。2假設(shè)要求你開發(fā)一個軟件,該軟件的功能是把讀入的浮點數(shù)開平方,所得到的結(jié)果應(yīng)該精確到小數(shù)點后4位。一旦實現(xiàn)并測試完之后,該產(chǎn)品將被拋棄。你打算選用哪些軟件生命周期模型?請
12、說明你作出選擇的理由。答:對這個軟件的需求很明確,實現(xiàn)開平方功能的算法也很成熟,因此,既無須通過原型來分析需求也無須用原型來驗證設(shè)計方案。此外,一旦實現(xiàn)并測試完之后,該產(chǎn)品將被拋棄,因此也無須使用有助于提高軟件可維護(hù)性的增量模型或螺旋模型來開發(fā)該軟件。所以,為了開發(fā)這個簡單的軟件,使用大多數(shù)人所熟悉的瀑布模型就可以了。1)需求明確;2)功能單一,規(guī)模小;3)潛在功能變化少。3假設(shè)你要為一家生產(chǎn)和銷售長筒靴的公司開發(fā)一個軟件,使用此軟件來監(jiān)控該公司的存貨,并跟蹤從購買橡膠開始,到生產(chǎn)長筒靴、發(fā)貨給各個連鎖店,直至賣給顧客的全部過程。以保證生產(chǎn)、銷售過程的各個環(huán)節(jié)供需平衡,既不會有停工待料現(xiàn)象,也
13、不會有供不應(yīng)求現(xiàn)象。你在為這個項目選擇生命周期模型時使用什么準(zhǔn)則? 答:快速原型模型。1) 軟件系統(tǒng)的使用人員繁雜,需求確定困難。2) 軟件應(yīng)用環(huán)節(jié)多,功能變化多,初期需求變化多,在修改原型的過程中明確功能。推薦精選4列出在開發(fā)上述軟件產(chǎn)品過程中可能遇到的風(fēng)險。你打算怎樣排除這些風(fēng)險?答:1)需求不明確,在明確需求的過程中延誤交工期限。排除:利用快速原型法,選好快速開發(fā)工具,對用戶的需求變更做出快速反應(yīng),及早確定最后需求。2)需求越提越多,無法按照計劃及時定下需求。排除:幫助用戶對需求進(jìn)行分析,確定下來近期完成的主要功能。其它附加功能和次要功能可在升級版本中體現(xiàn)。確保項目的順利開展。3)開發(fā)人
14、員不熟悉業(yè)務(wù)。排除:在和用戶確定需求的過程中,及時向用戶請教業(yè)務(wù)相關(guān)的知識,同時也可以請用戶針對與業(yè)務(wù)流程或?qū)I(yè)術(shù)語進(jìn)行專門的培訓(xùn)。5你為靴類連鎖店開發(fā)的存貨監(jiān)控軟件很受用戶歡迎,現(xiàn)在軟件開發(fā)公司決定把它重新寫成一個通用軟件包,以賣給各種生產(chǎn)并通過自己的連鎖店銷售產(chǎn)品的公司。因此,這個新的軟件產(chǎn)品必須是可移植的,并且應(yīng)該能夠很容易地適應(yīng)新的運行環(huán)境(硬件或操作系統(tǒng)),以滿足不同用戶的需求。你在為本題中的軟件選擇生命周期模型時,使用的準(zhǔn)則與在第3題中使用的準(zhǔn)則有哪些不同?答:螺旋模型。什么準(zhǔn)則?構(gòu)件模型。1)通用模型,并滿足不同用戶的需求。利用增量模型,確定出通用的部分,同時針對于不同用戶開發(fā)不
15、同的構(gòu)件,最后進(jìn)行組合。2)可移植。適應(yīng)新的運行環(huán)境。利用增量模型的開放式體系結(jié)構(gòu),合理組合配置軟件系統(tǒng)構(gòu)件。補(bǔ)假設(shè)你被任命為一家軟件公司的項目負(fù)責(zé)人,你的工作是管理該公司已被廣泛應(yīng)用的字處理軟件的新版本開發(fā)。由于市場競爭激烈,公司規(guī)定了嚴(yán)格的完成期限并且已對外公布。你打算采用哪種軟件生命周期模型?為什么?答:對這個項目的一個重要要求是,嚴(yán)格按照已對外公布了的日期完成產(chǎn)品開發(fā)工作,因此,選擇生命周期模型時應(yīng)該著重考慮哪些模型有助于加快產(chǎn)品開發(fā)的進(jìn)度。使用增量模型開發(fā)軟件時可以并行完成開發(fā)工作,因此能夠加快開發(fā)進(jìn)度。這個項目是開發(fā)該公司已被廣泛應(yīng)用的字處理軟件的新版本,從上述事實至少可以得出3點
16、結(jié)論:第一,舊版本相當(dāng)于一個原型,通過收集用戶對舊版本的反映,較容易確定對新版本的需求,沒必要再專門建立一個原型系統(tǒng)來分析用戶的需求;第二,該公司的軟件工程師對字處理軟件很熟悉,有開發(fā)字處理軟件的豐富經(jīng)驗,具有采用增量模型開發(fā)新版字處理軟件所需要的技術(shù)水平;第三,該軟件受到廣大用戶的喜愛,今后很可能還要開發(fā)更新的版本,因此,應(yīng)該把該軟件的體系結(jié)構(gòu)設(shè)計成開放式的,以利于今后的改進(jìn)和擴(kuò)充。綜上所述,采用增量模型來完成這個項目比較恰當(dāng)。推薦精選第三章 結(jié)構(gòu)化分析習(xí)題參考答案:1銀行計算機(jī)儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話
17、號碼)、身份證號碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,并印出存款存單給儲戶;,如果是取款而且取款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并印出利息清單給儲戶。請用數(shù)據(jù)流圖描述本系統(tǒng)的功能,并用實體-聯(lián)系圖描述系統(tǒng)中的數(shù)據(jù)對象。答:頂級數(shù)據(jù)流圖:存款存單存款單利息清單取款單儲戶儲戶儲蓄系統(tǒng)第一級數(shù)據(jù)流圖: 利息清單取款單儲戶儲戶1 存款處理2 取款處理存款單存款存單第二級數(shù)據(jù)流圖:2.32.22.11.21.1利息存款信息+利息更新數(shù)據(jù)更新本問題中共有兩類實體,分別是“儲戶”和“儲蓄所”,在它們之間存在“存取款”關(guān)系。因為一位儲戶可以在
18、多家儲蓄所存取款,一家儲蓄所擁有多位儲戶,所以“存取款”是多對多(M:N)關(guān)系。推薦精選儲戶的屬性主要有姓名、住址、電話號碼和身份證號碼,儲蓄所的屬性主要是名稱、住址和電話號碼,而數(shù)額、類型、到期日期、利率和密碼等則是聯(lián)系類型存取款的屬性。存款日期取款日期2為方便旅客,某航空公司擬開發(fā)一個機(jī)票預(yù)訂系統(tǒng)。旅行社把預(yù)訂機(jī)票的旅客信息(姓名、性別、工作單位、身份證號碼、旅行時間、旅行目的地等)輸入進(jìn)該系統(tǒng),系統(tǒng)為旅客安排航班,印出取票通知和賬單,旅客在飛機(jī)起飛的前一天憑取票通知和賬單交款取票,系統(tǒng)校對無誤即印出機(jī)票給旅客。請用ER圖描繪本系統(tǒng)中的數(shù)據(jù)對象并用數(shù)據(jù)流圖描繪本系統(tǒng)的功能。3目前住院病人主
19、要由護(hù)士護(hù)理,這樣做不僅需要大量護(hù)士,而且由于不能隨時觀察危重病人的病情變化,還會延誤搶救時機(jī)。某醫(yī)院打算開發(fā)一個以計算機(jī)為中心的患者監(jiān)護(hù)系統(tǒng),請分層次地畫出描述本系統(tǒng)功能的數(shù)據(jù)流圖。醫(yī)院對患者監(jiān)護(hù)系統(tǒng)的基本要求是隨時接收每個病人的生理信號(脈搏、體溫、血壓、心電圖等),定時記錄病人情況以形成患者日志,當(dāng)某個病人的生理信號超出醫(yī)生規(guī)定的安全范圍時向值班護(hù)士發(fā)出警告信號,此外,護(hù)士在需要時還可以要求系統(tǒng)輸出某個指定病人的病情報告。答:從問題陳述可知,本系統(tǒng)數(shù)據(jù)源點是“病人”和“護(hù)士”,他們分別提供生理信號和要求病情報告的信息。進(jìn)一步分析問題陳述,從系統(tǒng)應(yīng)該推薦精選“定時記錄病人情況以形成患者日志”這項要求可以想到,還應(yīng)該有一個提供日期和時間信息的“時鐘”作為數(shù)據(jù)源點。從問題陳述容易看出,本系統(tǒng)的數(shù)據(jù)終點是接收警告信息和病情報告的護(hù)士。系統(tǒng)對病人生理信號的處理功能主要是“接收信號”、“分析信號”和“產(chǎn)生警告信息”。此外,系統(tǒng)還應(yīng)該具有“定時取樣生理信號”、“更新日志”和“產(chǎn)生病情報告”的功能。為了分析病人生理信號是否超出了醫(yī)生規(guī)定的安全范圍,應(yīng)該存儲“患者安全范圍”信息。此外,定時記錄病人生理信號所形成的“患者日志”
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州財經(jīng)大學(xué)《環(huán)境衛(wèi)生學(xué)2》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年安徽建筑安全員《B證》考試題庫及答案
- 2025貴州建筑安全員-A證考試題庫及答案
- 廣州珠江職業(yè)技術(shù)學(xué)院《素描1》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025遼寧建筑安全員C證考試題庫
- 2025年陜西省安全員A證考試題庫
- 2025山東省建筑安全員B證考試題庫附答案
- 2025黑龍江省安全員A證考試題庫
- 2025年湖北省建筑安全員《B證》考試題庫及答案
- 2025青海省建筑安全員知識題庫附答案
- 運輸成本核算
- 軟件技術(shù)開發(fā)公司經(jīng)營分析報告
- 2024年房地產(chǎn)公司設(shè)計類技術(shù)筆試歷年真題薈萃含答案
- 2024年銀行考試-建設(shè)銀行紀(jì)檢監(jiān)察條線筆試歷年真題薈萃含答案
- 輿論學(xué)答案復(fù)習(xí)
- 初二上冊歷史總復(fù)習(xí)知識點考點總結(jié)(浙教版)
- 初中英語趣味題50道及答案
- 急性早幼粒細(xì)胞白血病教學(xué)演示課件
- 《望人中診病講義》課件
- 公務(wù)員考試申論電子教材及國家公務(wù)員考試申論電子教材
- 度假村開發(fā)方案
評論
0/150
提交評論