• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測試開發技術UML和Java的阻抗

    發布: 2009-10-29 11:08 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 20次 | 進入軟件測試論壇討論

    領測軟件測試網

    使用UML圖attribute表達property如下:(引自Is UML out of date一文)

    這樣的圖從表面上看不錯,但是問題來了:一些建模工具的代碼產生器根本無法識別這是一種POJO的Properties表示,因此我們可能無法產生普通POJO代碼(進而無法使用POJO的優點了),那么只有畫圖者使用手工來實現,這很煩瑣,失去了使用UML工具幫助我們設計的目的了。

    Borland的 Together是通過拓展UML核心概念,引入Properties這樣一個和attributes類似新的定義來表達。 如圖(引自Is UML out of date一文):

    左邊是Property表達,右圖是Together可自動展開的Property表達,setXXX和getXXX方法都會自動產生。

    Services vs Operations
    UML和Java不匹配之處還在于UML無法區分表達Services和Operations區別,在當今SOA面向服務為主要概念的 Java實現領域,UML竟然無法清晰地表達Service接口和普通接口的區別,讓我們來仔細看個究竟:

    首先,我們看看Operations的定義:在接口中的一個行為Operations可能代表一段業務事務處理過程,供外部客戶端調用(如供表現層調用等,這些行為這時稱為提供服務Services),但是,一些public行為可能只是用于業務層內部系統之間相互調用,而不是展現給外部,供外部 系統或客戶端調用的,一些行為也許只是為主要業務邏輯提供輔助技術幫助的,根本不是主要業務邏輯方法,還有一些行為只不過提供對內部屬性attribute的訪問方法罷了。

    UML如何區別同樣的行為Operations不同的內外調用目的呢?實際也就是供外部調用的Service和內部調用的普通Operations 區別呢?

    例如,我們有兩個服務Service接口Class1Services和Class2Services,這是對外暴露,不僅可供表現層客戶端調用,還可通過Web Services向 外部系統提供,另外還有兩個類Class1和Class2是供內部調用的,當使用UML表達時,如下圖(引自Is UML out of date一文):

    UML復雜的繼承關系已經擾亂我們的視線,我們已經無法區分這兩種類(Services和普通Operations)區別;而下圖中是使用 Java Design and Streamlined Object Modeling 一書中簡化的表示方法,我們可以分清這兩種區別。

    所以,對于同樣是POJO的兩種類不同功能實現Services和普通Operations UML已經表現得無能為力了,那么對于服務Service概念 起源組件EJB,UML更加蒼白,筆者猜想,怪不得UML設計界拼命詆毀EJB,包括Matin Fowler還親自出場,原來UML和EJB之間是一場不是你死就是我活的戰斗,總算EJB發展到EJB3也變成了一個純粹的POJO,但是EJB帶來的Service概念還是在POJO中保留下來,同時基于Web Services的SOA 概念的興起將服務Service概念推向更深處,盡管Matin Fowler等UML設計派還在對SOA說“風涼話”,但是UML如果自身不象Java那樣與時俱進地更新換代,那么它與Java之間的阻抗不僅僅是表達形式的不匹配,恐怕就變成先進與落后

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    32/3<123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>