隨筆-57  評論-117  文章-1  trackbacks-0
            2013年8月15日

          Linux中JDK1.6的安裝和配置方法
          一、安裝
          創(chuàng)建安裝目錄,在/usr/java下建立安裝路徑,并將文件考到該路徑下:
          # mkdir /usr/java

          1、jdk-6u11-linux-i586.bin 這個是自解壓的文件,在linux上安裝如下:
          # chmod 755 jdk-6u11-linux-i586.bin
          # ./jdk-6u11-linux-i586.bin (注意,這個步驟一定要在jdk-6u11-linux-i586.bin所在目錄下)

          在按提示輸入yes后,jdk被解壓。
          出現(xiàn)一行字:Do you aggree to the above license terms? [yes or no]
          安裝程序在問您是否愿意遵守剛才看過的許可協(xié)議。當(dāng)然要同意了,輸入"y" 或 "yes" 回車。

          2、若是用jdk-6u11-linux-i586-rpm.bin 這個也是一個自解壓文件,不過解壓后的文件是jdk-6u11-linux-i586-rpm 包,執(zhí)行rpm命令裝到linux上就可以了。安裝如下:
          #chmod 755 ./jdk-6u11-linux-i586-rpm 
          # ./jdk-6u11-linux-i586-rpm .bin
          # rpm -ivh jdk-6u11-linux-i586-rpm
          出現(xiàn)一行字:Do you aggree to the above license terms? [yes or no]
          安裝程序在問您是否愿意遵守剛才看過的許可協(xié)議。當(dāng)然要同意了,輸入"y" 或 "yes" 回車。
          安裝軟件會將JDK自動安裝到 /usr/java/目錄下。

          二、配置
          #vi /etc/profile
          在里面添加如下內(nèi)容
          export JAVA_HOME=/usr/java/jdk1.6.0_27
          export JAVA_BIN=/usr/java/jdk1.6.0_27/bin
          export PATH=$PATH:$JAVA_HOME/bin
          export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
          export JAVA_HOME JAVA_BIN PATH CLASSPATH

          讓/etc/profile文件修改后立即生效 ,可以使用如下命令:
          # . /etc/profile
          注意: . 和 /etc/profile 有空格.

          重啟測試
          java -version
          set 查看環(huán)境變量
          pwd 顯示當(dāng)前位置

          posted @ 2014-04-25 17:26 hoojo 閱讀(384) | 評論 (0)編輯 收藏

          samba文件共享服務(wù)可以讓linux和linux系統(tǒng)、linux和windows系統(tǒng)之間共享文件

          服務(wù)查詢
          默認情況下,Linux系統(tǒng)在默認安裝中已經(jīng)安裝了Samba服務(wù)包的一部分,為了對整個過程有一個完整的了解,在此先將這部分卸載掉。使用命令
          rpm -qa | grep samba,默認情況下可以查詢到兩個已經(jīng)存在的包:
          samba-client-xxx-xxx
          samba-common-xxx.xxx

           

          卸載Samba
          用rpm -e 將兩個包卸載掉。對于samba-common-xxx.xxx,因為與其它rpm包之間存在依賴關(guān)系,所以必須加參數(shù)-f和--nodeps,-f是指強制,--nodeps是指不檢查依賴關(guān)系,具體完整命令為:
          rpm -e samba-common-xxx -f --nodeps
          rpm -e samba-client-xxx -f –nodeps

           

          掛在鏡像文件

          因為安裝samba你需要下載對應(yīng)的安裝包,一般系統(tǒng)盤就有這些軟件,所以可以直接掛載上去

          mount -o loop /home/rhel-server-6.2-x86_64-dvd.iso /media/OS

          這樣就將系統(tǒng)盤掛載到指定的OS目錄了,在OS目錄下的Packages下有很多安裝包可以使用。

           

          安裝Samba
          用以下命令安裝:
          rpm -ivh samba-xxx.rpm -f --nodeps
          rpm -ivh samba-client-xxx.rpm  -f --nodeps
          rpm -ivh samba-common-xxx.rpm -f --nodeps
          安裝完成后,使用命令rpm -qa | grep samba進行查詢,發(fā)現(xiàn)搭建samba服務(wù)器所依賴的所有服務(wù)器都已經(jīng)安裝好了即可。

           

          安裝完成后配置/etc/samba/smb.conf配置文件,你可以備份原來的配置,把下面的配置覆蓋當(dāng)前配置即可:

          [global]
              workgroup=takecar
              netbios name=Linux-108.12
              server string=Linux Samba Server TestServer
              #security=share
              security=user
              map to guest=Bad User
          [takecar]
              path=/opt/takecar
              writable=yes
              browseable=yes 
              guest ok=yes

          以上就是配置匿名用戶共享目錄/opt/takecar

          其中writable是寫入權(quán)限、browseable是瀏覽權(quán)限、guest是貴賓用戶

           

          建立相應(yīng)目錄并授權(quán)
          [root@localhost ~]# mkdir -p /opt/linuxsir
          [root@localhost ~]# id nobody
          uid=99(nobody) gid=99(nobody) groups=99(nobody)
          [root@localhost ~]# chown -R nobody:nobody /opt/linuxsir
          注釋:關(guān)于授權(quán)nobody,我們先用id命令查看了nobody用戶的信息,發(fā)現(xiàn)他的用戶組也是nobody,我們要以這個為準。有些系統(tǒng)nobody用戶組并非是nobody ;

           

          啟動smbd和nmbd服務(wù)器
          [root@localhost ~]# smbd
          [root@localhost ~]# nmbd

          關(guān)閉和查詢服務(wù)

          pkill smbd

          pkill nmbd

          pgrep smbd

          pgrep nmbd

           

          如果啟動后不能訪問可能是防火墻原因,關(guān)閉防火墻

          service iptables stop
          chkconfig iptables off

           

          設(shè)置服務(wù)開機啟動 ntsysv命令可以進入圖形界面設(shè)置,如果windows不能建立linux的共享目錄可能是window中的某個服務(wù)原因。

          可以在運行輸入 secpol.msc命令 進入本地策略/安全選項, 設(shè)置image

           

          直接用進程殺死程序

          ps -ef|grep smb
          kill -9 pid #pid 為相應(yīng)的進程號
          #直接查看指定端口的進程pid
          netstat -anp|grep 9217

          posted @ 2014-04-25 17:24 hoojo 閱讀(472) | 評論 (0)編輯 收藏
               摘要: oracle job有定時執(zhí)行的功能,可以在指定的時間點或每天的某個時間點自行執(zhí)行任務(wù)。   一、查詢系統(tǒng)中的job,可以查詢視圖 --相關(guān)視圖select * from dba_jobs;select * from all_jobs;select * from user_jobs;-- 查詢字段描述/*字段(列) 類型 描述JOB ...  閱讀全文
          posted @ 2013-11-21 10:55 hoojo 閱讀(2825) | 評論 (2)編輯 收藏

           
          // 方式一:
          double f = 3.1516;
          BigDecimal b = new BigDecimal(f);
          double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
           
          // 方式二:
          new java.text.DecimalFormat("#.00").format(3.1415926);
          // #.00 表示兩位小數(shù) #.0000四位小數(shù) 以此類推…
           
          // 方式三:
          double d = 3.1415926;
          String result = String.format("%.2f", d);
          // %.2f %. 表示 小數(shù)點前任意位數(shù) 2 表示兩位小數(shù) 格式后的結(jié)果為f 表示浮點型。
           
          //方法四:
          Math.round(5.2644555 * 100) * 0.01d;
          //String.format("%0" + 15 + "d", 23) 23不足15為就在前面補0
          posted @ 2013-11-15 15:13 hoojo 閱讀(657) | 評論 (0)編輯 收藏

          在使用cxf實現(xiàn)webservice時,經(jīng)常碰到的問題就是如果在服務(wù)端,修改了一個接口的簽名實現(xiàn),如增加一個字段,或者刪除一個字段。在這種情況下,在默認的配置中,就會報以下的錯誤信息:

          org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element . Expected elements are
          這種錯誤即客戶端使用的傳輸對象與服務(wù)端接收的參數(shù)的字段不匹配。但如果,每次修改服務(wù)端的實現(xiàn),都需要更新客戶端時,就會出現(xiàn)一些問題,如在某些情況下,客戶端的更新是不可能的事(如不在自己掌握之內(nèi),或者服務(wù)不能隨便更新,或者其它計劃時)。

          如果避免這種問題,其實也很簡單,就是禁用cxf中的字段信息驗證,如果禁用掉此驗證,就不再會對相應(yīng)的字段信息進行驗證,同時沒有的字段也會自動的忽略。整個解決只需要增加以下的一行配置即可,在cxf.xml(spring集成文件)中增加以下配置項:

          <cxf:properties>
             <entry key="set-jaxb-validation-event-handler" value="false"/>
          </cxf:properties>
          這樣,即會禁用掉所有cxf的數(shù)據(jù)驗證,在大多數(shù)情況下,這可以滿足我們的要求(除非你有其它和cxf集成的數(shù)據(jù)驗證要求)。

          轉(zhuǎn)載請標明出處:i flym
          本文地址:http://www.iflym.com/index.php/code/201307310001.html

          posted @ 2013-11-12 13:45 hoojo 閱讀(952) | 評論 (0)編輯 收藏
               摘要: 副標題:利用ant腳本 自動構(gòu)建svn增量/全量 系統(tǒng)程序升級包 首先請允許我這樣說,作為開發(fā)或測試,你一定要具備這種本領(lǐng)。你可以手動打包、部署你的工程,但這不是最好的方法。最好的方式就是全自動化的方式。開發(fā)人員提交了代碼后,可以自動構(gòu)建、打包、部署到測試環(huán)境。測試通過后進入到模擬環(huán)境或是直接發(fā)布的生產(chǎn)環(huán)境,這個過程可以是全自動的。但這個自動化的方式有一些公司用到了,但也有很多公司還不知道,他們...  閱讀全文
          posted @ 2013-11-05 09:01 hoojo 閱讀(17052) | 評論 (2)編輯 收藏

          ant 命令行方式執(zhí)行build javac編譯class出現(xiàn) 泛型無法轉(zhuǎn)換 無法確定 <X>X 的類型參數(shù);對于上限為 X,java.lang.Object 的類型變量 X,不存在唯一最大實例

          解決方法:

          需要用到eclipse的jdt來編譯class,不能再使用javac的默認編譯方式。

          在eclipse或MyEclipse的eclipse/plugin目錄中找到org.eclipse.jdt.core_3.5.2.v_981_R35x.jar里面找到j(luò)dtCompilerAdapter.jar

          還有

          org.eclipse.jdt.compiler.tool_1.0.100.v_972_R35x.jar
          org.eclipse.jdt.core_3.5.2.v_981_R35x.jar
          org.eclipse.jdt.debug.ui_3.4.1.v20090811_r351.jar
          jdtCompilerAdapter.jar

          并拷貝到ant_home/lib下。

          在ant的build.xml腳本中加入

          <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>

          <javac nowarn="false" debug="true" debuglevel="source,lines,vars" destdir="${dist.path}/classes" source="1.6" target="1.6" encoding="utf-8" fork="true" memoryMaximumSize="512m" includeantruntime="false">

           

          或者

          <javac compiler="org.eclipse.jdt.core.JDTCompilerAdapter" nowarn="false" debug="true" debuglevel="source,lines,vars" destdir="${dist.path}/classes" source="1.6" target="1.6" encoding="utf-8" fork="true" memoryMaximumSize="512m" includeantruntime="false"/>

           


          如果是用eclipse運行ant腳本,在右鍵菜單選擇從RUN as Ant 啟動build.xml時,在對話框中 選擇Runtime jRE:run in the same JRE as workspace.

          image

          記得要引入上面需要的幾個jar包

          posted @ 2013-10-31 14:10 hoojo 閱讀(5014) | 評論 (2)編輯 收藏
               摘要: 一、摘要 上兩篇文章分別介紹了Spring3.3 整合 Hibernate3、MyBatis3.2 配置多數(shù)據(jù)源/動態(tài)切換數(shù)據(jù)源 方法 和 Spring3 整合Hibernate3.5 動態(tài)切換SessionFactory (切換數(shù)據(jù)庫方言),這篇文章將介紹Spring整合Mybatis 如何完成SqlSessionFactory的動態(tài)切換的。并且會簡單的介紹下MyBatis整合Spring中的...  閱讀全文
          posted @ 2013-10-22 10:27 hoojo 閱讀(17005) | 評論 (3)編輯 收藏
               摘要: 一、緣由 上一篇文章Spring3.3 整合 Hibernate3、MyBatis3.2 配置多數(shù)據(jù)源/動態(tài)切換數(shù)據(jù)源 方法介紹到了怎么樣在Sping、MyBatis、Hibernate整合的應(yīng)用中動態(tài)切換DataSource數(shù)據(jù)源的方法,但最終遺留下一個問題:不能切換數(shù)據(jù)庫方言。數(shù)據(jù)庫方言可能在當(dāng)前應(yīng)用的架構(gòu)中意義不是很大,但是如果單純用MyBatis或Hibernate做數(shù)據(jù)庫持久化操作,還...  閱讀全文
          posted @ 2013-10-18 12:13 hoojo 閱讀(8096) | 評論 (8)編輯 收藏
               摘要: 一、開篇 這里整合分別采用了Hibernate和MyBatis兩大持久層框架,Hibernate主要完成增刪改功能和一些單一的對象查詢功能,MyBatis主要負責(zé)查詢功能。所以在出來數(shù)據(jù)庫方言的時候基本上沒有什么問題,但唯一可能出現(xiàn)問題的就是在hibernate做添加操作生成主鍵策略的時候。因為我們都知道hibernate的數(shù)據(jù)庫本地方言會針對不同的數(shù)據(jù)庫采用不同的主鍵生成策略。 所以針對這一問...  閱讀全文
          posted @ 2013-10-12 10:53 hoojo 閱讀(12374) | 評論 (5)編輯 收藏
               摘要: 基于HTTP的長連接,是一種通過長輪詢方式實現(xiàn)"服務(wù)器推"的技術(shù),它彌補了HTTP簡單的請求應(yīng)答模式的不足,極大地增強了程序的實時性和交互性。   一、什么是長連接、長輪詢? 用通俗易懂的話來說,就是客戶端不停的向服務(wù)器發(fā)送請求以獲取最新的數(shù)據(jù)信息。這里的“不停”其實是有停止的,只是我們?nèi)搜蹮o法分辨是否停止,它只是一種快速的停下然后又立即開始連接而已。   二、長連接...  閱讀全文
          posted @ 2013-09-26 14:41 hoojo 閱讀(7182) | 評論 (2)編輯 收藏

           

          UML是一種通用的建模語言,其表達能力相當(dāng)?shù)膹姡粌H可以用于軟件系統(tǒng)的建模,而且可用于業(yè)務(wù)建模以及其它非軟件系統(tǒng)建模。UML綜合了各種面向?qū)ο蠓椒ㄅc表示法的優(yōu)點,至提出之日起就受到了廣泛的重視并得到了工業(yè)界的支持。

          本章將按視圖、模型元素、圖以及公共機制依次介紹UML的構(gòu)造和基本元素,以使得讀者對UML有一個總體了解,其具體細節(jié)將在后續(xù)章節(jié)中詳細描述。

           

          畫圖工具:eDraw、jude

          image  image

          歡迎大家繼續(xù)支持和關(guān)注我的博客:

          http://hoojo.cnblogs.com

          http://blog.csdn.net/IBM_hoojo

          也歡迎大家和我交流、探討IT方面的知識。

          email:hoojo_@126.com

          如果你覺得本文不錯的話,請你點擊屏幕右下方的image 。如果你以后會用到這篇文章的或覺得以后要重新翻閱的話,你可以點擊屏幕右下角的image 。如果你覺得我的博文不錯或是想在第一時間看到我的動態(tài)的話,你可以點擊屏幕右下角image 。如果你想說點什么的話,你可以點擊屏幕右下方的image 。如果你都點過了,那真的太謝謝你了,兄弟太支持了。此時,或許你可以點擊image 按鈕,然后看看博文的導(dǎo)航繼續(xù)瀏覽其他文章。

           

          1. UML的組成

          UML由視圖(View)、圖(Diagram)、模型元素(Model Element)和通用機制(General Mechanism)等幾個部分組成。

          a) 視圖(View): 是表達系統(tǒng)的某一方面的特征的UML建模元素的子集,由多個圖構(gòu)成,是在某一個抽象層上,對系統(tǒng)的抽象表示。

          b) 圖(Diagram): 是模型元素集的圖形表示,通常是由弧(關(guān)系)和頂點(其他模型元素)相互連接構(gòu)成的。

          c) 模型元素(Model Element):代表面向?qū)ο笾械念悺ο蟆⑾⒑完P(guān)系等概念,是構(gòu)成圖的最基本的常用概念。

          d) 通用機制(General Mechanism):用于表示其他信息,比如注釋、模型元素的語義等。另外,UML還提供擴展機制,使UML語言能夠適應(yīng)一個特殊的方法(或過程),或擴充至一個組織或用戶。

          uml 構(gòu)成

           

          2. UML視圖的分類

          UML是用來描述模型的,用模型來描述系統(tǒng)的機構(gòu)或靜態(tài)特征,以及行為或動態(tài)特征。從不同的視角為系統(tǒng)構(gòu)架建模,形成系統(tǒng)的不同視圖。

          image

          (1) 用例視圖(Use Case View),強調(diào)從用戶的角度看到的或需要的系統(tǒng)功能,是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖。

          (2) 邏輯視圖(Logical View),展現(xiàn)系統(tǒng)的靜態(tài)或結(jié)構(gòu)組成及特征,也稱為結(jié)構(gòu)模型視圖(Structural Model View)或靜態(tài)視圖(Static View)。

          (3) 并發(fā)視圖(Concurrent View),體現(xiàn)了系統(tǒng)的動態(tài)或行為特征,也稱為行為模型視圖(Behavioral Model View)或動態(tài)視圖(Dynamic View)。

          (4) 組件視圖(Component View),體現(xiàn)了系統(tǒng)實現(xiàn)的結(jié)構(gòu)和行為特征,也稱為實現(xiàn)模型視圖(Implementation Model View)。

          (5) 配置視圖(Deployment View),體現(xiàn)了系統(tǒng)實現(xiàn)環(huán)境的結(jié)構(gòu)和行為特征,也稱為環(huán)境模型視圖(Environment Model View)或物理視圖(Physical View)。

           

          視圖是由圖組成的,UML提供9種不同的圖:

          image

          (1) 用例圖(Use Case Diagram),描述系統(tǒng)功能;

          (2) 類圖(Class Diagram),描述系統(tǒng)的靜態(tài)結(jié)構(gòu);

          (3) 對象圖(Object Diagram),描述系統(tǒng)在某個時刻的靜態(tài)結(jié)構(gòu);

          (4) 組件圖(Component Diagram),描述了實現(xiàn)系統(tǒng)的元素的組織;

          (5) 配置圖(Deployment Diagram),描述了環(huán)境元素的配置,并把實現(xiàn)系統(tǒng)的元素映射到配置上;

          (6) 狀態(tài)圖(State Diagram),描述了系統(tǒng)元素的狀態(tài)條件和響應(yīng);

          (7) 時序圖(Sequence Diagram),按時間順序描述系統(tǒng)元素間的交互;

          (8) 協(xié)作圖(Collaboration Diagram),按照時間和空間順序描述系統(tǒng)元素間的交互和它們之間的關(guān)系;

          (9) 活動圖(Activity Diagram),描述了系統(tǒng)元素的活動;

          建模方法由建模語言和建模過程兩部分構(gòu)成。其中建模語言是用來表述設(shè)計方法的表示法,建模過程是對設(shè)計中所應(yīng)采取的步驟的描述。UML是一種建模語言,它在很大程度上獨立于建模過程。在實際建模中,建模人員最好把UML用于以用案驅(qū)動的、以體系機構(gòu)為中心的、迭代的和漸增式的開發(fā)過程中。

          一般而言,軟件系統(tǒng)的體系結(jié)構(gòu)給出了軟件系統(tǒng)的組織、組成系統(tǒng)的構(gòu)造元素及其接口的選擇、系統(tǒng)的行為和體系結(jié)構(gòu)風(fēng)格等信息。也就是說,它不僅關(guān)心系統(tǒng)的結(jié)構(gòu)和行為等功能性需求,而且也涉及系統(tǒng)的性能、易理解性、易復(fù)用性等非功能性需求。如下圖所示,UML利用用戶模型視圖、結(jié)構(gòu)模型視圖、行為模型視圖、實現(xiàn)模型視圖和環(huán)境模型視圖來描述軟件系統(tǒng)的體系結(jié)構(gòu)。

          根據(jù)它們在不同架構(gòu)視圖的應(yīng)用,可以把9種圖分成:

          image

          (1) 用戶模型視圖:用例圖;

          (2) 結(jié)構(gòu)模型視圖:類圖和對象;

          (3) 行為模型視圖:狀態(tài)圖、時序圖、協(xié)作圖和活動圖(動態(tài)圖);

          (4) 實現(xiàn)模型視圖:組件圖;

          (5) 環(huán)境模型視圖:配置圖。

          用戶模型視圖由專門描述最終用戶、分析人員和測試人員看到的系統(tǒng)行為的用案組成,它實際上是從用戶角度來描述系統(tǒng)應(yīng)該具有的功能。用戶模型視圖所描述的系統(tǒng)功能依靠外部用戶或者另外一個系統(tǒng)來激活,為用戶或者另一系統(tǒng)提供服務(wù),從而實現(xiàn)用戶或另一系統(tǒng)與系統(tǒng)的交互。系統(tǒng)實現(xiàn)的最終目標是提供用戶模型視圖中所描述的功能。在UML中,用戶模型視圖是由用案圖組成

          結(jié)構(gòu)模型視圖描述組成系統(tǒng)的類、對象以及它們之間的關(guān)系等靜態(tài)結(jié)構(gòu),用來支持系統(tǒng)的功能需求,即描述系統(tǒng)內(nèi)部功能是如何設(shè)計的。結(jié)構(gòu)模型視圖由類圖和對象圖構(gòu)成,主要供設(shè)計人員和開發(fā)人員使用

          行為模型視圖主要用來描述形成系統(tǒng)并發(fā)與同步機制的線程和進程,其關(guān)注的重點是系統(tǒng)的性能、易伸縮性和系統(tǒng)的吞吐量等非功能性需求。行為模型視圖利用并發(fā)來描述資源的高效使用、并行執(zhí)行和處理異步事件。除了講系統(tǒng)劃分為并發(fā)執(zhí)行的控制線程之外,行為模型還必須處理通信和這些線程及進程之間的同步問題。行為模型視圖主要供系統(tǒng)開發(fā)人員和系統(tǒng)集成人員使用,它由序列圖、協(xié)作圖、狀態(tài)圖和活動圖組成。

          實現(xiàn)模型視圖用來描述系統(tǒng)的實現(xiàn)模塊它們之間的依賴關(guān)系以及資源分配情況。這種視圖主要用于系統(tǒng)的配置管理,它是由一些獨立的構(gòu)件組成的。實現(xiàn)模型視圖由構(gòu)件圖組成。其中構(gòu)件是代碼模塊,不同類型的代碼模塊形成不同的構(gòu)件。實現(xiàn)模型視圖主要供開發(fā)人員使用。

          環(huán)境模型視圖用來描述物理系統(tǒng)的硬件拓撲結(jié)構(gòu)。例如,系統(tǒng)中的計算機和設(shè)備的分布情況以及它們之間的連接方式,其中計算機和設(shè)備統(tǒng)稱為節(jié)點。在UML中環(huán)境模型視圖是由部署圖來表示的。系統(tǒng)部署圖描述了系統(tǒng)構(gòu)件在節(jié)點上的分布情況,即用來描述軟件構(gòu)件到物理節(jié)點的映射。部署圖主要供開發(fā)人員、系統(tǒng)集成人員和測試人員使用。

          上面每一種視圖反映了系統(tǒng)的一個特定方面,不同人員可以單獨的使用其中每一種視圖,從而可以關(guān)注特定的體系結(jié)構(gòu)問題。但在通常情況下,由于系統(tǒng)的最終目標是提供用戶模型視圖中描述的功能以及其它一些非功能性需求,因此,用戶模型視圖是其它視圖的核心基礎(chǔ),其它視圖的構(gòu)造都依賴與用戶模型視圖中所描述的類容。

          細心的讀者已經(jīng)發(fā)現(xiàn),每一種UML圖都是由多個圖組成的,每一種圖都是體系結(jié)構(gòu)某個側(cè)面的表示,各種圖實際上是一致的,所有的圖在一起組成了系統(tǒng)的完整視圖。如下圖所示,UML中總共提供了用案圖、類圖、對象圖、序列圖、協(xié)作圖、狀態(tài)圖、活動圖、構(gòu)建圖和部署圖9種圖。根據(jù)它們描述的是系統(tǒng)的靜態(tài)結(jié)構(gòu)還是動態(tài)行為,可以將它們分為靜態(tài)圖和動態(tài)圖兩類。再進一步介紹這9中UML圖時,先了解下什么是模型元素:

          image

           

          3. UML的建模機制

          UML有兩套建模機制:靜態(tài)建模機制和動態(tài)建模機制。靜態(tài)建模機制包括用例圖、類圖、對象圖、包、組件圖和配置圖。動態(tài)建模機制包括狀態(tài)圖、時序圖、協(xié)作圖、活動圖。

          (1) 用例圖:用例的可視化工具,它提供計算機系統(tǒng)的高層次的用戶視圖,表示以外部活動者的角度來看系統(tǒng)將是怎樣使用的。

          用例圖(用案圖)是用于描述一組用案,參與者以及它們之間的連接關(guān)系。一個用案圖描述了一組動作序列,每一個序列表示系統(tǒng)的外部設(shè)施(系統(tǒng)的參與者)與系統(tǒng)本身的交互。從一個特定參與者的角度看,一個用案完成對其有價值的工作。如圖2.5所示,用案圖僅僅是從參與者使用系統(tǒng)的角度來描述系統(tǒng)中的信息,即站在系統(tǒng)外部查看系統(tǒng)應(yīng)該具有什么功能,而并不描述該功能在軟件內(nèi)部是如何實現(xiàn)的。用案可以應(yīng)用于整個系統(tǒng),也可以應(yīng)用于系統(tǒng)的一個部分,包括子系統(tǒng)、單個的類或者接口。通常,用案不僅代表這些元素所期望的行為,而且還可以把這些元素用作開發(fā)過程中測試用案的基礎(chǔ)。

          用例圖包括以下3方面內(nèi)容:

          (a) 用例(Use Case)

          (b) 參與者(Actor)

          (c) 依賴、泛化和關(guān)聯(lián)關(guān)系

          用例圖示例:

          clip_image012

          (2) 類圖:描述類、接口、協(xié)作以及它們之間關(guān)系的圖。

          類圖是用于描述一組類、接口、協(xié)作以及它們之間的靜態(tài)關(guān)系。在面向?qū)ο笙到y(tǒng)的建模中,類圖是最為常用的圖,它用來闡明系統(tǒng)的靜態(tài)結(jié)構(gòu)。事實上類是對一組具有相同屬性、操作、關(guān)系和語義的對象的描述,其中對類的屬性和操作進行描述時的一個最重要的細節(jié)就是它的可見性。

          類可以以多種形式連接,例如關(guān)聯(lián)、泛化、依賴和實現(xiàn)等。一個典型的系統(tǒng)中通常有若干個類圖。一個類圖不一定要包含系統(tǒng)中所有的類,一個類可以加到幾個類圖中。

          類圖示例:

          clip_image014

          (3) 對象圖:表示在某一時間上一組對象以及它們之間的關(guān)系的圖。對象圖可以被看做是類圖在系統(tǒng)某一時刻的實例。

          對象圖是類圖的實例,用來描述特定運行時刻一組對象之間的關(guān)系。也就是說,對象用于描述交互的靜態(tài)部分,它由參與協(xié)作的有關(guān)對象組成。但不包括在對象之間傳遞的任何消息。

          在創(chuàng)建對象圖時,建模人員并不需要用單個的對象圖來描述系統(tǒng)中的每一個對象。事實上,絕大多數(shù)系統(tǒng)中都會包含成百上千的對象。用對象來描述系統(tǒng)的所有對象以及它們之間的關(guān)系一般是不太現(xiàn)實的。因此,建模人員可以選擇所感興趣的對象極其之間的關(guān)系來描述。

          對象圖中所使用的符號和類圖中使用的符號幾乎完全相同,區(qū)別僅在于對象圖的對象名帶有下劃線,而且類與類之間關(guān)系的所有的實例都要畫出來。

          clip_image016

          (4) 組件圖:描述軟件組件以及組件之間的關(guān)系,組件本身是代碼的物理模塊,組件圖則顯示了代碼的結(jié)構(gòu)。

          組件圖(構(gòu)件圖)是用于描述一組構(gòu)件之間的組織和依賴關(guān)系,用于建模系統(tǒng)的靜態(tài)實現(xiàn)視圖。構(gòu)件可以是可執(zhí)行程序集、庫、表、文件和文檔等,它包含了邏輯類或者邏輯類的實現(xiàn)信息,因此結(jié)構(gòu)模型視圖和實現(xiàn)模型視圖之間存在映射關(guān)系。

          構(gòu)建圖中也可以包括包或子系統(tǒng),它們都是用于將模型元素組成較大的組塊。

          組件圖例圖:

          OrderComponent

          (5) 配置圖:描述系統(tǒng)硬件的物理拓撲結(jié)構(gòu)以及在此結(jié)構(gòu)上執(zhí)行的軟件。配置圖可以顯示計算節(jié)點的拓撲結(jié)構(gòu)和通信路徑、結(jié)點上運行的軟件組件、軟件組件包含的邏輯單元(對象、類)等。配置圖常常用于幫助理解分布式系統(tǒng)。

          配置圖(部署圖)用來描述系統(tǒng)運行是進行處理的節(jié)點以及在節(jié)點上活動的構(gòu)件的配置。部署圖用來對系統(tǒng)的環(huán)境模型視圖進行建模。在大多數(shù)情況下,部署圖用來描述系統(tǒng)硬件的擴普結(jié)構(gòu)。

          在UML中,建模人員可以用類圖來描述系統(tǒng)的靜態(tài)結(jié)構(gòu),可以用序列圖、協(xié)作圖、狀態(tài)圖、活動圖來描述系統(tǒng)的動態(tài)行為,而用部署圖來描述軟件所執(zhí)行所需的處理器和設(shè)備的拓撲結(jié)構(gòu)。

          部署圖配置圖

          (6) 狀態(tài)圖:通過類對象的生命周期建立模型來描述對象隨時間變化的動態(tài)行為。

          狀態(tài)圖實際上是一種由狀態(tài)、變遷、事件和活動組成的狀態(tài)機。狀態(tài)圖描述從狀態(tài)到狀態(tài)的控制流,常用于系統(tǒng)的動態(tài)特性建模。在大多數(shù)情況下,它用來對反應(yīng)型對象的行為建模。

          在UML中,狀態(tài)圖可以用來對一個對象按事件排序的行為建模。一個狀態(tài)圖是強調(diào)從狀態(tài)到狀態(tài)的控制流的狀態(tài)機的簡單表示。一般而言,狀態(tài)圖是對類所描述的設(shè)施的補充說明,它描述了類的所有對象可能具有的狀態(tài)以及引起狀態(tài)變化的事件。

          OrderState

          (7) 時序圖:交互圖描述了一個交互,它由一組對象和它們之間的關(guān)系組成,并且還包括在對象間傳遞的信息。交互圖表達對象之間的交互,是描述一組對象如何協(xié)作完成某個行為的模型化工具。

          序列圖和協(xié)作圖統(tǒng)稱為交互圖。其中,序列圖用來描述對象之間消息發(fā)送的先后次序,闡明對象之間的交互過程以及在系統(tǒng)執(zhí)行過程中的某一具體時刻將會發(fā)生什么事件。序列圖是一種強調(diào)時間順序的交互圖,其中對象沿橫軸方向排列,消息沿縱軸方向排列。

          Product-seq[6]

          序列圖中的對象生命線是一條垂直的虛線,它表示一個對象在一段時間內(nèi)存在。由于序列圖中大多數(shù)對象都存在于整個交互過程中,因此這些對象全部排列在圖的頂部,它們的生命線從圖的頂部畫到圖的底部。每個對象的下方有一個矩形條,它與對象的生命線重疊,它表示該對象的控制焦點。序列圖中的消息可以有序號,但由于這種圖上的消息已經(jīng)從縱軸上按時間順序排序,因此消息序號通常予以省略。

          (8) 協(xié)作圖:包含類元角色和關(guān)聯(lián)角色,而不僅僅是類元和關(guān)聯(lián)。協(xié)作圖強調(diào)參加交互的各對象的組織。協(xié)作圖只對相互間有交互作用的對象和這些對象間的關(guān)系建模,而忽略了其他對象和關(guān)聯(lián)。協(xié)作圖也是一種交互圖,它強調(diào)收發(fā)消息的對象的組織結(jié)構(gòu)。

          協(xié)作圖和序列圖是協(xié)作的,它們可以互相轉(zhuǎn)換。在多數(shù)情況下,協(xié)作圖主要對單調(diào)的、順序的控制流建模,但它也可以用來對包括迭代和分支在內(nèi)的復(fù)雜控制流進行建模。

          一般而言,建模人員可以創(chuàng)建多個協(xié)作圖,其中一些是主要的,另外一些是可選擇的路徑或者異常條件。建模人員可以用包來組織這些協(xié)作圖,并給每個圖起一個合適的名字,以便與其它圖區(qū)別開。

          clip_image026

          (9) 活動圖:用于展現(xiàn)參與行為的類的活動或動作。

          活動圖是狀態(tài)圖的一種特殊情況,其中幾乎所有或大多數(shù)狀態(tài)都處于活動狀態(tài),而且?guī)缀跛谢蛘叽蠖鄶?shù)變遷都是由源狀態(tài)中活動的完成觸發(fā)的。活動圖本質(zhì)上是一種流程圖,它描述了從活動到活動的控制流。

          可以把活動圖看作是新樣的交互圖,但交互圖觀察的是傳遞消息的對象,而活動圖觀察到的是對象之間傳送的消息。盡管兩者在語義上的區(qū)別很細微,但它們使用不同的方式來看系統(tǒng)的。

          GoShopping

          如果你覺得本文不錯的話,請你點擊屏幕右下方的image 。如果你以后會用到這篇文章的或覺得以后要重新翻閱的話,你可以點擊屏幕右下角的image 。如果你覺得我的博文不錯或是想在第一時間看到我的動態(tài)的話,你可以點擊屏幕右下角image 。如果你想說點什么的話,你可以點擊屏幕右下方的image 。如果你都點過了,那真的太謝謝你了,兄弟太支持了。此時,或許你可以點擊image 按鈕,然后看看博文的導(dǎo)航繼續(xù)瀏覽其他文章。

          最后,歡迎大家繼續(xù)支持和關(guān)注我的博客:

          http://hoojo.cnblogs.com

          http://blog.csdn.net/IBM_hoojo

          也歡迎大家和我交流、探討IT方面的知識。

          posted @ 2013-08-30 16:52 hoojo 閱讀(2260) | 評論 (2)編輯 收藏
               摘要: 在flex組件中嵌入html代碼,可以利用flex iframe。這個在很多時候會用到的,有時候flex必須得這樣做,如果你不這樣做還真不行…… flex而且可以和html進行JavaScript交互操作,flex調(diào)用到html中的JavaScript方法以及獲取調(diào)用后的返回值。   1、flex iframe下載地址:https://github.com/downloads/flex...  閱讀全文
          posted @ 2013-08-15 15:58 hoojo 閱讀(5865) | 評論 (2)編輯 收藏

          About Me


          網(wǎng)名:hoojo
          E-mail:hoojo_@126.com
          專注于Java,現(xiàn)從事電警卡口、智能交通、電子警察、數(shù)字城市等應(yīng)用開發(fā),擅長JavaEE、Flex、ActionScript及Web前端HTML、CSS、JavaScript、ExtJS、jQuery、Mootools等開發(fā)。對常用開源框架有一定的認識和見解。

          版權(quán)聲明

          hoojo 所有文章遵循 創(chuàng)作共用版權(quán)協(xié)議,要求署名、非商業(yè)、保持一致。在滿足創(chuàng)作共用版權(quán)協(xié)議的基礎(chǔ)上可以轉(zhuǎn)載,但請以超鏈接形式注明出處。

          訪客統(tǒng)計


          訂閱統(tǒng)計

          訂閱我的博客

          訂閱文章

          抓蝦
          google reader
          netvibes
          my yahoo
          bloglines
          鮮果
          哪吒
          有道
          QQ郵箱
          訂閱內(nèi)容到手機

          訂閱歷史


          IT 新聞

          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(7)

          隨筆分類(210)

          隨筆檔案(60)

          相冊

          關(guān)注博客

          我的鏈接

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 469485
          • 排名 - 113

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安庆市| 遂平县| 伊金霍洛旗| 宿松县| 垣曲县| 榆林市| 福清市| 黎城县| 桃源县| 敦煌市| 大宁县| 犍为县| 满城县| 泰兴市| 奉化市| 古田县| 灯塔市| 茌平县| 梁山县| 林州市| 喀喇沁旗| 兴和县| 深水埗区| 富宁县| 荥阳市| 温州市| 玉田县| 盐津县| 公主岭市| 达日县| 栖霞市| 桃园市| 荣成市| 和田县| 辽阳县| 平阳县| 临泉县| 巫山县| 青川县| 会理县| 思南县|