




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
道德講堂第一講:道德理論專題——繼承和弘揚(yáng)中華民族優(yōu)良道德傳統(tǒng)修德明道
錦心繡行錦繡講堂軟件工程第09章軟件工程第09章9.1面向數(shù)據(jù)設(shè)計(jì)的概念JSD方法是Jackson于1989年對軟件設(shè)計(jì)中廣為使用的Jackson結(jié)構(gòu)程序設(shè)計(jì)(JacksonStructuredProgramming,簡稱JSP)方法的擴(kuò)展。DSSD方法,也稱為Warnier?Orr方法,是對Warnier程序邏輯構(gòu)造(LogicalConstructionofProgram,簡稱LCP)方法的擴(kuò)充,除了設(shè)計(jì)能力以外,還加強(qiáng)了分析能力。9.1面向數(shù)據(jù)設(shè)計(jì)的概念面向數(shù)據(jù)設(shè)計(jì)方法一般都包括下列任務(wù):1.確定數(shù)據(jù)結(jié)構(gòu)特征;2.用順序、選擇和重復(fù)三種基本形式表示數(shù)據(jù);3.把數(shù)據(jù)結(jié)構(gòu)表示映射為軟件的控制結(jié)構(gòu);4.用與具體方法配套的設(shè)計(jì)指南進(jìn)一步精化控制結(jié)構(gòu);5.開發(fā)軟件的過程性描述。9.1面向數(shù)據(jù)設(shè)計(jì)的概念JSD和DSSD方法的軟件總體結(jié)構(gòu)設(shè)計(jì)與軟件過程性設(shè)計(jì)的分界并不明顯,都能很快地過渡到過程性描述。這也是易于理解和易于維護(hù)的重要表現(xiàn)之一。JSD和DSSD也是分析與設(shè)計(jì)一體化的,本章側(cè)重于討論與設(shè)計(jì)有關(guān)的技術(shù)。面向數(shù)據(jù)的設(shè)計(jì)方法,要求信息結(jié)構(gòu)用層次圖表示,在軟件需求規(guī)格說明中與信息域的描述相對應(yīng)。9.1面向數(shù)據(jù)設(shè)計(jì)的概念面向數(shù)據(jù)的設(shè)計(jì)方法的適用場合具有明顯的層次信息結(jié)構(gòu)的應(yīng)用:企事業(yè)的信息管理系統(tǒng);系統(tǒng)軟件(如操作系統(tǒng));科學(xué)與工程計(jì)算;計(jì)算機(jī)輔助教學(xué);組合問題求解等領(lǐng)域。例如:CAD/CAE/CIM類應(yīng)用軟件。9.2Jackson系統(tǒng)開發(fā)方法用JSD方法開發(fā)一個(gè)軟件的步驟:1)標(biāo)識實(shí)體與動(dòng)作:用與面向?qū)ο蠓椒愃频姆治黾夹g(shù)識別出系統(tǒng)中的實(shí)體(包括人、對象、產(chǎn)生或使用信息的組織)和動(dòng)作(客觀世界中影響系統(tǒng)實(shí)體的那些事件);2)生成實(shí)體結(jié)構(gòu)圖:針對每一實(shí)體,將影響它的所有動(dòng)作按發(fā)生的時(shí)間順序用Jackson結(jié)構(gòu)圖(Jacksondiagrams)表示出來。為了描述時(shí)間約束,同一動(dòng)作必須出現(xiàn)在多張結(jié)構(gòu)圖中;用JSD方法開發(fā)一個(gè)軟件的步驟:3)初建系統(tǒng)模型:將實(shí)體和動(dòng)作統(tǒng)一用一個(gè)過程模型表示,并定義該模型中的過程與客觀世界中的過程之間的聯(lián)系。所用描述工具為系統(tǒng)規(guī)格說明圖(SystemSpecificationDiagram,簡稱SSD);4)擴(kuò)充功能性過程:在過程模型中擴(kuò)充交互型功能和信息型功能,分別產(chǎn)生內(nèi)部輸入信息和系統(tǒng)輸出信息;5)系統(tǒng)定時(shí):確定實(shí)現(xiàn)必須滿足的時(shí)間約束;6)實(shí)現(xiàn):確定系統(tǒng)中所有軟硬件成分,形成一個(gè)完整設(shè)計(jì)方案。前三個(gè)步驟主要在需求分析階段完成,后三步是軟件設(shè)計(jì)的任務(wù)。9.2.1JSD分析技術(shù)回顧我們曾以大學(xué)校園內(nèi)直達(dá)交通車系統(tǒng)USS為例進(jìn)行需求分析,結(jié)果得出“交通車”和“按鈕”兩實(shí)體及其動(dòng)作對應(yīng)的實(shí)體結(jié)構(gòu)圖如下圖所示。9.2.1JSD分析技術(shù)回顧初建系統(tǒng)模型后,得到USS的系統(tǒng)規(guī)格說明圖(圖7?2?4)。其中后綴為“_0”的過程表示客觀世界中的過程(或外部過程),后綴為“_1”的過程表示系統(tǒng)模型內(nèi)的過程(或模型過程)。圖7-2-4USS的系統(tǒng)規(guī)格說明圖9.2.1JSD分析技術(shù)回顧將實(shí)體結(jié)構(gòu)圖與初建系統(tǒng)模型(系統(tǒng)規(guī)格說明圖)綜合起來,可導(dǎo)出目標(biāo)軟件系統(tǒng)中每個(gè)過程內(nèi)部細(xì)節(jié)的結(jié)構(gòu)正文表示,如6.2.3節(jié)過程BUTTON_1和SHUTTLE_1所描述。上述結(jié)構(gòu)正文也可對應(yīng)地用Jackson結(jié)構(gòu)圖表示。圖6?2?5是與模型過程SHUTTLE_1的結(jié)構(gòu)正文對應(yīng)的Jackson結(jié)構(gòu)圖。細(xì)細(xì)品味《去年的樹》,一種哀婉動(dòng)人的心緒會縈繞在我們心頭,久久揮之不去。究竟是什么打動(dòng)了我們的心?《去年的樹》是一個(gè)關(guān)于友誼的故事,但它的構(gòu)思卻與眾不同:故事剛交待了鳥兒和樹的友誼,樹就從故事中退出了。作者的敘述主線完全落在了鳥兒身上,讓鳥兒信守諾言,去追尋樹的蹤跡。故事的結(jié)局讓我們心靈震顫——鳥兒找到的已經(jīng)不是當(dāng)年枝葉繁茂的大樹,而是朋友的軀體點(diǎn)燃的燈火,盡管這樣,鳥兒還是對燈火唱起了這個(gè)故事打動(dòng)我們的不只是鳥兒的信守諾言,而是一種生死不渝的友誼。當(dāng)友誼超越了生死的界限,就成為感人肺腑的永恒情懷,成為巨大的精神力量。我覺得這是這個(gè)童話人文內(nèi)涵的主導(dǎo)傾向,它有別于其他歌頌友誼的課文,具有獨(dú)到的教育價(jià)值。當(dāng)我第一遍讀文本時(shí),我覺得這篇作品的主旨在“環(huán)?!鄙希阂獝圩o(hù)樹木,保護(hù)樹木,不應(yīng)該亂加砍伐。但再讀幾遍后,我認(rèn)為作為文學(xué)作品,這篇童話更為重要的,在于非常生動(dòng)地?cái)懖⒏桧灹巳伺c人之間存在的深厚的愛意、純真忠誠的友誼。小鳥對著燈火歌唱著,樹變成火柴,這是有形的,可是當(dāng)變成火光,就是無形的,小鳥為什么還要歌唱?小鳥對著不可觸摸的,已經(jīng)飄逝的火光唱歌,明明知道它已經(jīng)不會回答了。這是盡心,這是牽掛,這是深厚的愛意,這是純真的友誼,這是對自己的愛負(fù)責(zé)?!彪m然我對文本的解讀是到位的,但在教學(xué)中,對引導(dǎo)學(xué)生體會小鳥的信守諾言做得不到位,感覺太突兀了,學(xué)生還不明白。二、重視整體把握和時(shí)間的安排對要進(jìn)行的每一個(gè)教學(xué)環(huán)節(jié)先進(jìn)行估計(jì),想想這一個(gè)步在課堂中我試圖把學(xué)生帶入文本,帶入作者的心靈。因此,我把指導(dǎo)學(xué)生朗讀作為重點(diǎn),讓學(xué)生帶著憂傷,帶著對大樹的同情深深的去體會,去感悟。因?yàn)榉椒ǖ轿?,大膽放手,課堂基本達(dá)到了自己想要的那種境界。珍視學(xué)生獨(dú)特的感受。在最后3個(gè)自然段的學(xué)習(xí)中,我提出問題:小鳥深情地注視著油燈的火苗,然后為火苗唱起了去年的那支歌。那是什么朋友一生一起走,那些日子不再有。一句話一輩子,一生情一杯酒。朋友不曾孤單過,一聲朋友你會懂。還有傷還有痛,還要走還有我。同學(xué)們暢所欲言,有的說,有的唱,課堂氣氛達(dá)到了高潮。朋友一生一起走,那些日子不再有。一句話一輩子,一生情一杯酒。朋友不曾孤單過,一聲朋友你會懂。還有傷還有痛,還要走還有我。同學(xué)們暢所欲言,有的說,有的唱,課堂氣氛達(dá)到了高潮。歌,你能知道嗎?朋友一生一起走,那些日子不再有。一句話一輩子,一生情一杯酒。朋友不曾孤單過,一聲朋友你會懂。還有傷還有痛,還要走還有我。同學(xué)們暢所欲言,有的說,有的唱,課堂氣氛達(dá)到了高潮。9.1面向數(shù)據(jù)設(shè)計(jì)的概念在許多應(yīng)用領(lǐng)域中,信息有著清晰的層次結(jié)構(gòu),輸入數(shù)據(jù)、存儲信息(即數(shù)據(jù)庫)及輸出數(shù)據(jù)都有各自的組織形式。一般說來,順序出現(xiàn)的數(shù)據(jù)可以用順序控制結(jié)構(gòu)的程序處理;選擇出現(xiàn)的數(shù)據(jù)用分支控制結(jié)構(gòu)的程序處理;重復(fù)出現(xiàn)的數(shù)據(jù)用循環(huán)控制結(jié)構(gòu)的程序處理。因此可以根據(jù)數(shù)據(jù)的組織形式確定使用和處理這些數(shù)據(jù)的程序的組織形式。9.1面向數(shù)據(jù)設(shè)計(jì)的概念面向數(shù)據(jù)的設(shè)計(jì)就是根據(jù)數(shù)據(jù)結(jié)構(gòu)的表示獲得軟件表示。本章重點(diǎn)討論:1.Jackson系統(tǒng)開發(fā)方法
JacksonSystemDevelopment,簡稱JSD2.基于結(jié)構(gòu)化數(shù)據(jù)的系統(tǒng)開發(fā)方法
DataStructuredSystemDevelopment,簡稱DSSD9.1面向數(shù)據(jù)設(shè)計(jì)的概念JSD方法是Jackson于1989年對軟件設(shè)計(jì)中廣為使用的Jackson結(jié)構(gòu)程序設(shè)計(jì)(JacksonStructuredProgramming,簡稱JSP)方法的擴(kuò)展。DSSD方法,也稱為Warnier?Orr方法,是對Warnier程序邏輯構(gòu)造(LogicalConstructionofProgram,簡稱LCP)方法的擴(kuò)充,除了設(shè)計(jì)能力以外,還加強(qiáng)了分析能力。9.1面向數(shù)據(jù)設(shè)計(jì)的概念面向數(shù)據(jù)設(shè)計(jì)方法一般都包括下列任務(wù):
1.確定數(shù)據(jù)結(jié)構(gòu)特征;
2.用順序、選擇和重復(fù)三種基本形式表示數(shù)據(jù);
3.把數(shù)據(jù)結(jié)構(gòu)表示映射為軟件的控制結(jié)構(gòu);
4.用與具體方法配套的設(shè)計(jì)指南進(jìn)一步精化控制結(jié)構(gòu);
5.開發(fā)軟件的過程性描述。9.1面向數(shù)據(jù)設(shè)計(jì)的概念JSD和DSSD方法的軟件總體結(jié)構(gòu)設(shè)計(jì)與軟件過程性設(shè)計(jì)的分界并不明顯,都能很快地過渡到過程性描述。這也是易于理解和易于維護(hù)的重要表現(xiàn)之一。JSD和DSSD也是分析與設(shè)計(jì)一體化的,本章側(cè)重于討論與設(shè)計(jì)有關(guān)的技術(shù)。面向數(shù)據(jù)的設(shè)計(jì)方法,要求信息結(jié)構(gòu)用層次圖表示,在軟件需求規(guī)格說明中與信息域的描述相對應(yīng)。9.1面向數(shù)據(jù)設(shè)計(jì)的概念面向數(shù)據(jù)的設(shè)計(jì)方法的適用場合具有明顯的層次信息結(jié)構(gòu)的應(yīng)用:企事業(yè)的信息管理系統(tǒng);系統(tǒng)軟件(如操作系統(tǒng));科學(xué)與工程計(jì)算;計(jì)算機(jī)輔助教學(xué);組合問題求解等領(lǐng)域。例如:CAD/CAE/CIM類應(yīng)用軟件。9.2Jackson系統(tǒng)開發(fā)方法用JSD方法開發(fā)一個(gè)軟件的步驟:
1)標(biāo)識實(shí)體與動(dòng)作:用與面向?qū)ο蠓椒愃频姆治黾夹g(shù)識別出系統(tǒng)中的實(shí)體(包括人、對象、產(chǎn)生或使用信息的組織)和動(dòng)作(客觀世界中影響系統(tǒng)實(shí)體的那些事件);2)生成實(shí)體結(jié)構(gòu)圖:針對每一實(shí)體,將影響它的所有動(dòng)作按發(fā)生的時(shí)間順序用Jackson結(jié)構(gòu)圖(Jacksondiagrams)表示出來。為了描述時(shí)間約束,同一動(dòng)作必須出現(xiàn)在多張結(jié)構(gòu)圖中;用JSD方法開發(fā)一個(gè)軟件的步驟:3)初建系統(tǒng)模型:將實(shí)體和動(dòng)作統(tǒng)一用一個(gè)過程模型表示,并定義該模型中的過程與客觀世界中的過程之間的聯(lián)系。所用描述工具為系統(tǒng)規(guī)格說明圖(SystemSpecificationDiagram,簡稱SSD);4)擴(kuò)充功能性過程:在過程模型中擴(kuò)充交互型功能和信息型功能,分別產(chǎn)生內(nèi)部輸入信息和系統(tǒng)輸出信息;5)系統(tǒng)定時(shí):確定實(shí)現(xiàn)必須滿足的時(shí)間約束;6)實(shí)現(xiàn):確定系統(tǒng)中所有軟硬件成分,形成一個(gè)完整設(shè)計(jì)方案。前三個(gè)步驟主要在需求分析階段完成,后三步是軟件設(shè)計(jì)的任務(wù)。9.2.1JSD分析技術(shù)回顧我們曾以大學(xué)校園內(nèi)直達(dá)交通車系統(tǒng)USS為例進(jìn)行需求分析,結(jié)果得出“交通車”和“按鈕”兩實(shí)體及其動(dòng)作對應(yīng)的實(shí)體結(jié)構(gòu)圖如下圖所示。ShuttleShuttle*bodyStation(i)Arrive(i)°Leave(i)°Arrive(1)ButtonPush*Leave(1)9.2.1JSD分析技術(shù)回顧初建系統(tǒng)模型后,得到USS的系統(tǒng)規(guī)格說明圖(圖7?2?4)。其中后綴為“_0”的過程表示客觀世界中的過程(或外部過程),后綴為“_1”的過程表示系統(tǒng)模型內(nèi)的過程(或模型過程)。圖7-2-4USS的系統(tǒng)規(guī)格說明圖Button?1DSShuttle?0Shuttle?1SV數(shù)據(jù)流聯(lián)系Button?0狀態(tài)向量聯(lián)系9.2.1JSD分析技術(shù)回顧將實(shí)體結(jié)構(gòu)圖與初建系統(tǒng)模型(系統(tǒng)規(guī)格說明圖)綜合起來,可導(dǎo)出目標(biāo)軟件系統(tǒng)中每個(gè)過程內(nèi)部細(xì)節(jié)的結(jié)構(gòu)正文表示,如6.2.3節(jié)過程BUTTON_1和SHUTTLE_1所描述。上述結(jié)構(gòu)正文也可對應(yīng)地用Jackson結(jié)構(gòu)圖表示。圖6?2?5是與模型過程SHUTTLE_1的結(jié)構(gòu)正文對應(yīng)的Jackson結(jié)構(gòu)圖。圖6?2?5對應(yīng)于結(jié)構(gòu)正文的結(jié)構(gòu)圖Shuttle?1Station(i)*Arrive(1)Leave(1)Shuttle?body1TRANSit?body1wait?body1Transit(i)*Transit(1)*Arrive(i)Leave(i)Wait(1)*TRANSit?bodywait?bodyWait(i)*9.2.2擴(kuò)充功能性過程這一步驟以初建系統(tǒng)模型為基礎(chǔ),通過數(shù)據(jù)流和狀態(tài)向量兩種方式將新定義的功能性過程與原有的模型過程聯(lián)系起來。具體考慮兩類功能:1.信息型功能(informationfunction):從模型過程產(chǎn)生的數(shù)據(jù)流和狀態(tài)向量中提取信息并生成輸出信息。嵌入型功能只需在原有模型過程的結(jié)構(gòu)正文中插入一些操作;2.交互型功能(interactivefunction):監(jiān)視模型過程的狀態(tài)向量,在輸出結(jié)果的同時(shí)產(chǎn)生內(nèi)部輸入信息,反過來影響模型化過程的動(dòng)作。圖10?2?1兩類功能性過程與系統(tǒng)模型的關(guān)系外部過程系統(tǒng)模型信息型功能過程交互型功能過程客觀世界系統(tǒng)9.2.2擴(kuò)充功能性過程假設(shè)在交通車上有一塊發(fā)光板,專門顯示車到站的信息,發(fā)光板“亮”說明車到站,“暗”說明車離開。此板或亮或暗受LON(i)、LOFF(i)兩命令的控制。在過程SHUTTLE_1中可嵌入一個(gè)新功能:當(dāng)交通車到達(dá)站(i)時(shí),發(fā)出命令LON(i);離開站(i)時(shí),發(fā)出命令LOFF(i)。交通車在兩站之間往返運(yùn)行過程中,輸出“開關(guān)發(fā)光板”的命令數(shù)據(jù)流,圖10?2?2為增加這一功能后的SSD,結(jié)構(gòu)正文修改為:9.2.2擴(kuò)充功能性過程圖10?2?2修改后的SSDLAMPCMDS—LampcommandsButton?0BDSVButton?1Shuttle?0Shuttle?1LAMPCMDSSHUTTLE_1seqLON(1)/*控制發(fā)光板“亮”,說明交通車正停在站1上*/read狀態(tài)向量WAIT_BODY1itrwhileWait(1)read狀態(tài)向量WAIT_BODY1endLOFF(1)/*交通車即將離站;控制發(fā)光板“暗”*/LEAVE(1)TRANSIT_BODY1itrwhileTransit(1)read狀態(tài)向量TRANSIT_BODY1endSHUTTLE_BODY1itrSTATIONseqARRIVE(i)LON(i)/*交通車已??空荆╥)*/WAIT_BODYitrwhileWait(i)read狀態(tài)向量WAIT_BODYendLOFF(i)/*交通車將離開站(i)*/LEAVE(i)TRANSIT_BODYitrwhileTransit(i)read狀態(tài)向量TRANSIT_BODYendSTATIONendSHUTTL_BODY1endARRIVE(1)SHUTTL_1end9.2.2擴(kuò)充功能性過程第二個(gè)功能是產(chǎn)生關(guān)于啟動(dòng)(START)和關(guān)閉(STOP)發(fā)動(dòng)機(jī)的命令,以此控制交通車的運(yùn)行。下達(dá)STOP命令的條件是,傳感器顯示車已到站,而下達(dá)START命令的條件是乘客壓下按鈕招呼交通車并恰好交通車在某個(gè)站上等待。為此引入一個(gè)功能性過程mcontrol,它從SHUTTLE_1和BUTTON_2兩過程接收數(shù)據(jù),適時(shí)地發(fā)出START和STOP兩種命令。過程SHUTTLE_1與過程mcontrol之間用數(shù)據(jù)流“S1D”連接。因此SHUTTLE_1的結(jié)構(gòu)正文進(jìn)一步修改為:SHUTTLE_1seqLON(1)read狀態(tài)向量WAIT_BODY1itrwhileWait(1)read狀態(tài)向量WAIT_BODY1endLOFF(1)LEAVE(1)TRANSIT_BODY1itrwhileTransit(1)read狀態(tài)向量TRANSIT_BODY1endSHUTTLE_BODY1itrSTATIONseqARRIVE(i)
writearrivetoS1D/*向mcontrol發(fā)送數(shù)據(jù)流,說明車已到站(i)*/LON(i)WAIT_BODYitrwhileWait(i)read狀態(tài)向量WAIT_BODYendLOFF(i)LEAVE(i)TRANSIT_BODYitrwhileTransit(i)read狀態(tài)向量TRANSIT_BODYendSTATIONendSHUTTLE_BODY1endARRIVE(1)
writearrivetoS1D/*發(fā)送數(shù)據(jù)流,說明車已到站1*/SHUTTLE_1end9.2.2擴(kuò)充功能性過程過程SHUTTLE_1執(zhí)行“read狀態(tài)向量”操作和過程mcontrol對“S1D”的訪問都必須有足夠快的頻率,否則交通車將不能及時(shí)停下來。為完成USS實(shí)例,還需進(jìn)一步考慮實(shí)體BUTTON模型。過程BUTTON_1是對按鈕動(dòng)作的精確描述(即每次壓下都對應(yīng)過程push的一次調(diào)用),實(shí)際上系統(tǒng)應(yīng)把第一次壓下按鈕招呼交通車的動(dòng)作與一次運(yùn)行未開始之前乘客壓下按鈕招呼交通車的請求區(qū)分開來。用已有實(shí)體無法描述和區(qū)分動(dòng)作之間的時(shí)間約束,常常引入額外的實(shí)體——為此設(shè)計(jì)過程BUTTON_2,結(jié)構(gòu)圖如圖10?2?3所示圖10?2?3button?2的結(jié)構(gòu)圖Button?2Pushgroup*ExtraArrivalbodyExtrapushbodyRequestpushArrivalExtraArrival*Extrapush*9.2.2擴(kuò)充功能性過程功能性過程mcontrol既負(fù)責(zé)檢查BUTTON_2的狀態(tài)向量“B2V”,確定是否有未滿足的請求,又負(fù)責(zé)把從SHUTTLE_1處(S1D)獲取的信息(即交通車已到達(dá)發(fā)出請求的車站)傳遞給BUTTON_2(MBD流)。在此定義了一個(gè)交互型功能。BUTTON_2的結(jié)構(gòu)正文描述如下:BUTTON_2seq
request:=no/*置初值*/readMBDandB1D/*檢查是否有未滿足請求和交通車是否停在站上*/BUTTON_BODYitrPUSH_GROUPseqEXTRA_AR_BODYitrwhile(ARRIVAL)/*交通車已靠站但尚無請求,或既無請求交通車也未靠站*/readMBDandB1DEXTRA_AR_BODYendRQ_PUSHseq/*首次請求到達(dá),置請求標(biāo)志*/
request:=yes
readMBDandB1DRQ_PUSHendEXTRA_RQ_PUSHitrwhile(REQUEST)/*因交通車尚未靠站,請求暫不滿足,循環(huán)等待*/readMBDandB1DEXTRA_RQ_PUSHendARRIVALseq/*請求滿足,清請求標(biāo)志*/
request:=noreadMBDandB1DARRIVALendPUSHGROUPendBUTTON_BODYendBUTTON_2end9.2.2擴(kuò)充功能性過程圖10?2?4給出的系統(tǒng)規(guī)格說明圖反映了在此步驟完成的所有工作。我們在SHUTTLE_1中嵌入了一個(gè)功能,產(chǎn)生開、關(guān)發(fā)光板的命令,增加了一個(gè)功能性過程mcontrol,它除了負(fù)責(zé)完成BUTTON_2上的交互型功能外,還產(chǎn)生啟動(dòng)、關(guān)閉發(fā)動(dòng)機(jī)的命令。至于mcontrol過程的內(nèi)部結(jié)構(gòu)可采用傳統(tǒng)的JSP技術(shù)導(dǎo)出,關(guān)于JSP技術(shù)我們將在9.2.4和9.2.5節(jié)討論。圖10?2?4擴(kuò)充功能1和2后的系統(tǒng)規(guī)格說明圖Button?0BDSVButton?1Shuttle?0Shuttle?1LAMPCMDSB1DButton?2S1DMBDMcontrolB2VMOTORCMDS9.2.3施加時(shí)間約束經(jīng)過前幾個(gè)步驟,獲得一個(gè)由若干順序過程組成的系統(tǒng),它們通過數(shù)據(jù)流或狀態(tài)向量進(jìn)行通信,但對這些處理過程的執(zhí)行速度尚未考慮。所以,對于輸出流,定義輸出速度和更新頻率;對于輸入流,要求子系統(tǒng)保證及時(shí)收集所有輸入信息并保持它們的到達(dá)順序不變。在USS實(shí)例中,關(guān)于時(shí)間方面的約束包括:
1.停車命令允許的最大延遲時(shí)間;
2.開、關(guān)發(fā)光板命令的響應(yīng)時(shí)間。目前在JSD方法中,時(shí)間約束的描述仍采用非形式化的方式。一種解決辦法是引入時(shí)間標(biāo)志流(timemarkerstream)作為模型過程的輸入,時(shí)間標(biāo)志流由特定的時(shí)鐘過程產(chǎn)生。9.2.4實(shí)現(xiàn)與JSP技術(shù)實(shí)現(xiàn)是JSD方法的最后一個(gè)步驟,它將系統(tǒng)功能說明配置到給定的軟硬件環(huán)境上,并滿足性能方面的約束。這一步驟主要考慮:過程在多處理機(jī)上的調(diào)度(scheduling)、根據(jù)SSD和Jackson結(jié)構(gòu)圖進(jìn)行過程變換(transformation)、過程狀態(tài)向量的存儲和訪問(storageandaccessofstatevectors)以及借助JSP技術(shù)描述功能性過程。因篇幅所限,本節(jié)及下節(jié)僅討論最后一個(gè)問題。9.2.4實(shí)現(xiàn)與JSP技術(shù)JSP技術(shù)是一種詳細(xì)設(shè)計(jì)技術(shù),它由問題所固有的數(shù)據(jù)結(jié)構(gòu)導(dǎo)出過程的內(nèi)部結(jié)構(gòu)。所用的基本工具稱為數(shù)據(jù)結(jié)構(gòu)圖,是Jackson結(jié)構(gòu)圖的變種,專門用于描述數(shù)據(jù)元素之間的邏輯關(guān)系。例如在圖10?2?5中,數(shù)據(jù)集合A由若干個(gè)B結(jié)構(gòu)(“*”表示重復(fù))組成,而每個(gè)B由若干個(gè)C結(jié)構(gòu)后跟一個(gè)D結(jié)構(gòu)組成(同級分叉表示順序),D結(jié)構(gòu)或?yàn)閿?shù)據(jù)項(xiàng)E或?yàn)镕(“°”表示選擇),這種層次信息結(jié)構(gòu)的表示方法同樣適用于輸入、輸出和數(shù)據(jù)庫中的數(shù)據(jù)。圖10?2?5數(shù)據(jù)結(jié)構(gòu)圖AB*C*DE°F°圖10?2?6信用卡記帳系統(tǒng)OutstandingbalCNO主文件YYYY1749.30CNODATEAMTXXXX9.1725.30XXXX9.27108.20XXXX9.3065.40YYYY9.13158.00YYYY9.28307.90………支付文件支付記錄*CNO分組*CNOCNO主文件顧客記錄*余款額支付文件XXXX2373.50……簡化的信用卡付帳系統(tǒng)如圖10?2?6所示。系統(tǒng)的輸入是支付文件和顧客主文件。支付文件的每個(gè)記錄由顧客號(CNO)、支付日期(DATE)和支付金額(AMT)三個(gè)數(shù)據(jù)項(xiàng)組成,并假定已按顧客號預(yù)先分組。顧客主文件由顧客號(CNO)和余款額(Outstandingbal)兩項(xiàng)組成。兩個(gè)文件分別對應(yīng)圖10-2-6中所示數(shù)據(jù)結(jié)構(gòu)圖。假設(shè)該系統(tǒng)輸出報(bào)表如下圖所示。AccountingReport
CNODateAmtOldbalNewbal
XXXX
YYYY
Grandtot圖10?2?7系統(tǒng)輸出報(bào)表所對應(yīng)的數(shù)據(jù)結(jié)構(gòu)圖記帳報(bào)表情況匯總顧客數(shù)據(jù)總付款額總余額CNO組*CNO支付記錄*付款總數(shù)平帳數(shù)據(jù)原余額現(xiàn)余額9.2.5產(chǎn)生過程表示JSP方法通過綜合、對照過程的輸入/輸出數(shù)據(jù)結(jié)構(gòu)的層次關(guān)系導(dǎo)出對應(yīng)的過程性表示——程序。具體步驟如下:1.找出輸入與輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的數(shù)據(jù)元素,即有直接因果關(guān)系者,它們在程序中可一并處理。2.依據(jù)下述三條規(guī)則從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出Jackson結(jié)構(gòu)圖。1)在Jackson結(jié)構(gòu)圖中,為有對應(yīng)關(guān)系的每對數(shù)據(jù)元素畫一個(gè)處理框,該框所處層次取這兩個(gè)數(shù)據(jù)元素在各自數(shù)據(jù)結(jié)構(gòu)圖中層次較低者。2)參照輸入數(shù)據(jù)結(jié)構(gòu)圖中剩余的每個(gè)數(shù)據(jù)元素所處層次,在Jackson結(jié)構(gòu)圖的相應(yīng)層次上畫一個(gè)處理框。3)參照輸出數(shù)據(jù)結(jié)構(gòu)圖中剩余的每個(gè)數(shù)據(jù)元素所處層次,在Jackson結(jié)構(gòu)圖的相應(yīng)層次上畫一個(gè)處理框。9.2.5產(chǎn)生過程表示3.列出所有操作和條件(包括分支和循環(huán)條件),并把它們分配到Jackson結(jié)構(gòu)圖中。4.根據(jù)Jackson結(jié)構(gòu)圖,產(chǎn)生結(jié)構(gòu)正文描述。將上述第1步驟用于信用卡付帳系統(tǒng)發(fā)現(xiàn),輸入數(shù)據(jù)結(jié)構(gòu)“支付文件”中的“CNO組”、“支付記錄”分別與輸出數(shù)據(jù)結(jié)構(gòu)中的“CNO組”、“支付記錄”對應(yīng),輸入數(shù)據(jù)結(jié)構(gòu)“顧客主文件”中的“顧客記錄”與輸出數(shù)據(jù)結(jié)構(gòu)中的“CNO組”對應(yīng)。參照上述第2步驟得到該系統(tǒng)的結(jié)構(gòu)圖(圖10?2?8)。圖10?2?8導(dǎo)出Jackson結(jié)構(gòu)圖(程序結(jié)構(gòu))信用卡付帳系統(tǒng)情況匯總處理顧客數(shù)據(jù)總付款額總余額處理CNO組*處理CNO處理支付記錄*計(jì)算顧客支付總額平帳數(shù)據(jù)原余額現(xiàn)余額執(zhí)行完3、4兩步驟后,該結(jié)構(gòu)圖中
“處理顧客數(shù)據(jù)”一框?qū)?yīng)的結(jié)構(gòu)正文應(yīng)為:PROCESS_CUST_DATAseqopenPAY_FILE;openCNO_MASTER_FILE;PROCESSCNO_GROUPitruntileof:PAY_FILE;readPAY_FILE;PROCESS_CNO;/*讀顧客總文件,找出原余額*/PROCESS_PAY_RECitruntilend:CNO_GROUP;writereportline;computertotalpayments;readPAY_FILE;endPROCESS_PAY_RECCOMPUTE_CUST_TOTAL;COMPUTE_BALANCEseqPROCESS_OLD_BAL;COMPUTE_NEW_BAL;writereportline;endCOMPUTE_BALANCEendPROCESS_CNO_GROUPendPROCESS_CUST_DATA課程名稱:軟件工程第18講班級:日期:教室:教學(xué)題目:9.3DSSD方法教學(xué)目的:掌握DSSD方法,了解復(fù)雜過程邏輯的描述。教學(xué)重點(diǎn):DSSD方法。教學(xué)難點(diǎn):DSSD方法。教具:多媒體教室、電子教案作業(yè):習(xí)題49.3基于結(jié)構(gòu)化數(shù)據(jù)的系統(tǒng)開發(fā)(DSSD)方法DSSD需求分析階段產(chǎn)生的需求規(guī)格說明,將作為設(shè)計(jì)過程的輸入信息。設(shè)計(jì)過程的輸出為設(shè)計(jì)規(guī)格說明,具體包括輸出數(shù)據(jù)結(jié)構(gòu)、過程描述和設(shè)計(jì)約束三方面內(nèi)容。DSSD設(shè)計(jì)分為邏輯設(shè)計(jì)和物理設(shè)計(jì)兩個(gè)步驟,邏輯設(shè)計(jì)著重考慮軟件的輸出、界面及過程性表示,物理設(shè)計(jì)則在邏輯設(shè)計(jì)的基礎(chǔ)上考慮如何滿足性能、可維護(hù)性和其他一些設(shè)計(jì)約束?;竟ぞ撸篧arnier?Orr圖,既可描述程序結(jié)構(gòu),又可描述數(shù)據(jù)結(jié)構(gòu)。這里介紹一種簡化的DSSD方法。9.3.1DSSD設(shè)計(jì)步驟DSSD的邏輯設(shè)計(jì)步驟主要有兩個(gè):1.推導(dǎo)輸出數(shù)據(jù)的邏輯結(jié)構(gòu)(LogicalOutputStructure,簡稱LOS);2.由LOS導(dǎo)出處理過程的邏輯結(jié)構(gòu)(LogicalProcessStructure,簡稱LPS)。9.3.1DSSD設(shè)計(jì)步驟按下述簡化方法,LOS可分四步導(dǎo)出:1)從問題描述本身或其他相關(guān)需求信息中找出所有不同的原子數(shù)據(jù)項(xiàng)(即不可再分的數(shù)據(jù)項(xiàng));2)說明每個(gè)原子數(shù)據(jù)項(xiàng)的出現(xiàn)頻率;3)找出那些可再分的一般數(shù)據(jù)項(xiàng);4)用Warnier-Orr圖表示LOS?!纠?.1】產(chǎn)生如圖10-3-1所示的“機(jī)器使
用情況日報(bào)表”系統(tǒng)。Daily_Machine_Tool_Usage_ReportDate:DATE
ToolcategoryToolIDstatusNO.partsproducedTool_CATTIDSNO_PARTS
CATEGORYTOTALPARTS:CAT_TOT_PARTS
CATEGORYTOTALPARTS:TOTALPARTSPRODUCEDTHISDATE:MANUF_TOTAL9.3.2推導(dǎo)輸出數(shù)據(jù)的邏輯結(jié)構(gòu)輸出數(shù)據(jù)結(jié)構(gòu)表現(xiàn)為數(shù)據(jù)項(xiàng)的一種層次結(jié)構(gòu)。按照LOS推導(dǎo)步驟:1)首先從問題描述(例9.1所給報(bào)表原型)中找出原子數(shù)據(jù)項(xiàng);2)確定每個(gè)原子數(shù)據(jù)項(xiàng)出現(xiàn)的頻率(圖10?3?2)。圖10?3?2原子數(shù)據(jù)項(xiàng)及出現(xiàn)頻率原子數(shù)據(jù)項(xiàng)頻率細(xì)節(jié)HEADING(標(biāo)題)DATE(日期)COLUME_HEAD(列標(biāo)題)TOOL_CAT(工具類名稱)TID(工具標(biāo)志)S(狀態(tài))NO_PARTS(產(chǎn)品件數(shù))SUB_TOTAL_HEAD(按類匯總小標(biāo)題)CAT_TOT_PARTS(按類匯總)TOTAL_HEAD(按目匯總標(biāo)題)MANUF_TOTAL(每日產(chǎn)品總計(jì))1/報(bào)表1/報(bào)表1/報(bào)表1/工具類1/工具1/工具1/工具1/工具類1/工具類1/報(bào)表1/報(bào)表每日機(jī)器使用情況報(bào)表若干類,每類有若干項(xiàng)按類匯總按日匯總9.3.2推導(dǎo)輸出數(shù)據(jù)的邏輯結(jié)構(gòu)3)找出一般數(shù)據(jù)項(xiàng),有:報(bào)表(出現(xiàn)一次)、工具類(每報(bào)表出現(xiàn)t次)、工具(每類出現(xiàn)s次)。4)用Warnier-Orr圖表示LOS9.3.2推導(dǎo)輸出數(shù)據(jù)的邏輯結(jié)構(gòu)圖10?3?3LOS的Warnier?Orr圖示標(biāo)題日期標(biāo)題日期工具類名稱工具標(biāo)識列標(biāo)題工具狀態(tài)工具類(1,s)產(chǎn)品件數(shù)(1,t)按類匯總小標(biāo)題每日匯總標(biāo)題按類匯總每日產(chǎn)品總計(jì)生產(chǎn)日報(bào)表9.3.3推導(dǎo)處理過程的邏輯結(jié)構(gòu)(LPS)LPS是軟件的過程性表示,推導(dǎo)步驟如下:1)從LOS的Warnier?Orr圖示中去掉所有原子數(shù)據(jù)項(xiàng);生產(chǎn)日報(bào)表圖10?3?4去掉所有原子數(shù)據(jù)項(xiàng)
工具工具類(1,s)(1,t)2)對每個(gè)一般數(shù)據(jù)項(xiàng)加上“.BEGIN、.END”分隔符;.BEGIN
.BEGIN工具工具類(1,s)(1,t)
.END.END生產(chǎn)日報(bào)表3)定義所有初始、終止的指令或過程;
4)說明所有數(shù)值計(jì)算和非數(shù)值處理;.BEGIN置MANUF_TOTAL為0.BEGIN
置CAT_TOTALPARTS為0
工具類工具(1,t)(1,s)把NO_PARTS加到CAT_TOTAL_PARTS上
.END.END生產(chǎn)日報(bào)表把CAT_TOTAL_PARTS加到MANUF_TOTAL上5)說明所有輸出指令或過程;
6)說明所有輸入指令或過程。圖10?3?6完整的LPS生產(chǎn)日報(bào)表.BEGIN工具類(1,t).END輸出標(biāo)題、日期標(biāo)題、日期、列標(biāo)題置MANUF_TOTAL為0取一條邏輯記錄.BEGIN工具(1,s).END輸出TOOL_CAT置CAT_TOTAL_PAR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2024學(xué)年人教版高中信息技術(shù)必修一第三章第四節(jié)《數(shù)據(jù)分析報(bào)告與應(yīng)用》教學(xué)設(shè)計(jì)
- 2024年浙江嵊州市水務(wù)投資發(fā)展集團(tuán)有限公司員工招聘25人筆試參考題庫附帶答案詳解
- 2024年度長江產(chǎn)投公司招聘4人筆試參考題庫附帶答案詳解
- 2024年宿州泗縣縣屬國有企業(yè)公開招聘工作人員33人筆試參考題庫附帶答案詳解
- 2025年河南測繪職業(yè)學(xué)院單招職業(yè)技能測試題庫一套
- 2024年中廣核環(huán)保產(chǎn)業(yè)有限公司招聘7人筆試參考題庫附帶答案詳解
- 2024-2025學(xué)年初升高銜接英語句子成分 教學(xué)設(shè)計(jì)
- 2024年中國中醫(yī)藥出版社招聘筆試參考題庫附帶答案詳解
- 《記念劉和珍君》《為了忘卻的記念》聯(lián)讀教學(xué)設(shè)計(jì)
- 教師職業(yè)道德與學(xué)前教育政策法規(guī) 教案 6. 教師觀
- 銀行間本幣市場交易員資格考試真題模擬匯編(共586題)
- 苯乙酸安全技術(shù)說明書(msds)
- 幼兒園大班《防欺凌》教案5篇,幼兒園大班防欺凌活動(dòng)教案
- 衛(wèi)生管理初中級職稱大綱
- 團(tuán)員民主評議測評表
- 《當(dāng)代網(wǎng)絡(luò)文學(xué)作品發(fā)展研究6300字(論文)》
- 孟氏骨折與蓋氏骨折講解學(xué)習(xí)
- GB/T 9386-2008計(jì)算機(jī)軟件測試文檔編制規(guī)范
- GB/T 25137-2010鈦及鈦合金鍛件
- 第2課《說和做》課件(共30張ppt) 部編版語文七年級下冊
- 2022年廉政談話公司紀(jì)委書記對干部任前廉潔警示談話講話范文集團(tuán)國有企業(yè)國企新任職
評論
0/150
提交評論