女人久久久www免费人成看片,国内自拍偷拍网,国产一区二区三区免费在线观看,欧美精品三区四区,91久久国产综合久久91,欧美成人精品第一区二区三区 ,美女成人在线观看

專業(yè)信息系統(tǒng)項目管理師網(wǎng)站|培訓(xùn)機構(gòu)|服務(wù)商(2021信息系統(tǒng)項目管理師學(xué)習(xí)QQ群:89253946,客服QQ:800184589)

軟題庫 培訓(xùn)課程
當前位置:信管網(wǎng) >> 信息系統(tǒng)項目管理師 >> 其它資料 >> 文章內(nèi)容
軟件質(zhì)量之路:日構(gòu)建[2]
來源:信管網(wǎng) 2011年11月22日 【所有評論 分享到微信

  ● 統(tǒng)一代碼源

  其次,保證一個開發(fā)團隊共享統(tǒng)一的代碼源。這時候我們需要使用版本控制工具。共享的代碼庫同樣也是XP的一個基本實踐。雖然XP還要求開發(fā)人員可以修改他人的代碼,但我們并不提倡這種做法,這要求團隊成員之間有非常高的默契程度。統(tǒng)一的代碼源能夠保證所有人的代碼都歸總到一起,這是日構(gòu)建的基礎(chǔ)。如果沒有這一點的保證,每一次的構(gòu)建我們都不得不把所有人的代碼集中起來,這無疑會使構(gòu)建過程變成災(zāi)難。

  統(tǒng)一代碼源能夠保證任何一位團隊成員獲得所有的代碼,并以此為基礎(chǔ)進行開發(fā)。

  ● 集成測試

  只是把代碼編譯通過并不能夠證明軟件可以正常工作,評價軟件的標準應(yīng)該是測試。在日構(gòu)建中必須要執(zhí)行集成測試,來保證軟件確實是能夠工作的。

  集成測試也是一個同義詞相當多的名?,有榷愰廃称为褭─拆}裕˙VT-Build Verification Tests),因為他們認為這種測試主要的目的是為了驗證構(gòu)建的正確性。有些人把它稱為冒煙測試(Smoke Test),因為他們覺得這個測試的目的是運行軟件,看它是否會"冒煙"。

  測試應(yīng)該全部執(zhí)行完畢,而不是遇到未被滿足的錯誤就放棄測試過程。測試將形成結(jié)果,成功的測試,失敗的測試,失敗測試的細節(jié)。最后的結(jié)果將通過某種方式通知給相應(yīng)的人員,要求他們修改設(shè)計或測試(如果是測試本身的問題的話)。

  集成測試是證明構(gòu)建成功的關(guān)鍵因素。和構(gòu)建一樣,集成測試也應(yīng)該是自動化的。

  日構(gòu)建的基本工具

  日構(gòu)建的工具有很多,但是最基礎(chǔ)、最廣泛的工具是Ant(http://ant.apache.org)。Ant類似于Make,但是加入了跨平臺的特性。在這個目標的驅(qū)動下,Ant摒棄了Make工具的給予Shell的缺點,提供了一種使用XML配置文件的構(gòu)建方式,并定義了一個統(tǒng)一的微核心和強大的擴展機制。這些特點使得Ant很快被人所接受、推廣。目前,Ant的最新版本是1.6.0。

<project name="MyProject" default="dist" basedir=".">
    <description>
        simple example build file
    </description>
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>
  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>
  <target name="compile" depends="init"
        description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>
  <target name="dist" depends="compile"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>
    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
  </target>
  <target name="clean" description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

  以上是一個簡單,但已經(jīng)可以完全說明Ant工作流程的例子,來源于Ant的手冊。在這個例子中,先定義了項目的基本信息和構(gòu)建過程中所需要使用到的屬性(1),然后初始化環(huán)境(2)(創(chuàng)建時戳和目標目錄),在3和4中,對項目進行編譯和打包,在5處,提供了清除項目輸出的途徑。

  在Ant中,最關(guān)鍵的四個概念就是項目(Project)、目標(Target)、任務(wù)(Task)和屬性(Property)。這四個概念的定義和調(diào)度、配置文件的處理構(gòu)成了Ant的核心。而具體的任務(wù)則作為擴展機制。這種微核心的處理思路在很多成功的軟件項目中采用過。

  本文并沒有打算對Ant進行全面的介紹,因此,如果你打算在組織中引入日構(gòu)建,那么,學(xué)會使用Ant是必須的。目前很多的IDE環(huán)境都提供了對Ant的支持(例如Eclipse),所以使用Ant是很方便的。

  原則上,光有Ant就已經(jīng)可以完成一個日構(gòu)建過程了,但是還有一些軟件提供了更好的封裝,使得持續(xù)集成變得更加的簡單。典型的兩個工具是AntHill( http://www.urbancode.com/projects/anthill/default.jsp)和CruiseControl( http://cruisecontrol.sourceforge.net/)。前者是一個商業(yè)軟件,提供了很多優(yōu)秀的日構(gòu)建實踐。使用起來也很簡單。后者是鼎鼎大名的Martin Folwer所在的ThoughtWorks公司開發(fā)的,可以免費使用。

  另一個值得關(guān)注的軟件是Apcache組織下的Maven項目( http://maven.apache.org/)。這個項目還很年輕,目前才到1.0的發(fā)布版。Maven給自己的定位是項目管理軟件,使用項目對象模型(POM)來描述一個項目,進一步的簡化構(gòu)建過程,并統(tǒng)一構(gòu)建過程所出產(chǎn)的工件。Maven的另一個目標是通過一種實際的工具,來推廣優(yōu)秀的實踐。例如開發(fā)目錄樹的組織。

  日構(gòu)建的代價

  雖然日構(gòu)建有諸多的好處,但是要使用日構(gòu)建并不是一帆風(fēng)順的。最大的問題是如何引入日構(gòu)建的三項基本實踐。前兩項相對簡單,最難的是建立自動化測試。關(guān)于這部分的說明請參考測試驅(qū)動開發(fā)的相關(guān)部分。

  日構(gòu)建擴展任務(wù)

  日構(gòu)建的核心任務(wù)是編譯、構(gòu)建、執(zhí)行測試和發(fā)布。除了這些任務(wù)之外,還可以微日構(gòu)建添加擴展任務(wù)。

  生成文檔。生成文檔有很多的方法,其中最關(guān)鍵的是生成API文檔。JavaDoc的概念減弱了傳統(tǒng)軟件開發(fā)中文檔的重要性,而把大量的文檔嵌入到了代碼層面中。除了標準的JavaDoc文檔之外,還可以利用第三方的工具生成自定義的文檔,例如to-do列表文檔。XDoclet就是其中的一個工具。

  預(yù)編譯。不少的應(yīng)用引入了預(yù)編譯。典型的如AspectJ,作為一個AOP工具,AspectJ的作用是使用特定的代碼生成器生成AOP的Java代碼,然后再進行編譯。將預(yù)編譯的工作納入到構(gòu)建過程,可以簡化開發(fā)的工作量。典型的還包括一些ORM工具。

  代碼分析。代碼分析是軟件度量的重要工作。代碼分析可以為管理人員提供一個判斷代碼質(zhì)量依據(jù)(不要把它作為唯一的標準)。代碼分析是形式化的,因此可以制作成軟件,集成到構(gòu)建過程中來。例如,判斷代碼是否符合編碼規(guī)范,文檔和代碼的比率,包和類涉及的合理性。

  測試覆蓋分析。測試覆蓋分析作為輔助測試的手段是非常重要的。測試代碼的復(fù)審,最關(guān)鍵的評價測試是否足夠(相對),單靠人工完成這項工作太勉強了。所以應(yīng)該令其自動化,并成為構(gòu)建過程的一部分。

  問題跟蹤。測試過程中出現(xiàn)的問題應(yīng)該被納入到一個問題跟蹤系統(tǒng)中,可以通過和問題跟蹤系統(tǒng)接口來設(shè)計自動化的任務(wù)。

  歸檔和備份。這是很基本,但也是很重要的功能。每天產(chǎn)生的工件應(yīng)當進行妥當?shù)臍w檔、備份。

[1]   [2]   
掃碼關(guān)注公眾號

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!

信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。

信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學(xué)員考試保駕護航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。

相關(guān)內(nèi)容

發(fā)表評論  查看完整評論  

推薦文章