軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 第1章軟件開發(fā)方法_第1頁
軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 第1章軟件開發(fā)方法_第2頁
軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 第1章軟件開發(fā)方法_第3頁
軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 第1章軟件開發(fā)方法_第4頁
軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 第1章軟件開發(fā)方法_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章軟件開發(fā)方法2024西安交通大學(xué)11.1軟件工程概述計(jì)算機(jī)軟件是計(jì)算機(jī)程序、數(shù)據(jù)及相關(guān)文檔的集合。軟件的開發(fā)和使用過程中常常受許多問題的困擾計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題稱為“軟件危機(jī)”軟件危機(jī)的特征1)軟件開發(fā)進(jìn)度難以預(yù)測2)軟件開發(fā)成本難以控制3)用戶對軟件產(chǎn)品的功能要求難以滿足4)軟件產(chǎn)品的質(zhì)量無法保證,系統(tǒng)中的錯誤難以消除5)軟件產(chǎn)品難以維護(hù)6)軟件通常缺少文檔資料7)軟件成本不斷提高8)軟件開發(fā)生產(chǎn)率的提高速度難以滿足社會需求的增長率西安交通大學(xué)21.1.1軟件的特征1.軟件產(chǎn)品的特征1)軟件是一種邏輯的產(chǎn)品。2)軟件產(chǎn)品質(zhì)量的體現(xiàn)方式不同。3)軟件產(chǎn)品的成本構(gòu)成不同。4)軟件產(chǎn)品的失敗曲線不同。5)大多數(shù)軟件仍然是定制生產(chǎn)的。2.產(chǎn)生軟件危機(jī)的原因西安交通大學(xué)3軟件項(xiàng)目失敗的主要原因西安交通大學(xué)43.解決軟件危機(jī)的途徑組織管理、技術(shù)方法西安交通大學(xué)51.1.2軟件工程1.軟件工程的定義IEEE:將系統(tǒng)的、規(guī)范的和可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中。國標(biāo)GB/T11457-2006:應(yīng)用計(jì)算機(jī)科學(xué)理論和技術(shù)以及工程管理原則和方法,按預(yù)算和進(jìn)度,實(shí)現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護(hù)的工程或進(jìn)行研究的學(xué)科西安交通大學(xué)62.軟件工程的目標(biāo)在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可操作性且滿足用戶需求的產(chǎn)品。1)提高軟件的生產(chǎn)效率,更快、更多地開發(fā)軟件,按時完成開發(fā)任務(wù)。2)達(dá)到軟件要求的功能。3)取得較好的軟件性能,包括易于移植、易于維護(hù),可靠性高等。4)降低軟件的開發(fā)成本。西安交通大學(xué)73.軟件工程的研究內(nèi)容1)軟件開發(fā)技術(shù)軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué)、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境。軟件開發(fā)方法學(xué)軟件開發(fā)過程軟件工具軟件開發(fā)環(huán)境4.軟件開發(fā)方法1)結(jié)構(gòu)化方法自頂向下、逐步求精模塊化設(shè)計(jì)、語句結(jié)構(gòu)化結(jié)構(gòu)化方法的不足西安交通大學(xué)82)面向?qū)ο蠓椒ǎ?)面向?qū)ο蠓椒ê喗槊嫦驅(qū)ο蠓椒ㄊ腔凇皩ο蟆㈩?、繼承性、消息機(jī)制和多態(tài)性等技術(shù)特征”的構(gòu)造軟件系統(tǒng)的開發(fā)方法。把對象(Object)作為一種統(tǒng)一的軟件構(gòu)件,它將數(shù)據(jù)及在數(shù)據(jù)上的操作行為融合為一體。軟件中的類(Class)是一類事物的描述。類具有層次結(jié)構(gòu),子類可以繼承父類的特性和方法(繼承性)。對象之間只能通過傳遞消息構(gòu)成相互之間的聯(lián)系(消息機(jī)制)。西安交通大學(xué)9(2)面向?qū)ο蠓椒▽?shí)施的基本步驟面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)面向?qū)ο缶幊獭⒚嫦驅(qū)ο鬁y試面向?qū)ο蟮能浖S護(hù)(3)面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn)與人類習(xí)慣的思維方式一致。穩(wěn)定性好。可重用性好??删S護(hù)性好。西安交通大學(xué)101.1.3生命周期模型軟件生命周期軟件產(chǎn)品從提出開發(fā)要求開始,經(jīng)過需求分析、設(shè)計(jì)、編碼、測試、使用,直到該軟件產(chǎn)品被淘汰為止的整個過程。1.軟件生命周期各階段的任務(wù)1)軟件定義時期問題定義可行性研究需求分析2)軟件開發(fā)時期總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼階段測試階段3)軟件維護(hù)時期西安交通大學(xué)112.軟件生命周期模型軟件開發(fā)中如何劃分階段,完成哪些工作,如何評價和評審,它們的順序如何等等的組織方案1)瀑布模型(WaterfallModel)西安交通大學(xué)122)快速原型模型(RapidPrototypeModel)快速建立反映用戶主要需求的系統(tǒng)原型用戶試用后提出修改意見開發(fā)人員按照用戶意見不斷修改原型系統(tǒng)直到用戶確認(rèn)原型系統(tǒng)確實(shí)能實(shí)現(xiàn)所需的功能開發(fā)人員據(jù)此編寫規(guī)格說明書根據(jù)這份文檔完成滿足用戶需求的軟件西安交通大學(xué)133)增量模型(IncrementalModel)西安交通大學(xué)144)螺旋模型(SpiralModel)西安交通大學(xué)155)敏捷軟件開發(fā)(1)敏捷宣言個體和交互優(yōu)于過程和工具可工作的軟件優(yōu)于面面俱到的文檔客戶合作優(yōu)于合同談判響應(yīng)變化優(yōu)于遵循計(jì)劃(2)敏捷開發(fā)的12條原則①通過及早、持續(xù)交付有價值的軟件來滿足客戶需求。①通過及早、持續(xù)交付有價值的軟件來滿足客戶需求。②歡迎需求變化,即使是在軟件開發(fā)的后期。③頻繁交付能用的軟件,交付頻率從兩周到兩個月或更短。④業(yè)務(wù)人員和開發(fā)人員必須合作,這種合作貫穿于每一天。西安交通大學(xué)16⑤圍繞主動性強(qiáng)的人來立項(xiàng),為他們提供必要的環(huán)境和支持。⑥開發(fā)團(tuán)隊(duì)內(nèi)部及跨團(tuán)隊(duì)之間最有效和最高效的信息傳遞方式是面對面交流。⑦能用起來的軟件是衡量進(jìn)度的基本依據(jù)。⑧倡導(dǎo)可持續(xù)開發(fā),開發(fā)人員和用戶都應(yīng)能夠長期保持穩(wěn)定、可持續(xù)工作節(jié)拍。⑨持續(xù)保持對技術(shù)卓越和設(shè)計(jì)優(yōu)良的關(guān)注。⑩簡潔為本,極簡就是消除浪費(fèi)的藝術(shù)。?最好的架構(gòu)、需求和設(shè)計(jì)是從自組織團(tuán)隊(duì)中涌現(xiàn)出來的。?團(tuán)隊(duì)按固定的時間間隔反思提效方式,從行動上做出相應(yīng)的優(yōu)化和調(diào)整。西安交通大學(xué)176)極限編程(1)客戶團(tuán)隊(duì)成員(2)用戶故事。(3)短交付周期。(4)驗(yàn)收測試。(5)結(jié)對編程。(6)測試驅(qū)動開發(fā)。(7)集體所有權(quán)。(8)持續(xù)集成。(9)可持續(xù)的開發(fā)速度(11)規(guī)劃游戲。(12)簡單設(shè)計(jì)。(13)重構(gòu)。(14)隱喻。西安交通大學(xué)187)Scrum(1)三種制品產(chǎn)品待定項(xiàng)沖刺待定項(xiàng)代碼增量(2)三個角色產(chǎn)品負(fù)責(zé)人開發(fā)團(tuán)隊(duì)敏捷教練(3)四項(xiàng)活動規(guī)劃會議每日站立會演示評審會沖刺回顧西安交通大學(xué)191.2軟件開發(fā)過程1.2.1需求分析1.軟件需求要了解的問題功能性需求限制條件質(zhì)量需求2.軟件需求活動的主要工作1)識別問題。2)可行性研究。3)分析建模。4)需求規(guī)格化及編寫文檔。西安交通大學(xué)203.軟件規(guī)格說明書的內(nèi)容1)概述。2)需求說明。3)運(yùn)行環(huán)境規(guī)定及技術(shù)路線。4)限制。4.數(shù)據(jù)流圖1)數(shù)據(jù)流圖的符號數(shù)據(jù)流數(shù)據(jù)存儲加工源點(diǎn)和終點(diǎn)2)數(shù)據(jù)流圖的結(jié)構(gòu)頂層中間層底層西安交通大學(xué)21【例1-1】職業(yè)培訓(xùn)中心管理系統(tǒng)。西安交通大學(xué)22西安交通大學(xué)23西安交通大學(xué)245.數(shù)據(jù)字典數(shù)據(jù)字典是數(shù)據(jù)流圖中所有元素的定義(解釋)的集合。數(shù)據(jù)詞典中有4種類型的條目:數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)項(xiàng)和加工。1)數(shù)據(jù)流條目西安交通大學(xué)25西安交通大學(xué)26西安交通大學(xué)272)數(shù)據(jù)存儲條目3)數(shù)據(jù)項(xiàng)條目西安交通大學(xué)284)加工條目包括加工的編號、名稱、功能、激發(fā)條件、加工邏輯、優(yōu)先級、執(zhí)行頻率和出錯處理等6.結(jié)構(gòu)化語言順序結(jié)構(gòu),用語句的先后表示,先出現(xiàn)的語句先處理,后出現(xiàn)的語句后處理。選擇結(jié)構(gòu),用類似程序設(shè)計(jì)語言的if...else結(jié)構(gòu)表示。循環(huán)結(jié)構(gòu):用類似程序設(shè)計(jì)語言的for,while結(jié)構(gòu)表示。【例1-2】設(shè)報(bào)名信息的結(jié)構(gòu)為報(bào)名信息=姓名+性別+出生年月+身份證號+學(xué)歷+單位+通信地址+

郵政編碼+聯(lián)系電話+報(bào)名專業(yè)+愛好特長報(bào)名信息保存在一個文件中。每行是一名學(xué)員的報(bào)名信息。寫出統(tǒng)計(jì)報(bào)名學(xué)員的男女生比例的結(jié)構(gòu)化語言的表示。西安交通大學(xué)297.判定表【例1-3】下表是簡化的某快遞公司的運(yùn)費(fèi)表,按交通的便利程度將目的地分為三類:一類是本省市,交通便利;二類是交通便利的外省市;三類是交通不太便利的外省區(qū),計(jì)價單位為:元/kg,不足1kg按1kg計(jì)算。請用判定表表示。目的地 首重

續(xù)重本省市 8 6二類地區(qū) 10 5三類地區(qū) 15 6西安交通大學(xué)30西安交通大學(xué)318.判定樹【例1-4】將例1-3中的運(yùn)費(fèi)用判定樹表示。西安交通大學(xué)321.2.2軟件設(shè)計(jì)系統(tǒng)設(shè)計(jì)階段的任務(wù)則是解決軟件系統(tǒng)“如何做”的問題。系統(tǒng)設(shè)計(jì)分兩個階段:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。西安交通大學(xué)331.概要設(shè)計(jì)【例1-5】畫出賓館管理系統(tǒng)中的旅客入住登記子系統(tǒng)的軟件結(jié)構(gòu)圖。旅客抵達(dá)賓館后,前臺服務(wù)接待員可根據(jù)旅客的性質(zhì)辦理入住登記手續(xù)??腿诵再|(zhì)分旅行社計(jì)劃、團(tuán)體和散客。客人的入住登錄信息可供查詢、修改、統(tǒng)計(jì)匯總。西安交通大學(xué)342.詳細(xì)設(shè)計(jì)(1)N-S圖西安交通大學(xué)35(2)PAD西安交通大學(xué)363.界面設(shè)計(jì)4.系統(tǒng)設(shè)計(jì)說明書(1)概述(2)系統(tǒng)結(jié)構(gòu)(3)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)(4)接口設(shè)計(jì)(5)模塊設(shè)計(jì)西安交通大學(xué)375.軟件設(shè)計(jì)準(zhǔn)則(1)模塊化準(zhǔn)則(2)模塊獨(dú)立性準(zhǔn)則(3)模塊規(guī)模應(yīng)適中(4)軟件結(jié)構(gòu)準(zhǔn)則(5)模塊的作用域應(yīng)該在控制域內(nèi)(6)使模塊接口簡單(7)模塊保持單入口、單出口(8)模塊功能可預(yù)測5.面向?qū)ο蟮脑O(shè)計(jì)西安交通大學(xué)381.2.3軟件實(shí)現(xiàn)編碼實(shí)現(xiàn)和單元測試注意使系統(tǒng)更易于使用和系統(tǒng)的可重用性選擇合適的開發(fā)工具編程風(fēng)格1.語句構(gòu)造2.輸入輸出3.效率西安交通大學(xué)391.2.4軟件測試1什么是軟件測試(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;(2)好的測試方案是極可能發(fā)現(xiàn)至今為止尚未發(fā)現(xiàn)的錯誤的測試方案;(3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。2.軟件測試準(zhǔn)則(1)所有測試應(yīng)能追溯到用戶需求。(2)嚴(yán)格執(zhí)行測試計(jì)劃。(3)應(yīng)從小規(guī)模的測試開始。(4)充分注意測試中的群集現(xiàn)象。(5)窮舉測試是不可能的。(6)程序員應(yīng)避免檢查自己的程序。西安交通大學(xué)403.白盒測試(1)語句覆蓋。選擇足夠的測試用例,使程序中的每一個語句都至少被執(zhí)行一次。【例1-6】下列Python程序的功能是當(dāng)x∈(0,1)時,y=1;x不屬于(0,1)時,y=0。設(shè)計(jì)符合語句覆蓋要求的測試用例。x=float(input())ifx>=1orx<=0:y=0else:y=1print(y)西安交通大學(xué)41(2)判定覆蓋選擇足夠的測試用例,使不僅每個語句必須至少執(zhí)行一次,而且每一個判斷的每一種可能結(jié)果都至少被執(zhí)行一次的測試方法。【例1-7】下列程序的功能是輸入年、月,判斷該月是多少天。設(shè)計(jì)測試用例,滿足判定覆蓋。days=[0,31,28,31,30,31,30,31,31,30,31,30,31];leap=False;year=int(input())month=int(input())if(year%4==0andyear%100!=0)or(year%400==0):leap=Trueifleap==True:days[2]=29;print("%d年%d月是%d天"%(year,month,days[month]))西安交通大學(xué)42(3)條件覆蓋不僅使每個語句執(zhí)行一次,而且使判定表達(dá)式中的每個條件都取到各種可能的結(jié)果。【例1-8】為例1-7設(shè)計(jì)滿足條件覆蓋的測試用例。將程序中的條件列在表1-4中,設(shè)計(jì)測試用例,使每個條件至少出現(xiàn)一次True,至少出現(xiàn)一次False。西安交通大學(xué)43(4)判定/條件覆蓋選取足夠多的測試用例,使判定表達(dá)式中的每個條件取到各種可能的值,而且使每個判定表達(dá)式也取到各種可能的值。但判定/條件覆蓋也并不比條件覆蓋強(qiáng)。如例1-8的測試用例,也滿足判定/條件覆蓋,但也就是條件覆蓋的測試用例。(5)條件組合覆蓋它要求選取足夠的測試用例,使得每個判定表達(dá)式中條件的各種可能組合至少出現(xiàn)一次。西安交通大學(xué)44(6)路徑覆蓋執(zhí)行足夠的測試用例,使程序中所有可能的路徑都至少經(jīng)歷一次。西安交通大學(xué)454.黑盒測試(1)等價類的劃分1)如果規(guī)定了輸入數(shù)據(jù)的取值范圍,則可以確定一個有效等價類和兩個無效等價類。2)如果規(guī)定了輸入數(shù)據(jù)的個數(shù),可以按數(shù)量劃分出一個有效等價類和兩個無效等價類。3)如果規(guī)定了輸入數(shù)據(jù)的一組值,而且軟件要對每個輸入值分別進(jìn)行處理,則可以為每一個值確定一個有效等價類,根據(jù)這組值確定一個無效等價類(任何不允許的輸入值)。4)如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則或者限制條件,則可以確定一個有效等價類(即符合規(guī)則)和若干個無效等價類(即各種違反規(guī)則的數(shù)據(jù)類別)。5)如果規(guī)定輸入數(shù)據(jù)為整型,則可以劃分出正整數(shù)、零、負(fù)整數(shù)和小數(shù)作為等價類。也可以使用(-∞,32769),[-32768,32767],(32768,∞)作為等價類。西安交通大學(xué)46(2)邊值分析經(jīng)驗(yàn)表明,程序最容易在數(shù)據(jù)的邊界情況發(fā)生錯誤。因此,設(shè)計(jì)邊界值處的測試用例,更容易發(fā)現(xiàn)程序的錯誤。(3)錯誤推測根據(jù)經(jīng)驗(yàn),列出程序中所有可能發(fā)生錯誤和容易發(fā)生錯誤的情況,選取測試用例,檢驗(yàn)程序是否有錯。西安交通大學(xué)475.測試步驟單元測試集成測試確認(rèn)測試系統(tǒng)測試6.調(diào)試調(diào)試是在測試發(fā)現(xiàn)錯誤之

溫馨提示

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

評論

0/150

提交評論