版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十一章面向?qū)ο笤O(shè)計(jì)
(Object-OrientedDesign)§1.OOD準(zhǔn)則:優(yōu)秀軟件設(shè)計(jì)的一個(gè)重要特點(diǎn)是容易維護(hù)回顧:SD準(zhǔn)則包括模塊化抽象
信息隱藏模塊對(duì)于OOD有類似的準(zhǔn)則:1、模塊=對(duì)象第十一章面向?qū)ο笤O(shè)計(jì)
(Object-Oriented§1.OOD準(zhǔn)則過(guò)程抽象:在SD中已討論數(shù)據(jù)抽象:Class即是一種抽象數(shù)據(jù)類型。外界無(wú)須知道實(shí)現(xiàn)方法,按照類規(guī)格說(shuō)明(即協(xié)議)可以使用合法的操作符,利用這些操作對(duì)類實(shí)例中包含的數(shù)據(jù)進(jìn)行操作。參數(shù)抽象:
將數(shù)據(jù)類型作為參數(shù)處理。2、抽象:抽出事物的本質(zhì)特性,暫不考慮其細(xì)節(jié),使設(shè)計(jì)從具體實(shí)現(xiàn)方法中超脫?!?.OOD準(zhǔn)則過(guò)程抽象:在SD中已討論數(shù)§1.OOD準(zhǔn)則3、信息隱藏=對(duì)象的封裝4、耦合:
交互耦合(interactivecoupling):通過(guò)傳遞message發(fā)生要求降低參數(shù)個(gè)數(shù)和參數(shù)復(fù)雜性減少objects發(fā)送\接收message的個(gè)數(shù)aslooseaspossible
繼承耦合(inheritancecoupling):
要求ParentclassIS_Achildclassashighaspossible§1.OOD準(zhǔn)則3、信息隱藏=對(duì)象的封裝4、耦合:§1.OOD準(zhǔn)則一般-特殊內(nèi)聚(general-particularcohesion):Highg-pcohesionHighinheritancecoupling5、內(nèi)聚:
服務(wù)內(nèi)聚(servicecohesion):一個(gè)服務(wù)只完成一個(gè)功能。
類內(nèi)聚(classcohesion):一個(gè)類只有一個(gè)用途,否則分解之。6、可重用(Reusability)(詳見(jiàn)§3)盡量使用已有的類設(shè)計(jì)新類時(shí)考慮將來(lái)的可重復(fù)使用性§1.OOD準(zhǔn)則5、內(nèi)聚:類內(nèi)聚(classcohe§2.啟發(fā)式規(guī)則1、設(shè)計(jì)結(jié)果清晰易懂,應(yīng)做到:①用詞一致——按習(xí)慣用法命名。不同classes中相似的methods最好取同一名字。②使用已有的協(xié)議。③盡量減少message模式的數(shù)目。④避免模糊定義。2、一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)(約100個(gè)classes,則設(shè)計(jì)7±2層)§2.啟發(fā)式規(guī)則1、設(shè)計(jì)結(jié)果清晰易懂,應(yīng)做到:2、一般-特§2.啟發(fā)式規(guī)則3、設(shè)計(jì)簡(jiǎn)單的class(定義不超過(guò)一頁(yè)紙或兩屏)。應(yīng)注意:①避免過(guò)多attributes;②能用簡(jiǎn)單的語(yǔ)句描述一個(gè)class的任務(wù);③objects之間合作關(guān)系要簡(jiǎn)單;④避免過(guò)多methods(7個(gè))。問(wèn)題:設(shè)計(jì)出大量的classes,使結(jié)構(gòu)復(fù)雜度增加。解決:劃分主題,提高可理解性。4、使用簡(jiǎn)單的protocol,減少message中傳遞的
parameters5、使用簡(jiǎn)單的method(CASE可考慮用inheritance替代)。6、把設(shè)計(jì)變動(dòng)減至最小?!?.啟發(fā)式規(guī)則3、設(shè)計(jì)簡(jiǎn)單的class(定義不超過(guò)一頁(yè)紙1、概念:知識(shí)重用(例如軟件工程知識(shí)的重用)方法和標(biāo)準(zhǔn)重用(例如OO方法和國(guó)家規(guī)定的軟件開(kāi)發(fā)規(guī)范的重用)軟件成分的重用§3.軟件重用(SoftwareReuse)知識(shí)工程
源碼剪貼——無(wú)法溯源,無(wú)配置管理
Include——
修改后所有包含了此段代碼的程序都須重新編譯。
Inheritance——無(wú)須改動(dòng)原有代碼
想象一下,stdio.h被改動(dòng)之后……重用軟件成分有三個(gè)級(jí)別:①代碼重用:1、概念:方法和標(biāo)準(zhǔn)重用(例如OO方法和國(guó)家規(guī)定的軟§3.軟件重用②設(shè)計(jì)重用——當(dāng)移植系統(tǒng)時(shí)③
分析重用——當(dāng)需求未變,而系統(tǒng)結(jié)構(gòu)改變時(shí)2、重用效果的衡量:⑴額外代價(jià):
創(chuàng)建可重用成分的專門(mén)投資
多花2~4倍時(shí)間測(cè)試以保證質(zhì)量
構(gòu)件庫(kù)的建立與維護(hù)需要投資
以上投資將分?jǐn)偟街赜眠@些構(gòu)件的新系統(tǒng)成本中。重用次數(shù)越多,分?jǐn)偝杀驹缴??!?.軟件重用②設(shè)計(jì)重用——當(dāng)移植系統(tǒng)時(shí)③分析重用§3.軟件重用記:Lt=Totallengthofcode(#oflines)
Ln=Lengthofnew
code
Lr=Lengthofreusedcode
Et、En、Erarethecorrespondingefforts(#ofm-d)⑵重用率(Reusability)與生產(chǎn)率(Productivity)ProductivityReusability=開(kāi)發(fā)代碼的生產(chǎn)率重用新代碼的生產(chǎn)率§3.軟件重用記:Lt=Totallengtho§3.軟件重用⑶重用技術(shù):指利用可重用的構(gòu)件開(kāi)發(fā)軟件的技術(shù),及開(kāi)發(fā)可重用軟件的技術(shù)。①軟件組合技術(shù):底層部件庫(kù)法(Bottom-upcompositionalreuse):
從可重用的代碼部件庫(kù)(reuserepository)中選用部件,組合成軟件。A:是,前提條件為Cn<Cr,即重用比新開(kāi)發(fā)效率高。Q:是否R
越高P就越高?上層組合法:完整程序的組合§3.軟件重用⑶重用技術(shù):指利用可重用的構(gòu)件開(kāi)發(fā)軟件的技術(shù)§3.軟件重用②軟件生成技術(shù):按照形式化的軟件功能描述和一定的生成機(jī)理,由生成器系統(tǒng)(generatorsystem)自動(dòng)生成目標(biāo)程序。重用的是generator的代碼規(guī)則③OO重用技術(shù):Classcomponent的重用(詳見(jiàn)下文)⑷類構(gòu)件(Classcomponent):①可重用的軟構(gòu)件應(yīng)具備的特點(diǎn):
獨(dú)立、可塑、接口清晰(文檔詳盡)§3.軟件重用②軟件生成技術(shù):③OO重用技術(shù):Clas§3.軟件重用②重用方式:
實(shí)例重用(instancereuse\black-boxreuse):
創(chuàng)建class的不同instances,通過(guò)messages完成
不同的任務(wù)。是最基本的重用方式。
用幾個(gè)簡(jiǎn)單的objects創(chuàng)建出更復(fù)雜的class,
是實(shí)例重用的另一種形式
繼承重用(inheritancereuse):
是一種安全地裁剪已有的classcomponent的方式。
多態(tài)重用(polymorphismreuse):
Parentclass與childclass有相同的對(duì)外接口,使
消息連接的復(fù)雜度降低?!?.軟件重用②重用方式:
實(shí)例重用(instan§3.軟件重用注意:有些操作可能會(huì)妨礙classcomponent的重用,如與表示方法有關(guān)的操作與數(shù)據(jù)結(jié)構(gòu)、大小有關(guān)的操作與外部設(shè)備有關(guān)的操作
實(shí)現(xiàn)算法在將來(lái)可能會(huì)改進(jìn)\改變的核心操作解決方法:將這些操作分離出來(lái),作為適配接口(adaptiveinterface),使class中其它操作通過(guò)調(diào)用AI而實(shí)現(xiàn)。在不同應(yīng)用環(huán)境下,用戶只須重新定義AI操作就可以重用class?!?.軟件重用注意:有些操作可能會(huì)妨礙classcomp§3.軟件重用AdaptiveInterface還可進(jìn)一步細(xì)分為轉(zhuǎn)換接口(transitioninterface):重用時(shí)必須重定義與表示方法、數(shù)據(jù)結(jié)構(gòu)、硬件等有關(guān)的操作(例如C++中class里的purevirtualfunction)擴(kuò)充接口(expansioninterface):一個(gè)操作可由多種算法實(shí)現(xiàn),若無(wú)新算法則繼承老算法?!?.軟件重用AdaptiveInterface還可進(jìn)一§4.系統(tǒng)分解回顧SD:從DFD出發(fā)IPO面向?qū)ο笤O(shè)計(jì)模型,在邏輯上由四大部分組成。這四部分對(duì)應(yīng)于組成目標(biāo)系統(tǒng)的四個(gè)子系統(tǒng):?jiǎn)栴}域子系統(tǒng)、人機(jī)交互子系統(tǒng)(HCI)、任務(wù)管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。
OOD模型分解:§4.系統(tǒng)分解回顧SD:從DFD出發(fā)IPO面問(wèn)題域ApplicationDomain人機(jī)交互Human-ComputerInterface(HCI)任務(wù)管理TaskManagement數(shù)據(jù)管理DataManagementMethodAttributeStructureClass-&-ObjectCategory§4.系統(tǒng)分解與面向?qū)ο蠓治瞿P鸵粯?,它也由主題、類-&-對(duì)象、結(jié)構(gòu)、屬性、服務(wù)等五個(gè)層次組成,可以把這五個(gè)層次想象成整個(gè)模型的水平切片問(wèn)題域人機(jī)交互任務(wù)管理數(shù)據(jù)管理MethodAttribute§4.系統(tǒng)分解1、子系統(tǒng)之間的交互方式(collaboration)①客戶-供應(yīng)商(client-superlier)關(guān)系:②平等伙伴(peer-to-peer)關(guān)系:ClientsubsystemcontractSuppliersubsystemrequestcontractPeersubsystemcontractPeersubsystemrequestrequest§4.系統(tǒng)分解1、子系統(tǒng)之間的交互方式(colla§4.系統(tǒng)分解2、系統(tǒng)組織方案①層次組織:將系統(tǒng)組織成hierarchy,同一層中的objects相互獨(dú)立,而上、下層間有client-supplier關(guān)系。一個(gè)client只能使用其相鄰下層的supplier提供的服務(wù)——封閉式(closed)一個(gè)client可使用其下任一層的supplier提供的服務(wù)——開(kāi)放式(open)
優(yōu)點(diǎn):高效;缺點(diǎn):修改影響面廣§4.系統(tǒng)分解2、系統(tǒng)組織方案①層次組織:HCI典型應(yīng)用系統(tǒng)的組織結(jié)構(gòu)應(yīng)用軟件包操作系統(tǒng)計(jì)算機(jī)硬件人機(jī)對(duì)話控制仿真軟件包圖形處理窗口圖形屏幕圖形象素圖形§4.系統(tǒng)分解②垂直塊組織:將系統(tǒng)垂直分解成若干獨(dú)立的子系統(tǒng),一個(gè)子系統(tǒng)相當(dāng)于一塊,每塊提供一種類型的服務(wù)。HCI典型應(yīng)用系統(tǒng)的組織結(jié)構(gòu)應(yīng)用軟件包操§4.系統(tǒng)分解3、四種子系統(tǒng)的設(shè)計(jì)⑴問(wèn)題域子系統(tǒng):基于OOA建立的objectmodel,進(jìn)行補(bǔ)充修改。①調(diào)整需求②重用class:選出可用的class,標(biāo)出與本問(wèn)題無(wú)關(guān)的attributes和methods派生出childclass,標(biāo)出繼承的attributes和methods修改關(guān)聯(lián)③組合class:通過(guò)引入rootclass完成,用于建立publicprotocol。④調(diào)整inheritance?!?.系統(tǒng)分解3、四種子系統(tǒng)的設(shè)計(jì)⑴問(wèn)題域子系統(tǒng)⑵HCI子系統(tǒng):好的包裝§4.系統(tǒng)分解①設(shè)計(jì)準(zhǔn)則:一致性:術(shù)語(yǔ)、步驟、操作等始終一致。減少步驟:使完成一件任務(wù)所需敲鍵盤(pán)、點(diǎn)鼠標(biāo)、下拉菜單等的次數(shù)都減至最少。及時(shí)提供反饋信息:提供hotkey操作做一個(gè)體貼的statusbar提供撤銷(undo)命令:無(wú)須記憶:不應(yīng)要求用戶記住某個(gè)窗口的信息,然后再用到窗口中——這是系統(tǒng)的責(zé)任而不是用戶的任務(wù)。易學(xué):提供HELP、聯(lián)機(jī)參考等。富有吸引力⑵HCI子系統(tǒng):好的包裝§4.系統(tǒng)分解①設(shè)計(jì)準(zhǔn)§4.系統(tǒng)分解②設(shè)計(jì)策略設(shè)計(jì)HCI類:例如VC提供的MFC類庫(kù)(MicrosoftFoundationClassLibrary)將用戶分類(按技能、職務(wù)等)描述用戶的類型、水平、使用目的、其它特征(如年齡、性別、習(xí)慣等),寫(xiě)出操作腳本設(shè)計(jì)命令層次:注意同用戶熟悉的方式(如windows界面)盡量保持一致.次序、深度、寬度調(diào)整適當(dāng)§4.系統(tǒng)分解②設(shè)計(jì)策略設(shè)計(jì)HCI類:例如V§4.系統(tǒng)分解⑶任務(wù)管理子系統(tǒng):基于OOA建立的dynamicmodel①分析并發(fā)性:若兩個(gè)objects之間無(wú)交互行為,或它們同時(shí)接受events,則它們本質(zhì)上是并發(fā)的(synchronous)考察eventflowdiagram,找出沒(méi)有并發(fā)對(duì)象的路徑(稱為控制線),每條對(duì)應(yīng)一個(gè)任務(wù)(task,亦稱process)不同的tasks對(duì)應(yīng)必須同時(shí)發(fā)生的不同行為§4.系統(tǒng)分解⑶任務(wù)管理子系統(tǒng):基于OOA建立的§4.系統(tǒng)分解②確定task類型,并分配給適當(dāng)?shù)能沑硬件去執(zhí)行事件驅(qū)動(dòng)型(event-driven):主要完成通信工作。event=數(shù)據(jù)到達(dá)的interrupt時(shí)鐘驅(qū)動(dòng)型(clock-driven):完成周期性工作。優(yōu)先型(priority):將highpriority或lowpriority的任務(wù)專門(mén)分離出來(lái)先做或后做。關(guān)鍵任務(wù)(keytask):指關(guān)系系統(tǒng)成敗的處理,要求高可靠性,應(yīng)分離考慮,嚴(yán)格測(cè)試。協(xié)調(diào)任務(wù)(coordinator):當(dāng)系統(tǒng)中存在三個(gè)以上tasks時(shí),應(yīng)增設(shè)一個(gè)協(xié)調(diào)任務(wù),用于封裝不同tasks之間的協(xié)調(diào)控制?!?.系統(tǒng)分解②確定task類型,并分配給適當(dāng)?shù)摹?.系統(tǒng)分解⑷數(shù)據(jù)管理子系統(tǒng):①選擇管理模式文件管理(filemanager)系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)(RelationalDataBase)管理系統(tǒng)面向?qū)ο髷?shù)據(jù)庫(kù)(OODB)管理系統(tǒng)②設(shè)計(jì)數(shù)據(jù)格式及相應(yīng)的服務(wù)(請(qǐng)參閱教材p.268-269)§4.系統(tǒng)分解⑷數(shù)據(jù)管理子系統(tǒng):①選擇管理模式§5.設(shè)計(jì)類中的服務(wù)
——細(xì)化objectmodel中的methods1、確立服務(wù)⑴從dynamicmodel出發(fā):Eventflowdiagram(即狀態(tài)圖)中Event=message;接受message的object必有對(duì)應(yīng)的method;Method改變status(即attributes),并完成action?!?.設(shè)計(jì)類中的服務(wù)
——細(xì)化§5.設(shè)計(jì)類中的服務(wù)EventStatus1do:Action1Status2do:Action2……則算法應(yīng)有DO_CASE型控制⑵從functionmodel出發(fā):DFD的一般結(jié)構(gòu)是IPO注意:Action(即算法)與status有關(guān)。例如:不同status接受同一個(gè)event時(shí),其action不同——§5.設(shè)計(jì)類中的服務(wù)EventStatus1StaInputFlowClass……ProcessI\OClass……Process§5.設(shè)計(jì)類中的服務(wù)若Process=從輸入流中抽取一個(gè)值,則輸入流就是目標(biāo)對(duì)象IO若和類型相同,而output實(shí)質(zhì)上是input的另一個(gè)狀態(tài),則I\O是一類,有若則I1I2I3POOutputFlowClass……ProcessInputFlow……ProcessI\OClass§5.設(shè)計(jì)類中的服務(wù)若則ProcessStorageStorageClass……Process對(duì)照DFD與Class-&-Object圖,若一個(gè)process涉及多個(gè)classes,則必須判斷它屬于哪一個(gè)class。例如:ActivatorReceiverProcess若Process改變了Receiver,則ReceiverClass……Process又如:從關(guān)聯(lián)上看,process所涉及的所有classes中,處于中心地位的class,一般擁有該process?!?.設(shè)計(jì)類中的服務(wù)若§5.設(shè)計(jì)類中的服務(wù)2、設(shè)計(jì)實(shí)現(xiàn)方法⑴算法設(shè)計(jì):要求做到易修改,并且復(fù)雜度低(即效率高)易理解,易實(shí)現(xiàn)。⑵數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):需要考慮具體的物理結(jié)構(gòu)的選擇。⑶新添用于存放內(nèi)部處理中間結(jié)果的class;引入新的低層操作,進(jìn)一步細(xì)化?!?.設(shè)計(jì)類中的服務(wù)2、設(shè)計(jì)實(shí)現(xiàn)方法⑴算法設(shè)計(jì):要求做§6.設(shè)計(jì)關(guān)聯(lián)1、單向關(guān)聯(lián)例:雇員公司被雇用1+由雇員找其所屬公司,則設(shè)雇主為其屬性,即一單向指針雇員雇主公司由公司找其下屬某一雇員,則有兩種方法:方法1:遍歷所有雇員,找雇主匹配且滿足特征的雇員。(省空間)§6.設(shè)計(jì)關(guān)聯(lián)1、單向關(guān)聯(lián)例:雇員公司被雇用1§6.設(shè)計(jì)關(guān)聯(lián)方法2:設(shè)公司的屬性雇員為一指針集。(快速)雇員公司雇員指針集2、雙向關(guān)聯(lián)方法1:將上述兩種單向關(guān)聯(lián)結(jié)合使用雇員雇主公司雇員指針集雇員公司關(guān)聯(lián)類雇主雇員工資方法2:另設(shè)關(guān)聯(lián)類(特別適用于鏈屬性)§6.設(shè)計(jì)關(guān)聯(lián)方法2:設(shè)公司的屬性雇員為一指針集。(快速)雇員公司find_skill雇用1+技能具有技能1+1+§7.優(yōu)化1、確定優(yōu)先級(jí):必須站在全局高度確定各項(xiàng)質(zhì)量指標(biāo)的優(yōu)先級(jí),在優(yōu)化設(shè)計(jì)時(shí)制定折衷方案。切忌各子系統(tǒng)自以為是,導(dǎo)致最終優(yōu)化目標(biāo)對(duì)立。最常見(jiàn)的情況是在效率與清晰性之間的折衷。2、提高效率的技術(shù)①增加關(guān)聯(lián)(類)例:設(shè)某公司有2000名雇員,平均每名雇員會(huì)10種技能,其中有5人精通日語(yǔ),現(xiàn)要查詢公司中會(huì)講日語(yǔ)的雇員是哪些人雇員公司find_skill雇用1+技能具有技能1+雇員公司精通語(yǔ)言1+語(yǔ)言1+§7.優(yōu)化方法1:嵌套查詢——遍歷雇員2000次,而對(duì)每個(gè)雇員遍歷技能10次。命中率為1/4000。方法2:用HashTable實(shí)現(xiàn)技能,使“會(huì)講日語(yǔ)”對(duì)應(yīng)唯一的技能對(duì)象,則命中率上升為1/400。方法3:增加一個(gè)額外的限定關(guān)聯(lián)“精通語(yǔ)言”,即可立刻查得結(jié)果。雇員公司精通語(yǔ)言1+語(yǔ)1+§7.優(yōu)化方法1:嵌套查詢§7.優(yōu)化②調(diào)整查詢次序,優(yōu)化算法例如公司有5名會(huì)日語(yǔ)的雇員,有200名會(huì)法語(yǔ)的雇員?,F(xiàn)要找日、法語(yǔ)均會(huì)的雇員,則應(yīng)先找的雇員,再?gòu)闹姓业墓蛦T。會(huì)日語(yǔ)會(huì)法語(yǔ)③保留內(nèi)部中間過(guò)程產(chǎn)生的派生屬性。3、調(diào)整繼承關(guān)系①向上歸納②向下派生建立這樣的索引必然多占空間,而且基關(guān)聯(lián)改變時(shí)也必須相應(yīng)地修改索引。因此,應(yīng)只給那些經(jīng)常執(zhí)行并且開(kāi)銷大、命中率低的查詢建立索引。§7.優(yōu)化②調(diào)整查詢次序,優(yōu)化算法會(huì)日語(yǔ)會(huì)法語(yǔ)③?!?.優(yōu)化例:實(shí)現(xiàn)Stack方法1:從List派生push=last+addpop=last+remove問(wèn)題:Stack.first也是合法的。ListaddremovefirstlastStackpushpopInheritance③利用委托(commitment)方法2:把List作為Stack的一個(gè)attribute,稱為commitment。這種方法比較安全(Stack.first為非法)。ListaddremovefirstlastStackList1pushpopCommitment§7.優(yōu)化例:實(shí)現(xiàn)StackListaddStackpu標(biāo)準(zhǔn)建模語(yǔ)言UMLUML概要TheUnifiedModelingLanguage(UML)UML由OMG(ObjectManagementGroup)于1997年11月批準(zhǔn)為標(biāo)準(zhǔn)建模語(yǔ)言。UML建立在當(dāng)今國(guó)際上最有代表性的三種面向?qū)ο蠓椒ǎ˙ooch方法,OMT方法,OOSE方法)的基礎(chǔ)之上。UML是一種建模語(yǔ)言而不是一種方法,UML本身是獨(dú)立于過(guò)程的。標(biāo)準(zhǔn)建模語(yǔ)言UMLUML概要UML概要UML可以用于問(wèn)題可視化、說(shuō)明和建立文檔UML圖包括系統(tǒng)動(dòng)態(tài)觀點(diǎn)、靜態(tài)觀點(diǎn)、限制和形式化動(dòng)態(tài)觀點(diǎn)用usecases、活動(dòng)圖、交互圖和狀態(tài)圖描述靜態(tài)觀點(diǎn)用類圖、包、配置描述限制和形式化用OCL(ObjectConstraintLanguage)描述UML概要UML可以用于問(wèn)題可視化、說(shuō)明和建立文檔UML概要
UML為人們提供了從不同的角度去觀察和展示系統(tǒng)的各種特征的一種標(biāo)準(zhǔn)表達(dá)方式。在UML中,從任何一個(gè)角度對(duì)系統(tǒng)所作的抽象都可能需要用幾種模型圖來(lái)描述,而這些來(lái)自不同角度的模型圖最終組成了系統(tǒng)的完整模型。UML概要標(biāo)準(zhǔn)建模語(yǔ)言UML
一般而言,我們可以從以下幾種常用的視角來(lái)描述一個(gè)系統(tǒng):系統(tǒng)的使用實(shí)例:從系統(tǒng)外部的操作者的角度描述系統(tǒng)的功能。系統(tǒng)的邏輯結(jié)構(gòu):描述系統(tǒng)內(nèi)部的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為,即從內(nèi)部描述如何設(shè)計(jì)實(shí)現(xiàn)系統(tǒng)功能。系統(tǒng)的構(gòu)成:描述系統(tǒng)由哪些程序構(gòu)件所組成。系統(tǒng)的并發(fā)性:描述系統(tǒng)的并發(fā)性,強(qiáng)調(diào)并發(fā)系統(tǒng)中存在的各種通信和同步問(wèn)題。系統(tǒng)的配置:描述系統(tǒng)的軟件和各種硬件設(shè)備之間的配置關(guān)系。標(biāo)準(zhǔn)建模語(yǔ)言UML一般而言,我們可以標(biāo)準(zhǔn)建模語(yǔ)言UMLUML模型圖(5類,10種):用例圖靜態(tài)圖(類圖,對(duì)象圖,包圖)行為圖(狀態(tài)圖,活動(dòng)圖)交互圖(順序圖,合作圖)實(shí)現(xiàn)圖(構(gòu)件圖,配置圖)標(biāo)準(zhǔn)建模語(yǔ)言UMLUML模型圖(5類,10種):標(biāo)準(zhǔn)建模語(yǔ)言UMLUML語(yǔ)義元-元模型(Meta-metamodel):建立元模型的基礎(chǔ)體系結(jié)構(gòu),定義一種說(shuō)明元模型的語(yǔ)言元模型(Metamodel):元-元模型的一個(gè)實(shí)例,定義一種描述模型的語(yǔ)言模型(Model):元模型的一個(gè)實(shí)例,定義一種語(yǔ)言來(lái)描述信息領(lǐng)域用戶對(duì)象(UserObjects):模型的一個(gè)實(shí)例,定義一個(gè)特定的信息領(lǐng)域標(biāo)準(zhǔn)建模語(yǔ)言UMLUML語(yǔ)義標(biāo)準(zhǔn)建模語(yǔ)言UMLUML主要文件:UML概要(UMLSummary)UML語(yǔ)義(UMLSemantics)UML表示法指南(UMLNotationGuide)對(duì)象約束語(yǔ)言規(guī)約(ObjectContraintlanguageSpecification):該文件定義并介紹了一種對(duì)象約束語(yǔ)言(OCL),其用途是用來(lái)說(shuō)明在圖形化的系統(tǒng)模型中不能充分表達(dá)的建模信息。它是一種形式化語(yǔ)言。/uml/index.jtmpl標(biāo)準(zhǔn)建模語(yǔ)言UMLUML主要文件:標(biāo)準(zhǔn)建模語(yǔ)言UML(用例圖)
從本質(zhì)上將,一個(gè)用例是用戶與計(jì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 木工承包合同內(nèi)腳手架
- 啤酒銷售合同書(shū)
- 農(nóng)村住房安全保障工程實(shí)施指南
- 網(wǎng)站維護(hù)與SEO優(yōu)化作業(yè)指導(dǎo)書(shū)
- 投資理財(cái)與風(fēng)險(xiǎn)防范作業(yè)指導(dǎo)書(shū)
- 2025年甘肅貨運(yùn)從業(yè)資格證題目答案
- 2025年三明道路貨運(yùn)駕駛員從業(yè)資格證考試題庫(kù)完整
- 2025年貨車從業(yè)資格證答題軟件
- 2024-2025學(xué)年四年級(jí)語(yǔ)文上冊(cè)第二單元明月4走月亮作業(yè)設(shè)計(jì)北師大版
- 個(gè)人前臺(tái)自我總結(jié)
- 初一英語(yǔ)閱讀理解100篇七年級(jí)上冊(cè)英語(yǔ)閱讀理解及答案
- 2024年廣東省深圳市中考道德與法治試題卷
- 腫瘤性發(fā)熱及護(hù)理
- 光伏工程施工組織設(shè)計(jì)
- DB4101-T 121-2024 類家庭社會(huì)工作服務(wù)規(guī)范
- 五年級(jí)上冊(cè)小數(shù)四則混合運(yùn)算練習(xí)100道及答案
- 【財(cái)務(wù)共享服務(wù)模式探究的文獻(xiàn)綜述4000字】
- 敬語(yǔ)專項(xiàng)練習(xí)-高考日語(yǔ)復(fù)習(xí)
- 窗簾工程招標(biāo)書(shū)
- 手術(shù)室術(shù)中物品清點(diǎn)不清的應(yīng)急預(yù)案演練流程及劇本
- 壓力管道安全技術(shù)監(jiān)察規(guī)程-工業(yè)管道
評(píng)論
0/150
提交評(píng)論