版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蠓治雠c設(shè)計第一頁,共一百零八頁,2022年,8月28日第一章緒論1.1面向?qū)ο蠓椒ɑ舅枷?.2面向?qū)ο蠓椒òl(fā)展簡史1.3面向?qū)ο蠓椒ǖ幕靖拍詈驮瓌t1.4面向?qū)ο筌浖到y(tǒng)模型第二頁,共一百零八頁,2022年,8月28日21.1面向?qū)ο蠓椒ɑ舅枷?/p>
以功能為中心的軟件開發(fā)方法(結(jié)構(gòu)化方法)
以數(shù)據(jù)為中心的軟件開發(fā)方法(信息建模方法)低內(nèi)聚,高耦合,缺乏靈活性和可維護性分析與設(shè)計階段采用的概念和表示不一致對功能的處理較弱,不適合具有復(fù)雜功能的系統(tǒng)第三頁,共一百零八頁,2022年,8月28日3以事物為中心將數(shù)據(jù)與對數(shù)據(jù)的操作看作一個整體,即對象是一種認(rèn)識論、方法論是一種運用對象、類、繼承、封裝、聚合、關(guān)聯(lián)、消息和多態(tài)性等概念和原則來構(gòu)造系統(tǒng)的軟件開發(fā)方法,其要點是(1)認(rèn)識事物及其相互關(guān)系(2)對事物歸類,并實現(xiàn)繼承(3)強調(diào)事物的自主性面向?qū)ο蠓椒ɑ舅枷氲谒捻?,共一百零八頁?022年,8月28日4高可維護性:回避在不穩(wěn)定的基礎(chǔ)上建造系統(tǒng)。尋找可構(gòu)造的元素作為系統(tǒng)構(gòu)造的基礎(chǔ),可構(gòu)造元素的變化不會涉及到系統(tǒng)的其它成分,不會影響到整體??蓮?fù)用性:功能復(fù)用是代碼級的,它基于必要的功能理解,然而功能的語義是不一致的、多義的。軟件復(fù)用是全方位的,不但是代碼級的復(fù)用,還應(yīng)該有源程序級的復(fù)用,甚至包括分析和設(shè)計文檔的復(fù)用。程序無關(guān)性:任何機器環(huán)境下,使用任意程序語言所編的程序,都應(yīng)該是邏輯通用的。與機器相關(guān)的成分應(yīng)該與處理邏輯無關(guān)。面向?qū)ο筌浖_發(fā)方法的目標(biāo)第五頁,共一百零八頁,2022年,8月28日51.2面向?qū)ο蠓椒òl(fā)展簡史
源于面向?qū)ο蟪绦蛟O(shè)計語言
1967,Simula671970s,Smalltalk,Modula1980s-90s,C++,Objective-C,Eiffel,java向分析、設(shè)計甚至測試、維護等整個軟件生命周期擴展
1990s,統(tǒng)一建模語言(UnifiedModelingLanguage,UML)誕生第六頁,共一百零八頁,2022年,8月28日61.3面向?qū)ο蠓椒ǖ幕靖拍詈驮瓌t基本概念
類與對象,屬性與操作,繼承、聚合和關(guān)聯(lián)基本原則
抽象,分類,封裝,消息,多態(tài)性第七頁,共一百零八頁,2022年,8月28日7
對象(屬性與操作,封裝與消息)?客觀存在的事物,包括有形對象和無形對象?在面向?qū)ο蟮南到y(tǒng)模型中,對象是描述客觀事物的一個實體,由屬性和操作構(gòu)成。
屬性:描述對象靜態(tài)特征操作:描述對象動態(tài)特征?體現(xiàn)了封裝原則,目的是實現(xiàn)信息隱蔽(事物的獨立自主性)??梢娦裕罕┞秾傩院筒僮鞯姆绞较ⅲ赫埱笃渌麑ο筇峁┓?wù)的方式,如函數(shù)調(diào)用第八頁,共一百零八頁,2022年,8月28日8
類(抽象,分類)?類是具有共同屬性和操作的對象的集合,對象是類的一個實例,類用于創(chuàng)建對象。?體現(xiàn)了抽象及分類原則,是人們分析問題的基本方法
抽象:忽略事物的非本質(zhì)特征,抽取共同的本質(zhì)特征分類:把具有共性的事物劃分為一類第九頁,共一百零八頁,2022年,8月28日9
抽象
?類是對象的抽象,一般類是對特殊類的抽象?數(shù)據(jù)抽象:根據(jù)施加在數(shù)據(jù)上的操作來定義數(shù)據(jù)的類型?過程抽象:將確定的功能定義為單一實體(確定的功能是由一系列操作完成的)?抽象的好處:1)復(fù)雜問題簡單化2)實現(xiàn)可替換性第十頁,共一百零八頁,2022年,8月28日10例2:對下列事物進行分類和抽象顯微鏡、摩天樓、望遠鏡、飛機、鉚釘、管道、卡車、單向閥、指數(shù)、過濾器、壓力器、自行車、正旋、巖洞、眼鏡、車庫、滑翔機、平方根、鐵釘、水龍頭、螺釘、余旋、螺栓、帳篷、雙筒鏡、車棚、雜物堆房、摩托車、帆船、瞄準(zhǔn)器例1:數(shù)據(jù)抽象和過程抽象
數(shù)據(jù)抽象:學(xué)生、客戶、電子郵件、汽車過程抽象:交易、答辯、備課、開門第十一頁,共一百零八頁,2022年,8月28日11光學(xué)設(shè)備類:顯微鏡、眼鏡、望遠鏡、瞄準(zhǔn)器、雙筒鏡管道控制類:管道、單向伐、水龍頭、過濾器、壓力器交通工具類:自行車、帆船、卡車、飛機、滑翔機、摩托車五金類:鐵釘、螺釘、螺栓、鉚釘建筑類:帳篷、巖洞、車棚、車庫、雜物堆房、摩天樓數(shù)學(xué)概念類:平方根、指數(shù)、正旋、余旋
光學(xué)設(shè)備類:聚焦度、變焦長度、單雙鏡形式、用途功能管道控制類:時速、功率,動力資源、消耗、用途、五金類:材料、直徑、長度、硬度、用途建筑類:面積、高度、材料、用途數(shù)學(xué)概念類:概念定義、公式內(nèi)容、用途
抽取同類事物的共同性質(zhì):
分類:第十二頁,共一百零八頁,2022年,8月28日12繼承?在不同程度上運用抽象和分類原則,可以得到較一般的類和較特殊的類。?繼承:特殊類自動擁有一般類所具有的全部屬性和操作,也可稱為一般類對特殊類的泛化。?多重繼承:一個特殊類同時繼承兩個以上一般類的屬性和操作?繼承的重要作用:1)簡化對事物的認(rèn)識和描述
2)有利于軟件復(fù)用第十三頁,共一百零八頁,2022年,8月28日13學(xué)生姓名年齡……研究生導(dǎo)師研究方向……本科生班級專業(yè)……人員姓名年齡……研究生導(dǎo)師研究方向……職工部門職務(wù)……在職研究生……運輸工具輪船車輛飛機卡車轎車?yán)^承:多繼承:繼承層次:第十四頁,共一百零八頁,2022年,8月28日14多態(tài)性?多態(tài)性:特殊類可以對繼承來的屬性和操作做出自己的解釋,即在繼承關(guān)系的類層次結(jié)構(gòu)中可以定義同名操作或?qū)傩?,形成同一操作或?qū)傩缘亩喾N形態(tài),這樣可以按不同的行為響應(yīng)同一個消息。?多態(tài)性進一步體現(xiàn)了信息隱蔽的原則,可以實現(xiàn)接口的獨立封裝。第十五頁,共一百零八頁,2022年,8月28日15關(guān)聯(lián)
?關(guān)聯(lián)表示類之間的靜態(tài)聯(lián)系。?當(dāng)類實例化為對象后,關(guān)聯(lián)實例化為對象之間的鏈。?可以通過屬性來表達關(guān)聯(lián)。職員……公司……關(guān)聯(lián):工作第十六頁,共一百零八頁,2022年,8月28日16聚合?聚合表示對象之間的整體部分關(guān)系,具有“有一個”或“是一部分”的語義?聚合也是一種關(guān)聯(lián)。汽車…………發(fā)動機……車輪……聚合:第十七頁,共一百零八頁,2022年,8月28日17系統(tǒng)復(fù)雜性控制(包)
?包用于控制系統(tǒng)的粒度,將系統(tǒng)組成元素組織到不同的包中,可以方便系統(tǒng)整體規(guī)劃,減小系統(tǒng)分析和設(shè)計的復(fù)雜性。系統(tǒng)行為分析(狀態(tài)轉(zhuǎn)換與交互)
?系統(tǒng)運行中對象的屬性值會不斷發(fā)生變化,從而形成對象的不同狀態(tài)。描述對象狀態(tài)的轉(zhuǎn)換,可以確定對象的行為完整性;?系統(tǒng)中對象必須相互協(xié)作以完成某項功能,描述對象間的交互,可以表示系統(tǒng)實現(xiàn)功能的整體行為以及對象之間的并行性。第十八頁,共一百零八頁,2022年,8月28日18實現(xiàn)高可維護性:
1)類是封裝了操作的一個“代碼級復(fù)用”程序模板,類的使用,如同數(shù)據(jù)變量一樣簡單。類的對象可成為系統(tǒng)的構(gòu)造元素。
2)對于“對象變量”的操作不同于程序調(diào)用,采用了消息,“消息”是并發(fā)的機制,回避了功能調(diào)用的過程性,使系統(tǒng)成為可構(gòu)造和高可維護的實現(xiàn)可復(fù)用性:
1)對象語義的表示唯一,這使得代碼級的復(fù)用簡單且自然。2)類繼承性是源程序級的復(fù)用機制,允許用已有的程序構(gòu)架,簡單地構(gòu)造新的應(yīng)用,并仍保持易維護性。實現(xiàn)程序無關(guān)性:
類的多態(tài)性以及動態(tài)綁定(動態(tài)聯(lián)編)技術(shù),是面向?qū)ο蠓椒ㄓ袆e于結(jié)構(gòu)化方法的實質(zhì)性突破。它提供獨立接口的實現(xiàn)技術(shù),這樣可以將與機器相關(guān)的成分獨立出來,為程序無關(guān)性奠定了基礎(chǔ)。面向?qū)ο蠓椒▽崿F(xiàn)其目標(biāo)的途徑第十九頁,共一百零八頁,2022年,8月28日191.4面向?qū)ο筌浖到y(tǒng)模型系統(tǒng)模型
為了理解和實現(xiàn)所要建造的軟件系統(tǒng),對系統(tǒng)及其工作環(huán)境的簡化和形式化描述。一個完整的軟件系統(tǒng)模型通常包括若干不同層次、不同視角的模型
層次:系統(tǒng)的抽象程度視角:系統(tǒng)的不同方面(交互、功能、實現(xiàn)、組織…)第二十頁,共一百零八頁,2022年,8月28日20面向?qū)ο竽P鸵晥D用況視圖進程視圖部署視圖設(shè)計視圖實現(xiàn)視圖結(jié)構(gòu)視圖第二十一頁,共一百零八頁,2022年,8月28日21結(jié)構(gòu)視圖設(shè)計視圖進程視圖實現(xiàn)視圖部署視圖用況視圖靜態(tài)包圖類、對象圖構(gòu)件圖部署圖用況圖動態(tài)交互圖、狀態(tài)圖、活動圖用況視圖:軟件系統(tǒng)的內(nèi)外交互情況設(shè)計視圖:軟件系統(tǒng)的功能需求進程視圖:軟件系統(tǒng)的控制與驅(qū)動實現(xiàn)視圖:軟件系統(tǒng)的配置與管理部署視圖:軟件系統(tǒng)的物理分布與安裝結(jié)構(gòu)視圖:軟件系統(tǒng)的體系結(jié)構(gòu)面向?qū)ο竽P鸵晥D的構(gòu)成第二十二頁,共一百零八頁,2022年,8月28日22第二章面向?qū)ο蟮姆治黾夹g(shù)2.1分析面臨的主要問題2.2面向?qū)ο蟮姆治瞿P?.3面向?qū)ο蟮姆治鲞^程第二十三頁,共一百零八頁,2022年,8月28日232.1分析面臨的主要問題?OOA與OOD的界限?對問題域和系統(tǒng)責(zé)任的理解?人與人之間的交流?需求的不斷變化?軟件復(fù)用的要求第二十四頁,共一百零八頁,2022年,8月28日24OOA與OOD的界限?OOA:運用面向?qū)ο蠓椒ǎ瑢栴}域和系統(tǒng)責(zé)任進行分析和理解,找出描述問題域和系統(tǒng)責(zé)任所需的對象,定義對象的屬性和操作以及對象之間的關(guān)系,建立一個符合問題域,滿足用戶需求的OOA模型。?OOA不考慮與系統(tǒng)具體實現(xiàn)有關(guān)的因素,而將其留給OOD去處理,因此OOD包括兩方面的工作:1)根據(jù)實現(xiàn)條件對OOA模型作某些必要的修改和調(diào)整。2)針對具體實現(xiàn)條件,建立人機界面、數(shù)據(jù)存儲和控制驅(qū)動等模型。第二十五頁,共一百零八頁,2022年,8月28日25問題域和系統(tǒng)責(zé)任軟件分析人員必須盡快了解和明確:1)問題域---被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域,現(xiàn)實世界中,要求系統(tǒng)處理的業(yè)務(wù)范圍。2)系統(tǒng)責(zé)任---所開發(fā)的系統(tǒng)應(yīng)該具備的功能。問題域不等于系統(tǒng)責(zé)任,但它們有很多重合部分
金融業(yè)務(wù)
個人儲蓄代發(fā)工資收費業(yè)務(wù)貸款業(yè)務(wù)辦公管理數(shù)據(jù)備份系統(tǒng)責(zé)任問題域第二十六頁,共一百零八頁,2022年,8月28日26人與人之間的交流
交流包括三部分人員之間:1)開發(fā)人員與用戶(需求方)2)開發(fā)人員之間3)開發(fā)人員與管理人員?交流工具包括談話和文檔
用戶文檔,技術(shù)文檔,管理文檔第二十七頁,共一百零八頁,2022年,8月28日27需求的不斷變化樹立“需求變化是絕對的”的觀念,從分析到設(shè)計,始終注意“易維護修改”這一原則。需求變化時,最容易變化的是系統(tǒng)功能。在面向?qū)ο蠓椒ㄖ?,最容易變化的成分是對象中的操作,其次是對象間的交互與協(xié)作,第三是對象的屬性。對象本事是相對穩(wěn)定的。隱蔽內(nèi)部操作,抽取高層類,可以使系統(tǒng)穩(wěn)定且易于應(yīng)對需求變化。第二十八頁,共一百零八頁,2022年,8月28日28軟件復(fù)用的要求在已有的軟件成分基礎(chǔ)上建造系統(tǒng),是新型軟件開發(fā)方法的一個重要原則。復(fù)用已有的軟件成分,不僅是提高開發(fā)效率的資源集約化生產(chǎn)方式,更重要的原因在于復(fù)用已有軟件成分可以保證其相對正確性,回避不宜保證的軟件質(zhì)量問題。復(fù)用是多方面的,從執(zhí)行代碼、源代碼到設(shè)計文檔,乃至分析文檔。第二十九頁,共一百零八頁,2022年,8月28日292.2面向?qū)ο蟮姆治瞿P湍繕?biāo):用規(guī)范的面向?qū)ο髨D表和文字來描述所要建造的軟件系統(tǒng),以便在用戶與系統(tǒng)分析人員之間達成共識,同時使后續(xù)工作得以繼續(xù)。內(nèi)容:
需求描述
UseCase用況圖
輔助模型Sequence交互圖Collaboration協(xié)作圖StateTransition狀態(tài)轉(zhuǎn)換圖Component包圖基本模型Class類圖
詳細說明對象層關(guān)系層特征層第三十頁,共一百零八頁,2022年,8月28日30用況圖(UseCase)
捕獲與描述用戶需求的工具類圖(Class)
類圖是系統(tǒng)模型的基礎(chǔ),描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。三個層次:?對象層:描述問題域和系統(tǒng)責(zé)任所需的對象?關(guān)系層:類之間的相互關(guān)系?特征層:類的屬性和操作(分析階段不用細化)第三十一頁,共一百零八頁,2022年,8月28日31順序圖(Sequence)
按時間順序排列在完成某一功能過程中對象之間的交互行為。
協(xié)作圖(Collaboration)
以某一對象為中心描述對象之間的交互。狀態(tài)轉(zhuǎn)換圖(StateTransition)
描述對象在生命周期內(nèi),響應(yīng)事件的狀態(tài)轉(zhuǎn)換過程,以及響應(yīng)事件后所做的反映。包圖(Component)
對關(guān)系密切的模型元素進行打包。第三十二頁,共一百零八頁,2022年,8月28日322.3面向?qū)ο蟮姆治鲞^程分析過程中各個步驟不要求按固定順序進行。所以,面向?qū)ο蟮姆治霾襟E經(jīng)常被叫做“活動”。建立UseCase發(fā)現(xiàn)對象定義屬性與服務(wù)建立結(jié)構(gòu)與連接定義:順序圖、協(xié)作圖、狀態(tài)圖建立Class詳細說明原型開發(fā)第三十三頁,共一百零八頁,2022年,8月28日33實施OOA的幾點建議:1)確定需求的工作放在前面;2)建立Class圖,可以隨時切換到其他活動;3)建立順序圖、協(xié)作圖和狀態(tài)圖的活動,放在對象識別之后,并與基本模型活動交錯進行,4)詳細說明應(yīng)分散在各項活動之中進行,最后做一次審查和補充;5)原形可以反復(fù)地進行,早期的原型可以用來證實用戶需求;6)對于規(guī)模較小系統(tǒng),分析時可以省略包圖。第三十四頁,共一百零八頁,2022年,8月28日34第三章面向?qū)ο蟮脑O(shè)計
3.1面向?qū)ο笤O(shè)計概述3.2問題域設(shè)計3.3人機交互設(shè)計3.4控制驅(qū)動設(shè)計設(shè)計3.5數(shù)據(jù)管理設(shè)計3.6構(gòu)件和部署設(shè)計第三十五頁,共一百零八頁,2022年,8月28日353.1面向?qū)ο笤O(shè)計概述按照軟件生命周期的規(guī)律,面向?qū)ο蟮姆椒▽W(xué)也包括分析活動和設(shè)計活動。分析活動和設(shè)計活動并沒有明顯的階段劃分,對應(yīng)噴泉式模型:演化維護測試實現(xiàn)設(shè)計分析–體現(xiàn)認(rèn)識事物的循環(huán)迭代性–強調(diào)開發(fā)活動的無間隙性(無明顯的階段劃分)–強調(diào)開發(fā)活動的并發(fā)性第三十六頁,共一百零八頁,2022年,8月28日36面向?qū)ο蠓治龌顒?---針對問題域和系統(tǒng)責(zé)任,不考慮與實現(xiàn)有關(guān)的因素,建立獨立于實現(xiàn)的OOA模型。面向?qū)ο笤O(shè)計活動----考慮與實現(xiàn)有關(guān)的問題,建立針對具體實現(xiàn)的OOD模型,設(shè)計內(nèi)容包括:1)根據(jù)實現(xiàn)語言對類(屬性與操作)進行描述2)人機交互界面設(shè)計3)系統(tǒng)控制部分的設(shè)計4)數(shù)據(jù)管理部分的設(shè)計5)系統(tǒng)構(gòu)件部署問題域部分
詳細說明控制驅(qū)動部分人機交互部分?jǐn)?shù)據(jù)管理部分行為圖與包圖類圖用況圖詳細說明第三十七頁,共一百零八頁,2022年,8月28日37面向?qū)ο笤O(shè)計準(zhǔn)則?以設(shè)計元素的耦合性、內(nèi)聚性以及復(fù)用性為主要準(zhǔn)則耦合性衡量耦合度的兩個方面:成分之間的信息傳輸量成分之間傳遞信息的復(fù)雜程度–交互耦合:成分之間通過消息交互,越松散越好–繼承耦合:成分之間有繼承關(guān)系,越緊密越好第三十八頁,共一百零八頁,2022年,8月28日38?內(nèi)聚性
–操作內(nèi)聚:完成單一功能的操作的內(nèi)聚最高
–類內(nèi)聚:類中沒有多余的屬性和操作,且所有屬性和操作應(yīng)該是自身的責(zé)任,每個操作也是高內(nèi)聚的。?復(fù)用性
–執(zhí)行代碼級的復(fù)用
–源代碼級的復(fù)用和繼承–分析和設(shè)計結(jié)果的復(fù)用和繼承–
體系結(jié)構(gòu)的復(fù)用和繼承(設(shè)計模式)第三十九頁,共一百零八頁,2022年,8月28日39–清晰準(zhǔn)則統(tǒng)一的用語一致的約定消息模板要少類責(zé)任表達要明確獨立處理算法和策略算法繼承關(guān)系層次不宜過深–類簡潔性準(zhǔn)則避免過多的屬性,使用繼承保持屬性量對象間協(xié)作最小化避免過多的操作保持操作的高內(nèi)聚保持內(nèi)部成員的私有性(包括屬性和操作)?其他設(shè)計準(zhǔn)則第四十頁,共一百零八頁,2022年,8月28日403.2問題域設(shè)計3.2.1引入可復(fù)用類3.2.2增設(shè)一般類3.2.3調(diào)整繼承關(guān)系3.2.4調(diào)整多態(tài)性3.2.5為提高性能進行類調(diào)整3.2.6為對象存儲增補屬性與操作3.2.7關(guān)聯(lián)的實現(xiàn)3.2.8調(diào)整屬性3.2.9設(shè)計算法3.2.10定義對象的可訪問性第四十一頁,共一百零八頁,2022年,8月28日413.2.1引入可復(fù)用類目標(biāo)---盡可能地使用可以利用的復(fù)用成分。例:已經(jīng)存在圖書類,在書店管理系統(tǒng)和圖書館系統(tǒng)中可以復(fù)用它。圖書零售圖書館藏圖書書店系統(tǒng)圖書館系統(tǒng)第四十二頁,共一百零八頁,2022年,8月28日42–可直接利用:把可復(fù)用的類加到問題域并做標(biāo)記。–只滿足部分利用:把可復(fù)用類加到問題域,用子類繼承并重新定義或新添操作。–只有部分可以利用:把可復(fù)用的類加到問題域,刪除多余部分成為新的類。注:重新規(guī)劃問題域中的復(fù)用類與原有類之間的關(guān)聯(lián)。?復(fù)用方法車輛序號顏色樣式出廠日期序號認(rèn)證()車輛序號廠商樣式序號認(rèn)證()例:新建的類已有的類換名字第四十三頁,共一百零八頁,2022年,8月28日433.2.2增設(shè)一般類?目標(biāo)---把具有相同操作和屬性的類組織在一起形成超類,建立繼承關(guān)系。?處理策略1)若子類中不需要父類中的某些操作,可在子類中重新聲明該操作為無方法的操作。2)若在不同的類中的操作具有相同語義名字,但方法不同,可利用多態(tài)機制,在一般類中為該操作做一個虛函數(shù)。3)若繼承來的操作執(zhí)行效果相同,只是缺少參數(shù)。在父類操作中加入必要的參數(shù),執(zhí)行時忽略該參數(shù)。第四十四頁,共一百零八頁,2022年,8月28日443.2.3調(diào)整繼承關(guān)系1)對不支持多繼承的編程語言,需要將多繼承關(guān)系調(diào)整為單繼承關(guān)系方法1:用聚合關(guān)系將多繼承關(guān)系轉(zhuǎn)換為單繼承關(guān)系手機……照相機……照相手機……手機……照相機……照相手機……方法1例1:第四十五頁,共一百零八頁,2022年,8月28日45學(xué)生……職工……在職學(xué)生……人員……學(xué)生……職工……身份……人員……方法1例2:身份=在職學(xué)生=學(xué)生=職工第四十六頁,共一百零八頁,2022年,8月28日46方法2例1:學(xué)生……職工……人員……在職學(xué)生……學(xué)生……在職學(xué)生……人員……職工……學(xué)生信息……職工信息……方法2:提升多繼承子類的層次,將多繼承轉(zhuǎn)換為單繼承方法2例2:第四十七頁,共一百零八頁,2022年,8月28日47學(xué)生……職工……在職學(xué)生……方法1:取消繼承方法2:改為聚合手機……照相機……手機照相機……手機……照相機……2)對不支持繼承的編程語言,需要將繼承關(guān)系取消。手機照相機……第四十八頁,共一百零八頁,2022年,8月28日48
對多態(tài)性的調(diào)整?若編程語言不支持多態(tài),需修改與相關(guān)的屬性和操作的名字,并根據(jù)情況,重新進行對象分類。多邊形線條色線形邊數(shù)頂點坐標(biāo)繪圖填充正多邊形*頂點坐標(biāo)*繪圖矩形邊數(shù)*頂點坐標(biāo)*繪圖多邊形線條色線形填充不規(guī)則多邊形邊數(shù)頂點坐標(biāo)繪圖正多邊形頂點坐標(biāo)繪圖矩形頂點坐標(biāo)繪圖例:*表示多態(tài)新增的類virtual表示不用第四十九頁,共一百零八頁,2022年,8月28日493.2.5為提高性能進行類調(diào)整影響系統(tǒng)性能的因素?為提高性能可以做的處理:1)調(diào)整對象的分布2)增加保存中間結(jié)果的屬性或類3)調(diào)整系統(tǒng)功能的并發(fā)度4)合并通信頻繁的類5)縮小類范圍,分解復(fù)雜對象數(shù)據(jù)傳輸時間數(shù)據(jù)存取時間數(shù)據(jù)處理時間第五十頁,共一百零八頁,2022年,8月28日501)調(diào)整對象的分布:頻繁交換信息的對象,盡量集中在一個物理空間處理。例如:2)增加保存中間結(jié)果的屬性或類經(jīng)常重復(fù)的某些處理,要設(shè)置中間存儲。例如:對月報表的處理,通常存儲周統(tǒng)計信息;對上半年與下半年的增長率的計算,通常要累計階段性的增長率,不要每次都從頭計算。將與用戶頻繁交互的操作界面對象集中在前端客戶機;將與數(shù)據(jù)庫頻繁交換信息的業(yè)務(wù)處理邏輯對象集中在主機服務(wù)器。第五十一頁,共一百零八頁,2022年,8月28日51流速調(diào)節(jié)器指定流速…流速調(diào)節(jié)…流速探測器當(dāng)前流速…流速探測取當(dāng)前流速…流速控制器指定流速當(dāng)前流速…流速調(diào)節(jié)流速探測…例如:合并流速探測器和流速調(diào)節(jié)器兩個類,減少頻繁通訊,提高效率。4)合并通信頻繁的類原設(shè)計:1:n1對應(yīng)第五十二頁,共一百零八頁,2022年,8月28日525)縮小類范圍,分解復(fù)雜對象例1:將范圍較大的類分解為較具體的類,可以使復(fù)雜處理簡單化。幾何圖象……多邊形……橢圓……扇形……例2:用聚合關(guān)系描述分解的復(fù)雜對象,可以分別應(yīng)對不同的情況。禎…顯示背景…顯示前景…顯示第五十三頁,共一百零八頁,2022年,8月28日53?存儲對象是指永久性對象,為了存儲永久性對象,需要在對象類中增補必要的屬性與操作
方法1:在作為永久對象的類屬性中增加類名,并增加存儲和檢索操作,使類的對象可以自己存儲或檢索自己。永久存儲類類名(對應(yīng)數(shù)據(jù)庫表名)…………存儲對象()檢索對象()3.2.6為對象存儲增補屬性與操作第五十四頁,共一百零八頁,2022年,8月28日54方法2:設(shè)立獨立的數(shù)據(jù)管理對象類,負責(zé)問題域中所有永久對象的存儲和檢索。存儲數(shù)據(jù)管理器類名(對應(yīng)各個數(shù)據(jù)庫表)存儲對象檢索對象方法3:利用面向?qū)ο髷?shù)據(jù)庫存儲和檢索永久對象。第五十五頁,共一百零八頁,2022年,8月28日553.2.7關(guān)聯(lián)的轉(zhuǎn)化與實現(xiàn)?關(guān)聯(lián)的轉(zhuǎn)化:1)把關(guān)聯(lián)類和N元關(guān)聯(lián)轉(zhuǎn)化為二元關(guān)聯(lián)2)把多對多關(guān)聯(lián)轉(zhuǎn)化為一對多關(guān)聯(lián)供貨商……客戶……1..**供貨商……客戶……供需合同賣方買方……1..**11例:第五十六頁,共一百零八頁,2022年,8月28日56?關(guān)聯(lián)的實現(xiàn)1)聚合實現(xiàn):在整體類中,加入部分類類型的屬性或指針屬性汽車型號顏色牌照底盤發(fā)動機車輪車廂底盤發(fā)動機車輪*車廂例:第五十七頁,共一百零八頁,2022年,8月28日572)關(guān)聯(lián)實現(xiàn):
–單項關(guān)聯(lián):用關(guān)聯(lián)對象作為指針屬性的類型,加入源對象類;雙向關(guān)聯(lián):在兩端都設(shè)置對方類型的指針屬性–關(guān)聯(lián)重數(shù)為1:設(shè)立一個指針對象;關(guān)聯(lián)重數(shù)大于1:設(shè)立指針集合機場城市…..飛機航班號機型…..學(xué)生學(xué)號姓名課程名稱學(xué)分著陸城市機場*例:1..n0..n著陸有停放的飛機*1..n0..n有課程*授課教師姓名院系單位1..n1..n有課程*授課教師*講授第五十八頁,共一百零八頁,2022年,8月28日583.2.8調(diào)整屬性學(xué)生姓名學(xué)號籍貫……學(xué)生姓名學(xué)號……籍貫國家省縣…驗證…11?屬性是組合數(shù)據(jù)項時,可能需要對屬性進行調(diào)整?按照屬性的語法,明確標(biāo)出屬性的完整內(nèi)容包括:[可見性]屬性名稱[:類型][=初始值][{性質(zhì)}]例:?屬性的性質(zhì),指屬性范圍的限定。
例:姓名:4~20字符;學(xué)號:8位數(shù)字;成績總和<=Σ分成績第五十九頁,共一百零八頁,2022年,8月28日593.2.9設(shè)計算法?操作的算法設(shè)計對象響應(yīng)對操作的請求,執(zhí)行必要的動作序列的描述。?操作與函數(shù)的區(qū)別:–只能通過消息訪問執(zhí)行操作算法–操作實現(xiàn)有自己的局部數(shù)據(jù)–消息數(shù)據(jù)包括對象的值或可訪問的其他對象的值?操作格式[可見性]操作名[(參數(shù)表)][:返回][{性質(zhì)}]第六十頁,共一百零八頁,2022年,8月28日601)進一步分析順序圖和協(xié)作圖,確定每個響應(yīng)消息所對應(yīng)的操作。2)仔細確認(rèn)狀態(tài)圖,發(fā)現(xiàn)對行為起主導(dǎo)作用的類,確保操作的完整性和正確性。操作算法設(shè)計方法3)必須考慮例外情況的操作處理。4)算法描述使用結(jié)構(gòu)化的自然語言(偽碼),包括接口和實現(xiàn)的描述。接口---(也叫“協(xié)議”)對象類所有的接收消息實現(xiàn)---對象接收消息所響應(yīng)的操作實現(xiàn)細節(jié),包括屬性和操作過程的描述第六十一頁,共一百零八頁,2022年,8月28日61監(jiān)控傳感器協(xié)議:MESSAGE(motion.sensor)->read:RETUNSsensor.ID,sensor.status;MESSAGE(motion.sensor)->set:SENDSsensor.ID,sensor.status;用結(jié)構(gòu)化自然語言描述協(xié)議例系統(tǒng)設(shè)置協(xié)議:MESSAGE(system)->program:可細化為:MESSAGE(system)->install:telephonenumberMESSAGE(system)->define:alarmtime
MESSAGE(system)->build:sensortableMESSAGE(system)->load:password
第六十二頁,共一百零八頁,2022年,8月28日62ProcedureSafeHomesoftwarePACKAGEsystemISTYPEsystemdataPORCinstall,define,build,loadPROCdisplay,reset,query,modify,callPRIVATEPACKAGEBODYsystemISPRIVATEsystem.idISSTRINGLENGTHverificationphone.number,telephone.number,.....ISSTRINGLENGTH(8);sensor.tableDEFINEDsensor.typeISSTRINGLENGTH(2),sensor.number,alarm.thresholdISNUMBER;PUBLICPORCinstallRECEIVES(telephone.number){designdetailforoperationinstall}.....(多個操作描述)ENDsystem..…ENDSafeHomesoftwareTYPE:數(shù)據(jù)類型說明PROC:過程說明數(shù)據(jù)對象定義用結(jié)構(gòu)化自然語言描述算法例:SafeHome高層構(gòu)件設(shè)計描述(類似Ada的偽碼)第六十三頁,共一百零八頁,2022年,8月28日63操作部分描述PROCread(sensor.id,sensor.status:OUT)GET(sensor,exception:sensor.status:=error)raw.signal;raw.signalISBITSTRINGIF(erface.type=“S”&alarm.characteristics.signal.type=“B”THENCOVERTraw.signalTOinternal.signal.level;IFinternal.signal.level>thresholdTHENsensor.status:=“event”;ELSEsensor.status:=“noevent”;ENDIFELSE{processingforothertypeofSinterfaceswouldbespecified}ENDIFRETURNsensor.id,sensor.status;ENDread第六十四頁,共一百零八頁,2022年,8月28日64?定義對象:在算法設(shè)計中,根據(jù)實現(xiàn)條件,按以下方式定義對象:–內(nèi)存中的對象:用相應(yīng)的類定義,可以一個對象定義一個變量,也可以定義對象數(shù)組,包括靜態(tài)聲明。–外存上的對象:(永久對象)設(shè)置專門的操作,按照規(guī)定的格式,從外存中讀取對象;前提是有對應(yīng)的保存永久對象的操作。3.2.10定義對象及可訪問性第六十五頁,共一百零八頁,2022年,8月28日65–類之間存在依賴,表明對象間的訪問有如下情況:1)類的對象作為參數(shù)傳遞
例:vectormultiply(matrix&m,vector&v,intn)2)類對象被聲明為操作的局部成分
例:outer_class::write(){inner_classg;g.write();}3)類對象被聲明為全局的
例:
sensors_control(“cc”);main(){……}–類之間存在關(guān)聯(lián),也就是對象之間存在鏈,表明對象間可以訪問,且可見性為“公共”的。?根據(jù)類的關(guān)聯(lián)考慮對象的可訪問性第六十六頁,共一百零八頁,2022年,8月28日663.3人機交互設(shè)計3.3.1人機交互設(shè)計原則界面設(shè)計黃金規(guī)則至于用戶的控制之下減少用戶的記憶負擔(dān)保持界面風(fēng)格一致界面設(shè)計問題響應(yīng)時間問題聯(lián)機幫助問題錯誤提示問題命令操作問題第六十七頁,共一百零八頁,2022年,8月28日67設(shè)計人員設(shè)計界面設(shè)計目標(biāo)用戶學(xué)習(xí)評判經(jīng)驗與需求反饋啟發(fā)3.3.2人機交互的設(shè)計過程設(shè)計人員與用戶協(xié)作的重復(fù)過程第六十八頁,共一百零八頁,2022年,8月28日683.3.3人機交互的分析策略1)通過與系統(tǒng)交互的參與者進行分析?列舉所有的人員與參與者?對人員與參與者進行調(diào)查研究?區(qū)分人員類型?統(tǒng)計(或估算)出各類人員的比例?了解各類人員的主觀需求?按照一定的準(zhǔn)則進行折中與均衡2)通過用況進行分析?分析用況腳本陳述,劃分參與者行為和系統(tǒng)行為?分離出每個段落包含的輸入或輸出?去掉與輸入或輸出無關(guān)的陳述包括:參與者或系統(tǒng)自身的行為,以及一些控制行為第六十九頁,共一百零八頁,2022年,8月28日69收款(usecase)輸入本次收款命令;
收款準(zhǔn)備,應(yīng)收款總數(shù)置為0輸出提示信息;for顧客選購的每種商品do輸入商品編號;if此種商品多于一件then輸入商品數(shù)量endif;
檢索商品名稱及單價;
貨架商品數(shù)減去售出數(shù);
if貨架數(shù)低于下限
then通知供貨員請求上貨endif;
計算商品總價并打印編號、名稱、數(shù)量、單價和總價;
總價累加到應(yīng)收款總數(shù);endfor;打印應(yīng)收款總數(shù);輸入顧客交來的款數(shù);
計算應(yīng)找回的款數(shù);打印以上兩個數(shù)目;收款(人機交互)輸入開始本次收款命令;輸出提示信息;for顧客選購的每種商品輸入商品編號;if此種商品多于一件then輸入商品數(shù)量endif;打印商品編號名稱、數(shù)量、單價和總價;endfor;打印應(yīng)收款總數(shù);輸入顧客交來的款數(shù);打印交款數(shù)及找回款數(shù);通過用況分析人機交互例第七十頁,共一百零八頁,2022年,8月28日703.3.4面向?qū)ο蟮娜藱C交互設(shè)計1)確定輸入設(shè)備2)設(shè)計輸入界面對象3)輸入步驟細化
?對話框設(shè)計要點:(a)使用有意義且易理解的標(biāo)題;(b)按邏輯排序輸入框;(c)允許編輯文本型輸入框;(d)對輸入錯誤有保證措施,出錯時有提示;(e)明確標(biāo)出輸入框的可選和必選;(f)有必要的輸入框解釋(如在Windows的狀態(tài)條上)。菜單對話框……1)設(shè)計輸入?檢查輸入的內(nèi)容:(a)輸入框組合的完備性:確保所有必要的輸入框都要被輸入(b)數(shù)據(jù)的有效范圍控制:檢查所輸入數(shù)據(jù)類型(c)數(shù)據(jù)有效位數(shù)的控制:檢查所輸入數(shù)據(jù)值范圍第七十一頁,共一百零八頁,2022年,8月28日712)設(shè)計輸出設(shè)計相應(yīng)的設(shè)備類及接口操作1)確定輸出設(shè)備2)確定輸出的形式和內(nèi)容3)輸出步驟的細化設(shè)備驅(qū)動用戶操作界面打印機顯示器繪圖儀外存……設(shè)計相應(yīng)的輸出的形式類輸出設(shè)備文本表格圖形圖像聲音……輸出的內(nèi)容提示信息運算結(jié)果處理反饋……第七十二頁,共一百零八頁,2022年,8月28日72界面設(shè)計的指導(dǎo)性策略1)窗口作為基本類;2)窗口類的聚合關(guān)系按命令的邏輯層次在窗口中部署元素,這些元素作為窗口類的部分類,并與窗口類形成聚合關(guān)系。3)窗口類形成繼承關(guān)系發(fā)現(xiàn)窗口類間的共性以及部件類間的共性,定義較一般的窗口類和部件類,分別形成窗口類及部件間的繼承關(guān)系。窗口中的元素:菜單工作區(qū)對話框按鍵……第七十三頁,共一百零八頁,2022年,8月28日734)窗口的靜態(tài)特征用屬性表示窗口或部件的靜態(tài)特征,如尺寸、位置、顏色和選項等。5)窗口的動態(tài)特征用操作表示窗口或部件的動態(tài)特征,如移動或滾動等。如果使用界面生成工具,就不需要對這樣的操作進行設(shè)計。6)界面類之間的關(guān)聯(lián)在界面元素之間發(fā)現(xiàn)聯(lián)系,建立關(guān)聯(lián)??衫L制用戶與系統(tǒng)交互的順序圖。第七十四頁,共一百零八頁,2022年,8月28日74?人機界面只負責(zé)輸入、輸出和窗口更新工作。所有問題域的處理請求,都轉(zhuǎn)發(fā)給問題域,在界面對象中,不進行應(yīng)用邏輯或業(yè)務(wù)的處理。?界面部分對象總是主動發(fā)起與問題域部分的請求,問題域部分,只對界面對象的請求進行響應(yīng)。?界面與問題域之間通過接口通信,或者在界面類與問題域類之間增設(shè)控制類(“出版---訂閱”模式),以減小耦合。7)建立界面類與問題域類之間的聯(lián)系。請求回應(yīng)問題域部分人機交互部分接口接口第七十五頁,共一百零八頁,2022年,8月28日75出版者……管理者……訂閱者……1111..*“出版---訂閱”模式:訂閱者向管理者訂閱感興趣的事件,出版者向管理者發(fā)布事件,管理者維護出版者和訂閱者之間的映射。一個管理者可以對應(yīng)多個訂閱者和出版者,使出版者和訂閱者之間解耦。第七十六頁,共一百零八頁,2022年,8月28日76框架標(biāo)題接收動作()菜單條名稱菜單名稱進入下級菜單()菜單項名稱點擊()列表條目條目索引選擇()按鈕標(biāo)題點擊()標(biāo)簽文本設(shè)置文本()界面類圖例:第七十七頁,共一百零八頁,2022年,8月28日77Cedit{復(fù)用}……人機交互界面復(fù)用1)直接復(fù)用CDialog{復(fù)用}……2)間接復(fù)用CMvsvstemDig……?界面的兩種復(fù)用方式:第七十八頁,共一百零八頁,2022年,8月28日783.4控制器驅(qū)動部分設(shè)計?控制驅(qū)動設(shè)計任務(wù):1)定義并表示系統(tǒng)的的控制流2)并發(fā)系統(tǒng)中控制流的協(xié)調(diào)設(shè)計3)機器無關(guān)性設(shè)計(隔離硬件、操作系統(tǒng)、網(wǎng)絡(luò)變化對系統(tǒng)的影響)順序系統(tǒng):在一個時間點上,有且僅有一件事情發(fā)生,只有一個控制流。并發(fā)系統(tǒng):在一個時間點上,有多件事情發(fā)生。存在多于一個的控制流。第七十九頁,共一百零八頁,2022年,8月28日79?控制驅(qū)動部分由系統(tǒng)中所有的主動類構(gòu)成?控制流驅(qū)動者是由主動類所創(chuàng)建的主動對象?控制流:處理機上順序執(zhí)行的動作序列,進程或線程的統(tǒng)稱–進程是獨立功能程序的執(zhí)行過程–線程是需要連續(xù)執(zhí)行的操作序列–進程有獨立的機器空間,線程在進程內(nèi),競爭進程資源第八十頁,共一百零八頁,2022年,8月28日80控制驅(qū)動部分設(shè)計方法1.識別控制流:--系統(tǒng)的分布方案要求多控制流每個分布點至少有一個控制流,至少擁有一個主動對象。--系統(tǒng)的并發(fā)需求要求多控制流要求多項任務(wù)同時進行,則每項任務(wù)對應(yīng)一個控制流。--為實現(xiàn)方便設(shè)立控制流通信睡眠控制流和時鐘驅(qū)動控制流--分析中定義的主動類對象都對應(yīng)獨立的控制流。--為提高性能而增設(shè)的控制流設(shè)立高、低、緊急三種優(yōu)先級的控制流。--異常事件處理作為獨立的控制流--起并發(fā)協(xié)調(diào)作用的控制流第八十一頁,共一百零八頁,2022年,8月28日812.定義控制流1)用主動對象表示控制流,給出命名和簡單說明控制流表示:進程<<process>>或線程<<thread>>2)確保每個操作屬于一個控制流3)描述時間驅(qū)動控制流的條件4)描述控制流的數(shù)據(jù)出處<<process>>r:ReservationAgent{location=reservationserver}<<thread>>b:KnowledgeSource第八十二頁,共一百零八頁,2022年,8月28日823.建??刂屏鏖g的通信1)同步通信?調(diào)用者調(diào)用操作,等待接收者接收這個調(diào)用?操作被喚醒,處理后將計算結(jié)果返回給調(diào)用者經(jīng)典同步事例:過程調(diào)用2)異步通信?調(diào)用者發(fā)送信號后無需等待,繼續(xù)他自己的工作?接收者在作好準(zhǔn)備后,適當(dāng)?shù)臅r候去取需要的信息經(jīng)典異步事例:郵箱、共享存儲器第八十三頁,共一百零八頁,2022年,8月28日83用順序圖對線程間的通信建模<<thread>>c:BlackboadControler<<thread>>b:KnowledgeSource<<thread>>s:Blackboadc:初始化s:初始化完畢c:開始搜索b:提示線索(k)c:評價()b:放置部分解決方案例:黑板系統(tǒng)的順序圖第八十四頁,共一百零八頁,2022年,8月28日84?用順序圖對進程間的通信建模<<process>>t:TripPlanner{location=client}<<process>>r:ReservationAgent{location=reservationserver}<<process>>tm:TicketingManager{location=client}<<process>>h:HotelAgent{location=hotelserver}t:planTrip()r:make()h:make()例:旅游計劃系統(tǒng)順序圖r:postResults()第八十五頁,共一百零八頁,2022年,8月28日854.控制流間的同步同步的目的是為了協(xié)調(diào)并發(fā)控制流的執(zhí)行,以防止控制流同時修改或訪問共享資源、提高資源的利用率和防止控制流死鎖和控制流餓死?!璦bc……abc(a)(b)兩個控制流同時使用對象的同一操作兩個控制流同時使用對象的不同操作第八十六頁,共一百零八頁,2022年,8月28日86協(xié)調(diào)控制流間的同步方法1:Sequential(順序的)將同步控制流涉及的多個對象作為臨界資源,保護起來,使得在一個時刻,每對象內(nèi)僅有一個控制流起作用。方法2:Guarded(受監(jiān)護的)把控制流所涉及的對象操作順序化,并都標(biāo)上Guarded,作為臨界資源,控制起來。方法3:Concurrent(并發(fā)的)把控制流所涉及的所有對象中的每一操作,作為獨立原子單位,利用并發(fā)控制,執(zhí)行多入口點的操作并行處理。第八十七頁,共一百零八頁,2022年,8月28日87list…add(){concurrent}…為實現(xiàn)同步需給操作附加同步特征,或者設(shè)立控制類協(xié)調(diào)類以實現(xiàn)協(xié)調(diào)任務(wù)?同步特征例:?控制流協(xié)調(diào)類例:控制流協(xié)調(diào)者…協(xié)調(diào)1*控制流名字描述優(yōu)先級包含的服務(wù)協(xié)調(diào)者…初始化開始待命終結(jié)第八十八頁,共一百零八頁,2022年,8月28日883.6數(shù)據(jù)管理部分的設(shè)計3.6.1有關(guān)概念3.6.2關(guān)系數(shù)據(jù)庫的數(shù)據(jù)管理設(shè)計3.6.2面向?qū)ο髷?shù)據(jù)庫的數(shù)據(jù)管理設(shè)計3.6.3文件系統(tǒng)的數(shù)據(jù)管理設(shè)計第八十九頁,共一百零八頁,2022年,8月28日893.6.1數(shù)據(jù)管理部分設(shè)計的有關(guān)概念
責(zé)任:存儲和檢索永久對象(需要長期存儲的對象)封裝對永久對象的查找和存儲機制
目的:隔離數(shù)據(jù)管理部分,減小對問題域的影響
存儲方式:文件系統(tǒng)關(guān)系數(shù)據(jù)庫面向?qū)ο髷?shù)據(jù)庫只存儲屬性部分第九十頁,共一百零八頁,2022年,8月28日90數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)應(yīng)用程序用戶數(shù)據(jù)庫管理員應(yīng)用程序接口終端用戶查詢處理器數(shù)據(jù)定義接口數(shù)據(jù)庫訪問和控制邏輯部分物理存儲模式數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)第九十一頁,共一百零八頁,2022年,8月28日91關(guān)系數(shù)據(jù)庫人員ID姓名籍貫聯(lián)系地址……K8234張三河北海淀花園路178號3門23K8237李四貴州海淀永定路4號樓507P8450王五福建宣武區(qū)前門大街7號F8559張三河北東城區(qū)東廠胡同38號……每列是屬性也稱字段每行稱為元組或記錄關(guān)鍵字:能唯一確定元組的屬性外鍵:用于連接表的關(guān)鍵字序號人員ID身份證號…………關(guān)鍵字外鍵第九十二頁,共一百零八頁,2022年,8月28日92面向?qū)ο髷?shù)據(jù)庫采用面向?qū)ο竽P偷臄?shù)據(jù)庫面向?qū)ο髷?shù)據(jù)庫的特征–支持對象、類、操作、屬性、繼承、聚合、關(guān)聯(lián)概念–具有數(shù)據(jù)庫應(yīng)有的特性和功能面向?qū)ο髷?shù)據(jù)庫的類型-基于關(guān)系數(shù)據(jù)庫的擴充-基于面向?qū)ο笳Z言的數(shù)據(jù)庫-建立全新的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫定義語言數(shù)據(jù)庫操縱語言第九十三頁,共一百零八頁,2022年,8月28日93具有代表性的面向?qū)ο髷?shù)據(jù)庫產(chǎn)品
Fishman研制IrisKim研制ORIONBrelt研制,ServioLogic公司GemStoneWeiser&Lochovskey研制OZDiederich&Milton研制ODDESSY原型ObjectDesign公司ObjectStoreVersantObjectTechnology公司Versant…..第九十四頁,共一百零八頁,2022年,8月28日94數(shù)據(jù)管理部分?jǐn)?shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)立應(yīng)用系統(tǒng)的數(shù)據(jù)管理,將系統(tǒng)對象轉(zhuǎn)換為永久對象,再交給數(shù)據(jù)庫管理系統(tǒng)存儲。關(guān)系數(shù)據(jù)庫的數(shù)據(jù)管理設(shè)計第九十五頁,共一百零八頁,2022年,8月28日951)基本方法面向?qū)ο蠡驹嘏c關(guān)系數(shù)據(jù)庫的“實體--關(guān)系”相對應(yīng)面向?qū)ο箢悓ο髮傩躁P(guān)聯(lián)實體—關(guān)系實體類型實體實例屬性關(guān)系關(guān)系數(shù)據(jù)庫表行(元組)列關(guān)鍵字和外鍵第九十六頁,共一百零八頁,2022年,8月28日962)標(biāo)識永久對象?對非永久存儲對象的訪問,是通過對象標(biāo)識(即對象名)訪問的。對象標(biāo)識在運行中建立,在程序中取消,或隨著運行終止自動消亡。?永久存儲對象,必須將可標(biāo)識的唯一對象標(biāo)記存儲起來,作為主關(guān)鍵字。永久對象的命名方法:-為類建立的表:設(shè)立唯一可標(biāo)識對象的關(guān)鍵字字段-為關(guān)聯(lián)建立的表:設(shè)立相關(guān)聯(lián)的主鍵為組合關(guān)鍵字第九十七頁,共一百零八頁,2022年,8月28日97永久對象標(biāo)識例:辦公設(shè)備名稱購置日期規(guī)格……
設(shè)備編號使用日期部門編號80230092年2月001080230195年2月001083203399年8月0011……辦公設(shè)備…部門名稱責(zé)任人聯(lián)系電話……0..n0..1
設(shè)備編號名稱購置日期規(guī)格802300裝訂機91年3月KP-023802301投影儀91年3月SH-111832033投影儀98年10月SK-111……
部門編號
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度牧業(yè)產(chǎn)業(yè)扶貧項目承包合同范本3篇
- 2025版農(nóng)產(chǎn)品溯源與質(zhì)量認(rèn)證服務(wù)合同3篇
- 遼寧省朝陽市北票市2024-2025學(xué)年七年級上學(xué)期1月期末道德與法治試題(含答案)
- 2025年度個人公司股權(quán)結(jié)構(gòu)調(diào)整合同4篇
- 二零二五年度某局勞務(wù)分包結(jié)算與數(shù)字化轉(zhuǎn)型戰(zhàn)略合同2篇
- 天然氣在科技創(chuàng)新中的地位考核試卷
- 家禽飼養(yǎng)業(yè)質(zhì)量品牌提升與市場競爭策略考核試卷
- 供應(yīng)鏈協(xié)同采購與供應(yīng)商管理考核試卷
- 儀器儀表制造業(yè)的持續(xù)創(chuàng)新能力考核試卷
- 2025版二零二五年度美發(fā)店房東租賃合同范本:租賃合作協(xié)議4篇
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃氣限公司招聘工作人員14人高頻重點提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護理培訓(xùn)課件:《早產(chǎn)兒姿勢管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動站儀器運營維護項目操作說明以及簡單故障處理
- 2022年12月Python-一級等級考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識
評論
0/150
提交評論