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