




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第一章:三、簡答題1. 軟件產(chǎn)品的特性是什么?答: 軟件是一種邏輯產(chǎn)品,具有無形性; 軟件產(chǎn)品的生產(chǎn)主要是研制;主要是腦力勞動; 軟件不存在磨損和老化問題,但存在退化問題; 軟件產(chǎn)品的成本非常昂貴,其開發(fā)方式目前尚未完全擺脫手工生產(chǎn)方式; 軟件具有“復雜性”,其開發(fā)和運行常受到計算機系統(tǒng)的限制。2. 軟件發(fā)展有幾個階段?各有何特征?答: 程序設計階段。 硬件特征:價格貴、存儲容量小、運行可靠性差。 軟件特征:只有程序、程序設計概念,不重視程序設計方法。 程序系統(tǒng)階段。 硬件特征:速度、容量及工作可靠性有明顯提高,價格降低,銷售有爆炸性增長。 軟件特征:程序員數(shù)量猛增,開發(fā)人員素質(zhì)低。 軟件工程
2、階段。硬件特征:向超高速、大容量、微型化及網(wǎng)絡化方向發(fā)展。軟件特征:開發(fā)技術有很大進步,但未獲得突破性進展,軟件價格不斷上升,未完全擺脫軟件危機。3. 什么是軟件危機?其產(chǎn)生的原因是什么?答:“軟件危機”(Software Crisis)的出現(xiàn)是由于軟件的規(guī)模越來越大,復雜度不斷增加,軟件需求量增大。而軟件開發(fā)過程是一種高密集度的腦力勞動,軟件開發(fā)的模式及技術不能適應軟件發(fā)展的需要。致使大量質(zhì)量低劣的軟件涌向市場,有的花費大量人力、財力,而在開發(fā)過程中就夭折。軟件危機主要表現(xiàn)在兩個方面:(1) 軟件產(chǎn)品質(zhì)量低劣,甚至開發(fā)過程就夭折。(2) 軟件生產(chǎn)率低,不能滿足需要。4. 什么是軟件過程?有哪
3、些主要的軟件過程模型?它們各有哪些特點?答:軟件過程是指在軟件工具的支持下,所進行的一系列軟件開發(fā)和進化的活動。軟件過程模型是對軟件開發(fā)實際過程的抽象和簡化,是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型,因此又稱為軟件開發(fā)模型。主要的軟件過程模型有:瀑布模型、增量模型、螺旋模型、噴泉模型和基于知識的模型等。瀑布模型是經(jīng)典的軟件開發(fā)模型,將軟件開發(fā)活動中的各項活動規(guī)定為依線性順序連接的若干階段,它簡單易用,在消除非結(jié)構(gòu)化軟件、降低軟件的復雜性、促進軟件開發(fā)工程化方面起了很大的作用。但在軟件開發(fā)實踐中也逐漸暴露出它的缺點。它將一個充滿回溯的軟件開發(fā)過程硬性分割為幾個階段,無法解決軟件需求不明確或者變
4、動的問題。增量模型是一種非整體開發(fā)的模型。根據(jù)增量的方式和形式的不同,分為基于瀑布模型的漸增模型和基于原型的快速原型模型。該模型具有較大的靈活性,適合于軟件需求不明確、設計方案有一定風險的軟件項目。螺旋模型將瀑布模型和增量模型結(jié)合起來,并加入了風險分析。螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周期可分為4個工作步驟:制定計劃、風險分析、實施工程、客戶評估。噴泉模型用于采用對象技術的軟件開發(fā)項目。它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性。噴泉模型使開發(fā)過程具有迭代性和無間隙性。軟件開發(fā)過程有4個階段,即分析、系統(tǒng)設計、軟件設計和實現(xiàn)。各階段相互重疊,以分析為基礎,資源消耗成塔
5、形,從高層返回低層無資源消耗。強調(diào)增量開發(fā),是對象驅(qū)動的過程,反映了對象的開發(fā)和重用過程。基于知識的模型也稱為智能模型。通過領域的專家系統(tǒng),可使需求說明更加完整、準確和無二義性。通過軟件工程知識和特定應用領域的知識和規(guī)則的應用來提供開發(fā)的幫助。5. 有哪些主要的軟件開發(fā)方法?答:主要的軟件開發(fā)方法有:結(jié)構(gòu)化開發(fā)方法、原型化開發(fā)方法和面向?qū)ο蟮拈_發(fā)方法。6. 軟件生存周期各階段的主要任務是什么?答:軟件生存周期按瀑布模型分為6個階段: 可行性研究與計劃(確定系統(tǒng)的目標和規(guī)模,分析項目的可行性); 需求分析與規(guī)格說明(明確系統(tǒng)的規(guī)格和要求); 設計(包括概要設計和詳細設計,將系統(tǒng)分解為模塊); 編
6、程(用程序語言實現(xiàn)每個模塊,簡單容易); 測試(發(fā)現(xiàn)并改正錯誤,分為模塊測試、集成測試和系統(tǒng)聯(lián)調(diào)三級); 運行維護(擴充功能、糾錯等)。7. 原型化方法的核心是什么?它具有哪些特點?答:原型化方法的核心是,花費少量代價建立一個可運行的系統(tǒng),使用戶及早獲得學習的機會。強調(diào)軟件開發(fā)人員與用戶的不斷交互,通過原型的演進不斷適應用戶任務改變的需求。它是一個循環(huán)的模型。速成原型法按以下步驟循環(huán)執(zhí)行: 快速分析。 構(gòu)造原型。 運行和評價原型。 修改與改進。第二章:三、 簡答題1. 需求工程包括哪些基本活動?各項基本活動的主要任務是什么?答:需求工程過程包括如下主要活動: 獲取需求。深入實際,在充分理解用戶
7、需求的基礎上,獲取足夠多的問題領域的知識,積極與用戶交流,捕捉、分析和修訂用戶對目標系統(tǒng)的需求,并提煉出符合解決領域問題的用戶需求。需求獲取的方法一般有問卷法、面談法、數(shù)據(jù)采集法、用例法、情景實例法以及基于目標的方法等。 需求分析與建模。對已獲取的需求進行分析和提煉,進行抽象描述,建立目標系統(tǒng)的概念模型,需求概念模型的要求包括實現(xiàn)的獨立性:不模擬數(shù)據(jù)的表示和內(nèi)部組織等;需求模擬技術又分為企業(yè)模擬、功能需求模擬和非功能需求模擬等。進一步對所建立的模型(原型)進行分析。需求模型的表現(xiàn)形式有自然語言、半形式化(如圖、表、結(jié)構(gòu)化英語等)和形式化表示等三種。 需求規(guī)格說明。對需求模型進行精確的、形式化的
8、描述,為計算機系統(tǒng)的實現(xiàn)提供基礎。 確認需求。以需求規(guī)格說明為基礎輸入,通過符號執(zhí)行、模擬或快速原型等方法,分析和驗證需求規(guī)格說明的正確性和可行性,確保需求說明準確、完整地表達系統(tǒng)的主要特性,就是對需求規(guī)格說明與用戶達成一致。其主要任務是沖突求解,包括定義沖突和沖突求解兩方面。常用的沖突求解方法有:協(xié)商、競爭、仲裁、強制、教育等,其中有些只能用人的因素去控制。 需求管理。在整個需求工程過程中,貫穿了需求管理活動。需求管理主要包括跟蹤和管理需求變化,支持系統(tǒng)的需求演進。由于客戶的需要總是不斷(連續(xù))增長的,但一般的軟件開發(fā)又總是落后于客戶需求的增長,如何管理需求的進化(變化)就成為軟件管理的首要
9、問題。對于傳統(tǒng)的變化管理過程來說,其基本成分包括軟件配置、軟件基線和變化審查小組。當前的發(fā)展是軟件家族法,即產(chǎn)品線方法。多視點方法也是管理需求變化的一種新方法,它可以用于管理不一致性,并進行關于變化的推理。進化需求是十分必要的。2簡述抽取需求的主要方法,并比較它們的特點。面談法。這是一種重要而直接簡單,隨時可使用的發(fā)現(xiàn)和獲取需求的方法。面談的對象主要有用戶和領域?qū)<遥号c用戶面談主要了解和提取需求,與領域?qū)<颐嬲?,是一個對領域知識的學習和轉(zhuǎn)換過程。使用該方法時應注意面談前要充分準備,面談后認真分析總結(jié),同時注意掌握面談的人際交流技巧,才能取得好的效果。問卷法調(diào)查法。通過采用向用戶發(fā)問卷調(diào)查表的方
10、式,達到徹底弄清項目需求的一種需求獲取方法。這是一種從多個用戶處收集需求信息的有效方式,是對面談法的補充。會議討論法。所謂會議討論法,是指開發(fā)方和用戶方召開若干次需求討論會議,達到徹底弄清項目需求的一種需求獲取方法。這種方法適合于開發(fā)方不清楚項目需求的情況。原型法。對于某些試驗性、探索性的項目,更是難于得到一個準確、無二義性的需求。而原型化方法(Prototyping Method)是獲取這一類項目需求的有效方法。面向用例的方法。分析建立“用例”的過程,也就是提取需求的過程。在實際應用中,常常將以上方法進行綜合應用。3. 客戶的需要總是不斷地增長,但是一般的軟件開發(fā)又總是落后于客戶需求的增長,
11、如何管理需求的進化就成為軟件進化的首要問題。請說明需求變更的管理過程。答:需求變更的管理是需求管理的核心內(nèi)容。其主要任務是對系統(tǒng)需求變更進行跟蹤和控制。對傳統(tǒng)的變化管理過程來說,其基本內(nèi)容包括軟件配置、軟件基線和變更審查等。目前推出的新的管理方法有軟件家族法,即軟件產(chǎn)品線方法及多視點方法等。下圖描述了需求變更的管理過程。識別出的問題問題分析和變更描述變更分析和成本計算變更實現(xiàn)修正后的需求4. M公司的軟件產(chǎn)品以實驗型的新軟件為主。用瀑布模型進行軟件開發(fā)已經(jīng)有近十年了,并取得了一些成功。若你作為一名管理人員剛加入M公司,你認為快速原型法對公司的軟件開發(fā)更加優(yōu)越,請向公司副總裁寫一份報告闡明你的理
12、由。切記:副總裁不喜歡報告長度超過一頁。參考答案提示:應先簡述瀑布模型的缺點,它已不適宜開發(fā)實驗型的軟件。根據(jù)快速原型法的特點,說明它特別適合于開發(fā)探索型、實驗型的軟件。5. 如何畫分層數(shù)據(jù)流圖?有哪些基本原則?答:總的原則是:至頂而下,逐層分解(畫分層數(shù)據(jù)流圖)。逐層分解的畫法可以控制每一層的復雜度。頂層:將整個系統(tǒng)作為一個加工,描述系統(tǒng)邊界(輸入與輸出)。中間層:將某個加工分解為一組子加工,其中的子加工還需進一步分解。底層:由不再進行分解的基本加工組成。畫分層數(shù)據(jù)流圖的基本原則有: 數(shù)據(jù)守恒與數(shù)據(jù)封閉原則。 加工分解的原則。 子圖與父圖“平衡”的原則。 合理使用文件的原則。6. 加工小說明
13、有哪些描述方法?它們各有何優(yōu)缺點?為什么不采用自然語言進行描述?答:主要的描述方法有三種;結(jié)構(gòu)化語言、判定表和判定樹。結(jié)構(gòu)化語言:介于自然語言和形式語言(如謂詞邏輯)之間的的一種半形式語言,它是自然語言的一個受限制的子集。是在自然語言的基礎上加上一些約束,一般分為兩層結(jié)構(gòu):外層語法較具體,為控制結(jié)構(gòu)(順序、選擇、循環(huán));內(nèi)層較靈活,表達“做什么”。常用結(jié)構(gòu)化英語或結(jié)構(gòu)化漢語表示,精確、簡明扼要、文體靈活。結(jié)構(gòu)化語言特點:簡單,易學,少二義性,但不好處理組合條件。判定表:適用于表述比較復雜的加工邏輯,如具有多項選擇條件的操作。判定表是一種二維的表格,常用于較復雜的組合條件。通常由四部分組成,如教
14、材表2-2所示。對用結(jié)構(gòu)化語言不易處理的較復雜的組合條件問題,可使用判定表。判定樹:本質(zhì)上與判定表相同,圖形表示更易于理解。描述一般組合條件較清晰,但不易輸入計算機。7. 考察下圖中子圖、父圖的平衡關系。圖1圖2參考答案: 顯然,圖1中子圖與父圖不平衡。 圖2中,如果有如下數(shù)據(jù)條目:訂貨單=客戶+賬號+數(shù)量則子、父圖平衡。8. 畫出銀行取款過程的用例圖。問題描述為:儲戶用存折取款,首先填寫取款單,根據(jù)“ 銀行卡”中的信息檢驗取款單與存折,如有問題,將問題反饋給儲戶,否則,登錄“儲戶存款數(shù)據(jù)庫”,修改相應數(shù)據(jù),并更新“銀行卡”,同時發(fā)出付款通知,出納向儲戶付款。參考答案:分析所給出的需求,確定角
15、色為:儲戶、存款數(shù)據(jù)庫、存折、出納。用例為:填寫取款單、驗證取款單與存折、銀行卡管理、數(shù)據(jù)庫管理、付款。銀行取款系統(tǒng)的高層用例圖儲戶存折出納存款數(shù)據(jù)庫付款數(shù)據(jù)庫管理填寫取款單銀行卡管理管理驗證取款單與存折<<extend>><<include>><<include>><<include>>第三章:三、簡答題1. 請解釋為什么需要體系結(jié)構(gòu)設計。答:軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個結(jié)構(gòu)、行為和屬性的高級抽象,由構(gòu)成系統(tǒng)的元素的描述、元素間的相互作用、指導元素集成的模式以及這些模式的約束組成。軟件體系結(jié)構(gòu)
16、不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓撲結(jié)構(gòu),并且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對應關系,提供了一些設計決策的基本原理。良好的體系結(jié)構(gòu)是普遍適用的,它可以高效地處理各種各樣的個體需求。2. 集中式模型和分布式模型相比各有什么優(yōu)缺點?答:以集中式的倉庫模型為例。其主要優(yōu)點:(1) 數(shù)據(jù)由某個子系統(tǒng)產(chǎn)生,并且被存儲到倉庫中,以便為另外一些子系統(tǒng)共享;(2) 由于中央集中控制的緣故,共享數(shù)據(jù)能得到有效的管理,各子系統(tǒng)之間不需要通過復雜的機制來傳遞共享數(shù)據(jù);(3) 一個子系統(tǒng)不必關心其他的子系統(tǒng)是怎么使用它產(chǎn)生的數(shù)據(jù);(4) 所有的子系統(tǒng)都擁有一致的基于中央數(shù)據(jù)倉庫的數(shù)據(jù)視圖。如果新子系統(tǒng)也采用相同的規(guī)范
17、,則將它集成于系統(tǒng)中是容易的。但這種系統(tǒng)也有明顯的缺陷:(1) 雖然共享數(shù)據(jù)得到了有效的管理,但隨之而來的問題是各子系統(tǒng)必須有一致的數(shù)據(jù)視圖以便能共享數(shù)據(jù),換句話說,就是各子系統(tǒng)之間為了能共享數(shù)據(jù)必須走一條折中的路線,這不可避免地會影響整個系統(tǒng)的性能。(2) 一個子系統(tǒng)發(fā)生了改變,它產(chǎn)生的數(shù)據(jù)也可能發(fā)生結(jié)構(gòu)上的改變。問題隨之而來,其他的子系統(tǒng)如何能正確解析這些數(shù)據(jù)呢?所以為了達到共享的目的,數(shù)據(jù)翻譯系統(tǒng)會被引入到整個系統(tǒng)當中。但這種翻譯的代價是很高的,并且有時是不可能完成的。(3) 中央數(shù)據(jù)倉庫和各子系統(tǒng)的私有數(shù)據(jù)庫必須有相同的關于備份、安全、訪問控制和恢復的策略,這可能會影響子系統(tǒng)的效率。(
18、4) 集中式的控制使數(shù)據(jù)和子系統(tǒng)的分布變得非常困難甚至成為不可能。這里分布指的是將數(shù)據(jù)或子系統(tǒng)分散到不同的機器上。分布式結(jié)構(gòu)有這樣的一些優(yōu)勢:(1) 資源共享:系統(tǒng)中每個服務節(jié)點上的資源都可以被系統(tǒng)中的其他節(jié)點訪問;(2) 開放性高:系統(tǒng)可以方便地增刪不同軟硬結(jié)構(gòu)的節(jié)點;(3) 可伸縮性好:系統(tǒng)可以方便地增刪新的服務資源以滿足需要;(4) 容錯能力強:分布式系統(tǒng)中的信息冗余可以容忍一定程度的軟硬故障;(5) 透明性高:系統(tǒng)中的節(jié)點一般只需知道服務的位置而不必清楚系統(tǒng)的結(jié)構(gòu)。但分布式結(jié)構(gòu)也存在著一些不足:(1) 復雜性:分布式系統(tǒng)比集中式系統(tǒng)要復雜得多。集中式系統(tǒng)的性能主要依賴于主機的處理器能力
19、,而分布式系統(tǒng)的性能則還會依賴于網(wǎng)絡的帶寬,這讓情形變得更加復雜。(2) 安全性:網(wǎng)絡環(huán)境隨時面臨著各種威脅:病毒、惡意代碼、非法訪問等。如何保證安全性是一個讓人頭疼的問題。(3) 可管理性:分布式系統(tǒng)的開放性造成了系統(tǒng)的異構(gòu)性。顯而易見,管理異構(gòu)的系統(tǒng)比管理主機系統(tǒng)要困難得多。(5) 不可預知性:這主要指系統(tǒng)的響應時間。網(wǎng)絡環(huán)境本身的特點決定了網(wǎng)絡負載會明顯地影響整個系統(tǒng)的響應時間。3. 請舉出一種集中式模型的實例,并圖示它的結(jié)構(gòu)。答:請參考“倉庫模型”4. 胖客戶模型和瘦客戶模型的區(qū)別是什么?它們分別被應用在什么樣的場合?答:在胖客戶模型中,客戶端應用負責用戶界面和應用邏輯部分,因此它的工
20、作比較繁重。一般的數(shù)據(jù)庫應用都是屬于這種結(jié)構(gòu)。而與此相反,在瘦客戶模型中,服務器負責了更多的工作,而客戶端的工作就變得非常單純。瀏覽器/Web服務器結(jié)構(gòu)就屬于瘦客戶結(jié)構(gòu),而且常被稱為B/S(Browser/Server)結(jié)構(gòu)。5.請舉出一種分布式模型的實例,并圖示它的結(jié)構(gòu)。答:請參考“兩層C/S模型”6.請為一個公司的電子商務網(wǎng)站建設提出體系結(jié)構(gòu)設計方案。答:略。7.分布式對象模型與客戶服務器模型有什么異同?答:在C/S模型中,客戶和服務器的“地位”是不“平等”的:客戶只能向服務器提出服務請求,而服務器不能向客戶提出服務請求,同時服務器之間可以互相提供服務。另外,客戶一般要知道服務器在網(wǎng)絡上的
21、具體位置(服務器的域名或者IP地址),相反,服務器則不需要。這種差別在一定程度上限制了系統(tǒng)的靈活性和可擴展性。而在分布式對象結(jié)構(gòu)中,服務的提供者是被稱為“對象”(Object)的系統(tǒng)組件(System Component)。每個對象的地位在邏輯上是平等的,它們可以互相為對方提供所需的服務。在這種情況下,提供服務的對象就是服務器,而提出服務請求的對象就是客戶。為了能夠提供服務,每個對象都有一個服務接口。8.請查閱相關的資料,寫一篇對比CORBA和DCOM的報告。答:略。9.模塊分解的最終目的是什么?答:模塊分解的目的是將系統(tǒng)“分而治之”,以降低問題的復雜性,使軟件結(jié)構(gòu)清晰,易閱讀、易理解,易于測
22、試和調(diào)試,因而也有助于提高軟件的可靠性。10. 模塊分解應該遵循什么樣的標準? 答:按照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設計總則對模塊進行分解。具體從以下方面考慮:(1) 盡可能建立功能模塊;(2) 消除重復功能;(3) 模塊的作用范圍與控制范圍,即當作用范圍為控制范圍的子集時,才能獲得較低的塊間聯(lián)系;(4) 模塊的大小適當;(5) 模塊的扇入/扇出數(shù)不宜太多。也可以用軟件獨立性的兩個定性指標來度量模塊分解的標準:一是耦合性。用于描述模塊之間聯(lián)系的緊密程度。從三個方面衡量塊間聯(lián)系大?。悍绞?(直接或間接)類型(數(shù)據(jù)型、控制型、混合型)數(shù)量(數(shù)量越大,塊間聯(lián)系越緊密。二是內(nèi)聚性。用于描述模塊內(nèi)部
23、聯(lián)系的緊密程度。它是從功能的角度來度量模塊內(nèi)的聯(lián)系。顯然,塊內(nèi)聯(lián)系愈緊,即內(nèi)聚性愈強,模塊獨立性愈好。功能型模塊獨立性最好。1117題答案略。第四章:三、 簡答題1.消息傳遞機制與傳統(tǒng)程序設計模式中的過程調(diào)用相比,有何本質(zhì)區(qū)別?答:(1) 消息傳遞必須給出信道的信息,通常要指出明確的接收方。 (2) 由于接收方是一通信實體,具有保持狀態(tài)的能力,所以同一發(fā)送方在不同時刻向同一接收方發(fā)送同樣的信息,可因接收方的當前狀態(tài)不同而得到不同的結(jié)果。 (3) 消息傳遞可以是異步的,發(fā)送方可以不必等待接收方返回信息就可以繼續(xù)執(zhí)行后面的操作,因而支持程序的并發(fā)和分布執(zhí)行,而過程調(diào)用只能是同步的,本質(zhì)上是串行的。
24、2比較面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法的特點,說明為什么面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法更加優(yōu)越。答:結(jié)構(gòu)化方法是以數(shù)據(jù)流和數(shù)據(jù)封閉性為基礎的,由SA、SD和 SP三部分構(gòu)成。該方法:無法實現(xiàn)從問題空間到解空間的直接映射。開發(fā)方法求解過程是先對應用領域(問題空間)進行分析,建立起問題空間的邏輯模型,再通過一系列復雜的轉(zhuǎn)換和算法,構(gòu)造計算機系統(tǒng),獲得解空間。無法實現(xiàn)高效的軟件復用。結(jié)構(gòu)化方法是面向過程的,將數(shù)據(jù)和處理過程(操作)分離,不僅增加了軟件開發(fā)的難度,也難于支持軟件復用。開發(fā)方法難以實現(xiàn)從分析到設計的直接過渡,從SA到SD要經(jīng)過一系列復雜的變換。而面向?qū)ο蟮姆椒ㄒ詫ο鬄楹诵模瑥娬{(diào)模擬現(xiàn)實世界中的概念而不
25、是算法,盡量用符合人類認識世界的思維方式來漸進地分析、解決問題。使問題空間與解空間具有一致性,便于對軟件開發(fā)過程所有階段進行綜合考慮,能有效地降低軟件開發(fā)的復雜度,提高軟件質(zhì)量。軟件開發(fā)各個階段有機集成,有利于系統(tǒng)的穩(wěn)定性。具有良好的重用性。面向?qū)ο蟮募夹g在利用可重用的軟件成分構(gòu)造新軟件系統(tǒng)上具有很大的靈活性,由于對象所具有的封裝性和信息隱蔽,使得對象的內(nèi)部實現(xiàn)與外界隔離,具有較強的獨立性。繼承性本身就是一種重用機制。綜上,顯然面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法更加優(yōu)越。3 Coad/Yourdon方法主要有面向?qū)ο蠓治觯∣OA)和面向?qū)ο笤O計(OOD)。OOA概念模型由5個層次組成,請簡述這5個層次。
26、答:OOA概念模型的5個層次分別是:(1) 發(fā)現(xiàn)類及對象。描述如何發(fā)現(xiàn)類及對象。從應用領域開始識別類及對象,形成整 個應用的基礎,然后,據(jù)此分析系統(tǒng)的責任。(2) 識別結(jié)構(gòu)。該階段分為兩個步驟。第一,識別“一般特殊”結(jié)構(gòu),該結(jié)構(gòu)捕獲了識別出的類的層次結(jié)構(gòu);第二,識別“整體部分”結(jié)構(gòu),該結(jié)構(gòu)用來表示一個對象如何成為另一個對象的一部分,以及多個對象如何組裝成更大的對象。(3) 定義屬性。其中包括定義類的實例(對象)之間的實例連接。(4) 定義服務。其中包括定義對象之間的消息連接。(5) 定義主題。主題由一組類及對象組成,用于將類及對象模型劃分為更大的單位,以便于理解。4面向?qū)ο蟮姆治霭男┲饕?/p>
27、動?所建立的分析模型包括哪些類型的模型?答:面向?qū)ο蟮姆治鲞^程分為論域分析和應用分析。論域分析過程是抽取和整理用戶需求并建立問題域精確模型的過程。應用分析是將論域分析建立起來的問題論域模型,用某種基于計算機系統(tǒng)的語言來描述。面向?qū)ο蟮姆治鼍唧w包括以下活動:獲取用戶基本需求。通常使用用例(User Case)來收集和描述。標識類和對象。包括標識類及對象的屬性和操作。定義類的結(jié)構(gòu)和層次。通常有一般與特殊 (GeneralizationSpecialization)結(jié)構(gòu),整體與部分(WholePart)結(jié)構(gòu)。 建立類(對象)之間的關系,用“對象-關系模型”描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。 建立對象行為模型,描述
28、系統(tǒng)的動態(tài)行為。所建立的分析模型包括:基本模型。是一個類圖(class diagram),是以直觀的方式表達系統(tǒng)最重要的信息。OOA基本模型的三個層次分別描述了:系統(tǒng)中應設哪幾類對象,每類對象的內(nèi)部構(gòu)成,對象與外部的關系。主題圖(subject)。又稱為子系統(tǒng)(subsystem),是將一些聯(lián)系密切的類組織在一起的類的集合。按照粒度控制原則,將系統(tǒng)組成幾個主題,便于理解。交互圖(interaction diagram) 是用例與系統(tǒng)成分之間的對照圖。主題圖和交互圖又稱為補充模型。5面向?qū)ο笤O計的主要任務是什么?答:面向?qū)ο蟮脑O計(Object-Oriented Design,OOD)是面向?qū)ο?/p>
29、開發(fā)方法(OOSD)的核心階段。是在OOA的基礎上解決系統(tǒng)“如何做”的問題。主要任務包括:系統(tǒng)設計 系統(tǒng)設計的任務包括:將分析模型中緊密相關的類劃分為若干子系統(tǒng)(也稱為主題),子系統(tǒng)應該具有良好的接口,子系統(tǒng)中的類相互協(xié)作;標識問題本身的并發(fā)性,將各子系統(tǒng)分配給處理器,建立子系統(tǒng)之間的通信。對象設計通過對象的認定和對象層次結(jié)構(gòu)的組織,確定解空間中應存在的對象和對象層次結(jié)構(gòu),并確定外部接口和主要的數(shù)據(jù)結(jié)構(gòu)。設計優(yōu)化對設計進行優(yōu)化,主要涉及提高效率的技術和建立良好的繼承結(jié)構(gòu)的方法。6為什么面向?qū)ο蟮姆椒軌蛴行У亟鉀Q軟件需求中存在的問題?需求過程中存在兩大難題,一是需求的確定是困難的,二是需求是不
30、斷變動的。尤其是對于一些大型軟件系統(tǒng),開發(fā)周期長,系統(tǒng)規(guī)模大,復雜性高。面向?qū)ο蟮姆椒ㄖ?,由于對象所具有的封裝性和信息隱蔽,使得對象的內(nèi)部實現(xiàn)與外界隔離,具有較強的獨立性。而且面向?qū)ο蟮姆椒ㄊ且詫ο鬄橹行臉?gòu)造軟件系統(tǒng),而不是基于對系統(tǒng)功能進行分解來構(gòu)造系統(tǒng),當系統(tǒng)功能需求改變時不會引起系統(tǒng)結(jié)構(gòu)的變化,使軟件系統(tǒng)具有良好的穩(wěn)定性和可適應性。軟件生存期各階段所使用的方法、技術具有高度的連續(xù)性,對軟件開發(fā)過程所有階段進行綜合考慮,能有效地降低軟件開發(fā)的復雜度,提高軟件質(zhì)量,也便于需求的確定。7. OMT方法明確提出了建模的概念,為什么在軟件開發(fā)過程中需要進行建模?答:OMT方法從不同而又相關的角度建
31、立三類模型:對象模型、動態(tài)模型和函數(shù)模型,并為每一類模型提供了圖形表示。軟件模型一般包括數(shù)學模型、描述模型和圖形模型。在軟件開發(fā)過程中進行建模,一是由于軟件系統(tǒng)的復雜性和規(guī)模的不斷增大,需要建立不同的模型對系統(tǒng)的各個層次更好地進行描述。模型具有的直觀性及豐富的信息描述,便于開發(fā)人員與用戶的交流。建立的模型為以后的系統(tǒng)維護和升級提供了文檔。鑒于上述原因,在軟件開發(fā)過程中建模,能夠提高軟件開發(fā)的效率和質(zhì)量。8為什么說面向?qū)ο蟮姆椒檐浖陀锰峁┝肆己玫沫h(huán)境?答:軟件復用是將已有的軟件成分用于構(gòu)造新的軟件系統(tǒng),以達到提高軟件系統(tǒng)的開發(fā)質(zhì)量與效率,降低開發(fā)成本的目的。復用的軟件成分也稱為可復用構(gòu)件(R
32、eusable Component)。對可復用組件一般有以下的要求:具有功能上的獨立性與完整性;具有較高的通用性;具有較高的靈活性;具有嚴格的質(zhì)量保證;具有較高的標準化程度。面向?qū)ο蟮姆椒▽陀玫闹С种饕从吃冢好嫦驅(qū)ο蠓椒梢员Wo在整個軟件生存周期概念、原則、術語及表示法達到高度一致。這使面向?qū)ο蠓椒ú坏茉诟鱾€級別支持軟件復用,而且能對各個級別的復用形成統(tǒng)一、高效的支持,達到良好的全局效果。OOA基本模型體現(xiàn)了更高的抽象,更容易成為一個可復用的系統(tǒng)構(gòu)架。所有的對象都用類作為其抽象描述。類作為一種可復用構(gòu)件,在運用于不同系統(tǒng)時,不會出現(xiàn)因該類對象實例不同而使系統(tǒng)模型有所不同的情況。所以面向?qū)?/p>
33、象方法的主要概念及原則與軟件復用的要求十分吻合。OO方法中的對象和類是系統(tǒng)的基本構(gòu)成單位,它符合可復用構(gòu)件所應具備的那些特性,如完整性、獨立性、可標識性、一般性、抽象、封裝等。尤其是面向?qū)ο蠓椒ǖ膶ο蠓庋b性,為軟件復用技術提供了良好的條件。而繼承機制本質(zhì)上就是一種復用機制,因此面向?qū)ο蠓椒檐浖陀锰峁┝艘粋€良好的環(huán)境。第五章:三、 簡答題1. 以圖1(一個在學校首次報名的 UML 活動圖)為例,說明如何繪制活動圖。圖1 學校首次報名的UML活動圖答:要創(chuàng)建一個UML活動圖,需要反復執(zhí)行下列步驟。(1) 定義活動圖的范圍。首先應該確定建模的范圍,是對整個系統(tǒng)建模,還是一個子系統(tǒng)。一旦定義了作圖
34、的范圍,應該在其頂部,用一個注釋指明該圖的標題和惟一的標識符,還可標注該圖的時間及作者姓名。本題的建模范圍是一個學校管理系統(tǒng)中的“報名”部分。(2) 添加活動。活動是活動圖的核心,活動是完成系統(tǒng)任務所必須執(zhí)行的處理步驟??蓮挠美P统霭l(fā),對每個角色(actor)所驅(qū)動的主要用例引入一個活動,如果是對整個系統(tǒng)建模,應對每個主要流程引入一個活動。在“報名”的活動圖中確定了“Fill out enrollment ”(填寫報名表)、“Enroll in university”(登記入學)、“Obtain help to fill out forms”(幫助填寫報名表)、“Attend univers
35、ity overview presentation”(參加介紹學校會議)等6個活動。(3) 添加起點和結(jié)束點。每個活動圖只能有一個起始點和多個結(jié)束點,結(jié)束點可以是所有活動的結(jié)束,也可以是對執(zhí)行過程的終止。(4) 添加活動間的轉(zhuǎn)變。當一個活動結(jié)束時將進入下一個活動,稱為活動轉(zhuǎn)移??蓸嗣骰顒愚D(zhuǎn)移的條件、引起活動轉(zhuǎn)移的事件。如活動“填寫報名表”有兩個活動轉(zhuǎn)移,當填寫報名表不正確時,則轉(zhuǎn)移到活動“幫助填寫報名表”;當填寫正確時,則轉(zhuǎn)移到活動“登記入學 ”。(5) 添加判斷點。當對建模的邏輯需要做出一個判斷時,需要添加判斷點。例如,在圖1中 ,在“Enroll in university”活動之后,還必
36、須按照入學條件進行判斷,滿足條件的繼續(xù)執(zhí)行入學報到的活動,而不滿足入學條件的則結(jié)束。(6) 找出并行活動。若兩個活動間沒有直接的聯(lián)系,而且它們都必須在第三個活動開始前結(jié)束,則它們是可以并行運行的。在圖1中,用同步線描述系統(tǒng)任務中的并發(fā)活動,活動“Attend university overview presentation”(參加介紹學校會議)和“Enroll in seminars” (注冊研討班)及“Make initial tuition payment”(交付初始的學費)可并行執(zhí)行,使用同 步線表示它們都要在結(jié)束整個流程前完成。2. 簡述擴展、包含和細化三種UML依賴關系的異同。答:擴
37、展、包含和細化都是描述了元素之間的依賴關系,但具體含義不同。擴展(extend)關系是對基本用例在對某些“擴展點”的功能的增加。通過向被擴展的用例添加動作來擴展用例。包含(include)關系表示一個元素為了實現(xiàn)或完成其全部的功能,需要用到已存在的另一個模型元素,本質(zhì)上是一種使用關系。細化關系是不同語義層(如分析和設計)之間模型元素的依賴關系,表示一個元素對另一個因此細化關系可描述的語義范圍較廣,包括模型的逐步細化、優(yōu)化、變換、模板、模型合成、框架組成等。3. 軟件開發(fā)為什么要使用UML建模?它有何特點?答:軟件開發(fā)的過程猶如雕琢一件工藝品,由無形到有形,由粗到細。鑒于軟件系統(tǒng)的復雜性和規(guī)模的
38、不斷增大,項目失敗的可能性也相應增加。需要建立不同的模型對系統(tǒng)的各個層次進行描述。在長期的研究與實踐中,人們越來越深刻地認識到,建立簡明準確的表示模型是把握復雜系統(tǒng)的關鍵。模型是對事物的一種抽象,在軟件開發(fā)過程中,建立各種模型,以便更透徹地了解系統(tǒng)的本質(zhì)。由于UML以圖形模型為主,模型的直觀性及豐富的信息描述便于開發(fā)人員與用戶的交流。建立的模型也為以后的系統(tǒng)維護和升級提供了文檔??偟膩碚f,使用模型可以使人們從全局上把握系統(tǒng)的全貌及其相關部件之間的關系,可以防止過早地陷入各個模塊的細節(jié)。因此,面向?qū)ο蟮姆治雠c設計應該從建模開始。UML是一種標準的圖形化、可視化的建模型語言,UML的核心是建立系統(tǒng)
39、的各類模型。其主要特點是:統(tǒng)一標準。UML統(tǒng)一了面向?qū)ο蟮闹饕髋葿ooch、OMT和OOSE等方法中的基本概念,已成為對象組織OMG的正式標準,并提供了標準的面向?qū)ο蟮哪P驮氐亩x和表示。面向?qū)ο?。UML集面向?qū)ο蠹夹g的眾家之長。吸取了面向?qū)ο蠹夹g領域中其他流派的長處??梢暬?、表示能力強。系統(tǒng)的各種模型都能用UML的可視化模型清晰地表示,對系統(tǒng)描述能力強,模型蘊涵的信息豐富,可用于復雜軟件系統(tǒng)的建模。獨立于過程。UML是系統(tǒng)建模語言,獨立于開發(fā)過程。易掌握、易用。UML的概念明確,建模表示法簡潔明了,圖形結(jié)構(gòu)清晰,易于掌握使用。正是由于UML具有上述優(yōu)點,所以對于大型復雜系統(tǒng)的建模,UML
40、是最合適的選擇。4. 簡述UML實際建模過程。答:UML建模過程是一個迭代過程。每次迭代都建立相應的模型。分為以下幾個階段: 分析階段。建模的目的是捕捉系統(tǒng)的功能需求,分析、提取所開發(fā)系統(tǒng)的“客觀世界”領域的類以及描述它們的合作關系。常以用例圖為首選模型。 設計階段。建模的目的是通過考慮實現(xiàn)環(huán)境,將分析階段的模型擴展和轉(zhuǎn)化為可行的技術實現(xiàn)方案。常建立以類圖為主的靜態(tài)模型,及包括狀態(tài)模型、順序模型、活動模型和合作模型等動態(tài)模型。 實現(xiàn)階段。主要工作就是進行編碼,同時對已構(gòu)造的模型作相應的修正。 配置階段。通過模型描述所開發(fā)系統(tǒng)的軟硬件配置情況建立配置模型。 測試階段。使用前幾個階段所構(gòu)造的模型來
41、指導和協(xié)助測試工作。5. 在UML中,狀態(tài)圖、協(xié)作圖、活動圖、順序圖在系統(tǒng)分析中各起到了什么作用?答:狀態(tài)圖(State Diagram)用來描述一個特定對象在其生存周期或在某段時間內(nèi)的所有可能的狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。一個狀態(tài)圖包括一系列的狀態(tài)以及狀態(tài)之間的改變。例如訂單的狀態(tài)變化等,在實時系統(tǒng)中用得較多,還可以用于輔助設計用戶界面。順序圖(Sequence Diagram) 清晰地描述一組對象之間動態(tài)的交互關系、時間的約束關系,著重描述對象間消息傳遞的時間順序,所以順序圖在實時系統(tǒng)中被大量使用。當參與交互的對象數(shù)目增加,交互關系復雜時用順序圖描述會顯得雜亂,協(xié)作圖(Collaborat
42、ion Diagram)從另一個角度來更好地描述相互協(xié)作的對象間的交互關系和鏈接(Link)關系。著重體現(xiàn)交互對象間的靜態(tài)鏈接關系和協(xié)作關系。協(xié)作圖也可以從順序圖生成?;顒訄D(Activity Diagram)是由狀態(tài)圖變化而來的,從系統(tǒng)任務的觀點來看,系統(tǒng)的執(zhí)行過程是由一系列有序活動組成的?;顒訄D可以有效地描述整個系統(tǒng)的流程,描述了系統(tǒng)的全局的動態(tài)行為,且只有活動圖是唯一能夠描述并發(fā)活動的UML圖。6. 順序圖與協(xié)作圖都是交互圖,它們有何不同?所描述的主要系統(tǒng)特征是什么?順序圖(Sequence Diagram) 重點描述某些對象間消息傳遞的時間順序,對象間的通信和交互通過在對象的生命線之間
43、傳送的消息來表示。還常給出消息的說明信息及消息之間的時間限制及一些約束信息等。但當參與交互的對象數(shù)增加,交互關系復雜時難于表達清楚對象之間的交互關系。協(xié)作圖(Collaboration Diagram) 則著重體現(xiàn)交互對象間的靜態(tài)鏈接關系和協(xié)作關系,不強調(diào)執(zhí)行事件的順序,而是強調(diào)為了完成某個任務,對象之間通過發(fā)送消息實現(xiàn)協(xié)同工作關系。可以有效地描述當參與對象數(shù)較多時的交互關系。7. 狀態(tài)圖與活動圖有何相同與不同之處?在建立系統(tǒng)模型時,應該如何使用這兩類模型?答:活動圖(Activity Diagram)是由狀態(tài)圖變化而來的,它們各自用于不同的目的。狀態(tài)圖著重描述了對象的狀態(tài)變化以及觸發(fā)狀態(tài)變化
44、的事件。但是,從系統(tǒng)任務的觀點看系統(tǒng),它是由一系列有序活動組成的,活動圖是從活動的角度描述系統(tǒng)任務,并且可以描述系統(tǒng)任務中的并發(fā)活動?;顒訄D描述了系統(tǒng)中各種活動的執(zhí)行順序,刻畫一個方法中所要進行的各項活動的執(zhí)行流程?;顒訄D顯示動作及其結(jié)果,著重描述操作實現(xiàn)中完成的工作以及用例或?qū)ο髢?nèi)部的活動。此外,在狀態(tài)圖中狀態(tài)的變遷通常需要事件的觸發(fā),而活動圖中一個活動結(jié)束后將立即進入下一個活動。8. 什么是抽象類?在建模時有時使用抽象類有什么好處?答:抽象類是指沒有實例的類,定義一些抽象的操作,即不提供實現(xiàn)方法的操作,只提供操作的特征,并標注abstract。如在建立類模型時,常將一些屬性與操作類似的類作
45、為一個抽象類的子類,使系統(tǒng)結(jié)構(gòu)更加清晰,增加系統(tǒng)的可讀性。9. 以例5-5中圖5.22“資源管理用例圖”為例,說明<<include>>和<<extend>>的區(qū)別。答:在圖5.22中,用例“刪除資源”和“更新資源”與用例“查找資源”之間是<<include>>的關系,<<include>>本質(zhì)上是一種使用關系,當一個用例包含另一個用例時,這兩個用例之間就構(gòu)成了使用關系。說明“刪除資源”和“更新資源”的操作都需要首先“查找資源”。擴展<<extend>>是向一個用例中加入一些
46、新的動作后構(gòu)成了另外一個用例,后者是繼承前者的一些行為得來的。圖5.22中,對用例“更新資源”中增加動作“清除技能”,得到用例“從資源中清除技能”,增加動作“指定技能”,得到用例“把技能指定給資源”,因此,用例“更新資源”與“從資源中清除技能”和“把技能指定給資源”之間的關系是<<extend>>。10. 在分析和設計階段都需要建立類圖,試說明分析類圖與設計類圖的主要區(qū)別是什么。答:在軟件開發(fā)的不同階段都使用類圖,但這些類圖表示了不同層次的抽象。在需求分析階段,類圖是研究領域的概念;在設計階段,類圖重點描述類與類之間的接口。由于分析類圖主要描述應用領域中的概念,它們的類
47、可以從這些概念中得出,或者說分析類圖中的類是從需求中獲取的。設計類圖描述軟件的接口部分,而不是軟件的實現(xiàn)部分。面向?qū)ο箝_發(fā)方法非常重視區(qū)別接口與實現(xiàn)之間的差異,可以用一個類型(Type)描述一個接口,這個接口可能因為實現(xiàn)環(huán)境、運行特性或者用戶的不同而具有多種實現(xiàn)方式。設計類圖更易于開發(fā)者之間的相互理解和交流。設計類圖通常是在分析類圖的基礎上進行細化和改進的。11. 問題描述:儲戶用存折取款,首先填寫取款單,根據(jù)“銀行卡”中的信息檢驗取款單與存折,如有問題,將問題反饋給儲戶;否則,登錄“儲戶存款數(shù)據(jù)庫”,修改相應數(shù)據(jù),并更新“帳卡”,同時發(fā)出付款通知,出納向儲戶付款。 建立系統(tǒng)的用例模型; 建立
48、角色和用例的描述模板。答:通過分析,確定系統(tǒng)的角色為:儲戶、存款數(shù)據(jù)庫、存折、出納。用例為:填寫取款單、驗證取款單與存折、銀行卡管理、數(shù)據(jù)庫管理、付款。銀行取款系統(tǒng)的高層用例圖儲戶存折出納存款數(shù)據(jù)庫付款數(shù)據(jù)庫管理填寫取款單銀行卡管理管理驗證取款單與存折<<extend>><<include>><<include>><<include>>描述模板:角色描述模板:角色:儲戶角色職責:提供取款存折和取款信息。角色職責識別:提供存折、填寫取款單、領取付款。角色:存折角色職責:儲戶存、取款的憑證。角色職責識別
49、:(1)向系統(tǒng)提供取款憑證。(2)與“銀行卡管理”子系統(tǒng)交互,核對取款單。角色:出納角色職責:向儲戶付款。角色職責識別:(1) 根據(jù)儲戶存款數(shù)據(jù)庫的通知,向儲戶付款。 (2)與“付款”子系統(tǒng)交互。角色:存款數(shù)據(jù)庫角色職責: 對儲戶信息及存、取款業(yè)務進行管理。角色職責識別:(1)在系統(tǒng)支持下完成銀行數(shù)據(jù)庫管理工作。(2)為銀行卡管理及通知付款提供信息。用例描述模板:用例名:驗證取款單與存折執(zhí)行者:儲戶、存折、存款數(shù)據(jù)庫目標: 根據(jù)“銀行卡”中的信息檢驗取款單與存折。功能描述:1. 獲取“銀行卡”中的信息。2. 檢驗取款單與存折信息。3. 返回驗證結(jié)果。其他非功能需求: 高可靠性、實時性主要步驟:
50、1. 儲戶填寫取款單。2. 根據(jù)銀行卡信息,檢驗取款單與存折信息是否正確。3. 若取款單與存折有問題,將信息返回給儲戶,否則登錄“儲戶存款數(shù)據(jù)庫”,修改相應數(shù)據(jù),并更新“銀行卡”。相關用例:填寫取款單、銀行卡管理、數(shù)據(jù)庫管理相關信息:(優(yōu)先級、性能、執(zhí)行頻率):優(yōu)先級:根據(jù)儲戶類型,決定處理的優(yōu)先次序,VIP用戶優(yōu)先。性能:實時性、高可靠性。其他用例模板略。12. 一個小型圖書資料管理系統(tǒng)的主要功能有:圖書資料的借出、歸還、查詢和管理,該系統(tǒng)有圖書管理員和普通讀者,普通讀者要使用系統(tǒng)必須先注冊。圖書管理員負責添加、更新和修改、刪除圖書資料,登記和查詢圖書的借閱、歸還情況。讀者可以按照作者或主題
51、檢索圖書資料,還可以預訂圖書資料,即當新購買或有讀者歸還時,系統(tǒng)立即通知讀者來借閱。 確定系統(tǒng)的類,并定義其屬性和操作; 畫出系統(tǒng)的分析類圖。參考答案:在分析系統(tǒng)需求的基礎上,采用名詞識別法與實體識別法,確定以下系統(tǒng)的類:Book類該類標識一本書,其屬性包括書名、作者、出版社等。User Information類該類標識一個用戶,其屬性包括用戶名、密碼、用戶類型等。Librarian類 該類是User Information類的子類,其操作包括查詢讀者信息,添加、刪除、更新讀者信息、查詢書籍信息、添加、刪除、更新書籍信息等。Borrower類該類是User Information類的子類,其操
52、作包括查詢個人信息、修改密碼等。System Manager類該類是User Information類的子類,其操作包括查詢圖書管理員信息,添加、刪除、更新圖書管理員信息等。BorrowCriteria類該類標識一條借書規(guī)則,其屬性包括規(guī)則名,規(guī)則應用對象等。Info Database類該類標識一個數(shù)據(jù)庫,其屬性有數(shù)據(jù)庫名,其操作有讀數(shù)據(jù)、寫數(shù)據(jù)和查找數(shù)據(jù)。Communication類該類實現(xiàn)各數(shù)據(jù)庫間的數(shù)據(jù)傳輸,其操作包括建立通信套接字、綁定端口、建立連接、發(fā)送數(shù)據(jù)、接受數(shù)據(jù)等。系統(tǒng)的分析類圖:由于圖書館的多本書構(gòu)成書庫,增加BookDatabase類,與Book類之間是聚合關系。同樣由于借
53、書規(guī)則不止一條,增加CriteriaDatabase類,與BorrowCriteria類之間是聚合關系。User Information13.為什么說RUP與UML密切結(jié)合,能夠開發(fā)出滿足最終用戶需要的高質(zhì)量軟件?答:好的軟件過程,是應用UML成功地進行軟件開發(fā)的關鍵。在眾多的軟件開發(fā)過程中, RUP統(tǒng)一過程(Rational Unified Process)能夠與UML最佳結(jié)合,不僅因為該過程的開發(fā)者也是UML的創(chuàng)立者,更因為RUP過程能夠有效地測度工作進度,控制和改善工作效率。RUP是最佳軟件開發(fā)經(jīng)驗的總結(jié),具有迭代式增量開發(fā)、使用實例驅(qū)動、以軟件體系結(jié)構(gòu)為核心的三個鮮明特點,還包括了軟件
54、開發(fā)中的6大經(jīng)驗:迭代式開發(fā);管理需求;使用基于組件的軟件體系結(jié)構(gòu);可視化建模;驗證軟件質(zhì)量;控制軟件變更。因此,RUP與UML密切結(jié)合,能夠開發(fā)出滿足最終用戶需要的高質(zhì)量軟件。14.分析RUP的二維開發(fā)模型,說明RUP的迭代開發(fā)過程。答:在RUP中,軟件開發(fā)生存周期根據(jù)時間和RUP的核心工作流劃分為二維空間。橫軸描述RUP開發(fā)過程的動態(tài)結(jié)構(gòu),縱軸描述RUP的靜態(tài)組成部分。橫軸把軟件開發(fā)周期(Cycle)劃分為起始(Inception)、演化(Elaboration)、構(gòu)造(Construction)和提交(Transition) 四個連續(xù)的階段(Pahse)。縱軸表示核心工作流。RUP中有商
55、業(yè)建模、需求、分析和設計、實現(xiàn)、測試、部署、配置和變更管理、軟件項目管理和環(huán)境9個核心工作流(Core Workflows):RUP中的每個階段都由一個或多個連續(xù)的迭代組成,每一個迭代都是一個完整的開發(fā)過程,產(chǎn)生一個可執(zhí)行的產(chǎn)品版本,在每個階段結(jié)束前都應有一個里程碑(MileStone)評估該階段的工作,只有當階段目標達到時才允許項目進入下一階段,產(chǎn)生一個階段里程碑。這是一種更靈活、風險更小的方法,是多次通過不同的開發(fā)工作流,這樣可以更好地理解需求,構(gòu)造一個健壯的體系結(jié)構(gòu),并最終交付一系列逐步完成的版本,稱為一個迭代生存周期。第七章:1. 基于組件的軟件開發(fā)的優(yōu)勢是什么? 大量來自產(chǎn)業(yè)實例研究
56、的證據(jù)表明基于組件的軟件開發(fā)導致軟件系統(tǒng)的開發(fā)成本、開發(fā)質(zhì)量、開發(fā)效率都得到了顯著的改善。開發(fā)的質(zhì)量基于組件的軟件開發(fā)的一個明顯優(yōu)點就是提高了軟件的質(zhì)量。可復用的組件相對于在單一應用中使用的模塊來說,一般都更為成熟并具有較高的質(zhì)量保證,這主要是因為:(1)可復用的組件在開發(fā)過程中都經(jīng)過嚴格的測試。組件的開發(fā)者一般都是在該組件的使用領域具有豐富經(jīng)驗、對該領域具有深入研究的開發(fā)團體,他們能從以往的客戶和開發(fā)項目那里得到許多寶貴的經(jīng)驗,因而更容易開發(fā)出高質(zhì)量的組件“精品”。在組件的開發(fā)過程中,為了保證它廣泛的適應性和在頻繁使用過程中的正確性,一般對其有更高的質(zhì)量要求,并且在組件正式發(fā)布以前,都要進行更為嚴格的測試。因而可復用組件的質(zhì)量會得到更好的保證。(2)可復用的組件在不斷復用過程中,其中的錯誤和缺陷會被陸續(xù)的發(fā)現(xiàn),并得到及時的排除。所以隨著一個可復用組件復用次數(shù)的不斷增加,其中的錯誤會逐漸減少,軟件的質(zhì)量也隨之改善。在軟件開發(fā)中使用的一個可復用組件通常都是經(jīng)過許多其他客戶的頻繁使用,因此可復用的組件相對于新開發(fā)的模塊更為成熟。HP公司的一份研究報告認為:“被復用代碼的缺陷率是每一千行0.9個缺陷。而在新開發(fā)的代碼中缺陷率是每一千行4.1個缺陷。對一個包含68%復用代碼的軟件來說,缺陷率是每一千行2.0個缺陷,比無復用的軟件缺陷率大約減少了51%?!彼钥梢哉f
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銅冶煉過程中的環(huán)保設備研發(fā)進展預測分析研究考核試卷
- 金屬加工中的金屬加工設備維護管理信息系統(tǒng)考核試卷
- 礦石催化反應與催化機理考核試卷
- 銀冶煉中的冶煉廠智能化改造與生產(chǎn)調(diào)度考核試卷
- 針織品生產(chǎn)計劃與優(yōu)化考核試卷
- 外科縫合穿針教學
- 口腔護士職業(yè)實踐心得
- 麻醉科每月醫(yī)療質(zhì)量控制
- 冷菜制作的衛(wèi)生與安全
- 妊娠高血壓疾病查房要點
- 大學語文試題及答案安徽
- 近七年寧夏中考化學真題及答案2024
- 2025至2030中國芳綸纖維行業(yè)需求預測及發(fā)展前景趨勢研究報告
- 十一學校小升初入學測試數(shù)學真題及詳細解答
- Braden 壓力性損傷評分表詳解
- 婚內(nèi)賭博欠債協(xié)議書范本
- 造價咨詢項目管理制度
- 徐圩港區(qū)疏港航道整治工程報告書
- XX公司事故隱患內(nèi)部報告獎勵制度1
- 兒童重癥肺炎護理常規(guī)
- 裝飾裝修施工方案
評論
0/150
提交評論