當前位置首頁 > 計算機 > 架構(gòu)及軟件工程
搜柄,搜必應(yīng)! 快速導航 | 使用教程

軟件工程導論class14面向?qū)ο蠓椒▽W引論

文檔格式:PPT| 55 頁|大小 1,000.50KB|積分 14.9|2024-12-11 發(fā)布|文檔ID:253311061
第1頁
第2頁
第3頁
下載文檔到電腦,查找使用更方便 還剩頁未讀,繼續(xù)閱讀>>
1 / 55
此文檔下載收益歸作者所有 下載文檔
  • 版權(quán)提示
  • 文本預覽
  • 常見問題
  • 單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,,,單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,軟件工程導論 第,14,課,9.4.2,表示關(guān)系的符號,,9.4.2,表示關(guān)系的符號,類與類之間通常有,關(guān)聯(lián)、泛化(繼承)、依賴,和,細化,等,4,種關(guān)系,,1,關(guān)聯(lián),,關(guān)聯(lián)表示兩個類的對象之間存在某種語義上的聯(lián)系,,,,,,9.4.2,表示關(guān)系的符號,普通關(guān)聯(lián):,,最常見的關(guān)聯(lián)關(guān)系,只要在類與類之間存在連接關(guān)系就可以用普通關(guān)聯(lián)表示例如,作家使用計算機,我們就認為在作家和計算機之間存在某種語義連接,因此在類圖中應(yīng)該在作家類和計算機類之間建立關(guān) 聯(lián)關(guān)系,,,,,,,,,黑三角表示關(guān)聯(lián)方向,,,(2),關(guān)聯(lián)的角色,在任何關(guān)聯(lián)中都會涉及到參與此關(guān)聯(lián)的對象所扮演的角色, 在某些情況下,顯式標明角色,名有助于別人理解類圖,,例:一個人與另一個人結(jié)婚,必然一個人扮演丈夫的角色, 另一個人扮演妻子的角色如果沒有顯式標出角色名,則意 味著用類名作為角色名3),限定關(guān)聯(lián),,(3),限定關(guān)聯(lián),,(3),限定關(guān)聯(lián),限定關(guān)聯(lián)通常在一對多或多對多的關(guān)聯(lián)關(guān)系中,可以把模型中的 重數(shù)從一對多變成一對一,或從多對多簡化成多對一,,例如,某操作系統(tǒng)中一個目錄下有許多文件,一個文件僅屬于一 個目錄,在一個目錄內(nèi)文件名確定了惟一一個文件。

    可見,利用限定詞把一對多關(guān)系簡化成了一對一關(guān)系,,圖,9.7,查找,,目錄,->文件名->文件,,,,,,(4),關(guān)聯(lián)類,①為了說明關(guān)聯(lián)的性質(zhì)可能需要一些附加信息,可以引入一個關(guān)聯(lián)類來記錄這些信息②關(guān)聯(lián)中的每個連接與關(guān)聯(lián)類的一個對象相聯(lián)系關(guān)聯(lián)類通過一條虛線與關(guān)聯(lián)連接圖,9.8,有,4個連接,每個,,連接都對應(yīng)一個隊列,,2,聚集,聚集也稱為聚合,是關(guān)聯(lián)的特例聚集表示類與類之間的關(guān)系是,整體和部分,的關(guān)系在陳述需求時使用的,“包含”、“組成”、“分為,……,部分”,等字句,往往意味著存在聚集關(guān)系除了一般聚集之外,還有兩種 特殊的聚集關(guān)系,分別是共享聚集和組合聚集1),共享聚集,如果在聚集關(guān)系中處于部分方的對象可同時參與多個處于整體方對象的構(gòu)成,則該聚集稱為共享聚集一般,聚集和,共享,聚集的圖示符號,都是在表示關(guān)聯(lián)關(guān)系的直線未端,緊挨整體類的地方畫一個空心的菱形,,,,(2)組合聚集,如果,部分類完全隸屬于整,,體類,,部分與整體共存,,,整體不存在了 部分也會隨,,之消失(或失去存在的價,,值了),則該聚集稱為組合聚集(簡稱為組成)例如,在屏幕上打開一個窗口,它由文本框、列表框、按鈕和菜 單組成,一旦關(guān)閉了窗口,各個組成部分也同時消失,窗口和它的組成部分之間存在著組合聚集關(guān)系,,組成關(guān)系用實心菱形表示,,,,3,泛化,在,UML,中的,泛化關(guān)系,就是通常所說的,繼承關(guān)系,,它是通用元素和具體元素之間的一種分類關(guān)系。

    具體元素完全擁有通用元素的信息,并且還可以附加一些其他信息③ 泛化針對類型而不針對實例,一個類可以繼承另一個類,但一個對象不能繼承另一個對象④ 實際上,泛化關(guān)系指出在類與類之間存在“一般-特殊”關(guān)系⑤ 泛化可進一步劃分成,普通泛化,和,受限泛化,1),普通泛化,需要特別說明的是沒有具體對象的類稱為抽象類,,抽象類通常作為父類,用于描述其他類(子類)的公共屬性和 行為圖示抽象類時,在類名下方附加一個標記值,{abstract},,操作的圖示方法,在標記后面跟一個性質(zhì)串,{abstract},,,,,例子:一副工程藍圖由許多圖形組成,圖形可以是直線,圓, 多邊形或組合圖,而多邊形由直線組成,組合圖由各種線型混合而成,,,,(2),受限泛化,可以給泛化關(guān)系,附加約束條件,,以進一步說明該泛化關(guān)系的使用方法或擴充方法,這樣的泛化關(guān)系稱為受限泛化,,預定義的約束有4種:,多重,不相交,完全和不完全,,這些約束都是,語義約束,多重繼承,指的是,,一個子類可以同時多次繼承同一個上層基類與多重繼承相反是,不相交繼承,,,完全繼承,指的是,父類的所有子類都已在圖中窮舉,,不完全繼承,指的是,父類的所有子類沒有都窮舉出來,,,,,,4,依賴和細化,(1),依賴關(guān)系:依賴關(guān)系描述兩個模型元素之間的語義連接關(guān)系,其 中一個模型元素是獨立的,另一個模型元素不是獨立的,如果獨立的模型元素改變,將影響依賴于它的模型元素。

    箭頭指向獨立的類,,(2),細化關(guān)系:當對同一個事物在不同抽象層次上描述時,這些描述之間具有細化關(guān)系箭頭由更詳細層指向上層,,,,,9.5,動態(tài)模型,動態(tài)模型表示,瞬時的,行為化,的系統(tǒng)的“控制”性質(zhì),,,它規(guī)定了對象模型中的對象的合法,變化,序列狀態(tài),是任何可以被觀察到的系統(tǒng),行為模式,,,,每個類的動態(tài)行為用一張狀態(tài)圖來描繪,,? 各個類的狀態(tài)圖通過共享事件合并起來,從而構(gòu)成系統(tǒng) 的動態(tài)模型,,? 動態(tài)模型是基于事件共享而互相關(guān)聯(lián)的一組狀態(tài)圖的集 合,,,,,動態(tài)模型的三要素:,,①,事件,(event),:引發(fā)對象狀態(tài)改變的控制信息(瞬時),,②,狀態(tài),(status),:即對象的屬性所處的情形(可持續(xù)),,③,行為,(action),:對象要達到某種狀態(tài)所做的操作(耗時),,,,注意,:,,狀態(tài)圖:適合描述跨越多個用例的單個對象的行為,不適合描述多個對象之間的協(xié)作行為,,? 不應(yīng)對系統(tǒng)中的每個類都畫狀態(tài)圖,而只應(yīng)對某些 關(guān)鍵類建立狀態(tài)圖;而且應(yīng)將狀態(tài)圖與其它技術(shù)組 合使用,,,9.6,功能模型,表示變化的系統(tǒng)的“,功能,”性質(zhì),它指明了系統(tǒng)應(yīng)該“做什么”,因此更直接地反映了用戶對目標系統(tǒng)的需求,,功能模型由一組數(shù)據(jù)流圖組成,在面向?qū)ο蠓椒▽W中,數(shù)據(jù)流圖 遠不如在結(jié)構(gòu)分析設(shè)計方法中那樣重要,,② 一般說來,與對象模型和動態(tài)模型比較,數(shù)據(jù)流圖并沒有增加新 的信息,,UML,提供的用例圖也是進行需求分析和建立功能模塊的強有力工具,在,UML,中把用用例圖建立起來的系統(tǒng)模型成為,用例模型,。

    9.6.1,用例圖,用例圖包含的模型元素,:,系統(tǒng),,,,行為者,,,用例,及,用例之間,,的,關(guān) 系,.,,圖中的,方框,代表,系統(tǒng),,,,橢圓,代表,用例,,,,線條人,代表,行為者,,它們之間的,連線,表示,關(guān)系,,,,,,1系統(tǒng),,系統(tǒng)被看作是一個提供用例的黑盒子,內(nèi)部如何工作,用例如何實現(xiàn),這些對于建立用例模型來說都是不重要的系統(tǒng)的方框邊線表示系統(tǒng)的,邊界,,劃定系統(tǒng)的,功能范圍,,描述系統(tǒng)功能的用例置于方框內(nèi)行為者置于方框外2用例,,用例是可以被行為者感受到的,系統(tǒng)的一個完整的功能,,在,UML,中把用例,定義,成,系統(tǒng)完成的一系列動作,,動作的結(jié)果能被特定的行為者察覺到用例具有下述特征:,,(1),用例代表某些用戶可見的功能,實現(xiàn)一個具體用戶目標,,(2),用例總是被行為者啟動的,并向行為者提供可識別的,,(3),用例必須是完整的,,,,,,,,2用例,,用例是一個類,它代表一類功能而,不是使用該功能的某個具體實例,用例的實例是系統(tǒng)的一種實際使用方法,通常把用例的實例稱為腳本 腳本是系統(tǒng)的一次具體執(zhí)行過程,,例如,在自動售貨機系統(tǒng)中,張三投入硬幣購買礦泉水,系統(tǒng)收到錢后把礦泉水送出來,上述過程就是,一個腳本,;李四投幣買可樂,但是可樂賣完了,于是系統(tǒng)給出提示信息并把錢退還給李四,這個過程是,另一個腳本,。

    3行為者,,行為者,是指與系統(tǒng)交互的人或其他系統(tǒng),它代表,外部實體,使用用例并且與系統(tǒng)交互的任何人或物都是行為者行為者代表一種,角色,,而不是某個具體的人或物,,例如,在自動售貨機系統(tǒng)中,使用售貨功能的人既可以是張三 (買礦泉水)也可以是李四的(買可樂),但是不能把張三或李四這樣的個體對象稱為行為者直線,連接行為者和用例,表示兩者之間交換信息,稱為,通信聯(lián)系,行為者觸發(fā)用例,并與用例交換信息,,,,,,,,,,4用例之間的關(guān)系,,uml1.1,中有兩種用例關(guān)系,,>,關(guān)系和,>,關(guān)系,,它們都是泛化(,generalization,)關(guān)系的構(gòu)造型(,stereotype,),,uml1.3,之后,提供了三種用例關(guān)系,,>,關(guān)系、,>,關(guān)系都是依賴(,dependency,)關(guān)系的構(gòu)造型(,stereotype,),,泛化關(guān)系(,generalization,),,,,,,(1),擴展關(guān)系,向一個用例中,添加,一些動作后構(gòu)成了另一個用例,,,這兩個用例之間的關(guān)系就是擴展關(guān)系,,,后者稱為擴展用例例如,,,在自動售貨機系統(tǒng)中,,,”售貨”是一個基本的用例,,,如果顧客購買罐裝飲料,,,順利實現(xiàn)。

    而買散裝飲料則不行,買散裝飲料是非常規(guī)動作把非常規(guī)動作放置于”售散裝飲料”用例中,,,這兩個用例之間關(guān)系就是擴展關(guān)系,,,(2),使用關(guān)系,當一個用例使用另一個用例時,,,這兩個用例之間就構(gòu)成了,使用關(guān)系,,一般說來,,,如果在若干個用例中有某些相同的動作,,,則可以把這些相同的動作提取出來單獨構(gòu)成一個用例,(,成為抽象用例,),例如,,,在自動售貨機系統(tǒng)中,,,”供貨”和”取貨款”都要先打開機器,結(jié)束后關(guān)閉機器把打開機器抽象成”打開機器” 用例,,,把最后的動作抽象成”關(guān)閉機器”用例注意:,通常在描述一般行為的變化時采用擴展關(guān)系,;,在兩個或多個用例中出現(xiàn)重復描述又想避免這種重復時,,,可以采用使用關(guān)系,,,,,,9.6.2,用例建模,一個用例模型由若干幅用例圖組成,,創(chuàng)建用例模型的工作包括,:,,定義系統(tǒng),,,尋找行為者和用例,,② 描述用例,,,定義用例之間的關(guān)系,,③ 確認模型其中,,,尋找行為者和用例是關(guān)鍵,1.,尋找行為者,通過請系統(tǒng)的用戶回答一些問題的辦法來發(fā)現(xiàn)行為者,下述問題有助于發(fā)現(xiàn)行為者,:,,誰將使用系統(tǒng)的主要功能,(,主行為者,)?,,誰需要借助系統(tǒng)的支持來完成日常工作,?,,誰來維護和管理系統(tǒng),(,副行為者,)?,,系統(tǒng)控制哪些硬件設(shè)備,?,,系統(tǒng)需要與哪些其他系統(tǒng)交互,?,,哪些人或系統(tǒng)對本系統(tǒng)產(chǎn)生的結(jié)果,(,值,),感興趣,?,,,,,,,,,2.,尋找用例,一旦找到了行為者,,,就可以通過請每個行為者回答下述問題來獲取用例,:,,行為者需要系統(tǒng)提供哪些功能,?,行為者自身需要做什么,?,,行為者是否需要讀取,,,創(chuàng)建,,,刪除,,,修改或存儲系統(tǒng)中的某類信息,?,,系統(tǒng)中發(fā)生的事件需要通知行為者嗎,?,行為者需要通知系統(tǒng)某些事情嗎,?,,從功能觀點看,,,這些事件能做什么,?,,行為者的日常工作是否因為系統(tǒng)的新功能而被簡化或提高了效率,?,,系統(tǒng)需要哪些輸入輸出,?,輸入來自何處,?,輸出到哪里去,?,,當前使用的系統(tǒng),(,可能是人工系統(tǒng),),存在的主要問題是什么,?,,,,,,,,9.6.2,用例建模,,9.6.2,用例建模,,,9.7,三種模型之間的關(guān)系,三種模型之間關(guān)系,,FM,:功能模型做什么,What,,DM,:動態(tài)模型何時做,When,,OM,:對象模型操作的實體,How,,,,,9.7,三種模型之間的關(guān)系,(1),針對每個類建立的動態(tài)模型,,,描述了類實例的生命周期或運行周期。

    2),狀態(tài)轉(zhuǎn)換驅(qū)使行為發(fā)生,,,這些行為在數(shù)據(jù)流圖中被映射成處理,,,在用例圖中被映射成用例,,,它們同時與類圖中的服務(wù)相對應(yīng)3),功能模型中的處理,(,或用例,),對應(yīng)于對象模型中的類所提供的服務(wù)4),數(shù)據(jù)流圖中的數(shù)據(jù)存儲,,,以及數(shù)據(jù)的源點,/,終點,,,通常是對象模型中的對象9.7,三種模型之間的關(guān)系,(5),數(shù)據(jù)流圖中的數(shù)據(jù)流,,,往往是對象模型中對象的屬性值,,,也可能是整個對象6),用例圖中的行為者,,,可能是對象模型中的對象7),功能模型中的處理,(,或用例,),可能產(chǎn)生動態(tài)模型中的事件8),對象模型描述了數(shù)據(jù)流圖中的數(shù)據(jù)流,,,數(shù)據(jù)存儲以及數(shù)據(jù)源點,/,終點的結(jié)構(gòu)第,10章,面向?qū)ο蠓治?分析的過程是提取,系統(tǒng)需求,的過程,,分析兇包括,3項內(nèi)容:,理解、表達、驗證,,面向?qū)ο蠓治龅年P(guān)鍵是,識別出問題域內(nèi)的類與對象,,并分析它們相互間的,關(guān)系,,最終建立起問題域的簡潔、精確、可理解的正確模型由,對象模型,、,動態(tài)模型,、和,功能模型,組成10.1,面向?qū)ο蠓治龅幕具^程,10.1.1 概述,10.1.2,3個子模型與5個層次,Requirement statement =>,,Rapid prototype => Models,,3,個模型,,Object model,:最重要,開發(fā)任何系統(tǒng)都需要;,,Dynamic model,:對于開發(fā)交互式系統(tǒng),(interactive system),很重要;,,Function model,:對于開發(fā)大運算量問題(如科學計算、編譯系統(tǒng)等)很重要,,5,個層次,,,復雜問題的對象模型通常由,5個層次組成:,,主題層,,類與對象層,,結(jié)構(gòu)層,類與對象間的關(guān)系,,屬性層,,服務(wù)層,,主題是指導讀者理解大型、復雜模型的一種機制。

    通過劃分主題把一個大型、復雜的對象分解成幾個不同的概念范疇,從高層次描述總體模型,指導讀者的注意力,,5個層次對應(yīng)5項,主要活動,:,,找出類與對象,,識別結(jié)構(gòu)、識別主題、定義屬性、定義服務(wù)工作順序,:,,尋找類與對象,,識別結(jié)構(gòu)、識別主題、定義屬性、建立動態(tài)模型、建立功能模型、定義服務(wù)面向?qū)ο蠓治龅?,基本過程,,10.2,需求陳述,第三章中已介紹過,需求陳述的,內(nèi)容,包括:,,?,問題范圍、功能需求、性能要求、應(yīng)用環(huán)境、假設(shè)條件,等等陳述方式可繁可簡,說明,What,而不是,How,? 見教材對,Automated Teller Machine (ATM),的需求陳述10.2.2 例子,,,,10.3,建立對象模型,面向?qū)ο蠓治龅氖滓ぷ?,是建立問題域的對象模型典型的工作步驟:,,確定,Class-&-Object,,確定關(guān)聯(lián)?結(jié)構(gòu)層,,完善,,確立屬性,,識別繼承關(guān)系及其它修改,,10.3.1,確定類與對象,Class-&-Object,第,1,步:列出所有候選對象,(candidates),,它們可能是,:,,(1),物理實體 ,,(2),人或組織 ,,(3),要處理的事件,,(4),對象間的活動,,(5),抽象概念 等等;,,另一種方法非正式分析:從需求陳述中挑出,,名詞,?,Class-&-Object,,形容詞,?,Attribute,,動詞,?,Method,,,2,去粗取精,篩選出正確的類與對象,,,2,、確定關(guān)聯(lián)?結(jié)構(gòu)層,兩個或多個對象之間的相互依賴、相互作用的關(guān)系就是關(guān)聯(lián)。

    分析確定關(guān)聯(lián),能促使分析員考慮問題域的,邊緣情況,,有助于發(fā)現(xiàn)那些,尚未被發(fā)現(xiàn)的類與對象,1 初步確定關(guān)聯(lián),,需求陳述中使用的描述性,動詞或動詞詞組,通常表示關(guān)聯(lián)關(guān)系大多數(shù)關(guān)聯(lián)可以通過直接提取需求陳述中的動詞詞組得出ATM例子有下列關(guān)聯(lián),,(1)直接提取動詞短語得出的關(guān)聯(lián),,,ATM,、中央計算機、分行計算機及柜員終端組成網(wǎng)絡(luò),,? 總行擁有多臺,ATM,,?,ATM,設(shè)在主要街道上,,? 分行提供分行計算機和柜員終 端,,? 柜員終端設(shè)在分行營業(yè)廳及儲 蓄所內(nèi),,? 分行分攤軟件開發(fā)成本,,? 儲戶擁有賬戶,,? 分行計算機處理針對賬戶的事務(wù),,? 分行計算機維護賬戶,,? 柜員終端與分行計算機通信,,? 柜員輸入針對賬戶的事務(wù),,?,ATM,與中央計算機交換關(guān)于事務(wù)的信息,,? 中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系,,?,ATM,讀現(xiàn)金兌換卡,,?,ATM,與用戶交互,,?,ATM,吐出現(xiàn)金,,?,ATM,打印賬單,,? 系統(tǒng)處理并發(fā)的訪問,,(2),需求陳述中隱含的關(guān)聯(lián),,總行由各個分行組成 ?,,? 分行保管賬戶 ?,,? 總行擁有中央計算機,,系統(tǒng)維護事務(wù)日志,,系統(tǒng)提供必要的安全性?,,,儲戶擁有現(xiàn)金兌換卡,,(3)根據(jù)問題知識得出的關(guān)聯(lián),,現(xiàn)金兌換卡訪問賬戶,,? 分行雇用柜員,2 篩選,,,。

    點擊閱讀更多內(nèi)容
    最新文檔
    傳統(tǒng)文化道德不是高懸的明月而是腳下的星光.pptx
    世界無煙日關(guān)注青少年成長健康無煙為成長護航.pptx
    五四青年節(jié)詩詞贊歌五四青年自強不息.pptx
    XX學校班主任培訓用心管理慧做班主任.pptx
    拒絕熬夜健康養(yǎng)生規(guī)律作息遠離亞健康.pptx
    兒童成長手冊時光里的童真印記.pptx
    幼兒園夏季傳染病預防指南預見夏天健康童行夏季傳染病預防科普.pptx
    高中生心理健康教育主題班會快樂學習高效學習正視壓力學會減壓.pptx
    員工職業(yè)道德與職業(yè)素養(yǎng)培訓遵守職業(yè)道德提高職業(yè)修養(yǎng).pptx
    2025職業(yè)病防治法宣傳周健康守護職防同行.pptx
    XX幼兒園防災減災安全教育臨災不亂安全童行學會保護自己.pptx
    在2025年縣教育工作大會暨高考備考工作推進會上的講話發(fā)言材料.docx
    在2025年縣全面從嚴治黨和黨風廉政會議上的講話發(fā)言材料.docx
    在2025年全市慶?!拔逡弧濒邉趧幽7侗碚么髸系闹v話發(fā)言材料多篇.docx
    2025年稅務(wù)局青年代表在五四青年座談會上的發(fā)言材料3篇.docx
    在2025年市委全體會議上的主持講話發(fā)言材料.docx
    2025年黨風廉政建設(shè)工作要點材料.docx
    在2025年全市青年干部慶祝五四青年節(jié)大會上的講話發(fā)言材料多篇.docx
    在入黨積極分子培訓班上的講話發(fā)言材料.docx
    縣文旅局黨組書記在五一假期及夏季旅游安全生產(chǎn)工作部署會議上的講話發(fā)言材料.docx
    賣家[上傳人]:nuligan
    資質(zhì):實名認證