




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程與項(xiàng)目案例教程1經(jīng)歷華南理工大學(xué),博士,計(jì)算機(jī)控制曾任職以下公司:中國民航信息廣州公司(香港上市)技術(shù)總監(jiān)廣州金鵬集團(tuán)(電子百強(qiáng))項(xiàng)目總監(jiān)廣東金宇恒(佛山最大軟企)技術(shù)總監(jiān)曾獲國家創(chuàng)新基金、廣州科學(xué)技術(shù)獎(jiǎng)中聯(lián)通炫鈴廣東/湖南/廣西項(xiàng)目負(fù)責(zé)人(用戶800萬)長期移動(dòng)、民航、政府、互聯(lián)網(wǎng)行業(yè)軟件研發(fā)2項(xiàng)目一軟件工程概述任務(wù)1軟件工程
任務(wù)2軟件生命周期與軟件開發(fā)模型
任務(wù)3建模工具
3最富哲理的軟件工程4UML是“三人幫”“搗”出來的5迭代開發(fā)過程這樣流轉(zhuǎn)6軟件工程水平是這樣提高的7敏捷開發(fā)過程-Scrum8任務(wù)1軟件工程軟件的定義及其特點(diǎn)軟件危機(jī)軟件工程概念9軟件的定義及其特點(diǎn)軟件的定義軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的部分,它是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件的定義及其特點(diǎn)
軟件=程序+數(shù)據(jù)+文檔程序:按事先設(shè)計(jì)的功能和性能需求執(zhí)行的指令序列數(shù)據(jù):是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔:與程序開發(fā)、維護(hù)和使用有關(guān)的圖文材料10軟件的定義及其特點(diǎn)軟件的定義及其特點(diǎn)軟件的特點(diǎn)(1)抽象性;(2)無明顯的制造過程;(3)無磨損、老化的問題
(4)對(duì)硬件系統(tǒng)的依懶性;(5)復(fù)雜性;(6)成本昂貴;(7)社會(huì)性;11軟件危機(jī)TacomaNarrows大橋的崩潰12軟件危機(jī)
軟件危機(jī)
在軟件開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題
軟件危機(jī)的表現(xiàn)對(duì)軟件開發(fā)成本和進(jìn)度的估算很不準(zhǔn)確用戶很不滿意質(zhì)量很不可靠沒有適當(dāng)?shù)奈臋n軟件成本比重上升供不應(yīng)求:軟件開發(fā)生產(chǎn)率跟不上計(jì)算機(jī)應(yīng)用迅速深入的趨勢(shì)
軟件危機(jī)
13軟件危機(jī)軟件危機(jī)
原因客觀:軟件本身特點(diǎn)邏輯部件規(guī)模龐大主觀:不正確的開發(fā)方法忽視需求分析錯(cuò)誤認(rèn)為:軟件開發(fā)=程序編寫輕視軟件維護(hù)14軟件危機(jī)軟件危機(jī)
產(chǎn)生的原因(軟件開發(fā)人員的錯(cuò)誤觀點(diǎn)):“有一個(gè)對(duì)目標(biāo)的概括描述就足以著手編寫程序了,許多細(xì)節(jié)可以在以后再補(bǔ)充”“所謂軟件開發(fā)就是編寫程序并設(shè)法使它運(yùn)行”“用戶對(duì)軟件的要求不斷變化,然而軟件是柔軟而靈活的,可以輕易地改動(dòng)”“軟件投入生產(chǎn)性運(yùn)行以后需要的維護(hù)工作并不多,而且維護(hù)是一件很容易做的簡(jiǎn)單工作”15軟件危機(jī)的解決軟件危機(jī)
解決途徑組織管理工程項(xiàng)目管理方法技術(shù)措施軟件開發(fā)技術(shù)與方法軟件工具軟件工程管理軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件度量學(xué)軟件工程學(xué)指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科工程管理+開發(fā)技術(shù)軟件開發(fā)技術(shù)軟件開發(fā)方法學(xué)軟件工具軟件工程環(huán)境16軟件工程概念軟件工程的概念
應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來解決軟件問題,指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。
軟件工程的原則軟件工程概念
17任務(wù)2軟件生命周期
與軟件開發(fā)模型軟件生命周期軟件開發(fā)模型18軟件生命周期
軟件定義階段
軟件開發(fā)階段
軟件的使用和維護(hù)階段
退役Page19軟件生命周期19
瀑布模型軟件開發(fā)模型軟件開發(fā)模型
問題定義可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)軟件實(shí)現(xiàn)軟件測(cè)試運(yùn)行維護(hù)計(jì)劃時(shí)期開發(fā)時(shí)期運(yùn)行維護(hù)時(shí)期強(qiáng)調(diào)階段的劃分及其順序性、各階段工作及其文檔的完備性,是一種嚴(yán)格線性的、按階段順序的、逐步細(xì)化的開發(fā)模式。20軟件開發(fā)模型
演化模型
螺旋模型
噴泉模型
21
兩種典型的建模工具:1.IBMRationalRose
2.MicrosoftOfficeVisio任務(wù)3建模工具22
IBMRationalRosePage23IBMRationalRose23Visio是一個(gè)圖表繪制程序,可以幫助用戶描述復(fù)雜設(shè)想以及系統(tǒng)的業(yè)務(wù)和技術(shù)圖表。使用Visio創(chuàng)建圖表可以使信息形象化,能夠以更為直觀有效的方式進(jìn)行信息交流,這是單純的文字和數(shù)字無法比擬的。Page24
MicrosoftOfficeVisioMicrosoftOfficeVisio
24軟件工程課程設(shè)計(jì)考核方式:課程設(shè)計(jì)(附設(shè)計(jì)說明文檔,正文字?jǐn)?shù)不少于1000字)(60%)+平時(shí)作業(yè)及實(shí)驗(yàn)(30%)+平時(shí)表現(xiàn)(10%),按優(yōu)秀、良好、中、及格、不及格五級(jí)評(píng)定成績(jī)通過演示及講述,講解課程設(shè)計(jì)的整體情況,針對(duì)其設(shè)計(jì)提出一些技術(shù)及細(xì)節(jié)問題確認(rèn)是否真正理解課程設(shè)計(jì)中的要點(diǎn)、是否掌握了進(jìn)行系統(tǒng)設(shè)計(jì)的知識(shí)和能力、是否本人完成。如通發(fā)現(xiàn)沒有真正設(shè)計(jì)或者不清楚技術(shù)細(xì)節(jié),則課程設(shè)計(jì)不及格。答辯部分:40分(沒有課程設(shè)計(jì)說明文檔不予參加答辯)設(shè)計(jì)部分:60分選題:創(chuàng)新性,實(shí)用性,界面美觀友好(15分)難度:設(shè)計(jì)包含的難度(15分)設(shè)計(jì)的完整性(30分)25迭代和增量開發(fā)方式26迭代過程的優(yōu)勢(shì)復(fù)雜系統(tǒng)-分解->多個(gè)簡(jiǎn)單系統(tǒng)提高軟件項(xiàng)目可控性降低軟件開發(fā)風(fēng)險(xiǎn)有效地應(yīng)對(duì)需求變更在迭代過程中,功能的不確定性逐漸減小,我們對(duì)功能的描述越來越明確。27何時(shí)使用迭代開發(fā)?只對(duì)希望成功的項(xiàng)目使用2019年2月4日,馬克·扎克伯格在大學(xué)的宿舍里鼓搗了一個(gè)約會(huì)網(wǎng)站28項(xiàng)目二統(tǒng)一建模語言UML任務(wù)1UML概述
任務(wù)2UML靜態(tài)建模
任務(wù)3UML動(dòng)態(tài)建模29任務(wù)1UML概述UML的概念UML的發(fā)展UML的主要內(nèi)容30UML與OO(面向?qū)ο螅㎡OUMLOOAOODDP…………
……
……
……UML是OO重要工具31UML的概念UML的概念UMLUnifiedModelingLanguage統(tǒng)一建模語言統(tǒng)一建模語言是一種通用的可視化建模語言,用于對(duì)軟件系統(tǒng)的制品進(jìn)行規(guī)范化、可視化處理,然后構(gòu)造它們并建立它們的文檔。UML的概念32UML的發(fā)展過程GradyBooch,JamesRumbaugh和IvarJacobson33圖與語言誰一級(jí)棒?這把刀,也不知道有多長、多寬、多重、由什么材質(zhì)鑄成,由誰鑄造?很普通,很平常,也許在我們手中!但,只要是他拿著,握著,這把刀就有了生命,有了氣息,追魂的刀,亦是救命的刀,就看他是如何賦予它使命的!該用圖用圖該代碼用代碼34UML的優(yōu)勢(shì)過去數(shù)十種面向?qū)ο蟮慕UZ言各自為戰(zhàn),而UML可以消除一些潛在差異,一統(tǒng)江湖通過統(tǒng)一語義和符號(hào)表示,提高面向?qū)ο蠹夹g(shù)使項(xiàng)目建立在一個(gè)成熟的標(biāo)準(zhǔn)建模語言基礎(chǔ)之上便于溝通和交流,統(tǒng)一的理解35UML主要內(nèi)容
精確的元模型定義
UML表示法UML表示符
UML可視化的圖形建模語言
UML提供了五類圖形UML的主要內(nèi)容
36任務(wù)2UML的概念模型UMLStructure構(gòu)造塊buildingblocks公共機(jī)制commonmechanisms構(gòu)架architecture基本UML建模元素、關(guān)系和圖達(dá)到特定目標(biāo)的公共UML方法系統(tǒng)架構(gòu)的UML視圖37UML基本的構(gòu)造塊Page38構(gòu)造塊buildingblocks事物things關(guān)系relationships圖diagrams建模元素本身把事物聯(lián)系在一起,關(guān)系說明兩個(gè)或多個(gè)事物時(shí)如何語義相關(guān)的UML模型的視圖,它們展現(xiàn)事物的集合,“講述關(guān)于軟件系統(tǒng)的故事”,是我們可視化系統(tǒng)將做什么(分析級(jí)圖)或者系統(tǒng)如何做(設(shè)計(jì)級(jí)圖)的方法38事物事物things結(jié)構(gòu)物件行為物件分組物件注解物件UML模型中的名詞,如類、接口、協(xié)作、用例、活動(dòng)類、組件、節(jié)點(diǎn)UML模型的動(dòng)詞,如交互、狀態(tài)機(jī)包,它用于把語義上相關(guān)的建模元素分組為內(nèi)聚的單元注解,它附加到模型以捕獲特殊信息,同黃色便箋很相像39關(guān)系關(guān)系relationships關(guān)聯(lián)association依賴dependency泛化generalization實(shí)現(xiàn)realization描述對(duì)象之間的一組鏈接事物的改變引起依賴物件的語義改變一個(gè)元素是另一個(gè)元素的特化,而且它可以取代更一般的元素類元之間的關(guān)系,一個(gè)類元說明一份契約,另一個(gè)類元保證實(shí)現(xiàn)該契約40圖圖diagrams類圖classdiagrams對(duì)象圖objectdiagrams構(gòu)件圖componentdiagrams部署圖deploymentdiagrams用例圖usecasediagrams順序圖sequence`diagrams協(xié)作圖collaborationdiagrams狀態(tài)圖statechartdiagrams活動(dòng)圖activitydiagrams靜態(tài)模型
(系統(tǒng)結(jié)構(gòu))動(dòng)態(tài)模型
(系統(tǒng)行為)41UML公共機(jī)制公共機(jī)制commonmechanisms規(guī)格說明specifications修飾adornments公共分類commondivisions擴(kuò)展機(jī)制extensibilitymechanisms42規(guī)格說明UML模型:使用圖和圖標(biāo)可視化模型各種建模元素的規(guī)格說明所組成規(guī)格說明模型元素的特征和語義的文本描述—模型的“肉”形成了承載模型的語義背板,賦予模型意義,各種圖僅僅是該背板的視圖或者可視化投影43修飾修飾:圖中建模元素上暴露的信息項(xiàng)任何UML圖僅是模型的視圖,只有在修飾增強(qiáng)了圖的整體清晰性和可讀性或者突出模型的某些重要特征時(shí),才應(yīng)該表示那些修飾Window44公共分類描述認(rèn)識(shí)世界的特殊方法類和實(shí)例類元:一類事物的抽象概念;如“銀行帳戶”實(shí)例:一類事物的特定實(shí)例;如“張三豐帳戶”接口和實(shí)現(xiàn)接口:說明事物行為的契約(做什么)實(shí)現(xiàn):事物是如何工作的特殊細(xì)節(jié)(如何做)45擴(kuò)展機(jī)制約束:允許對(duì)模型元素添加新的規(guī)則構(gòu)造型:基于已有的建模元素引入新的建模元素標(biāo)記值:允許為模型元素添加新的特性,是帶有相關(guān)值得關(guān)鍵字46JAVA開發(fā)平臺(tái)體系結(jié)構(gòu)構(gòu)架是一個(gè)系統(tǒng)的組織結(jié)構(gòu)包括:1.系統(tǒng)分解成的各個(gè)部分2.它們的連接性3.交互機(jī)制4.通知系統(tǒng)設(shè)計(jì)的向?qū)б?guī)則47JAVA開發(fā)平臺(tái)架構(gòu)構(gòu)架是一個(gè)系統(tǒng)的組織結(jié)構(gòu)包括:1.系統(tǒng)分解成的各個(gè)部分2.它們的連接性3.交互機(jī)制4.通知系統(tǒng)設(shè)計(jì)的向?qū)б?guī)則48架構(gòu)構(gòu)架是一個(gè)系統(tǒng)的組織結(jié)構(gòu)包括:1.系統(tǒng)分解成的各個(gè)部分2.它們的連接性3.交互機(jī)制4.通知系統(tǒng)設(shè)計(jì)的向?qū)б?guī)則494+1視圖50UML小結(jié)UML構(gòu)造塊公共機(jī)制架構(gòu)物件關(guān)系圖規(guī)格說明修飾公共分類擴(kuò)展機(jī)制用例視圖邏輯視圖進(jìn)程視圖實(shí)現(xiàn)視圖部署視圖結(jié)構(gòu)物件行為物件分組物件注解物件關(guān)聯(lián)依賴泛化實(shí)現(xiàn)類圖順序圖對(duì)象圖協(xié)作圖構(gòu)件圖狀態(tài)圖部署圖活動(dòng)圖用例圖51
用例圖
類圖
對(duì)象圖
包
使用類圖的建議
任務(wù)3UML靜態(tài)建模機(jī)制52用例圖Page53用例圖
參與者
參與者1參與者2用例1用例253用例“捕獲需求”用例圖從系統(tǒng)外部、從用戶角度出發(fā)描述系統(tǒng)的功能集用例圖所描述的系統(tǒng)功能依靠外部用戶或另一個(gè)系統(tǒng)激活,為用戶或另一個(gè)系統(tǒng)提供服務(wù)54用例表達(dá)“做什么”用例圖中可以包含若干個(gè)用例,用例表達(dá)了系統(tǒng)的功能用例只描述參與者和系統(tǒng)在交互過程中做些什么,并不描述怎么做。55用例圖關(guān)聯(lián)關(guān)系Page5656用例圖泛化關(guān)系Page5757用例圖泛化關(guān)系Page5858用例圖Page59
保險(xiǎn)銷售用例
59用例圖Page60
商品訂單用例
60用例圖Page61
教學(xué)管理用例
61用例用于什么情況?不知道什么情況不用用例如果沒有用到用例,閉門反省62實(shí)例:監(jiān)聽器用例63實(shí)例:監(jiān)聽器用例功能需求監(jiān)聽刪除操作,保證數(shù)據(jù)的安全。場(chǎng)景監(jiān)聽刪除操作刪除操作一旦執(zhí)行,立即被監(jiān)聽器捕獲到,進(jìn)而在執(zhí)行刪除操作前執(zhí)行自定義的函數(shù)體,即判斷實(shí)體有無undeletable標(biāo)簽,有則中斷刪除操作,無則正常刪除。步驟異常情況異常處理方法取得實(shí)體的類名ClassNotFoundException異常日志記錄,然后包裝成一個(gè)HibernateException,向上層拋出。獲取undeletable標(biāo)簽,判斷是否存在,是則執(zhí)行函數(shù)體,否則執(zhí)行父類函數(shù)體(onDelete)IllegalAccessException異常與InvocationTarget-Exception異常日志記錄,然后包裝成HibernateException,向上層拋出。64關(guān)系關(guān)聯(lián)關(guān)系;依賴關(guān)系;泛化關(guān)系;關(guān)系的擴(kuò)展
用例圖Page65<<include>><<extend>>參與者用例系統(tǒng)邊界關(guān)聯(lián)擴(kuò)展包含泛化注釋體注釋連接65類圖類名稱;屬性;操作關(guān)聯(lián)關(guān)系泛化依賴關(guān)系約束類圖66類圖類名稱;屬性;操作67類圖類圖68類圖類圖69類圖類圖泛化關(guān)聯(lián)70類圖類圖71類圖類圖72何時(shí)用類圖?類圖是面向?qū)ο蠓椒ǖ闹е绻麤]用到類圖??找電桿撞下,看是否用面向?qū)ο蠓椒?3用類圖的危險(xiǎn)!類圖用濫了,建狗屋畫了10頁類圖類圖沒分清粗細(xì)層次:概念類圖規(guī)約類圖實(shí)現(xiàn)類圖74鳥類圖75鳥類圖76鳥類圖77鳥類圖78實(shí)例:監(jiān)聽器類圖79使用類圖的建議不要試圖使用所有的符號(hào)根據(jù)項(xiàng)目開發(fā)的不同階段,用正確的觀點(diǎn)來畫類圖不要為每個(gè)事物都畫一個(gè)模型,應(yīng)該把精力放在關(guān)鍵的領(lǐng)域使用類圖的建議80對(duì)象圖
對(duì)象圖
表示在某一時(shí)刻類的具體實(shí)例和這些實(shí)例之間的具體連接關(guān)系
對(duì)象圖丁一家里的PC:計(jì)算機(jī)名稱:DELL446內(nèi)存:128丁一:作家姓名:丁一年齡:3081類與對(duì)象關(guān)系82類與對(duì)象關(guān)系對(duì)象圖使用的是與類圖相同的符號(hào)和關(guān)系
83類圖和對(duì)象圖的區(qū)別
84包包
一種分組機(jī)制,把各種各樣的模型元素通過內(nèi)在的語義連在一起成為一個(gè)整體就叫做包
包PackageABCAABC85包的關(guān)系引用使用86包--軟件比賽作品87架構(gòu)圖--包圖的變形88任務(wù)4UML動(dòng)態(tài)建模機(jī)制對(duì)象之間的交互狀態(tài)圖交互圖活動(dòng)圖四種圖的運(yùn)用89軟件模型與現(xiàn)實(shí)模型與現(xiàn)實(shí)要匹配90對(duì)象之間的交互簡(jiǎn)單消息同步消息異步消息同步且立即返回消息對(duì)象之間的交互91什么是狀態(tài)圖?狀態(tài)圖
用來建模對(duì)象是如何改變其狀態(tài)以響應(yīng)事件,展示對(duì)象從創(chuàng)建到刪除的生命周期狀態(tài)圖發(fā)票狀態(tài)圖92狀態(tài)圖狀態(tài)標(biāo)記符93狀態(tài)圖實(shí)例:打電話94狀態(tài)圖狀態(tài)和轉(zhuǎn)移事件狀態(tài)圖95狀態(tài)圖如果你太喜歡96狀態(tài)圖詳細(xì)狀態(tài)97狀態(tài)圖子狀態(tài)狀態(tài)圖98狀態(tài)圖子狀態(tài)狀態(tài)圖99狀態(tài)圖子狀態(tài)狀態(tài)圖100航班狀態(tài)101放松下102交互圖順序圖交互圖103交互圖順序圖交互圖104實(shí)例:監(jiān)聽器順序圖105電影動(dòng)畫-軟件模型電影大量使用3D動(dòng)畫106交互圖協(xié)作圖:交互關(guān)系和鏈接關(guān)系
鏈接;消息流;對(duì)象生命周期
107交互圖協(xié)作圖:交互關(guān)系和鏈接關(guān)系
108交互圖協(xié)作圖
鏈接;消息流;對(duì)象生命周期
交互圖109順序圖與協(xié)作圖相同點(diǎn)描述對(duì)象間的交互關(guān)系不同點(diǎn)順序圖:交互的時(shí)間順序協(xié)作圖:交互的靜態(tài)鏈接關(guān)系1103D電影動(dòng)態(tài)建模111活動(dòng)圖-狀態(tài)變種活動(dòng)和轉(zhuǎn)移泳道對(duì)象信號(hào)112活動(dòng)圖-狀態(tài)變種活動(dòng)和轉(zhuǎn)移泳道對(duì)象信號(hào)113活動(dòng)圖活動(dòng)和轉(zhuǎn)移泳道對(duì)象信號(hào)活動(dòng)圖114活動(dòng)圖活動(dòng)和轉(zhuǎn)移泳道對(duì)象信號(hào)115四種圖的運(yùn)用動(dòng)態(tài)建模目的、側(cè)重不同狀態(tài)圖只有極少關(guān)鍵對(duì)象順序圖、協(xié)作圖:?jiǎn)斡美袔讉€(gè)對(duì)象的行為順序圖突出順序,協(xié)作圖著重對(duì)象間鏈接關(guān)系四種圖的運(yùn)用116項(xiàng)目三項(xiàng)目市場(chǎng)調(diào)研任務(wù)1.系統(tǒng)的研發(fā)背景任務(wù)2.軟件開發(fā)計(jì)劃
117油畫創(chuàng)作背景波洛克《1948年第五號(hào)》1.4億$,最昂貴畫作這幅畫在一副優(yōu)雅的4x8英尺畫布上以畫家特有的滴濺潑灑的藝術(shù)手法來進(jìn)行風(fēng)暴式設(shè)計(jì)并撥開油彩。118任務(wù)1系統(tǒng)的研發(fā)背景追問:為什么呢?你好,這里是夢(mèng)幻家園售樓處,我是蔡小姐。我是張總,我嚴(yán)重警告你。為什么呢?試用期2月了,你有業(yè)績(jī)嗎?你賣出去過一套房子嗎?為什么呢?問你自己!哦……為什么呢?今天下班之前你要再不賣出一套房子去,你就給我卷鋪蓋走人!(電話掛了)為什么呢?119項(xiàng)目背景--鋼琴練奏師問:為什么開發(fā)這個(gè)軟件?答:傳統(tǒng)的音樂播放器功能單一用戶對(duì)音樂缺少參與感問:開發(fā)這個(gè)軟件目標(biāo)是什么?答:提高用戶對(duì)音樂的學(xué)習(xí)和娛樂參與創(chuàng)作音樂120項(xiàng)目背景--鋼琴練奏師問:為什么傳統(tǒng)音樂程序不好?答:傳統(tǒng)音樂程序功能單一,容易令人感到枯燥無味,沒有吸引力;傳統(tǒng)音樂程序強(qiáng)調(diào)單方向,用戶沒有參與感;傳統(tǒng)音樂程序設(shè)計(jì)不夠靈活,擴(kuò)展性差。121項(xiàng)目背景--鋼琴練奏師問:開發(fā)內(nèi)容包括什么?答:本項(xiàng)目從Android的聲音處理入手,實(shí)現(xiàn)音樂功能,根據(jù)用戶的興趣,提高用戶參與度。問:有什么應(yīng)用價(jià)值?答:本項(xiàng)目是一個(gè)能提高用戶參與和娛樂程序的項(xiàng)目,具有一定的使用價(jià)值。122追求的結(jié)果--鋼琴練奏師1.2項(xiàng)目背景傳統(tǒng)的音樂播放器功能單一,用戶對(duì)音樂缺少參與感,本項(xiàng)目志在提高用戶對(duì)音樂的學(xué)習(xí)和娛樂,參與創(chuàng)作音樂:(1)傳統(tǒng)音樂程序功能單一,容易令人感到枯燥無味,沒有吸引力;(2)傳統(tǒng)音樂程序強(qiáng)調(diào)單方向,用戶沒有參與感;(3)傳統(tǒng)音樂程序設(shè)計(jì)不夠靈活,擴(kuò)展性差。本項(xiàng)目從Android的聲音處理入手,實(shí)現(xiàn)音樂功能,根據(jù)用戶的興趣,提高用戶參與度。本項(xiàng)目是一個(gè)能提高用戶參與和娛樂程序的項(xiàng)目,具有一定的使用價(jià)值。123系統(tǒng)的研發(fā)背景1.圖書館系統(tǒng)的提出傳統(tǒng)的手工方式對(duì)圖書信息的管理已越來越不能適應(yīng)社會(huì)發(fā)展的需要,尤其是隨著計(jì)算機(jī)網(wǎng)絡(luò)和Internet的普及,運(yùn)用先進(jìn)的信息管理系統(tǒng)對(duì)信息進(jìn)行科學(xué)化和網(wǎng)絡(luò)化管理,已成為圖書信息管理系統(tǒng)發(fā)展的趨勢(shì)。124系統(tǒng)的研發(fā)背景2.國內(nèi)外研發(fā)現(xiàn)狀圖書管理系統(tǒng)的發(fā)展歷史國內(nèi)外應(yīng)用的圖書管理系統(tǒng)調(diào)研(1)開發(fā)方式(2)開發(fā)方法(3)結(jié)構(gòu)形式(4)開發(fā)平臺(tái)(5)系統(tǒng)使用的范圍(6)按照系統(tǒng)開發(fā)主體面向的對(duì)象
國內(nèi)圖書管理系統(tǒng)應(yīng)用情況125國內(nèi)Android開發(fā)行業(yè)市場(chǎng)現(xiàn)狀國內(nèi)的Android開發(fā)還是以應(yīng)用開發(fā)為主,主要分成3類:為企業(yè)開發(fā)應(yīng)用開發(fā)通用應(yīng)用(AndroidMarket或者其他AppMarket銷售)游戲開發(fā)(AndroidMarket或者其他AppMarket銷售)。126國內(nèi)Android開發(fā)行業(yè)市場(chǎng)現(xiàn)狀第一類開發(fā)者在較大的公司,為自有品牌或者其他品牌設(shè)計(jì)手機(jī)或者平板電腦的總體方案。根據(jù)需求對(duì)系統(tǒng)進(jìn)行定制外,為系統(tǒng)編寫定制的應(yīng)用。第二類開發(fā)者在創(chuàng)業(yè)型公司或者是獨(dú)立開發(fā)者,盈利方式主要2種:為國外公司外包開發(fā),或者通過Google的移動(dòng)廣告(AdMob)點(diǎn)擊分成。通過付費(fèi)下載的形式來盈利的,現(xiàn)在國內(nèi)鮮見成功者。第三類開發(fā)者和第二類開發(fā)者類似。開發(fā)者提交的應(yīng)用開發(fā)數(shù)目遠(yuǎn)超游戲開發(fā)。127任務(wù)2軟件開發(fā)計(jì)劃問題定義可行性研究可行否?否是終止項(xiàng)目計(jì)劃時(shí)期開發(fā)時(shí)期128任務(wù)2軟件開發(fā)計(jì)劃難于上青天!做項(xiàng)目計(jì)劃,如同給一個(gè)待出生的嬰兒寫傳記易如反掌!如果項(xiàng)目結(jié)束后再寫計(jì)劃,那就輕松多了,并且可以100%地準(zhǔn)確129軟件開發(fā)計(jì)劃1.問題定義目標(biāo)!目標(biāo)!目標(biāo)!。。。130軟件開發(fā)計(jì)劃1.問題定義(1)問題定義的任務(wù)開發(fā)目標(biāo)開發(fā)規(guī)模開發(fā)時(shí)間(2)問題定義的內(nèi)容文檔化以上內(nèi)定
131問題定義-案例⑴項(xiàng)目名稱:教材銷售系統(tǒng)⑵開發(fā)背景:人工發(fā)售教材手續(xù)繁瑣,且易出錯(cuò)。⑶項(xiàng)目目標(biāo):建立一個(gè)效率比人工操作提高2倍、差錯(cuò)率下降50%的系統(tǒng)。⑷項(xiàng)目范圍利用現(xiàn)有PC(不增加設(shè)備)軟件開發(fā)費(fèi)用不超過100萬元完成時(shí)間2019年10月31日⑸初步想法:在系統(tǒng)中增加采購功能、對(duì)缺書的統(tǒng)計(jì)⑹可行性研究的計(jì)劃進(jìn)行大約2周的可行性研究132項(xiàng)目可行性遇到挑戰(zhàn)(完成了,但超時(shí)或超支)成功
失敗28%46%26%基于23,000多個(gè)項(xiàng)目統(tǒng)計(jì)133軟件開發(fā)計(jì)劃可行性分析:決定“做還是不做”需求分析:決定“做什么,不做什么”。實(shí)際案例:機(jī)票代理人項(xiàng)目老板的干活134軟件開發(fā)計(jì)劃2.可行性分析(1)主要內(nèi)容
可行性分析四大要素:經(jīng)濟(jì)技術(shù)環(huán)境人
135可行性分析-案例1炫鈴項(xiàng)目的可行性無人無積累(技術(shù))環(huán)境(有市場(chǎng)前景)資金(1年)136可行性分析-案例2華為任正非早期冒險(xiǎn):人不夠(一邊開發(fā),一邊找人)無積累(無技術(shù)--紅寶書)資金(前期約1年,后欠工資)環(huán)境(有市場(chǎng),政策無支持)一拍腦袋:“豁出去,干!”137可行性分析-案例3聯(lián)想集團(tuán)柳傳志沒錢賺的事我們不干;有錢賺但投不起錢的事不干;有錢賺也投得起錢但沒有可靠的人選,這樣的事也不干。138成本收益分析成本:(1)辦公室房租。(2)辦公用品,如桌、椅、書柜、電器、空調(diào)。(3)計(jì)算機(jī)、打印機(jī)、網(wǎng)絡(luò)等硬件設(shè)備。(4)電話、傳真等通訊設(shè)備以及通訊費(fèi)用。(5)資料費(fèi)。(6)辦公消耗,如水電費(fèi)、打印復(fù)印費(fèi)等。(7)軟件開發(fā)人員與行政人員工資。(8)系統(tǒng)軟件費(fèi)用,如數(shù)據(jù)庫、開發(fā)工具等。(9)市場(chǎng)調(diào)查、可行性分析、需求分析的費(fèi)用。(10)公司人員培訓(xùn)費(fèi)用。(11)產(chǎn)品宣傳費(fèi)用。(12)如果客戶攻關(guān)費(fèi),吃喝玩樂的費(fèi)用。(13)管理費(fèi)。每戳一個(gè)公章都要化一把鈔票。收入:項(xiàng)目收入(合同)人在錢沒了139技術(shù)可行性技術(shù)可行性可以表述為:做得了嗎?做得好嗎?做得快嗎?140社會(huì)環(huán)境的可行性社會(huì)環(huán)境的可行性:市場(chǎng)未成熟的市場(chǎng)成熟的市場(chǎng)將消亡的市場(chǎng)政策例:民航收費(fèi)電信收費(fèi)141人才可行性有人嗎?手上的人挖掘一下夠用嗎?要多少才夠成本超支可找嗎?挖得到給得起¥21世紀(jì)人才最貴142軟件開發(fā)計(jì)劃2.可行性分析(2)可行性分析的主要步驟確定目標(biāo)進(jìn)行系統(tǒng)調(diào)查列出可能的技術(shù)方案技術(shù)先進(jìn)性分析經(jīng)濟(jì)效益分析綜合評(píng)價(jià)優(yōu)選可取方案并寫出可行性分析報(bào)告
143軟件開發(fā)計(jì)劃(3)可行性分析的評(píng)價(jià)原則效益性原則經(jīng)濟(jì)性原則可靠性原則
可比性原則144軟件開發(fā)計(jì)劃3.可行性分析報(bào)告可行性分析報(bào)告的一般格式可行性分析報(bào)告通常包括封面和內(nèi)容兩個(gè)部分可行性分析報(bào)告案例--圖書管理系統(tǒng)145軟件開發(fā)計(jì)劃4.系統(tǒng)的開發(fā)計(jì)劃開發(fā)計(jì)劃主要任務(wù)
項(xiàng)目開發(fā)計(jì)劃編寫提示--圖書館管理
蘋果飛船總部計(jì)劃1.3萬人146小結(jié)案例:圖書館管理系統(tǒng)研發(fā)背景問題定義可行性分析主要任務(wù)基本的步驟分析報(bào)告開發(fā)的計(jì)劃主要任務(wù)計(jì)劃的制訂147項(xiàng)目四軟件項(xiàng)目需求分析148項(xiàng)目四軟件項(xiàng)目需求分析任務(wù)1.調(diào)查系統(tǒng)的需求任務(wù)2.模型任務(wù)3.事件任務(wù)4.事物任務(wù)5.實(shí)體—聯(lián)系圖任務(wù)6.類圖陷阱:武器的進(jìn)步149任務(wù)1.調(diào)查系統(tǒng)的需求1.調(diào)查系統(tǒng)的需求功能需求和技術(shù)需求系統(tǒng)相關(guān)者建立系統(tǒng)需求原型150需求分析的困難!(1)客戶說不清楚需求;(2)需求自身經(jīng)常變動(dòng);(3)分析人員或客戶理解有誤。151需求分析的困難!(1)客戶說不清楚需求例:買鞋子腳大小形狀152需求分析的困難!(2)需求自身經(jīng)常變動(dòng)沒有一個(gè)軟件的需求改動(dòng)少于三次唯一改動(dòng)需求兩次的在去第三次改動(dòng)需求的路上去世了例:時(shí)裝153需求分析的困難!(3)分析人員或客戶理解有誤
154調(diào)查系統(tǒng)的需求1.功能需求和技術(shù)需求功能需求系統(tǒng)必須完成的活動(dòng),是系統(tǒng)將要投入的業(yè)務(wù)應(yīng)用技術(shù)需求和企業(yè)的環(huán)境、硬件和軟件有關(guān)的所有可操作目標(biāo)
155調(diào)查系統(tǒng)的需求樹上有10只鳥,打了1只,還有幾只?“是無聲手槍或別的無聲的槍嗎?”
“不是。”
“槍聲有多大?”
“80-100分貝。”
“那就是說會(huì)震的耳朵疼?”
“是。”
“在這個(gè)城市里打鳥犯不犯法?”
“不犯。”
“您確定那只鳥真的被打死啦?”
“確定。”偶已經(jīng)不耐煩了“拜托,你告訴我還剩幾只就行了,ok”
“ok,樹上的鳥里有沒有聾子?”
“沒有。”
“有沒有關(guān)在籠子里的?”
“沒有。”
“邊上還有沒有其他的樹,樹上還有沒有其他鳥?”
“沒有。”“有沒有殘疾的或餓的飛不動(dòng)的鳥?”
“沒有。”
“算不算懷孕肚子里的小鳥?”
“不算。”
“打鳥的人眼有沒有花?保證是十只?”
“沒有花,就十只。”偶已經(jīng)滿腦門是汗,且下課鈴響,但他繼續(xù)問,
“有沒有傻的不怕死的?”
“都怕死。”
“會(huì)不會(huì)一槍打死兩只?”
“不會(huì)。”
“所有的鳥都可以自由活動(dòng)嗎?”
“完全可以。”
學(xué)生滿懷信心的說,“打死的鳥要是掛在樹上沒掉下來,那么就剩一只,如果掉下來,就一只不剩。”
156調(diào)查系統(tǒng)的需求2.系統(tǒng)相關(guān)者用戶:實(shí)際使用系統(tǒng)處理日常事務(wù)的人客戶:那些購買和擁有系統(tǒng)的人技術(shù)人員:確保系統(tǒng)運(yùn)行的人外部實(shí)體:例如公司的顧客比爾-蓋茨:“我家沒有任何一款蘋果產(chǎn)品,我們?nèi)乙矎膩聿怀蕴O果。”
喬布斯:“我家一個(gè)窗戶都沒有。”
157調(diào)查系統(tǒng)的需求需求調(diào)查方法:直接與客戶交談足球評(píng)論員“大嘴”侃出需求有些需求客戶講不清楚請(qǐng)教行家“聽君一席言,勝讀十年書。”客戶與分析人員想都沒有想過分析同類軟件,優(yōu)點(diǎn)、缺點(diǎn)坐享其成巴喬在前有追兵,后有堵截的情況下帶球沖入禁區(qū)...AC米蘭隊(duì)目前以1:3領(lǐng)先...球員30公里外一腳遠(yuǎn)射!158調(diào)查系統(tǒng)的需求3.建立系統(tǒng)需求原型(1)確定現(xiàn)有系統(tǒng)的物理過程和活動(dòng)(2)從現(xiàn)有物理過程中提取出業(yè)務(wù)邏輯功能(3)為將在新系統(tǒng)中使用的方法開發(fā)出業(yè)務(wù)邏輯功能(刪)(4)定義新系統(tǒng)的物理處理需求(物理改為業(yè)務(wù))159任務(wù)2模型2.模型模型的作用及類型邏輯模型和物理模型例:法拉利牌坦克酷性能突出,流線型設(shè)計(jì)符合年輕人愛好戰(zhàn)斗力很差160模型1.模型的作用及類型(1)模型的作用提取系統(tǒng)需求信息系統(tǒng)分析員整理思路系統(tǒng)的分析和集成記憶和把握相關(guān)細(xì)節(jié)系統(tǒng)開發(fā)小組間進(jìn)行交流為維護(hù)和升級(jí)提供文檔參考大爆炸宇宙模型161模型1.模型的作用及類型(2)模型的類型
數(shù)學(xué)模型描述系統(tǒng)技術(shù)方面的一系列數(shù)學(xué)公式如:利潤=收入-成本描述模型描述系統(tǒng)某些方面的敘述性的備忘錄、報(bào)表、列表、文字等如,監(jiān)聽刪除操作:刪除操作一旦執(zhí)行,立即被監(jiān)聽器捕獲到,進(jìn)而在執(zhí)行刪除操作前執(zhí)行自定義的函數(shù)體,即判斷實(shí)體有無undeletable標(biāo)簽,有則中斷刪除操作,無則正常刪除。圖形模型描述系統(tǒng)的圖表或系統(tǒng)某些方面的示意性表示162模型2.邏輯模型和物理模型(1)邏輯模型在系統(tǒng)分析階段所建立的模型詳細(xì)定義了系統(tǒng)需求但并沒有局限于某一具體技術(shù)常用邏輯模型用例圖類圖順序圖狀態(tài)圖/協(xié)作圖注意:面向?qū)ο笈c面向過程163模型2.邏輯模型和物理模型(2)物理模型在系統(tǒng)設(shè)計(jì)階段建立的模型顯示了如何使用具體技術(shù)來實(shí)現(xiàn)系統(tǒng)的某些方面常用模型界面報(bào)表數(shù)據(jù)庫結(jié)構(gòu)流程網(wǎng)絡(luò)分布164任務(wù)3事件3.事件事件的概念和類型事件定義圖書館管理系統(tǒng)中的事件黑屏事件165事件1.事件的概念和類型(1)外部事件(2)臨時(shí)事件(3)狀態(tài)事件
2.事件定義(1)區(qū)分事件和觸發(fā)事件的條件以及系統(tǒng)響應(yīng)(2)跟蹤事務(wù)處理的生命周期(3)暫不考慮技術(shù)依賴事件和系統(tǒng)控制
166事件3.圖書館管理系統(tǒng)中的事件書目查詢帳戶查詢及更改預(yù)約/退訂圖書借/還書逾期罰款丟失賠償催還圖書借書排行167事件3.圖書館管理系統(tǒng)中的事件書目查詢借/還書…事件觸發(fā)器來源活動(dòng)/用例響應(yīng)目的地使用者查詢書目信息書目查詢查詢者查詢所需書目查詢結(jié)果查詢者168《金剛》-3D軟件建模2.07億美元3500臺(tái)計(jì)算機(jī)“金剛”完全電腦特效電影技術(shù)進(jìn)入電腦時(shí)代169任務(wù)4事物4.事物1.事物的概念和類型2.事物間的關(guān)系3.事物的屬性4.數(shù)據(jù)實(shí)體和對(duì)象“人要么是天才,要么是笨蛋!”
“你想一輩子賣糖水,還是改變世界?”
“我們從不以偷竊別人的偉大作品為恥!”
“軟件就是用戶體驗(yàn)。”170事物1.事物的概念和類型171事物1.事物的概念和類型特征驅(qū)動(dòng)開發(fā)(FDD)四色建模
172事物2.事物間的關(guān)系3.事物的屬性173事物4.數(shù)據(jù)實(shí)體和對(duì)象數(shù)據(jù)實(shí)體與過程是分離的對(duì)象將數(shù)據(jù)和處理數(shù)據(jù)的方法封裝成一個(gè)單元要讓某個(gè)對(duì)象執(zhí)行
某種操作,可以讓
另外一個(gè)對(duì)象給該
對(duì)象發(fā)送一個(gè)消息174任務(wù)5實(shí)體—聯(lián)系圖數(shù)據(jù)存儲(chǔ)需求結(jié)構(gòu)化分析方法把重點(diǎn)集中在系統(tǒng)的數(shù)據(jù)存儲(chǔ)需求上數(shù)據(jù)存儲(chǔ)需求:數(shù)據(jù)實(shí)體數(shù)據(jù)實(shí)體的屬性實(shí)體間的關(guān)系175任務(wù)5實(shí)體—聯(lián)系圖數(shù)據(jù)存儲(chǔ)需求結(jié)構(gòu)化分析方法--數(shù)據(jù)流圖(DFD)176實(shí)體—聯(lián)系圖(ERD)用來定義數(shù)據(jù)存儲(chǔ)需求的模型任務(wù)5實(shí)體—聯(lián)系圖177任務(wù)5實(shí)體—聯(lián)系圖只能一個(gè)(強(qiáng)制)0或多個(gè)(可選)1或多個(gè)(強(qiáng)制)0或1個(gè)(可選)實(shí)體之間關(guān)系的基數(shù)符號(hào)178任務(wù)5實(shí)體—聯(lián)系圖179任務(wù)5實(shí)體—聯(lián)系圖帶有屬性的擴(kuò)展ERD圖*表示標(biāo)識(shí)符或關(guān)鍵字180任務(wù)6類圖6.類圖用面向?qū)ο蟮姆椒ǚ治鍪挛镱悎D的符號(hào)
建模的目標(biāo)
需求分析規(guī)格說明書編寫提綱181類圖1.用面向?qū)ο蟮姆椒ǚ治鍪挛锓诸惙治龇椒ǎǜ爬ǎ唧w)繼承機(jī)動(dòng)車輛小汽車卡車拖拉機(jī)轎車跑車體育用車機(jī)動(dòng)車輛的泛化/具體層次圖(繼承關(guān)系)182類圖1.用面向?qū)ο蟮姆椒ǚ治鍪挛锓诸惙治龇椒ǎǜ爬ǎ唧w)繼承訂單電話訂單網(wǎng)上訂單郵件訂單183類圖1.用面向?qū)ο蟮姆椒ǚ治鍪挛镎w—局部分析方法聚合合成184類圖2.類圖的符號(hào)基于統(tǒng)一建模語言(UML)面向?qū)ο笙到y(tǒng)開發(fā)中建立模型的實(shí)際標(biāo)準(zhǔn)
185類圖2.類圖的符號(hào)基于統(tǒng)一建模語言(UML)面向?qū)ο笙到y(tǒng)開發(fā)中建立模型的實(shí)際標(biāo)準(zhǔn)
186類圖3.建模的目標(biāo)
結(jié)構(gòu)化方法:--錯(cuò)誤的!事件表->數(shù)據(jù)流圖(DFD)面向?qū)ο蠓椒ǎ菏录恚?gt;用例圖->類圖->順序圖/狀態(tài)圖187類圖3.建模的目標(biāo)
結(jié)構(gòu)化方法--錯(cuò)誤的!面向?qū)ο蠓椒?88需求分析規(guī)格說明書
僅僅建模還是不夠的需求分析成果->需求分析說明書需求分析規(guī)格說明書提綱1.引言2.任務(wù)概述3.需求規(guī)定4.運(yùn)行環(huán)境設(shè)定5.縮寫詞表6.參考文獻(xiàn)189送餐管理系統(tǒng)--需求分析過程分析員:“在你們打理生意時(shí),哪些事情促使你們決定采用計(jì)算機(jī)管理?告訴我通常這些業(yè)務(wù)是如何進(jìn)行的。”客戶:“是這樣,當(dāng)客戶打電話訂餐時(shí),我需要把它記下來,然后通知給相應(yīng)的餐館。我需要決定派哪一個(gè)司機(jī)去送貨,因此要司機(jī)打電話告訴我他們什么時(shí)間有空。有時(shí),客戶會(huì)又打電話更改訂單內(nèi)容,因此我必須找到原始訂單,然后通知餐館更改。”分析員:“好的,那你們又怎么管理現(xiàn)金呢?”客戶:“司機(jī)取飯菜時(shí)會(huì)從餐館直接拿到賬單的副本,賬單和我們的計(jì)算應(yīng)該是一致的,然后司機(jī)送貨時(shí)收取相應(yīng)的現(xiàn)金并加上服務(wù)費(fèi)。在下班時(shí),司機(jī)報(bào)賬,我們把司機(jī)收到的現(xiàn)金匯總起來,和我們的記錄進(jìn)行比較,所有的司機(jī)都交完賬后,我們需要開張銀行存款單,存入當(dāng)天的現(xiàn)金總收入。每周末,我們按提前約定的批發(fā)價(jià)來計(jì)算欠餐館多少錢,把結(jié)算單和支票寄給他們。”190送餐管理系統(tǒng)--需求分析過程分析員:“那你們還想從這個(gè)系統(tǒng)中獲取別的信息嗎?”客戶:“如果每周末能統(tǒng)計(jì)出每個(gè)餐館有多少訂單、城里每個(gè)區(qū)有多少訂單等信息就更好了。這能幫助我們制定廣告策略及與餐館的合同,而且我們還需要每月財(cái)務(wù)狀況統(tǒng)計(jì)結(jié)果。”在客戶說話時(shí),分析員記下了幾個(gè)要點(diǎn),畫了幾張草圖。之后,他花了一些時(shí)間仔細(xì)考慮,總結(jié)出“送餐管理”的需求狀況。191送餐管理系統(tǒng)--需求分析過程1.在發(fā)生如下事件時(shí),系統(tǒng)
可以進(jìn)行處理:客戶打電話下訂餐訂單客戶打電話修改訂單送貨司機(jī)匯報(bào)工作情況送貨司機(jī)上交一天的收入2.在特定時(shí)間內(nèi)系統(tǒng)產(chǎn)生所
需信息:生成日結(jié)算存款單生成周末餐館支付帳單生成周銷售報(bào)表生成月財(cái)務(wù)報(bào)表3.需要建立業(yè)務(wù)實(shí)體:餐館菜單客戶訂單訂單支付帳單司機(jī)(送餐員)192送餐管理系統(tǒng)--用例圖193送餐管理系統(tǒng)--類圖194送餐管理系統(tǒng)--順序圖195小結(jié)面向?qū)ο蠓治龇椒ǎㄕ莆眨┯美龍D類圖順序圖狀態(tài)圖/協(xié)作圖(可選)結(jié)構(gòu)化分析方法(了解)實(shí)體-聯(lián)系圖數(shù)據(jù)流圖196項(xiàng)目五軟件項(xiàng)目總體設(shè)計(jì)197軟件項(xiàng)目總體設(shè)計(jì)1.總體設(shè)計(jì)基本內(nèi)容2.結(jié)構(gòu)化軟件設(shè)計(jì)3.面向?qū)ο筌浖O(shè)計(jì)198任務(wù)1軟件總體設(shè)計(jì)1.總體設(shè)計(jì)的基本內(nèi)容軟件設(shè)計(jì)定義總體設(shè)計(jì)的目標(biāo)與步驟總體設(shè)計(jì)的基本任務(wù)總體設(shè)計(jì)的準(zhǔn)則設(shè)計(jì)編碼測(cè)試維護(hù)測(cè)試編碼維護(hù)有軟件設(shè)計(jì)
沒有軟件設(shè)計(jì)199軟件設(shè)計(jì)分解過程總體設(shè)計(jì)詳細(xì)設(shè)計(jì)200總體設(shè)計(jì)的基本內(nèi)容1.軟件設(shè)計(jì)設(shè)計(jì)解決從需求(做什么?)到(怎么做?)概要設(shè)計(jì)(總體設(shè)計(jì))將軟件需求轉(zhuǎn)化為軟件體系架構(gòu)確定系統(tǒng)級(jí)接口全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式詳細(xì)設(shè)計(jì)確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)201軟件設(shè)計(jì)總體設(shè)計(jì)體系結(jié)構(gòu)就如同人的骨架如骨架是猴子,無論怎樣喂養(yǎng)和美容,始終是猴子,成不了人。模塊(子系統(tǒng))就如同人的器官,有特定的功能最出色的子系統(tǒng)是手,只有幾種動(dòng)作,卻能做無限多的事情。最糟糕的模塊設(shè)計(jì)之一是嘴巴,混合毫無相干的功能(如吃飯、說話、親吻)202軟件設(shè)計(jì)詳細(xì)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)與算法如同人的血脈和神經(jīng)(發(fā)揮功能)聾子天生就是啞巴(關(guān)系)人體的數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)十分神奇也十分可笑用戶界面如同人的外表,讓人一見鐘情(或一見嘔吐)Unix系統(tǒng)是健壯的漢子和婦人Windows系統(tǒng)是嫵媚的小白臉和狐貍精化妝可以獲得更好的界面203總體設(shè)計(jì)的基本內(nèi)容1.總體設(shè)計(jì)的目標(biāo)設(shè)計(jì)合理的軟件架構(gòu)分解為合理的模塊(包)2.總體設(shè)計(jì)的步驟:(1)用戶需要->系統(tǒng)邏輯模型(2)系統(tǒng)分解成一組模塊(包)(3)確定模塊的功能滿足需求(4)形成總體設(shè)計(jì)文檔204總體設(shè)計(jì)的基本任務(wù)1.設(shè)計(jì)軟件結(jié)構(gòu)2.數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)(一般在詳細(xì)設(shè)計(jì))3.編寫總體設(shè)計(jì)文檔4.評(píng)審
205總體設(shè)計(jì)的基本內(nèi)容1.軟件設(shè)計(jì)軟件架構(gòu)是總體設(shè)計(jì)的核心內(nèi)容206體系結(jié)構(gòu)是本質(zhì)的軟件系統(tǒng)中最本質(zhì)的東西對(duì)復(fù)雜事物的一種抽象在一定的時(shí)間內(nèi)保持穩(wěn)定常見層次結(jié)構(gòu)和WEB結(jié)構(gòu)207總體設(shè)計(jì)--層次結(jié)構(gòu)為什么分層次?系統(tǒng)太復(fù)雜無法一口氣干完與人的認(rèn)識(shí)符合208總體設(shè)計(jì)-體系結(jié)構(gòu)JAVA開發(fā)平臺(tái)體系結(jié)構(gòu)209總體設(shè)計(jì)--網(wǎng)絡(luò)結(jié)構(gòu)JAVA開發(fā)平臺(tái)網(wǎng)絡(luò)結(jié)構(gòu)210總體設(shè)計(jì)--系統(tǒng)架構(gòu)JAVA開發(fā)平臺(tái)架構(gòu)211總體設(shè)計(jì)--模塊功能劃分體系結(jié)構(gòu)-(決定)
各模塊功能從功能上劃分模塊模塊化設(shè)計(jì)原則保持“功能獨(dú)立”抽象(事物本質(zhì))信息隱藏212總體設(shè)計(jì)--模塊功能劃分保持“功能獨(dú)立”降低開發(fā)、測(cè)試、維護(hù)等階段的代價(jià)溝通成本最低例:美國獨(dú)立戰(zhàn)爭(zhēng)(獨(dú)立國家)213總體設(shè)計(jì)--模塊功能劃分抽象(事物本質(zhì))抽象是設(shè)計(jì)的本質(zhì)例:微軟和聯(lián)通有仇?國際碼,“啊”:B0A1214總體設(shè)計(jì)--模塊功能劃分信息隱藏模塊只提供對(duì)外的接口模塊內(nèi)部不對(duì)外開放好事不出門,壞事傳千里!(克林頓)老師:要是坐在后排聊天的同學(xué)能象中間打牌的同學(xué)那么安靜,就不會(huì)影響到前排睡覺的同學(xué)。215總體設(shè)計(jì)--UI模塊JAVA開發(fā)平臺(tái)UI模塊216總體設(shè)計(jì)--DAO模塊JAVA開發(fā)平臺(tái)DAO模塊217總體設(shè)計(jì)--DAO模塊JAVA開發(fā)平臺(tái)MVC模塊218總體設(shè)計(jì)--DAO模塊JAVA開發(fā)平臺(tái)Model模塊219總體設(shè)計(jì)的基本內(nèi)容3 系統(tǒng)架構(gòu)
3.1 系統(tǒng)總體架構(gòu)3.1.1 UI構(gòu)件 3.1.2 DAO構(gòu)件 3.1.3 MVC構(gòu)件 3.1.4 MODEL構(gòu)件 總體設(shè)計(jì)的說明1 前言 1.1 目標(biāo) 1.2 系統(tǒng)設(shè)計(jì)特點(diǎn)1.3 系統(tǒng)體系結(jié)構(gòu)2 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu) 2.1 系統(tǒng)網(wǎng)絡(luò)拓?fù)?.2 軟硬件要求 220總體設(shè)計(jì)的準(zhǔn)則Davis的設(shè)計(jì)準(zhǔn)則(1)設(shè)計(jì)考慮各種可選方案,根據(jù)需求/資源/概念決定(2)設(shè)計(jì)應(yīng)可以跟蹤需求分析模型(3)設(shè)計(jì)資源都是有限的(4)設(shè)計(jì)應(yīng)體現(xiàn)統(tǒng)一的風(fēng)格(5)設(shè)計(jì)的結(jié)構(gòu)應(yīng)盡可能滿足變更的要求(6)設(shè)計(jì)的結(jié)構(gòu)應(yīng)能處理異常(7)設(shè)計(jì)不是編碼,編碼也不是設(shè)計(jì)(8)設(shè)計(jì)的質(zhì)量評(píng)估應(yīng)在設(shè)計(jì)的過程中進(jìn)行(9)設(shè)計(jì)評(píng)審應(yīng)關(guān)注概念性的錯(cuò)誤,而不是細(xì)節(jié)程序猿
221任務(wù)2結(jié)構(gòu)化的軟件設(shè)計(jì)1.結(jié)構(gòu)化設(shè)計(jì)的基本概念(1)模塊
(2)模塊的獨(dú)立性(3)抽象(4)信息隱蔽冷兵器222結(jié)構(gòu)化的軟件設(shè)計(jì)2.結(jié)構(gòu)化的設(shè)計(jì)方法(1)功能模塊劃分設(shè)計(jì)(2)面向數(shù)據(jù)流設(shè)計(jì)(3)輸入/輸出設(shè)計(jì)223模塊劃分的設(shè)計(jì)功能模塊劃分設(shè)計(jì)系統(tǒng)管理圖書管理讀者管理224面向數(shù)據(jù)流設(shè)計(jì)變換型數(shù)據(jù)流設(shè)計(jì)225面向數(shù)據(jù)流設(shè)計(jì)事務(wù)型數(shù)據(jù)流226輸入/輸出設(shè)計(jì)輸入/處理/輸出設(shè)計(jì)227結(jié)構(gòu)化的軟件設(shè)計(jì)3.運(yùn)行環(huán)境設(shè)計(jì)
硬件平臺(tái)CPU硬盤內(nèi)存軟件平臺(tái)操作系統(tǒng)數(shù)據(jù)庫228任務(wù)3面向?qū)ο笤O(shè)計(jì)面向?qū)ο蟮牡脑O(shè)計(jì)方法系統(tǒng)行為?圖書管理系統(tǒng)的用例圖對(duì)象交互?圖書管理系統(tǒng)的交互圖對(duì)象行為?圖書管理系統(tǒng)的狀態(tài)圖229
面向?qū)ο蟮能浖O(shè)計(jì)230
面向?qū)ο蟮能浖O(shè)計(jì)是一種新的程序設(shè)計(jì)范型是一種運(yùn)用對(duì)象、類、繼承、封裝、聚合、消息傳送、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法231面向?qū)ο蠓椒ㄖ饕枷霃默F(xiàn)實(shí)世界中存在的事物出發(fā)建立軟件系統(tǒng)以問題域(現(xiàn)實(shí)世界)中的事物為中心來思考問題、認(rèn)識(shí)問題根據(jù)這些事物的本質(zhì)特征,抽象地表示為系統(tǒng)中的對(duì)象使系統(tǒng)直接映射問題域,保持問題域中事物及其相互關(guān)系的本來面貌充分運(yùn)用人類日常的思維方式232面向?qū)ο蠓椒ㄖ饕枷霃默F(xiàn)實(shí)世界中存在的事物出發(fā)建立軟件系統(tǒng)充分運(yùn)用人類日常的思維方式運(yùn)用人類在日常的邏輯思維中采用的思想方法與原則,例如抽象、分類、繼承、聚合、封裝等軟件開發(fā)者能更有效地思考問題,其他人能看得懂的方式把自己的認(rèn)識(shí)表達(dá)出來233面向?qū)ο箝_發(fā)方法的開發(fā)過程面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計(jì)面向?qū)ο缶幊?34軟件開發(fā)全過程運(yùn)用面向?qū)ο蠓椒嫦驅(qū)ο笳Z言正取得令人振奮的發(fā)展編程并不是軟件開發(fā)問題的主要根源需求分析與設(shè)計(jì)問題更為普遍并且更值得解決適合于解決分析與設(shè)計(jì)期間的復(fù)雜性實(shí)現(xiàn)分析與設(shè)計(jì)的復(fù)用在軟件生命周期采用一種全新的方法——《軟件工程百科全書》235面向?qū)ο蠓椒▽?duì)象:屬性+服務(wù)(獨(dú)立的系統(tǒng)單位)盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)售報(bào)亭屬性服務(wù)報(bào)刊A報(bào)刊B…錢箱報(bào)刊零售款貨清點(diǎn)顧客236面向過程與面向?qū)ο蟮膮^(qū)別數(shù)據(jù)結(jié)構(gòu)+算法=程序設(shè)計(jì)以對(duì)象為中心組織數(shù)據(jù)與操作數(shù)據(jù)對(duì)象的屬性操作對(duì)象的服務(wù)類型與變量類與對(duì)象實(shí)例函數(shù)(過程)調(diào)用消息傳送類型與子類型一般類與特殊類,繼承構(gòu)造類型整體-部分結(jié)構(gòu),聚合指針關(guān)聯(lián)237
面向?qū)ο蟮能浖O(shè)計(jì)1.面向?qū)ο蟮牡脑O(shè)計(jì)方法設(shè)計(jì)特點(diǎn):抽象性信息隱藏性功能獨(dú)立性模塊化設(shè)計(jì)步驟:識(shí)別對(duì)象確定屬性定義操作確定對(duì)象之間的通信完成對(duì)象定義2381識(shí)別對(duì)象—例子家庭安全系統(tǒng)--潛在的對(duì)象房主傳感器安全系統(tǒng)控制板監(jiān)控服務(wù)……….2391識(shí)別對(duì)象對(duì)系統(tǒng)進(jìn)行描述對(duì)描述進(jìn)行語法分析找出名詞或者名詞短語根據(jù)這些名詞或者名詞短語確定對(duì)象對(duì)象可以是240關(guān)鍵抽象在線拍賣拍賣和拍賣物項(xiàng)信用卡競(jìng)拍
分類
用戶帳戶和未付款項(xiàng)關(guān)鍵抽象業(yè)務(wù)實(shí)體
實(shí)體之間的關(guān)系例:一個(gè)拍賣就含多個(gè)拍賣物項(xiàng)241是系統(tǒng)范圍上的重要概念主要從需求中得到(例如詞匯表、業(yè)務(wù)規(guī)約以及用例模型)會(huì)涉及到業(yè)務(wù)領(lǐng)域知識(shí)表現(xiàn)為系統(tǒng)的實(shí)體關(guān)鍵抽象強(qiáng)調(diào)與系統(tǒng)設(shè)計(jì)有關(guān)的實(shí)體排除系統(tǒng)外部多余的實(shí)體最后,關(guān)鍵抽象成為分析模型中的類
2422確定屬性找出對(duì)象的一組有意義的屬性研究系統(tǒng)描述,選擇與對(duì)象相關(guān)聯(lián)的信息例:“家庭安全系統(tǒng)”的屬性傳感器信息=傳感器類型+傳感器編號(hào)+警報(bào)臨界值報(bào)警響應(yīng)信息=延遲時(shí)間+電話號(hào)碼+警報(bào)類型起動(dòng)/撤銷信息=主口令+允許嘗試的次數(shù)+暫時(shí)口令標(biāo)識(shí)信息=系統(tǒng)表示號(hào)+驗(yàn)證電話號(hào)碼+系統(tǒng)狀態(tài)2433定義操作研究系統(tǒng)的需求描述進(jìn)行語法分析,隔離出動(dòng)詞選擇與對(duì)象相聯(lián)關(guān)的動(dòng)詞(操作)選擇屬于對(duì)象的操作(方法)
例:“家庭安全系統(tǒng)”“傳感器被賦予一個(gè)編號(hào)和類型”“設(shè)置一個(gè)主口令使系統(tǒng)處于警報(bào)狀態(tài)或警報(bào)解除狀態(tài)”。2444確定對(duì)象之間的通信僅定義對(duì)象不夠?qū)ο笾g必須建立一種通信機(jī)制,即消息作用:要求一個(gè)對(duì)象執(zhí)行某個(gè)操作就要向它發(fā)送一個(gè)消息告訴對(duì)象做什么245完成對(duì)象定義SecuritySystemIDVerificationphonenumberSystemstatusSystemtableSensortypeSensornumberAlarmthresholdAlarmdelaytimeTelephonenumberAlarmtypeMasterpasswordTemporarypassword
ProgramDisplayResetQueryModifyCall
類名屬性操作246
面向?qū)ο蟮能浖O(shè)計(jì)247
面向?qū)ο蟮能浖O(shè)計(jì)2.系統(tǒng)行為?圖書管理系統(tǒng)的用例圖(1)用例、參與者以及場(chǎng)景(2)用例和參與者關(guān)系以及用例之間的關(guān)系關(guān)聯(lián)關(guān)系248
面向?qū)ο蟮能浖O(shè)計(jì)2.系統(tǒng)行為?圖書管理系統(tǒng)的用例圖(1)用例、參與者以及場(chǎng)景(2)用例和參與者關(guān)系以及用例之間的關(guān)系包含關(guān)系一個(gè)用例包含另一個(gè)用例的行為249
面向?qū)ο蟮能浖O(shè)計(jì)2.系統(tǒng)行為?圖書管理系統(tǒng)的用例圖(1)用例、參與者以及場(chǎng)景(2)用例和參與者關(guān)系以及用例之間的關(guān)系擴(kuò)展關(guān)系基礎(chǔ)用例的增量擴(kuò)展250
面向?qū)ο蟮能浖O(shè)計(jì)2.系統(tǒng)行為?圖書管理系統(tǒng)的用例圖(1)用例、參與者以及場(chǎng)景(2)用例和參與者關(guān)系以及用例之間的關(guān)系泛化關(guān)系子用例是父用例的特例251圖書管理系統(tǒng)的用例圖252圖書管理系統(tǒng)的用例圖253圖書管理系統(tǒng)的用例圖254
面向?qū)ο蟮能浖O(shè)計(jì)3.對(duì)象交互?圖書管理系統(tǒng)的交互圖(1)順序圖的基本構(gòu)成255
面向?qū)ο蟮能浖O(shè)計(jì)3.對(duì)象交互?圖書管理系統(tǒng)的交互圖(1)順序圖的基本構(gòu)成(2)如何開發(fā)順序圖確定所有與場(chǎng)景有關(guān)的對(duì)象和參與者確定完成場(chǎng)景的消息將消息排序,放在合適的參與者和對(duì)象上,標(biāo)示對(duì)象生命線256圖書館管理系統(tǒng)中的順序圖257圖書館管理系統(tǒng)中的順序圖258圖書館管理系統(tǒng)中的協(xié)作圖259圖書館管理系統(tǒng)中的協(xié)作圖260圖書館管理系統(tǒng)中的協(xié)作圖261圖書館管理系統(tǒng)中的協(xié)作圖262
面向?qū)ο蟮能浖O(shè)計(jì)4.對(duì)象行為?圖書管理系統(tǒng)的狀態(tài)圖(1)對(duì)象狀態(tài)和狀態(tài)轉(zhuǎn)換263
面向?qū)ο蟮能浖O(shè)計(jì)4.對(duì)象行為?圖書管理系統(tǒng)的狀態(tài)圖(2)如何開發(fā)狀態(tài)圖選擇狀態(tài)復(fù)雜的關(guān)鍵類辨識(shí)類的所有狀態(tài)從初始狀態(tài)開始,按轉(zhuǎn)換順序聯(lián)接狀態(tài),到終止?fàn)顟B(tài)標(biāo)示轉(zhuǎn)換消息264圖書館管理系統(tǒng)的狀態(tài)圖265圖書館管理系統(tǒng)的狀態(tài)圖266小結(jié)系統(tǒng)總體(概要)設(shè)計(jì)面向結(jié)構(gòu)化設(shè)計(jì)面向?qū)ο笤O(shè)計(jì)案例:圖書館管理系統(tǒng)以面向?qū)ο笤O(shè)計(jì)方法運(yùn)用UML建模語言描述了系統(tǒng)設(shè)計(jì)的過程267項(xiàng)目六軟件項(xiàng)目詳細(xì)設(shè)計(jì)
268項(xiàng)目六主要任務(wù)1.系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容2.圖書管理系統(tǒng)的詳細(xì)設(shè)計(jì)269系統(tǒng)詳細(xì)設(shè)計(jì)1.系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容詳細(xì)設(shè)計(jì)概述詳細(xì)設(shè)計(jì)的基本任務(wù)詳細(xì)設(shè)計(jì)方法2.圖書管理系統(tǒng)的詳細(xì)設(shè)計(jì)系統(tǒng)包圖類的類型以及類之間的關(guān)系圖書館管理系統(tǒng)的類圖設(shè)計(jì)類圖的開發(fā)270項(xiàng)目六主要任務(wù)3.用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)應(yīng)具有的特點(diǎn)用戶界面設(shè)計(jì)的基本類型和基本原則圖書館管理系統(tǒng)的界面設(shè)計(jì)271系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容1.詳細(xì)設(shè)計(jì)概述表達(dá)過程規(guī)格說明的工具叫做詳細(xì)設(shè)計(jì)工具,它可以分為如下三類。(1)圖形工具把過程的細(xì)節(jié)用圖形方式描述出來。(2)表格工具用一張表來表達(dá)過程細(xì)節(jié),這張表列出了各種可能的操作及其相應(yīng)條件,也就是描述了輸入、處理和輸出信息。(3)語言工具用某種高級(jí)語言(偽碼)來描述過程細(xì)節(jié)。272系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容2.詳細(xì)設(shè)計(jì)的基本任務(wù)詳細(xì)設(shè)計(jì)過程中需要完成的工作主要是確定軟件各個(gè)組成部分的算法以及各部分的內(nèi)部數(shù)據(jù)結(jié)構(gòu)和確定各個(gè)組成部分的邏輯過程,此外,還要做以下工作。(1)處理方式的設(shè)計(jì)(2)物理設(shè)計(jì)(3)可靠性設(shè)計(jì)(4)其他設(shè)計(jì)(5)編寫詳細(xì)設(shè)計(jì)說明書(6)詳細(xì)設(shè)計(jì)的評(píng)審273系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容3.詳細(xì)設(shè)計(jì)方法(1)傳統(tǒng)的詳細(xì)設(shè)計(jì)方法圖形符號(hào)的設(shè)計(jì)方式流程圖(Flowchart)是用圖形化的方式,表示程序中一系列的操作以及執(zhí)行的順序。表格的設(shè)計(jì)方式在很多的軟件應(yīng)用中,一個(gè)模塊需要對(duì)一些條件和基于這些條件下的任務(wù)進(jìn)行一個(gè)復(fù)雜的組合。而決策表(DecisionTable)提供了將條件以及其相關(guān)的任務(wù)組合為表格的一種表達(dá)方式。程序設(shè)計(jì)語言程序設(shè)計(jì)語言(ProgramDesignLanguage)也稱為偽代碼,它使用結(jié)構(gòu)化編程語言的風(fēng)格描述程序算法,但不遵循特定編程語言的語法,程序設(shè)計(jì)語言允許用戶在此代碼更高的層次上進(jìn)行設(shè)計(jì),通常省略與算法無關(guān)的細(xì)節(jié)。274系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容(2)面向?qū)ο蟮脑敿?xì)設(shè)計(jì)算法和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)算法是設(shè)計(jì)對(duì)象中每個(gè)方法的實(shí)現(xiàn)規(guī)格,當(dāng)方法(操作)比較復(fù)雜的時(shí)候,算法實(shí)現(xiàn)可能需要模塊化。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)與算法是同時(shí)進(jìn)行的,因?yàn)檫@個(gè)方法(操作)要對(duì)類的屬性進(jìn)行處理。方法(操作)對(duì)數(shù)據(jù)進(jìn)行的處理有很多類,主要包括三類:對(duì)數(shù)據(jù)的維護(hù)操作(如增、刪、改等);對(duì)數(shù)據(jù)進(jìn)行計(jì)算;監(jiān)控對(duì)象事件。模塊和接口決定軟件設(shè)計(jì)質(zhì)量非常重要的一個(gè)方面是模塊,所有模塊最后組成了一個(gè)完整的程序。其中復(fù)雜的部分也可以進(jìn)行再模塊化,同時(shí)我們還要定義對(duì)象之間的接口和對(duì)象的總結(jié)構(gòu)。模塊和接口設(shè)計(jì)應(yīng)當(dāng)用類似編程語言的方式表達(dá)出來。
275圖書管理系統(tǒng)的詳細(xì)設(shè)計(jì)1.系統(tǒng)包圖包圖是一個(gè)高層圖在概念上它與結(jié)構(gòu)化方法的系統(tǒng)流程圖很相似。包圖的目標(biāo)是標(biāo)識(shí)一個(gè)完整系統(tǒng)的主要部分。在一個(gè)大的系統(tǒng)中,通常要把許多系統(tǒng)分成很多子系統(tǒng),每個(gè)子系統(tǒng)的功能相互之間都是獨(dú)立的。2.類的類型以及類之間的關(guān)系(1)類的類型在面向?qū)ο蟮南到y(tǒng)中,對(duì)象分為三類:實(shí)體類、邊界類和控制類。通過這些對(duì)象的合作來實(shí)現(xiàn)用例。(2)類之間的關(guān)系276圖書管理系統(tǒng)的詳細(xì)設(shè)計(jì)3.圖書館管理系統(tǒng)的類圖4.設(shè)計(jì)類圖的開發(fā)(1)決定需要設(shè)計(jì)的類(2)找到屬于這個(gè)類的所有方法(3)詳細(xì)描述帶有邏輯的方法277
用戶界面設(shè)計(jì)1.用戶界面設(shè)計(jì)應(yīng)具有的特點(diǎn)(1)可使用性使用的簡(jiǎn)單性用戶界面中的術(shù)語標(biāo)準(zhǔn)化和一致性擁有HTML幫助功能速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本用戶界面應(yīng)具有容錯(cuò)能力、錯(cuò)誤診斷功能(2)靈活性
算法的可隱可顯性用戶可以根據(jù)需要制定和修改界面形式系統(tǒng)能夠按照用戶的希望和需求,提供不同詳細(xì)程度的系統(tǒng)響應(yīng)信息與其他軟件系統(tǒng)一樣應(yīng)有標(biāo)準(zhǔn)的界面
278用戶界面設(shè)計(jì)(3)復(fù)雜性與可靠性用戶界面的規(guī)模和組織的復(fù)雜程度就是界面的復(fù)雜性用戶界面的可靠性是指無故障使用的間隔時(shí)間2.用戶界面設(shè)計(jì)的基本類型和基本原則(1)用戶界面設(shè)計(jì)的基本類型(2)用戶界面設(shè)計(jì)的基本原則(3)用戶界面設(shè)計(jì)的基本方法(4)繼續(xù)做原型(5)設(shè)計(jì)用戶界面類(6)依據(jù)現(xiàn)有圖形用戶界面進(jìn)行設(shè)計(jì)
279用戶界面設(shè)計(jì)3.圖書館管理系統(tǒng)的界面設(shè)計(jì)(1)用戶登錄界面設(shè)計(jì)(2)圖書館管理系統(tǒng)主界面設(shè)計(jì)(3)修改圖書記錄界面設(shè)計(jì)(4)修改學(xué)生記錄界面設(shè)計(jì)(5)生成預(yù)約圖書報(bào)表界面設(shè)計(jì)(6)生成催還圖書報(bào)表界面設(shè)計(jì)(7)修改密碼設(shè)置界面設(shè)計(jì)(8)圖書服務(wù)系統(tǒng)主界面設(shè)計(jì)(9)查詢/借閱/預(yù)約圖書界面設(shè)計(jì)(10)查詢個(gè)人借閱信息和歸還已借閱圖書界面設(shè)計(jì)280小結(jié)項(xiàng)目6講述了詳細(xì)設(shè)計(jì)的基本任務(wù)及詳細(xì)設(shè)計(jì)的結(jié)構(gòu)化方法及面向?qū)ο蠓椒?根據(jù)面向?qū)Ψ椒ńo出了圖書館管理系統(tǒng)的類的設(shè)計(jì)、圖書館管理系統(tǒng)的界面設(shè)計(jì)等。完成圖書館管理系統(tǒng)詳細(xì)的整個(gè)過程。281項(xiàng)目七軟件項(xiàng)目實(shí)現(xiàn)282項(xiàng)目七主要任務(wù)面向?qū)ο蟪绦蛘Z言的概念和特點(diǎn)程序語言的分類程序復(fù)雜度算法283結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的原則1.自頂向下2.逐步求精3.模塊化4.限制使用goto語句結(jié)構(gòu)化程序設(shè)計(jì)的原則
284結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序的基本結(jié)構(gòu)與特點(diǎn)順序結(jié)構(gòu)是一種簡(jiǎn)單的程序設(shè)計(jì),它是最基本、最常用的結(jié)構(gòu)。順序結(jié)構(gòu)就是按照程序語句行的自然順序,一條語句一條語句地執(zhí)行程序。選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),它包括簡(jiǎn)單分支結(jié)構(gòu)和多分支結(jié)構(gòu),這種結(jié)構(gòu)可以根據(jù)設(shè)定的條件,判斷應(yīng)該選擇執(zhí)行哪一條分支的語句序列。循環(huán)結(jié)構(gòu)。它根據(jù)給定的條件,判斷是否需要重復(fù)執(zhí)行同一相同的程序段,利用循環(huán)結(jié)構(gòu)可以簡(jiǎn)化大量的程序行。在程序設(shè)計(jì)語言中,循環(huán)結(jié)構(gòu)對(duì)應(yīng)兩類循環(huán)語句,對(duì)先判斷后執(zhí)行循環(huán)體的稱為“當(dāng)”型循環(huán)結(jié)構(gòu);對(duì)先執(zhí)行循環(huán)體后判斷的稱為“直到”型循環(huán)結(jié)構(gòu)。
結(jié)構(gòu)化程序的基本結(jié)構(gòu)與特點(diǎn)
285結(jié)構(gòu)化程序設(shè)計(jì)在結(jié)構(gòu)化程序設(shè)計(jì)的具體實(shí)施中,要注意把握以下原則和方法1.使用程序設(shè)計(jì)語言中的順序、選擇、循環(huán)等有限的控制結(jié)構(gòu)表示程序的控制邏輯。2.選用的控制結(jié)構(gòu)只允許有一個(gè)入口和一個(gè)出口。3.程序語句組成容易識(shí)別的語句序列塊,每塊只允許有一個(gè)入口和一個(gè)出口。4.復(fù)雜結(jié)構(gòu)的程序設(shè)計(jì)時(shí),僅用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)。5.嚴(yán)格控制GOTO語句的使用。
結(jié)構(gòu)化程序設(shè)計(jì)原則和方法
286面向?qū)ο蟪绦蛟O(shè)計(jì)287面向?qū)ο蟪绦蛟O(shè)計(jì)1.抽象即去掉與主題無關(guān)的次要部分,而僅僅抽象取出與工作有關(guān)的實(shí)質(zhì)的內(nèi)容加以研究。計(jì)算機(jī)技術(shù)常用的抽象分為過程抽象與數(shù)據(jù)抽象。(1)過程抽象。將整個(gè)系統(tǒng)的功能劃分成為若干部分,強(qiáng)調(diào)功能完成的過程和步驟。面向過程的程序設(shè)計(jì)就采用這種方法。(2)數(shù)據(jù)抽象。與過程抽象不同的抽象方法,它把系統(tǒng)中需要處理的數(shù)據(jù)和這些數(shù)據(jù)的的操作結(jié)合在一起,根據(jù)功能、性質(zhì)、作用等因素抽象成不同的抽象數(shù)據(jù)類型,每個(gè)數(shù)據(jù)類型即包括了數(shù)據(jù),又包括了針對(duì)這些數(shù)據(jù)的操作。數(shù)據(jù)抽象和封裝
288面向?qū)ο蟪绦蛟O(shè)計(jì)2.封裝就是利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,數(shù)據(jù)被保護(hù)在抽象數(shù)據(jù)類型的內(nèi)部,系統(tǒng)的其它部分只有通過封裝在數(shù)據(jù)外部的被授權(quán)的操作,才能夠與這個(gè)抽象數(shù)據(jù)類型進(jìn)行交流。
在面向?qū)ο缶幊?OOP)中,抽象數(shù)據(jù)類型是利用類這種結(jié)構(gòu)來實(shí)現(xiàn)的,每個(gè)類里面封裝了相關(guān)的數(shù)據(jù)和操作。在實(shí)際的開發(fā)過程中,類用來構(gòu)建系統(tǒng)內(nèi)部的模塊,由于封裝性把類內(nèi)的數(shù)據(jù)保護(hù)得很好,模塊與模塊間僅僅通過嚴(yán)格控制的界面進(jìn)行交互,使它們之間的耦合和交叉大大減少,從而降低了開發(fā)過程的復(fù)雜性,提高效率和質(zhì)量,減少了可能的錯(cuò)誤,同時(shí)也保證了程序中數(shù)據(jù)的完整性和安全性。
數(shù)據(jù)抽象和封裝
289面向?qū)ο蟪绦蛟O(shè)計(jì)繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對(duì)這些功能進(jìn)行擴(kuò)展。通過繼承創(chuàng)建的新類稱為”子類”或”派生類”。被繼承的類稱為“基類”、“父類”或”超類”。繼承的過程,就是從一般到特殊的過程。繼承概念的實(shí)現(xiàn)方式有三類:實(shí)現(xiàn)繼承、接口繼承和可視繼承。實(shí)現(xiàn)繼承是指使用基類的屬性和方法而無需額外編碼的能力;接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實(shí)現(xiàn)的能力;可視繼承是指子窗體(類)使用基窗體(類)的外觀和實(shí)現(xiàn)代碼的能力。繼承290代碼這樣來產(chǎn)生多態(tài)
291面向?qū)ο蟪绦蛟O(shè)計(jì)多態(tài)性(Polymorphisn)是允許你將父對(duì)象設(shè)置成為一個(gè)或更多的他的子對(duì)象的技術(shù),賦值之后,父對(duì)象就可以根據(jù)當(dāng)前賦值給它的子對(duì)象的特性以不同的方式運(yùn)作。簡(jiǎn)單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。實(shí)現(xiàn)多態(tài),有二種方式,覆蓋,重載。1.覆蓋覆蓋是指子類重新定義父類的函數(shù)的做法。2.重載重載是指允許存在多個(gè)同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個(gè)數(shù)不同,或許參數(shù)類型不同,或許兩者都不同)。
多態(tài)
292程序設(shè)計(jì)語言程序設(shè)計(jì)語言通常簡(jiǎn)稱為編程語言,是一組用來定義計(jì)算機(jī)程序的語法規(guī)則。一種計(jì)算機(jī)語言讓程序員能夠準(zhǔn)確地定義計(jì)算機(jī)所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動(dòng)。程序設(shè)計(jì)語言原本是被設(shè)計(jì)成專門使用在計(jì)算機(jī)上的,但它們也可以用來定義算法或者數(shù)據(jù)結(jié)構(gòu)。正是因?yàn)槿绱耍绦騿T才試圖使程序代碼更容易閱讀。程序設(shè)計(jì)語言
293程序設(shè)計(jì)語言從發(fā)展歷程來看,程序設(shè)計(jì)語言可以分為4代。1.第一代語言(機(jī)器語言)
2.第二代語言(匯編語言)3.第三代語言(高級(jí)語言)高級(jí)語言是面向用戶的、基本上獨(dú)立于計(jì)算機(jī)種類和結(jié)構(gòu)的語言。4.第四代語言(簡(jiǎn)稱4GL)4GL是非過程化語言,編碼時(shí)只需說明“做什么”,不需描述算法細(xì)節(jié)。數(shù)據(jù)庫查詢和應(yīng)用程序生成器是4GL的兩個(gè)典型應(yīng)用。程序設(shè)計(jì)語言分類294程序復(fù)雜度一般情況下,算法的基本操作重復(fù)執(zhí)行的次數(shù)是模塊n的某一個(gè)函數(shù)f(n),因此,算法的時(shí)間復(fù)雜度記做:T(n)=O(f(n))隨著模塊n的增大,算法執(zhí)行的時(shí)間的增長率和f(n)的增長率成正比,所以f(n)越小,算法的時(shí)間復(fù)雜度越低,算法的效率越高。在計(jì)算時(shí)間復(fù)雜度的時(shí)候,先找出算法的基本操作,然后根據(jù)相應(yīng)的各語句確定它的執(zhí)行次數(shù),再找出T(n)的同數(shù)量級(jí)(它的同數(shù)量級(jí)有以下:1,Log2n,n,nLog2n,n的平方,n的三次方,2的n次方,n!),找出后,f(n)=該數(shù)量級(jí),若T(n)/f(n)求極限可得到一常數(shù)c,則時(shí)間復(fù)雜度T(n)=O(f(n))時(shí)間復(fù)雜度
295程序復(fù)雜度空間復(fù)雜度是程序運(yùn)行所以需要的額外消耗存儲(chǔ)空間,也用O()來表示。算法中基本操作的執(zhí)行次數(shù)一般是與問題規(guī)模有關(guān)的。對(duì)于結(jié)點(diǎn)個(gè)數(shù)為n的數(shù)據(jù)處理問題,用T(n)表示算法中基本操作的執(zhí)行次數(shù)。在評(píng)價(jià)算法的時(shí)間復(fù)雜性時(shí),不考慮兩算法執(zhí)行次數(shù)之間的細(xì)小區(qū)別,而只關(guān)心算法的本質(zhì)差別。為此,引入一個(gè)所謂的O()號(hào),則T1(n)=2n=O(n),T2(n)=n+1=O(n)。一個(gè)函數(shù)f(n)是O(g(n))的,則一定存在正常數(shù)c和m,使對(duì)所有的n>m,都滿足f(n)<c*g(n)。空間復(fù)雜度
296項(xiàng)目八軟件測(cè)試297項(xiàng)目八主要任務(wù)了解軟件測(cè)試的目的和原則。了解軟件錯(cuò)誤的分類。理解軟件測(cè)試的過程和策略。掌握程序靜態(tài)測(cè)試的方法。了解程序調(diào)試的概念。掌握軟件測(cè)試中的可靠性分析方法298軟件測(cè)試基礎(chǔ)什么是軟件測(cè)試
299軟件測(cè)試基礎(chǔ)軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。或者說,軟件測(cè)試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過程。軟件測(cè)試在軟件生命周期中橫跨兩個(gè)階段:通常在編寫出每一個(gè)模塊之后就對(duì)它做必要的測(cè)試(稱為單元測(cè)試)。模塊的編寫者與測(cè)試者是同一個(gè)人。編碼與單元測(cè)試屬于軟件生命周期中的同一個(gè)階段。在這個(gè)階段結(jié)束之后,對(duì)軟件系統(tǒng)還要進(jìn)行各種綜合測(cè)試,這是軟件生命周期的另一個(gè)獨(dú)立的階段,即測(cè)試階段,通常由專門的測(cè)試人員承擔(dān)這項(xiàng)工作。什么是軟件測(cè)試
300軟件測(cè)試基礎(chǔ)1.軟件測(cè)試的目的GrenfordJ.Myers就軟件測(cè)試目的提出以下觀點(diǎn):(1)測(cè)試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯(cuò)誤;(2)一個(gè)好的測(cè)試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;(3)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。設(shè)計(jì)測(cè)試的目標(biāo)是以最少的時(shí)間和人力,系統(tǒng)地找出軟件中潛在的各種錯(cuò)誤和缺陷。如果我們成功地實(shí)施了測(cè)試,就能夠發(fā)現(xiàn)軟件中的錯(cuò)誤。測(cè)試的附帶收獲是,它能夠證明軟件的功能和性能與需求說明相符合。此外,實(shí)施測(cè)試收集到的測(cè)試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)軟件測(cè)試的目的和原則
301軟件測(cè)試基礎(chǔ)2.軟件測(cè)試的原則(1)應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測(cè)試”作為軟件開發(fā)者的座右銘。(2)測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。(3)程序員應(yīng)避免檢查自己的程序。(4)在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。(5)充分注意測(cè)試中的群集現(xiàn)象。(6)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。(7)應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查。(8)妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。軟件測(cè)試的目的和原則
302軟件測(cè)試基礎(chǔ)1.按錯(cuò)誤的影響和后果分類(1)較小錯(cuò)誤(2)中等錯(cuò)誤(3)較嚴(yán)重錯(cuò)誤(4)嚴(yán)重錯(cuò)誤(5)非常嚴(yán)重的錯(cuò)誤(6)最嚴(yán)重的錯(cuò)誤程序錯(cuò)誤分類
303軟件測(cè)試基礎(chǔ)2.按錯(cuò)誤的性質(zhì)和范圍分類(1)功能錯(cuò)誤(2)系統(tǒng)錯(cuò)誤(3)加工錯(cuò)誤(4)數(shù)據(jù)錯(cuò)誤(5)代碼錯(cuò)誤程序錯(cuò)誤分類
304軟件測(cè)試方法1.黑盒測(cè)試根據(jù)軟件產(chǎn)品的功能設(shè)計(jì)規(guī)格,在計(jì)算機(jī)上進(jìn)行測(cè)試,以證實(shí)每個(gè)實(shí)現(xiàn)了的功能是否符合要求。這種測(cè)試方法就是黑盒測(cè)試。2.白盒測(cè)試根據(jù)軟件產(chǎn)品的內(nèi)部工作過程,在計(jì)算機(jī)上進(jìn)行測(cè)試,以證實(shí)每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否已經(jīng)過檢查。這種測(cè)試方法就是白盒測(cè)試。
黑盒測(cè)試和白盒測(cè)試
305軟件測(cè)試方法測(cè)試過程按4個(gè)步驟進(jìn)行,即單元測(cè)試、組裝測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。單元測(cè)試集中對(duì)用源代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。然后進(jìn)行集成測(cè)試,根據(jù)設(shè)計(jì)規(guī)定的軟件體系結(jié)構(gòu),把已測(cè)試過的模塊組裝起來。在組裝過程中,檢查程序結(jié)構(gòu)組裝的正確性。確認(rèn)測(cè)試則是要檢查已實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。最后是系統(tǒng)測(cè)試,把已經(jīng)經(jīng)過確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測(cè)試。軟件測(cè)試步驟
306面向?qū)ο筌浖y(cè)試面向?qū)ο蟪绦蚴前压δ艿膶?shí)現(xiàn)分布在類中。能正確實(shí)現(xiàn)功能的類,通過消息傳遞來協(xié)同實(shí)現(xiàn)設(shè)計(jì)要求的功能。正是這種面向?qū)ο蟪绦蝻L(fēng)格,能夠?qū)⒊霈F(xiàn)的錯(cuò)誤能精確定位在某一具體的類。因此,在面向?qū)ο缶幊蹋∣OP)階段,忽略類功能實(shí)現(xiàn)的細(xì)則,將測(cè)試集中在類功能的實(shí)現(xiàn)和相應(yīng)的面向?qū)ο蟪绦颍饕w現(xiàn)在兩個(gè)方面:1.?dāng)?shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求2.類是否實(shí)現(xiàn)了要求的功能
面向?qū)ο筌浖y(cè)試定義
307面向?qū)ο筌浖y(cè)試測(cè)試計(jì)劃主要包含以下內(nèi)容:測(cè)試范圍、測(cè)試策略
、測(cè)試類型、測(cè)試工具、測(cè)試資源、異常事項(xiàng)的處理等制定測(cè)試計(jì)劃注意以下幾點(diǎn):1、計(jì)劃寧可時(shí)間多一些,也不要少2、測(cè)試計(jì)劃要根據(jù)具體情況來確定3、計(jì)劃隨著工作的開展進(jìn)行修改4、要按照計(jì)劃來執(zhí)行測(cè)試計(jì)劃
308面向?qū)ο筌浖y(cè)試1.面向?qū)ο蟮膯卧獪y(cè)試面向?qū)ο髥卧獪y(cè)試主要考慮兩個(gè)方面的問題:
(1)繼承的成員函數(shù)是否需要測(cè)試(2)對(duì)父類的測(cè)試是否能照搬到子類2.面向?qū)ο蠹蓽y(cè)試面向?qū)ο蟮募蓽y(cè)試能夠檢測(cè)出相對(duì)獨(dú)立的單元測(cè)試無法檢測(cè)出、類相互作用才會(huì)產(chǎn)生的錯(cuò)誤。基于單元測(cè)試對(duì)成員函數(shù)行為正確性的保證,集成測(cè)試只關(guān)注于系統(tǒng)的結(jié)構(gòu)和內(nèi)部的相互作用。面向?qū)ο蟮募蓽y(cè)試可以分成兩步進(jìn)行:先進(jìn)行靜態(tài)測(cè)試,再進(jìn)行動(dòng)態(tài)測(cè)試。面向?qū)ο蟮臏y(cè)試
309面向?qū)ο筌浖y(cè)試3.面向?qū)ο蟮南到y(tǒng)測(cè)試系統(tǒng)測(cè)試是對(duì)測(cè)試步驟的抽象描述,它體現(xiàn)的具體測(cè)試內(nèi)容包括:(1)功能測(cè)試(2)強(qiáng)度測(cè)試(3)性能測(cè)試(4)安全測(cè)試(5)恢復(fù)測(cè)試(6)可用性測(cè)試面向?qū)ο蟮臏y(cè)試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年項(xiàng)目管理中的重要管理角色考題試題及答案
- 跑道材料維修方案范本
- 證券從業(yè)資格證學(xué)習(xí)幫助試題及答案
- 項(xiàng)目實(shí)施的關(guān)鍵績(jī)效指標(biāo)設(shè)定題目及答案
- 2024年微生物檢測(cè)的重要性提升試題及答案
- 稅務(wù)政策對(duì)會(huì)計(jì)行業(yè)的影響試題及答案
- 煤制油品質(zhì)量與標(biāo)準(zhǔn)研究考核試卷
- 種子種苗的長期保存與種子庫建設(shè)考核試卷
- 生態(tài)資源監(jiān)測(cè)與城市空氣質(zhì)量改善考核試卷
- 工程勘察技術(shù)規(guī)范考核試卷
- 人教九年級(jí)語文上冊(cè)《沁園春 雪》示范課教學(xué)課件
- 團(tuán)體旅游餐飲供餐合同協(xié)議
- 養(yǎng)殖項(xiàng)目的水土保持方案
- 中建通風(fēng)與空調(diào)工程施工方案全套范本
- 醫(yī)療代表陌生拜訪
- 中華人民共和國關(guān)稅法
- 山西同文職業(yè)技術(shù)學(xué)院嬰幼兒托育服務(wù)與管理人才培養(yǎng)方案
- 第13課 《精衛(wèi)填海》第一課時(shí)(說課稿)-2024-2025學(xué)年統(tǒng)編版語文四年級(jí)上冊(cè)
- 2025人教版高中物理必修一學(xué)考知識(shí)點(diǎn)復(fù)習(xí)指導(dǎo)課件
- 初級(jí)家政服務(wù)員近年考試真題題庫(含真題、典型題)
- DB41T 2113-2021 通航水域內(nèi)河電子航道圖制作規(guī)程
評(píng)論
0/150
提交評(píng)論