青草精品视频在线,国产白丝捆绑调教av网站,欧美一级毛片免费观看,国产999精品久久久久,a国产精品,亚洲精品午夜久久久久久久久久久,av视屏在线播放

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

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

  ● 統(tǒng)一代碼源

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

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

  ● 集成測(cè)試

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

  集成測(cè)試也是一個(gè)同義詞相當(dāng)多的名?,有榷愰廃称为褭─拆}裕˙VT-Build Verification Tests),因?yàn)樗麄冋J(rèn)為這種測(cè)試主要的目的是為了驗(yàn)證構(gòu)建的正確性。有些人把它稱為冒煙測(cè)試(Smoke Test),因?yàn)樗麄冇X得這個(gè)測(cè)試的目的是運(yùn)行軟件,看它是否會(huì)"冒煙"。

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

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

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

  日構(gòu)建的工具有很多,但是最基礎(chǔ)、最廣泛的工具是Ant(http://ant.apache.org)。Ant類似于Make,但是加入了跨平臺(tái)的特性。在這個(gè)目標(biāo)的驅(qū)動(dòng)下,Ant摒棄了Make工具的給予Shell的缺點(diǎn),提供了一種使用XML配置文件的構(gòu)建方式,并定義了一個(gè)統(tǒng)一的微核心和強(qiáng)大的擴(kuò)展機(jī)制。這些特點(diǎn)使得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>

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

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

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

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

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

  日構(gòu)建的代價(jià)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

推薦文章