




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程軟件工程2n在第在第5章討論了章討論了用例用例、數(shù)據(jù)建模數(shù)據(jù)建模和和基于類模型基于類模型后,很自然會(huì)問后,很自然會(huì)問“這些需求建模表示方法就這些需求建模表示方法就足夠了嗎足夠了嗎?”q要看情況而定要看情況而定n對(duì)于某種類型軟件,對(duì)于某種類型軟件,用例用例可能是唯一可行的需求建模表示方法可能是唯一可行的需求建模表示方法。而其他類型的軟件,則需要選擇。而其他類型的軟件,則需要選擇面向?qū)ο竺嫦驅(qū)ο蟮姆椒ㄩ_發(fā)基于類的方法開發(fā)基于類的模型。但在另外一些情形下,的模型。但在另外一些情形下,復(fù)雜應(yīng)用需求復(fù)雜應(yīng)用需求可能必須檢測(cè):可能必須檢測(cè):q查看當(dāng)數(shù)據(jù)對(duì)象在系統(tǒng)中查看當(dāng)數(shù)據(jù)對(duì)象在系統(tǒng)中移動(dòng)時(shí)是如何
2、轉(zhuǎn)換移動(dòng)時(shí)是如何轉(zhuǎn)換的的q查看一個(gè)應(yīng)用系統(tǒng)是如何工作的查看一個(gè)應(yīng)用系統(tǒng)是如何工作的q查看現(xiàn)存知識(shí)領(lǐng)域能否解決當(dāng)前問題查看現(xiàn)存知識(shí)領(lǐng)域能否解決當(dāng)前問題軟件工程軟件工程3第第6章章n6.1 需求建模策略需求建模策略n6.2 面向流程建模面向流程建模n6.3 生成行為模型生成行為模型n6.4 需求建模的模式需求建模的模式軟件工程軟件工程46.1 需求建模策略需求建模策略n結(jié)構(gòu)化分析結(jié)構(gòu)化分析q數(shù)據(jù)可作為數(shù)據(jù)可作為獨(dú)立實(shí)體獨(dú)立實(shí)體轉(zhuǎn)換。轉(zhuǎn)換。q數(shù)據(jù)對(duì)象模型的方式定義了它們的數(shù)據(jù)對(duì)象模型的方式定義了它們的屬性和關(guān)系屬性和關(guān)系。q操作數(shù)據(jù)對(duì)象的操作數(shù)據(jù)對(duì)象的建模過程建模過程表明當(dāng)數(shù)據(jù)對(duì)象通過系統(tǒng)時(shí)表明當(dāng)數(shù)
3、據(jù)對(duì)象通過系統(tǒng)時(shí)如何轉(zhuǎn)換數(shù)如何轉(zhuǎn)換數(shù)據(jù)據(jù)n面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鰍關(guān)注于關(guān)注于定義類定義類以及影響客戶需求的類之間的以及影響客戶需求的類之間的協(xié)作方式協(xié)作方式。n軟件團(tuán)隊(duì)往往選擇一種方法并排斥所有其他的表示方法。問題軟件團(tuán)隊(duì)往往選擇一種方法并排斥所有其他的表示方法。問題不是哪一種方法最好,而是不是哪一種方法最好,而是怎么組合怎么組合這些表示方法才能夠?yàn)槔@些表示方法才能夠?yàn)槔嫦嚓P(guān)者益相關(guān)者提供最好的軟件需求模型提供最好的軟件需求模型和通往軟件設(shè)計(jì)最為有效的和通往軟件設(shè)計(jì)最為有效的橋梁。橋梁。軟件工程軟件工程5第第6章章n6.1 需求建模策略需求建模策略n6.2 面向流程建模面向流程建模n6
4、.3 生成行為模型生成行為模型n6.4 需求建模的模式需求建模的模式軟件工程軟件工程6n描述了數(shù)據(jù)對(duì)象在系統(tǒng)中的描述了數(shù)據(jù)對(duì)象在系統(tǒng)中的變換過程變換過程n采用采用數(shù)據(jù)流圖數(shù)據(jù)流圖(data flow diagram,DFD)、狀態(tài)遷移圖狀態(tài)遷移圖等。等。nDFD是是結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法,不是,不是UML的組成部分,但可以補(bǔ)的組成部分,但可以補(bǔ)充對(duì)系統(tǒng)充對(duì)系統(tǒng)需求需求和和流程流程的認(rèn)識(shí)。的認(rèn)識(shí)。nDFD采取了系統(tǒng)的采取了系統(tǒng)的輸入輸入-處理處理-輸出輸出觀點(diǎn),即流入軟件的數(shù)據(jù)觀點(diǎn),即流入軟件的數(shù)據(jù)對(duì)象,經(jīng)由處理元素變換,最后結(jié)果以數(shù)據(jù)對(duì)象的形式流出對(duì)象,經(jīng)由處理元素變換,最后結(jié)果以數(shù)據(jù)對(duì)
5、象的形式流出軟件。軟件。軟件工程軟件工程7軟件工程軟件工程8外部實(shí)體外部實(shí)體:儲(chǔ)戶、日歷:儲(chǔ)戶、日歷 處理處理:檢驗(yàn)、登錄、付款:檢驗(yàn)、登錄、付款數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ):帳卡、存折:帳卡、存折軟件工程軟件工程9軟件工程軟件工程10n使用分層的方式表示使用分層的方式表示q第一個(gè)數(shù)據(jù)流模型(第第一個(gè)數(shù)據(jù)流模型(第0層層DFD,也稱,也稱環(huán)境圖環(huán)境圖)表示整個(gè)系統(tǒng),)表示整個(gè)系統(tǒng),隨后的數(shù)據(jù)流圖改進(jìn)環(huán)境圖,在每個(gè)后續(xù)層提供更多的細(xì)節(jié)。隨后的數(shù)據(jù)流圖改進(jìn)環(huán)境圖,在每個(gè)后續(xù)層提供更多的細(xì)節(jié)。n數(shù)據(jù)流圖數(shù)據(jù)流圖有助于軟件工程師開發(fā)有助于軟件工程師開發(fā)信息域信息域的模型,并同時(shí)開的模型,并同時(shí)開發(fā)發(fā)功能域功能域的
6、模型。的模型。q當(dāng)把當(dāng)把DFD逐步細(xì)化時(shí),分析師同時(shí)也就完成了逐步細(xì)化時(shí),分析師同時(shí)也就完成了系統(tǒng)功能分解系統(tǒng)功能分解。q與此同時(shí),當(dāng)數(shù)據(jù)在應(yīng)用系統(tǒng)中的多個(gè)處理間與此同時(shí),當(dāng)數(shù)據(jù)在應(yīng)用系統(tǒng)中的多個(gè)處理間流動(dòng)流動(dòng)時(shí),時(shí),DFD的的精煉結(jié)果導(dǎo)致了相應(yīng)的精煉結(jié)果導(dǎo)致了相應(yīng)的數(shù)據(jù)精化數(shù)據(jù)精化。軟件工程軟件工程11數(shù)據(jù)流圖數(shù)據(jù)流圖n導(dǎo)出數(shù)據(jù)流圖的導(dǎo)出數(shù)據(jù)流圖的指導(dǎo)原則指導(dǎo)原則q(1) 第第0層層DFD(也稱環(huán)境層(也稱環(huán)境層DFD或頂層或頂層DFD)將系統(tǒng)描述成)將系統(tǒng)描述成一個(gè)一個(gè)泡泡泡泡q(2) 仔細(xì)標(biāo)記仔細(xì)標(biāo)記主要的輸入和輸出主要的輸入和輸出q(3) 通過把選定的通過把選定的處理處理、數(shù)據(jù)對(duì)象數(shù)據(jù)
7、對(duì)象和和數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)分離為下一層表示而分離為下一層表示而開始精化過程,即開始精化過程,即逐步求精逐步求精,一次精化一個(gè)處理,一次精化一個(gè)處理q(4) 使用有意義的名稱,標(biāo)記所有的箭頭和泡泡使用有意義的名稱,標(biāo)記所有的箭頭和泡泡q(5) 從一層轉(zhuǎn)至另一層時(shí),注意保持信息流的連續(xù)性從一層轉(zhuǎn)至另一層時(shí),注意保持信息流的連續(xù)性q(6) 一次精化一個(gè)泡泡一次精化一個(gè)泡泡軟件工程軟件工程12數(shù)據(jù)流圖數(shù)據(jù)流圖n可能會(huì)出現(xiàn)數(shù)據(jù)流圖過于復(fù)雜??赡軙?huì)出現(xiàn)數(shù)據(jù)流圖過于復(fù)雜。n原因原因q分析師試圖分析師試圖過早過早地顯示地顯示過多過多的細(xì)節(jié)的細(xì)節(jié)q信息流中表示軟件流程方面的內(nèi)容信息流中表示軟件流程方面的內(nèi)容軟件工
8、程軟件工程13層次化的數(shù)據(jù)流圖層次化的數(shù)據(jù)流圖軟件工程軟件工程14SafeHome安全功能的環(huán)境層安全功能的環(huán)境層DFD外部實(shí)體外部實(shí)體(方框方框)產(chǎn)生產(chǎn)生并并使用使用系統(tǒng)產(chǎn)生的信息系統(tǒng)產(chǎn)生的信息軟件工程軟件工程15數(shù)據(jù)流圖數(shù)據(jù)流圖n如何將第如何將第0層層DFD擴(kuò)展到第擴(kuò)展到第1層數(shù)據(jù)流模型?層數(shù)據(jù)流模型?q對(duì)描述環(huán)境層泡泡的用例敘述采用對(duì)描述環(huán)境層泡泡的用例敘述采用“語法解析語法解析”的方法的方法q即將第一次需求收集會(huì)議獲得的即將第一次需求收集會(huì)議獲得的SafeHome處理敘述中處理敘述中的所有的所有名詞名詞(名詞短語名詞短語)與與動(dòng)詞動(dòng)詞(動(dòng)詞短語動(dòng)詞短語)分離開來。分離開來。軟件工程軟件
9、工程16 SH安全功能輔助房主在安裝時(shí)配置安全系統(tǒng),監(jiān)測(cè)所有連接到安全安全功能輔助房主在安裝時(shí)配置安全系統(tǒng),監(jiān)測(cè)所有連接到安全系統(tǒng)的傳感器,通過系統(tǒng)的傳感器,通過Internet、計(jì)算機(jī)或控制面板和房主交互。、計(jì)算機(jī)或控制面板和房主交互。 在安裝中,在安裝中,SH計(jì)算機(jī)被用于配置系統(tǒng),每個(gè)傳感器被分配一個(gè)編號(hào)計(jì)算機(jī)被用于配置系統(tǒng),每個(gè)傳感器被分配一個(gè)編號(hào)和類型,主密碼被用以控制啟動(dòng)和關(guān)閉系統(tǒng),當(dāng)傳感器事件發(fā)生時(shí),和類型,主密碼被用以控制啟動(dòng)和關(guān)閉系統(tǒng),當(dāng)傳感器事件發(fā)生時(shí),將撥打預(yù)設(shè)的電話號(hào)碼。將撥打預(yù)設(shè)的電話號(hào)碼。 當(dāng)識(shí)別出一個(gè)傳感器事件時(shí),軟件激活附于系統(tǒng)上的可發(fā)聲警報(bào),當(dāng)識(shí)別出一個(gè)傳感器事
10、件時(shí),軟件激活附于系統(tǒng)上的可發(fā)聲警報(bào),在一定的延遲時(shí)間(由房主在系統(tǒng)配置活動(dòng)中指定)后,軟件撥打監(jiān)在一定的延遲時(shí)間(由房主在系統(tǒng)配置活動(dòng)中指定)后,軟件撥打監(jiān)測(cè)服務(wù)的電話號(hào)碼并提供關(guān)于位置的信息,報(bào)告被檢測(cè)到的事件的性測(cè)服務(wù)的電話號(hào)碼并提供關(guān)于位置的信息,報(bào)告被檢測(cè)到的事件的性質(zhì),電話號(hào)碼將每質(zhì),電話號(hào)碼將每20秒重?fù)芤淮?,直至電話接通。秒重?fù)芤淮?,直至電話接通?房主通過控制面板、計(jì)算機(jī)或?yàn)g覽器這些統(tǒng)稱為接口的設(shè)施接收安房主通過控制面板、計(jì)算機(jī)或?yàn)g覽器這些統(tǒng)稱為接口的設(shè)施接收安全信息。接口在控制面板、計(jì)算機(jī)或?yàn)g覽器窗口中顯示提示信息和系全信息。接口在控制面板、計(jì)算機(jī)或?yàn)g覽器窗口中顯示提示信息
11、和系統(tǒng)狀態(tài)信息。房主的交互采用如下形式統(tǒng)狀態(tài)信息。房主的交互采用如下形式軟件工程軟件工程17 SH安全功能安全功能輔助輔助房主房主在安裝時(shí)在安裝時(shí)配置配置安全系統(tǒng)安全系統(tǒng),監(jiān)測(cè)監(jiān)測(cè)所有連接到安全所有連接到安全系統(tǒng)的系統(tǒng)的傳感器傳感器,通過,通過Internet、計(jì)算機(jī)或控制面板、計(jì)算機(jī)或控制面板和和房主房主交互交互。 在在安裝安裝中,中,SH計(jì)算機(jī)被用于計(jì)算機(jī)被用于配置配置系統(tǒng)系統(tǒng),每個(gè)傳感器被分配一個(gè),每個(gè)傳感器被分配一個(gè)編號(hào)編號(hào)和和類型類型,主密碼主密碼被用以被用以控制啟動(dòng)和關(guān)閉控制啟動(dòng)和關(guān)閉系統(tǒng)系統(tǒng),當(dāng)傳感器事件發(fā)生時(shí),當(dāng)傳感器事件發(fā)生時(shí),將將撥打撥打預(yù)設(shè)的預(yù)設(shè)的電話號(hào)碼電話號(hào)碼。 當(dāng)當(dāng)
12、識(shí)別識(shí)別出一個(gè)出一個(gè)傳感器事件傳感器事件時(shí),時(shí),軟件軟件激活激活附于系統(tǒng)上的附于系統(tǒng)上的可發(fā)聲警報(bào)可發(fā)聲警報(bào),在一定的延遲時(shí)間(由房主在系統(tǒng)配置活動(dòng)中指定)后,軟件撥打監(jiān)在一定的延遲時(shí)間(由房主在系統(tǒng)配置活動(dòng)中指定)后,軟件撥打監(jiān)測(cè)服務(wù)的電話號(hào)碼并測(cè)服務(wù)的電話號(hào)碼并提供提供關(guān)于位置的信息關(guān)于位置的信息,報(bào)告報(bào)告被檢測(cè)到被檢測(cè)到事件的性質(zhì)事件的性質(zhì),電話號(hào)碼電話號(hào)碼將每將每20秒秒重?fù)苤負(fù)芤淮?,直至一次,直至電話接通電話接通?房主通過控制面板、計(jì)算機(jī)或?yàn)g覽器這些統(tǒng)稱為房主通過控制面板、計(jì)算機(jī)或?yàn)g覽器這些統(tǒng)稱為接口接口的設(shè)施的設(shè)施接收接收安安全信息全信息。接口在控制面板、計(jì)算機(jī)或?yàn)g覽器窗口中。接
13、口在控制面板、計(jì)算機(jī)或?yàn)g覽器窗口中顯示顯示提示信息和系提示信息和系統(tǒng)狀態(tài)信息統(tǒng)狀態(tài)信息。房主的交互采用如下形式。房主的交互采用如下形式軟件工程軟件工程18數(shù)據(jù)流圖數(shù)據(jù)流圖n根據(jù)語法解析根據(jù)語法解析q動(dòng)詞動(dòng)詞是是SafeHome的處理,在后續(xù)的的處理,在后續(xù)的DFD中用泡泡表示;中用泡泡表示;q名詞名詞是外部實(shí)體是外部實(shí)體(方框方框)、數(shù)據(jù)或控制對(duì)象、數(shù)據(jù)或控制對(duì)象(箭頭箭頭)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)存儲(chǔ)(雙橫線雙橫線)。n在任何在任何DFD層次中對(duì)某個(gè)泡泡的層次中對(duì)某個(gè)泡泡的處理敘述文字處理敘述文字進(jìn)行語法進(jìn)行語法解解析析,可以產(chǎn)生許多如何精化到下一個(gè)層次的有用信息。,可以產(chǎn)生許多如何精化到下一個(gè)層次
14、的有用信息。q例如,第例如,第0層層DFD可以擴(kuò)展為可以擴(kuò)展為6個(gè)處理,這些處理來自于語法個(gè)處理,這些處理來自于語法解析檢查。解析檢查。軟件工程軟件工程19第一層第一層DFD軟件工程軟件工程20第二層第二層DFD軟件工程軟件工程21數(shù)據(jù)流圖數(shù)據(jù)流圖n持續(xù)進(jìn)行持續(xù)進(jìn)行DFD的求精,直到每個(gè)泡泡都執(zhí)行了某個(gè)的求精,直到每個(gè)泡泡都執(zhí)行了某個(gè)單一的單一的功能功能,也就是說,直至每個(gè)泡泡所代表的處理都執(zhí)行一個(gè),也就是說,直至每個(gè)泡泡所代表的處理都執(zhí)行一個(gè)功能,并且該功能可以很容易地成為一個(gè)功能,并且該功能可以很容易地成為一個(gè)程序構(gòu)件程序構(gòu)件。nDFD之間的數(shù)據(jù)流必須要之間的數(shù)據(jù)流必須要連續(xù)連續(xù)。軟件工程
15、軟件工程22創(chuàng)建控制流模型創(chuàng)建控制流模型n對(duì)于很多類應(yīng)用問題來說,為了獲得關(guān)于軟件對(duì)于很多類應(yīng)用問題來說,為了獲得關(guān)于軟件需求的有益需求的有益理解理解,使用數(shù)據(jù)模型和數(shù)據(jù)流圖是很有必要的。,使用數(shù)據(jù)模型和數(shù)據(jù)流圖是很有必要的。n然而,有一大類應(yīng)用問題是然而,有一大類應(yīng)用問題是事件驅(qū)動(dòng)事件驅(qū)動(dòng)的而不是數(shù)據(jù)驅(qū)動(dòng)的的而不是數(shù)據(jù)驅(qū)動(dòng)的。這類問題。這類問題產(chǎn)生控制信息產(chǎn)生控制信息而不是報(bào)告或顯示信息,并且處而不是報(bào)告或顯示信息,并且處理信息時(shí)非常理信息時(shí)非常關(guān)注時(shí)間關(guān)注時(shí)間和和性能性能。n這樣的應(yīng)用系統(tǒng)除了數(shù)據(jù)流建模外還需要使用這樣的應(yīng)用系統(tǒng)除了數(shù)據(jù)流建模外還需要使用控制流建??刂屏鹘?。軟件工程軟件工
16、程23創(chuàng)建控制流模型創(chuàng)建控制流模型n事件或控制項(xiàng)可以實(shí)現(xiàn)為事件或控制項(xiàng)可以實(shí)現(xiàn)為q布爾值布爾值 n例如,真或假、開或關(guān)、例如,真或假、開或關(guān)、1或或0q條件的條件的離散列表離散列表n例如,空、擁擠、滿例如,空、擁擠、滿軟件工程軟件工程24創(chuàng)建控制流模型創(chuàng)建控制流模型n選擇潛在選擇潛在候選事件候選事件的的指導(dǎo)原則指導(dǎo)原則:q列出所有被軟件列出所有被軟件“讀讀”的的傳感器傳感器。q列出所有的列出所有的中斷條件中斷條件。q列出操作人員能夠啟動(dòng)的所有列出操作人員能夠啟動(dòng)的所有“開關(guān)開關(guān)”。q列出所有的列出所有的數(shù)據(jù)條件數(shù)據(jù)條件。q回顧對(duì)處理敘述所進(jìn)行的名詞或動(dòng)詞的回顧對(duì)處理敘述所進(jìn)行的名詞或動(dòng)詞的語法
17、解析語法解析,考察所有可能考察所有可能作為控制規(guī)格說明輸入作為控制規(guī)格說明輸入/輸出的輸出的“控制項(xiàng)控制項(xiàng)”。q通過通過標(biāo)識(shí)狀態(tài)標(biāo)識(shí)狀態(tài)來描述系統(tǒng)的行為,標(biāo)識(shí)如何達(dá)到這些狀態(tài),并定來描述系統(tǒng)的行為,標(biāo)識(shí)如何達(dá)到這些狀態(tài),并定義義狀態(tài)間的遷移狀態(tài)間的遷移。q關(guān)注可能的關(guān)注可能的疏忽疏忽,即關(guān)注那些描述控制中,即關(guān)注那些描述控制中非常普遍的錯(cuò)誤。非常普遍的錯(cuò)誤。例如例如,提問,提問“有什么其他途徑可以達(dá)到或離開這個(gè)狀態(tài)嗎?有什么其他途徑可以達(dá)到或離開這個(gè)狀態(tài)嗎?”軟件工程軟件工程25創(chuàng)建控制流模型創(chuàng)建控制流模型nSafeHome的很多事件和控制項(xiàng)工作都是的很多事件和控制項(xiàng)工作都是傳感器傳感器事件事
18、件,例如:,例如:q傳感器斷開傳感器斷開q閃爍標(biāo)志閃爍標(biāo)志 (顯示閃動(dòng)信號(hào)顯示閃動(dòng)信號(hào))q啟動(dòng)或停止開關(guān)啟動(dòng)或停止開關(guān) (開關(guān)系統(tǒng)的信號(hào)開關(guān)系統(tǒng)的信號(hào))軟件工程軟件工程26控制流模型控制流模型n控制流模型用于控制流模型用于事件驅(qū)動(dòng)事件驅(qū)動(dòng)問題的建模問題的建模n控制規(guī)格說明控制規(guī)格說明(Control SPECification, CSPEC)q對(duì)對(duì)行為的建模行為的建模,描述了軟件描述了軟件狀態(tài)狀態(tài)以及導(dǎo)致以及導(dǎo)致狀態(tài)狀態(tài)變化的事件變化的事件,常用,常用狀態(tài)圖狀態(tài)圖軟件工程軟件工程27ResettingEntry/set systermStatus “inactive”Entry/set dis
19、playMsg1 “Starting system”Entry/set displayMsg2 “Please wait”Entry/set displayStatus slowBlinkingDo: run diagnostics開始/結(jié)束切換電源 “開”IdleEntry/set systermStatus “inactive”Entry/set displayMsg1 “Ready”Entry/set displayMsg2 “”Entry/set displayStatus steadyKeyHit / handleKey系統(tǒng)就緒不能設(shè)置 /設(shè)置顯示消息2“聯(lián)系供應(yīng)商”重置關(guān)閉/電源關(guān)
20、閉MonitoringSystemEntry/set systermStatus “monitoring”Entry/set displayMsg1 “Armed”Entry/set displayMsg2 “”Entry/set displayStatus steadyDo: MonitorAndControlSystemKeyHit / handleKey激活解除密碼ActingOnAlarmEntry/set systermStatus “MonitorAndAlarm”Entry/set displayMsg1 “ALARM”Entry/set displayMsg2 triggeri
21、ngSenserEntry/set displayStatus fastBlinkingDo: MonitorAndControlSystemDo: soundAlarmDo: notifyAlarmRespondersKeyHit / handleKey傳感器觸發(fā)/啟動(dòng)計(jì)時(shí)器超時(shí)錯(cuò)誤警報(bào)解除密碼傳感器觸發(fā)/ 新啟動(dòng)計(jì)時(shí)器SafeHome安全功能的狀態(tài)圖安全功能的狀態(tài)圖軟件工程軟件工程28處理規(guī)格說明處理規(guī)格說明n處理規(guī)格處理規(guī)格說明(說明(Process SPECification, PSPEC):也稱:也稱加工說明加工說明,是對(duì)數(shù)據(jù)流圖中每個(gè)加工所作的說明,處理規(guī)是對(duì)數(shù)據(jù)流圖中每個(gè)加工所作
22、的說明,處理規(guī)格說明的格說明的內(nèi)容內(nèi)容包括包括敘述性正文、處理算法的程序設(shè)計(jì)語言敘述性正文、處理算法的程序設(shè)計(jì)語言描述、數(shù)學(xué)方程、圖表,常用描述、數(shù)學(xué)方程、圖表,常用判定表判定表。n通過為流模型中的每個(gè)泡泡提供通過為流模型中的每個(gè)泡泡提供PSPEC,軟件工程師創(chuàng),軟件工程師創(chuàng)建了建了“小型規(guī)格說明小型規(guī)格說明”(mini-spec)可以作為軟件構(gòu)件實(shí)可以作為軟件構(gòu)件實(shí)現(xiàn)處理的現(xiàn)處理的設(shè)計(jì)指南設(shè)計(jì)指南。軟件工程軟件工程29處理規(guī)格說明處理規(guī)格說明n考慮圖考慮圖6-2中中SafeHome的的“處理密碼處理密碼”變化,該功能的變化,該功能的PSPEC可以采用如下形式:可以采用如下形式:q在在Safe
23、Home安全功能中安全功能中“處理密碼處理密碼”完成控制面板上的密碼確認(rèn)完成控制面板上的密碼確認(rèn)?!疤幚砻艽a處理密碼”從從“與用戶交互與用戶交互”功能接收功能接收4位密碼,將該密碼首位密碼,將該密碼首先和存儲(chǔ)在系統(tǒng)中的主密碼進(jìn)行比較:先和存儲(chǔ)在系統(tǒng)中的主密碼進(jìn)行比較:n如果如果與主密碼匹配與主密碼匹配。則向。則向“顯示消息和狀態(tài)顯示消息和狀態(tài)”功能傳送有效信息功能傳送有效信息n如果如果與主密碼不匹配與主密碼不匹配,則把,則把4位密碼與位密碼與次密碼表次密碼表比較比較(這些密碼可能會(huì)這些密碼可能會(huì)授予房子的客人和授予房子的客人和(或或)在房主不在家時(shí)需要進(jìn)入房子的工人在房主不在家時(shí)需要進(jìn)入房子的
24、工人)。如果密。如果密碼和表中的某項(xiàng)匹配,將向碼和表中的某項(xiàng)匹配,將向“顯示消息和狀態(tài)顯示消息和狀態(tài)”功能傳送有效信息功能傳送有效信息;n如果如果不匹配不匹配,將向,將向“顯示消息和狀態(tài)顯示消息和狀態(tài)”功能傳送無效信息功能傳送無效信息;軟件工程軟件工程30判定表判定表n一個(gè)表格,描述一個(gè)表格,描述條件條件和條件導(dǎo)致的和條件導(dǎo)致的動(dòng)作動(dòng)作的集合的集合Rule 1 Rule 2 Rule 3 Rule 4 Rule 5High standardized exam scoresTFFFFHigh grades-TFFFOutside activities-TFFGood recommendation
25、s-TFSend rejection letterSend admission forms軟件工程軟件工程31軟件工程軟件工程32結(jié)構(gòu)化分析結(jié)構(gòu)化分析n結(jié)構(gòu)化分析結(jié)構(gòu)化分析工具工具使用使用“數(shù)據(jù)字典數(shù)據(jù)字典”作為說明所有作為說明所有數(shù)據(jù)對(duì)象的中數(shù)據(jù)對(duì)象的中心數(shù)據(jù)庫心數(shù)據(jù)庫。n數(shù)據(jù)字典數(shù)據(jù)字典q管理管理各種關(guān)系模型中的各種關(guān)系模型中的信息信息q定義四類元素:定義四類元素:數(shù)據(jù)流數(shù)據(jù)流、數(shù)據(jù)流分量數(shù)據(jù)流分量、數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)和和處理處理q信息:信息:n一般信息:名字、別名、描述等一般信息:名字、別名、描述等n定義信息:數(shù)據(jù)類型、長(zhǎng)度、結(jié)構(gòu)定義信息:數(shù)據(jù)類型、長(zhǎng)度、結(jié)構(gòu)n使用特點(diǎn):值的范圍、使用頻率
26、、使用方式使用特點(diǎn):值的范圍、使用頻率、使用方式n控制信息:來源、使用它的程序控制信息:來源、使用它的程序n分組信息:父結(jié)構(gòu)、從屬結(jié)構(gòu)、物理位置等分組信息:父結(jié)構(gòu)、從屬結(jié)構(gòu)、物理位置等軟件工程軟件工程33數(shù)據(jù)字典數(shù)據(jù)字典n數(shù)據(jù)元素?cái)?shù)據(jù)元素組成數(shù)據(jù)對(duì)象組成數(shù)據(jù)對(duì)象的方式:的方式:q順序順序:兩個(gè)或多個(gè)分量以:兩個(gè)或多個(gè)分量以確定次序確定次序進(jìn)行連接進(jìn)行連接q選擇選擇:從兩個(gè)或多個(gè)可能的元素中選取一個(gè):從兩個(gè)或多個(gè)可能的元素中選取一個(gè)q重復(fù)重復(fù):把指定的分量重復(fù)零次或多次:把指定的分量重復(fù)零次或多次n可選:一個(gè)分量是可有可無的(重復(fù)可選:一個(gè)分量是可有可無的(重復(fù)0或或1次)次)n符號(hào):符號(hào):q=
27、 等價(jià)于等價(jià)于q+ 和和q 或(選擇一個(gè),用或(選擇一個(gè),用|隔開分量)隔開分量)n字母或數(shù)字字母或數(shù)字 = 字母字符字母字符 | 數(shù)字字符數(shù)字字符q 重復(fù)重復(fù) n字母數(shù)字串字母數(shù)字串 = 0字母或數(shù)字字母或數(shù)字7q( ) 可選可選軟件工程軟件工程34數(shù)據(jù)字典數(shù)據(jù)字典n數(shù)據(jù)字典(例)數(shù)據(jù)字典(例)名字:訂貨報(bào)表名字:訂貨報(bào)表別名:訂貨信息別名:訂貨信息描述:每天一次送給采購(gòu)員的需要訂貨的零件表描述:每天一次送給采購(gòu)員的需要訂貨的零件表定義:訂貨報(bào)表定義:訂貨報(bào)表 = 零件編號(hào)零件編號(hào) + 零件名稱零件名稱 + 訂貨數(shù)量訂貨數(shù)量 + 價(jià)格價(jià)格 + 供應(yīng)者供應(yīng)者位置:輸出到打印機(jī)位置:輸出到打印機(jī)
28、軟件工程軟件工程35數(shù)據(jù)字典(數(shù)據(jù)字典(IV)n數(shù)據(jù)字典(例)數(shù)據(jù)字典(例)名字:零件編號(hào)名字:零件編號(hào)別名:別名:描述:唯一地標(biāo)識(shí)庫存清單中特定零件的域描述:唯一地標(biāo)識(shí)庫存清單中特定零件的域定義:零件編號(hào)定義:零件編號(hào)=8字符字符8位置:訂貨報(bào)表、訂貨信息、庫存清單、事務(wù)位置:訂貨報(bào)表、訂貨信息、庫存清單、事務(wù)軟件工程軟件工程36第第6章章n6.1 需求建模策略需求建模策略n6.2 面向流程建模面向流程建模n6.3 生成行為模型生成行為模型n6.4 需求建模的模式需求建模的模式軟件工程軟件工程376.3 生成行為模型生成行為模型n行為模型描述了系統(tǒng)如何行為模型描述了系統(tǒng)如何響應(yīng)外部事件或激勵(lì)
29、響應(yīng)外部事件或激勵(lì)n要生成行為模型,分析師必須按如下步驟進(jìn)行:要生成行為模型,分析師必須按如下步驟進(jìn)行:q(1) 評(píng)估所有用例評(píng)估所有用例,以保證完全,以保證完全理解理解系統(tǒng)內(nèi)的系統(tǒng)內(nèi)的交互序列交互序列q(2) 識(shí)別識(shí)別驅(qū)動(dòng)交互序列的驅(qū)動(dòng)交互序列的事件事件,并,并理解理解這些事件如何和具體這些事件如何和具體的類相互的類相互關(guān)聯(lián)關(guān)聯(lián)q(3) 為每個(gè)用例為每個(gè)用例生成序列生成序列(順序圖)(順序圖)q(4) 創(chuàng)建創(chuàng)建系統(tǒng)狀態(tài)圖系統(tǒng)狀態(tài)圖q(5) 評(píng)審行為模型以評(píng)審行為模型以驗(yàn)證準(zhǔn)確性和一致性驗(yàn)證準(zhǔn)確性和一致性軟件工程軟件工程38識(shí)別用例事件識(shí)別用例事件n只要系統(tǒng)和參與者之間只要系統(tǒng)和參與者之間交換
30、了信息就發(fā)生事件交換了信息就發(fā)生事件。n從從信息交換信息交換的角度檢查用例:的角度檢查用例:q房主使用鍵盤鍵入房主使用鍵盤鍵入4 4位密碼。該密碼和保存在系統(tǒng)中的有效位密碼。該密碼和保存在系統(tǒng)中的有效密碼相比較。如果密碼不正確,控制面板將鳴叫一聲密碼相比較。如果密碼不正確,控制面板將鳴叫一聲并復(fù)位并復(fù)位以等待下一次輸入;如果密碼正確,控制面板等待進(jìn)一步的以等待下一次輸入;如果密碼正確,控制面板等待進(jìn)一步的操作。操作。n用例場(chǎng)景中加用例場(chǎng)景中加下劃線的部分表示事件下劃線的部分表示事件。應(yīng)確認(rèn)每個(gè)事件的。應(yīng)確認(rèn)每個(gè)事件的參與者參與者,應(yīng)標(biāo)記,應(yīng)標(biāo)記交換的所有信息交換的所有信息,而且應(yīng)列出任何,而且
31、應(yīng)列出任何條件或條件或限制限制。軟件工程軟件工程39識(shí)別用例事件識(shí)別用例事件n考慮用例中加下劃線的考慮用例中加下劃線的“房主使用鍵盤鍵入房主使用鍵盤鍵入4 4位密碼位密碼”。在需。在需求模型的環(huán)境下,對(duì)象求模型的環(huán)境下,對(duì)象Homeowner向?qū)ο笙驅(qū)ο驝ontrolPanel發(fā)送發(fā)送一個(gè)事件。這個(gè)事件可以稱為一個(gè)事件。這個(gè)事件可以稱為“輸入密碼輸入密碼”。傳輸?shù)男畔⑹墙M。傳輸?shù)男畔⑹墙M成密碼的成密碼的4位數(shù)字。注意到某些事件對(duì)用例的控制流有明顯的位數(shù)字。注意到某些事件對(duì)用例的控制流有明顯的影響,而其他的事件對(duì)控制流沒有直接的影響。影響,而其他的事件對(duì)控制流沒有直接的影響。q例如,事件例如,事
32、件“輸入密碼輸入密碼”不會(huì)明顯地改變用例的控制流不會(huì)明顯地改變用例的控制流q事件事件“比較密碼比較密碼”(從與事件從與事件“該密碼和保存在系統(tǒng)中的有效密碼該密碼和保存在系統(tǒng)中的有效密碼相比較相比較”的交互中得到的交互中得到)的結(jié)果將明顯地影響到的結(jié)果將明顯地影響到SafeHome軟件的軟件的信息流和控制流信息流和控制流。軟件工程軟件工程40識(shí)別用例事件識(shí)別用例事件n一旦確定了所有的事件,這些一旦確定了所有的事件,這些事件將被分配事件將被分配到所到所涉及的涉及的對(duì)象對(duì)象,對(duì)象負(fù)責(zé)生成事件對(duì)象負(fù)責(zé)生成事件,例如,例如qHomeowner房主對(duì)象房主對(duì)象生成生成“輸入密碼輸入密碼”事件事件q或或識(shí)別
33、識(shí)別已經(jīng)在其他地方發(fā)生的事件已經(jīng)在其他地方發(fā)生的事件n例如,例如,ControlPanel控制面板識(shí)別控制面板識(shí)別“比較密碼比較密碼”事件的事件的二元結(jié)果二元結(jié)果軟件工程軟件工程41狀態(tài)表現(xiàn)狀態(tài)表現(xiàn)n在行為建模的場(chǎng)合,必須考慮兩種不同的狀態(tài)描述:在行為建模的場(chǎng)合,必須考慮兩種不同的狀態(tài)描述:q(1)系統(tǒng)執(zhí)行其功能時(shí))系統(tǒng)執(zhí)行其功能時(shí)每個(gè)類的狀態(tài)每個(gè)類的狀態(tài)q(2)系統(tǒng)執(zhí)行其功能時(shí)從外部觀察到的)系統(tǒng)執(zhí)行其功能時(shí)從外部觀察到的系統(tǒng)狀態(tài)系統(tǒng)狀態(tài)n類的狀態(tài)有類的狀態(tài)有被動(dòng)被動(dòng)和和主動(dòng)主動(dòng)兩種特征:兩種特征:q被動(dòng)狀態(tài)被動(dòng)狀態(tài)很簡(jiǎn)單,是某個(gè)對(duì)象所有很簡(jiǎn)單,是某個(gè)對(duì)象所有屬性屬性的的當(dāng)前狀態(tài)當(dāng)前狀態(tài)n比
34、如,對(duì)象的位置與方向信息等;比如,對(duì)象的位置與方向信息等;q主動(dòng)狀態(tài)主動(dòng)狀態(tài)對(duì)象進(jìn)行對(duì)象進(jìn)行持續(xù)變換和處理持續(xù)變換和處理時(shí)的當(dāng)前狀態(tài)時(shí)的當(dāng)前狀態(tài)n比如,移動(dòng)、休息、受傷、療傷、被捕、失蹤等比如,移動(dòng)、休息、受傷、療傷、被捕、失蹤等n必然發(fā)生事件必然發(fā)生事件(有時(shí)被稱為有時(shí)被稱為觸發(fā)器觸發(fā)器)才能迫使對(duì)象做出從一個(gè)主動(dòng)才能迫使對(duì)象做出從一個(gè)主動(dòng)狀態(tài)到另一個(gè)主動(dòng)狀態(tài)的狀態(tài)到另一個(gè)主動(dòng)狀態(tài)的轉(zhuǎn)移轉(zhuǎn)移。軟件工程軟件工程42狀態(tài)圖:為每個(gè)類呈現(xiàn)了主動(dòng)狀態(tài)和導(dǎo)致這些主動(dòng)狀態(tài)狀態(tài)圖:為每個(gè)類呈現(xiàn)了主動(dòng)狀態(tài)和導(dǎo)致這些主動(dòng)狀態(tài)變化的事件變化的事件每個(gè)箭頭表示某每個(gè)箭頭表示某個(gè)對(duì)象從一個(gè)主動(dòng)個(gè)對(duì)象從一個(gè)主動(dòng)狀態(tài)轉(zhuǎn)
35、移到另一個(gè)狀態(tài)轉(zhuǎn)移到另一個(gè)主動(dòng)狀態(tài)。主動(dòng)狀態(tài)。每個(gè)箭頭上的每個(gè)箭頭上的標(biāo)標(biāo)注注都體現(xiàn)了觸發(fā)狀都體現(xiàn)了觸發(fā)狀態(tài)轉(zhuǎn)移的態(tài)轉(zhuǎn)移的事件事件。軟件工程軟件工程43狀態(tài)圖狀態(tài)圖n除了說明導(dǎo)致轉(zhuǎn)移發(fā)生的事件外,分析師還可以說明守衛(wèi)除了說明導(dǎo)致轉(zhuǎn)移發(fā)生的事件外,分析師還可以說明守衛(wèi)Guard和動(dòng)作和動(dòng)作:q守衛(wèi)守衛(wèi)是為了保證轉(zhuǎn)移發(fā)生而必須滿足的一個(gè)是為了保證轉(zhuǎn)移發(fā)生而必須滿足的一個(gè)布爾條件布爾條件。轉(zhuǎn)移的守。轉(zhuǎn)移的守衛(wèi)通常依賴于某個(gè)對(duì)象的衛(wèi)通常依賴于某個(gè)對(duì)象的一個(gè)或多個(gè)屬性值一個(gè)或多個(gè)屬性值。換句話說,守衛(wèi)。換句話說,守衛(wèi)依依賴于賴于對(duì)象的對(duì)象的被動(dòng)狀態(tài)被動(dòng)狀態(tài)。n例如,例如,“Reading”狀態(tài)轉(zhuǎn)移到狀態(tài)
36、轉(zhuǎn)移到“Comparing”狀態(tài)的守衛(wèi)可以由檢察狀態(tài)的守衛(wèi)可以由檢察用例來確定用例來確定: if (password input= 4 digits) then compare to stored passwordq動(dòng)作動(dòng)作是與是與狀態(tài)轉(zhuǎn)移同時(shí)發(fā)生狀態(tài)轉(zhuǎn)移同時(shí)發(fā)生的或者的或者作為狀態(tài)轉(zhuǎn)移的結(jié)果作為狀態(tài)轉(zhuǎn)移的結(jié)果,而且通,而且通常動(dòng)作包含對(duì)象的一個(gè)或多個(gè)常動(dòng)作包含對(duì)象的一個(gè)或多個(gè)操作操作(職責(zé)職責(zé))。n例如,和例如,和“輸入密碼輸入密碼”事件相關(guān)聯(lián)的動(dòng)作是事件相關(guān)聯(lián)的動(dòng)作是validatePassword()操作操作,該操作通過訪問,該操作通過訪問password對(duì)象并通過執(zhí)行按位比較來驗(yàn)證輸入
37、密對(duì)象并通過執(zhí)行按位比較來驗(yàn)證輸入密碼。碼。軟件工程軟件工程44順序圖順序圖n順序圖順序圖q用用時(shí)間函數(shù)時(shí)間函數(shù)表明表明事件事件如何引發(fā)從一個(gè)如何引發(fā)從一個(gè)對(duì)象對(duì)象到另一個(gè)對(duì)象到另一個(gè)對(duì)象的的轉(zhuǎn)移轉(zhuǎn)移q每個(gè)箭頭代表了一個(gè)事件每個(gè)箭頭代表了一個(gè)事件q時(shí)間縱向向下度量時(shí)間縱向向下度量q窄的縱向矩形窄的縱向矩形表示處理某個(gè)表示處理某個(gè)活動(dòng)所用的時(shí)間活動(dòng)所用的時(shí)間。q沿著縱向的時(shí)間線可以展示出對(duì)象的狀態(tài)。沿著縱向的時(shí)間線可以展示出對(duì)象的狀態(tài)。軟件工程軟件工程45順序圖順序圖軟件工程軟件工程46順序圖順序圖n一旦完成了完整的順序圖,把所有導(dǎo)致系統(tǒng)一旦完成了完整的順序圖,把所有導(dǎo)致系統(tǒng)對(duì)象對(duì)象之間轉(zhuǎn)移的事
38、件之間轉(zhuǎn)移的事件整理為整理為輸入事件集合輸入事件集合和和輸出事件輸出事件集合集合(來自一個(gè)對(duì)象來自一個(gè)對(duì)象)。軟件工程軟件工程47軟件工程軟件工程48軟件工程軟件工程49出卷系統(tǒng)案例出卷系統(tǒng)案例(III)n二級(jí)數(shù)據(jù)流圖(二級(jí)數(shù)據(jù)流圖(自動(dòng)出卷自動(dòng)出卷部分)部分)軟件工程軟件工程50出卷系統(tǒng)案例出卷系統(tǒng)案例(IV)n出卷功能初步的出卷功能初步的ER圖圖軟件工程軟件工程51出卷系統(tǒng)案例出卷系統(tǒng)案例(V)n“試題試題”的數(shù)據(jù)信息的數(shù)據(jù)信息名字:試卷名字:試卷別名:別名:描述:試卷的內(nèi)容描述:試卷的內(nèi)容定義:定義: 試卷試卷 = 試卷編號(hào)試卷編號(hào) + 課程名課程名 + 出卷人出卷人 + 時(shí)間時(shí)間 +
39、總分總分 + 難度難度 試卷編號(hào)試卷編號(hào)= 1字符字符10課程名課程名 = 1字符字符30 出卷人出卷人 = 1字符字符8 時(shí)間時(shí)間 = 日期日期 總分總分 = 整數(shù)整數(shù) 難度難度 = 難難|中中|易易位置:試卷數(shù)據(jù)集位置:試卷數(shù)據(jù)集軟件工程軟件工程52出卷系統(tǒng)案例出卷系統(tǒng)案例(VI)n“出卷要求出卷要求”的數(shù)據(jù)信息的數(shù)據(jù)信息名字:出卷要求名字:出卷要求別名:要求別名:要求描述:出卷的卷面要求描述:出卷的卷面要求定義:出卷要求定義:出卷要求= 總分總分 + 總難度總難度 + 總知識(shí)點(diǎn)總知識(shí)點(diǎn) 總分總分 = 整數(shù)整數(shù) 總難度總難度 = 難分?jǐn)?shù)比例難分?jǐn)?shù)比例 + 中分?jǐn)?shù)比例中分?jǐn)?shù)比例 + 易分?jǐn)?shù)比
40、例易分?jǐn)?shù)比例 總知識(shí)點(diǎn)總知識(shí)點(diǎn)= 1知識(shí)點(diǎn)分?jǐn)?shù)比例知識(shí)點(diǎn)分?jǐn)?shù)比例*位置:自動(dòng)出卷、手動(dòng)出卷、設(shè)置出卷要求位置:自動(dòng)出卷、手動(dòng)出卷、設(shè)置出卷要求軟件工程軟件工程53短信系統(tǒng)案例短信系統(tǒng)案例n用例場(chǎng)景用例場(chǎng)景q發(fā)送短信發(fā)送短信的場(chǎng)景描述的場(chǎng)景描述n用戶輸入短信內(nèi)容用戶輸入短信內(nèi)容n用戶選擇若干個(gè)發(fā)送人員用戶選擇若干個(gè)發(fā)送人員n系統(tǒng)將明文短消息編碼成格式化的短消息串系統(tǒng)將明文短消息編碼成格式化的短消息串n系統(tǒng)以串行方式將短信串傳入無線移動(dòng)終端系統(tǒng)以串行方式將短信串傳入無線移動(dòng)終端q接收短信接收短信的場(chǎng)景描述的場(chǎng)景描述n用戶向串口發(fā)送指令從無線移動(dòng)終端讀取一組短消息串用戶向串口發(fā)送指令從無線移動(dòng)終端讀
41、取一組短消息串n系統(tǒng)將一組短信串解碼成明文的短消息系統(tǒng)將一組短信串解碼成明文的短消息n系統(tǒng)將短消息寫入數(shù)據(jù)庫,并顯示給用戶系統(tǒng)將短消息寫入數(shù)據(jù)庫,并顯示給用戶軟件工程軟件工程54短信系統(tǒng)案例(短信系統(tǒng)案例(II)q人員維護(hù)人員維護(hù)的場(chǎng)景描述的場(chǎng)景描述n管理員添加一個(gè)新成員管理員添加一個(gè)新成員n管理員更新一個(gè)成員的信息管理員更新一個(gè)成員的信息n管理員刪除一個(gè)成員管理員刪除一個(gè)成員q系統(tǒng)設(shè)置系統(tǒng)設(shè)置的場(chǎng)景描述的場(chǎng)景描述n管理員修改基本信息:如短信客服中心號(hào)碼、發(fā)送頻率、管理員修改基本信息:如短信客服中心號(hào)碼、發(fā)送頻率、延時(shí)等延時(shí)等n系統(tǒng)保存設(shè)置信息系統(tǒng)保存設(shè)置信息軟件工程軟件工程55短信系統(tǒng)案例(
42、短信系統(tǒng)案例(III)n類包括類包括q邊界類邊界類:用于建立系統(tǒng)與其參與者之間:用于建立系統(tǒng)與其參與者之間交互的模型交互的模型,經(jīng)常代,經(jīng)常代表對(duì)窗口、屏幕、打印機(jī)接口等抽象。表對(duì)窗口、屏幕、打印機(jī)接口等抽象。n發(fā)送短信界面、接收短信界面、收發(fā)接口發(fā)送短信界面、接收短信界面、收發(fā)接口q控制類控制類:代表協(xié)調(diào)、排序、事務(wù)處理以及其它的:代表協(xié)調(diào)、排序、事務(wù)處理以及其它的對(duì)象控制對(duì)象控制,經(jīng)常用于經(jīng)常用于封閉封閉與某個(gè)具體用例有關(guān)的控制。與某個(gè)具體用例有關(guān)的控制。n發(fā)送短信、接收短信發(fā)送短信、接收短信q實(shí)體類實(shí)體類:用于長(zhǎng)效持久的信息建模。多數(shù)情況下,實(shí)體類是:用于長(zhǎng)效持久的信息建模。多數(shù)情況下,
43、實(shí)體類是直接直接從業(yè)務(wù)對(duì)象模型中相應(yīng)的從業(yè)務(wù)對(duì)象模型中相應(yīng)的業(yè)務(wù)實(shí)體業(yè)務(wù)實(shí)體類類得到得到。n短信編短信編/解碼、發(fā)送的短信串、接收的短信串解碼、發(fā)送的短信串、接收的短信串軟件工程軟件工程56短信系統(tǒng)案例(短信系統(tǒng)案例(IV)n發(fā)送短信用例的發(fā)送短信用例的協(xié)作圖協(xié)作圖:軟件工程軟件工程57短信系統(tǒng)案例(短信系統(tǒng)案例(V)n發(fā)送短信用例的發(fā)送短信用例的順序圖順序圖(時(shí)序圖時(shí)序圖):軟件工程軟件工程58第第6章章n6.1 需求建模策略需求建模策略n6.2 面向流程建模面向流程建模n6.3 生成行為模型生成行為模型n6.4 需求建模的模式需求建模的模式軟件工程軟件工程596.4 需求建模的模式需求建模
44、的模式n軟件模式軟件模式是獲取領(lǐng)域知識(shí)的一種機(jī)制,從而遇到新問題時(shí)可以是獲取領(lǐng)域知識(shí)的一種機(jī)制,從而遇到新問題時(shí)可以反復(fù)使用。反復(fù)使用。q在某些情況下,領(lǐng)域知識(shí)在在某些情況下,領(lǐng)域知識(shí)在同一應(yīng)用領(lǐng)域同一應(yīng)用領(lǐng)域中用于解決新問題。中用于解決新問題。q在另外一些情況下,通過模式獲取的領(lǐng)域知識(shí)可借助模擬用于完全在另外一些情況下,通過模式獲取的領(lǐng)域知識(shí)可借助模擬用于完全不同的應(yīng)用領(lǐng)域不同的應(yīng)用領(lǐng)域。n分析模式分析模式表示了在某些應(yīng)用領(lǐng)域中常表示了在某些應(yīng)用領(lǐng)域中常合并合并一個(gè)類、一個(gè)功能、一個(gè)類、一個(gè)功能、或一個(gè)行為的或一個(gè)行為的解決方案解決方案。q當(dāng)為某個(gè)領(lǐng)域的應(yīng)用執(zhí)行需求建模時(shí)會(huì)當(dāng)為某個(gè)領(lǐng)域的應(yīng)用
45、執(zhí)行需求建模時(shí)會(huì)重用重用模式。模式。q分析模式都存儲(chǔ)于一個(gè)分析模式都存儲(chǔ)于一個(gè)倉庫倉庫中以便軟件團(tuán)隊(duì)的成員能夠使用搜索工中以便軟件團(tuán)隊(duì)的成員能夠使用搜索工具找到并復(fù)用。具找到并復(fù)用。q一旦選擇到合適的模式,就可通過參考模式名稱一旦選擇到合適的模式,就可通過參考模式名稱整合整合到需求模型中到需求模型中軟件工程軟件工程60發(fā)現(xiàn)分析模式發(fā)現(xiàn)分析模式n需求模型由各種元素組成:需求模型由各種元素組成:q基于場(chǎng)景基于場(chǎng)景(用例用例)、基于數(shù)據(jù)、基于數(shù)據(jù)(數(shù)據(jù)模型數(shù)據(jù)模型)、基于類、基于流和行為。、基于類、基于流和行為。q其中每個(gè)元素都是從其中每個(gè)元素都是從不同的視角不同的視角檢查問題,并且檢查問題,并且每
46、一個(gè)都提供一每一個(gè)都提供一種發(fā)現(xiàn)模式種發(fā)現(xiàn)模式的機(jī)會(huì),可能發(fā)生在整個(gè)應(yīng)用領(lǐng)域,或者發(fā)生在類似的機(jī)會(huì),可能發(fā)生在整個(gè)應(yīng)用領(lǐng)域,或者發(fā)生在類似但橫跨不同的應(yīng)用領(lǐng)域。但橫跨不同的應(yīng)用領(lǐng)域。n在需求模型的描述中最基本的元素是在需求模型的描述中最基本的元素是用例用例。一套。一套連貫用例連貫用例可以成為服務(wù)于可以成為服務(wù)于發(fā)現(xiàn)發(fā)現(xiàn)一個(gè)或多個(gè)一個(gè)或多個(gè)分析模式分析模式的的基礎(chǔ)基礎(chǔ)。q語義分析模式語義分析模式(semantic analysis pattern, SAP)描述了一小套連描述了一小套連貫用例,這些用例一起描述了貫用例,這些用例一起描述了通用應(yīng)用通用應(yīng)用的基礎(chǔ)。的基礎(chǔ)。軟件工程軟件工程61發(fā)現(xiàn)分析
47、模式發(fā)現(xiàn)分析模式n用例用例:監(jiān)控反向運(yùn)動(dòng)監(jiān)控反向運(yùn)動(dòng)n描述描述:當(dāng)車輛安裝了反向齒輪,控制軟件就能從后向視頻攝像機(jī)將一當(dāng)車輛安裝了反向齒輪,控制軟件就能從后向視頻攝像機(jī)將一段視頻輸入到儀表板顯示器上。控制軟件在儀表板顯示器上疊加各種段視頻輸入到儀表板顯示器上??刂栖浖趦x表板顯示器上疊加各種各樣距離和方向的線,以便車輛向后運(yùn)動(dòng)時(shí)駕駛員能保持方向??刂聘鳂泳嚯x和方向的線,以便車輛向后運(yùn)動(dòng)時(shí)駕駛員能保持方向??刂栖浖€能監(jiān)控臨近傳感器,以判定在車后方軟件還能監(jiān)控臨近傳感器,以判定在車后方1010英尺內(nèi)是否有物體存在英尺內(nèi)是否有物體存在。如果臨近傳感器檢測(cè)到某個(gè)物體在車后方。如果臨近傳感器檢測(cè)到某個(gè)
48、物體在車后方x x英尺內(nèi)就會(huì)讓車自動(dòng)停英尺內(nèi)就會(huì)讓車自動(dòng)停止,這個(gè)止,這個(gè)x x值由車輛的速度決定。值由車輛的速度決定。n本例中,本例中,“傳感器傳感器”提供臨近信息和視頻信息。提供臨近信息和視頻信息。“執(zhí)行器執(zhí)行器”用于車輛用于車輛的停止系統(tǒng)。許多的停止系統(tǒng)。許多不同應(yīng)用領(lǐng)域不同應(yīng)用領(lǐng)域的軟件需要的軟件需要監(jiān)控傳感器監(jiān)控傳感器和和控制物理執(zhí)控制物理執(zhí)行器行器。所依照的分析模式描述了能廣泛應(yīng)用的通用需求。所依照的分析模式描述了能廣泛應(yīng)用的通用需求。q形成了模式形成了模式Actuator-Sensor (執(zhí)行器執(zhí)行器-傳感器傳感器)軟件工程軟件工程62需求模式舉例需求模式舉例n模式名模式名:執(zhí)行
49、器:執(zhí)行器傳感器傳感器n目的目的:詳細(xì)說明在嵌入式系統(tǒng)中的各種傳感器和執(zhí)行器。:詳細(xì)說明在嵌入式系統(tǒng)中的各種傳感器和執(zhí)行器。n動(dòng)機(jī)動(dòng)機(jī):嵌入式系統(tǒng)常有各種傳感器和執(zhí)行器。這些傳感器和執(zhí):嵌入式系統(tǒng)常有各種傳感器和執(zhí)行器。這些傳感器和執(zhí)行器都直接或間接連接到一個(gè)控制單元。雖然許多傳感器和執(zhí)行器都直接或間接連接到一個(gè)控制單元。雖然許多傳感器和執(zhí)行器看上去十分不同,但它們的行器看上去十分不同,但它們的行為是相似的行為是相似的,足以讓它們構(gòu)足以讓它們構(gòu)成一個(gè)模式成一個(gè)模式。這個(gè)模式顯示了如何為一個(gè)系統(tǒng)。這個(gè)模式顯示了如何為一個(gè)系統(tǒng)指定傳感器和執(zhí)指定傳感器和執(zhí)行器行器,包括,包括屬性屬性和和操作操作。執(zhí)
50、行器。執(zhí)行器傳感器模式為傳感器模式為被動(dòng)式被動(dòng)式傳感器傳感器使用使用“拉機(jī)制拉機(jī)制”(通過請(qǐng)求查詢來獲得值通過請(qǐng)求查詢來獲得值),為,為主動(dòng)主動(dòng)傳感器使用傳感器使用“推機(jī)制推機(jī)制”(值改變時(shí),主動(dòng)進(jìn)行消息廣播值改變時(shí),主動(dòng)進(jìn)行消息廣播)。軟件工程軟件工程63需求模式舉例:執(zhí)行器需求模式舉例:執(zhí)行器傳感器傳感器n約束約束:q每個(gè)每個(gè)被動(dòng)傳感器被動(dòng)傳感器必須有某種方法必須有某種方法讀取傳感器的輸入讀取傳感器的輸入和和表示傳感器表示傳感器值的屬性值的屬性。q每個(gè)每個(gè)主動(dòng)傳感器主動(dòng)傳感器必須能在其值發(fā)生變更時(shí)必須能在其值發(fā)生變更時(shí)廣播更新消息廣播更新消息。q每個(gè)每個(gè)主動(dòng)傳感器主動(dòng)傳感器應(yīng)該能應(yīng)該能發(fā)送
51、發(fā)送一個(gè)一個(gè)生命刻度生命刻度,即在,即在特定時(shí)間幀中發(fā)特定時(shí)間幀中發(fā)布狀態(tài)信息布狀態(tài)信息,以便檢測(cè)出可能的錯(cuò)誤動(dòng)作。,以便檢測(cè)出可能的錯(cuò)誤動(dòng)作。q每個(gè)每個(gè)執(zhí)行者執(zhí)行者必須有某種方法必須有某種方法調(diào)用調(diào)用由由ComputingComponent構(gòu)件產(chǎn)構(gòu)件產(chǎn)生的生的適當(dāng)應(yīng)答適當(dāng)應(yīng)答。q每個(gè)每個(gè)傳感器傳感器和和執(zhí)行器執(zhí)行器應(yīng)有實(shí)施應(yīng)有實(shí)施檢測(cè)其自身操作狀態(tài)檢測(cè)其自身操作狀態(tài)的功能。的功能。q每個(gè)傳感器和執(zhí)行器能每個(gè)傳感器和執(zhí)行器能測(cè)試測(cè)試接收值或發(fā)送值的接收值或發(fā)送值的有效性有效性,并且當(dāng)值,并且當(dāng)值超出指定邊界超出指定邊界時(shí)能時(shí)能設(shè)定其操作狀態(tài)設(shè)定其操作狀態(tài)。軟件工程軟件工程64需求模式舉例:執(zhí)行
52、器需求模式舉例:執(zhí)行器傳感器傳感器n適用性適用性:對(duì)有多個(gè)傳感器和執(zhí)行器的任何系統(tǒng)都是非常有用的。:對(duì)有多個(gè)傳感器和執(zhí)行器的任何系統(tǒng)都是非常有用的。n結(jié)構(gòu)體結(jié)構(gòu)體:執(zhí)行器、被動(dòng)傳感器和主動(dòng)傳感器是:執(zhí)行器、被動(dòng)傳感器和主動(dòng)傳感器是抽象類抽象類,該模式中有四,該模式中有四種不同的傳感器和執(zhí)行器。種不同的傳感器和執(zhí)行器。圖圖6-8:傳感器和執(zhí)行器的:傳感器和執(zhí)行器的UML類圖類圖軟件工程軟件工程65需求模式舉例:執(zhí)行器需求模式舉例:執(zhí)行器傳感器傳感器n行為行為:順序圖,用以控制安全攝像機(jī)的調(diào)整:順序圖,用以控制安全攝像機(jī)的調(diào)整 (例如轉(zhuǎn)動(dòng)、變焦、聚焦例如轉(zhuǎn)動(dòng)、變焦、聚焦)圖圖6-9:傳感器和執(zhí)行器
53、的:傳感器和執(zhí)行器的UML順序圖順序圖軟件工程軟件工程66需求模式舉例:執(zhí)行器需求模式舉例:執(zhí)行器傳感器傳感器n參與者:參與者:列舉需求模式中的列舉需求模式中的類或?qū)ο箢惢驅(qū)ο?,并描述每個(gè)類和對(duì)象的,并描述每個(gè)類和對(duì)象的職責(zé)職責(zé)軟件工程軟件工程67需求模式舉例:執(zhí)行器需求模式舉例:執(zhí)行器傳感器傳感器n協(xié)作協(xié)作:描述的是:描述的是對(duì)象和類對(duì)象和類之間如何進(jìn)行之間如何進(jìn)行交互活動(dòng)交互活動(dòng)以及以及實(shí)現(xiàn)自身的責(zé)任實(shí)現(xiàn)自身的責(zé)任。q當(dāng)當(dāng)ComputingComponent需要更新需要更新PassiveSensor時(shí),它詢問傳感器,通過發(fā)時(shí),它詢問傳感器,通過發(fā)送適當(dāng)?shù)南⑺瓦m當(dāng)?shù)南⒄?qǐng)求傳值請(qǐng)求傳值。q
54、ActiveSensor無需查詢。這些對(duì)象和類無需查詢。這些對(duì)象和類主動(dòng)主動(dòng)向計(jì)算機(jī)單元中傳送傳感器的值向計(jì)算機(jī)單元中傳送傳感器的值,使用適當(dāng)?shù)姆椒ㄔO(shè)定在,使用適當(dāng)?shù)姆椒ㄔO(shè)定在ComputingComponent中的值。對(duì)象和類在中的值。對(duì)象和類在指定的指定的時(shí)間幀發(fā)送至少一次生命刻度時(shí)間幀發(fā)送至少一次生命刻度,以便用系統(tǒng)時(shí)間,以便用系統(tǒng)時(shí)間更新它們的時(shí)間戳更新它們的時(shí)間戳。q當(dāng)當(dāng)ComputingComponent需要設(shè)定需要設(shè)定執(zhí)行器執(zhí)行器的值時(shí),給執(zhí)行器發(fā)送值。的值時(shí),給執(zhí)行器發(fā)送值。qComputingComponent能使用適當(dāng)?shù)姆椒苁褂眠m當(dāng)?shù)姆椒ú樵兒驮O(shè)定查詢和設(shè)定傳感器和執(zhí)行器的傳感器和執(zhí)行器的操作操作狀態(tài)狀態(tài)。如果發(fā)現(xiàn)操作狀態(tài)為零,就發(fā)送錯(cuò)誤給。如果發(fā)現(xiàn)操作狀態(tài)為零,就發(fā)送錯(cuò)誤給FaultHandler錯(cuò)誤處理程序錯(cuò)誤處理程序,這個(gè)類包含處理錯(cuò)誤消息的方法,比如啟動(dòng)更詳細(xì)的這個(gè)類包含處理錯(cuò)誤消息的方法,比如啟動(dòng)更詳細(xì)的恢復(fù)機(jī)制恢復(fù)機(jī)制或者或者備份設(shè)備備份設(shè)備。如果不可恢復(fù),系統(tǒng)只能使用傳感器最后的已知值或者默認(rèn)值。如果不可恢復(fù),系統(tǒng)只能使用傳感器最
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司調(diào)整合同范例
- 寫好保密合同范例
- 產(chǎn)品試用可以退合同范例
- led路燈改造合同范例
- epc定額結(jié)算合同范本
- 個(gè)人公寓傭金合同范例
- 加盟項(xiàng)目代理建設(shè)合同范例
- 企業(yè)銷售合同范例變更
- 營(yíng)養(yǎng)素缺乏的預(yù)防
- 共同使用合同范例
- 2024年5月泉州市高三語文高考三模質(zhì)檢試卷附答案解析
- 建設(shè)工程安全生產(chǎn)管理模擬練習(xí)題及答案
- 2024年刑法知識(shí)考試題庫及答案(典優(yōu))
- (高清版)JTGT 5440-2018 公路隧道加固技術(shù)規(guī)范
- 追悼會(huì)主持詞開場(chǎng)白-追悼會(huì)流程主持詞
- 國(guó)家基本藥物臨床應(yīng)用指南最完整版
- 急性髓系白血病小講課
- 大氣冬季滑雪旅游宣傳
- 2016-2023年株洲師范高等??茖W(xué)校高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 項(xiàng)目成本管控要素清單
- 歌唱二小放牛郎 金巍 女聲合唱譜
評(píng)論
0/150
提交評(píng)論