第一篇:2004年KK軟件工程考試試卷及答案
一,單項選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個選項中只有一個選項是符合題目要求的,請將正確選項前的字母填在題后的橫線上。
1.可行性研究要進行一次_____需求分析。
參考答案為:C
A.詳細的B.全面的
C.簡化的、壓縮的D.徹底的
[解析]軟件的可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定該軟件項目是否能夠開發(fā),是否值得去開發(fā)。其實質(zhì)是要進行一次簡化、壓縮了的需求分析、設計過程,要在較高層次上以較抽象的方式進行需求分析和設計過程。因此答案為C。
2.系統(tǒng)流程圖用于可行性分析中的_____的描述。
參考答案為:A
A.當前運行系統(tǒng)
B.當前邏輯模型
C.目標系統(tǒng)
D.新系統(tǒng)
[解析]可行性研究首先要確定項目的規(guī)模和目標,然后就需要對當前運行的系統(tǒng)進行研究了,在考察系統(tǒng)的基礎上,通過描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖,與有關人員一起審查該系統(tǒng)流程圖是否正確。描述的對象是當前正在運行的系統(tǒng),因此選擇A。
3.系統(tǒng)流程圖是描述_____的工具。
參考答案為:C
A.邏輯系統(tǒng)
B.程序系統(tǒng)
C.體系結構
D.物理系統(tǒng)
[解析]系統(tǒng)流程圖是用圖形符號來表示系統(tǒng)中的各個元素,例如人工處理、數(shù)據(jù)庫、設備等,流程圖表達了系統(tǒng)中各個元素之間的信息流動情況。是描繪物理系統(tǒng)的傳統(tǒng)工具。
4._______工具在軟件詳細設計過程中不采用。
參考答案為:D
A.判定表
B.IPO圖
C.PDL
D.DFD圖
[解析]詳細描述處理過程常用三種工具:圖形、表格和語言。其中圖形工具有結構化流程圖、盒圖和問題分析圖三種,答案中的判定表是用來表示復雜的條件組合與應做的動作之間的對應關系。IPO圖用來描述每個模塊輸入/輸出數(shù)據(jù)、處理功能及模塊調(diào)用的詳細情況。PDL是過程設計語言的縮寫,也稱程序描述語言,用于描述模塊算法設計和處理細節(jié)的語言,這三種都可以在軟件詳細設計過程中使用,而DFD圖則是數(shù)據(jù)流圖,是以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,只反映系統(tǒng)必須完成的邏輯功能,所以它只是一種功能模型,不能在詳細設計過程中使用。
5.程序的三種基本控制結構是
參考答案為:B
A.過程、子程序和分程序
B.順序、選擇和重復
C.遞歸、堆棧和隊列
D.調(diào)用、返回和轉移
[解析]程序的三種基本控制結構是順序、選擇和循環(huán)(重復)。子程序只是程序設計一種方法,遞歸則是一種算法,都算不上是控制結構。
6.程序的三種基本控制結構的共同特點是
參考答案為:D
A.不能嵌套使用
B.只能用來寫簡單程序
C.已經(jīng)用硬件實現(xiàn)
D.只有一個入口和一個出口
[解析]程序的特點就是從一個入口開始,最終以一個出口結束,其間可以用順序,選擇和循環(huán)方式對程序的流向進行控制。三種結構可以寫出非常復雜的程序,而且選擇和循環(huán)都可以嵌套設計。
7.產(chǎn)生軟件維護的副作用,是指
參考答案為:C
A.開發(fā)時的錯誤
B.隱含的錯誤
C.因修改軟件而造成的錯誤
D.運行時誤操作
[解析]因修改軟件而造成的錯誤或其他不希望出現(xiàn)的情況稱為維護的副作用,包括編碼副作用、數(shù)據(jù)副作用、文檔副作用三種。只有答案C是正確的表述。
8.維護中,因誤刪除一個標識符而引起的錯誤是_________副作用。
參考答案為:C
A.文檔
B.數(shù)據(jù)
C.編碼
D.設計
[解析]編碼副作用指的是在使用程序設計語言修改源代碼時可能引入錯誤,比如刪除或修改一個子程序、一個標號、一個標識符,改變程序代碼的時序關系,修改文件的打開或關閉等。因此本題答案為C。
9.可維護性的特性中相互促進的是
參考答案為:A
A.可理解性和可測試性
B.效率和可移植性
C.效率和可修改性
D.效率和結構好
[解析]軟件的可維護性可用七個質(zhì)量特性來衡量,分別是:可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。對于不同類型的維護,這些特性的側重點也不相同,有一些可維護特性是可以相互促進的,比如可理解性和可測試性,可理解性和可修改性,另外一些則是相互矛盾的,如答案中的B效率和可移植性、C中的效率和可修改性。至于D中的結構好則不屬于可維護性的特征。
10.汽車有一個發(fā)動機。汽車和發(fā)動機之間的關系是_____關系。
參考答案為:B
A.一般具體
B.整體部分
C.分類關系
D.主從關系
[解析]類有兩種主要的結構關系,即一般——具體結構關系和整體——部分結構關系。前者稱為分類結構,用來描述現(xiàn)實世界中的一般化的抽象關系。后者稱為組裝結構,用來描述現(xiàn)實世界中的類的組成的抽象關系。汽車和發(fā)動機的關系很明顯,應該屬于整體——部分關系。
11.在變更控制中,______可以用來確保由不同用戶所執(zhí)行的并發(fā)變更。
參考答案為:B
A.異步控制
B.同步控制
C.存取控制
D.基線控制
[解析]變更控制包括建立控制點和建立報告與審查制度,其過程中的“檢出”和“登入”處理實現(xiàn)了存取控制和同步控制,存取控制管理各個用戶存取和修改一個特定軟件配置對象的權限,同步控制可用來確保由不同用戶所執(zhí)行任務的并發(fā)變更。
12.變更控制是一項最重要的軟件配置任務,其中“檢出”和______處理實現(xiàn)了兩個重要的變更控制要素,即存取控制和同步控制。
參考答案為:A
A.登入
B.管理
C.填寫變更要求
D.審查
[解析]“檢出”和“登入”處理實現(xiàn)了兩個重要的變更控制要素。具體說明見上題。
13.提高軟件質(zhì)量和可靠的技術大致可分為兩大類:其中一類就是避開錯誤技術,但避開錯誤技術無法做到完美無缺和絕無錯誤,這就需要
參考答案為:D
A.消除錯誤
B.檢測錯誤
C.避開錯誤
D.容錯
[解析]提高軟件質(zhì)量和可靠性的技術大致可分為兩類,一類是避開錯誤技術,即在開發(fā)的過程中不讓差錯潛入軟件的技術,另一類是容錯技術,即對某些無法避開的差錯,使其影響減至最小的技術。
14._____是以提高軟件質(zhì)量為目的的技術活動。
參考答案為:D
A.技術創(chuàng)新
B.測試
C.技術創(chuàng)造
D.技術評審
[解析]技術評審是以提高軟件質(zhì)量為目的的技術活動,是對軟件本身的結構、與運行環(huán)境的接口、變更帶來的影響等方面進行的評審活動。
15.面向?qū)ο蠓椒▽W的出發(fā)點和基本原則是盡可能模擬人類習慣的思維方式,分析、設計和實現(xiàn)一個軟件系統(tǒng)的方法和過程,盡可能接近于人類認識世界解決問題的方法和過程。因此面向?qū)ο蠓椒ㄓ性S多特征,如軟件系統(tǒng)是由對象組成的;________;對象彼此之間僅能通過傳遞消息互相聯(lián)系;層次結構的繼承。
參考答案為:C
A.開發(fā)過程基于功能分析和功能分解
B.強調(diào)需求分析重要性
C.把對象劃分成類,每個對象類都定義一組數(shù)據(jù)和方法
D.對既存類進行調(diào)整
[解析]面向?qū)ο蠓椒ㄓ兴膫€特征,分別是對象唯一性、分類性、繼承性和多態(tài)性。其中分類性是指將具有一致的數(shù)據(jù)結構(屬性)和行為(操作)的對象抽象成類,每個類是具有相同性質(zhì)的個體集合,而每個對象相關類的實例,對象彼此之間通過傳遞消息互相聯(lián)系。
16.軟件開發(fā)過程中,抽取和整理用戶需求并建立問題域精確模型的過程叫
參考答案為:D
A.生存期
B.面向?qū)ο笤O計
C.面向?qū)ο蟪绦蛟O計
D.面向?qū)ο蠓治?/p>
[解析]面向?qū)ο蟮姆治龅倪^程就是認識客觀世界的過程,其目的就是建立對客觀世界的精確、簡潔、可理解的正確模型,也就是所謂的建模。因此本題答案為D。
17.原型化方法是用戶和設計者之間執(zhí)行的一種交互構成,適用于______系統(tǒng)。
參考答案為:A
A.需求不確定性高的 B.需求確定的
C.管理信息
D.實時
[解析]原型不同于最終系統(tǒng),它只實現(xiàn)所選擇的部分功能,僅是為了試驗或是演示而用,部分功能需求可以忽略或者模擬實現(xiàn),因此適用于需求不確定性高的系統(tǒng)。
18.原型化方法是一種_______型的設計過程。
參考答案為:A
A.自外向內(nèi)
B.自頂向下
C.自內(nèi)向外
D.自底向上
[解析]原型化方法的基本思想是根據(jù)用戶給出的基本需求,通過快速實現(xiàn)構造出一個小型的、可執(zhí)行的模型,用戶在計算機上實際運行這個用戶界面原型,在試用過程中提出意見或建議,然后開發(fā)者再對原型進行改進。如此周而復始,逐步彌補不足之處,從而提高了最終產(chǎn)品的質(zhì)量。它是一種自外向內(nèi)的設計過程。
19.為了提高測試的效率,應該
參考答案為:D
A.隨機地選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計劃
D.選擇發(fā)現(xiàn)錯誤可能性大的數(shù)據(jù)作為測試數(shù)據(jù)
[解析]軟件測試是為了盡可能多的發(fā)現(xiàn)程序中的錯誤,尤其是發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。在選取測試用例時,不可能進行窮舉測試,在每一個細節(jié)進行測試,也不能無目的地隨機選取測試數(shù)據(jù),為了提高測試的效率,測試用例應該選擇發(fā)現(xiàn)錯誤可能性大的部分,這樣的測試結果才符合軟件測試的目的。
20.使用白盒測試方法時,確定測試數(shù)據(jù)應根據(jù)_______和指定的覆蓋標準。
參考答案為:A
A.程序的內(nèi)部邏輯
B.程序的復雜結構
C.使用說明書
D.程序的功能
[解析]白盒測試是把測試對象看作一個打開的盒子,測試人員須了解程序的內(nèi)部結構和處理過程,由于白盒測試是一種結構測試,所以被測對象基本上是源程序,以程序的內(nèi)部邏輯和指定的覆蓋標準確定測試數(shù)據(jù)。
二,填空題(本大題共10小題,每小題2分,共20分)
21.系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中各個元素表達了系統(tǒng)中各種元素之間的()情況。
解:信息流動
[解析]系統(tǒng)流程圖是描述物理系統(tǒng)的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中的各個元素,如人工處理、數(shù)據(jù)處理、數(shù)據(jù)庫、文件、設備等,表達了元素之間的信息流動的情況。
22.成本效益分析的目的是從()角度評價開發(fā)一個項目是否可行。
解:經(jīng)濟
[解析]成本效益分析首先是估算將要開發(fā)的系統(tǒng)的開發(fā)成本,然后與可能取得的效益進行比較和權衡,其目的是從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行。
23.自頂向下結合的漸增式測試法,在組合模塊時有兩種組合策略:深度優(yōu)先策略和()。
解:寬度優(yōu)先策略
[解析]漸增式測試法有自頂向下結合和自底向上結合兩種組裝模塊的方法,其中自頂向下集成是構造程序結構的一種增量式方式,不需要編寫驅(qū)動模塊,只需要編寫樁模塊。它從主控模塊開始,按照軟件的控制層次結構,以深度優(yōu)先或?qū)挾葍?yōu)先的策略,逐步把各個模塊集成在一起。
24.獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條()的邊的路徑。
解:在其他獨立路徑中未有過
[解析]在基本路徑測試中,以詳細設計或源程序為基礎,導出控制流程圖的拓撲結構——程序圖,在計算了程序圖的環(huán)路復雜性之后,確定只包含獨立路徑的基本路徑圖,其中獨立路徑是包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條在其他獨立路徑中未有過的邊的路徑。
25.匯編語言是面向()的,可以完成高級語言無法完成的特殊功能,如與外部設備之間的一些接口工作。
解:機器
[解析]匯編語言屬于低級語言,是一種面向機器的語言,它與高級語言相比有許多優(yōu)越性:如操作靈活,可以直接作用到硬件的最下層,完成與外部設備的接口工作等,是能夠利用計算機硬件特性直接控制硬件設備的唯一語言。
26.在JSP方法中解決結構沖突的具體辦法是()。
解:中間數(shù)據(jù)結構或中間文件
[解析]JSP方法是面向數(shù)據(jù)結構的設計方法。它定義了一組以數(shù)據(jù)結構為指導的映射過程,根據(jù)輸入、輸出的數(shù)據(jù)結構,按一定的規(guī)則映射成軟件的過程描述,在JSP方法中解決結構沖突的具體辦法是引入中間數(shù)據(jù)結構或中間文件,將沖突部分分隔開來,建立多個程序結構,再利用中間文件把它們聯(lián)系起來,構成一個系統(tǒng)的整體。
27.詳細設計的任務是確定每個模塊的內(nèi)部特性,即模塊的算法、()。
解:使用的數(shù)據(jù)
[解析]詳細設計的基本任務是為每個模塊進行詳細的算法設計,為模塊內(nèi)的數(shù)據(jù)結構進行設計,確定每個模塊的內(nèi)部特性,包括模塊的算法和使用的數(shù)據(jù)。對數(shù)據(jù)庫進行物理設計等。
28.所有軟件維護申請報告要按規(guī)定方式提出,該報告也稱()報告。
解:軟件問題
[解析]在軟件維護的流程中,第一步就是制定維護申請報告,也稱為軟件問題報告,它是維護階段的一種文檔,由申請維護的用戶填寫。
29.有兩類維護技術:在開發(fā)階段使用來減少錯誤、提高軟件可維護性的面向維護的技術;在維護階段用來提高維護的效率和質(zhì)量的()技術。
解:維護支援
[解析]面向維護的技術涉及軟件開發(fā)的所有階段,能夠減少軟件錯誤,提高軟件的可維護性。而維護支援技術則包含信息收集,錯誤原因分析,維護方案評價等項,是在軟件維護階段用來提高維護效率和質(zhì)量的技術。
30.科學工程計算需要大量的標準庫函數(shù),以便處理復雜的數(shù)值計算,可供選擇的語言有:()、PASCAL語言、C語言和PL/1語言。
解:FORTRAN語言
[解析]計算機語言根據(jù)不同行業(yè)的需求,使用的側重點也不盡相同,在辦公管理方面,一些數(shù)據(jù)庫語言如FOXPRO、ORICAL有很多的應用,在工程行業(yè),計算機語言的科學計算能力就顯得格外重要,如MATLAB、PL/
1、FORTRAN語言都是工程計算中常用的語言。
三,名詞解釋(本大題共5小題,每小題3分,共15分)
31.經(jīng)濟可行性
解:進行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資開發(fā)。
[解析]對于一個系統(tǒng)所必須要衡量的是經(jīng)濟上是否合算,經(jīng)濟可行性的范圍很廣,包括效益分析、潛在市場前景等。
32.社會可行性
解:要開發(fā)的項目是否存在任何侵犯、妨礙等責任問題,要開發(fā)項目目的運行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。
[解析]社會可行性包括合同、責任、侵權等技術人員不甚了解的諸多問題。
33.投資回收期
解:投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需的時間。
[解析]通常我們用投資回收期來衡量一個開發(fā)項目的價值,投資回收期越短,就越快獲得利潤。
34.對應關系
解:即有直接因果關系在程序中可以同時處理。
[解析]對應關系是指數(shù)據(jù)單元在數(shù)據(jù)內(nèi)容上、數(shù)量上和順序上有直接的因果關系,對于重復的數(shù)據(jù)單元,重復的次序和次數(shù)都相同才有對應關系。
35.結構沖突
解:輸入數(shù)據(jù)與輸出數(shù)據(jù)結構找不到對應關系的情況,稱為結構沖突。
[解析]使用JSP方法時會遇到此類結構沖突問題,對此,Jackson提出了引入中間數(shù)據(jù)結構或中間文件的辦法,將沖突部分分隔開來,建立多個程序結構,再利用中間文件把它們聯(lián)系起來,構成一個系統(tǒng)的整體。
四,簡答題(本大題共4小題,每小題5分,共20分)
36.可行性研究報告的主要內(nèi)容有哪些?
解:一個可行性研究報告的主要內(nèi)容如下:
(1)引言:說明編寫本文檔的目的;項目的名稱、背景;本文檔用到的專門術語和參考資料。
(2)可行性研究前提:可行性研究前提。說明開發(fā)項目的功能、性能和基本要求;達到的目標;各種限制條件;可行性研究方法和決定可行性的主要因素。
(3)對現(xiàn)有系統(tǒng)的分析:說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;工作負荷;各項費用支出;所需要各類專業(yè)技術人員的數(shù)量;所需要各種設備;現(xiàn)有系統(tǒng)存在什么問題。
(4)所建議系統(tǒng)的技術可行性分析:所建議系統(tǒng)的簡要說明;處理流程和數(shù)據(jù)流程;與現(xiàn)有的系統(tǒng)比較的優(yōu)越性;采用所建議系統(tǒng)對用戶的影響;對各種設備、現(xiàn)有軟件、開發(fā)環(huán)境、運行環(huán)境的影響;對經(jīng)費支出的影響;對技術可行性的評價。
(5)所建議系統(tǒng)的經(jīng)濟可行性分析:說明所建議系統(tǒng)的各種支出,各種效益;收益投資比;投資回收周期。
(6)社會因素可行性分析:說明法律因素,對合同責任、侵犯專利權、侵犯版權等問題的分析;說明用戶使用可行性,是否滿足用戶行政管理、工作制度、人員素質(zhì)的要求。
(7)其他可供選擇方案:逐一說明其他可供選擇的方案,并說明未被推薦的理由。
(8)結論意見:說明項目是否能開發(fā);還需要什么條件才能開發(fā);對項目目標有什么變動等。
[解析]做軟件的可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定該軟件項目是否能夠開發(fā),是否值得去開發(fā),其中的問題能否解決,報告共分為八個基本內(nèi)容。
37.系統(tǒng)設計的內(nèi)容是什么?
解:系統(tǒng)設計階段先從高層入手,然后細化。系統(tǒng)設計要決定整個結構及風格,這種結構為后面設計階段的更詳細策略的設計提供了基礎。
(1)系統(tǒng)分解。系統(tǒng)中主要的組成部分稱為子系統(tǒng),子系統(tǒng)既不是一個對象也不是一個功能,而是類、關聯(lián)、操作、時間和約束的集合。每次分解的各子系統(tǒng)數(shù)目不能太多,最底層子系統(tǒng)稱為模塊。
(2)確定并發(fā)性。分析模型、現(xiàn)實世界及硬件中不少對象均是并發(fā)的。系統(tǒng)設計的一個重要目標就是確定哪些是必須同時動作的對象,哪些不是同時動作的對象。后者可以放在一起,而綜合成單個控制線或任務。
(3)處理器及任務分配。各并發(fā)子系統(tǒng)必須分配給單個硬件單元,要么是一個一般的處理器,要么是一個具體的功能單元,必須完成下面的工作:估計性能要求和資源需求,選擇實現(xiàn)子系統(tǒng)的硬軟件,將軟件子系統(tǒng)分配給各處理器以滿足性能要求和極小化處理器之間的通信,決定實現(xiàn)各子系統(tǒng)的各物理單元的連接。
(4)數(shù)據(jù)存儲管理。系統(tǒng)中的內(nèi)部數(shù)據(jù)和外部數(shù)據(jù)的存儲管理是一項重要的任務。通常各數(shù)據(jù)存儲可以將數(shù)據(jù)結構、文件、數(shù)據(jù)庫組合在一起,不同數(shù)據(jù)存儲要在費用、訪問時間、容量以及可靠性之間做折中考慮。
(5)全局資源的處理。必須確定全局資源,并且制定訪問全局資源的策略。全局資源包括:物理資源,如處理器、驅(qū)動器等;空間,如盤空間、工作站屏等;邏輯名字,如對象標識符、類名、文件名等。
如果資源是物理對象,則可以通過建立協(xié)議實現(xiàn)對并發(fā)系統(tǒng)的訪問,以達到自身控制;如果資源是邏輯實體,如對象標識符,那么在共享環(huán)境中有沖突訪問的可能,如獨立的事務可能同時使用同一個對象標識符,則各個全局資源都必須有一個保護對象,由保護對象來控制對該資源的訪問。
(6)選擇軟件控制機制。分析模型中所有交互行為都表示為對象之間的事件。系統(tǒng)設計必須從多種方法中選擇某種方法來實現(xiàn)軟件的控制。
(7)人機交互接口設計。設計中的大部分工作都與穩(wěn)定的狀態(tài)行為有關,但必須考慮用戶使用系統(tǒng)的交互接口。
[解析]系統(tǒng)設計是問題求解及建立解答的高級策略。必須制定解決問題的基本方法,系統(tǒng)的高層結構形式包括子系統(tǒng)的分解、它的固有并發(fā)性、子系統(tǒng)分配給硬軟件、數(shù)據(jù)存儲管理、資源協(xié)調(diào)、軟件控制實現(xiàn)、人機交互接口。
38.什么是軟件危機?軟件危機的表現(xiàn)是什么?其產(chǎn)生的原因是什么?
解:軟件發(fā)展第二階段的末期,由于計算機硬件技術的進步,計算機運行速度、容量、可靠性有顯著的提高,生產(chǎn)成本顯著下降,這為計算機的廣泛應用創(chuàng)造了條件。一些復雜的、大型的軟件開發(fā)項目提出來了,但是,軟件開發(fā)技術的進步一直未能滿足發(fā)展的需要。在軟件開發(fā)中遇到的問題找不到解決辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。
軟件危機表現(xiàn)在以下四個方面:
(1)經(jīng)費預算經(jīng)常突破,完成時間一再拖延。由于缺乏軟件開發(fā)的經(jīng)驗和軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計劃很難制定。主觀盲目制定計劃,執(zhí)行起來與實際情況有很大差距,使得開發(fā)經(jīng)費一再突破。由于對工作量估計不足,對開發(fā)難度估計不足,進度計劃無法按時完成,開發(fā)時間一再拖延。
(2)開發(fā)的軟件不能滿足用戶要求。開發(fā)初期對用戶的要求了解不夠明確,未能得到明確的表達。開發(fā)工作開始后,軟件人員和用戶又未能及時交換意見,使得一些問題不能及時解決,導致開發(fā)的軟件不能滿足用戶的要求,因而導致開發(fā)失敗。
(3)開發(fā)的軟件可維護性差。開發(fā)過程中沒有同意的、公認的規(guī)范,軟件開發(fā)人員按各自的風格工作,各行其是,開發(fā)過程無完整、規(guī)范的文檔,發(fā)現(xiàn)問題后進行雜亂無章的修改。程序結構不好,運行時發(fā)現(xiàn)錯誤也很難修改,導致維護性差。
(4)開發(fā)的軟件可靠性差。由于在開發(fā)過程中,沒有確保軟件質(zhì)量的體系和措施,在軟件測試時,又沒有嚴格的、充分的、完全的測試,提交給用戶的軟件質(zhì)量差,在運行中暴露出大量的問題。
造成軟件危機的原因是:
(1)軟件的規(guī)模越來越大,結構越來越復雜。
(2)軟件開發(fā)管理困難而復雜。
(3)軟件開發(fā)費用不斷增加。
(4)軟件開發(fā)技術落后。
(5)生產(chǎn)方式落后。
(6)開發(fā)工具落后,生產(chǎn)率提高緩慢。
[解析]由于軟件危機的出現(xiàn),人們才開始用工程化的思想來開發(fā)軟件,從此,軟件生產(chǎn)才步入了軟件工程時代。
39.軟件質(zhì)量保證應做好哪幾方面的工作?
解:軟件質(zhì)量保證是軟件工程管理的重要內(nèi)容,軟件質(zhì)量保證應做好以下幾方面的工作:
(1)采用技術手段和工具。質(zhì)量保證活動要貫徹開發(fā)過程始終,必須采用技術手段和工具,尤其是使用軟件開發(fā)環(huán)境來進行軟件開發(fā)。
(2)組織正式技術評審。在軟件開發(fā)的每一個階段結束時,都要組織正式的技術評審。國家標準要求單位必須采用審查、文檔評審、設計評審、審計和測試等具體手段來保證質(zhì)量。
(3)加強軟件測試。軟件測試是質(zhì)量保證的重要手段,因為測試可發(fā)現(xiàn)軟件中大多數(shù)潛在錯誤。
(4)推行軟件工程規(guī)范(標準)。用戶可以自己制定軟件工程規(guī)范(標準),但標準一旦確認就應貫徹執(zhí)行。
(5)對軟件的變更進行控制。軟件的修改和變更常常會引起潛伏的錯誤,因此必須嚴格控制軟件的修改和變更。
(6)對軟件質(zhì)量進行度量。即對軟件質(zhì)量進行跟蹤,及時記錄和報告軟件質(zhì)量情況。
[解析]軟件的質(zhì)量保證是向用戶及社會提供滿意的高質(zhì)量的產(chǎn)品,確保軟件產(chǎn)品從誕生到消亡為止的所有階段的質(zhì)量的活動,是軟件工程管理中的重要內(nèi)容。
五,論述題(本大題共3小題,第40小題7分,第41小題8分,第42小題10分,共25分)
40.請使用PAD圖和PDL語言描述在數(shù)組A(1)~A(10)中找最大數(shù)的算法。
解:PDL語言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1)MAX =A(N+1);
ELSE MAX =A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD圖:
[解析]人工查找時,是從第一個元素開始查找,用當前元素與下一個元素比較,將較大者作為當前元素又與下一元素比較,如此循環(huán),直到數(shù)組末尾。
41.根據(jù)下列條件使用等價類劃分法設計測試用例。
某一8位微機,其八進制常數(shù)定義為:以零開頭的數(shù)是八進制整數(shù),其值的范圍是-177~177,如05,0127,-065
解:(1)劃分等價類并編號,如下表示:(4分)
(2)為合理等價類設計測試用例,表中有兩個合理等價類,設計兩個例子(2分)
(3)為不合理等價類測試用例,至少設計一個測試用例(2分)
[解析]等價類劃分屬于黑盒測試的一種,它將輸入數(shù)據(jù)域按有效的或無效的劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試,這樣用少量有代表性的例子代替大量測試目的相同的例子,可以有效提高測試效率。本題劃分了3個合理等價類,9個不合理等價類進行測試,取到了預期的效果。
42.某電器集團公司下屬的廠包括技術科、生產(chǎn)科等基層單位?,F(xiàn)在想建立一個計算機輔助企業(yè)管理系統(tǒng),其中:
生產(chǎn)科的任務是:
(1)根據(jù)銷售公司轉來的內(nèi)部合同(產(chǎn)品型號、規(guī)格、數(shù)量、交獲日期)制定車間月生產(chǎn)計劃。
(2)根據(jù)車間實際生產(chǎn)日報表、周報表調(diào)整月生產(chǎn)計劃
(3)以月生產(chǎn)計劃為以及,制定產(chǎn)品設計(結構、工藝)及產(chǎn)品組裝月計劃。
(4)將產(chǎn)品的組裝計劃傳達到各科,將組裝月計劃分解為周計劃,下達給車間
技術科的任務是:
(1)根據(jù)生產(chǎn)科轉來的組裝計劃進行產(chǎn)品結構設計,產(chǎn)生產(chǎn)品裝配圖給生產(chǎn)科,產(chǎn)生外購需求計劃給供應科,并產(chǎn)生產(chǎn)品自制物料清單。
(2)根據(jù)組裝計劃進行產(chǎn)品工藝設計,根據(jù)產(chǎn)品自制物料清單產(chǎn)生工藝流程圖給零件廠。試寫出以上系統(tǒng)中生產(chǎn)科和技術科處理的軟件結構圖。
解:
畫出生產(chǎn)科圖的給6分,畫出技術科的給4分。
[解析]軟件結構圖是軟件系統(tǒng)的模塊層次結構,反映了整個系統(tǒng)的功能實現(xiàn),即將來程序的控制層次體系,軟件結構往往用樹狀或網(wǎng)狀結構的圖形來表示,其主要內(nèi)容有模塊及模塊的控制關系,根據(jù)題意,可繪制出生產(chǎn)科和技術科的軟件結構圖,其中生產(chǎn)科的結構圖深度和寬度均為4,技術科的結構圖的深度和寬度均為3。
第二篇:軟件工程試卷及答案課件
軟件工程試卷及答案
一、單項選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。
1.“軟件工程的概念是為解決軟件危機而提出的”這句話的意思是()
A.強調(diào)軟件工程成功解決了軟件危機的問題
B.說明軟件危機的存在總是使軟件開發(fā)不像傳統(tǒng)工程項目那樣容易管理
C.說明軟件工程這門學科的形成是軟件發(fā)展的需要
D.說明軟件工程的概念,即:工程的原則、思想、方法可解決當時軟件開發(fā)和維護存在的問題
2.瀑布模型的主要特點是()
A.將開發(fā)過程嚴格地劃分為一系列有序的活動
B.將開發(fā)過程分解為階段
C.提供了有效的管理模式
D.缺乏靈活性
3.在軟件工程的需求分析階段,不屬于問題識別內(nèi)容的是()
A.功能需求B.性能需求
C.環(huán)境需求D.輸入/輸出需求
4.畫某系統(tǒng)的數(shù)據(jù)流圖時,頂層圖有()
A.0張B.1張
C.2張D.3張及其以上
5.軟件模塊內(nèi)聚性最強的是()
A.功能內(nèi)聚B.通信內(nèi)聚
C.偶然內(nèi)聚D.邏輯內(nèi)聚
6.最早提出軟件系統(tǒng)維護問題的階段是()
A.可行性分析B.需求分析
C.概要設計D.詳細設計
7.SD(結構化設計)方法設計的結果是()
A.模塊B.模塊結構圖
C.模塊的算法D.數(shù)據(jù)流圖
8.在進行軟件測試時,首先應當進行以下哪項測試,然后再進行組裝測試,最后再進
行有效性測試()
A.單元測試B.系統(tǒng)測試
C.集成測試D.確認測試
9.軟件詳細設計階段的任務是()
A.算法與數(shù)據(jù)結構設計B.功能設計
C.調(diào)用關系設計D.輸入/輸出設計
10.下列屬于靜態(tài)測試方法的是()
A.黑盒法B.路徑覆蓋
C.白盒法D.人工檢測
11.Fortran語言主要作為以下哪個方面的語言()
A.科學工程計算B.系統(tǒng)軟件
C.事務處理D.人工智能
12.用結構化語言來描述加工邏輯的外層結構時,以下不屬于基本結構的是()
A.順序結構B.選擇結構
C.嵌套結構D.重復結構
l3.可維護軟件的主要特性包括()
A.可理解性、可修改性、可移植性
B.可使用性
C.可維護性、可使用性、可靠性
D.可測試性
14.程序設計語言不具有的特性是()
A.心理特性B.工程特性
C.應用特性D.技術特性
15.下列不屬于項目進度安排主要方法的是()
A.工程網(wǎng)絡圖B.Gantt圖
C.進度結構圖D.任務資源表
16.下列不屬于通常冗余技術的是()
A.結構冗余B.信息冗余
C.時間冗余D.代碼冗余
17.下列工具中,屬于需求追蹤工具的是()
A.在DBMS上的應用運行工具B.追蹤和狀態(tài)報告
C.訪問和版本控制機構D.文件和修改管理
18.關于軟件測試的目的,下面觀點錯誤的是()
A.為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程
B.一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤
C.證明程序是正確、沒有錯誤的
D.一個成功的測試用例是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試
19.在制定項目開發(fā)計劃文檔時,不包含的內(nèi)容是()
A.項目概述B.實施計劃
C.測試計劃D.交付期限
20.面向?qū)ο蟮拈_發(fā)方法中,以下哪種方法原是面向Ada語言的,并處于面向?qū)ο箝_發(fā)方法的奠基性地位()
A.Booch方法B.Coad方法
C.UML語言D.OMT方法
二、填空題(本大題共10小題,每小題2分,共20分)
請在每小題的空格中填上正確答案。錯填、不填均無分。
21.可行性研究從技術可行性、經(jīng)濟可行性、________三方面進行分析。
22.IDEF0方法用來描述系統(tǒng)的功能活動及其聯(lián)系,建立系統(tǒng)的_______模型。
23.結構化方法總的指導思想是_______逐層分解。
24.在一段程序中,將多次出現(xiàn)的一組語句設計為一個子程序,供多個部分調(diào)用,這種情況出現(xiàn)的內(nèi)聚稱為________。
25.軟件部件的內(nèi)部實現(xiàn)與外部可訪問性分離,這是指軟件的______。
26.用來模擬被測模塊的上級調(diào)用模塊的模塊稱為_______。
27.軟件復雜性度量的參數(shù)很多,主要有規(guī)模、_______、結構、智能度。
28.軟件開發(fā)環(huán)境中最主要的組成部分是______。
29.軟件工程管理的具體內(nèi)容包括對開發(fā)人員、組織機構、用戶和______等方面的管理。
30.增量模型根據(jù)增量方式和形式的不同,分為_____和原型模型。
三、名詞解釋題(本大題共5小題,每小題3分,共15分)31.過程設計語言(PDL)32.可移植性
33.漸增式測試
34.詳細設計
35.條件覆蓋
四、簡答題(本大題共4小題,每小題5分,共20分)36.軟件生存周期可以分為幾個階段,每個階段的提交物是什么?
37.結構化分析的描述工具有哪些?簡述結構化分析的步驟。
38.什么是黑盒測試法?常用的黑盒測試方法有哪些?
39.簡述面向?qū)ο蟮奶卣鳌?/p>
五、應用題(本大題共2小題,4.下面關于PDL語言不正確的說法是()A.PDL是描述處理過程怎么做
B.PDL是只描述加工做什么
C.PDL也稱為偽碼
D.PDL的外層語法應符合一般程序設計語言常用的語法規(guī)則
5.詳細設計與概要設計銜接的圖形工具是()A.DFD圖 B.程序圖 C.PAD圖 D.SC圖
6.不適合作為數(shù)據(jù)處理與數(shù)據(jù)庫應用的語言是()A.SQL B.Cobol C.4GL D.Lisp
7.下列關于功能性注釋不正確的說法是()
A.功能性注釋嵌在源程序中,用于說明程序段或語句的功能以及數(shù)據(jù)的狀態(tài)
B.注釋用來說明程序段,需要在每一行都要加注釋
C.可使用空行或縮進,以便很容易區(qū)分注釋和程序
D.修改程序也應修改注釋
8.下列關于效率的說法不正確的是()
A.效率是一個性能要求,其目標應該在需求分析時給出
B.提高程序效率的根本途徑在于選擇良好的設計方法,數(shù)據(jù)結構與算法
C.效率主要指處理機時間和存儲器容量兩個方面
D.程序的效率與程序的簡單性無關
9.測試的關鍵問題是()
A.如何組織對軟件的評審 B.如何驗證程序的正確性
C.如何采用綜合策略 D.如何選擇測試用例
10.結構化維護與非結構化維護的主要區(qū)別在于()A.軟件是否結構化 B.軟件配置是否完整
C.程序的完整性 D.文檔的完整性
11.軟件維護困難的主要原因是()A.費用低 B.人員少
C.開發(fā)方法的缺陷 D.得不到用戶支持
12.可維護性的特性中,相互矛盾的是()A.可理解性與可測試性 B.效率與可修改性
C.可修改性和可理解性 D.可理解性與可讀性
13.快速原型是利用原型輔助軟件開發(fā)的一種新思想,它是在研究()的方法和技術中產(chǎn)生的。
A.需求階段 B.設計階段
C.測試階段 D.軟件開發(fā)的各個階段
14.從目前情況來看,增量模型存在的主要問題是()A.用戶很難適應這種系統(tǒng)開發(fā)方法
B.該方法的成功率很低
C.缺乏豐富而強有力的軟件工具和開發(fā)環(huán)境
D.缺乏對開發(fā)過程中的問題和錯誤具有應付變化的機制
15.下列有關軟件工程的標準,屬于行業(yè)標準的是()A.GB B.DIN C.ISO D.IEEE 16.下列文檔與維護人員有關的有()A.軟件需求說明書 B.項目開發(fā)計劃
C.概要設計說明書 D.操作手冊
17.在屏蔽軟件錯誤的冗錯技術中,冗余附加件的構成包括()A.關鍵程序和數(shù)據(jù)的冗余存儲和調(diào)用
B.為檢測或糾正信息在運算或傳輸中的錯誤須外加的一部分信息
C.檢測、表決、切換、重構、糾錯和復算的實現(xiàn)
D.實現(xiàn)錯誤檢測和錯誤恢復的程序
18.()是為了確保每個開發(fā)過程的質(zhì)量,防止把軟件差錯傳遞到下一個過程而進行的工作。
A.質(zhì)量檢測 B.軟件容錯 C.軟件維護 D.系統(tǒng)容錯
19.表示對象相互行為的模型是()模型。
A.動態(tài)模型 B.功能模型 C.對象模型 D.靜態(tài)模型
20.CASE工具的表示集成是指CASE工具提供相同的()A.編程環(huán)境 B.用戶界面
C.過程模型 D.硬件/操作系統(tǒng)
二、填空題(每空2分,共20分)
1.作為計算機科學技術領域中的一門新興學科,軟件工程主要是為了解決________問題。
2.投資回收期就是使________等于最初的投資費用所需時間。
3.在IDEF0方法的一個活動圖形中控制活動是指________。
4.劃分模塊時盡量做到________,保持模塊的獨立性。
5.PAD圖是一種________展開的二維樹形結構。
6.對校正性維護應該從________的嚴重性開始。
7.類的實例化是________。
8.人們常用硬件可靠性的定量度量方法來度量軟件的可靠性和可用性,常用的度量軟件可靠性的兩個指標是________和________。
9.將待開發(fā)的軟件細化,分別估算每一個子任務所需要的開發(fā)工作量,然后將它們加起來,將得到軟件的總開發(fā)量。這種成本估算方法稱為________。
三、名詞解釋(每小題3分,共15分)1.需求分析
2.耦合性
3.結構化程序設計
4.狀態(tài)圖
5.軟件配置管理
四、簡答題(每小題5分,共20分)1.簡述演繹法調(diào)試的具體步驟。
2.簡述增量模型和瀑布模型的本質(zhì)區(qū)別。
3.簡述設計一個容錯系統(tǒng)的步驟。
4.簡述在項目開發(fā)時,選擇程序設計語言應考慮因素。
五、應用題(A=2, B=1,X=1 A=2, B=2, X=1 A=1, B=1, X=1 A=1, B=0,X A=1, B=0, X=3 A=1, B=1, X=4 A=1, B=1,X=1 A=1, B=2, X=2 A=3, B=0, X=3
④在4-6的答案中滿足條件組合覆蓋的測試用例是________(1分)⑤在4-6的答案中滿足路徑覆蓋的測試用例是________(1分)
3.某電視購物公司采用面向?qū)ο蠹夹g實現(xiàn)商品銷售計算機系統(tǒng),基本需求如下:
(1)公司提供多種類商品,每種商品通過委托訂單來進行征訂。
(2)公司下屬多個分公司,每個分公司負責本地區(qū)委托訂單的收錄,打印收款憑證單。
(3)公司負責分類、統(tǒng)計各分公司送來的委托單,進行分類統(tǒng)計。
要求:按照上述模型建立對象模型。(11分)
答 案
一、1.C 2.D 3.D 4.B 5.D 6.D 7.B 8.D 9.D 10.D 11.C 12.B 13.A 14.C 15.D 16.C 17.D 18.A 19.A 20.B
二、1.如何建立一個軟件系統(tǒng)
2.積累的經(jīng)濟效益
3.所受到的約束條件
4.高內(nèi)聚低耦合5.有左往右
6.評價錯誤
7.對象
8.MTTF MTBF 9.自底向上估算方法
三、1.需求分析是指,開發(fā)人員要準確理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求陳
述轉化為完整的需求定義,再由需求定義轉換到相應的形式功能規(guī)約(需求規(guī)格說明)的過程。
2.耦合性也稱塊間聯(lián)系。指軟件系統(tǒng)結構中各模塊間相互聯(lián)系緊密程度的一種度量。
3.結構化程序設計是實現(xiàn)該目標的關鍵技術之一,它指導人們用良好的思想方法開發(fā)易于理解、易于驗證的程序。結構化程序設計方法的基本要點是:
1)采用自頂向下、逐步求精的程序設計方法
2)使用三種基本控制結構構造程序 3)主程序員組的組織形式。
4.狀態(tài)圖是一個標準的計算機概念,它是有限自動機的圖形表示,它反映了狀態(tài)與事件的關系,狀態(tài)圖確定了由事件序列引起的狀態(tài)序列。
5.軟件配置管理,簡稱SCM,它用于整個軟件工程過程。其主要目標是:標識變更;控制變更;確保變更正確地實現(xiàn);報告有關變更。SCM是一組管理整個軟件生存期各階段中變更的活動。
四、1.演繹法調(diào)試步驟:列出所有可能的錯誤原因的假設;排除不適當?shù)募僭O;精化余于的假設;證明余于的假設。
2.瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細節(jié)。而增量模型屬于非整體開發(fā)模型,它推遲某些階段或所有階段中的細節(jié),從而較早的產(chǎn)生工作軟件。
3.(1)按設計任務要求進行常會設計,盡量保證設計的正確
(2)對可能出現(xiàn)的錯誤分類,確定實現(xiàn)容錯的范圍
(3)按照“成本—效率”最優(yōu)原則,選用某種冗余手段(結構,信息,時間)來實現(xiàn)對各類錯誤的屏蔽
(4)分析或驗證上述冗余結構的容錯效果
4.(1)項目的應用領域;(2)軟件開發(fā)的方法
(3)軟件執(zhí)行的環(huán)境(4)算法和數(shù)據(jù)結構的復雜性(5)軟件開發(fā)人員的知識
第三篇:軟件工程試卷及答案(易考題_)
1.在下列工具與環(huán)境中()屬于較早期的CASE。A.基于信息工程CASE B.人工智能CASE C.結構的基于圖形CASE D.集成的CASE環(huán)境 2.Putnam成本估算模型是一個()模型。
A.靜態(tài)單變量 B.動態(tài)單變量 C.靜態(tài)多變量
D.動態(tài)多變量 3.在McCall軟件質(zhì)量度量模型中,()屬于面向軟件產(chǎn)品修改。
A.可靠性 B.可重用性
C.適應性
D.可移植性 4.ISO的軟件質(zhì)量評價模型由3層組成,其中用于評價設計質(zhì)量的準則是()A.SQIC B.SQMC C.SQRC D.SQDC 5.軟件復雜性度量的參數(shù)包括()
A.效率
B.規(guī)模
C.完整性 D.容錯性 7.軟件調(diào)試技術包括()
A.邊界值分析
B.演繹法
C.循環(huán)覆蓋 D.集成測試 8.瀑布模型的存在問題是()
A.用戶容易參與開發(fā)
B.缺乏靈活性 C.用戶與開發(fā)者易溝通 D.適用可變需求 9.軟件測試方法中的靜態(tài)測試方法之一為()
A.計算機輔助靜態(tài)分析 B.黑盒法 C.路徑覆蓋 D.邊界值分析 11.第一個體現(xiàn)結構化編程思想的程序設計語言是()
A.FORTRAN語言
B.Pascal語言 C.C語言
D.PL/1語言 13.在詳細設計階段,經(jīng)常采用的工具有()
A.PAD B.SA C.SC D.DFD 14.詳細設計的結果基本決定了最終程序的()
A.代碼的規(guī)模 B.運行速度 C.質(zhì)量 D.可維護性 18.經(jīng)濟可行性研究的范圍包括()
A.資源有效性 B.管理制度
C.效益分析 D.開發(fā)風險
21.在軟件開發(fā)過程中要產(chǎn)生大量的信息,要進行大量的修改,軟件配置管理
能協(xié)調(diào)軟件開發(fā),并使混亂減到最低程度。
22.規(guī)定功能的軟件,在一定程度上對自身錯誤的作用(軟件錯誤)具有屏蔽能力,則稱此軟件具有
容錯功能的軟件。
23.McCall提出的軟件質(zhì)量模型包括11 個軟件質(zhì)量特性。
24.軟件可維護性度量的七個質(zhì)量特性是可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。
25.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的輸出結果兩部分組成。
26.程序設計語言的心理特性主要表現(xiàn)在 歧義性、簡潔性、傳統(tǒng)性、局部性和順序性。27.軟件結構是以
模塊 為基礎而組成的一種控制層次結構。
28.在結構化分析中,用于描述加工邏輯的主要工具有三種,即:結構化語言、判定表、判定樹。
29.結構化語言是介于自然語言和形式語言之間的一種半形式語言。
30.若年利率為i,不計復利,n年后可得錢數(shù)為F,則現(xiàn)在的價值P=F/(1+(n*i)。39.模塊的內(nèi)聚性包括哪些類型?
模塊的內(nèi)聚性包括:
(1)偶然內(nèi)聚(2)邏輯內(nèi)聚(3)時間內(nèi)聚(4)通信內(nèi)聚(5)順序內(nèi)聚(6)功能內(nèi)聚
1.可行性研究要進行一次_____需求分析。
A.詳細的B.全面的 C.簡化的、壓縮的 D.徹底的 2.系統(tǒng)流程圖用于可行性分析中的_____的描述。
A.當前運行系統(tǒng) B.當前邏輯模型 C.目標系統(tǒng) D.新系
36.可行性研究報告的主要內(nèi)容有哪些?
解:一個可行性研究報告的主要內(nèi)容如下:
(1)引言:說明編寫本文檔的目的;項目的名稱、背景;本文檔用到的專門術語和參考資料。
(2)可行性研究前提:說明開發(fā)項目的功能、性能和基本要求;達到的目標;各種限制條件;可行性研究方法和決定可行性的主要因素。
(3)對現(xiàn)有系統(tǒng)的分析:說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;工作負荷;各項費用支出;所需要各類專業(yè)技術人員的數(shù)量;所需要各種設備;現(xiàn)有系統(tǒng)存在什么問題。
(4)所建議系統(tǒng)的技術可行性分析:所建議系統(tǒng)的簡要說明;處理流程和數(shù)據(jù)流程;與現(xiàn)有的系統(tǒng)比較的優(yōu)越性;采用所建議系統(tǒng)對用戶的影響;對各種設備、現(xiàn)有軟件、開發(fā)環(huán)境、運行環(huán)境的影響;對經(jīng)費支出的影響;對技術可行性的評價。
(5)所建議系統(tǒng)的經(jīng)濟可行性分析:說明所建議系統(tǒng)的各種支出,各種效益;收益投資比;投資回收周期。
(6)社會因素可行性分析:說明法律因素,對合同責任、侵犯專利權、侵犯版權等問題的分析;說明用戶使用可行性,是否滿足用戶行政管理、工作制度、人員素質(zhì)的要求。
(7)其他可供選擇方案:逐一說明其他可供選擇的方案,并說明未被推薦的理由。
(8)結論意見:說明項目是否能開發(fā);還需要什么條件才能開發(fā);對項目目標有什么變動等。
38.什么是軟件危機?軟件危機的表現(xiàn)是什么?其產(chǎn)生的原因是什么?
在軟件開發(fā)中遇到的問題找不到解決辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。
造成軟件危機的原因是:
(1)軟件的規(guī)模越來越大,結構越來越復雜。(2)軟件開發(fā)管理困難而復雜。(3)軟件開發(fā)費用不斷增加。(4)軟件開發(fā)技術落后。(5)生產(chǎn)方式落后。6)開發(fā)工具落后,生產(chǎn)率提高緩慢。
五,論述題(本大題共3小題,第40小題7分,第41小題8分,第42小題10分,共25分)
40.請使用PAD圖和PDL語言描述在數(shù)組A(1)~A(10)中找最大數(shù)的算法。
解:PDL語言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1)MAX =A(N+1);
ELSE MAX =A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD圖:
2.IPO圖由___輸入__、___輸出_和___處理_三個框組成
軟件的測試方法有———(分析方法)與(非分析方法)詳細設計的工具有(圖形工具)(表格工具)(語言工具)
成本估計方法主要有(自頂行下估計)(自底向上估計)和(算法模型工具)
6. 常用的面向?qū)ο蟮能浖^程模型是___B____。A. 瀑布模型 B. 噴泉模型 C. 原型模型 D. 增量模型
7. 面向?qū)ο蟮姆治鲭A段建立的系統(tǒng)模型不包括__D______。A. 對象模型 B. 動態(tài)模型 C. 功能模型 D. 數(shù)據(jù)模型
8,軟件工程中的結構化分析SA是一種面向___數(shù)據(jù)流_____的分析方法。
9,軟件開發(fā)是一個自頂向下逐步細化和求精的過程,而軟件測試是一個___自下而上_____的過程。在進行需求分析時需同時考慮維護問題。。。。錯
第四篇:軟件工程答案
第一次作業(yè)
1.什么是軟件?
答:計算機程序和相關文檔。
2.什么是軟件危機?
答:軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。
3.什么是軟件工程?
答:軟件工程是關于軟件生產(chǎn)的各個方面的工程學科?;蛘哒f:采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,或者說把經(jīng)過時間考驗而證明是正確的管理技術和當前能夠得到的合適的開發(fā)工具結合起來開發(fā)與維護軟件,這就是“軟件工程”。
第二次作業(yè)
說明:以下題目在考試時,可能變成填空題、也可能變成選擇題、還有可能變成名詞解釋。
1.軟件工程方法學包括了幾個關鍵要素?
答:包括了3個關鍵要素,即方法、工具和過程。
2.軟件過程包含了那幾項基本活動?
答:軟件過程包含了4項基本活動:(1)軟件描述;(2)軟件開發(fā);(3)軟件有效性驗證;
例如:填空題
軟件過程包含了4項基本活動:(1)軟件描述;(2)軟件開發(fā);(3)軟件有效性驗證;
(4)軟件維護或進化。
例如:選擇題
軟件過程包含了4項基本活動:(1)軟件描述;(2)軟件開發(fā);(3)軟件有效性驗證;
(4)軟件維護或進化。
A.驗證B.檢查C.軟件有效性驗證D.軟件有效性檢查
3.什么是模型?
答:模型是人們認識客觀事物時,用文字、符號或者圖表等進行簡化問題描述的一種方式。
第三次作業(yè)
1.可行性研究包含哪幾個方面?
答:(1)技術可行性、(2)經(jīng)濟可行性、(3)操作可行性。
2.軟件維護分為哪幾類?
答:根據(jù)軟件維護的任務與性質(zhì)不同,通??蓪④浖S護分為糾錯性維護、適應性維護、完善性維護、預防性維護四類活動。
3.軟件可維護性的定義是什么?
答:指維護人員理解、改正軟件的難易程度。決定軟件可維護性的因素有:指整個軟件文檔和程序的可理解性、可測試性、可修改性。
第四次作業(yè)
1.原型法的基本概念是什么?
答:原型法的基本概念有如下三點:(1)原型法不僅可以幫助系統(tǒng)分析員盡早獲得更完整更準確的需求,還可以幫助設計人員驗證設計方案或演進目標系統(tǒng)。(2)原型法適用于需求非常不明確的系統(tǒng)開發(fā)。(3)快速原型法如果使用得當,可以減少軟件的總成本。
2.快速原型模型的主要優(yōu)點是什么?
答:快速原型的本質(zhì)是用原型系統(tǒng)獲取用戶的真正需求,開發(fā)人員便可依據(jù)原型系統(tǒng)書寫規(guī)格說明文檔,根據(jù)這份文檔開發(fā)出的軟件可以滿足用戶的真實需求。
3.什么是面向數(shù)據(jù)結構方法?
答:面向數(shù)據(jù)結構方法是結構化方法的變形,它著重數(shù)據(jù)結構而不是數(shù)據(jù)流。根據(jù)需求基本上都采用順序、選擇和重復構造成分表示數(shù)據(jù)結構。
第五次作業(yè)
1.面向?qū)ο蠓治瞿P偷奈鍌€層次是什么?
答:面向?qū)ο蠓治瞿P偷奈鍌€層次是主題層、類及對象層、結構層、屬性層和服務層,因此其分析步驟也是按五個層次逐步展開。
2.對象的五個特點是什么?
答:對象的五個特點是:自治性;封裝性;通信性;被動性(除主動對象外);暫存性。
3.為什么說對象是動態(tài)的?
答:面向?qū)ο蟮某绦蛴梢唤M相關類組成,所以類是靜態(tài)的,程序的執(zhí)行體現(xiàn)為一組相互通信的對象的活動,所以對象是動態(tài)的。
第六次作業(yè)
1.需求分析階段的工作成果是產(chǎn)生大量的系統(tǒng)文檔,那么文檔的作用有哪些? 答:文檔的作用有(1)提高軟件的可理解性,便于開發(fā)人員之間的溝通與交流;(2)變可見性的軟件為部分可見性的文檔資料,階段性的工作成果,便于實施工程管理;(3)階段性的審查依據(jù);(4)便于用戶或其他非開發(fā)人員熟悉該軟件。
2.需求分析有哪三種方法?
答:需求分析有面向功能分析、面向數(shù)據(jù)分析、面向?qū)ο蠓治龇椒ā?/p>
3.需求分析階段主要綜合考慮的因素有哪些?
答:需求分析階段主要綜合考慮的因素有(1)功能、(2)性能、(3)運行、(4)將來可能提出的要求。
第七次作業(yè)
1.軟件系統(tǒng)的非功能需求是什么?
答:非功能需求是指那些不直接與系統(tǒng)具體業(yè)務功能相關的一類需求。它們與系統(tǒng)的總體特性相關,如可靠性、信息安全性、響應時間和存儲空間等。
2.為什么對系統(tǒng)來說非功能需求比功能需求更關鍵?
答:許多非功能需求關心的是系統(tǒng)整體特性而不是個別的系統(tǒng)特性,因此,非功能需求比功能需求對系統(tǒng)來說更關鍵。一個功能需求沒有滿足可能降低系統(tǒng)的能力,而一個非功能系統(tǒng)需求沒有滿足則可能使整個系統(tǒng)無法使用或者說系統(tǒng)的靈活性、應變能力達不到要求。
3.數(shù)據(jù)流圖的作用是什么?
答:數(shù)據(jù)流圖的作用是用來描述系統(tǒng)的邏輯模型,表示信息在系統(tǒng)中的流動和處理情況。
4.畫數(shù)據(jù)流圖可采用的步驟是什么?
答:畫數(shù)據(jù)流圖時:首先考慮數(shù)據(jù)的源點和終點(人或者作為輸入/輸出對象);接下來考慮處理(動詞);最后考慮數(shù)據(jù)流和數(shù)據(jù)存儲(名詞)。
第八次作業(yè)
1.什么是執(zhí)行者?
答:執(zhí)行者是與系統(tǒng)交互的人或物,它代表外部實體,是一個群體概念,代表的是一類能夠使用某個功能的人或物,而不是某個個體。
2.數(shù)據(jù)字典的定義是什么?
答:數(shù)據(jù)字典的定義是指對數(shù)據(jù)流、數(shù)據(jù)流分量即數(shù)據(jù)元素、數(shù)據(jù)存儲和處理四類元素進行定義。
3.數(shù)據(jù)字典的作用是什么?
答:數(shù)據(jù)字典的作用是:(1)與數(shù)據(jù)流圖配合、描述軟件系統(tǒng)的邏輯模型;(2)階段性文檔;(3)對數(shù)據(jù)流圖中除源、終點外的其余成分均進行嚴格的無二義的、詳盡的定義。
第九次作業(yè)
1.軟件設計階段的任務是什么?
答:軟件設計階段的任務是對軟件需求有了完整、準確、具體的理解之后,接下來的工作任務就是用軟件正確地實現(xiàn)這些需求。這個階段的工作目標是產(chǎn)生概要設計和詳細設計文檔。
2.結構程序設計常見的三種結構是什么?
答:結構程序設計常見的三種基本結構:順序、循環(huán)、選擇。
3.面向?qū)ο蠼S心膸追N?
答:面向?qū)ο蠼S?種:(1)描述系統(tǒng)功能的功能模型;(2)描述系統(tǒng)數(shù)據(jù)結構的對象模型;(3)描述系統(tǒng)控制結構的動態(tài)模型。即功能模型;對象模型、動態(tài)模型。
第十次作業(yè)
1.對象的定義是什么?
答:對象的定義是(1)從面向?qū)ο蟪绦蛟O計角度看對象定義:對象是具有相同狀態(tài)的一組操作的集合;(2)從信息的模擬角度看對象定義:對象是對問題域某個東西的抽象,這種抽象反映了系統(tǒng)保存有關這個東西的信息或與它交互的能力。也就是說,對象是對屬性值和操作的封裝。(3)形式化定義:對象::=
2.面向?qū)ο蠓椒▽W的主要優(yōu)點是什么?
答:1.與人類習慣的思維方法一致;2.穩(wěn)定性好;3.可重用性好;4.較易開發(fā)大型軟件產(chǎn)品;5.可維護性好。
3.什么是類(Class)?
答: 類就是對相同數(shù)據(jù)和相同操作的一組相似對象的定義,或者說,類是對具有相同屬性和行為的一個或多個相似對象的描述。
第十一次作業(yè)
1.提高軟件可重用性的主要準則是什么?
答:提高軟件可重用性的主要準則是:(1)提高方法內(nèi)聚;(2)減小方法的規(guī)模;(3)保持方法的一致性;(4)把策略與實現(xiàn)分開;(5)全面覆蓋;(6)盡量不使用全局信息;(7)利用繼承機制
2.為什么說在軟件開發(fā)工作臨近結束時才補寫有關的一系列文檔是不符合軟件工程思想的?
答:文檔作為軟件產(chǎn)品的有形部分,既可作為各開發(fā)階段的成果,又可作為評價、審查工作的主要對象,還可作為前后階段交接的重要文字資料,這樣有助于軟件工程管理工作的開展,對于規(guī)范化的工作有助于保證軟件各階段的工作質(zhì)量。若最后才補文檔就失去了上述的價值。
3.假設你的任務是對一個已有的軟件做重大修改,而且只允許你從下述文檔中選取兩份:(a)程序的規(guī)格說明;(b)程序的詳細設計結果(自然語言描述加上某種設計工具表示);(c)源程序清單(其中有適當數(shù)量的注釋)。你將選取哪兩份文檔?為什么這樣選?。?/p>
答:選擇(a)和(b)重大修改可能追加到改動系統(tǒng)的需求約定和設計方案,而源程序的改動,甚至程序編制,在詳細設計完成后才可進行,比起修改需求或設計方案而言要容易得多。
第十二次作業(yè)
1.測試的正確定義是什么?
答:測試的正確定義是“為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程”。這和某些人通常想象的“測試是為了表明程序是正確的”,“成功的測試是沒有發(fā)現(xiàn)錯誤的測試’等是完全相反的。
2.什么是黑盒測試?
答:黑盒測試把程序看成一個黑盒子,完全不考慮程序的內(nèi)部結構和處理過程。即只測試程序的接口信息。適用于黑盒測試方法有:邊界值分析、等價劃分、錯誤推理。
3.計算環(huán)形復雜度。
答:流圖中的區(qū)域數(shù)等于環(huán)形復雜度;流圖G的環(huán)形復雜度V(G)=E-N+2,其中E是流圖中邊的條數(shù),N是流圖中節(jié)點數(shù);流圖G的環(huán)形復雜度V(G)=P + 1,其中P是流圖中判定節(jié)點的數(shù)目。
4.調(diào)試的目標是什么?它有幾種途徑?
答:無論采用什么方法,調(diào)試的根本目標都是尋找軟件錯誤的原因并改正之。這個目標是通過把系統(tǒng)地評估、直覺和運氣組合起來實現(xiàn)的。一般來說,有下列三種調(diào)試途徑可以采用:·蠻干法;·回溯法;·原因排除法。
第十三次
1.主程序員組的核心有幾個人?其角色名稱與分工是什么?
答:主程序員:全面負責系統(tǒng)定義、設計、編碼、調(diào)試、安裝。輔助程序員:協(xié)助主程序員,必要時替代主程序員(平時側重于測試方案,分析測試結果)。程序管理員:全部事務性工作(提交上機程序、保存運行語言、進行軟件配置)。
2.什么是基線?
答:在軟件工程范圍內(nèi),基線是軟件開發(fā)的里程碑,它的標志是交付一個或多個軟件配置項,這些軟件配置項已經(jīng)通過正式的技術復審而獲得認可。或者說,基線是軟件生存期中各開發(fā)階段的一個特定點,它標志著一個階段的結束。
3.能力成熟度模型的組成成分是什么?
答:能力成熟度模型的組成包括以下成分。·成熟度等級(Maturity levels);·過程能力(Process Capability);·關鍵過程域(Key Process Areas,KPA);·目標(Goals);·公共特性(Common Features);·關鍵實踐(Key Practices)。
4.能力成熟度的五個等級是什么?
答:能力成熟度的五個等級從低到高是:初始級、可重復級、已定義級、已管理級和優(yōu)化級。
第十四次
1.軟件重用的基本要求是什么?
答:為使軟構件也像硬件集成電路那樣,能在構造各種各樣的軟件系統(tǒng)時方便地重復使用,就必須使它們滿足下列要求。(l)模塊獨立性強;(2)具有高度可塑性;(3)接口清晰、簡明、可靠。
2.類構件的重用方式有哪些?
答:類構件的重用方式有:(1)實例重用;(2)繼承重用;(3)多態(tài)重用。
3.什么是3C模型?
答:描述可重用的軟件構件一種理想的方式是3C模型——概念(concept)、內(nèi)容(content)和語境(context)。
第五篇:軟件工程考試
軟件工程是用工程、科學和數(shù)學的原則與方法研制、維護計算機軟件的有關技術和管理方法 軟件工程三要素:方法、工具和過程
軟件工程的內(nèi)容:軟件開發(fā)技術和軟件開發(fā)管理兩個方面
可行性研究方面:技術可行性經(jīng)濟可行性操作可行性法律可行性
IT項目可行性研究審計的概念:事前對IT項目從技術和經(jīng)濟兩個方而進行的詳細論證,涉及
數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合.包括(1)數(shù)據(jù)流(2)數(shù)據(jù)元素(3)數(shù)據(jù)存儲(4)處理 驗證軟件需求的正確性:(1)一致性:所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。(2)完整性: 需求必須是完整的,規(guī)格說明書應該包括用戶需要的每一個功能或性能(3)現(xiàn)實性:指定的需求應該是用現(xiàn)有的硬件技術和軟件技術基本上可以實現(xiàn)的。對硬件技術的進步可以做些預測,對軟件技術的進步則很難做出預測,只能從現(xiàn)有技術水平出發(fā)判斷需求的現(xiàn)實性。(4)有效性: 必須證明需求是正確有效的,確實能解決用戶面對的問題。
軟件設計過程有:1數(shù)據(jù)設計:將實體 – 關系圖中描述的對象和關系,以及數(shù)據(jù)詞典中描述的詳細數(shù)據(jù)內(nèi)容轉化為數(shù)據(jù)結構的定義。2總體結構(系統(tǒng)結構)設計: 定義軟件系統(tǒng)各主要成份之間的關系。3過程設計: 把結構成份轉換成軟件的過程性描述。4接口設計:定義軟件內(nèi)部各成份之間、軟件與其它協(xié)同系統(tǒng)之間及軟件與用戶之間的交互機制。軟件設計方法:結構化設計方法(SD)面向數(shù)據(jù)結構的設計方法(JSD方法)面向?qū)ο蟮脑O計方法(OOD)
軟件設計分兩個階段完成:結構設計:結構設計是總體設計階段的任務。結構設計確定程序由哪些模塊組成,以及這些模塊之間的關系。過程設計:確定每個模塊的處理過程
結構程序設計:一種設計程序的技術,它采用自頂向下逐步求精的設計方法和單入口單出口的控制結構
軟件測試:是根據(jù)軟件開發(fā)各階段的文檔資料和程序的內(nèi)部結構,精心設計一組“高產(chǎn)”的測試用例,利用這些實例執(zhí)行程序,找出軟件中潛在的各種錯誤和缺陷的過程 黑盒法(黑盒技術是把被測試對象看成一個黑盒子,測試人員完全不考慮程序的內(nèi)部結構和處理過程,只在軟件的接口處進行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求 白盒法(白盒技術):是把測試對象看作一個打開的盒子,測試人員須了解程序的內(nèi)部結構和處理過程,以檢查處理過程的細節(jié)為基礎,對程序中盡可能多的邏輯路徑進行測試,檢查內(nèi)部控制結構和數(shù)據(jù)結構是否有錯,實際的運行狀態(tài)與預期的狀態(tài)是否一致。驅(qū)動模塊:驅(qū)動模塊是用來模擬被測模塊的上級調(diào)用模塊的模塊,功能要比真正的上級模塊簡單得多,它只完成接受測試數(shù)據(jù),以上級模塊調(diào)用被測模塊的格式驅(qū)動被測模塊,接收被測模塊的測試結果并輸出。
樁模塊:樁模塊用來代替被測試模塊所調(diào)用的模塊。它的作用是返回被測模塊所需的信息。單元測試::單元測試指對源程序中每一個程序單元進行測試,檢查各個模塊是否正確實現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。
集成測試:是指在單元測試的基礎上,將所有模塊按照設計要求組裝成一個完整的系統(tǒng)進行的測試,故也稱組裝測試或聯(lián)合測試。
確認測試:又稱有效性測試。是為了檢查軟件的功能與性能是否與需求規(guī)格說明書中確定的指標相符合所進行的測試
單元測試內(nèi)容①模塊接口②局部數(shù)據(jù)結構③重要的執(zhí)行路徑④錯誤處理⑤邊界條件。調(diào)試的目的確定錯誤的原因和位置,并改正錯誤,因此調(diào)試也稱為糾錯(Debug)調(diào)試的技術手段有簡單的調(diào)試方法、歸納法、演繹法和回溯法等 軟件可維護性:軟件能夠被理解、校正、適應及增強功能的容易程度
為了保證軟件的可維護性,需要做哪些質(zhì)量保證檢查?(1)在檢查點進行檢查。檢查點是指軟件開發(fā)的每一個階段的終點。(2)驗收檢查。驗收檢查是一個特殊的檢查點的檢查,它是把軟件從開發(fā)轉移到維護的最后一次檢查。(3)周期性的維護檢查(4)對軟件包的檢查。好的文檔有以下幾方面的作用:(1)好的文檔能提高程序的可閱讀性,但壞的文檔比沒有文檔更壞;(2)好的文檔意味著簡明性,風格的一致性,容易修改;(3)程序編碼中應該有必要的注釋以提高程序的可理解性;(4)程序越長、越復雜,則它對文檔的需求也越迫切 軟件維護的流程:定維護申請報告。審查申請報告并批準。進行維護并做詳細記錄。復審 面向?qū)ο蠓椒▽W的出發(fā)點和基本原則:是盡可能模擬人類習慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程.描述問題的問題域與實現(xiàn)解法的求解域在結構上盡可能一致。
對象是用面向?qū)ο蠓椒▽W開發(fā)軟件時對客觀世界實體的抽象,它是由描述實體屬性的數(shù)據(jù)及可以對這些數(shù)據(jù)施加的所有操作封裝在一起構成的統(tǒng)一體。傳統(tǒng)的數(shù)據(jù)是用傳統(tǒng)方法學開發(fā)軟件時對客觀世界實體的抽象,但是,種抽象是不全面的:數(shù)據(jù)只能描述實體的靜態(tài)屬性,不能描述實體的動態(tài)行為。必須從外界對數(shù)據(jù)施加操作,才能改變數(shù)據(jù)實現(xiàn)實體應有的行為。對象與傳統(tǒng)數(shù)據(jù)有本質(zhì)區(qū)別,它不是被動地等待外界對它施加操作,相反,它是進行處理的主體。必須發(fā)消息請求對象主動地執(zhí)行它的某些操作,處理它的私有數(shù)據(jù),而不能直接從外界對它的私有數(shù)據(jù)進行操作。
對象模型的五個層次:主題層(也稱為范疇層),類—&—對象層,結構層,屬性層,服務層
面向?qū)ο髮崿F(xiàn)主要包括兩項工作:把面向?qū)ο笤O計結果,翻譯成用某種程序語言書寫的面向?qū)ο蟪绦?;測試并調(diào)試面向?qū)ο蟮某绦?/p>
面向?qū)ο筌浖臏y試分四個層次進行:算法層、類層、主題層、系統(tǒng)層
項目管理者的目標: 定義全部項目任務,識別出關鍵任務,跟蹤關鍵任務的進展狀況,以保證能及時發(fā)現(xiàn)拖延進度的情況
軟件配置管理主要有5項任務: 標識 版本控制 變化控制 配置審計 報告 軟件工程實施項目管理的目的 : 在于它能夠幫助我們進行系統(tǒng)性思考,并切實可行地進行全局性安排,同時也可以為項目開發(fā)的人力資源需求提供依據(jù)。
項目管理者的任務:確保信息系統(tǒng)項目符合預算和進度要求,并確保交付的系統(tǒng)能夠達到預定的目標
軟件的質(zhì)量保證活動: 是確保軟件產(chǎn)品從誕生到消亡為止的所有階段的質(zhì)量的活動。即為了確定、達到和維護需要的軟件質(zhì)量而進行的所有有計劃、有系統(tǒng)的管理活動 對編制高質(zhì)量文檔的要求:(1)針對性(2)精確性(3)清晰性(4)完整性(5)靈活性