软件工程复试面试问题总结(二)
可行性研究
為什么要進(jìn)行可行性研究
用最小的代價(jià)、在盡可能短的時(shí)間內(nèi)確定問題是否能被解決。(注意:不是去解決問題)
可行性研究工具有哪些?
請(qǐng)介紹一下可行性研究的方法
首先分析問題,試探性的導(dǎo)出問題的各種解,然后進(jìn)行各種分析和比較,選擇和推薦可行的解決方案。采用系統(tǒng)流程圖描述物理數(shù)據(jù)流;運(yùn)用數(shù)據(jù)流圖并結(jié)合數(shù)據(jù)字典構(gòu)建系統(tǒng)的邏輯模型。可行性研究的結(jié)果產(chǎn)生可行性研究報(bào)告。
軟件需求分析的任務(wù)是什么?有哪些主要步驟?
任務(wù):
一、確定對(duì)系統(tǒng)的綜合要求
(1)功能需求:明確所開發(fā)的軟件必須具備什么樣的功能
(2)性能需求:明確待開發(fā)的軟件的技術(shù)性能指標(biāo)
(3)環(huán)境需求:明確軟件運(yùn)行時(shí)所需要的軟、硬件的要求
(4)用戶界面需求:明確人機(jī)交互方式、輸入輸出數(shù)據(jù)格式
二、分析系統(tǒng)的數(shù)據(jù)要求(任何一個(gè)軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),系統(tǒng)必須處理的信息和系統(tǒng)應(yīng)該產(chǎn)生的信息在很大程度上決定了系統(tǒng)的面貌,對(duì)軟件設(shè)計(jì)有深遠(yuǎn)影響,因此,必須分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一個(gè)重要任務(wù)。)
三、?導(dǎo)出系統(tǒng)的邏輯模型(綜合上述兩項(xiàng)分析的結(jié)果可以導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型,通常用數(shù)據(jù)流圖、實(shí)體-聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典和主要的處理算法描述這個(gè)邏輯模型。)
四、?修正系統(tǒng)開發(fā)計(jì)劃(根據(jù)在分析過程中獲得的對(duì)系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,修正以前制定的開發(fā)計(jì)劃。)
步驟:
1.需求獲取:從分析當(dāng)前系統(tǒng)包含的數(shù)據(jù)開始,系統(tǒng)需求包括用戶對(duì)軟件功能的需求和界面的需求。
2.需求提煉:分析建模:圖像化的分析模型包括數(shù)據(jù)流圖,實(shí)體關(guān)系圖,控制流圖,狀態(tài)轉(zhuǎn)換圖,用例圖,類對(duì)象關(guān)系及其行為圖等。除系統(tǒng)模型外,更有系統(tǒng)關(guān)聯(lián)圖,創(chuàng)建用戶接口原型,確定需求優(yōu)先級(jí)別等。
3.需求描述:編寫統(tǒng)一格式的文檔。
4.需求驗(yàn)證:改善需求中的二義性,不一致的問題。
總體設(shè)計(jì)
總體設(shè)計(jì)過程分:
系統(tǒng)設(shè)計(jì)過程,確定系統(tǒng)的具體實(shí)現(xiàn)方案?;
結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)
詳細(xì)設(shè)計(jì)
詳細(xì)設(shè)計(jì)的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序
主要任務(wù)是過程設(shè)計(jì)。需要注意,過程設(shè)計(jì)應(yīng)該在數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)和接口設(shè)計(jì)之后進(jìn)行,過程設(shè)計(jì)的主要內(nèi)容是設(shè)計(jì)解題的詳細(xì)步驟,即算法。
接口設(shè)計(jì)中,人機(jī)界面設(shè)計(jì)是一個(gè)重要組成部分,設(shè)計(jì)原理是一個(gè)迭代過程,反復(fù)琢磨逐步求精。
軟件測(cè)試的目標(biāo)是什么,主要有哪幾種測(cè)試方法??
軟件測(cè)試的目的:
(1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程;
(2)好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;
(3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
從是否關(guān)心內(nèi)部結(jié)構(gòu)來看分為
(1)白盒測(cè)試:又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,是一種按照程序內(nèi)部邏輯結(jié)構(gòu)和編碼結(jié)構(gòu),設(shè)計(jì)測(cè)試數(shù)據(jù)并完成測(cè)試的一種測(cè)試方法。
(2)黑盒測(cè)試:又稱為數(shù)據(jù)驅(qū)動(dòng)測(cè)試,把測(cè)試對(duì)象當(dāng)做看不見的黑盒,在完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程的情況下,測(cè)試者僅依據(jù)程序功能的需求規(guī)范考慮,確定測(cè)試用例和推斷測(cè)試結(jié)果的正確性,它是站在使用軟件或程序的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對(duì)應(yīng)關(guān)系出發(fā)進(jìn)行的測(cè)試。
(3)灰盒測(cè)試:是一種綜合測(cè)試法,它將“黑盒”測(cè)試與“白盒”測(cè)試結(jié)合在一起,是基于程序運(yùn)行時(shí)的外部表現(xiàn)又結(jié)合內(nèi)部邏輯結(jié)構(gòu)來設(shè)計(jì)用例,執(zhí)行程序并采集路徑執(zhí)行信息和外部用戶接口結(jié)果的測(cè)試技術(shù)
軟件測(cè)試的過程有哪幾個(gè)步驟?
單元測(cè)試:檢查各個(gè)程序模塊是否完成了功能
集成測(cè)試:把測(cè)試過的模塊組裝起來,測(cè)試軟件體系結(jié)構(gòu)
確認(rèn)測(cè)試:檢查已經(jīng)實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說明書的需求
系統(tǒng)測(cè)試:把已經(jīng)確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境,與其他系統(tǒng)成分一起測(cè)試
驗(yàn)收測(cè)試:向用戶表明系統(tǒng)已經(jīng)符合了用戶預(yù)期標(biāo)準(zhǔn)
什么是軟件調(diào)試?有哪些調(diào)試方法?
軟件調(diào)試,是在測(cè)試成功后進(jìn)行的工作,用以進(jìn)一步診斷和改正程序中的潛在錯(cuò)誤。
調(diào)試由兩部分組成:1.確定程序中可疑錯(cuò)誤的確切性質(zhì)和位置2.對(duì)程序修改,排除這個(gè)錯(cuò)誤。
主要的調(diào)試方法有:1.強(qiáng)行排錯(cuò)2.回溯法調(diào)試3.對(duì)分查找法4.歸納法5.演繹法
軟件維護(hù)的目標(biāo)是什么,有哪幾種維護(hù)類型?
目標(biāo):糾正在使用過程中暴露出來的錯(cuò)誤而進(jìn)行的改進(jìn)型維護(hù),適應(yīng)外部環(huán)境的變化而進(jìn)行的適應(yīng)性維護(hù),改進(jìn)原有的軟件而進(jìn)行的完善性維護(hù),以及改進(jìn)將來的可維護(hù)性和可靠性而進(jìn)行的預(yù)防性維護(hù)。
類型
(1)糾錯(cuò)性維護(hù):由于前期的測(cè)試不可能揭露軟件系統(tǒng)中所有潛在的錯(cuò)誤,用戶在使用軟件時(shí)仍將會(huì)遇到錯(cuò)誤,診斷和改正這些錯(cuò)誤的過程稱為糾錯(cuò)性維護(hù)。
(2)適應(yīng)性維護(hù):由于新的硬件設(shè)備不斷推出,操作系統(tǒng)和編譯系統(tǒng)也不斷地升級(jí),為了使軟件能適應(yīng)新的環(huán)境而引起的程序修改和擴(kuò)充活動(dòng)稱為適應(yīng)性維護(hù)。
(3)完善性維護(hù):在軟件的正常使用過程中,用戶還會(huì)不斷地提出新的需求。為了滿足用戶新的需求而增加軟件功能的活動(dòng)稱為完善性維護(hù)。
簡(jiǎn)述提高軟件質(zhì)量的主要措施
復(fù)審:是在軟件生命周期每個(gè)階段結(jié)束之前,都采用一定的標(biāo)準(zhǔn)對(duì)該段產(chǎn)生的軟件配置成分進(jìn)行嚴(yán)格的正式或非正式的檢測(cè)。
復(fù)查:是檢查已有的材料,以斷定在軟件生命周期某個(gè)階段的工作是否能開始或繼續(xù)。
管理復(fù)審:是向開發(fā)組織或使用部門的管理人員提供有關(guān)項(xiàng)目的總體狀況、成本和進(jìn)度等方面的情況,以便他們從管理角度對(duì)開發(fā)工作進(jìn)行審查。
測(cè)試:包括測(cè)試計(jì)劃、測(cè)試過程和測(cè)試結(jié)果3個(gè)階段。
選擇一種程序設(shè)計(jì)語言的主要有哪些依據(jù)?
為了使程序容易測(cè)試和維護(hù)以減少生命周期的總成本,選用的高級(jí)語言應(yīng)該有理想的模塊化機(jī)制,以及可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);
為了便于調(diào)試和提高軟件可靠性,語言特點(diǎn)應(yīng)該使編譯程序能夠盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤;
為了降低軟件開發(fā)和維護(hù)的成本,選用的語言應(yīng)該有良好的獨(dú)立編譯機(jī)制。
上述這些要求是選擇語言的理想標(biāo)準(zhǔn),但是在實(shí)際選用語言時(shí)不能僅僅考慮理論上的標(biāo)準(zhǔn),還必須同時(shí)考慮實(shí)用方面的各種限制。 (1)系統(tǒng)用戶的要求 (2)可以使用的編譯程序 (3)可以得到的軟件工具 (4)系統(tǒng)規(guī)模 (5)程序員的知識(shí) (6)軟件可移植性要求 (7)軟件的應(yīng)用領(lǐng)域
?
基本的軟件設(shè)計(jì)原理有哪些?
模塊化(使復(fù)雜問題“分而治之”)
抽象(抓事務(wù)本質(zhì)特征,先不考慮細(xì)節(jié))
逐步求精(集中精力先解決主要問題,盡量推遲對(duì)細(xì)節(jié)的考慮)
信息隱藏和局部化(將某些模塊的某些過程和數(shù)據(jù)隱藏起來,其他模塊不能訪問它)
模塊獨(dú)立性(模塊獨(dú)立性是模塊化、抽象、信息隱藏的直接產(chǎn)物)
?
總結(jié)
以上是生活随笔為你收集整理的软件工程复试面试问题总结(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Metro风格的开源项目 MahApps
- 下一篇: UnityEditor三自定义窗口 案例