面向?qū)ο笃谀┛荚嚧鸢?doc
一、 填空(15分)1、類之間的 靜態(tài)聯(lián)系稱作關(guān)聯(lián)。 在實例化后,由類產(chǎn)生對象,鏈是關(guān)聯(lián)的實例。 在系統(tǒng)實現(xiàn)時,關(guān)聯(lián)采用對象的屬性來實現(xiàn)。2、用例圖用于建立需求模型,描述用戶的需求。對象圖是面向?qū)ο蠓治鲋械幕灸P停瑢儆陟o態(tài)結(jié)構(gòu)模型。 3、順序圖(時序圖)、通信圖、活動圖、狀態(tài)圖用于描述系統(tǒng)的行為方面的特征,屬于動態(tài)結(jié)構(gòu)模型。4、時序圖構(gòu)成:參與者、相互協(xié)作的對象、對象的生命線、參與者與對象之間發(fā)送的消息、執(zhí)行規(guī)約5、表示可見性 屬性名:類型 =初始值 可見性分為+表示:(公有的)、#表示:(受保護的)、-表示:(私有的)、 (包,只有在同一包中聲明的類能夠使用這一屬性)。 二、 名詞解釋(15分)1、面向?qū)ο蠓椒ǎ菏且环N運用對象、類、繼承、封裝、聚合、關(guān)聯(lián)、消息、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。2、類:是具有相同屬性和操作的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和操作務兩個主要部分。類的作用是用來創(chuàng)建對象,對象是類的一個實例。3、抽象:指從事物中舍棄個別的、非本質(zhì)的、與問題域無關(guān)的特征,而抽取共同的、本質(zhì)特征的、相關(guān)的做法。4、多態(tài)性:在具有繼承關(guān)系的類層次結(jié)構(gòu)中可以定義同名的操作或?qū)傩?,但這些屬性或操作具有不同的含義,即具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。(“同名不同參”或“同名不同類”)5、OOA模型:就是通過面向?qū)ο蟮姆治鏊⒌南到y(tǒng)分析模型。用況:一個用況是對參與者使用系統(tǒng)的一項功能的描述,是一組動作序列的描述,是一項請求與響應。(三、 簡答(45分)1、繼承和泛化關(guān)系特殊類擁有其一般類的全部屬性與操作,稱作特殊類對一般類的繼承。 一般類對特殊類的抽象關(guān)系叫泛化關(guān)系(簡稱泛化)。2、聚合與組合有區(qū)別,請說明他們間的區(qū)別,并指出下圖中哪圖是聚合?聚合刻畫了現(xiàn)實事物之間的構(gòu)成關(guān)系,體現(xiàn)“整體部分”關(guān)系。而關(guān)聯(lián)沒有組成關(guān)系或擁有關(guān)系。如例題中的c圖 3、簡述下圖中體現(xiàn)的面向?qū)ο蟮幕舅枷氪穑?(1)第一次抽象封裝:事物對象首先,直接以問題域(現(xiàn)實世界)中的事物為中心來思考問題、認識問題;然后,根據(jù)這些事物的本質(zhì)特征和系統(tǒng)責任,把它們抽象地表示為系統(tǒng)中的對象,作為系統(tǒng)的基本構(gòu)成單位。(對象) 這可以使系統(tǒng)直接映射問題域,保持問題域中事物及其相互關(guān)系的本來面貌. 用對象的屬性(attribute)表示事物的性質(zhì)(靜態(tài)特征);用對象的操作(operation)表示事物的行為(動態(tài)特征)。對象的屬性與操作結(jié)合為一體,成為一個獨立的、不可分的實體,對外屏蔽其內(nèi)部細節(jié)。(對象的封裝)復雜的對象可以用簡單的對象作為其構(gòu)成部分,對象之間是相互聯(lián)系的。(聚合)對象之間通過消息進行通訊,以實現(xiàn)對象之間的動態(tài)聯(lián)系. (消息) (2)第二次抽象(分類):對象類通過抽象對對象進行分類。把具有相同屬性和相同操作的對象歸為一類,類(class)是這些對象的抽象描述,每個對象是它的類的一個實例。 (分類) 通過關(guān)聯(lián)表達類(一組對象)之間的靜態(tài)關(guān)系。(關(guān)聯(lián)) (3)第三次抽象:子類父類 通過在不同程度上運用抽象的原則,可以得到較一般的類和較特殊的類。特殊類繼承一般類的屬性與操作,從而簡化系統(tǒng)的構(gòu)造過程及其文檔。(繼承)4、為什么說面向?qū)ο笳Z言使得從客觀世界到計算機世界的語義鴻溝變窄?5、 簡單說明OOA與OOD有何區(qū)別 答: OOA用面向?qū)ο蟮慕UZ言對系統(tǒng)要實現(xiàn)的需求進行建模,不考慮與系統(tǒng)的具體實現(xiàn)有關(guān)的因素或環(huán)境(如編程語言、界面、數(shù)據(jù)庫等); OOD是針對系統(tǒng)的一組具體實現(xiàn)條件或環(huán)境,繼續(xù)用面向?qū)ο蟮慕UZ言進行系統(tǒng)設(shè)計與實現(xiàn)。包括兩部分工作: 第一、根據(jù)具體實現(xiàn)條件或環(huán)境對OOA模型進行修改和調(diào)整 第二、根據(jù)具體實現(xiàn)條件或環(huán)境建立人機界面、數(shù)據(jù)存儲和控制驅(qū)動等。6、軟件復用有何益處、有哪些級別的軟件復用,為什么說繼承是軟件復用的重要形式益處: 提高軟件開發(fā)效率; 改善軟件質(zhì)量。復用級別: 程序(代碼)級復用 分析、設(shè)計結(jié)果的復用 繼承是重要的軟件復用形式7、如何發(fā)現(xiàn)參與者?人員系統(tǒng)的直接使用者設(shè)備與系統(tǒng)直接相聯(lián)的設(shè)備為系統(tǒng)提供信息在系統(tǒng)控制下運行不與系統(tǒng)相聯(lián)的設(shè)備計算機設(shè)備外系統(tǒng)上級系統(tǒng)子系統(tǒng)其它原有系統(tǒng)8、使用擴展用況描述下用例 9、類和對象的聯(lián)系有何聯(lián)系? 對象是類的實例由類創(chuàng)建出對象,系統(tǒng)是由若干個對象在計算機中的運行協(xié)作完成具體的功能; 屬性相似一個類的所有對象都具有相同個數(shù)、名稱、類型和含義的屬性,但不同的對象屬性具有不同的值; 操作相同一個類的所有對象的操作都具有相同的聲明和實現(xiàn) 生命周期對象具有生命周期,類沒有。10、OO方法中有“實例屬性”和“類屬性” 之分,請說明什么是“實例屬性”和“類屬性”? 答: 實例屬性包含同一屬性的每一個對象(實例)都具有自己的值。 類屬性是描述類的所有對象共同特征的一個數(shù)據(jù)項,對于任何對象實例,它的屬性值都是相同的,系統(tǒng)中只存在同一數(shù)據(jù)空間。 C+中冠以static的成員變量是類屬性,這樣的屬性對一個類的全部對象實例只是一份共同的數(shù)據(jù)空間,所以對任何對象而言,該屬性的值總是相同的。11、在下圖中,根據(jù)指定的條件標明A、B間的多重性。給定類A的一個對象a:(1) a 可以恰好與類B的一個對象關(guān)聯(lián)(2) a 可以最多與類B的一個對象關(guān)聯(lián)(3) a 可以與類B的一個或多個對象關(guān)聯(lián)(4) a 可以與類B的零個或多個對象關(guān)聯(lián)12、 如果在具有關(guān)聯(lián)關(guān)系的類中,存在著一個屬性放在哪個類中都不合適的情況,就考慮使用關(guān)聯(lián)類。請舉例說明:舉例:13、特殊類繼承了一般類的關(guān)聯(lián)。請對下列類圖,加以說明。答:一個系統(tǒng)管理員可以操作1.*的計算機,那么一個系統(tǒng)管理員也可以操作1.*的服務器或客戶機 答:教授可以指導學生、也可以指導教授的含義。答:學生可以指導學生、教授可以指導教授。學生可以指導教授,教授可以指導學生的含義(學生和教授都是人)答:學生可以指導學生、教授可以指導教授,教授可以指導學生的含義14、簡述對象生命線在時序圖中的特點答:生命線代表著類對象在當前模塊中的存活期,即代表了某個對象何時被創(chuàng)建,何時別銷毀。 生命線自上而下,上端出現(xiàn)與對象被創(chuàng)建時,下端結(jié)束于對象被銷毀時。否則,生命線應當從圖的頂部一直延續(xù)到底部。 創(chuàng)建對象的消息箭頭的頭部畫在對象符號上。如果對象在圖中被銷毀,那么用一個大的“” 標記它的析構(gòu),該標記或者放在調(diào)用析構(gòu)的消息箭頭處,或者放在從被銷毀的對象最終返回處理結(jié)果的箭尾處(在自析構(gòu)的情況下)。生命線可以分裂成兩條或更多條并發(fā)的生命線,并在某個后續(xù)點處合并,以表示條件性。即,消息的分支可能導致同一對象在生命周期的同一時刻表現(xiàn)出不同的行為,也就產(chǎn)生了生命線上的分支結(jié)構(gòu)。15、時序圖中,包含下圖形,請說明其含義一個對象的操作遞歸地調(diào)用自己或調(diào)用本對象的其他操作,將出現(xiàn)自調(diào)用的情形。四、 分析建模(25分)1、ATM終端處理取款的用況圖,動作序列如下: 系統(tǒng)從持卡人處獲得取款命令;系統(tǒng)檢查口令;系統(tǒng)完成用戶的取款處理;判斷是否打印回單,并打印回單; 結(jié)束操作并退卡要求使用擴展用例或包含用例轉(zhuǎn)換上同例圖答:2、很多軟件系統(tǒng)都需要登錄,若用戶登錄成功,就可以操作系統(tǒng)的功能,主要有以下方式:u 打開登錄頁面,用戶輸入登錄信息,系統(tǒng)執(zhí)行用戶驗證;系統(tǒng)驗證成功后,系統(tǒng)彈出功能提示框,等待用戶選擇執(zhí)行功能;用戶選擇執(zhí)行某個功能。u 打開登錄頁面,用戶輸入登錄信息,系統(tǒng)執(zhí)行用戶驗證;系統(tǒng)驗證成功后,轉(zhuǎn)入主界面;用戶可以執(zhí)行界面中的任何一個功能。u 用戶執(zhí)行主界面的某個功能,系統(tǒng)打開登錄頁面,用戶輸入登錄信息,系統(tǒng)執(zhí)行驗證,驗證通過后,系統(tǒng)繼續(xù)執(zhí)行用戶選擇功能的動作序列,完成用戶選擇的功能。 如下以一個研究生學籍管理系統(tǒng)為例,描述三種登錄方法。 為了簡化起見,假設(shè)此處僅描述登錄、選課和查看學分這3項功能。要求:分別設(shè)計出上三種處理方式的用例圖:3、用關(guān)聯(lián)類為公司和雇員之間的薪水關(guān)系建模。4、使用多重性、聚合建立大學、系、學生、課程、教師間的類圖5、銷售部接受到訂貨單后,進行審核,未被批準的訂單,直接送檔案科歸檔;批準的訂單,在系統(tǒng)中錄入,開具出庫單;配送部根據(jù)出庫單發(fā)貨并運送貨物,財務部對已發(fā)貨的訂單開具銷售發(fā)票并寄送給客戶;客戶在收到貨物后,驗貨付款;財務對已經(jīng)收到的貨款,開具收款憑證,連同訂單歸檔。要求:畫出以上活動的活動圖。