第一篇:《軟件工程》
《軟件工程》課程分析
本課程是軟件技術(shù)專業(yè)學(xué)生必修的一門專業(yè)必修課。根據(jù)培養(yǎng)軟件開發(fā)人員的需要,本課程的任務(wù)是使學(xué)生通過(guò)本課程的學(xué)習(xí),了解軟件項(xiàng)目開發(fā)和維護(hù)的一般過(guò)程,掌握軟件開發(fā)的傳統(tǒng)方法和最新方法。能在軟件工程的理論指導(dǎo)下,開發(fā)一個(gè)小型管理系統(tǒng),為今后從事軟件工程實(shí)踐打下良好的基礎(chǔ)。
一、課程分析
(一)教學(xué)計(jì)劃的制定和教學(xué)內(nèi)容的選取
根據(jù)培養(yǎng)應(yīng)用技能型人才的總目標(biāo),制訂本專業(yè)教學(xué)計(jì)劃,課程的教材配套,教學(xué)、實(shí)驗(yàn)、實(shí)訓(xùn)、課程設(shè)計(jì)大綱和指導(dǎo)書等教學(xué)文件齊全,近幾年來(lái)引入了現(xiàn)代教學(xué)技術(shù)手段,已初步建設(shè)、形成了具有特色的全套課堂教學(xué)和實(shí)驗(yàn)教學(xué)課件。
根據(jù)該課程的基本教學(xué)要求和特點(diǎn),結(jié)合學(xué)時(shí)的安排,從教材的整體內(nèi)容出發(fā),有側(cè)重地進(jìn)行取舍,篩選出學(xué)生必須掌握的基本教學(xué)內(nèi)容,較好地解決了教學(xué)中質(zhì)量與數(shù)量的矛盾。
(二)教學(xué)方法分析
由于該課程是用于指導(dǎo)軟件開發(fā)的,和實(shí)踐聯(lián)系非常緊密。所以采用了理論聯(lián)系實(shí)際的方法進(jìn)行授課。一方面,讓學(xué)生模擬軟件公司的項(xiàng)目小組進(jìn)行軟件開發(fā);一方面,對(duì)學(xué)生進(jìn)行適時(shí)的理論指導(dǎo)。既調(diào)動(dòng)了學(xué)生的積極性,又讓學(xué)生了解了該課程的理論內(nèi)容,收到了一舉兩得的效果。具體教學(xué)過(guò)程如下:
第一步:模擬軟件公司的開發(fā)項(xiàng)目小組,分組,分設(shè)角色(項(xiàng)目經(jīng)理、用戶、需求人員、設(shè)計(jì)人員、程序員、測(cè)試人員、軟件安裝培訓(xùn)維護(hù)人員),確定開發(fā)題。讓每個(gè)小組的學(xué)生聚在一起,在項(xiàng)目經(jīng)理的組織下通過(guò)調(diào)研、討論來(lái)制定自己小組的開發(fā)題目,大家感覺(jué)就象在軟件公司實(shí)習(xí)一樣,非常新鮮,感興趣。每個(gè)學(xué)生都積極主動(dòng)的去完成自己應(yīng)承擔(dān)的那部分工作。
第二步:模擬軟件項(xiàng)目開發(fā)全過(guò)程的各個(gè)階段,進(jìn)行相關(guān)的理論授課和實(shí)際開發(fā)。即對(duì)軟件開發(fā)的每一階段,首先按照教材內(nèi)容進(jìn)行理論授課,然后讓學(xué)生參照授課內(nèi)容進(jìn)行實(shí)際的軟件開發(fā)實(shí)踐。
在此階段結(jié)束后,每班召開一個(gè)模擬方案論證會(huì),由各開發(fā)小組選出代表上臺(tái)講解本組的開發(fā)方案,其他同學(xué)模擬用戶對(duì)開發(fā)方案提出意見。由于大家對(duì)模擬方案論證會(huì)非常感興趣,發(fā)言積極踴躍,論證會(huì)結(jié)束后,每個(gè)小組的設(shè)計(jì)方案都得到了很好的補(bǔ)充和完善。
第三步:學(xué)期末各小組提交各自完成的軟件系統(tǒng)及開發(fā)文檔,并進(jìn)行總結(jié)演示,由任課教師進(jìn)行講評(píng)。
抽象理論課的教學(xué)應(yīng)理論聯(lián)系實(shí)際,讓學(xué)生在實(shí)際應(yīng)用中掌握抽象的理論,在興趣中學(xué)習(xí),達(dá)到我們高職的雙向型培養(yǎng)目標(biāo)。
二、存在的問(wèn)題與希望
在上述的教學(xué)中,雖然實(shí)現(xiàn)了理論聯(lián)系實(shí)際,但也存在著一些問(wèn)題,比如每個(gè)項(xiàng)目小組中總有個(gè)別同學(xué)存在依賴心理,不參與項(xiàng)目開發(fā),最后抄襲別的同學(xué)的項(xiàng)目成果,自己得不到實(shí)際的鍛煉,影響了大三的畢業(yè)設(shè)計(jì)和日后的軟件開發(fā)。另外,如果該課程只上課,沒(méi)有實(shí)訓(xùn)的話,實(shí)驗(yàn)課時(shí)太少,學(xué)生很難全面完成一個(gè)系統(tǒng)的開發(fā)。
第二篇:軟件工程
1.軟件危機(jī)的概念 系統(tǒng)的數(shù)據(jù)要求,功能需求,性能需求,顯示出程序的輪廓。
軟件危機(jī)是指在計(jì)算機(jī)軟件開發(fā)、使用與可靠性需求,可用性需求,出錯(cuò)處理需求,混合方式
維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題和難接口需求,約束,逆向需求以及將來(lái)可能優(yōu)點(diǎn):綜合了以上兩種策略的長(zhǎng)處 題。提出的需求。9.確認(rèn)測(cè)試
補(bǔ)充: 5.常使用的圖形工具 確認(rèn)測(cè)試又稱有效性測(cè)試。有效性測(cè)試是
1.軟件危機(jī)的表現(xiàn)有哪些? 實(shí)體-聯(lián)系圖,數(shù)據(jù)流圖,狀態(tài)轉(zhuǎn)換圖,在模擬的環(huán)境下,運(yùn)用黑盒測(cè)試的方法,答:1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常層次方框圖,warnier圖,IPO圖。驗(yàn)證被測(cè)軟件是否滿足需求規(guī)格說(shuō)明書常很不準(zhǔn)確。第五章 列出的需求。任務(wù)是驗(yàn)證軟件的功能和性
2)用戶對(duì)已完成的軟件不滿意1.總體設(shè)計(jì)的任務(wù) 能及其他特性是否與用戶的要求一致。對(duì)的現(xiàn)象時(shí)有發(fā)生。劃分出組成系統(tǒng)的物理元素——程序、文軟件的功能和性能要求在軟件需求規(guī)格
3)軟件產(chǎn)品的質(zhì)量往往是靠不件、數(shù)據(jù)庫(kù)、人工過(guò)程和文檔等等 說(shuō)明書中已經(jīng)明確規(guī)定,它包含的信息就住的。設(shè)計(jì)軟件的結(jié)構(gòu)。也就是要確定系統(tǒng)中每是軟件確認(rèn)測(cè)試的基礎(chǔ)。
4)軟件常常是不可維護(hù)的。個(gè)程序是由哪些模塊組成的,以及這些模10.什么是白盒測(cè)試,其測(cè)試技術(shù)有那些,5)軟件通常沒(méi)有適當(dāng)?shù)奈臋n資塊相互間的關(guān)系。覆蓋標(biāo)準(zhǔn)的強(qiáng)弱程度
料。2.模塊化思想 白盒測(cè)試是一種測(cè)試用例設(shè)計(jì)方法,盒子
6)軟件成本在計(jì)算機(jī)系統(tǒng)總成就是把程序劃分成獨(dú)立命名且可獨(dú)立訪指的是被測(cè)試的軟件,白盒指的是盒子是本中所占比例逐年上升。問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把可視的,你清楚盒子內(nèi)部的東西以及里面
7)軟件開發(fā)生產(chǎn)率提高的速度這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完是如何運(yùn)作的。“白盒”法全面了解程序內(nèi)遠(yuǎn)跟不上日益增長(zhǎng)的軟件需求。成指定的功能滿足用戶的需求。部邏輯結(jié)構(gòu)、對(duì)所有邏輯路徑進(jìn)行測(cè)試。
2.產(chǎn)生軟件危機(jī)的原因主要有哪些? 3.衡量模塊獨(dú)立的標(biāo)準(zhǔn)(內(nèi)聚和耦合的白盒測(cè)試的測(cè)試方法有代碼檢查法、靜態(tài)答:1)用戶對(duì)軟件需求的描述不精確。含義,種類)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋
2)軟件開發(fā)人員對(duì)用戶需求的內(nèi)聚:標(biāo)志著每一個(gè)模塊內(nèi)各個(gè)元素彼此法、基本路徑測(cè)試法、域測(cè)試、符號(hào)測(cè)試、理解有偏差。結(jié)合的緊密程度,是信息隱藏和局部化概路徑覆蓋和程序變異。
3)缺乏處理大型軟件項(xiàng)目的經(jīng)念的自然拓展。偶然內(nèi)聚,邏輯內(nèi)聚,時(shí)種覆蓋標(biāo)準(zhǔn):語(yǔ)句覆蓋、判定覆蓋、條件驗(yàn)。間內(nèi)聚,功能內(nèi)聚,順序內(nèi)聚,通信內(nèi)聚,覆蓋、判定/條件覆蓋、條件組合覆蓋和
4)開發(fā)大型軟件易產(chǎn)生疏漏和過(guò)程內(nèi)聚。路徑覆蓋發(fā)現(xiàn)錯(cuò)誤的能力呈由弱至強(qiáng)的錯(cuò)誤。耦合:是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間變化。
5)缺乏有力的方法學(xué)的指導(dǎo)和互連程度的度量。數(shù)據(jù)耦合,控制耦合,11.什么時(shí)候黑盒測(cè)試,其測(cè)試技術(shù)有哪有效的開發(fā)工具的支持。特征耦合,公共環(huán)境耦合,內(nèi)容耦合。些,(等價(jià)劃分,邊介值分析法)
6)面對(duì)日益增長(zhǎng)的軟件需求,4.啟發(fā)式規(guī)則 黑盒測(cè)試也稱功能測(cè)試,它是通過(guò)測(cè)試來(lái)人們顯得力不從心。1.改進(jìn)軟件結(jié)構(gòu)提高模塊的獨(dú)立性檢測(cè)每個(gè)功能是否都能正常使用。
2軟件的概念 2.模塊規(guī)模應(yīng)該適中等價(jià)類劃分的辦法是把程序的輸入域劃完成特點(diǎn)功能的程序以及數(shù)據(jù)結(jié)構(gòu)和文 3.深度、寬度、扇出和扇入都應(yīng)適當(dāng) 分成若干部分(子集),然后從每個(gè)部分檔 4.模塊的作用范圍應(yīng)在控制范圍之內(nèi)中選取少數(shù)代表性數(shù)據(jù)作為測(cè)試用例
3.軟件工程的基本原理 5.力爭(zhēng)降低模塊接口的復(fù)雜程度 邊界值分析是通過(guò)選擇等價(jià)類邊界的測(cè)
1.用分階段的生命周期計(jì)劃嚴(yán)格管理 6.設(shè)計(jì)單入口單出口的模塊試用例。邊界值分析法不僅重視輸入條件
2.堅(jiān)持進(jìn)行階段評(píng)審 7.模塊功能應(yīng)該可以預(yù)測(cè) 邊界,而且也必須考慮輸出域邊界。它是
3.實(shí)行嚴(yán)格的產(chǎn)品控制 5.面向數(shù)據(jù)流的設(shè)計(jì)方法把信息流映射對(duì)等價(jià)類劃分方法的補(bǔ)充。
4.采用現(xiàn)代程序設(shè)計(jì)技術(shù) 成軟件結(jié)構(gòu) 12.軟件調(diào)試技術(shù)有哪些
5.結(jié)果應(yīng)能清楚地審查 信息流:變換流,事物流 蠻干法,蠻干法可能是尋找軟件錯(cuò)誤原因
6.開發(fā)小組的人員應(yīng)該少而精 映射:變換分析,事物分析 的最低效的方法,僅當(dāng)所有其他方法都
7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性失敗的情況下才使用。
4軟件生命周期分成哪幾個(gè)階段?各階第六章 回溯法,回溯法是一種相當(dāng)常用的調(diào)試方段的任務(wù)是什么? 1.詳細(xì)設(shè)計(jì)的基本任務(wù) 法,當(dāng)調(diào)試小程序時(shí)很有效。從發(fā)現(xiàn)癥
1.問(wèn)題定義: 1.為每個(gè)模塊確定采用的算法。2.確定狀的地方開始,人工沿程序的控制流往回
2.可行性研究:研究問(wèn)題的范圍,探索這每一模塊使用的數(shù)據(jù)結(jié)構(gòu)追蹤分析源程序代碼,知道找出錯(cuò)誤原因個(gè)問(wèn)題是否值得去解決,是否有可行的解3.確定模塊接口的細(xì)節(jié),包括對(duì)系統(tǒng)外為止。
決方法。部的接口和用戶界面,對(duì)系統(tǒng)內(nèi)部其 原因排除法,對(duì)分查找法、歸納法、演繹
3.需求分析:主要是確定目標(biāo)系統(tǒng)必須具它模塊的接口,以及關(guān)于模塊輸入數(shù)據(jù)、法都屬于原因排除法。
備哪些功能 輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié)。13.軟件可靠性(可靠性和可用性的含義)
4.總體設(shè)計(jì): 4.為每一模塊設(shè)計(jì)出一組測(cè)試用例。
5.詳細(xì)設(shè)計(jì):就是把解法具體化,設(shè)計(jì)出2.程序的三種基本結(jié)構(gòu)
程序的詳細(xì)規(guī)格說(shuō)明。順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)
6.編碼和單元測(cè)試:寫出正確的容易理解3.詳細(xì)設(shè)計(jì)的工具
容易維護(hù)的程序模塊。1.圖形工具
7.綜合測(cè)試:通過(guò)各種類型的測(cè)試使軟件2.表格工具
達(dá)到預(yù)定的要求 3.語(yǔ)言工具
8.軟件維護(hù):通過(guò)各種必要的維護(hù)活動(dòng)使4.jackson方法
系統(tǒng)持久地滿足用戶的需要。(改正性維5.復(fù)雜性度量的方法
護(hù),適應(yīng)性維護(hù),完善性維護(hù),預(yù)防性維Halstead方法:它根據(jù)程序中運(yùn)算符和
護(hù))操作數(shù)的總數(shù)來(lái)度量程序的復(fù)雜程度
5.瀑布模型,快速原型模型,增量模型,McCabe方法 :McCabe方法根據(jù)程序控制
螺旋模型的特點(diǎn) 流的復(fù)雜程度定量度量程序的復(fù)雜程度,瀑布模型階:段時(shí)間具有順序性和依賴第七章
性。推遲現(xiàn)實(shí)的觀點(diǎn)。質(zhì)量保證的觀點(diǎn)。1.選擇程序設(shè)計(jì)語(yǔ)言應(yīng)考慮哪些因素
快速原型模型:軟件產(chǎn)品的開發(fā)基本上是1.系統(tǒng)用戶的要求
線性順序進(jìn)行的,本質(zhì)是“快速”加速軟2.可以使用的編譯程序
件的開發(fā)過(guò)程,節(jié)約軟件開發(fā)成本。3.可以得到的軟件工具
增量模型:能在較短時(shí)間內(nèi)向用戶提交可4.工程規(guī)模
完成部分工作的產(chǎn)品。逐步增加產(chǎn)品功5.程序員的知識(shí)
能,可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適6.軟件可移植性要求
應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能7.軟件的應(yīng)用領(lǐng)域
給客戶組織帶來(lái)的沖擊。2.良好的編程風(fēng)格包括哪些方面
螺旋模型:對(duì)可選方案和約束條件的強(qiáng)調(diào)1.程序內(nèi)部的文檔2.數(shù)據(jù)說(shuō)明 3.語(yǔ)句構(gòu)
有利于已有軟件的重用,也有助于把軟件造4.輸入輸出 5.效率
質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo)。減少3軟件測(cè)試的目標(biāo)
了過(guò)多的測(cè)試或測(cè)試不足帶來(lái)的風(fēng)險(xiǎn)。更目的:(1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤
重要的是在螺旋模型中維護(hù)只是模型的而執(zhí)行程序的過(guò)程;
另一個(gè)周期,在維護(hù)和開發(fā)之間并沒(méi)有本(2)好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為
質(zhì)區(qū)別。風(fēng)險(xiǎn)驅(qū)動(dòng)的。止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;
(3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未
第二章 發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
1.可行性研究的目的 定義:為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序
就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)的過(guò)程。
確定問(wèn)題是否能夠解決。補(bǔ)充:
補(bǔ)充: 軟件測(cè)試步驟 :
可行性研究的步驟 :(1)模塊測(cè)試(2)子系統(tǒng)測(cè)試(3)系統(tǒng)
1.復(fù)查系統(tǒng)規(guī)模和目標(biāo)。測(cè)試(4)驗(yàn)收測(cè)試(5)平行運(yùn)行
2.研究現(xiàn)有的系統(tǒng)。4.確定測(cè)試計(jì)劃是在哪個(gè)階段制定的3.導(dǎo)出新系統(tǒng)高層邏輯模型。5.黑盒測(cè)試和白盒測(cè)試的概念
4.進(jìn)一步定義問(wèn)題黑盒測(cè)試
5.導(dǎo)出和評(píng)價(jià)供選擇的解法。1把程序看作一個(gè)黑盒子,完全不考慮程
6.推薦行動(dòng)方針序的內(nèi)部結(jié)構(gòu)和處理過(guò)程
7.草擬開發(fā)計(jì)劃2對(duì)程序接口進(jìn)行測(cè)試,檢查程序功能是
8.書寫文檔提交審查 否能按規(guī)格說(shuō)明書的規(guī)定正常使用;
程序是否能適當(dāng)?shù)亟邮茌斎霐?shù)據(jù)并產(chǎn)生
2.系統(tǒng)流程圖的作用 正確的輸出信息;
系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具,程序運(yùn)行過(guò)程中能否保持外部信息的完
它用圖形符號(hào)來(lái)表示系統(tǒng)中的各個(gè)部件。整性
它表達(dá)了系統(tǒng)中各個(gè)元素之間的信息流白盒測(cè)試
動(dòng)的情況。1把程序堪稱裝在一個(gè)透明的白盒子里,3.數(shù)據(jù)流圖的概念 測(cè)試者完全知道程序的結(jié)構(gòu)處理算法
數(shù)據(jù)流圖是一種圖形化技術(shù),它描繪信息2按照程序內(nèi)部的邏輯測(cè)試程序,檢測(cè)程
流和數(shù)據(jù)從移動(dòng)到輸出的過(guò)程中所經(jīng)受序中的主要執(zhí)行通路是否都能按的變換。預(yù)定要求正確工作
4.數(shù)據(jù)流圖里面的符號(hào),畫數(shù)據(jù)流圖。6.測(cè)試的步驟及每個(gè)步驟形成的文檔
5.數(shù)據(jù)字典最基本的功能,以及與數(shù)據(jù)流單元測(cè)試:(模塊測(cè)試)發(fā)現(xiàn)的往往是編
圖的關(guān)系。碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤
最基本的功能:在軟件分析和設(shè)計(jì)的過(guò)程集成測(cè)試:著重測(cè)試模塊的接口 中給人提供關(guān)于數(shù)據(jù)的描述信息。
關(guān)系:數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)系統(tǒng)測(cè)試:發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)的邏輯模型,沒(méi)有數(shù)據(jù)字典,數(shù)據(jù)流圖就誤,也可能發(fā)現(xiàn)需要說(shuō)明中的錯(cuò)誤 不嚴(yán)格,然而沒(méi)有數(shù)據(jù)流圖,數(shù)據(jù)字典也驗(yàn)收測(cè)試:(確認(rèn)測(cè)試)往往發(fā)現(xiàn)需求說(shuō)難于發(fā)揮作用。只有數(shù)據(jù)流圖和對(duì)數(shù)據(jù)流明書中的錯(cuò)誤 圖中每個(gè)元素的精確定義放在一起,才能7.漸增式和非漸增式的區(qū)別 共同構(gòu)成系統(tǒng)的規(guī)格說(shuō)明。“非漸增式”,即先獨(dú)立地測(cè)試每一模塊,第三章 然后將所有這些模塊連接到一起運(yùn)行; 1.需求分析屬于哪一個(gè)階段,任務(wù)是什“漸增式”,即在已測(cè)試過(guò)的N個(gè)模塊的么。基礎(chǔ)上再增加一個(gè)模塊,再對(duì)N十1個(gè)模需求分析是軟件定義時(shí)期的最后一個(gè)階塊進(jìn)行測(cè)試。段.漸增式比非漸增式優(yōu)越,因?yàn)橛脻u增式,1.確定對(duì)系統(tǒng)的綜合要求(功能需求,性如果是“由頂向下”則可利用前面已測(cè)試能需求,可靠性和可用性需求,出錯(cuò)處理過(guò)的模塊,而不必另外準(zhǔn)備驅(qū)動(dòng)模塊,如需求,接口需求,約束,逆向需求,將來(lái)果是“由底向上”,也可利用已測(cè)試過(guò)的可能提出的要求)模塊,不必再準(zhǔn)備樁模塊。漸增式可以較2.分析系統(tǒng)的數(shù)據(jù)要求早地發(fā)現(xiàn)模塊界面之間的錯(cuò)誤,有利于排3.導(dǎo)出系統(tǒng)的邏輯模型 錯(cuò),檢查比較徹底 4.修正系統(tǒng)開發(fā)計(jì)劃2.需求分析的產(chǎn)品是什么 8.自頂向下,自下而上,以及混合策略的3.面向過(guò)程的分析方法主要是建立三類優(yōu)缺點(diǎn) 模型 自頂向下數(shù)據(jù)模型(按照用戶的觀點(diǎn)對(duì)數(shù)據(jù)建立的優(yōu)點(diǎn):能較早顯示整個(gè)程序的輪廓,向用模型,把用戶的數(shù)據(jù)要求清楚,準(zhǔn)確地描戶展示程序的概貌,取得用戶的理解與支述出來(lái)。描述了從用戶角度看到的數(shù)據(jù),持。缺點(diǎn):當(dāng)測(cè)試上層模塊時(shí)因使用樁它反應(yīng)了用戶的現(xiàn)實(shí)環(huán)境,屬性,聯(lián)系),模塊較多,很難模擬出真實(shí)模塊的全部功功能模型,行為模型(通過(guò)描繪系統(tǒng)的狀能,使部分測(cè)試內(nèi)容被迫推遲,只能等待態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件來(lái)表示系換上真實(shí)模塊后再補(bǔ)充測(cè)試。統(tǒng)的行為)由底向上4.軟件需求規(guī)格說(shuō)明書的內(nèi)容 優(yōu)點(diǎn):測(cè)試從下層模塊開始,測(cè)試設(shè)計(jì)用通常用自然語(yǔ)言完整,準(zhǔn)確,具體地描述例比較容易。缺點(diǎn):在測(cè)試的早期不能
第三篇:軟件工程
軟件工程
1.談?wù)勀銓?duì)軟件工具的理解,你用過(guò)什么軟件工具
軟件工具是指為支持計(jì)算機(jī)軟件的開發(fā)、維護(hù)、模擬、移植或管理而研制的程序系統(tǒng)。它是為專門目的而開發(fā)的,在軟件工程范圍內(nèi)也就是為實(shí)現(xiàn)軟件生存期中的各種處理活動(dòng)(包括管理、開發(fā)和維護(hù))的自動(dòng)化和半自動(dòng)化面開發(fā)的程序系統(tǒng)。
開發(fā)軟件工具的最終目的是為了提高軟件生產(chǎn)率和改善軟件的質(zhì)量。
軟件工具分為六類:模擬工具、開發(fā)工具、測(cè)試和評(píng)估工具、運(yùn)行和維護(hù)工具、性能質(zhì)量工具和程序設(shè)計(jì)支持工具。
應(yīng)該是看對(duì)象來(lái)選擇測(cè)試工具!比如:
功能測(cè)試工具:WinRunner
性能測(cè)試工具:LoadRunner
內(nèi)存泄漏測(cè)試工具:Purify
單元測(cè)試工具:Junit
測(cè)試管理工具:TestDirector還有東軟的bugbaseIBM開發(fā)的 rational。
2.什么是軟件的可維護(hù)性:
軟件可維護(hù)性即維護(hù)人員對(duì)該軟件進(jìn)行維護(hù)的難易程度,具體包括理解、改正、改動(dòng)和改進(jìn)該軟件的難易程度。
決定可維護(hù)性的因素:
1.系統(tǒng)的大小
2.系統(tǒng)的年齡
3.結(jié)構(gòu)合理性
可維護(hù)性的度量:
可理解性
可測(cè)試性
可修改性
可移植性
3.軟件開發(fā)和寫程序有什么不同?軟件開發(fā)的內(nèi)容是:需求、設(shè)計(jì)、編程和 測(cè)試 維護(hù)!
需求分析
軟件需求分析就是回答做什么的問(wèn)題。它是一個(gè)對(duì)用戶的需求進(jìn)行去粗取精、去偽存真、正確理解,然后把它用軟件工程開發(fā)語(yǔ)言(形式功能規(guī)約,即需求規(guī)格說(shuō)明書)表達(dá)出來(lái)的過(guò)程。本階段的基本任務(wù)是和用戶一起確定要解決的問(wèn)題,建立軟件的邏輯模型,編寫需求規(guī)格說(shuō)明書文檔并最終得到用戶的認(rèn)可。需求分析的主要方法有結(jié)構(gòu)化分析方法、數(shù)據(jù)流程圖和數(shù)據(jù)字典等方法。本階段的工作是根據(jù)需求說(shuō)明書的要求,設(shè)計(jì)建立相應(yīng)的軟件系統(tǒng)的體系結(jié)構(gòu),并將整個(gè)系統(tǒng)分解成若干個(gè)子系統(tǒng)或模塊,定義子系統(tǒng)或模塊間的接口關(guān)系,對(duì)各子系統(tǒng)進(jìn)行具體設(shè)計(jì)定義,編寫軟件概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)說(shuō)明書,數(shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說(shuō)明書,組裝測(cè)試計(jì)劃。
設(shè)計(jì)
軟件設(shè)計(jì)可以分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。實(shí)際上軟件設(shè)計(jì)的主要任務(wù)就是將軟件分解成模塊是指能實(shí)現(xiàn)某個(gè)功能的數(shù)據(jù)和程序說(shuō)明、可執(zhí)行程序的程序單元。可以是一個(gè)函數(shù)、過(guò)程、子程序、一段帶有程序說(shuō)明的獨(dú)立的程序和數(shù)據(jù),也可以是可組合、可分解和可更換的功能單元。模塊,然后進(jìn)行模塊設(shè)計(jì)。概要設(shè)計(jì)就是結(jié)構(gòu)設(shè)計(jì),其主要目標(biāo)就是給出軟件的模塊結(jié)構(gòu),用軟件結(jié)構(gòu)圖表示。詳細(xì)設(shè)計(jì)的首要任務(wù)就是設(shè)計(jì)模塊的程序流程、算法和數(shù)據(jù)結(jié)構(gòu),次要任務(wù)就是設(shè)計(jì)數(shù)據(jù)庫(kù),常用方法還是結(jié)構(gòu)化程序設(shè)計(jì)方法。
編碼
軟件編碼是指把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序,即寫成以某一程序設(shè)計(jì)語(yǔ)言表示的“源程序清單”。充分了解軟件開發(fā)語(yǔ)言、工具的特性和編程風(fēng)格,有助于開發(fā)工具的選擇以及保證軟件產(chǎn)品的開發(fā)質(zhì)量。
測(cè)試
軟件測(cè)試的目的是以較小的代價(jià)發(fā)現(xiàn)盡可能多的錯(cuò)誤。不同的測(cè)試方法有不同的測(cè)試用例設(shè)計(jì)方法。兩種常用的測(cè)試方法是白盒法測(cè)試對(duì)象是源程序,依據(jù)的是程序內(nèi)部的的邏輯結(jié)構(gòu)來(lái)發(fā)現(xiàn)軟件的編程錯(cuò)誤、結(jié)構(gòu)錯(cuò)誤和數(shù)據(jù)錯(cuò)誤。結(jié)構(gòu)錯(cuò)誤包括邏輯、數(shù)據(jù)流、初始化等錯(cuò)誤。用例設(shè)計(jì)的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果。白盒法和黑盒法依據(jù)的是軟件的功能或軟件行為描述,發(fā)現(xiàn)軟件的接口、功能和結(jié)構(gòu)錯(cuò)誤。其中接口錯(cuò)誤包括內(nèi)部/外部接口、資源管理、集成化以及系統(tǒng)錯(cuò)誤。黑盒法用例設(shè)計(jì)的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。黑盒法。
維護(hù)
維護(hù)是旨在已完成對(duì)軟件的研制(分析、設(shè)計(jì)、編碼和測(cè)試)工作并交付使用以后,對(duì)軟件產(chǎn)品所進(jìn)行的一些軟件工程的活動(dòng)。即根據(jù)軟件運(yùn)行的情況,對(duì)軟件進(jìn)行適當(dāng)修改,以適應(yīng)新的要求,以及糾正運(yùn)行中發(fā)現(xiàn)的錯(cuò)誤。編寫軟件問(wèn)題報(bào)告、軟件修改報(bào)告。
4.什么是軟件設(shè)計(jì)的”高內(nèi)聚 低耦合”
內(nèi)聚:一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度
耦合:一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量
對(duì)于低耦合,(模塊的獨(dú)立性)
一個(gè)完整的系統(tǒng),模塊與模塊之間,盡可能的使其獨(dú)立存在。也就是說(shuō),讓每個(gè)模塊,盡可能的獨(dú)立完成某個(gè)特定的子功能。模塊與模塊之間的接口,盡量的少而簡(jiǎn)單。如果某兩個(gè)模塊間的關(guān)系比較復(fù)雜的話,最好首先考慮進(jìn)一步的模塊劃分。這樣有利于修改和組合.對(duì)于高內(nèi)聚:
在一個(gè)模塊內(nèi),讓每個(gè)元素之間都盡可能的緊密相連。也就是充分利用每一個(gè)元素的功能,各施所能,以最終實(shí)現(xiàn)某個(gè)功能。
5.case在軟件工程中的作用
CASE(Computer Aided(or Assisted)Software Engineering計(jì)算機(jī)輔助軟件工程。CASE的一個(gè)基本思想就是提供一組能夠自動(dòng)覆蓋軟件開發(fā)生命周期各個(gè)階段的集成的、減少勞動(dòng)力的工具。CASE已被證明可以加快開發(fā)速度,提高應(yīng)用軟件生產(chǎn)率并保證應(yīng)用軟件的可靠品質(zhì)。CASE工具由許多部分組成,一般我們按軟件開發(fā)的不同階段分為上層CASE和下層CASE產(chǎn)品。上層或前端CASE工具自動(dòng)進(jìn)行應(yīng)用的計(jì)劃、設(shè)計(jì)和分析,幫助用戶定義需求,產(chǎn)生需求說(shuō)明,并可完成與應(yīng)用開發(fā)相關(guān)的所有計(jì)劃工作。下層或后端CASE工具自動(dòng)進(jìn)行應(yīng)用系統(tǒng)的編程、測(cè)試和維護(hù)工作。
除非下層CASE和上層CASE工具的供應(yīng)商提供統(tǒng)一界面,否則用戶必須編寫或重新將所有信息從上層CASE工具轉(zhuǎn)換到下層CASE工具。獨(dú)立的CASE工具供應(yīng)商愈來(lái)愈希望將它們的工具連接在一起建立統(tǒng)一的界面以減少用戶不必要的開發(fā)工作。
CASE工具帶來(lái)的好處
計(jì)算機(jī)專業(yè)人員利用計(jì)算機(jī)使他們的企業(yè)提高了效率,企業(yè)的各個(gè)部門通過(guò)使用計(jì)算機(jī)
提高了生產(chǎn)率和效率,增強(qiáng)了企業(yè)的競(jìng)爭(zhēng)力并使之帶來(lái)了更多的利潤(rùn)。
6.為什么要進(jìn)行軟件測(cè)試?常用的軟件測(cè)試的方法有哪些?
軟件測(cè)試的目的:盡可能發(fā)現(xiàn)并改正被測(cè)試軟件中的錯(cuò)誤,提高軟件的可靠性。
軟件測(cè)試方法主要包括單元測(cè)試,集成測(cè)試,系統(tǒng)測(cè)試,用戶測(cè)試,回歸測(cè)試。
還有就是自定而下,和自下而上的方法。
7.談?wù)勀銓?duì)保證軟件質(zhì)量的技術(shù)和方法的認(rèn)識(shí)? 1.作為一個(gè)軟件質(zhì)量保證人員需要良好的溝通能力,因?yàn)槿绻麤](méi)有良好的溝通能力,很多問(wèn)題都沒(méi)有辦法解決,原因很簡(jiǎn)單,測(cè)試人員發(fā)現(xiàn)了bug,開發(fā)人員或項(xiàng)目經(jīng)理在怎么不理,但是他們都會(huì)想到,萬(wàn)一測(cè)試人員發(fā)現(xiàn)了bug而自己忽視了,那么就有可能成為軟件里的一顆不定時(shí)地炸彈,那么作為一個(gè)開發(fā)人員或項(xiàng)目經(jīng)理對(duì)bug的重視程度肯定相對(duì)比較高,至少要看測(cè)試人員發(fā)現(xiàn)的bug,但是QA就不一定了,因?yàn)镼A保證的流程的正確的執(zhí)行,相關(guān)人員就是認(rèn)為流程不重要,只要我開發(fā)的產(chǎn)品沒(méi)有問(wèn)題那就沒(méi)有問(wèn)題,客戶肯定不會(huì)關(guān)注我的流程,在加上古人的名言“結(jié)果說(shuō)明了一切”,所以沒(méi)有良好的溝通能力,一些問(wèn)題將很難去解決,做起來(lái)就沒(méi)有成就感。
2.個(gè)人感覺(jué)比溝通能力更重要的是,堅(jiān)持原則,在遇到困難的時(shí)候,是不是還能堅(jiān)持原則,在遇到項(xiàng)目組的種種不理不睬的時(shí)候,是不是還能堅(jiān)持原則,在項(xiàng)目組不按照計(jì)劃走的時(shí)候,是不是還能堅(jiān)持原則。
3.個(gè)人心態(tài),我工作三年的經(jīng)歷告訴我,如果開發(fā)和測(cè)試相比,開發(fā)是天堂,測(cè)試是地獄的話,但如果測(cè)試和QA相比的話,那測(cè)試就是天堂,QA就是地獄,所以心態(tài)很重要,在三年里我就鍛煉成一個(gè)非常好的心態(tài),隨便怎么說(shuō)CMMI沒(méi)用,隨便怎么說(shuō)CMMI就是寫文檔,隨便怎么說(shuō)QA真煩人,我笑容依然燦爛,從容面對(duì),而且一個(gè)QA要有堅(jiān)定的信念,如果你都不相信過(guò)程能給項(xiàng)目開發(fā)帶來(lái)好處,那你還指望誰(shuí)能相信。
8.提高軟件生產(chǎn)率有哪些手段?
1.挑選精干人員(管理 計(jì)劃不好 技術(shù)搭配不當(dāng))
2.提高階段效率 3消除人工階段
4.減少重復(fù)勞動(dòng) 5.建造簡(jiǎn)單產(chǎn)品
6.重用軟部件庫(kù)(已經(jīng)存在的軟件功能部件
9.什么是軟件的可靠性和有用性
可靠性就是指軟件運(yùn)行的穩(wěn)定性,可用性就是操作的便利性。比如一輛汽車,可靠性好應(yīng)該歸功于機(jī)械部分,可用性好則是內(nèi)飾和中控系統(tǒng)的功勞。
10什么是軟件規(guī)格說(shuō)明?作用是什么?將其形式化的意義是什么?
11.什么是軟件重用?實(shí)現(xiàn)軟件重用的方法有哪些?
軟件重用,是指在兩次或多次不同的軟件開發(fā)過(guò)程中重復(fù)使用相同或相似軟件元素的過(guò)程。軟件元素包括程序代碼、測(cè)試用例、設(shè)計(jì)文檔、設(shè)計(jì)過(guò)程、需要分析文檔甚至領(lǐng)域知識(shí)。通常,可重用的元素也稱作軟構(gòu)件,可重用的軟構(gòu)件越大,重用的粒度越大。
根據(jù)軟件開發(fā)的不同階段實(shí)現(xiàn)軟件重用主要有四個(gè)途徑:
抽象:對(duì)重用對(duì)象概括提煉,從而得到能全面描述側(cè)重算法和數(shù)據(jù)結(jié)構(gòu)的軟件構(gòu)件的各部分的描述。
選擇:是對(duì)重用對(duì)象進(jìn)行存放,匹配和檢索的功能。
實(shí)例化:對(duì)數(shù)據(jù)類型中對(duì)象進(jìn)行參數(shù)的提供 轉(zhuǎn)換。
集成:
12.什么是軟件移植?你認(rèn)為構(gòu)造一個(gè)工具實(shí)現(xiàn)windows到Unix的移植有意義嗎?難大不? 軟件可移植性是指代碼可以在不同平臺(tái)間移植,我們一般說(shuō)的軟件的可移植性指的是軟件可移植性,簡(jiǎn)單的說(shuō)就是指源代碼移到不同的平臺(tái)下(不同的操作系統(tǒng),例如從Windows
下移到Linux下)時(shí),需要修改的內(nèi)容越少,移植性越好。要保證軟件可移植性,就是少用或不用系統(tǒng)特有的東西,比如你用C語(yǔ)言編程,你可以使用C語(yǔ)言本身的庫(kù),但不要用
WindowsAPI函數(shù),因?yàn)閃indowsAPI函數(shù)在Linux下是沒(méi)有的,如果想移植到Linux平臺(tái)下,使用WindowsAPI函數(shù)的部分代碼就要做出修改了。
第四篇:軟件工程
軟件工程—心得體會(huì)
摘要
本文結(jié)合基層實(shí)踐教學(xué)的實(shí)際情況和現(xiàn)實(shí)需要,系統(tǒng)地總結(jié)了《軟件工程》實(shí)踐教學(xué)的特征,詳細(xì)分析了實(shí)踐教學(xué)過(guò)程存在的問(wèn)題,并提出了該課程實(shí)踐教學(xué)改革的新格式。
關(guān)鍵字:軟件工程,教學(xué)素質(zhì),軟件開發(fā),實(shí)踐,實(shí)驗(yàn)
正文
通過(guò)這學(xué)期的“軟件工程”這門課,我拓寬了知識(shí)面,鍛煉了能力,綜合素質(zhì)得到較大的提高。我覺(jué)得在大四安排這門課的學(xué)習(xí),其主要目的,在于在課堂中學(xué)到的理論知識(shí)與實(shí)際的結(jié)合,尤其是觀察、分析、解決問(wèn)題的實(shí)際工作能力。軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。它涉及到程序設(shè)計(jì)語(yǔ)言,數(shù)據(jù)庫(kù),軟件開發(fā)工具,系統(tǒng)平臺(tái),標(biāo)準(zhǔn),設(shè)計(jì)模式等方面。在1968年第一次提出了軟件工程的概念,至今軟件工程已經(jīng)走過(guò)了30多年的歷程。在不斷發(fā)展的過(guò)程中,人類越來(lái)越加注重在軟件的開發(fā)中應(yīng)該按工程化的方法進(jìn)行開發(fā),并注重進(jìn)行軟件項(xiàng)目工程的管理。在現(xiàn)代社會(huì)中,軟件應(yīng)用于多個(gè)方面,典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機(jī)界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫(kù),游戲等。同時(shí),各個(gè)行業(yè)幾乎都有計(jì)算機(jī)軟件的應(yīng)用,比如工業(yè),農(nóng)業(yè),銀行,航空,政府部門等,這些應(yīng)用促進(jìn)了經(jīng)濟(jì)和社會(huì)的發(fā)展,使得人們的工作更加高效,同時(shí)提高了生活質(zhì)量。
中國(guó)的軟件行業(yè)規(guī)模不是很大,有些軟件公司在軟件制作上,也只是采用了一些軟件工程的思想,與大規(guī)模的工業(yè)化大生產(chǎn)比較還是有一定的差距,原因有管理體制的問(wèn)題,市場(chǎng)問(wèn)題,政策問(wèn)題,也有軟件工程理論不全面和不完善的問(wèn)題。所以軟件工程的研究和應(yīng)用,以及中國(guó)軟件行業(yè)的進(jìn)一步發(fā)展,都需要一定的既有軟件工程的理論基礎(chǔ)和研究能力,又有一定的實(shí)踐經(jīng)驗(yàn)的軟件工程技術(shù)人員來(lái)推動(dòng)。軟件工程的前途是光明的。軟件服務(wù)外包屬于智力人才密集型現(xiàn)代服務(wù)業(yè)。大量著名外包企業(yè)落戶寧波。主要就業(yè)去向包括軟件外包與服務(wù)企業(yè)、信息產(chǎn)品與服務(wù)企業(yè),擔(dān)任程序員、軟件測(cè)試員、項(xiàng)目經(jīng)理等工作崗位
軟件工程是計(jì)算機(jī)領(lǐng)域發(fā)展最快的學(xué)科分支之一,國(guó)家非常重視軟件行業(yè)的發(fā)展,對(duì)軟件人才的培養(yǎng)給予了非常優(yōu)惠的政策。本專業(yè)培養(yǎng)掌握計(jì)算機(jī)軟件基本理論知識(shí),熟悉軟件開發(fā)和管理技術(shù)、能夠在計(jì)算機(jī)軟件領(lǐng)域中從事軟件設(shè)計(jì)、開發(fā)和管理的高級(jí)人才。軟件工程的七條原理:用分階段的生命周期計(jì)劃嚴(yán)格管理、堅(jiān)持進(jìn)行階段評(píng)審、實(shí)行嚴(yán)格的產(chǎn)品控制、采納現(xiàn)代程序設(shè)計(jì)技術(shù)、結(jié)果應(yīng)能清楚地審查、開發(fā)小組的人員應(yīng)少而精、承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。根據(jù)這幾條原理,不僅要積極采納新的軟件開發(fā)技術(shù),還要注意不斷總結(jié)經(jīng)驗(yàn),收集進(jìn)度和消耗等數(shù)據(jù),進(jìn)行出錯(cuò)類型和問(wèn)題報(bào)告統(tǒng)計(jì)。這些數(shù)據(jù)既可以用來(lái)評(píng)估新的 軟件技術(shù)的效果,也可以用來(lái)指明必須著重注意的問(wèn)題和應(yīng)該優(yōu)先進(jìn)行研究的工具和技術(shù)。
第五篇:軟件工程
一、名詞解釋
軟件: 指計(jì)算機(jī)系統(tǒng)中的程序及其文檔。
支持軟件:支持軟件的開發(fā)和維護(hù)的軟件。
系統(tǒng)軟件:屬于計(jì)算機(jī)系統(tǒng)中最靠近硬件的一層,其它軟件一般都通過(guò)系統(tǒng)軟件發(fā)揮作用,它與具體的應(yīng)用領(lǐng)域無(wú)關(guān)。
軟件工程:是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法制作軟件的工程。
軟件過(guò)程模型:是軟件開發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架,也稱軟件開發(fā)模型或軟件生存周期模型。
技術(shù)可行性:主要根據(jù)系統(tǒng)的功能、性能、約束條件等,分析在現(xiàn)有資源和技術(shù)條件下系統(tǒng)能否實(shí)現(xiàn)。
需求管理:是一組用于幫助項(xiàng)目組在項(xiàng)目進(jìn)展中的任何時(shí)候去標(biāo)識(shí)、控制和跟蹤需求的活動(dòng)。信息流:表示了數(shù)據(jù)和控制在系統(tǒng)中流動(dòng)時(shí)的變化方式,輸入對(duì)象被變換為中間信息(數(shù)據(jù)和/或控制),然后進(jìn)一步被變換為輸出。
軟件項(xiàng)目管理:是指軟件生存周期中軟件管理者所進(jìn)行的一系列活動(dòng),其目的是在一定的時(shí)間和預(yù)設(shè)范圍內(nèi),有效地利用人力、資源、技術(shù)和工具,使軟件系統(tǒng)或軟件產(chǎn)品按原定計(jì)劃和質(zhì)量要求如期完成。
軟件度量:是指計(jì)算機(jī)軟件范圍內(nèi)的測(cè)量,主要是為產(chǎn)品開發(fā)的軟件過(guò)程和產(chǎn)品本身定義相關(guān)的測(cè)量方法和標(biāo)度。
面向?qū)ο蟮亩鄳B(tài)性:是指同一個(gè)操作作用于不同的對(duì)象上可以有不同的解釋,并產(chǎn)生不同的執(zhí)行結(jié)果。(也就是說(shuō),相同操作的消息發(fā)送給不同的對(duì)象時(shí),每個(gè)對(duì)象將根據(jù)自己所屬類中定義的這個(gè)操作去執(zhí)行,從而產(chǎn)生不同的結(jié)果。)
動(dòng)態(tài)綁定:是指在程序運(yùn)行時(shí)才將消息所請(qǐng)求的操作與實(shí)現(xiàn)該操作的方法連接起來(lái) 數(shù)據(jù)耦合:兩個(gè)模塊之間僅通過(guò)參數(shù)表傳遞簡(jiǎn)單數(shù)據(jù),則稱為數(shù)據(jù)耦合。
功能內(nèi)聚 :指一個(gè)模塊中各個(gè)部分都是為完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。
二、簡(jiǎn)答
1.、克服軟件危機(jī)的途徑:
? 消除錯(cuò)誤的概念和做法
? 推廣使用成功的開發(fā)技術(shù)和方法
? 使用軟件工具和軟件工程支持環(huán)境
? 加強(qiáng)軟件管理
2、計(jì)算機(jī)系統(tǒng)工程的任務(wù):
? 確定待開發(fā)軟件的總體要求和范圍,以及它與其它計(jì)算機(jī)系統(tǒng)元素之間的關(guān)系
? 進(jìn)行成本估算,做出進(jìn)度安排
? 進(jìn)行可行性分析,即從經(jīng)濟(jì)、技術(shù)、法律等方面分析待開發(fā)的軟件是否有可行的解決方案,并在若干個(gè)可行的解決方案中作出選擇。
3、軟件過(guò)程三層含義:
① 個(gè)體含義,即指軟件產(chǎn)品或系統(tǒng)在生存周期中的某一類活動(dòng)的集合,如軟件開發(fā)過(guò)
程,軟件管理過(guò)程等;
② 整體含義,即指軟件產(chǎn)品或系統(tǒng)在所有上述含義下的軟件過(guò)程的總體;
③ 工程含義,即指解決軟件過(guò)程的工程,它應(yīng)用軟件工程的原則、方法來(lái)構(gòu)造軟件過(guò)
程模型,并結(jié)合軟件產(chǎn)品的具體要求進(jìn)行實(shí)例化,以及在用戶環(huán)境下的運(yùn)作,以此進(jìn)一步提高軟件生產(chǎn)率,降低成本。
4、創(chuàng)建用況模型的步驟包括:
1)定義系統(tǒng)
2)確定執(zhí)行者
3)確定用況
4)描述用況
5)定義用況間的關(guān)系,6)確認(rèn)模型
5、需求分析原則
① 必須能夠表示和理解問(wèn)題的信息域
② 必須能夠定義軟件將完成的功能
③ 必須能夠表示軟件的行為(作為外部事件的結(jié)果)
④ 必須劃分描述數(shù)據(jù)、功能和行為的模型,從而可以分層次地揭示細(xì)節(jié)
⑤ 分析過(guò)程應(yīng)該從要素信息移向細(xì)節(jié)信息
6、需求驗(yàn)證目的是要檢驗(yàn)需求是否能夠反映用戶的意愿
評(píng)審人員評(píng)審時(shí)往往需要檢查以下內(nèi)容:
① 系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;
② 系統(tǒng)需求分析階段提供的文檔資料是否齊全;文檔中的描述是否完整、清晰、準(zhǔn)確
地反映了用戶要求;
③ 被開發(fā)項(xiàng)目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否確定且充足;
④ 主要功能是否已包括在規(guī)定的軟件范圍之內(nèi),是否都已充分說(shuō)明;
⑤ 設(shè)計(jì)的約束條件或限制條件是否符合實(shí)際;
⑥ 開發(fā)的技術(shù)風(fēng)險(xiǎn)是什么;
⑦ 是否詳細(xì)制定了檢驗(yàn)標(biāo)準(zhǔn),它們能否對(duì)系統(tǒng)定義是否成功進(jìn)行確認(rèn)。
三、選擇填空
軟件分類:系統(tǒng)軟件、支持軟件和應(yīng)用軟件。
軟件按工作方式劃分:實(shí)時(shí)處理軟件、分時(shí)軟件、交互式軟件、批處理軟件。
軟件按服務(wù)對(duì)象的范圍劃分:項(xiàng)目軟件和產(chǎn)品軟件。
軟件按使用的頻度進(jìn)行劃分: 一次使用和頻繁使用。
軟件按失效的影響進(jìn)行劃分:高可靠性軟件、一般可靠性軟件
典型的軟件過(guò)程模型有:瀑布模型、演化模型、增量模型、原型模型、螺旋模型、噴泉模型、基于構(gòu)件的開發(fā)模型、形式方法模型。
技術(shù)可行性分析通常包括:風(fēng)險(xiǎn)分析、資源分析和技術(shù)分析。
軟件需求工程細(xì)分為:需求獲取、需求分析與協(xié)商、系統(tǒng)建模、需求規(guī)約、需求驗(yàn)證和需求管理六個(gè)階段。
需求跟蹤兩種方式:正向跟蹤、逆向跟蹤。
正向跟蹤:以用戶需求為切入點(diǎn),檢查《需求規(guī)約》中的每個(gè)需求是否都能在后繼工作產(chǎn)品中找到對(duì)應(yīng)點(diǎn)。
逆向跟蹤:檢查設(shè)計(jì)文檔、代碼、測(cè)試用況等工作產(chǎn)品是否都能在《需求規(guī)約》中找到出處。軟件設(shè)計(jì):把軟件需求變換成軟件表示的過(guò)程。
軟件設(shè)計(jì)的兩個(gè)階段:軟件體系結(jié)構(gòu)設(shè)計(jì)階段和部件級(jí)設(shè)計(jì)。
測(cè)試用例的設(shè)計(jì)方法大體可分為兩類:白盒測(cè)試和黑盒測(cè)試,也稱白箱測(cè)試和黑箱測(cè)試 一種測(cè)試策略就是將測(cè)試分為單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。
測(cè)試類型:靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。
軟件的特點(diǎn)
? 軟件是一種邏輯實(shí)體,而不是有形的系統(tǒng)元件,其開發(fā)成本和進(jìn)度難以準(zhǔn)確地估算 ? 軟件是被開發(fā)的或被設(shè)計(jì)的,它沒(méi)有明顯的制造過(guò)程,一旦開發(fā)成功,只需復(fù)制即可,但其維護(hù)的工作量大
? 軟件的使用沒(méi)有硬件那樣的機(jī)械磨損和老化問(wèn)題
為了使程序能在不同的計(jì)算機(jī)上運(yùn)行:
1)要使程序具有較好的可移植性。
2)對(duì)程序段的設(shè)計(jì)具有功能性。
3)變量名的使用對(duì)提高編程效率沒(méi)有影響。
可維護(hù)性關(guān)鍵在于:選擇好的程序設(shè)計(jì)風(fēng)格。
軟件開發(fā)生命周期中的編程階段任務(wù):得到好的源程序代碼。軟件特點(diǎn):抽象性、復(fù)雜性、開發(fā)成本高。