第11章信息系統(tǒng)開發(fā)方法的進展_第1頁
第11章信息系統(tǒng)開發(fā)方法的進展_第2頁
第11章信息系統(tǒng)開發(fā)方法的進展_第3頁
第11章信息系統(tǒng)開發(fā)方法的進展_第4頁
第11章信息系統(tǒng)開發(fā)方法的進展_第5頁
已閱讀5頁,還剩196頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第11章信息系統(tǒng)開發(fā)方法的進展11.1一體化方法11.2面向?qū)ο蠓椒?/p>

11.3原型法11.4軟系統(tǒng)方法11.5軟件開發(fā)工具習(xí)題1111.1一體化方法一體化方法是對傳統(tǒng)的結(jié)構(gòu)化方法的改進,它集功能分析、過程設(shè)計、數(shù)據(jù)庫設(shè)計為一體。它充分利用系統(tǒng)分析的結(jié)果,完成系統(tǒng)功能結(jié)構(gòu)的設(shè)計和數(shù)據(jù)庫設(shè)計,填補了系統(tǒng)分析與設(shè)計兩個開發(fā)階段之間的空隙。一體化方法的步驟如圖11.1所示。圖11.1一體化方法的工作步驟功能分析即是第六章介紹的系統(tǒng)分析,主要是定義系統(tǒng)的功能和信息流,抽象出系統(tǒng)的功能模型。其主要工具是數(shù)據(jù)流圖、數(shù)據(jù)字典。在討論設(shè)計步驟之前,先介紹有關(guān)的幾個基本概念。11.1.1概念1.初等功能(elementaryfunction)

在數(shù)據(jù)流圖中,需要再分解為子功能的功能稱為一般功能(generalfunction),不需要再分解的功能稱為初等功能。與初等功能聯(lián)系的數(shù)據(jù)流稱為初等數(shù)據(jù)流(elementarydataflow)。2.菜單樹在一個規(guī)模較大的系統(tǒng)中,需要一系列的屏幕菜單引導(dǎo)用戶選擇需要系統(tǒng)完成的功能。這些菜單是按層次組織起來的,稱為菜單樹。從用戶角度看,菜單樹就是系統(tǒng)的總體結(jié)構(gòu)。3.事務(wù)(transacation)

從用戶角度看,事務(wù)是信息系統(tǒng)可獨立完成的一項業(yè)務(wù)或活動。在數(shù)據(jù)流圖中,一項事務(wù)包含由數(shù)據(jù)流鏈接的一些基本功能和與這些基本功能聯(lián)系的數(shù)據(jù)存儲和外部實體。信息系統(tǒng)由一系列事務(wù)組成。系統(tǒng)的所有事務(wù)構(gòu)成信息系統(tǒng)內(nèi)部的總體結(jié)構(gòu)。信息系統(tǒng)的總體設(shè)計包括菜單樹的設(shè)計和事務(wù)設(shè)計。11.1.2菜單樹初步設(shè)計菜單樹設(shè)計的目標(biāo),是建立與系統(tǒng)功能相應(yīng)的層次菜單。菜單樹的設(shè)計分兩個階段進行:第一個階段,從DFD導(dǎo)出一個初始菜單樹;第二個階段,在事務(wù)設(shè)計之后修改、完善菜單樹。為了設(shè)計初始菜單樹,需要從頂層數(shù)據(jù)流圖開始,自頂向下考查所有數(shù)據(jù)流圖。凡是存在外部實體的DFD,都定義一個對應(yīng)的菜單屏幕,圖中與外部實體聯(lián)系的功能對應(yīng)菜單中的一行。若這個功能是初等功能,則相應(yīng)的行用“T”標(biāo)注。圖11.2給出了一張數(shù)據(jù)流圖及其對應(yīng)的菜單屏幕,其中功能X2是初等功能,X1是一般功能。兩個功能都與外部實體有聯(lián)系,因此菜單中有兩行,其中功能X2對應(yīng)的一行前面標(biāo)以“T”。為便于對照檢查,菜單中各行的標(biāo)號、說明,暫時用對應(yīng)功能的標(biāo)號和功能說明,在優(yōu)化、完善菜單樹時,再給出更恰當(dāng)?shù)臉?biāo)號和標(biāo)題。圖11.2DFD及相應(yīng)的菜單屏幕完成上述過程,便得到初始菜單樹。顯然菜單樹的根對應(yīng)DFD樹的根,子菜單對應(yīng)滿足上述條件的子DFD,菜單樹對應(yīng)DFD樹的一棵子樹。在這個過程中,可能出現(xiàn)這種情況:某些菜單只有一行。在這種情況下,用戶沒有什么可選擇的。這是一種“蛻化”菜單,在優(yōu)化菜單樹時再作調(diào)整。圖11.3是維修工程系統(tǒng)的一組分層的數(shù)據(jù)流圖。該系統(tǒng)從接受客戶的維修要求開始,包括提出維修工程的方案,向廠商采購材料,與客戶、供應(yīng)商的結(jié)算等功能。圖11.4是從圖11.3導(dǎo)出的初始菜單。圖11.3維修工程系統(tǒng)的數(shù)據(jù)流圖(1)圖11.3維修工程系統(tǒng)的數(shù)據(jù)流圖(1)圖11.3維修工程系統(tǒng)的數(shù)據(jù)流圖(2)圖11.3維修工程系統(tǒng)的數(shù)據(jù)流圖(2)圖11.3維修工程系統(tǒng)的數(shù)據(jù)流圖(3)圖11.3維修工程系統(tǒng)的數(shù)據(jù)流圖(3)圖11.4初始菜單樹11.1.3事務(wù)設(shè)計一項事務(wù)由數(shù)據(jù)流鏈接的幾個初等功能及有關(guān)的數(shù)據(jù)存儲、外部實體構(gòu)成。其中有一個初等功能是該事務(wù)的觸發(fā)者,這可以從初始菜單中找到(標(biāo)有“T”)。由此出發(fā),沿數(shù)據(jù)流找下一個初等功能,直到進入數(shù)據(jù)存儲或外部實體,便可找到一項事務(wù)的所有成分。但應(yīng)注意:這個過程有可能由一張數(shù)據(jù)流圖跨越到其他數(shù)據(jù)流圖上。對初始菜單樹中所有標(biāo)有“T"的行都進行這種過程,便可找出系統(tǒng)的全部事務(wù)。圖11.5中,所有功能X都是初等功能。根據(jù)上述規(guī)則,X1、X2、X3、X4,外部實體UE1、UE2,數(shù)據(jù)存儲D1、D2構(gòu)成一項事務(wù);外部實體UE3,初等功能X5,數(shù)據(jù)存儲D2構(gòu)成另一項事務(wù)。如果設(shè)計者認(rèn)為前一項事務(wù)太復(fù)雜,則可以在適當(dāng)?shù)牡胤?,例如在功能X2和X3之間添加一個數(shù)據(jù)存儲D3,將該項事務(wù)一分為二。由此可見,數(shù)據(jù)存儲可看成一種“調(diào)節(jié)器”,用來調(diào)節(jié)事務(wù)的復(fù)雜程度,利用它將復(fù)雜的事務(wù)劃分成多項較為簡單的事務(wù)。圖11.5復(fù)雜事務(wù)的化簡從這個例子可以看出:一項事務(wù)可能涉及多個外部實體,因而一項事務(wù)可能對應(yīng)菜單中的多行。如圖11.6所示,由外部實體UE1、UE2,初等功能X1、X2、X3,數(shù)據(jù)存儲D1、D2構(gòu)成的事務(wù)就對應(yīng)初始菜單屏幕的第一、二兩行。這與“菜單”的意義有沖突。這個矛盾可以用兩個辦法來解決:若該項事務(wù)比較復(fù)雜,可在適當(dāng)?shù)牡胤教砑訑?shù)據(jù)存儲,使之分解為多個事務(wù);若事務(wù)不太復(fù)雜,沒有必要分解,可將菜單中對應(yīng)同一事務(wù)的多行并為一行,重新標(biāo)號并加以適當(dāng)?shù)臉?biāo)題。后一種辦法可以引起菜單屏幕的蛻化。圖11.6一項事務(wù)對應(yīng)菜單中的多行前面曾經(jīng)提到,初始菜單屏幕生成過程中可能有蛻化情形?,F(xiàn)在,我們這里又看到了,事務(wù)設(shè)計可能影響到數(shù)據(jù)流圖和初始菜單樹。所以,在事務(wù)設(shè)計之后,要對菜單樹進行必要的整理和完善:第一,消除所有蛻化菜單屏幕,若這一行前標(biāo)有“T",則在其父菜單的相應(yīng)行前標(biāo)以“TQ",表示該行是“準(zhǔn)選擇行”;第二,適當(dāng)改變各行的標(biāo)號、標(biāo)題,使之意思更明確。圖11.7是修改圖11.4的菜單樹的結(jié)果。為了使讀者便于對照,圖中的標(biāo)號并未重新編排。圖11.7修訂后的菜單樹11.1.4事務(wù)的結(jié)構(gòu)化描述經(jīng)過整理后的菜單樹,凡是前面標(biāo)有“T”或“TQ"的每一行都表示一項事務(wù)。對這些事務(wù)需要用文字加以描述。在系統(tǒng)分析階段,我們已經(jīng)用“小說明”的形式說明各個初等功能的內(nèi)部邏輯。每個初等功能只完成一項事務(wù)的一部分功能。對事務(wù)的描述則要說明該項事務(wù)中有關(guān)的初等功能、數(shù)據(jù)存儲、外部實體之間的信息傳遞關(guān)系。例如,修訂后的菜單樹(圖11.7)中的一項事務(wù)“1.2接收采購回執(zhí)”可以描述如下(參見圖11.3中的“采購材料”框的展開):Begintransaction″1.2″InputfromUE1(票據(jù)和回執(zhí))ReadfromD5(采購單)Executefunction1.2(接收采購回執(zhí))MovefromFunction1.2toFunction1.3(采購的材料)ExecuteFunction1.3(修改庫存)WritetoD1(采購的材料)MovefromFunction1.2toFunction1.4(票據(jù)和回執(zhí))ExecuteFunction1.4(記供應(yīng)商賬)WritetoD2(票據(jù)和回執(zhí))Endtransaction″1.2″11.1.5數(shù)據(jù)庫模式設(shè)計事務(wù)設(shè)計完成之后進行數(shù)據(jù)庫模式設(shè)計。數(shù)據(jù)庫模式設(shè)計可以分為兩個階段:第一,信息結(jié)構(gòu)分析;第二,將概念模式轉(zhuǎn)換為數(shù)據(jù)庫模式。信息結(jié)構(gòu)分析是建立在二元關(guān)系模型(binaryrelationship)基礎(chǔ)上的概念模式,用信息結(jié)構(gòu)圖ISD(InformationStructureDiagram)表示。1.二元關(guān)系模型二元關(guān)系模型可以看作實體關(guān)系模型(E-R)的特例,但比后者簡單。在E-R模型中,某設(shè)計師可能將一個客體表示為屬性,而另一個設(shè)計師可能將這個客體表示為實體,即根據(jù)他們對這個客體重要性的理解而定。在模型化過程中,設(shè)計師對組織中同一客體的多種選擇將帶來麻煩。二元關(guān)系模型正是為了避免這些麻煩而提出的。二元模型中每個客體都視為實體。它只有兩個概念:實體與二元關(guān)系。實體之間的關(guān)系有1∶1,1∶n,m∶n三種情況。一個m∶n的關(guān)系,可以通過一個“插入實體”分解為兩個1∶n的關(guān)系,從而避免了可能產(chǎn)生的二義性。下面結(jié)合數(shù)據(jù)流的描述,說明二元關(guān)系模型的表示方法。初等數(shù)據(jù)流的元素是實體類型OT(ObjectType)。一個實體類型可以有一個或多個實體類型名OTN(ObjectTypeName),可以通過OTN來標(biāo)識或引用該實體(類似E-R模型中的屬性)。另外,還應(yīng)說明實體類型在這個數(shù)據(jù)流中的作用(role),即與其他實體類型的關(guān)系。作為例子,看圖11.3中“提出方案”框的展開的數(shù)據(jù)流:“P2.5→D4"。數(shù)據(jù)存儲D4(客戶賬)記錄客戶付款的情況。數(shù)據(jù)流“P2.5→D4"包括客戶、作業(yè)、金額、日期、狀態(tài)等實體。這個數(shù)據(jù)流可描述如表11.1所示。圖11.8二元關(guān)系模型表11.1數(shù)據(jù)流的描述OTOTNRole客戶ID,姓名作業(yè)的業(yè)主作業(yè)NO客戶的作業(yè)金額幣號作業(yè)的預(yù)付款客戶的欠款數(shù)日期年/月/日預(yù)付款日期狀態(tài)編號作業(yè)進展?fàn)顟B(tài)表中,實體“客戶”、“作業(yè)”之間是1∶n的關(guān)系,一個客戶可以有多個作業(yè),而一個作業(yè)只有一個業(yè)主?!白鳂I(yè)”與“金額”之間是m∶n的關(guān)系,增加插入實體“付款日期”,后者與“金額”是1∶n關(guān)系。這兩個關(guān)系分別如圖11.8所示。圖中,圓表示實體,兩個相鄰的長方形表示實體間的關(guān)系,決定因素上方有一短線,例如,客戶與作業(yè)的依賴關(guān)系中,作業(yè)是決定因素。M∶n關(guān)系中,兩個長方形上方有一長線,如圖11.8中輸入實體“付款日期”所示。2.信息結(jié)構(gòu)分析與數(shù)據(jù)存儲相關(guān)的初等數(shù)據(jù)流是建立概念模式的基本元素。建立概念模式之前,先要對數(shù)據(jù)流圖中的數(shù)據(jù)存儲有關(guān)的讀/寫數(shù)據(jù)流進行檢查,驗證數(shù)據(jù)存儲的輸入(寫)、輸出(讀)平衡,即一個數(shù)據(jù)存儲的輸入元素列表與輸出元素列表是否相等。若某個數(shù)據(jù)存儲不平衡,說明數(shù)據(jù)流圖或數(shù)據(jù)字典有錯誤,進行下一步工作之前應(yīng)改正。圖11.9是建立數(shù)據(jù)庫概念模式的流程圖,說明從數(shù)據(jù)流圖建立信息結(jié)構(gòu)圖的過程。整個過程是兩層循環(huán)。內(nèi)循環(huán)是分析一個數(shù)據(jù)存儲的各個讀/寫數(shù)據(jù)流,形成該數(shù)據(jù)存儲的信息結(jié)構(gòu)圖DS-ISD(Data-StoresInformationStructureDiagram)。外循環(huán)由各個DS-ISD拼成整個信息系統(tǒng)的信息結(jié)構(gòu)圖。圖11.9建立概念模式的過程由上述過程可見,對數(shù)據(jù)存儲的讀/寫數(shù)據(jù)流的信息結(jié)構(gòu)分析是建立概念模的基礎(chǔ)。這里“數(shù)據(jù)流”是指初等數(shù)據(jù)流。因為隨著數(shù)據(jù)流圖的逐層擴展,非初等數(shù)據(jù)流也逐步具體化為初等數(shù)據(jù)流。圖11.10是數(shù)據(jù)流“P2.5→D4"的信息結(jié)構(gòu)圖。圓中的括號內(nèi)是實體的OTN,有下劃線的OTN表示它可作為實體的標(biāo)識碼。在此基礎(chǔ)上形成數(shù)據(jù)存儲D4的DS-ISD,如圖11.11所示。限于篇幅,這里沒有給出整個系統(tǒng)的ISD,相信讀者不難理解整個系統(tǒng)ISD的生成過程。圖11.10數(shù)據(jù)流“P2.5→D4”的ISD圖11.11D4的DS-ISD3.從信息結(jié)構(gòu)圖導(dǎo)出數(shù)據(jù)庫模式下面給出從ISD導(dǎo)出數(shù)據(jù)庫模式的算法。這個算法檢查ISD中所有的關(guān)系,根據(jù)實體間的依賴關(guān)系建立記錄類型。由此得出的關(guān)系,沒有違反4NF的非函數(shù)依賴和多值依賴。算法主要步驟如下:檢查ISD中所有實體類型以及其他實體的關(guān)系:(1)若一個實體類型決定其他實體類型(1∶n依賴),則定義一個新的記錄類型,決定因素成為關(guān)鍵碼,而依賴因素成為這個記錄類型的非關(guān)鍵碼屬性。(2)若這個實體類型決定更多的實體類型(在其他關(guān)系中),則這些實體類型成為同一記錄類型的屬性。(3)若一個實體類型與某一個實體類型是m∶n關(guān)系,則定義一個新記錄類型(插入對象),兩個實體類型成為這個記錄類型的關(guān)鍵碼,插入實體也可以與其它實體類型聯(lián)系。上面的規(guī)則也適合這個關(guān)系的依賴類型。(4)若兩個實體類型是1∶1關(guān)系,則兩個實體之一選作關(guān)鍵碼,另一個成為屬性。圖11.11表示的ISD經(jīng)此算法得出的關(guān)系模型如下,其中帶橫線的屬性是關(guān)鍵碼??蛻簦篒D,姓名,欠款額客戶地址:ID,地址,地址變更日期作業(yè):作業(yè)編號,客戶ID,實際成本,上次催款日期,狀態(tài)付款:作業(yè)編號,付款日期,金額11.2面向?qū)ο蠓椒?1.2.1面向?qū)ο蠓椒ǖ脑瓌t和特點面向?qū)ο驩O(ObjectOriented)方法是一種新的思維方法。其出發(fā)點和基本原則是,盡可能模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程接近人類認(rèn)識世界、解決問題的過程,也就是使描述問題的問題空間(也稱為問題域)與實現(xiàn)解法的解空間(也稱為求解域)在結(jié)構(gòu)上盡可能一致??陀^世界的問題都是由客觀世界的實體及實體間的關(guān)系構(gòu)成的。實體具有靜態(tài)的屬性和動態(tài)的行為。用計算機來解決客觀世界的問題,傳統(tǒng)方法是用數(shù)據(jù)描述實體的靜態(tài)屬性,必須在程序中從外部對數(shù)據(jù)施加操作(即處理)才能模擬實體的行為。這樣人為地把數(shù)據(jù)和處理分離成兩個獨立部分,增加了軟件開發(fā)的難度。與傳統(tǒng)方法相比,面向?qū)ο蠓椒ㄊ且詳?shù)據(jù)為主線,將數(shù)據(jù)與處理相結(jié)合的方法。對象是數(shù)據(jù)及可以施加其上的操作所構(gòu)成的統(tǒng)一體,是客觀世界客體的抽象。對象與傳統(tǒng)的數(shù)據(jù)有本質(zhì)的區(qū)別,它不是被動地等待外界對它施加操作,而是進行處理的主體。對象接收請求消息后主動地執(zhí)行它的某些操作,處理它的私有數(shù)據(jù)。外界不能直接對它的私有數(shù)據(jù)進行操作。面向?qū)ο蠓椒ú皇前殉绦蚩醋髟跀?shù)據(jù)上工作的一系列過程或函數(shù)的集合,而是看作相互協(xié)作又彼此獨立的對象的集合。每個對象像一個微型程序,有自己的數(shù)據(jù)、操作、功能和目的。在許多系統(tǒng)中,解空間對象可以直接模擬問題空間的對象,解空間與問題空間的結(jié)構(gòu)十分一致。因此,這樣的軟件系統(tǒng)比較容易理解,容易維護。概括地說,面向?qū)ο蠓椒ň哂邢率鏊膫€要點:(1)認(rèn)為客觀世界是由各種對象組成的。任何事物都是對象,復(fù)雜的對象可以由簡單的對象組合而成。面向?qū)ο蟮能浖到y(tǒng)由對象組成,軟件中的元素都是(軟件)對象。(2)把所有對象分成各種對象類,簡稱為類(class),每個類都定義了一組數(shù)據(jù)和一組方法。(3)按照子類與父類的關(guān)系,把若干對象類組成一個層次結(jié)構(gòu)的系統(tǒng)。在這種層次結(jié)構(gòu)中,通常下層的子類具有上層的父類的特性(包括數(shù)據(jù)和方法),這種現(xiàn)象稱為繼承(inheritance)。(4)對象彼此之間僅能通過傳遞消息進行聯(lián)系。11.2.2統(tǒng)一建模語言在結(jié)構(gòu)化方法中,數(shù)據(jù)流圖是結(jié)構(gòu)化分析的建模語言,模塊結(jié)構(gòu)圖是結(jié)構(gòu)化總體設(shè)計的建模語言。面向?qū)ο蠓椒ǖ慕UZ言是統(tǒng)一建模語言UML(UnifiedModelingLanguage)。UML定義了以下幾種視圖,它們從不同角度反映系統(tǒng):(1)用例視圖:其實就是功能視圖。UML采用用例圖(usecasediagram)來描述系統(tǒng)的功能需求。(2)邏輯視圖:表達系統(tǒng)的基本的邏輯結(jié)構(gòu),也稱為靜態(tài)視圖。采用類圖(classdiagram)描述對象的靜態(tài)結(jié)構(gòu),采用對象圖(objectdiagram)來顯示一個類的某個實例以幫助理解該類。(3)行為視圖:表達系統(tǒng)的動態(tài)行為。采用順序圖(sequencediagram)描述為完成一個用例所需要的對象及任務(wù)完成的順序過程;采用協(xié)作圖(collaborationdiagram)描述多個對象為共同完成某個用例的協(xié)作關(guān)系;采用狀態(tài)圖(statediagram)描述對象可能存在的狀態(tài)及可能的轉(zhuǎn)換。(4)組件視圖:表達軟件組織結(jié)構(gòu)。采用組件圖(componentdiagram)描述系統(tǒng)的軟件組件或模塊及它們的依賴關(guān)系。(5)配置視圖:表達物理結(jié)構(gòu)。采用配置圖(deploymentdiagram)來描述系統(tǒng)中的節(jié)點和節(jié)點的連接關(guān)系,以及軟件對象在節(jié)點的分布情況。下面結(jié)合分析與設(shè)計過程介紹這些圖。11.2.3面向?qū)ο蠓椒ǖ姆治雠c設(shè)計過程運用面向?qū)ο蠓椒▉砭唧w開發(fā)一個信息系統(tǒng),其分析和設(shè)計過程可以分為以下幾個階段。1.識別系統(tǒng)目標(biāo)和邊界這個步驟要求在問題空間建模之前進行。事實上,該活動應(yīng)該在使用任何方法的建模之前完成。用戶和系統(tǒng)分析員需要識別、理解并記錄系統(tǒng)的目標(biāo),并導(dǎo)出信息系統(tǒng)的目標(biāo)。比如,一個醫(yī)院門診系統(tǒng)的目標(biāo)描述為“該系統(tǒng)為患者提供掛號和診療服務(wù),并實現(xiàn)門診收費管理”。在識別和改進系統(tǒng)目標(biāo)的同時,需要確定整個系統(tǒng)究竟是什么,換句話說就是要考查系統(tǒng)的邊界,確定系統(tǒng)的責(zé)任范圍,認(rèn)識系統(tǒng)與外部環(huán)境的接口以及確定是哪些人或事物通過該接口與系統(tǒng)有交互活動。2.識別用例,建立用例圖用例是使用者與信息系統(tǒng)相互往來的交互活動。獨立的用例放在一起成為用例圖。這是使用UML和面向?qū)ο蠓椒ǖ牡谝徊健S美梢杂脕聿蹲叫畔⑾到y(tǒng)的功能需求,進一步的深入討論有助于尋找對象并確定其責(zé)任,有助于了解對象之間的協(xié)作關(guān)系。3.識別對象,建立類圖對象代表真實的人、地點、事物。一個類代表了一群具有相似特征的對象。一個類圖描述了信息系統(tǒng)中所有類的集合,包括類的屬性、類提供的服務(wù)以及類之間的關(guān)系。4.設(shè)計用例的詳細邏輯,建立順序圖和協(xié)作圖將用例圖中的每個用例展開后描述操作的細節(jié)。它表示“從開始到結(jié)束”完成一個用例的一系列動作。描述這種細節(jié)的有順序圖或協(xié)作圖。每個圖都自然地表示了這種操作的細節(jié),由此人們可以想象一個具體的功能是怎么執(zhí)行的。5.精化并調(diào)整任何一個活動都不是孤立的,一個圖的改動都可能引發(fā)其他圖的調(diào)整。正是在這種反復(fù)的過程中,模型得到逐步精化和完善。下面介紹各階段的有關(guān)方法和工具。11.2.4用例與用例圖界定系統(tǒng)目標(biāo)和范圍之后,首要的任務(wù)是了解用戶需求。說明這些需求的工具是用例(usecase)。用例是執(zhí)行者和系統(tǒng)之間為了達到某個目的而進行一次交互過程。設(shè)計用例模型是剖析系統(tǒng)功能需求的有效方法。1.用例的相互關(guān)系用例可分為基本用例、包含用例和擴展用例。1)基本用例一個未經(jīng)過分解、包含常規(guī)會發(fā)生的基本功能的用例,稱為基本用例。比如ATM系統(tǒng)中,基本用例有“取款”和“修改口令”。2)包含用例經(jīng)過封裝后可以在各種不同的基本用例中復(fù)用的行為稱為包含用例。基本用例可以控制包含用例,并依賴于(使用)包含用例所得到的結(jié)果。比如ATM系統(tǒng)中的“取款”和“修改口令”都包含系統(tǒng)識別客戶身份的行為,可以將該行為抽取為一個名為“身份識別”的包含用例。以上兩個基本用例都包含此用例,如圖11.12所示。圖11.12包含用例一個基本用例可以有多個包含用例,一個包含用例可以包含在若干個基本用例中。包含關(guān)系可以嵌套。3)擴展用例表達某些可選或只在特定條件下才執(zhí)行的系統(tǒng)行為的用例,稱為擴展用例。擴展是有條件的,它是否執(zhí)行取決于在執(zhí)行基本用例時所發(fā)生的事件。例如在電話系統(tǒng)中,為用戶提供的主要服務(wù)通過用例“打電話”來表示。可選服務(wù)包括:能讓第三方加入通話(三方通話)。允許接收方看到呼叫方的身份(來電顯示)。我們可以將這些可選服務(wù)所需的行為表示為基本用例“打電話”的擴展用例,如圖11.13所示。圖11.13擴展用例除包含關(guān)系和擴展關(guān)系以外,用例之間還有泛化關(guān)系。如果兩個或更多用例在行為、結(jié)構(gòu)和目的方面存在共性,可以使用一般—特殊關(guān)系(即泛化關(guān)系)來表達。例如在訂單管理系統(tǒng)中,“電話訂購”和“網(wǎng)上訂購”兩個用例在結(jié)構(gòu)和行為上存在很多的共同點。而一般用例“訂購”是根據(jù)結(jié)構(gòu)和公有行為的定義來定義的。雖然抽象用例“訂購”本身無須完善,但是它提供了一個大體的、通過子用例進行完善的行為框架,如圖11.14所示。圖11.14泛化關(guān)系這種泛化關(guān)系與包含關(guān)系、擴展關(guān)系不同。在包含關(guān)系中,基本用例實例使用了包含用例實例執(zhí)行的結(jié)果。在擴展關(guān)系中,擴展用例隱式地修改了一個基本用例的實例。 以上介紹的用例及用例的三種關(guān)系(包含關(guān)系、擴展關(guān)系、泛化關(guān)系)是建立用例模型的基本要素。2.識別用例要充分了解系統(tǒng)的目的和功能,首先就必須知道系統(tǒng)是為誰而設(shè)計的,即誰將使用該系統(tǒng)。不同類型的用戶群體代表了使用系統(tǒng)的一種角色(actor),稱為執(zhí)行者。1)識別執(zhí)行者首先我們要注意區(qū)別執(zhí)行者與單個系統(tǒng)用戶。一個執(zhí)行者表示某一特定的用戶類,而不是一個實際的用戶。多個用戶可以擔(dān)任同一角色,這意味著他們可以是同一個執(zhí)行者。其次要了解執(zhí)行者的特征。這些特征可以包括:執(zhí)行者的職責(zé)范圍、執(zhí)行者使用系統(tǒng)時所處的物理環(huán)境、執(zhí)行者所表示的用戶數(shù)量、執(zhí)行者使用系統(tǒng)的頻率、執(zhí)行者的專業(yè)知識水平、執(zhí)行者使用計算機的經(jīng)驗水平及執(zhí)行者的一般特征,如專業(yè)知識(教育)水平、社會背景(如語言)和年齡。2)識別用例以下問題可以幫助確定用例:對于已確定的各個執(zhí)行者,哪些任務(wù)會涉及到系統(tǒng)?是否需要將系統(tǒng)中發(fā)生的某些特定事件通知給此執(zhí)行者?此執(zhí)行者是否需要將突發(fā)變更或外部變更通知給系統(tǒng)?系統(tǒng)是否給業(yè)務(wù)提供了正確的行為?已經(jīng)確定的用例是否可以執(zhí)行系統(tǒng)所有功能?哪些用例將支持和維護系統(tǒng)?在系統(tǒng)內(nèi)應(yīng)該修改或創(chuàng)建什么信息?有些用例不代表系統(tǒng)的主要功能,容易被忽略,應(yīng)當(dāng)加以注意。這些用例可能屬于以下類型:系統(tǒng)啟動和停止。系統(tǒng)的維護。例如,添加新用戶和建立用戶簡檔。維護在系統(tǒng)中存儲的數(shù)據(jù)。例如,所構(gòu)建的系統(tǒng)和遺留系統(tǒng)平行工作,所以數(shù)據(jù)需要在兩個系統(tǒng)之間達到同步。修改系統(tǒng)行為所需的功能。例如創(chuàng)建新報告的功能,它不僅可以創(chuàng)建硬代碼,還可以對系統(tǒng)中存儲的數(shù)據(jù)創(chuàng)建一組特定報告。3)用例的檢查所發(fā)現(xiàn)的每個用例是否都合理,而且沒有遺漏呢?這就要求對用例進行審查,審查的重點可以放在以下幾個方面:(1)每個具體用例是否至少涉及一個執(zhí)行者?如果不是,則其中存在問題;與執(zhí)行者不進行交互的用例是多余的,應(yīng)該將它刪除。(2)用例之間是否相互獨立?如果兩個用例總是以同樣的順序被激活,就可能需要將它們合并為一個用例。(3)是否存在多個用例具有非常相似的行為或事件流?如果是,應(yīng)該將它們合并為一個用例。(4)是否應(yīng)該將一個用例的事件流插入到另一個用例的事件流中?如果是,則建立一個擴展用例。(5)用例的名稱是否具有惟一性、直觀性和解釋性?如果沒有,則更改它們的名稱。(6)一個用例中是否包含完全不同的事件流?如果包含,最好將其分成兩個或多個單獨的用例。包含完全不同的事件流的用例將難于理解和維護。3.構(gòu)建用例模型1)用例圖由執(zhí)行者、用例及它們之間的關(guān)系構(gòu)成的圖稱為用例圖。用例圖闡明了用例與執(zhí)行者、用例與用例的關(guān)系。一個用例圖中可以包含一個或多個用例。每個用例的執(zhí)行都包含與一個或多個執(zhí)行者的交流。表11.2列出了UML用例圖的基本元素。在用例模型中,前三個項目是必須含有的。

表11.2UML用例圖的基本元素2)用例的說明僅通過用例圖的基本符號還不能完整了解一個用例,還需要對用例做簡要說明,描述該用例的有關(guān)事件流。說明的內(nèi)容包括兩個方面:(1)用例如何開始和結(jié)束;(2)在執(zhí)行者和用例之間交換的是什么數(shù)據(jù)。圖11.15是門診系統(tǒng)的用例圖。從圖中可以看出:圖11.15門診系統(tǒng)的用例圖系統(tǒng)的執(zhí)行者有四種:掛號員、醫(yī)生、收款員和病人;該系統(tǒng)有三個基本用例:掛號、就診和收款。其中掛號用例進行了詳細分解;掛號用例可以有兩種方式:直接到窗口掛號和網(wǎng)上掛號,而網(wǎng)上掛號只是做有關(guān)登記,最終還需要到窗口由掛號員確認(rèn)發(fā)號。掛號員處理這兩種情況時都要打印掛號單,所以是包含關(guān)系。11.2.5對象與類圖面向?qū)ο蠓治雠c設(shè)計的核心工作是建立系統(tǒng)的邏輯模型,就是分析和設(shè)計對象及類。這是一個迭代過程。類作為一個整體,代表了系統(tǒng)的早期概念模型。隨著概念模型含義的逐步明確,概念模型不斷演進,最終發(fā)展到實現(xiàn)模型,直接對應(yīng)到程序語言的實現(xiàn)框架。很多CASE工具能支持從邏輯模型到程序代碼框架的自動生成。從設(shè)計和實現(xiàn)的角度看,類包括實體類、邊界類和控制類。實體類包括系統(tǒng)中的人員、物品、事件等現(xiàn)實對象。邊界類用于在系統(tǒng)外部環(huán)境與內(nèi)部運作之間建模。常見的邊界類有窗口、通信協(xié)議、打印機接口、傳感器和終端??刂祁愑糜趯σ粋€或幾個用例所特有的控制行為進行建模。本書主要介紹面向?qū)ο蟮姆椒?,有關(guān)邊界類和控制類不做詳細的討論。1.識別對象對象是系統(tǒng)中用來描述客觀事物的一個實體。它是構(gòu)成系統(tǒng)的一個基本單位,有一組屬性和對這組屬性進行操作的一組服務(wù)。1)發(fā)現(xiàn)對象的策略實體對象代表了信息系統(tǒng)的核心概念。如何才能發(fā)現(xiàn)系統(tǒng)中的所有對象?我們介紹具有代表性的Wirfs-Brock名詞短語策略,其具體步驟是:(1)閱讀理解需求文檔(或用例說明);(2)反復(fù)閱讀,篩選出名詞或名詞短語,建立初始對象清單(候選對象);(3)將候選對象分成三類,即顯而易見的對象、明顯無意義的對象和不確定類別的對象;(4)舍棄明顯無意義的名詞或短語;(5)小組討論不確定類別的對象,直到將它們都合并或調(diào)整到其他兩類。這是一種簡單而行之有效的方法,但需要有良好的需求文檔為前提。有很多隱含對象在需求文檔中不易體現(xiàn),可以從人員、組織、物品、設(shè)備、事件以及規(guī)范化描述中尋找候選對象。2)對象的檢查對象的列表建立后,還需要進一步檢查:對象的名稱及說明是否清楚而且可以讓人理解?對象必須有明確的符合問題空間使用習(xí)慣的名稱,不能有二義性,這樣所有人員才能達成共識。對象是否參與至少一個用例的實現(xiàn)?如果一個對象不參與任何用例的實現(xiàn),說明該對象與系統(tǒng)沒有責(zé)任關(guān)系,應(yīng)刪除。如果該對象是從需求文檔中獲取的,則不會出現(xiàn)這種情況。是否有表示同一種事物的對象?由于有的事物名稱不統(tǒng)一,可能會出現(xiàn)別名,如果有則將它們合并。2.識別屬性屬性是描述對象靜態(tài)特征的數(shù)據(jù)項。1)發(fā)現(xiàn)屬性的策略可以與用戶進行交談,提出問題來幫助尋找對象的屬性。例如:(1)如何為對象做一般性的描述?如描述人的姓名、性別、出生日期、身高、體重等。(2)在當(dāng)前問題域,對象還具備哪些特定描述項?如患者的血型、藥物過敏、家族病史等。(3)對象的責(zé)任是什么?在系統(tǒng)中對象還需要了解或提供哪些信息?比如圖書館要實現(xiàn)催還功能,則需要定義借書日期和期限。(4)對象需要長期保存哪些信息?比如患者病歷中需要保存以往的就診資料。(5)對象可能處于什么狀態(tài)?比如出租物品有在庫、出租、維修三個狀態(tài)。系統(tǒng)分析員可以根據(jù)自己的經(jīng)驗問更多的問題。在對象分類后,為了實現(xiàn)類的關(guān)系和對象關(guān)聯(lián),還會增加一些屬性。2)屬性的檢查屬性的檢查包括下列內(nèi)容:(1)屬性名是否清楚而且可以讓人理解?與對象命名一樣,屬性名稱也必須符合問題空間的使用習(xí)慣,不能含糊不清。(2)該屬性是否能在系統(tǒng)責(zé)任中發(fā)揮用途?如果一個屬性在系統(tǒng)中脫離主題,不參與任何操作,應(yīng)標(biāo)記刪除。但也可以考慮暫時保留,經(jīng)過多輪分析設(shè)計后仍然發(fā)現(xiàn)無用再舍棄。(3)是否存在可導(dǎo)出的屬性?比如最簡單的情況,年齡可以由出生日期導(dǎo)出。除非導(dǎo)出算法很復(fù)雜或有特別的需要,否則就予以舍棄。3)屬性的說明對于每一個屬性需要說明以下內(nèi)容:(1)屬性的名稱和解釋。有些屬性是專業(yè)術(shù)語,晦澀難懂;有些常用詞語在特定環(huán)境下其字面含義有所修改。為了提高清晰度,需要對這些屬性進行定義。(2)屬性的數(shù)據(jù)類型。例如整數(shù)、實數(shù)、字符串、日期、數(shù)組、指針等。(3)屬性所體現(xiàn)的關(guān)聯(lián)。如果屬性用來描述對象與對象之間的關(guān)聯(lián),則需要說明是什么關(guān)聯(lián)。(4)其他要求。例如取值范圍、缺省值、存取限制(公有、受保護、私有)等。3.識別服務(wù)服務(wù)是描述對象動態(tài)特征(行為)的一個操作序列。定義服務(wù)是分析與設(shè)計中極其重要的工作,也是最困難的工作,至今還沒有總結(jié)出很科學(xué)的方法。這項工作主要由開發(fā)人員來完成,用戶從側(cè)面提供幫助。1)發(fā)現(xiàn)服務(wù)的策略給對象分配什么行為主要取決于對象在用例實現(xiàn)中擔(dān)當(dāng)?shù)慕巧?,但也還有其他有效的啟發(fā)方法:(1)考慮對象在系統(tǒng)中的可見行為,如門診系統(tǒng)中患者自己排隊掛號,醫(yī)生給患者寫處方。(2)分析用例應(yīng)該由哪些對象來提供實現(xiàn),這些對象各自完成哪些任務(wù),對象之間是否存在消息連接,它們是如何發(fā)送消息和接收消息并響應(yīng)的。(3)分析對象主要的狀態(tài),狀態(tài)的轉(zhuǎn)換是由什么操作引發(fā)的,在特定狀態(tài)下對象允許什么樣的行為。(4)分析系統(tǒng)會有哪些事件,哪些對象對事件有響應(yīng)。如發(fā)生庫存缺貨事件,庫存需要打印缺貨單,訂貨員開始訂貨。2)服務(wù)的說明服務(wù)的詳細說明包括以下幾個方面:(1)服務(wù)的名稱與解釋;(2)服務(wù)的接口格式(參數(shù)表、返回類型);(3)內(nèi)部消息發(fā)送情況(需要請求哪些其他對象的服務(wù));(4)約束條件(什么情況下執(zhí)行,執(zhí)行后的狀態(tài))。4.對象分類類是一組具有相似特征的對象。要建立既符合實際問題又易于實現(xiàn)的類,應(yīng)該在識別了對象之后,結(jié)合其屬性和服務(wù)對對象類做進一步的檢查或調(diào)整。如果類只有一個屬性,或者只有一個服務(wù),則可以考慮適當(dāng)?shù)臍w并。屬性及服務(wù)相同的類,也應(yīng)合并,并重新命名。屬性和服務(wù)相似的類,可以考慮抽象出它們的共性,采用一般—特殊結(jié)構(gòu),比如錄像品商店中“錄像帶”和“錄像機”作為出租物品,有很多相似的屬性和服務(wù),可以定義成一個抽象類——“出租目錄”和兩個特殊類——“錄像帶”和“錄像機”。如圖11.16所示。圖11.16一般—特殊結(jié)構(gòu)如果類A具有類B的全部屬性和服務(wù),而且具有自己特有的某些屬性或服務(wù),則A叫做B的特殊類,B叫做A的一般類。這種關(guān)系很多書中稱為一般—特殊關(guān)系或繼承關(guān)系或泛化關(guān)系。繼承關(guān)系中,特殊類中不用再重復(fù)定義一般類出現(xiàn)的屬性或服務(wù),可以簡化模型,有效反映問題空間的分類層次。其表示方法如圖11.16所示。5.識別對象關(guān)聯(lián)一個系統(tǒng)中的對象或類相互是有關(guān)聯(lián)的。數(shù)據(jù)庫理論的實體關(guān)系圖(E-R圖)就基本表達了這種關(guān)聯(lián)。面向?qū)ο蠓治雠c設(shè)計繼續(xù)將這種關(guān)聯(lián)的概念加以擴充和豐富,形成了明確的定義和表示法。關(guān)聯(lián)表示不同類的對象之間的結(jié)構(gòu)關(guān)系,它在一段時間內(nèi)將多個類的實例連接在一起。關(guān)聯(lián)可由關(guān)聯(lián)名稱、角色、多重性和導(dǎo)向性來說明。(1)關(guān)聯(lián)名稱。關(guān)聯(lián)名稱應(yīng)該反映該關(guān)系的目的,并且應(yīng)該是一個動詞詞組。在關(guān)聯(lián)圖中,關(guān)聯(lián)名稱應(yīng)放置在關(guān)聯(lián)路徑上或其附近。在大多數(shù)情況下,只要這種關(guān)聯(lián)的含義對于開發(fā)人員和用戶都是非常明確的,則可以省略這些名字。(2)角色(role)。關(guān)聯(lián)路徑的兩端為角色。角色規(guī)定了類在關(guān)聯(lián)中所起的作用。每個角色都必須有名稱,而且對應(yīng)一個類的所有角色名稱都必須是惟一的。角色名稱應(yīng)該是一個名詞,能夠表達被關(guān)聯(lián)對象的角色與關(guān)聯(lián)對象之間的關(guān)系。角色名稱緊鄰關(guān)聯(lián)線的末端。例如,一個銀行貸款系統(tǒng)中貸款和客戶之間存在這種關(guān)聯(lián):某客戶申請貸款,該貸款的擔(dān)保人是某客戶,客戶在其中擔(dān)任了兩種角色,如圖11.17所示。圖11.17對象擔(dān)任兩種角色(3)多重性(multiplicity)。對于每個角色,都可以指定其類的多重性,即該類的多少個對象可以與另一個類的一個對象相關(guān)聯(lián)。多重性由角色上的表達式指出。表達式是一個由逗號隔開的整數(shù)范圍列表。一個整數(shù)范圍由一個整數(shù)下限、兩個圓點和一個整數(shù)上限來表示,單個整數(shù)也是有效的范圍。符號“*”等價于“0..*”,含義是指包括零在內(nèi)的任何數(shù),即對象的數(shù)量不受限制。比如圖11.17中:一個客戶只能有一個貸款賬戶,一個貸款賬戶只能對應(yīng)一個客戶;一個貸款賬戶可能有0或1個擔(dān)保人,一個客戶可以為0個或多個貸款做擔(dān)保。(4)導(dǎo)向性(navigation)。角色的導(dǎo)向性特征表示可以通過關(guān)聯(lián)從關(guān)聯(lián)類導(dǎo)向到目標(biāo)類上。導(dǎo)向性用箭頭表示,該箭頭置于關(guān)聯(lián)連接的目標(biāo)端,緊靠目標(biāo)類(即所導(dǎo)向的類)。如果沒有箭頭,就認(rèn)為是雙向?qū)?bi-directionanavigation)或是一個未知的導(dǎo)向,究竟是哪一種開發(fā)者應(yīng)明確。通常情況下,我們在做分析的時候可以沒有導(dǎo)向表示,但逐步設(shè)計到實現(xiàn)技術(shù)時就會很自然地加入導(dǎo)向,這樣對類的屬性和服務(wù)就需要做進一步的細化,以表達出對象之間的關(guān)聯(lián)特性。兩個對象實例之間的連接,本身可以擁有自己的性質(zhì)或?qū)傩?。比如一個交易是買方和賣方的關(guān)聯(lián),而交易本身可以有產(chǎn)品名稱、數(shù)量、價格、日期等,這些屬性是屬于交易自身的特征,而非買方或賣方的特征。我們可以把這種連接看成是一個對象的實例。該對象就是關(guān)聯(lián)類。關(guān)聯(lián)類反映了對象之間的關(guān)聯(lián)。它具有類的特征(例如屬性、操作和關(guān)聯(lián))。它用一條從關(guān)聯(lián)路徑到類符號的虛線表示,其中類符號包含此關(guān)聯(lián)的屬性、操作和關(guān)聯(lián)。這些屬性、操作和關(guān)聯(lián)適用于原始關(guān)聯(lián)本身。關(guān)聯(lián)類最常見的用途是協(xié)調(diào)多對多關(guān)系(一個買方從多個賣方購買商品,一個賣方可以供貨給多個買方)。原則上,關(guān)聯(lián)和關(guān)聯(lián)類的名稱應(yīng)該是一致的,但是在必要情況下,也可使用不同的名稱。圖11.18是買方和賣方的關(guān)聯(lián)類設(shè)計。圖11.18關(guān)聯(lián)類如果對象a是對象b的一個組成部分,則稱b為a的整體對象,a為b的部分對象,兩個對象對應(yīng)的關(guān)聯(lián)形式稱為整體—部分關(guān)聯(lián)。這種結(jié)構(gòu)可以用b“has”a進行驗證。整體—部分關(guān)聯(lián)是關(guān)聯(lián)中使用較頻繁的一種模式,用于對模型元素之間的組裝關(guān)系進行建模。整體—部分關(guān)聯(lián)使用連接線和菱形表達,菱形一端的對象是整體對象。整體—部分關(guān)聯(lián)有兩種類型,它們是:①聚集關(guān)聯(lián)(objectaggregationassociation):描述整體—部分的關(guān)系。如圖19.19(a)所示,關(guān)聯(lián)路徑的末端有一個空心菱形,用來表示聚集關(guān)系。圖11.19整體—部分關(guān)聯(lián)②組成關(guān)聯(lián)(objectcompositionassociation):

組成是一種聚合形式,它具有很強的歸屬關(guān)系,而且部分端與聚合體的生存期恰巧相同(運行期間同時創(chuàng)建、同時釋放)。整體端的多重性數(shù)量不會超過1(即它無法被多個整體對象共享)。這種聚合也是不可變更的,也就是說,一旦建立組成關(guān)系,就無法更改它的鏈接,即一個部分對象只能屬于一個整體對象且不可改變。比如病人的每次就診記錄必定是在該病人的病歷中,一旦病歷撤消,就診記錄就不復(fù)存在。如圖19.19(b)所示,關(guān)聯(lián)路徑的末端有一個實心菱形,用來表示組裝關(guān)系。6.構(gòu)建邏輯模型——類圖在分析了系統(tǒng)所有的類,確定了類的屬性和服務(wù),以及類及其對象之間的關(guān)系后,可以建立系統(tǒng)的邏輯模型——類圖。類圖顯示了整個系統(tǒng)的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等。類圖由類、繼承、關(guān)聯(lián)、聚集或組成等模型元素組成。每個類應(yīng)至少顯示在一個類圖中。在UML中,類圖所用到的模型元素介紹如圖11.20所示。圖11.21顯示了門診系統(tǒng)類圖的部分內(nèi)容,它主要包含了掛號用例所涉及的類。圖11.20類圖的模型元素圖11.21門診系統(tǒng)的類圖11.2.6交互圖前面討論了對象的靜態(tài)設(shè)計和模擬,現(xiàn)在把焦點轉(zhuǎn)向?qū)ο蟮膭討B(tài)模擬,集中分析對象是如何相互作用、交換消息來實現(xiàn)功能目標(biāo)的。這些動態(tài)行為,可以用交互圖(順序圖和協(xié)作圖)進行記錄。交互圖的作用是:對照檢查每個用例的用戶需求是否已經(jīng)落實到一些對象中實現(xiàn)。如果沒有,則提醒分析員補充類或服務(wù),修正提煉邏輯模型,使其品質(zhì)愈來愈強;為各類人員有效理解系統(tǒng)的行為關(guān)系提供輔助,尤其對編程人員和維護人員來說,它是工作的必要文檔。多數(shù)情況下,可以用一個或多個順序圖來闡明實現(xiàn)用例的對象交互過程。順序圖描述在參與交互的對象中所發(fā)生的事件(從激活的角度來說明),以及這些對象如何通過相互發(fā)送消息進行通信,如圖11.22所示。順序圖的基本元素有對象、執(zhí)行者實例和消息。1)對象對象被表示為叫做“生命線”的垂直虛線。生命線上的矩形表示對象在特定時間的存在(生存期)。對象符號被描繪在生命線的頂端,所顯示的對象及其類的名稱帶有下劃線,二者用冒號分隔:對象名:類名。2)執(zhí)行者實例作為交互的發(fā)起者,執(zhí)行者實例通常由順序圖中的第一條(最左側(cè))生命線來表示。如果在同一順序圖中有多個執(zhí)行者實例,就應(yīng)盡量使它們位于最左側(cè)或最右側(cè)的生命線。3)消息消息是對象之間的通信,消息傳遞的同時對應(yīng)活動隨之發(fā)生。在順序圖中,消息被表示為從一個對象的生命線到另一個對象的生命線的水平實線箭頭。如果消息從一個對象發(fā)向該對象自身,箭頭的開始位置和結(jié)束位置就可能位于同一條生命線上。箭頭通過消息名稱及消息參數(shù)來標(biāo)記,箭頭的垂直位置表示時間順序(自上至下)。

消息一般對應(yīng)接收方對象響應(yīng)該消息的服務(wù)。在分析不完全時,可以暫時用臨時字符串來描述消息的總體意義,待類的服務(wù)確定后再指定具體的服務(wù)名。如果發(fā)現(xiàn)既有的服務(wù)都不適用,就必須添加新的服務(wù)。圖11.22是門診系統(tǒng)中掛號用例的部分順序圖,其實現(xiàn)步驟是:(1)掛號員要增加一個新的掛號單,由掛號單對象的增加操作來完成。掛號單對象首先通知掛號限額表取出一個指定條件的號;(2)掛號限額表的取號過程:先通過掛號明細表提供的取號操作取出當(dāng)天退還的號重復(fù)使用,如果掛號明細表取號操作返回為空(說明沒有退號可用),則在限額內(nèi)產(chǎn)生一個新號給掛號明細表,掛號明細表將該號增加到明細表中;(3)根據(jù)號型由掛號類型表返回該號的價格,最后全部寫到掛號單中;(4)掛號單確認(rèn)后,由打印操作將該掛號單打印出來。以上描述的是窗口掛號的順序圖,網(wǎng)上掛號的順序圖與之類似,但打印操作與掛號操作是分離的,由不同的執(zhí)行者來完成。圖11.22門診系統(tǒng)掛號的順序圖11.3原型法原型法(prototypingapproach)的基本思想是:在投入大量的人力、物力之前,在限定的時間內(nèi),用最經(jīng)濟的方法構(gòu)造一個系統(tǒng)原型,使用戶盡早看到未來系統(tǒng)的概貌,在系統(tǒng)原型的實際運行中與用戶一起發(fā)現(xiàn)問題,提出修改意見,不斷完善原型,使它逐步滿足用戶的要求。11.3.1原型法的基本步驟用原型法開發(fā)信息系統(tǒng)可以分為四個階段:1.明確用戶的基本信息需求這一階段不像結(jié)構(gòu)化方法那樣詳細定義用戶需求,而是在幾天或幾個星期內(nèi)分析用戶的主要功能要求和實現(xiàn)這些要求的數(shù)據(jù)規(guī)范、報告格式、屏幕要求。這個階段不產(chǎn)生對外的正式文件,但對規(guī)模較大的系統(tǒng),應(yīng)準(zhǔn)備一個初步需求文件。2.建立初始原型借助軟件開發(fā)工具,在兩星期內(nèi)制作一個初始原型。這個原型只要求滿足第一階段提出的基本要求,是一個可以實際運行的系統(tǒng)。構(gòu)成原型要注意兩個原則:(1)集成原則,盡可能用現(xiàn)成軟件和模型來構(gòu)成,這需要相應(yīng)的工具;(2)最小系統(tǒng)原則,耗資一般不超過總投資的10%,但能反映系統(tǒng)的基本特性,并能擴充完善。3.評價原型用戶在開發(fā)人員協(xié)助下,運行原型系統(tǒng),評價系統(tǒng)的優(yōu)點和不足,進一步明確用戶要求,提出修改原型系統(tǒng)的具體意見。4.修改和完善原型根據(jù)用戶的意見,盡快修改原型系統(tǒng),并交給用戶運行。上述工作流程如圖11.23所示,第三、四步是反復(fù)進行的,直到用戶和開發(fā)人員滿意為止。圖11.23原型法的工作流程11.3.2原型法的優(yōu)缺點原型法有以下優(yōu)點:(1)增進用戶與開發(fā)人員之間的溝通。傳統(tǒng)的開發(fā)方法中,用戶主要靠閱讀大量的文件了解系統(tǒng),然后向系統(tǒng)分析員表達他們對系統(tǒng)需求的意見。原型法展示給用戶的是可以實際運行的原型系統(tǒng),用戶“看得見,摸得著”,可以很清楚地把他們的意見告訴給系統(tǒng)分析員。(2)用戶主導(dǎo)系統(tǒng)開發(fā)過程。結(jié)構(gòu)化方法強調(diào)了面向用戶的觀點,但用戶實際參與較多的是系統(tǒng)分析階段。而采用原型法進行系統(tǒng)開發(fā),用戶在整個開發(fā)過程中起主導(dǎo)作用,他隨時提供使用現(xiàn)場的第一手資料,幫助開發(fā)者認(rèn)識用戶的真正需求。(3)辨認(rèn)動態(tài)的用戶需求。我們知道,系統(tǒng)分析的困難之一是用戶與開發(fā)者之間缺乏溝通,尤其是一些動態(tài)需求不容易用語言文字來描述??梢詫嶋H運行的系統(tǒng)原型有助于發(fā)掘、澄清和驗證這類不易用一般語言來規(guī)范交談的動態(tài)需求。

(4)辨認(rèn)衍生式的用戶需求。在系統(tǒng)投入運行之前,有些功能用戶也無法預(yù)先知道。復(fù)印機剛發(fā)明時,人們曾認(rèn)為其功能只是代替復(fù)寫紙。人們在使用實踐中認(rèn)識到遠非如此,復(fù)印機才得以有今天這么廣泛的應(yīng)用。信息系統(tǒng)也有類似情況。衍生式的需求是指當(dāng)系統(tǒng)投入運行之后,用戶有了使用經(jīng)驗而提出的需要。在整個開發(fā)過程中,原型系統(tǒng)可以啟發(fā)用戶提出這些衍生的新需求,并把這些需求告訴開發(fā)者。決策支持系統(tǒng)就常有這類需求,適合用原型法進行開發(fā)。(5)縮短開發(fā)周期,降低開發(fā)風(fēng)險。原型法以用戶為主導(dǎo),能更有效地辨認(rèn)用戶需求,不僅使系統(tǒng)分析的時間大為縮短,而且減少了開發(fā)人員對用戶需求的誤解,從而降低了系統(tǒng)開發(fā)的風(fēng)險。原型法也有不足之處。原型法不如結(jié)構(gòu)化生命周期法成熟和便于管理控制。原型法需要有自動化工具加以支持。由于用戶的大量參與,也會產(chǎn)生一些新的問題,需要雙方的全力合作才能克服這些困難。原型的開發(fā)者在修改過程中容易偏離原型的目標(biāo)。使用者在看到原型的功能逐步完備之后,以為原型的性能可以聯(lián)機使用了,而忽視了原型對實際環(huán)境的適應(yīng)性、系統(tǒng)的安全性、可靠性等的要求,直接將原型系統(tǒng)轉(zhuǎn)換成最終產(chǎn)品。這種過早交付產(chǎn)品的結(jié)構(gòu),雖然縮短了系統(tǒng)開發(fā)時間,但損害了系統(tǒng)質(zhì)量,增加了維護代價。由上面的分析可以看出,原型法的優(yōu)點主要在于能更有效地辨認(rèn)用戶需求。對于分析層面難度大、技術(shù)層面難度不大的系統(tǒng),適合于用原型法開發(fā)。而對于技術(shù)層面的困難遠大于其分析層面的系統(tǒng),則不宜用原型法。一般在系統(tǒng)設(shè)計中將原型法與結(jié)構(gòu)化生命周期法結(jié)合起來使用,用原型法進行需求分析,以經(jīng)過修改、確定的原型系統(tǒng)作為系統(tǒng)開發(fā)的依據(jù),在此基礎(chǔ)上完善系統(tǒng)說明書。11.4軟系統(tǒng)方法11.4.1軟系統(tǒng)方法論結(jié)構(gòu)化方法和面向?qū)ο蠓椒ǘ紝儆谙到y(tǒng)工程學(xué)方法。系統(tǒng)工程學(xué)方法的核心是,認(rèn)為有一類重要的現(xiàn)實世界問題能夠由這樣的方式表示:存在一個目標(biāo)狀態(tài)S1

和一個當(dāng)前狀態(tài)S0,并且有各種方式從S0到達S1。按照這種觀點,“問題求解”的步驟為:定義S0和S1,并選擇最好的方法減少兩者的差距。(S1—S0)定義了“需求”或要達到的目標(biāo),如圖11.24所示?,F(xiàn)實世界的問題能以這種方式表述,是所有“硬”系統(tǒng)思想的根本特征。從20世紀(jì)50年代以來,系統(tǒng)方法論的文獻一直堅持必須定義需求,說明要達到的目標(biāo)及設(shè)計好的系統(tǒng)要完成的任務(wù)等等。結(jié)構(gòu)化方法和面向?qū)ο蠓椒ㄓ幸粋€共同點:在研究的初始階段必須知道并陳述系統(tǒng)目標(biāo),然后再用系統(tǒng)思想指導(dǎo)我們選擇一種有效的方法來達到目的。這種觀點構(gòu)成了“硬”系統(tǒng)思想的基礎(chǔ)。由于系統(tǒng)工程源于工程學(xué)和工程經(jīng)濟的領(lǐng)域,所以這也是不可避免的。圖11.24問題求解步驟這種觀點對設(shè)計工程師來說是自然的。設(shè)計工程師面臨的是一個構(gòu)造性的問題:目標(biāo)狀態(tài)與當(dāng)前狀態(tài)之間有著差距,問題是怎樣跨越這個差距。對于一個職業(yè)工程師來說,需要和目標(biāo)是要在求解問題之初給出的。他們的任務(wù)是為滿足這一特定需求提供一種有效的方法。設(shè)計工程師在這種情景中練就其職業(yè)風(fēng)格:需求明確以后,必須認(rèn)真考慮的是怎樣才能滿足需求。設(shè)計工程師的技能和資質(zhì)都是為“怎樣做”提供巧妙答案。最好的設(shè)計工程師是提出最便宜、最有效和最巧妙答案的人。比如,首先設(shè)計出拱形結(jié)構(gòu)橋的人就是好的設(shè)計工程師。以前的梁承結(jié)構(gòu)橋需要密集的、互相隔開的支柱。相比之下,拱橋方案顯然更便宜、更精致和更有效。系統(tǒng)工程和系統(tǒng)分析無疑把系統(tǒng)的合理性(systematicrationality)引進了人類決策的一個重要領(lǐng)域。這個領(lǐng)域的問題,是在一系列候選方案中選擇一個有效的方法達到我們所知道并希望達到的目的。這種成功使人們嘗試著把該方法論運用于不同種類的問題。事實上,許多人都嘗試過,把“硬”系統(tǒng)思想應(yīng)用到比工程和國防經(jīng)濟問題“軟”得多的問題中去,從“公共決策”或所謂“政策科學(xué)”到制定公共政策。對“硬”系統(tǒng)思想在“軟”問題中的應(yīng)用的看法可歸納如下:(1)工程師的傳統(tǒng)思想是設(shè)想他的行動是在接受一個要求完成的任務(wù)的說明開始的。然后根據(jù)他的實際經(jīng)驗回答“怎樣做”的問題。(2)早期的系統(tǒng)分析采用的是“需求分析的方法”。該方法定義一種需要并對滿足該需要的各種方式進行經(jīng)濟的或成本與效益的系統(tǒng)性分析。這里所面對的問題仍然是“怎樣做”而不是“做什么”。

(3)這種傳統(tǒng)意識到需要問題假定。這種傳統(tǒng)中的“工藝”包含必須定義目標(biāo),找到并比較達到目標(biāo)的有效方法。(4)這個假定在工程和國防應(yīng)用領(lǐng)域中得到了證實,但卻很難應(yīng)用于更為廣泛的管理問題中。選擇一種方法達到某一明確目標(biāo)僅僅是管理決策的很小一部分。大多數(shù)管理問題,特別是那些公共事務(wù)部門的問題,都不能以這種方式表達為“硬”問題。如果為這個意義上的“硬”問題所設(shè)計的方法論,能完整地移植到以不能精確定義目標(biāo)為特征的“軟”問題中,才是一件奇怪的事。(5)到20世紀(jì)70年代,系統(tǒng)分析所面臨的這一困難被認(rèn)識到,但未能得到解決。以上這5點討論是為了理智地陳述一個至今仍然包含許多情緒性討論的問題。這涉及到反技術(shù)思潮。當(dāng)系統(tǒng)工程師、系統(tǒng)分析家和運籌學(xué)家們終于認(rèn)識到他們那種系統(tǒng)性的理性在現(xiàn)實世界問題中的局限性時,西方已存在著強烈反對整個技術(shù)觀念的思潮。它的核心思想是技術(shù)中的科學(xué)思想的專制促進了人性的泯滅,并使我們的個性服從于技術(shù)。軟系統(tǒng)方法論的目標(biāo)是產(chǎn)生一種能使用系統(tǒng)觀點來處理軟的、無良好結(jié)構(gòu)問題的方法。它的目的也包括要找到更多關(guān)于這類問題的描述。對于社會系統(tǒng)中的問題,問題的提出本身是難以把握的。什么是“一個問題”,這個問題本身就成了要研究的一部分。有時難于提出問題,有時又覺得有問題但不能確定問題是什么,如果能說出問題是什么來,也就可以自己去解決它。要處理的是現(xiàn)實世界的管理者所面臨的實際問題,其成功的標(biāo)準(zhǔn)是有關(guān)人員感到問題已被“解決”,或問題情景已經(jīng)改善,或獲得了洞察力。為簡潔起見,這里把軟系統(tǒng)方法論表示為圖解的形式。圖11.25表示一個從1到7的時間序列,這只是一種便于描述的邏輯順序。例如,有可能從階段4開始一個方案,因為原則上起點可以放在任何地方。有時返工和重復(fù)也是必要的。事實上,方法論的最有效的使用者是那些能夠把它作為一個框架,把目的性活動置于其中進行系統(tǒng)研究的人,而不是那些把它作為一份菜譜使用的人。在實際研究中,最有效的系統(tǒng)思想者將在不同的細節(jié)層次上,在幾個階段同時工作。方法論本身是一個系統(tǒng),即前面章節(jié)中所描述的那種人工抽象系統(tǒng),該系統(tǒng)中任何一個階段的變化都會影響到其他階段。圖11.25軟系統(tǒng)方法論梗概方法論包含兩種類型的活動。階段1、2、5、6、7是“現(xiàn)實世界”的活動,必須包括問題情景中的人。階段3、4、4a、4b是“系統(tǒng)思想”活動,是否包括問題情景中的人取決于具體的研究情景。一般說來,前一類型活動的語言可以是問題情景中的任何規(guī)范的語言,因為在這一階段,現(xiàn)實世界的高度復(fù)雜性通過翻譯成更高層次的系統(tǒng)論的語言(或元語言)而得到闡明和理解。階段1和階段2是“表達”階段,即建立盡可能多的問題情景(problemsituation),在問題情景中感到有問題。階段3包括命名一些看起來可能與假設(shè)的問題相關(guān)的系統(tǒng),并簡明地定義這些系統(tǒng)是什么,目的是得到一個對某些系統(tǒng)性質(zhì)的簡潔清楚的陳述。這些系統(tǒng)日后可能被看出與改善問題情景有關(guān)。這當(dāng)然不是固定的,隨著理解的加深,該陳述隨時都可以進行反復(fù)的修改。階段3的這些定義被稱之為“根定義”(RootDefinition),旨在表明它囊括了選出的系統(tǒng)的基本性質(zhì)。給出這個定義之后,階段4的任務(wù)是構(gòu)造在根定義中得到命名和定義的人類活動系統(tǒng)的概念模型(ConceptuaModel)。構(gòu)造模型的語言要求非常簡單,但卻是細致的和有力的。構(gòu)造模型的活動由4a和4b加以促進和補充:4a是運用一般人類活動系統(tǒng)的模型來檢查所構(gòu)造的模型是否有根本缺陷;4b的任務(wù)則是修改模型,如果有必要,把模型轉(zhuǎn)變?yōu)槠渌m于特定問題的形式。例如,用系統(tǒng)動力學(xué)的語言重新表述可能更為恰當(dāng),或者把它重新表述為一個“社會—技術(shù)系統(tǒng)”。硬、軟兩種方法論的主要差別是:前者把問題和需求當(dāng)作是“給定的”,因而一開始提出的問題是:“設(shè)計什么系統(tǒng)來解決問題?”或者“什么系統(tǒng)將滿足這個需要?”而后者卻不得不允許后面的階段出現(xiàn)完全不可預(yù)料的回答。這樣,軟方法論包含了比較階段,而硬方法論沒有相應(yīng)的階段。在比較階段,系統(tǒng)思想為關(guān)于變革的討論提供了一個框架。而硬方法論此時忙于實施設(shè)計好的系統(tǒng)。關(guān)于武器系統(tǒng)的蘭德式的系統(tǒng)分析,其結(jié)果是產(chǎn)生一個具體的武器系統(tǒng),但運用軟系統(tǒng)方法論分析,則可能建議裁軍、讓步或政治協(xié)商,當(dāng)然也可能是具體的武器系統(tǒng)。撇開這種主要區(qū)別,軟系統(tǒng)方法論可以看作一般情形,而硬方法論是其中的一種特例。如果討論的問題有足夠的良好定義,則概念化就成了系統(tǒng)設(shè)計,“改善概念模型”轉(zhuǎn)化為“優(yōu)化定量模型”,實施某些變革就成為實施一個設(shè)計好的系統(tǒng)。11.4.2軟系統(tǒng)方法論在信息系統(tǒng)建設(shè)中的應(yīng)用1.多視點方法的目標(biāo)這一節(jié)介紹的方法稱為多視點(multiview)方法。這種方法以軟系統(tǒng)方法論為指導(dǎo),綜合了20世紀(jì)70年代以來幾個重要方面的研究成果,把人類活動系統(tǒng)分析,社會—技術(shù)系統(tǒng)觀點與數(shù)據(jù)分析、結(jié)構(gòu)化分析結(jié)合起來,為信息系統(tǒng)開發(fā)創(chuàng)立了一個理論框架。這種方法充分考慮所有系統(tǒng)使用者的不同觀點,有助于回答下列五個問題:(1)擬建的信息系統(tǒng)如何促進組織目標(biāo)的實現(xiàn)?(2)它能適應(yīng)組織中使用者的工作過程嗎?(3)有關(guān)人員能很好地操作計算機和使用它的輸出嗎?(4)系統(tǒng)完成哪些信息處理功能?(5)系統(tǒng)的技術(shù)要求是什么?多數(shù)計算機專家,程序員和技術(shù)系統(tǒng)分析員主要關(guān)心第五個問題。大多數(shù)工作在已開發(fā)的大型系統(tǒng)的人對第四個問題最感興趣。市面上大量的書籍是有關(guān)計算機硬件和程序設(shè)計方面的,有關(guān)信息模型的技術(shù)書籍也在增加。在學(xué)院里,多數(shù)計算機系的教學(xué)圍繞著這兩個方面。這也許完全適合于這些方面的計算機專家,但是,對這兩個問題的正確回答,還不足以保證信息系統(tǒng)的成功。第三個問題與人—機界面有關(guān),這里將較詳細地談?wù)撨@個問題。工會關(guān)心第二個問題。企業(yè)主管始終關(guān)心第一個問題,不幸的是許多資深的經(jīng)理為之困惑。他們不是不懂建議中的行話,就是對其中的推銷說辭多于實質(zhì)內(nèi)容感到失望。許多經(jīng)理缺乏駕馭信息技術(shù)的培訓(xùn)。信息系統(tǒng)常被視為有行為和社會結(jié)果的技術(shù)系統(tǒng),這種看法過于狹隘。把信息系統(tǒng)看作日益廣泛地應(yīng)用信息技術(shù)的社會系統(tǒng)更為恰當(dāng)。技術(shù)僅是它的一個成分。要更廣泛透視信息系統(tǒng),需要識別信息系統(tǒng)項目中一系列利益相關(guān)者,包括新系統(tǒng)的需求者和授權(quán)者,負(fù)責(zé)信息系統(tǒng)相關(guān)部門的經(jīng)理,應(yīng)用系統(tǒng)的工作人員,建立和維護系統(tǒng)的計算機人員,以及系統(tǒng)外的用戶(例如收到計算機輸出的發(fā)票和表格的顧客)。多視點方法的主要目標(biāo)之一就是幫助他們互相溝通,明確需求,提出建議。由于他們看問題的角度不同,要實現(xiàn)這一目標(biāo)并不容易。多視點方法的實施,通常從顧問與總經(jīng)理討論項目安排開始。他們要回答上述第一個問題:組織投資信息技術(shù)希望實現(xiàn)什么目標(biāo)?是減少書面工作,減少人員及其他成本,還是獲得更有見識的決策?這個階段還要研究所定的目標(biāo)是否可行,擬建的計算機信息系統(tǒng)是不是實現(xiàn)目標(biāo)的最好途徑。答案也許是重新考慮目標(biāo),改善手工操作,繼續(xù)進行有關(guān)計算機化的研究,也可能要求在計算化的同時,或者在此之前,要改善現(xiàn)存系統(tǒng)。在這之后,分析員找出需要收集和處理的信息,以及需要完成的信息處理功能。完成上述階段的工作,不需要數(shù)據(jù)庫管理系統(tǒng)、軟件包等專門的計算機技術(shù)知識。通過這些工作,分析員明白了系統(tǒng)的需求,可以與供應(yīng)商洽談采購計算機系統(tǒng)的事宜,從人文和技術(shù)角度對計算機系統(tǒng)提出要求,適宜的定價和服務(wù)支持。若公司有自己的數(shù)據(jù)處理部門,則技術(shù)分析員和程序員可以根據(jù)需求說明書建設(shè)合適的系統(tǒng)。若購買或建設(shè)這樣一個系統(tǒng)有困難,則需要對某些階段再次研究。由于具體情況不同,多視點方法的實施可以有很大的差別。目標(biāo)是否清楚確定,用戶實際參與程度,情況復(fù)雜程度,管理類型和觀點,這些因素都會影響項目進程。從這一角度看,多視點方法是開發(fā)信息系統(tǒng)的一種探索方法。2.多視點方法的輪廓一般來講,這種方法包括五個階段,每個階段都有相應(yīng)看問題的觀點和處理相應(yīng)問題的方法。這五個階段是:(1)人類活動系統(tǒng)分析;(2)信息分析(也稱為信息模型化);(3)社會—技術(shù)分析與設(shè)計;(4)人—機界面設(shè)計;(5)技術(shù)方面設(shè)計。這五個階段的內(nèi)部聯(lián)系如圖11.26所示。圖中,方框表示分析階段,橢圓表示設(shè)計階段,箭頭表示內(nèi)部關(guān)系,某個階段的輸出可能為其隨后階段所用,其余輸出用虛線箭頭表示。這些輸出提供的信息如表11.3所列。圖11.26多視點方法的輪廓表11.3產(chǎn)生的輸出提供的信息輸出信息社會方面它將對我有什么影響?角色集合我的工作有變化嗎?有什么變化?人的任務(wù)我必須做什么?人—機界面我怎樣用計算機工作?輸入、輸出是什么?數(shù)據(jù)庫包括哪些數(shù)據(jù)?數(shù)據(jù)庫維護我怎樣維護數(shù)據(jù)的完整性?恢復(fù)出錯時會發(fā)生什么情況?監(jiān)測系統(tǒng)是否按規(guī)定執(zhí)行?控制怎樣保證安全和保密?刪除什么錯誤?信息檢索我將獲得什么信息?應(yīng)用系統(tǒng)將做什么?非應(yīng)用領(lǐng)域必需的輸入/輸出對計算機子系統(tǒng)有無其他影響?3.多視點方法的簡明表達多視點方法也可以用圖11.27表達。這種方法更簡明,但更能把握討論的全局。它從外往里反映信息系統(tǒng)開發(fā)的進程;從里往外,焦點擴充,增加對問題情景及其有關(guān)技術(shù)、人文特點的理解。它共分為五個階段,每一個階段突出一個問題:圖11.27多視角方法的簡明圖問題1:信息系統(tǒng)如何推進組織目標(biāo)?問題2:它能適應(yīng)使用者的工作過程嗎?問題3:有關(guān)人員能很好地操作并使用它的輸出嗎?問題4:系統(tǒng)完成哪些信息處理功能?問題5:滿足需求的系統(tǒng),其技術(shù)要求是什么?1)人類活動分析階段這一階段的中心問題是尋求一種特別的觀點(即“維特沙”:Weltanschauung,有時也稱為假設(shè)、世界觀)。這種觀點形成描述系統(tǒng)需求的基礎(chǔ),并將推進后續(xù)階段。這種觀點可以通過討論組織機構(gòu)的主要宗旨,從問題情景中抽取?!肮镜哪繕?biāo)是獲得最大的長期利潤”,“醫(yī)院追求最高護理水平”是這種觀點的兩個例子。這個階段可以分成4個子階段,10個步驟:(1)理解問題情景(步驟1~3);(2)構(gòu)建系統(tǒng)模型(步驟4~7);(3)比較系統(tǒng)模型與現(xiàn)實(步驟8);(4)決策與執(zhí)行(步驟9和10)。圖11.28是人類活動分析的簡要說明。有幾處可能出現(xiàn)反復(fù),圖中沒有畫出。例如,描繪富圖(richpicture)就是反復(fù)的過程。

圖11.28人類活動分析富圖顯示處理過程的構(gòu)造及相互之間的聯(lián)系。富圖的要素包括系統(tǒng)的客戶、參與的人員、需完成的任務(wù)、環(huán)境、系統(tǒng)的業(yè)主。富圖有助于問題的解決者(系統(tǒng)分析員、項目組)理解問題情景,也便于與業(yè)主討論與交流。繪圖時需要采集資料,對資料進行鑒別和篩選,系統(tǒng)分析員需要與業(yè)主反復(fù)交流,取得他們廣泛的幫助。這通常需要多次反復(fù),直到雙方滿意為止。問題的解決者從富圖抽取問題主題(problemthemes)。這是指圖中可能引發(fā)問題因而值得更加詳細地研究的對象,如兩個部門之間缺乏通信、供應(yīng)不足等。

得出主題之后,問題解決者設(shè)想和命名相關(guān)系統(tǒng)(relevantsystems)。相關(guān)系統(tǒng)使問題主題更明白清晰。例如:問題主題:兩個部門沖突。相關(guān)系統(tǒng):消除沖突系統(tǒng)或重新劃分部門邊界系統(tǒng)。本階段最重要的討論,是比較幾個不同的相關(guān)系統(tǒng),并從中選取最適用的一個。問題解決者與業(yè)主必須決定用什么觀點描述相關(guān)系統(tǒng)。例如消除沖突系統(tǒng)可以描述為“為使沖突最小而采用嚴(yán)格的行為和決策規(guī)則的系統(tǒng)”,也可以描述為“行動者充分加強部門之間通信和理解的綜合決策系統(tǒng)”,甚至還可以描述成“任何把不同意見匯集于中心體而使部門之間的沖突減少到最小的系統(tǒng)”。選定一種特定觀點或根定義(rootdefinition)之后,還要進一步推敲。根定義可以從它必須包括的要素進行分析檢查,例如:系統(tǒng)的業(yè)主是誰?是否包括了全部行動者?系統(tǒng)的受利者、受害者分別是誰?等等。若業(yè)主和問題解決者對得到的根定義都表示滿意,則可以列出覆蓋根定義所規(guī)定系統(tǒng)必不可少的活動的動詞表,構(gòu)建系統(tǒng)的概念模型(conceptuamodel)。根定義描述了系統(tǒng)“是什么”,而

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論