




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程學簡答應用知識點第一部分:軟件工程學概論1,什么是軟件工程?軟件工程的目標是什么?軟件工程(學是研究軟件生產方法和技術的學科。軟件工程采用工程的概念、原理和方法來開發、維護軟件,把經過時間檢驗的管理方法和先進的軟件技術相結合,以提高軟件開發的效率、質量和可用性,并有效控制成本和進度。軟件工程的目標是解決或改善軟件危機,即用更低成本、在更短時間內,開發出更高質量、更易使用和維護的軟件產品。2,什么是軟件危機?軟件危機表現在哪幾個方面?軟件危機是1960年代以來廣泛存在的軟件生產力發展遠遠跟不上社會對軟件需求的增長而表現出的一系列矛盾的統稱。其主要表現有:(1需求分析不充分:即閉門造車,所
2、產軟件的功能、用法與用戶真實需要相去甚遠。(2質量參差不齊且售后服務沒保障。(3開發進度、成本失控。(4軟件組成不完整,普遍缺失開發文檔、源代碼和質量評價。(5維護成本高。3,軟件工程的基本原理有哪些?(1分階段的實施與管理:按軟件生命期理論劃分軟件開發、運行與維護的各項工作任務,對不同階段安排不同的時間、人員和物力,每個階段都有相應的管理方法和規范。(2各階段的成果都應是確定的、具體的、可評價的,從而能被清楚地審查。(3嚴格的階段評審:尤其是靠前的階段,其工作質量對軟件工程的整體質量極為關鍵。(4嚴格的產品控制:主要是功能、性能需求的基準配置管理。(5盡可能采用先進的技術:包括分析技術、設計
3、技術、實現技術、測試技術、維護技術等。(6開發人員應少而精。(7在軟件工程的實踐中不斷發展軟件工程學。4,什么是軟件生存周期模型?軟件生存周期模型即軟件工程過程模型,它從時間角度將軟件開發、運行與維護等工作劃分成多個特色鮮明的階段,對不同階段安排不同的時間、人員和物力,每個階段都有相應的管理方法和規范。它是指導軟件開發與維護的方法論基礎。從最初的三階段論(軟件計劃、軟件開發、運行與維護到比較成熟的七階段論(可行性研究、需求分析、概要設計、詳細設計、編碼實現、測試、運行與維護,形成了多種經典的軟件工程過程模型:(1瀑布模型:是較早體現七階段理論的實際工程模型,主要體現了軟件工程基本原理一、二、三
4、、四,使用此模型,軟件開發效率高,但需求分析不充分的風險比較大。(2快速原型化模型:運用快速原型技術來降低需求分析不充分的風險。(3構件組裝模型:在開發產品時有意識地先開發出遵循標準規范的、具有通用功能的、獨立性較強的構件,從而在以后的產品開發中可以方便地重用這些代碼。(4螺旋模型:強調風險分析與決策。(5V模型:側重于質量保證。5,軟件工程為什么要強調規范化和文檔化?整個軟件工程會有許多人參與其中,不規范會導致交流困難、組合失敗;軟件的規范化還有利于與其它軟件的互動、協作;規范化的軟件更容易使用和維護,從而可以降低運行、維護的成本。文檔化是規范化的一個重要要求,其目的是使軟件更可理解、更易維
5、護、更可管理,從而提高軟件質量、提高二次開發效率。6,軟件工程的發展經歷了哪些階段?(11970年代后,傳統軟件工程:軟件工程學理論基本形成;廣泛運用結構化分析、設計、編碼方法。(21980年代后,對象化軟件工程:形成了OOA、OOD、OOP、OOT等面向對象的方法和技術。(31990年代后,組件化軟件工程:以對象化技術為基礎,形成一系列規范標準,使軟件中間件易于維護、易于互調,軟件重用度大幅度提高,軟件開發效率和質量都有質的提升。7,軟件工程師的基本職業道德規范有哪些?ACM/IEEE-CS的軟件工程師道德規范和實踐要求(SEEPP指出:(1公眾原則:以公眾利益為目標。(2客戶和雇主原則:在
6、公眾原則的前提下,滿足客戶和雇主的最高利益。(3產品原則:確保產品和相關改進符合最高的專業標準。(4判斷原則:維護職業判斷的完整性和獨立性。(5管理原則:贊成和促進對軟件開發與維護的合乎道德規范的管理。(6專業原則:推進專業完整性和聲譽。(7同行原則:對待同行應當平等、互助和支持。(8自身原則:參與終身職業實踐學習,并促進合乎道德的職業實踐方法。8,什么是軟件工程師的職業化?職業化就是能勝任工作、讓人放心。勝任工作意味著具備相應的專業技能、專業知識和專業經驗;讓人放心意味著建立在行業準則之上的自律精神、團隊內外的良好溝通。職業工程師的基本素質包括:高質量完成任務,自覺遵守行業標準,積極融入團隊
7、,重視知識產權,認真對待計劃,公私分明,不斷進取,重視溝通,遵重職場守則,誠信豁達。第二部分:可行性研究與項目管理1,什么是可行性研究?它有什么意義?如何進行可行性研究?可行性研究就是用最小代價在最短時間內確定問題能否解決、是否值得解決。它可以最大程度上避免投資浪費和無意義的人力投入。通過經濟、技術、法律、環境的可行性研究,在可行性研究報告中描述技術可行性、項目成熟度、市場需求情況、成本估算、經濟與社會效益分析結論,如果可行則還要給出項目計劃建議。經濟可行性:成本<<收益。2,開發一個軟件產品和開發一個軟件項目的可行性研究側重點有何不同?產品軟件是開發者根據市場典型需求自行投次開發
8、的、面向社會銷售軟件拷貝而盈利的開發模式,軟件產品歸開發者所有,用戶只是購買了一份使用權,其可行性研究應側重于市場需求、成熟度的分析。項目軟件是由特定用戶投資立項、針對該用戶實際需求而研發的、目標相對模糊的、產權歸該用戶的開發模式,其可行性研究一般側重于技術可行性、成本估算等。第三部分:結構化分析設計1,什么是需求分析?需求分析就是分析者通過各種調研途徑和方式,力求準確把握客戶的真實想法,在需求規格說明書中用合適的形式清楚、準確地描述出客戶對軟件功能、性能的真實需要,并經客戶確認。此后,需求規格說明書將成為軟件設計、實現和驗收測試的基本依據。2,什么是結構化需求分析?結構化分析(SA有什么優缺
9、點?結構化需求分析是面向數據流的分析方法。該方法可以自頂向下、逐步細化,充分考慮全局業務邏輯,直接支持模塊化設計與實現;數據與行為分離,相較于OO方法,軟件獨立性、靈活性、可重用性不高。SA方法一般從對軟件用戶的分析入手,概括出所要處理的信息、信息流經的業務環節以及信息的變化,即軟件的數據基礎和功能需求。并進一步論證用戶對軟件性能的要求。在結構化分析方法中,通常用系統流程圖描述客戶當前的基本工作原理。在此基礎上,用數據流圖和數據字典描述軟件所要處理或生成的基本信息和軟件的基本功能邏輯。進一步,運用ER(實體·關系圖詳細描述基本信息的組成、結構和相互關聯;運用IPO 圖等詳細描述每個處
10、理環節的輸入、輸出信息和處理要點。3,飛機訂票數據流圖 5,什么是結構化設計?結構化設計以需求分析報告為依據,采用模塊化、自頂向下、逐步求精的方法,經過概要設計和詳細設計,形成軟件方案文檔。概要設計:首先,提出合理的技術實現模型,包括編碼語種、數據庫類型、服務器等。其次,根據ER圖開展數據基礎的設計,定義數據庫結構或數據結構或文件結構。還有,根據數據流圖開展程序結構設計,把整個系統劃分成若干個模塊,并用軟件結構圖描述模塊關系;同時,詳細定義各模塊的接口。詳細設計:運用FC圖、NS圖或PDL等詳細描述每個模塊的計算原理;繪制主要畫面的信息布局示意圖,定義主要畫面上的控制輸入和數據輸入。6,什么是
11、模塊?如何進行模塊化設計?模塊是完成一定功能的、能被按名調用的、可以獨立編輯、存儲和處理的程序單位。模塊的外部特性反映為模塊接口,包括模塊名、輸入參數、返回結果或功能結果;模塊的內部特性就是它的內部數據結構和計算原理。模塊定義的關鍵是獨立性和通用性。增強獨立性的措施是加強模塊的內聚、弱化模塊間的耦合,具體的,就是盡可能將信息隱藏在模塊內部,使模塊的接口變得簡單。增強通用性主要依靠對事務的抽象。7,軟件設計應遵循哪些原則?軟件設計的基本原則有:需求決定設計;提高軟件可復用性;高獨立性結構化模塊化設計高內聚、低耦合;規范化風格;容錯設計等。8,變換型數據流和事務型數據流有何區別?變換型數據流主要反
12、映數據經過處理后的變換結果;事務型數據流主要反映不同業務環節之間的邏輯關系。9,衡量模塊獨立性的兩個標準是什么?可以用模塊的內聚性衡量其獨立性,內聚越強,模塊獨立性越高,可復用性、可維護性等也越好。也可用模塊間的耦合性衡量模塊獨立性,模塊間耦合越松散,模塊的獨立性越高。10,模塊內聚有哪些各類?獨立性、可復用性較差的弱內聚:(1巧合內聚(偶然內聚:模塊內各操作之間沒有任何相關性,每個操作都可以分離為獨立的子模塊。這種模塊一般沒什么復用價值。(2邏輯內聚:就是把邏輯上比較相似的操作組合在一個模塊中。這種做法可以節約代碼或數據空間,但顯著降低了模塊的可復用性。(3時間內聚:某些完全沒有邏輯關聯的操
13、作被組合在一起只是因為它們都是在某種時刻被執行的。例如系統初始化模塊。有一定獨立性、復用性的中等內聚:(4過程內聚:某此操作被組合在一起是因為它們是某一任務過程的不同步驟,這些步驟有先后要求。(5順序內聚:模塊內各操作是前后數據關聯的,即前一操作的輸出是后一操作的輸入。(6通信內聚:將各操作組合在一起是因為要共用某一輸入數據,或是要產生同一種輸出。獨立性、復用性好的強內聚:(7功能內聚:模塊內各操作都是為完成某個功能而必不可少的、緊密聯系的步驟。11,模塊間有哪幾種耦合?現代軟件設計中建議禁止的病態耦合:(1內容耦合:A模塊內代碼直接引用B模塊內的代碼或數據。一般只用于系統服務、總控平臺或特殊
14、功能的緊密耦合:(2公共耦合:多個模塊共享某一全局數據結構。(3外部耦合:多個模塊共享某一全局簡單數據。(4控制耦合:模塊A向模塊B傳遞一個控制信息,最典型的情況是以函數名為參數傳遞給一個模塊。可以廣泛使用的松散耦合或無耦合:(5數據結構耦合:模塊間傳遞的參數包含數據結構構造類型(數組、結構體、類對象等。(6數據耦合:模塊間傳遞的參數都是以標準數據類型定義的簡單參數。(7非直接耦合:兩個模塊間沒有直接關系。第四部分:對象化分析設計1,圖書借閱活動圖 2,學校領書活動圖 第五部分:軟件實現與測試1,計算機語言有哪些類型?各有什么特點和適用性?按照語法復雜性、歷史發展水平可以將計算機語言劃分為三代
15、:低級語言、(傳統高級語言和現代(高級語言。低級語言:包括機器語言、匯編語言和宏匯編語言。與硬件相關性較強、指令集較小、語法簡單、功能編程極其靈活,被稱為萬能語言。以此開發軟件則質量難以提高、進度難以保證、成本較高,但運行速度相對較快、占用內存空間可以更少。高級語言:特點是可讀性強、硬件無關性強,通常還配有高效易用多功能的語言處理軟件和子程序、函數庫,一般具有鮮明的應用領域針對性。以此開發軟件則進度較快、質量較易提高、成本較低。早期高級語言是非結構化的(以BASIC為主要代表,后來的則都是結構化的(如PASCAL、LOGO、C等,再后來就發展到對象化的(如C+、Java 等。根據高級語言的應用
16、領域適用特征,可以有高級算法語言(如FORTRAN、PASCAL、C、C+、商用信息處理語言(如COBOL、工業控制語言(如ADA、人工智能模擬語言(如LISP、PROLOG、過程性數據庫操作語言(如xBASE、結構化查詢數據庫語言(如SQL、網頁腳本語言(如JScript、網頁文檔結構描述語言(如HTTP、XML等。現代語言:有一些語言特征逐漸被開發者普遍認為是有益的,具有這些特征的高級語言被稱為現代高級語言(如C#、J+等:(1具有對象化編程核心;(2具有異常響應編程語法;(3支持數據庫引擎接口;(4支持事件響應編程模式;(5支持典型網絡協議和統一資源定位;(6擁有良好的可視化集成式開發工
17、具以進行高效率的編碼、編譯、調試和生成;(7擁有豐富的類庫和公共計算資源;(8支持線程并發等最新計算模式。2,良好的編程風格是怎樣的?良好的編程風格主要表現為良好的可讀性、高度的獨立性、通用性、可靠性和可移植性。(1運用比較流行的、成熟的結構化、對象化高級語言或現代語言,使程序結構簡單、規模合適。(2采用結構層次縮進式編碼格式,使程序語法清楚、流程清晰。(3盡量使用標準庫和久經考驗的擴展庫。(4標識符應當簡潔表義。(5要有適當的注釋:任何程序單位的開頭都應有序注,以說明功能和用法(傳入參數含義、返回值含義等;某些關鍵表達式、優化過的表達式或特殊語句的右邊添加旁注,以助日后理解;可以在程序單位的
18、最后添加尾注,介紹某些相關知識或補充信息。(5語義表達要明確唯一,不能有二義性。(6不可靠之處應有冗余容錯處理。(7盡量避免四層以上的嵌套。(8對外部輸入要進行嚴格的邏輯檢查。(9要盡可能照顧到程序的可移植性。3,什么是軟件測試?有哪些類型的軟件測試?狹義的軟件測試是指為了發現軟件中可能存在的錯誤而執行軟件的過程,一般根據一定的原則選擇一些輸入值(稱作測試樣例構成一個測試方案。軟件測試的目標是用最小的樣例集合暴露最多的軟件錯誤。如果某個樣例使得軟件出錯,則稱這是一次成功的測試。 4,白盒測試有哪些標準?(1語句覆蓋:所用測試樣例使被測單位的每條語句至少執行一次。(2判定覆蓋:又稱分支覆蓋、選擇
19、覆蓋,所用測試樣例實現語句覆蓋的同時,還使被測單位的每個選擇分支都至少執行一次以上。(3條件覆蓋:所用測試樣例實現語句覆蓋的同時,還使被測單位的每個判定中的每個條件都至少取真、取假各一次以上。(4條件組合覆蓋:所用測試樣例實現語覆蓋的同時,還使被測單位的每個判定中的每種條件組合都至少出現一次以上。(5其它如點覆蓋、邊覆蓋、路徑覆蓋等。5,如何設計黑盒測試?根據需求描述,將被測試軟件單位的數據輸入按某種規則劃分成幾個等價類(例如合理值與不合理值、合法值與非法值、正數與負數等,然后在每個等價類中任選一個代表值,還有兩個相鄰等價類之間的邊界值,由代表值和邊界值共同組成一個黑盒測試方案。第六部分:軟件維護與項目管理1,軟件維護有哪些類型?被動維護:(1糾錯性維護:又稱改正性維護,是由于軟件發生了錯誤而需要改正它。(2適應性維護:為適應軟件運行環境的變化而對軟件進行修改。(3擴展性維護:又稱完善性維護,是為了滿足用戶對軟件的新需求而增加功能或改動設計。主動維護:(4改進性維護:又稱優化性維護,一般是為了提高軟件的性能。(5預防性維護:為防止某些可能出現的問題而針對性地加以防范。2,如何提高軟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論