Order Management 應用軟件
到目前為止,這個項目的所有基礎設置都已經安裝好。項目區域,團隊區域, 用戶,WorkItem 類別 , WorkItems 以及迭代都已經創建,並且源代碼也 已經登記到 subversion 存儲庫。將 XMLOrderManagement 導入 Rational Team Concert 並進行配置,在 Eclipse 客戶端進行運行。
啟動 XMLOrderMangement 應用軟件
XMLOrderManagement 應用軟件的代碼庫已經登記到 SVN 存儲庫,並且在 https://devworks:8443/svn/rtcDemo 可獲得。這是服務器上帶有 XML 文件的一個簡單的應用軟件,並 且客戶從語法上分析 XML 並呈遞一個簡單的 HTML 文件。這個客戶 HTML 顯示了客戶的名稱,待 辦命令 已經完成的命令。
要使這個應用軟件在 Rational Team Concert 上運行,需要掉接這個代碼。到現 為止, XMLOrderManagement 的源代碼已經准備好導入,並且可以在 Project Explorer 中顯示、啟動配置要小 心配置,而且一旦配置,XMLOrderManagement 應用軟件就可以通過主機浏覽模式中的 Rational Team Concert 來啟動。一旦 這個應用軟件運行良好並且准備好部署,您可以匯編這個代碼並在 Web Mode 中 運行。列表 1顯示了 XMLOrderMangement 啟動配置。
列表 1. 啟動 Configuration XMLOrderManagement.launch
<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/com.devworks.rtc.simplexml/jars/gwt-dev-windows.jar"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables"
value="true"/>
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
<listEntry value="<?xml version="1.0"
encoding="UTF-8"? > <runtimeClasspathEntry
containerPath="org.eclipse.jdt.launching.JRE_CONTAINER"
javaProject="com.devworks.rtc.simplexml"
path="1" type="4"/> "/>
<listEntry value="<?xml version="1.0"
encoding="UTF-8"? > <runtimeClasspathEntry
path="3" projectName="com.devworks.rtc.
simplexml" type="1"/> "/>
<listEntry value="<?xml version="1.0"
encoding="UTF-8"? > <runtimeClasspathEntry
internalArchive="/com.devworks.rtc.simplexml/
jars/gwt-dev-windows.jar" path="3"
type="2"/> "/>
<listEntry value="<?xml version="1.0"
encoding="UTF-8"? > <runtimeClasspathEntry
internalArchive="/com.devworks.rtc.simplexml/jars/gwt- servlet.jar"
path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0"
encoding="UTF-8"? > <runtimeClasspathEntry
internalArchive="/com.devworks.rtc.simplexml/jars/gwt-user.jar"
path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0"
encoding="UTF-8"? > <runtimeClasspathEntry
internalArchive="/com.devworks.rtc.simplexml/src"
path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0"
encoding="UTF-8"? > <runtimeClasspathEntry
internalArchive="/com.devworks.rtc.simplexml/www"
path="3" type="2"/> "/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH"
value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="com.google.gwt.dev.GWTShell"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="-out www com.google.gwt.sample.simplexml.SimpleXML/SimpleXML.html"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="com.devworks.rtc.simplexml"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx256M"/>
</launchConfiguration>
注意:您的開發時間絕大多數都是花費在主機運行模式上,這意味著在它沒 有轉化成 JavaScript 時 您就與 GWT 應用軟件發生了相互影響作用。任何 時候,無論您從一個 Java 整合開發環境 (IDE) 中 編輯,運行,還是 調試應用軟件,您都在主機模式中操作。當您在主機模式中運行時, Java ™ Virtual Machine (JVM)實際上正像字節代碼一樣執行您的應用 軟件代碼,利用 GWT 裝置自動嵌入浏 覽器窗口。這意味著也要調試您的 IDE 的設備,從而調試您客戶端的 GWT 代碼以及任何服務器端的 Java 代碼。通 過遺留在這個傳統“代碼-測試-調試”的循環,主機模式到目前為止是快速 開發應用軟件最有效的方法。
當 XMLOrderManagement 匯編完成,它就會以眾所周知的 Web 模式運行,它像 純粹的 JavaScript 一樣存在,但並不需要任何浏覽器插件或者 Java Virtual Machine (JVM)。
啟動配置中的主要 鍵符應該有 Main 類作為 com.google.gwt.dev.GWTShell。圖 44顯示了 XMLOrderMangement 的啟動配置 。
圖 44. 核對 Main 類
啟動 GWT 應用軟件的程序變量應該指向 XMLOrderManagement HTML 文件。圖 45顯示了 XMLOrderManagement 應用軟件的啟動配置變量。
圖 45. 核對程序變量
適當的 JAR 文件需要與正確的源文件夾一起添加到類路徑。圖 46顯示了包含 在這個啟動配置中的源 文件。
圖 46. 添加 JAR 文件
一旦 XMLOrderManagement.launch 被保存並且在主機浏覽器中執行了 GWT 應用軟件啟動,客戶命令 信息就會在這個浏覽器中反饋(請看圖 47)。
Figure 47. XMLOrderManagement application in a browser
當 JAR 和啟動配置被添加以後,這個源文件就會根據源控制進行變更。這可以 在 Pending Changes View 中觀察到。這只是 Rational Team Concert 強大 的特性之一,可以讓您鑒定以及聯合代碼,版本 變更以及工作項目(請看圖 48)。
圖 48. 工作空間中的待定變更
所有為解決的變更都可以直接進入變更設置,並且實際值與每個變更一起都被分配 到工作項目中,如 圖 49所示。
圖 49. 將工作項目與一個未解決的變更設置 聯合在一起
選擇這個變更設置,右鍵點擊來選擇這個聯合的工作項目,然後點擊 這個適當的工作項目。所有聯合 工作項目的變更設置都可以在圖 50中顯示。
圖 50. 與工作條目聯合的變更設置
您可以在 Pending Changes 視圖中看到所有的變更設置都與工作項目聯合在一起。在這個案例中,變 更設置可以登記到發布流程中,您可以選擇變更設置和行為 Deliver and Resolve Work Item。圖 51顯 示了交付和解決工作項目 以及聯合變更的行為。
圖e 51. 對一個流程交付和解決工作項目
變更代碼可以通過圖 52顯示的向導交付和解決。
圖 52. Deliver 和 Resolve 向導
一旦輸入了適當的評論,這個變更設置就可以交付,工作項目也可以被解決。在變更設置需要被專家 或者有經驗的程序員檢驗的情況下,您可以通過 發送請求到檢查人員來實現。圖 55顯示了檢查所呈交的 工作項目。
圖 53. 檢查的呈交項目
如圖 54所示,鍵入檢查者的名稱和評論,從而完成檢查請求的過程。
圖 54. 變更設置的檢查過程
一旦檢查人員發送了請求,這個代碼就可以被登記。要在一天內總結所有的 變更,Rational Team Concert 提供了一個簡單且直觀的視圖。Team Artifacts 視圖, My WorkItem Changes 饋給,以及 Work Items 視圖的 聯合使的工作更輕松(請看圖 55)。
圖 55. Rational Team Concert 附有任務和饋給
在這個部分您已經配置了 XMLOrderManagement 項目,使其從 Eclipse 客戶端 運行,並將變更設置 呈交到這個發行流程。
團隊過程及項目健康
Rational Team Concert 允許您自定義項目范圍過程,要麼在預先定義模板的 幫助下完成,要麼您可 以創建一個新的模板。在 Rational Team Concert 中可獲得幾個常見的模板,並且在需求的時候,可以 通過擴展模板來對它 們進行自定義。您可以通過打開模板和通過如圖 56所示的 Overview 和 Process Configurations 鍵符的導航查看它們的不同之處。
圖 56. 過程模板
每個項目都可以自定義規定的角色或者可以定義一個新的角色,如果 的話。在 scrum 進程模板的環 境中,定義的角色與敏捷過程完全 不同(請看圖 57)。
圖 57. 過程角色
給每個用戶添加許可是相當大的一項任務, Rational Team Concert 通過讓 項目領導為配個團隊成 員分配許可的方式來簡化操作。根據它們的角色, 每個用戶都可以被分配或者拒絕某些行為(請看圖 58 )。
圖 58. 過程角色許可
工作項目許可的簡化是通過允許項目領導自定義 User 行為和 Workflow 行為 來實現的。這通常被認 為是自定義圖 59中所顯示的任何過程的重要步驟。
圖 59. 工作項目許可跟蹤
過程的另一個重要的方面是定義和自定義工作流程的能力,利用 Rational Team 可簡化操作(請看圖 60)。
圖 60. 工作流程自定義
Workflows 中描述了工作項目和行為的不同狀態。必要時,可以添加不同的 狀態,並能夠在這個工作 流程中自定義。
圖 61. 更多的工作流程自定義
項目健康檢查通常被認為是項目管理者的任務,並且項目報告通常對團隊成員來說 都不是透明的。團 隊成員很少有項目報告的訪問權,並且項目的不良狀況種類 也都是在最後階段團隊成員才知道的。團隊 成員有了對項目報告的訪問權,就 可以授權給您的團隊,他們能盡早了解好的和不好的消息,從而如期 管理任務。
Rational Team Concert 伴隨了許多預先定義的報告,它們顯示了構件的狀態, 數據倉庫,存儲庫, 源控制以及工作項目報告。您可以在 Report 模板中定義 一個新的角色。Rational Team Concert 的項 目報告可以從 eclipse 客戶端 或者 Web 客戶端運行(請看圖 62)。
圖 62. 來自 XMLOrderManagement 的 共享報告
每個報告都可以配置並且在 XMLOrderManagement 應用軟件中運行, 顯示各種圖像表示。這些報告可 以輸出到各種格式中,像 PDF, Postscript, Excel, Word 以及 Power Point。在這篇教程中, 您將 看到一些幫助您以 Team 的 Work Distribution,Items 封閉日常,Open WorkItems 對比封閉 WorkItems 以及根據嚴重 程度劃分 Work 項目items 的形式幫助您分析項目的健康狀況。許多其它報告 幫助您分析您的項目健康狀況:
燃盡圖表: 這個報告根據評估的完成時間將剩余工作分成許多 小塊來完成。敏捷開發方法比如 Scrum,將日常過程朝著距離結束 的方向進行劃分。理想情況下,這個圖表將顯示,當剩余工作快結 束 時這個趨勢逐漸趨於零小時(請看圖 63)。
圖 63. 燃盡圖表
Closed Work Items Daily: 這個報告劃分新近結束的工作項目, 每一條代表一天。在另一個條裡, 工作項目是根據嚴重程度劃分的。當結束的工作項目接近零的時候,可能是缺乏生產力的暗示(請看 圖 64)。
圖 64. 每天結束的工作項目
Open 與 Closed WorkItems: 這個報告將所有工作項目根據時間劃分。Yellow 系列代表開放式工作 項目,紫色系列代表結束的工作項目。如果 迭代被詳細指定,只有那些為迭代設計的工作項目才能顯示 在圖 65中。
圖 65. 開放式 與 封閉式 工作項目
Work Items by Priority:這個報告顯示了整個過程中的工作 項目。這些工作項目根據優先權劃分; 每個優先權授予一種顏色的 區域系列。這種劃分能夠幫助您確保計劃的工作項目有一個良好的 優先權范 圍,而且以正確的順序處理。如果有一個迭代被詳細指定, 只有那些為迭代設計的項目會按照優先權顯 示在圖 66中。
圖 66. 按照優先權劃分的 開放式與封閉式工作項目
這個部分描述了 Rational Team Concert 是如何能夠在報告的幫助下進行 過程自定義和項目健康管 理的。一個管理人員或者團隊成員都擁有所有 的報告和關系密切的統計資料,因為源代碼,工作項目, 代碼修正,以及 構件都是整合在一起的。
構建系統
現在該利用 Rational Team Concert 來構建樣例應用軟件了。Jazz Build System 包括 Jazz 構建引 擎和 Jazz 構建工具包。獲取這些安裝和操 作是非常容易的。從您的 Jazz 客戶端您可以完成以下這些 任務:
定義一個構建腳本
定義一個鑒定您的構建腳本的構建輪廓
定義一個構建引擎來運行這個定義的構件
啟動構建引擎,它將回應構建請求,運行構建。以及發布結果
在主機模式中運行
管理人員或者自動化構建系統都可以對一個構件發出請求(例如,每次15分鐘)。根據這個時間間隔 ,可以從 Jazz Source Control System 核實源代碼,構建 日志顯示所有與這個構件相關聯的變更。這 樣 QA 工程師或者發布工程師就可以 查看構建日志和結果中所有的變更。
我們開始操作:
在 Package Explorer 視圖中,右鍵點擊一個項目並點擊 Export。
在 Export 向導中的 Select 頁面,在 General 之下選擇 Ant Buildfiles 並點擊 Next。
在 Export 頁面,確保您的項目和所有復選框都已經被選擇,並點擊 Finish。圖 67 顯示了為這個項 目所產生的 Ant 文件。
圖 67. 為 XMLOrderManagement 產生 Ant 構建文件
定義一個應答構建請求,運行構建,以及發布結果的構建引擎。通過 導航到這個項目區域的 Builds 部分來創建一個新構建引擎(請看 圖 68)。
圖 68. 創建一個新的 構建引擎
一旦這個 Build Engine 編輯器被打開,輸入這個構建引擎的 ID 和與這個 構建引擎相關聯的團隊區 域。如果這個構建定義已經確定,選擇這個構建 定義並保存(請看圖 69)。
tu 69. 定義這個構建引 擎構件
為您的項目創建一個 Jazz 構建定義。為使用 Jazz 構建,定義這個新的 存儲庫空間,這樣當運行這 個構建時它可以在啟動這個構建之前接受 任何來自團隊流程中的變更。導航到項目區域的 Builds 部分 ,選擇 New Build Definition。選擇這個適當的團隊區域並點擊 Next,如圖 70所示。
圖 70. 選擇 這個團隊區域
輸入這個構建定義 ID 並選擇 Ant-Jazz Build Engine 作為構建模板,如 圖 71所示。點擊 Next。 構建引擎可以使用 Ant, Maven, 或者 Command Prompt,但是這個教程 對構建引擎使用的是 Ant Script。如果您有一個基於 Maven 的項目,那 麼 Maven Build 模板就可以被選來替代 Ant Script。
圖 71. 選擇 Ant Jazz 構建引擎
為 Ant 構建選擇 Source Control 選項,並選擇 Finish 來創建如圖 72所示的構建定義。
圖 72. 自定義 Ant Jazz 構建引擎
一旦構建定義被創建,選擇 Schedule 鍵符並激活有連續時間間隔的 自動化構建,如圖 73所示。
圖 73. 為構建定義激活 自動化構建
選擇 Jazz Source Control 鍵符並輸入 Build Workspace 作為 Main Stream Workspace,然後輸入 下載地址,這裡工作空間中的文件是從圖 74所示的 Jazz 源控制下載而來。如果 <rtcInstall> 是團隊 Concert 的根目錄, <rtcInstall>\buildsystem\buildengine\eclipse\fetched 就是為 此構件下載源文件的路徑。
圖 74. 輸入構建定義 的下載選項
通過導航選擇此構建定義中的 Ant 鍵符,輸入此構建文件的路徑。同時為 Java Home 輸入 <rtcInstall>/jdk ,如圖 75所示。
圖 75. 構建定義的構建文件登記入口
打開這個 build.xml 文件並輸入一個新構建目標來匯編 GWT 應用軟件以及 將它登記到 Jazz Source Control 系統。記住,直到現在,應用軟件一 直以主機浏覽器模式在運行。一旦您對這個應用軟件進行 編輯,它就可以 以 Web 模式運行。
以 Web 模式運行
當您從開發進入到 GWT 應用軟件的終端-到-終端測試和產品中,您通常可以 以 Web 模式開始配合您 的應用軟件。Web 模式涉及到從一個常用的浏覽 器訪問您的應用軟件——它像純粹的 JavaScript 一樣 運行——似乎最終 打算被部署。GWT 編輯器將 GWT 應用軟甲代碼轉換成 JavaScript,在沒 有插件或者 JVM 的情況下直接在浏覽器中運行。請看列表 2。
列表 2. XMLOrderMangement 的 build.xml 文件內容
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="build" name="com.devworks.rtc.simplexml">
<property environment="env"/>
<property name="ECLIPSE_HOME" value="../../TeamConcert"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.5"/>
<property name="source" value="1.5"/>
<path id="com.devworks.rtc.simplexml.classpath">
<pathelement location="bin"/>
<pathelement location="jars/gwt-dev-windows.jar"/>
<pathelement location="jars/gwt-servlet.jar"/>
<pathelement location="jars/gwt-user.jar"/>
</path>
<path id="run.SimpleXML.classpath">
<path refid="com.devworks.rtc.simplexml.classpath"/>
<pathelement location="jars/gwt-dev-windows.jar"/>
<pathelement location="jars/gwt-servlet.jar"/>
<pathelement location="jars/gwt-user.jar"/>
<pathelement location="src"/>
<pathelement location="www"/>
</path>
<target name="init">
<mkdir dir="bin"/>
<copy includeemptydirs="false" todir="bin">
<fileset dir="src" excludes="**/*.launch, **/*.java"/>
</copy>
<copy includeemptydirs="false" todir="bin">
<fileset dir="www" excludes="**/*.launch, **/*.java"/>
</copy>
</target>
<target name="clean">
<delete dir="bin"/>
</target>
<target depends="clean" name="cleanall"/>
<target depends="build-project, XMLOrderMgmt-Compile" name="build"/>
<target depends="init" name="build-project">
<echo message="${ant.project.name}: ${ant.file}"/>
<javac debug="true" debuglevel="${debuglevel}" destdir="bin"
source="${source}" target="${target}">
<src path="src"/>
<classpath refid="com.devworks.rtc.simplexml.classpath"/>
</javac>
<javac debug="true" debuglevel="${debuglevel}" destdir="bin"
source="${source}" target="${target}">
<src path="www"/>
<classpath refid="com.devworks.rtc.simplexml.classpath"/>
</javac>
</target>
<target name="XMLOrderMgmt-Compile">
<echo message="Compiling OrderManagement Files..."/>
<java classname="com.google.gwt.dev.GWTCompiler" failonerror="true"
fork="yes">
<jvmarg line="-Xmx256M"/>
<arg line="-out www com.google.gwt.sample.simplexml.SimpleXML"/>
<classpath refid="run.SimpleXML.classpath"/>
</java>
<echo message="Compiling OrderManagement Completed."/>
</target>
</project>
通過右鍵地愛您及構建定義和選擇 Request Build 請求一個新的構建 (請看圖 76)。
圖 76. 從構建定義構建請求 一個構建
這個 Request Build 向導允許您輸入構建引擎並自定義這個構建選項, 要麼是公共的要麼是私有構 建。私有構建只有您才可以看到;而公 共構建是每個人都可以看見的。配置相應的構建請求,如圖 77所 示。
圖 77. 配置構建並提交 構建序列
在構建請求保存之前, Jazz 構建系統必須啟動。導航到 <rtcInstallation>\buildsystem\buildengine\eclipse ,並 啟動帶有命令的 Jazz 構建系統, 如圖 78所示。當構建系統在不出任何錯誤的情況下啟動,它就通過 Rational Team Concert 客戶端開始 聽從任何構建請求: jbe -repository https://localhost:9443/jazz -userId devuser -pass devuser -engineId XMLOrderManagement.
圖 78. 啟動這個 Jazz 構建系統
這個構建系統將開始處理構建請求,構建軟件,GWT 應用軟件,XMLOrderMangement 都會被編輯,如 圖 79所示。
圖 79. XMLOrderManagement 成功的構建
這篇教程假設 XMLOrderManagement 應用軟件已經人工部署到 Apache Tomcat。這個構建文件可以實 時地被修改,以此構建為 Tomcat 產生 WAR 文件的 方式。顯示在列表 3中的 web.xml 文件假設是在 Apache Tomcat webapps 地址。
列表 3.XMLOrderManagement 的 web.xml 文件
<?xml version="1.0" encoding="UTF -8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- Standard Action Servlet Configuration -->
<servlet>
<servlet-name>rtc</servlet-name>
<servlet-class>com.google.gwt.sample.simplexml.SimpleXML</servlet-class>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>rtc</servlet-name>
<url-pattern>/rtc/SimpleXML.html</url-pattern>
</servlet-mapping>
</web-app>
部署的 Web 應用軟件的地址結構看起來如圖 80所顯示的那樣。這顯示了相同 文件夾中所有匯編文件 的最簡單的可能部署。如果您要充分權衡這個 GWT 的 緩沖機制,那麼您需要更改這個緩沖/非緩沖 HTML 文件的位置。
圖 80. XMLOrderManagement 應用軟件部署在 Tomcat
一旦 XMLOrderManagement 應用軟件部署到 Tomcat,這個應用軟件就可以 訪問 https://localhost:9443/rtc/SimpleXML.html URL 地址,如圖 81所示。
圖 81. XMLOrderManagement 應用軟件
您現在已經成功地定義了這個構建文件,構建引擎,構建定義,並且最終將應用 軟件部署到 Apache Tomcat。
總結
Rational Team Concert 對小型或者大型企業來講,是一個非常強大,靈活且 可配置的軟件協作平台 。雖然對這篇教程已經有了如此多的評論和論證, 但是仍然有許多值得探究。
這篇教程開始對 Rational Team Concert 有一個簡短的介紹,然後轉移到創建 項目區域和團隊區域 以及將 GWT 的樣例應用軟件 XMLOrderMangement 導入 到 Jazz 源控制中。此後您在 Rational Team Concert 中創建並運行了這個 樣例應用軟件,創建並將工作項目分配到團隊成員,最好調查這個過程自 定義 以及項目健康狀況。
然後您研究了帶有 LDAP 注冊的用戶管理的潛力,利用 Team Advisor 快速解決 問題,根據團隊需求 自定義這個過程,以及查看幾個可利用的 Jazz 報告來 了解和訪問項目的健康狀況。Jazz Build System 是一個十分強大的構建引擎 ,幫助項目擁有連續私有和公共的構建。
這篇教程已經論證了與團隊協作是多麼得簡單,以及利用 Rational Team Concert 開發軟件是多麼得 有趣。您可以開始考慮通過導入一個簡單的項目來使用 Rational Team Concert,然後將它進一步擴展。