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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論