第一部分 軟件工程總結
您認為一個軟件工程師的軟件工程知識技能水平高低主要體現在哪些方面?
1. 團隊精神和協作能力:在我看來,這是軟件工程人員應該具備的最基本的,也是最重要的一項技能。隨着軟件項目規模越來越大,僅僅依靠個人力量已經無法完成工作,因此,現代軟件企業越來越重視團隊精神,很好的合作意識和團隊精神更加適應時代發展的潮流,也是我們軟件工程師的必修課。
2. 規范化,標准化的代碼編寫習慣:在一些外國知名軟件公司,代碼的變量命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
3. 良好的文檔書寫習慣:良好的文檔是正規研發流程中非常重要的環節,作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。缺乏文檔,一個軟件系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。
4. 較強的英語閱讀和寫作能力:程序世界的主導語言是英文,編寫程序開發文檔和開發工具幫助文件離不開英文,了解業界的最新動向、閱讀技術文章離不開英文,與世界各地編程高手交流、發布幫助請求同樣離不開英文。作為基礎軟件工程師,具有一定的英語基礎對於自身的學習和工作極有幫助。
5.軟件測試習慣:軟件研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成后進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。
6.具有軟件工程的概念:基礎軟件工程師處於軟件企業人才金字塔的底層,是整個人才結構的基礎,雖然他們從事的工作相對於系統分析師和高級程序員要單純一些,但是他們是整個軟件工程中重要的一環,因此,基礎軟件工程師同樣要具有軟件工程的概念。從項目需求分析開始到安裝調試完畢,基礎軟件工程師都必須能清楚地理解和把握這些過程,並能勝任各種環節的具體工作,這樣的能力正好符合了當前企業對基礎軟件工程師的全面要求。
7.學習與總結能力:軟件業是一個不斷變化和不斷創新的行業,面對層出不窮的新技術,軟件人才的求知欲和進取心就顯得尤為重要,它是在這個激烈競爭的行業中立足的基本條件。軟件工程師應具有較強的學習總結能力、需求理解能力和對IT新技術比較敏感,同時,掌握最新的IT實用技術。
第二部分 軟件工程測試
一、選擇題:
(1)軟件工程的出現主要是由於( )。
A、程序設計方法學的影響 B、其它工程科學的影響
C、軟件危機的出現 D、計算機的發展
答案:C 來源:中國大學mooc北京大學軟件工程課后題 考點:軟件工程概念
(2)下列軟件開發模型中,以面向對象的軟件開發方法為基礎,以用戶的需求為動力,以對象來驅動的模型是()。
A.演化模型 B.瀑布模型 C.噴泉模型 D.增量模型
答案:C 來源:中國大學mooc北京大學軟件工程課后題 考點:軟件生存周期模型
(3) 需求規約是一個軟件產品/系統的()
A.開發模型 B. 框架模型 C.概念模型 D.功能模型
答案:C 來源:中國大學mooc北京大學軟件工程課后題 考點:需求規約的概念與格式
(4)結構化分析模型中,支持數據抽象的是哪些術語________
①數據流 ②數據存儲 ③數據源 ④數據潭 ⑤加工
A.1.2 B.3.4 C.1.2.3.4 D.3.4.5
答案:A 來源:中國大學mooc北京大學軟件工程課后題 考點:結構分析模型
(5)需求規格說明書的作用不應該包括( )。
A、軟件設計的依據 B、用戶與開發人員對軟件要做什么的共同理解
C、軟件驗收的依據 D、軟件可行性研究的依據
答案:D 來源:百度文庫 考點:需求分析
(6)使用結構化分析方法時,采用的基本手段是( )。
A、分解和抽象 B、分解和綜合 C、歸納與推導 D、試探與回溯
答案:A 來源:百度文庫 考點: 結構化分析方法
(7)一個模塊直接控制(調用)的下層模塊的數目稱為模塊的( )。
A、扇入數 B、扇出數 C、寬度 D、作用域
答案:B 來源:中國海洋大學期末考試 考點:扇入扇出
(8)若一個模塊內部的處理動作為:成分 A 的輸出是成分 B 的輸入,則該模塊的聚合性稱為( )。
A、順序內聚 B、功能內聚 C、過程內聚 D、通信內聚
答案:A 來源:百度文庫 考點:模塊聚合
(9)下列耦合度表示中,最弱的耦合形式是( )。
A、特征耦合 B、公共耦合 C、數據耦合 D、數據結構
答案:C 來源:中國海洋大學期末試卷 考點:耦合
(10)軟件測試方法中,黑盒和白盒測試法是常用的方法,其中白盒測試主要用於測試( )。
A、結構合理性 B、軟件外部功能 C、程序正確性 D、程序內部邏輯
答案:A 來源:百度文庫 考點:軟件測試方法
(11)軟件測試是軟件開發過程中重要和不可缺少的階段,其包含的內容和步驟甚多,而測試過程的多種環節中基礎的是( )
A.集成測試 B.單元測試 C.系統測試 D.驗收測試
答案:B 來源:百度文庫 考點:軟件測試方法
(12)軟件工程方法學包括的三個要素是( )。
A.方法、工具和過程 B.對象、過程和方法
C.分析、設計和編程 D.開發、維護和工程
答案:A 來源:中國海洋大學期末試卷 考點:軟件工程基礎概念
(13)面向對象方法的要素是( )。
A.對象、類、數據類型和算法 B.對象、類、繼承和消息
C.對象、基類、派生類和繼承 D.對象、父類、子類和繼承
答案:B 來源:中國大學mooc北京大學軟件工程課后題 考點:面對對象方法
(14)軟件開發活動的順序應該是 ( )。
A.問題定義、可行性研究、需求分析、設計、編碼和測試
B.問題定義、設計、可行性研究、編碼和測試
C.需求分析、設計、編碼和測試
D.需求分析、編碼和測試、試運行
答案:A 來源:百度文庫 考點:軟件開發活動
(15)( )是把對象的屬性和操作結合在一起,構成一個獨立的對象,其內部信息對外界是隱蔽的,外界只能通過有限的接口與對象發生聯系。
A. 多態性 B. 繼承 C. 封裝 D. 消息
答案:C 來源:中國大學mooc北京大學軟件工程課后題 考點:面對對象概念
二、判斷題
1、軟件就是所謂的程序.(F)
2、結構化分析與設計是軟件工程學的一個重要思想.(T)
3、自頂向下逐步細化是結構化分析與設計的核心思想.(T)
4、信息隱蔽是指模塊內部的數據與過程對其他模塊隱藏起來. (T)
5、模塊的耦合越弱,表明模塊的獨立性越差.(F)
6、模塊的控制域與作用域是一樣的. (F)
7、編碼是軟件開發時期最重要的階段. (F)
8、軟件測試是為了證明程序的正確性. (F)
9、條件組合覆蓋一定包含判定覆蓋. (T)
10、軟件維護是可有可無的 (F)
三、填空題
1. 軟件生命周期通常由______、 ______、 ______、 ______、 ______和單元測試、綜合測試、 ______8 個階段組成
答案:軟件定義、可行性研究、需求分析、總體設計、編碼、運行維護
2. 在 E-R 模型中,包含以下基本成分: __________、聯系、屬性
答案:數據對象(實體)
3. 結構程序設計中只使用__________、 __________和__________三種基本的控制結構。
答案:順序、選擇、循環
4. 可行性研究主要包括______、 ______、和操作可行性三個方面。
答案:技術可行性、經濟可行性
5.類與類之間關系:—— —— —— ——(任寫四種)
答案:關聯、泛化(繼承)、依賴和細化。
四、問答題
(1)軟件危機的表現
參考答案:1)對軟件成本和進度的估計常常不准確
2)用戶對“已完成的”軟件產品不滿意
3)軟件產品的質量達不到要求
4)軟件難以維護
5)軟件沒有合適的文檔資料
6)軟件成本在計算機系統總成本中所占比例逐年上升
7)軟件開發生產率提高的速度不能滿足社會對軟件產品日益增長的需求
(2)在軟件設計過程中應遵循哪些基本原理?
參考答案:1.模塊化與模塊獨立
2.抽象
3.逐步求精
4.信息隱藏
5.局部化
(3)什么是軟件過程?列舉幾個常見的描述軟件過程的模型?
參考答案:
軟件過程:軟件過程是為了獲取高質量軟件所需完成的一系列任務的框架,它規定了完成各項任務的工作步驟。
模型:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型等。
(4)面對對象方法學的基本原則是什么?
參考答案:面向對象方法學的出發點和基本原則,是盡可能模擬人類習慣的思維方式,使開發軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程,也就是使描述問題的問題空間(也稱為問題域)與實現解法的解空間(也稱為求解域)在結構上盡可能一致。
(5)簡述白盒測試和黑盒測試。
1.白盒測試(又稱結構測試)
把程序看成裝在一個透明的白盒子里,測試者完全知道程序的結構和處理算法。這種方法按照程序內部的邏輯測試程序,檢測程序中的主要執行通路是否都能按預定要求正確工作。
2.黑盒測試(又稱功能測試)
把程序看作一個黑盒子,完全不考慮程序的內部結構和處理過程。黑盒測試是在程序接口進行的測試,只檢查程序功能是否能按照規格說明書的規定正常使用,程序是否能適當地接收輸入數據並產生正確的輸出信息,程序運行過程中能否保持外部信息的完整性
五、綜合題
1. 畫出下面偽碼的程序流程圖。
START
IF p THEN
WHILE q DO f END DO
ELSE
BLOCK
g
h
END BLOCK
END IF
STOP
來源:中國海洋大學期末試卷 考點:程序流程圖
2.某報社采用面向對象技術實現報刊征訂的計算機管理系統,該系統基本需求如下。對其建立對象模型。
(1)報社發行多種刊物,每種刊物通過訂單來征訂,訂單中有代碼、名稱、訂期、單價、份數等項目,訂戶通過填寫訂單來訂閱報刊。
(2)報社下屬多個發行站,每個站負責收集登陸訂單,打印收款憑證等事務。
(3)報社負責分類並統計各個發行站送來的報刊訂閱信息。
參考答案:
來源:中國大學mooc北京大學軟件工程課堂例題 考點:對象模型
3. 在某小型圖書管理系統中,讀者(借閱者)可以請求以下服務:通過系統查詢圖書信息、借閱圖書、歸還圖書(若讀者還書時超過借閱期限,就要交納一定罰金)。當讀者登錄系統后還可以查詢本人的借閱信息,也可以進行圖書預訂。根據上述功能描述設計讀者請求服務的用例圖(Use Case),標明用例之間的關系。
參考答案:
來源:中國海洋大學期末試題 考點:用例圖