1、什麼是軟件開發工程師?程序員
軟件工程師是從事軟件開發工做人員的統稱,包括軟件架構人員、軟件工程管理人員、程序員等一系列崗位,工做內容都與軟件開發生產相關。軟件工程師的技術要求是相對較高的,除了最基礎的編程語言、數據庫技術等,還須要掌握一些前沿技術,對於網絡工程和軟件測試的其餘技術也要有所瞭解。正則表達式
軟件工程師分級數據庫
軟件工程師通常狀況下分爲4級:編程
一、軟件技術員 二、助理軟件工程師 三、軟件工程師 四、高級軟件工程師設計模式
2、 軟件開發的主要步驟網絡
軟件開發通常分爲下述四個步驟需求、設計、編程和測試數據結構
做爲一名專業的軟件工程師,一方面,是否掌握了程序員的基本功:鍵盤輸入速度,快捷鍵,編譯和調試工具等,熟練掌握經常使用的工具集—VSCode/Vim、正則表達式等;另外一方面,應該可以熟練掌握基礎編程語言,而且可以深刻理解OOP、OOA、OOD 等編程思想。精通一門編程語言能爲之後的軟件開發打下堅實的基礎。架構
(4)學習能力編程語言
IT技術可謂是更新換代最快的了,從市面上的電腦和手機就能夠看出來。因此,只依靠本身以前學到的知識,很快就會被這個時代所淘汰,軟件工程師應具有的技能裏很重要的一點就是學習能力。由於只有具有了學習能力,才能在離開學校以後仍然可以獨 立地學習最新的技術,同時可以自主的發現如今有什麼新技術,市場上流行的技術元素與市場需求的變化。函數
1.瀑布模型的存在問題是( B )
A.用戶容易參與開發 B.缺少靈活性
C.用戶與開發者易溝通 D.適用可變需求
解析:瀑布模型各個階段的劃分徹底固定、模型是線性的,用戶只有等到整個過程的末期才能見到開發成果,不適應需求的變化,缺少靈活性。
2.下列哪一個階段不屬於軟件生存週期的三大階段(C )。
A、計劃階段 B、開發階段
C、編碼階段 D、維護階段
解析:軟件的生存週期包括:計劃階段、開發階段、維護階段。編碼是開發階段的一部分。
三、耦合的強弱取決於(A)。
A. 模塊間接口的複雜程度
B. 調用模塊的方式
C. 經過接口的信息
D. 模塊內部各個元素彼此之間的緊密結合程度
4.需求分析的主要任務是(B)
A.肯定系統怎樣完成工做
B.肯定系統必須完成哪些工做
C.研究系統的軟件結構
D.肯定軟件開發費用
解析:需求分析:開發人員準確地理解用戶的要求,進行細緻的調查分析,將用戶非形式的需求陳述轉化爲完整的需求定義,再由需求定義轉換到相應的需求規格說明的過程。主要任務是肯定系統必須完成哪些工做
5.在設計測試用例時,(A)是用得最多的一種黑盒測試方法。
A.等價類劃分 B.邊界值分析
C.因果圖 D.斷定表
解析:等價類劃分是一種典型的黑盒測試方法。等價類劃分是指分步驟把海量的測試用例集減得很小但過程一樣有效。也就是說,選取足夠小測試用例,發現更多軟件缺陷
6.下列哪一個圖是N-S圖(盒圖)的構件(C)
A. B.
C. D.
解析:A是PAD圖,B是流程圖,C是盒圖,D是PAD圖
7.如下哪一項不是面向對象的特徵( ).
A.多態性 B.繼承性 C.封裝性 D.過程調用
參考答案:D
考察點及解析:OOP特徵的理解
面向對象的特徵有:
(1)對象惟一性。
每一個對象都有自身惟一的標識,經過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不一樣的對象不能有相同的標識。
(2)抽象性。
抽象性是指將具備一致的數據結構(屬性)和行爲(操做)的對象抽象成類。一個類就是這樣一種抽象,它反映了與應用有關的重要性質,而忽略其餘一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。
(3)繼承性。
繼承性是子類自動共享父類數據結構和方法的機制,這是類之間的一種關係。在定義和實現一個類的時候,能夠在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容做爲本身的內容,並加入若干新的內容。
繼承性是面向對象程序設計語言不一樣於其它語言的最重要的特色,是其餘語言所沒有的。
在類層次中,子類只繼承一個父類的數據結構和方法,則稱爲單重繼承。
在類層次中,子類繼承了多個父類的數據結構和方法,則稱爲多重繼承。
多重繼承,JAVA、VB、NET、Objective-C均僅支持單繼承,注意在C++多重繼承時,需當心二義性。
在軟件開發中,類的繼承性使所創建的軟件具備開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的建立工做量,增長了代碼的可重用性。
採用繼承性,提供了類的規範的等級結構。經過類的繼承關係,使公共的特性可以共享,提升了軟件的重用性。
(4)多態性(多形性)
多態性是指相同的操做或函數、過程可做用於多種類型的對象上並得到不一樣的結果。不一樣的對象,收到同一消息能夠產生不一樣的結果,這種現象稱爲多態性。
多態性容許每一個對象以適合自身的方式去響應共同的消息。
多態性加強了軟件的靈活性和重用性。
來源:2016年復旦大學期末考試題
8.模塊內聚度越高,說明模塊內各成分彼此結合的程度越( )。
A.鬆散 B.緊密 C.沒法判斷 D.相等
參考答案:B
考察點:內聚與耦合的概念理解。
內聚度是前述信息隱藏和局部化概念的天然擴展,它標誌一個模塊內部各成分彼此結合的緊密程度。內聚度按其高低程度可分爲7級,內聚度越高越好。
內聚度是前述信息隱藏和局部化概念的天然擴展,它標誌一個模塊內部各成分彼此結合的緊密程度。
設計軟件時,應該可以識別內聚度的高低,並經過修改設計儘量提升模塊內聚度,從而得到較高的模塊獨立性。
來源:2015北京航空航天大學期末考試題
九、 程序的三種基本控制結構是( B)。
A. 過程、子程序和分程序 B. 順序、選擇和循環
C. 遞歸、迭代和回溯 D. 調用、返回和轉移
解析:
程序的三種基本控制結構 :順序結構、選擇結構、循環結構
簡答題
1.什麼是軟件生命週期?
答:
一個軟件從定義,開發,使用和維護,直到最終被廢棄,要經歷一個漫長的時期,一般把軟件經歷的這個漫長時期稱爲生命週期。
2.計算機軟件的開發通過哪三個大階段?
答: 三個階段:定義、開發、維護。
3.解釋重構與功能內聚?
答:
重構(Refactoring)就是經過調整程序代碼改善軟件的質量、性能,使其程序的設計模式和架構更趨合理,提升軟件的擴展性和維護性。
功能內聚指模塊內全部元素共同完成一個功能,缺一不可,所以模塊不能再分割。
4.軟件危機產生的緣由是什麼?
答:
軟件危機的緣由:
a) 軟件不一樣與硬件,是邏輯部件;
b) 軟件規模龐大,邏輯結構複雜;
c) 軟件開發人員和管理人員只重視設計程序而輕視用戶的需求分析,致使最後研製出的軟件產品沒法知足用戶的需求;
d) 軟件設計技術和管理技術落後,沒有統一的軟件質量管理規範;
e) 在軟件的開發與維護關係問題上存在錯誤的概念,重視開發,而輕視維護。
解析:
耦合性(Coupling),也叫耦合度,是對模塊間關聯程度的度量。耦合的強弱取決於模塊間接口的複雜性、調用模塊的方式以及經過界面傳送數據的多少。模塊間的耦合度是指模塊之間的依賴關係,包括控制關係、調用關係、數據傳遞關係。模塊間聯繫越多,其耦合性越強,同時代表其獨立性越差( 下降耦合性,能夠提升其獨立性)。軟件設計中一般用耦合度和內聚度做爲衡量模塊獨立程度的標準。劃分模塊的一個準則就是高內聚低耦合。