




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Chapter
4
系統(tǒng)功能設(shè)計4.1 結(jié)構(gòu)化設(shè)計與物件導(dǎo)向設(shè)計4.2 資料流程圖的符號與運(yùn)用4.3 資料流程圖的內(nèi)容4.4 結(jié)構(gòu)圖4.5 處理規(guī)格24.1結(jié)構(gòu)化設(shè)計與物件導(dǎo)向設(shè)計結(jié)構(gòu)化設(shè)計物件導(dǎo)向方法兩種方法的分析與比較34.1結(jié)構(gòu)化設(shè)計與物件導(dǎo)向設(shè)計概述:資訊系統(tǒng)的分析與設(shè)計大致上分成兩個派別:結(jié)構(gòu)化設(shè)計和物件導(dǎo)向設(shè)計。兩者主要的差異是導(dǎo)因於系統(tǒng)開發(fā)所使用的程式語言不同。第三代語言的效率很好,使用的人也很多,因此長久以來結(jié)構(gòu)化設(shè)計的觀念和工具一直是系統(tǒng)分析與設(shè)計的主流。但在物件導(dǎo)向語言出現(xiàn)後,由於加入了許多新的執(zhí)行觀念,物件的執(zhí)行方式不再只能是序列式的,而是可以經(jīng)由使用者來操作物件之間的互動和合作,以完成特定的功能流程。而且物件導(dǎo)向的設(shè)計概念也需要物件導(dǎo)向的圖型化工具支援,因此終於促成了物件導(dǎo)向系統(tǒng)設(shè)計派別。4結(jié)構(gòu)化設(shè)計(1/5)結(jié)構(gòu)化方法的三種邏輯處理企業(yè)的作業(yè)活動是一個步驟接著一個步驟的進(jìn)行,系統(tǒng)分析師所用的圖形化工具也應(yīng)具有一步接著一步的特性。第三代語言的三種邏輯處理:循序性、選擇性、和重複性。圖4-1第三代語言的邏輯處理5結(jié)構(gòu)化設(shè)計(2/5)循序性作業(yè):一行程式執(zhí)行完,再執(zhí)行下一行程式;或是當(dāng)一支程式在執(zhí)行過程中呼叫、並且進(jìn)入下一層的程式後,必須要先等那支被呼叫地程式執(zhí)行完,才能返回原來的程式,也許再呼叫其他程式、或是繼續(xù)執(zhí)行後續(xù)的指令。選擇性作業(yè):是if-then-else的語法,必須依據(jù)判斷式中的條件,也就是if後面接著的條件是否符合,來決定要接著執(zhí)行then後面的程式、或是else後面的程式(但是兩者只會執(zhí)行一個)。重複性作業(yè):也就是迴圈,可以使用whileloop或是forloop語法,而由判斷式中的條件來控制迴圈停止與否。6結(jié)構(gòu)化設(shè)計(3/5)構(gòu)化設(shè)計的三種不同角:功能、資料及使用者介面以功能的角度看系統(tǒng):
針對企業(yè)的某個(些)特定作業(yè),以作業(yè)流程為導(dǎo)向,先將應(yīng)用軟體分解成幾個功能,以找出要開發(fā)哪幾支程式,並將上一層作業(yè)的程式所處理過後的資料傳給本層作業(yè)的程式來使用。進(jìn)行設(shè)計時主要是使用資料流程圖(DataFlowDiagram,DFD)來分解程式架構(gòu),同時清楚表示程式之間的資料傳遞。結(jié)構(gòu)化的主要概念還包含所謂的模組化(Modulization)。當(dāng)系統(tǒng)分析與設(shè)計團(tuán)隊將系統(tǒng)切割成更小的單位,以利程式設(shè)計師分工合作來做程式的開發(fā)。不論在哪個功能中,需要時就去呼叫該模組,如此便可以在多個功能中執(zhí)行相同的工作,甚至以後的系統(tǒng)也可以再利用(Reuse)。以功能的角度看系統(tǒng),有利於將系統(tǒng)的程式模組化。因為若是將相同活動合併開發(fā),並萃取出獨立工作的模組,便能以模組的結(jié)構(gòu)圖來架構(gòu)系統(tǒng),簡化系統(tǒng)的設(shè)計。7結(jié)構(gòu)化設(shè)計(4/5)以資料的角度看系統(tǒng):包括單一的資料與整體的資料庫。在單一的資料部分,由於結(jié)構(gòu)化的設(shè)計中包括了一個所謂的資料字典(Datadictionary)。資料字典的目的便是定義資料流程圖中的資料流,包括資料的名稱、資料型態(tài)、內(nèi)容、限制、以及哪一個功能活動會使用到該資料等,因此只要有這個清楚的定義檔,就能避免資料被以錯誤的方式使用。資料庫的設(shè)計,常用的圖形化工具是實體關(guān)係圖(Entity-RelationshipDiagram,ERD),它可將資料庫的邏輯架構(gòu)建立起來,以實體來對應(yīng)資料庫中的表格、以屬性對應(yīng)到表格中的欄位,並以欄位的資料內(nèi)容建立起表格之間的關(guān)聯(lián)關(guān)係,將實體之間的關(guān)係定義清楚。8結(jié)構(gòu)化設(shè)計(5/5)以使用者介面角度看系統(tǒng):使用者需要的系統(tǒng)介面就是螢?zāi)坏漠嬅妗S脕碜鱿到y(tǒng)的操作。友善的系統(tǒng)介面要有容易學(xué)、容易操作、符合既有操作習(xí)慣、美觀的色彩和設(shè)計…等特性,開發(fā)團(tuán)隊中最好有專業(yè)的設(shè)計師,專注於人機(jī)介面的部分。常是以使用者介面架構(gòu)圖來表示介面的階層性。此外也可以用雛型(Prototype)來捕捉使用者的需求,所謂的雛型系統(tǒng),通常是以PC為工具,快速開發(fā)出系統(tǒng)大致的樣子,給使用者確認(rèn)作業(yè)的流程和介面的操作。9物件導(dǎo)向方法(1/4)物件的特性:概述:物件可以想成是資料庫設(shè)計中提到的實體(Entity),它和一般資料實體一樣,也有靜態(tài)的屬性(Attribute),用來定義物件的狀態(tài)(Status);但和實體不同地方是,物件具有動態(tài)的行為(Behavior)、還有啟動物件的方法(Method)繼承物件的集合稱為類別(Class),而類別之間則存在有繼承的觀念繼承已做好的屬性和行為,再增加特殊的需求以成為另一個物件,便可以節(jié)省開發(fā)的力氣,並且方便管理和維護(hù)10物件導(dǎo)向方法(2/4)封裝封裝的觀念是指將物件以不同層次的呼叫來使用,就好像將物件保護(hù)起來。最內(nèi)層建立起物件本身的屬性資料,可將資料隱藏在物件之中。向外的第二層是物件本身的操作,可用來存取資料。更外一層提供的是當(dāng)呼叫物件的操作時,透過帶有訊息的資料來呼叫物件。最外一層才是處理由其他物件所送來的服務(wù)要求。物件內(nèi)部的運(yùn)作是被封裝起來的,因為每一個層面均能清楚的分開處理,所以使用時不需要考慮已封裝好的物件是如何運(yùn)作的;如此一來,系統(tǒng)設(shè)計師便可以專注在物件之間的互動上,使系統(tǒng)設(shè)計工作更單純。11物件導(dǎo)向方法(3/4)UML-統(tǒng)一塑模語言概述:統(tǒng)一塑模語言提供了不同角度的圖形化工具,系統(tǒng)分析師可以依照不同的需求,採用不同的圖型化工具。使用者需求的角度:UML提供使用案例(Usecase),可以擷取使用者與資訊系統(tǒng)之間的互動情節(jié),也就是使用者希望將來資訊系統(tǒng)能做些什麼,常用在需求分析階段。資料庫設(shè)計:資料庫設(shè)計方面與結(jié)構(gòu)化設(shè)計一樣,都是以實體關(guān)係圖來架構(gòu);當(dāng)ERD圖設(shè)計完成之後,可以說物件的靜態(tài)屬性也建置完成。12物件導(dǎo)向方法(4/4)物件的靜態(tài)結(jié)構(gòu):物件導(dǎo)向系統(tǒng)設(shè)計的主要目的是設(shè)計出各種物件,使得物件本身的操作、或是物件之間的互動操作,都可以滿足使用者對系統(tǒng)的需求。物件的類別以類別圖(Classdiagram)來架構(gòu),將各不同種類的物件設(shè)計出來,其中靜態(tài)的屬性要參照ERD圖的屬性,動態(tài)行為則要依靠動態(tài)的設(shè)計圖。物件的動態(tài)結(jié)構(gòu):物件的動態(tài)操作(或是行為)主要是為了能藉由物件本身的操作、或是物件之間的互動操作,完成使用者對資訊系統(tǒng)的需求功能。由互動圖可以捕捉物件的操作行為。系統(tǒng)架構(gòu)系統(tǒng)的架構(gòu)可以區(qū)分為軟體與硬體,UML提供了元件圖(Componentdiagram)來架構(gòu)軟體的各種元件,包含執(zhí)行檔、資料檔、起始設(shè)定檔、程式庫檔等;另外也提供了部署圖(Deploymentdiagram)來架構(gòu)硬體的建置,包含各種機(jī)器以及其網(wǎng)路的連結(jié)。13兩種方法的分析與比較兩種方法的比較:結(jié)構(gòu)化設(shè)計和物件導(dǎo)向設(shè)計各有其不同的專注焦點,而根據(jù)兩者所採用之程式語言的不同特性,開發(fā)團(tuán)隊可以有不同的選擇。第三代程式語言在目前仍然是開發(fā)大型資訊系統(tǒng)的主要工具,因為結(jié)構(gòu)化觀念存在的時間較久,使用的人也比較多。由於物件導(dǎo)向語言的盛行,其在開發(fā)小型系統(tǒng)的快速與便利性均使得物件導(dǎo)向設(shè)計日趨重要。雖然結(jié)構(gòu)化設(shè)計與物件導(dǎo)向系統(tǒng)設(shè)計有上述的種種不同,但兩者都必須在一定的開發(fā)方法論下循序開發(fā),並不相互違背。144.2資料流程圖的符號與運(yùn)用由上而下的觀念資料流程圖的符號與原則資料一致性154.2 資料流程圖的符號與運(yùn)用概述:資料流程圖主要用來將系統(tǒng)做功能性的切割,由整體的系統(tǒng)看起,分析系統(tǒng)所在的環(huán)境,包括系統(tǒng)本身、企業(yè)內(nèi)部的使用者實體、及其他相關(guān)系統(tǒng)的關(guān)係。由上層圖(e.g.,系統(tǒng)環(huán)境圖)進(jìn)入下一層圖,看看系統(tǒng)內(nèi)的主要功能,包括功能的內(nèi)容、功能的操作者實體、資料的輸入和輸出。接著將每一個功能做步驟的分析,同樣地包括作業(yè)內(nèi)容、實體和資料的輸出和輸入,一直到分割出每一支要開發(fā)的程式。16由上到下的觀念(1/2)階層式圖示:資料流程圖的基本架構(gòu)是階層式的:越上層,所看到的範(fàn)圍越廣;越下層,所看到的越是局部的細(xì)節(jié)。從系統(tǒng)的最上層開始,先看到的是系統(tǒng)環(huán)境圖(Contextdiagram),在這裡把系統(tǒng)看成是一個大的作業(yè)處理,只專注在表示系統(tǒng)和其他系統(tǒng)或操作者實體之間的關(guān)係。下一層是圖0,圖0非常重要,它只畫出主要功能。接下來是圖1、圖2、圖3…等第二階的圖,它們分別將第一階圖0裡面的某一個作業(yè)處理功能加以分解,以一步接一步更細(xì)的作業(yè)處理來完成。17由上到下的觀念(2/2)圖4-2料流程圖的基本架構(gòu)18資料流程圖的符號與原則(1/8)資料流程圖的符號:19資料流程圖的符號與原則(2/8)繪製原則:作業(yè)處理一律採用數(shù)字編號,在系統(tǒng)環(huán)境圖中,以編號0代表整個資訊系統(tǒng)。在圖0中,每個作業(yè)處理依照順序1、2、3等往下編號。在圖1中,也就是作業(yè)處理1的細(xì)節(jié)圖,作業(yè)處理依照1.1、1.2、1.3等往下編號。編號通常也代表執(zhí)行順序,如在圖1.1中,作業(yè)處理依照、、等往下編號,同時也解釋了作業(yè)處理1.1的內(nèi)容。箭頭的意義:箭頭有兩種意義,一個是資料流,另一個是表示操作的順序;結(jié)構(gòu)化的程式必須要有先後順序,當(dāng)前一個處理操作完成,即進(jìn)入下一個處理操作,兩個操作之間的箭頭不一定有資料的傳遞,但仍然有呼叫的意義。20資料流程圖的符號與原則(3/8)一層圖裡的作業(yè)處理個數(shù):圖形化工具的主要目的就是清楚地架構(gòu)所要開發(fā)的功能,同一層圖內(nèi)的作業(yè)處理個數(shù)如果太多,就會顯得太複雜,一般而言,最好不要超過7個。資料流流向的相關(guān)限制:作業(yè)一定要有資料流流入,才能處理並產(chǎn)生資料流;同樣地,資料流流入作業(yè)處理做處理操作後,也一定會有資料流流出。資料儲存單位並不會做作業(yè)處理,所以不能有資料流是由資料儲存單位流到資料儲存單位。而實體之間也不會有資料流,因為實體不會直接存取資料。21資料流程圖的符號與原則(4/8)圖4-3有問題的表示法22資料流程圖的符號與原則(5/8)處理只能有一個順序資料流程圖不能處理判斷,必須要分不同的處理來做如果有這樣的情形,必須回到上一層,將源頭的作業(yè)處理分成兩個圖4-4兩個執(zhí)行緒23資料流程圖的符號與原則(6/8)箭頭不要交叉:若是圖形內(nèi)一大堆箭頭來往交叉,那麼不僅無法了解所要做的處理,更會令人不清楚資料流所要代表的是什麼;通常將一個作業(yè)處理的輸入和輸出維持簡單的一個資料流;圖4-5箭頭不要交叉24資料流程圖的符號與原則(7/7)由操作單位A到作業(yè)處理1.1的資料流可以合併成一個;同樣地,作業(yè)處理1.1到作業(yè)處理1.2的箭頭也可以合併起來,以一個資料流來取代;將作業(yè)處理1.3和資料檔C換一下位置,即可避免箭頭交叉;作業(yè)處理1.3需要儲存到資料檔的資料若合併成一個資料流,看起來比較清爽,也容易理解作業(yè)的順序、和每個作業(yè)處理之間資料流的輸入和輸出。加上說明文字:有圖就要有說明,每個圖都需要說明其內(nèi)容和意義。25資料一致性(1/2)概述:資料流在上一層圖裡可以是好多個資料項目的集合,等到了下一層圖再分成好幾項的資料流,做分步驟的處理。資料流程圖的基本精神就是分層處理,例如下圖中的例子,左側(cè)為在最上層圖0中的部分圖,當(dāng)中的作業(yè)處理2可以再往下一層分解作業(yè)流程。右側(cè)的圖2即是處理的分解圖,將作業(yè)處理2再分成三個步驟,分別是2.1、2.2和2.3,由作業(yè)流程2.1開始,依序處理完作業(yè)流程2.2及2.3之後才算完成作業(yè)2。26資料一致性(2/2)圖4-6資料一致性圖示274.3資料流程圖的內(nèi)容系統(tǒng)環(huán)境圖圖0較低階層圖資料字典284.3 資料流程圖的內(nèi)容(1/2)概述:資料流程圖是由多個圖組成的,包含系統(tǒng)環(huán)境圖、圖0、圖1、圖2、圖3、圖4、…圖1-1、圖1-2、圖1-3、…圖2-1、圖2-2、圖2-3…。越高層的圖看到的越整體、越低層的圖則看得越細(xì)節(jié)。一直到每個處理都已經(jīng)可以用一支程式來完成,那才算是最底層的圖,可以停止往下畫了。294.3 資料流程圖的內(nèi)容(2/2)圖4-7資料流程圖架構(gòu)30系統(tǒng)環(huán)境圖(1/2)說明:系統(tǒng)環(huán)境圖用來表示資訊系統(tǒng)和環(huán)境之間的關(guān)係,可以作為資料流程圖的第0層,就是最上一層,也可以說是第0階。系統(tǒng)環(huán)境圖的觀點是從外部看系統(tǒng)整體,目的是定義系統(tǒng)和外界的關(guān)係。若以作業(yè)處理來代表整個資訊系統(tǒng),其編號是0;另以實體表示操作系統(tǒng)的使用者(可以是單位、人,或表示其他的系統(tǒng)),並以資料流來連接。31系統(tǒng)環(huán)境圖(2/2)圖4-8上紅實業(yè)採購系統(tǒng)之系統(tǒng)環(huán)境圖採購處高階主管倉儲系統(tǒng)品管單位會計單位032圖0(1/3)說明:圖0是資料流程圖的第一階,將系統(tǒng)的主要功能畫在一張圖上。圖0把系統(tǒng)環(huán)境圖做進(jìn)一步的分解,切割成幾個重要的功能,以作業(yè)處理來表示。各功能之間,沒有資料流或作業(yè)的關(guān)聯(lián):功能可以想成是在一個特定的時間做一件事情,圖0代表系統(tǒng)要開發(fā)幾個功能,也就是系統(tǒng)能協(xié)助使用者做幾件事情,且每一件事情都是分開獨立的。在圖0裡的任何兩個作業(yè)處理,都不能存在有箭頭(資料流)。33圖0(2/3)每個實體和每個功能之間的資料流要合併成一個:每一個功能可能需要好幾個步驟才能完成,但是在圖0並不會表示出功能內(nèi)的步驟。在圖0中,每個功能的輸入和輸出必須合併成一個輸入或是輸出的資料流,到下一層的圖才分解開來。也就是圖上僅表示使用者在操作這個作業(yè)處理時是否需要輸入資料、或是系統(tǒng)是否會給使用者回覆輸出,這樣子的圖看起來才乾淨(jìng)又清楚。除了作業(yè)處理之外,其他的符號都可以重複:為了不讓箭頭交叉,除了作業(yè)處理之外,其他的符號像實體、儲存單位或是資料流,都是可以重複出現(xiàn)的。但是要注意名稱不可以改變,名稱一樣就表示是同一個東西。34圖0(3/3)圖4-9上紅實業(yè)採購系統(tǒng)圖035較低階層圖(1/3)對應(yīng)與分解:較低階的資料流程圖為較高階的分解圖,其目的是把上一階圖內(nèi)的各個作業(yè)分解為細(xì)部步驟,並且將較詳細(xì)的資料流定義出來。既然較低階的資料流程圖是由上一層中的作業(yè)處理所分解出來的,所以彼此之間一定有對應(yīng)關(guān)係,不論是資料流,或是作業(yè)流程的上、下步驟皆應(yīng)如此。針對同一個作業(yè)處理,亦必須考慮其上層和下層之間資料的一致性。36較低階層圖(2/3)圖4-10上紅實業(yè)請採購系統(tǒng)圖137較低階層圖(3/3)圖4-11上紅實業(yè)採購系統(tǒng)圖238資料字典概述:資料字典是用來說明及定義資料流程圖中的資料,除了實體之外,包含每一個在資料流程圖中的作業(yè)處理、檔案、資料流以及資料項目的內(nèi)容,均以一定的格式來建立。通常會用表格的方式,依照編號順序?qū)⑸鲜龅膬?nèi)容逐一填入,建置起完整的資料字典,以配合資料流程圖的使用,提供使用者查詢。資料流是由哪些資料項目組成,也要在資料字典中定義清楚。舉例說明如下:39作業(yè)處理(1/2)40作業(yè)處理(2/2)41檔案42資料流(1/2)43資料流(2/2)44資料項目(1/2)45資料項目(2/2)464.4 結(jié)構(gòu)圖結(jié)構(gòu)圖的意義與符號定義模組化與評估模組的標(biāo)準(zhǔn)結(jié)構(gòu)圖的必要性474.4 結(jié)構(gòu)圖概述:資料流程圖畫完之後不能直接拿來寫程式,還需要一個步驟,就是將資料流程圖轉(zhuǎn)成結(jié)構(gòu)圖(Structurechart)。其主要目的是以模組的角度,將相同功能的處理合併,並且將結(jié)構(gòu)圖中的模組以結(jié)構(gòu)化英文來表示。這樣才能交給程式設(shè)計師開發(fā)程式。原因是,在設(shè)計資料流程圖時,是以功能流程為導(dǎo)向的。48結(jié)構(gòu)圖的意義與符號定義(1/5)結(jié)構(gòu)圖的意義:資料流程圖是以系統(tǒng)個別的功能為角度來設(shè)計,各個功能之間並不知道彼此在做什麼。所以需要有另一種圖,來整理出資料流程圖中有哪些功能是重複的,或者說哪些程式是可以再利用的。49結(jié)構(gòu)圖的意義與符號定義(2/5)圖4-12結(jié)構(gòu)圖50結(jié)構(gòu)圖的意義與符號定義(3/5)圖4-12說明:圖4-12的結(jié)構(gòu)圖主要是將資訊系統(tǒng)以模組來架構(gòu),再將每個模組按照動作來做分割。例如上圖中的系統(tǒng)就是先切割成三大模組,其中模組A又分成兩個動作,且執(zhí)行時一定是由左執(zhí)行到右,所以是動作a先做,才做動作b;再往下看,動作a又切割成動作a1和動作a2,同樣地,要先做動作a1、再做動作a2。而資料的流向則是先由動作a1取得資料a,並且在動作a完成之後將資料a傳遞給動作b。至於動作b則是先做動作a2、再做動作b1,等動作b1完成之後,會標(biāo)示一個旗標(biāo)b,例如將旗標(biāo)b的值由0改變成1,以供後續(xù)的動作檢查狀態(tài)之用。51結(jié)構(gòu)圖的意義與符號定義(4/5)其他說明:結(jié)構(gòu)圖和資料流程圖並不呈一對一的對應(yīng),而是將資料流程圖中有重複動作的部分合併起來,只開發(fā)一個共用模組來供相同的動作使用。結(jié)構(gòu)圖是將資料流程圖加以整理、設(shè)計,以找出真正需要開發(fā)的程式。模組圖當(dāng)然也可以只用一張來畫整體架構(gòu)圖,另外很多張則都是畫各個模組內(nèi)部的模組圖,將每個模組內(nèi)的較細(xì)部狀況畫出來。52結(jié)構(gòu)圖的意義與符號定義(5/5)圖4-13登錄結(jié)構(gòu)圖53模組化與評估模組的標(biāo)準(zhǔn)(1/8)概述:模組化指的是以相關(guān)的程式為單位,將系統(tǒng)的所有程式切割成一組一組。定義出每一組的輸入、該組程式所要做的事情、以及執(zhí)行後的輸出,像這樣切割出來的每一組程式便稱為一個模組。模組最大的好處是可以再利用,如果不以模組來架構(gòu)程式,很可能對於每一個功能的作業(yè),程式設(shè)計師都必須以一支大程式來解決。評估模組有兩個著名的標(biāo)準(zhǔn),一個是內(nèi)聚力(Cohesion),另一個是偶合力(Coupling)。54模組化與評估模組的標(biāo)準(zhǔn)(2/8)內(nèi)聚力:概述:內(nèi)聚力是指模組內(nèi)部的每個部分,是不是應(yīng)該放在同一個模組中。切割模組當(dāng)然是內(nèi)聚力越高越好,內(nèi)聚力有好幾種,依其影響力大小,大致排列如下。功能內(nèi)聚力(Functionalcohesion)指一個模組只做一件事情,比如像是檢查帳號及密碼、計算平均值、新增一筆訂單資料到資料庫去等,這些模組的內(nèi)聚力很高。順序內(nèi)聚力(Sequentialcohesion)順序的內(nèi)聚力指的是有多個動作在這個模組中,但是這些動作之間彼此的關(guān)係很緊密,一個動作做完之後的產(chǎn)出,即是下一個動作的輸入比如用一個程式模組來找出最大值:第一個動作是將一群資料輸入,接著將這一群資料一一來做比較,找出其中最大的值,最後再把結(jié)果輸出;這樣子的模組稱為「有順序內(nèi)聚力的模組」。55模組化與評估模組的標(biāo)準(zhǔn)(3/8)溝通內(nèi)聚力(Communicationcohesion)指這個模組內(nèi)有多個作業(yè)使用一樣的輸入資料,但是這些作業(yè)在執(zhí)行上並沒有順序性;可以看得出來,這樣的內(nèi)聚力要比順序內(nèi)聚力的緊密程度差一點。像是查詢客戶的付款方式、查詢客戶的聯(lián)絡(luò)人、查詢客戶的付款折扣,這三者用到的資料都是客戶資料,但是無論哪一個值先查都可以,若將這三個作業(yè)放在一起成為一個模組,則稱這個模組具有使用相同資料的溝通內(nèi)聚力。程序內(nèi)聚力(Proceduralcohesion)在這個模組內(nèi)的作業(yè)並不共享資料,但卻必須要按照一定的順序來執(zhí)行,而且所完成的事情在真實的世界裡其實並沒有太多的意義。它們可能只是在執(zhí)行系統(tǒng)的時候,一些要完成的事情,所以把這些作業(yè)放在一起,以便確定這些作業(yè)可以按照一定的順序做完。比如說,修改一筆訂單資料、記錄使用者帳號及時間、標(biāo)示修改符號,將這幾個動作放在同一個模組,以確定其執(zhí)行的程序性,即稱這個模組具有程序內(nèi)聚力56模組化與評估模組的標(biāo)準(zhǔn)(4/8)時間性內(nèi)聚力(Temporalcohesion)如果一個模組內(nèi)的幾個作業(yè),是因為需要同時被作業(yè)而放在一起,這樣子的模組就是時間性的內(nèi)聚力。這項內(nèi)聚力和執(zhí)行的時間相關(guān),比如像是將設(shè)定一個系統(tǒng)起始值的幾個動作放在同一個模組,則這個模組便具有時間的內(nèi)聚力。邏輯內(nèi)聚力(Logicalcohesion)當(dāng)具有邏輯上相關(guān)的作業(yè)放在同一個模組裡,即稱此模組具有邏輯內(nèi)聚力。比如像是輸出模組,便可包括錯誤資訊、報表、和備份資料,雖然都是輸出,但它們只是邏輯上均從資訊系統(tǒng)輸出到周邊設(shè)備去,但是周邊設(shè)備卻不一樣、輸出內(nèi)容也沒有關(guān)聯(lián);這樣設(shè)計並不是好的做法。偶然內(nèi)聚力(Coincidentalcohesion)模組內(nèi)的作業(yè)只是偶然放在一起,沒有任何的原因,這樣的模組稱為「具有偶然內(nèi)聚力的模組」。57模組化與評估模組的標(biāo)準(zhǔn)(5/8)偶合力:概說:偶合力是指模組和模組之間的關(guān)聯(lián),理論上應(yīng)該越小越好。如果一個模組會和別的模組多所牽連,就表示此模組是和這次開發(fā)的系統(tǒng)高度相關(guān),那麼再利用的價值可能會較低。偶合力可分為以下幾種:無直接偶合力(Nodirectcoupling)模組之間沒有關(guān)聯(lián),無直接的偶合力存在。資料偶合力(Datacoupling)兩個模組之間有一些簡單的資料傳遞。我們以審核客戶信用額度和客戶訂單這兩個模組為例:由於客戶訂單模組必須根據(jù)客戶信用額度來作業(yè),因此審核客戶信用額度的模組必須將客戶信用額度傳送給客戶訂單模組,所以這兩個模組之間存在著因資料傳遞而構(gòu)成的關(guān)聯(lián)。58模組化與評估模組的標(biāo)準(zhǔn)(6/8)郵戳偶合力(Stampcoupling)指兩個模組之間有資料結(jié)構(gòu)上的相關(guān)連,也就是說兩個模組會去修改或是新增同一個表格、或是表格內(nèi)的幾個欄位。比如訂單的資料表格,就有訂單總價計算和訂單定價這兩個模組會分別去決定訂單資料中的總價和定價欄位,這兩個模組的關(guān)連性是透過訂單資料表格中的幾個特定欄位所形成,我們稱兩個模組間具有郵戳偶合力,或者稱為資料結(jié)構(gòu)偶合力??刂婆己狭?Controlcoupling)當(dāng)兩個模組之間所傳遞的是旗標(biāo),即一個模組以旗標(biāo)來控制另一個模組的作業(yè),這和模組內(nèi)部的執(zhí)行邏輯有關(guān)。假使一個模組改變了旗標(biāo)之後,會影響另一個模組的運(yùn)作,以列印庫存報表和盤點這兩個模組為例,在列印庫存報表之前必須先檢查盤點模組的進(jìn)度,確定某一個產(chǎn)品完成盤點後才能列印。59模組化與評估模組的標(biāo)準(zhǔn)(7/8)外部偶合力(Outsidecoupling)假設(shè)兩個模組共用外部定義的變數(shù),當(dāng)外部變數(shù)改變時,會影響到這兩個模組,則這兩個模組之間稱為有外部偶合力。比如,『定價』模組內(nèi)的『產(chǎn)品價格』,會同時影響到『訂單總計』模組和『客戶信用餘額』模組,所以『訂單總計』和『客戶信用餘額』這兩個模組便同時受到『產(chǎn)品價格』這個外部變數(shù)的影響,這種情況可以稱為有外部偶合力。共同偶合力(Commoncoupling)共同偶合力指的是兩個模組使用相同的資料區(qū),而且都可以讀、寫資料區(qū)內(nèi)的資料。比如,盤點模組和庫存模組都可以更新庫存量,這兩個模組在寫入相同模組時,必須要做良好的控制,否則會有資料錯誤的情況,若兩個模組擁有對相同變數(shù)的寫入權(quán),則稱這兩個模組之間有共同偶合力。60模組化與評估模組的標(biāo)準(zhǔn)(8/8)內(nèi)容偶合力(Contentcoupling)兩個模組在執(zhí)行的內(nèi)容上互相相關(guān),像是有些程式語言中的goto的指令,會使得執(zhí)行緒在一個模組執(zhí)行到一半時忽然跳到另一個模組,這時這兩個模組便具有內(nèi)容偶合力。這樣是比較不好的設(shè)計,當(dāng)很多goto在一個模組中的時候,執(zhí)行的順序就已經(jīng)很混亂了,如果再加上兩個、三個模組,並且容許在內(nèi)容的執(zhí)行上跳來跳去,那一定更難以管理,而且違背了模組化的基本概念。61結(jié)構(gòu)圖的必要性說明:這當(dāng)然是見仁見智的事情,完全由系統(tǒng)設(shè)計者依專案的情況來決定。但由於程式語言的不斷進(jìn)化,許多指令本身已經(jīng)能完成複雜的動作,而且很多開發(fā)工具又提供了強(qiáng)大的函式庫,因此原本需要寫兩三支程式才能做得完的事情,現(xiàn)在可能只要一支簡單的程式就可解決。需要撰寫的程式變少了,所以結(jié)構(gòu)圖的角色已經(jīng)沒有像以前那麼的重要。624.5 處理規(guī)格處理規(guī)格的表達(dá)虛擬碼中常見的保留字虛擬碼應(yīng)用保留字的實例巢狀指令63處理規(guī)格的表達(dá)(1/4)概述:撰寫處理規(guī)格是系統(tǒng)設(shè)計師的主要工作之一,其目的在於說明所要開發(fā)的程式或物件的詳細(xì)內(nèi)容。之前所討論的系統(tǒng)設(shè)計方法,都只是用圖形將系統(tǒng)要開發(fā)什麼東西給畫出來,但是並沒有正式設(shè)計到程式的邏輯解法。所謂邏輯解法也就是程式的演算法,或可說是執(zhí)行流程,亦即如何一步一步的將問題解決;處理規(guī)格通常以虛擬碼(Pseudo-code)來表達(dá)。虛擬碼雖不是真正的程式碼,但也已相去不遠(yuǎn)。64程式規(guī)格的表達(dá)(2/4)程式設(shè)計師只要拿到虛擬碼,就能依照所開立的規(guī)格寫出對應(yīng)的程式,而不需要知道其他的部分。在開發(fā)系統(tǒng)的過程中,需要不同的專業(yè)人員一起團(tuán)隊合作,當(dāng)這個系統(tǒng)很大、很複雜、或是開發(fā)團(tuán)隊成員需要同時參與不同的專案時,專業(yè)的分工就非常重要,每個人只需負(fù)責(zé)他擅長且該做的事情。舉例來說,只有系統(tǒng)設(shè)計師才需要看到整個系統(tǒng)的程式架構(gòu),而程式設(shè)計師
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫維護(hù)計劃
- 社區(qū)網(wǎng)絡(luò)安全的關(guān)注要點計劃
- 學(xué)校評價與反饋系統(tǒng)建設(shè)計劃
- 班級班規(guī)與紀(jì)律維護(hù)計劃
- 幼兒園小班數(shù)理邏輯訓(xùn)練計劃
- 財務(wù)資源保障計劃
- 課程外聯(lián)計劃
- 遠(yuǎn)程會診服務(wù)的進(jìn)展和挑戰(zhàn)計劃
- 科技賦能下的現(xiàn)代橋梁結(jié)構(gòu)設(shè)計變革
- 非標(biāo)智能裝備推動企業(yè)自動化的成功案例研究
- 八年級英語下冊課件教學(xué)
- 人教版(2019) 必修第二冊 Unit 1 Cultural Heritage Discovering Useful Structures(教案)
- 陳獨秀生平事跡
- 2024年人教版初三數(shù)學(xué)(下冊)模擬試卷及答案(各版本)
- 《大學(xué)美育》高職全套教學(xué)課件
- 醫(yī)院CT機(jī)房裝飾改造工程施工組織設(shè)計
- 軟件工程自考02333重點難點匯集
- 護(hù)理技能操作案例分析
- DZ∕T 0213-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 石灰?guī)r、水泥配料類(正式版)
- 《行政倫理學(xué)教程(第四版)》課件 張康之 第8-13章 行政組織倫理-技術(shù)時代的行政倫理
- 《水電廠應(yīng)急預(yù)案編制導(dǎo)則》
評論
0/150
提交評論