影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

《系統(tǒng)設計》PPT課件

上傳人:san****019 文檔編號:16095508 上傳時間:2020-09-19 格式:PPT 頁數(shù):183 大?。?41KB
收藏 版權申訴 舉報 下載
《系統(tǒng)設計》PPT課件_第1頁
第1頁 / 共183頁
《系統(tǒng)設計》PPT課件_第2頁
第2頁 / 共183頁
《系統(tǒng)設計》PPT課件_第3頁
第3頁 / 共183頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《系統(tǒng)設計》PPT課件》由會員分享,可在線閱讀,更多相關《《系統(tǒng)設計》PPT課件(183頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第7章 系統(tǒng)設計,7.1 概述 7.2 系統(tǒng)平臺設計 7.3 拓撲結(jié)構和計算模式設計 7.4 軟件結(jié)構設計 7.5 詳細設計 7.6 數(shù)據(jù)庫設計,7.1 概 述,7.1.1 系統(tǒng)設計的任務和特點 在信息系統(tǒng)開發(fā)中,突出信息系統(tǒng)特征的業(yè)務、管理、決策等因素已經(jīng)在前續(xù)階段中被消融和解決,到了系統(tǒng)設計階段,信息系統(tǒng)的設計與一般軟件系統(tǒng)的設計已經(jīng)沒有太大的區(qū)別,軟件工程對軟件設計的思想、方法、技術和過程完全適應于信息系統(tǒng)的設計。因此,信息系統(tǒng)的設計也就基本等同于軟件系統(tǒng)的設計。,系統(tǒng)設計的任務是,為實現(xiàn)信息系統(tǒng)需求模型所規(guī)定的功能和性能要求,考慮信息系統(tǒng)實現(xiàn)環(huán)境,通過對信息系統(tǒng)分析模型的綜合分

2、析和細化,確定出信息系統(tǒng)的設計模型。,與系統(tǒng)分析相比,系統(tǒng)設計具有以下特點: (1)設計性。設計不同于分析,設計是根據(jù)系統(tǒng)的要求,得出實現(xiàn)系統(tǒng)的方案。所以,系統(tǒng)設計是根據(jù)需求確定系統(tǒng)方案的過程。 (2) 具體化。相對于系統(tǒng)分析的概念性而言,系統(tǒng)設計不能停留在概念層次上,必須具體化、細致化。 (3)復雜性。系統(tǒng)設計涉及到具體細節(jié),工作量大、頭緒繁多,一般要比系統(tǒng)分析多出近乎5倍的工作量,因此,設計人員必須認真對待。 (4)往復性。一個成熟的設計方案并不是一次完成的,而需要經(jīng)過多次的迭代反復才能夠完成。,7.1.2 系統(tǒng)設計的主要工作 1平臺設計 2結(jié)構設計 3

3、詳細設計 4界面設計 5數(shù)據(jù)庫設計,主要工作簡介 1平臺設計 信息系統(tǒng)平臺是信息系統(tǒng)開發(fā)和運行的環(huán)境,包括網(wǎng)絡、計算機、相關設備、支撐軟件和系統(tǒng)軟件等。平臺設計需要根據(jù)信息系統(tǒng)設計要求,通過對技術和市場的綜合分析,確定出網(wǎng)絡結(jié)構、設備選型和軟件平臺方案。,2結(jié)構設計 在設計工作中,需要確定信息系統(tǒng)的拓撲結(jié)構、計算模式和軟件結(jié)構。 3詳細設計 詳細設計是對軟件結(jié)構中確定出的各個子系統(tǒng)內(nèi)部的設計,需要分析和確定每一個子系統(tǒng)中的用例設計、設計類和接口。 4界面設計 界面設計是對人和外部系統(tǒng)與信息系統(tǒng)之間交互界面的設計。它包括輸入界面、輸出界面和混合界面的設計。,5

4、數(shù)據(jù)庫設計 數(shù)據(jù)庫是信息系統(tǒng)存儲和管理數(shù)據(jù)的主要技術手段,數(shù)據(jù)庫設計的任務是根據(jù)給定的信息系統(tǒng)應用需求和系統(tǒng)環(huán)境,設計出合理的數(shù)據(jù)庫結(jié)構。數(shù)據(jù)庫設計需要經(jīng)過概念設計、邏輯設計和物理設計等步驟。,7.1.3 信息系統(tǒng)設計模型和軟件模型 信息系統(tǒng)設計模型是對信息系統(tǒng)設計方案的抽象描述,它要完整描述信息系統(tǒng)設計的內(nèi)容,并具有簡明、抽象、概括和規(guī)范等特點。 信息系統(tǒng)設計模型包括平臺模型、拓撲計算模型(拓撲結(jié)構和計算模式)、軟件模型、界面模型和數(shù)據(jù)庫模型等內(nèi)容(見圖7.1)。,圖7.1 信息系統(tǒng)設計模型,,軟件模型的構成見圖7.2。軟件系統(tǒng)是軟件模型的頂層視圖,它由子系統(tǒng)、設計類、用例

5、設計和接口構成。系統(tǒng)中的絕大部分設計類和用例設計均處在子系統(tǒng)中,但對系統(tǒng)具有重要意義的少數(shù)用例設計和設計類也可能不包括在子系統(tǒng)中,而直接屬于軟件系統(tǒng)。,圖7.2 軟件模型,,圖7.3 用例設計到用例分析和用例的跟蹤,,用例設計包括用例的設計類圖和交互圖。 設計類圖反映一個用例中的設計類所呈現(xiàn)的靜態(tài)結(jié)構。與分析類圖相比較,設計類圖更詳細、更具體。設計類圖所反映的設計類之間的關系應該能夠被所采用的程序設計語言所支持。 通過交互圖,可描述在實現(xiàn)一個用例過程中各個設計類之間的消息聯(lián)系過程,接口是設計類或子系統(tǒng)對外所能夠提供的操作。接口并不涉及到對設計類或子系統(tǒng)操作的實現(xiàn)。接口也是設計類或子

6、系統(tǒng)對外所提供的操作視圖,其它設計類或子系統(tǒng)通過接口來與提供接口的設計類發(fā)生關系。接口的實現(xiàn)如圖7.4所示。 (你所知道的軟件接口有哪些?),圖7.4 接口的實現(xiàn),,7.2 系統(tǒng)平臺設計,7.2.1 網(wǎng)絡設計 信息系統(tǒng)一般都是集成式、綜合性系統(tǒng),網(wǎng)絡把系統(tǒng)的各個部分連接到一起以形成一體化系統(tǒng),網(wǎng)絡在系統(tǒng)設計中占有很重要的地位。,網(wǎng)絡設計主要包括網(wǎng)絡需求分析、網(wǎng)絡結(jié)構設計和網(wǎng)絡詳細設計三部分內(nèi)容。 1. 網(wǎng)絡需求分析 網(wǎng)絡需求分析是通過對所開發(fā)的信息系統(tǒng)的規(guī)模、系統(tǒng)所覆蓋業(yè)務的地域分布、計算機設備、網(wǎng)絡服務等方面需求的分析,為確定網(wǎng)絡總體結(jié)構、網(wǎng)絡詳細設計提供依據(jù)。網(wǎng)絡需

7、求分析需要調(diào)查和分析以下6方面的內(nèi)容。,1)信息系統(tǒng)的特征對網(wǎng)絡的需求:辦公自動化系統(tǒng)和CIMS系統(tǒng)對網(wǎng)絡的結(jié)構和布局有不同的要求。 2)信息系統(tǒng)拓撲結(jié)構和計算模式對網(wǎng)絡的需求 3)信息系統(tǒng)業(yè)務所覆蓋的地理分布 4)網(wǎng)絡服務需求:數(shù)據(jù)庫訪問方式和數(shù)據(jù)存儲分布模式;文件傳輸和存取需求;電子郵件和遠程通信需求;企業(yè)網(wǎng)與社會網(wǎng)、因特網(wǎng)的互連需求等。 5)信息類型和信息量 6)性能需求:系統(tǒng)對網(wǎng)絡的效率、速度、可靠性、安全性等性能要求。,2. 網(wǎng)絡結(jié)構設計 網(wǎng)絡結(jié)構設計的主要任務是根據(jù)網(wǎng)絡需求分析的結(jié)果,設計出能夠滿足信息系統(tǒng)需要、結(jié)構合理、易于擴充、性能價格比高的

8、系統(tǒng)網(wǎng)絡總體結(jié)構。系統(tǒng)網(wǎng)絡總體結(jié)構可以采用單級、二級和多級結(jié)構。,1) 單級結(jié)構 對于規(guī)模較小、地域相對集中的小型系統(tǒng),可以采用單級網(wǎng)絡結(jié)構。單級結(jié)構一般采用一個小型局域網(wǎng),各部分之間可以采用集線器、網(wǎng)橋連接,如果在局域網(wǎng)中還有異構網(wǎng)絡,可以采用網(wǎng)關。 2) 二級結(jié)構 對于分布地域范圍較廣、管理復雜的中型系統(tǒng),可以采用二級網(wǎng)絡結(jié)構。二級網(wǎng)絡結(jié)構一般由高速主干網(wǎng)和多個局域網(wǎng)構成。主干網(wǎng)可以選擇FDDI、交換網(wǎng)、ATM或快速以太網(wǎng)等技術。,3) 多級結(jié)構 對于跨地區(qū)、跨省、跨國的大型或超大型系統(tǒng),則需要采用多級網(wǎng)絡結(jié)構。在多級網(wǎng)絡結(jié)構中,一般頂層采用社會公用網(wǎng)或?qū)S脧V域網(wǎng),

9、二級和三級則為骨干網(wǎng)和主干網(wǎng),最下一級為局域網(wǎng)。,3. 網(wǎng)絡詳細設計 網(wǎng)絡詳細設計包括網(wǎng)絡節(jié)點設計、網(wǎng)絡設備選型、網(wǎng)絡布線設計、網(wǎng)絡操作系統(tǒng)選擇、網(wǎng)絡管理設計等內(nèi)容。 1) 網(wǎng)絡節(jié)點設計 網(wǎng)絡節(jié)點設計指通過網(wǎng)絡需求分析,詳細確定每一個網(wǎng)絡節(jié)點的具體位置、設備類型和連網(wǎng)設備,并繪制出網(wǎng)絡節(jié)點分布圖,以便根據(jù)網(wǎng)絡節(jié)點分布圖進行設備選型和網(wǎng)絡布線設計。,2) 網(wǎng)絡設備確定及選擇 需要詳細確定整個網(wǎng)絡系統(tǒng)所需要的服務器、路由器、集線器、網(wǎng)關、網(wǎng)橋、網(wǎng)卡、網(wǎng)線等網(wǎng)絡設備。還需要根據(jù)網(wǎng)絡的功能和性能需求,確定各個網(wǎng)絡設備的性能指標。例如,服務器需要多大存儲容量、多高速度;根據(jù)系統(tǒng)的

10、安全性、可靠性要求確定是選擇雙服務器系統(tǒng)、磁盤鏡像技術,還是采用單服務器。,3) 網(wǎng)絡布線設計 根據(jù)網(wǎng)絡節(jié)點設計的結(jié)果和具體地理分布,要進行細致的網(wǎng)絡布線設計。目前網(wǎng)絡布線一般對網(wǎng)絡系統(tǒng)、電話系統(tǒng)、監(jiān)控系統(tǒng)采用統(tǒng)一布線方式,這種布線方式叫做結(jié)構化布線。結(jié)構化布線設計需要由低層向高層逐層進行布線設計。首先在辦公室確定網(wǎng)絡設備位置和插座位置;再確定每個樓層的水平布線;然后確定樓層的垂直布線;最后確定主干網(wǎng)線的布線。,4) 網(wǎng)絡操作系統(tǒng)選擇 網(wǎng)絡操作系統(tǒng)是網(wǎng)絡的核心軟件。一般在大型網(wǎng)絡系統(tǒng)中并不一定只選擇一個統(tǒng)一的網(wǎng)絡操作系統(tǒng)。有時可能會采用多個網(wǎng)絡操作系統(tǒng)。目前可供選擇的網(wǎng)絡操作系統(tǒng)有

11、UNIX、Windows NT、NetWare、OS2等,可根據(jù)系統(tǒng)需要進行選擇。 5) 網(wǎng)絡管理設計 對網(wǎng)絡系統(tǒng)需要進行有效管理。一般大型網(wǎng)絡系統(tǒng)采用一個網(wǎng)絡管理中心、多個網(wǎng)管分中心的方式。網(wǎng)絡管理設計需要確定網(wǎng)絡管理結(jié)構、網(wǎng)絡管理軟件、網(wǎng)絡管理職責和人員等。,7.2.2 物理設備設計 除了網(wǎng)絡系統(tǒng)之外,信息系統(tǒng)還包括大量的計算機和相關信息設備等物理設備,根據(jù)需要正確地選擇物理設備也是平臺設計的一個主要內(nèi)容。 1. 物理設備的基本類型 信息系統(tǒng)的物理設備一般包括以下類型: 1) 計算機系統(tǒng) 計算機系統(tǒng)有多種形式。按規(guī)模和性能分有巨型機、大型機、中型機

12、、小型機、工作站和微型機;按用途分有通用機和專用機。,2) 相關I/O設備 每一個計算機系統(tǒng)都有各自的I/O(輸入/輸出)設備,除了計算機系統(tǒng)所配置的I/O設備之外,根據(jù)需要,不同類型的信息系統(tǒng)還需要配置一些特殊的I/O設備。相關的I/O設備有共享打印機、掃描儀、繪圖儀、條碼閱讀器、IC卡讀寫器、磁卡讀寫機、數(shù)字照相機、投影儀、專用鍵盤、聲光傳感器等。 3) 多媒體設備 多媒體設備有觸摸屏、圖像攝取儀、聲/視卡、圖像處理卡、音箱、功率放大器、攝像機、錄像機、解壓卡等。,4) 辦公設備 辦公信息系統(tǒng)還要配置大量的辦公自動化設備。一般辦公自動化設備有會議系統(tǒng)、復印機、碎紙機

13、等。 5) 電源系統(tǒng) 電源系統(tǒng)有不間斷電源、穩(wěn)壓器等。 6) 機房設備 機房設備有電力系統(tǒng)、布線系統(tǒng)、安全系統(tǒng)、消防系統(tǒng)、照明設備、制冷設備、清潔設備等。,2. 物理設備設計 物理設備設計是根據(jù)信息系統(tǒng)的設計要求,確定信息系統(tǒng)物理設備方案。所設計的物理設備方案在能夠充分滿足信息系統(tǒng)功能需要的前提下,還應該滿足系統(tǒng)的效率、可靠性、安全性和適應性等性能要求,并具有較高的性價比。,7.2.3 軟件平臺設計 軟件平臺是信息系統(tǒng)開發(fā)和運行所需的集成軟件系統(tǒng)。設計和選擇高效、實用、方便、功能齊全的軟件平臺,對信息系統(tǒng)開發(fā)有著十分重要的意義。目前,可供選擇的軟件平臺很多,軟

14、件平臺設計就需要系統(tǒng)分析員根據(jù)實際開發(fā)的需要,充分考慮各種軟件平臺的性能和適應范圍,并結(jié)合開發(fā)隊伍對軟件平臺的使用經(jīng)驗,選擇出有效的軟件平臺。,1. 操作系統(tǒng) 操作系統(tǒng)是計算機系統(tǒng)中最重要的系統(tǒng)軟件。目前主要的大型操作系統(tǒng)有UNIX、Windows NT、OS/2、Macintosh等;在微機上運行的桌面操作系統(tǒng)有Windows 95、Windows 98、Windows ME、Windows XP等。這些操作系統(tǒng)各有其適應面和優(yōu)缺點,應根據(jù)需要進行選擇。,2. 支撐軟件 支撐軟件是協(xié)助人們開發(fā)和維護軟件的工具和環(huán)境軟件。編輯程序、數(shù)據(jù)庫系統(tǒng)、集成開發(fā)環(huán)境等都屬于支撐型軟件,如Vi

15、sual Basic、Delphi、PowerBuilder、Oracle、Java等。支撐軟件主要包括以下幾方面軟件: 1) 數(shù)據(jù)庫管理系統(tǒng)DBMS 在數(shù)據(jù)庫服務器上的DBMS對數(shù)據(jù)庫實施集中管理,可以并發(fā)地處理多個客戶機發(fā)來的數(shù)據(jù)處理請求。常見的數(shù)據(jù)庫管理系統(tǒng)有SQL-Server、Oralce、Sybase、Informix、DB2等,系統(tǒng)分析員可以根據(jù)自己的需要進行選擇。,2) 客戶端開發(fā)軟件 客戶端開發(fā)軟件十分豐富,系統(tǒng)開發(fā)人員可以根據(jù)設計需要進行選擇,選擇客戶端開發(fā)軟件要考慮繼承性。常見的客戶端開發(fā)軟件有PowerBuilder、Visual Basic、Visu

16、al C++、Delphi、Visual Foxpro、Java等。 3) 中間件協(xié)議和軟件 在網(wǎng)絡設計中已經(jīng)確定了網(wǎng)絡操作系統(tǒng)和網(wǎng)絡傳輸協(xié)議中間件。還要進一步確定的中間件有: (1) 數(shù)據(jù)庫中間件。通過數(shù)據(jù)庫中間件,可允許客戶在異構數(shù)據(jù)庫上調(diào)用基于SQL的服務。數(shù)據(jù)庫中間件有ODBC、DRDA、IDAPI、RDA、ORACLE-GLUE等。,(2) 事務處理中間件。通過事務處理中間件,可允許客戶在多個事務服務器上調(diào)用服務。事務處理監(jiān)視器允許不同的服務器控制其本地資源,并在需要訪問本地資源時與其它事務處理監(jiān)視器進行合作。事務處理監(jiān)視器保證服務器內(nèi)和服務器之間的所有活動的完整性

17、。這方面的標準包括TUXEDO的ATMI、ENCINA的RPC和X/Open的TXRPC等。 (3) 群件中間件。通過群件中間件,客戶可以在多個群件服務器上調(diào)用服務。目前群件中間件有電子郵件方面的PAPI及Lotus Notes API等。,3. CASE平臺 采用CASE開發(fā)環(huán)境可以保證信息系統(tǒng)開發(fā)質(zhì)量,提高開發(fā)效率,保證文檔的一致性,減輕開發(fā)人員的工作負擔。CASE平臺與所支持的系統(tǒng)開發(fā)方法有直接聯(lián)系,有支持結(jié)構化方法的CASE、支持原型化方法的CASE、支持OO方法的CASE和支持多種方法的綜合CASE環(huán)境。開發(fā)小組應該根據(jù)所采用的開發(fā)方法來選擇合適的CASE環(huán)境。,7.3

18、拓撲結(jié)構和計算模式設計,7.3.1 信息系統(tǒng)拓撲結(jié)構設計 拓撲結(jié)構設計需要確定信息系統(tǒng)的節(jié)點和節(jié)點的結(jié)構。節(jié)點是信息系統(tǒng)中一個在邏輯分布上相對獨立的處理實體,一個節(jié)點一般要包括一臺獨立的計算機和外圍設備。節(jié)點可以是人機交互的客戶機,也可以是業(yè)務管理、數(shù)據(jù)庫管理、Web管理的服務器。,在考慮所要設置的節(jié)點時,同時就要一并考慮該節(jié)點的作用和類型。節(jié)點的類型一般需要根據(jù)采用的計算模式而定。 例如,采用客戶機/服務器模式中的節(jié)點就有客戶機和服務器兩種類型,而采用應用服務器模式的系統(tǒng)中,節(jié)點可以分為客戶機、應用服務器和數(shù)據(jù)庫服務器這幾種形式。,下面給出書店信息系統(tǒng)分布結(jié)構設計實例。 書店

19、信息系統(tǒng)是一個中小規(guī)模的信息系統(tǒng),業(yè)務比較簡單,總店分布區(qū)域也不大。經(jīng)過分析,該系統(tǒng)的計算模式采用客戶機/服務器模式;整個系統(tǒng)設置七個節(jié)點:計劃采購節(jié)點、書庫節(jié)點、銷售節(jié)點、結(jié)算節(jié)點、事務處理節(jié)點、系統(tǒng)管理節(jié)點和數(shù)據(jù)庫服務器節(jié)點。數(shù)據(jù)庫服務器是中心節(jié)點,所以書店信息系統(tǒng)的拓撲結(jié)構呈星型結(jié)構(見圖7.5)。,圖7.5 書店信息系統(tǒng)拓撲結(jié)構,,7.3.2 信息系統(tǒng)計算模式設計 選擇哪一種計算模式應該根據(jù)應用需要而定,不能盲目追求先進和時新。例如,客戶機/服務器模式可以滿足要求,就不一定要采用應用服務器模式。另外,對于復雜的大型系統(tǒng),采用某一種計算模式可能并不能滿足應用要求,有時需要多種計算模

20、式并存。書店信息系統(tǒng)的計算模式采用客戶機/服務器模式(見圖7.6)。,圖7.6 書店信息系統(tǒng)計算模式,,7.4 軟件結(jié)構設計,7.4.1 概述 信息系統(tǒng)的軟件結(jié)構是由信息系統(tǒng)軟件的各子系統(tǒng)按照確定的關系構成的結(jié)構框架。子系統(tǒng)是對軟件分解的一種中間形式,也是組織和描述軟件的一種方法。由多個子系統(tǒng)構成信息系統(tǒng)軟件,每一個子系統(tǒng)又包括多個用例設計、設計類和接口。,軟件結(jié)構設計是把軟件分解成為多個子系統(tǒng),并確定出由各子系統(tǒng)及其接口構成的軟件結(jié)構。軟件結(jié)構一般呈現(xiàn)出層次結(jié)構模式,而且常見為四層結(jié)構(見圖7.7)。,圖7.7 軟件系統(tǒng)的四層結(jié)構模式,,應用層是信息系統(tǒng)軟件所在的層次,它的作用是直接服

21、務于信息系統(tǒng)的應用領域。應用層又分為專用應用層和通用應用層。專用應用層中的子系統(tǒng)直接面向具體應用;通用應用層中的子系統(tǒng)可以被專用應用層的多個子系統(tǒng)所引用,具有通用性。在應用層中的子系統(tǒng)被稱為應用子系統(tǒng)。 中間件層放置支撐系統(tǒng)運行的有關中間件,像通信工具、數(shù)據(jù)庫引擎、分布對象機制等。 系統(tǒng)軟件層則放置操作系統(tǒng)、低層協(xié)議等系統(tǒng)軟件。在中間件和系統(tǒng)軟件層中的子系統(tǒng)被稱為系統(tǒng)子系統(tǒng)。,7.4.2 應用子系統(tǒng)設計 1識別應用子系統(tǒng) 識別應用子系統(tǒng)的原型是信息系統(tǒng)邏輯結(jié)構中的分析包。可以把邏輯結(jié)構中每一個分析包作為一個初步的應用子系統(tǒng),在此基礎上,再對各子系統(tǒng)進行分析和優(yōu)化,以確定

22、應用子系統(tǒng)。 例如,圖6.13中的“入庫”和圖6.14中的“售書處理”兩個分析包可以作為被識別的兩個初步應用子系統(tǒng),見圖7.8。,圖7.8 設計模型可以跟蹤到分析模型,,2優(yōu)化應用子系統(tǒng) 通過分析包識別出的初步應用子系統(tǒng)并不能作為最終確定的應用子系統(tǒng),還需要進行優(yōu)化處理。從設計角度看,進行優(yōu)化的理由有三: 首先,分析包沒有考慮系統(tǒng)的效率、安全性、可靠性、適應性等非功能性需求,也沒有考慮系統(tǒng)的實現(xiàn)環(huán)境以及系統(tǒng)的拓撲結(jié)構和計算模式。 第二,應用子系統(tǒng)應該具有合適的規(guī)模。如果初步應用子系統(tǒng)規(guī)模過大,就需要進行分解。相反,對規(guī)模過小的初步應用子系統(tǒng)又要進行合并,使最后所確定的應

23、用子系統(tǒng)都具有合適的規(guī)模。,第三,應用子系統(tǒng)應該具有高內(nèi)聚、低偶合的特性,即子系統(tǒng)內(nèi)部的要素之間的聯(lián)系應該盡量地密切,而子系統(tǒng)之間的聯(lián)系盡可能小。 優(yōu)化的具體步驟: 第一,規(guī)模分析。 第二,應用分析。 第三,節(jié)點分布分析。,下面我們以圖6.13的“入庫”分析包識別為初步的“入庫”應用子系統(tǒng)和圖6.14的“售書處理”分析包識別為初步的“售書處理”應用子系統(tǒng)為例,進行分析優(yōu)化。,首先分析“入庫”應用子系統(tǒng)。 第一,規(guī)模分析。從圖5.7(a)可以看出,“入庫”分析包可以跟蹤到“編輯入庫信息”、“查詢?nèi)霂煨畔ⅰ焙汀拜敵鋈霂煨畔ⅰ比齻€用例,它要完成對應的三項功能。這樣“入庫”作為一個應用子系

24、統(tǒng)規(guī)模過大,應該對其進行分解。我們把它分解成為對應上述三個功能的“編輯入庫信息”、“查詢?nèi)霂煨畔ⅰ焙汀拜敵鋈霂煨畔ⅰ比齻€應用子系統(tǒng)。 第二,應用分析?!熬庉嬋霂煨畔ⅰ?、“查詢?nèi)霂煨畔ⅰ焙汀拜敵鋈霂煨畔ⅰ比齻€應用子系統(tǒng)都屬于專用子系統(tǒng),,它們都要訪問數(shù)據(jù)庫服務器上的“入庫圖書”數(shù)據(jù)表,應該設置“入庫管理”通用子系統(tǒng)來對數(shù)據(jù)庫進行專門管理。 第三,節(jié)點分布分析。設計中確定的子系統(tǒng)應該在一個節(jié)點上,如果一個子系統(tǒng)可能跨幾個節(jié)點,就需要對該子系統(tǒng)進行分解。“編輯入庫信息”、“查詢?nèi)霂煨畔ⅰ焙汀拜敵鋈霂煨畔ⅰ比齻€專用子系統(tǒng)處在書庫節(jié)點上,而“入庫管理”通用子系統(tǒng)處在數(shù)據(jù)庫服務器節(jié)點上。對“入

25、庫”子系統(tǒng)優(yōu)化的結(jié)果如圖7.9所示。,圖7.9 優(yōu)化的“入庫”子系統(tǒng),,圖7.10 優(yōu)化的“售書處理”子系統(tǒng),,7.4.3 系統(tǒng)子系統(tǒng)設計 軟件結(jié)構設計的第二步工作是確定中間件。中間件設計與系統(tǒng)的應用要求和系統(tǒng)環(huán)境有關。例如,如果系統(tǒng)采用瀏覽器模式,就需要選擇Web瀏覽器作為中間件;如果系統(tǒng)具有分布處理要求,就需要選擇DCOM、CORBA或Java.rmi等具有分布對象處理能力的中間件。另外,還需要根據(jù)數(shù)據(jù)處理的要求,選擇合適的數(shù)據(jù)庫系統(tǒng)。,軟件結(jié)構設計的第三項工作是確定系統(tǒng)軟件層所采用的軟件系統(tǒng),一般包括操作系統(tǒng)、網(wǎng)絡協(xié)議等。例如操作系統(tǒng)采用Windows NT,網(wǎng)絡協(xié)議采用TCP/I

26、P等。 現(xiàn)在我們討論書店圖書管理系統(tǒng)中售書處理部分的軟件結(jié)構設計(見圖7.11)。 在專用層設置“售書處理”的頂層子系統(tǒng),接下來又分出“開書單”、“出售圖書”、“收書款”三個子系統(tǒng),這三個子系統(tǒng)都處在專用應用層。,圖7.11 書店信息系統(tǒng)中“售書處理”的軟件結(jié)構,,7.4.4 確定子系統(tǒng)間的接口 當子系統(tǒng)之間存在依賴關系時,子系統(tǒng)之間就存在確定接口。子系統(tǒng)接口定義了外部子系統(tǒng)對本子系統(tǒng)可進行的訪問操作集。這些操作由子系統(tǒng)內(nèi)部的類來提供,或著由子系統(tǒng)中的其它子系統(tǒng)提供。 可以通過子系統(tǒng)之間存在的關系來發(fā)現(xiàn)子系統(tǒng)之間的接口。如果子系統(tǒng)A依賴子系統(tǒng)B,則子系統(tǒng)B應該向子系統(tǒng)A

27、提供接口(見圖7.12)。圖7.11售書處理的軟件結(jié)構中專用應用層和通用應用層幾個子系統(tǒng)之間的接口描述見圖7.13。,圖7.12 根據(jù)依賴關系確定接口,,圖7.13 圖書銷售子系統(tǒng)之間的接口,,7.5 詳細設計,詳細設計是對軟件結(jié)構中已經(jīng)確定的各個子系統(tǒng)內(nèi)部的設計。詳細設計需進行三個主要設計: 用例設計、設計類的設計和關系設計。,7.5.1 用例設計 1概述 子系統(tǒng)可以跟蹤到分析包,分析包可以跟蹤到用例。圖7.14反映了子系統(tǒng)、分析包和用例的跟蹤關系。因為一個子系統(tǒng)能夠完成它所跟蹤的用例的功能,所以詳細設計的第一項工作便是對子系統(tǒng)所跟蹤的用例進行設計。 用例設計包括兩個

28、含義:一是用例設計的工作,二是描述用例設計的結(jié)果。,圖7.14 子系統(tǒng)、分析包和用例的對應關系,,2用例設計的工作 1) 確定設計類 用例設計的第一項工作是確定該用例所涉及到的所有設計類。由用例設計可以追蹤到用例分析,在對用例分析時,分析員已經(jīng)確定了用例所涉及到的所有概念類。因此,可以把用例分析確定的概念類作為初步設計類。然后根據(jù)設計的需要,再對初步設計類進行分解和調(diào)整,成為最終的設計類。,2) 設計類圖 在確定了用例的設計類之后,接下來應該通過類圖反映所提取的各個設計類之間的相互關系。因為還沒有對每一個設計類進行詳細分析,所以現(xiàn)在所確定的設計類圖是簡化的設計類圖。 3

29、) 繪制順序圖 為了完成賦予用例的功能,用例的一次交互處理要通過用例中的各個類中的對象操作的相互配合來完成。可以通過順序圖來反映各個對象之間的消息交互過程。,3用例設計過程 1) 確定子系統(tǒng)和設計類 2) 分析用例設計類圖 3) 繪制順序圖,下面我們以“售書處理”為例,討論用例設計過程。 1) 確定子系統(tǒng)和設計類 “售書處理”是一個用例,但該用例被分解成為圖7.10所示的處在三個節(jié)點上的八個子系統(tǒng),即售書節(jié)點上的“售書處理”、“開書單”和“出售圖書”三個子系統(tǒng),結(jié)算節(jié)點上的“收書款”子系統(tǒng),在數(shù)據(jù)庫服務器上的“書目管理”、“架存圖書管理”、“售出圖書管理”和“職工管理”

30、四個子系統(tǒng)。,在第6.4節(jié)對“售書處理”用例所提取的八個概念類的基礎上,可以確定各個子系統(tǒng)的設計類?!笆蹠幚怼弊酉到y(tǒng)中有“售書界面”、“產(chǎn)生待售圖書”和“待售圖書”三個設計類?!伴_書單”子系統(tǒng)的設計是“開書單”和“打印進程”。“收書款”子系統(tǒng)的設計類是“收款界面”和“收書款”?!俺鍪蹐D書”子系統(tǒng)中有“出售圖書界面”、“出售圖書”和“一致性檢查”三個設計類。除此之外,在數(shù)據(jù)庫服務器節(jié)點中,“書目”屬于“書目管理”子系統(tǒng),“架存圖書”屬于“架存圖書管理”子系統(tǒng),“售出圖書”屬于“售出圖書管理”子系統(tǒng),“職工”屬于“職工管理”子系統(tǒng)。,2) 分析用例設計類圖 通過以上分析,繪制出圖7.15所

31、示的“售書處理”用例設計類圖。在“售書處理”子系統(tǒng)中,“售書界面”類與“產(chǎn)生待售圖書”控制類之間存在關聯(lián)關系。當“售書界面”類接收一個要出售圖書的書號和冊數(shù)時,就給“產(chǎn)生待售圖書”類發(fā)送一個消息,啟動“產(chǎn)生待售圖書”類的“產(chǎn)生待售圖書對象”操作,產(chǎn)生一個待售圖書對象,記入“待售圖書”類中。,圖7.15 “售書處理”用例設計類圖,,書單打印出來后,售書員把書單交給讀者,讀者持書單到收款臺交款。收款員啟動“收款界面”輸入書單上的書單號,“收款界面”把書單號通過消息發(fā)給“收書款”類,該類從“待售圖書”類中取出該書單的圖書信息,并在界面上顯示書款金額,收款員接收讀者書款,并在“待售圖書”類的對應對象中

32、把“交款標記”設為“T”。,付款之后,讀者又把書單拿回到售書員面前,“售書界面”類又進入“出售圖書”子系統(tǒng)中的“出售圖書界面”類,由該界面給售書員提供一個出售圖書信息界面。售書員輸入所出售圖書的書單號,然后啟動“出售圖書”類,由該類在“售出圖書”類中建立已售出圖書的對象,而從“待售圖書”類中把對應的對象刪除掉。 “書目”類與“架存圖書”和“售出圖書”之間是泛化關系。,3) 繪制順序圖 由于“售書處理”涉及到四個子系統(tǒng),其彼此控制也具有相對獨立性,因此,下面我們分別繪制“產(chǎn)生待售圖書”、“開書單”、“收書款”和“出售圖書”四個子系統(tǒng)的順序圖。 (1) “產(chǎn)生待售圖書”的順序圖(

33、見圖7.16)?!笆蹠缑妗苯邮帐蹠鴨T輸入的讀者所要購買圖書的書號和冊數(shù),同時給該讀者產(chǎn)生一個書單號。,圖7.16 產(chǎn)生待售圖書順序圖,,(2) “開書單”的順序圖(見圖7.17)。售書員按售書界面上的“開書單”功能按鈕啟動開書單功能。“售書界面”對象給“開書單”子系統(tǒng)的“開書單”類的對象發(fā)送“打印書單”消息,同時把所要打印書單的“書單號”也一并發(fā)送過去?!伴_書單”對象接收到這個消息后,給“售書處理”子系統(tǒng)的“待售圖書”對象發(fā)送“取待售圖書信息”消息,取出對應書單號的所有待售圖書信息。“開書單”對象根據(jù)取到的信息生成書單,并啟動“打印進程”打印出書單。售書員把打印出來的三聯(lián)書單交給讀者,讓讀者

34、上收款臺交書款。,(3) “收書款”的順序圖(見圖7.18)。收款員接收到讀者拿來的書單,按書單號交給“收款界面”對象,該對象接著給“收書款”對象發(fā)送“收書款”的消息?!笆諘睢睂ο蠼邮盏竭@個消息后,給“售書處理”子系統(tǒng)中的“待售圖書”對象發(fā)送消息,取出這個書單號的待售圖書信息,并把“待售圖書”對象中的交款標記設為“T”。付完款之后,收款員自己留存一聯(lián)書單,給另外兩聯(lián)書單上蓋章并交給讀者,收書款結(jié)束。,圖7.17 “開書單”順序圖,,圖7.18 收書款順序圖,,(4) “出售圖書”的順序圖(見圖7.19)。“出售圖書界面”對象接收售書員掃描進的書單號,給 “出售圖書”對象發(fā)送“出售圖書”消息。

35、“出售圖書”對象接收到這個消息后,從“待售圖書”類中取出該“書單號”的所有對象,并把這些對象從“待售圖書”類中刪除掉。然后給“架存圖書管理”子系統(tǒng)發(fā)送消息,修改架存圖書數(shù)量。最后通過“售出圖書管理”子系統(tǒng)在售出圖書數(shù)據(jù)表中記錄所售出的圖書數(shù)據(jù)。,圖7.19 “出售圖書”順序圖,,(5) 一致性檢查?!耙恢滦詸z查”的作用是檢查“待售圖書”類中所有無用的對象,并將其刪除掉?!耙恢滦詸z查”的順序圖見圖7.20。,圖7.20 “一致性檢查”順序圖,,7.5.2 設計類的設計 用例設計中識別出了大量的設計類,接下來要詳細地設計所識別出來的每一個設計類。系統(tǒng)分析得出的概念類是設計類的基礎,但設計類不

36、完全等同于概念類。原因有三:,其一,設計類是概念類的細化和分解。在系統(tǒng)分析中確定的一個概念類到系統(tǒng)設計時,可能對應著一個設計類,也可能被分解成為了多個設計類。 其二,由于在設計中要考慮系統(tǒng)的非功能性需求,因此,在設計時可能會產(chǎn)生出許多為了滿足系統(tǒng)的非功能性需求的新的設計類,這些類根本沒有對應的概念類。 其三,設計著眼于實現(xiàn)。,所以對設計類的設計必須考慮所有實現(xiàn)細節(jié)。設計類的設計工作包括屬性設計、操作設計、方法設計和狀態(tài)設計。,1不同類型設計類的設計 1) 邊界類的設計 邊界類承擔信息的輸入和輸出以及信息的界面組織等任務。邊界類是用戶界面設計在系統(tǒng)中的實體性體現(xiàn),用戶界面

37、設計涉及到人機工程、審美和操作方便性等方面的知識和要求(第8章將介紹界面設計)。邊界類設計依賴于信息系統(tǒng)所采用的實現(xiàn)環(huán)境和設計語言。邊界類在可視化的設計語言中一般表現(xiàn)為框架Form、窗口Windows和控件Controls等形式。,2) 實體類的設計 實體類的信息一般要在系統(tǒng)中長久存放,因此,實體類的設計要與數(shù)據(jù)庫技術或文件技術聯(lián)系起來。應用型軟件幾乎全部采用數(shù)據(jù)庫技術,僅有效率要求極高的系統(tǒng)軟件可能采用文件技術。信息系統(tǒng)屬于應用型系統(tǒng),一般對實體類采用數(shù)據(jù)庫技術。數(shù)據(jù)庫有關系數(shù)據(jù)庫、對象數(shù)據(jù)庫和對象關系數(shù)據(jù)庫等形式。最直接的方式是采用面向?qū)ο髷?shù)據(jù)庫,但面向?qū)ο髷?shù)據(jù)庫目前還不夠成熟。,3

38、) 控制類的設計 控制類為系統(tǒng)的處理邏輯而設計,具有動態(tài)性。一般根據(jù)以下需要來設置控制類: 第一,事務處理。信息系統(tǒng)存在大量的事務處理,一個用例就是對一個事務的處理。在處理具體事務過程中,涉及到邊界類和實體類,而在處理的關鍵環(huán)節(jié)和交匯點上就應該設置控制類。例如,在“售書處理”中的“產(chǎn)生待售圖書”、“開書單”、“收書款”和“出售圖書”等控制類都是在事務處理的關鍵環(huán)節(jié)上設置的。,第二,性能要求。為了實現(xiàn)系統(tǒng)的效率、可靠性、安全性和適應性的要求,需要設置控制類。例如,“一致性檢查”就是為了正確性要求而設置的控制類。 第三,分布處理。當處理被分布到不同的網(wǎng)絡節(jié)點上時,在各個節(jié)點上就需

39、要設置單獨的控制類來實施處理。,2屬性設計 屬性設計是對屬性分析的深入和細化,與屬性分析相比較,屬性設計應該著重強調(diào)以下幾個方面: 第一,補充屬性分析時沒有考慮到的屬性。屬性分析主要反映類的重要屬性,一般不考慮涉及實現(xiàn)細節(jié)的有關屬性,到屬性設計時就要把這些屬性補充全面。 第二,確定屬性的全部內(nèi)容,其中包括屬性名、可視性、范圍、類型、初始值等。 第三,盡量采用信息系統(tǒng)所采用的程序設計語言的語法規(guī)范來描述。,圖7.15的“產(chǎn)生待售圖書”、“開書單”等控制類沒有屬性,因此,我們僅設計“書目”、“架存圖書”、“待售圖書”和“售出圖書”這幾個類的屬性。在分析時,已經(jīng)確定的屬性見圖

40、7.21。其中,“書目”類的屬性有書號、書名、作者、出版社編號、單價、出版日期和圖書類別;“架存圖書”的屬性有架位和架存冊數(shù);“待售圖書”的屬性有書單號、銷售冊數(shù)、折扣率、交款標記和售書員;“售出圖書”的屬性有售出冊數(shù)、折扣率、售出日期和售書員。對這些類的屬性進行設計的結(jié)果見圖7.22。,,圖7.21 “書目”等類在分析時確定的屬性,圖7.22 “書目”等類的屬性設計,,,3操作設計 操作設計的任務是確定各個類應該提供的操作。確定類操作的根據(jù)有以下四個方面: (1) 概念類的職責。概念類職責定義了該類應該具有的功能,類的這些功能就需要分解到各個操作中來實現(xiàn)。 (2) 概念類的

41、非功能性需求。系統(tǒng)的效率、可靠性、安全性等非功能性需求,常常要落實到類的一些操作上來,通過設置某些操作來實現(xiàn)這些需求。,(3) 設計類的接口。設計類的接口是設計類對外提供的操作功能,這些功能均需要通過設計類所提供的操作來實現(xiàn)。 (4) 類所參與的用例設計。一個類可能要參與多個用例設計,在每一個用例設計中,該類都起著確定的作用,承擔著確定的角色,這些作用最終都要落實到類的操作上。這就需要逐一分析類在每一個用例設計中所承擔的角色。,對操作的描述應該注意以下兩個方面: (1) 詳盡全面。應該反映操作名、輸入?yún)?shù)、返回參數(shù)以及可視性。 (2) 盡可能采用所用的編程語言的語法格式來描述,這

42、樣到實現(xiàn)時就無須再進行格式轉(zhuǎn)換。 下面我們討論“售書處理”用例中類的操作設計。 1) 實體類的操作設計 “書目”是一個實體類,應該設置write(bookNo, bookInformation)操作給書目對象中寫內(nèi)容,read(bookNo) :bookInformation從給定書號的書目對象中讀書目信息。,圖7.23 “書目”等實體類的操作設計,,圖7.24 “書目”等實體類的操作設計,,2) 控制類的操作設計 “售書處理”用例共涉及到“產(chǎn)生待售圖書”、“開書單”、“收書款”、“出售圖書”和“一致性檢查”等五個控制類,這些控制類全部沒有屬性,僅有操作,下面我們確定這幾

43、個類的操作。,圖7.25 “售書處理” 用例的控制類操作設計,,4方法設計 由于操作設計只確定各個操作的名稱和參數(shù),因此,操作設計僅是操作的外部特征設計。每一個操作都需要采用一定的數(shù)據(jù)結(jié)構、算法和流程,并采用一段程序代碼來實現(xiàn)。確定操作的內(nèi)部數(shù)據(jù)結(jié)構、算法和流程的設計被稱為方法設計。 方法設計包括數(shù)據(jù)結(jié)構設計、算法設計和流程設計。方法設計需要立足于采用的程序設計語言。數(shù)據(jù)結(jié)構設計應該采用所選用的程序設計語言能夠提供的數(shù)據(jù)結(jié)構;算法設計要根據(jù)操作所實現(xiàn)的功能而定;流程設計的結(jié)果可以用程序流程圖或活動圖來描述。,圖7.26 產(chǎn)生待售圖書流程圖,,5狀態(tài)設計 對象在其生命周期中,會

44、存在多種狀態(tài),認識和識別對象在生命周期中所處的各種狀態(tài),以及狀態(tài)之間的切換條件,是全面把握對象的關鍵。一般用狀態(tài)圖來描述類中對象的狀態(tài)。圖7.27所示是書店圖書類所處的幾種狀態(tài)。,圖7.27 書店圖書類狀態(tài)圖,,7.5.3 關系設計 不同的面向?qū)ο蟪绦蛟O計語言對關系的支持程度是不一樣的。 例如,C++支持多重繼承,而Java就不支持多重繼承。有些程序設計語言支持關聯(lián),有些不支持關聯(lián)。本節(jié)主要討論在不過多地考慮程序設計語言的情況下實現(xiàn)對象關系的一般方法。,1關聯(lián)關系設計 1) 二元關聯(lián)的實現(xiàn) 二元關聯(lián)存在一對一、一對多、多對多三種形式,其關聯(lián)的實現(xiàn)方法也有差異。,(1) 一對一

45、二元關聯(lián)。一對一二元關聯(lián)可通過單向?qū)Ш胶碗p向?qū)Ш絹韺崿F(xiàn)。 單向?qū)Ш健R獙崿F(xiàn)一對一關聯(lián)的單向?qū)Ш?,可以只在導航源的類中增加另一個類的關鍵屬性。例如,圖7.28(a)描述“系”和“系主任”兩個類是一對一的關聯(lián)關系,單向從“系”導航到“系主任”類。在“系”中增加“主任編號”就實現(xiàn)了兩個類之間的單向?qū)Ш?見圖7.28(b))。 雙向?qū)Ш?。一對一關聯(lián)的雙向?qū)Ш叫枰P聯(lián)的兩個類中分別增加對方的關鍵屬性。例如,圖7.29(b)是對圖(a)中雙向?qū)Ш降膶崿F(xiàn)。,圖7.28 一對一關聯(lián)單向?qū)Ш降膶崿F(xiàn),,圖7.29 一對一關聯(lián)雙向?qū)Ш降膶崿F(xiàn),,(2) 一對多二元關聯(lián)。兩個存在一對多關聯(lián)關系的類,其導航方

46、向肯定是由多重性為多的類導航到多重性為一的類,而不會相反。在多重性為多的一方類中增加另一個類的關鍵屬性就實現(xiàn)了關聯(lián)的導航關系。例如,圖7.30(b)是對圖(a)中一對多單向?qū)Ш降膶崿F(xiàn)。,圖7.30 一對多關聯(lián)單向?qū)Ш降膶崿F(xiàn),(3) 多對多二元關聯(lián)。多對多二元關聯(lián)的實現(xiàn)需要在兩個類之間增加一個新類,用另外兩個類中的關鍵屬性作為這個類的屬性。例如,圖7.31(a)中,“課程”和“教師”兩個類之間存在多對多的關聯(lián)關系。為了實現(xiàn)這兩個類之間的雙向關聯(lián),需要在它們之間增加一個“授課”類,并把“課程”和“教師”兩個類的關鍵屬性“課程編號”和“教師編號”作為“授課”類的屬性。這樣把兩個多對多的二元關聯(lián)就轉(zhuǎn)化

47、成為三個類中兩兩之間的一對多的關聯(lián),其導航關系分別是從“授課”類到另外兩個類(見圖7.31(b))。,圖7.31 多對多關聯(lián)的實現(xiàn),,(4) 關聯(lián)類的二元關聯(lián)。存在關聯(lián)類的二元關聯(lián)可以分下面幾種情況分別處理。 多對多關聯(lián)。存在關聯(lián)類多對多的二元關聯(lián),需要轉(zhuǎn)化成為兩個類分別與所關聯(lián)類的一對多的關聯(lián),在關聯(lián)類除了保留原有屬性之外,再增加另外兩個類的關鍵屬性。圖7.32(a)中,“書店”和“出版社”兩個類之間存在多對多關聯(lián),它們的關聯(lián)類是“訂書”。把這個關聯(lián)分成為圖(b)的兩個一對多的二元關聯(lián),在“訂書”類中增加“書店編號”和“出版社編號”兩個屬性。,圖7.32 關聯(lián)類二元多對多關聯(lián)的實現(xiàn),,

48、 一對多關聯(lián)。帶有關聯(lián)類的一對多二元關聯(lián)實現(xiàn)有如下兩種方法。第一種方法是按照一對多無關聯(lián)類的方法,先實現(xiàn)兩個類的關聯(lián)。然后,再建立關聯(lián)類與多方類的關聯(lián)。圖7.33(a)中,“系”和“教師”之間存在一對多關聯(lián),“考核”是關聯(lián)類。先在“教師”類中增加“系名”屬性,實現(xiàn)“系”和“教師”兩個類的單向關聯(lián)關系。再在關聯(lián)類“考核”中增加“教師編號”屬性,與“教師”類建立起一對一的單向關聯(lián)(見圖7.33(b))。第二種方法是取消關聯(lián)類,把關聯(lián)類中的屬性增加到多重性為多的類中。通過這種方法從圖7.33(a)可以得出圖7.33(c)。把“考核”類中的“考核時間”和“考核結(jié)果”兩個屬性增加到“教師”類中。,圖7.

49、33 關聯(lián)類二元一對多關聯(lián)的實現(xiàn),, 一對一關聯(lián)。實現(xiàn)一對一的有關聯(lián)類的關聯(lián)有如下三種方法。 第一種方法是仍然保持這三個類。如果是單向關聯(lián),則在導航源類中增加導航目標類的關鍵屬性,在關聯(lián)類中增加導航源的關鍵屬性。例如,圖7.34(a)中,“系主任”與“系”兩個類之間是一對一的單向?qū)Ш疥P聯(lián)。實現(xiàn)時,在“系主任”類中增加“系”類的關鍵屬性“系名”,在關聯(lián)類“管理”類中增加“系主任”類的關鍵屬性“主任編號”(見圖7.34(b))。如果是雙向?qū)Ш?,在兩方都增加對方的關鍵屬性,在關聯(lián)類中增加其它兩個類任意一個的關鍵屬性。,第二種辦法是把關聯(lián)類合并到其中任意一個類中,成為二元無關聯(lián)類的關聯(lián),見圖7.

50、34(c)。 第三種辦法是把三個類合成為一個類,見圖7.34(d)。,圖7.34 關聯(lián)類二元一對一關聯(lián)的實現(xiàn),,2) 三元關聯(lián)的實現(xiàn) 我們假定存在關聯(lián)類,然后討論三元關聯(lián)的實現(xiàn),這有以下三種方法。 (1) 維持法。該方法是維持三元關聯(lián)關系不變,三個存在關聯(lián)關系的類保持不變,給關聯(lián)類中增加其它三個類的關鍵屬性。例如,圖7.35(a)中,“教師”、“班級”和“課程”存在“授課”的三元關聯(lián),圖(b)是對圖(a)中這種關系的實現(xiàn)。,圖7.35 維持法實現(xiàn)三元關聯(lián),,(2) 降元法。降元法是把三元關聯(lián)首先轉(zhuǎn)化為三個有關聯(lián)關系的類并分別與關聯(lián)類的二元關聯(lián),再按二元關聯(lián)的方法實現(xiàn)其關聯(lián)關系

51、。例如,可以把圖7.35(a)的三元關聯(lián)轉(zhuǎn)化為圖7.36的三個二元關聯(lián),然后按二元關聯(lián)的方法實現(xiàn)關聯(lián)。 (3) 簡并法。在三元關聯(lián)中,如果其中一個類的多重性為1,其它兩個為多,則可以用簡并法讓這個類與關聯(lián)類形成二元關聯(lián),關聯(lián)性不變。例如,圖7.37(b)是用簡并法對圖7.37(a)的三元關聯(lián)的實現(xiàn)。,圖7.36 降元法實現(xiàn)三元關聯(lián),,圖7.37 簡并法實現(xiàn)三元關聯(lián),,2組成關系設計 一般面向?qū)ο蟪绦蛟O計語言都直接提供對組成關系的支持。在定義整體類時,把其部分對象作為整體類的成員,這樣就構成了整體與部分的組成關系。因此組成關系的設計十分簡單。 3泛化關系設計 所有面向?qū)ο?/p>

52、程序設計語言都提供繼承支持,因此泛化關系本身就被面向?qū)ο蟪绦蛟O計語言所支持。但有些語言僅支持單繼承,不支持多繼承,因此,對設計模型中的多繼承要進行必要處理。一種方法是把多繼承轉(zhuǎn)化成為單繼承,另一種方法是用接口來實現(xiàn)多繼承。下面我們介紹用接口來實現(xiàn)多繼承的方法。,圖7.38是一個多繼承的例子?!捌嚒崩^承了“陸上交通工具”和“機動交通工具”兩個類(見圖7.38(a))。為了讓“汽車”能夠具有“陸上交通工具”和“機動交通工具”的特性,首先定義“陸上交通工具”和“機動交通工具”的接口,然后在“汽車”類中實現(xiàn)這兩個接口,這樣就讓“汽車”類擁有了“陸上交通工具”和“機動交通工具”的操作(見圖7.38(b

53、))。,圖7.38 接口實現(xiàn)多繼承,,7.5.4 類的優(yōu)化 通過分析和設計所確定的類還需要進一步地進行優(yōu)化。對類進行優(yōu)化的原則是使類能夠明確地表示事物實體,并具有相對獨立性、一致性和適中的規(guī)模。在數(shù)據(jù)庫設計中,一般根據(jù)規(guī)范原則檢查關系的優(yōu)劣,如果一個關系符合范式規(guī)約,就可以說該關系是規(guī)范的。否則就需要對該關系進行優(yōu)化處理,通過對關系的分解使其滿足范式要求。,規(guī)范的類將滿足三級規(guī)范要求。 一級規(guī)范要求在類中不存在重復的屬性項; 二級規(guī)范是在滿足一級規(guī)范的基礎上,類中不存在對主鍵屬性部分依賴的屬性; 三級規(guī)范則要求在滿足二級規(guī)范的基礎上,在類中不存在傳遞依賴關系。 下

54、面我們分三步對由圖7.39“圖書訂單”所產(chǎn)生的“圖書訂單”類(見圖7.40)進行優(yōu)化。,圖7.39 書店信息系統(tǒng)的圖書訂單,,1一級規(guī)范 一級規(guī)范要求在類中不存在重復的屬性。在類中如果存在重復的屬性,則需要把所有重復的屬性從類中抽取出來,構成一個新類。在圖7.40“圖書訂單”類中,從“計劃單序號”到“實際到貨日期”8個屬性都是重復的。為了符合一級規(guī)范的要求,需要把這些屬性從“圖書訂單”類中提取出來,形成新的“訂單圖書”類(見圖7.41)。訂單圖書是本訂單所訂購的圖書,它是圖書訂單的有機構成部分,因此,“訂單圖書”類與“圖書訂單”類是組成關系。在一個訂單中最多可以有20種圖書,多重性標為1

55、...20。,圖7.40 初步的“圖書訂單”類,,圖7.41 一級規(guī)范后的“圖書訂單”類,2二級規(guī)范 二級規(guī)范要求在類中不存在部分依賴關系的屬性,要把不完全依賴關鍵屬性的非關鍵屬性從類中提取出來。在圖7.41中,“訂單圖書”類的關鍵屬性是“訂單號”和“書號”,但是“書名”、“作者”、“單價”三個屬性則僅依賴“書號”關鍵屬性,存在部分依賴關系,所以需要進行優(yōu)化。二級規(guī)范后的“圖書訂單”類見圖7.42。,圖7.42 二級規(guī)范后的“圖書訂單”類,,3三級規(guī)范 三級規(guī)范要求消除在類的屬性中存在的傳遞依賴關系。在“圖書訂單”類中,“出版社編號”依賴“訂單號”,但是從“出版社名稱”到“賬號”6

56、個屬性僅依賴“出版社編號”,并不直接依賴“訂單號”,這是典型的傳遞依賴關系,需要消除。三級規(guī)范之后的“圖書訂單”類見圖7.43。,圖7.43 三級規(guī)范后的“圖書訂單”類,,4進一步優(yōu)化 圖7.43中“圖書訂單”的屬性仍然偏多,并且“合計”和“總計”兩個屬性屬于派生屬性,可以去掉??梢园褞讉€費用屬性獨立出來形成一個新的“訂單費用”類,作為“圖書訂單”類的部分類。這樣優(yōu)化之后的類圖見圖7.44。,圖7.44 “圖書訂單”優(yōu)化類圖,,7.6 數(shù)據(jù)庫設計,7.6.1 概述 數(shù)據(jù)庫設計是指根據(jù)業(yè)務需求、信息需求和處理需求,確定信息系統(tǒng)中的數(shù)據(jù)庫結(jié)構、數(shù)據(jù)操作和數(shù)據(jù)一致性約束的過程。 數(shù)

57、據(jù)庫結(jié)構分外模式、模式和內(nèi)模式三級結(jié)構。外模式也稱用戶模式或子模式,是用戶所看到的數(shù)據(jù)視圖。模式是綜合所有外模式得出的一致的公共數(shù)據(jù)視圖。內(nèi)模式描述數(shù)據(jù)的物理結(jié)構和存儲方式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)中的內(nèi)部表示。,數(shù)據(jù)庫設計的基本過程可分為需求分析、概念設計、邏輯設計和物理設計四個步驟,見圖7.45。 需求分析的主要工作是調(diào)查和分析用戶的業(yè)務活動、信息和處理的需求,以及各種約束條件,形成數(shù)據(jù)庫設計的需求說明。在信息系統(tǒng)開發(fā)中,一般并不就數(shù)據(jù)庫設計專門進行需求分析,而是在業(yè)務分析(見第4章)和需求分析(見第5章)中進行考慮。,圖7.45 數(shù)據(jù)庫設計的基本過程,,數(shù)據(jù)庫設計的方法與信息系統(tǒng)所采用的

58、開發(fā)方法存在著密切的關系,同時還與所采用的數(shù)據(jù)庫模型(包括層次模型、網(wǎng)狀模型、關系模型、對象模型等)有關。由于本教材主要介紹采用面向?qū)ο蠓椒ㄩ_發(fā)信息系統(tǒng),同時考慮到關系模型是迄今最為成熟的數(shù)據(jù)庫模型,因此,我們主要討論采用面向?qū)ο蠓椒ê完P系模型的數(shù)據(jù)庫設計工作。,7.6.2 概念設計 數(shù)據(jù)庫的概念設計是針對現(xiàn)實世界,通過對其中信息實體的收集、分類、聚集和概括,建立數(shù)據(jù)庫概念結(jié)構的過程。 概念結(jié)構也叫概念數(shù)據(jù)模型(Conceptual Data Model),它應該反映現(xiàn)實世界中組織的業(yè)務模式、信息結(jié)構、信息間的相互制約關系,以及對信息存儲、查詢和加工的處理要求等。概念數(shù)據(jù)模型是對數(shù)

59、據(jù)的抽象描述,它應該獨立于具體的數(shù)據(jù)處理的細節(jié)和數(shù)據(jù)庫管理系統(tǒng)。,概念設計一般分為局部視圖設計和全局視圖集成兩個步驟。首先從各部門或用戶的角度設計出反映局部實體聯(lián)系的局部視圖(外模式),然后把各局部視圖集成為能夠反映組織全貌的全局視圖(模式)。 傳統(tǒng)方法通常采用實體聯(lián)系圖(ER圖)作為概念設計的工具,同時用ER圖描述概念數(shù)據(jù)模型。如果采用UML建模,則可以直接用系統(tǒng)分析和系統(tǒng)設計得到的類圖作為概念數(shù)據(jù)模型。,下面我們分別介紹采用這兩種方法所進行的概念設計。 1ER概念設計 1) 局部視圖設計 局部視圖設計也被稱為外模式設計,其任務是從用戶角度設計出能反映局部現(xiàn)實空間數(shù)據(jù)關

60、系的局部概念結(jié)構。 局部視圖設計的第一步工作是劃分局部視圖的范圍。局部視圖范圍通常是根據(jù)部門、用戶或用戶所處的角度來進行自然劃分。,局部視圖設計的第二步工作是識別實體. 局部視圖設計的第三步工作是實體分析。實體分析包括實體屬性分析和實體關系分析,并用ER圖描述實體-關系分析的結(jié)果。 在圖7.46中,我們給出書店圖書銷售管理中讀者選書的局部視圖。由讀者從書架的架存圖書中上把自己所需要的圖書選出來,作為待售圖書。架存圖書和待售圖書與書目存在多對一的關聯(lián)關系。,圖7.46 讀者選書的ER圖,,2) 全局視圖設計 全局視圖也被稱為全局概念結(jié)構,它是完整表示一個信息系統(tǒng)的合理、一

61、致的數(shù)據(jù)庫概念結(jié)構。全局視圖設計需要逐一地把各個局部視圖綜合成為最終的全局視圖。在綜合過程中,需要進一步對實體和關系是否作為最終數(shù)據(jù)存儲進行確認,并消除各局部視圖之間存在的沖突,得出合理、一致的全局視圖。,消除沖突之后的全局視圖是概念上不存在矛盾的概念數(shù)據(jù)庫結(jié)構, 但它并不一定是合理的概念數(shù)據(jù)庫結(jié)構。一個好的全局視圖,除了能夠準確、全面反映用戶的功能需求外,還應該滿足實體個數(shù)盡可能少、實體的屬性盡可能少、實體間的聯(lián)系無冗余等條件。為了保證其合理性,還需要對全局視圖進行優(yōu)化。圖7.47給出了書店圖書銷售的全局概念結(jié)構。,圖7.47 書店圖書銷售全局概念數(shù)據(jù)庫結(jié)構(ER),,2UML概念設計

62、 UML與ER有本質(zhì)區(qū)別。UML比ER使用范圍要寬廣得多,它是一種標準的建模語言,可被用來進行軟件和信息系統(tǒng)開發(fā)的全過程建模,而ER模型僅用在數(shù)據(jù)庫的概念設計階段。UML與ER都可以用來建立數(shù)據(jù)庫概念模型,但兩者的機理完全不同。,由于UML基于面向?qū)ο蠓椒?,要保持方法的一致性,最好選擇面向?qū)ο髷?shù)據(jù)庫。但是,面向?qū)ο髷?shù)據(jù)庫目前并沒有成熟的產(chǎn)品,即便是采用面向?qū)ο蠓椒ê铜h(huán)境開發(fā)信息系統(tǒng),仍然需要采用關系型數(shù)據(jù)庫來存儲和管理數(shù)據(jù)。在此,我們主要討論采用UML建模,用關系型數(shù)據(jù)庫的數(shù)據(jù)庫概念設計,我們簡稱為UML概念設計。,UML概念設計的基本工作是從系統(tǒng)分析和系統(tǒng)設計建立的各種類圖中抽取持久型類,確

63、定持久型類之間的關系,并用類圖描述這種關系,把類圖作為數(shù)據(jù)庫概念設計的結(jié)果。,1) 抽取持久型類 持久型類是指類的完整信息要在數(shù)據(jù)庫中存儲的類。類可以分為界面類、實體類和控制類三種類型。界面類和控制類的信息一般不需要長久存儲,持久型類只可能是實體類。但并不是所有實體類信息都要長久存儲,持久型類只需要從那些信息需要長久存儲的實體類中抽取。,2) 確定類關系 在系統(tǒng)分析和設計中,并沒有建立立足于整個信息系統(tǒng)的整體類圖,而只是建立了一個個針對具體用例的類圖。也就是說所提取的持久型類被分散在各個用例類圖之中了。接下來需要對提出的持久型類進行分析,以確定它們相互之間的關系,建立起反映這些類關

64、系的類圖。根據(jù)分析,最終確定出書店銷售部分的持久型類關系,如圖7.48所示。,圖7.48 書店圖書銷售全局概念數(shù)據(jù)庫結(jié)構(UML),,7.6.3 邏輯設計 邏輯設計是將現(xiàn)實世界的概念數(shù)據(jù)模型設計成為適應于特定數(shù)據(jù)庫管理系統(tǒng)的邏輯數(shù)據(jù)模式。 邏輯數(shù)據(jù)模式也被簡稱為邏輯模型或數(shù)據(jù)模式,關系數(shù)據(jù)庫的數(shù)據(jù)模式是關系模式。如果數(shù)據(jù)庫采用關系數(shù)據(jù)庫,則需要把ER圖或類圖描述的概念數(shù)據(jù)模型轉(zhuǎn)換為等價的關系模式及其約束。 數(shù)據(jù)庫邏輯設計的結(jié)果是一組關聯(lián)的規(guī)范關系,一系列經(jīng)過結(jié)構化的業(yè)務規(guī)則,以及數(shù)據(jù)庫存取的安全性設計。,邏輯設計的基本工作包括: 由概念數(shù)據(jù)模型導出關系模式; 規(guī)范化關系模式;

65、 結(jié)構化業(yè)務規(guī)則; 數(shù)據(jù)庫存取安全性設計。 1由概念數(shù)據(jù)模型導出關系模式 關系模式的基本內(nèi)容是一組關聯(lián)的關系。概念數(shù)據(jù)模型具有ER圖和類圖兩種形式,下面我們分別介紹這兩種形式向關系模式的轉(zhuǎn)換。,1) ER圖轉(zhuǎn)換為關系模式 對于用ER圖描述的概念數(shù)據(jù)模型,再轉(zhuǎn)換為關系模式時,需要把ER圖中每一個實體或關系轉(zhuǎn)換為關系模式中的一個關系。 例如,可把圖7.47書店圖書銷售的ER圖轉(zhuǎn)換為圖7.49所示的關系模式。,圖7.49 書店圖書銷售的關系模式(由ER圖轉(zhuǎn)換而來),,圖書銷售的ER圖中有“書目”、“上架圖書”、“架存圖書”、“待售圖書”、“售出圖書”和“職工”六個實體,把它們轉(zhuǎn)

66、換成為關系模式中的六個同名的關系,這六個實體的屬性也轉(zhuǎn)換成為關系模式中的同名關系的屬性。其中,“上架圖書”、“架存圖書”、“待售圖書”和“售出圖書”中的“書號”屬性是這幾個關系的關鍵屬性,同時又可通過這個屬性與“書目”建立起關聯(lián)關系。“上架圖書”、“待售圖書”和“售出圖書”中的“職工編號”屬性與“職工”建立了關聯(lián)的單向?qū)Ш疥P系。,2) 類圖轉(zhuǎn)換為關系模式 如果用類圖描述概念數(shù)據(jù)模型,則需要把類圖中的每一個類轉(zhuǎn)換為一個關系,類的屬性作為關系的屬性,在轉(zhuǎn)換時還需要在關系模式中反映類與類之間的關系。 (1) 關聯(lián)關系的轉(zhuǎn)換。 (2) 組成關系的轉(zhuǎn)換。 (3) 泛化關系的轉(zhuǎn)換。,例如,可把圖7.50(a)所示的類圖轉(zhuǎn)換成為圖(b)所示的關系模式。下面我們分幾種情況討論類之間存在不同關系時,向關系模式轉(zhuǎn)換的方法。,圖7.50 一對一關聯(lián)單向?qū)Ш睫D(zhuǎn)換的關系模式,,(1) 關聯(lián)關系的轉(zhuǎn)換。在7.5.3節(jié)的“關聯(lián)關系設計”中,詳細討論了對類之間關聯(lián)關系的設計方法。通過關聯(lián)關系設計之后的類圖,所轉(zhuǎn)換而成的關系模式完全能夠反映類之間所存在的關聯(lián)關系。例如,圖7.50(b)的兩個關系

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!