《《系統(tǒng)分析與設(shè)計》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《系統(tǒng)分析與設(shè)計》PPT課件.ppt(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、信息系統(tǒng)分析與設(shè)計10,,北京科技大學(xué)管理學(xué)院 李鐵克,課件總體結(jié)構(gòu),引言 基本概念 信息系統(tǒng)開發(fā)方法論 信息系統(tǒng)分析方法 信息系統(tǒng)設(shè)計方法基礎(chǔ) 結(jié)構(gòu)化分析設(shè)計方法 面向?qū)ο蠓治雠c設(shè)計的基礎(chǔ) UML的基本結(jié)構(gòu)及用例圖 類和對象圖 時序圖和協(xié)作圖 狀態(tài)圖和活動圖 構(gòu)件圖和部署圖,時序圖和協(xié)作圖,動態(tài)建模的一般概念 時序圖 協(xié)作圖,引 言,靜態(tài)與動態(tài)UML圖,引 言,面向?qū)ο蠓椒ǖ娜齻€核心概念,,動態(tài)建模的一般概念,消息 消息是從一個對象到另一個或者幾個其他對象的信息傳遞,簡單地說,消息就是對象與對象、參與者與參與者,或者對象與參與者之間的某種通信方式。 消息可以是一個信號或一次操作調(diào)用,收到消息
2、即為事件。可以有兩種消息,一種是從發(fā)送者向接收者發(fā)送信號,另一種是由調(diào)用者調(diào)用接收者的操作 對象之間的協(xié)作通過相互發(fā)送消息實現(xiàn)。 問題:在程序中消息是什么呢?,圖:順序系統(tǒng)中的消息傳遞,動態(tài)建模的一般概念,動態(tài)建模的一般概念,問題:在程序中運行的是什么呢?,動態(tài)建模的一般概念,進程與線程 進程就是運行中的程序,每個進程都有獨立的代碼和數(shù)據(jù)空間,進程切換的開銷大。 一個線程是一個進程內(nèi)部的順序控制流。不是程序,自己本身不能運行,必須在程序中運行。同一類線程共享代碼和數(shù)據(jù)空間,每個線程有獨立的運行棧和程序計數(shù)器,線程切換的開銷小。,動態(tài)建模的一般概念,多進程與多線程 多進程:在操作系統(tǒng)中,能同時運
3、行多個任務(wù)(程序)。 多線程:在同一應(yīng)用程序中,有多個順序流同時執(zhí)行。,圖:并發(fā)系統(tǒng)中的消息傳遞,動態(tài)建模的一般概念,線程內(nèi)部和控制線程之間傳送的消息的不同用途: 向接收者發(fā)出訪問請求; 向接收者提交數(shù)據(jù); 向接收者發(fā)布通知或事件信息; 向接收者傳遞同步控制信號。,動態(tài)建模的一般概念,三種不同類型的消息 簡單消息(simple):表示消息類型不確定或與類型無關(guān)?;蛘呤且煌较⒌姆祷叵?。 同步消息(synchronous):表示發(fā)送對象必須等待接收對象完成消息處理后,才能繼續(xù)執(zhí)行。 異步消息(asynchronous):表示發(fā)送對象在消息發(fā)送后,不必等待消息處理后,可立即繼續(xù)執(zhí)行。,,,,動
4、態(tài)建模的一般概念,動態(tài)建模的一般概念,問題:在面向?qū)ο蟮哪P椭腥绾伪硎鞠⒛兀?消息連接:消息連接是對象之間行為依賴關(guān)系的表示。 識別和表示消息的主要問題: 對象之間是否存在消息? 消息是同一線程內(nèi)部的還是不同線程之間的? 每一種消息是從發(fā)送者哪個服務(wù)發(fā)出的?由接收者哪個服務(wù)響應(yīng)處理的? 消息是同步還是異步? 發(fā)送者是否等待消息的處理結(jié)果?,動態(tài)建模的一般概念,如何建立消息連接 建立控制線程內(nèi)部的消息連接 基本策略:“服務(wù)模擬” 和“執(zhí)行路線追蹤”; 具體做法:人為地模擬當(dāng)前服務(wù)的執(zhí)行,通過考慮需要請求其它對象的服務(wù)來發(fā)現(xiàn)新消息。并分析該消息的發(fā)送者與接收者在執(zhí)行時是否屬于同一控制線程。,動態(tài)
5、建模的一般概念,如何建立消息連接 建立控制線程之間的消息連接,考慮每個線程: 它在執(zhí)行時是否需要請求其它控制線程中的對象為它提供服務(wù)?由哪個對象發(fā)出?由哪個對象中的服務(wù)處理? 它在執(zhí)行時是否要向其它控制線程中的對象提供或索取數(shù)據(jù)? 它在執(zhí)行時是否將產(chǎn)生對其它控制線程的執(zhí)行有影響的事件? 各個控制線程的并發(fā)執(zhí)行是否要傳遞同步控制信號? 一個控制線程在何種條件下中止執(zhí)行?中止后在何種條件下由其它控制線程用何法喚醒?,動態(tài)建模的一般概念,問題:用什么工具來描述線程中的消息傳遞呢?,時序圖(順序圖),時序圖概述 時序圖描述了對象之間動態(tài)的交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時間順序。 時序圖由一組對象構(gòu)
6、成,每個對象分別帶有一條豎線,稱作對象的生命線,它代表時間軸,時間沿豎線向下延伸。時序圖描述了這些對象隨著時間的推移相互之間交換消息的過程。消息用從一條垂直的對象生命線指向另一個對象的生命線的水平箭頭表示。圖中還可以根據(jù)需要增加有關(guān)時間的說明和其他注釋。,時序圖(順序圖),,,,時序圖(順序圖),時序圖中的要素 時序圖包含的內(nèi)容 1)對象 2)對象生命線 3)消息 4)控制焦點 對象、對象生命線和控制焦點 對象向下方垂直伸展的虛線稱為該對象的生命線 ,表示該對象存在的時間長度; 大“X”標(biāo)記表明生命的結(jié)束; 在生命線上的窄矩形條稱為控制焦點,控制焦點表示該對象正在執(zhí)行某個操作。窄矩形的長度表示
7、操作的持續(xù)時間。,時序圖(順序圖),例:接電話的時序圖,時序圖(順序圖),時序圖(順序圖),例:打印的打印服務(wù)時序,時序圖(順序圖),,,10.1設(shè)計用例實現(xiàn)方案,,例:一般意義的時序圖,有兩種使用順序圖的方式:一般格式和實例格式。 實例格式詳細(xì)描述一次可能的交互。沒有任何條件和分支或循環(huán),它僅僅顯示選定情節(jié)(場景)的交互。 而一般格式則描述所有的情節(jié)。因此,包括了分支,條件和循環(huán)。,順序圖的形式,一般格式的時序圖,時序圖(順序圖),,,,,,,時序圖(順序圖),如何建模時序圖 創(chuàng)建順序圖包含4項任務(wù): 確定需要建模的工作流。 從左到右布置對象。 添加消息和條件以便創(chuàng)建每一個工作流。 繪制總圖
8、以便連接各個分圖。,時序圖(順序圖),確定工作流: 建模時序圖的第一步是確定將要建模的工作流。 思考與討論:考慮一個學(xué)校的教務(wù)管理系統(tǒng),提供一個最基本的功能:教師可以上網(wǎng)查詢學(xué)生分?jǐn)?shù),從這一功能需求中可以抽象怎樣的工作流呢?,時序圖(順序圖),需要至少標(biāo)識出3個要建模的工作流: 教師成功地檢查學(xué)生分?jǐn)?shù); 教師試圖檢查某個學(xué)生分?jǐn)?shù),但是該學(xué)生在系統(tǒng)中不存在; 教師試圖檢查某個學(xué)生分?jǐn)?shù),但是該學(xué)生分?jǐn)?shù)在系統(tǒng)中不存在。,時序圖(順序圖),布置對象:建模時序圖的第二步是從左到右布置所有的參與者和對象,包含要添加消息的對象生命線,如下圖所示。,時序圖(順序圖),添加消息和條件:接下來第三步,對每一個工作
9、流作為獨立的順序圖建模。從基本的工作流開始,它是沒有出錯條件,并且需要最少決策的工作流。在本例中,基本工作流是教師成功地檢查某個學(xué)生的分?jǐn)?shù),如下圖所示。,時序圖(順序圖),時序圖(順序圖),添加消息和條件:接下來第三步,再考慮檢索學(xué)生成績時的例外情況,在本例中,主要考慮“沒有學(xué)生”和“沒有分?jǐn)?shù)”兩種情況,如下圖所示。,時序圖(順序圖),時序圖(順序圖),繪制總圖:建模順序圖的最后一步是把所有獨立的工作流連接為一個總圖,如下圖所示。,時序圖(順序圖),協(xié)作圖用于描述相互合作的對象間的交互關(guān)系和鏈接關(guān)系。雖然順序圖和協(xié)作圖都用來描述對象間的交互關(guān)系,但它們的側(cè)重點不一樣。順序圖強調(diào)消息交互的時間序
10、,協(xié)作圖則強調(diào)交互對象間的靜態(tài)鏈接關(guān)系。 從外觀看,協(xié)作圖并不采用單獨的維度來表示時間推移,因此,協(xié)作圖中的對象可以在二維平面中自由占位。對象之間的鏈接用于表示消息傳遞通道,消息標(biāo)示于鏈接之上,消息的箭頭指明消息的傳遞方向。在協(xié)作圖中,消息的描述內(nèi)容包含名稱、參數(shù)、返回值以及序列號,返回值和序列號是可選的。,10.1設(shè)計用例實現(xiàn)方案,協(xié)作圖(合作圖),,例:一般意義的協(xié)作圖 “1.1 msg2”表明msg2是“對象1”為了處理“1. msg1”而發(fā)送的第一條消息 “1.2 msg4”是“對象1”為了處理“1. msg1”而發(fā)送的第二條消息 “1.1.1 msg3”表明msg3是“對象2”為了處
11、理“1.1 msg2”而發(fā)送的第一條消息,依此類推。,,10.1設(shè)計用例實現(xiàn)方案,,協(xié)作圖(合作圖),同一問題的時序圖和協(xié)作圖等價表示,,,,10.1設(shè)計用例實現(xiàn)方案,,,問題的時序圖,問題的協(xié)作圖,問題:時序圖與協(xié)作圖有何不同?什么時候用時序圖?什么時候用協(xié)作圖呢?,,,,,協(xié)作圖(合作圖),協(xié)作圖(合作圖),協(xié)作圖與時序圖的區(qū)別與聯(lián)系 與時序圖作用相同,時序圖和協(xié)作圖在語義上是等價的,共享相同的基本模型,協(xié)作圖也是用來描述系統(tǒng)中對象之間的動態(tài)協(xié)作關(guān)系,協(xié)作圖側(cè)重于描述各個對象之間存在的消息收發(fā)關(guān)系(交互關(guān)系),而不專門突出這些消息發(fā)送的時間順序; 在協(xié)作圖中,對象同樣是用一個對象圖符來表示,箭頭表示消息發(fā)送的方向,而消息執(zhí)行的時序則由消息的編號來表明; 協(xié)作圖的布局方法能更清楚地表示出對象之間靜態(tài)的連接關(guān)系;時序圖突出執(zhí)行的時序,能更方便地看出事情發(fā)生的次序。,例:一個協(xié)作圖的實例銷售結(jié)果統(tǒng)計協(xié)作圖。,協(xié)作圖(合作圖),思考與練習(xí),練習(xí):對你所選擇的項目完成下列工作: 繪制一個主要業(yè)務(wù)活動的時序圖或協(xié)作圖。,本講結(jié)束,謝謝!,