<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-84  評(píng)論-56  文章-0  trackbacks-0

    統(tǒng)一建模語言UML輕松入門之基本概念

    2006-06-10 07:00 作者: 宋寶華 出處: 天極軟件 責(zé)任編輯:>方舟
    20 世紀(jì)80 年代,隨著面向?qū)ο蠹夹g(shù)成為研究的熱點(diǎn),先后出現(xiàn)了幾十種面向?qū)ο蟮能浖_發(fā)方法。其中,Booch、OMT 和OOSE等方法得到了廣泛的認(rèn)可。然而,采用不同方法進(jìn)行建模不利于開發(fā)者之間的交流。而UML則統(tǒng)一了Booch、OMT 和OOSE 的表示方法,而且對(duì)其作了進(jìn)一步的發(fā)展。1997 年,UML 被國際對(duì)象組織OMG采納為面向?qū)ο蟮慕UZ言的國際標(biāo)準(zhǔn),它溶入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。UML不限于支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)的全過程。數(shù)年來,UML憑借其簡潔明晰的表達(dá)方式、超凡脫俗的表達(dá)能力,一路殺將出來,為業(yè)界所廣泛認(rèn)同!目前,在多數(shù)大型企業(yè)的正規(guī)化開發(fā)流程中,開發(fā)人員普遍使用UML進(jìn)行模型的建立。作為一名軟件開發(fā)人員,我們必須學(xué)會(huì)UML。因?yàn)閁ML就是那個(gè)統(tǒng)一的"文字",統(tǒng)一的"度"、"量"、"衡",不理解UML,作為軟件設(shè)計(jì)統(tǒng)一王國的國民,將是艱難而痛苦的。

      作曲家會(huì)將其腦袋中的旋律譜成樂曲,建筑師會(huì)將其設(shè)計(jì)的建筑物畫成藍(lán)圖,這些樂曲、藍(lán)圖就是模型(Model),而建構(gòu)這些模型的過程就稱為建模(Modeling)。軟件開發(fā)如同音樂譜曲及建筑設(shè)計(jì),其過程中也必須將需求、分析、設(shè)計(jì)、實(shí)現(xiàn)、布署等各項(xiàng)工作流程的構(gòu)想與結(jié)果予以呈現(xiàn),這就是軟件系統(tǒng)的建模。

      那么為什么要建模呢?經(jīng)典答案是:建立大廈和建立狗窩的區(qū)別是建設(shè)狗窩不需要設(shè)計(jì),要生產(chǎn)合格的軟件就要有一套關(guān)于體系結(jié)構(gòu)、過程和工具的規(guī)范。

      OMG官方發(fā)布的UML的當(dāng)前最高版本為2.0,可以從http://www.uml.org/上下載。

      UML由圖和元模型組成,圖是語法,元模型是語義。UML主要包括三個(gè)基本構(gòu)造塊:事物(Things)、關(guān)系(Relationships)和圖(Diagrams)。本次連載我們將對(duì)UML的這些基本組成部分及UML工具和應(yīng)用進(jìn)行介紹,使讀者對(duì)UML形成初步的整體印象。在其后的幾次連載里,再以數(shù)個(gè)實(shí)例對(duì)這些內(nèi)容逐步展開。

      1.1 UML的基本構(gòu)造塊

      1.1.1事物

      事物是是實(shí)體抽象化的最終結(jié)果,是模型中的基本成員,UML中包含結(jié)構(gòu)事物、行為事物、分組事物和注釋事物。

     ?。?)結(jié)構(gòu)事物(Structural things)

      結(jié)構(gòu)事物是模型中的靜態(tài)部分,用以呈現(xiàn)概念或?qū)嶓w的表現(xiàn)元素,是軟件建模中最常見的元素,共有以下七種:

      類(Class):類是指具有相同屬性、方法、關(guān)系和語義的對(duì)象的集合;

      接口(Interface):接口是指類或組件所提供的服務(wù)(操作),描述了類或組件對(duì)外可見的動(dòng)作;

      協(xié)作(Collaboration):協(xié)作描述合作完成某個(gè)特定任務(wù)的一組類及其關(guān)聯(lián)的集合,用于對(duì)使用情形的實(shí)現(xiàn)建模;

      用例(Use Case):用例定義了執(zhí)行者(在系統(tǒng)外部和系統(tǒng)交互的人)和被考慮的系統(tǒng)之間的交互來實(shí)現(xiàn)的一個(gè)業(yè)務(wù)目標(biāo);

      活動(dòng)類(Active Class):活動(dòng)類的對(duì)象有一個(gè)或多個(gè)進(jìn)程或線程。活動(dòng)類和類很相象,只是它的對(duì)象代表的元素的行為和其他的元素是同時(shí)存在的;

      組件(Component):組件是物理的、可替換的部分,包含接口的集合,例如COM+ 、JAVA BEANS等;

      結(jié)點(diǎn)(Node):結(jié)點(diǎn)是系統(tǒng)在運(yùn)行時(shí)存在的物理元素,代表一個(gè)可計(jì)算的資源,通常占用一些內(nèi)存和具有處理能力。

     ?。?)行為事物(Behavioral things)

      行為事物指的是UML模型中的動(dòng)態(tài)部分,代表語句里的"動(dòng)詞",表示模型里隨著時(shí)空不斷變化的部分,包含兩類:

      交互(ineraction):交互是由一組對(duì)象之間在特定上下文中,為達(dá)到特定的目的而進(jìn)行的一系列消息交換而組成的動(dòng)作;

      狀態(tài)機(jī)(state machine):狀態(tài)機(jī)由一系列對(duì)象的狀態(tài)組成。

     ?。?)分組事物(Grouping things)

      可以把分組事物看成是一個(gè)"盒子",模型可以在其中被分解。目前只有一種分組事物,即包(package)。結(jié)構(gòu)事物、動(dòng)作事物甚至分組事物都有可能放在一個(gè)包中。包純粹是概念上的,只存在于開發(fā)階段,而組件在運(yùn)行時(shí)存在。

      (4)注釋事物(Annotational things)

      注釋事物是UML模型的解釋部分。

      1.1.2關(guān)系

      關(guān)系是將事物聯(lián)系在一起的方式,UML中定義了四種關(guān)系:

     ?。?)依賴(Dependencies):兩個(gè)事物之間的語義關(guān)系,其中一個(gè)事物發(fā)生變化會(huì)影響另一個(gè)事物的語義;

     ?。?)關(guān)聯(lián)(Association):一種描述一組對(duì)象之間連接的結(jié)構(gòu)關(guān)系,如聚合關(guān)系(描述了整體和部分間的結(jié)構(gòu)關(guān)系);

      (3)泛化(Generalization):一種一般化-特殊化的關(guān)系;

      (4)實(shí)現(xiàn)(Realization) :類之間的語義關(guān)系,其中的一個(gè)類指定了由另一個(gè)類保證執(zhí)行的契約。

      1.1.3圖

      圖是事物集合的分類,UML中包含多種圖:

      (1)類圖(Class Diagram):類圖描述系統(tǒng)所包含的類、類的內(nèi)部結(jié)構(gòu)及類之間的關(guān)系;

     ?。?)對(duì)象圖(Object Diagram):對(duì)象圖是類圖的一個(gè)具體實(shí)例;

     ?。?)包圖(Package Diagram):包圖表明包及其之間的依賴類圖;

     ?。?)組件圖(Compoment Diagram,也稱構(gòu)件圖):組件圖描述代碼部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系;

     ?。?)部署圖(Deployment Diagram):部署圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu);

      (6)用例圖(Usecase Diagram):用例圖從用戶的角度出發(fā)描述系統(tǒng)的功能、需求,展示系統(tǒng)外部的各類角色與系統(tǒng)內(nèi)部的各種用例之間的關(guān)系;

      (7)順序圖(Sequence Diagram):順序圖表示對(duì)象之間動(dòng)態(tài)合作的關(guān)系;

     ?。?)協(xié)作圖(Collaboration Diagram):合作圖描述對(duì)象之間的協(xié)作關(guān)系;

      (9)狀態(tài)圖(Statechart Diagram):狀態(tài)圖描述一類對(duì)象的所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件;

      (10)活動(dòng)圖(Activity Diagram):活動(dòng)圖描述系統(tǒng)中各種活動(dòng)的執(zhí)行順序。

      上述十種圖可歸納為五類,如表1.1。

      表1.1 UML圖分類

    類型 包含
    靜態(tài)圖 類圖、對(duì)象圖、包圖
    行為圖 狀態(tài)圖、活動(dòng)圖
    用例圖 用例圖
    交互圖 順序圖、協(xié)作圖
    實(shí)現(xiàn)圖 組件圖、部署圖



    1.2 UML工具與應(yīng)用

      "工欲善其事,必先利于器",為了有效的利用UML,我們需要首先獲得一個(gè)UML工具軟件。

      當(dāng)前,業(yè)界使用最廣泛的UML建模工具為Rational Rose。Rational Rose中可實(shí)現(xiàn)正向(為模型產(chǎn)生相應(yīng)的代碼)、逆向(從用戶原來的軟件系統(tǒng)導(dǎo)出該系統(tǒng)的模型)和雙向工程(實(shí)現(xiàn)模型和代碼之間的循環(huán)工程),從而保證模型與代碼的高度一致。Rational Rose支持C++、Visual C++、Java、Smalltalk、Ada、Visual Basic、PowerBuilder等語言和開發(fā)工具,并能為CORBA 應(yīng)用生成接口定義語言(IDL),為數(shù)據(jù)庫應(yīng)用生成數(shù)據(jù)庫描述語言(DDL)等。另外,Rational Rose為團(tuán)隊(duì)開發(fā)和規(guī)范的開發(fā)過程管理提供了良好的支持。
    對(duì)于小規(guī)模應(yīng)用,我們可以使用微軟公司Office套件中的Visio,其中提供了對(duì)UML各種圖的繪制支持。

      從應(yīng)用的角度上來講,面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)一般需要完成如下工作:

      (1)描述需求;

      (2)根據(jù)需求建立系統(tǒng)的靜態(tài)模型;

      (3)描述系統(tǒng)的行為。

      (1)和(2)中所建立的模型是靜態(tài)的(采用用例圖、類圖、對(duì)象圖、組件圖和部署圖等),是標(biāo)準(zhǔn)建模語言UML中的靜態(tài)建模機(jī)制;而(3)中所建立的模型則表示執(zhí)行時(shí)的序列、狀態(tài)或交互關(guān)系(以狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖描述),是標(biāo)準(zhǔn)建模語言UML中的動(dòng)態(tài)建模機(jī)制。

      由此可以看出,標(biāo)準(zhǔn)建模語言UML的主要內(nèi)容也可以歸納為靜態(tài)建模機(jī)制和動(dòng)態(tài)建模機(jī)制兩大類。

      此外,需要說明的是,UML只是一種建模語言,它獨(dú)立于具體的建模過程。因此,利于它建模時(shí),可遵循任何類型的建模過程。盡管如此,UML的作者們?yōu)槲覀兺扑]了RUP(Rational Unified Process)。RUP由Rational軟件公司首創(chuàng),其最重要的特點(diǎn)有三:

      (1)軟件開發(fā)是由用例驅(qū)動(dòng)的;

     ?。?)軟件開發(fā)是以體系結(jié)構(gòu)設(shè)計(jì)(Architectural Design)為中心;

      (3)軟件開發(fā)是個(gè)迭代過程。

      RUP包括四個(gè)階段,每個(gè)階段又分為若干次迭代,每次迭代都有一個(gè)核心工作流,如圖1.1所示。


    圖1.1 RUP的流程
    posted on 2008-09-06 23:16 憶風(fēng) 閱讀(312) 評(píng)論(0)  編輯  收藏 所屬分類: 軟件工程
    主站蜘蛛池模板: 日韩精品视频免费在线观看| 成人毛片18女人毛片免费96 | 香港特级三A毛片免费观看| 国产成人人综合亚洲欧美丁香花| 真人无码作爱免费视频| 久久国产精品免费| 7x7x7x免费在线观看| 日本一区二区三区免费高清| 国产免费无遮挡精品视频| 怡红院亚洲怡红院首页| 久久精品国产亚洲AV大全| 亚洲色欲色欲www在线播放| 在线播放国产不卡免费视频| 国产成人精品一区二区三区免费| 在线精品一卡乱码免费| 免费在线观看污网站| 久久综合九九亚洲一区| 亚洲国产精品免费观看| 一区二区三区免费视频观看| 久久国产免费观看精品3| 好爽…又高潮了毛片免费看 | 国产国拍亚洲精品福利 | 日产国产精品亚洲系列| 久久精品夜色国产亚洲av| 亚洲第一男人天堂| 国产福利在线观看永久免费| 成人免费毛片内射美女-百度| 免费人妻av无码专区| 亚洲一区免费观看| 美女18毛片免费视频| 91精品啪在线观看国产线免费| 成人永久免费高清| 亚洲国产第一页www| 亚洲aⅴ天堂av天堂无码麻豆 | 美女内射无套日韩免费播放| 国产麻豆剧传媒精品国产免费| 久久久久久亚洲av成人无码国产| 亚洲1区2区3区精华液| 色欲A∨无码蜜臀AV免费播| 又色又污又黄无遮挡的免费视| 久久精品亚洲精品国产色婷|