UML課程-福州大學計算機系_第1頁
UML課程-福州大學計算機系_第2頁
UML課程-福州大學計算機系_第3頁
UML課程-福州大學計算機系_第4頁
UML課程-福州大學計算機系_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

面向對象分析與設計(UML)授課教師:劉秉瀚聯(lián)系電話:83716525Email:lbh@1UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第1頁!內(nèi)容提要部分內(nèi)容概要:介紹面向對象軟件開發(fā)所使用的過程和技術,講解UML的基礎知識及其應用

1.基本概念和背景知識

2.UML語言詳述

3.UML對象分析設計第二部分Rose的使用:介紹支持UML的CASE軟件開發(fā)工具RationalRose第三部分學習實例:結合實例,應用面向對象思想,分析UML的應用方法與技巧2UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第2頁!參考書面向對象分析與設計(UML2.0版)[美]MikeO,Docherty著俞志翔譯清華大學出版社介紹面向對象的軟件開發(fā)所使用的過程和技術,描述了UML語言以及UML在面向對象的軟件系統(tǒng)分析與設計中的應用UML基礎、案例與應用

[美]JosephSchmuller著李虎王美英萬里威譯人民郵電出版社通俗易懂UML與RationalRose2002從入門到精通[美]WendyBoggsMichaelBoggs著邱仲潘等譯電子工業(yè)出版社很大篇幅介紹Rose的使用,適于入門UML參考手冊最經(jīng)典的書籍,由三劍客編寫,適于精通

3UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第3頁!資源鏈接中國UML論壇:.umlforum..umlchina.大量有關UML的資源和討論Rational公司.rational.了解UML和Rose進展的站點資源鏈接4UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第4頁!基本概念及背景知識軟件開發(fā)方法概述面向對象的系統(tǒng)分析與設計UML(UnifiedModelingLanguage)誕生5UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第5頁!方法學的優(yōu)勢開發(fā)中小型系統(tǒng)有助于對編碼設置規(guī)則。增進對問題的理解,提高解決方案的質(zhì)量。有助于在提交源代碼之前找出概念錯誤和實踐性的錯誤。能明確指定下一步工作。有助于編寫出擴展性更高(可用于解決其他問題)、可靠性更高(容易修改)、更容易調(diào)試(有較多的說明)的代碼。開發(fā)大型項目文檔說明:開發(fā)的每個階段提供全面的說明,完成的系統(tǒng)不會艱澀難懂。等待時間減少:由于工作流、活動的相互依賴性更容易理解,資源等待工作做的可能性也減少了。工作能及時交付,且不超過預算。人員之間有更好的交流:好的方法學建立在邏輯和常識的基礎之上,所有參與者較容易抓住其根本,因此,開發(fā)更有序,誤解和浪費資源的情況也較少。可重復性:類似項目可重用。更準確的成本。6UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第6頁!軟件開發(fā)階段的關鍵問題需求階段:什么是我們的上下文?要達到什么目的?分析階段:要處理什么實體?如何確保有正確的實體?系統(tǒng)設計階段:如何解決問題?在完成的系統(tǒng)中需要什么硬件和軟件?

子系統(tǒng)設計階段:如何實現(xiàn)解決方案?源代碼和支持文件有哪些?規(guī)范階段:哪些規(guī)則控制著組件之間的接口?可以去除模糊,確保正確嗎?實現(xiàn)階段:如何編寫符合規(guī)范要求的組件?如何編寫漂亮代碼?測試階段:完成的系統(tǒng)滿足要求嗎?系統(tǒng)能否被攻破?部署階段:系統(tǒng)管理員必須做什么?如何培訓最終用戶?維護階段:可以找出和更正錯誤嗎?可以改進系統(tǒng)嗎?7UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第7頁!瀑布開發(fā)維護部署測試實現(xiàn)規(guī)范設計分析需求8UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第8頁!瀑布模型的缺點:僵化瀑布模型要求:各階段要遵守嚴格的順序。瀑布模型要求:預先定義并“凍結”軟件需求。實際情況是:軟件開發(fā)往往在反復實踐中完成。實際情況是:某些系統(tǒng)的需求的一個逐漸明確的過程,且預先定義的需求到軟件完成時可能已經(jīng)過時9UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第9頁!螺旋式方法學規(guī)范分析設計需求實現(xiàn)測試部署維護在完成了一次循環(huán)后,就增進了對問題域和解決方案的理解,還使用戶參與進來,這樣用戶就可以更正我們對最終系統(tǒng)中包含的事務或功能的誤解。在經(jīng)過三四遍的開發(fā)過程,完成系統(tǒng)后,就可以全面測試和部署系統(tǒng)了。10UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第10頁!迭代方法學規(guī)范分析設計需求實現(xiàn)測試部署維護允許重復各階段,根據(jù)需要前后移動或來回移動。把軟件從早期階段傳遞給下述完備、使所有用戶滿足的整體系統(tǒng)。有三個原則避免混亂:經(jīng)典階段提醒我們應該在每個階段做什么,向什么方向移動。經(jīng)典階段的工作中產(chǎn)生的制品(圖、描述、代碼等)不應拋棄,應在進入部署階段的過程中逐步改進。支持所選方法學的軟件生產(chǎn)工具和表示法有助于保持制品的一致性,并在一個地方保存所有制品。11UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第11頁!合并方法學在最高層上,根據(jù)遞增式方法學,必須規(guī)劃一系列遞增部分。在每個遞增部分,螺循式方法學建議,開發(fā)每個遞增部分至少應進行二遍。在每一遍中,瀑布方法學制定了各個階段和它們的順序。在每一個子瀑布中,迭代式方法學允許重復各個階段,直至滿足需求為止。迭代式方法學還允許一發(fā)現(xiàn)問題就更正它。時間發(fā)布1.01.12.02.112UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第12頁!面向對象技術面向對象是一種新的軟件工程方法,新的程序設計范型基本技術:使用對象、類、繼承、封裝、消息等基本概念進行程序設計和實現(xiàn)基本思想:盡可能地運用人類的自然思維方式來構造軟件系統(tǒng)?,F(xiàn)實世界的問題是由客觀實體和實體之間的聯(lián)系構成的,對象就是客觀實體的抽象。13UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第13頁!面向對象的軟件工程(OOSE)方法面向對象的分析(OOA)面向對象的設計(OOD)面向對象的編程(OOP)面向對象的測試(OOT)面向對象的維護(OOSM)14UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第14頁!2、人員交流與通訊障礙:

軟件開發(fā)是一項創(chuàng)造性的思維活動,在軟件開發(fā)過程中人員的交流十分頻繁。軟件開發(fā)項目的有關人員包括用戶、領域專家、系統(tǒng)分析員、軟件設計員、程序員、測試員、項目管理員等,需要經(jīng)常交流,探討系統(tǒng)的需求,明確軟件成分的定義,協(xié)商系統(tǒng)的結構與銜接,進行工作的交接等,因而,軟件工程是“面向人”的。

通訊障礙常是人員交流的一個困難。例如,用戶、領域專家或項目管理員看不懂、不明白軟件開發(fā)人員表達問題的概念、術語、表示法,反之亦然。

需要有一套通用的思維方法和便于交流的語言,包括系統(tǒng)的模型、術語、表示法、文檔書寫格式等。15UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第15頁!4、軟件重用:軟件重用是提高軟件開發(fā)效率、改善軟件質(zhì)量的重要途徑。正如一座房屋由許多門、窗、墻、樓板等構件構成,一臺機器由許多零部件構成一樣,一個軟件系統(tǒng)也是由許多軟件構件構成的,其中很大部分可以復用已有的軟件構件,無須重復設計和編程。

需要解決重用構件的提取和制作、重用構件庫的組織、重用構件的檢索、重用構件的組裝等技術問題。16UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第16頁!面向對象的軟件開發(fā)語言與工具1981推出的Smalltalk-80面向對象的C/C++、Basic、Pascal、Fortran、Lisp、ADA、Java等MicroSoft公司的VisualC++、VisucalBasic計算機輔助軟件工程(CASE—ComputerAidedSoftwareEngineering)RationalRose—一個面向對象的且支持UML的CASE工具17UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第17頁!什么是對象?(Object)一個對象代表了一個現(xiàn)實的或虛構的實體自然實體(有形)概念實體(無形)化學過程生產(chǎn)計劃18UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第18頁!在面向對象軟件中,真實世界中的對象會轉化為代碼。在編程術語中,對象是獨立的模塊,有自己的數(shù)據(jù)和操作。Person對象:有頭銜、名字、出生日期和地址,它還可以改名,搬到新地址,告訴我們它有多大等。

如果以后需要知道Person身高,就可以把身高的知識和相關的行為直接添加到Person代碼中。在系統(tǒng)的其余部分中,只有需要身高屬性的代碼才需要修改,其余代碼保持不變。面向對象軟件的重要特征:改變的簡單性和本地化。電視機對象呢?-----改變其價格?給自己做一個新廣告?

如果電視機不做這些工作,系統(tǒng)的其余部分就要做。問題:電視的特性泄漏給代碼的其余部分,違背簡單性和本地化。19UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第19頁!類的示例

StructureNameAddressPositionSalaryStartDateEndDateClassEmployeeBehaviorHireFirePromoteIncreaseSalaryRetire20UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第20頁!對象的類您看到了幾個類?21UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第21頁!屬性取決于視點從銷售人員的角度

型號價格顏色里程數(shù)從維修人員的角度馬達類型傳動類型維修記錄一輛汽車具有的屬性:22UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第22頁!操作取決于視點從銷售人員的角度

處理客戶定單準備銷售合同加入清單從清單中刪除從維修人員的角度

測試剎車修理剎車轉動輪胎檢查馬達速度一輛汽車具有的操作:23UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第23頁!類和對象的關系每一個對象都是某一個類的實例每一個類在某一時刻都有零個或更多的實例類是靜態(tài)的;它們的存在、語義和關系在程序執(zhí)行前就已經(jīng)定義好了對象是動態(tài)的;它們在程序執(zhí)行時可以被建立和刪除24UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第24頁!繼承(Inheritance)子類(特化類、派生類)可以自動擁有父類(基類、泛化類、超類)的屬性和操作。例如:“洗衣機”、“冰箱”、“電視機”公共的屬性:開關、電線“家用電器”公共的操作是:開機、關機則:“家用電器”類是父類“洗衣機”、“冰箱”、“電視機”等是子類繼承可以提高軟件的可重用性。25UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第25頁!封裝(Encapsulation)將屬性和操作包裝成一個單元,使得對狀態(tài)的訪問和修改只能通過封裝提供的接口進行。封裝體現(xiàn)了面向對象方法的“信息屏蔽與局部化”的原則。26UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第26頁!關聯(lián)(Association)關聯(lián):對象之間所存在的聯(lián)系。聯(lián)系:分類關系(一般與特殊),聚集和組成關系(部分與整體),屬性之間的靜態(tài)聯(lián)系(實例連接),對象行為的動態(tài)聯(lián)系(消息連接)。多重性:關聯(lián)中一個類的對象可以對應另一個類的多個對象。27UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第27頁!面向對象分析問題論域分析發(fā)現(xiàn)和定義對象和類識別對象的外部聯(lián)系建立系統(tǒng)的靜態(tài)結構模型建立系統(tǒng)的動態(tài)行為模型28UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第28頁!面向對象分析(2)

---發(fā)現(xiàn)和定義對象和類

識別對象和類,確定它們的內(nèi)部特征:屬性和服務操作。這是一個從現(xiàn)實世界到概念模型的抽象過程,是認識從特殊到一般的上升過程。例如,系統(tǒng)中的對象是現(xiàn)實世界中事物的抽象,對象的屬性是事物的靜態(tài)特征的抽象(數(shù)據(jù)抽象),對象的服務是事物動態(tài)特征的抽象(過程抽象),對象的類是對象的抽象,一般類是特殊類的抽象等等。29UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第29頁!面向對象分析(4)

---建立系統(tǒng)的靜態(tài)結構模型分析系統(tǒng)的靜態(tài)結構,建立系統(tǒng)的靜態(tài)結構模型,并把它們用圖形和文字說明表達出來。這主要是在前面對于類和對象,及其聯(lián)系的分析的基礎上,繪制對象類圖和對象圖、系統(tǒng)與子系統(tǒng)結構圖等,編制相應的說明文檔。30UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第30頁!面向對象分析---總結OOA對系統(tǒng)行為的分析以對象為單位,包括對象的服務操作,對象之間的交互、工作流、事件流、消息傳遞、對象狀態(tài)轉換等。現(xiàn)實世界中的事物的行為是及其復雜的,需要從中抽象出對建立系統(tǒng)模型有意義的行為。在分析中需要控制系統(tǒng)行為的復雜性,應當注意確定行為的歸屬和作用范圍,確定事物之間的行為依賴關系,區(qū)分主動和被動,認識并發(fā)行為和狀態(tài)對行為的影響。系統(tǒng)的靜態(tài)結構模型和動態(tài)行為模型,以及必要的需求分析說明書、系統(tǒng)分析說明書一起構成了系統(tǒng)的分析模型,即對象模型。它是系統(tǒng)分析活動的成果,是下一步進行系統(tǒng)設計的基礎。31UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第31頁!面向對象設計(1)

---設計對象與類在OOA的對象模型的基礎上具體設計對象與類的屬性、服務操作(設計數(shù)據(jù)結構和操作的實現(xiàn)算法),設計對象與類的各種外部聯(lián)系的實現(xiàn)結構,設計消息與事件的內(nèi)容、格式等。類和對象的設計可以并且應當充分利用預定義的系統(tǒng)類庫或其它來源的現(xiàn)有的類,把它們加入到解決方案中去,并采用繼承、復用、演化等方法設計所需要的新類。32UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第32頁!面向對象設計(3)

---設計問題論域子系統(tǒng)問題域子系統(tǒng)應包括與應用領域的業(yè)務直接有關的全部的類和對象。OOD繼承OOA對問題域的分析工作,適當?shù)剡M行改進和補充,對OOA模型中的某些類、對象、結構、屬性、操作進行調(diào)整,根據(jù)軟件實現(xiàn)的要求增加必要的類、屬性和聯(lián)系。例如,把問題域的專用類關聯(lián)在一起,建立類層次;為公共操作建立一般類;調(diào)整繼承的表示結構等。在設計中應當考慮對時間與空間的折衷與權衡,以及內(nèi)存管理等問題。33UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第33頁!面向對象設計(5)

---設計數(shù)據(jù)管理子系統(tǒng)

數(shù)據(jù)管理子系統(tǒng)負責數(shù)據(jù)的管理,包括數(shù)據(jù)的錄入、操縱、檢索、存儲,以及對數(shù)據(jù)的訪問控制等。設計數(shù)據(jù)管理子系統(tǒng)的主要任務是:確定數(shù)據(jù)管理的方法,設計數(shù)據(jù)庫與數(shù)據(jù)文件的邏輯結構和物理結構,設計實現(xiàn)數(shù)據(jù)管理的對象類。34UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第34頁!面向對象設計(7)

---設計優(yōu)化,提高系統(tǒng)的性能

一個系統(tǒng)的質(zhì)量和性能指標有多個,如運行速度、內(nèi)存開銷、資源占用等,它們的重要性是不同的,指標之間還存在著矛盾。例如,要求運行速度高常導致多用內(nèi)存,多占資源。因此,應根據(jù)實際情況制定一個設計優(yōu)化的折衷方案,進行系統(tǒng)優(yōu)化,提高系統(tǒng)的性能和質(zhì)量。35UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第35頁!UML的誕生從1995年起,著名的軟件工程學家GradyBooch、IvarJacobson、JimRumbaugh攜手合作、共同努力,綜合了他們各自原創(chuàng)的面向對象的分析與設計方法,加以擴充改進,并汲取其他同類方法的優(yōu)點,提出了統(tǒng)一建模語言UML。1997年被美國工業(yè)標準化組織OMG(ObjectManagementGroup)接受,并發(fā)布了UML的標準版本,提供給計算機業(yè)界使用。36UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第36頁!考試方式40%-------筆試60%-------課程設計37UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第37頁!軟件開發(fā)方法概述

方法學(過程、方法):指開發(fā)項目通常應遵循的一系列規(guī)則,其中可能包含文檔的描述、設計模式及其他按某種順序產(chǎn)生的產(chǎn)品。38UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第38頁!軟件開發(fā)中的經(jīng)典階段需求:需求捕獲就是找出新軟件要達到的目標,包含兩方面:業(yè)務建模與系統(tǒng)需求建模。分析:分析表示理解我們要處理的商務。在設計解決方案之前,需要了解相關實體、它們的屬性和相關關系。設計:在設計階段,要確定如何解決問題。系統(tǒng)設計把系統(tǒng)分解為邏輯設計子系統(tǒng)(過程)和物理設計子系統(tǒng)(計算機和網(wǎng)絡)。規(guī)范:規(guī)范是按合同設計的、至關重要的底層規(guī)則,用來描述編程組件的期望行為。如:需求階段的結果是系統(tǒng)必須做什么的規(guī)范;分析的結果是我們要處理什么事務的規(guī)范,等。實現(xiàn):編寫代碼,形成子系統(tǒng)。子系統(tǒng)之間協(xié)同工作,形成整個系統(tǒng)。測試:軟件完成后,根據(jù)系統(tǒng)需求對其進行測試,檢測系統(tǒng)是否符合最初目標。部署:將硬件和軟件交付給最終用戶,并提供手冊和培訓材料。維護:投入運行后,對系統(tǒng)進行修改和完善。39UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第39頁!軟件開發(fā)方法概述瀑布方法學螺旋式方法學迭代式方法學遞增式方法學合并方法學面向對象方法學40UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第40頁!瀑布模型的優(yōu)點使早期的手工作坊式的軟件開發(fā)轉變?yōu)檐浖こ滔墙Y構化軟件、降低軟件復雜度有一套嚴格的計劃、步驟、規(guī)格、方法,保證軟件產(chǎn)品達到預期的質(zhì)量要求20世紀70年代以來得到廣泛的傳播41UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第41頁!瀑布模型適用于:重復某種區(qū)別很小的開發(fā)。作為一個架構,來學習軟件開發(fā)中使用不同的技術:盡管瀑布方法對于實際的開發(fā)來說過于簡單,但仍包含邏輯順序的經(jīng)典階段,適合于學習。是螺旋方法學中的一遍過程。作為支持迭代方法學的架構。用于開發(fā)人員較少的小項目的快速開發(fā)。如:原型、概念證明或快速應用程序開發(fā)等。42UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第42頁!與瀑布相比,問題少:用戶參與整個生命周期;每個人都可以看到開發(fā)人員的工作;可以調(diào)整改動的次數(shù)和每次改動所花的時間;比較適合于軟件開發(fā)的創(chuàng)新性。不完美之處:只是把瀑布開發(fā)過程進行了三四次,盡管問題越來越小,但并沒有消失。不靈活,在經(jīng)典階段要按照有序的方式進行。如果發(fā)現(xiàn)錯誤,必須在下一遍開發(fā)過程中才能更正。螺旋式方法學43UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第43頁!遞增式方法學在首次交付的系統(tǒng)版本(1.0)中,將包含最基本、最重要的功能。在以后的某個時間交付1.1版本,其中包含附加的功能(替代1.0)。之后,在對整體進行大的修改,交付2.0版本。這將延續(xù)至系統(tǒng)的生命周期。能滿足不斷變化的需求,適應市場的變化。時間發(fā)布1.01.12.02.144UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第44頁!軟件設計準則認識抽象:建立軟件的設計模型時常采用分層抽象的辦法。在最高的抽象層次上,可以采用問題的環(huán)境語言概括地描述問題的解法;在較低層次上,則采用過程化的方法描述問題的解法。模塊化:模塊化把一個復雜的軟件系統(tǒng)的設計問題轉化為若干個較小的、容易處理的模塊的設計問題,便于分別解決。信息屏蔽和局部化:信息隱蔽是指每個模塊的實現(xiàn)細節(jié)(過程和數(shù)據(jù))對于其它模塊是隱蔽的和不能訪問的。信息局部化是指把一切關系密切的軟件元素物理地就近安置。結構化程序設計:采用自頂向下逐步求精方法。

基本控制結構:順序、選擇、循環(huán)。軟件規(guī)范:當今國際和國內(nèi)都制訂了一系列的軟件規(guī)范,對軟件開發(fā)的目標、開發(fā)方法、開發(fā)過程、軟件文檔、質(zhì)量標準等都給出了明確的規(guī)定。45UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第45頁!面向對象技術的基本觀點客觀世界是由對象組成的。具有相同類型數(shù)據(jù)和相同操作的對象可以歸并為一類,對象是類的一個實例。類可以產(chǎn)生對象。類可以派生子類,子類繼承父類的特性。對象之間通過消息傳遞相互聯(lián)系。軟件工程學家認為:面向對象=對象+類+繼承+通訊46UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第46頁!傳統(tǒng)軟件系統(tǒng)分析與設計存在的問題

1、問題域和系統(tǒng)責任:

問題域是指待開發(fā)的系統(tǒng)的應用領域,也稱為業(yè)務領域。系統(tǒng)責任是指待開發(fā)的系統(tǒng)應具備的職能。問題域與系統(tǒng)責任密切相關,但兩者側重點不同。

準確、透徹地理解問題域與系統(tǒng)責任是軟件系統(tǒng)開發(fā)的首要任務。但要做到這一點很不容易,其原因有:軟件開發(fā)人員往往不是領域專家,對業(yè)務領域的理解深度有限,而參與系統(tǒng)分析的領域專家又往往對軟件開發(fā)的一些要求和方法不熟悉,難以恰當?shù)貧w納和提供軟件系統(tǒng)分析所要求的領域知識。迫切需要有效的方法和工具能夠簡單明了地描述待開發(fā)軟件的問題域與系統(tǒng)責任。47UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第47頁!3、系統(tǒng)需求變化:在軟件開發(fā)過程中系統(tǒng)的需求常不斷地發(fā)生變化。這種變化可能由多種原因引起。最常見的是用戶對系統(tǒng)的要求發(fā)生了改變。在軟件開發(fā)之初,用戶對系統(tǒng)的需求認識可能不夠深入,隨著軟件開發(fā)的進展,用戶提出對早期的系統(tǒng)需求進行修改和補充;也可能是客觀情況發(fā)生了變化,用戶提出新的需求。其它如經(jīng)費、技術因素、競爭因素等都可能引起系統(tǒng)需求的變化。一個好的軟件開發(fā)方法和技術要能有效的應付系統(tǒng)需求的變化。48UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第48頁!面向對象方法的優(yōu)點按照人類的自然思維方式,面對客觀世界建立軟件系統(tǒng)模型。有利于對問題域和系統(tǒng)責任的理解,有利于人員交流。對需求變化的適應性。把最穩(wěn)定的部分,即對象作為構筑系統(tǒng)的基本單位,而把容易發(fā)生變化的部分,既屬性與服務,封裝在對象之內(nèi),對象之間通過接口聯(lián)系,使得需求變化的影響盡可能地限制在對象內(nèi)部??删S護性好。支持軟件重用。對象所具有的封裝性和信息屏蔽等特性,使它容易實現(xiàn)軟件重用。類可以產(chǎn)生實例對象,對象類可以派生出新類,這些就實現(xiàn)了對象類的數(shù)據(jù)結構和操作代碼的軟構件重用。49UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第49頁!面向對象的系統(tǒng)分析與設計方法

---面向對象中的基本概念對象(Object)/類(Class)抽象(Abstraction)繼承(Inheritance)多態(tài)性(Polymorphism)封裝(Encapsulation)消息(Message)關聯(lián)(Association)聚集(Aggregation)50UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第50頁!對象(對象技術圍繞對象的概念來建立)對象從不同的角度有不同的含義問題論域:對象指現(xiàn)實世界中的一個事物。如:人、房屋、洗衣機等建模和實現(xiàn):對象描述客觀事物的一個實體,是構成系統(tǒng)的基本單元。對象特征:靜態(tài)特征和動態(tài)特征問題論域:一個對象所包含的特性和行為系統(tǒng):一個對象所包含的數(shù)據(jù)(屬性)和使用這些數(shù)據(jù)的所有功能(操作)

對象屬性:描述對象靜態(tài)特征的數(shù)據(jù)項

對象操作:是對象動態(tài)特征的體現(xiàn)對象之間通過消息通信一個對象通過向另一個對象

發(fā)送消息激活某一個功能51UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第51頁!什么是類?(Class)類是對象的抽象,它給出了屬于該類的全部對象的抽象定義。(從對象產(chǎn)生類)問題域:類是一組具有相同特性和行為的對象的通用定義系統(tǒng):共同的特性通過屬性表現(xiàn)出來(數(shù)據(jù))共同的行為通過操作表現(xiàn)出來(功能)類是對象的模板,用它可以產(chǎn)生多個對象,一個具體的對象只是類的一個實例。(從類產(chǎn)生對象)在面向對象的系統(tǒng)分析與設計中,并不需要對逐個對象進行說明,而是著重描述代表一批對象共性的類52UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第52頁!類具有相同特征和操作的對象可以歸到同一類中。在下面這副圖中您看到了什么類?53UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第53頁!屬性屬性是類的特征或特性屬性的值是某一特定對象的屬性值在類中屬性名必須是唯一的每一個類的實例都有為這個類定義的所有屬性的值例如:銀行帳戶類屬性帳號銀行名稱擁有者金額Mary的銀行帳戶屬性值12345678FirstNationalBankMarySmith$1024.4854UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第54頁!操作對象的行為是由為此對象定義的一系列操作決定的操作訪問或修改對象的屬性值一個類的所有實例都可以使用在這個類中定義的操作55UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第55頁!屬性和操作的標記法在類的圖標中描述屬性和操作通常只顯示最重要的屬性和操作,避免圖形混亂屬性顯示在操作上方,操作的名字后跟有()班機flightNumberdatedeparturetimestatusrelease()takeOff()屬性操作56UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第56頁!抽象(

Abstraction

)一個對象是現(xiàn)實世界中一個實體的抽象抽象是一種單一化的描述:

強調(diào)與給出應用有關的特性

抑制不相關的特性一個類是一組對象的抽象抽象通過注重主要的、與問題有關的特性,幫助我們處理復雜系統(tǒng)關鍵在于找出重要的、有關的類,以及每個類中重要、有關的操作和屬性57UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第57頁!多態(tài)性(Polymorphism)在父類中定義的屬性和服務為其子類繼承后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。如:“打開一扇門”“打開一個銀行帳號”“打開一段對話”等,雖然都是“打開”操作,但執(zhí)行的是不同的行為動作。對建模者,多態(tài)性也很重要,它可以讓建模者用客戶的語言和術語與客戶交流。有些術語可能導致操作詞有多種不同的含義。理解多態(tài)性的概念可以讓建模者省去發(fā)明新術語以及維護術語一致性的麻煩。多態(tài)性機制不但為軟件的結構設計提供了靈活性,減少信息冗余,而且顯著提高了軟件的可復用性和可擴充性。58UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第58頁!消息(Message)對象間在交互中所傳送的通訊信息。如:電視機,遙控器對象向電視機對象發(fā)送消息。59UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第59頁!面向對象的系統(tǒng)分析與設計方法面向對象分析(OOA-ObjectOrientedAnalysis)的主要任務是分析問題論域,找出問題解決方案,發(fā)現(xiàn)對象,分析對象的內(nèi)部構成和外部關系,建立軟件系統(tǒng)的對象模型。面向對象設計(OOD-ObjectOrientedDesign)的主要任務是根據(jù)已確立的系統(tǒng)對象模型,運用面向對象技術,進行系統(tǒng)軟件設計。系統(tǒng)建?!浖_發(fā)中極其重要的環(huán)節(jié)。在系統(tǒng)分析階段,建立系統(tǒng)的分析模型。在系統(tǒng)設計階段,建立系統(tǒng)的設計模型。60UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第60頁!面向對象分析(1)

---問題論域分析分析應用領域的業(yè)務范圍、業(yè)務規(guī)則和業(yè)務處理過程,確定系統(tǒng)的責任、范圍和邊界,確定系統(tǒng)的需求。在分析中需要著重對系統(tǒng)與外部用戶和其它系統(tǒng)的交互進行分析,確定交互的內(nèi)容、步驟和順序。61UML課程——福州大學計算機系共69頁,您現(xiàn)在瀏覽的是第61頁!面向對象分析(3)

---識別對象的外部聯(lián)系在發(fā)現(xiàn)和定義對象與類的過程中,需要同時識別對象與對象、類與類之間的各種外部聯(lián)系

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論