軟件工程與項(xiàng)目案例教程t_第1頁(yè)
軟件工程與項(xiàng)目案例教程t_第2頁(yè)
軟件工程與項(xiàng)目案例教程t_第3頁(yè)
軟件工程與項(xiàng)目案例教程t_第4頁(yè)
軟件工程與項(xiàng)目案例教程t_第5頁(yè)
已閱讀5頁(yè),還剩334頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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ī)控制曾任職以下公司:中國(guó)民航信息廣州公司(香港上市)技術(shù)總監(jiān)廣州金鵬集團(tuán)(電子百?gòu)?qiáng))項(xiàng)目總監(jiān)廣東金宇恒(佛山最大軟企)技術(shù)總監(jiān)曾獲國(guó)家創(chuàng)新基金、廣州科學(xué)技術(shù)獎(jiǎng)中聯(lián)通炫鈴廣東/湖南/廣西項(xiàng)目負(fù)責(zé)人(用戶(hù)800萬(wàn))長(zhǎng)期移動(dòng)、民航、政府、互聯(lián)網(wǎng)行業(yè)軟件研發(fā)2項(xiàng)目一軟件工程概述任務(wù)1軟件工程

任務(wù)2軟件生命周期與軟件開(kāi)發(fā)模型

任務(wù)3建模工具

3最富哲理的軟件工程4UML是“三人幫”“搗”出來(lái)的5迭代開(kāi)發(fā)過(guò)程這樣流轉(zhuǎn)6軟件工程水平是這樣提高的7敏捷開(kāi)發(fā)過(guò)程-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)文檔:與程序開(kāi)發(fā)、維護(hù)和使用有關(guān)的圖文材料10軟件的定義及其特點(diǎn)軟件的定義及其特點(diǎn)軟件的特點(diǎn)(1)抽象性;(2)無(wú)明顯的制造過(guò)程;(3)無(wú)磨損、老化的問(wèn)題

(4)對(duì)硬件系統(tǒng)的依懶性;(5)復(fù)雜性;(6)成本昂貴;(7)社會(huì)性;11軟件危機(jī)TacomaNarrows大橋的崩潰12軟件危機(jī)

軟件危機(jī)

在軟件開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題

軟件危機(jī)的表現(xiàn)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估算很不準(zhǔn)確用戶(hù)很不滿意質(zhì)量很不可靠沒(méi)有適當(dāng)?shù)奈臋n軟件成本比重上升供不應(yīng)求:軟件開(kāi)發(fā)生產(chǎn)率跟不上計(jì)算機(jī)應(yīng)用迅速深入的趨勢(shì)

軟件危機(jī)

13軟件危機(jī)軟件危機(jī)

原因客觀:軟件本身特點(diǎn)邏輯部件規(guī)模龐大主觀:不正確的開(kāi)發(fā)方法忽視需求分析錯(cuò)誤認(rèn)為:軟件開(kāi)發(fā)=程序編寫(xiě)輕視軟件維護(hù)14軟件危機(jī)軟件危機(jī)

產(chǎn)生的原因(軟件開(kāi)發(fā)人員的錯(cuò)誤觀點(diǎn)):“有一個(gè)對(duì)目標(biāo)的概括描述就足以著手編寫(xiě)程序了,許多細(xì)節(jié)可以在以后再補(bǔ)充”“所謂軟件開(kāi)發(fā)就是編寫(xiě)程序并設(shè)法使它運(yùn)行”“用戶(hù)對(duì)軟件的要求不斷變化,然而軟件是柔軟而靈活的,可以輕易地改動(dòng)”“軟件投入生產(chǎn)性運(yùn)行以后需要的維護(hù)工作并不多,而且維護(hù)是一件很容易做的簡(jiǎn)單工作”15軟件危機(jī)的解決軟件危機(jī)

解決途徑組織管理工程項(xiàng)目管理方法技術(shù)措施軟件開(kāi)發(fā)技術(shù)與方法軟件工具軟件工程管理軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件度量學(xué)軟件工程學(xué)指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科工程管理+開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)方法學(xué)軟件工具軟件工程環(huán)境16軟件工程概念軟件工程的概念

應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來(lái)解決軟件問(wèn)題,指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門(mén)工程學(xué)科。

軟件工程的原則軟件工程概念

17任務(wù)2軟件生命周期

與軟件開(kāi)發(fā)模型軟件生命周期軟件開(kāi)發(fā)模型18軟件生命周期

軟件定義階段

軟件開(kāi)發(fā)階段

軟件的使用和維護(hù)階段

退役Page19軟件生命周期19

瀑布模型軟件開(kāi)發(fā)模型軟件開(kāi)發(fā)模型

問(wèn)題定義可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)軟件實(shí)現(xiàn)軟件測(cè)試運(yùn)行維護(hù)計(jì)劃時(shí)期開(kāi)發(fā)時(shí)期運(yùn)行維護(hù)時(shí)期強(qiáng)調(diào)階段的劃分及其順序性、各階段工作及其文檔的完備性,是一種嚴(yán)格線性的、按階段順序的、逐步細(xì)化的開(kāi)發(fā)模式。20軟件開(kāi)發(fā)模型

演化模型

螺旋模型

噴泉模型

21

兩種典型的建模工具:1.IBMRationalRose

2.MicrosoftOfficeVisio任務(wù)3建模工具22

IBMRationalRosePage23IBMRationalRose23Visio是一個(gè)圖表繪制程序,可以幫助用戶(hù)描述復(fù)雜設(shè)想以及系統(tǒng)的業(yè)務(wù)和技術(shù)圖表。使用Visio創(chuàng)建圖表可以使信息形象化,能夠以更為直觀有效的方式進(jìn)行信息交流,這是單純的文字和數(shù)字無(wú)法比擬的。Page24

MicrosoftOfficeVisioMicrosoftOfficeVisio

24軟件工程課程設(shè)計(jì)考核方式:課程設(shè)計(jì)(附設(shè)計(jì)說(shuō)明文檔,正文字?jǐn)?shù)不少于1000字)(60%)+平時(shí)作業(yè)及實(shí)驗(yàn)(30%)+平時(shí)表現(xiàn)(10%),按優(yōu)秀、良好、中、及格、不及格五級(jí)評(píng)定成績(jī)通過(guò)演示及講述,講解課程設(shè)計(jì)的整體情況,針對(duì)其設(shè)計(jì)提出一些技術(shù)及細(xì)節(jié)問(wèn)題確認(rèn)是否真正理解課程設(shè)計(jì)中的要點(diǎn)、是否掌握了進(jìn)行系統(tǒng)設(shè)計(jì)的知識(shí)和能力、是否本人完成。如通發(fā)現(xiàn)沒(méi)有真正設(shè)計(jì)或者不清楚技術(shù)細(xì)節(jié),則課程設(shè)計(jì)不及格。答辯部分:40分(沒(méi)有課程設(shè)計(jì)說(shuō)明文檔不予參加答辯)設(shè)計(jì)部分:60分選題:創(chuàng)新性,實(shí)用性,界面美觀友好(15分)難度:設(shè)計(jì)包含的難度(15分)設(shè)計(jì)的完整性(30分)25迭代和增量開(kāi)發(fā)方式26迭代過(guò)程的優(yōu)勢(shì)復(fù)雜系統(tǒng)-分解->多個(gè)簡(jiǎn)單系統(tǒng)提高軟件項(xiàng)目可控性降低軟件開(kāi)發(fā)風(fēng)險(xiǎn)有效地應(yīng)對(duì)需求變更在迭代過(guò)程中,功能的不確定性逐漸減小,我們對(duì)功能的描述越來(lái)越明確。27何時(shí)使用迭代開(kāi)發(fā)?只對(duì)希望成功的項(xiàng)目使用2019年2月4日,馬克·扎克伯格在大學(xué)的宿舍里鼓搗了一個(gè)約會(huì)網(wǎng)站28項(xiàng)目二統(tǒng)一建模語(yǔ)言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)一建模語(yǔ)言統(tǒng)一建模語(yǔ)言是一種通用的可視化建模語(yǔ)言,用于對(duì)軟件系統(tǒng)的制品進(jìn)行規(guī)范化、可視化處理,然后構(gòu)造它們并建立它們的文檔。UML的概念32UML的發(fā)展過(guò)程GradyBooch,JamesRumbaugh和IvarJacobson33圖與語(yǔ)言誰(shuí)一級(jí)棒?這把刀,也不知道有多長(zhǎng)、多寬、多重、由什么材質(zhì)鑄成,由誰(shuí)鑄造?很普通,很平常,也許在我們手中!但,只要是他拿著,握著,這把刀就有了生命,有了氣息,追魂的刀,亦是救命的刀,就看他是如何賦予它使命的!該用圖用圖該代碼用代碼34UML的優(yōu)勢(shì)過(guò)去數(shù)十種面向?qū)ο蟮慕UZ(yǔ)言各自為戰(zhàn),而UML可以消除一些潛在差異,一統(tǒng)江湖通過(guò)統(tǒng)一語(yǔ)義和符號(hào)表示,提高面向?qū)ο蠹夹g(shù)使項(xiàng)目建立在一個(gè)成熟的標(biāo)準(zhǔn)建模語(yǔ)言基礎(chǔ)之上便于溝通和交流,統(tǒng)一的理解35UML主要內(nèi)容

精確的元模型定義

UML表示法UML表示符

UML可視化的圖形建模語(yǔ)言

UML提供了五類(lèi)圖形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)系說(shuō)明兩個(gè)或多個(gè)事物時(shí)如何語(yǔ)義相關(guān)的UML模型的視圖,它們展現(xiàn)事物的集合,“講述關(guān)于軟件系統(tǒng)的故事”,是我們可視化系統(tǒng)將做什么(分析級(jí)圖)或者系統(tǒng)如何做(設(shè)計(jì)級(jí)圖)的方法38事物事物things結(jié)構(gòu)物件行為物件分組物件注解物件UML模型中的名詞,如類(lèi)、接口、協(xié)作、用例、活動(dòng)類(lèi)、組件、節(jié)點(diǎn)UML模型的動(dòng)詞,如交互、狀態(tài)機(jī)包,它用于把語(yǔ)義上相關(guān)的建模元素分組為內(nèi)聚的單元注解,它附加到模型以捕獲特殊信息,同黃色便箋很相像39關(guān)系關(guān)系relationships關(guān)聯(lián)association依賴(lài)dependency泛化generalization實(shí)現(xiàn)realization描述對(duì)象之間的一組鏈接事物的改變引起依賴(lài)物件的語(yǔ)義改變一個(gè)元素是另一個(gè)元素的特化,而且它可以取代更一般的元素類(lèi)元之間的關(guān)系,一個(gè)類(lèi)元說(shuō)明一份契約,另一個(gè)類(lèi)元保證實(shí)現(xiàn)該契約40圖圖diagrams類(lèi)圖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ī)格說(shuō)明specifications修飾adornments公共分類(lèi)commondivisions擴(kuò)展機(jī)制extensibilitymechanisms42規(guī)格說(shuō)明UML模型:使用圖和圖標(biāo)可視化模型各種建模元素的規(guī)格說(shuō)明所組成規(guī)格說(shuō)明模型元素的特征和語(yǔ)義的文本描述—模型的“肉”形成了承載模型的語(yǔ)義背板,賦予模型意義,各種圖僅僅是該背板的視圖或者可視化投影43修飾修飾:圖中建模元素上暴露的信息項(xiàng)任何UML圖僅是模型的視圖,只有在修飾增強(qiáng)了圖的整體清晰性和可讀性或者突出模型的某些重要特征時(shí),才應(yīng)該表示那些修飾Window44公共分類(lèi)描述認(rèn)識(shí)世界的特殊方法類(lèi)和實(shí)例類(lèi)元:一類(lèi)事物的抽象概念;如“銀行帳戶(hù)”實(shí)例:一類(lèi)事物的特定實(shí)例;如“張三豐帳戶(hù)”接口和實(shí)現(xiàn)接口:說(shuō)明事物行為的契約(做什么)實(shí)現(xiàn):事物是如何工作的特殊細(xì)節(jié)(如何做)45擴(kuò)展機(jī)制約束:允許對(duì)模型元素添加新的規(guī)則構(gòu)造型:基于已有的建模元素引入新的建模元素標(biāo)記值:允許為模型元素添加新的特性,是帶有相關(guān)值得關(guān)鍵字46JAVA開(kāi)發(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開(kāi)發(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ī)格說(shuō)明修飾公共分類(lèi)擴(kuò)展機(jī)制用例視圖邏輯視圖進(jìn)程視圖實(shí)現(xiàn)視圖部署視圖結(jié)構(gòu)物件行為物件分組物件注解物件關(guān)聯(lián)依賴(lài)泛化實(shí)現(xiàn)類(lèi)圖順序圖對(duì)象圖協(xié)作圖構(gòu)件圖狀態(tài)圖部署圖活動(dòng)圖用例圖51

用例圖

類(lèi)圖

對(duì)象圖

使用類(lèi)圖的建議

任務(wù)3UML靜態(tài)建模機(jī)制52用例圖Page53用例圖

參與者

參與者1參與者2用例1用例253用例“捕獲需求”用例圖從系統(tǒng)外部、從用戶(hù)角度出發(fā)描述系統(tǒng)的功能集用例圖所描述的系統(tǒng)功能依靠外部用戶(hù)或另一個(gè)系統(tǒng)激活,為用戶(hù)或另一個(gè)系統(tǒng)提供服務(wù)54用例表達(dá)“做什么”用例圖中可以包含若干個(gè)用例,用例表達(dá)了系統(tǒng)的功能用例只描述參與者和系統(tǒng)在交互過(guò)程中做些什么,并不描述怎么做。55用例圖關(guān)聯(lián)關(guān)系Page5656用例圖泛化關(guān)系Page5757用例圖泛化關(guān)系Page5858用例圖Page59

保險(xiǎn)銷(xiāo)售用例

59用例圖Page60

商品訂單用例

60用例圖Page61

教學(xué)管理用例

61用例用于什么情況?不知道什么情況不用用例如果沒(méi)有用到用例,閉門(mén)反省62實(shí)例:監(jiān)聽(tīng)器用例63實(shí)例:監(jiān)聽(tīng)器用例功能需求監(jiān)聽(tīng)刪除操作,保證數(shù)據(jù)的安全。場(chǎng)景監(jiān)聽(tīng)刪除操作刪除操作一旦執(zhí)行,立即被監(jiān)聽(tīng)器捕獲到,進(jìn)而在執(zhí)行刪除操作前執(zhí)行自定義的函數(shù)體,即判斷實(shí)體有無(wú)undeletable標(biāo)簽,有則中斷刪除操作,無(wú)則正常刪除。步驟異常情況異常處理方法取得實(shí)體的類(lèi)名ClassNotFoundException異常日志記錄,然后包裝成一個(gè)HibernateException,向上層拋出。獲取undeletable標(biāo)簽,判斷是否存在,是則執(zhí)行函數(shù)體,否則執(zhí)行父類(lèi)函數(shù)體(onDelete)IllegalAccessException異常與InvocationTarget-Exception異常日志記錄,然后包裝成HibernateException,向上層拋出。64關(guān)系關(guān)聯(lián)關(guān)系;依賴(lài)關(guān)系;泛化關(guān)系;關(guān)系的擴(kuò)展

用例圖Page65<<include>><<extend>>參與者用例系統(tǒng)邊界關(guān)聯(lián)擴(kuò)展包含泛化注釋體注釋連接65類(lèi)圖類(lèi)名稱(chēng);屬性;操作關(guān)聯(lián)關(guān)系泛化依賴(lài)關(guān)系約束類(lèi)圖66類(lèi)圖類(lèi)名稱(chēng);屬性;操作67類(lèi)圖類(lèi)圖68類(lèi)圖類(lèi)圖69類(lèi)圖類(lèi)圖泛化關(guān)聯(lián)70類(lèi)圖類(lèi)圖71類(lèi)圖類(lèi)圖72何時(shí)用類(lèi)圖?類(lèi)圖是面向?qū)ο蠓椒ǖ闹е绻麤](méi)用到類(lèi)圖??找電桿撞下,看是否用面向?qū)ο蠓椒?3用類(lèi)圖的危險(xiǎn)!類(lèi)圖用濫了,建狗屋畫(huà)了10頁(yè)類(lèi)圖類(lèi)圖沒(méi)分清粗細(xì)層次:概念類(lèi)圖規(guī)約類(lèi)圖實(shí)現(xiàn)類(lèi)圖74鳥(niǎo)類(lèi)圖75鳥(niǎo)類(lèi)圖76鳥(niǎo)類(lèi)圖77鳥(niǎo)類(lèi)圖78實(shí)例:監(jiān)聽(tīng)器類(lèi)圖79使用類(lèi)圖的建議不要試圖使用所有的符號(hào)根據(jù)項(xiàng)目開(kāi)發(fā)的不同階段,用正確的觀點(diǎn)來(lái)畫(huà)類(lèi)圖不要為每個(gè)事物都畫(huà)一個(gè)模型,應(yīng)該把精力放在關(guān)鍵的領(lǐng)域使用類(lèi)圖的建議80對(duì)象圖

對(duì)象圖

表示在某一時(shí)刻類(lèi)的具體實(shí)例和這些實(shí)例之間的具體連接關(guān)系

對(duì)象圖丁一家里的PC:計(jì)算機(jī)名稱(chēng):DELL446內(nèi)存:128丁一:作家姓名:丁一年齡:3081類(lèi)與對(duì)象關(guān)系82類(lèi)與對(duì)象關(guān)系對(duì)象圖使用的是與類(lèi)圖相同的符號(hào)和關(guān)系

83類(lèi)圖和對(duì)象圖的區(qū)別

84包包

一種分組機(jī)制,把各種各樣的模型元素通過(guò)內(nèi)在的語(yǔ)義連在一起成為一個(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)圖

用來(lá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)聽(tīng)器順序圖105電影動(dòng)畫(huà)-軟件模型電影大量使用3D動(dòng)畫(huà)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.軟件開(kāi)發(fā)計(jì)劃

117油畫(huà)創(chuàng)作背景波洛克《1948年第五號(hào)》1.4億$,最昂貴畫(huà)作這幅畫(huà)在一副優(yōu)雅的4x8英尺畫(huà)布上以畫(huà)家特有的滴濺潑灑的藝術(shù)手法來(lái)進(jìn)行風(fēng)暴式設(shè)計(jì)并撥開(kāi)油彩。118任務(wù)1系統(tǒng)的研發(fā)背景追問(wèn):為什么呢?你好,這里是夢(mèng)幻家園售樓處,我是蔡小姐。我是張總,我嚴(yán)重警告你。為什么呢?試用期2月了,你有業(yè)績(jī)嗎?你賣(mài)出去過(guò)一套房子嗎?為什么呢?問(wèn)你自己!哦……為什么呢?今天下班之前你要再不賣(mài)出一套房子去,你就給我卷鋪蓋走人?。娫拻炝耍槭裁茨兀?19項(xiàng)目背景--鋼琴練奏師問(wèn):為什么開(kāi)發(fā)這個(gè)軟件?答:傳統(tǒng)的音樂(lè)播放器功能單一用戶(hù)對(duì)音樂(lè)缺少參與感問(wèn):開(kāi)發(fā)這個(gè)軟件目標(biāo)是什么?答:提高用戶(hù)對(duì)音樂(lè)的學(xué)習(xí)和娛樂(lè)參與創(chuàng)作音樂(lè)120項(xiàng)目背景--鋼琴練奏師問(wèn):為什么傳統(tǒng)音樂(lè)程序不好?答:傳統(tǒng)音樂(lè)程序功能單一,容易令人感到枯燥無(wú)味,沒(méi)有吸引力;傳統(tǒng)音樂(lè)程序強(qiáng)調(diào)單方向,用戶(hù)沒(méi)有參與感;傳統(tǒng)音樂(lè)程序設(shè)計(jì)不夠靈活,擴(kuò)展性差。121項(xiàng)目背景--鋼琴練奏師問(wèn):開(kāi)發(fā)內(nèi)容包括什么?答:本項(xiàng)目從Android的聲音處理入手,實(shí)現(xiàn)音樂(lè)功能,根據(jù)用戶(hù)的興趣,提高用戶(hù)參與度。問(wèn):有什么應(yīng)用價(jià)值?答:本項(xiàng)目是一個(gè)能提高用戶(hù)參與和娛樂(lè)程序的項(xiàng)目,具有一定的使用價(jià)值。122追求的結(jié)果--鋼琴練奏師1.2項(xiàng)目背景傳統(tǒng)的音樂(lè)播放器功能單一,用戶(hù)對(duì)音樂(lè)缺少參與感,本項(xiàng)目志在提高用戶(hù)對(duì)音樂(lè)的學(xué)習(xí)和娛樂(lè),參與創(chuàng)作音樂(lè):(1)傳統(tǒng)音樂(lè)程序功能單一,容易令人感到枯燥無(wú)味,沒(méi)有吸引力;(2)傳統(tǒng)音樂(lè)程序強(qiáng)調(diào)單方向,用戶(hù)沒(méi)有參與感;(3)傳統(tǒng)音樂(lè)程序設(shè)計(jì)不夠靈活,擴(kuò)展性差。本項(xiàng)目從Android的聲音處理入手,實(shí)現(xiàn)音樂(lè)功能,根據(jù)用戶(hù)的興趣,提高用戶(hù)參與度。本項(xiàng)目是一個(gè)能提高用戶(hù)參與和娛樂(lè)程序的項(xiàng)目,具有一定的使用價(jià)值。123系統(tǒng)的研發(fā)背景1.圖書(shū)館系統(tǒng)的提出傳統(tǒng)的手工方式對(duì)圖書(shū)信息的管理已越來(lái)越不能適應(yīng)社會(huì)發(fā)展的需要,尤其是隨著計(jì)算機(jī)網(wǎng)絡(luò)和Internet的普及,運(yùn)用先進(jìn)的信息管理系統(tǒng)對(duì)信息進(jìn)行科學(xué)化和網(wǎng)絡(luò)化管理,已成為圖書(shū)信息管理系統(tǒng)發(fā)展的趨勢(shì)。124系統(tǒng)的研發(fā)背景2.國(guó)內(nèi)外研發(fā)現(xiàn)狀圖書(shū)管理系統(tǒng)的發(fā)展歷史國(guó)內(nèi)外應(yīng)用的圖書(shū)管理系統(tǒng)調(diào)研(1)開(kāi)發(fā)方式(2)開(kāi)發(fā)方法(3)結(jié)構(gòu)形式(4)開(kāi)發(fā)平臺(tái)(5)系統(tǒng)使用的范圍(6)按照系統(tǒng)開(kāi)發(fā)主體面向的對(duì)象

國(guó)內(nèi)圖書(shū)管理系統(tǒng)應(yīng)用情況125國(guó)內(nèi)Android開(kāi)發(fā)行業(yè)市場(chǎng)現(xiàn)狀國(guó)內(nèi)的Android開(kāi)發(fā)還是以應(yīng)用開(kāi)發(fā)為主,主要分成3類(lèi):為企業(yè)開(kāi)發(fā)應(yīng)用開(kāi)發(fā)通用應(yīng)用(AndroidMarket或者其他AppMarket銷(xiāo)售)游戲開(kāi)發(fā)(AndroidMarket或者其他AppMarket銷(xiāo)售)。126國(guó)內(nèi)Android開(kāi)發(fā)行業(yè)市場(chǎng)現(xiàn)狀第一類(lèi)開(kāi)發(fā)者在較大的公司,為自有品牌或者其他品牌設(shè)計(jì)手機(jī)或者平板電腦的總體方案。根據(jù)需求對(duì)系統(tǒng)進(jìn)行定制外,為系統(tǒng)編寫(xiě)定制的應(yīng)用。第二類(lèi)開(kāi)發(fā)者在創(chuàng)業(yè)型公司或者是獨(dú)立開(kāi)發(fā)者,盈利方式主要2種:為國(guó)外公司外包開(kāi)發(fā),或者通過(guò)Google的移動(dòng)廣告(AdMob)點(diǎn)擊分成。通過(guò)付費(fèi)下載的形式來(lái)盈利的,現(xiàn)在國(guó)內(nèi)鮮見(jiàn)成功者。第三類(lèi)開(kāi)發(fā)者和第二類(lèi)開(kāi)發(fā)者類(lèi)似。開(kāi)發(fā)者提交的應(yīng)用開(kāi)發(fā)數(shù)目遠(yuǎn)超游戲開(kāi)發(fā)。127任務(wù)2軟件開(kāi)發(fā)計(jì)劃問(wèn)題定義可行性研究可行否?否是終止項(xiàng)目計(jì)劃時(shí)期開(kāi)發(fā)時(shí)期128任務(wù)2軟件開(kāi)發(fā)計(jì)劃難于上青天!做項(xiàng)目計(jì)劃,如同給一個(gè)待出生的嬰兒寫(xiě)傳記易如反掌!如果項(xiàng)目結(jié)束后再寫(xiě)計(jì)劃,那就輕松多了,并且可以100%地準(zhǔn)確129軟件開(kāi)發(fā)計(jì)劃1.問(wèn)題定義目標(biāo)!目標(biāo)!目標(biāo)!。。。130軟件開(kāi)發(fā)計(jì)劃1.問(wèn)題定義(1)問(wèn)題定義的任務(wù)開(kāi)發(fā)目標(biāo)開(kāi)發(fā)規(guī)模開(kāi)發(fā)時(shí)間(2)問(wèn)題定義的內(nèi)容文檔化以上內(nèi)定

131問(wèn)題定義-案例⑴項(xiàng)目名稱(chēng):教材銷(xiāo)售系統(tǒng)⑵開(kāi)發(fā)背景:人工發(fā)售教材手續(xù)繁瑣,且易出錯(cuò)。⑶項(xiàng)目目標(biāo):建立一個(gè)效率比人工操作提高2倍、差錯(cuò)率下降50%的系統(tǒng)。⑷項(xiàng)目范圍利用現(xiàn)有PC(不增加設(shè)備)軟件開(kāi)發(fā)費(fèi)用不超過(guò)100萬(wàn)元完成時(shí)間2019年10月31日⑸初步想法:在系統(tǒng)中增加采購(gòu)功能、對(duì)缺書(shū)的統(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軟件開(kāi)發(fā)計(jì)劃可行性分析:決定“做還是不做”需求分析:決定“做什么,不做什么”。實(shí)際案例:機(jī)票代理人項(xiàng)目老板的干活134軟件開(kāi)發(fā)計(jì)劃2.可行性分析(1)主要內(nèi)容

可行性分析四大要素:經(jīng)濟(jì)技術(shù)環(huán)境人

135可行性分析-案例1炫鈴項(xiàng)目的可行性無(wú)人無(wú)積累(技術(shù))環(huán)境(有市場(chǎng)前景)資金(1年)136可行性分析-案例2華為任正非早期冒險(xiǎn):人不夠(一邊開(kāi)發(fā),一邊找人)無(wú)積累(無(wú)技術(shù)--紅寶書(shū))資金(前期約1年,后欠工資)環(huán)境(有市場(chǎng),政策無(wú)支持)一拍腦袋:“豁出去,干!”137可行性分析-案例3聯(lián)想集團(tuán)柳傳志沒(méi)錢(qián)賺的事我們不干;有錢(qián)賺但投不起錢(qián)的事不干;有錢(qián)賺也投得起錢(qián)但沒(méi)有可靠的人選,這樣的事也不干。138成本收益分析成本:(1)辦公室房租。(2)辦公用品,如桌、椅、書(shū)柜、電器、空調(diào)。(3)計(jì)算機(jī)、打印機(jī)、網(wǎng)絡(luò)等硬件設(shè)備。(4)電話、傳真等通訊設(shè)備以及通訊費(fèi)用。(5)資料費(fèi)。(6)辦公消耗,如水電費(fèi)、打印復(fù)印費(fèi)等。(7)軟件開(kāi)發(fā)人員與行政人員工資。(8)系統(tǒng)軟件費(fèi)用,如數(shù)據(jù)庫(kù)、開(kāi)發(fā)工具等。(9)市場(chǎng)調(diào)查、可行性分析、需求分析的費(fèi)用。(10)公司人員培訓(xùn)費(fèi)用。(11)產(chǎn)品宣傳費(fèi)用。(12)如果客戶(hù)攻關(guān)費(fèi),吃喝玩樂(lè)的費(fèi)用。(13)管理費(fèi)。每戳一個(gè)公章都要化一把鈔票。收入:項(xiàng)目收入(合同)人在錢(qián)沒(méi)了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軟件開(kāi)發(fā)計(jì)劃2.可行性分析(2)可行性分析的主要步驟確定目標(biāo)進(jìn)行系統(tǒng)調(diào)查列出可能的技術(shù)方案技術(shù)先進(jìn)性分析經(jīng)濟(jì)效益分析綜合評(píng)價(jià)優(yōu)選可取方案并寫(xiě)出可行性分析報(bào)告

143軟件開(kāi)發(fā)計(jì)劃(3)可行性分析的評(píng)價(jià)原則效益性原則經(jīng)濟(jì)性原則可靠性原則

可比性原則144軟件開(kāi)發(fā)計(jì)劃3.可行性分析報(bào)告可行性分析報(bào)告的一般格式可行性分析報(bào)告通常包括封面和內(nèi)容兩個(gè)部分可行性分析報(bào)告案例--圖書(shū)管理系統(tǒng)145軟件開(kāi)發(fā)計(jì)劃4.系統(tǒng)的開(kāi)發(fā)計(jì)劃開(kāi)發(fā)計(jì)劃主要任務(wù)

項(xiàng)目開(kāi)發(fā)計(jì)劃編寫(xiě)提示--圖書(shū)館管理

蘋(píng)果飛船總部計(jì)劃1.3萬(wàn)人146小結(jié)案例:圖書(shū)館管理系統(tǒng)研發(fā)背景問(wèn)題定義可行性分析主要任務(wù)基本的步驟分析報(bào)告開(kāi)發(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.類(lèi)圖陷阱:武器的進(jìn)步149任務(wù)1.調(diào)查系統(tǒng)的需求1.調(diào)查系統(tǒng)的需求功能需求和技術(shù)需求系統(tǒng)相關(guān)者建立系統(tǒng)需求原型150需求分析的困難?。?)客戶(hù)說(shuō)不清楚需求;(2)需求自身經(jīng)常變動(dòng);(3)分析人員或客戶(hù)理解有誤。151需求分析的困難?。?)客戶(hù)說(shuō)不清楚需求例:買(mǎi)鞋子腳大小形狀152需求分析的困難?。?)需求自身經(jīng)常變動(dòng)沒(méi)有一個(gè)軟件的需求改動(dòng)少于三次唯一改動(dòng)需求兩次的在去第三次改動(dòng)需求的路上去世了例:時(shí)裝153需求分析的困難?。?)分析人員或客戶(hù)理解有誤

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)的需求樹(shù)上有10只鳥(niǎo),打了1只,還有幾只?“是無(wú)聲手槍或別的無(wú)聲的槍嗎?”

“不是?!?/p>

“槍聲有多大?”

“80-100分貝。”

“那就是說(shuō)會(huì)震的耳朵疼?”

“是?!?/p>

“在這個(gè)城市里打鳥(niǎo)犯不犯法?”

“不犯?!?/p>

“您確定那只鳥(niǎo)真的被打死啦?”

“確定?!迸家呀?jīng)不耐煩了“拜托,你告訴我還剩幾只就行了,ok”

“ok,樹(shù)上的鳥(niǎo)里有沒(méi)有聾子?”

“沒(méi)有?!?/p>

“有沒(méi)有關(guān)在籠子里的?”

“沒(méi)有。”

“邊上還有沒(méi)有其他的樹(shù),樹(shù)上還有沒(méi)有其他鳥(niǎo)?”

“沒(méi)有。”“有沒(méi)有殘疾的或餓的飛不動(dòng)的鳥(niǎo)?”

“沒(méi)有?!?/p>

“算不算懷孕肚子里的小鳥(niǎo)?”

“不算?!?/p>

“打鳥(niǎo)的人眼有沒(méi)有花?保證是十只?”

“沒(méi)有花,就十只?!迸家呀?jīng)滿腦門(mén)是汗,且下課鈴響,但他繼續(xù)問(wèn),

“有沒(méi)有傻的不怕死的?”

“都怕死?!?/p>

“會(huì)不會(huì)一槍打死兩只?”

“不會(huì)?!?/p>

“所有的鳥(niǎo)都可以自由活動(dòng)嗎?”

“完全可以。”

學(xué)生滿懷信心的說(shuō),“打死的鳥(niǎo)要是掛在樹(shù)上沒(méi)掉下來(lái),那么就剩一只,如果掉下來(lái),就一只不剩?!?/p>

156調(diào)查系統(tǒng)的需求2.系統(tǒng)相關(guān)者用戶(hù):實(shí)際使用系統(tǒng)處理日常事務(wù)的人客戶(hù):那些購(gòu)買(mǎi)和擁有系統(tǒng)的人技術(shù)人員:確保系統(tǒng)運(yùn)行的人外部實(shí)體:例如公司的顧客比爾-蓋茨:“我家沒(méi)有任何一款蘋(píng)果產(chǎn)品,我們?nèi)乙矎膩?lái)不吃蘋(píng)果?!?/p>

喬布斯:“我家一個(gè)窗戶(hù)都沒(méi)有?!?/p>

157調(diào)查系統(tǒng)的需求需求調(diào)查方法:直接與客戶(hù)交談足球評(píng)論員“大嘴”侃出需求有些需求客戶(hù)講不清楚請(qǐng)教行家“聽(tīng)君一席言,勝讀十年書(shū)。”客戶(hù)與分析人員想都沒(méi)有想過(guò)分析同類(lèi)軟件,優(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)的物理過(guò)程和活動(dòng)(2)從現(xiàn)有物理過(guò)程中提取出業(yè)務(wù)邏輯功能(3)為將在新系統(tǒng)中使用的方法開(kāi)發(fā)出業(yè)務(wù)邏輯功能(刪)(4)定義新系統(tǒng)的物理處理需求(物理改為業(yè)務(wù))159任務(wù)2模型2.模型模型的作用及類(lèi)型邏輯模型和物理模型例:法拉利牌坦克酷性能突出,流線型設(shè)計(jì)符合年輕人愛(ài)好戰(zhàn)斗力很差160模型1.模型的作用及類(lèi)型(1)模型的作用提取系統(tǒng)需求信息系統(tǒng)分析員整理思路系統(tǒng)的分析和集成記憶和把握相關(guān)細(xì)節(jié)系統(tǒng)開(kāi)發(fā)小組間進(jìn)行交流為維護(hù)和升級(jí)提供文檔參考大爆炸宇宙模型161模型1.模型的作用及類(lèi)型(2)模型的類(lèi)型

數(shù)學(xué)模型描述系統(tǒng)技術(shù)方面的一系列數(shù)學(xué)公式如:利潤(rùn)=收入-成本描述模型描述系統(tǒng)某些方面的敘述性的備忘錄、報(bào)表、列表、文字等如,監(jiān)聽(tīng)刪除操作:刪除操作一旦執(zhí)行,立即被監(jiān)聽(tīng)器捕獲到,進(jìn)而在執(zhí)行刪除操作前執(zhí)行自定義的函數(shù)體,即判斷實(shí)體有無(wú)undeletable標(biāo)簽,有則中斷刪除操作,無(wú)則正常刪除。圖形模型描述系統(tǒng)的圖表或系統(tǒng)某些方面的示意性表示162模型2.邏輯模型和物理模型(1)邏輯模型在系統(tǒng)分析階段所建立的模型詳細(xì)定義了系統(tǒng)需求但并沒(méi)有局限于某一具體技術(shù)常用邏輯模型用例圖類(lèi)圖順序圖狀態(tài)圖/協(xié)作圖注意:面向?qū)ο笈c面向過(guò)程163模型2.邏輯模型和物理模型(2)物理模型在系統(tǒng)設(shè)計(jì)階段建立的模型顯示了如何使用具體技術(shù)來(lái)實(shí)現(xiàn)系統(tǒng)的某些方面常用模型界面報(bào)表數(shù)據(jù)庫(kù)結(jié)構(gòu)流程網(wǎng)絡(luò)分布164任務(wù)3事件3.事件事件的概念和類(lèi)型事件定義圖書(shū)館管理系統(tǒng)中的事件黑屏事件165事件1.事件的概念和類(lèi)型(1)外部事件(2)臨時(shí)事件(3)狀態(tài)事件

2.事件定義(1)區(qū)分事件和觸發(fā)事件的條件以及系統(tǒng)響應(yīng)(2)跟蹤事務(wù)處理的生命周期(3)暫不考慮技術(shù)依賴(lài)事件和系統(tǒng)控制

166事件3.圖書(shū)館管理系統(tǒng)中的事件書(shū)目查詢(xún)帳戶(hù)查詢(xún)及更改預(yù)約/退訂圖書(shū)借/還書(shū)逾期罰款丟失賠償催還圖書(shū)借書(shū)排行167事件3.圖書(shū)館管理系統(tǒng)中的事件書(shū)目查詢(xún)借/還書(shū)…事件觸發(fā)器來(lái)源活動(dòng)/用例響應(yīng)目的地使用者查詢(xún)書(shū)目信息書(shū)目查詢(xún)查詢(xún)者查詢(xún)所需書(shū)目查詢(xún)結(jié)果查詢(xún)者168《金剛》-3D軟件建模2.07億美元3500臺(tái)計(jì)算機(jī)“金剛”完全電腦特效電影技術(shù)進(jìn)入電腦時(shí)代169任務(wù)4事物4.事物1.事物的概念和類(lèi)型2.事物間的關(guān)系3.事物的屬性4.數(shù)據(jù)實(shí)體和對(duì)象“人要么是天才,要么是笨蛋!”

“你想一輩子賣(mài)糖水,還是改變世界?”

“我們從不以偷竊別人的偉大作品為恥!”

“軟件就是用戶(hù)體驗(yàn)。”170事物1.事物的概念和類(lèi)型171事物1.事物的概念和類(lèi)型特征驅(qū)動(dòng)開(kāi)發(fā)(FDD)四色建模

172事物2.事物間的關(guān)系3.事物的屬性173事物4.數(shù)據(jù)實(shí)體和對(duì)象數(shù)據(jù)實(shí)體與過(guò)程是分離的對(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)用來(lái)定義數(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類(lèi)圖6.類(lèi)圖用面向?qū)ο蟮姆椒ǚ治鍪挛镱?lèi)圖的符號(hào)

建模的目標(biāo)

需求分析規(guī)格說(shuō)明書(shū)編寫(xiě)提綱181類(lèi)圖1.用面向?qū)ο蟮姆椒ǚ治鍪挛锓诸?lèi)分析方法(概括-具體)繼承機(jī)動(dòng)車(chē)輛小汽車(chē)卡車(chē)拖拉機(jī)轎車(chē)跑車(chē)體育用車(chē)機(jī)動(dòng)車(chē)輛的泛化/具體層次圖(繼承關(guān)系)182類(lèi)圖1.用面向?qū)ο蟮姆椒ǚ治鍪挛锓诸?lèi)分析方法(概括-具體)繼承訂單電話訂單網(wǎng)上訂單郵件訂單183類(lèi)圖1.用面向?qū)ο蟮姆椒ǚ治鍪挛镎w—局部分析方法聚合合成184類(lèi)圖2.類(lèi)圖的符號(hào)基于統(tǒng)一建模語(yǔ)言(UML)面向?qū)ο笙到y(tǒng)開(kāi)發(fā)中建立模型的實(shí)際標(biāo)準(zhǔn)

185類(lèi)圖2.類(lèi)圖的符號(hào)基于統(tǒng)一建模語(yǔ)言(UML)面向?qū)ο笙到y(tǒng)開(kāi)發(fā)中建立模型的實(shí)際標(biāo)準(zhǔn)

186類(lèi)圖3.建模的目標(biāo)

結(jié)構(gòu)化方法:--錯(cuò)誤的!事件表->數(shù)據(jù)流圖(DFD)面向?qū)ο蠓椒ǎ菏录恚?gt;用例圖->類(lèi)圖->順序圖/狀態(tài)圖187類(lèi)圖3.建模的目標(biāo)

結(jié)構(gòu)化方法--錯(cuò)誤的!面向?qū)ο蠓椒?88需求分析規(guī)格說(shuō)明書(shū)

僅僅建模還是不夠的需求分析成果->需求分析說(shuō)明書(shū)需求分析規(guī)格說(shuō)明書(shū)提綱1.引言2.任務(wù)概述3.需求規(guī)定4.運(yùn)行環(huán)境設(shè)定5.縮寫(xiě)詞表6.參考文獻(xiàn)189送餐管理系統(tǒng)--需求分析過(guò)程分析員:“在你們打理生意時(shí),哪些事情促使你們決定采用計(jì)算機(jī)管理?告訴我通常這些業(yè)務(wù)是如何進(jìn)行的?!笨蛻?hù):“是這樣,當(dāng)客戶(hù)打電話訂餐時(shí),我需要把它記下來(lái),然后通知給相應(yīng)的餐館。我需要決定派哪一個(gè)司機(jī)去送貨,因此要司機(jī)打電話告訴我他們什么時(shí)間有空。有時(shí),客戶(hù)會(huì)又打電話更改訂單內(nèi)容,因此我必須找到原始訂單,然后通知餐館更改?!狈治鰡T:“好的,那你們又怎么管理現(xiàn)金呢?”客戶(hù):“司機(jī)取飯菜時(shí)會(huì)從餐館直接拿到賬單的副本,賬單和我們的計(jì)算應(yīng)該是一致的,然后司機(jī)送貨時(shí)收取相應(yīng)的現(xiàn)金并加上服務(wù)費(fèi)。在下班時(shí),司機(jī)報(bào)賬,我們把司機(jī)收到的現(xiàn)金匯總起來(lái),和我們的記錄進(jìn)行比較,所有的司機(jī)都交完賬后,我們需要開(kāi)張銀行存款單,存入當(dāng)天的現(xiàn)金總收入。每周末,我們按提前約定的批發(fā)價(jià)來(lái)計(jì)算欠餐館多少錢(qián),把結(jié)算單和支票寄給他們?!?90送餐管理系統(tǒng)--需求分析過(guò)程分析員:“那你們還想從這個(gè)系統(tǒng)中獲取別的信息嗎?”客戶(hù):“如果每周末能統(tǒng)計(jì)出每個(gè)餐館有多少訂單、城里每個(gè)區(qū)有多少訂單等信息就更好了。這能幫助我們制定廣告策略及與餐館的合同,而且我們還需要每月財(cái)務(wù)狀況統(tǒng)計(jì)結(jié)果?!痹诳蛻?hù)說(shuō)話時(shí),分析員記下了幾個(gè)要點(diǎn),畫(huà)了幾張草圖。之后,他花了一些時(shí)間仔細(xì)考慮,總結(jié)出“送餐管理”的需求狀況。191送餐管理系統(tǒng)--需求分析過(guò)程1.在發(fā)生如下事件時(shí),系統(tǒng)

可以進(jìn)行處理:客戶(hù)打電話下訂餐訂單客戶(hù)打電話修改訂單送貨司機(jī)匯報(bào)工作情況送貨司機(jī)上交一天的收入2.在特定時(shí)間內(nèi)系統(tǒng)產(chǎn)生所

需信息:生成日結(jié)算存款單生成周末餐館支付帳單生成周銷(xiāo)售報(bào)表生成月財(cái)務(wù)報(bào)表3.需要建立業(yè)務(wù)實(shí)體:餐館菜單客戶(hù)訂單訂單支付帳單司機(jī)(送餐員)192送餐管理系統(tǒng)--用例圖193送餐管理系統(tǒng)--類(lèi)圖194送餐管理系統(tǒng)--順序圖195小結(jié)面向?qū)ο蠓治龇椒ǎㄕ莆眨┯美龍D類(lèi)圖順序圖狀態(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ì)

沒(méi)有軟件設(shè)計(jì)199軟件設(shè)計(jì)分解過(guò)程總體設(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ù)庫(kù)模式詳細(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)就如同人的骨架如骨架是猴子,無(wú)論怎樣喂養(yǎng)和美容,始終是猴子,成不了人。模塊(子系統(tǒng))就如同人的器官,有特定的功能最出色的子系統(tǒng)是手,只有幾種動(dòng)作,卻能做無(wú)限多的事情。最糟糕的模塊設(shè)計(jì)之一是嘴巴,混合毫無(wú)相干的功能(如吃飯、說(shuō)話、親吻)202軟件設(shè)計(jì)詳細(xì)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)與算法如同人的血脈和神經(jīng)(發(fā)揮功能)聾子天生就是啞巴(關(guān)系)人體的數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)十分神奇也十分可笑用戶(hù)界面如同人的外表,讓人一見(jiàn)鐘情(或一見(jiàn)嘔吐)Unix系統(tǒng)是健壯的漢子和婦人Windows系統(tǒng)是嫵媚的小白臉和狐貍精化妝可以獲得更好的界面203總體設(shè)計(jì)的基本內(nèi)容1.總體設(shè)計(jì)的目標(biāo)設(shè)計(jì)合理的軟件架構(gòu)分解為合理的模塊(包)2.總體設(shè)計(jì)的步驟:(1)用戶(hù)需要->系統(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ù)庫(kù)設(shè)計(jì)(一般在詳細(xì)設(shè)計(jì))3.編寫(xiě)總體設(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àn)層次結(jié)構(gòu)和WEB結(jié)構(gòu)207總體設(shè)計(jì)--層次結(jié)構(gòu)為什么分層次?系統(tǒng)太復(fù)雜無(wú)法一口氣干完與人的認(rèn)識(shí)符合208總體設(shè)計(jì)-體系結(jié)構(gòu)JAVA開(kāi)發(fā)平臺(tái)體系結(jié)構(gòu)209總體設(shè)計(jì)--網(wǎng)絡(luò)結(jié)構(gòu)JAVA開(kāi)發(fā)平臺(tái)網(wǎng)絡(luò)結(jié)構(gòu)210總體設(shè)計(jì)--系統(tǒng)架構(gòu)JAVA開(kāi)發(fā)平臺(tái)架構(gòu)211總體設(shè)計(jì)--模塊功能劃分體系結(jié)構(gòu)-(決定)

各模塊功能從功能上劃分模塊模塊化設(shè)計(jì)原則保持“功能獨(dú)立”抽象(事物本質(zhì))信息隱藏212總體設(shè)計(jì)--模塊功能劃分保持“功能獨(dú)立”降低開(kāi)發(fā)、測(cè)試、維護(hù)等階段的代價(jià)溝通成本最低例:美國(guó)獨(dú)立戰(zhàn)爭(zhēng)(獨(dú)立國(guó)家)213總體設(shè)計(jì)--模塊功能劃分抽象(事物本質(zhì))抽象是設(shè)計(jì)的本質(zhì)例:微軟和聯(lián)通有仇?國(guó)際碼,“啊”:B0A1214總體設(shè)計(jì)--模塊功能劃分信息隱藏模塊只提供對(duì)外的接口模塊內(nèi)部不對(duì)外開(kāi)放好事不出門(mén),壞事傳千里?。肆诸D)老師:要是坐在后排聊天的同學(xué)能象中間打牌的同學(xué)那么安靜,就不會(huì)影響到前排睡覺(jué)的同學(xué)。215總體設(shè)計(jì)--UI模塊JAVA開(kāi)發(fā)平臺(tái)UI模塊216總體設(shè)計(jì)--DAO模塊JAVA開(kāi)發(fā)平臺(tái)DAO模塊217總體設(shè)計(jì)--DAO模塊JAVA開(kāi)發(fā)平臺(tái)MVC模塊218總體設(shè)計(jì)--DAO模塊JAVA開(kāi)發(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ì)的說(shuō)明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ì)的過(guò)程中進(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)管理圖書(shū)管理讀者管理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硬盤(pán)內(nèi)存軟件平臺(tái)操作系統(tǒng)數(shù)據(jù)庫(kù)228任務(wù)3面向?qū)ο笤O(shè)計(jì)面向?qū)ο蟮牡脑O(shè)計(jì)方法系統(tǒng)行為?圖書(shū)管理系統(tǒng)的用例圖對(duì)象交互?圖書(shū)管理系統(tǒng)的交互圖對(duì)象行為?圖書(shū)管理系統(tǒng)的狀態(tài)圖229

面向?qū)ο蟮能浖O(shè)計(jì)230

面向?qū)ο蟮能浖O(shè)計(jì)是一種新的程序設(shè)計(jì)范型是一種運(yùn)用對(duì)象、類(lèi)、繼承、封裝、聚合、消息傳送、多態(tài)性等概念來(lái)構(gòu)造系統(tǒng)的軟件開(kāi)發(fā)方法231面向?qū)ο蠓椒ㄖ饕枷霃默F(xiàn)實(shí)世界中存在的事物出發(fā)建立軟件系統(tǒng)以問(wèn)題域(現(xiàn)實(shí)世界)中的事物為中心來(lái)思考問(wèn)題、認(rèn)識(shí)問(wèn)題根據(jù)這些事物的本質(zhì)特征,抽象地表示為系統(tǒng)中的對(duì)象使系統(tǒng)直接映射問(wèn)題域,保持問(wèn)題域中事物及其相互關(guān)系的本來(lái)面貌充分運(yùn)用人類(lèi)日常的思維方式232面向?qū)ο蠓椒ㄖ饕枷霃默F(xiàn)實(shí)世界中存在的事物出發(fā)建立軟件系統(tǒng)充分運(yùn)用人類(lèi)日常的思維方式運(yùn)用人類(lèi)在日常的邏輯思維中采用的思想方法與原則,例如抽象、分類(lèi)、繼承、聚合、封裝等軟件開(kāi)發(fā)者能更有效地思考問(wèn)題,其他人能看得懂的方式把自己的認(rèn)識(shí)表達(dá)出來(lái)233面向?qū)ο箝_(kāi)發(fā)方法的開(kāi)發(fā)過(guò)程面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計(jì)面向?qū)ο缶幊?34軟件開(kāi)發(fā)全過(guò)程運(yùn)用面向?qū)ο蠓椒嫦驅(qū)ο笳Z(yǔ)言正取得令人振奮的發(fā)展編程并不是軟件開(kāi)發(fā)問(wèn)題的主要根源需求分析與設(shè)計(jì)問(wèn)題更為普遍并且更值得解決適合于解決分析與設(shè)計(jì)期間的復(fù)雜性實(shí)現(xiàn)分析與設(shè)計(jì)的復(fù)用在軟件生命周期采用一種全新的方法——《軟件工程百科全書(shū)》235面向?qū)ο蠓椒▽?duì)象:屬性+服務(wù)(獨(dú)立的系統(tǒng)單位)盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)售報(bào)亭屬性服務(wù)報(bào)刊A報(bào)刊B…錢(qián)箱報(bào)刊零售款貨清點(diǎn)顧客236面向過(guò)程與面向?qū)ο蟮膮^(qū)別數(shù)據(jù)結(jié)構(gòu)+算法=程序設(shè)計(jì)以對(duì)象為中心組織數(shù)據(jù)與操作數(shù)據(jù)對(duì)象的屬性操作對(duì)象的服務(wù)類(lèi)型與變量類(lèi)與對(duì)象實(shí)例函數(shù)(過(guò)程)調(diào)用消息傳送類(lèi)型與子類(lèi)型一般類(lèi)與特殊類(lèi),繼承構(gòu)造類(lèi)型整體-部分結(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)行語(yǔ)法分析找出名詞或者名詞短語(yǔ)根據(jù)這些名詞或者名詞短語(yǔ)確定對(duì)象對(duì)象可以是240關(guān)鍵抽象在線拍賣(mài)拍賣(mài)和拍賣(mài)物項(xiàng)信用卡競(jìng)拍

分類(lèi)

用戶(hù)帳戶(hù)和未付款項(xiàng)關(guān)鍵抽象業(yè)務(wù)實(shí)體

實(shí)體之間的關(guān)系例:一個(gè)拍賣(mài)就含多個(gè)拍賣(mài)物項(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)鍵抽象成為分析模型中的類(lèi)

2422確定屬性找出對(duì)象的一組有意義的屬性研究系統(tǒng)描述,選擇與對(duì)象相關(guān)聯(lián)的信息例:“家庭安全系統(tǒng)”的屬性傳感器信息=傳感器類(lèi)型+傳感器編號(hào)+警報(bào)臨界值報(bào)警響應(yīng)信息=延遲時(shí)間+電話號(hào)碼+警報(bào)類(lèi)型起動(dòng)/撤銷(xiāo)信息=主口令+允許嘗試的次數(shù)+暫時(shí)口令標(biāo)識(shí)信息=系統(tǒng)表示號(hào)+驗(yàn)證電話號(hào)碼+系統(tǒng)狀態(tài)2433定義操作研究系統(tǒng)的需求描述進(jìn)行語(yǔ)法分析,隔離出動(dòng)詞選擇與對(duì)象相聯(lián)關(guān)的動(dòng)詞(操作)選擇屬于對(duì)象的操作(方法)

例:“家庭安全系統(tǒng)”“傳感器被賦予一個(gè)編號(hào)和類(lèi)型”“設(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

類(lèi)名屬性操作246

面向?qū)ο蟮能浖O(shè)計(jì)247

面向?qū)ο蟮能浖O(shè)計(jì)2.系統(tǒng)行為?圖書(shū)管理系統(tǒng)的用例圖(1)用例、參與者以及場(chǎng)景(2)用例和參與者關(guān)系以及用例之間的關(guān)系關(guān)聯(lián)關(guān)系248

面向?qū)ο蟮能浖O(shè)計(jì)2.系統(tǒng)行為?圖書(shū)管理系統(tǒng)的用例圖(1)用例、參與者以及場(chǎng)景(2)用例和參與者關(guān)系以及用例之間的關(guān)系包含關(guān)系一個(gè)用例包含另一個(gè)用例的行為249

面向?qū)ο蟮能浖O(shè)計(jì)2.系統(tǒng)行為?圖書(shū)管理系統(tǒng)的用例圖(1)用例、參與者以及場(chǎng)景(2)用例和參與者關(guān)系以及用例之間的關(guān)系擴(kuò)展關(guān)系基礎(chǔ)用例的增量擴(kuò)展250

面向?qū)ο蟮能浖O(shè)計(jì)2.系統(tǒng)行為?圖書(shū)管理系統(tǒng)的用例圖(1)用例、參與者以及場(chǎng)景(2)用例和參與者關(guān)系以及用例之間的關(guān)系泛化關(guān)系子用例是父用例的特例251圖書(shū)管理系統(tǒng)的用例圖252圖書(shū)管理系統(tǒng)的用例圖253圖書(shū)管理系統(tǒng)的用例圖254

面向?qū)ο蟮能浖O(shè)計(jì)3.對(duì)象交互?圖書(shū)管理系統(tǒng)的交互圖(1)順序圖的基本構(gòu)成255

面向?qū)ο蟮能浖O(shè)計(jì)3.對(duì)象交互?圖書(shū)管理系統(tǒng)的交互圖(1)順序圖的基本構(gòu)成(2)如何開(kāi)發(fā)順序圖確定所有與場(chǎng)景有關(guān)的對(duì)象和參與者確定完成場(chǎng)景的消息將消息排序,放在合適的參與者和對(duì)象上,標(biāo)示對(duì)象生命線256圖書(shū)館管理系統(tǒng)中的順序圖257圖書(shū)館管理系統(tǒng)中的順序圖258圖書(shū)館管理系統(tǒng)中的協(xié)作圖259圖書(shū)館管理系統(tǒng)中的協(xié)作圖260圖書(shū)館管理系統(tǒng)中的協(xié)作圖261圖書(shū)館管理系統(tǒng)中的協(xié)作圖262

面向?qū)ο蟮能浖O(shè)計(jì)4.對(duì)象行為?圖書(shū)管理系統(tǒng)的狀態(tài)圖(1)對(duì)象狀態(tài)和狀態(tài)轉(zhuǎn)換263

面向?qū)ο蟮能浖O(shè)計(jì)4.對(duì)象行為?圖書(shū)管理系統(tǒng)的狀態(tài)圖(2)如何開(kāi)發(fā)狀態(tài)圖選擇狀態(tài)復(fù)雜的關(guān)鍵類(lèi)辨識(shí)類(lèi)的所有狀態(tài)從初始狀態(tài)開(kāi)始,按轉(zhuǎn)換順序聯(lián)接狀態(tài),到終止?fàn)顟B(tài)標(biāo)示轉(zhuǎn)換消息264圖書(shū)館管理系統(tǒng)的狀態(tài)圖265圖書(shū)館管理系統(tǒng)的狀態(tài)圖266小結(jié)系統(tǒng)總體(概要)設(shè)計(jì)面向結(jié)構(gòu)化設(shè)計(jì)面向?qū)ο笤O(shè)計(jì)案例:圖書(shū)館管理系統(tǒng)以面向?qū)ο笤O(shè)計(jì)方法運(yùn)用UML建模語(yǔ)言描述了系統(tǒng)設(shè)計(jì)的過(guò)程267項(xiàng)目六軟件項(xiàng)目詳細(xì)設(shè)計(jì)

268項(xiàng)目六主要任務(wù)1.系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容2.圖書(shū)管理系統(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.圖書(shū)管理系統(tǒng)的詳細(xì)設(shè)計(jì)系統(tǒng)包圖類(lèi)的類(lèi)型以及類(lèi)之間的關(guān)系圖書(shū)館管理系統(tǒng)的類(lèi)圖設(shè)計(jì)類(lèi)圖的開(kāi)發(fā)270項(xiàng)目六主要任務(wù)3.用戶(hù)界面設(shè)計(jì)用戶(hù)界面設(shè)計(jì)應(yīng)具有的特點(diǎn)用戶(hù)界面設(shè)計(jì)的基本類(lèi)型和基本原則圖書(shū)館管理系統(tǒng)的界面設(shè)計(jì)271系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容1.詳細(xì)設(shè)計(jì)概述表達(dá)過(guò)程規(guī)格說(shuō)明的工具叫做詳細(xì)設(shè)計(jì)工具,它可以分為如下三類(lèi)。(1)圖形工具把過(guò)程的細(xì)節(jié)用圖形方式描述出來(lái)。(2)表格工具用一張表來(lái)表達(dá)過(guò)程細(xì)節(jié),這張表列出了各種可能的操作及其相應(yīng)條件,也就是描述了輸入、處理和輸出信息。(3)語(yǔ)言工具用某種高級(jí)語(yǔ)言(偽碼)來(lái)描述過(guò)程細(xì)節(jié)。272系統(tǒng)詳細(xì)設(shè)計(jì)的基本內(nèi)容2.詳細(xì)設(shè)計(jì)的基本任務(wù)詳細(xì)設(shè)計(jì)過(guò)程中需要完成的工作主要是確定軟件各個(gè)組成部分的算法以及各部分的內(nèi)部數(shù)據(jù)結(jié)構(gòu)和確定各個(gè)組成部分的邏輯過(guò)程,此外,還要做以下工作。(1)處理方式的設(shè)計(jì)(2)物理設(shè)計(jì)(3)可靠性設(shè)計(jì)(4)其他設(shè)計(jì)(5)編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(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ì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言(ProgramDesignLanguage)也稱(chēng)為偽代碼,它使用結(jié)構(gòu)化編程語(yǔ)言的風(fēng)格描述程序算法,但不遵循特定編程語(yǔ)言的語(yǔ)法,程序設(shè)計(jì)語(yǔ)言允許用戶(hù)在此代碼更高的層次上進(jìn)行設(shè)計(jì),通常省略與算法無(wú)關(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ì)類(lèi)的屬性進(jìn)行處理。方法(操作)對(duì)數(shù)據(jù)進(jìn)行的處理有很多類(lèi),主要包括三類(lèi):對(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)用類(lèi)似編程語(yǔ)言的方式表達(dá)出來(lái)。

275圖書(shū)管理系統(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.類(lèi)的類(lèi)型以及類(lèi)之間的關(guān)系(1)類(lèi)的類(lèi)型在面向?qū)ο蟮南到y(tǒng)中,對(duì)象分為三類(lèi):實(shí)體類(lèi)、邊界類(lèi)和控制類(lèi)。通過(guò)這些對(duì)象的合作來(lái)實(shí)現(xiàn)用例。(2)類(lèi)之間的關(guān)系276圖書(shū)管理系統(tǒng)的詳細(xì)設(shè)計(jì)3.圖書(shū)館管理系統(tǒng)的類(lèi)圖4.設(shè)計(jì)類(lèi)圖的開(kāi)發(fā)(1)決定需要設(shè)計(jì)的類(lèi)(2)找到屬于這個(gè)類(lèi)的所有方法(3)詳細(xì)描述帶有邏輯的方法277

用戶(hù)界面設(shè)計(jì)1.用戶(hù)界面設(shè)計(jì)應(yīng)具有的特點(diǎn)(1)可使用性使用的簡(jiǎn)單性用戶(hù)界面中的術(shù)語(yǔ)標(biāo)準(zhǔn)化和一致性擁有HTML幫助功能速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本用戶(hù)界面應(yīng)具有容錯(cuò)能力、錯(cuò)誤診斷功能(2)靈活性

算法的可隱可顯性用戶(hù)可以根據(jù)需要制定和修改界面形式系統(tǒng)能夠按照用戶(hù)的希望和需求,提供不同詳細(xì)程度的系統(tǒng)響應(yīng)信息與其他軟件系統(tǒng)一樣應(yīng)有標(biāo)準(zhǔn)的界面

278用戶(hù)界面設(shè)計(jì)(3)復(fù)雜性與可靠性用戶(hù)界面的規(guī)模和組織的復(fù)雜程度就是界面的復(fù)雜性用戶(hù)界面的可靠性是指無(wú)故障使用的間隔時(shí)間2.用戶(hù)界面設(shè)計(jì)的基本類(lèi)型和基本原則(1)用戶(hù)界面設(shè)計(jì)的基本類(lèi)型(2)用戶(hù)界面設(shè)計(jì)的基本原則(3)用戶(hù)界面設(shè)計(jì)的基本方法(4)繼續(xù)做原型(5)設(shè)計(jì)用戶(hù)界面類(lèi)(6)依據(jù)現(xiàn)有圖形用戶(hù)界面進(jìn)行設(shè)計(jì)

279用戶(hù)界面設(shè)計(jì)3.圖書(shū)館管理系統(tǒng)的界面設(shè)計(jì)(1)用戶(hù)登錄界面設(shè)計(jì)(2)圖書(shū)館管理系統(tǒng)主界面設(shè)計(jì)(3)修改圖書(shū)記錄界面設(shè)計(jì)(4)修改學(xué)生記錄界面設(shè)計(jì)(5)生成預(yù)約圖書(shū)報(bào)表界面設(shè)計(jì)(6)生成催還圖書(shū)報(bào)表界面設(shè)計(jì)(7)修改密碼設(shè)置界面設(shè)計(jì)(8)圖書(shū)服務(wù)系統(tǒng)主界面設(shè)計(jì)(9)查詢(xún)/借閱/預(yù)約圖書(shū)界面設(shè)計(jì)(10)查詢(xún)個(gè)人借閱信息和歸還已借閱圖書(shū)界面設(shè)計(jì)280小結(jié)項(xiàng)目6講述了詳細(xì)設(shè)計(jì)的基本任務(wù)及詳細(xì)設(shè)計(jì)的結(jié)構(gòu)化方法及面向?qū)ο蠓椒?根據(jù)面向?qū)Ψ椒ńo出了圖書(shū)館管理系統(tǒng)的類(lèi)的設(shè)計(jì)、圖書(shū)館管理系統(tǒng)的界面設(shè)計(jì)等。完成圖書(shū)館管理系統(tǒng)詳細(xì)的整個(gè)過(guò)程。281項(xiàng)目七軟件項(xiàng)目實(shí)現(xiàn)282項(xiàng)目七主要任務(wù)面向?qū)ο蟪绦蛘Z(yǔ)言的概念和特點(diǎn)程序語(yǔ)言的分類(lèi)程序復(fù)雜度算法283結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的原則1.自頂向下2.逐步求精3.模塊化4.限制使用goto語(yǔ)句結(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)就是按照程序語(yǔ)句行的自然順序,一條語(yǔ)句一條語(yǔ)句地執(zhí)行程序。選擇結(jié)構(gòu)又稱(chēng)為分支結(jié)構(gòu),它包括簡(jiǎn)單分支結(jié)構(gòu)和多分支結(jié)構(gòu),這種結(jié)構(gòu)可以根據(jù)設(shè)定的條件,判斷應(yīng)該選擇執(zhí)行哪一條分支的語(yǔ)句序列。循環(huán)結(jié)構(gòu)。它根據(jù)給定的條件,判斷是否需要重復(fù)執(zhí)行同一相同的程序段,利用循環(huán)結(jié)構(gòu)可以簡(jiǎn)化大量的程序行。在程序設(shè)計(jì)語(yǔ)言中,循環(huán)結(jié)構(gòu)對(duì)應(yīng)兩類(lèi)循環(huán)語(yǔ)句,對(duì)先判斷后執(zhí)行循環(huán)體的稱(chēng)為“當(dāng)”型循環(huán)結(jié)構(gòu);對(duì)先執(zhí)行循環(huán)體后判斷的稱(chēng)為“直到”型循環(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ì)語(yǔ)言中的順序、選擇、循環(huán)等有限的控制結(jié)構(gòu)表示程序的控制邏輯。2.選用的控制結(jié)構(gòu)只允許有一個(gè)入口和一個(gè)出口。3.程序語(yǔ)句組成容易識(shí)別的語(yǔ)句序列塊,每塊只允許有一個(gè)入口和一個(gè)出口。4.復(fù)雜結(jié)構(gòu)的程序設(shè)計(jì)時(shí),僅用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn)。5.嚴(yán)格控制GOTO語(yǔ)句的使用。

結(jié)構(gòu)化程序設(shè)計(jì)原則和方法

286面向?qū)ο蟪绦蛟O(shè)計(jì)287面向?qū)ο蟪绦蛟O(shè)計(jì)1.抽象即去掉與主題無(wú)關(guān)的次要部分,而僅僅抽象取出與工作有關(guān)的實(shí)質(zhì)的內(nèi)容加以研究。計(jì)算機(jī)技術(shù)常用的抽象分為過(guò)程抽象與數(shù)據(jù)抽象。(1)過(guò)程抽象。將整個(gè)系統(tǒng)的功能劃分成為若干部分,強(qiáng)調(diào)功能完成的過(guò)程和步驟。面向過(guò)程的程序設(shè)計(jì)就采用這種方法。(2)數(shù)據(jù)抽象。與過(guò)程抽象不同的抽象方法,它把系統(tǒng)中需要處理的數(shù)據(jù)和這些數(shù)據(jù)的的操作結(jié)合在一起,根據(jù)功能、性質(zhì)、作用等因素抽象成不同的抽象數(shù)據(jù)類(lèi)型,每個(gè)數(shù)據(jù)類(lèi)型即包括了數(shù)據(jù),又包括了針對(duì)這些數(shù)據(jù)的操作。數(shù)據(jù)抽象和封裝

288面向?qū)ο蟪绦蛟O(shè)計(jì)2.封裝就是利用抽象數(shù)據(jù)類(lèi)型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,數(shù)據(jù)被保護(hù)在抽象數(shù)據(jù)類(lèi)型的內(nèi)部,系統(tǒng)的其它部分只有通過(guò)封裝在數(shù)據(jù)外部的被授權(quán)的操作,才能夠與這個(gè)抽象數(shù)據(jù)類(lèi)型進(jìn)行交流。

在面向?qū)ο缶幊?OOP)中,抽象數(shù)據(jù)類(lèi)型是利用類(lèi)這種結(jié)構(gòu)來(lái)實(shí)現(xiàn)的,每個(gè)類(lèi)里面封裝了相關(guān)的數(shù)據(jù)和操作。在實(shí)際的開(kāi)發(fā)過(guò)程中,類(lèi)用來(lái)構(gòu)建系統(tǒng)內(nèi)部的模塊,由于封裝性把類(lèi)內(nèi)的數(shù)據(jù)保護(hù)得很好,模塊與模塊間僅僅通過(guò)嚴(yán)格控制的界面進(jìn)行交互,使它們之間的耦合和交叉大大減少,從而降低了開(kāi)發(fā)過(guò)程的復(fù)雜性,提高效率和質(zhì)量,減少了可能的錯(cuò)誤,同時(shí)也保證了程序中數(shù)據(jù)的完整性和安全性。

數(shù)據(jù)抽象和封裝

289面向?qū)ο蟪绦蛟O(shè)計(jì)繼承是指這樣一種能力:它可以使用現(xiàn)有類(lèi)的所有功能,并在無(wú)需重新編寫(xiě)原來(lái)的類(lèi)的情況下對(duì)這些功能進(jìn)行擴(kuò)展。通過(guò)繼承創(chuàng)建的新類(lèi)稱(chēng)為”子類(lèi)”或”派生類(lèi)”。被繼承的類(lèi)稱(chēng)為“基類(lèi)”、“父類(lèi)”或”超類(lèi)”。繼承的過(guò)程,就是從一般到特殊的過(guò)程。繼承概念的實(shí)現(xiàn)方式有三類(lèi):實(shí)現(xiàn)繼承、接口繼承和可視繼承。實(shí)現(xiàn)繼承是指使用基類(lèi)的屬性和方法而無(wú)需額外編碼的能力;接口繼承是指僅使用屬性和方法的名稱(chēng)、但是子類(lèi)必須提供實(shí)現(xiàn)的能力;可視繼承是指子窗體(類(lèi))使用基窗體(類(lèi))的外觀和實(shí)現(xiàn)代碼的能力。繼承290代碼這樣來(lái)產(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)單的說(shuō),就是一句話:允許將子類(lèi)類(lèi)型的指針賦值給父類(lèi)類(lèi)型的指針。實(shí)現(xiàn)多態(tài),有二種方式,覆蓋,重載。1.覆蓋覆蓋是指子類(lèi)重新定義父類(lèi)的函數(shù)的做法。2.重載重載是指允許存在多個(gè)同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個(gè)數(shù)不同,或許參數(shù)類(lèi)型不同,或許兩者都不同)。

多態(tài)

292程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言通常簡(jiǎn)稱(chēng)為編程語(yǔ)言,是一組用來(lái)定義計(jì)算機(jī)程序的語(yǔ)法規(guī)則。一種計(jì)算機(jī)語(yǔ)言讓程序員能夠準(zhǔn)確地定義計(jì)算機(jī)所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動(dòng)。程序設(shè)計(jì)語(yǔ)言原本是被設(shè)計(jì)成專(zhuān)門(mén)使用在計(jì)算機(jī)上的,但它們也可以用來(lái)定義算法或者數(shù)據(jù)結(jié)構(gòu)。正是因?yàn)槿绱耍绦騿T才試圖使程序代碼更容易閱讀。程序設(shè)計(jì)語(yǔ)言

293程序設(shè)計(jì)語(yǔ)言從發(fā)展歷程來(lái)看,程序設(shè)計(jì)語(yǔ)言可以分為4代。1.第一代語(yǔ)言(機(jī)器語(yǔ)言)

2.第二代語(yǔ)言(匯編語(yǔ)言)3.第三代語(yǔ)言(高級(jí)語(yǔ)言)高級(jí)語(yǔ)言是面向用戶(hù)的、基本上獨(dú)立于計(jì)算機(jī)種類(lèi)和結(jié)構(gòu)的語(yǔ)言。4.第四代語(yǔ)言(簡(jiǎn)稱(chēng)4GL)4GL是非過(guò)程化語(yǔ)言,編碼時(shí)只需說(shuō)明“做什么”,不需描述算法細(xì)節(jié)。數(shù)據(jù)庫(kù)查詢(xún)和應(yīng)用程序生成器是4GL的兩個(gè)典型應(yīng)用。程序設(shè)計(jì)語(yǔ)言分類(lèi)294程序復(fù)雜度一般情況下,算法的基本操作重復(fù)執(zhí)行的次數(shù)是模塊n的某一個(gè)函數(shù)f(n),因此,算法的時(shí)間復(fù)雜度記做:T(n)=O(f(n))隨著模塊n的增大,算法執(zhí)行的時(shí)間的增長(zhǎng)率和f(n)的增長(zhǎng)率成正比,所以f(n)越小,算法的時(shí)間復(fù)雜度越低,算法的效率越高。在計(jì)算時(shí)間復(fù)雜度的時(shí)候,先找出算法的基本操作,然后根據(jù)相應(yīng)的各語(yǔ)句確定它的執(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()來(lái)表示。算法中基本操作的執(zhí)行次數(shù)一般是與問(wèn)題規(guī)模有關(guān)的。對(duì)于結(jié)點(diǎn)個(gè)數(shù)為n的數(shù)據(jù)處理問(wèn)題,用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)??臻g復(fù)雜度

296項(xiàng)目八軟件測(cè)試297項(xiàng)目八主要任務(wù)了解軟件測(cè)試的目的和原則。了解軟件錯(cuò)誤的分類(lèi)。理解軟件測(cè)試的過(guò)程和策略。掌握程序靜態(tài)測(cè)試的方法。了解程序調(diào)試的概念。掌握軟件測(cè)試中的可靠性分析方法298軟件測(cè)試基礎(chǔ)什么是軟件測(cè)試

299軟件測(cè)試基礎(chǔ)軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程?;蛘哒f(shuō),軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。軟件測(cè)試在軟件生命周期中橫跨兩個(gè)階段:通常在編寫(xiě)出每一個(gè)模塊之后就對(duì)它做必要的測(cè)試(稱(chēng)為單元測(cè)試)。模塊的編寫(xiě)者與測(cè)試者是同一個(gè)人。編碼與單元測(cè)試屬于軟件生命周期中的同一個(gè)階段。在這個(gè)階段結(jié)束之后,對(duì)軟件系統(tǒng)還要進(jìn)行各種綜合測(cè)試,這是軟件生命周期的另一個(gè)獨(dú)立的階段,即測(cè)試階段,通常由專(zhuān)門(mén)的測(cè)試人員承擔(dān)這項(xiàng)工作。什么是軟件測(cè)試

300軟件測(cè)試基礎(chǔ)1.軟件測(cè)試的目的GrenfordJ.Myers就軟件測(cè)試目的提出以下觀點(diǎn):(1)測(cè)試是程序的執(zhí)行過(guò)程,目的在于發(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è)試的附帶收獲是,它能夠證明軟件的功能和性能與需求說(shuō)明相符合。此外,實(shí)施測(cè)試收集到的測(cè)試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)軟件測(cè)試的目的和原則

301軟件測(cè)試基礎(chǔ)2.軟件測(cè)試的原則(1)應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測(cè)試”作為軟件開(kāi)發(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ò)誤的影響和后果分類(lèi)(1)較小錯(cuò)誤(2)中等錯(cuò)誤(3)較嚴(yán)重錯(cuò)誤(4)嚴(yán)重錯(cuò)誤(5)非常嚴(yán)重的錯(cuò)誤(6)最嚴(yán)重的錯(cuò)誤程序錯(cuò)誤分類(lèi)

303軟件測(cè)試基礎(chǔ)2.按錯(cuò)誤的性質(zhì)和范圍分類(lèi)(1)功能錯(cuò)誤(2)系統(tǒng)錯(cuò)誤(3)加工錯(cuò)誤(4)數(shù)據(jù)錯(cuò)誤(5)代碼錯(cuò)誤程序錯(cuò)誤分類(lèi)

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)部工作過(guò)程,在計(jì)算機(jī)上進(jìn)行測(cè)試,以證實(shí)每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否已經(jīng)過(guò)檢查。這種測(cè)試方法就是白盒測(cè)試。

黑盒測(cè)試和白盒測(cè)試

305軟件測(cè)試方法測(cè)試過(guò)程按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è)試過(guò)的模塊組裝起來(lái)。在組裝過(guò)程中,檢查程序結(jié)構(gòu)組裝的正確性。確認(rèn)測(cè)試則是要檢查已實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說(shuō)明中確定了的各種需求,以及軟件配置是否完全、正確。最后是系統(tǒng)測(cè)試,把已經(jīng)經(jīng)過(guò)確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測(cè)試。軟件測(cè)試步驟

306面向?qū)ο筌浖y(cè)試面向?qū)ο蟪绦蚴前压δ艿膶?shí)現(xiàn)分布在類(lèi)中。能正確實(shí)現(xiàn)功能的類(lèi),通過(guò)消息傳遞來(lái)協(xié)同實(shí)現(xiàn)設(shè)計(jì)要求的功能。正是這種面向?qū)ο蟪绦蝻L(fēng)格,能夠?qū)⒊霈F(xiàn)的錯(cuò)誤能精確定位在某一具體的類(lèi)。因此,在面向?qū)ο缶幊蹋∣OP)階段,忽略類(lèi)功能實(shí)現(xiàn)的細(xì)則,將測(cè)試集中在類(lèi)功能的實(shí)現(xiàn)和相應(yīng)的面向?qū)ο蟪绦颍饕w現(xiàn)在兩個(gè)方面:1.?dāng)?shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求2.類(lèi)是否實(shí)現(xiàn)了要求的功能

面向?qū)ο筌浖y(cè)試定義

307面向?qū)ο筌浖y(cè)試測(cè)試計(jì)劃主要包含以下內(nèi)容:測(cè)試范圍、測(cè)試策略

、測(cè)試類(lèi)型、測(cè)試工具、測(cè)試資源、異常事項(xiàng)的處理等制定測(cè)試計(jì)劃注意以下幾點(diǎn):1、計(jì)劃寧可時(shí)間多一些,也不要少2、測(cè)試計(jì)劃要根據(jù)具體情況來(lái)確定3、計(jì)劃隨著工作的開(kāi)展進(jìn)行修改4、要按照計(jì)劃來(lái)執(zhí)行測(cè)試計(jì)劃

308面向?qū)ο筌浖y(cè)試1.面向?qū)ο蟮膯卧獪y(cè)試面向?qū)ο髥卧獪y(cè)試主要考慮兩個(gè)方面的問(wèn)題:

(1)繼承的成員函數(shù)是否需要測(cè)試(2)對(duì)父類(lèi)的測(cè)試是否能照搬到子類(lèi)2.面向?qū)ο蠹蓽y(cè)試面向?qū)ο蟮募蓽y(cè)試能夠檢測(cè)出相對(duì)獨(dú)立的單元測(cè)試無(wú)法檢測(cè)出、類(lèi)相互作用才會(huì)產(chǎn)生的錯(cuò)誤?;趩卧獪y(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論