软件工程(吕云翔第二版)部分简答题答案
簡答題
(做過的練習(xí),答案不一定對)
第一章
答:①軟件具有抽象性、②軟件的生產(chǎn)與硬件的制造不同、③軟件會退化、④軟件的開發(fā)尚未完全擺脫手工藝的開發(fā)方式、⑤軟件開發(fā)和運(yùn)行必須依附于特定的計算機(jī)系統(tǒng)環(huán)境
答:①用分階段的生命周期計劃進(jìn)行嚴(yán)格的管理
②堅持進(jìn)行階段評審
③實行嚴(yán)格的產(chǎn)品控制
④采用現(xiàn)代程序設(shè)計技術(shù)
⑤軟件工程結(jié)果應(yīng)能被清楚地審查
⑥開發(fā)小組的人員應(yīng)該少而精
⑦承認(rèn)不斷改進(jìn)軟件工程實踐的必要性
答:過程、方法、工具
答:①結(jié)構(gòu)化方法
②面向數(shù)據(jù)結(jié)構(gòu)方法
③面向?qū)ο蠓椒?/span>
④形式化方法
第二章
答:軟件產(chǎn)品的生命周期是指從設(shè)計該產(chǎn)品的構(gòu)想開始,到軟件需求的確定、軟件設(shè)計、軟件實現(xiàn)、產(chǎn)品測試與驗收、投入使用以及產(chǎn)品版本的不斷更新,到最終該產(chǎn)品被市場淘汰的全過程。軟件生命周期這個概念從時間的角度將軟件的開發(fā)和維護(hù)的復(fù)雜過程分解為了若干個階段,每個階段都完成特定的相對獨立的任務(wù)。由于每個階段的任務(wù)相對于總?cè)蝿?wù)難度會大幅度降低,在資源分配、時間把握和項目管理上都會比較容易控制。合理地劃分軟件生命周期的各個階段,使各個階段之間既相互區(qū)別又相互聯(lián)系,為每個階段賦予特定的任務(wù)。
答:業(yè)務(wù)建模、需求、分析和設(shè)計、實現(xiàn)、測試和部署
答:核心價值觀:
①個體與交互高于過程和工具
②可運(yùn)行軟件高于詳盡的文檔
③與客戶協(xié)作高于合同(契約)
④對變更及時響應(yīng)高于遵循計劃
體現(xiàn):
敏捷方法對傳統(tǒng)方法的“反叛”體現(xiàn)在以人為中心,不再依靠文檔來控制過 程,認(rèn)為傳統(tǒng)過程過于僵化,文檔繁瑣,主張對傳統(tǒng)過程“瘦身”,在上述價 值觀的支配下,做到能夠為準(zhǔn)。
第四章
答:需求分析是一個非常重要的過程,它完成的好壞直接影響了后續(xù)軟件開發(fā)的質(zhì)量。
答:結(jié)構(gòu)化的需求分析方法是一種面向數(shù)據(jù)流的需求分析方法,其中數(shù)據(jù)作為獨立實體轉(zhuǎn)換,數(shù)據(jù)建模定義了數(shù)據(jù)的屬性和關(guān)系,操作數(shù)據(jù)的處理建模表明當(dāng)數(shù)據(jù)在系統(tǒng)流動時處理如何轉(zhuǎn)換數(shù)據(jù)。
答:數(shù)據(jù)字典用于定義數(shù)據(jù)流圖中各個圖元的具體內(nèi)容,為數(shù)據(jù)流圖中出現(xiàn)的圖形元素做出確切的解釋。
第五章
答:軟件設(shè)計就是要把需求規(guī)格說明書中歸納的需求轉(zhuǎn)換為可行的解決方案,并把解決方案反映到設(shè)計說明書里。需求分析回答軟件系統(tǒng)能“做什么”的問題,而軟件設(shè)計就是要解決“怎么做的問題”。
答:模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?#xff0c;是構(gòu)成程序的基本構(gòu)件,可以被單獨命名并通過名字來訪問。
模塊化是把系統(tǒng)或程序劃分為獨立命名并且可以獨立訪問的模塊,每個模塊完成一個特定的子功能。
軟件模塊化的目的是建立可重用的軟件組件,在不需要修改或僅作少量修改的情況下,可再次用來組建新的軟件系統(tǒng),提高軟件的開發(fā)周期和可靠性。
答:主要是指依據(jù)一定的映射規(guī)則,將需求分析階段得到的數(shù)據(jù)描述、系統(tǒng)的輸入端到輸出端所經(jīng)歷的一系列變換或處理的數(shù)據(jù)流圖轉(zhuǎn)換為目標(biāo)系統(tǒng)的結(jié)構(gòu)描述
答:可以清晰地表示層次結(jié)構(gòu),易于對自頂向下的結(jié)構(gòu)進(jìn)行描述;
結(jié)構(gòu)易懂、易用,并且比較直觀、形象;
不僅可以表示數(shù)據(jù)結(jié)構(gòu),也可以表示程序結(jié)構(gòu);
第六章
答:面向?qū)ο蟮姆椒ㄊ菫榱四M現(xiàn)實世界,使各種不同的現(xiàn)實世界系統(tǒng)在計算機(jī)中得以實現(xiàn),進(jìn)而為工作、學(xué)習(xí)、生活提供幫助
面向?qū)ο蟮奶攸c:
- 把數(shù)據(jù)和操作封裝在一起,形成對象。對象是構(gòu)成軟件系統(tǒng)的基本構(gòu)件
- 把特征相似的對象抽象為類
- 類之間可以存在繼承或被繼承的關(guān)系,形成軟件系統(tǒng)的層次結(jié)構(gòu)
- 對象類之間通過發(fā)送消息進(jìn)行通信
- 將對象的私有信息封裝起來。
答:UML的作用:UML是一種通用的可視化建模語言,可以用來描述、可視化、構(gòu)造和文檔化軟件密集系統(tǒng)的各種工作
UML的優(yōu)點:
- UML語言使系統(tǒng)建模過程標(biāo)準(zhǔn)化,統(tǒng)一化,規(guī)范化。
- UML在整個軟件開發(fā)過程中采用相同的概念和表示方法,在不同的開發(fā)階段,不必轉(zhuǎn)換概念和表示方法,避免了傳統(tǒng)軟件開發(fā)方法的兩個鴻溝。
- UML采用圖形化的表現(xiàn)形式。產(chǎn)生的模型易于理解,易于開發(fā)人員與用戶之間的溝通,從而能夠及時得到用戶的反饋信息。
- 用UML進(jìn)行系統(tǒng)建模所得到的建模制品不僅僅包括各種模型框圖,還有大量豐富的文檔,這些文檔給系統(tǒng)后期的維護(hù)工作帶來了便捷。
- UML不是一門程序設(shè)計語言,但可以使用代碼生成工具將UML模型轉(zhuǎn)換為多種程序設(shè)計語言代碼,或使用反向生成工具將程序源代碼轉(zhuǎn)換為UML模型。
答:類之間的外部關(guān)系:關(guān)聯(lián)、依賴、泛化、實現(xiàn)
關(guān)聯(lián):表達(dá)模型元素間的一種語義關(guān)系
依賴:表示的兩個元素之間語義上的聯(lián)系
泛化:描述類的一般-特殊關(guān)系
實現(xiàn):將一個模型連接到另外一個模型
第七章
答:①首先要找到系統(tǒng)的操作者,既用例的參與者
②可以把參與者執(zhí)行的每一個系統(tǒng)功能都看作一個用例
③確定了系統(tǒng)的所有用例之后,就可以開始識別目標(biāo)系統(tǒng)中的對象和類了,把具有相似屬性和操作的對象定義為了一個類
答:動態(tài)模型描述對象和關(guān)系的狀態(tài)、狀態(tài)轉(zhuǎn)換的觸發(fā)事件、對象的服務(wù)(行為)。
答:對象模型描述了現(xiàn)實世界中的“類與對象”以及它們之間的關(guān)系,表示了目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)
答:功能模型表明了系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系,以及有關(guān)的數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖組成
第八章
答:規(guī)范軟件開發(fā)的基礎(chǔ)結(jié)構(gòu);便于開發(fā)人員與用戶的溝通;模塊化、層次化設(shè)計,有利于減少返工,提高效率;便于系統(tǒng)開發(fā)前期、后期的籌備與服務(wù)
答:軟件質(zhì)量屬性是指軟件系統(tǒng)在其生存周期過程中所表現(xiàn)出的各種特征
答:
- 通過合理地劃分三層結(jié)構(gòu),使之在邏輯上保持相對獨立,提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性
- 能更靈活地選用相對應(yīng)的平臺和應(yīng)用系統(tǒng),使之在處理負(fù)荷能力上與處理特性上分別適應(yīng)各層的要求;并且這些平臺和組成部分可以具體良好的可升級性和開放性
- 應(yīng)用的各層可以獨立地并行開發(fā),每層可以根據(jù)自己的特點選用合適的開發(fā)語言
- 安全性相對較高,應(yīng)用層屏蔽了客戶直接訪問數(shù)據(jù)庫的權(quán)利,使得未授權(quán)用戶或黑客難以繞過應(yīng)用層直接獲取敏感數(shù)據(jù),為數(shù)據(jù)的安全管理提供了系統(tǒng)結(jié)構(gòu)的支持
答:MVC可以最大化地重用代碼,且靈活性極高
第九章
答:①模塊化、②抽象化、③信息隱藏、④低耦合、⑤高內(nèi)聚、⑥復(fù)用性
答:系統(tǒng)設(shè)計關(guān)注于確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu)。
對象設(shè)計以問題域的對象設(shè)計為核心,其結(jié)果是一個詳細(xì)的對象模型
第十章
答:重要性:具有良好編程風(fēng)格的源程序具有較強(qiáng)的可讀性、可維護(hù)性、同時還能提高團(tuán)隊開發(fā)的效率。良好的個人編程風(fēng)格是一個優(yōu)秀程序員素質(zhì)的一部分。
<2>①版權(quán)和版本聲明、②程序版本、③注釋、④命名規(guī)則、⑤數(shù)據(jù)說明、⑥語句構(gòu)造、⑦輸入\輸出、⑧效率
答:①機(jī)器語言
優(yōu)點:執(zhí)行速度快
缺點:對程序員的要求較高,花費時間長,直觀性差,容易出錯
②匯編語言
優(yōu)點:可高效地訪問、控制計算機(jī)的各種硬件設(shè)備
缺點:不能直接識別匯編語言
③高級語言
優(yōu)點:易懂、易記、易改、移植性較強(qiáng)
缺點:經(jīng)過解釋或編譯才能被計算機(jī)識別、執(zhí)行,其效率比匯編語言還低
④超高級語言
優(yōu)點:易懂、易記、易改、移植性較強(qiáng)
缺點:經(jīng)過解釋或編譯才能被計算機(jī)識別、執(zhí)行,其效率比匯編語言還低
答:注釋有利于軟件開發(fā)人員之間以及開發(fā)人員和用戶之間進(jìn)行交流的重要途徑,有利于日后的軟件維護(hù)。
總結(jié)
以上是生活随笔為你收集整理的软件工程(吕云翔第二版)部分简答题答案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盘点9个你可能不会用的JS技巧
- 下一篇: 盘点最经典的外包案例