文章目錄
- 試題一:論面向對象的信息系統分析方法
- 試題二:論靜態測試方法及其應用
- 試題三:論富互聯網應用的客戶端開發技術
- 試題四:論DevSecOps技術及其應用
試題一:論面向對象的信息系統分析方法
信息系統分析是信息系統生命周期的重要階段之一,是使用系統的觀點和方法,把復雜系統分解為簡單組成部分并確定這些組成部分的基本屬性和關系的過程。在此過程中可使用多種分析方法,以及相應的輔助工具。其中,面向對象分析方法(Object-Oriented AnalysisMethod,00AM)是在系統開發過程中進行了系統業務調查后,按照面向對象的思想來分析問題的方法。
請圍繞“面向對象的信息系統分析方法”論題,依次從以下三個方面進行論述。
1.概要敘述你參與管理和開發的軟件項目以及你在其中所承擔的主要工作。
2.請簡要描述面向對象系統分析方法的主要步驟。
3.具體闡述你參與管理和開發的項目是如何基于面向對象分析方法進行信息系統分析的。
解題思路:
一、簡要敘述所參與管理和開發的軟件項目,需要明確指出在其中承擔的主要任務和開展的主要工作。
二、面向對象分析方法通常按照下面的步驟來進行:
(1)標識對象和類。可以從應用領域開始,逐步確定形成整個應用的基礎類和對象。這一步需要分析領域中目標系統的責任,調查系統的環境,從而確定對系統有用的類和對象。(2)標識結構。典型的結構有兩種,即一般-特殊結構和整體-部分結構。一般-特殊結構表示一般類是基類,特殊類是派生類。比如,汽車是轎車和卡車的基類,這是一種一般-特殊結構。整體-部分結構表示聚合,由屬于不同類的成員聚合成為新的類。比如,輪子、車體和汽車底盤都是汽車的一部分,這些不同功能的部件聚合成為汽車這個整體。
(3)標識屬性。對象所保存的信息稱為它的屬性。類的屬性描述狀態信息,在類的某個實例中,屬性的值表示該對象的狀態值。需要找出每個對象在目標系統中所需要的屬性,并將屬性安排在適當的位置,找出實例連接,最后再進行檢查。應該給出每個屬性的名字和描述,并指定該屬性所受的特殊限制(如只讀、屬性值限定在某個范圍之內等)。
(4)標識服務。對象收到消息后執行的操作稱為對象提供的服務。它描述了系統需要執行的處理和功能。定義服務的目的是定義對象的行為和對象之間的通信。
(5)標識主題。為了更好地理解包含大量類和對象的概念模型,需要標識主題,即對模型進行劃分,給出模型的整體框架,劃分出層次結構。
三、論文中需要結合項目實際工作,詳細論述在項目中是如何基于面向對象的分析方法進行信息系統分析的。
試題二:論靜態測試方法及其應用
軟件測試是在將軟件交付給客戶之前所必須完成的重要步驟之一。目前,軟件的正確性證明技術尚不成熟,軟件測試仍是發現軟件錯誤的主要手段。軟件測試方法可分為靜態測試和動態測試,其中靜態測試是指被測程序不在機器上運行,而通過人工檢測和計算機輔助的手段對程序進行測試,該方法能夠有效地發現軟件30%~70%的設計和編碼錯誤。
請圍繞“靜態測試方法及其應用”論題,依次從以下三個方面進行論述。
1.概要敘述你參與管理和開發的軟件項目,以及你在其中所承擔的主要工作。
2.詳細論述靜態測試主要方法的內容和過程。
3.結合你具體參與管理和開發的實際項目,說明如何進行靜態測試,并說明如何選擇合適的靜態測試方法及具體實施過程和效果。
解題思路:
一、簡要敘述所參與管理和開發的軟件項目,并明確指出在其中承擔的主要任務和開展的主要工作。
二、靜態測試是指被測程序不在機器上運行,而采用人工檢測和計算機輔助靜態分析的手段對程序進行測試。靜態測試的目標包括文檔和代碼。對代碼的靜態測試一般采用桌前檢查、代碼審查、代碼走查。經驗表明,使用這種方法能夠有效地發現30%~70%的邏輯設計錯誤和編碼錯誤。
桌前檢查:由程序員檢查自己編寫的程序。程序員在程序通過編譯之后,進行單元測試之前,對程序源代碼進行分析、檢驗,并補充相關的文檔,目的是發現程序中的錯誤。由于程序員熟悉自己的程序及其程序設計風格,可以節省很多的檢查時間,但應避免主觀片面性。
代碼審查:代碼審查是由若干程序員和測試員組成一個評審小組,通過閱讀、討論和爭議,對程序進行靜態分析的過程。在會上,首先由程序員逐句解釋程序的邏輯。在此過程中,程序員或其他小組成員可以提出問題,展開討論,審查錯誤是否存在。實踐表明,程序員在審查的過程中能發現許多原來自己沒有發現的錯誤,而討論和爭議則促進了問題的暴露。
代碼走查:走查與代碼審查基本相同,但開會的程序與代碼審查不同,走查不是簡單地讀程序和對照錯誤檢查表進行檢查,而是讓與會者“充當”計算機,即首先由測試組成員為所測試程序準備一批有代表性的測試用例,提交給走查小組。走查小組開會,集體扮演計算機角色,讓測試用例按照程序的邏輯運行一遍,隨時記錄程序的蹤跡,供分析和討論用。
靜態分析:靜態分析是指在不運行代碼的方式下,通過詞法分析、語法分析、控制流、數據流分析等技術對程序代碼進行掃描,驗證代碼是否滿足規范性、安全性、可靠性、可維護性等指標的一種代碼分析技術。目前靜態分析技術向模擬執行的技術發展,以能夠發現更多傳統意義上動態測試才能發現的缺陷,例如符號執行、抽象解釋、值依賴分析等,并采用數學約束求解工具進行路徑約減或者可達性分析以減少誤報,增加分析效率。
三、考生需結合自身參與項目的實際狀況,指出其參與管理和開發的項目中所進行的靜態測試工作,說明靜態測試的具體實施過程、如何選擇靜態測試方法,并對實際應用效果進行分析。
試題三:論富互聯網應用的客戶端開發技術
富互聯網應用(Rich Internet Application,RIA)是一種新型Web應用程序架構。它結合了桌面軟件良好的用戶體驗和Web應用程序易部署的優點,利用豐富的數據模型和豐富的客戶端呈現形式,保證了在無刷新頁面之下提供更高效的界面響應速度和通用的用戶界面特征,迅速響應用戶輸入并進行相應處理,從而為用戶構建一個快速響應、交互性強的應用程序。近年來,各技術廠商相繼推出了多種新的技術來支持RIA應用開發。
請圍繞“富互聯網應用的客戶端開發技術”論題,依次從以下三個方面進行論述。
1.簡要敘述你參與的軟件開發項目以及你所承擔的主要工作。
2.說明目前有哪些主要的RIA客戶端開發技術,詳細闡述每種技術的特點和優勢。
3.根據你所參與的項目,具體采用了哪種RIA客戶端開發技術,其實施效果如何。
解題思路:
一、簡要描述所參與的軟件系統開發項目,并明確指出在其中承擔的主要任務和開展的主要工作。
二、說明目前有哪些主要的RIA客戶端開發技術,詳細闡述每種技術的特點和優勢。
(1) Flex。 Flex是一個表示服務器和應用程序框架,它可以運行于J2EE 和.NET 平臺。Flex應用程序框架由MXML (Macromedia XML)、ActionScript和Flex類庫構成。開發人員利用MXML定義應用程序用戶界面元素,利用ActionScript 定義客戶邏輯與程序控制。Flex類庫中包括Flex組件、管理器和行為等。
(2) Bindows。 Bindows是用JavaScript和 DHTML (Dynamic HTML,動態 HTML)開發的Web窗口框架。JavaScript用于客戶端界面的顯示和處理,XML和 HTTP用于客戶端與服務器的信息傳輸。
(3) Java。 一些相當復雜的系統都是用Java 編寫的,這說明可以用Java來建立幾乎任何一個能夠想象得到的RIA。使用Java建立RIA 的主要缺陷是它的復雜性,例如,即使對簡單的窗口和圖形,也要求編寫非常煩瑣的代碼。
(4) Laszlo。 Laszlo是一個開源的RIA開發環境。使用Laszlo平臺時,開發人員只需編寫名為LZX的描述語言(其中整合了XML 和JavaScript),運行在J2EE 應用服務器上的 Laszlo表示服務器會將其編譯成SWF格式的文件并傳輸給客戶端展示。
(5) XUL。 XUL (XML User Interface Language,基于 XML 的用戶界面語言)可用于建立窗口應用系統,這些系統既可以在Mozilla瀏覽器上運行,也可以在其他描述引擎上運行。XUL描述引擎都非常小,它既可以使用XML 數據,也可以生成XML數據。
(6)Avalon。 Avalon是 Vista的一部分,是一個圖形和展示引擎,主要由.NET框架中的一組類集合而成。Avalon定義了一個在 Longhorn中使用的新標記語言,其代號為 XAML (eXtensibleApplication Markup Language),即可擴展應用標記語言。可以使用XAML 來定義文本、圖像和控件的布局,程序代碼可以直接嵌入到XAML 中,也可以將它保留在一個單獨的文件內。
三、針對考生本人所參與的項目中使用的RIA客戶端開發技術,說明實施過程和具體實施效果。
試題四:論DevSecOps技術及其應用
隨著互聯網技術不斷發展,網絡安全面臨著更大的挑戰,IT安全防護顯得越來越重要。采用DevOps技術能夠有效推進軟件開發的效率,提高迭代速度。但是,在傳統的DevOps技術實施過程中,安全防護在開發的最后階段才介入,延后的安全措施可能會拖累整個流程,嚴重影響DevOps的實施速度和效果。在這一背景下,業界普遍認為安全防護是整個IT團隊的共同責任,需要貫穿至整個生命周期的每一個環節,由此催生出了“DevSecOps”這一概念,它強調在項目計劃啟動初期,必須為DevOps計劃打下扎實的安全基礎。
請圍繞“DevSecOps技術及其應用”論題,依次從以下三個方面進行論述。
1.概要敘述你參與管理和開發的軟件項目以及你在其中所承擔的主要工作。
2.詳細描述DevSecOps包含的主要階段和每個階段需要完成的工作。
3.結合你具體參與管理和開發的實際軟件項目,說明是如何應用 DevSecOps 技術進行開發、運維、安全一體化管理的,給出具體實施過程以及應用效果。
解題思路:
一、簡要敘述所參與管理和開發的軟件項目,并明確指出在其中承擔的主要任務和開展的主要工作。
二、典型的 DevOps流程包括計劃、編碼、構建、測試、發布和部署等階段。在DevSecOps中,每個階段都會應用特定的安全檢查。
(1)計劃:執行安全性分析并創建測試計劃,以確定在何處、如何以及何時進行測試的方案。
(2)編碼:部署檢查工具和代碼倉庫控件(如Git控件)以保護密碼和API密鑰。
(3)構建:在構建執行代碼時,結合使用靜態應用程序安全測試(SAST)工具來跟蹤代碼中的缺陷,然后再部署到生產環境中。這些工具針對特定的編程語言。
(4)測試:在運行時使用動態應用程序安全測試(DAST)工具來測試應用程序。這些工具可以檢測用戶身份驗證、授權、SQL注入以及與 API相關端點的錯誤。
(5)發布:在發布應用程序之前,使用安全分析工具來進行全面的滲透測試和漏洞掃描。
(6)部署:在運行時完成上述測試后,將安全的版本發送到生產環境中以進行最終部署。
三、考生需結合自身參與項目的實際狀況,指出其參與管理和開發的項目中是如何應用DevSecOps 技術進行開發、運維、安全一體化管理的,說明具體實施過程、使用的方法,并對實際應用效果進行分析。