軟件工程概論.doc_第1頁
軟件工程概論.doc_第2頁
軟件工程概論.doc_第3頁
軟件工程概論.doc_第4頁
軟件工程概論.doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

。軟件工程1、軟件危機:軟件危機是指在計算機軟件的開發(fā)和維護過程中遇到的一系列嚴重問題。包含兩方面的問題:(1)如何開發(fā)軟件,以滿足對軟件日益增長的需求;(2)如何維護數(shù)量不斷膨脹的已有軟件。2、軟件危機的主要表現(xiàn):(1)對軟件開發(fā)成本和進度的估計經(jīng)常很不準確;(2)用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;(3)軟件產(chǎn)品的質(zhì)量往往靠不??;(4)軟件常常是不可維護的;(5)軟件通常沒有適當?shù)奈臋n資料;(6)軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升;(7)軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。3、產(chǎn)生軟件危機的原因(1)從軟件特點上看,軟件是邏輯部件,不是物理部件;(2)軟件是很大的程序,復雜且有很多技術(shù)問題,但缺少嚴格而科學的管理;(3)軟件的參與人員多且成分復雜(需求人員,開發(fā)人員,用戶,維護人員等);(4)在軟件實踐過程中或多或少的采用的錯誤的(但當時無法知曉的)方法和技術(shù)(這是主要原因)4、消除軟件危機的途徑(1)首先應該對計算機軟件有一個正確的認識;(2)更重要的是,必須充分認識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目;(3)應該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法,盡快消除在計算機系統(tǒng)早期發(fā)展階段形成的一些錯誤概念和做法;(4)應該開發(fā)和使用更好的軟件工具總之,為了解決軟件危機,既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。5、軟件工程:軟件工程是從管理和技術(shù)兩方面研究如何更好地開發(fā)和維護計算機軟件的一門新興學科。(1)1968年NATO會議:軟件工程就是為了經(jīng)濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理。(2)1993IEEE定義:軟件工程是把系統(tǒng)的、規(guī)范的、可度量的途徑應用于軟件開發(fā)、運行和維護過程,也就是把工程應用于軟件;研究中提到的途徑。6、軟件工程的本質(zhì)特征(1)軟件工程關(guān)注于大型程序的構(gòu)造;(2)軟件工程的中心課題是控制復雜性;(3)軟件經(jīng)常變化;(4)開發(fā)軟件的效率非常重要;(5)和諧地合作是開發(fā)軟件的關(guān)鍵;(6)軟件必須有效地支持它的用戶;(7)在軟件工程領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。7、軟件工程的基本原理(1)用分階段的生命周期計劃嚴格管理(2)堅持進行階段評審(3)實行嚴格的(階段性)產(chǎn)品控制(4)采用現(xiàn)代程序設(shè)計技術(shù)(5)結(jié)果應能清楚地審查(6)開發(fā)小組的人員應該少而精(7)承認不斷改進軟件工程實踐的必要性8、軟件生命周期:一個軟件從定義、開發(fā)、使用和維護,直到最終被廢棄,所歷經(jīng)的一個漫長的時期。包括:可行性分析和項目開發(fā)計劃,需求分析,概要設(shè)計,詳細設(shè)計,編碼,測試,維護。(1)軟件定義時期:確定軟件開發(fā)工程必須完成的總目標;確定工程的可行性;導出實現(xiàn)工程目標應該采用的相關(guān)策略及系統(tǒng)必須完成的功能;估計完成該項工程需要的資源和成本,并適當估計完成進度表。(2)軟件開發(fā)時期:總體設(shè)計;詳細設(shè)計;編碼和單元測試;綜合測試。(3)軟件維護時期:主要任務是使軟件更持久地滿足用戶需要。具體地說,當軟件在使用過程中發(fā)現(xiàn)錯誤時應該加以改正;當環(huán)境改變時應該修改軟件以適應新的環(huán)境;當用戶有新要求時應該及時改進軟件以滿足用戶的新需要。9、軟件生命周期每個階段的基本任務(1)問題定義:“要解決的問題是什么?”;(2)可行性研究:“對于上一個階段所確定的問題有行得通的解決方案嗎?”(3)需求分析:“為了解決這個問題,目標系統(tǒng)必須做什么?!保?)總體設(shè)計:“概括地說,應該怎樣實現(xiàn)目標系統(tǒng)?”(5)詳細設(shè)計:“應該怎樣具體地實現(xiàn)這個系統(tǒng)呢?”(6)編碼和單元測試:關(guān)鍵任務是寫出正確的容易理解、容易維護的程序模塊。(7)綜合測試:關(guān)鍵任務是通過各種類型的測試(及相應的調(diào)試)使軟件達到預定的要求。(8)軟件維護:通過各種必要的維護活動使系統(tǒng)持久地滿足用戶的需要。10、什么是軟件生命周期模型?有哪些主要模型?(1)生存周期模型:描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。對軟件開發(fā)提供強有力的支持,為開發(fā)過程中的活動提供統(tǒng)一的政策保證,為參與開發(fā)的人員提供幫助和指導,是軟件生存周期模型化技術(shù)的基礎(chǔ),也是建立軟件開發(fā)環(huán)境的核心。(2)主要有:瀑布模型,增量模型,螺旋模型,噴泉模型,基于知識的模型,變換模型。11、可行性研究的任務:用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。技術(shù)可行性;經(jīng)濟可行性;操作可行性;法律、社會效益、道德、政治等諸多方面的因素。12、可行性研究過程的步驟:(1)復查系統(tǒng)的規(guī)模和目標(2)研究目前正在使用的系統(tǒng)(3)導出新系統(tǒng)的高層邏輯模型(4)進一步定義問題(5)導出和評價供選擇的解法(6)推薦行動方針(7)草擬開發(fā)計劃(8)書寫文檔提交審查13、可行性分析報告的主要內(nèi)容:項目背景;客戶需求;商務前景;市場計劃;技術(shù)方案;實施周期;財務分析;風險管理。14、數(shù)據(jù)流圖(DFD):以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動和處理的過程。只反映系統(tǒng)必須完成的邏輯功能,是一種功能模型。15、畫數(shù)據(jù)流圖應注意的事項:(1)命名:不能使用缺乏具體含義的名字,加工名應能反映出處理的功能。(2)畫數(shù)據(jù)流而不是控制流,一般不畫物質(zhì)流。(3)每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結(jié)果 。(4)編號:子圖應編號子圖上的所有加工也應編號,子圖的編號應與父圖的編號相對應。(5)父圖與子圖的平衡:子圖的輸入輸出數(shù)據(jù)流同父圖相應加工的輸入輸出數(shù)據(jù)流必須一致。(6)局部數(shù)據(jù)存儲。 (7)注意數(shù)據(jù)流圖的易理解性。16、數(shù)據(jù)字典:數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。內(nèi)容:數(shù)據(jù)流;數(shù)據(jù)流分量(即數(shù)據(jù)元素);數(shù)據(jù)存儲;處理。17、需求分析的任務(1)確定對系統(tǒng)的綜合要求 (2)分析系統(tǒng)的數(shù)據(jù)要求(3)導出系統(tǒng)的邏輯模型(4)修正系統(tǒng)開發(fā)計劃18、軟件設(shè)計的目標和任務:根據(jù)用信息域表示的軟件需求,以及功能和性能需求,進行數(shù)據(jù)設(shè)計、系統(tǒng)結(jié)構(gòu)設(shè)計、過程設(shè)計、界面設(shè)計。19、什么是軟件概要設(shè)計?該階段的基本任務是什么?(1)把一個軟件需求轉(zhuǎn)換為軟件表示時,首先設(shè)計出軟件總的體系結(jié)構(gòu)。稱為概要設(shè)計或結(jié)構(gòu)設(shè)計。(2)基本任務:設(shè)計軟件系統(tǒng)結(jié)構(gòu) 進行數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的設(shè)計編寫概要設(shè)計的文檔評審。20、總體設(shè)計(概要設(shè)計)原理:(1)模塊化:把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集總起來組成一個整體,可以完成指定的功能,滿足問題的功能。(2)抽象:抽出事物的本質(zhì)特性而暫時不考慮它們的細節(jié)。(3)逐步求精(4)信息隱蔽和局部化(5)模塊獨立:每個模塊完成一個相對獨立的子功能,并且和其他模塊之間的關(guān)系很簡單。21、模塊獨立程度的衡量標準:耦合和內(nèi)聚(1)耦合:也稱塊間聯(lián)系,模塊之間相互聯(lián)系程度的度量,聯(lián)系越緊密,耦合性越強,獨立性越差,以低耦合為設(shè)計目標。內(nèi)容耦合、公共耦合、控制耦合、標記耦合、數(shù)據(jù)耦合、無耦合。(2)內(nèi)聚:又稱為塊內(nèi)聯(lián)系,指模塊內(nèi)部各成分之間相互關(guān)聯(lián)的程度,以高內(nèi)聚為設(shè)計目標。偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚。22、概要設(shè)計的啟發(fā)式準則:(1)改進軟件結(jié)構(gòu),提高模塊獨立性(2)模塊規(guī)模應該適中(3)深度、寬度、扇出和扇入都應適當(4)模塊的作用域應該在控制域之內(nèi)(5)力爭降低模塊借口的復雜程度(6)設(shè)計單入口單出口的模塊(7)模塊功能應該可以預測23、面向數(shù)據(jù)流的設(shè)計方法:把信息流映射成軟件結(jié)構(gòu)。有兩種類型:(1)交換流:根據(jù)基本系統(tǒng)模型,信息通常以“外部世界”的形式進入軟件系統(tǒng),經(jīng)過處理以后再以“外部世界”的形式離開系統(tǒng)。由輸入、輸出、變換(或稱處理)三部分組成,是一順序結(jié)構(gòu)。(2)事務流:數(shù)據(jù)沿輸入通路到達一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行,這類數(shù)據(jù)流稱為事務流。處理T稱為事務中心。24、詳細設(shè)計的基本任務:(1)為每個模塊進行詳細的算法設(shè)計 (2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設(shè)計(3)對數(shù)據(jù)庫進行物理設(shè)計(4)其他設(shè)計(5)編寫詳細設(shè)計說明書(6)評審25、結(jié)構(gòu)程序設(shè)計:(1)如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這3種基本控制結(jié)構(gòu)進行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結(jié)構(gòu)化的。(2)結(jié)構(gòu)化程序設(shè)計的基本要點:采用自頂向下、逐步求精的程序設(shè)計方法使用三種基本控制結(jié)構(gòu)構(gòu)造程序主程序員組的組織形式。26、選擇程序設(shè)計語言基本原則:(1)系統(tǒng)用戶的要求(2)可以使用的編譯語言(3)可以得到的軟件工具(4)工程規(guī)模(5)程序員的知識(6)軟件可移植性要求(7)軟件的應用領(lǐng)域27、為了編制出清晰、緊湊、高效的程序,一般應依次考慮下列原則:(1)編制易于修改和維護的代碼(2)編制易于測試的代碼(3)必須將編程和編文檔的工作統(tǒng)一起來(4)編程中采用統(tǒng)一的標準和約定,降低程序復雜性(5)限定每一層的副作用,減少耦合度(6)盡可能地復用28、軟件測試的目標:(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程(2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案(3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試29、軟件測試的準則:(1)所有測試都應該能追溯到用戶需求(2)應該遠在測試開始之前就制定出測試計劃(3)把Pareto原理應用到軟件測試中(4)應該從“小規(guī)模”測試開始,并逐步進行“大規(guī)?!睖y試(5)窮舉測試是不可能的(6)為了達到最佳的測試效果,應該由獨立的第三方從事測試工作。30、測試的步驟:(1)模塊測試:保證每個模塊作為一個單元能夠正確運行,又稱為單元測試(2)子系統(tǒng)測試:集成測試、組裝測試、聯(lián)合測試;重點在于測試模塊之間的接口;(3)系統(tǒng)測試:將經(jīng)過測試的子系統(tǒng)裝配成一個完整的系統(tǒng)來測試;發(fā)現(xiàn)設(shè)計和編碼的錯誤,驗證系統(tǒng)是否滿足需求說明所定義的功能及其動態(tài)特性;也稱為集成測試。(4)驗收測試:有用戶參加的系統(tǒng)測試;驗證是否滿足用戶的需要(5)平行運行:同時運行新舊兩個系統(tǒng),并且對處理的結(jié)果進行比較,以確定新系統(tǒng)是否滿足相關(guān)性能指標。31、非漸增式和漸增式測試方法(1)非漸增式測試方法:先分別測試每個模塊,再把所有模塊按設(shè)計要求放在一起結(jié)合成所要的程序,這種方法稱為非漸增式測試方法。(2)漸增式測試方法:把下一個要測試的模塊同已經(jīng)測試好的那些模塊結(jié)合起來進行測試,測試完以后再把下一個應該測試的模塊結(jié)合進來測試。這種每次增加一個模塊的方法稱為漸增式測試。(3)非漸增式和漸增式測試方法的優(yōu)缺點比較:非漸增式方法要對每個模塊編寫驅(qū)動模塊和樁模塊,工作量較大;而漸增式方法可以利用部分已測試過的模塊作為測試軟件;非漸增式方法發(fā)現(xiàn)模塊間的接口錯誤較晚,而漸增式方法則要早一些;非漸增式方法發(fā)現(xiàn)錯誤后較難定位;而漸增式方法則要容易一些;非漸增式方法可以并行測試所有模塊,可充分利用人力,加快工程進度;漸增式方法接近全真運行環(huán)境,需要較多的測試運行時間,但對程序模塊的測試較為徹底。32、什么是白盒測試法?有哪些覆蓋標準?試對他們的檢錯能力進行比較?(1)白盒法測試法把測試對象看作一個打開的盒子,測試人員須了解程序內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進行測試,檢驗內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯,實際的運行狀態(tài)與預期的狀態(tài)是否一致。(2)白盒法的覆蓋標準:語句覆蓋;判定覆蓋;條件覆蓋;判定/條件覆蓋;條件組合覆蓋;路徑覆蓋(3)從上到下的覆蓋標準其檢錯能力也從弱到強,其中條件組合發(fā)現(xiàn)錯誤的能力較強,凡滿足其標準的測試用例,也必然滿足前四種覆蓋標準。在實際的邏輯測試中,一般以條件組合覆蓋為主設(shè)計測試用例,然后再補充部分用例來達到路徑覆蓋的測試標準。33、什么是黑盒測試法?采用黑盒技術(shù)測試用例有哪幾種方法?這些方法各有什么特點?(1)黑盒測試法:把被測試對象看成是一相黑盒子,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件接口處進行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。(2)采用黑盒技術(shù)測試用例的方法有:等價類的劃分、邊界值分析、錯誤推測和因果圖。等價類的劃分,是將輸入數(shù)據(jù)按有效的或無效的(也稱合理的或不合理的)劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試。這樣就把漫無邊跡的隨機測試改為有針對性的等價類測試,用少量有代表性的例子代替大量測試目的相同的例子,能有效地提高測試效率。但這個方法的缺點是沒有注意選擇某些高效的、能夠發(fā)現(xiàn)更多錯誤的測試用例。邊界值分析法一般與等價類劃分結(jié)合起來。但它不是從一個等價類中任選一個例子做代表,而是將測試邊界情況作為重點目標,選取正好等于、剛剛大于和剛剛小于邊界值的測試數(shù)據(jù)。(邊界情況是指輸入等價類和輸入等價類邊界上的情況。)這種方法可以查出更多的錯誤,因為在程序中往往在處理邊界情況時易發(fā)生錯誤。錯誤推測法是在測試程序時,人們根據(jù)經(jīng)驗或直覺推測程序中可能存在的錯誤,從而有針對性地編寫檢查這些錯誤的測試用例。因果圖能夠有效地檢測輸入條件的各種組合可能會引起的錯誤。它的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計一個測試用例。34、軟件維護:就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。軟件維護工作分為以下四類:(1)矯正性維護:目標是識別和矯正功能錯誤、性能錯誤和實現(xiàn)錯誤。(2)適應性維護:使軟件適應于外界環(huán)境的改變而對軟件所做的修改工作。(3)完善性維護:為了擴充軟件的功能或改善軟件的性能對軟件所做的改變。(4)預防性維護:為了以后更便于維護,或者為了改進可靠性,或者提供更好的基礎(chǔ)便于將來提高性能而修改軟件。35、決定軟件可維護性的因素:可理解性;可測試性;可修改性;可移植性;可重用性。36、提高可維護性的方法 (1)建立明確的軟件質(zhì)量目標和優(yōu)先級(2)使用提高軟件質(zhì)量的技術(shù)和工具(3)進行明確的質(zhì)量保證審查(4)選擇可維護的程序設(shè)計語言(5)改進程序的文檔 37、軟件維護的副作用有哪些?(1)編碼副作用。在使用程序設(shè)計語言修改源代碼時可能引入的錯誤。(2)數(shù)據(jù)副作用。在修改數(shù)據(jù)結(jié)構(gòu)時,有可能造成軟件設(shè)計與數(shù)據(jù)結(jié)構(gòu)不匹配,因而導致軟件錯誤。數(shù)據(jù)副作用是修改軟件信息結(jié)構(gòu)導致的結(jié)果。但它可以通過詳細的設(shè)計文檔加以控制。(3)文檔副作用。如果對可執(zhí)行軟件的修改沒有反映在文檔中,就會產(chǎn)生文檔副作用。(以上根據(jù)老師課件和軟件工程概論整理)38、某廠對部分職工重新分配工作的政策是:年齡在20歲以下者,初中文化程度脫產(chǎn)學習,高中文化程度當電工。20歲至40歲之間,中學文化程度,男性當鉗工,女性當車工,大學文化程度都當技術(shù)員。年齡在40歲以上者,中學文化程度當材料員,大學文化程度當技術(shù)員。請用結(jié)構(gòu)化語言判定表或判定樹描述上述問題的加工邏輯。(1)判定樹(2)判定表(3)結(jié)構(gòu)化語言: 精選資料,歡迎下載CASE 年齡20CASE 文化程度 初中 分配工種 脫產(chǎn)學習 CASE 文化程度 高中 分配工種 電工ENDCASECASE 年齡=20CASE 文化程度 初中.OR.高中 CASE 性別 男 分配工種 鉗工CASE 性別 女 分配工種 車工ENDCASEENDCASECASE 文化程度 大學分配工種 技術(shù)員ENDCASEENDCASECASE 年齡40CASE 文化程度 初中.OR.高中 分配工種 材料員CASE 文化程度 大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論