第一篇:軟件工程簡(jiǎn)答題
1.什么是軟件工程?簡(jiǎn)述軟件工程的七條基本原理。軟件工程是一門(mén)研究如何用系統(tǒng)化、規(guī)范化、數(shù)量化等工程原則和方法來(lái)進(jìn)行軟件開(kāi)發(fā)和維護(hù)的學(xué)科。
七條基本原理:用分階段的生命周期計(jì)劃嚴(yán)格管理; 堅(jiān)持進(jìn)行階段評(píng)審; 實(shí)行嚴(yán)格的產(chǎn)品控制; 采用現(xiàn)代程序設(shè)計(jì)技術(shù); 結(jié)果應(yīng)能清楚地審查;
開(kāi)發(fā)小組的人員應(yīng)該少而精;
承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。
2.什么是軟件生存周期模型?請(qǐng)至少列舉四種主要的模型。軟件生存周期模型是軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。它能直觀表達(dá)軟件開(kāi)發(fā)全過(guò)程,明確規(guī)定要完成的主要活動(dòng)、任務(wù)和開(kāi)發(fā)策略。
四種主要的模型:瀑布模型,演化模型,噴泉模型,螺旋模型、基于構(gòu)件的開(kāi)發(fā)模型 3.為什么軟件需要維護(hù)?簡(jiǎn)述軟件維護(hù)的過(guò)程。
1)改正在特定使用條件下暴露出來(lái)的一些潛在程序錯(cuò)誤或設(shè)計(jì)缺陷;
2)因在軟件使用過(guò)程中數(shù)據(jù)環(huán)境發(fā)生變化(如所要處理的數(shù)據(jù)發(fā)生變化)或處理環(huán)境發(fā)生變化(如硬件或軟件操作系統(tǒng)等發(fā)生變化),需要修改軟件,以適應(yīng)這種變化;
3)用戶(hù)和數(shù)據(jù)處理人員在使用時(shí)常提出改進(jìn)現(xiàn)有功能、增加新功能、以及改善總體性能的要求,為滿(mǎn)足這些要求,需要修改軟件。
軟件維護(hù)的過(guò)程:首先建立維護(hù)的機(jī)構(gòu),申明提出維護(hù)申請(qǐng)報(bào)告的過(guò)程及評(píng)價(jià)的過(guò)程,為每一個(gè)維護(hù)申請(qǐng)規(guī)定標(biāo)準(zhǔn)的處理步驟,建立維護(hù)活動(dòng)的記錄保管,并規(guī)定復(fù)審的標(biāo)準(zhǔn)。4.影響軟件維護(hù)工作量的因素有哪些?
1)系統(tǒng)大小。系統(tǒng)越大,功能越復(fù)雜,理解掌握起來(lái)就越困難,需要的維護(hù)工作量越大。2)程序設(shè)計(jì)語(yǔ)言。使用功能強(qiáng)的程序設(shè)計(jì)語(yǔ)言可以控制程序的規(guī)模。語(yǔ)言的功能越強(qiáng),生成程序所需的指令數(shù)就越少;語(yǔ)言的功能越弱,實(shí)現(xiàn)同樣功能所需的語(yǔ)句就越多,程序就越大,維護(hù)起來(lái)就越困難。
3)系統(tǒng)年齡。老系統(tǒng)比新系統(tǒng)需要更多的維護(hù)工作量。許多老系統(tǒng)在當(dāng)初并未按照軟件工程的要求進(jìn)行開(kāi)發(fā),沒(méi)有文檔,或文檔太少,或者在長(zhǎng)期的維護(hù)中許多地方與程序不一致,維護(hù)起來(lái)困難較大。
4)數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用。使用數(shù)據(jù)庫(kù)工具,可有效地管理和存儲(chǔ)用戶(hù)程序中的數(shù)據(jù),可方便地修改、擴(kuò)充報(bào)表。數(shù)據(jù)庫(kù)技術(shù)的使用可以減少維護(hù)工作量。
5)先進(jìn)的軟件開(kāi)發(fā)技術(shù)。在軟件開(kāi)發(fā)時(shí),如果使用能使軟件結(jié)構(gòu)比較穩(wěn)定的分析與設(shè)計(jì)技術(shù)(如面向?qū)ο蠓治?、設(shè)計(jì)技術(shù)),可以減少一定的工作量。
6)其它。如,應(yīng)用的類(lèi)型、數(shù)學(xué)模型、任務(wù)的難度、IF嵌套深度等等都會(huì)對(duì)維護(hù)工作量產(chǎn)生一定的影響。
5.說(shuō)明軟件文檔的作用
1.提高軟件開(kāi)發(fā)過(guò)程的能見(jiàn)度。把開(kāi)發(fā)過(guò)程中發(fā)生的事件以某種可閱讀的形式記錄在文檔中
2.提高研發(fā)效率。軟件文檔的編制,使得開(kāi)發(fā)人員對(duì)各個(gè)階段的工作都進(jìn)行周密思考,全盤(pán)權(quán)衡,減少返工。
3.記錄開(kāi)發(fā)過(guò)程中有關(guān)信息,便于協(xié)調(diào)以后的軟件開(kāi)發(fā)、使用和維護(hù)。4.便于潛在用戶(hù)了解軟件功能、性能等各項(xiàng)指標(biāo)。6.如何理解模塊的獨(dú)立性,用什么指標(biāo)衡量模塊的獨(dú)立性。模塊的獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡(jiǎn)單的。
模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)度量: 耦合,模塊之間的相對(duì)獨(dú)立性的度量; 內(nèi)聚,模塊功能強(qiáng)度的度量。
7.原型化方法用于解決什么問(wèn)題,這種方法的優(yōu)缺點(diǎn)是什么 主要用于解決諸如用戶(hù)定義了一組一般性目標(biāo),但不能標(biāo)識(shí)出詳細(xì)的輸入、處理及輸出需求;開(kāi)發(fā)者可能不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式等問(wèn)題 優(yōu)點(diǎn):1.明確并完善需求
2.探索設(shè)計(jì)選擇方案
3.發(fā)展為最終產(chǎn)品
缺點(diǎn):1.用戶(hù)看到一個(gè)正在運(yùn)行的原型便以為產(chǎn)品即將完成,會(huì)要求不再進(jìn)行產(chǎn)品重建,而只是對(duì)原型進(jìn)行修改就交付。由于原型沒(méi)有考慮軟件的總體質(zhì)量和可維護(hù)行,交付原型會(huì)產(chǎn)生欲速則不達(dá)的效果
2.開(kāi)發(fā)人員為了快速構(gòu)建原型,可能會(huì)采用不合適的操作系統(tǒng)或程序設(shè)計(jì)語(yǔ)言,也可能使用一些效率低的算法。在一段時(shí)間的開(kāi)發(fā)后,他們往往已經(jīng)習(xí)慣了這些選擇,遇事便在系統(tǒng)中摻雜了這些不理想的選擇。
8.以G,J,Myers的觀點(diǎn),簡(jiǎn)述軟件測(cè)試的目的 1.軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程
2.一個(gè)號(hào)的測(cè)試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤
3.一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤
9.采用黑盒測(cè)試方法設(shè)計(jì)用例有哪幾種方法。這些方法有什么特點(diǎn)
1.等價(jià)類(lèi)劃分法
把所有可能的輸入數(shù)據(jù)劃分成若干個(gè)等價(jià)的子集,使得每個(gè)子集中的一個(gè)典型值在測(cè)試中的作用于這一子集中所有其他值的作用相同
2.邊界值分析法
使等價(jià)類(lèi)的每個(gè)邊界都要作為測(cè)試條件,不僅考慮輸入條件們還要考慮輸出空間產(chǎn)生的測(cè)試情況。邊界值分析法不僅重視輸入條件邊界,而且也從輸出域?qū)С鰷y(cè)試用例。
3.錯(cuò)誤推測(cè)法
列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測(cè)試用例,錯(cuò)誤推測(cè)法很大程度上靠知覺(jué)和經(jīng)驗(yàn)進(jìn)行。
4.因果圖法
因果圖適合于描述對(duì)于多種輸入條件的組合,響應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來(lái)設(shè)計(jì)測(cè)試用例
第二篇:軟件工程簡(jiǎn)答題
第一章
1簡(jiǎn)述軟件的概念
軟件是計(jì)算機(jī)程序、數(shù)據(jù)結(jié)構(gòu)和文檔的有機(jī)結(jié)合。其中,計(jì)算機(jī)程序能夠完成預(yù)訂功能和性能的可執(zhí)行的指令;數(shù)據(jù)結(jié)構(gòu)使得程序能夠適當(dāng)?shù)夭僮鞲鞣N信息;文檔全面描述了程序的分析、設(shè)計(jì)過(guò)程和使用方法。2什么是軟件危機(jī)
落后的軟件生產(chǎn)方式無(wú)法滿(mǎn)足迅速增長(zhǎng)的計(jì)算機(jī)軟件需求,從而導(dǎo)致軟件開(kāi)發(fā)與維護(hù)過(guò)程中出現(xiàn)一系列嚴(yán)重問(wèn)題的現(xiàn)象。
3軟件危機(jī)主要包含哪兩方面的問(wèn)題
一是如何開(kāi)發(fā)軟件,以滿(mǎn)足對(duì)軟件日益增長(zhǎng)的需求;二是如何維護(hù)數(shù)量不斷膨脹的已有軟件。4簡(jiǎn)述軟件危機(jī)產(chǎn)生的原因
是由于軟件產(chǎn)品本身的特點(diǎn),以及開(kāi)發(fā)軟件的方式方法,技術(shù)和人員引起的。
(1)軟件規(guī)模越來(lái)越大,結(jié)構(gòu)越來(lái)越復(fù)雜。(2)軟件開(kāi)發(fā)的管理困難而復(fù)雜。
(2)軟件開(kāi)發(fā)費(fèi)用不斷增加(4)開(kāi)發(fā)技術(shù)落后(5)生產(chǎn)方式落后(6)開(kāi)發(fā)工具落后
5什么是軟件工程
軟件工程是將系統(tǒng)性的、規(guī)范化的、可定量的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)。
6簡(jiǎn)述軟件生存周期的概念
軟件聲明周期是由軟件定義、軟件開(kāi)發(fā)、軟件維護(hù)三個(gè)時(shí)期組成的。
定義階段的主要任務(wù)是解決“做什么”問(wèn)題。通常被分為三個(gè)階段:?jiǎn)栴}定義、可行性研究、需求分析。開(kāi)發(fā)階段的任務(wù)是解決“如何做”的問(wèn)題。通常包括軟件設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試等工作。
維護(hù)階段的主要任務(wù)是使軟件保持用戶(hù)滿(mǎn)意的需要。
7軟件工程的目標(biāo)和內(nèi)容是什么
目標(biāo):旨在開(kāi)發(fā)滿(mǎn)足用戶(hù)需求,及時(shí)交付、不超過(guò)預(yù)算和無(wú)故障的軟件。
內(nèi)容:(1)實(shí)現(xiàn)預(yù)期的功能,滿(mǎn)足用戶(hù)的需求。(2)增強(qiáng)軟件過(guò)程的可見(jiàn)性和可控性,提高軟件質(zhì)量。
(3)提高軟件的可維護(hù)性(4)提高軟件開(kāi)發(fā)的生產(chǎn)效率(5)合理預(yù)算開(kāi)發(fā)成本。
第二章
1什么是項(xiàng)目?項(xiàng)目有哪兩種常見(jiàn)的形式?
項(xiàng)目是一項(xiàng)有待完成的任務(wù),有特定的環(huán)境與要求,在一定的組織機(jī)構(gòu)內(nèi),利用有限資源(包括人力、物力和財(cái)力等),在規(guī)定的時(shí)間內(nèi)完成任務(wù),任務(wù)要滿(mǎn)足一定質(zhì)量、數(shù)量、性能技術(shù)指標(biāo)等要求。通用商業(yè)軟件項(xiàng)目、定制軟件項(xiàng)目。
2簡(jiǎn)述項(xiàng)目的開(kāi)發(fā)流程
軟件項(xiàng)目開(kāi)發(fā)流程通常包括:招標(biāo)、投標(biāo)、合同簽訂、軟件項(xiàng)目開(kāi)發(fā)等。
3簡(jiǎn)述軟件生命周期的各個(gè)階段
項(xiàng)目計(jì)劃階段、需求分析階段、系統(tǒng)設(shè)計(jì)階段、編碼測(cè)試階段、運(yùn)行維護(hù)階段
4列舉項(xiàng)目的主要角色
機(jī)構(gòu)領(lǐng)導(dǎo)、項(xiàng)目經(jīng)理、系統(tǒng)分析員、系統(tǒng)設(shè)計(jì)師、程序員、測(cè)試員,還有配置管理員、質(zhì)量保證員、產(chǎn)品維護(hù)人員等。
5典型的項(xiàng)目組織形式有哪些
民主制程序員組、主程序員組的組織方式、現(xiàn)代程序員組的組織方式
6簡(jiǎn)述檢查點(diǎn)、里程碑、基線三者之間的關(guān)系
檢查點(diǎn)比較細(xì),里程碑比較粗、基線最粗;重要的檢查點(diǎn)一般就是里程碑,重要的里程碑一般就是基線;檢查點(diǎn)一般依據(jù)時(shí)間的先后順序設(shè)定,里程碑一般依據(jù)關(guān)鍵成果的產(chǎn)出設(shè)定,基線依據(jù)一組關(guān)鍵成果的產(chǎn)出設(shè)定;在實(shí)際項(xiàng)目中,周例會(huì)是檢查點(diǎn)的表現(xiàn)形式、高層的階段匯報(bào)會(huì)是基線的表現(xiàn)形式。
7軟件生命周期計(jì)劃階段的主要任務(wù)
8軟件生命周期需求分析階段的主要任務(wù)
9軟件生命周期編碼測(cè)試階段的主要任務(wù)
第三章
1可行性研究的要素包括哪些
經(jīng)濟(jì):這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過(guò)它的開(kāi)發(fā)成本嗎?
技術(shù):使用現(xiàn)有技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?
社會(huì):市場(chǎng)(未成熟、成熟、將要消亡)與政策
人:人物、開(kāi)發(fā)人員、領(lǐng)導(dǎo)
法律:可能涉及的合同、侵權(quán)、責(zé)任及各種與法律相抵觸的問(wèn)題。
2可行性研究的任務(wù)是什么
對(duì)以后的行動(dòng)方針提出建議。
如果問(wèn)題沒(méi)有可行的解,分析員應(yīng)該建議停止這項(xiàng)開(kāi)發(fā)工程,以避免時(shí)間、資源、人力和金錢(qián)的浪費(fèi)。如果問(wèn)題值得解,分析員應(yīng)該推薦一個(gè)較好的解決方案,并且為工程制定一個(gè)初步的計(jì)劃。
3什么是系統(tǒng)流程圖
系統(tǒng)流程圖簡(jiǎn)稱(chēng)流程圖或系統(tǒng)圖,是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。
4可行性研究有哪些步驟及內(nèi)容
① 復(fù)查項(xiàng)目目標(biāo)和規(guī)模
訪問(wèn)關(guān)鍵人員,仔細(xì)閱讀分析材料,對(duì)問(wèn)題定義階段書(shū)寫(xiě)的規(guī)模目標(biāo)報(bào)告書(shū)進(jìn)一步復(fù)確認(rèn)。改正含
糊或不準(zhǔn)確,清晰描述對(duì)目標(biāo)系統(tǒng)的一切限制和約束。
② 研究目前系統(tǒng)
了解現(xiàn)有系統(tǒng)基本功能,保證新開(kāi)發(fā)系統(tǒng)的功能性。
了解現(xiàn)有系統(tǒng)缺點(diǎn),保證新開(kāi)發(fā)系統(tǒng)改善缺陷。
了解現(xiàn)有系統(tǒng)運(yùn)行使用所需費(fèi)用,新系統(tǒng)應(yīng)增加收入或減少使用費(fèi)用。
了解現(xiàn)有系統(tǒng)能做什么,無(wú)需了解他怎樣做這些工作。
③ 形成高層邏輯模型
數(shù)據(jù)流圖:描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)處理情況。
數(shù)據(jù)字典:定義系統(tǒng)中使用的數(shù)據(jù)。
④ 重新定義問(wèn)題
分析員與用戶(hù)以數(shù)據(jù)流圖和數(shù)據(jù)字典為討論基礎(chǔ),再次復(fù)查問(wèn)題定義、工程規(guī)模和目標(biāo)。
如對(duì)問(wèn)題有誤解,或遺漏要求,在此階段改正。
5簡(jiǎn)述軟件質(zhì)量的含義
軟件質(zhì)量是“軟件與明確地和隱含地定義的需求相一致的程度”,是軟件與明確地?cái)⑹龅墓δ芎托阅苄枨?、文檔中明確描述的開(kāi)發(fā)標(biāo)準(zhǔn)以及任何專(zhuān)業(yè)開(kāi)發(fā)的軟件產(chǎn)品都應(yīng)該具有的隱含特征相一致的程度。6度量軟件規(guī)模的常用技術(shù)有哪些
(1)LOC(Lines of Code,代碼行)估算(2)FP(功能點(diǎn))估算
(3)Delphi 估算法(4)類(lèi)比法
7簡(jiǎn)述成本估算的步驟
(1)任務(wù)分解(2)估算每個(gè)任務(wù)的成本(3)直接成本估算
(4)間接成本估算(5)項(xiàng)目總估算成本(6)項(xiàng)目總報(bào)價(jià)
8簡(jiǎn)述風(fēng)險(xiǎn)及風(fēng)險(xiǎn)管理的目標(biāo)
所有可能危害項(xiàng)目的因素都稱(chēng)為風(fēng)險(xiǎn),風(fēng)險(xiǎn)事件最終可能發(fā)生,也可能不發(fā)生,風(fēng)險(xiǎn)管理的目的是在風(fēng)險(xiǎn)產(chǎn)生危害之前識(shí)別它們,從而有計(jì)劃地消除或削弱風(fēng)險(xiǎn)。
9簡(jiǎn)述風(fēng)險(xiǎn)管理的主要過(guò)程
風(fēng)險(xiǎn)識(shí)別,風(fēng)險(xiǎn)量化,風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃制定和風(fēng)險(xiǎn)監(jiān)控。
10簡(jiǎn)述什么是CMM
能力成熟度模型(CMM),用于評(píng)價(jià)軟件機(jī)構(gòu)的軟件過(guò)程能力成熟度的模型
CMM的策略是力圖改進(jìn)對(duì)軟件過(guò)程的管理,而在技術(shù)方面的改進(jìn)是其必然結(jié)果。
11簡(jiǎn)述工程網(wǎng)絡(luò)圖的繪制步驟
(1)畫(huà)工程網(wǎng)絡(luò)圖。(2)計(jì)算事件的最早時(shí)刻。(3)計(jì)算事件的最遲時(shí)刻。
(4)確定工程的關(guān)鍵路徑。(5)計(jì)算每個(gè)子任務(wù)的機(jī)動(dòng)時(shí)間。
第七章
1進(jìn)行軟件測(cè)試的目的(1)測(cè)試是一個(gè)為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。
(2)一個(gè)好的測(cè)試用例是指很可能找到迄 今為至尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試用例。
(3)一個(gè)成功的測(cè)試是指揭示了迄今為至尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
2簡(jiǎn)述什么是軟件測(cè)試
“用人工或自動(dòng)的手段來(lái)執(zhí)行和評(píng)價(jià)系統(tǒng)或系統(tǒng)部件的過(guò)程,以檢驗(yàn)它是否滿(mǎn)足規(guī)定的需求,或識(shí)別期望的結(jié)果和實(shí)際的結(jié)果之間有無(wú)差別”。
3簡(jiǎn)述什么是軟件質(zhì)量
見(jiàn)第三章
4簡(jiǎn)述什么是靜態(tài)測(cè)試
不運(yùn)行被測(cè)程序本身,僅通過(guò)分析或檢查源程序的語(yǔ)法、結(jié)構(gòu)、過(guò)程、接口等來(lái)檢查程序的正確性。5簡(jiǎn)述什么是動(dòng)態(tài)測(cè)試
通過(guò)運(yùn)行被測(cè)程序,檢查運(yùn)行結(jié)果與預(yù)期結(jié)果的差異,并分析運(yùn)行效率和健壯性等性能。目前,動(dòng)態(tài)測(cè)試是公司測(cè)試工作的主要方式。
6軟件測(cè)試原則有哪些
(1)所有的測(cè)試都應(yīng)可追溯到客戶(hù)需求。
(2)應(yīng)該在測(cè)試工作真正開(kāi)始前的較長(zhǎng)時(shí)間就進(jìn)行測(cè)試計(jì)劃。
(3)測(cè)試中發(fā)現(xiàn)的80%的錯(cuò)誤可能來(lái)自于20%的程序代碼。
(4)測(cè)試應(yīng)從“小規(guī)?!遍_(kāi)始,逐步轉(zhuǎn)向“大規(guī)模”。
(5)窮舉測(cè)試是不可能的。
(6)為了達(dá)到最有效的測(cè)試,應(yīng)由獨(dú)立的第三方來(lái)承擔(dān)測(cè)試。
(7)在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包括合理的輸入條件和不合理的輸入條件。
(8)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。
(9)應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查。
(10)妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。
(11)檢查程序是否做了應(yīng)做的事僅是成功的一半,另一半是檢查程序是否做了不該做的事。
(12)在規(guī)劃測(cè)試時(shí)不要設(shè)想程序中不會(huì)查出錯(cuò)誤。
第八章
1什么是軟件維護(hù)
是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿(mǎn)足新的需要而修改軟件的過(guò)程。
2什么是軟件的可維護(hù)性
軟件能夠被理解、改正、適應(yīng)和完善以適應(yīng)新的環(huán)境的難易程度。
3軟件維護(hù)目標(biāo)是什么??
為了改正軟件系統(tǒng)中的錯(cuò)誤,使軟件能夠滿(mǎn)足預(yù)期的正常運(yùn)行狀態(tài)的要求;為了使軟件適應(yīng)內(nèi)部或外部環(huán)境變化。
第三篇:軟件工程
1.軟件危機(jī)的概念 系統(tǒng)的數(shù)據(jù)要求,功能需求,性能需求,顯示出程序的輪廓。
軟件危機(jī)是指在計(jì)算機(jī)軟件開(kāi)發(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è)試又稱(chēng)有效性測(cè)試。有效性測(cè)試是
1.軟件危機(jī)的表現(xiàn)有哪些? 實(shí)體-聯(lián)系圖,數(shù)據(jù)流圖,狀態(tài)轉(zhuǎn)換圖,在模擬的環(huán)境下,運(yùn)用黑盒測(cè)試的方法,答:1)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常層次方框圖,warnier圖,IPO圖。驗(yàn)證被測(cè)軟件是否滿(mǎn)足需求規(guī)格說(shuō)明書(shū)常很不準(zhǔn)確。第五章 列出的需求。任務(wù)是驗(yàn)證軟件的功能和性
2)用戶(hù)對(duì)已完成的軟件不滿(mǎn)意1.總體設(shè)計(jì)的任務(wù) 能及其他特性是否與用戶(hù)的要求一致。對(duì)的現(xiàn)象時(shí)有發(fā)生。劃分出組成系統(tǒng)的物理元素——程序、文軟件的功能和性能要求在軟件需求規(guī)格
3)軟件產(chǎn)品的質(zhì)量往往是靠不件、數(shù)據(jù)庫(kù)、人工過(guò)程和文檔等等 說(shuō)明書(shū)中已經(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)軟件開(kāi)發(fā)生產(chǎn)率提高的速度這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完是如何運(yùn)作的?!鞍缀小狈ㄈ媪私獬绦騼?nèi)遠(yuǎn)跟不上日益增長(zhǎng)的軟件需求。成指定的功能滿(mǎn)足用戶(hù)的需求。部邏輯結(jié)構(gòu)、對(duì)所有邏輯路徑進(jìn)行測(cè)試。
2.產(chǎn)生軟件危機(jī)的原因主要有哪些? 3.衡量模塊獨(dú)立的標(biāo)準(zhǔn)(內(nèi)聚和耦合的白盒測(cè)試的測(cè)試方法有代碼檢查法、靜態(tài)答:1)用戶(hù)對(duì)軟件需求的描述不精確。含義,種類(lèi))結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋
2)軟件開(kāi)發(fā)人員對(duì)用戶(hù)需求的內(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)開(kāi)發(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ù)有哪有效的開(kāi)發(fā)工具的支持。特征耦合,公共環(huán)境耦合,內(nèi)容耦合。些,(等價(jià)劃分,邊介值分析法)
6)面對(duì)日益增長(zhǎng)的軟件需求,4.啟發(fā)式規(guī)則 黑盒測(cè)試也稱(chēng)功能測(cè)試,它是通過(guò)測(cè)試來(lái)人們顯得力不從心。1.改進(jìn)軟件結(jié)構(gòu)提高模塊的獨(dú)立性檢測(cè)每個(gè)功能是否都能正常使用。
2軟件的概念 2.模塊規(guī)模應(yīng)該適中等價(jià)類(lèi)劃分的辦法是把程序的輸入域劃完成特點(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à)類(lèi)邊界的測(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à)類(lèi)劃分方法的補(bǔ)充。
4.采用現(xiàn)代程序設(shè)計(jì)技術(shù) 成軟件結(jié)構(gòu) 12.軟件調(diào)試技術(shù)有哪些
5.結(jié)果應(yīng)能清楚地審查 信息流:變換流,事物流 蠻干法,蠻干法可能是尋找軟件錯(cuò)誤原因
6.開(kāi)發(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.確定狀的地方開(kāi)始,人工沿程序的控制流往回
2.可行性研究:研究問(wèn)題的范圍,探索這每一模塊使用的數(shù)據(jù)結(jié)構(gòu)追蹤分析源程序代碼,知道找出錯(cuò)誤原因個(gè)問(wèn)題是否值得去解決,是否有可行的解3.確定模塊接口的細(xì)節(jié),包括對(duì)系統(tǒng)外為止。
決方法。部的接口和用戶(hù)界面,對(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è)試:寫(xiě)出正確的容易理解3.詳細(xì)設(shè)計(jì)的工具
容易維護(hù)的程序模塊。1.圖形工具
7.綜合測(cè)試:通過(guò)各種類(lèi)型的測(cè)試使軟件2.表格工具
達(dá)到預(yù)定的要求 3.語(yǔ)言工具
8.軟件維護(hù):通過(guò)各種必要的維護(hù)活動(dòng)使4.jackson方法
系統(tǒng)持久地滿(mǎn)足用戶(hù)的需要。(改正性維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í)間具有順序性和依賴(lài)第七章
性。推遲現(xiàn)實(shí)的觀點(diǎn)。質(zhì)量保證的觀點(diǎn)。1.選擇程序設(shè)計(jì)語(yǔ)言應(yīng)考慮哪些因素
快速原型模型:軟件產(chǎn)品的開(kāi)發(fā)基本上是1.系統(tǒng)用戶(hù)的要求
線性順序進(jìn)行的,本質(zhì)是“快速”加速軟2.可以使用的編譯程序
件的開(kāi)發(fā)過(guò)程,節(jié)約軟件開(kāi)發(fā)成本。3.可以得到的軟件工具
增量模型:能在較短時(shí)間內(nèi)向用戶(hù)提交可4.工程規(guī)模
完成部分工作的產(chǎn)品。逐步增加產(chǎn)品功5.程序員的知識(shí)
能,可以使用戶(hù)有較充裕的時(shí)間學(xué)習(xí)和適6.軟件可移植性要求
應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能7.軟件的應(yīng)用領(lǐng)域
給客戶(hù)組織帶來(lái)的沖擊。2.良好的編程風(fēng)格包括哪些方面
螺旋模型:對(duì)可選方案和約束條件的強(qiáng)調(diào)1.程序內(nèi)部的文檔2.數(shù)據(jù)說(shuō)明 3.語(yǔ)句構(gòu)
有利于已有軟件的重用,也有助于把軟件造4.輸入輸出 5.效率
質(zhì)量作為軟件開(kāi)發(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ù)和開(kāi)發(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.草擬開(kāi)發(fā)計(jì)劃2對(duì)程序接口進(jìn)行測(cè)試,檢查程序功能是
8.書(shū)寫(xiě)文檔提交審查 否能按規(guī)格說(shuō)明書(shū)的規(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把程序堪稱(chēng)裝在一個(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),畫(huà)數(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ù)流明書(shū)中的錯(cuò)誤 圖中每個(gè)元素的精確定義放在一起,才能7.漸增式和非漸增式的區(qū)別 共同構(gòu)成系統(tǒng)的規(guī)格說(shuō)明?!胺菨u增式”,即先獨(dú)立地測(cè)試每一模塊,第三章 然后將所有這些模塊連接到一起運(yùn)行; 1.需求分析屬于哪一個(gè)階段,任務(wù)是什“漸增式”,即在已測(cè)試過(guò)的N個(gè)模塊的么?;A(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)開(kāi)發(fā)計(jì)劃2.需求分析的產(chǎn)品是什么 8.自頂向下,自下而上,以及混合策略的3.面向過(guò)程的分析方法主要是建立三類(lèi)優(yōu)缺點(diǎn) 模型 自頂向下數(shù)據(jù)模型(按照用戶(hù)的觀點(diǎn)對(duì)數(shù)據(jù)建立的優(yōu)點(diǎn):能較早顯示整個(gè)程序的輪廓,向用模型,把用戶(hù)的數(shù)據(jù)要求清楚,準(zhǔn)確地描戶(hù)展示程序的概貌,取得用戶(hù)的理解與支述出來(lái)。描述了從用戶(hù)角度看到的數(shù)據(jù),持。缺點(diǎn):當(dāng)測(cè)試上層模塊時(shí)因使用樁它反應(yīng)了用戶(hù)的現(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ō)明書(shū)的內(nèi)容 優(yōu)點(diǎn):測(cè)試從下層模塊開(kāi)始,測(cè)試設(shè)計(jì)用通常用自然語(yǔ)言完整,準(zhǔn)確,具體地描述例比較容易。缺點(diǎn):在測(cè)試的早期不能
第四篇:《軟件工程》
《軟件工程》課程分析
本課程是軟件技術(shù)專(zhuān)業(yè)學(xué)生必修的一門(mén)專(zhuān)業(yè)必修課。根據(jù)培養(yǎng)軟件開(kāi)發(fā)人員的需要,本課程的任務(wù)是使學(xué)生通過(guò)本課程的學(xué)習(xí),了解軟件項(xiàng)目開(kāi)發(fā)和維護(hù)的一般過(guò)程,掌握軟件開(kāi)發(fā)的傳統(tǒng)方法和最新方法。能在軟件工程的理論指導(dǎo)下,開(kāi)發(fā)一個(gè)小型管理系統(tǒng),為今后從事軟件工程實(shí)踐打下良好的基礎(chǔ)。
一、課程分析
(一)教學(xué)計(jì)劃的制定和教學(xué)內(nèi)容的選取
根據(jù)培養(yǎng)應(yīng)用技能型人才的總目標(biāo),制訂本專(zhuān)業(yè)教學(xué)計(jì)劃,課程的教材配套,教學(xué)、實(shí)驗(yàn)、實(shí)訓(xùn)、課程設(shè)計(jì)大綱和指導(dǎo)書(shū)等教學(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)軟件開(kāi)發(fā)的,和實(shí)踐聯(lián)系非常緊密。所以采用了理論聯(lián)系實(shí)際的方法進(jìn)行授課。一方面,讓學(xué)生模擬軟件公司的項(xiàng)目小組進(jìn)行軟件開(kāi)發(fā);一方面,對(duì)學(xué)生進(jìn)行適時(shí)的理論指導(dǎo)。既調(diào)動(dòng)了學(xué)生的積極性,又讓學(xué)生了解了該課程的理論內(nèi)容,收到了一舉兩得的效果。具體教學(xué)過(guò)程如下:
第一步:模擬軟件公司的開(kāi)發(fā)項(xiàng)目小組,分組,分設(shè)角色(項(xiàng)目經(jīng)理、用戶(hù)、需求人員、設(shè)計(jì)人員、程序員、測(cè)試人員、軟件安裝培訓(xùn)維護(hù)人員),確定開(kāi)發(fā)題。讓每個(gè)小組的學(xué)生聚在一起,在項(xiàng)目經(jīng)理的組織下通過(guò)調(diào)研、討論來(lái)制定自己小組的開(kāi)發(fā)題目,大家感覺(jué)就象在軟件公司實(shí)習(xí)一樣,非常新鮮,感興趣。每個(gè)學(xué)生都積極主動(dòng)的去完成自己應(yīng)承擔(dān)的那部分工作。
第二步:模擬軟件項(xiàng)目開(kāi)發(fā)全過(guò)程的各個(gè)階段,進(jìn)行相關(guān)的理論授課和實(shí)際開(kāi)發(fā)。即對(duì)軟件開(kāi)發(fā)的每一階段,首先按照教材內(nèi)容進(jìn)行理論授課,然后讓學(xué)生參照授課內(nèi)容進(jìn)行實(shí)際的軟件開(kāi)發(fā)實(shí)踐。
在此階段結(jié)束后,每班召開(kāi)一個(gè)模擬方案論證會(huì),由各開(kāi)發(fā)小組選出代表上臺(tái)講解本組的開(kāi)發(fā)方案,其他同學(xué)模擬用戶(hù)對(duì)開(kāi)發(fā)方案提出意見(jiàn)。由于大家對(duì)模擬方案論證會(huì)非常感興趣,發(fā)言積極踴躍,論證會(huì)結(jié)束后,每個(gè)小組的設(shè)計(jì)方案都得到了很好的補(bǔ)充和完善。
第三步:學(xué)期末各小組提交各自完成的軟件系統(tǒng)及開(kāi)發(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é)存在依賴(lài)心理,不參與項(xiàng)目開(kāi)發(fā),最后抄襲別的同學(xué)的項(xiàng)目成果,自己得不到實(shí)際的鍛煉,影響了大三的畢業(yè)設(shè)計(jì)和日后的軟件開(kāi)發(fā)。另外,如果該課程只上課,沒(méi)有實(shí)訓(xùn)的話(huà),實(shí)驗(yàn)課時(shí)太少,學(xué)生很難全面完成一個(gè)系統(tǒng)的開(kāi)發(fā)。
第五篇:軟件工程
軟件工程
1.談?wù)勀銓?duì)軟件工具的理解,你用過(guò)什么軟件工具
軟件工具是指為支持計(jì)算機(jī)軟件的開(kāi)發(fā)、維護(hù)、模擬、移植或管理而研制的程序系統(tǒng)。它是為專(zhuān)門(mén)目的而開(kāi)發(fā)的,在軟件工程范圍內(nèi)也就是為實(shí)現(xiàn)軟件生存期中的各種處理活動(dòng)(包括管理、開(kāi)發(fā)和維護(hù))的自動(dòng)化和半自動(dòng)化面開(kāi)發(fā)的程序系統(tǒng)。
開(kāi)發(fā)軟件工具的最終目的是為了提高軟件生產(chǎn)率和改善軟件的質(zhì)量。
軟件工具分為六類(lèi):模擬工具、開(kāi)發(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開(kāi)發(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.軟件開(kāi)發(fā)和寫(xiě)程序有什么不同?軟件開(kāi)發(fā)的內(nèi)容是:需求、設(shè)計(jì)、編程和 測(cè)試 維護(hù)!
需求分析
軟件需求分析就是回答做什么的問(wèn)題。它是一個(gè)對(duì)用戶(hù)的需求進(jìn)行去粗取精、去偽存真、正確理解,然后把它用軟件工程開(kāi)發(fā)語(yǔ)言(形式功能規(guī)約,即需求規(guī)格說(shuō)明書(shū))表達(dá)出來(lái)的過(guò)程。本階段的基本任務(wù)是和用戶(hù)一起確定要解決的問(wèn)題,建立軟件的邏輯模型,編寫(xiě)需求規(guī)格說(shuō)明書(shū)文檔并最終得到用戶(hù)的認(rèn)可。需求分析的主要方法有結(jié)構(gòu)化分析方法、數(shù)據(jù)流程圖和數(shù)據(jù)字典等方法。本階段的工作是根據(jù)需求說(shuō)明書(shū)的要求,設(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ì)定義,編寫(xiě)軟件概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)說(shuō)明書(shū),數(shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說(shuō)明書(shū),組裝測(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ī)可以接受的程序,即寫(xiě)成以某一程序設(shè)計(jì)語(yǔ)言表示的“源程序清單”。充分了解軟件開(kāi)發(fā)語(yǔ)言、工具的特性和編程風(fēng)格,有助于開(kāi)發(fā)工具的選擇以及保證軟件產(chǎn)品的開(kāi)發(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ò)誤。編寫(xiě)軟件問(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ù)雜的話(huà),最好首先考慮進(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)覆蓋軟件開(kāi)發(fā)生命周期各個(gè)階段的集成的、減少勞動(dòng)力的工具。CASE已被證明可以加快開(kāi)發(fā)速度,提高應(yīng)用軟件生產(chǎn)率并保證應(yīng)用軟件的可靠品質(zhì)。CASE工具由許多部分組成,一般我們按軟件開(kāi)發(fā)的不同階段分為上層CASE和下層CASE產(chǎn)品。上層或前端CASE工具自動(dòng)進(jìn)行應(yīng)用的計(jì)劃、設(shè)計(jì)和分析,幫助用戶(hù)定義需求,產(chǎn)生需求說(shuō)明,并可完成與應(yīng)用開(kāi)發(fā)相關(guān)的所有計(jì)劃工作。下層或后端CASE工具自動(dòng)進(jìn)行應(yīng)用系統(tǒng)的編程、測(cè)試和維護(hù)工作。
除非下層CASE和上層CASE工具的供應(yīng)商提供統(tǒng)一界面,否則用戶(hù)必須編寫(xiě)或重新將所有信息從上層CASE工具轉(zhuǎn)換到下層CASE工具。獨(dú)立的CASE工具供應(yīng)商愈來(lái)愈希望將它們的工具連接在一起建立統(tǒng)一的界面以減少用戶(hù)不必要的開(kāi)發(fā)工作。
CASE工具帶來(lái)的好處
計(jì)算機(jī)專(zhuān)業(yè)人員利用計(jì)算機(jī)使他們的企業(yè)提高了效率,企業(yè)的各個(gè)部門(mén)通過(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è)試,用戶(hù)測(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,開(kāi)發(fā)人員或項(xiàng)目經(jīng)理在怎么不理,但是他們都會(huì)想到,萬(wàn)一測(cè)試人員發(fā)現(xiàn)了bug而自己忽視了,那么就有可能成為軟件里的一顆不定時(shí)地炸彈,那么作為一個(gè)開(kāi)發(fā)人員或項(xiàng)目經(jīng)理對(duì)bug的重視程度肯定相對(duì)比較高,至少要看測(cè)試人員發(fā)現(xiàn)的bug,但是QA就不一定了,因?yàn)镼A保證的流程的正確的執(zhí)行,相關(guān)人員就是認(rèn)為流程不重要,只要我開(kāi)發(fā)的產(chǎn)品沒(méi)有問(wèn)題那就沒(méi)有問(wèn)題,客戶(hù)肯定不會(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)歷告訴我,如果開(kāi)發(fā)和測(cè)試相比,開(kāi)發(fā)是天堂,測(cè)試是地獄的話(huà),但如果測(cè)試和QA相比的話(huà),那測(cè)試就是天堂,QA就是地獄,所以心態(tài)很重要,在三年里我就鍛煉成一個(gè)非常好的心態(tài),隨便怎么說(shuō)CMMI沒(méi)用,隨便怎么說(shuō)CMMI就是寫(xiě)文檔,隨便怎么說(shuō)QA真煩人,我笑容依然燦爛,從容面對(duì),而且一個(gè)QA要有堅(jiān)定的信念,如果你都不相信過(guò)程能給項(xiàng)目開(kāi)發(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)定性,可用性就是操作的便利性。比如一輛汽車(chē),可靠性好應(yīng)該歸功于機(jī)械部分,可用性好則是內(nèi)飾和中控系統(tǒng)的功勞。
10什么是軟件規(guī)格說(shuō)明?作用是什么?將其形式化的意義是什么?
11.什么是軟件重用?實(shí)現(xiàn)軟件重用的方法有哪些?
軟件重用,是指在兩次或多次不同的軟件開(kāi)發(fā)過(guò)程中重復(fù)使用相同或相似軟件元素的過(guò)程。軟件元素包括程序代碼、測(cè)試用例、設(shè)計(jì)文檔、設(shè)計(jì)過(guò)程、需要分析文檔甚至領(lǐng)域知識(shí)。通常,可重用的元素也稱(chēng)作軟構(gòu)件,可重用的軟構(gòu)件越大,重用的粒度越大。
根據(jù)軟件開(kāi)發(fā)的不同階段實(shí)現(xiàn)軟件重用主要有四個(gè)途徑:
抽象:對(duì)重用對(duì)象概括提煉,從而得到能全面描述側(cè)重算法和數(shù)據(jù)結(jié)構(gòu)的軟件構(gòu)件的各部分的描述。
選擇:是對(duì)重用對(duì)象進(jìn)行存放,匹配和檢索的功能。
實(shí)例化:對(duì)數(shù)據(jù)類(lèi)型中對(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ù)的部分代碼就要做出修改了。